@antseed/cli 0.1.179 → 0.1.181
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -3
- package/dist/buyer-identities/store.d.ts +39 -2
- package/dist/buyer-identities/store.d.ts.map +1 -1
- package/dist/buyer-identities/store.js +99 -10
- package/dist/buyer-identities/store.js.map +1 -1
- package/dist/cli/commands/apps/index.js +8 -8
- package/dist/cli/commands/buyer/identity.d.ts +3 -1
- package/dist/cli/commands/buyer/identity.d.ts.map +1 -1
- package/dist/cli/commands/buyer/identity.js +55 -8
- package/dist/cli/commands/buyer/identity.js.map +1 -1
- package/dist/cli/commands/buyer/identity.test.d.ts +2 -0
- package/dist/cli/commands/buyer/identity.test.d.ts.map +1 -0
- package/dist/cli/commands/buyer/identity.test.js +168 -0
- package/dist/cli/commands/buyer/identity.test.js.map +1 -0
- package/dist/cli/commands/buyer/set-authorized-wallet.d.ts +10 -0
- package/dist/cli/commands/buyer/set-authorized-wallet.d.ts.map +1 -1
- package/dist/cli/commands/buyer/set-authorized-wallet.js +26 -4
- package/dist/cli/commands/buyer/set-authorized-wallet.js.map +1 -1
- package/dist/cli/commands/buyer/set-authorized-wallet.test.js +37 -2
- package/dist/cli/commands/buyer/set-authorized-wallet.test.js.map +1 -1
- package/dist/cli/commands/buyer/start.d.ts +15 -0
- package/dist/cli/commands/buyer/start.d.ts.map +1 -1
- package/dist/cli/commands/buyer/start.js +158 -49
- package/dist/cli/commands/buyer/start.js.map +1 -1
- package/dist/cli/commands/buyer/start.test.js +16 -1
- package/dist/cli/commands/buyer/start.test.js.map +1 -1
- package/dist/cli/commands/chat.d.ts +3 -0
- package/dist/cli/commands/chat.d.ts.map +1 -0
- package/dist/cli/commands/chat.js +189 -0
- package/dist/cli/commands/chat.js.map +1 -0
- package/dist/cli/commands/gateway/activity.d.ts +15 -0
- package/dist/cli/commands/gateway/activity.d.ts.map +1 -0
- package/dist/cli/commands/gateway/activity.js +233 -0
- package/dist/cli/commands/gateway/activity.js.map +1 -0
- package/dist/cli/commands/gateway/admin-token.d.ts +3 -0
- package/dist/cli/commands/gateway/admin-token.d.ts.map +1 -0
- package/dist/cli/commands/gateway/admin-token.js +90 -0
- package/dist/cli/commands/gateway/admin-token.js.map +1 -0
- package/dist/cli/commands/gateway/console-link.d.ts +20 -0
- package/dist/cli/commands/gateway/console-link.d.ts.map +1 -0
- package/dist/cli/commands/gateway/console-link.js +92 -0
- package/dist/cli/commands/gateway/console-link.js.map +1 -0
- package/dist/cli/commands/gateway/gateway-commands.test.d.ts +2 -0
- package/dist/cli/commands/gateway/gateway-commands.test.d.ts.map +1 -0
- package/dist/cli/commands/gateway/gateway-commands.test.js +230 -0
- package/dist/cli/commands/gateway/gateway-commands.test.js.map +1 -0
- package/dist/cli/commands/gateway/gateway-console-commands.test.d.ts +2 -0
- package/dist/cli/commands/gateway/gateway-console-commands.test.d.ts.map +1 -0
- package/dist/cli/commands/gateway/gateway-console-commands.test.js +373 -0
- package/dist/cli/commands/gateway/gateway-console-commands.test.js.map +1 -0
- package/dist/cli/commands/gateway/index.d.ts +8 -0
- package/dist/cli/commands/gateway/index.d.ts.map +1 -1
- package/dist/cli/commands/gateway/index.js +93 -14
- package/dist/cli/commands/gateway/index.js.map +1 -1
- package/dist/cli/commands/gateway/key.d.ts +4 -0
- package/dist/cli/commands/gateway/key.d.ts.map +1 -1
- package/dist/cli/commands/gateway/key.js +297 -182
- package/dist/cli/commands/gateway/key.js.map +1 -1
- package/dist/cli/commands/gateway/member.d.ts +3 -0
- package/dist/cli/commands/gateway/member.d.ts.map +1 -0
- package/dist/cli/commands/gateway/member.js +302 -0
- package/dist/cli/commands/gateway/member.js.map +1 -0
- package/dist/cli/commands/gateway/migrate.d.ts +18 -0
- package/dist/cli/commands/gateway/migrate.d.ts.map +1 -0
- package/dist/cli/commands/gateway/migrate.js +158 -0
- package/dist/cli/commands/gateway/migrate.js.map +1 -0
- package/dist/cli/commands/gateway/operator.d.ts +11 -0
- package/dist/cli/commands/gateway/operator.d.ts.map +1 -0
- package/dist/cli/commands/gateway/operator.js +199 -0
- package/dist/cli/commands/gateway/operator.js.map +1 -0
- package/dist/cli/commands/gateway/operator.test.d.ts +2 -0
- package/dist/cli/commands/gateway/operator.test.d.ts.map +1 -0
- package/dist/cli/commands/gateway/operator.test.js +151 -0
- package/dist/cli/commands/gateway/operator.test.js.map +1 -0
- package/dist/cli/commands/gateway/peer-list.d.ts +3 -0
- package/dist/cli/commands/gateway/peer-list.d.ts.map +1 -0
- package/dist/cli/commands/gateway/peer-list.js +107 -0
- package/dist/cli/commands/gateway/peer-list.js.map +1 -0
- package/dist/cli/commands/gateway/policy-options.d.ts +23 -0
- package/dist/cli/commands/gateway/policy-options.d.ts.map +1 -0
- package/dist/cli/commands/gateway/policy-options.js +156 -0
- package/dist/cli/commands/gateway/policy-options.js.map +1 -0
- package/dist/cli/commands/gateway/preset.d.ts +3 -0
- package/dist/cli/commands/gateway/preset.d.ts.map +1 -0
- package/dist/cli/commands/gateway/preset.js +181 -0
- package/dist/cli/commands/gateway/preset.js.map +1 -0
- package/dist/cli/commands/gateway/routing.d.ts +3 -0
- package/dist/cli/commands/gateway/routing.d.ts.map +1 -0
- package/dist/cli/commands/gateway/routing.js +110 -0
- package/dist/cli/commands/gateway/routing.js.map +1 -0
- package/dist/cli/commands/gateway/settings.d.ts +4 -0
- package/dist/cli/commands/gateway/settings.d.ts.map +1 -0
- package/dist/cli/commands/gateway/settings.js +314 -0
- package/dist/cli/commands/gateway/settings.js.map +1 -0
- package/dist/cli/commands/gateway/shared.d.ts +55 -6
- package/dist/cli/commands/gateway/shared.d.ts.map +1 -1
- package/dist/cli/commands/gateway/shared.js +206 -26
- package/dist/cli/commands/gateway/shared.js.map +1 -1
- package/dist/cli/commands/gateway/workspace.d.ts +3 -0
- package/dist/cli/commands/gateway/workspace.d.ts.map +1 -0
- package/dist/cli/commands/gateway/workspace.js +250 -0
- package/dist/cli/commands/gateway/workspace.js.map +1 -0
- package/dist/cli/commands/network/bootstrap.js +1 -1
- package/dist/cli/commands/seller/setup.js +1 -1
- package/dist/cli/commands/seller/start.d.ts.map +1 -1
- package/dist/cli/commands/seller/start.js +1 -2
- package/dist/cli/commands/seller/start.js.map +1 -1
- package/dist/cli/commands/system-proxy/index.js +1 -1
- package/dist/cli/commands/tunnel/start.d.ts.map +1 -1
- package/dist/cli/commands/tunnel/start.js +23 -5
- package/dist/cli/commands/tunnel/start.js.map +1 -1
- package/dist/cli/commands/wrapped-tools.js +8 -8
- package/dist/cli/commands/wrapped-tools.test.js +5 -5
- package/dist/cli/index.js +12 -44
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/program.d.ts +4 -0
- package/dist/cli/program.d.ts.map +1 -0
- package/dist/cli/program.js +49 -0
- package/dist/cli/program.js.map +1 -0
- package/dist/cli/program.test.d.ts +2 -0
- package/dist/cli/program.test.d.ts.map +1 -0
- package/dist/cli/program.test.js +38 -0
- package/dist/cli/program.test.js.map +1 -0
- package/dist/cli/prompt-hidden.d.ts +3 -0
- package/dist/cli/prompt-hidden.d.ts.map +1 -0
- package/dist/cli/prompt-hidden.js +38 -0
- package/dist/cli/prompt-hidden.js.map +1 -0
- package/dist/cli/wallet-passphrase.d.ts +48 -0
- package/dist/cli/wallet-passphrase.d.ts.map +1 -0
- package/dist/cli/wallet-passphrase.js +119 -0
- package/dist/cli/wallet-passphrase.js.map +1 -0
- package/dist/cli/wallet-passphrase.test.d.ts +2 -0
- package/dist/cli/wallet-passphrase.test.d.ts.map +1 -0
- package/dist/cli/wallet-passphrase.test.js +79 -0
- package/dist/cli/wallet-passphrase.test.js.map +1 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +0 -1
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/effective.d.ts +12 -0
- package/dist/config/effective.d.ts.map +1 -1
- package/dist/config/effective.js +39 -6
- package/dist/config/effective.js.map +1 -1
- package/dist/config/effective.test.js +9 -1
- package/dist/config/effective.test.js.map +1 -1
- package/dist/config/loader.d.ts +6 -0
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +12 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/config/loader.test.js +7 -1
- package/dist/config/loader.test.js.map +1 -1
- package/dist/config/types.d.ts +14 -2
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/validation.d.ts.map +1 -1
- package/dist/config/validation.js +19 -0
- package/dist/config/validation.js.map +1 -1
- package/dist/gateway/accounting.d.ts +33 -3
- package/dist/gateway/accounting.d.ts.map +1 -1
- package/dist/gateway/accounting.js +86 -7
- package/dist/gateway/accounting.js.map +1 -1
- package/dist/gateway/admission-benchmark.test.d.ts +2 -0
- package/dist/gateway/admission-benchmark.test.d.ts.map +1 -0
- package/dist/gateway/admission-benchmark.test.js +75 -0
- package/dist/gateway/admission-benchmark.test.js.map +1 -0
- package/dist/gateway/auth/auth.test.d.ts +4 -0
- package/dist/gateway/auth/auth.test.d.ts.map +1 -0
- package/dist/gateway/auth/auth.test.js +337 -0
- package/dist/gateway/auth/auth.test.js.map +1 -0
- package/dist/gateway/auth/credentials.test.d.ts +2 -0
- package/dist/gateway/auth/credentials.test.d.ts.map +1 -0
- package/dist/gateway/auth/credentials.test.js +132 -0
- package/dist/gateway/auth/credentials.test.js.map +1 -0
- package/dist/gateway/auth/db.d.ts +156 -0
- package/dist/gateway/auth/db.d.ts.map +1 -0
- package/dist/gateway/auth/db.js +390 -0
- package/dist/gateway/auth/db.js.map +1 -0
- package/dist/gateway/auth/hardening.test.d.ts +2 -0
- package/dist/gateway/auth/hardening.test.d.ts.map +1 -0
- package/dist/gateway/auth/hardening.test.js +155 -0
- package/dist/gateway/auth/hardening.test.js.map +1 -0
- package/dist/gateway/auth/http.d.ts +53 -0
- package/dist/gateway/auth/http.d.ts.map +1 -0
- package/dist/gateway/auth/http.js +165 -0
- package/dist/gateway/auth/http.js.map +1 -0
- package/dist/gateway/auth/index.d.ts +26 -0
- package/dist/gateway/auth/index.d.ts.map +1 -0
- package/dist/gateway/auth/index.js +1014 -0
- package/dist/gateway/auth/index.js.map +1 -0
- package/dist/gateway/auth/oidc.d.ts +57 -0
- package/dist/gateway/auth/oidc.d.ts.map +1 -0
- package/dist/gateway/auth/oidc.js +159 -0
- package/dist/gateway/auth/oidc.js.map +1 -0
- package/dist/gateway/auth/oidc.test.d.ts +2 -0
- package/dist/gateway/auth/oidc.test.d.ts.map +1 -0
- package/dist/gateway/auth/oidc.test.js +223 -0
- package/dist/gateway/auth/oidc.test.js.map +1 -0
- package/dist/gateway/auth/reauth.test.d.ts +2 -0
- package/dist/gateway/auth/reauth.test.d.ts.map +1 -0
- package/dist/gateway/auth/reauth.test.js +108 -0
- package/dist/gateway/auth/reauth.test.js.map +1 -0
- package/dist/gateway/auth/store-integration.test.d.ts +2 -0
- package/dist/gateway/auth/store-integration.test.d.ts.map +1 -0
- package/dist/gateway/auth/store-integration.test.js +100 -0
- package/dist/gateway/auth/store-integration.test.js.map +1 -0
- package/dist/gateway/auth/test-helpers.d.ts +167 -0
- package/dist/gateway/auth/test-helpers.d.ts.map +1 -0
- package/dist/gateway/auth/test-helpers.js +368 -0
- package/dist/gateway/auth/test-helpers.js.map +1 -0
- package/dist/gateway/auth/types.d.ts +145 -0
- package/dist/gateway/auth/types.d.ts.map +1 -0
- package/dist/gateway/auth/types.js +2 -0
- package/dist/gateway/auth/types.js.map +1 -0
- package/dist/gateway/auth/wallet.d.ts +15 -0
- package/dist/gateway/auth/wallet.d.ts.map +1 -0
- package/dist/gateway/auth/wallet.js +43 -0
- package/dist/gateway/auth/wallet.js.map +1 -0
- package/dist/gateway/bundle.d.ts +127 -0
- package/dist/gateway/bundle.d.ts.map +1 -0
- package/dist/gateway/bundle.js +604 -0
- package/dist/gateway/bundle.js.map +1 -0
- package/dist/gateway/bundle.test.d.ts +2 -0
- package/dist/gateway/bundle.test.d.ts.map +1 -0
- package/dist/gateway/bundle.test.js +277 -0
- package/dist/gateway/bundle.test.js.map +1 -0
- package/dist/gateway/buyer-control.d.ts +33 -0
- package/dist/gateway/buyer-control.d.ts.map +1 -0
- package/dist/gateway/buyer-control.js +93 -0
- package/dist/gateway/buyer-control.js.map +1 -0
- package/dist/gateway/buyer-policy-probe.d.ts +41 -0
- package/dist/gateway/buyer-policy-probe.d.ts.map +1 -0
- package/dist/gateway/buyer-policy-probe.js +99 -0
- package/dist/gateway/buyer-policy-probe.js.map +1 -0
- package/dist/gateway/buyer-policy-probe.test.d.ts +2 -0
- package/dist/gateway/buyer-policy-probe.test.d.ts.map +1 -0
- package/dist/gateway/buyer-policy-probe.test.js +128 -0
- package/dist/gateway/buyer-policy-probe.test.js.map +1 -0
- package/dist/gateway/buyer-process.d.ts +30 -0
- package/dist/gateway/buyer-process.d.ts.map +1 -0
- package/dist/gateway/buyer-process.js +101 -0
- package/dist/gateway/buyer-process.js.map +1 -0
- package/dist/gateway/buyer-process.test.d.ts +2 -0
- package/dist/gateway/buyer-process.test.d.ts.map +1 -0
- package/dist/gateway/buyer-process.test.js +112 -0
- package/dist/gateway/buyer-process.test.js.map +1 -0
- package/dist/gateway/chat/routes.d.ts +45 -0
- package/dist/gateway/chat/routes.d.ts.map +1 -0
- package/dist/gateway/chat/routes.js +439 -0
- package/dist/gateway/chat/routes.js.map +1 -0
- package/dist/gateway/chat/routes.test.d.ts +2 -0
- package/dist/gateway/chat/routes.test.d.ts.map +1 -0
- package/dist/gateway/chat/routes.test.js +304 -0
- package/dist/gateway/chat/routes.test.js.map +1 -0
- package/dist/gateway/chat/tools.d.ts +35 -0
- package/dist/gateway/chat/tools.d.ts.map +1 -0
- package/dist/gateway/chat/tools.js +347 -0
- package/dist/gateway/chat/tools.js.map +1 -0
- package/dist/gateway/chat/tools.test.d.ts +2 -0
- package/dist/gateway/chat/tools.test.d.ts.map +1 -0
- package/dist/gateway/chat/tools.test.js +136 -0
- package/dist/gateway/chat/tools.test.js.map +1 -0
- package/dist/gateway/console-api/access.d.ts +52 -0
- package/dist/gateway/console-api/access.d.ts.map +1 -0
- package/dist/gateway/console-api/access.js +171 -0
- package/dist/gateway/console-api/access.js.map +1 -0
- package/dist/gateway/console-api/deps.d.ts +52 -0
- package/dist/gateway/console-api/deps.d.ts.map +1 -0
- package/dist/gateway/console-api/deps.js +2 -0
- package/dist/gateway/console-api/deps.js.map +1 -0
- package/dist/gateway/console-api/handlers/admin-tokens.d.ts +8 -0
- package/dist/gateway/console-api/handlers/admin-tokens.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/admin-tokens.js +48 -0
- package/dist/gateway/console-api/handlers/admin-tokens.js.map +1 -0
- package/dist/gateway/console-api/handlers/audit.d.ts +8 -0
- package/dist/gateway/console-api/handlers/audit.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/audit.js +19 -0
- package/dist/gateway/console-api/handlers/audit.js.map +1 -0
- package/dist/gateway/console-api/handlers/audit.test.d.ts +2 -0
- package/dist/gateway/console-api/handlers/audit.test.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/audit.test.js +241 -0
- package/dist/gateway/console-api/handlers/audit.test.js.map +1 -0
- package/dist/gateway/console-api/handlers/data-settings.test.d.ts +2 -0
- package/dist/gateway/console-api/handlers/data-settings.test.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/data-settings.test.js +264 -0
- package/dist/gateway/console-api/handlers/data-settings.test.js.map +1 -0
- package/dist/gateway/console-api/handlers/index.d.ts +4 -0
- package/dist/gateway/console-api/handlers/index.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/index.js +24 -0
- package/dist/gateway/console-api/handlers/index.js.map +1 -0
- package/dist/gateway/console-api/handlers/keys.d.ts +13 -0
- package/dist/gateway/console-api/handlers/keys.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/keys.js +128 -0
- package/dist/gateway/console-api/handlers/keys.js.map +1 -0
- package/dist/gateway/console-api/handlers/keys.test.d.ts +2 -0
- package/dist/gateway/console-api/handlers/keys.test.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/keys.test.js +166 -0
- package/dist/gateway/console-api/handlers/keys.test.js.map +1 -0
- package/dist/gateway/console-api/handlers/network-buyer.d.ts +22 -0
- package/dist/gateway/console-api/handlers/network-buyer.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/network-buyer.js +39 -0
- package/dist/gateway/console-api/handlers/network-buyer.js.map +1 -0
- package/dist/gateway/console-api/handlers/network-mapping.d.ts +33 -0
- package/dist/gateway/console-api/handlers/network-mapping.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/network-mapping.js +219 -0
- package/dist/gateway/console-api/handlers/network-mapping.js.map +1 -0
- package/dist/gateway/console-api/handlers/network-test-helpers.d.ts +35 -0
- package/dist/gateway/console-api/handlers/network-test-helpers.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/network-test-helpers.js +121 -0
- package/dist/gateway/console-api/handlers/network-test-helpers.js.map +1 -0
- package/dist/gateway/console-api/handlers/network.d.ts +15 -0
- package/dist/gateway/console-api/handlers/network.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/network.js +57 -0
- package/dist/gateway/console-api/handlers/network.js.map +1 -0
- package/dist/gateway/console-api/handlers/network.test.d.ts +2 -0
- package/dist/gateway/console-api/handlers/network.test.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/network.test.js +383 -0
- package/dist/gateway/console-api/handlers/network.test.js.map +1 -0
- package/dist/gateway/console-api/handlers/org.d.ts +10 -0
- package/dist/gateway/console-api/handlers/org.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/org.js +150 -0
- package/dist/gateway/console-api/handlers/org.js.map +1 -0
- package/dist/gateway/console-api/handlers/peer-lists.d.ts +5 -0
- package/dist/gateway/console-api/handlers/peer-lists.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/peer-lists.js +43 -0
- package/dist/gateway/console-api/handlers/peer-lists.js.map +1 -0
- package/dist/gateway/console-api/handlers/presets.d.ts +9 -0
- package/dist/gateway/console-api/handlers/presets.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/presets.js +79 -0
- package/dist/gateway/console-api/handlers/presets.js.map +1 -0
- package/dist/gateway/console-api/handlers/routing.d.ts +5 -0
- package/dist/gateway/console-api/handlers/routing.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/routing.js +20 -0
- package/dist/gateway/console-api/handlers/routing.js.map +1 -0
- package/dist/gateway/console-api/handlers/settings.d.ts +10 -0
- package/dist/gateway/console-api/handlers/settings.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/settings.js +38 -0
- package/dist/gateway/console-api/handlers/settings.js.map +1 -0
- package/dist/gateway/console-api/handlers/status.d.ts +9 -0
- package/dist/gateway/console-api/handlers/status.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/status.js +47 -0
- package/dist/gateway/console-api/handlers/status.js.map +1 -0
- package/dist/gateway/console-api/handlers/status.test.d.ts +2 -0
- package/dist/gateway/console-api/handlers/status.test.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/status.test.js +82 -0
- package/dist/gateway/console-api/handlers/status.test.js.map +1 -0
- package/dist/gateway/console-api/handlers/usage.d.ts +10 -0
- package/dist/gateway/console-api/handlers/usage.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/usage.js +68 -0
- package/dist/gateway/console-api/handlers/usage.js.map +1 -0
- package/dist/gateway/console-api/handlers/wallet-card-link.d.ts +29 -0
- package/dist/gateway/console-api/handlers/wallet-card-link.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/wallet-card-link.js +46 -0
- package/dist/gateway/console-api/handlers/wallet-card-link.js.map +1 -0
- package/dist/gateway/console-api/handlers/wallet-chain.d.ts +26 -0
- package/dist/gateway/console-api/handlers/wallet-chain.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/wallet-chain.js +80 -0
- package/dist/gateway/console-api/handlers/wallet-chain.js.map +1 -0
- package/dist/gateway/console-api/handlers/wallet-mapping.d.ts +45 -0
- package/dist/gateway/console-api/handlers/wallet-mapping.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/wallet-mapping.js +202 -0
- package/dist/gateway/console-api/handlers/wallet-mapping.js.map +1 -0
- package/dist/gateway/console-api/handlers/wallet-operator.d.ts +41 -0
- package/dist/gateway/console-api/handlers/wallet-operator.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/wallet-operator.js +198 -0
- package/dist/gateway/console-api/handlers/wallet-operator.js.map +1 -0
- package/dist/gateway/console-api/handlers/wallet-operator.test.d.ts +2 -0
- package/dist/gateway/console-api/handlers/wallet-operator.test.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/wallet-operator.test.js +195 -0
- package/dist/gateway/console-api/handlers/wallet-operator.test.js.map +1 -0
- package/dist/gateway/console-api/handlers/wallet.d.ts +61 -0
- package/dist/gateway/console-api/handlers/wallet.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/wallet.js +221 -0
- package/dist/gateway/console-api/handlers/wallet.js.map +1 -0
- package/dist/gateway/console-api/handlers/wallet.test.d.ts +2 -0
- package/dist/gateway/console-api/handlers/wallet.test.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/wallet.test.js +581 -0
- package/dist/gateway/console-api/handlers/wallet.test.js.map +1 -0
- package/dist/gateway/console-api/handlers/workspaces.d.ts +12 -0
- package/dist/gateway/console-api/handlers/workspaces.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/workspaces.js +96 -0
- package/dist/gateway/console-api/handlers/workspaces.js.map +1 -0
- package/dist/gateway/console-api/operator-types.d.ts +68 -0
- package/dist/gateway/console-api/operator-types.d.ts.map +1 -0
- package/dist/gateway/console-api/operator-types.js +21 -0
- package/dist/gateway/console-api/operator-types.js.map +1 -0
- package/dist/gateway/console-api/router.d.ts +97 -0
- package/dist/gateway/console-api/router.d.ts.map +1 -0
- package/dist/gateway/console-api/router.js +69 -0
- package/dist/gateway/console-api/router.js.map +1 -0
- package/dist/gateway/console-api/routes.test.d.ts +2 -0
- package/dist/gateway/console-api/routes.test.d.ts.map +1 -0
- package/dist/gateway/console-api/routes.test.js +331 -0
- package/dist/gateway/console-api/routes.test.js.map +1 -0
- package/dist/gateway/console-api/serialize.d.ts +33 -0
- package/dist/gateway/console-api/serialize.d.ts.map +1 -0
- package/dist/gateway/console-api/serialize.js +179 -0
- package/dist/gateway/console-api/serialize.js.map +1 -0
- package/dist/gateway/console-api/server.d.ts +38 -0
- package/dist/gateway/console-api/server.d.ts.map +1 -0
- package/dist/gateway/console-api/server.js +308 -0
- package/dist/gateway/console-api/server.js.map +1 -0
- package/dist/gateway/console-api/server.test.d.ts +2 -0
- package/dist/gateway/console-api/server.test.d.ts.map +1 -0
- package/dist/gateway/console-api/server.test.js +149 -0
- package/dist/gateway/console-api/server.test.js.map +1 -0
- package/dist/gateway/console-api/test-support.d.ts +59 -0
- package/dist/gateway/console-api/test-support.d.ts.map +1 -0
- package/dist/gateway/console-api/test-support.js +120 -0
- package/dist/gateway/console-api/test-support.js.map +1 -0
- package/dist/gateway/console-api/types.d.ts +779 -0
- package/dist/gateway/console-api/types.d.ts.map +1 -0
- package/dist/gateway/console-api/types.js +6 -0
- package/dist/gateway/console-api/types.js.map +1 -0
- package/dist/gateway/console-location.d.ts +21 -0
- package/dist/gateway/console-location.d.ts.map +1 -0
- package/dist/gateway/console-location.js +41 -0
- package/dist/gateway/console-location.js.map +1 -0
- package/dist/gateway/console-recovery.d.ts +34 -0
- package/dist/gateway/console-recovery.d.ts.map +1 -0
- package/dist/gateway/console-recovery.js +94 -0
- package/dist/gateway/console-recovery.js.map +1 -0
- package/dist/gateway/console-recovery.test.d.ts +2 -0
- package/dist/gateway/console-recovery.test.d.ts.map +1 -0
- package/dist/gateway/console-recovery.test.js +106 -0
- package/dist/gateway/console-recovery.test.js.map +1 -0
- package/dist/gateway/console.d.ts +18 -0
- package/dist/gateway/console.d.ts.map +1 -0
- package/dist/gateway/console.js +101 -0
- package/dist/gateway/console.js.map +1 -0
- package/dist/gateway/console.test.d.ts +2 -0
- package/dist/gateway/console.test.d.ts.map +1 -0
- package/dist/gateway/console.test.js +165 -0
- package/dist/gateway/console.test.js.map +1 -0
- package/dist/gateway/errors.d.ts +3 -0
- package/dist/gateway/errors.d.ts.map +1 -0
- package/dist/gateway/errors.js +5 -0
- package/dist/gateway/errors.js.map +1 -0
- package/dist/gateway/exposure.d.ts +33 -0
- package/dist/gateway/exposure.d.ts.map +1 -0
- package/dist/gateway/exposure.js +146 -0
- package/dist/gateway/exposure.js.map +1 -0
- package/dist/gateway/exposure.test.d.ts +2 -0
- package/dist/gateway/exposure.test.d.ts.map +1 -0
- package/dist/gateway/exposure.test.js +93 -0
- package/dist/gateway/exposure.test.js.map +1 -0
- package/dist/gateway/gateway-policy.test.d.ts +2 -0
- package/dist/gateway/gateway-policy.test.d.ts.map +1 -0
- package/dist/gateway/gateway-policy.test.js +404 -0
- package/dist/gateway/gateway-policy.test.js.map +1 -0
- package/dist/gateway/gateway.test.js +47 -25
- package/dist/gateway/gateway.test.js.map +1 -1
- package/dist/gateway/keys.d.ts +2 -0
- package/dist/gateway/keys.d.ts.map +1 -1
- package/dist/gateway/keys.js +2 -0
- package/dist/gateway/keys.js.map +1 -1
- package/dist/gateway/limits.d.ts +32 -8
- package/dist/gateway/limits.d.ts.map +1 -1
- package/dist/gateway/limits.js +27 -11
- package/dist/gateway/limits.js.map +1 -1
- package/dist/gateway/observability.d.ts +51 -0
- package/dist/gateway/observability.d.ts.map +1 -0
- package/dist/gateway/observability.js +136 -0
- package/dist/gateway/observability.js.map +1 -0
- package/dist/gateway/policy-resolver.d.ts +73 -0
- package/dist/gateway/policy-resolver.d.ts.map +1 -0
- package/dist/gateway/policy-resolver.js +142 -0
- package/dist/gateway/policy-resolver.js.map +1 -0
- package/dist/gateway/policy-resolver.test.d.ts +2 -0
- package/dist/gateway/policy-resolver.test.d.ts.map +1 -0
- package/dist/gateway/policy-resolver.test.js +273 -0
- package/dist/gateway/policy-resolver.test.js.map +1 -0
- package/dist/gateway/request-errors.test.d.ts +2 -0
- package/dist/gateway/request-errors.test.d.ts.map +1 -0
- package/dist/gateway/request-errors.test.js +108 -0
- package/dist/gateway/request-errors.test.js.map +1 -0
- package/dist/gateway/request-shaping.d.ts +25 -0
- package/dist/gateway/request-shaping.d.ts.map +1 -0
- package/dist/gateway/request-shaping.js +66 -0
- package/dist/gateway/request-shaping.js.map +1 -0
- package/dist/gateway/response-usage.d.ts +35 -0
- package/dist/gateway/response-usage.d.ts.map +1 -0
- package/dist/gateway/response-usage.js +167 -0
- package/dist/gateway/response-usage.js.map +1 -0
- package/dist/gateway/response-usage.test.d.ts +2 -0
- package/dist/gateway/response-usage.test.d.ts.map +1 -0
- package/dist/gateway/response-usage.test.js +78 -0
- package/dist/gateway/response-usage.test.js.map +1 -0
- package/dist/gateway/runtime.d.ts +25 -0
- package/dist/gateway/runtime.d.ts.map +1 -1
- package/dist/gateway/runtime.js +39 -19
- package/dist/gateway/runtime.js.map +1 -1
- package/dist/gateway/server.d.ts +68 -2
- package/dist/gateway/server.d.ts.map +1 -1
- package/dist/gateway/server.js +532 -116
- package/dist/gateway/server.js.map +1 -1
- package/dist/gateway/services/audit.d.ts +16 -0
- package/dist/gateway/services/audit.d.ts.map +1 -0
- package/dist/gateway/services/audit.js +18 -0
- package/dist/gateway/services/audit.js.map +1 -0
- package/dist/gateway/services/context.d.ts +66 -0
- package/dist/gateway/services/context.d.ts.map +1 -0
- package/dist/gateway/services/context.js +52 -0
- package/dist/gateway/services/context.js.map +1 -0
- package/dist/gateway/services/keys.d.ts +78 -0
- package/dist/gateway/services/keys.d.ts.map +1 -0
- package/dist/gateway/services/keys.js +232 -0
- package/dist/gateway/services/keys.js.map +1 -0
- package/dist/gateway/services/members.d.ts +72 -0
- package/dist/gateway/services/members.d.ts.map +1 -0
- package/dist/gateway/services/members.js +161 -0
- package/dist/gateway/services/members.js.map +1 -0
- package/dist/gateway/services/network.d.ts +36 -0
- package/dist/gateway/services/network.d.ts.map +1 -0
- package/dist/gateway/services/network.js +147 -0
- package/dist/gateway/services/network.js.map +1 -0
- package/dist/gateway/services/operator.d.ts +98 -0
- package/dist/gateway/services/operator.d.ts.map +1 -0
- package/dist/gateway/services/operator.js +170 -0
- package/dist/gateway/services/operator.js.map +1 -0
- package/dist/gateway/services/operator.test.d.ts +2 -0
- package/dist/gateway/services/operator.test.d.ts.map +1 -0
- package/dist/gateway/services/operator.test.js +184 -0
- package/dist/gateway/services/operator.test.js.map +1 -0
- package/dist/gateway/services/peer-lists.d.ts +20 -0
- package/dist/gateway/services/peer-lists.d.ts.map +1 -0
- package/dist/gateway/services/peer-lists.js +134 -0
- package/dist/gateway/services/peer-lists.js.map +1 -0
- package/dist/gateway/services/presets.d.ts +34 -0
- package/dist/gateway/services/presets.d.ts.map +1 -0
- package/dist/gateway/services/presets.js +134 -0
- package/dist/gateway/services/presets.js.map +1 -0
- package/dist/gateway/services/routing.d.ts +13 -0
- package/dist/gateway/services/routing.d.ts.map +1 -0
- package/dist/gateway/services/routing.js +18 -0
- package/dist/gateway/services/routing.js.map +1 -0
- package/dist/gateway/services/services.test.d.ts +2 -0
- package/dist/gateway/services/services.test.d.ts.map +1 -0
- package/dist/gateway/services/services.test.js +476 -0
- package/dist/gateway/services/services.test.js.map +1 -0
- package/dist/gateway/services/settings.d.ts +68 -0
- package/dist/gateway/services/settings.d.ts.map +1 -0
- package/dist/gateway/services/settings.js +580 -0
- package/dist/gateway/services/settings.js.map +1 -0
- package/dist/gateway/services/tokens.d.ts +29 -0
- package/dist/gateway/services/tokens.d.ts.map +1 -0
- package/dist/gateway/services/tokens.js +48 -0
- package/dist/gateway/services/tokens.js.map +1 -0
- package/dist/gateway/services/usage.d.ts +55 -0
- package/dist/gateway/services/usage.d.ts.map +1 -0
- package/dist/gateway/services/usage.js +225 -0
- package/dist/gateway/services/usage.js.map +1 -0
- package/dist/gateway/services/wallet-address-env.test.d.ts +2 -0
- package/dist/gateway/services/wallet-address-env.test.d.ts.map +1 -0
- package/dist/gateway/services/wallet-address-env.test.js +119 -0
- package/dist/gateway/services/wallet-address-env.test.js.map +1 -0
- package/dist/gateway/services/wallet-address.d.ts +40 -0
- package/dist/gateway/services/wallet-address.d.ts.map +1 -0
- package/dist/gateway/services/wallet-address.js +116 -0
- package/dist/gateway/services/wallet-address.js.map +1 -0
- package/dist/gateway/services/wallet-address.test.d.ts +2 -0
- package/dist/gateway/services/wallet-address.test.d.ts.map +1 -0
- package/dist/gateway/services/wallet-address.test.js +84 -0
- package/dist/gateway/services/wallet-address.test.js.map +1 -0
- package/dist/gateway/services/workspaces.d.ts +75 -0
- package/dist/gateway/services/workspaces.d.ts.map +1 -0
- package/dist/gateway/services/workspaces.js +228 -0
- package/dist/gateway/services/workspaces.js.map +1 -0
- package/dist/gateway/spend-durability.test.d.ts +2 -0
- package/dist/gateway/spend-durability.test.d.ts.map +1 -0
- package/dist/gateway/spend-durability.test.js +330 -0
- package/dist/gateway/spend-durability.test.js.map +1 -0
- package/dist/gateway/spend-feed.d.ts +11 -1
- package/dist/gateway/spend-feed.d.ts.map +1 -1
- package/dist/gateway/spend-feed.js +17 -4
- package/dist/gateway/spend-feed.js.map +1 -1
- package/dist/gateway/spend-feed.test.d.ts +2 -0
- package/dist/gateway/spend-feed.test.d.ts.map +1 -0
- package/dist/gateway/spend-feed.test.js +34 -0
- package/dist/gateway/spend-feed.test.js.map +1 -0
- package/dist/gateway/store-data.test.d.ts +2 -0
- package/dist/gateway/store-data.test.d.ts.map +1 -0
- package/dist/gateway/store-data.test.js +346 -0
- package/dist/gateway/store-data.test.js.map +1 -0
- package/dist/gateway/store-migrations.d.ts +6 -0
- package/dist/gateway/store-migrations.d.ts.map +1 -0
- package/dist/gateway/store-migrations.js +301 -0
- package/dist/gateway/store-migrations.js.map +1 -0
- package/dist/gateway/store.d.ts +595 -10
- package/dist/gateway/store.d.ts.map +1 -1
- package/dist/gateway/store.js +1242 -120
- package/dist/gateway/store.js.map +1 -1
- package/dist/gateway/store.test.d.ts +2 -0
- package/dist/gateway/store.test.d.ts.map +1 -0
- package/dist/gateway/store.test.js +185 -0
- package/dist/gateway/store.test.js.map +1 -0
- package/dist/proxy/buyer-chain-reader.d.ts +68 -0
- package/dist/proxy/buyer-chain-reader.d.ts.map +1 -0
- package/dist/proxy/buyer-chain-reader.js +152 -0
- package/dist/proxy/buyer-chain-reader.js.map +1 -0
- package/dist/proxy/buyer-chain-reader.test.d.ts +2 -0
- package/dist/proxy/buyer-chain-reader.test.d.ts.map +1 -0
- package/dist/proxy/buyer-chain-reader.test.js +102 -0
- package/dist/proxy/buyer-chain-reader.test.js.map +1 -0
- package/dist/proxy/buyer-proxy.d.ts +169 -3
- package/dist/proxy/buyer-proxy.d.ts.map +1 -1
- package/dist/proxy/buyer-proxy.js +873 -117
- package/dist/proxy/buyer-proxy.js.map +1 -1
- package/dist/proxy/buyer-proxy.test.js +31 -0
- package/dist/proxy/buyer-proxy.test.js.map +1 -1
- package/dist/proxy/chain-read-cache.d.ts +47 -0
- package/dist/proxy/chain-read-cache.d.ts.map +1 -0
- package/dist/proxy/chain-read-cache.js +110 -0
- package/dist/proxy/chain-read-cache.js.map +1 -0
- package/dist/proxy/chain-read-cache.test.d.ts +2 -0
- package/dist/proxy/chain-read-cache.test.d.ts.map +1 -0
- package/dist/proxy/chain-read-cache.test.js +75 -0
- package/dist/proxy/chain-read-cache.test.js.map +1 -0
- package/dist/proxy/chain-rpc-test-support.d.ts +31 -0
- package/dist/proxy/chain-rpc-test-support.d.ts.map +1 -0
- package/dist/proxy/chain-rpc-test-support.js +136 -0
- package/dist/proxy/chain-rpc-test-support.js.map +1 -0
- package/dist/proxy/chain-rpc.d.ts +121 -0
- package/dist/proxy/chain-rpc.d.ts.map +1 -0
- package/dist/proxy/chain-rpc.js +420 -0
- package/dist/proxy/chain-rpc.js.map +1 -0
- package/dist/proxy/chain-rpc.test.d.ts +2 -0
- package/dist/proxy/chain-rpc.test.d.ts.map +1 -0
- package/dist/proxy/chain-rpc.test.js +180 -0
- package/dist/proxy/chain-rpc.test.js.map +1 -0
- package/dist/proxy/deposit-watch-hub.d.ts +47 -0
- package/dist/proxy/deposit-watch-hub.d.ts.map +1 -0
- package/dist/proxy/deposit-watch-hub.js +111 -0
- package/dist/proxy/deposit-watch-hub.js.map +1 -0
- package/dist/proxy/deposit-watch-hub.test.d.ts +2 -0
- package/dist/proxy/deposit-watch-hub.test.d.ts.map +1 -0
- package/dist/proxy/deposit-watch-hub.test.js +133 -0
- package/dist/proxy/deposit-watch-hub.test.js.map +1 -0
- package/dist/proxy/deposit-watcher.d.ts +44 -4
- package/dist/proxy/deposit-watcher.d.ts.map +1 -1
- package/dist/proxy/deposit-watcher.js +76 -11
- package/dist/proxy/deposit-watcher.js.map +1 -1
- package/dist/proxy/deposit-watcher.test.js +54 -1
- package/dist/proxy/deposit-watcher.test.js.map +1 -1
- package/dist/proxy/gateway-policy.test.d.ts +2 -0
- package/dist/proxy/gateway-policy.test.d.ts.map +1 -0
- package/dist/proxy/gateway-policy.test.js +576 -0
- package/dist/proxy/gateway-policy.test.js.map +1 -0
- package/dist/proxy/network-models.d.ts +2 -0
- package/dist/proxy/network-models.d.ts.map +1 -1
- package/dist/proxy/network-models.js +3 -1
- package/dist/proxy/network-models.js.map +1 -1
- package/dist/proxy/route-policy.d.ts +97 -0
- package/dist/proxy/route-policy.d.ts.map +1 -0
- package/dist/proxy/route-policy.js +230 -0
- package/dist/proxy/route-policy.js.map +1 -0
- package/dist/proxy/route-policy.test.d.ts +2 -0
- package/dist/proxy/route-policy.test.d.ts.map +1 -0
- package/dist/proxy/route-policy.test.js +120 -0
- package/dist/proxy/route-policy.test.js.map +1 -0
- package/dist/proxy/spend-attribution.d.ts +41 -10
- package/dist/proxy/spend-attribution.d.ts.map +1 -1
- package/dist/proxy/spend-attribution.js +133 -37
- package/dist/proxy/spend-attribution.js.map +1 -1
- package/dist/proxy/tee-control.d.ts +3 -1
- package/dist/proxy/tee-control.d.ts.map +1 -1
- package/dist/proxy/tee-control.js +5 -3
- package/dist/proxy/tee-control.js.map +1 -1
- package/dist/proxy/telemetry.d.ts +2 -1
- package/dist/proxy/telemetry.d.ts.map +1 -1
- package/dist/proxy/telemetry.js +10 -5
- package/dist/proxy/telemetry.js.map +1 -1
- package/dist/routing-policy/policy.d.ts +149 -0
- package/dist/routing-policy/policy.d.ts.map +1 -0
- package/dist/routing-policy/policy.js +450 -0
- package/dist/routing-policy/policy.js.map +1 -0
- package/dist/routing-policy/policy.test.d.ts +2 -0
- package/dist/routing-policy/policy.test.d.ts.map +1 -0
- package/dist/routing-policy/policy.test.js +134 -0
- package/dist/routing-policy/policy.test.js.map +1 -0
- package/package.json +15 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/gateway/console-api/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export const CONSOLE_BASE_PATH = '/console';
|
|
2
|
+
export const CONSOLE_API_PATH = '/console/api';
|
|
3
|
+
export const CONSOLE_CSRF_HEADER = 'x-antseed-console';
|
|
4
|
+
/** AntseedChannels' grace period between an on-chain close request and the withdrawal. */
|
|
5
|
+
export const CHANNEL_CLOSE_GRACE_MS = 15 * 60_000;
|
|
6
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/gateway/console-api/types.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAA;AAC3C,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAA;AAC9C,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAA;AA4ZtD,0FAA0F;AAC1F,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,MAAM,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { GatewayStore } from './store.js';
|
|
2
|
+
/**
|
|
3
|
+
* Where the running gateway's console is reachable, saved in the store so
|
|
4
|
+
* `antseed gateway console-link` and `member invite` print working links.
|
|
5
|
+
*/
|
|
6
|
+
export declare const CONSOLE_LOCATION_SETTING = "console.location";
|
|
7
|
+
export interface ConsoleLocation {
|
|
8
|
+
publicUrl: string | null;
|
|
9
|
+
port: number;
|
|
10
|
+
/** Listen address of the gateway that saved it; absent in rows saved before it was recorded. */
|
|
11
|
+
host?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function readConsoleLocation(store: Pick<GatewayStore, 'getSetting'>): ConsoleLocation | null;
|
|
14
|
+
/**
|
|
15
|
+
* The console's origin as typed by an operator: an http(s) URL, reduced to
|
|
16
|
+
* its origin. Throws on anything else so a typo fails at start-up.
|
|
17
|
+
*/
|
|
18
|
+
export declare function normalizePublicUrl(value: string | null | undefined): string | null;
|
|
19
|
+
/** Base URL for console links: the public URL, else localhost (never 127.0.0.1, which passkeys refuse). */
|
|
20
|
+
export declare function consoleBaseUrl(location: ConsoleLocation): string;
|
|
21
|
+
//# sourceMappingURL=console-location.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console-location.d.ts","sourceRoot":"","sources":["../../src/gateway/console-location.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C;;;GAGG;AACH,eAAO,MAAM,wBAAwB,qBAAqB,CAAA;AAE1D,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,gGAAgG;IAChG,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,GAAG,eAAe,GAAG,IAAI,CAQnG;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAYlF;AAED,2GAA2G;AAC3G,wBAAgB,cAAc,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAEhE"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where the running gateway's console is reachable, saved in the store so
|
|
3
|
+
* `antseed gateway console-link` and `member invite` print working links.
|
|
4
|
+
*/
|
|
5
|
+
export const CONSOLE_LOCATION_SETTING = 'console.location';
|
|
6
|
+
export function readConsoleLocation(store) {
|
|
7
|
+
const saved = store.getSetting(CONSOLE_LOCATION_SETTING);
|
|
8
|
+
if (!saved || typeof saved.port !== 'number')
|
|
9
|
+
return null;
|
|
10
|
+
return {
|
|
11
|
+
publicUrl: typeof saved.publicUrl === 'string' ? saved.publicUrl : null,
|
|
12
|
+
port: saved.port,
|
|
13
|
+
...(typeof saved.host === 'string' ? { host: saved.host } : {}),
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* The console's origin as typed by an operator: an http(s) URL, reduced to
|
|
18
|
+
* its origin. Throws on anything else so a typo fails at start-up.
|
|
19
|
+
*/
|
|
20
|
+
export function normalizePublicUrl(value) {
|
|
21
|
+
const raw = value?.trim();
|
|
22
|
+
if (!raw)
|
|
23
|
+
return null;
|
|
24
|
+
let url;
|
|
25
|
+
try {
|
|
26
|
+
url = new URL(raw);
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
throw new Error(`Public URL "${raw}" is not a valid URL.`);
|
|
30
|
+
}
|
|
31
|
+
if (url.protocol !== 'https:' && url.protocol !== 'http:')
|
|
32
|
+
throw new Error('The public URL must start with https:// (or http://).');
|
|
33
|
+
if (url.pathname !== '/' && url.pathname !== '')
|
|
34
|
+
throw new Error('The public URL must be an origin such as https://llm.example.com, without a path.');
|
|
35
|
+
return url.origin;
|
|
36
|
+
}
|
|
37
|
+
/** Base URL for console links: the public URL, else localhost (never 127.0.0.1, which passkeys refuse). */
|
|
38
|
+
export function consoleBaseUrl(location) {
|
|
39
|
+
return location.publicUrl ?? `http://localhost:${location.port}`;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=console-location.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console-location.js","sourceRoot":"","sources":["../../src/gateway/console-location.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,kBAAkB,CAAA;AAS1D,MAAM,UAAU,mBAAmB,CAAC,KAAuC;IACzE,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAA2B,wBAAwB,CAAC,CAAA;IAClF,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IACzD,OAAO;QACL,SAAS,EAAE,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;QACvE,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChE,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAgC;IACjE,MAAM,GAAG,GAAG,KAAK,EAAE,IAAI,EAAE,CAAA;IACzB,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAA;IACrB,IAAI,GAAQ,CAAA;IACZ,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,eAAe,GAAG,uBAAuB,CAAC,CAAA;IAC5D,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;IACnI,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,IAAI,GAAG,CAAC,QAAQ,KAAK,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAA;IACrJ,OAAO,GAAG,CAAC,MAAM,CAAA;AACnB,CAAC;AAED,2GAA2G;AAC3G,MAAM,UAAU,cAAc,CAAC,QAAyB;IACtD,OAAO,QAAQ,CAAC,SAAS,IAAI,oBAAoB,QAAQ,CAAC,IAAI,EAAE,CAAA;AAClE,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type Database from 'better-sqlite3';
|
|
2
|
+
import type { ConsoleRegistrar } from './console-api/server.js';
|
|
3
|
+
import { type ConsoleLocation } from './console-location.js';
|
|
4
|
+
import type { GatewayStore, MemberRecord } from './store.js';
|
|
5
|
+
/**
|
|
6
|
+
* Recovery links let an existing member add a sign-in method when theirs no
|
|
7
|
+
* longer work, typically passkeys after the console moved to another domain
|
|
8
|
+
* (a passkey is bound to the domain it was created on). Only the CLI, i.e.
|
|
9
|
+
* someone with access to the gateway's data, can create one. A link is
|
|
10
|
+
* single use, valid for an hour, replaces the member's earlier unused link,
|
|
11
|
+
* and both creating and using it are audited. Only the SHA-256 of the token
|
|
12
|
+
* is stored.
|
|
13
|
+
*/
|
|
14
|
+
export declare const RECOVERY_TTL_MS: number;
|
|
15
|
+
/** Active owners, oldest first: the default target of `console-link --recover`. */
|
|
16
|
+
export declare function activeOwners(store: GatewayStore): MemberRecord[];
|
|
17
|
+
export interface RecoveryLink {
|
|
18
|
+
url: string;
|
|
19
|
+
member: MemberRecord;
|
|
20
|
+
expiresAt: number;
|
|
21
|
+
}
|
|
22
|
+
export declare function createRecoveryLink(store: GatewayStore, location: ConsoleLocation, memberId: string, now?: () => number): RecoveryLink;
|
|
23
|
+
/** Marks a live token used and returns its member id; null when unknown, used or expired. */
|
|
24
|
+
export declare function consumeRecoveryToken(db: Database.Database, token: string, now: number): string | null;
|
|
25
|
+
/** Drops every recovery link, e.g. when a data dir is imported on a new host. */
|
|
26
|
+
export declare function clearRecoveryTokens(db: Database.Database): void;
|
|
27
|
+
/**
|
|
28
|
+
* `POST /auth/recover { token }` (public): trades a recovery link for an
|
|
29
|
+
* enrollment (from `createEnrollment`, the console auth's), which the
|
|
30
|
+
* console's usual sign-up screen uses to register a passkey, wallet or SSO
|
|
31
|
+
* account for that member and sign them in.
|
|
32
|
+
*/
|
|
33
|
+
export declare function recoveryRouteRegistrar(createEnrollment: (memberId: string) => string): ConsoleRegistrar;
|
|
34
|
+
//# sourceMappingURL=console-recovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console-recovery.d.ts","sourceRoot":"","sources":["../../src/gateway/console-recovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAM1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE/D,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE5D;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,QAAiB,CAAA;AAE7C,mFAAmF;AACnF,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY,EAAE,CAEhE;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,YAAY,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,MAAiB,GAAG,YAAY,CAmB/I;AAED,6FAA6F;AAC7F,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOrG;AAED,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAE/D;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,gBAAgB,CA+BvG"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { errorMessage } from './errors.js';
|
|
2
|
+
import { randomToken, sha256Hex } from './auth/db.js';
|
|
3
|
+
import { RateLimiter, rateLimited } from './auth/http.js';
|
|
4
|
+
import { requestIp } from './console-api/access.js';
|
|
5
|
+
import { ConsoleError } from './console-api/router.js';
|
|
6
|
+
import { consoleBaseUrl } from './console-location.js';
|
|
7
|
+
/**
|
|
8
|
+
* Recovery links let an existing member add a sign-in method when theirs no
|
|
9
|
+
* longer work, typically passkeys after the console moved to another domain
|
|
10
|
+
* (a passkey is bound to the domain it was created on). Only the CLI, i.e.
|
|
11
|
+
* someone with access to the gateway's data, can create one. A link is
|
|
12
|
+
* single use, valid for an hour, replaces the member's earlier unused link,
|
|
13
|
+
* and both creating and using it are audited. Only the SHA-256 of the token
|
|
14
|
+
* is stored.
|
|
15
|
+
*/
|
|
16
|
+
export const RECOVERY_TTL_MS = 60 * 60 * 1000;
|
|
17
|
+
/** Active owners, oldest first: the default target of `console-link --recover`. */
|
|
18
|
+
export function activeOwners(store) {
|
|
19
|
+
return store.listMembers().filter((member) => member.orgRole === 'owner' && member.status === 'active');
|
|
20
|
+
}
|
|
21
|
+
export function createRecoveryLink(store, location, memberId, now = Date.now) {
|
|
22
|
+
const member = store.getMember(memberId);
|
|
23
|
+
if (!member || member.status !== 'active')
|
|
24
|
+
throw new Error(`Member ${memberId} is not an active member of this console.`);
|
|
25
|
+
const db = store.database;
|
|
26
|
+
const token = randomToken(32);
|
|
27
|
+
const createdAt = now();
|
|
28
|
+
const expiresAt = createdAt + RECOVERY_TTL_MS;
|
|
29
|
+
db.transaction(() => {
|
|
30
|
+
db.prepare('DELETE FROM console_recovery_tokens WHERE expires_at <= ? OR (member_id = ? AND used_at IS NULL)').run(createdAt, member.id);
|
|
31
|
+
db.prepare('INSERT INTO console_recovery_tokens (token_hash, member_id, created_at, expires_at) VALUES (?, ?, ?, ?)')
|
|
32
|
+
.run(sha256Hex(token), member.id, createdAt, expiresAt);
|
|
33
|
+
})();
|
|
34
|
+
store.recordAudit({
|
|
35
|
+
actor: { kind: 'cli', id: null },
|
|
36
|
+
action: 'auth.recovery_link_create',
|
|
37
|
+
target: { kind: 'member', id: member.id, label: member.label },
|
|
38
|
+
details: { expiresAt },
|
|
39
|
+
});
|
|
40
|
+
return { url: `${consoleBaseUrl(location)}/console/recover#${token}`, member, expiresAt };
|
|
41
|
+
}
|
|
42
|
+
/** Marks a live token used and returns its member id; null when unknown, used or expired. */
|
|
43
|
+
export function consumeRecoveryToken(db, token, now) {
|
|
44
|
+
const hash = sha256Hex(token);
|
|
45
|
+
const row = db.prepare('SELECT member_id FROM console_recovery_tokens WHERE token_hash = ? AND used_at IS NULL AND expires_at > ?').get(hash, now);
|
|
46
|
+
if (!row)
|
|
47
|
+
return null;
|
|
48
|
+
const changed = db.prepare('UPDATE console_recovery_tokens SET used_at = ? WHERE token_hash = ? AND used_at IS NULL').run(now, hash).changes;
|
|
49
|
+
return changed === 1 ? row.member_id : null;
|
|
50
|
+
}
|
|
51
|
+
/** Drops every recovery link, e.g. when a data dir is imported on a new host. */
|
|
52
|
+
export function clearRecoveryTokens(db) {
|
|
53
|
+
db.prepare('DELETE FROM console_recovery_tokens').run();
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* `POST /auth/recover { token }` (public): trades a recovery link for an
|
|
57
|
+
* enrollment (from `createEnrollment`, the console auth's), which the
|
|
58
|
+
* console's usual sign-up screen uses to register a passkey, wallet or SSO
|
|
59
|
+
* account for that member and sign them in.
|
|
60
|
+
*/
|
|
61
|
+
export function recoveryRouteRegistrar(createEnrollment) {
|
|
62
|
+
return (router, deps) => {
|
|
63
|
+
const limiter = new RateLimiter([{ limit: 10, ms: 60_000 }, { limit: 50, ms: 3_600_000 }], deps.now);
|
|
64
|
+
const auditRecovery = (ip, actor, action, details = {}) => {
|
|
65
|
+
try {
|
|
66
|
+
deps.store.recordAudit({ actor, action, details, ip });
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
deps.log(`Console: AUDIT WRITE FAILED for ${action}: ${errorMessage(error)}`);
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
router.add('POST', '/auth/recover', async (request) => {
|
|
73
|
+
const ip = requestIp(request, deps);
|
|
74
|
+
const wait = limiter.hit(`ip:${ip ?? 'unknown'}`);
|
|
75
|
+
if (wait)
|
|
76
|
+
return rateLimited(wait);
|
|
77
|
+
const token = request.body && typeof request.body === 'object' ? request.body.token : undefined;
|
|
78
|
+
const memberId = typeof token === 'string' && token.length > 0 && token.length <= 200
|
|
79
|
+
? consumeRecoveryToken(deps.store.database, token, deps.now())
|
|
80
|
+
: null;
|
|
81
|
+
const member = memberId ? deps.store.getMember(memberId) : null;
|
|
82
|
+
if (!member || member.status !== 'active') {
|
|
83
|
+
auditRecovery(ip, { kind: 'system', id: null }, 'auth.sign_in_failed', { method: 'recovery', code: 'invalid_token' });
|
|
84
|
+
throw new ConsoleError(400, 'invalid_token', 'This recovery link is invalid, used or expired. Create a new one on the gateway with `antseed gateway console-link --recover`.');
|
|
85
|
+
}
|
|
86
|
+
const enrollment = createEnrollment(member.id);
|
|
87
|
+
auditRecovery(ip, { kind: 'member', id: member.id, label: member.label }, 'auth.recovery_claim');
|
|
88
|
+
deps.log(`Console: recovery link used for member ${member.id}; they are adding a sign-in method.`);
|
|
89
|
+
const result = { enrollment, label: member.label, orgRole: member.orgRole };
|
|
90
|
+
return result;
|
|
91
|
+
}, { public: true });
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=console-recovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console-recovery.js","sourceRoot":"","sources":["../../src/gateway/console-recovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console-recovery.test.d.ts","sourceRoot":"","sources":["../../src/gateway/console-recovery.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import assert from 'node:assert/strict';
|
|
2
|
+
import { test } from 'node:test';
|
|
3
|
+
import { AuthDb } from './auth/db.js';
|
|
4
|
+
import { recoveryTarget } from '../cli/commands/gateway/console-link.js';
|
|
5
|
+
import { FakeConsoleAuth, addActiveMember, call, startConsole, tempDataDir, testDeps } from './console-api/test-support.js';
|
|
6
|
+
import { consumeRecoveryToken, createRecoveryLink, RECOVERY_TTL_MS, recoveryRouteRegistrar } from './console-recovery.js';
|
|
7
|
+
const LOCATION = { publicUrl: 'https://llm.example.com', port: 8379 };
|
|
8
|
+
async function harness() {
|
|
9
|
+
const { dir, store, cleanup } = tempDataDir();
|
|
10
|
+
let now = Date.now();
|
|
11
|
+
const deps = testDeps(store, dir, { now: () => now });
|
|
12
|
+
const enrollments = new AuthDb(store.database, () => now);
|
|
13
|
+
const server = await startConsole(deps, new FakeConsoleAuth(), [recoveryRouteRegistrar((memberId) => enrollments.createEnrollment(memberId))]);
|
|
14
|
+
const recover = (token) => call(server.port, 'POST', '/console/api/auth/recover', { body: { token } });
|
|
15
|
+
return {
|
|
16
|
+
store,
|
|
17
|
+
recover,
|
|
18
|
+
advance: (ms) => { now += ms; },
|
|
19
|
+
now: () => now,
|
|
20
|
+
close: async () => { await server.close(); cleanup(); },
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
const tokenOf = (url) => url.slice(url.indexOf('#') + 1);
|
|
24
|
+
test('a recovery link is single use and hands out an enrollment for that member', async () => {
|
|
25
|
+
const h = await harness();
|
|
26
|
+
try {
|
|
27
|
+
const owner = h.store.createOwner({ label: 'Owner', email: 'owner@example.test' });
|
|
28
|
+
const link = createRecoveryLink(h.store, LOCATION, owner.id, h.now);
|
|
29
|
+
assert.match(link.url, /^https:\/\/llm\.example\.com\/console\/recover#[A-Za-z0-9_-]{20,}$/);
|
|
30
|
+
assert.equal(link.expiresAt, h.now() + RECOVERY_TTL_MS);
|
|
31
|
+
const stored = h.store.database.prepare('SELECT token_hash FROM console_recovery_tokens').all();
|
|
32
|
+
assert.equal(stored.length, 1);
|
|
33
|
+
assert.notEqual(stored[0].token_hash, tokenOf(link.url), 'only the hash is stored');
|
|
34
|
+
const first = await h.recover(tokenOf(link.url));
|
|
35
|
+
assert.equal(first.status, 200, JSON.stringify(first.body));
|
|
36
|
+
const enrollment = first.body;
|
|
37
|
+
assert.equal(enrollment.label, 'Owner');
|
|
38
|
+
assert.equal(enrollment.orgRole, 'owner');
|
|
39
|
+
assert.equal(new AuthDb(h.store.database, h.now).peekEnrollment(enrollment.enrollment), owner.id);
|
|
40
|
+
const again = await h.recover(tokenOf(link.url));
|
|
41
|
+
assert.equal(again.status, 400);
|
|
42
|
+
assert.equal(again.body.error.code, 'invalid_token');
|
|
43
|
+
const actions = h.store.listAudit({}).entries.map((row) => row.action);
|
|
44
|
+
assert.ok(actions.includes('auth.recovery_link_create'));
|
|
45
|
+
assert.ok(actions.includes('auth.recovery_claim'));
|
|
46
|
+
assert.ok(actions.includes('auth.sign_in_failed'));
|
|
47
|
+
assert.ok(!JSON.stringify(h.store.listAudit({}).entries).includes(tokenOf(link.url)), 'the token never reaches the audit log');
|
|
48
|
+
}
|
|
49
|
+
finally {
|
|
50
|
+
await h.close();
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
test('recovery links expire after an hour, and a new one replaces the unused old one', async () => {
|
|
54
|
+
const h = await harness();
|
|
55
|
+
try {
|
|
56
|
+
const owner = h.store.createOwner({ label: 'Owner', email: null });
|
|
57
|
+
const expired = createRecoveryLink(h.store, LOCATION, owner.id, h.now);
|
|
58
|
+
h.advance(RECOVERY_TTL_MS + 1);
|
|
59
|
+
assert.equal((await h.recover(tokenOf(expired.url))).status, 400);
|
|
60
|
+
const older = createRecoveryLink(h.store, LOCATION, owner.id, h.now);
|
|
61
|
+
const newer = createRecoveryLink(h.store, LOCATION, owner.id, h.now);
|
|
62
|
+
assert.equal(consumeRecoveryToken(h.store.database, tokenOf(older.url), h.now()), null);
|
|
63
|
+
assert.equal((await h.recover(tokenOf(newer.url))).status, 200);
|
|
64
|
+
}
|
|
65
|
+
finally {
|
|
66
|
+
await h.close();
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
test('recovery refuses disabled members, malformed tokens and floods', async () => {
|
|
70
|
+
const h = await harness();
|
|
71
|
+
try {
|
|
72
|
+
h.store.createOwner({ label: 'Owner', email: null });
|
|
73
|
+
const member = addActiveMember(h.store, 'Sam', { email: 'sam@example.test' });
|
|
74
|
+
const link = createRecoveryLink(h.store, LOCATION, member.id, h.now);
|
|
75
|
+
h.store.setMemberStatus(member.id, 'disabled');
|
|
76
|
+
assert.equal((await h.recover(tokenOf(link.url))).status, 400);
|
|
77
|
+
assert.throws(() => createRecoveryLink(h.store, LOCATION, member.id, h.now), /not an active member/);
|
|
78
|
+
assert.equal((await h.recover(42)).status, 400);
|
|
79
|
+
assert.equal((await h.recover('x'.repeat(500))).status, 400);
|
|
80
|
+
let limited = false;
|
|
81
|
+
for (let index = 0; index < 12; index += 1)
|
|
82
|
+
if ((await h.recover('nope')).status === 429)
|
|
83
|
+
limited = true;
|
|
84
|
+
assert.ok(limited, 'repeated attempts are rate limited');
|
|
85
|
+
}
|
|
86
|
+
finally {
|
|
87
|
+
await h.close();
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
test('console-link --recover targets the only owner, or --member by id or email', () => {
|
|
91
|
+
const { store, cleanup } = tempDataDir();
|
|
92
|
+
try {
|
|
93
|
+
const owner = store.createOwner({ label: 'Owner', email: 'owner@example.test' });
|
|
94
|
+
const sam = addActiveMember(store, 'Sam', { email: 'sam@example.test' });
|
|
95
|
+
assert.equal(recoveryTarget(store, undefined).id, owner.id);
|
|
96
|
+
assert.equal(recoveryTarget(store, 'SAM@example.test').id, sam.id);
|
|
97
|
+
assert.equal(recoveryTarget(store, sam.id).id, sam.id);
|
|
98
|
+
assert.throws(() => recoveryTarget(store, 'nobody@example.test'), /No active member/);
|
|
99
|
+
addActiveMember(store, 'Second owner', { orgRole: 'owner', email: 'second@example.test' });
|
|
100
|
+
assert.throws(() => recoveryTarget(store, undefined), /2 owners/);
|
|
101
|
+
}
|
|
102
|
+
finally {
|
|
103
|
+
cleanup();
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
//# sourceMappingURL=console-recovery.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console-recovery.test.js","sourceRoot":"","sources":["../../src/gateway/console-recovery.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { GatewayConsoleContext, GatewayConsoleHandle } from './runtime.js';
|
|
2
|
+
export { CONSOLE_LOCATION_SETTING, consoleBaseUrl, normalizePublicUrl, readConsoleLocation, type ConsoleLocation } from './console-location.js';
|
|
3
|
+
export interface GatewayConsoleOptions {
|
|
4
|
+
dataDir: string;
|
|
5
|
+
configPath: string;
|
|
6
|
+
/** Origin the console is reached at (`--public-url`, a tunnel URL); null for localhost only. */
|
|
7
|
+
publicUrl: string | null;
|
|
8
|
+
log: (message: string) => void;
|
|
9
|
+
/** Environment read for ANTSEED_OIDC_* and ANTSEED_CF_ACCESS_*; defaults to process.env. */
|
|
10
|
+
env?: Record<string, string | undefined>;
|
|
11
|
+
/** Built console web app; defaults to the @antseed/gateway-console package's dist. */
|
|
12
|
+
distDir?: string;
|
|
13
|
+
/** Published through the gateway's own Cloudflare tunnel; see ConsoleDeps.trustCloudflareHeaders. */
|
|
14
|
+
trustCloudflareHeaders?: boolean;
|
|
15
|
+
}
|
|
16
|
+
/** The `createConsole` hook `startGatewayRuntime` takes: console API, auth and web app. */
|
|
17
|
+
export declare function gatewayConsole(options: GatewayConsoleOptions): (context: GatewayConsoleContext) => GatewayConsoleHandle;
|
|
18
|
+
//# sourceMappingURL=console.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../src/gateway/console.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAI/E,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAwC/I,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,gGAAgG;IAChG,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,4FAA4F;IAC5F,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IACxC,sFAAsF;IACtF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,qGAAqG;IACrG,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC;AAED,2FAA2F;AAC3F,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,CAAC,OAAO,EAAE,qBAAqB,KAAK,oBAAoB,CA+CvH"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import pkg from '../../package.json' with { type: 'json' };
|
|
2
|
+
import { createConsoleAuth } from './auth/index.js';
|
|
3
|
+
import { activeMember, requestActor, requireOrgAdmin } from './console-api/access.js';
|
|
4
|
+
import { coreConsoleRegistrars } from './console-api/handlers/index.js';
|
|
5
|
+
import { registerNetworkRoutes } from './console-api/handlers/network.js';
|
|
6
|
+
import { registerWalletRoutes } from './console-api/handlers/wallet.js';
|
|
7
|
+
import { ConsoleError, respond } from './console-api/router.js';
|
|
8
|
+
import { apiKeyDto, memberDto } from './console-api/serialize.js';
|
|
9
|
+
import { createConsoleApi } from './console-api/server.js';
|
|
10
|
+
import { recoveryRouteRegistrar } from './console-recovery.js';
|
|
11
|
+
import { chatRouteRegistrar } from './chat/routes.js';
|
|
12
|
+
import { removeCredential, requireMemberRecord } from './services/members.js';
|
|
13
|
+
import { CONSOLE_LOCATION_SETTING } from './console-location.js';
|
|
14
|
+
export { CONSOLE_LOCATION_SETTING, consoleBaseUrl, normalizePublicUrl, readConsoleLocation } from './console-location.js';
|
|
15
|
+
/**
|
|
16
|
+
* `DELETE /members/:id/credentials/:credentialId`: org admins manage
|
|
17
|
+
* anyone's sign-in methods (an owner's only another owner), and a member
|
|
18
|
+
* their own (after a fresh sign-in). A member's last one stays, which would
|
|
19
|
+
* lock them out, unless an org owner removes it from another member. Every removal is audited and
|
|
20
|
+
* ends the member's other sessions (all of them when someone else removed it).
|
|
21
|
+
*/
|
|
22
|
+
function registerCredentialRoutes(auth) {
|
|
23
|
+
return (router, deps) => {
|
|
24
|
+
router.add('DELETE', '/members/:id/credentials/:credentialId', async (request) => {
|
|
25
|
+
const { principal, params } = request;
|
|
26
|
+
const member = requireMemberRecord(deps, params['id']);
|
|
27
|
+
const self = principal?.kind === 'member' && principal.memberId === member.id;
|
|
28
|
+
let callerIsOwner = false;
|
|
29
|
+
if (self) {
|
|
30
|
+
activeMember(deps.store, principal);
|
|
31
|
+
// Like adding one: a stolen session must not strip the member's other sign-in methods.
|
|
32
|
+
await auth.requireFreshSignIn(request, principal);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
requireOrgAdmin(principal, deps.store);
|
|
36
|
+
callerIsOwner = activeMember(deps.store, principal)?.orgRole === 'owner';
|
|
37
|
+
if (member.orgRole === 'owner' && !callerIsOwner) {
|
|
38
|
+
throw new ConsoleError(403, 'forbidden', 'Only an owner can change an owner\'s sign-in methods');
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
removeCredential(deps, requestActor(deps, request), auth, {
|
|
42
|
+
memberId: member.id,
|
|
43
|
+
credentialId: params['credentialId'],
|
|
44
|
+
// A member's last one would lock them out: only an org owner removing another member's may.
|
|
45
|
+
allowLast: !self && callerIsOwner,
|
|
46
|
+
selfRemoval: self,
|
|
47
|
+
keepSessionId: self && principal?.kind === 'member' ? principal.sessionId : null,
|
|
48
|
+
});
|
|
49
|
+
return respond(204);
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/** The `createConsole` hook `startGatewayRuntime` takes: console API, auth and web app. */
|
|
54
|
+
export function gatewayConsole(options) {
|
|
55
|
+
return (context) => {
|
|
56
|
+
const { store } = context;
|
|
57
|
+
const base = {
|
|
58
|
+
store,
|
|
59
|
+
dataDir: options.dataDir,
|
|
60
|
+
configPath: options.configPath,
|
|
61
|
+
buyerPort: context.buyerPort,
|
|
62
|
+
controlSecret: context.controlSecret,
|
|
63
|
+
publicUrl: options.publicUrl,
|
|
64
|
+
version: pkg.version,
|
|
65
|
+
now: () => Date.now(),
|
|
66
|
+
log: options.log,
|
|
67
|
+
spendFeedState: context.spendFeedState,
|
|
68
|
+
x402Enabled: context.x402Enabled,
|
|
69
|
+
trustCloudflareHeaders: options.trustCloudflareHeaders === true,
|
|
70
|
+
};
|
|
71
|
+
const deps = { ...base, listenHost: context.listenHost };
|
|
72
|
+
const auth = createConsoleAuth(base, {
|
|
73
|
+
...(options.env ? { env: options.env } : {}),
|
|
74
|
+
presentMember: (member, credentials) => memberDto({ ...deps, memberCredentials: () => credentials }, member),
|
|
75
|
+
presentKey: (key) => apiKeyDto(store, key),
|
|
76
|
+
});
|
|
77
|
+
deps.memberCredentials = (memberId) => auth.credentialsFor(memberId);
|
|
78
|
+
let gatewayPort = 0;
|
|
79
|
+
deps.authConfig = () => auth.authConfig();
|
|
80
|
+
const api = createConsoleApi(deps, auth, [
|
|
81
|
+
...coreConsoleRegistrars,
|
|
82
|
+
registerWalletRoutes,
|
|
83
|
+
registerNetworkRoutes,
|
|
84
|
+
registerCredentialRoutes(auth),
|
|
85
|
+
recoveryRouteRegistrar((memberId) => auth.createEnrollment(memberId)),
|
|
86
|
+
chatRouteRegistrar({ gatewayPort: () => gatewayPort, braveApiKey: (options.env ?? process.env)['ANTSEED_BRAVE_API_KEY']?.trim() || null }),
|
|
87
|
+
], options.distDir ? { distDir: options.distDir } : {});
|
|
88
|
+
return {
|
|
89
|
+
handle: (req, res) => api.handle(req, res),
|
|
90
|
+
listening(port) {
|
|
91
|
+
gatewayPort = port;
|
|
92
|
+
auth.setGatewayPort(port);
|
|
93
|
+
store.setSetting(CONSOLE_LOCATION_SETTING, { publicUrl: options.publicUrl, port, host: context.listenHost });
|
|
94
|
+
},
|
|
95
|
+
setupLink() {
|
|
96
|
+
return auth.authConfig().setupRequired ? auth.createSetupLink() : null;
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=console.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/gateway/console.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console.test.d.ts","sourceRoot":"","sources":["../../src/gateway/console.test.ts"],"names":[],"mappings":""}
|