From 767399b0a106b2d1da583e00d6b888635f3fca8b Mon Sep 17 00:00:00 2001 From: Dread Date: Sun, 12 Jul 2026 08:11:14 -0700 Subject: [PATCH 1/5] chore(ci): remove dead GraphQL-docs publish workflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fails on every push to main (red since at least Jun 26, all retained runs) because it commits generated docs to a 'docs' branch that only exists on upstream GaloyMoney/galoy — the fork never created it. Even if it existed, GitHub Pages is not configured on this repo and the spectaql config is still galoy-branded, so the output would serve nothing. 'yarn build-docs' and the spectaql config remain for local use. If we ever want published API docs, that is a small deliberate project: orphan docs branch (or gh-pages), enable Pages, rebrand spectaql-config-template.yml. Co-Authored-By: Claude Fable 5 --- .github/workflows/generate-graphql-docs.yml | 43 --------------------- 1 file changed, 43 deletions(-) delete mode 100644 .github/workflows/generate-graphql-docs.yml diff --git a/.github/workflows/generate-graphql-docs.yml b/.github/workflows/generate-graphql-docs.yml deleted file mode 100644 index 531148682..000000000 --- a/.github/workflows/generate-graphql-docs.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: "Generate GraphQL Docs" - -concurrency: ${{ github.workflow }} - -on: - push: - branches: [main] - -jobs: - build: - name: Build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - path: main - - uses: actions/checkout@v3 - with: - ref: docs - path: docs - - uses: actions/setup-node@v3 - with: - node-version: 24 - - run: yarn install --frozen-lockfile - working-directory: main - - uses: vmware-tanzu/carvel-setup-action@v1 - with: - only: ytt - - run: ytt -f spectaql/TUTORIAL.md -f spectaql/spectaql-config-template.yml > spectaql-config.yml - working-directory: main - - name: Build docs - run: yarn run build-docs - working-directory: main - - run: cp main/public/index.html docs - - run: cp main/public/logo.png docs/images - - name: Deploy docs - working-directory: docs - run: | - git config --local user.name 'github-actions[bot]' - git config --local user.email 'github-actions[bot]@users.noreply.github.com' - git add . - git commit -m "Update docs: $GITHUB_SHA" - git push From db9f12df522b0d2b6e3f66679c682a454379bc89 Mon Sep 17 00:00:00 2001 From: Dread Date: Sun, 12 Jul 2026 08:35:33 -0700 Subject: [PATCH 2/5] Revert "chore(ci): remove dead GraphQL-docs publish workflow" This reverts commit 767399b0a106b2d1da583e00d6b888635f3fca8b. --- .github/workflows/generate-graphql-docs.yml | 43 +++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 .github/workflows/generate-graphql-docs.yml diff --git a/.github/workflows/generate-graphql-docs.yml b/.github/workflows/generate-graphql-docs.yml new file mode 100644 index 000000000..531148682 --- /dev/null +++ b/.github/workflows/generate-graphql-docs.yml @@ -0,0 +1,43 @@ +name: "Generate GraphQL Docs" + +concurrency: ${{ github.workflow }} + +on: + push: + branches: [main] + +jobs: + build: + name: Build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + path: main + - uses: actions/checkout@v3 + with: + ref: docs + path: docs + - uses: actions/setup-node@v3 + with: + node-version: 24 + - run: yarn install --frozen-lockfile + working-directory: main + - uses: vmware-tanzu/carvel-setup-action@v1 + with: + only: ytt + - run: ytt -f spectaql/TUTORIAL.md -f spectaql/spectaql-config-template.yml > spectaql-config.yml + working-directory: main + - name: Build docs + run: yarn run build-docs + working-directory: main + - run: cp main/public/index.html docs + - run: cp main/public/logo.png docs/images + - name: Deploy docs + working-directory: docs + run: | + git config --local user.name 'github-actions[bot]' + git config --local user.email 'github-actions[bot]@users.noreply.github.com' + git add . + git commit -m "Update docs: $GITHUB_SHA" + git push From 9381087db357a683d2c89640501850522ddffe09 Mon Sep 17 00:00:00 2001 From: Dread Date: Sun, 12 Jul 2026 08:38:04 -0700 Subject: [PATCH 3/5] ci(docs): repoint GraphQL docs publish at docs.flashapp.me/api-reference Instead of deleting the never-working workflow (it pushed to a 'docs' branch that only exists on upstream GaloyMoney/galoy), give it a real destination: generate the spectaql API reference from the checked-in public SDL and publish it into lnflash/flash-docs static/api-reference/, which DO App Platform serves at docs.flashapp.me/api-reference. - Cross-repo push via write deploy key on flash-docs (FLASH_DOCS_DEPLOY_KEY secret, installed) - Rebrand spectaql config: Flash title/contact, real servers (api.flashapp.me + api.test.flashapp.me) - Rebrand TUTORIAL.md endpoints; drop upstream postman link - Path-filter the trigger (schema/spectaql/workflow changes only) + workflow_dispatch; skip publish when output unchanged Co-Authored-By: Claude Fable 5 --- .github/workflows/generate-graphql-docs.yml | 44 +++++++++++++++------ spectaql/TUTORIAL.md | 13 +++--- spectaql/spectaql-config-template.yml | 17 ++++---- 3 files changed, 47 insertions(+), 27 deletions(-) diff --git a/.github/workflows/generate-graphql-docs.yml b/.github/workflows/generate-graphql-docs.yml index 531148682..9addef87d 100644 --- a/.github/workflows/generate-graphql-docs.yml +++ b/.github/workflows/generate-graphql-docs.yml @@ -2,28 +2,39 @@ name: "Generate GraphQL Docs" concurrency: ${{ github.workflow }} +# Generates the GraphQL API reference (spectaql, from the checked-in public +# SDL) and publishes it into lnflash/flash-docs at static/api-reference/, +# which DigitalOcean App Platform serves at docs.flashapp.me/api-reference. +# Auth: FLASH_DOCS_DEPLOY_KEY secret = private half of a write deploy key +# installed on lnflash/flash-docs. on: push: branches: [main] + paths: + - "src/graphql/**" + - "spectaql/**" + - ".github/workflows/generate-graphql-docs.yml" + workflow_dispatch: jobs: build: name: Build runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: path: main - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: - ref: docs - path: docs - - uses: actions/setup-node@v3 + repository: lnflash/flash-docs + ssh-key: ${{ secrets.FLASH_DOCS_DEPLOY_KEY }} + path: docs-site + - uses: actions/setup-node@v4 with: node-version: 24 - run: yarn install --frozen-lockfile working-directory: main - - uses: vmware-tanzu/carvel-setup-action@v1 + - uses: vmware-tanzu/carvel-setup-action@v2 with: only: ytt - run: ytt -f spectaql/TUTORIAL.md -f spectaql/spectaql-config-template.yml > spectaql-config.yml @@ -31,13 +42,20 @@ jobs: - name: Build docs run: yarn run build-docs working-directory: main - - run: cp main/public/index.html docs - - run: cp main/public/logo.png docs/images - - name: Deploy docs - working-directory: docs + - name: Stage into docs site + run: | + mkdir -p docs-site/static/api-reference + cp main/public/index.html docs-site/static/api-reference/index.html + cp main/public/logo.png docs-site/static/api-reference/logo.png + - name: Publish to flash-docs + working-directory: docs-site run: | git config --local user.name 'github-actions[bot]' git config --local user.email 'github-actions[bot]@users.noreply.github.com' - git add . - git commit -m "Update docs: $GITHUB_SHA" - git push + git add static/api-reference + if git diff --cached --quiet; then + echo "API reference unchanged — nothing to publish" + else + git commit -m "docs(api-reference): regenerate from lnflash/flash@$GITHUB_SHA" + git push + fi diff --git a/spectaql/TUTORIAL.md b/spectaql/TUTORIAL.md index d07bb158f..80771fc8d 100644 --- a/spectaql/TUTORIAL.md +++ b/spectaql/TUTORIAL.md @@ -1,7 +1,11 @@ # Lightning Integration ## Overview -The staging API endpoint is: `https://api.staging.galoy.io/graphql` +Production API endpoint: `https://api.flashapp.me/graphql` +Test API endpoint: `https://api.test.flashapp.me/graphql` + +Use the test environment for integration development; phone numbers and +balances there are separate from production. ## Authentication To get a new JWT: @@ -16,7 +20,7 @@ All other methods require a valid JWT set in the header as a bearer token - `Aut #### query ```bash -export URI=https://api.staging.galoy.io/graphql +export URI=https://api.test.flashapp.me/graphql export PHONE='+12025550148' curl --location --request POST $URI --header 'Content-Type: application/json' --data-raw '{"query":"mutation userRequestAuthCode ($input: UserRequestAuthCodeInput!) {\n userRequestAuthCode (input: $input) {\n errors {\n message\n path\n }\n success\n }\n}","variables":{"input":{"phone":"'"$PHONE"'"}}}' ``` @@ -122,8 +126,3 @@ curl --location --request POST $URI --header "$AUTH_TOKEN" --header 'Content-Typ } ``` -## Extra Resources - -If you use Postman, we have a collection you can import to test the API. - -Download it here: [galoy_graphql_main_api.postman_collection.json](https://github.com/GaloyMoney/galoy/tree/main/src/graphql/docs/galoy_graphql_main_api.postman_collection.json) diff --git a/spectaql/spectaql-config-template.yml b/spectaql/spectaql-config-template.yml index 3b582f3f4..1bd49b60a 100644 --- a/spectaql/spectaql-config-template.yml +++ b/spectaql/spectaql-config-template.yml @@ -7,19 +7,22 @@ introspection: schemaFile: ./src/graphql/public/schema.graphql info: - title: GraphQL API Reference - description: Welcome to the Galoy API reference! + title: Flash GraphQL API Reference + description: Complete reference for the Flash GraphQL API — every query, mutation, and type, generated from the live schema. For guides and getting started, see https://docs.flashapp.me. contact: - name: Galoy developer community - url: https://chat.galoy.io/ + name: Flash + url: https://getflash.io/ license: name: MIT url: https://opensource.org/licenses/MIT x-introItems: - - title: Galoy API Tutorial + - title: Flash API Tutorial description: #@ data.read("TUTORIAL.md") servers: - - url: https://api.staging.galoy.io/graphql - description: Testnet + - url: https://api.flashapp.me/graphql + description: Production (mainnet) + production: true + - url: https://api.test.flashapp.me/graphql + description: Test environment production: false From d2d841dc27a3287234f2ae8049f6b0ff58058079 Mon Sep 17 00:00:00 2001 From: Dread Date: Sun, 12 Jul 2026 08:45:31 -0700 Subject: [PATCH 4/5] =?UTF-8?q?fix(docs):=20bump=20spectaql=202.x=20->=203?= =?UTF-8?q?.0.9=20=E2=80=94=202.x=20is=20package-rotted?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit spectaql 2.3.x fails with 'TypeError: arrangeData is not a function' on Node 20 AND 24 (verified in isolation) — its loose internal deps have drifted; the docs build was broken independently of the publish target. 3.0.9 renders the full rebranded config cleanly (verified against the public SDL: 1.1MB single-file reference, servers + intro items intact). Co-Authored-By: Claude Fable 5 --- package.json | 2 +- yarn.lock | 347 ++++++++++++++++++++------------------------------- 2 files changed, 139 insertions(+), 210 deletions(-) diff --git a/package.json b/package.json index d32ae86de..966128195 100644 --- a/package.json +++ b/package.json @@ -199,7 +199,7 @@ "prettier": "^3.0.3", "protoc-gen-js": "^3.21.2", "react": "^18.2.0", - "spectaql": "^2.3.0", + "spectaql": "^3.0.9", "tiny-secp256k1": "^2.2.3", "tree-kill": "^1.2.2", "ts-node": "^10.9.1", diff --git a/yarn.lock b/yarn.lock index 321f012b4..0a1523c2c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2051,6 +2051,14 @@ "@graphql-tools/utils" "^10.9.1" tslib "^2.4.0" +"@graphql-tools/merge@^9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-9.2.0.tgz#42a210c1f8ec0ab86b868b3c6da383cd214188ce" + integrity sha512-kChDH/sOxm3TCICup5NgTiz/aJBk+5GAuC0lfJS8FcRfsqZvlCkNwpsYTGAATBCJMrgZ9+csRugCjS97jPcNMw== + dependencies: + "@graphql-tools/utils" "^11.2.0" + tslib "^2.4.0" + "@graphql-tools/mock@^8.1.2": version "8.7.20" resolved "https://registry.yarnpkg.com/@graphql-tools/mock/-/mock-8.7.20.tgz#c83ae0f1940d194a3982120c9c85f3ac6b4f7f20" @@ -2087,7 +2095,16 @@ "@graphql-tools/utils" "^10.9.1" tslib "^2.4.0" -"@graphql-tools/schema@^9.0.1", "@graphql-tools/schema@^9.0.18": +"@graphql-tools/schema@^10.0.6": + version "10.0.36" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-10.0.36.tgz#56f4b4d21ee68f94a2a393af0cc9b52a0266d450" + integrity sha512-g8S5aLirZInoi3NojzmBxwsZfVawOE0UBlVWYe8kDAR0FxS0riBDiyW7JnlAKayooHMRAMwGaze4RQU3VTTyig== + dependencies: + "@graphql-tools/merge" "^9.2.0" + "@graphql-tools/utils" "^11.2.0" + tslib "^2.4.0" + +"@graphql-tools/schema@^9.0.18": version "9.0.19" resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.19.tgz#c4ad373b5e1b8a0cf365163435b7d236ebdd06e7" integrity sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w== @@ -2104,6 +2121,16 @@ dependencies: tslib "^2.4.0" +"@graphql-tools/utils@^10.6.1": + version "10.11.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-10.11.0.tgz#2513dca9ca25bab5a2651da2d66c37b1e2616bdf" + integrity sha512-iBFR9GXIs0gCD+yc3hoNswViL1O5josI33dUqiNStFI/MHLCEPduasceAcazRH77YONKNiviHBV8f7OgcT4o2Q== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + "@whatwg-node/promise-helpers" "^1.0.0" + cross-inspect "1.0.1" + tslib "^2.4.0" + "@graphql-tools/utils@^10.9.1": version "10.9.1" resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-10.9.1.tgz#ff4067256f2080db0c66f4475858f29a8da65ecf" @@ -2115,7 +2142,17 @@ dset "^3.1.4" tslib "^2.4.0" -"@graphql-tools/utils@^9.1.1", "@graphql-tools/utils@^9.2.1": +"@graphql-tools/utils@^11.2.0": + version "11.2.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-11.2.0.tgz#b55fe527605c5ee4f5234f23a66aa14082a60ab8" + integrity sha512-eu9h1R3j/wWc4rvmYJF5AKtlwniDzstrZ/c6KSz+HdI+n7I7iog9xyKmBfpUwSbG1TqPNZBzWjFMkzdYOKq6Bg== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + "@whatwg-node/promise-helpers" "^1.0.0" + cross-inspect "1.0.1" + tslib "^2.4.0" + +"@graphql-tools/utils@^9.2.1": version "9.2.1" resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.2.1.tgz#1b3df0ef166cfa3eae706e3518b17d5922721c57" integrity sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A== @@ -5193,13 +5230,6 @@ asap@~2.0.6: resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== -assert@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" - integrity sha512-N+aAxov+CKVS3JuhDIQFr24XvZvwE96Wlhk9dytTg/GmwWoghdOvR8dspx8MVz71O+Y0pA3UPqHF68D6iy8UvQ== - dependencies: - util "0.10.3" - ast-module-types@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/ast-module-types/-/ast-module-types-2.7.1.tgz#3f7989ef8dfa1fdb82dfe0ab02bdfc7c77a57dd3" @@ -5246,7 +5276,7 @@ async@^2.6.0: dependencies: lodash "^4.17.14" -async@^3.2.0, async@^3.2.3, async@~3.2.0: +async@^3.2.3, async@^3.2.5, async@~3.2.0: version "3.2.6" resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== @@ -5881,22 +5911,18 @@ cheerio-select@^2.1.0: domhandler "^5.0.3" domutils "^3.0.1" -cheerio@^1.0.0-rc.10: - version "1.1.2" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.1.2.tgz#26af77e89336c81c63ea83197f868b4cbd351369" - integrity sha512-IkxPpb5rS/d1IiLbHMgfPuS0FgiWTtFIm/Nj+2woXDLTZ7fOT2eqzgYbdMlLweqlHbsZjxEChoVK+7iph7jyQg== +cheerio@1.0.0-rc.12: + version "1.0.0-rc.12" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683" + integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== dependencies: cheerio-select "^2.1.0" dom-serializer "^2.0.0" domhandler "^5.0.3" - domutils "^3.2.2" - encoding-sniffer "^0.2.1" - htmlparser2 "^10.0.0" - parse5 "^7.3.0" - parse5-htmlparser2-tree-adapter "^7.1.0" - parse5-parser-stream "^7.1.2" - undici "^7.12.0" - whatwg-mimetype "^4.0.0" + domutils "^3.0.1" + htmlparser2 "^8.0.1" + parse5 "^7.0.0" + parse5-htmlparser2-tree-adapter "^7.0.0" chokidar@^3.5.1, chokidar@^3.5.2: version "3.6.0" @@ -6456,6 +6482,11 @@ define-data-property@^1.0.1, define-data-property@^1.1.4: es-errors "^1.3.0" gopd "^1.0.1" +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + define-properties@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" @@ -6728,7 +6759,7 @@ domhandler@^5.0.2, domhandler@^5.0.3: dependencies: domelementtype "^2.3.0" -domutils@^3.0.1, domutils@^3.1.0, domutils@^3.2.1, domutils@^3.2.2: +domutils@^3.0.1, domutils@^3.1.0: version "3.2.2" resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.2.2.tgz#edbfe2b668b0c1d97c24baf0f1062b132221bc78" integrity sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw== @@ -6766,16 +6797,6 @@ duplexer@^0.1.1: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== -duplexify@^3.5.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - duplexify@^4.0.0, duplexify@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.3.tgz#a07e1c0d0a2c001158563d32592ba58bddb0236f" @@ -6879,15 +6900,7 @@ encodeurl@~2.0.0: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== -encoding-sniffer@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz#396ec97ac22ce5a037ba44af1992ac9d46a7b819" - integrity sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw== - dependencies: - iconv-lite "^0.6.3" - whatwg-encoding "^3.1.1" - -end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: +end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.5" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.5.tgz#7344d711dea40e0b74abc2ed49778743ccedb08c" integrity sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg== @@ -7351,11 +7364,6 @@ eventemitter2@~0.4.13: resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-0.4.14.tgz#8f61b75cde012b2e9eb284d4545583b5643b61ab" integrity sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ== -events@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - integrity sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw== - events@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" @@ -8450,20 +8458,20 @@ grunt-contrib-concat@^2.1.0: chalk "^4.1.2" source-map "^0.5.3" -grunt-contrib-connect@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/grunt-contrib-connect/-/grunt-contrib-connect-3.0.0.tgz#720e9ef39f976b804baf994345c2f6ecfdf3b264" - integrity sha512-L1GXk6PqDP/meX0IOX1MByBvOph6h8Pvx4/iBIYD7dpokVCAAQPR/IIV1jkTONEM09xig/Y8/y3R9Fqc8U3HSA== +grunt-contrib-connect@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/grunt-contrib-connect/-/grunt-contrib-connect-5.0.1.tgz#c8cc828a3c806520d9126377870b62eeb8bd2f92" + integrity sha512-Hfq/0QJl3ddD2N/a/1cDJHkKEOGk6m7W6uxNe0AmYwtf6v0F/4+8q9rvPJ1tl+mrI90lU/89I9T/h48qqeMfQA== dependencies: - async "^3.2.0" + async "^3.2.5" connect "^3.7.0" connect-livereload "^0.6.1" + http2-wrapper "^2.2.1" morgan "^1.10.0" - node-http2 "^4.0.1" - opn "^6.0.0" + open "^8.0.0" portscanner "^2.2.0" serve-index "^1.9.1" - serve-static "^1.14.1" + serve-static "^1.15.0" grunt-contrib-copy@^1.0.0: version "1.0.0" @@ -8736,15 +8744,15 @@ html-escaper@^2.0.0: resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== -htmlparser2@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-10.0.0.tgz#77ad249037b66bf8cc99c6e286ef73b83aeb621d" - integrity sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g== +htmlparser2@^8.0.1: + version "8.0.2" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21" + integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== dependencies: domelementtype "^2.3.0" domhandler "^5.0.3" - domutils "^3.2.1" - entities "^6.0.0" + domutils "^3.0.1" + entities "^4.4.0" htmlparser2@~9.0.0: version "9.0.0" @@ -8829,10 +8837,13 @@ http2-client@^1.2.5: resolved "https://registry.yarnpkg.com/http2-client/-/http2-client-1.3.5.tgz#20c9dc909e3cc98284dd20af2432c524086df181" integrity sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA== -https-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" - integrity sha512-EjDQFbgJr1vDD/175UJeSX3ncQ3+RUnCL5NkthQGHvF4VNHlzTy8ifJfTqz47qiPRqaFH58+CbuG3x51WuB1XQ== +http2-wrapper@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.1.tgz#310968153dcdedb160d8b72114363ef5fce1f64a" + integrity sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.2.0" https-proxy-agent@^5.0.0: version "5.0.1" @@ -8882,13 +8893,6 @@ iconv-lite@0.4.24, iconv-lite@~0.4.13, iconv-lite@~0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@0.6.3, iconv-lite@^0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - ieee754@^1.1.13, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" @@ -8952,17 +8956,12 @@ indexes-of@^1.0.1: resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" integrity sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA== -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA== - inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== -inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: +inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@~2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -9129,6 +9128,11 @@ is-date-object@^1.0.5, is-date-object@^1.1.0: call-bound "^1.0.2" has-tostringtag "^1.0.2" +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -9346,10 +9350,12 @@ is-windows@^1.0.1: resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" isarray@^2.0.5: version "2.0.5" @@ -10398,12 +10404,7 @@ lodash.sumby@^4.6.0: resolved "https://registry.yarnpkg.com/lodash.sumby/-/lodash.sumby-4.6.0.tgz#7d87737ddb216da2f7e5e7cd2dd9c403a7887346" integrity sha512-DCF6ONVffD6cdnZzZ7Ewhl23AOvXAvwGTfabmj4+WWkX8nXvyklgLkT5IyGt3kxX5CgfvQgLgYRRvEDsi7jTOQ== -lodash.unset@^4.5.2: - version "4.5.2" - resolved "https://registry.yarnpkg.com/lodash.unset/-/lodash.unset-4.5.2.tgz#370d1d3e85b72a7e1b0cdf2d272121306f23e4ed" - integrity sha512-bwKX88k2JhCV9D1vtE8+naDKlLiGrSmf8zi/Y9ivFHwbmRfA8RxS/aVJ+sIht2XOwqoNr4xUPUkGZpc1sHFEKg== - -lodash@4.18.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@~4.17.19, lodash@~4.17.21: +lodash@4.18.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.23, lodash@^4.17.4, lodash@~4.17.19, lodash@~4.17.21: version "4.18.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.18.1.tgz#ff2b66c1f6326d59513de2407bf881439812771c" integrity sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q== @@ -10669,14 +10670,12 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== -microfiber@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/microfiber/-/microfiber-2.1.1.tgz#a8935f242eb322f6f0eba472edc5951c8b55dbbf" - integrity sha512-lLHfeAXpPQZIU7/UMwtNtNXpb3PphaNZJSVwEntkRl9ir+lgJr534dTXfbILE1hksNMggOYwAZhAGFrgiySc5A== +microfiber@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/microfiber/-/microfiber-2.1.2.tgz#4d4942e43ec820612941630f6b8fb4f69a4cb015" + integrity sha512-2V8EeYHnoIEmElINgCfq7CQwokUYeVF6wBs1JBGuYj7pXPKWeNUjJNXkXaWSbsoSKr8yat5Lc6q+IBZpfajK7Q== dependencies: - lodash.defaults "^4.2.0" - lodash.get "^4.4.2" - lodash.unset "^4.5.2" + lodash "^4.17.23" micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5, micromatch@^4.0.8: version "4.0.8" @@ -11015,20 +11014,6 @@ node-gyp-build@^4.2.0: resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8" integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== -node-http2@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/node-http2/-/node-http2-4.0.1.tgz#164ff53b5dd22c84f0af142b877c5eaeb6809959" - integrity sha512-AP21BjQsOAMTCJCCkdXUUMa1o7/Qx+yAWHnHZbCf8RhZ+hKMjB9rUkAtnfayk/yGj1qapZ5eBHZJBpk1dqdNlw== - dependencies: - assert "1.4.1" - events "1.1.1" - https-browserify "0.0.1" - setimmediate "^1.0.5" - stream-browserify "2.0.1" - timers-browserify "2.0.2" - url "^0.11.0" - websocket-stream "^5.0.1" - node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" @@ -11381,18 +11366,20 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" +open@^8.0.0: + version "8.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + openapi-types@^12.1.0: version "12.1.3" resolved "https://registry.yarnpkg.com/openapi-types/-/openapi-types-12.1.3.tgz#471995eb26c4b97b7bd356aacf7b91b73e777dd3" integrity sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw== -opn@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-6.0.0.tgz#3c5b0db676d5f97da1233d1ed42d182bc5a27d2d" - integrity sha512-I9PKfIZC+e4RXZ/qr1RhgyCnGgYX0UEIlXgWnCOVACIvFgaC9rz6Won7xbdhoHrd8IIhV7YEpHjreNUNkqCGkQ== - dependencies: - is-wsl "^1.1.0" - optimism@^0.17.5: version "0.17.5" resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.17.5.tgz#a4c78b3ad12c58623abedbebb4f2f2c19b8e8816" @@ -11576,7 +11563,7 @@ parse-passwd@^1.0.0: resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" integrity sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q== -parse5-htmlparser2-tree-adapter@^7.1.0: +parse5-htmlparser2-tree-adapter@^7.0.0: version "7.1.0" resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz#b5a806548ed893a43e24ccb42fbb78069311e81b" integrity sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g== @@ -11584,14 +11571,7 @@ parse5-htmlparser2-tree-adapter@^7.1.0: domhandler "^5.0.3" parse5 "^7.0.0" -parse5-parser-stream@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz#d7c20eadc37968d272e2c02660fff92dd27e60e1" - integrity sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow== - dependencies: - parse5 "^7.0.0" - -parse5@^7.0.0, parse5@^7.3.0: +parse5@^7.0.0: version "7.3.0" resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.3.0.tgz#d7e224fa72399c7a175099f45fc2ad024b05ec05" integrity sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw== @@ -12122,7 +12102,7 @@ pushdata-bitcoin@1.0.1: dependencies: bitcoin-ops "^1.3.0" -qs@6.11.0, qs@6.13.0, qs@6.15.1, qs@^6.10.5, qs@^6.12.3, qs@^6.4.0, qs@^6.9.4, qs@~6.14.0, qs@~6.15.1: +qs@6.11.0, qs@6.13.0, qs@6.15.1, qs@^6.10.5, qs@^6.4.0, qs@^6.9.4, qs@~6.14.0, qs@~6.15.1: version "6.15.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.15.1.tgz#bdb55aed06bfac257a90c44a446a73fba5575c8f" integrity sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg== @@ -12151,6 +12131,11 @@ quick-format-unescaped@^4.0.3: resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + quote-unquote@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/quote-unquote/-/quote-unquote-1.0.0.tgz#67a9a77148effeaf81a4d428404a710baaac8a0b" @@ -12228,7 +12213,7 @@ react@^18.2.0: dependencies: loose-envify "^1.1.0" -readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.8: +readable-stream@^2.2.2, readable-stream@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== @@ -12457,6 +12442,11 @@ requizzle@^0.2.3: dependencies: lodash "^4.17.21" +resolve-alpn@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + resolve-cwd@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" @@ -12548,7 +12538,7 @@ rimraf@^2.6.1, rimraf@^2.6.2: dependencies: glob "^7.1.3" -rimraf@^3.0.0, rimraf@^3.0.2, rimraf@~3.0.2: +rimraf@^3.0.2, rimraf@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== @@ -12623,7 +12613,7 @@ safe-stable-stringify@^2.3.1: resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz#4ca2f8e385f2831c432a719b108a3bf7af42a1dd" integrity sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA== -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": +"safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -12755,7 +12745,7 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" -serve-static@1.16.2, serve-static@^1.14.1: +serve-static@1.16.2: version "1.16.2" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296" integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== @@ -12765,7 +12755,7 @@ serve-static@1.16.2, serve-static@^1.14.1: parseurl "~1.3.3" send "0.19.0" -serve-static@~1.16.2: +serve-static@^1.15.0, serve-static@~1.16.2: version "1.16.3" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.3.tgz#a97b74d955778583f3862a4f0b841eb4d5d78cf9" integrity sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA== @@ -12816,11 +12806,6 @@ set-proto@^1.0.0: es-errors "^1.3.0" es-object-atoms "^1.0.0" -setimmediate@^1.0.4, setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== - setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" @@ -13041,17 +13026,17 @@ sparse-bitfield@^3.0.3: dependencies: memory-pager "^1.0.2" -spectaql@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/spectaql/-/spectaql-2.3.1.tgz#6b92dc7759f35d51d9d94dbe61a5740b81977bf0" - integrity sha512-YQgp6yQAUjRkQ8ixLnjBkyhLcTfbtIErTrzsWB+rdS270hhKr0NeknEg0Yp7ElfMJWE101HERKoc4sA6anCiog== +spectaql@^3.0.9: + version "3.0.9" + resolved "https://registry.yarnpkg.com/spectaql/-/spectaql-3.0.9.tgz#2181f27ad352528f4821c1f5f3706eb0deb56eb0" + integrity sha512-SlPY/TjXL8FqWddcvGenoKJpS0N7LLk0tVUxzblIzY/f8ZrwnCq90gmkMXVMbvN1J/005UXJyepV9d1WifjdVQ== dependencies: "@anvilco/apollo-server-plugin-introspection-metadata" "^2.2.3" "@graphql-tools/load-files" "^6.3.2" "@graphql-tools/merge" "^8.1.2" - "@graphql-tools/schema" "^9.0.1" - "@graphql-tools/utils" "^9.1.1" - cheerio "^1.0.0-rc.10" + "@graphql-tools/schema" "^10.0.6" + "@graphql-tools/utils" "^10.6.1" + cheerio "1.0.0-rc.12" coffeescript "^2.6.1" commander "^10.0.0" fast-glob "^3.2.12" @@ -13061,7 +13046,7 @@ spectaql@^2.3.0: grunt "~1.5.3" grunt-contrib-clean "^2.0.0" grunt-contrib-concat "^2.1.0" - grunt-contrib-connect "^3.0.0" + grunt-contrib-connect "^5.0.0" grunt-contrib-copy "^1.0.0" grunt-contrib-cssmin "^5.0.0" grunt-contrib-uglify "^5.0.1" @@ -13076,11 +13061,11 @@ spectaql@^2.3.0: json5 "^2.2.0" lodash "^4.17.21" marked "^4.0.12" - microfiber "^2.0.1" + microfiber "^2.1.2" postcss "^8.4.19" sass "^1.32.13" sync-request "^6.1.0" - tmp "0.2.1" + tmp "0.2.4" split2@^4.0.0, split2@^4.1.0: version "4.2.0" @@ -13141,14 +13126,6 @@ stop-iteration-iterator@^1.1.0: es-errors "^1.3.0" internal-slot "^1.1.0" -stream-browserify@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" - integrity sha512-nmQnY9D9TlnfQIkYJCCWxvCcQODilFRZIw14gCMYQVXOiY4E1Ze1VMxB+6y3qdXHpTordULo2qWloHmNcNAQYw== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - stream-events@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/stream-events/-/stream-events-1.0.5.tgz#bbc898ec4df33a4902d892333d47da9bf1c406d5" @@ -13156,7 +13133,7 @@ stream-events@^1.0.5: dependencies: stubs "^3.0.0" -stream-shift@^1.0.0, stream-shift@^1.0.2: +stream-shift@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.3.tgz#85b8fab4d71010fc3ba8772e8046cc49b8a3864b" integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ== @@ -13532,13 +13509,6 @@ tildify@2.0.0: resolved "https://registry.yarnpkg.com/tildify/-/tildify-2.0.0.tgz#f205f3674d677ce698b7067a99e949ce03b4754a" integrity sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw== -timers-browserify@2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.2.tgz#ab4883cf597dcd50af211349a00fbca56ac86b86" - integrity sha512-O7UB405+hxP2OWqlBdlUMxZVEdsi8NOWL2c730Cs6zeO1l1AkxygvTm6yC4nTw84iGbFcqxbIkkrdNKzq/3Fvg== - dependencies: - setimmediate "^1.0.4" - timers-ext@^0.1.7: version "0.1.8" resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.8.tgz#b4e442f10b7624a29dd2aa42c295e257150cf16c" @@ -13580,12 +13550,10 @@ tiny-secp256k1@^2.2.3: dependencies: uint8array-tools "0.0.7" -tmp@0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" - integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== - dependencies: - rimraf "^3.0.0" +tmp@0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.4.tgz#c6db987a2ccc97f812f17137b36af2b6521b0d13" + integrity sha512-UdiSoX6ypifLmrfQ/XfiawN6hkjSBpCjhKxxZcWlUUmoXLaCKQU0bx4HF/tdDK2uzRuchf1txGvrWBzYREssoQ== tmp@^0.2.1: version "0.2.5" @@ -13972,7 +13940,7 @@ undici-types@~7.18.0: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.18.2.tgz#29357a89e7b7ca4aef3bf0fd3fd0cd73884229e9" integrity sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w== -undici@6.24.0, undici@^5.22.1, undici@^7.12.0: +undici@6.24.0, undici@^5.22.1: version "6.24.0" resolved "https://registry.yarnpkg.com/undici/-/undici-6.24.0.tgz#ad36b879b4882d14addc13dd641da7ed7ac7623a" integrity sha512-lVLNosgqo5EkGqh5XUDhGfsMSoO8K0BAN0TyJLvwNRSl4xWGZlCVYsAIpa/OpA3TvmnM01GWcoKmc3ZWo5wKKA== @@ -14050,26 +14018,11 @@ url-parse@^1.5.9: querystringify "^2.1.1" requires-port "^1.0.0" -url@^0.11.0: - version "0.11.4" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.4.tgz#adca77b3562d56b72746e76b330b7f27b6721f3c" - integrity sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg== - dependencies: - punycode "^1.4.1" - qs "^6.12.3" - util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ== - dependencies: - inherits "2.0.1" - utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" @@ -14224,25 +14177,6 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== -websocket-stream@^5.0.1: - version "5.5.2" - resolved "https://registry.yarnpkg.com/websocket-stream/-/websocket-stream-5.5.2.tgz#49d87083d96839f0648f5513bbddd581f496b8a2" - integrity sha512-8z49MKIHbGk3C4HtuHWDtYX8mYej1wWabjthC/RupM9ngeukU4IWoM46dgth1UOS/T4/IqgEdCDJuMe2039OQQ== - dependencies: - duplexify "^3.5.1" - inherits "^2.0.1" - readable-stream "^2.3.3" - safe-buffer "^5.1.2" - ws "^3.2.0" - xtend "^4.0.0" - -whatwg-encoding@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz#d0f4ef769905d426e1688f3e34381a99b60b76e5" - integrity sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ== - dependencies: - iconv-lite "0.6.3" - whatwg-fetch@^3.4.1: version "3.6.20" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz#580ce6d791facec91d37c72890995a0b48d31c70" @@ -14253,11 +14187,6 @@ whatwg-mimetype@^3.0.0: resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== -whatwg-mimetype@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz#bc1bf94a985dc50388d54a9258ac405c3ca2fc0a" - integrity sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg== - whatwg-url@^11.0.0: version "11.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" @@ -14421,7 +14350,7 @@ write-file-atomic@^5.0.1: imurmurhash "^0.1.4" signal-exit "^4.0.1" -ws@8.14.2, ws@8.20.0, ws@^3.2.0, ws@^8.17.1: +ws@8.14.2, ws@8.20.0, ws@^8.17.1: version "8.20.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.20.0.tgz#4cd9532358eba60bc863aad1623dfb045a4d4af8" integrity sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA== From 82d4ebf936338c00b79e687083ae3fe2f78f30d1 Mon Sep 17 00:00:00 2001 From: Dread Date: Sun, 12 Jul 2026 08:59:19 -0700 Subject: [PATCH 5/5] =?UTF-8?q?ci(docs):=20drop=20the=20flash-side=20publi?= =?UTF-8?q?sh=20workflow=20=E2=80=94=20generation=20lives=20in=20flash-api?= =?UTF-8?q?-docs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Investigation found docs.flashapp.me is deployed from lnflash/flash-api-docs, which has its own complete pipeline: a daily cron (update-docs.yml) fetches the schema from api.flashapp.me via introspection, regenerates, commits, and deploy.yml ships to DO App Platform via doctl. It had been silently OFF since ~Oct 2025 (GitHub disabled_inactivity after 60 quiet days) — now re-enabled and verified end-to-end. A flash-side publish workflow is therefore redundant; the schema reaches the docs pipeline through live introspection, not git. Kept from this branch: spectaql 2.x->3.0.9 (2.x is package-rotted — fails on Node 20 and 24) and the Flash rebrand of the spectaql config + tutorial, so 'yarn build-docs' works locally again. Co-Authored-By: Claude Fable 5 --- .github/workflows/generate-graphql-docs.yml | 61 --------------------- 1 file changed, 61 deletions(-) delete mode 100644 .github/workflows/generate-graphql-docs.yml diff --git a/.github/workflows/generate-graphql-docs.yml b/.github/workflows/generate-graphql-docs.yml deleted file mode 100644 index 9addef87d..000000000 --- a/.github/workflows/generate-graphql-docs.yml +++ /dev/null @@ -1,61 +0,0 @@ -name: "Generate GraphQL Docs" - -concurrency: ${{ github.workflow }} - -# Generates the GraphQL API reference (spectaql, from the checked-in public -# SDL) and publishes it into lnflash/flash-docs at static/api-reference/, -# which DigitalOcean App Platform serves at docs.flashapp.me/api-reference. -# Auth: FLASH_DOCS_DEPLOY_KEY secret = private half of a write deploy key -# installed on lnflash/flash-docs. -on: - push: - branches: [main] - paths: - - "src/graphql/**" - - "spectaql/**" - - ".github/workflows/generate-graphql-docs.yml" - workflow_dispatch: - -jobs: - build: - name: Build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - path: main - - uses: actions/checkout@v4 - with: - repository: lnflash/flash-docs - ssh-key: ${{ secrets.FLASH_DOCS_DEPLOY_KEY }} - path: docs-site - - uses: actions/setup-node@v4 - with: - node-version: 24 - - run: yarn install --frozen-lockfile - working-directory: main - - uses: vmware-tanzu/carvel-setup-action@v2 - with: - only: ytt - - run: ytt -f spectaql/TUTORIAL.md -f spectaql/spectaql-config-template.yml > spectaql-config.yml - working-directory: main - - name: Build docs - run: yarn run build-docs - working-directory: main - - name: Stage into docs site - run: | - mkdir -p docs-site/static/api-reference - cp main/public/index.html docs-site/static/api-reference/index.html - cp main/public/logo.png docs-site/static/api-reference/logo.png - - name: Publish to flash-docs - working-directory: docs-site - run: | - git config --local user.name 'github-actions[bot]' - git config --local user.email 'github-actions[bot]@users.noreply.github.com' - git add static/api-reference - if git diff --cached --quiet; then - echo "API reference unchanged — nothing to publish" - else - git commit -m "docs(api-reference): regenerate from lnflash/flash@$GITHUB_SHA" - git push - fi