Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FDC3 For Web Browsers Implementation #1309

Open
wants to merge 835 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
835 commits
Select commit Hold shift + click to select a range
ae057f4
Update schema file generation
julianna-ciq Nov 13, 2024
09dc1ab
Merge remote-tracking branch 'roaders/ts-morph' into fdc3-for-web-imp…
robmoffat Nov 14, 2024
df6caac
working on generating bridging
robmoffat Nov 14, 2024
9de1508
Merged Giles' change
robmoffat Nov 14, 2024
dd5e1c7
Merge remote-tracking branch 'interopio/move-addon' into fdc3-for-web…
robmoffat Nov 14, 2024
4548986
correcting issues in context docs generation
kriswest Nov 14, 2024
469d7da
Converted to constants for all Fdc3UserInterface type usages
robmoffat Nov 14, 2024
84bab84
Renumbered ports for consistency, added in UI choice again
robmoffat Nov 14, 2024
3cbbb89
Fixed demo UI using new FDC3 UI Constants
robmoffat Nov 14, 2024
8942cd3
Got alternative UI components working
robmoffat Nov 15, 2024
2514768
Merge branch 'fdc3-for-web-impl' into fdc3-for-web-impl-merging-prs
robmoffat Nov 15, 2024
bce891e
Merge pull request #1436 from finos/fdc3-for-web-impl-merging-prs
robmoffat Nov 15, 2024
d67f32b
Allowing channel selector drag
robmoffat Nov 19, 2024
604a27c
Made smoother
robmoffat Nov 19, 2024
664ad77
Linting setup
kriswest Nov 19, 2024
3dd0fd2
WIP GetAgent refactor
kriswest Nov 19, 2024
2614791
Better encapsulate handshake and identity messaging and reuse in fail…
kriswest Nov 19, 2024
9fa5f1e
Adding timeouts to loaders and eliminating TimeoutLoader
kriswest Nov 20, 2024
ae5ef1e
Limit connection strategies based on persisted data
kriswest Nov 20, 2024
f8a2761
use a previously persisted agentUrl in PostMessageLoader if available
kriswest Nov 20, 2024
4f7b6be
Update packages/fdc3-get-agent/src/ui/DefaultDesktopAgentChannelSelec…
kriswest Nov 20, 2024
c3e7e7b
Dealing with review comments
kriswest Nov 20, 2024
09a90db
Merge remote-tracking branch 'upstream/fdc3-for-web-impl' into impl-r…
kriswest Nov 20, 2024
022c4bc
Bridging schema fix and updating package-lock
kriswest Nov 20, 2024
0b18498
addressing weird semgrep errors on log messages
kriswest Nov 20, 2024
ebc54d9
tweakng typing in hopes of fixing a circular dependency import...
kriswest Nov 20, 2024
c8e9dff
typing on waitFor and exchange + some cleanup in AbstractWebMessaging…
kriswest Nov 20, 2024
786cbdb
reenable code coverage
kriswest Nov 21, 2024
f186fe7
Modify generate-type-predicates to only include interfaces that have …
Roaders Nov 22, 2024
7979770
Tidy up code. Add valid / non valid predicates
Roaders Nov 22, 2024
3f5bd07
Work in progress
robmoffat Nov 22, 2024
df64746
Work in progress
robmoffat Nov 22, 2024
270d129
Merge branch 'main' into fdc3-for-web-impl-draggable
robmoffat Nov 22, 2024
d7f0523
Drag now respects closest sides
robmoffat Nov 22, 2024
39eea7b
Fairly stable
robmoffat Nov 22, 2024
4aaa941
Further cleanup of Messaging and Listeners, additional typing
kriswest Nov 22, 2024
eec9284
Correcting issues with tests (a circular dependency and unused imports)
kriswest Nov 22, 2024
f4713c4
Cleanup and simplify AbstractListener
kriswest Nov 25, 2024
810cf33
Merge branch 'fdc3-for-web-fix-private-channel-events' into fdc3-for-…
kriswest Nov 25, 2024
fb7c0b7
Refactor PrivateChannel event listener support
kriswest Nov 25, 2024
23f8ad1
Messaging refactor
kriswest Nov 26, 2024
070a413
Corrections to PrivateChannelAddEventListenerRequest
kriswest Nov 26, 2024
0bda0f1
Merge pull request #1444 from Roaders/fdc3-for-web-impl-merging-prs
kriswest Nov 26, 2024
f9dcd4d
Merge branch 'main' into fdc3-for-web-impl-update-type-predicates
kriswest Nov 26, 2024
2b523a1
Removing an unused test step with a type issue and correcting other t…
kriswest Nov 26, 2024
1a25d0b
Merge pull request #1447 from finos/fdc3-for-web-impl-update-type-pre…
robmoffat Nov 26, 2024
a9d532a
Fast failing of coverage
robmoffat Nov 26, 2024
8e6669a
Merge pull request #1448 from finos/fast-fail-for-coverage
kriswest Nov 26, 2024
1254cc9
Merge branch 'fdc3-for-web-impl-update-type-predicates' into fdc3-for…
kriswest Nov 26, 2024
06c6c9c
More typing work on Listener and PrivateChannel events
kriswest Nov 26, 2024
e46f365
Restyled channel selector and got it responding to drag
robmoffat Nov 27, 2024
3a25de1
Merge branch 'fdc3-for-web-impl' into fdc3-for-web-impl-draggable
robmoffat Nov 27, 2024
2dc4b89
Merge pull request #1450 from finos/fdc3-for-web-impl-draggable
robmoffat Nov 27, 2024
b4eb5cb
Merge remote-tracking branch 'interopio/monorepo-docusaurus' into fdc…
robmoffat Nov 28, 2024
4a1090e
Fixing netlify build
robmoffat Nov 28, 2024
8d69baa
Fixing netlify
robmoffat Nov 28, 2024
da4c043
Removed yarn.lock to enable netlify to use npm
robmoffat Nov 28, 2024
e70ffbd
fixing mssing dev dep
robmoffat Nov 28, 2024
03cb5cf
adding install step in website build
robmoffat Nov 28, 2024
e3d03d1
fixing netlify build
robmoffat Nov 28, 2024
70121ac
Merge pull request #1451 from finos/fdc3-for-web-impl-docusaurus
robmoffat Nov 28, 2024
59ad838
Better logging in getAgent
kriswest Nov 28, 2024
74f383b
Added legacy CJS support fdc3 package
robmoffat Nov 28, 2024
0098d48
removed command line args, added to script
robmoffat Nov 28, 2024
b00d208
removed comments
robmoffat Nov 28, 2024
95d84ab
Added display block/none on Intent resolver iframe
robmoffat Nov 28, 2024
a54b2f7
Send WCP6Goodbye on disconnects - inside MessagePortMessaging
kriswest Nov 28, 2024
832349f
minor tweaks to heartbeats
kriswest Nov 29, 2024
f066ffb
typing in UI component handling
kriswest Nov 29, 2024
9b236ea
Add fdc3 version to standard package
kriswest Nov 29, 2024
721ba3e
Additional logging in getAgent
kriswest Nov 29, 2024
1ea6f9e
minor logging tweaks
kriswest Nov 29, 2024
5c37064
minor schema correction in fdc3UserInterfaceResolveAction
kriswest Nov 29, 2024
b95cc60
iframe adaptor responds to hello message
kriswest Nov 29, 2024
fd2870c
Refactoring fdc3-get-agent tests
kriswest Nov 29, 2024
fee7d44
Merge branch 'fdc3-for-web-impl' into fdc3-for-web-impl-getAgent-refa…
kriswest Nov 29, 2024
5b1b0b1
getAgent tests passing + reducing log messaging during tests
kriswest Dec 2, 2024
314b313
some minor logging additions for debug use
kriswest Dec 2, 2024
887b26a
Merge remote-tracking branch 'InteropIO/impl-review-updates' into fdc…
robmoffat Dec 3, 2024
ea9ac9d
Fixed interface matches (fixing tests)
robmoffat Dec 3, 2024
69d89f0
Merge pull request #1453 from finos/fdc3-for-web-iframe-display]
robmoffat Dec 3, 2024
69928fe
Fixed issue with channel selection callback|
robmoffat Dec 3, 2024
612ef50
Merge pull request #1454 from finos/fdc3-for-web-impl-julianna-review
robmoffat Dec 3, 2024
a9edc95
adding prettier back in
kriswest Dec 3, 2024
fbc3a7b
Applying prettier to all code, setting up commit hook and eslint configs
kriswest Dec 3, 2024
3741903
adding linting scripts
kriswest Dec 3, 2024
7914ac2
improving typescript use in fdc3-agent-proxy
kriswest Dec 3, 2024
f99e46b
adjusting privateChannel tests to match correct to private channel ev…
kriswest Dec 3, 2024
7341ebe
code formating and minor improvements in toolbox/fdc3-for-web impleme…
kriswest Dec 3, 2024
26dd356
Improved typing and fixes to agent-proxy tests (6 still need fixing)
kriswest Dec 4, 2024
25314d2
agent-proxy tests passing, fix PrivateChannel event and getInfo handling
kriswest Dec 4, 2024
fc3438d
dealing private channel event listener changes in fdc3-web-impl
kriswest Dec 4, 2024
38bbb8e
Adding linting to toolbox/fdc3-web-impl projects
kriswest Dec 4, 2024
e567678
more typing and formatting in fdc3-get-agent
kriswest Dec 6, 2024
89a8ae2
more test cleanup and adding a test for failed validation
kriswest Dec 6, 2024
de83692
fdc3-get-agent tests coverage
kriswest Dec 9, 2024
bc34711
Testing husky lint
robmoffat Dec 10, 2024
d444927
Setting fetch depth
robmoffat Dec 10, 2024
e9b21bd
adding fetch base
robmoffat Dec 10, 2024
8a981c8
Further refactor of fdc3-get-agent tests and improving coverage
kriswest Dec 10, 2024
72639ea
Merge pull request #1456 from InteropIO/fdc3-web-impl-prettier
robmoffat Dec 10, 2024
c3aaf80
Merging eslint and prettier changes
kriswest Dec 10, 2024
74daa90
Attempting to deal with SemGrep issues with log messages
kriswest Dec 10, 2024
b650a63
Fixing remaining BrowserTypes imports
kriswest Dec 10, 2024
1ddc9d9
Further work on resolving logging semgrep complaints
kriswest Dec 10, 2024
0565704
Further attempt to resolve SemGrep logging issues
kriswest Dec 10, 2024
d1ced23
reworking Logger again to appease semgrep
kriswest Dec 10, 2024
e39185b
Output error stack traces in Logger
kriswest Dec 10, 2024
b83b099
failoverhandler test coverage
kriswest Dec 11, 2024
0ea5b95
lint free fdc3-get-agent
kriswest Dec 11, 2024
731b2ec
lint in fdc3-web-impl
kriswest Dec 11, 2024
7304989
lint in fdc3-web-impl and reference-ui
kriswest Dec 11, 2024
4000f3d
lint in demo
kriswest Dec 11, 2024
e6875e5
Merge branch 'main' into fdc3-for-web-impl
kriswest Dec 11, 2024
1dd16da
Handling private channel schema change
kriswest Dec 11, 2024
7b330ac
Merge branch 'fdc3-for-web-impl' into fdc3-for-web-impl-getAgent-refa…
kriswest Dec 11, 2024
c459f07
Update coverage.yml
robmoffat Dec 11, 2024
29935c1
Addressing review feedback
kriswest Dec 12, 2024
db6b481
Removing redundant cleanup steps
kriswest Dec 12, 2024
fec54c8
Clear timers when no longer needed in AbstractMessaging
kriswest Dec 12, 2024
fb83447
Merge branch 'fdc3-for-web-impl' into fdc3-for-web-impl-commonjs
robmoffat Dec 16, 2024
2785128
build complete
robmoffat Dec 16, 2024
69d0bbc
Update function in docs that searches for parent frames
kriswest Dec 16, 2024
2f7d131
Renaming BasicDesktopAgent to DesktopAgentProxy (as that better repre…
kriswest Dec 16, 2024
b69afaa
minor formatting spelling and typing fixes in fdc3-agent-proxy
kriswest Dec 16, 2024
edcb439
Added commonjs as a separate module
robmoffat Dec 16, 2024
e0de6a7
Updated package lock
robmoffat Dec 16, 2024
4730887
Address review comments
kriswest Dec 16, 2024
66c0091
Update README.md
robmoffat Dec 17, 2024
dd72cfa
Added module readmes
robmoffat Dec 17, 2024
96025eb
added changelog
robmoffat Dec 17, 2024
d5c4e20
Resolving comments from Rob's review
kriswest Dec 17, 2024
7e2774a
Update coverage.yml
robmoffat Dec 17, 2024
38338f4
reverted
robmoffat Dec 17, 2024
fe42de4
Remove defunct code in DefaultIntentListener
kriswest Dec 17, 2024
e35a162
Fix error introduced into UI iframe test infrastructure
kriswest Dec 17, 2024
4da3542
Resolving review comments from Julianna's final batch
kriswest Dec 17, 2024
180f24c
Refactored FailoverHandler into separate smaller functions, tidied up…
robmoffat Dec 18, 2024
d81df1b
Merge branch 'fdc3-for-web-impl-getAgent-refactor' into fdc3-for-web-…
robmoffat Dec 18, 2024
6f3bf05
Adding base coverage
robmoffat Dec 18, 2024
698586f
Merge pull request #1477 from finos/fdc3-for-web-impl-base-coverage
robmoffat Dec 18, 2024
34b2c9b
Update base-coverage.yml
robmoffat Dec 18, 2024
0c86b2d
Merge pull request #1476 from finos/fdc3-for-web-impl-getAgent-refact…
kriswest Dec 18, 2024
7d5e67c
Merge branch 'fdc3-for-web-impl' into fdc3-for-web-impl-getAgent-refa…
kriswest Dec 18, 2024
f2b1b1d
Note on wtfnode use
kriswest Dec 18, 2024
4b21e9f
Update packages/fdc3/README.md
robmoffat Dec 18, 2024
6221b61
Update packages/fdc3/README.md
robmoffat Dec 18, 2024
1d22686
Update packages/fdc3-commonjs/README.md
robmoffat Dec 18, 2024
d9529a9
Update packages/fdc3-commonjs/README.md
robmoffat Dec 18, 2024
25ff0fb
Update base-coverage.yml
robmoffat Dec 18, 2024
bf67434
Merge branch 'main' into fdc3-for-web-impl
kriswest Dec 18, 2024
2f5429a
Merge pull request #1452 from finos/fdc3-for-web-impl-commonjs
robmoffat Dec 18, 2024
e78c042
trying to fix coverage reporting.
robmoffat Dec 19, 2024
fb996b1
changing path
robmoffat Dec 19, 2024
10aba7f
Update packages/fdc3-agent-proxy/src/intents/DefaultIntentSupport.ts
kriswest Dec 19, 2024
1e0774b
Added test policy in contributing section
robmoffat Dec 19, 2024
48b93e4
added changelog
robmoffat Dec 19, 2024
1ec1237
Resolving comments from Rob's review
kriswest Dec 19, 2024
1f42fa6
Addressing Rob's coverage comments
kriswest Dec 19, 2024
279bad3
SSimplify DefaultIntentSupport.raiseIntent* coverage
kriswest Dec 19, 2024
442956d
Test channel selector callback
kriswest Dec 20, 2024
d65d1db
Make sure MessagePort is started for identity validation
kriswest Dec 23, 2024
9b06c26
fix dependency mismatches
kriswest Dec 23, 2024
0468da6
Correcting issues with reconnection in fdc3-for-web-impl and demo
kriswest Jan 2, 2025
9d1317c
IntentHandler test coverage
kriswest Jan 2, 2025
3b795ea
catch cross-domain window.name accesses
kriswest Jan 2, 2025
455b205
some lint and logging
kriswest Jan 2, 2025
9c54ec9
Merge branch 'fdc3-for-web-impl' into fdc3-for-web-impl-getAgent-refa…
kriswest Jan 7, 2025
5312abb
cleanup package-lock
kriswest Jan 7, 2025
31c0781
Better validation of addContextListener args and testing of error on …
kriswest Jan 8, 2025
50a4731
Revert to importing all of BrowserTypes as CommonJS compile doesn't l…
kriswest Jan 8, 2025
d248137
Addressing review comments including using appState.terminated for pa…
kriswest Jan 9, 2025
ec14275
Refining fdc3-for-web-impl's findIntent fns, tests and cleanup on dis…
kriswest Jan 9, 2025
1cb72b9
rolling package verison numbers
kriswest Jan 9, 2025
b6b04e1
Fix getAgent tests after previous change to fdc3-for-web-impl
kriswest Jan 9, 2025
525b800
syncpack
kriswest Jan 9, 2025
a305b93
syncing more package.json version nums
kriswest Jan 10, 2025
27ccc55
Import picocolors to fix commonjs build
kriswest Jan 10, 2025
b03197a
timing improvements to injected UIs
kriswest Jan 10, 2025
5117a58
Ignore untested parts of picocolors for coverage
kriswest Jan 10, 2025
53bbaba
correcting updateChannel in test implementations of channelSelectors
kriswest Jan 10, 2025
5e2fd55
Picocolors testing exemption
kriswest Jan 10, 2025
91449c9
protect messaging in DefaultChannel
kriswest Jan 10, 2025
5babe3c
Adding notes on non-standard error messages
kriswest Jan 13, 2025
24d0bb2
Revert dummy-desktop-agent to default directory
kriswest Jan 13, 2025
ede0803
Improving channel selector implementations
kriswest Jan 13, 2025
1bbe6b6
Remove picocolors
kriswest Jan 13, 2025
6ff39c5
remove unused glyphColor
kriswest Jan 13, 2025
a5eeddd
Merge pull request #1466 from finos/fdc3-for-web-impl-getAgent-refactor
robmoffat Jan 14, 2025
8162392
Update CONTRIBUTING.md
robmoffat Jan 14, 2025
ee7f931
Update CONTRIBUTING.md
robmoffat Jan 14, 2025
67356c1
Update CONTRIBUTING.md
robmoffat Jan 14, 2025
30d3c5b
Moved from kite9 -> finos
robmoffat Jan 14, 2025
7f0df23
2.2.0-alpha.1
robmoffat Jan 14, 2025
5842063
Updated version number, published 2.2.0-alpha.1
robmoffat Jan 14, 2025
4e78b5c
removed spurious comments
robmoffat Jan 15, 2025
03a7b32
Added documentation
robmoffat Jan 15, 2025
742c503
Fixing image paths
robmoffat Jan 15, 2025
19a3aad
Adding support for controlling debug logging in fdc3-agent-proxy and …
kriswest Jan 15, 2025
19a0f8e
CHANGELOG
kriswest Jan 15, 2025
a44ec5d
Testing coverage
kriswest Jan 15, 2025
dca1f8a
Test coverage
kriswest Jan 15, 2025
6ccd641
Merge pull request #1480 from finos/fdc3-for-web-impl-test-policy
kriswest Jan 16, 2025
5ff5066
Added dist, bumped to alpha.2 version
robmoffat Jan 16, 2025
77e92a8
Allow DAs to customize timeouts used for message exchanges and app la…
kriswest Jan 16, 2025
cbf8ab1
timeouts in testing for fdc3-agent-proxy
kriswest Jan 16, 2025
bdef136
Shorten timeouts used when testing
kriswest Jan 16, 2025
9e05c46
updated to alpha.3
robmoffat Jan 16, 2025
1ed86d8
Update website/docs/api/ref/GetAgent.md
kriswest Jan 16, 2025
3bd6717
WIP timeout tests - not passing yet
kriswest Jan 16, 2025
cbda003
Merge branch 'main' into fdc3-for-web-impl
kriswest Jan 16, 2025
4ff303f
Apply prettier after generating files from schemas
kriswest Jan 16, 2025
25f2a06
migrate workbench to getAgent
Roaders Dec 24, 2024
f232a10
updated changelog
Roaders Jan 4, 2025
5dcffda
Merge branch 'fdc3-for-web-impl' into fdc3-for-web-impl-debug-logs
kriswest Jan 17, 2025
f9faca9
Merge branch 'main' into fdc3-for-web-impl
kriswest Jan 17, 2025
029f617
Migrate conformance test docs into correct location in mono repo
kriswest Jan 17, 2025
0644c81
Merge branch 'fdc3-for-web-impl' into fdc3-for-web-impl-debug-logs
kriswest Jan 17, 2025
36f795a
Merge branch 'main' into fdc3-for-web-impl-control-timeouts
kriswest Jan 17, 2025
3b7f2a2
Move conformance test docs into correct location in mono-repo
kriswest Jan 17, 2025
f709255
Fixing packaging and deployment of Reference UI for Web
robmoffat Jan 17, 2025
d2bb607
Using hosted channel selector and intent resolver.
robmoffat Jan 17, 2025
2a185a5
Remove unused files originally written for early development
robmoffat Jan 23, 2025
3abc5cb
fixed dup in test policy
robmoffat Jan 23, 2025
ca3daad
Creating ApiTimeout errors and partially complete tests
kriswest Jan 24, 2025
e93d026
Merge branch 'fdc3-for-web-impl-debug-logs' into fdc3-for-web-impl-co…
kriswest Jan 24, 2025
5ee82fb
first test working
kriswest Jan 24, 2025
55bb9da
Log handshake messages at debug level
kriswest Jan 24, 2025
65930b2
All timeout tests working
kriswest Jan 24, 2025
366e092
CHANGELOG
kriswest Jan 24, 2025
12df506
Merge branch 'fdc3-for-web-impl' into fdc3-for-web-impl-control-timeouts
kriswest Jan 24, 2025
fe6b359
restoring missing test step
kriswest Jan 24, 2025
f6147a6
Minor schema correction
kriswest Jan 24, 2025
4250222
switch existing test to new error message (as its an APITimeout rathe…
kriswest Jan 27, 2025
04f1036
Update CHANGELOG.md
Roaders Jan 27, 2025
7878abf
move non-generic test steps to their own file in fdc3-get-agent and d…
kriswest Jan 27, 2025
da3e330
defaultTimeout -> messageExchangeTimeout
kriswest Jan 27, 2025
a72c89e
defaultTimeout -> messageExchangeTimeout (in tests)
kriswest Jan 27, 2025
e6ac4a7
Rework logging config based on log levels
kriswest Jan 28, 2025
18ad82b
Fixed path to directory schema
robmoffat Jan 28, 2025
9bc1f41
Added extra exports
robmoffat Jan 28, 2025
ac871f0
Log settings in tests + coverage
kriswest Jan 28, 2025
3f1bc53
Merge pull request #1485 from Roaders/fdc3-for-web-impl-getAgent-refa…
robmoffat Jan 28, 2025
7445181
fixed typo
robmoffat Jan 28, 2025
036b434
Correcting NONE log level definition
kriswest Jan 28, 2025
5e392ed
Cleanup of an unused type and incorrect timeout in a test
kriswest Jan 28, 2025
27edb07
Clarifying note on timeouts in DACP docs
kriswest Jan 28, 2025
d8b1c5e
Merge pull request #1500 from finos/fdc3-for-web-impl-fixes-rm
robmoffat Jan 29, 2025
a04808c
Merge pull request #1497 from finos/fdc3-for-web-impl-control-timeouts
robmoffat Jan 29, 2025
537ccfb
fix linting config in fdc3-workbench
kriswest Jan 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
31 changes: 31 additions & 0 deletions .github/workflows/base-coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Test coverage for main branch

on:
push:
branches:
- main
- fdc3-for-web-impl

jobs:
test_and_upload_coverage:
runs-on: ubuntu-latest
name: Test and upload coverage
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ github.event.ref }}
fetch-depth: 1000

- name: Run tests
run: |
npm i
npm run test
npm run merge
npm run report

- name: Upload coverage artifact
uses: actions/upload-artifact@v4
with:
name: test-coverage-output
path: nyc-coverage-report
69 changes: 69 additions & 0 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Node.js CI Tests and Coverage

# Controls when the workflow will run on any branch
on:
pull_request:

# Allows Coverage to be written back as a PR comment
permissions:
pull-requests: write

# Define the jobs for this workflow
jobs:
test:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 1000

- name: Fetch base
run: git fetch origin ${{ github.event.pull_request.base.ref }} --depth=1000

- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 20.x

- name: Install dependencies
run: npm install

- name: Run tests
run: npm run test

- name: Merge Results
run: npm run merge

- name: Create Report
run: npm run report

- name: Create test summary
uses: test-summary/action@dist
with:
paths: "**/test-results.xml"
show: "fail, skip"
output: test-summary.md
if: always()

- name: PR comment with file
uses: thollander/actions-comment-pull-request@v3
with:
file-path: test-summary.md

- name: Download previous coverage
uses: dawidd6/action-download-artifact@v7
with:
workflow: base-coverage.yml
name: 'test-coverage-output'
path: base-artifacts
search_artifacts: true

- name: Report Coverage
uses: sidx1024/[email protected]
with:
coverage_file: "nyc-coverage-report/coverage-summary.json"
base_coverage_file: "base-artifacts/coverage-summary.json"

4 changes: 0 additions & 4 deletions .github/workflows/cve-scanning.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,6 @@ jobs:

- run: npx --yes auditjs ossi --whitelist allow-list.json
if: success() || failure()

- run: npx --yes auditjs ossi --whitelist ../../allow-list.json
working-directory: toolbox/fdc3-workbench
if: success() || failure()

- run: npx --yes auditjs ossi --whitelist ../allow-list.json
working-directory: website
Expand Down
13 changes: 10 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,16 @@ website/build/
website/static/toolbox
website/node_modules
website/i18n/*
website/package-lock.json
website/.docusaurus/**
website/.docusaurus/
website/static/schemas/next/*
website/static/ui
test-results.xml


.idea/
*.iml
website/.yarn
website/.yarn
.nyc_output
toolbox/fdc3-for-web/fdc3-web-impl/generated/
cucumber-report.html
nyc-coverage-report/
2 changes: 2 additions & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/sh
npx lint-staged
4 changes: 4 additions & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Omit the registry url which can be an organization's internal npm mirror when generating package-lock.json file
# see: https://github.com/npm/cli/pull/4874
# and https://docs.npmjs.com/cli/v8/using-npm/config#omit-lockfile-registry-resolved
omit-lockfile-registry-resolved = true
4 changes: 4 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,7 @@
website
dist
src/app-directory/*/target
node_modules
coverage
.nyc_output
build
7 changes: 5 additions & 2 deletions .semgrepignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@ website/**

# Just used for build so ignoring
s2tQuicktypeUtil.js
schemas/api/t2sQuicktypeUtil.js
t2sQuicktypeUtil.js

# API schema set for localhost gets picked up by semgrep rule
schemas/bridgingAsyncAPI/bridgingAsyncAPI.json
schemas/bridgingAsyncAPI/bridgingAsyncAPI.json

# demo apps get picked up for not having integrity headers
toolbox/fdc3-for-web/demo/src/client/apps/**
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"typescript.tsdk": "node_modules/typescript/lib"
}
8 changes: 7 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
* Added utility functions `isStandardContextType(contextType: string)`, `isStandardIntent(intent: string)`,`getPossibleContextsForIntent(intent: StandardIntent)`. ([#1139](https://github.com/finos/FDC3/pull/1139))
* Added support for event listening outside of intent or context listnener. Added new function `addEventListener`, type `EventHandler`, enum `FDC3EventType` and interfaces `FDC3Event` and `FDC3ChannelChangedEvent`. ([#1207](https://github.com/finos/FDC3/pull/1207))
* Added new `CreateOrUpdateProfile` intent. ([#1359](https://github.com/finos/FDC3/pull/1359))
* Added conformance tests into the FDC3 API documentation in the current version and backported into 2.0 and 2.1. Removed outdated 1.2 conformance tests (which are preserved in the older 2.0 and 2.1 versions). ([#1417](https://github.com/finos/FDC3/pull/1417)).
* Added conformance tests into the FDC3 API documentation in the current version and backported into 2.0 and 2.1. Removed outdated 1.2 conformance tests (which are preserved in the older 2.0 and 2.1 versions). ([#1417](https://github.com/finos/FDC3/pull/1417))
* Added separate `fdc3-commonjs` module for compatibility with older projects that use CommonJS. ([#1452](https://github.com/finos/FDC3/pull/1452))
* Added testing policy to [Contributing](CONTRIBUTING) page to address ([810](https://github.com/finos/FDC3/issues/810))
* Added the ability to control logging to the JS console from getAgent() and the DesktopAgentProxy via arguments to getAgent(). ([#1495](https://github.com/finos/FDC3/pull/1495))
* Added the ability for a browser-based DesktopAgent to control the timeouts used in the DesktopAgentProxy when making calls to it, via properties in WCP3Handshake message. ([#1497](https://github.com/finos/FDC3/pull/1497))


### Changed

Expand All @@ -34,6 +39,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
* FDC3 apps are now encouraged to instantiate their FDC3 interface (DesktopAgent) using the `getAgent()` function provided by the `@finos/fdc3` module. This will allow apps to interoperate in either traditional Preload DAs (i.e. Electron) as well as the new Browser-Resident DAs. ([#1191](https://github.com/finos/FDC3/pull/1191))
* `ContextType` and `Intent` (`string`) types were created for use in DesktopAgent API signatures - they are unions of standardized values and `string`, enabling autocomplete/IntelliSense in IDEs when working with the FDC3 API. ([#1139](https://github.com/finos/FDC3/pull/1139))
* SessionStorage use by `getAgent` was updated to scope the stored data by `window.name` and the app's `identityUrl`. ([#1442](https://github.com/finos/FDC3/pull/1442))
* FDC3 Workbench updated to use `getAgent()` rather than `fdc3Ready()`

### Deprecated

Expand Down
24 changes: 24 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,30 @@ The Working Group uses pull requests to track changes. To submit a change to the

To contribute a patch for a New Intent, see the [Submit New Intent](docs/guides/submit-new-intent) guide.

**3.6. Test Policy**

- The FDC3 project takes very seriously code quality, especially with respect to production-grade sub-modules. This includes:

|Module | Test Policy |
|---|---|
|`packages/fdc3` | Code should not be added here - just `import` / `export` in `index.ts` |
|`packages/fdc3-agent-proxy` | Contributions must improve or maintain coverage at the current level |
|`packages/fdc3-commonjs` | Code should not be added here |
|`packages/fdc3-context` | Must contain only JSON Schemas and source code generated from them |
|`packages/fdc3-get-agent` |Contributions must improve or maintain coverage at the current level
|`packages/fdc3-schema` | Must contain only JSON Schemas and source code generated from them |
|`packages/fdc3-standard` | Contributions must improve or maintain coverage at the current level |
|`toolbox/fdc3-for-web/fdc3-web-impl` | Contributions must improve or maintain coverage at the current level |

Please note that the FDC3 project uses the following test policy:

* Code should have tests (coverage is reported in the PR comments)
* All tests must pass. (checked automatically by the PR comments)
* All tests must be meaningful.
* All tests must be kept up-to-date.
* All tests must be run locally before submitting a PR.
* Finally, the `toolbox/fdc3-for-web/demo` project is expected to pass the FDC3 conformance framework prior to new FDC3 releases (not currently automated).

## 4. Pull Request Workflow.

The next section contains more information on the workflow followed for Pull Requests.
Expand Down
43 changes: 40 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,12 +76,47 @@ The specifications are informed by agreed [business use cases](https://fdc3.fino
- All that is required is a "desktop agent" that supports the FDC3 standard, which is responsible for coordinating application interactions.
- Get started using FDC3 on the web with TypeScript by reading the [supported platforms](https://fdc3.finos.org/docs/supported-platforms) page.

### FDC3 npm module
## FDC3 Project Structure

The FDC3 npm package does NOT provide a Desktop Agent implementation. Rather, it can by used by web applications to target operations from the API Specification in a consistent way. Each FDC3-compliant desktop agent that the application runs in, can then provide an implementation of the FDC3 API operations.
This project (the FDC3 Standard repo) is now a monorepo containing the following modules:

| Directory | Release Coordinates | Purpose | Testing / Coverage |
|--------------------------------------|--------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------|
| `packages/fdc3-schema` | `@finos/fdc3-schema` (npm) | Contains the FDC3 For The Web and Desktop Agent Bridging protocol schemas. Generates `BridgingTypes.ts` and `BrowserTypes.ts` versions of those schemas for consumption in typescript code. | n/a |
| `packages/fdc3-context` | `@finos/fdc3-context` (npm) | Contains the schemas for standard FDC3 context types. Generates the `ContextTypes.ts` typescript version of the schema for consumption in typescript/javascript. | n/a |
| `packages/fdc3-standard` | `@finos/fdc3-standard` (npm) | Interface definitions for the FDC3 standard in typescript (e.g. the `DesktopAgent` interface) and the app directory schema. | Jest, embedded NYC |
| `packages/fdc3-agent-proxy` | `@finos/fdc3-agent-proxy` (npm) | Contains a complete implementation of the FDC3 DACP. Written in a platform-agnostic manner. | Cucumber, NYC |
| `packages/fdc3-get-agent` | `@finos/fdc3-get-agent` (npm) | Implements the `getAgent` and `fdc3Ready()` functions as well as the FDC3 Web Connection protocol to allow FDC3 to work on the web or in an electron container. | Cucumber, NYC |
| `packages/testing` | -not released- | Contains testing tools used by the cucumber tests used within other modules of this project. | |
| `toolbox/fdc3-conformance` | -not released- | Contains definitions of the FDC3 conformance test suite, implemented by the [FDC3 Conformance Framework](https://github.com/finos/FDC3-conformance-framework) | Test Definitions Only |
| `toolbox/fdc3-workbench` | [here](https://fdc3.finos.org/toolbox/fdc3-workbench/) | Contains an FDC3-For-Web ready version of the [FDC3 Workbench](toolbox/fdc3-workbench/README.md). | |
| `toolbox/fdc3-explained` | [Here](https://fdc3.finos.org/toolbox/fdc3-explained) | [Readme Here](toolbox/fdc3-explained/README.md) | |
| `toolbox/fdc3-for-web/fdc3-web-impl` | `@finos/fdc3-web-impl` (npm) | Portable and reusable implementation of the FDC3 For-The-Web Desktop Agent-Side protocol, | Cucumber, NYC |
| `toolbox/fdc3-for-web/demo` | -not released- | A reference implementation of an FDC3-For-The-Web Desktop Agent, using the above implementation and conforming to FDC3 2.0 from the [FDC3 Conformance Framework](https://github.com/finos/FDC3-conformance-framework) | |
| `packages/fdc3` | `@finos/fdc3` (npm) | Imports `fdc3-standard`, `fdc3-context`, `fdc3-schema` and `fdc3-get-agent` sub-modules. This is intended to be the main entry point for typescript / javascript applications using FDC3 | |
| `packages/fdc3-commonjs` | `@finos/fdc3-commonjs` (npm) | A roll-up of the `fdc3` sub-module. This is for **backwards compatibility where CommonJS is required**. May not be provided in future versions of FDC3. | |


### Building and Running The FDC3 Modules

From the root package, you can run `npm run build` to build all the modules, or `npm run test` to run all the tests. `npm run dev` will start the `demo` and `fdc3-workbench` modules.

For installation and usage instructions, see: <https://fdc3.finos.org/docs/supported-platforms#usage>

### Bumping Version Numbers (for maintainers)

It's important that all of the versions of the submodules stay on the same version, and that the references between them are consistent to that version. To change the version number (say before or after a release) run the following:

```
// first, update version number in package.json
npm login
npm version <new version from package.json> --workspaces // changes the version number in all submodule package.json files
npm run syncpack // sycnhronizes version numbers
npm up // fixes node_module references
npm run build // builds all the modules against the new version
npm publish --access=public --workspaces // this step performs a manual release of the npm modules (not needed with GitHub actions releases)
```

## Getting Involved

### Using the standard? Let us know
Expand Down Expand Up @@ -171,4 +206,6 @@ THIS STANDARD IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULA

## FDC3 Archive

An archive of FDC3 documentation and meeting notes is available at <https://finosfoundation.atlassian.net/wiki/spaces/FDC3/overview>. The mailing list archive for [[email protected]](mailto:[email protected]) is available at <https://groups.google.com/a/finos.org/g/fdc>
An archive of FDC3 documentation and meeting notes from the early days of FDC3 is available at <https://finosfoundation.atlassian.net/wiki/spaces/FDC3/overview>. Later meeting minutes cam be found in closed Github issues.

The mailing list archive for [[email protected]](mailto:[email protected]) is available at <https://groups.google.com/a/finos.org/g/fdc3>
20 changes: 20 additions & 0 deletions comment-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
## Coverage Report

Commit: [{{short_commit_sha}}]({{commit_link}})
Base: [{{base_ref}}@{{base_short_commit_sha}}]({{base_commit_link}})

| Type | Base | This PR |
|---------------------------|--------------------------------------------|------------------------------------------------------------------------------------|
| Total Statements Coverage | {{base_total_statements_coverage_percent}} | {{total_statements_coverage_percent}} ({{total_statements_coverage_percent_diff}}) |
| Total Branches Coverage | {{base_total_branches_coverage_percent}} | {{total_branches_coverage_percent}} ({{total_branches_coverage_percent_diff}}) |
| Total Functions Coverage | {{base_total_functions_coverage_percent}} | {{total_functions_coverage_percent}} ({{total_functions_coverage_percent_diff}}) |
| Total Lines Coverage | {{base_total_lines_coverage_percent}} | {{total_lines_coverage_percent}} ({{total_lines_coverage_percent_diff}}) |

<details>
<summary>Details (changed files)</summary>
{{changed_files_coverage_table}}
</details>
<details>
<summary>Details (all files)</summary>
{{files_coverage_table}}
</details>
12 changes: 0 additions & 12 deletions jest.config.js

This file was deleted.

2 changes: 1 addition & 1 deletion netlify.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[build]
ignore = "git diff --quiet $CACHED_COMMIT_REF $COMMIT_REF . ../{toolbox,docs,src,test,website}/"
ignore = "git diff --quiet $CACHED_COMMIT_REF $COMMIT_REF . ../{packages,website,toolbox}/"

[[headers]]
# Define which paths this specific [[headers]] block will cover.
Expand Down
Loading