@toa.io/extensions.exposition 1.0.0-alpha.292 → 1.0.0-alpha.293
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/components/identity.basic/package.json +8 -0
- package/components/identity.federation/package.json +8 -0
- package/components/identity.passkeys/package.json +8 -0
- package/components/identity.tokens/package.json +10 -0
- package/package.json +24 -13
- package/transpiled/Endpoint.js +3 -0
- package/transpiled/Endpoint.js.map +1 -1
- package/transpiled/Introspection.d.ts +6 -0
- package/transpiled/Introspection.js +1 -0
- package/transpiled/Introspection.js.map +1 -1
- package/transpiled/MCP/schema.js +2 -2
- package/transpiled/Query.d.ts +2 -12
- package/transpiled/Query.js +2 -12
- package/transpiled/Query.js.map +1 -1
- package/transpiled/RTD/Endpoint.d.ts +2 -3
- package/ui/dist/_app/immutable/assets/0.Cu0AnR_8.css +2 -0
- package/ui/dist/_app/immutable/assets/2.BghF56l_.css +1 -0
- package/ui/dist/_app/immutable/assets/ui.C8aD6zzF.css +1 -0
- package/ui/dist/_app/immutable/chunks/B8GvXrmq.js +1 -0
- package/ui/dist/_app/immutable/chunks/BVDJTrf4.js +3 -0
- package/ui/dist/_app/immutable/chunks/D6q28_Ok.js +86 -0
- package/ui/dist/_app/immutable/chunks/{aLpTDmOc.js → DVlaUfVU.js} +1 -1
- package/ui/dist/_app/immutable/chunks/DpB73ZB6.js +6 -0
- package/ui/dist/_app/immutable/entry/app.CTava8yn.js +2 -0
- package/ui/dist/_app/immutable/entry/start.yWN0gSLA.js +1 -0
- package/ui/dist/_app/immutable/nodes/0.HKRDBYrC.js +1 -0
- package/ui/dist/_app/immutable/nodes/1.CLa0ydOi.js +1 -0
- package/ui/dist/_app/immutable/nodes/2.C9Kaym8C.js +8 -0
- package/ui/dist/_app/immutable/nodes/3.C1X4_rXZ.js +1 -0
- package/ui/dist/_app/immutable/nodes/4.DdzDIi9E.js +1 -0
- package/ui/dist/_app/immutable/nodes/5.DpbmCMdw.js +1 -0
- package/ui/dist/_app/version.json +1 -1
- package/ui/dist/index.html +12 -12
- package/CHANGELOG.md +0 -42
- package/components/identity.bans/tsconfig.tsbuildinfo +0 -1
- package/components/identity.basic/source/lib/credentials.test.ts +0 -18
- package/components/identity.basic/tsconfig.tsbuildinfo +0 -1
- package/components/identity.clients/source/lib/canonical.test.ts +0 -43
- package/components/identity.clients/source/lib/cimd.test.ts +0 -122
- package/components/identity.clients/source/lib/redirect.test.ts +0 -47
- package/components/identity.clients/tsconfig.tsbuildinfo +0 -1
- package/components/identity.credentials/source/list.test.ts +0 -70
- package/components/identity.credentials/tsconfig.tsbuildinfo +0 -1
- package/components/identity.federation/source/lib/discovery.test.ts +0 -60
- package/components/identity.federation/source/list.test.ts +0 -41
- package/components/identity.federation/tsconfig.tsbuildinfo +0 -1
- package/components/identity.grants/tsconfig.tsbuildinfo +0 -1
- package/components/identity.keys/tsconfig.tsbuildinfo +0 -1
- package/components/identity.otp/tsconfig.tsbuildinfo +0 -1
- package/components/identity.passkeys/source/errors.test.ts +0 -34
- package/components/identity.passkeys/source/webauthn.test.ts +0 -26
- package/components/identity.passkeys/tsconfig.tsbuildinfo +0 -1
- package/components/identity.roles/tsconfig.tsbuildinfo +0 -1
- package/components/identity.tokens/source/authenticate.test.ts +0 -112
- package/components/identity.tokens/source/decrypt.test.ts +0 -216
- package/components/identity.tokens/source/encrypt.test.ts +0 -150
- package/components/identity.tokens/source/issue.test.ts +0 -73
- package/components/identity.tokens/source/lib/form.test.ts +0 -25
- package/components/identity.tokens/source/lib/paseto.test.ts +0 -62
- package/components/identity.tokens/tsconfig.tsbuildinfo +0 -1
- package/context.toa.yaml +0 -31
- package/cucumber.mjs +0 -7
- package/documentation/.assets/ia3-dark.jpg +0 -0
- package/documentation/.assets/ia3-light.jpg +0 -0
- package/documentation/.assets/overview-dark.jpg +0 -0
- package/documentation/.assets/overview-light.jpg +0 -0
- package/documentation/.assets/role-scopes-dark.jpg +0 -0
- package/documentation/.assets/role-scopes-light.jpg +0 -0
- package/documentation/.assets/rtd-dark.jpg +0 -0
- package/documentation/.assets/rtd-light.jpg +0 -0
- package/documentation/access.md +0 -350
- package/documentation/authorities.md +0 -51
- package/documentation/cache.md +0 -72
- package/documentation/components.md +0 -472
- package/documentation/consent.md +0 -101
- package/documentation/credentials.md +0 -88
- package/documentation/dev.md +0 -30
- package/documentation/discovery.md +0 -81
- package/documentation/flow.md +0 -44
- package/documentation/help.md +0 -122
- package/documentation/identity.md +0 -304
- package/documentation/introspection.md +0 -123
- package/documentation/io.md +0 -167
- package/documentation/ip.md +0 -24
- package/documentation/map.md +0 -123
- package/documentation/mcp.md +0 -183
- package/documentation/notes/desync.jpg +0 -0
- package/documentation/notes/peers.md +0 -59
- package/documentation/notes/sse.md +0 -71
- package/documentation/notes/throttling.md +0 -122
- package/documentation/oauth.md +0 -180
- package/documentation/octets.md +0 -334
- package/documentation/passkeys.md +0 -11
- package/documentation/protocol.md +0 -120
- package/documentation/query.md +0 -324
- package/documentation/require.md +0 -15
- package/documentation/rpc.md +0 -154
- package/documentation/tracing.md +0 -70
- package/documentation/tree.md +0 -199
- package/features/access.feature +0 -596
- package/features/annotation.feature +0 -32
- package/features/auth.assert.feature +0 -55
- package/features/auth.bearer.feature +0 -120
- package/features/auth.claims.feature +0 -171
- package/features/auth.incept.feature +0 -166
- package/features/auth.input.feature +0 -59
- package/features/authorities.basic.feature +0 -141
- package/features/authorities.feature +0 -71
- package/features/authorities.federation.feature +0 -100
- package/features/authorities.tokens.feature +0 -117
- package/features/body.feature +0 -76
- package/features/cache.feature +0 -368
- package/features/configuration.feature +0 -206
- package/features/cors.feature +0 -127
- package/features/credentials.feature +0 -106
- package/features/debug.feature +0 -34
- package/features/dev.feature +0 -90
- package/features/directives.feature +0 -61
- package/features/discovery.feature +0 -213
- package/features/discovery.ui.feature +0 -213
- package/features/dynamic.feature +0 -192
- package/features/errors.feature +0 -258
- package/features/etag.feature +0 -239
- package/features/flow.feature +0 -148
- package/features/help.feature +0 -512
- package/features/identity.bans.feature +0 -200
- package/features/identity.basic.feature +0 -666
- package/features/identity.feature +0 -240
- package/features/identity.federation.feature +0 -396
- package/features/identity.otp.feature +0 -142
- package/features/identity.roles.feature +0 -568
- package/features/identity.tokens.custom.feature +0 -430
- package/features/identity.tokens.feature +0 -131
- package/features/interruptions.feature +0 -20
- package/features/introspection.feature +0 -565
- package/features/introspection.map.feature +0 -108
- package/features/io.feature +0 -204
- package/features/io.throttle.feature +0 -166
- package/features/map.feature +0 -360
- package/features/mcp.feature +0 -753
- package/features/methods.feature +0 -48
- package/features/oauth.clients.feature +0 -195
- package/features/oauth.discovery.feature +0 -164
- package/features/oauth.grants.feature +0 -301
- package/features/octets.cloudinary.feature +0 -233
- package/features/octets.download.feature +0 -194
- package/features/octets.entries.feature +0 -83
- package/features/octets.feature +0 -306
- package/features/octets.head.feature +0 -40
- package/features/octets.location.feature +0 -83
- package/features/octets.meta.feature +0 -117
- package/features/octets.workflows.feature +0 -565
- package/features/passkeys.feature +0 -66
- package/features/probes.feature +0 -18
- package/features/query.feature +0 -389
- package/features/realtime.feature +0 -34
- package/features/require.feature +0 -66
- package/features/response.feature +0 -103
- package/features/routes.feature +0 -224
- package/features/rpc.feature +0 -429
- package/features/server.feature +0 -21
- package/features/site/_app/immutable/asset.js +0 -1
- package/features/site/favicon.ico +0 -0
- package/features/site/index.html +0 -10
- package/features/steps/.env.example +0 -5
- package/features/steps/Captures.ts +0 -20
- package/features/steps/Cloudinary.ts +0 -12
- package/features/steps/Common.ts +0 -38
- package/features/steps/Components.ts +0 -115
- package/features/steps/Database.ts +0 -106
- package/features/steps/Gateway.ts +0 -239
- package/features/steps/HTTP.ts +0 -96
- package/features/steps/IDP.ts +0 -361
- package/features/steps/Identity.ts +0 -54
- package/features/steps/OTP.ts +0 -42
- package/features/steps/Parameters.ts +0 -162
- package/features/steps/Probe.ts +0 -38
- package/features/steps/Realtime.ts +0 -175
- package/features/steps/Workspace.ts +0 -48
- package/features/steps/components/audit/manifest.toa.yaml +0 -20
- package/features/steps/components/audit/operations/record.js +0 -5
- package/features/steps/components/echo/manifest.toa.yaml +0 -59
- package/features/steps/components/echo/operations/affect.js +0 -3
- package/features/steps/components/echo/operations/compute.js +0 -3
- package/features/steps/components/echo/operations/echo.js +0 -3
- package/features/steps/components/echo/operations/error.js +0 -7
- package/features/steps/components/echo/operations/identity.js +0 -3
- package/features/steps/components/echo/operations/parameters.js +0 -3
- package/features/steps/components/echo/operations/ping.js +0 -3
- package/features/steps/components/echo/operations/unwrap.js +0 -3
- package/features/steps/components/echo.beacon/manifest.toa.yaml +0 -2
- package/features/steps/components/echo.beacon/operations/hello.js +0 -3
- package/features/steps/components/greeter/manifest.toa.yaml +0 -5
- package/features/steps/components/greeter/operations/greet.js +0 -3
- package/features/steps/components/notify/manifest.toa.yaml +0 -20
- package/features/steps/components/notify/operations/send.js +0 -5
- package/features/steps/components/octets.tester/manifest.toa.yaml +0 -73
- package/features/steps/components/octets.tester/operations/authority.js +0 -3
- package/features/steps/components/octets.tester/operations/bar.js +0 -9
- package/features/steps/components/octets.tester/operations/baz.js +0 -9
- package/features/steps/components/octets.tester/operations/concat.js +0 -5
- package/features/steps/components/octets.tester/operations/echo.js +0 -5
- package/features/steps/components/octets.tester/operations/err.js +0 -14
- package/features/steps/components/octets.tester/operations/foo.js +0 -5
- package/features/steps/components/octets.tester/operations/id.js +0 -5
- package/features/steps/components/octets.tester/operations/identity.js +0 -5
- package/features/steps/components/octets.tester/operations/lenna.png +0 -0
- package/features/steps/components/octets.tester/operations/redirect.js +0 -17
- package/features/steps/components/octets.tester/operations/yex.js +0 -14
- package/features/steps/components/octets.tester/operations/yield.js +0 -11
- package/features/steps/components/orders/manifest.toa.yaml +0 -30
- package/features/steps/components/orders/operations/create.js +0 -7
- package/features/steps/components/pots/manifest.toa.yaml +0 -91
- package/features/steps/components/pots/migrations/0002-indexes.yaml +0 -4
- package/features/steps/components/pricing/manifest.toa.yaml +0 -13
- package/features/steps/components/pricing/operations/quote.js +0 -3
- package/features/steps/components/sequences/manifest.toa.yaml +0 -11
- package/features/steps/components/sequences/operations/numbers.js +0 -5
- package/features/steps/components/sequences/operations/tokens.js +0 -14
- package/features/steps/components/users/manifest.toa.yaml +0 -30
- package/features/steps/components/users/operations/create.js +0 -11
- package/features/steps/components/users.properties/manifest.toa.yaml +0 -22
- package/features/steps/map.ts +0 -30
- package/features/steps/tsconfig.json +0 -9
- package/features/streams.feature +0 -35
- package/features/timestamps.feature +0 -41
- package/features/timing.feature +0 -49
- package/features/tracing.feature +0 -123
- package/source/Branch.test.ts +0 -40
- package/source/Branch.ts +0 -44
- package/source/Composition.ts +0 -51
- package/source/Context.ts +0 -11
- package/source/Directive.test.ts +0 -199
- package/source/Directive.ts +0 -248
- package/source/Discovery/Explorer.ts +0 -34
- package/source/Discovery/Site.test.ts +0 -147
- package/source/Discovery/Site.ts +0 -202
- package/source/Discovery/index.ts +0 -3
- package/source/Discovery/tree.test.ts +0 -175
- package/source/Discovery/tree.ts +0 -77
- package/source/Discovery/trunk.ts +0 -33
- package/source/Endpoint.test.ts +0 -67
- package/source/Endpoint.ts +0 -157
- package/source/Factory.ts +0 -42
- package/source/Gateway.ts +0 -390
- package/source/HTTP/Context.ts +0 -143
- package/source/HTTP/Probe.ts +0 -99
- package/source/HTTP/Server.ts +0 -435
- package/source/HTTP/Timing.ts +0 -14
- package/source/HTTP/address.test.ts +0 -28
- package/source/HTTP/address.ts +0 -16
- package/source/HTTP/exceptions.ts +0 -99
- package/source/HTTP/formats/form.ts +0 -21
- package/source/HTTP/formats/index.ts +0 -36
- package/source/HTTP/formats/json.ts +0 -14
- package/source/HTTP/formats/msgpack.ts +0 -14
- package/source/HTTP/formats/text.ts +0 -10
- package/source/HTTP/formats/yaml.test.ts +0 -22
- package/source/HTTP/formats/yaml.ts +0 -40
- package/source/HTTP/index.ts +0 -6
- package/source/HTTP/messages.test.ts +0 -196
- package/source/HTTP/messages.ts +0 -186
- package/source/HTTP/types.ts +0 -39
- package/source/Interception.ts +0 -37
- package/source/Introspection.ts +0 -179
- package/source/MCP/Server.ts +0 -335
- package/source/MCP/discover.ts +0 -51
- package/source/MCP/errors.ts +0 -80
- package/source/MCP/index.ts +0 -1
- package/source/MCP/schema.test.ts +0 -91
- package/source/MCP/schema.ts +0 -94
- package/source/MCP/tools.ts +0 -144
- package/source/MCP/types.ts +0 -84
- package/source/Mapping.ts +0 -101
- package/source/Query.test.ts +0 -54
- package/source/Query.ts +0 -277
- package/source/RPC/Context.ts +0 -75
- package/source/RPC/Dispatcher.ts +0 -150
- package/source/RPC/errors.test.ts +0 -77
- package/source/RPC/errors.ts +0 -82
- package/source/RPC/index.ts +0 -1
- package/source/RPC/names.test.ts +0 -141
- package/source/RPC/names.ts +0 -176
- package/source/RPC/types.ts +0 -34
- package/source/RTD/Context.ts +0 -16
- package/source/RTD/Directives.ts +0 -126
- package/source/RTD/Endpoint.ts +0 -27
- package/source/RTD/Match.ts +0 -11
- package/source/RTD/Method.ts +0 -39
- package/source/RTD/Node.ts +0 -169
- package/source/RTD/Route.ts +0 -93
- package/source/RTD/Tree.ts +0 -137
- package/source/RTD/expiration.test.ts +0 -81
- package/source/RTD/factory.ts +0 -105
- package/source/RTD/index.ts +0 -8
- package/source/RTD/segment.test.ts +0 -35
- package/source/RTD/segment.ts +0 -51
- package/source/RTD/syntax/index.ts +0 -1
- package/source/RTD/walk.test.ts +0 -147
- package/source/Remotes.test.ts +0 -79
- package/source/Remotes.ts +0 -39
- package/source/Tenant.ts +0 -73
- package/source/directives/auth/Anonymous.test.ts +0 -70
- package/source/directives/auth/Anonymous.ts +0 -36
- package/source/directives/auth/Anyone.ts +0 -23
- package/source/directives/auth/Assert.ts +0 -43
- package/source/directives/auth/Authorization.test.ts +0 -24
- package/source/directives/auth/Authorization.ts +0 -388
- package/source/directives/auth/Delegate.test.ts +0 -36
- package/source/directives/auth/Delegate.ts +0 -54
- package/source/directives/auth/Echo.ts +0 -24
- package/source/directives/auth/Federation.ts +0 -104
- package/source/directives/auth/Id.ts +0 -37
- package/source/directives/auth/Incept.ts +0 -117
- package/source/directives/auth/Input.ts +0 -92
- package/source/directives/auth/Role.test.ts +0 -147
- package/source/directives/auth/Role.ts +0 -99
- package/source/directives/auth/Rule.ts +0 -59
- package/source/directives/auth/Scheme.ts +0 -31
- package/source/directives/auth/create.ts +0 -11
- package/source/directives/auth/index.ts +0 -3
- package/source/directives/auth/schemes.test.ts +0 -18
- package/source/directives/auth/schemes.ts +0 -39
- package/source/directives/auth/split.ts +0 -14
- package/source/directives/auth/types.ts +0 -75
- package/source/directives/cache/Cache.ts +0 -92
- package/source/directives/cache/Control.ts +0 -81
- package/source/directives/cache/Exact.ts +0 -7
- package/source/directives/cache/etag.ts +0 -38
- package/source/directives/cache/index.ts +0 -3
- package/source/directives/cache/types.ts +0 -9
- package/source/directives/cors/CORS.test.ts +0 -75
- package/source/directives/cors/CORS.ts +0 -88
- package/source/directives/cors/index.ts +0 -3
- package/source/directives/dev/Development.ts +0 -41
- package/source/directives/dev/Faulty.ts +0 -31
- package/source/directives/dev/Sleep.ts +0 -53
- package/source/directives/dev/Stub.ts +0 -14
- package/source/directives/dev/Throw.ts +0 -14
- package/source/directives/dev/index.ts +0 -3
- package/source/directives/dev/types.ts +0 -5
- package/source/directives/flow/Compose.ts +0 -98
- package/source/directives/flow/Fetch.ts +0 -86
- package/source/directives/flow/Flow.ts +0 -43
- package/source/directives/flow/index.ts +0 -3
- package/source/directives/flow/types.ts +0 -7
- package/source/directives/help/Family.ts +0 -122
- package/source/directives/help/Help.test.ts +0 -227
- package/source/directives/help/Help.ts +0 -47
- package/source/directives/help/Parameters.ts +0 -47
- package/source/directives/help/described.ts +0 -57
- package/source/directives/help/index.ts +0 -45
- package/source/directives/index.ts +0 -33
- package/source/directives/io/Directive.ts +0 -17
- package/source/directives/io/IO.ts +0 -118
- package/source/directives/io/Input.ts +0 -55
- package/source/directives/io/Message.ts +0 -1
- package/source/directives/io/Output.ts +0 -81
- package/source/directives/io/Status.test.ts +0 -88
- package/source/directives/io/Status.ts +0 -47
- package/source/directives/io/Throttle.ts +0 -30
- package/source/directives/io/index.ts +0 -3
- package/source/directives/io/lib/throttle/Configuration.test.ts +0 -72
- package/source/directives/io/lib/throttle/Configuration.ts +0 -68
- package/source/directives/io/lib/throttle/Keys.ts +0 -53
- package/source/directives/io/lib/throttle/Quotas.test.ts +0 -411
- package/source/directives/io/lib/throttle/Quotas.ts +0 -190
- package/source/directives/io/lib/throttle/Sync.test.ts +0 -163
- package/source/directives/io/lib/throttle/Sync.ts +0 -93
- package/source/directives/io/lib/throttle/Warning.test.ts +0 -32
- package/source/directives/io/lib/throttle/Warning.ts +0 -29
- package/source/directives/io/lib/throttle/components/Component.ts +0 -7
- package/source/directives/io/lib/throttle/components/IP.ts +0 -30
- package/source/directives/io/lib/throttle/components/Identity.ts +0 -19
- package/source/directives/io/lib/throttle/components/Path.ts +0 -8
- package/source/directives/io/lib/throttle/components/Route.ts +0 -19
- package/source/directives/io/lib/throttle/components/Segment.ts +0 -19
- package/source/directives/io/lib/throttle/components/index.ts +0 -19
- package/source/directives/io/lib/throttle/conditions/Condition.ts +0 -5
- package/source/directives/io/lib/throttle/conditions/Status.ts +0 -17
- package/source/directives/io/lib/throttle/conditions/index.ts +0 -11
- package/source/directives/io/lib/throttle/index.ts +0 -4
- package/source/directives/io/schemas.test.ts +0 -40
- package/source/directives/io/schemas.ts +0 -16
- package/source/directives/map/Authority.ts +0 -15
- package/source/directives/map/Buffer.ts +0 -15
- package/source/directives/map/Claims.ts +0 -63
- package/source/directives/map/Directive.ts +0 -4
- package/source/directives/map/Headers.ts +0 -60
- package/source/directives/map/Language.ts +0 -45
- package/source/directives/map/Languages.ts +0 -17
- package/source/directives/map/Map.ts +0 -85
- package/source/directives/map/Mapping.ts +0 -45
- package/source/directives/map/Properties.ts +0 -15
- package/source/directives/map/Segments.ts +0 -52
- package/source/directives/map/index.ts +0 -3
- package/source/directives/mcp/MCP.ts +0 -33
- package/source/directives/mcp/Tool.test.ts +0 -56
- package/source/directives/mcp/Tool.ts +0 -32
- package/source/directives/mcp/index.ts +0 -6
- package/source/directives/oauth/Discovery.ts +0 -66
- package/source/directives/oauth/documents.ts +0 -110
- package/source/directives/oauth/index.ts +0 -3
- package/source/directives/octets/Context.ts +0 -23
- package/source/directives/octets/Delete.ts +0 -96
- package/source/directives/octets/Directive.ts +0 -21
- package/source/directives/octets/Get.ts +0 -88
- package/source/directives/octets/Octets.ts +0 -82
- package/source/directives/octets/Put.ts +0 -186
- package/source/directives/octets/Workflow.ts +0 -60
- package/source/directives/octets/bytes.test.ts +0 -33
- package/source/directives/octets/bytes.ts +0 -18
- package/source/directives/octets/index.ts +0 -3
- package/source/directives/octets/schemas.test.ts +0 -20
- package/source/directives/octets/schemas.ts +0 -15
- package/source/directives/octets/types.ts +0 -9
- package/source/directives/octets/workflows/Execution.ts +0 -130
- package/source/directives/octets/workflows/Workflow.ts +0 -51
- package/source/directives/octets/workflows/index.ts +0 -1
- package/source/directives/require/Directive.ts +0 -5
- package/source/directives/require/Headers.ts +0 -19
- package/source/directives/require/Require.ts +0 -27
- package/source/directives/require/index.ts +0 -3
- package/source/discovery.ts +0 -1
- package/source/exceptions.ts +0 -47
- package/source/index.ts +0 -10
- package/source/io.ts +0 -4
- package/source/octets.d.ts +0 -17
- package/source/root.ts +0 -59
- package/source/service.ts +0 -95
- package/source/userland.ts +0 -47
- package/tsconfig.json +0 -13
- package/tsconfig.tsbuildinfo +0 -1
- package/ui/dist/_app/immutable/assets/0.Bl7vLmIK.css +0 -2
- package/ui/dist/_app/immutable/assets/2.BC0-Jhqu.css +0 -1
- package/ui/dist/_app/immutable/chunks/BaWe3aOV.js +0 -1
- package/ui/dist/_app/immutable/chunks/DjIYL2zC.js +0 -3
- package/ui/dist/_app/immutable/chunks/GZTfV0ks.js +0 -6
- package/ui/dist/_app/immutable/entry/app.D5v4JoUx.js +0 -2
- package/ui/dist/_app/immutable/entry/start.CWxFoIyZ.js +0 -1
- package/ui/dist/_app/immutable/nodes/0.DIh5T_5-.js +0 -1
- package/ui/dist/_app/immutable/nodes/1.CY-bFzHC.js +0 -1
- package/ui/dist/_app/immutable/nodes/2.6Ubd1ItY.js +0 -14
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import { Readable } from 'node:stream'
|
|
2
|
-
import { console } from 'openspan'
|
|
3
|
-
import type { Unit } from './Workflow.js'
|
|
4
|
-
import type { Remotes } from '../../../Remotes.js'
|
|
5
|
-
import type { Component } from '@toa.io/core'
|
|
6
|
-
import type { Maybe } from '@toa.io/core/types'
|
|
7
|
-
import type { Entry } from '@toa.io/extensions.storages'
|
|
8
|
-
|
|
9
|
-
export class Execution extends Readable {
|
|
10
|
-
private readonly units: Unit[]
|
|
11
|
-
private readonly remotes: Remotes
|
|
12
|
-
private readonly context: Context
|
|
13
|
-
private readonly components: Record<string, Component> = {}
|
|
14
|
-
private readonly discovery: Record<string, Promise<Component>> = {}
|
|
15
|
-
private interrupted = false
|
|
16
|
-
|
|
17
|
-
public constructor(context: Context, units: Unit[], remotes: Remotes) {
|
|
18
|
-
super({ objectMode: true })
|
|
19
|
-
|
|
20
|
-
this.context = context
|
|
21
|
-
this.units = units
|
|
22
|
-
this.remotes = remotes
|
|
23
|
-
|
|
24
|
-
void this.run()
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
public override _read(): void {}
|
|
28
|
-
|
|
29
|
-
private async run(): Promise<void> {
|
|
30
|
-
for (const unit of this.units) {
|
|
31
|
-
await this.execute(unit)
|
|
32
|
-
|
|
33
|
-
if (this.interrupted) break
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
this.push(null)
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
private async execute(unit: Unit): Promise<void> {
|
|
40
|
-
const promises = Object.entries(unit).map(async ([step, endpoint]) => {
|
|
41
|
-
try {
|
|
42
|
-
const result = await this.call(endpoint)
|
|
43
|
-
|
|
44
|
-
if (result instanceof Readable) return await this.stream(step, result)
|
|
45
|
-
|
|
46
|
-
this.report(step, result)
|
|
47
|
-
} catch (e: unknown) {
|
|
48
|
-
this.exception(step, e)
|
|
49
|
-
}
|
|
50
|
-
})
|
|
51
|
-
|
|
52
|
-
await Promise.all(promises)
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
private async stream(step: string, stream: Readable): Promise<void> {
|
|
56
|
-
try {
|
|
57
|
-
for await (const result of stream) this.report(step, result, false)
|
|
58
|
-
|
|
59
|
-
this.report(step, undefined, true)
|
|
60
|
-
} catch (e: unknown) {
|
|
61
|
-
this.exception(step, e)
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
private report(step: string, result?: Maybe<unknown>, completed = true): void {
|
|
66
|
-
const report: Report = { step }
|
|
67
|
-
|
|
68
|
-
if (completed) report.status = 'completed'
|
|
69
|
-
|
|
70
|
-
if (result instanceof Error) {
|
|
71
|
-
// an Error cannot be serialized where it sits, and the encoders only unwrap
|
|
72
|
-
// one they are handed directly — this one travels nested inside the report
|
|
73
|
-
report.error = { ...result }
|
|
74
|
-
this.interrupted = true
|
|
75
|
-
} else if (result !== undefined) {
|
|
76
|
-
report.output = result
|
|
77
|
-
this.context.steps[step] = structuredClone(result)
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
this.push(report)
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
private exception(step: string, error: unknown): void {
|
|
84
|
-
console.error('Workflow exception', error as Error)
|
|
85
|
-
|
|
86
|
-
this.push({ step, status: 'exception' } satisfies Report)
|
|
87
|
-
this.interrupted = true
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
private async call(endpoint: string): Promise<Maybe<unknown>> {
|
|
91
|
-
const task = endpoint.startsWith('task:')
|
|
92
|
-
|
|
93
|
-
if (task) endpoint = endpoint.slice(5)
|
|
94
|
-
|
|
95
|
-
const [operation, component, namespace = 'default'] = endpoint.split('.').reverse()
|
|
96
|
-
const key = `${namespace}.${component}`
|
|
97
|
-
|
|
98
|
-
this.components[key] ??= await this.discover(key, namespace, component)
|
|
99
|
-
|
|
100
|
-
return this.components[key].invoke(operation, { input: this.context, task })
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
private async discover(
|
|
104
|
-
key: string,
|
|
105
|
-
namespace: string,
|
|
106
|
-
component: string
|
|
107
|
-
): Promise<Component> {
|
|
108
|
-
if (this.discovery[key] === undefined)
|
|
109
|
-
this.discovery[key] = this.remotes.discover(namespace, component)
|
|
110
|
-
|
|
111
|
-
return await this.discovery[key]
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
export interface Context {
|
|
116
|
-
authority: string
|
|
117
|
-
identity?: string
|
|
118
|
-
storage: string
|
|
119
|
-
path: string
|
|
120
|
-
entry: Entry
|
|
121
|
-
parameters: Record<string, string>
|
|
122
|
-
steps: Record<string, unknown>
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
interface Report {
|
|
126
|
-
step: string
|
|
127
|
-
status?: 'completed' | 'exception'
|
|
128
|
-
output?: unknown
|
|
129
|
-
error?: Record<string, unknown>
|
|
130
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { posix } from 'node:path'
|
|
2
|
-
import { match } from 'matchacho'
|
|
3
|
-
import { Execution } from './Execution.js'
|
|
4
|
-
import type { Entry } from '@toa.io/extensions.storages'
|
|
5
|
-
import type { Context } from './Execution.js'
|
|
6
|
-
import type { Parameter } from '../../../RTD/index.js'
|
|
7
|
-
import type { Remotes } from '../../../Remotes.js'
|
|
8
|
-
|
|
9
|
-
export class Workflow {
|
|
10
|
-
private readonly units: Unit[]
|
|
11
|
-
private readonly remotes: Remotes
|
|
12
|
-
|
|
13
|
-
public constructor(units: Unit[] | Unit, remotes: Remotes) {
|
|
14
|
-
this.units = match<Unit[]>(
|
|
15
|
-
units,
|
|
16
|
-
Array,
|
|
17
|
-
(units: Unit[]) => units,
|
|
18
|
-
Object,
|
|
19
|
-
(unit: Unit) => [unit]
|
|
20
|
-
)
|
|
21
|
-
|
|
22
|
-
this.remotes = remotes
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
public execute(location: Location, entry: Entry, params: Parameter[]): Execution {
|
|
26
|
-
const parameters: Record<string, string> = {}
|
|
27
|
-
|
|
28
|
-
for (const { name, value } of params) parameters[name] = value
|
|
29
|
-
|
|
30
|
-
const context: Context = {
|
|
31
|
-
authority: location.authority,
|
|
32
|
-
identity: location.identity,
|
|
33
|
-
storage: location.storage,
|
|
34
|
-
path: posix.join(location.path, entry.id),
|
|
35
|
-
entry,
|
|
36
|
-
parameters,
|
|
37
|
-
steps: {}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
return new Execution(context, this.units, this.remotes)
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export interface Location {
|
|
45
|
-
authority: string
|
|
46
|
-
identity?: string
|
|
47
|
-
storage: string
|
|
48
|
-
path: string
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export type Unit = Record<string, string>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { Workflow, type Unit, type Location } from './Workflow.js'
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { BadRequest } from '../../HTTP/index.js'
|
|
2
|
-
import type { Input } from '../../io.js'
|
|
3
|
-
import type { Directive } from './Directive.js'
|
|
4
|
-
|
|
5
|
-
export class Headers implements Directive {
|
|
6
|
-
private readonly headers: string[]
|
|
7
|
-
|
|
8
|
-
public constructor(headers: string[]) {
|
|
9
|
-
if (!Array.isArray(headers)) headers = [headers]
|
|
10
|
-
|
|
11
|
-
this.headers = headers
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
public precall(context: Input): void {
|
|
15
|
-
for (const header of this.headers)
|
|
16
|
-
if (context.request.headers[header] === undefined)
|
|
17
|
-
throw new BadRequest(`Header required: ${header}`)
|
|
18
|
-
}
|
|
19
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import assert from 'node:assert'
|
|
2
|
-
import { Headers } from './Headers.js'
|
|
3
|
-
import type { Input } from '../../io.js'
|
|
4
|
-
import type { Directive } from './Directive.js'
|
|
5
|
-
import type { DirectiveFamily } from '../../RTD/index.js'
|
|
6
|
-
|
|
7
|
-
export class Require implements DirectiveFamily {
|
|
8
|
-
public readonly name = 'require'
|
|
9
|
-
public readonly mandatory = false
|
|
10
|
-
|
|
11
|
-
public create(name: string, value: unknown): Directive {
|
|
12
|
-
assert.ok(name in directives, `Unknown directive: require:${name}`)
|
|
13
|
-
|
|
14
|
-
return new directives[name](value)
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
public precall(instances: Directive[], context: Input): null {
|
|
18
|
-
for (const instance of instances) instance.precall(context)
|
|
19
|
-
|
|
20
|
-
return null
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const directives: Record<string, new (value: any) => Directive> = {
|
|
25
|
-
header: Headers,
|
|
26
|
-
headers: Headers
|
|
27
|
-
}
|
package/source/discovery.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export type Label = 'ping' | 'expose'
|
package/source/exceptions.ts
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { match } from 'matchacho'
|
|
2
|
-
import { console } from 'openspan'
|
|
3
|
-
import * as http from './HTTP/index.js'
|
|
4
|
-
import { Exception as HTTPException } from './HTTP/index.js'
|
|
5
|
-
import type { Exception } from '@toa.io/core'
|
|
6
|
-
|
|
7
|
-
export function rethrow(exception: Exception | HTTPException): void {
|
|
8
|
-
if (exception instanceof HTTPException) throw exception
|
|
9
|
-
|
|
10
|
-
// see /runtime/core/src/exceptions.js
|
|
11
|
-
throw match(
|
|
12
|
-
exception.code,
|
|
13
|
-
badRequest,
|
|
14
|
-
() => new http.BadRequest(exception.message),
|
|
15
|
-
CORE_EXCEPTIONS.StateNotFound,
|
|
16
|
-
NOT_FOUND,
|
|
17
|
-
CORE_EXCEPTIONS.StatePrecondition,
|
|
18
|
-
PRECONDITION_FAILED,
|
|
19
|
-
CORE_EXCEPTIONS.Duplicate,
|
|
20
|
-
CONFLICT,
|
|
21
|
-
CORE_EXCEPTIONS.StateConcurrency,
|
|
22
|
-
CONFLICT,
|
|
23
|
-
CORE_EXCEPTIONS.EntityGuard,
|
|
24
|
-
CONFLICT,
|
|
25
|
-
() => {
|
|
26
|
-
console.error('Request processing exception', exception)
|
|
27
|
-
|
|
28
|
-
return exception
|
|
29
|
-
}
|
|
30
|
-
)
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function badRequest(code: number): boolean {
|
|
34
|
-
return (code >= 200 && code < 210) || code === 221
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
const NOT_FOUND = new http.NotFound()
|
|
38
|
-
const PRECONDITION_FAILED = new http.PreconditionFailed()
|
|
39
|
-
const CONFLICT = new http.Conflict()
|
|
40
|
-
|
|
41
|
-
const CORE_EXCEPTIONS = {
|
|
42
|
-
StateNotFound: 302,
|
|
43
|
-
StatePrecondition: 303,
|
|
44
|
-
StateConcurrency: 304,
|
|
45
|
-
EntityGuard: 213,
|
|
46
|
-
Duplicate: 306
|
|
47
|
-
}
|
package/source/index.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export { components } from './Composition.js'
|
|
2
|
-
export { Factory } from './Factory.js'
|
|
3
|
-
|
|
4
|
-
export type { Remotes } from './Remotes.js'
|
|
5
|
-
|
|
6
|
-
// what an operation is written against, rather than the gateway's own
|
|
7
|
-
export type { Claims, Identity } from './userland.js'
|
|
8
|
-
|
|
9
|
-
// what an octets workflow is given
|
|
10
|
-
export type * as octets from './octets.js'
|
package/source/io.ts
DELETED
package/source/octets.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export interface WorkflowInput<
|
|
2
|
-
TParameters extends Record<string, string> = Record<string, string>,
|
|
3
|
-
TSteps extends Record<string, unknown> = Record<string, unknown>
|
|
4
|
-
> {
|
|
5
|
-
authority: string
|
|
6
|
-
identity?: string
|
|
7
|
-
storage: string
|
|
8
|
-
path: string
|
|
9
|
-
entry: {
|
|
10
|
-
id: string
|
|
11
|
-
type: string
|
|
12
|
-
size: number
|
|
13
|
-
meta: Record<string, unknown>
|
|
14
|
-
}
|
|
15
|
-
parameters: TParameters
|
|
16
|
-
steps: TSteps
|
|
17
|
-
}
|
package/source/root.ts
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { environment, merge } from '@toa.io/generic'
|
|
2
|
-
import { syntax } from './RTD/index.js'
|
|
3
|
-
|
|
4
|
-
export function resolve(): syntax.Node {
|
|
5
|
-
const value = environment.get('TOA_EXPOSITION')
|
|
6
|
-
const root =
|
|
7
|
-
value !== undefined ? (JSON.parse(value) as syntax.Node) : syntax.createNode()
|
|
8
|
-
|
|
9
|
-
merge(root, PREDEFINED)
|
|
10
|
-
|
|
11
|
-
return root
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
const PREDEFINED: syntax.Node = {
|
|
15
|
-
routes: [
|
|
16
|
-
{
|
|
17
|
-
path: '/identity',
|
|
18
|
-
node: {
|
|
19
|
-
isolated: true,
|
|
20
|
-
routes: [],
|
|
21
|
-
methods: [
|
|
22
|
-
{
|
|
23
|
-
verb: 'GET',
|
|
24
|
-
directives: [
|
|
25
|
-
{
|
|
26
|
-
family: 'io',
|
|
27
|
-
name: 'output',
|
|
28
|
-
value: ['id', 'roles']
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
family: 'auth',
|
|
32
|
-
name: 'echo',
|
|
33
|
-
value: null
|
|
34
|
-
}
|
|
35
|
-
]
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
verb: 'POST',
|
|
39
|
-
directives: [
|
|
40
|
-
{
|
|
41
|
-
family: 'io',
|
|
42
|
-
name: 'output',
|
|
43
|
-
value: ['id', 'roles']
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
family: 'auth',
|
|
47
|
-
name: 'incept',
|
|
48
|
-
value: null
|
|
49
|
-
}
|
|
50
|
-
]
|
|
51
|
-
}
|
|
52
|
-
],
|
|
53
|
-
directives: []
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
],
|
|
57
|
-
methods: [],
|
|
58
|
-
directives: []
|
|
59
|
-
}
|
package/source/service.ts
DELETED
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import assert from 'node:assert'
|
|
2
|
-
import { console, traces, type LevelName, type TracesOptions } from 'openspan'
|
|
3
|
-
import { Gateway } from './Gateway.js'
|
|
4
|
-
import { Remotes } from './Remotes.js'
|
|
5
|
-
import { Tree } from './RTD/index.js'
|
|
6
|
-
import { EndpointsFactory } from './Endpoint.js'
|
|
7
|
-
import { families, interceptors } from './directives/index.js'
|
|
8
|
-
import { DirectivesFactory } from './Directive.js'
|
|
9
|
-
import { Composition } from './Composition.js'
|
|
10
|
-
import * as root from './root.js'
|
|
11
|
-
import { ATOM_GROUP, CHANNEL } from '@toa.io/definitions/extensions.exposition'
|
|
12
|
-
import { Interception } from './Interception.js'
|
|
13
|
-
import { Dispatcher } from './RPC/index.js'
|
|
14
|
-
import { Server as Model } from './MCP/index.js'
|
|
15
|
-
import * as http from './HTTP/index.js'
|
|
16
|
-
import { environment } from '@toa.io/generic'
|
|
17
|
-
import type { Broadcast } from './Gateway.js'
|
|
18
|
-
import type { Connector } from '@toa.io/core'
|
|
19
|
-
import type { Host } from './Factory.js'
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* The gateway. A composition loads this extension for its tenants alone, so what the
|
|
23
|
-
* gateway is made of is reached from here and nowhere the factory imports.
|
|
24
|
-
*/
|
|
25
|
-
export async function service(host: Host): Promise<Connector | null> {
|
|
26
|
-
const properties = environment.get('TOA_EXPOSITION_PROPERTIES')
|
|
27
|
-
|
|
28
|
-
assert.ok(properties !== undefined, 'TOA_EXPOSITION_PROPERTIES is undefined')
|
|
29
|
-
|
|
30
|
-
configureLogs()
|
|
31
|
-
|
|
32
|
-
const options = JSON.parse(properties) as http.Options
|
|
33
|
-
const broadcast: Broadcast = await host.broadcast(CHANNEL)
|
|
34
|
-
const server = http.Server.create({ ...options })
|
|
35
|
-
const remotes = new Remotes(host)
|
|
36
|
-
const node = root.resolve()
|
|
37
|
-
const methods = new EndpointsFactory(remotes)
|
|
38
|
-
const directives = new DirectivesFactory(families, remotes, host, options)
|
|
39
|
-
const interception = new Interception(interceptors, options)
|
|
40
|
-
const tree = new Tree(node, methods, directives)
|
|
41
|
-
|
|
42
|
-
const composition = new Composition(host)
|
|
43
|
-
const dispatcher = options.rpc === undefined ? null : new Dispatcher(options.rpc)
|
|
44
|
-
const mcp = options.mcp === undefined ? null : new Model(options.mcp, tree)
|
|
45
|
-
const gateway = new Gateway(broadcast, tree, interception, directives, dispatcher, mcp)
|
|
46
|
-
|
|
47
|
-
gateway.depends(remotes)
|
|
48
|
-
gateway.depends(composition)
|
|
49
|
-
// what the directives meter through; one atom per process, connected once
|
|
50
|
-
gateway.depends(host.atom(ATOM_GROUP))
|
|
51
|
-
|
|
52
|
-
server.attach(gateway.process.bind(gateway))
|
|
53
|
-
server.depends(gateway)
|
|
54
|
-
|
|
55
|
-
return server
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
const LOGS_PREFIX = 'TOA_TELEMETRY_LOGS'
|
|
59
|
-
const TRACES_ENV = 'TOA_TELEMETRY_TRACES'
|
|
60
|
-
|
|
61
|
-
function configureLogs(): void {
|
|
62
|
-
const globEnv = environment.get(LOGS_PREFIX)
|
|
63
|
-
const level: LevelName = environment.get('TOA_DEV') === '1' ? 'trace' : 'info'
|
|
64
|
-
const options =
|
|
65
|
-
globEnv === undefined ? { level } : (JSON.parse(globEnv) as { level?: LevelName })
|
|
66
|
-
|
|
67
|
-
console.configure({ level: options.level ?? level })
|
|
68
|
-
|
|
69
|
-
const tracesEnv = environment.get(TRACES_ENV)
|
|
70
|
-
const tracing =
|
|
71
|
-
tracesEnv === undefined ? development() : (JSON.parse(tracesEnv) as TracesOptions)
|
|
72
|
-
|
|
73
|
-
// `openspan` is not Toa's and reads the environment, which no longer holds the context by
|
|
74
|
-
// the time the exporter is made — so the service is named here
|
|
75
|
-
if (tracing.exporters?.otlp !== undefined)
|
|
76
|
-
tracing.exporters.otlp.service ??= environment.get('TOA_CONTEXT')
|
|
77
|
-
|
|
78
|
-
traces(tracing)
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Tracing is off unless it is configured. The console exporter is a local development
|
|
83
|
-
* mechanism, so it is turned on for `toa dev` and for a boot trace the CLI has already
|
|
84
|
-
* asked for (`runtime/boot/src/span.js`), and nowhere else — a deployment that wants
|
|
85
|
-
* traces annotates `telemetry.traces.exporters`.
|
|
86
|
-
*
|
|
87
|
-
* The gateway boots without the telemetry extension, hence the copy of
|
|
88
|
-
* `extensions/telemetry/source/extension.ts`.
|
|
89
|
-
*/
|
|
90
|
-
function development(): TracesOptions {
|
|
91
|
-
const local =
|
|
92
|
-
environment.get('TOA_DEV') === '1' || environment.get('TOA_BOOT_TRACE') === '1'
|
|
93
|
-
|
|
94
|
-
return local ? { exporters: { console: {} } } : {}
|
|
95
|
-
}
|
package/source/userland.ts
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* What Exposition puts into an operation's input, for the operation to be written against.
|
|
3
|
-
*
|
|
4
|
-
* The gateway's own types are its business; these are the application's.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* The identity behind the call, as `auth:delegate` embeds it:
|
|
9
|
-
*
|
|
10
|
-
* ```yaml
|
|
11
|
-
* /echo:
|
|
12
|
-
* GET:
|
|
13
|
-
* auth:assert: true
|
|
14
|
-
* auth:delegate: identity
|
|
15
|
-
* endpoint: echo
|
|
16
|
-
* ```
|
|
17
|
-
*
|
|
18
|
-
* ```javascript
|
|
19
|
-
* export async function computation ({ identity }, context) { }
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
export interface Identity {
|
|
23
|
-
readonly id: string
|
|
24
|
-
|
|
25
|
-
/** What the identity holds. Delegation resolves them, so they are always here. */
|
|
26
|
-
roles: string[]
|
|
27
|
-
|
|
28
|
-
permissions?: Record<string, string[]>
|
|
29
|
-
|
|
30
|
-
/** How the identity was authenticated; `null` for a transient one. */
|
|
31
|
-
scheme: string | null
|
|
32
|
-
|
|
33
|
-
/** Whether the credentials presented are due to be exchanged. */
|
|
34
|
-
refresh: boolean
|
|
35
|
-
|
|
36
|
-
/** The token's claims, where the identity was federated. */
|
|
37
|
-
claims?: Claims
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/** A federated token's payload: what it must carry, and whatever else the issuer put there. */
|
|
41
|
-
export interface Claims {
|
|
42
|
-
iss: string
|
|
43
|
-
sub: string
|
|
44
|
-
aud?: string | string[]
|
|
45
|
-
|
|
46
|
-
[claim: string]: unknown
|
|
47
|
-
}
|