├── .nvmrc ├── .node-version ├── CNAME ├── website ├── .nvmrc ├── .node-version ├── src │ ├── components │ │ ├── Callout │ │ │ ├── styles.module.css │ │ │ └── index.js │ │ ├── MonoIcon │ │ │ └── styles.module.css │ │ ├── TypeText │ │ │ ├── styles.module.css │ │ │ └── index.js │ │ ├── Feature │ │ │ └── index.js │ │ ├── Container │ │ │ └── index.js │ │ ├── ImageBullet │ │ │ ├── index.js │ │ │ └── styles.module.css │ │ ├── GridBlock │ │ │ └── index.js │ │ ├── ConformanceShowcase │ │ │ └── styles.module.css │ │ ├── WhatIsIt │ │ │ └── noun-question-4578800-909090.svg │ │ └── HomeSection2 │ │ │ └── index.js │ └── pages │ │ └── schemas │ │ ├── 2.0 │ │ └── app-directory.html │ │ ├── next │ │ └── app-directory.html │ │ ├── 1.1 │ │ └── app-directory.html │ │ └── 1.2 │ │ └── app-directory.html ├── static │ ├── img │ │ ├── finos.png │ │ ├── oss_logo.png │ │ ├── fdc3-logo.png │ │ ├── users │ │ │ ├── bmo.png │ │ │ ├── citi.png │ │ │ ├── ubs.png │ │ │ ├── ChartIQ.png │ │ │ ├── Cloud9.webp │ │ │ ├── FINOS.png │ │ │ ├── FactSet.png │ │ │ ├── GLUE42.png │ │ │ ├── Genesis.png │ │ │ ├── Openfin.png │ │ │ ├── aladdin.png │ │ │ ├── ChartIQ.webp │ │ │ ├── FactSet.webp │ │ │ ├── Finsemble.png │ │ │ ├── GreenKey.png │ │ │ ├── GreenKey.webp │ │ │ ├── IHSMarkit.png │ │ │ ├── JPMorgan.png │ │ │ ├── JPMorgan.webp │ │ │ ├── Openfin.webp │ │ │ ├── RBCCMlogo.png │ │ │ ├── Refinitiv.png │ │ │ ├── Symphony.png │ │ │ ├── adaptive.png │ │ │ ├── adaptive.webp │ │ │ ├── blackrock.png │ │ │ ├── flextrade.jpg │ │ │ ├── ipp-logo.png │ │ │ ├── spglobal.png │ │ │ ├── Finsemble.webp │ │ │ ├── Glue42_Logo.jpg │ │ │ ├── Glue42_Logo.png │ │ │ ├── IHSMarkit.webp │ │ │ ├── Refinitiv.webp │ │ │ ├── connectifi.png │ │ │ ├── scottlogic.png │ │ │ ├── singletrack.png │ │ │ ├── Dow_Jones_Logo.png │ │ │ ├── MorganStanley.png │ │ │ ├── MorganStanley.webp │ │ │ ├── deutsche-bank.webp │ │ │ ├── nexj-systems-logo.png │ │ │ ├── norman-and-sons.png │ │ │ ├── fdc3-desktop-agent.png │ │ │ ├── OpenFin_Here_Browser.png │ │ │ └── OpenFin_Here_Browser_250x120.png │ │ ├── community │ │ │ ├── lf.png │ │ │ ├── groups.png │ │ │ ├── youtube.png │ │ │ ├── certified-1.2.png │ │ │ ├── certified-2.0.png │ │ │ └── fdc3-training-course.png │ │ ├── finos-white.png │ │ ├── training │ │ │ ├── FCFP.png │ │ │ ├── LFD237.png │ │ │ ├── LFEL1000.png │ │ │ ├── fdc3-2.2.png │ │ │ ├── how-to-add-fdc3-to-your-apps.png │ │ │ └── fdc3-developer-training-workshop.png │ │ ├── use-cases │ │ │ ├── 1.png │ │ │ ├── 10.png │ │ │ ├── 11.png │ │ │ ├── 12.png │ │ │ ├── 2.png │ │ │ ├── 3.png │ │ │ ├── 4.png │ │ │ ├── 5.png │ │ │ ├── 6.png │ │ │ ├── 7.png │ │ │ ├── 8.png │ │ │ ├── 9.png │ │ │ └── snippet.png │ │ ├── favicon │ │ │ ├── favicon.ico │ │ │ ├── favicon-finos.ico │ │ │ ├── favicon-white.ico │ │ │ └── favicon-wordmark.ico │ │ ├── fdc3-background.png │ │ ├── fdc3-logo-2019.png │ │ ├── fdc3-logo-white.png │ │ ├── fdc3-logo-2019-color.png │ │ ├── meetups │ │ │ └── fdc3-sweden.png │ │ └── fdc3-icon-light-2019.svg │ ├── assets │ │ ├── api-1.png │ │ ├── api-2.png │ │ ├── api-3.png │ │ ├── uc17.png │ │ ├── uc4.png │ │ ├── uc5.png │ │ ├── appd_dns.png │ │ ├── fdc3-logo.png │ │ ├── use-cases.png │ │ ├── next_version.png │ │ ├── dab-overview-1.png │ │ ├── dab-overview-2.png │ │ ├── dab-overview-3.png │ │ ├── dab-overview-4.png │ │ ├── view_research.png │ │ ├── fdc3-survey-1080.jpeg │ │ ├── version_selector.png │ │ ├── appd_static_config.png │ │ ├── appd_launcher_embedded.png │ │ ├── appd_launcher_aggregated.png │ │ ├── appd_launcher_standalone.png │ │ ├── appd_service_distribution.png │ │ └── latest_version_selector.png │ ├── fonts │ │ ├── OpenSans-Regular.ttf │ │ ├── Rokkitt-Medium.ttf │ │ ├── Rokkitt-ExtraBold.ttf │ │ ├── SpaceMono-Regular.ttf │ │ └── Electrolize-Regular.ttf │ ├── pdf │ │ └── FDC3-Primer-2024.pdf │ └── schemas │ │ ├── 2.0 │ │ ├── nothing.schema.json │ │ ├── app-directory.html │ │ ├── context.schema.json │ │ ├── position.schema.json │ │ ├── portfolio.schema.json │ │ ├── contactList.schema.json │ │ ├── instrumentList.schema.json │ │ ├── contact.schema.json │ │ ├── currency.schema.json │ │ ├── organization.schema.json │ │ ├── email.schema.json │ │ ├── country.schema.json │ │ ├── valuation.schema.json │ │ └── timerange.schema.json │ │ ├── 2.1 │ │ ├── app-directory.html │ │ └── bridging │ │ │ ├── openBridgeRequest.schema.json │ │ │ ├── openBridgeResponse.schema.json │ │ │ ├── broadcastBridgeRequest.schema.json │ │ │ ├── findIntentBridgeRequest.schema.json │ │ │ ├── raiseIntentBridgeRequest.schema.json │ │ │ ├── openBridgeErrorResponse.schema.json │ │ │ ├── findInstancesBridgeRequest.schema.json │ │ │ ├── findIntentBridgeResponse.schema.json │ │ │ ├── raiseIntentBridgeResponse.schema.json │ │ │ ├── getAppMetadataBridgeRequest.schema.json │ │ │ ├── findInstancesBridgeResponse.schema.json │ │ │ ├── getAppMetadataBridgeResponse.schema.json │ │ │ ├── findIntentBridgeErrorResponse.schema.json │ │ │ ├── raiseIntentBridgeErrorResponse.schema.json │ │ │ ├── raiseIntentResultBridgeResponse.schema.json │ │ │ ├── findIntentsByContextBridgeRequest.schema.json │ │ │ ├── findInstancesBridgeErrorResponse.schema.json │ │ │ ├── findIntentsByContextBridgeResponse.schema.json │ │ │ ├── getAppMetadataBridgeErrorResponse.schema.json │ │ │ ├── privateChannelBroadcastBridgeRequest.schema.json │ │ │ ├── raiseIntentResultBridgeErrorResponse.schema.json │ │ │ ├── privateChannelOnDisconnectBridgeRequest.schema.json │ │ │ ├── privateChannelOnUnsubscribeBridgeRequest.schema.json │ │ │ ├── findIntentsByContextBridgeErrorResponse.schema.json │ │ │ ├── privateChannelEventListenerAddedBridgeRequest.schema.json │ │ │ ├── privateChannelEventListenerRemovedBridgeRequest.schema.json │ │ │ └── privateChannelOnAddContextListenerBridgeRequest.schema.json │ │ ├── 2.2 │ │ ├── app-directory.html │ │ └── bridging │ │ │ ├── openBridgeRequest.schema.json │ │ │ ├── openBridgeResponse.schema.json │ │ │ ├── broadcastBridgeRequest.schema.json │ │ │ ├── findIntentBridgeRequest.schema.json │ │ │ ├── raiseIntentBridgeRequest.schema.json │ │ │ ├── openBridgeErrorResponse.schema.json │ │ │ ├── findInstancesBridgeRequest.schema.json │ │ │ ├── findIntentBridgeResponse.schema.json │ │ │ ├── raiseIntentBridgeResponse.schema.json │ │ │ ├── getAppMetadataBridgeRequest.schema.json │ │ │ ├── findInstancesBridgeResponse.schema.json │ │ │ ├── getAppMetadataBridgeResponse.schema.json │ │ │ ├── findIntentBridgeErrorResponse.schema.json │ │ │ ├── raiseIntentBridgeErrorResponse.schema.json │ │ │ ├── raiseIntentResultBridgeResponse.schema.json │ │ │ ├── findIntentsByContextBridgeRequest.schema.json │ │ │ ├── findInstancesBridgeErrorResponse.schema.json │ │ │ ├── findIntentsByContextBridgeResponse.schema.json │ │ │ ├── getAppMetadataBridgeErrorResponse.schema.json │ │ │ ├── privateChannelBroadcastBridgeRequest.schema.json │ │ │ ├── raiseIntentResultBridgeErrorResponse.schema.json │ │ │ ├── privateChannelOnDisconnectBridgeRequest.schema.json │ │ │ ├── privateChannelOnUnsubscribeBridgeRequest.schema.json │ │ │ ├── findIntentsByContextBridgeErrorResponse.schema.json │ │ │ ├── privateChannelEventListenerAddedBridgeRequest.schema.json │ │ │ ├── privateChannelEventListenerRemovedBridgeRequest.schema.json │ │ │ └── privateChannelOnAddContextListenerBridgeRequest.schema.json │ │ ├── next │ │ └── app-directory.html │ │ ├── 1.1 │ │ ├── app-directory.html │ │ ├── context.schema.json │ │ ├── position.schema.json │ │ ├── portfolio.schema.json │ │ ├── contactList.schema.json │ │ ├── instrumentList.schema.json │ │ ├── contact.schema.json │ │ ├── country.schema.json │ │ └── organization.schema.json │ │ └── 1.2 │ │ ├── app-directory.html │ │ ├── context.schema.json │ │ ├── position.schema.json │ │ ├── portfolio.schema.json │ │ ├── contactList.schema.json │ │ ├── instrumentList.schema.json │ │ ├── contact.schema.json │ │ ├── country.schema.json │ │ └── organization.schema.json ├── versions.json ├── versioned_docs │ ├── version-1.0 │ │ ├── api │ │ │ └── Context.md │ │ └── use-cases │ │ │ └── meeting-minutes │ │ │ └── 2020-03-19 uc-wg meeting notes.md │ ├── version-1.1 │ │ └── api │ │ │ ├── Context.md │ │ │ └── ref │ │ │ ├── IntentMetadata.md │ │ │ ├── OpenError.md │ │ │ ├── IntentResolution.md │ │ │ ├── ContextHandler.md │ │ │ └── AppIntent.md │ ├── version-1.2 │ │ └── api │ │ │ ├── Context.md │ │ │ └── ref │ │ │ ├── IntentMetadata.md │ │ │ ├── OpenError.md │ │ │ ├── IntentResolution.md │ │ │ ├── ContextHandler.md │ │ │ └── AppIntent.md │ ├── version-2.1 │ │ ├── use-cases │ │ │ └── meeting-minutes │ │ │ │ └── 2020-03-19 uc-wg meeting notes.md │ │ └── .markdownlint.jsonc │ └── version-2.2 │ │ ├── use-cases │ │ └── meeting-minutes │ │ │ └── 2020-03-19 uc-wg meeting notes.md │ │ ├── .markdownlint.jsonc │ │ └── context │ │ └── ref │ │ └── BaseContext.md ├── data │ └── get-involved │ │ ├── 5.mdx │ │ ├── 1.mdx │ │ └── 4.mdx └── docs │ ├── use-cases │ └── meeting-minutes │ │ └── 2020-03-19 uc-wg meeting notes.md │ ├── .markdownlint.jsonc │ └── context │ └── ref │ └── BaseContext.md ├── .husky └── pre-commit ├── toolbox ├── fdc3-workbench │ ├── .env │ ├── public │ │ ├── robots.txt │ │ ├── favicon.ico │ │ ├── fdc3-logo.png │ │ ├── fdc3-icon-192.png │ │ ├── fdc3-icon-256.png │ │ └── manifest.json │ ├── NOTICE │ ├── tsconfig.node.json │ ├── .gitignore │ └── src │ │ ├── fixtures │ │ └── openApiDocs.ts │ │ ├── index.tsx │ │ └── components │ │ └── common │ │ └── CopyToClipboard.tsx ├── fdc3-for-web │ ├── demo │ │ ├── src │ │ │ ├── client │ │ │ │ ├── vite-env.d.ts │ │ │ │ ├── apps │ │ │ │ │ ├── app3.ts │ │ │ │ │ ├── app6.ts │ │ │ │ │ └── app4.ts │ │ │ │ └── ui │ │ │ │ │ └── contrast.ts │ │ │ └── message-types.ts │ │ ├── images │ │ │ ├── appd.png │ │ │ ├── demo.png │ │ │ ├── tab1.png │ │ │ ├── tab2.png │ │ │ ├── tab3.png │ │ │ ├── console.png │ │ │ ├── intent-resolver │ │ │ │ ├── default.png │ │ │ │ └── demo-implementation.png │ │ │ └── channel-selector │ │ │ │ ├── demo-collapsed.png │ │ │ │ ├── demo-expanded.png │ │ │ │ ├── default-collapsed.png │ │ │ │ └── default-expanded.png │ │ ├── static │ │ │ ├── da │ │ │ │ ├── corner.png │ │ │ │ ├── embed.html │ │ │ │ └── intent-resolver.html │ │ │ ├── app2 │ │ │ │ └── index.html │ │ │ ├── app1 │ │ │ │ └── index.html │ │ │ ├── app6 │ │ │ │ └── index.html │ │ │ ├── embed │ │ │ │ └── index.html │ │ │ ├── app4 │ │ │ │ └── index.html │ │ │ ├── app3 │ │ │ │ └── index.html │ │ │ ├── app5 │ │ │ │ └── index.html │ │ │ └── app7 │ │ │ │ └── index.html │ │ ├── .gitignore │ │ └── eslint.config.mjs │ ├── reference-ui │ │ ├── src │ │ │ ├── vite-env.d.ts │ │ │ └── contrast.ts │ │ ├── .gitignore │ │ ├── vite.config.ts │ │ ├── eslint.config.mjs │ │ └── tsconfig.json │ └── fdc3-web-impl │ │ ├── cucumber.yml │ │ ├── src │ │ └── FDC3Server.ts │ │ ├── test │ │ └── world │ │ │ └── index.ts │ │ └── eslint.config.mjs ├── fdc3-explained │ ├── logo.png │ └── 1.0 │ │ └── styles.css └── fdc3-conformance │ ├── static │ ├── failing.png │ ├── running.png │ ├── selecting.png │ ├── finos-icon-256.png │ ├── scott-logic-icon-256.png │ ├── v2.0 │ │ ├── intent-d │ │ │ └── index.html │ │ ├── general │ │ │ └── index.html │ │ ├── open-a │ │ │ └── index.html │ │ ├── open-b │ │ │ └── index.html │ │ ├── basic │ │ │ └── index.html │ │ ├── metadata │ │ │ └── index.html │ │ ├── intent-a │ │ │ └── index.html │ │ ├── intent-b │ │ │ └── index.html │ │ ├── channels │ │ │ └── index.html │ │ ├── intent-c │ │ │ └── index.html │ │ ├── intent-e │ │ │ └── index.html │ │ ├── intent-f │ │ │ └── index.html │ │ ├── intent-g │ │ │ └── index.html │ │ ├── intent-h │ │ │ └── index.html │ │ ├── intent-i │ │ │ └── index.html │ │ ├── intent-j │ │ │ └── index.html │ │ └── intent-k │ │ │ └── index.html │ └── icons │ │ └── arrow-left-circle-outline.svg │ ├── terms-conditions │ ├── FDC3-Certified-Terms.pdf │ ├── participation-form.pdf │ ├── graphics │ │ ├── 2022_FDC3_CompliantBadges.pdf │ │ ├── 2.2 │ │ │ ├── 2024_FDC3_ConformanceBadge.eps │ │ │ ├── 2024_FDC3_ConformanceBadge.jpg │ │ │ ├── 2024_FDC3_ConformanceBadge.pdf │ │ │ ├── 2024_FDC3_ConformanceBadge.png │ │ │ ├── 2024_FDC3_ConformanceBadge_BLK.eps │ │ │ ├── 2024_FDC3_ConformanceBadge_BLK.jpg │ │ │ ├── 2024_FDC3_ConformanceBadge_BLK.png │ │ │ ├── 2024_FDC3_ConformanceBadge_WHT.eps │ │ │ └── 2024_FDC3_ConformanceBadge_WHT.png │ │ ├── 1.2 │ │ │ ├── 2022_FDC3_CompliantBadge_1.2.eps │ │ │ ├── 2022_FDC3_CompliantBadge_1.2.jpg │ │ │ ├── 2022_FDC3_CompliantBadge_1.2.png │ │ │ ├── 2022_FDC3_CompliantBadge_1.2_BLK.eps │ │ │ ├── 2022_FDC3_CompliantBadge_1.2_BLK.jpg │ │ │ ├── 2022_FDC3_CompliantBadge_1.2_BLK.png │ │ │ ├── 2022_FDC3_CompliantBadge_1.2_WHT.eps │ │ │ └── 2022_FDC3_CompliantBadge_1.2_WHT.png │ │ └── 2.0 │ │ │ ├── 2022_FDC3_CompliantBadge_2.0.eps │ │ │ ├── 2022_FDC3_CompliantBadge_2.0.jpg │ │ │ ├── 2022_FDC3_CompliantBadge_2.0.png │ │ │ ├── 2022_FDC3_CompliantBadge_2.0_BLK.eps │ │ │ ├── 2022_FDC3_CompliantBadge_2.0_BLK.jpg │ │ │ ├── 2022_FDC3_CompliantBadge_2.0_BLK.png │ │ │ ├── 2022_FDC3_CompliantBadge_2.0_WHT.eps │ │ │ └── 2022_FDC3_CompliantBadge_2.0_WHT.png │ └── branding.md │ ├── src │ ├── mock │ │ ├── v2.0 │ │ │ ├── intent-h.ts │ │ │ ├── intent-i.ts │ │ │ ├── intent-d.ts │ │ │ ├── intent-g.ts │ │ │ └── channel.ts │ │ ├── constants.ts │ │ └── interfaces.ts │ └── context-types.ts │ ├── tsconfig.json │ ├── vitest.config.ts │ └── eslint.config.mjs ├── packages ├── fdc3-commonjs │ └── src │ │ └── index.ts ├── fdc3-get-agent │ ├── src │ │ ├── Fdc3Version.ts │ │ ├── util │ │ │ ├── Uuid.ts │ │ │ └── Logger.ts │ │ ├── ui │ │ │ ├── NullIntentResolver.ts │ │ │ └── NullChannelSelector.ts │ │ └── apps │ │ │ └── NoopAppSupport.ts │ ├── test │ │ ├── support │ │ │ ├── EventHandler.ts │ │ │ ├── MockCSSStyleDeclaration.ts │ │ │ ├── responses │ │ │ │ └── AutomaticResponses.ts │ │ │ └── MockStorage.ts │ │ ├── world │ │ │ └── index.ts │ │ ├── README.md │ │ └── features │ │ │ └── utils.feature │ ├── cucumber.yml │ └── eslint.config.mjs ├── fdc3-context │ ├── src │ │ └── index.ts │ ├── jest.config.js │ └── tsconfig.json ├── testing │ ├── src │ │ ├── world │ │ │ └── index.ts │ │ └── index.ts │ └── tsconfig.json ├── fdc3-standard │ ├── test │ │ ├── window.test.ts │ │ └── ContextTypes.test.ts │ ├── src │ │ ├── api │ │ │ ├── Listener.ts │ │ │ ├── Icon.ts │ │ │ ├── Image.ts │ │ │ ├── AppIntent.ts │ │ │ ├── IntentMetadata.ts │ │ │ └── ContextMetadata.ts │ │ ├── ui │ │ │ └── Connectable.ts │ │ ├── intents │ │ │ └── standard intents.json │ │ └── internal │ │ │ └── typeHelpers.ts │ ├── README.md │ ├── jest.config.js │ └── tsconfig.json ├── fdc3-schema │ ├── src │ │ └── index.ts │ ├── tsconfig.json │ └── schemas │ │ └── bridging │ │ ├── openBridgeRequest.schema.json │ │ ├── openBridgeResponse.schema.json │ │ ├── broadcastBridgeRequest.schema.json │ │ ├── findIntentBridgeRequest.schema.json │ │ ├── openBridgeErrorResponse.schema.json │ │ ├── raiseIntentBridgeRequest.schema.json │ │ ├── findIntentBridgeResponse.schema.json │ │ ├── raiseIntentBridgeResponse.schema.json │ │ ├── findInstancesBridgeRequest.schema.json │ │ ├── findInstancesBridgeResponse.schema.json │ │ ├── getAppMetadataBridgeRequest.schema.json │ │ ├── getAppMetadataBridgeResponse.schema.json │ │ ├── raiseIntentBridgeErrorResponse.schema.json │ │ ├── raiseIntentResultBridgeResponse.schema.json │ │ ├── findIntentBridgeErrorResponse.schema.json │ │ ├── findInstancesBridgeErrorResponse.schema.json │ │ ├── findIntentsByContextBridgeRequest.schema.json │ │ ├── findIntentsByContextBridgeResponse.schema.json │ │ ├── getAppMetadataBridgeErrorResponse.schema.json │ │ ├── privateChannelBroadcastBridgeRequest.schema.json │ │ ├── raiseIntentResultBridgeErrorResponse.schema.json │ │ ├── privateChannelOnDisconnectBridgeRequest.schema.json │ │ ├── findIntentsByContextBridgeErrorResponse.schema.json │ │ ├── privateChannelOnUnsubscribeBridgeRequest.schema.json │ │ ├── privateChannelEventListenerAddedBridgeRequest.schema.json │ │ ├── privateChannelEventListenerRemovedBridgeRequest.schema.json │ │ └── privateChannelOnAddContextListenerBridgeRequest.schema.json ├── fdc3-agent-proxy │ ├── src │ │ ├── heartbeat │ │ │ └── HeartbeatSupport.ts │ │ ├── apps │ │ │ └── AppSupport.ts │ │ ├── channels │ │ │ └── ChannelSupport.ts │ │ └── intents │ │ │ └── IntentSupport.ts │ ├── README.md │ ├── test │ │ ├── world │ │ │ └── index.ts │ │ ├── features │ │ │ ├── utils.feature │ │ │ └── heartbeat.feature │ │ └── support │ │ │ └── responses │ │ │ └── support.ts │ ├── cucumber.yml │ ├── eslint.config.mjs │ └── tsconfig.json └── fdc3 │ ├── tsconfig.json │ └── src │ └── index.ts ├── .eslintignore ├── .vscode └── settings.json ├── CODE_OF_CONDUCT.md ├── allow-list.json ├── LICENSE.spdx ├── .prettierignore ├── .github ├── CODEOWNERS ├── ISSUE_TEMPLATE │ └── ---question.md └── workflows │ └── semgrep.yml ├── .npmrc ├── .semgrepignore ├── netlify.toml └── .gitignore /.nvmrc: -------------------------------------------------------------------------------- 1 | 22 2 | -------------------------------------------------------------------------------- /.node-version: -------------------------------------------------------------------------------- 1 | 22 2 | -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | fdc3.finos.org -------------------------------------------------------------------------------- /website/.nvmrc: -------------------------------------------------------------------------------- 1 | 22 2 | -------------------------------------------------------------------------------- /website/.node-version: -------------------------------------------------------------------------------- 1 | 18.16.* -------------------------------------------------------------------------------- /website/src/components/Callout/styles.module.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | npx lint-staged 3 | -------------------------------------------------------------------------------- /toolbox/fdc3-workbench/.env: -------------------------------------------------------------------------------- 1 | SKIP_PREFLIGHT_CHECK=true -------------------------------------------------------------------------------- /packages/fdc3-commonjs/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@finos/fdc3'; 2 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | /node_modules/ 2 | dist/ 3 | /website/schema2Markdown.js -------------------------------------------------------------------------------- /packages/fdc3-get-agent/src/Fdc3Version.ts: -------------------------------------------------------------------------------- 1 | export const FDC3_VERSION = '2.2'; 2 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "typescript.tsdk": "node_modules/typescript/lib" 3 | } -------------------------------------------------------------------------------- /packages/fdc3-context/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from '../generated/context/ContextTypes'; 2 | -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/src/client/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/reference-ui/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /website/static/img/finos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/finos.png -------------------------------------------------------------------------------- /toolbox/fdc3-explained/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-explained/logo.png -------------------------------------------------------------------------------- /website/static/assets/api-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/assets/api-1.png -------------------------------------------------------------------------------- /website/static/assets/api-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/assets/api-2.png -------------------------------------------------------------------------------- /website/static/assets/api-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/assets/api-3.png -------------------------------------------------------------------------------- /website/static/assets/uc17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/assets/uc17.png -------------------------------------------------------------------------------- /website/static/assets/uc4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/assets/uc4.png -------------------------------------------------------------------------------- /website/static/assets/uc5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/assets/uc5.png -------------------------------------------------------------------------------- /website/static/img/oss_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/oss_logo.png -------------------------------------------------------------------------------- /website/static/img/fdc3-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/fdc3-logo.png -------------------------------------------------------------------------------- /website/static/img/users/bmo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/bmo.png -------------------------------------------------------------------------------- /website/static/img/users/citi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/citi.png -------------------------------------------------------------------------------- /website/static/img/users/ubs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/ubs.png -------------------------------------------------------------------------------- /website/versions.json: -------------------------------------------------------------------------------- 1 | [ 2 | "2.2", 3 | "2.1", 4 | "2.0", 5 | "1.2", 6 | "1.1", 7 | "1.0" 8 | ] 9 | -------------------------------------------------------------------------------- /website/static/assets/appd_dns.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/assets/appd_dns.png -------------------------------------------------------------------------------- /website/static/assets/fdc3-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/assets/fdc3-logo.png -------------------------------------------------------------------------------- /website/static/assets/use-cases.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/assets/use-cases.png -------------------------------------------------------------------------------- /website/static/img/community/lf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/community/lf.png -------------------------------------------------------------------------------- /website/static/img/finos-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/finos-white.png -------------------------------------------------------------------------------- /website/static/img/training/FCFP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/training/FCFP.png -------------------------------------------------------------------------------- /website/static/img/use-cases/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/use-cases/1.png -------------------------------------------------------------------------------- /website/static/img/use-cases/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/use-cases/10.png -------------------------------------------------------------------------------- /website/static/img/use-cases/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/use-cases/11.png -------------------------------------------------------------------------------- /website/static/img/use-cases/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/use-cases/12.png -------------------------------------------------------------------------------- /website/static/img/use-cases/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/use-cases/2.png -------------------------------------------------------------------------------- /website/static/img/use-cases/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/use-cases/3.png -------------------------------------------------------------------------------- /website/static/img/use-cases/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/use-cases/4.png -------------------------------------------------------------------------------- /website/static/img/use-cases/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/use-cases/5.png -------------------------------------------------------------------------------- /website/static/img/use-cases/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/use-cases/6.png -------------------------------------------------------------------------------- /website/static/img/use-cases/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/use-cases/7.png -------------------------------------------------------------------------------- /website/static/img/use-cases/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/use-cases/8.png -------------------------------------------------------------------------------- /website/static/img/use-cases/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/use-cases/9.png -------------------------------------------------------------------------------- /website/static/img/users/ChartIQ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/ChartIQ.png -------------------------------------------------------------------------------- /website/static/img/users/Cloud9.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/Cloud9.webp -------------------------------------------------------------------------------- /website/static/img/users/FINOS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/FINOS.png -------------------------------------------------------------------------------- /website/static/img/users/FactSet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/FactSet.png -------------------------------------------------------------------------------- /website/static/img/users/GLUE42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/GLUE42.png -------------------------------------------------------------------------------- /website/static/img/users/Genesis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/Genesis.png -------------------------------------------------------------------------------- /website/static/img/users/Openfin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/Openfin.png -------------------------------------------------------------------------------- /website/static/img/users/aladdin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/aladdin.png -------------------------------------------------------------------------------- /toolbox/fdc3-workbench/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /website/static/assets/next_version.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/assets/next_version.png -------------------------------------------------------------------------------- /website/static/img/favicon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/favicon/favicon.ico -------------------------------------------------------------------------------- /website/static/img/fdc3-background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/fdc3-background.png -------------------------------------------------------------------------------- /website/static/img/fdc3-logo-2019.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/fdc3-logo-2019.png -------------------------------------------------------------------------------- /website/static/img/fdc3-logo-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/fdc3-logo-white.png -------------------------------------------------------------------------------- /website/static/img/training/LFD237.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/training/LFD237.png -------------------------------------------------------------------------------- /website/static/img/users/ChartIQ.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/ChartIQ.webp -------------------------------------------------------------------------------- /website/static/img/users/FactSet.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/FactSet.webp -------------------------------------------------------------------------------- /website/static/img/users/Finsemble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/Finsemble.png -------------------------------------------------------------------------------- /website/static/img/users/GreenKey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/GreenKey.png -------------------------------------------------------------------------------- /website/static/img/users/GreenKey.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/GreenKey.webp -------------------------------------------------------------------------------- /website/static/img/users/IHSMarkit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/IHSMarkit.png -------------------------------------------------------------------------------- /website/static/img/users/JPMorgan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/JPMorgan.png -------------------------------------------------------------------------------- /website/static/img/users/JPMorgan.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/JPMorgan.webp -------------------------------------------------------------------------------- /website/static/img/users/Openfin.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/Openfin.webp -------------------------------------------------------------------------------- /website/static/img/users/RBCCMlogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/RBCCMlogo.png -------------------------------------------------------------------------------- /website/static/img/users/Refinitiv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/Refinitiv.png -------------------------------------------------------------------------------- /website/static/img/users/Symphony.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/Symphony.png -------------------------------------------------------------------------------- /website/static/img/users/adaptive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/adaptive.png -------------------------------------------------------------------------------- /website/static/img/users/adaptive.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/adaptive.webp -------------------------------------------------------------------------------- /website/static/img/users/blackrock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/blackrock.png -------------------------------------------------------------------------------- /website/static/img/users/flextrade.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/flextrade.jpg -------------------------------------------------------------------------------- /website/static/img/users/ipp-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/ipp-logo.png -------------------------------------------------------------------------------- /website/static/img/users/spglobal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/spglobal.png -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/images/appd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-for-web/demo/images/appd.png -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/images/demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-for-web/demo/images/demo.png -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/images/tab1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-for-web/demo/images/tab1.png -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/images/tab2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-for-web/demo/images/tab2.png -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/images/tab3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-for-web/demo/images/tab3.png -------------------------------------------------------------------------------- /toolbox/fdc3-workbench/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-workbench/public/favicon.ico -------------------------------------------------------------------------------- /website/static/assets/dab-overview-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/assets/dab-overview-1.png -------------------------------------------------------------------------------- /website/static/assets/dab-overview-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/assets/dab-overview-2.png -------------------------------------------------------------------------------- /website/static/assets/dab-overview-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/assets/dab-overview-3.png -------------------------------------------------------------------------------- /website/static/assets/dab-overview-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/assets/dab-overview-4.png -------------------------------------------------------------------------------- /website/static/assets/view_research.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/assets/view_research.png -------------------------------------------------------------------------------- /website/static/fonts/OpenSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/fonts/OpenSans-Regular.ttf -------------------------------------------------------------------------------- /website/static/fonts/Rokkitt-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/fonts/Rokkitt-Medium.ttf -------------------------------------------------------------------------------- /website/static/img/community/groups.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/community/groups.png -------------------------------------------------------------------------------- /website/static/img/community/youtube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/community/youtube.png -------------------------------------------------------------------------------- /website/static/img/training/LFEL1000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/training/LFEL1000.png -------------------------------------------------------------------------------- /website/static/img/training/fdc3-2.2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/training/fdc3-2.2.png -------------------------------------------------------------------------------- /website/static/img/use-cases/snippet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/use-cases/snippet.png -------------------------------------------------------------------------------- /website/static/img/users/Finsemble.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/Finsemble.webp -------------------------------------------------------------------------------- /website/static/img/users/Glue42_Logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/Glue42_Logo.jpg -------------------------------------------------------------------------------- /website/static/img/users/Glue42_Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/Glue42_Logo.png -------------------------------------------------------------------------------- /website/static/img/users/IHSMarkit.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/IHSMarkit.webp -------------------------------------------------------------------------------- /website/static/img/users/Refinitiv.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/Refinitiv.webp -------------------------------------------------------------------------------- /website/static/img/users/connectifi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/connectifi.png -------------------------------------------------------------------------------- /website/static/img/users/scottlogic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/scottlogic.png -------------------------------------------------------------------------------- /website/static/img/users/singletrack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/singletrack.png -------------------------------------------------------------------------------- /website/static/pdf/FDC3-Primer-2024.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/pdf/FDC3-Primer-2024.pdf -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/static/failing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/static/failing.png -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/static/running.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/static/running.png -------------------------------------------------------------------------------- /toolbox/fdc3-workbench/public/fdc3-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-workbench/public/fdc3-logo.png -------------------------------------------------------------------------------- /website/static/assets/fdc3-survey-1080.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/assets/fdc3-survey-1080.jpeg -------------------------------------------------------------------------------- /website/static/assets/version_selector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/assets/version_selector.png -------------------------------------------------------------------------------- /website/static/fonts/Rokkitt-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/fonts/Rokkitt-ExtraBold.ttf -------------------------------------------------------------------------------- /website/static/fonts/SpaceMono-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/fonts/SpaceMono-Regular.ttf -------------------------------------------------------------------------------- /website/static/img/fdc3-logo-2019-color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/fdc3-logo-2019-color.png -------------------------------------------------------------------------------- /website/static/img/meetups/fdc3-sweden.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/meetups/fdc3-sweden.png -------------------------------------------------------------------------------- /website/static/img/users/Dow_Jones_Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/Dow_Jones_Logo.png -------------------------------------------------------------------------------- /website/static/img/users/MorganStanley.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/MorganStanley.png -------------------------------------------------------------------------------- /website/static/img/users/MorganStanley.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/MorganStanley.webp -------------------------------------------------------------------------------- /website/static/img/users/deutsche-bank.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/deutsche-bank.webp -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/static/selecting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/static/selecting.png -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/images/console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-for-web/demo/images/console.png -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/static/da/corner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-for-web/demo/static/da/corner.png -------------------------------------------------------------------------------- /website/static/assets/appd_static_config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/assets/appd_static_config.png -------------------------------------------------------------------------------- /website/static/fonts/Electrolize-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/fonts/Electrolize-Regular.ttf -------------------------------------------------------------------------------- /website/static/img/community/certified-1.2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/community/certified-1.2.png -------------------------------------------------------------------------------- /website/static/img/community/certified-2.0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/community/certified-2.0.png -------------------------------------------------------------------------------- /website/static/img/favicon/favicon-finos.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/favicon/favicon-finos.ico -------------------------------------------------------------------------------- /website/static/img/favicon/favicon-white.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/favicon/favicon-white.ico -------------------------------------------------------------------------------- /website/static/img/users/nexj-systems-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/nexj-systems-logo.png -------------------------------------------------------------------------------- /website/static/img/users/norman-and-sons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/norman-and-sons.png -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Code of Conduct for FDC3 2 | 3 | Please see the [Community Code of Conduct](https://www.finos.org/code-of-conduct). 4 | -------------------------------------------------------------------------------- /toolbox/fdc3-workbench/public/fdc3-icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-workbench/public/fdc3-icon-192.png -------------------------------------------------------------------------------- /toolbox/fdc3-workbench/public/fdc3-icon-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-workbench/public/fdc3-icon-256.png -------------------------------------------------------------------------------- /website/static/assets/appd_launcher_embedded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/assets/appd_launcher_embedded.png -------------------------------------------------------------------------------- /website/static/img/favicon/favicon-wordmark.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/favicon/favicon-wordmark.ico -------------------------------------------------------------------------------- /website/static/img/users/fdc3-desktop-agent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/fdc3-desktop-agent.png -------------------------------------------------------------------------------- /allow-list.json: -------------------------------------------------------------------------------- 1 | { 2 | "ignore": [ 3 | { "id": "CVE-2023-45857", "reason": "False positive as already on 0.28.1" } 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /packages/fdc3-get-agent/test/support/EventHandler.ts: -------------------------------------------------------------------------------- 1 | export type EventHandler = { 2 | type: string; 3 | callback: (e: Event) => void; 4 | }; 5 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/static/finos-icon-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/static/finos-icon-256.png -------------------------------------------------------------------------------- /website/src/components/MonoIcon/styles.module.css: -------------------------------------------------------------------------------- 1 | .fill { 2 | fill: black; 3 | } 4 | 5 | html[data-theme=dark] .fill { 6 | fill: white; 7 | } 8 | -------------------------------------------------------------------------------- /website/static/assets/appd_launcher_aggregated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/assets/appd_launcher_aggregated.png -------------------------------------------------------------------------------- /website/static/assets/appd_launcher_standalone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/assets/appd_launcher_standalone.png -------------------------------------------------------------------------------- /website/static/assets/appd_service_distribution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/assets/appd_service_distribution.png -------------------------------------------------------------------------------- /website/static/assets/latest_version_selector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/assets/latest_version_selector.png -------------------------------------------------------------------------------- /website/static/img/users/OpenFin_Here_Browser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/OpenFin_Here_Browser.png -------------------------------------------------------------------------------- /website/static/img/community/fdc3-training-course.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/community/fdc3-training-course.png -------------------------------------------------------------------------------- /packages/fdc3-get-agent/src/util/Uuid.ts: -------------------------------------------------------------------------------- 1 | import { v4 as uuidv4 } from 'uuid'; 2 | 3 | export function createUUID(): string { 4 | return uuidv4(); 5 | } 6 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/static/scott-logic-icon-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/static/scott-logic-icon-256.png -------------------------------------------------------------------------------- /website/static/img/users/OpenFin_Here_Browser_250x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/users/OpenFin_Here_Browser_250x120.png -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/images/intent-resolver/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-for-web/demo/images/intent-resolver/default.png -------------------------------------------------------------------------------- /website/static/img/training/how-to-add-fdc3-to-your-apps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/training/how-to-add-fdc3-to-your-apps.png -------------------------------------------------------------------------------- /packages/testing/src/world/index.ts: -------------------------------------------------------------------------------- 1 | import { World } from '@cucumber/cucumber'; 2 | 3 | export class PropsWorld extends World { 4 | props: Record = {}; 5 | } 6 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/FDC3-Certified-Terms.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/FDC3-Certified-Terms.pdf -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/participation-form.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/participation-form.pdf -------------------------------------------------------------------------------- /website/static/img/training/fdc3-developer-training-workshop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/website/static/img/training/fdc3-developer-training-workshop.png -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/images/channel-selector/demo-collapsed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-for-web/demo/images/channel-selector/demo-collapsed.png -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/images/channel-selector/demo-expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-for-web/demo/images/channel-selector/demo-expanded.png -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/images/channel-selector/default-collapsed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-for-web/demo/images/channel-selector/default-collapsed.png -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/images/channel-selector/default-expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-for-web/demo/images/channel-selector/default-expanded.png -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/images/intent-resolver/demo-implementation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-for-web/demo/images/intent-resolver/demo-implementation.png -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/graphics/2022_FDC3_CompliantBadges.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/graphics/2022_FDC3_CompliantBadges.pdf -------------------------------------------------------------------------------- /website/src/components/TypeText/styles.module.css: -------------------------------------------------------------------------------- 1 | .animTypewriter { 2 | font-family: Rokkitt; 3 | margin: 0 auto; 4 | font-size: 2.5rem; 5 | text-align: center; 6 | color: #777; 7 | } 8 | -------------------------------------------------------------------------------- /packages/fdc3-standard/test/window.test.ts: -------------------------------------------------------------------------------- 1 | describe('Window object', () => { 2 | it('fdc3 property should be present but undefined', () => { 3 | expect(window.fdc3).toBe(undefined); 4 | }); 5 | }); 6 | -------------------------------------------------------------------------------- /website/src/components/Callout/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styles from './styles.module.css' 3 | 4 | 5 | export default function Callout({children}) { 6 | return (
{children}
) 7 | } -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/branding.md: -------------------------------------------------------------------------------- 1 | ## FDC3 Branding 2 | 3 | - [Branding Guide (pdf)](2022_FDC3_CompliantBadges.pdf) 4 | - [FDC3 Certified Badges In Various Formats (zip)](FDC3-Compliant-Badges.zip) -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/graphics/2.2/2024_FDC3_ConformanceBadge.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/graphics/2.2/2024_FDC3_ConformanceBadge.eps -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/graphics/2.2/2024_FDC3_ConformanceBadge.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/graphics/2.2/2024_FDC3_ConformanceBadge.jpg -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/graphics/2.2/2024_FDC3_ConformanceBadge.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/graphics/2.2/2024_FDC3_ConformanceBadge.pdf -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/graphics/2.2/2024_FDC3_ConformanceBadge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/graphics/2.2/2024_FDC3_ConformanceBadge.png -------------------------------------------------------------------------------- /LICENSE.spdx: -------------------------------------------------------------------------------- 1 | SPDXVersion: SPDX-2.0 2 | DataLicense: CC0-1.0 3 | Creator: FDC3 4 | PackageName: FDC3 5 | PackageOriginator: FDC3 6 | PackageHomePage: https://github.com/finos/FDC3 7 | PackageLicenseDeclared: Apache-2.0 8 | -------------------------------------------------------------------------------- /packages/fdc3-schema/src/index.ts: -------------------------------------------------------------------------------- 1 | import * as BrowserTypes from '../generated/api/BrowserTypes'; 2 | import * as BridgingTypes from '../generated/bridging/BridgingTypes'; 3 | 4 | export { BrowserTypes, BridgingTypes }; 5 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/graphics/1.2/2022_FDC3_CompliantBadge_1.2.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/graphics/1.2/2022_FDC3_CompliantBadge_1.2.eps -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/graphics/1.2/2022_FDC3_CompliantBadge_1.2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/graphics/1.2/2022_FDC3_CompliantBadge_1.2.jpg -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/graphics/1.2/2022_FDC3_CompliantBadge_1.2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/graphics/1.2/2022_FDC3_CompliantBadge_1.2.png -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/graphics/2.0/2022_FDC3_CompliantBadge_2.0.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/graphics/2.0/2022_FDC3_CompliantBadge_2.0.eps -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/graphics/2.0/2022_FDC3_CompliantBadge_2.0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/graphics/2.0/2022_FDC3_CompliantBadge_2.0.jpg -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/graphics/2.0/2022_FDC3_CompliantBadge_2.0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/graphics/2.0/2022_FDC3_CompliantBadge_2.0.png -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/src/client/apps/app3.ts: -------------------------------------------------------------------------------- 1 | import './app1'; 2 | import './app2'; 3 | 4 | /** 5 | * This demonstrates getting two separate APIs in the same app, and using them for 6 | * intra-app comms. 7 | */ 8 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/graphics/1.2/2022_FDC3_CompliantBadge_1.2_BLK.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/graphics/1.2/2022_FDC3_CompliantBadge_1.2_BLK.eps -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/graphics/1.2/2022_FDC3_CompliantBadge_1.2_BLK.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/graphics/1.2/2022_FDC3_CompliantBadge_1.2_BLK.jpg -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/graphics/1.2/2022_FDC3_CompliantBadge_1.2_BLK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/graphics/1.2/2022_FDC3_CompliantBadge_1.2_BLK.png -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/graphics/1.2/2022_FDC3_CompliantBadge_1.2_WHT.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/graphics/1.2/2022_FDC3_CompliantBadge_1.2_WHT.eps -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/graphics/1.2/2022_FDC3_CompliantBadge_1.2_WHT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/graphics/1.2/2022_FDC3_CompliantBadge_1.2_WHT.png -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/graphics/2.0/2022_FDC3_CompliantBadge_2.0_BLK.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/graphics/2.0/2022_FDC3_CompliantBadge_2.0_BLK.eps -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/graphics/2.0/2022_FDC3_CompliantBadge_2.0_BLK.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/graphics/2.0/2022_FDC3_CompliantBadge_2.0_BLK.jpg -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/graphics/2.0/2022_FDC3_CompliantBadge_2.0_BLK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/graphics/2.0/2022_FDC3_CompliantBadge_2.0_BLK.png -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/graphics/2.0/2022_FDC3_CompliantBadge_2.0_WHT.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/graphics/2.0/2022_FDC3_CompliantBadge_2.0_WHT.eps -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/graphics/2.0/2022_FDC3_CompliantBadge_2.0_WHT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/graphics/2.0/2022_FDC3_CompliantBadge_2.0_WHT.png -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/graphics/2.2/2024_FDC3_ConformanceBadge_BLK.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/graphics/2.2/2024_FDC3_ConformanceBadge_BLK.eps -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/graphics/2.2/2024_FDC3_ConformanceBadge_BLK.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/graphics/2.2/2024_FDC3_ConformanceBadge_BLK.jpg -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/graphics/2.2/2024_FDC3_ConformanceBadge_BLK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/graphics/2.2/2024_FDC3_ConformanceBadge_BLK.png -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/graphics/2.2/2024_FDC3_ConformanceBadge_WHT.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/graphics/2.2/2024_FDC3_ConformanceBadge_WHT.eps -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/terms-conditions/graphics/2.2/2024_FDC3_ConformanceBadge_WHT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/FDC3/HEAD/toolbox/fdc3-conformance/terms-conditions/graphics/2.2/2024_FDC3_ConformanceBadge_WHT.png -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # ignore files 2 | *.md 3 | *.html 4 | *.yml 5 | *.yaml 6 | *.json 7 | 8 | # ignore folders 9 | website 10 | dist 11 | src/app-directory/*/target 12 | node_modules 13 | coverage 14 | .nyc_output 15 | build -------------------------------------------------------------------------------- /toolbox/fdc3-workbench/NOTICE: -------------------------------------------------------------------------------- 1 | FDC3 Workbench - Fintech Open Source Foundation (https://www.finos.org/) 2 | Copyright 2021-2023 Finsemble, inc. info@finsemble.com 3 | Copyright 2021-2023 Contributors to the FDC3 standards project 4 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/src/mock/v2.0/intent-h.ts: -------------------------------------------------------------------------------- 1 | import { getAgent } from '@finos/fdc3'; 2 | import { closeWindowOnCompletion } from './mock-functions'; 3 | 4 | getAgent().then(async fdc3 => { 5 | await closeWindowOnCompletion(fdc3); 6 | }); 7 | -------------------------------------------------------------------------------- /website/src/components/TypeText/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styles from './styles.module.css' 3 | 4 | 5 | export default function TypeText({children}) { 6 | return (
{children}
) 7 | } -------------------------------------------------------------------------------- /packages/fdc3-agent-proxy/src/heartbeat/HeartbeatSupport.ts: -------------------------------------------------------------------------------- 1 | import { Connectable } from '@finos/fdc3-standard'; 2 | 3 | // eslint-disable-next-line @typescript-eslint/no-empty-object-type 4 | export interface HeartbeatSupport extends Connectable { } 5 | -------------------------------------------------------------------------------- /toolbox/fdc3-workbench/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "module": "ESNext", 5 | "moduleResolution": "Node", 6 | "allowSyntheticDefaultImports": true 7 | }, 8 | "include": ["vite.config.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/src/message-types.ts: -------------------------------------------------------------------------------- 1 | export const DA_HELLO = 'da-hello'; 2 | export const APP_HELLO = 'app-hello'; 3 | export const APP_GOODBYE = 'app-goodbye'; 4 | export const FDC3_APP_EVENT = 'fdc3-app-event'; 5 | export const FDC3_DA_EVENT = 'fdc3-da-event'; 6 | -------------------------------------------------------------------------------- /website/src/components/Feature/index.js: -------------------------------------------------------------------------------- 1 | const React = require('react'); 2 | 3 | export default (props) => { 4 | return (
5 | {props.children} 6 |
) 7 | } -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # fdc3-maintainers will be default reviewers for everything in the repo unless a later match takes precedence 2 | * @finos/fdc3-maintainers 3 | 4 | # Any changes to this CODEOWNERS file should be reviewed by finos-admins 5 | /.github/CODEOWNERS @finos/finos-admins 6 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | # Omit the registry url which can be an organization's internal npm mirror when generating package-lock.json file 2 | # see: https://github.com/npm/cli/pull/4874 3 | # and https://docs.npmjs.com/cli/v8/using-npm/config#omit-lockfile-registry-resolved 4 | omit-lockfile-registry-resolved = true -------------------------------------------------------------------------------- /packages/fdc3-get-agent/test/support/MockCSSStyleDeclaration.ts: -------------------------------------------------------------------------------- 1 | export class MockCSSStyleDeclaration { 2 | setProperty(name: string, value: string) { 3 | (this as any)[name] = value; 4 | } 5 | 6 | removeProperty(name: string) { 7 | delete (this as any)[name]; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /website/versioned_docs/version-1.0/api/Context.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_label: Context 3 | title: Context 4 | hide_title: true 5 | original_id: Context 6 | --- 7 | # `Context` 8 | 9 | ```typescript 10 | type Context = object; 11 | ``` 12 | 13 | The base object that all contexts should extend. 14 | -------------------------------------------------------------------------------- /website/versioned_docs/version-1.1/api/Context.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_label: Context 3 | title: Context 4 | hide_title: true 5 | original_id: Context 6 | --- 7 | # `Context` 8 | 9 | ```typescript 10 | type Context = object; 11 | ``` 12 | 13 | The base object that all contexts should extend. 14 | -------------------------------------------------------------------------------- /website/versioned_docs/version-1.2/api/Context.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_label: Context 3 | title: Context 4 | hide_title: true 5 | original_id: Context 6 | --- 7 | # `Context` 8 | 9 | ```typescript 10 | type Context = object; 11 | ``` 12 | 13 | The base object that all contexts should extend. 14 | -------------------------------------------------------------------------------- /packages/fdc3-context/jest.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('jest').Config} */ 2 | module.exports = { 3 | moduleFileExtensions: ['js', 'ts'], 4 | globals: {}, 5 | transform: { 6 | '^.+\\.ts?$': ['ts-jest', { isolatedModules: true }], 7 | }, 8 | testRegex: '.+\\.test\\.ts?$', 9 | }; 10 | -------------------------------------------------------------------------------- /packages/fdc3-standard/src/api/Listener.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * SPDX-License-Identifier: Apache-2.0 3 | * Copyright FINOS FDC3 contributors - see NOTICE file 4 | */ 5 | 6 | export interface Listener { 7 | /** 8 | * Unsubscribe the listener object. 9 | */ 10 | unsubscribe(): Promise; 11 | } 12 | -------------------------------------------------------------------------------- /packages/fdc3-standard/src/ui/Connectable.ts: -------------------------------------------------------------------------------- 1 | //TODO: move this out of fdc3-standard into another package - its an implementation detail of GetAgent and used in fdc3-get-agent and fdc3-agent-proxy 2 | export interface Connectable { 3 | connect(): Promise; 4 | 5 | disconnect(): Promise; 6 | } 7 | -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/static/da/embed.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Desktop Agent 5 | 6 | 7 | 8 | 9 | 10 |

Embedded iframe - never seen!

11 | 12 | 13 | -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/static/app2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | App 2 5 | 6 | 7 | 8 | 9 | 10 |

FDC3 For the Web App2

11 |
12 | 13 | 14 | -------------------------------------------------------------------------------- /packages/fdc3-agent-proxy/README.md: -------------------------------------------------------------------------------- 1 | # FDC3 Agent Proxy 2 | 3 | This package contains complete implementation of the FDC3 Desktop Agent Communication Protocol (DACP). 4 | 5 | Further details: 6 | - https://github.com/finos/FDC3 7 | - [FDC3 Specification](https://fdc3.finos.org/) 8 | - Main FDC3 module: https://www.npmjs.com/package/@finos/fdc3 -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/src/mock/v2.0/intent-i.ts: -------------------------------------------------------------------------------- 1 | import { closeWindowOnCompletion } from './mock-functions'; 2 | import { getAgent } from '@finos/fdc3'; 3 | 4 | getAgent().then(async fdc3 => { 5 | await closeWindowOnCompletion(fdc3); 6 | fdc3.addIntentListener('MadeUpIntent', async context => { 7 | return context; 8 | }); 9 | }); 10 | -------------------------------------------------------------------------------- /packages/fdc3-get-agent/test/support/responses/AutomaticResponses.ts: -------------------------------------------------------------------------------- 1 | import { InstanceID } from '@finos/fdc3-web-impl'; 2 | import { TestServerContext } from '../TestServerContext'; 3 | 4 | export interface AutomaticResponse { 5 | filter: (t: string) => boolean; 6 | action: (input: object, m: TestServerContext, from: InstanceID) => Promise; 7 | } 8 | -------------------------------------------------------------------------------- /.semgrepignore: -------------------------------------------------------------------------------- 1 | website/** 2 | 3 | # Just used for build so ignoring 4 | s2tQuicktypeUtil.js 5 | t2sQuicktypeUtil.js 6 | 7 | # API schema set for localhost gets picked up by semgrep rule 8 | schemas/bridgingAsyncAPI/bridgingAsyncAPI.json 9 | 10 | # demo apps get picked up for not having integrity headers 11 | toolbox/fdc3-for-web/demo/src/client/apps/** 12 | -------------------------------------------------------------------------------- /netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | ignore = "git diff --quiet $CACHED_COMMIT_REF $COMMIT_REF . ../{packages,website,toolbox}/" 3 | 4 | [[headers]] 5 | # Define which paths this specific [[headers]] block will cover. 6 | for = "/*" 7 | [headers.values] 8 | Access-Control-Allow-Origin = "*" 9 | 10 | [build.environment] 11 | NODE_VERSION = "22" 12 | -------------------------------------------------------------------------------- /packages/fdc3-standard/README.md: -------------------------------------------------------------------------------- 1 | # FDC3 Standard Module 2 | 3 | Interface definitions for the FDC3 standard in TypeScript (e.g. the `DesktopAgent` interface) and the app directory schema. 4 | 5 | Further details: 6 | - https://github.com/finos/FDC3 7 | - [FDC3 Specification](https://fdc3.finos.org/) 8 | - Main FDC3 module: https://www.npmjs.com/package/@finos/fdc3 -------------------------------------------------------------------------------- /website/data/get-involved/5.mdx: -------------------------------------------------------------------------------- 1 | ## General Meeting 2 | 3 | - You can also attend the quarterly [FDC3 General Meeting](https://github.com/finos/FDC3/issues?q=label%3A%22General+Meeting%22): you can find meeting details in the [FINOS Project Calendar](https://calendar.google.com/calendar/u/0/embed?src=finos.org_fac8mo1rfc6ehscg0d80fi8jig@group.calendar.google.com). 4 | -------------------------------------------------------------------------------- /packages/fdc3-agent-proxy/test/world/index.ts: -------------------------------------------------------------------------------- 1 | import { setWorldConstructor } from '@cucumber/cucumber'; 2 | import { TestMessaging } from '../support/TestMessaging'; 3 | import { PropsWorld } from '@finos/testing'; 4 | 5 | export class CustomWorld extends PropsWorld { 6 | messaging: TestMessaging | null = null; 7 | } 8 | 9 | setWorldConstructor(CustomWorld); 10 | -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/static/app1/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | App 1 5 | 6 | 7 | 8 | 9 | 10 |

FDC3 For the Web App1

11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /website/static/schemas/2.0/nothing.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.0/nothing.schema.json", 4 | "type": "object", 5 | "title": "Nothing", 6 | "allOf": [{ "$ref": "context.schema.json#" }], 7 | "properties": { 8 | "type": { "const": "fdc3.nothing" } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/static/app6/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | App 6 5 | 6 | 7 | 8 | 9 | 10 |

FDC3 For the Web App6

11 |

Asks for an intent result

12 |
13 | 14 | 15 | -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/static/embed/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Desktop Agent - Embedded Communications Agent 5 | 6 | 7 | 8 | 9 | 10 |

11 | Nothing to see here 12 |

13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /website/data/get-involved/1.mdx: -------------------------------------------------------------------------------- 1 | ## Collaborate with the Community 2 | 3 | Most FDC3 collaboration takes place in the [FDC3 GitHub repository](https://github.com/finos/FDC3), where you can raise [issues](https://github.com/finos/FDC3/issues), submit [pull requests](https://github.com/finos/FDC3/pulls) and view [meeting minutes](https://github.com/finos/FDC3/issues?q=label%3Ameeting+). -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/static/app4/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | App 4 5 | 6 | 7 | 8 | 9 | 10 |

FDC3 For the Web App4

11 |

Listens for the ViewNews intent...

12 |
13 | 14 | 15 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/---question.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: "\U0001F917 Question" 3 | about: "If you have a questions about FDC3. \U0001F4AC" 4 | title: 'Question: ' 5 | labels: 'question' 6 | assignees: '' 7 | --- 8 | 9 | ### Question Area 10 | 11 | - [ ] App Directory 12 | - [ ] API 13 | - [ ] Context Data 14 | - [ ] Intents 15 | - [ ] Use Cases 16 | - [ ] Other 17 | 18 | ### Question 19 | -------------------------------------------------------------------------------- /website/static/schemas/2.0/app-directory.html: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | -------------------------------------------------------------------------------- /website/static/schemas/2.1/app-directory.html: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/app-directory.html: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | -------------------------------------------------------------------------------- /website/static/schemas/next/app-directory.html: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/static/v2.0/intent-d/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Conformance Framework (v2.0) Mock Intent App D

10 |

This app is only used by the conformance framework for intent test purposes.

11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.root.json", 3 | "compilerOptions": { 4 | "rootDirs": [ 5 | "src", 6 | ], 7 | "outDir": "dist", 8 | }, 9 | "include": [ 10 | "src" 11 | ], 12 | "references": [ 13 | { 14 | "path": "../../packages/fdc3" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/static/app3/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | App 3 5 | 6 | 7 | 8 | 9 | 10 |

FDC3 For the Web App3

11 | 12 |
13 | 14 | 15 | -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/static/app5/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | App 5 5 | 6 | 7 | 8 | 9 | 10 |

FDC3 For the Web App5

11 |

Listens for the ViewNews + ViewQuote intents

12 |
13 | 14 | 15 | -------------------------------------------------------------------------------- /packages/testing/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.root.json", 3 | "compilerOptions": { 4 | "rootDirs": [ 5 | "src" 6 | ], 7 | "outDir": "dist", 8 | }, 9 | "include": [ 10 | "src" 11 | ], 12 | "exclude": [ 13 | "test/**", 14 | "dist/**" 15 | ], 16 | "references": [ 17 | { 18 | "path": "../fdc3-standard" 19 | } 20 | ] 21 | } -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/static/app7/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | App 7 5 | 6 | 7 | 8 | 9 | 10 |

FDC3 For the Web App7

11 |

Asks for an intent result, involves intent resolver

12 |
13 | 14 | 15 | -------------------------------------------------------------------------------- /website/src/pages/schemas/2.0/app-directory.html: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | -------------------------------------------------------------------------------- /website/src/pages/schemas/next/app-directory.html: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vitest/config'; 2 | 3 | export default defineConfig({ 4 | test: { 5 | browser: { 6 | enabled: true, 7 | provider: 'preview', 8 | instances: [ 9 | { 10 | browser: 'chromium', 11 | setupFile: './chromium-setup.js', 12 | }, 13 | ], 14 | }, 15 | }, 16 | }); 17 | -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /website/static/schemas/1.1/app-directory.html: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /website/static/schemas/1.2/app-directory.html: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/reference-ui/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /website/src/components/Container/index.js: -------------------------------------------------------------------------------- 1 | const React = require('react'); 2 | 3 | export default (props) => { 4 | return ( 5 |
6 |
7 |
8 | {props.children} 9 |
10 |
11 |
) 12 | } -------------------------------------------------------------------------------- /website/src/pages/schemas/1.1/app-directory.html: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /website/src/pages/schemas/1.2/app-directory.html: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /packages/fdc3-get-agent/cucumber.yml: -------------------------------------------------------------------------------- 1 | default: 2 | format: 3 | - html:cucumber-report.html 4 | - "@cucumber/pretty-formatter" 5 | - junit:test-results.xml 6 | paths: 7 | - test/features/*.feature 8 | require: 9 | - test/step-definitions/*.steps.ts 10 | - test/support/*.ts 11 | - test/world/index.ts 12 | requireModule: 13 | - ts-node/register 14 | tags: "not @failing" 15 | 16 | -------------------------------------------------------------------------------- /packages/fdc3-agent-proxy/cucumber.yml: -------------------------------------------------------------------------------- 1 | default: 2 | format: 3 | - html:cucumber-report.html 4 | - "@cucumber/pretty-formatter" 5 | - junit:test-results.xml 6 | paths: 7 | - test/features/*.feature 8 | require: 9 | - test/step-definitions/*.steps.ts 10 | - test/support/*.ts 11 | - test/world/index.ts 12 | requireModule: 13 | - ts-node/register 14 | tags: "not @failing" 15 | 16 | -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/reference-ui/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite'; 2 | 3 | // https://vitejs.dev/config/ 4 | export default defineConfig({ 5 | server: { port: 4002 }, 6 | build: { 7 | outDir: 'dist', 8 | rollupOptions: { 9 | input: { 10 | channelSelector: 'channel_selector.html', 11 | intentResolver: 'intent_resolver.html', 12 | }, 13 | }, 14 | }, 15 | }); 16 | -------------------------------------------------------------------------------- /website/src/components/ImageBullet/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styles from './styles.module.css' 3 | 4 | export default ({children, image, alt}) => { 5 | return
6 |
7 | {alt} 8 |
9 |
10 | {children} 11 |
12 |
13 | } -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/src/mock/v2.0/intent-d.ts: -------------------------------------------------------------------------------- 1 | import { closeWindowOnCompletion } from './mock-functions'; 2 | import { getAgent } from '@finos/fdc3'; 3 | import { Intent } from '../../test/support/intent-support-2.0'; 4 | 5 | getAgent().then(async fdc3 => { 6 | await closeWindowOnCompletion(fdc3); 7 | fdc3.addIntentListener(Intent.sharedTestingIntent2, async context => { 8 | return context; 9 | }); 10 | }); 11 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/src/mock/v2.0/intent-g.ts: -------------------------------------------------------------------------------- 1 | import { closeWindowOnCompletion } from './mock-functions'; 2 | import { getAgent } from '@finos/fdc3'; 3 | import { Intent } from '../../test/support/intent-support-2.0'; 4 | 5 | getAgent().then(async fdc3 => { 6 | await closeWindowOnCompletion(fdc3); 7 | fdc3.addIntentListener(Intent.sharedTestingIntent2, async context => { 8 | return context; 9 | }); 10 | }); 11 | -------------------------------------------------------------------------------- /packages/fdc3-get-agent/src/ui/NullIntentResolver.ts: -------------------------------------------------------------------------------- 1 | import { IntentResolver, IntentResolutionChoice } from '@finos/fdc3-standard'; 2 | 3 | /** Implementation used when an injected IntentResolver is not in use. */ 4 | export class NullIntentResolver implements IntentResolver { 5 | async disconnect(): Promise { } 6 | async connect(): Promise { } 7 | async chooseIntent(): Promise { } 8 | } 9 | -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/fdc3-web-impl/cucumber.yml: -------------------------------------------------------------------------------- 1 | default: 2 | format: 3 | - html:cucumber-report.html 4 | - "@cucumber/pretty-formatter" 5 | - junit:test-results.xml 6 | paths: 7 | - test/features/*.feature 8 | require: 9 | - test/step-definitions/*.steps.ts 10 | - test/support/*.ts 11 | - test/world/index.ts 12 | requireModule: 13 | - ts-node/register 14 | tags: "not @failing" 15 | 16 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/static/v2.0/general/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |

Conformance Framework (v2.0) Mock App

9 |

This app is only used by the conformance framework for test purposes.

10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/static/v2.0/open-a/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |

Conformance Framework (v2.0) Open App A

9 |

This app is only used by the conformance framework for test purposes.

10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/static/v2.0/open-b/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |

Conformance Framework (v2.0) Open App B

9 |

This app is only used by the conformance framework for test purposes.

10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/static/v2.0/basic/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Conformance Framework (v2.0) Basic Mock app

10 |

This app is only used by the conformance framework for intent test purposes.

11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/static/v2.0/metadata/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Conformance Framework Metadata App

10 |

This app is only used by the conformance framework for intent test purposes.

11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/static/v2.0/intent-a/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Conformance Framework (v2.0) Mock Intent App A

10 |

This app is only used by the conformance framework for intent test purposes.

11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/static/v2.0/intent-b/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Conformance Framework (v2.0) Mock Intent App B

10 |

This app is only used by the conformance framework for intent test purposes.

11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /website/docs/use-cases/meeting-minutes/2020-03-19 uc-wg meeting notes.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | --- 4 | **Meeting not held due to low attendance** 5 | 6 | **Date**: 19 March 2020 7 | 8 | **Attendees** 9 | 10 | | Name | Organization | GitHub ID | 11 | | ------------- | ------------- | ------------- | 12 | 13 | ## Agenda 14 | ### 1. 15 | 16 | 17 | ### 4. AOB 18 | - 19 | 20 | ## Decisions Made 21 | - (see inline) 22 | 23 | ## Action Items 24 | 25 | -------------------------------------------------------------------------------- /website/versioned_docs/version-1.0/use-cases/meeting-minutes/2020-03-19 uc-wg meeting notes.md: -------------------------------------------------------------------------------- 1 | **Meeting not held due to low attendance** 2 | 3 | **Date**: 19 March 2020 4 | 5 | **Attendees** 6 | 7 | | Name | Organization | GitHub ID | 8 | | ------------- | ------------- | ------------- | 9 | 10 | ## Agenda 11 | ### 1. 12 | 13 | 14 | ### 4. AOB 15 | - 16 | 17 | ## Decisions Made 18 | - (see inline) 19 | 20 | ## Action Items 21 | 22 | -------------------------------------------------------------------------------- /packages/fdc3-standard/jest.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('jest').Config} */ 2 | module.exports = { 3 | moduleFileExtensions: ['js', 'ts'], 4 | globals: {}, 5 | transform: { 6 | '^.+\\.ts?$': ['ts-jest', { isolatedModules: true }], 7 | }, 8 | testRegex: '.+\\.test\\.ts?$', 9 | testEnvironment: 'jsdom', 10 | reporters: ['default', 'jest-junit'], 11 | collectCoverage: true, 12 | coverageReporters: ['lcov', 'text', 'json'], 13 | }; 14 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/static/v2.0/channels/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Conformance Framework (v2.0) Channels Mock App

10 |

This app is only used by the conformance framework for test purposes

11 |

12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/static/v2.0/intent-c/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Conformance Framework (v2.0) Mock Intent App C

10 |

This app is only used by the conformance framework for intent test purposes.

11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/static/v2.0/intent-e/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Conformance Framework (v2.0) Mock Intent App E

10 |

This app is only used by the conformance framework for intent test purposes.

11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/static/v2.0/intent-f/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Conformance Framework (v2.0) Mock Intent App F

10 |

This app is only used by the conformance framework for intent test purposes.

11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/static/v2.0/intent-g/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Conformance Framework (v2.0) Mock Intent App G

10 |

This app is only used by the conformance framework for intent test purposes.

11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/static/v2.0/intent-h/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Conformance Framework (v2.0) Mock Intent App H

10 |

This app is only used by the conformance framework for intent test purposes.

11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/static/v2.0/intent-i/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Conformance Framework (v2.0) Mock Intent App I

10 |

This app is only used by the conformance framework for intent test purposes.

11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/static/v2.0/intent-j/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Conformance Framework (v2.0) Mock Intent App J

10 |

This app is only used by the conformance framework for intent test purposes.

11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/static/v2.0/intent-k/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Conformance Framework (v2.0) Mock Intent App K

10 |

This app is only used by the conformance framework for intent test purposes.

11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /packages/fdc3-schema/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.root.json", 3 | "compilerOptions": { 4 | "rootDirs": [ 5 | "src", 6 | "generated" 7 | ], 8 | "outDir": "dist", 9 | }, 10 | "include": [ 11 | "src/**/*.ts", 12 | "generated/**/*.ts", 13 | "schemas/**/*.json" 14 | ], 15 | "exclude": [ 16 | "dist/**" 17 | ], 18 | "references": [] 19 | } -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/static/da/intent-resolver.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Desktop Agent Intent Resolver 4 | 5 | 6 | 7 | 8 | 9 |

Intent Resolution

10 |
    11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /website/versioned_docs/version-1.1/api/ref/IntentMetadata.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_label: IntentMetadata 3 | title: IntentMetadata 4 | hide_title: true 5 | original_id: IntentMetadata 6 | --- 7 | # `IntentMetadata` 8 | 9 | ```ts 10 | interface IntentMetadata { 11 | name: string; 12 | displayName: string; 13 | } 14 | ``` 15 | 16 | The Interface used to describe an Intent within the platform. 17 | 18 | 19 | #### See also 20 | * [`AppIntent.intent`](AppIntent) -------------------------------------------------------------------------------- /website/versioned_docs/version-1.2/api/ref/IntentMetadata.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_label: IntentMetadata 3 | title: IntentMetadata 4 | hide_title: true 5 | original_id: IntentMetadata 6 | --- 7 | # `IntentMetadata` 8 | 9 | ```ts 10 | interface IntentMetadata { 11 | name: string; 12 | displayName: string; 13 | } 14 | ``` 15 | 16 | The Interface used to describe an Intent within the platform. 17 | 18 | 19 | #### See also 20 | * [`AppIntent.intent`](AppIntent) -------------------------------------------------------------------------------- /packages/fdc3-agent-proxy/test/features/utils.feature: -------------------------------------------------------------------------------- 1 | Feature: Utility functions 2 | 3 | Scenario: throwIfUndefined is used to check properties 4 | When I call throwIfUndefined it throws if a specified property is not defined 5 | And I call throwIfUndefined it does NOT throw if a specified property IS defined 6 | 7 | Scenario: Logger utility 8 | When All log functions are used with a message 9 | When All log functions are used with an error 10 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/src/mock/constants.ts: -------------------------------------------------------------------------------- 1 | export const channelType = { 2 | system: 'system', 3 | app: 'app', 4 | }; 5 | 6 | export const commands = { 7 | joinRetrievedUserChannel: 'joinRetrievedUserChannel', 8 | retrieveTestAppChannel: 'retrieveTestAppChannel', 9 | broadcastInstrumentContext: 'broadcastInstrumentContext', 10 | broadcastContactContext: 'broadcastContactContext', 11 | joinUserChannelOne: 'joinUserChannelOne', // v2.0 12 | }; 13 | -------------------------------------------------------------------------------- /toolbox/fdc3-workbench/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | .eslintcache 22 | npm-debug.log* 23 | yarn-debug.log* 24 | yarn-error.log* 25 | -------------------------------------------------------------------------------- /toolbox/fdc3-workbench/src/fixtures/openApiDocs.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * SPDX-License-Identifier: Apache-2.0 3 | * Copyright FINOS FDC3 contributors - see NOTICE file 4 | */ 5 | import React from 'react'; 6 | 7 | export const openApiDocsLink = (event: React.MouseEvent) => { 8 | event.preventDefault(); 9 | const href = event?.currentTarget?.getAttribute('href'); 10 | if (href) { 11 | window.open(href, 'FDC3APIDocs'); 12 | } 13 | return false; 14 | }; 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.1/bridging/openBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.1/bridging/openBridgeRequest.schema.json", 4 | "title": "Open Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "openAgentRequest.schema.json#/$defs/OpenRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/bridging/openBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.2/bridging/openBridgeRequest.schema.json", 4 | "title": "Open Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "openAgentRequest.schema.json#/$defs/OpenRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/versioned_docs/version-2.1/use-cases/meeting-minutes/2020-03-19 uc-wg meeting notes.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | --- 4 | **Meeting not held due to low attendance** 5 | 6 | **Date**: 19 March 2020 7 | 8 | **Attendees** 9 | 10 | | Name | Organization | GitHub ID | 11 | | ------------- | ------------- | ------------- | 12 | 13 | ## Agenda 14 | ### 1. 15 | 16 | 17 | ### 4. AOB 18 | - 19 | 20 | ## Decisions Made 21 | - (see inline) 22 | 23 | ## Action Items 24 | 25 | -------------------------------------------------------------------------------- /website/versioned_docs/version-2.2/use-cases/meeting-minutes/2020-03-19 uc-wg meeting notes.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | --- 4 | **Meeting not held due to low attendance** 5 | 6 | **Date**: 19 March 2020 7 | 8 | **Attendees** 9 | 10 | | Name | Organization | GitHub ID | 11 | | ------------- | ------------- | ------------- | 12 | 13 | ## Agenda 14 | ### 1. 15 | 16 | 17 | ### 4. AOB 18 | - 19 | 20 | ## Decisions Made 21 | - (see inline) 22 | 23 | ## Action Items 24 | 25 | -------------------------------------------------------------------------------- /packages/fdc3-schema/schemas/bridging/openBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/next/bridging/openBridgeRequest.schema.json", 4 | "title": "Open Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "openAgentRequest.schema.json#/$defs/OpenRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-context/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.root.json", 3 | "compilerOptions": { 4 | "rootDirs": [ 5 | "src", 6 | "generated" 7 | ], 8 | "outDir": "dist", 9 | }, 10 | "include": [ 11 | "src/**/*.ts", 12 | "generated/**/*", 13 | "schemas/**/*.json", 14 | ], 15 | "exclude": [ 16 | "dist/**", 17 | "test/**" 18 | ], 19 | "references": [] 20 | } -------------------------------------------------------------------------------- /packages/fdc3-schema/schemas/bridging/openBridgeResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/next/bridging/openBridgeResponse.schema.json", 4 | "title": "Open Bridge Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "openAgentResponse.schema.json#/$defs/OpenResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-standard/src/api/Icon.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * SPDX-License-Identifier: Apache-2.0 3 | * Copyright FINOS FDC3 contributors - see NOTICE file 4 | */ 5 | 6 | export interface Icon { 7 | /** The icon url */ 8 | readonly src: string; 9 | 10 | /** The icon dimension, formatted as `x`. */ 11 | readonly size?: string; 12 | 13 | /** Icon media type. If not present the Desktop Agent may use the src file extension. */ 14 | readonly type?: string; 15 | } 16 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/static/icons/arrow-left-circle-outline.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /website/static/schemas/1.1/context.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/1.1/context.schema.json", 4 | "type": "object", 5 | "title": "Context", 6 | "properties": { 7 | "type": { "type": "string" }, 8 | "name": { "type": "string" }, 9 | "id": { 10 | "type": "object", 11 | "additionalProperties": { "type": "string" } 12 | } 13 | }, 14 | "required": ["type"] 15 | } 16 | -------------------------------------------------------------------------------- /website/static/schemas/1.2/context.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/1.2/context.schema.json", 4 | "type": "object", 5 | "title": "Context", 6 | "properties": { 7 | "type": { "type": "string" }, 8 | "name": { "type": "string" }, 9 | "id": { 10 | "type": "object", 11 | "additionalProperties": { "type": "string" } 12 | } 13 | }, 14 | "required": ["type"] 15 | } 16 | -------------------------------------------------------------------------------- /website/static/schemas/2.0/context.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.0/context.schema.json", 4 | "type": "object", 5 | "title": "Context", 6 | "properties": { 7 | "type": { "type": "string" }, 8 | "name": { "type": "string" }, 9 | "id": { 10 | "type": "object", 11 | "additionalProperties": { "type": "string" } 12 | } 13 | }, 14 | "required": ["type"] 15 | } 16 | -------------------------------------------------------------------------------- /website/static/schemas/2.1/bridging/openBridgeResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.1/bridging/openBridgeResponse.schema.json", 4 | "title": "Open Bridge Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "openAgentResponse.schema.json#/$defs/OpenResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/bridging/openBridgeResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.2/bridging/openBridgeResponse.schema.json", 4 | "title": "Open Bridge Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "openAgentResponse.schema.json#/$defs/OpenResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/src/components/GridBlock/index.js: -------------------------------------------------------------------------------- 1 | const React = require('react'); 2 | 3 | export default ({items}) => { 4 | 5 | return ( 6 |
    7 | { 8 | items.map((sl, key) => 9 |
    10 |
    11 | {sl} 12 |
    13 |
    14 | ) 15 | } 16 |
    17 | ) 18 | } -------------------------------------------------------------------------------- /website/static/schemas/2.1/bridging/broadcastBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.1/bridging/broadcastBridgeRequest.schema.json", 4 | "title": "Broadcast Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "broadcastAgentRequest.schema.json#/$defs/BroadcastRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/bridging/broadcastBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.2/bridging/broadcastBridgeRequest.schema.json", 4 | "title": "Broadcast Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "broadcastAgentRequest.schema.json#/$defs/BroadcastRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-schema/schemas/bridging/broadcastBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/next/bridging/broadcastBridgeRequest.schema.json", 4 | "title": "Broadcast Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "broadcastAgentRequest.schema.json#/$defs/BroadcastRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.1/bridging/findIntentBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.1/bridging/findIntentBridgeRequest.schema.json", 4 | "title": "FindIntent Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "findIntentAgentRequest.schema.json#/$defs/FindIntentRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/bridging/findIntentBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.2/bridging/findIntentBridgeRequest.schema.json", 4 | "title": "FindIntent Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "findIntentAgentRequest.schema.json#/$defs/FindIntentRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-schema/schemas/bridging/findIntentBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/next/bridging/findIntentBridgeRequest.schema.json", 4 | "title": "FindIntent Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "findIntentAgentRequest.schema.json#/$defs/FindIntentRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/src/components/ImageBullet/styles.module.css: -------------------------------------------------------------------------------- 1 | .columns { 2 | display: flex; 3 | padding-bottom: 1rem; 4 | align-items: center; 5 | gap: 1rem; 6 | } 7 | 8 | .left { 9 | flex-basis: 5rem; 10 | flex-shrink: 0; 11 | border-radius: 2.5rem; 12 | height: 5rem; 13 | padding: 0; 14 | margin: 0; 15 | } 16 | 17 | .left img { 18 | padding: 0; 19 | margin: 0; 20 | } 21 | 22 | 23 | html[data-theme=dark] .left { 24 | background: #fff; 25 | } 26 | 27 | 28 | 29 | .right { 30 | flex-grow: 1; 31 | } -------------------------------------------------------------------------------- /website/static/schemas/2.1/bridging/raiseIntentBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.1/bridging/raiseIntentBridgeRequest.schema.json", 4 | "title": "RaiseIntent Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "raiseIntentAgentRequest.schema.json#/$defs/RaiseIntentRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/bridging/raiseIntentBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.2/bridging/raiseIntentBridgeRequest.schema.json", 4 | "title": "RaiseIntent Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "raiseIntentAgentRequest.schema.json#/$defs/RaiseIntentRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-agent-proxy/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import globals from 'globals'; 2 | import pluginJs from '@eslint/js'; 3 | import tseslint from 'typescript-eslint'; 4 | import eslintConfigPrettier from 'eslint-config-prettier'; 5 | 6 | /** @type {import('eslint').Linter.Config[]} */ 7 | export default [ 8 | { files: ['**/*.{js,mjs,cjs,ts}'] }, 9 | { languageOptions: { globals: globals.browser } }, 10 | pluginJs.configs.recommended, 11 | ...tseslint.configs.recommended, 12 | eslintConfigPrettier, 13 | ]; 14 | -------------------------------------------------------------------------------- /packages/fdc3-agent-proxy/src/apps/AppSupport.ts: -------------------------------------------------------------------------------- 1 | import { AppIdentifier, AppMetadata, ImplementationMetadata } from '@finos/fdc3-standard'; 2 | import { Context } from '@finos/fdc3-context'; 3 | 4 | export interface AppSupport { 5 | findInstances(app: AppIdentifier): Promise>; 6 | getAppMetadata(app: AppIdentifier): Promise; 7 | open(app: AppIdentifier, context?: Context): Promise; 8 | getImplementationMetadata(): Promise; 9 | } 10 | -------------------------------------------------------------------------------- /packages/fdc3-get-agent/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import globals from 'globals'; 2 | import pluginJs from '@eslint/js'; 3 | import tseslint from 'typescript-eslint'; 4 | import eslintConfigPrettier from 'eslint-config-prettier'; 5 | 6 | /** @type {import('eslint').Linter.Config[]} */ 7 | export default [ 8 | { files: ['**/*.{js,mjs,cjs,ts}'] }, 9 | { languageOptions: { globals: globals.browser } }, 10 | pluginJs.configs.recommended, 11 | ...tseslint.configs.recommended, 12 | eslintConfigPrettier, 13 | ]; 14 | -------------------------------------------------------------------------------- /packages/fdc3-get-agent/src/ui/NullChannelSelector.ts: -------------------------------------------------------------------------------- 1 | import { Connectable } from '@finos/fdc3-standard'; 2 | import { ChannelSelector } from '@finos/fdc3-standard'; 3 | 4 | /** Implementation used when an injected Channel selector is not in use. */ 5 | export class NullChannelSelector implements ChannelSelector, Connectable { 6 | async disconnect(): Promise { } 7 | async connect(): Promise { } 8 | async updateChannel(): Promise { } 9 | setChannelChangeCallback(): void { } 10 | } 11 | -------------------------------------------------------------------------------- /packages/fdc3-schema/schemas/bridging/openBridgeErrorResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/next/bridging/openBridgeErrorResponse.schema.json", 4 | "title": "Open Bridge Error Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "openAgentErrorResponse.schema.json#/$defs/OpenErrorResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeErrorResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-schema/schemas/bridging/raiseIntentBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/next/bridging/raiseIntentBridgeRequest.schema.json", 4 | "title": "RaiseIntent Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "raiseIntentAgentRequest.schema.json#/$defs/RaiseIntentRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import globals from 'globals'; 2 | import pluginJs from '@eslint/js'; 3 | import tseslint from 'typescript-eslint'; 4 | import eslintConfigPrettier from 'eslint-config-prettier'; 5 | 6 | /** @type {import('eslint').Linter.Config[]} */ 7 | export default [ 8 | { files: ['**/*.{js,mjs,cjs,ts}'] }, 9 | { languageOptions: { globals: globals.browser } }, 10 | pluginJs.configs.recommended, 11 | ...tseslint.configs.recommended, 12 | eslintConfigPrettier, 13 | ]; 14 | -------------------------------------------------------------------------------- /website/static/schemas/2.1/bridging/openBridgeErrorResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.1/bridging/openBridgeErrorResponse.schema.json", 4 | "title": "Open Bridge Error Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "openAgentErrorResponse.schema.json#/$defs/OpenErrorResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeErrorResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/bridging/openBridgeErrorResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.2/bridging/openBridgeErrorResponse.schema.json", 4 | "title": "Open Bridge Error Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "openAgentErrorResponse.schema.json#/$defs/OpenErrorResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeErrorResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-schema/schemas/bridging/findIntentBridgeResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/next/bridging/findIntentBridgeResponse.schema.json", 4 | "title": "FindIntent Bridge Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "findIntentAgentResponse.schema.json#/$defs/FindIntentResponseBase" 9 | }, 10 | 11 | { 12 | "$ref": "bridgeResponse.schema.json" 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /packages/fdc3-schema/schemas/bridging/raiseIntentBridgeResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/next/bridging/raiseIntentBridgeResponse.schema.json", 4 | "title": "RaiseIntent Bridge Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "raiseIntentAgentResponse.schema.json#/$defs/RaiseIntentResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.1/bridging/findInstancesBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.1/bridging/findInstancesBridgeRequest.schema.json", 4 | "title": "FindInstances Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "findInstancesAgentRequest.schema.json#/$defs/FindInstancesRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.1/bridging/findIntentBridgeResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.1/bridging/findIntentBridgeResponse.schema.json", 4 | "title": "FindIntent Bridge Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "findIntentAgentResponse.schema.json#/$defs/FindIntentResponseBase" 9 | }, 10 | 11 | { 12 | "$ref": "bridgeResponse.schema.json" 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /website/static/schemas/2.1/bridging/raiseIntentBridgeResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.1/bridging/raiseIntentBridgeResponse.schema.json", 4 | "title": "RaiseIntent Bridge Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "raiseIntentAgentResponse.schema.json#/$defs/RaiseIntentResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/bridging/findInstancesBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.2/bridging/findInstancesBridgeRequest.schema.json", 4 | "title": "FindInstances Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "findInstancesAgentRequest.schema.json#/$defs/FindInstancesRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/bridging/findIntentBridgeResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.2/bridging/findIntentBridgeResponse.schema.json", 4 | "title": "FindIntent Bridge Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "findIntentAgentResponse.schema.json#/$defs/FindIntentResponseBase" 9 | }, 10 | 11 | { 12 | "$ref": "bridgeResponse.schema.json" 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/bridging/raiseIntentBridgeResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.2/bridging/raiseIntentBridgeResponse.schema.json", 4 | "title": "RaiseIntent Bridge Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "raiseIntentAgentResponse.schema.json#/$defs/RaiseIntentResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-schema/schemas/bridging/findInstancesBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/next/bridging/findInstancesBridgeRequest.schema.json", 4 | "title": "FindInstances Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "findInstancesAgentRequest.schema.json#/$defs/FindInstancesRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/reference-ui/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import globals from 'globals'; 2 | import pluginJs from '@eslint/js'; 3 | import tseslint from 'typescript-eslint'; 4 | import eslintConfigPrettier from 'eslint-config-prettier'; 5 | 6 | /** @type {import('eslint').Linter.Config[]} */ 7 | export default [ 8 | { files: ['**/*.{js,mjs,cjs,ts}'] }, 9 | { languageOptions: { globals: globals.browser } }, 10 | pluginJs.configs.recommended, 11 | ...tseslint.configs.recommended, 12 | eslintConfigPrettier, 13 | ]; 14 | -------------------------------------------------------------------------------- /website/static/schemas/1.1/position.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/1.1/position.schema.json", 4 | "type": "object", 5 | "title": "Position", 6 | "allOf": [{ "$ref": "context.schema.json#" }], 7 | "properties": { 8 | "type": { "const": "fdc3.position" }, 9 | "instrument": { "$ref": "instrument.schema.json#" }, 10 | "holding": { "type": "number", "minimum": 0 } 11 | }, 12 | "required": ["instrument","holding"] 13 | } -------------------------------------------------------------------------------- /website/static/schemas/1.2/position.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/1.2/position.schema.json", 4 | "type": "object", 5 | "title": "Position", 6 | "allOf": [{ "$ref": "context.schema.json#" }], 7 | "properties": { 8 | "type": { "const": "fdc3.position" }, 9 | "instrument": { "$ref": "instrument.schema.json#" }, 10 | "holding": { "type": "number", "minimum": 0 } 11 | }, 12 | "required": ["instrument","holding"] 13 | } -------------------------------------------------------------------------------- /website/static/schemas/2.0/position.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.0/position.schema.json", 4 | "type": "object", 5 | "title": "Position", 6 | "allOf": [{ "$ref": "context.schema.json#" }], 7 | "properties": { 8 | "type": { "const": "fdc3.position" }, 9 | "instrument": { "$ref": "instrument.schema.json#" }, 10 | "holding": { "type": "number" } 11 | }, 12 | "required": ["instrument", "holding"] 13 | } 14 | 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.1/bridging/getAppMetadataBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.1/bridging/getAppMetadataBridgeRequest.schema.json", 4 | "title": "GetAppMetadata Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "getAppMetadataAgentRequest.schema.json#/$defs/GetAppMetadataRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/bridging/getAppMetadataBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.2/bridging/getAppMetadataBridgeRequest.schema.json", 4 | "title": "GetAppMetadata Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "getAppMetadataAgentRequest.schema.json#/$defs/GetAppMetadataRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-agent-proxy/test/support/responses/support.ts: -------------------------------------------------------------------------------- 1 | import { AppRequestMessageMeta, AgentResponseMessage } from '@finos/fdc3-schema/dist/generated/api/BrowserTypes'; 2 | import { v4 as uuidv4 } from 'uuid'; 3 | 4 | export function createResponseMeta(m: AppRequestMessageMeta): AgentResponseMessage['meta'] { 5 | const meta: AgentResponseMessage['meta'] = { 6 | requestUuid: m.requestUuid, 7 | responseUuid: uuidv4(), 8 | source: m.source, 9 | timestamp: new Date(), 10 | }; 11 | return meta; 12 | } 13 | -------------------------------------------------------------------------------- /packages/fdc3-schema/schemas/bridging/findInstancesBridgeResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/next/bridging/findInstancesBridgeResponse.schema.json", 4 | "title": "FindInstances Bridge Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "findInstancesAgentResponse.schema.json#/$defs/FindInstancesResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-schema/schemas/bridging/getAppMetadataBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/next/bridging/getAppMetadataBridgeRequest.schema.json", 4 | "title": "GetAppMetadata Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "getAppMetadataAgentRequest.schema.json#/$defs/GetAppMetadataRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.root.json", 3 | "compilerOptions": { 4 | "rootDirs": [ 5 | "src" 6 | ], 7 | "outDir": "dist", 8 | }, 9 | "include": [ 10 | "src", 11 | ], 12 | "exclude": [], 13 | "references": [ 14 | { 15 | "path": "../fdc3-schema" 16 | }, 17 | { 18 | "path": "../fdc3-context" 19 | }, 20 | { 21 | "path": "../fdc3-get-agent" 22 | }, 23 | { 24 | "path": "../fdc3-standard" 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /toolbox/fdc3-explained/1.0/styles.css: -------------------------------------------------------------------------------- 1 | /** 2 | * SPDX-License-Identifier: Apache-2.0 3 | * Copyright FINOS FDC3 contributors - see NOTICE file 4 | */ 5 | 6 | textarea { 7 | width: 400px; 8 | height: 150px; 9 | } 10 | 11 | select { 12 | width: 150px; 13 | height: 24px; 14 | } 15 | 16 | .ctxInput { 17 | width: 241px; 18 | height: 24px; 19 | } 20 | 21 | .urlInput { 22 | width: 400px; 23 | height: 24px; 24 | } 25 | 26 | .header { 27 | width: 200px; 28 | height: 40px; 29 | font-weight: 700; 30 | } 31 | -------------------------------------------------------------------------------- /website/static/schemas/1.1/portfolio.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/1.1/portfolio.schema.json", 4 | "type": "object", 5 | "title": "Portfolio", 6 | "allOf": [{ "$ref": "context.schema.json#" }], 7 | "properties": { 8 | "type": { "const": "fdc3.portfolio" }, 9 | "positions": { 10 | "type": "array", 11 | "items": { "$ref": "position.schema.json#" } 12 | } 13 | }, 14 | "required": ["positions"] 15 | } 16 | -------------------------------------------------------------------------------- /website/static/schemas/1.2/portfolio.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/1.2/portfolio.schema.json", 4 | "type": "object", 5 | "title": "Portfolio", 6 | "allOf": [{ "$ref": "context.schema.json#" }], 7 | "properties": { 8 | "type": { "const": "fdc3.portfolio" }, 9 | "positions": { 10 | "type": "array", 11 | "items": { "$ref": "position.schema.json#" } 12 | } 13 | }, 14 | "required": ["positions"] 15 | } 16 | -------------------------------------------------------------------------------- /website/static/schemas/2.0/portfolio.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.0/portfolio.schema.json", 4 | "type": "object", 5 | "title": "Portfolio", 6 | "allOf": [{ "$ref": "context.schema.json#" }], 7 | "properties": { 8 | "type": { "const": "fdc3.portfolio" }, 9 | "positions": { 10 | "type": "array", 11 | "items": { "$ref": "position.schema.json#" } 12 | } 13 | }, 14 | "required": ["positions"] 15 | } 16 | -------------------------------------------------------------------------------- /website/static/schemas/2.1/bridging/findInstancesBridgeResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.1/bridging/findInstancesBridgeResponse.schema.json", 4 | "title": "FindInstances Bridge Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "findInstancesAgentResponse.schema.json#/$defs/FindInstancesResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/bridging/findInstancesBridgeResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.2/bridging/findInstancesBridgeResponse.schema.json", 4 | "title": "FindInstances Bridge Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "findInstancesAgentResponse.schema.json#/$defs/FindInstancesResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-schema/schemas/bridging/getAppMetadataBridgeResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/next/bridging/getAppMetadataBridgeResponse.schema.json", 4 | "title": "GetAppMetadata Bridge Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "getAppMetadataAgentResponse.schema.json#/$defs/GetAppMetadataResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/1.1/contactList.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/1.1/contactList.schema.json", 4 | "type": "object", 5 | "title": "ContactList", 6 | "allOf": [{ "$ref": "context.schema.json#" }], 7 | "properties": { 8 | "type": { "const": "fdc3.contactList" }, 9 | "contacts": { 10 | "type": "array", 11 | "items": { "$ref": "contact.schema.json#" } 12 | } 13 | }, 14 | "required": ["contacts"] 15 | } 16 | -------------------------------------------------------------------------------- /website/static/schemas/1.2/contactList.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/1.2/contactList.schema.json", 4 | "type": "object", 5 | "title": "ContactList", 6 | "allOf": [{ "$ref": "context.schema.json#" }], 7 | "properties": { 8 | "type": { "const": "fdc3.contactList" }, 9 | "contacts": { 10 | "type": "array", 11 | "items": { "$ref": "contact.schema.json#" } 12 | } 13 | }, 14 | "required": ["contacts"] 15 | } 16 | -------------------------------------------------------------------------------- /website/static/schemas/2.0/contactList.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.0/contactList.schema.json", 4 | "type": "object", 5 | "title": "ContactList", 6 | "allOf": [{ "$ref": "context.schema.json#" }], 7 | "properties": { 8 | "type": { "const": "fdc3.contactList" }, 9 | "contacts": { 10 | "type": "array", 11 | "items": { "$ref": "contact.schema.json#" } 12 | } 13 | }, 14 | "required": ["contacts"] 15 | } 16 | -------------------------------------------------------------------------------- /website/static/schemas/2.1/bridging/getAppMetadataBridgeResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.1/bridging/getAppMetadataBridgeResponse.schema.json", 4 | "title": "GetAppMetadata Bridge Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "getAppMetadataAgentResponse.schema.json#/$defs/GetAppMetadataResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/bridging/getAppMetadataBridgeResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.2/bridging/getAppMetadataBridgeResponse.schema.json", 4 | "title": "GetAppMetadata Bridge Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "getAppMetadataAgentResponse.schema.json#/$defs/GetAppMetadataResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-standard/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.root.json", 3 | "compilerOptions": { 4 | "rootDirs": [ 5 | "src" 6 | ], 7 | "outDir": "dist", 8 | }, 9 | "include": [ 10 | "src", 11 | ], 12 | "exclude": [ 13 | "test/**", 14 | "dist/**" 15 | ], 16 | "references": [ 17 | { 18 | "path": "../fdc3-schema" 19 | }, 20 | { 21 | "path": "../fdc3-context" 22 | } 23 | ] 24 | } -------------------------------------------------------------------------------- /packages/fdc3/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@finos/fdc3-context'; 2 | 3 | import { BrowserTypes, BridgingTypes } from '@finos/fdc3-schema'; 4 | export { BridgingTypes, BrowserTypes }; 5 | 6 | import { DesktopAgent, AppIdentifier } from '@finos/fdc3-standard'; 7 | export * from '@finos/fdc3-standard'; 8 | export { AppIdentifier }; 9 | 10 | import { getAgent, fdc3Ready } from '@finos/fdc3-get-agent'; 11 | export { getAgent, fdc3Ready }; 12 | 13 | declare global { 14 | interface Window { 15 | fdc3?: DesktopAgent; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/fdc3-web-impl/src/FDC3Server.ts: -------------------------------------------------------------------------------- 1 | import { InstanceID } from './ServerContext'; 2 | import { BrowserTypes } from '@finos/fdc3-schema'; 3 | 4 | type AppRequestMessage = BrowserTypes.AppRequestMessage; 5 | 6 | export interface FDC3Server { 7 | /** 8 | * Receive an incoming message 9 | */ 10 | receive(message: AppRequestMessage, from: InstanceID): Promise; 11 | 12 | /** 13 | * Cleanup state relating to an instance that has disconnected 14 | */ 15 | cleanup(instanceId: InstanceID): void; 16 | } 17 | -------------------------------------------------------------------------------- /packages/fdc3-schema/schemas/bridging/raiseIntentBridgeErrorResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/next/bridging/raiseIntentBridgeErrorResponse.schema.json", 4 | "title": "RaiseIntent Bridge Error Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "raiseIntentAgentErrorResponse.schema.json#/$defs/RaiseIntentErrorResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeErrorResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-schema/schemas/bridging/raiseIntentResultBridgeResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/next/bridging/raiseIntentResultBridgeResponse.schema.json", 4 | "title": "RaiseIntent Result Bridge Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "raiseIntentResultAgentResponse.schema.json#/$defs/RaiseIntentResultResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.1/bridging/findIntentBridgeErrorResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.1/bridging/findIntentBridgeErrorResponse.schema.json", 4 | "title": "FindIntent Bridge Error Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "findIntentAgentErrorResponse.schema.json#/$defs/FindIntentErrorResponseBase" 9 | }, 10 | 11 | { 12 | "$ref": "bridgeErrorResponse.schema.json" 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /website/static/schemas/2.1/bridging/raiseIntentBridgeErrorResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.1/bridging/raiseIntentBridgeErrorResponse.schema.json", 4 | "title": "RaiseIntent Bridge Error Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "raiseIntentAgentErrorResponse.schema.json#/$defs/RaiseIntentErrorResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeErrorResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.1/bridging/raiseIntentResultBridgeResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.1/bridging/raiseIntentResultBridgeResponse.schema.json", 4 | "title": "RaiseIntent Result Bridge Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "raiseIntentResultAgentResponse.schema.json#/$defs/RaiseIntentResultResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/bridging/findIntentBridgeErrorResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.2/bridging/findIntentBridgeErrorResponse.schema.json", 4 | "title": "FindIntent Bridge Error Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "findIntentAgentErrorResponse.schema.json#/$defs/FindIntentErrorResponseBase" 9 | }, 10 | 11 | { 12 | "$ref": "bridgeErrorResponse.schema.json" 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/bridging/raiseIntentBridgeErrorResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.2/bridging/raiseIntentBridgeErrorResponse.schema.json", 4 | "title": "RaiseIntent Bridge Error Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "raiseIntentAgentErrorResponse.schema.json#/$defs/RaiseIntentErrorResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeErrorResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/bridging/raiseIntentResultBridgeResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.2/bridging/raiseIntentResultBridgeResponse.schema.json", 4 | "title": "RaiseIntent Result Bridge Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "raiseIntentResultAgentResponse.schema.json#/$defs/RaiseIntentResultResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-schema/schemas/bridging/findIntentBridgeErrorResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/next/bridging/findIntentBridgeErrorResponse.schema.json", 4 | "title": "FindIntent Bridge Error Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "findIntentAgentErrorResponse.schema.json#/$defs/FindIntentErrorResponseBase" 9 | }, 10 | 11 | { 12 | "$ref": "bridgeErrorResponse.schema.json" 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /website/static/schemas/1.1/instrumentList.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/1.1/instrumentList.schema.json", 4 | "type": "object", 5 | "title": "InstrumentList", 6 | "allOf": [{ "$ref": "context.schema.json#" }], 7 | "properties": { 8 | "type": { "const": "fdc3.instrumentList" }, 9 | "instruments": { 10 | "type": "array", 11 | "items": { "$ref": "instrument.schema.json#" } 12 | } 13 | }, 14 | "required": ["instruments"] 15 | } 16 | -------------------------------------------------------------------------------- /website/static/schemas/1.2/instrumentList.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/1.2/instrumentList.schema.json", 4 | "type": "object", 5 | "title": "InstrumentList", 6 | "allOf": [{ "$ref": "context.schema.json#" }], 7 | "properties": { 8 | "type": { "const": "fdc3.instrumentList" }, 9 | "instruments": { 10 | "type": "array", 11 | "items": { "$ref": "instrument.schema.json#" } 12 | } 13 | }, 14 | "required": ["instruments"] 15 | } 16 | -------------------------------------------------------------------------------- /website/static/schemas/2.0/instrumentList.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.0/instrumentList.schema.json", 4 | "type": "object", 5 | "title": "InstrumentList", 6 | "allOf": [{ "$ref": "context.schema.json#" }], 7 | "properties": { 8 | "type": { "const": "fdc3.instrumentList" }, 9 | "instruments": { 10 | "type": "array", 11 | "items": { "$ref": "instrument.schema.json#" } 12 | } 13 | }, 14 | "required": ["instruments"] 15 | } 16 | -------------------------------------------------------------------------------- /website/static/schemas/2.1/bridging/findIntentsByContextBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.1/bridging/findIntentsByContextBridgeRequest.schema.json", 4 | "title": "FindIntentsByContext Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "findIntentsByContextAgentRequest.schema.json#/$defs/FindIntentsByContextRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/bridging/findIntentsByContextBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.2/bridging/findIntentsByContextBridgeRequest.schema.json", 4 | "title": "FindIntentsByContext Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "findIntentsByContextAgentRequest.schema.json#/$defs/FindIntentsByContextRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-get-agent/test/world/index.ts: -------------------------------------------------------------------------------- 1 | import { setWorldConstructor } from '@cucumber/cucumber'; 2 | import { PropsWorld } from '@finos/testing'; 3 | import { MockFDC3Server } from '../support/MockFDC3Server'; 4 | import { TestServerContext } from '../support/TestServerContext'; 5 | 6 | export class CustomWorld extends PropsWorld { 7 | mockFDC3Server: MockFDC3Server | null = null; 8 | 9 | mockContext: TestServerContext = new TestServerContext(this); 10 | 11 | debugLogs: boolean = false; 12 | } 13 | 14 | setWorldConstructor(CustomWorld); 15 | -------------------------------------------------------------------------------- /packages/fdc3-schema/schemas/bridging/findInstancesBridgeErrorResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/next/bridging/findInstancesBridgeErrorResponse.schema.json", 4 | "title": "FindInstances Bridge Error Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "findInstancesAgentErrorResponse.schema.json#/$defs/FindInstancesErrorResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeErrorResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-schema/schemas/bridging/findIntentsByContextBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/next/bridging/findIntentsByContextBridgeRequest.schema.json", 4 | "title": "FindIntentsByContext Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "findIntentsByContextAgentRequest.schema.json#/$defs/FindIntentsByContextRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-standard/src/intents/standard intents.json: -------------------------------------------------------------------------------- 1 | { 2 | "intents": [ 3 | "CreateInteraction", 4 | "CreateOrUpdateProfile", 5 | "SendChatMessage", 6 | "StartCall", 7 | "StartChat", 8 | "StartEmail", 9 | "ViewAnalysis", 10 | "ViewChat", 11 | "ViewChart", 12 | "ViewContact", 13 | "ViewHoldings", 14 | "ViewInstrument", 15 | "ViewInteractions", 16 | "ViewMessages", 17 | "ViewNews", 18 | "ViewOrders", 19 | "ViewProfile", 20 | "ViewQuote", 21 | "ViewResearch" 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /website/data/get-involved/4.mdx: -------------------------------------------------------------------------------- 1 | ## Are you using FDC3? 2 | 3 | If you are an existing user of the FDC3 Standard, we would love to hear from you: just email the [FDC3 General List](mailto:fdc3@finos.org) with details about how you are using it. 4 | 5 | We'd also like to list you as a user on our [Community page](https://fdc3.finos.org/community), you can directly [send a pull request](https://github.com/finos/FDC3/edit/main/website/data/community.json) or [contact us](mailto:fdc3-private@finos.org) (particularly if you need help with legal evaluation of your logo). -------------------------------------------------------------------------------- /website/static/schemas/2.1/bridging/findInstancesBridgeErrorResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.1/bridging/findInstancesBridgeErrorResponse.schema.json", 4 | "title": "FindInstances Bridge Error Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "findInstancesAgentErrorResponse.schema.json#/$defs/FindInstancesErrorResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeErrorResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/bridging/findInstancesBridgeErrorResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.2/bridging/findInstancesBridgeErrorResponse.schema.json", 4 | "title": "FindInstances Bridge Error Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "findInstancesAgentErrorResponse.schema.json#/$defs/FindInstancesErrorResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeErrorResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-get-agent/test/README.md: -------------------------------------------------------------------------------- 1 | # FDC3 GetAgent Test Infrastructure 2 | 3 | The test infrastructure for fdc3-get-agent is complex as it has to mock a collection of windows, documents and iframes to simulate a Wed-based Desktop Agent. Additional tests in the /toolbox/fdc3-for-web/fdc3-web-impl package test against the reference implementation of web-based Desktop Agent, while the tests here work against a simulated one. 4 | 5 | To enable debug logs for the test infrastructure, set the `debugLogs` flag in packages\fdc3-get-agent\test\world\index.ts to true. 6 | -------------------------------------------------------------------------------- /packages/fdc3-schema/schemas/bridging/findIntentsByContextBridgeResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/next/bridging/findIntentsByContextBridgeResponse.schema.json", 4 | "title": "FindIntentsByContext Bridge Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "findIntentsByContextAgentResponse.schema.json#/$defs/FindIntentsByContextResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-schema/schemas/bridging/getAppMetadataBridgeErrorResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/next/bridging/getAppMetadataBridgeErrorResponse.schema.json", 4 | "title": "GetAppMetadata Bridge Error Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "getAppMetadataAgentErrorResponse.schema.json#/$defs/GetAppMetadataErrorResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeErrorResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-standard/src/api/Image.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * SPDX-License-Identifier: Apache-2.0 3 | * Copyright FINOS FDC3 contributors - see NOTICE file 4 | */ 5 | 6 | export interface Image { 7 | /** The image url. */ 8 | readonly src: string; 9 | 10 | /** The image dimension, formatted as `x`. */ 11 | readonly size?: string; 12 | 13 | /** Image media type. If not present the Desktop Agent may use the src file extension. */ 14 | readonly type?: string; 15 | 16 | /** Caption for the image. */ 17 | readonly label?: string; 18 | } 19 | -------------------------------------------------------------------------------- /website/static/schemas/2.1/bridging/findIntentsByContextBridgeResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.1/bridging/findIntentsByContextBridgeResponse.schema.json", 4 | "title": "FindIntentsByContext Bridge Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "findIntentsByContextAgentResponse.schema.json#/$defs/FindIntentsByContextResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.1/bridging/getAppMetadataBridgeErrorResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.1/bridging/getAppMetadataBridgeErrorResponse.schema.json", 4 | "title": "GetAppMetadata Bridge Error Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "getAppMetadataAgentErrorResponse.schema.json#/$defs/GetAppMetadataErrorResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeErrorResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/bridging/findIntentsByContextBridgeResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.2/bridging/findIntentsByContextBridgeResponse.schema.json", 4 | "title": "FindIntentsByContext Bridge Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "findIntentsByContextAgentResponse.schema.json#/$defs/FindIntentsByContextResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/bridging/getAppMetadataBridgeErrorResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.2/bridging/getAppMetadataBridgeErrorResponse.schema.json", 4 | "title": "GetAppMetadata Bridge Error Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "getAppMetadataAgentErrorResponse.schema.json#/$defs/GetAppMetadataErrorResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeErrorResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.1/bridging/privateChannelBroadcastBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.1/bridging/privateChannelBroadcastBridgeRequest.schema.json", 4 | "title": "PrivateChannelBroadcast Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "privateChannelBroadcastAgentRequest.schema.json#/$defs/PrivateChannelBroadcastRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/bridging/privateChannelBroadcastBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.2/bridging/privateChannelBroadcastBridgeRequest.schema.json", 4 | "title": "PrivateChannelBroadcast Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "privateChannelBroadcastAgentRequest.schema.json#/$defs/PrivateChannelBroadcastRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-schema/schemas/bridging/privateChannelBroadcastBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/next/bridging/privateChannelBroadcastBridgeRequest.schema.json", 4 | "title": "PrivateChannelBroadcast Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "privateChannelBroadcastAgentRequest.schema.json#/$defs/PrivateChannelBroadcastRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/1.1/contact.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/1.1/contact.schema.json", 4 | "type": "object", 5 | "title": "Contact", 6 | "allOf": [{ "$ref": "context.schema.json#" }], 7 | "properties": { 8 | "type": { "const": "fdc3.contact" }, 9 | "id": { 10 | "type": "object", 11 | "properties": { 12 | "email": { "type": "string" }, 13 | "FDS_ID": { "type": "string" } 14 | } 15 | } 16 | }, 17 | "required": ["id"] 18 | } 19 | -------------------------------------------------------------------------------- /website/static/schemas/1.2/contact.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/1.2/contact.schema.json", 4 | "type": "object", 5 | "title": "Contact", 6 | "allOf": [{ "$ref": "context.schema.json#" }], 7 | "properties": { 8 | "type": { "const": "fdc3.contact" }, 9 | "id": { 10 | "type": "object", 11 | "properties": { 12 | "email": { "type": "string" }, 13 | "FDS_ID": { "type": "string" } 14 | } 15 | } 16 | }, 17 | "required": ["id"] 18 | } 19 | -------------------------------------------------------------------------------- /website/static/schemas/2.0/contact.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.0/contact.schema.json", 4 | "type": "object", 5 | "title": "Contact", 6 | "allOf": [{ "$ref": "context.schema.json#" }], 7 | "properties": { 8 | "type": { "const": "fdc3.contact" }, 9 | "id": { 10 | "type": "object", 11 | "properties": { 12 | "email": { "type": "string" }, 13 | "FDS_ID": { "type": "string" } 14 | } 15 | } 16 | }, 17 | "required": ["id"] 18 | } 19 | -------------------------------------------------------------------------------- /website/static/schemas/2.1/bridging/raiseIntentResultBridgeErrorResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.1/bridging/raiseIntentResultBridgeErrorResponse.schema.json", 4 | "title": "RaiseIntent Result Bridge Error Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "raiseIntentResultAgentErrorResponse.schema.json#/$defs/RaiseIntentResultErrorResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeErrorResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/bridging/raiseIntentResultBridgeErrorResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.2/bridging/raiseIntentResultBridgeErrorResponse.schema.json", 4 | "title": "RaiseIntent Result Bridge Error Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "raiseIntentResultAgentErrorResponse.schema.json#/$defs/RaiseIntentResultErrorResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeErrorResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-schema/schemas/bridging/raiseIntentResultBridgeErrorResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/next/bridging/raiseIntentResultBridgeErrorResponse.schema.json", 4 | "title": "RaiseIntent Result Bridge Error Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "raiseIntentResultAgentErrorResponse.schema.json#/$defs/RaiseIntentResultErrorResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeErrorResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-standard/src/internal/typeHelpers.ts: -------------------------------------------------------------------------------- 1 | type AtLeastOne = [T, ...T[]]; 2 | 3 | /** 4 | * Ensures at compile time that the given string tuple is exhaustive on a given union type, i.e. contains ALL possible values of the given UNION_TYPE. 5 | */ 6 | export const exhaustiveStringTuple = 7 | () => 8 | >( 9 | ...tuple: L extends any 10 | ? Exclude extends never 11 | ? L 12 | : Exclude[] 13 | : never 14 | ) => 15 | tuple; 16 | -------------------------------------------------------------------------------- /website/static/schemas/1.1/country.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/1.1/country.schema.json", 4 | "type": "object", 5 | "title": "Country", 6 | "allOf": [{ "$ref": "context.schema.json#" }], 7 | "properties": { 8 | "type": { "const": "fdc3.country" }, 9 | "id": { 10 | "type": "object", 11 | "properties": { 12 | "ISOALPHA2": { "type": "string" }, 13 | "ISOALPHA3": { "type": "string" } 14 | } 15 | } 16 | }, 17 | "required": ["id"] 18 | } 19 | -------------------------------------------------------------------------------- /website/static/schemas/1.2/country.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/1.2/country.schema.json", 4 | "type": "object", 5 | "title": "Country", 6 | "allOf": [{ "$ref": "context.schema.json#" }], 7 | "properties": { 8 | "type": { "const": "fdc3.country" }, 9 | "id": { 10 | "type": "object", 11 | "properties": { 12 | "ISOALPHA2": { "type": "string" }, 13 | "ISOALPHA3": { "type": "string" } 14 | } 15 | } 16 | }, 17 | "required": ["id"] 18 | } 19 | -------------------------------------------------------------------------------- /website/static/schemas/2.1/bridging/privateChannelOnDisconnectBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.1/bridging/privateChannelOnDisconnectBridgeRequest.schema.json", 4 | "title": "PrivateChannelOnDisconnect Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "privateChannelOnDisconnectAgentRequest.schema.json#/$defs/PrivateChannelOnDisconnectRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/bridging/privateChannelOnDisconnectBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.2/bridging/privateChannelOnDisconnectBridgeRequest.schema.json", 4 | "title": "PrivateChannelOnDisconnect Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "privateChannelOnDisconnectAgentRequest.schema.json#/$defs/PrivateChannelOnDisconnectRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-schema/schemas/bridging/privateChannelOnDisconnectBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/next/bridging/privateChannelOnDisconnectBridgeRequest.schema.json", 4 | "title": "PrivateChannelOnDisconnect Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "privateChannelOnDisconnectAgentRequest.schema.json#/$defs/PrivateChannelOnDisconnectRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /toolbox/fdc3-workbench/src/index.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * SPDX-License-Identifier: Apache-2.0 3 | * Copyright FINOS FDC3 contributors - see NOTICE file 4 | */ 5 | 6 | import React from 'react'; 7 | import ReactDOM from 'react-dom'; 8 | import App from './App'; 9 | 10 | //make sure URL ends with trailing / for resolution of image paths 11 | if (!window.location.href.endsWith('/')) { 12 | window.location.href = `${window.location.href}/`; 13 | } 14 | 15 | ReactDOM.render( 16 | 17 | 18 | , 19 | document.getElementById('root') 20 | ); 21 | -------------------------------------------------------------------------------- /website/static/schemas/2.1/bridging/privateChannelOnUnsubscribeBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.1/bridging/privateChannelOnUnsubscribeBridgeRequest.schema.json", 4 | "title": "PrivateChannelOnUnsubscribe Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "privateChannelOnUnsubscribeAgentRequest.schema.json#/$defs/PrivateChannelOnUnsubscribeRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/bridging/privateChannelOnUnsubscribeBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.2/bridging/privateChannelOnUnsubscribeBridgeRequest.schema.json", 4 | "title": "PrivateChannelOnUnsubscribe Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "privateChannelOnUnsubscribeAgentRequest.schema.json#/$defs/PrivateChannelOnUnsubscribeRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-schema/schemas/bridging/findIntentsByContextBridgeErrorResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/next/bridging/findIntentsByContextBridgeErrorResponse.schema.json", 4 | "title": "FindIntentsByContext Bridge Error Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "findIntentsByContextAgentErrorResponse.schema.json#/$defs/FindIntentsByContextErrorResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeErrorResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-schema/schemas/bridging/privateChannelOnUnsubscribeBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/next/bridging/privateChannelOnUnsubscribeBridgeRequest.schema.json", 4 | "title": "PrivateChannelOnUnsubscribe Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "privateChannelOnUnsubscribeAgentRequest.schema.json#/$defs/PrivateChannelOnUnsubscribeRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/fdc3-web-impl/test/world/index.ts: -------------------------------------------------------------------------------- 1 | import { World, setWorldConstructor } from '@cucumber/cucumber'; 2 | import { TestServerContext } from '../support/TestServerContext'; 3 | import { DefaultFDC3Server } from '../../src/BasicFDC3Server'; 4 | import { BasicDirectory } from '../../src/directory/BasicDirectory'; 5 | 6 | export class CustomWorld extends World { 7 | sc = new TestServerContext(this); 8 | server = new DefaultFDC3Server(this.sc, new BasicDirectory([]), [], false); 9 | props: Record = {}; 10 | } 11 | 12 | setWorldConstructor(CustomWorld); 13 | -------------------------------------------------------------------------------- /toolbox/fdc3-workbench/src/components/common/CopyToClipboard.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * SPDX-License-Identifier: Apache-2.0 3 | * Copyright FINOS FDC3 contributors - see NOTICE file 4 | */ 5 | 6 | import { runInAction } from "mobx"; 7 | import systemLogStore from "../../store/SystemLogStore"; 8 | 9 | export const copyToClipboard = (text: string, name: string) => () => { 10 | navigator.clipboard.writeText(text); 11 | runInAction(() => { 12 | systemLogStore.addLog({ 13 | name: "copyToClipboard", 14 | type: "info", 15 | value: name, 16 | variant: "text", 17 | }); 18 | }); 19 | }; 20 | -------------------------------------------------------------------------------- /website/static/schemas/2.1/bridging/findIntentsByContextBridgeErrorResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.1/bridging/findIntentsByContextBridgeErrorResponse.schema.json", 4 | "title": "FindIntentsByContext Bridge Error Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "findIntentsByContextAgentErrorResponse.schema.json#/$defs/FindIntentsByContextErrorResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeErrorResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/bridging/findIntentsByContextBridgeErrorResponse.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.2/bridging/findIntentsByContextBridgeErrorResponse.schema.json", 4 | "title": "FindIntentsByContext Bridge Error Response", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "findIntentsByContextAgentErrorResponse.schema.json#/$defs/FindIntentsByContextErrorResponseBase" 9 | }, 10 | { 11 | "$ref": "bridgeErrorResponse.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-get-agent/test/features/utils.feature: -------------------------------------------------------------------------------- 1 | Feature: Utility functions 2 | 3 | Scenario: Logger utility 4 | When All log functions are used with a message 5 | When All log functions are used with an error 6 | 7 | Scenario: UUID generator 8 | When A uuid is generated 9 | 10 | # Uncomment to debug the tests not exiting - will dump a list of open handles keeping node open 11 | # Scenario: We dump any open handles 12 | # Given I call "{parentDoc}" with "shutdown" 13 | # Then I call "{childDoc}" with "shutdown" 14 | # Then Testing ends after "8000" ms 15 | -------------------------------------------------------------------------------- /website/docs/.markdownlint.jsonc: -------------------------------------------------------------------------------- 1 | { 2 | //Disabled as we often use manual H1 heading for reference pages, 3 | // where the markdown metadata is picked up as the top level heading 4 | "single-h1": false, 5 | //Many lines in md files are longer than 80 chars 6 | "line-length": false, 7 | //We have repeated headings, like 'Properties' or 'Fields' in reference docs. 8 | "no-duplicate-header": { 9 | "siblings_only": true 10 | }, 11 | "no-inline-html": { 12 | "allowed_elements": [ 13 | "Tabs", 14 | "TabItem" 15 | ] 16 | }, 17 | "ul-style": { 18 | "style": "dash" 19 | } 20 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | dist 5 | coverage 6 | .project 7 | 8 | lib/core/metadata.js 9 | lib/core/MetadataBlog.js 10 | 11 | website/translated_docs 12 | website/build/ 13 | website/static/toolbox 14 | website/node_modules 15 | website/i18n/* 16 | website/.docusaurus/ 17 | website/static/schemas/next/* 18 | website/static/ui 19 | test-results.xml 20 | 21 | 22 | .idea/ 23 | *.iml 24 | website/.yarn 25 | .nyc_output 26 | toolbox/fdc3-for-web/fdc3-web-impl/generated/ 27 | cucumber-report.html 28 | nyc-coverage-report/ 29 | .history/ 30 | .rollup.cache 31 | tsconfig.tsbuildinfo -------------------------------------------------------------------------------- /packages/testing/src/index.ts: -------------------------------------------------------------------------------- 1 | import { setupGenericSteps } from './steps/generic.steps'; 2 | import { doesRowMatch, handleResolve, indexOf, matchData } from './support/matching'; 3 | import { PropsWorld } from './world'; 4 | import Ajv2019 from 'ajv/dist/2019'; 5 | import addFormats from 'ajv-formats'; 6 | import { SimpleIntentResolver, CHANNEL_STATE } from './agent'; 7 | 8 | export { 9 | PropsWorld, 10 | doesRowMatch, 11 | handleResolve, 12 | indexOf, 13 | matchData, 14 | setupGenericSteps, 15 | SimpleIntentResolver, 16 | addFormats, 17 | Ajv2019, 18 | CHANNEL_STATE, 19 | }; 20 | -------------------------------------------------------------------------------- /website/src/components/ConformanceShowcase/styles.module.css: -------------------------------------------------------------------------------- 1 | .conformanceShowcase { 2 | overflow: scroll; 3 | } 4 | 5 | .conformanceShowcase table { 6 | background-color: #ffffff99; 7 | max-width: 1200px; 8 | margin: auto; 9 | } 10 | 11 | .conformanceShowcase td { 12 | } 13 | 14 | .conformanceShowcaseItem { 15 | display: flex; 16 | flex-direction: column; 17 | align-items: center; 18 | text-align: left; 19 | } 20 | 21 | .conformanceText { 22 | margin: 2rem; 23 | } 24 | 25 | .badgeImage { 26 | max-width: 6rem; 27 | } 28 | 29 | .conformanceImage { 30 | max-width: 10rem; 31 | } -------------------------------------------------------------------------------- /website/static/schemas/2.1/bridging/privateChannelEventListenerAddedBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.1/bridging/privateChannelEventListenerAddedBridgeRequest.schema.json", 4 | "title": "PrivateChannelEventListenerAdded Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "privateChannelEventListenerAddedAgentRequest.schema.json#/$defs/PrivateChannelEventListenerAddedRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/bridging/privateChannelEventListenerAddedBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.2/bridging/privateChannelEventListenerAddedBridgeRequest.schema.json", 4 | "title": "PrivateChannelEventListenerAdded Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "privateChannelEventListenerAddedAgentRequest.schema.json#/$defs/PrivateChannelEventListenerAddedRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-schema/schemas/bridging/privateChannelEventListenerAddedBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/next/bridging/privateChannelEventListenerAddedBridgeRequest.schema.json", 4 | "title": "PrivateChannelEventListenerAdded Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "privateChannelEventListenerAddedAgentRequest.schema.json#/$defs/PrivateChannelEventListenerAddedRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/docs/context/ref/BaseContext.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: BaseContext 3 | sidebar_label: BaseContext 4 | 5 | --- 6 | 7 | # BaseContext 8 | 9 | ## Schema 10 | 11 | [https://github.com/finos/FDC3/tree/main/schemas/context/context.schema.json](https://github.com/finos/FDC3/tree/main/schemas/context/context.schema.json) 12 | 13 | ## Type 14 | 15 | `undefined` 16 | 17 | ## Properties 18 | 19 |
    20 | name 21 | 22 | **type**: `string` 23 | 24 |
    25 | 26 |
    27 | id 28 | 29 | **type**: `object` 30 | 31 |
    32 | -------------------------------------------------------------------------------- /website/static/schemas/2.0/currency.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.0/currency.schema.json", 4 | "type": "object", 5 | "title": "Currency", 6 | "allOf": [{ "$ref": "context.schema.json#" }], 7 | "properties": { 8 | "type": { "const": "fdc3.currency" }, 9 | "name": { "type": "string" }, 10 | "id": { 11 | "type": "object", 12 | "properties": { 13 | "CURRENCY_ISOCODE": { "type": "string", "pattern": "^[A-Z]{3}$"} 14 | } 15 | } 16 | 17 | }, 18 | "required": ["id"] 19 | } 20 | -------------------------------------------------------------------------------- /website/versioned_docs/version-2.1/.markdownlint.jsonc: -------------------------------------------------------------------------------- 1 | { 2 | //Disabled as we often use manual H1 heading for reference pages, 3 | // where the markdown metadata is picked up as the top level heading 4 | "single-h1": false, 5 | //Many lines in md files are longer than 80 chars 6 | "line-length": false, 7 | //We have repeated headings, like 'Properties' or 'Fields' in reference docs. 8 | "no-duplicate-header": { 9 | "siblings_only": true 10 | }, 11 | "no-inline-html": { 12 | "allowed_elements": [ 13 | "Tabs", 14 | "TabItem" 15 | ] 16 | }, 17 | "ul-style": { 18 | "style": "dash" 19 | } 20 | } -------------------------------------------------------------------------------- /website/versioned_docs/version-2.2/.markdownlint.jsonc: -------------------------------------------------------------------------------- 1 | { 2 | //Disabled as we often use manual H1 heading for reference pages, 3 | // where the markdown metadata is picked up as the top level heading 4 | "single-h1": false, 5 | //Many lines in md files are longer than 80 chars 6 | "line-length": false, 7 | //We have repeated headings, like 'Properties' or 'Fields' in reference docs. 8 | "no-duplicate-header": { 9 | "siblings_only": true 10 | }, 11 | "no-inline-html": { 12 | "allowed_elements": [ 13 | "Tabs", 14 | "TabItem" 15 | ] 16 | }, 17 | "ul-style": { 18 | "style": "dash" 19 | } 20 | } -------------------------------------------------------------------------------- /website/static/schemas/2.1/bridging/privateChannelEventListenerRemovedBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.1/bridging/privateChannelEventListenerRemovedBridgeRequest.schema.json", 4 | "title": "PrivateChannelEventListenerRemoved Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "privateChannelEventListenerRemovedAgentRequest.schema.json#/$defs/PrivateChannelEventListenerRemovedRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.1/bridging/privateChannelOnAddContextListenerBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.1/bridging/privateChannelOnAddContextListenerBridgeRequest.schema.json", 4 | "title": "PrivateChannelOnAddContextListener Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "privateChannelOnAddContextListenerAgentRequest.schema.json#/$defs/PrivateChannelOnAddContextListenerRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/bridging/privateChannelEventListenerRemovedBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.2/bridging/privateChannelEventListenerRemovedBridgeRequest.schema.json", 4 | "title": "PrivateChannelEventListenerRemoved Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "privateChannelEventListenerRemovedAgentRequest.schema.json#/$defs/PrivateChannelEventListenerRemovedRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /website/static/schemas/2.2/bridging/privateChannelOnAddContextListenerBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.2/bridging/privateChannelOnAddContextListenerBridgeRequest.schema.json", 4 | "title": "PrivateChannelOnAddContextListener Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "privateChannelOnAddContextListenerAgentRequest.schema.json#/$defs/PrivateChannelOnAddContextListenerRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-schema/schemas/bridging/privateChannelEventListenerRemovedBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/next/bridging/privateChannelEventListenerRemovedBridgeRequest.schema.json", 4 | "title": "PrivateChannelEventListenerRemoved Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "privateChannelEventListenerRemovedAgentRequest.schema.json#/$defs/PrivateChannelEventListenerRemovedRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-schema/schemas/bridging/privateChannelOnAddContextListenerBridgeRequest.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/next/bridging/privateChannelOnAddContextListenerBridgeRequest.schema.json", 4 | "title": "PrivateChannelOnAddContextListener Bridge Request", 5 | "type": "object", 6 | "allOf": [ 7 | { 8 | "$ref": "privateChannelOnAddContextListenerAgentRequest.schema.json#/$defs/PrivateChannelOnAddContextListenerRequestBase" 9 | }, 10 | { 11 | "$ref": "bridgeRequest.schema.json" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/fdc3-agent-proxy/test/features/heartbeat.feature: -------------------------------------------------------------------------------- 1 | Feature: Heartbeats 2 | 3 | Background: Desktop Agent API 4 | Given A Desktop Agent in "api" 5 | And schemas loaded 6 | 7 | Scenario: Send A Heartbeat 8 | When messaging receives a heartbeat event 9 | And messaging will have posts 10 | | matches_type | 11 | | heartbeatAcknowledgementRequest | 12 | 13 | Scenario: Saying Goodbye 14 | When I call "{api}" with "disconnect" 15 | And we wait for a period of "100" ms 16 | Then messaging will have posts 17 | | matches_type | 18 | | WCP6Goodbye | 19 | -------------------------------------------------------------------------------- /packages/fdc3-get-agent/src/apps/NoopAppSupport.ts: -------------------------------------------------------------------------------- 1 | import { AppIdentifier, AppMetadata } from '@finos/fdc3-standard'; 2 | import { Messaging } from '@finos/fdc3-agent-proxy'; 3 | import { DefaultAppSupport } from '@finos/fdc3-agent-proxy'; 4 | 5 | export class NoopAppSupport extends DefaultAppSupport { 6 | constructor(messaging: Messaging, messageExchangeTimeout: number, appLaunchTimeout: number) { 7 | super(messaging, messageExchangeTimeout, appLaunchTimeout); 8 | } 9 | 10 | async getAppMetadata(app: AppIdentifier): Promise { 11 | return { 12 | appId: app.appId, 13 | }; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/fdc3-standard/src/api/AppIntent.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * SPDX-License-Identifier: Apache-2.0 3 | * Copyright FINOS FDC3 contributors - see NOTICE file 4 | */ 5 | 6 | import { AppMetadata } from './AppMetadata'; 7 | import { IntentMetadata } from './IntentMetadata'; 8 | 9 | /** 10 | * An interface that relates an intent to apps 11 | */ 12 | export interface AppIntent { 13 | /** Details of the intent whose relationship to resolving applications is being described. */ 14 | readonly intent: IntentMetadata; 15 | /** Details of applications that can resolve the intent. */ 16 | readonly apps: Array; 17 | } 18 | -------------------------------------------------------------------------------- /packages/fdc3-get-agent/src/util/Logger.ts: -------------------------------------------------------------------------------- 1 | import { AbstractFDC3Logger } from '@finos/fdc3-agent-proxy'; 2 | import { LogLevel } from '@finos/fdc3-standard'; 3 | 4 | /** 5 | * Logging utility used by getAgent when connecting to Desktop Agents, 6 | * which defaults to printing INFO, WARN and ERROR level messages. 7 | */ 8 | export class Logger extends AbstractFDC3Logger { 9 | static override get prefix(): string { 10 | return 'FDC3 getAgent: '; 11 | } 12 | 13 | //set default log level - will not be picked up in test scope so ignored 14 | /* istanbul ignore next */ 15 | logLevel: LogLevel = LogLevel.INFO; 16 | } 17 | -------------------------------------------------------------------------------- /website/static/schemas/1.1/organization.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/1.1/organization.schema.json", 4 | "type": "object", 5 | "title": "Organization", 6 | "allOf": [{ "$ref": "context.schema.json#" }], 7 | "properties": { 8 | "type": { "const": "fdc3.organization" }, 9 | "id": { 10 | "type": "object", 11 | "properties": { 12 | "LEI": { "type": "string" }, 13 | "PERMID": { "type": "string" }, 14 | "FDS_ID": { "type": "string" } 15 | } 16 | } 17 | }, 18 | "required": ["id"] 19 | } 20 | -------------------------------------------------------------------------------- /website/static/schemas/1.2/organization.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/1.2/organization.schema.json", 4 | "type": "object", 5 | "title": "Organization", 6 | "allOf": [{ "$ref": "context.schema.json#" }], 7 | "properties": { 8 | "type": { "const": "fdc3.organization" }, 9 | "id": { 10 | "type": "object", 11 | "properties": { 12 | "LEI": { "type": "string" }, 13 | "PERMID": { "type": "string" }, 14 | "FDS_ID": { "type": "string" } 15 | } 16 | } 17 | }, 18 | "required": ["id"] 19 | } 20 | -------------------------------------------------------------------------------- /website/static/schemas/2.0/organization.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.0/organization.schema.json", 4 | "type": "object", 5 | "title": "Organization", 6 | "allOf": [{ "$ref": "context.schema.json#" }], 7 | "properties": { 8 | "type": { "const": "fdc3.organization" }, 9 | "id": { 10 | "type": "object", 11 | "properties": { 12 | "LEI": { "type": "string" }, 13 | "PERMID": { "type": "string" }, 14 | "FDS_ID": { "type": "string" } 15 | } 16 | } 17 | }, 18 | "required": ["id"] 19 | } 20 | -------------------------------------------------------------------------------- /website/versioned_docs/version-2.2/context/ref/BaseContext.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: BaseContext 3 | sidebar_label: BaseContext 4 | 5 | --- 6 | 7 | # BaseContext 8 | 9 | ## Schema 10 | 11 | [https://github.com/finos/FDC3/tree/main/schemas/context/context.schema.json](https://github.com/finos/FDC3/tree/main/schemas/context/context.schema.json) 12 | 13 | ## Type 14 | 15 | `undefined` 16 | 17 | ## Properties 18 | 19 |
    20 | name 21 | 22 | **type**: `string` 23 | 24 |
    25 | 26 |
    27 | id 28 | 29 | **type**: `object` 30 | 31 |
    32 | -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/src/client/apps/app6.ts: -------------------------------------------------------------------------------- 1 | import { getAgent } from '@finos/fdc3-get-agent'; 2 | 3 | /** 4 | * This demonstrates using the API via a promise 5 | */ 6 | getAgent().then(async fdc3 => { 7 | console.log('in promise'); 8 | const log = document.getElementById('log'); 9 | const reso = await fdc3.raiseIntent('ViewQuote', { 10 | type: 'fdc3.instrument', 11 | id: { 12 | isin: 'Abc123', 13 | }, 14 | }); 15 | 16 | log!.textContent = `Got resolution: ${JSON.stringify(reso)}`; 17 | const result = await reso.getResult(); 18 | log!.textContent += `Got result: ${JSON.stringify(result)}`; 19 | }); 20 | -------------------------------------------------------------------------------- /website/static/schemas/2.0/email.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.0/email.schema.json", 4 | "type": "object", 5 | "title": "Email", 6 | "allOf": [{ "$ref": "context.schema.json#" }], 7 | "properties": { 8 | "type": { "const": "fdc3.email" }, 9 | "recipients": { 10 | "oneOf": [ 11 | { "$ref": "contact.schema.json#" }, 12 | { "$ref": "contactList.schema.json#" } 13 | ] 14 | }, 15 | "subject": { "type": "string" }, 16 | "textBody": { "type": "string" } 17 | }, 18 | "required": ["recipients"] 19 | } 20 | -------------------------------------------------------------------------------- /website/versioned_docs/version-1.1/api/ref/OpenError.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_label: OpenError 3 | title: OpenError 4 | hide_title: true 5 | original_id: OpenError 6 | --- 7 | # `OpenError` 8 | 9 | ```typescript 10 | enum OpenError { 11 | AppNotFound = "AppNotFound", 12 | ErrorOnLaunch = "ErrorOnLaunch", 13 | AppTimeout = "AppTimeout", 14 | ResolverUnavailable = "ResolverUnavailable" 15 | } 16 | ``` 17 | 18 | Contains constants representing the errors that can be encountered when calling the [`open`](DesktopAgent#open) method on the [DesktopAgent](DesktopAgent) object. 19 | 20 | #### See also 21 | * [`DesktopAgent.open`](DesktopAgent#open) -------------------------------------------------------------------------------- /website/versioned_docs/version-1.2/api/ref/OpenError.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_label: OpenError 3 | title: OpenError 4 | hide_title: true 5 | original_id: OpenError 6 | --- 7 | # `OpenError` 8 | 9 | ```typescript 10 | enum OpenError { 11 | AppNotFound = "AppNotFound", 12 | ErrorOnLaunch = "ErrorOnLaunch", 13 | AppTimeout = "AppTimeout", 14 | ResolverUnavailable = "ResolverUnavailable" 15 | } 16 | ``` 17 | 18 | Contains constants representing the errors that can be encountered when calling the [`open`](DesktopAgent#open) method on the [DesktopAgent](DesktopAgent) object. 19 | 20 | #### See also 21 | * [`DesktopAgent.open`](DesktopAgent#open) -------------------------------------------------------------------------------- /packages/fdc3-standard/test/ContextTypes.test.ts: -------------------------------------------------------------------------------- 1 | import { Convert, Contact } from '@finos/fdc3-context'; 2 | 3 | const json = '{ "type": "fdc3.contact", "id": { "email": "joe@mail.com" } }'; 4 | const contact: Contact = { 5 | type: 'fdc3.contact', 6 | id: { 7 | email: 'joe@mail.com', 8 | }, 9 | }; 10 | 11 | // To be expanded 12 | describe('Context types', () => { 13 | it('Convert contact from json', () => { 14 | expect(Convert.toContact(json)).toEqual(contact); 15 | }); 16 | 17 | it('Convert contact to json', () => { 18 | expect(JSON.parse(Convert.contactToJson(contact))).toEqual(JSON.parse(json)); 19 | }); 20 | }); 21 | -------------------------------------------------------------------------------- /packages/fdc3-agent-proxy/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.root.json", 3 | "compilerOptions": { 4 | "rootDirs": [ 5 | "src", 6 | "test" 7 | ], 8 | "outDir": "dist", 9 | }, 10 | "include": [ 11 | "src" 12 | ], 13 | "exclude": [ 14 | "test/**", 15 | "dist/**" 16 | ], 17 | "references": [ 18 | { 19 | "path": "../fdc3-standard" 20 | }, 21 | { 22 | "path": "../fdc3-schema" 23 | }, 24 | { 25 | "path": "../fdc3-context" 26 | }, 27 | { 28 | "path": "../testing" 29 | }, 30 | { 31 | "path": "../fdc3-context" 32 | } 33 | ] 34 | } -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/src/client/ui/contrast.ts: -------------------------------------------------------------------------------- 1 | import Color from 'color'; 2 | 3 | export function selectHighestContrast(bgColorCSS: string, ...candidates: string[]) { 4 | const bgColor = Color(bgColorCSS); 5 | const contrasts: number[] = candidates.map(candidate => { 6 | return bgColor.contrast(Color(candidate)); 7 | }); 8 | let bestCandidate = candidates[0], 9 | highestContrast = contrasts[0]; 10 | for (let i = 1; i < contrasts.length; i++) { 11 | if (contrasts[i] > highestContrast) { 12 | bestCandidate = candidates[i]; 13 | highestContrast = contrasts[i]; 14 | } 15 | } 16 | return bestCandidate; 17 | } 18 | -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/reference-ui/src/contrast.ts: -------------------------------------------------------------------------------- 1 | import Color from 'color'; 2 | 3 | export function selectHighestContrast(bgColorCSS: string, ...candidates: string[]) { 4 | const bgColor = Color(bgColorCSS); 5 | const contrasts: number[] = candidates.map(candidate => { 6 | return bgColor.contrast(Color(candidate)); 7 | }); 8 | let bestCandidate = candidates[0], 9 | highestContrast = contrasts[0]; 10 | for (let i = 1; i < contrasts.length; i++) { 11 | if (contrasts[i] > highestContrast) { 12 | bestCandidate = candidates[i]; 13 | highestContrast = contrasts[i]; 14 | } 15 | } 16 | return bestCandidate; 17 | } 18 | -------------------------------------------------------------------------------- /toolbox/fdc3-workbench/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "FDC3 Workbench", 3 | "name": "FDC3 Workbench", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "fdc3-icon-256.png", 12 | "type": "image/png", 13 | "sizes": "256x256" 14 | }, 15 | { 16 | "src": "fdc3-icon-192.png", 17 | "type": "image/png", 18 | "sizes": "192x192" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /.github/workflows/semgrep.yml: -------------------------------------------------------------------------------- 1 | name: Static code analysis 2 | 3 | on: 4 | pull_request: 5 | types: [opened, reopened, synchronize, ready_for_review] 6 | schedule: 7 | # Run every day at 5am and 5pm 8 | - cron: '0 5,17 * * *' 9 | 10 | permissions: 11 | contents: read 12 | 13 | jobs: 14 | semgrep: 15 | name: run-semgrep 16 | runs-on: ubuntu-latest 17 | container: 18 | image: returntocorp/semgrep 19 | steps: 20 | - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 21 | - run: semgrep scan --error --config auto 22 | env: 23 | SEMGREP_APP_TOKEN: ${{ secrets.SEMGREP_APP_TOKEN }} 24 | -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import globals from 'globals'; 2 | import pluginJs from '@eslint/js'; 3 | import tseslint from 'typescript-eslint'; 4 | import eslintConfigPrettier from 'eslint-config-prettier'; 5 | 6 | /** @type {import('eslint').Linter.Config[]} */ 7 | export default [ 8 | { 9 | languageOptions: { 10 | parserOptions: { 11 | tsconfigRootDir: import.meta.dirname, 12 | }, 13 | }, 14 | }, 15 | { files: ['**/*.{js,mjs,cjs,ts}'] }, 16 | { languageOptions: { globals: globals.browser } }, 17 | pluginJs.configs.recommended, 18 | ...tseslint.configs.recommended, 19 | eslintConfigPrettier, 20 | ]; 21 | -------------------------------------------------------------------------------- /packages/fdc3-agent-proxy/src/channels/ChannelSupport.ts: -------------------------------------------------------------------------------- 1 | import { Channel, ContextHandler, EventHandler, Listener, PrivateChannel } from '@finos/fdc3-standard'; 2 | 3 | export interface ChannelSupport { 4 | getUserChannel(): Promise; 5 | getUserChannels(): Promise; 6 | getOrCreate(id: string): Promise; 7 | createPrivateChannel(): Promise; 8 | leaveUserChannel(): Promise; 9 | joinUserChannel(id: string): Promise; 10 | addContextListener(handler: ContextHandler, type: string | null): Promise; 11 | addChannelChangedEventHandler(handler: EventHandler): Promise; 12 | } 13 | -------------------------------------------------------------------------------- /packages/fdc3-standard/src/api/IntentMetadata.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * SPDX-License-Identifier: Apache-2.0 3 | * Copyright FINOS FDC3 contributors - see NOTICE file 4 | */ 5 | 6 | import { Intent } from '../intents/Intents'; 7 | 8 | /** 9 | * Intent descriptor 10 | */ 11 | export interface IntentMetadata { 12 | /** The unique name of the intent that can be invoked by the raiseIntent call */ 13 | readonly name: Intent; 14 | 15 | /** Display name for the intent. 16 | * @deprecated Use the intent name for display as display name may vary for 17 | * each application as it is defined in the app's AppD record. 18 | */ 19 | readonly displayName?: string; 20 | } 21 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/src/mock/interfaces.ts: -------------------------------------------------------------------------------- 1 | export interface IChannelService { 2 | joinRetrievedUserChannel(channelId: string): Promise; 3 | 4 | retrieveTestAppChannel(channelId: string): Promise; 5 | 6 | broadcastContextItem(contextType: string, channel: TChannel, historyItems: number, testId: string): Promise; 7 | 8 | closeWindowOnCompletion(testId: string): Promise; 9 | 10 | notifyTestOnCompletion(testId: string): Promise; 11 | } 12 | 13 | export interface IBroadcastService { 14 | broadcast(contextType: string, historyItems: number, channel: TChannel, testId: string): Promise; 15 | } 16 | -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/fdc3-web-impl/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import globals from 'globals'; 2 | import pluginJs from '@eslint/js'; 3 | import tseslint from 'typescript-eslint'; 4 | import eslintConfigPrettier from 'eslint-config-prettier'; 5 | 6 | /** @type {import('eslint').Linter.Config[]} */ 7 | export default [ 8 | { 9 | languageOptions: { 10 | parserOptions: { 11 | tsconfigRootDir: import.meta.dirname, 12 | }, 13 | }, 14 | }, 15 | { files: ['**/*.{js,mjs,cjs,ts}'] }, 16 | { languageOptions: { globals: globals.browser } }, 17 | pluginJs.configs.recommended, 18 | ...tseslint.configs.recommended, 19 | eslintConfigPrettier, 20 | ]; 21 | -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/reference-ui/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "useDefineForClassFields": true, 5 | "module": "ESNext", 6 | "lib": ["ES2020", "DOM", "DOM.Iterable"], 7 | "skipLibCheck": true, 8 | 9 | /* Bundler mode */ 10 | "moduleResolution": "bundler", 11 | "allowImportingTsExtensions": true, 12 | "resolveJsonModule": true, 13 | "isolatedModules": true, 14 | "noEmit": true, 15 | 16 | /* Linting */ 17 | "strict": true, 18 | "noUnusedLocals": true, 19 | "noUnusedParameters": true, 20 | "noFallthroughCasesInSwitch": true 21 | }, 22 | "include": ["src"] 23 | } 24 | -------------------------------------------------------------------------------- /website/src/components/WhatIsIt/noun-question-4578800-909090.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/src/mock/v2.0/channel.ts: -------------------------------------------------------------------------------- 1 | import { ChannelService2_0 } from './support/channel-support-2.0'; 2 | import { Context, getAgent } from '@finos/fdc3'; 3 | import { Fdc3CommandExecutor } from '../channel-command'; 4 | 5 | getAgent().then(fdc3 => { 6 | let firedOnce = false; 7 | 8 | fdc3.addContextListener('channelsAppContext', (context: Context) => { 9 | if (firedOnce === false && context.type == 'channelsAppContext') { 10 | firedOnce = true; 11 | const commandExecutor = new Fdc3CommandExecutor(); 12 | commandExecutor.executeCommands(context.commands, context.config, new ChannelService2_0(fdc3)); 13 | } 14 | }); 15 | }); 16 | -------------------------------------------------------------------------------- /toolbox/fdc3-for-web/demo/src/client/apps/app4.ts: -------------------------------------------------------------------------------- 1 | import { getAgent } from '@finos/fdc3-get-agent'; 2 | 3 | /** 4 | * This demonstrates using the API via a promise 5 | */ 6 | getAgent().then(async fdc3 => { 7 | console.log('in promise'); 8 | 9 | fdc3.addIntentListener('ViewNews', async context => { 10 | const msg = document.createElement('p'); 11 | msg.textContent = 'Received News!: ' + JSON.stringify(context); 12 | const log = document.getElementById('log'); 13 | log?.appendChild(msg); 14 | 15 | return { 16 | type: 'fdc3.test', 17 | id: { 18 | from: 'app4', 19 | intent: 'ViewNews', 20 | }, 21 | }; 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /website/versioned_docs/version-1.1/api/ref/IntentResolution.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_label: IntentResolution 3 | title: IntentResolution 4 | hide_title: true 5 | original_id: IntentResolution 6 | --- 7 | # `IntentResolution` 8 | 9 | ```ts 10 | interface IntentResolution { 11 | source: string; 12 | data?: object; 13 | version: string; 14 | } 15 | ``` 16 | 17 | IntentResolution provides a standard format for data returned upon resolving an intent. 18 | 19 | #### Example 20 | ```js 21 | //resolve a "Chain" type intent 22 | const intentResolution = await fdc3.raiseIntent("intentName", context); 23 | ``` 24 | 25 | #### See also 26 | * [`DesktopAgent.raiseIntent`](DesktopAgent#raiseintent) -------------------------------------------------------------------------------- /website/versioned_docs/version-1.2/api/ref/IntentResolution.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_label: IntentResolution 3 | title: IntentResolution 4 | hide_title: true 5 | original_id: IntentResolution 6 | --- 7 | # `IntentResolution` 8 | 9 | ```ts 10 | interface IntentResolution { 11 | source: string; 12 | data?: object; 13 | version: string; 14 | } 15 | ``` 16 | 17 | IntentResolution provides a standard format for data returned upon resolving an intent. 18 | 19 | #### Example 20 | ```js 21 | //resolve a "Chain" type intent 22 | const intentResolution = await fdc3.raiseIntent("intentName", context); 23 | ``` 24 | 25 | #### See also 26 | * [`DesktopAgent.raiseIntent`](DesktopAgent#raiseintent) -------------------------------------------------------------------------------- /website/static/schemas/2.0/country.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.0/country.schema.json", 4 | "type": "object", 5 | "title": "Country", 6 | "allOf": [{ "$ref": "context.schema.json#" }], 7 | "properties": { 8 | "type": { "const": "fdc3.country" }, 9 | "id": { 10 | "type": "object", 11 | "properties": { 12 | "COUNTRY_ISOALPHA2": { "type": "string" }, 13 | "COUNTRY_ISOALPHA3": { "type": "string" }, 14 | "ISOALPHA2": { "type": "string" }, 15 | "ISOALPHA3": { "type": "string" } 16 | } 17 | } 18 | }, 19 | "required": ["id"] 20 | } 21 | -------------------------------------------------------------------------------- /website/versioned_docs/version-1.1/api/ref/ContextHandler.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_label: ContextHandler 3 | title: ContextHandler 4 | hide_title: true 5 | original_id: ContextHandler 6 | --- 7 | # `ContextHandler` 8 | 9 | ```typescript 10 | type ContextHandler = (context: Context) => void; 11 | ``` 12 | 13 | Describes a callback that handles a context event. 14 | 15 | Used when attaching listeners for context broadcasts and raised intents. 16 | 17 | #### See also 18 | * [`Context`](Context) 19 | * [`DesktopAgent.addIntentListener`](DesktopAgent#addintentlistener) 20 | * [`DesktopAgent.addContextListener`](DesktopAgent#addcontextlistener) 21 | * [`Channel.addContextListener`](Channel#addcontextlistener) -------------------------------------------------------------------------------- /website/versioned_docs/version-1.2/api/ref/ContextHandler.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_label: ContextHandler 3 | title: ContextHandler 4 | hide_title: true 5 | original_id: ContextHandler 6 | --- 7 | # `ContextHandler` 8 | 9 | ```typescript 10 | type ContextHandler = (context: Context) => void; 11 | ``` 12 | 13 | Describes a callback that handles a context event. 14 | 15 | Used when attaching listeners for context broadcasts and raised intents. 16 | 17 | #### See also 18 | * [`Context`](Context) 19 | * [`DesktopAgent.addIntentListener`](DesktopAgent#addintentlistener) 20 | * [`DesktopAgent.addContextListener`](DesktopAgent#addcontextlistener) 21 | * [`Channel.addContextListener`](Channel#addcontextlistener) -------------------------------------------------------------------------------- /packages/fdc3-get-agent/test/support/MockStorage.ts: -------------------------------------------------------------------------------- 1 | export class MockStorage implements Storage { 2 | private store: { [key: string]: string } = {}; 3 | 4 | get length(): number { 5 | return Object.keys(this.store).length; 6 | } 7 | 8 | clear(): void { 9 | this.store = {}; 10 | } 11 | 12 | getItem(key: string): string | null { 13 | return this.store[key] || null; 14 | } 15 | 16 | key(index: number): string | null { 17 | return Object.keys(this.store)[index] || null; 18 | } 19 | 20 | removeItem(key: string): void { 21 | delete this.store[key]; 22 | } 23 | 24 | setItem(key: string, value: string): void { 25 | this.store[key] = value; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /packages/fdc3-agent-proxy/src/intents/IntentSupport.ts: -------------------------------------------------------------------------------- 1 | import { AppIdentifier, AppIntent, IntentHandler, IntentResolution, Listener } from '@finos/fdc3-standard'; 2 | import { Context } from '@finos/fdc3-context'; 3 | 4 | export interface IntentSupport { 5 | findIntent(intent: string, context: Context, resultType: string | undefined): Promise; 6 | findIntentsByContext(context: Context): Promise; 7 | raiseIntent(intent: string, context: Context, app?: AppIdentifier): Promise; 8 | raiseIntentForContext(context: Context, app?: AppIdentifier): Promise; 9 | addIntentListener(intent: string, handler: IntentHandler): Promise; 10 | } 11 | -------------------------------------------------------------------------------- /website/static/schemas/2.0/valuation.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.0/valuation.schema.json", 4 | "type": "object", 5 | "title": "Valuation", 6 | "allOf": [{ "$ref": "context.schema.json#" }], 7 | "properties": { 8 | "type": { "const": "fdc3.valuation" }, 9 | "value": { "type": "number" }, 10 | "price": { "type": "number"}, 11 | "CURRENCY_ISOCODE": { "type": "string", "pattern": "^[A-Z]{3}$" }, 12 | "valuationTime": {"type": "string", "format": "date-time" }, 13 | "expiryTime": {"type": "string", "format": "date-time" } 14 | }, 15 | "required": ["value", "CURRENCY_ISOCODE"] 16 | } 17 | -------------------------------------------------------------------------------- /toolbox/fdc3-conformance/src/context-types.ts: -------------------------------------------------------------------------------- 1 | /** same in 1.2 and 2.0 */ 2 | export interface CommonContext { 3 | id?: { 4 | [key: string]: string; 5 | }; 6 | name?: string; 7 | type: string; 8 | } 9 | 10 | export interface AppControlContext extends CommonContext { 11 | testId?: string; 12 | instanceId?: string; 13 | Context?: CommonContext; 14 | errorMessage?: string; 15 | } 16 | 17 | export interface AppControlContextListener { 18 | listenerPromise: Promise; 19 | } 20 | 21 | export interface IntentUtilityContext extends CommonContext { 22 | delayBeforeReturn?: number; 23 | onUnsubscribedTriggered?: boolean; 24 | number?: number; 25 | instanceId?: string; 26 | } 27 | -------------------------------------------------------------------------------- /website/versioned_docs/version-1.1/api/ref/AppIntent.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_label: AppIntent 3 | title: AppIntent 4 | hide_title: true 5 | original_id: AppIntent 6 | --- 7 | # `AppIntent` 8 | 9 | ```ts 10 | interface AppIntent { 11 | intent: IntentMetadata; 12 | apps: Array; 13 | } 14 | ``` 15 | An interface that represents the binding of an intent to apps, returned as part of intent disocvery. 16 | For each intent, it reference the applications that support that intent. 17 | 18 | #### See also 19 | * [`AppMetadata`](AppMetadata) 20 | * [`IntentMetadata`](IntentMetadata) 21 | * [`DesktopAgent.findIntent`](DesktopAgent#findintent) 22 | * [`DesktopAgent.findIntentsByContext`](DesktopAgent#findintentsbycontext) -------------------------------------------------------------------------------- /website/versioned_docs/version-1.2/api/ref/AppIntent.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_label: AppIntent 3 | title: AppIntent 4 | hide_title: true 5 | original_id: AppIntent 6 | --- 7 | # `AppIntent` 8 | 9 | ```ts 10 | interface AppIntent { 11 | intent: IntentMetadata; 12 | apps: Array; 13 | } 14 | ``` 15 | An interface that represents the binding of an intent to apps, returned as part of intent disocvery. 16 | For each intent, it reference the applications that support that intent. 17 | 18 | #### See also 19 | * [`AppMetadata`](AppMetadata) 20 | * [`IntentMetadata`](IntentMetadata) 21 | * [`DesktopAgent.findIntent`](DesktopAgent#findintent) 22 | * [`DesktopAgent.findIntentsByContext`](DesktopAgent#findintentsbycontext) -------------------------------------------------------------------------------- /packages/fdc3-standard/src/api/ContextMetadata.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * SPDX-License-Identifier: Apache-2.0 3 | * Copyright FINOS FDC3 contributors - see NOTICE file 4 | */ 5 | 6 | import { AppIdentifier } from './AppIdentifier'; 7 | 8 | /** 9 | * Metadata relating to a context or intent and context received through the 10 | * `addContextListener` and `addIntentListener` functions. 11 | * 12 | * @experimental Introduced in FDC3 2.0 and may be refined by further changes outside the normal FDC3 versioning policy. 13 | */ 14 | export interface ContextMetadata { 15 | /** Identifier for the app instance that sent the context and/or intent. 16 | * 17 | * @experimental 18 | */ 19 | readonly source: AppIdentifier; 20 | } 21 | -------------------------------------------------------------------------------- /website/src/components/HomeSection2/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styles from './styles.module.css' 3 | import MonoIcon from '../MonoIcon' 4 | 5 | // title, central panel, a call to action adn a footer icon 6 | export default ({ children, alt }) => { 7 | return ( 8 |
    9 |
    10 | {children[0]} 11 |
    12 | 13 |
    14 | {children[1]} 15 |
    16 | 17 |
    18 | {children[2]} 19 |
    20 | 21 |
    22 | 23 |
    24 |
    ) 25 | } 26 | 27 | 28 | -------------------------------------------------------------------------------- /website/static/schemas/2.0/timerange.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://fdc3.finos.org/schemas/2.0/timerange.schema.json", 4 | "type": "object", 5 | "title": "TimeRange", 6 | "allOf": [{ "$ref": "context.schema.json#" }], 7 | "anyOf": [ 8 | { 9 | "required": ["startTime", "endTime"] 10 | }, 11 | { 12 | "required": ["startTime"] 13 | }, 14 | { 15 | "required": ["endTime"] 16 | } 17 | ], 18 | "properties": { 19 | "type": { "const": "fdc3.timerange" }, 20 | "startTime": { "type": "string", "format": "date-time" }, 21 | "endTime": {"type": "string", "format": "date-time" } 22 | }, 23 | "required": [] 24 | } 25 | -------------------------------------------------------------------------------- /website/static/img/fdc3-icon-light-2019.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 7 | 9 | 11 | 12 | --------------------------------------------------------------------------------