@toa.io/extensions.exposition 1.0.0-alpha.6 → 1.0.0-alpha.60
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/context.toa.yaml +2 -2
- package/components/identity.bans/manifest.toa.yaml +15 -7
- package/components/identity.bans/operations/transit.d.ts +14 -0
- package/components/identity.bans/operations/transit.js +11 -0
- package/components/identity.bans/operations/transit.js.map +1 -0
- package/components/identity.bans/operations/tsconfig.tsbuildinfo +1 -0
- package/components/identity.bans/source/transit.ts +21 -0
- package/components/identity.bans/tsconfig.json +9 -0
- package/components/identity.basic/manifest.toa.yaml +21 -10
- package/components/identity.basic/operations/authenticate.d.ts +5 -1
- package/components/identity.basic/operations/authenticate.js +5 -2
- package/components/identity.basic/operations/authenticate.js.map +1 -1
- package/components/identity.basic/operations/incept.d.ts +12 -0
- package/components/identity.basic/operations/incept.js +26 -0
- package/components/identity.basic/operations/incept.js.map +1 -0
- package/components/identity.basic/operations/transit.d.ts +4 -4
- package/components/identity.basic/operations/transit.js +5 -3
- package/components/identity.basic/operations/transit.js.map +1 -1
- package/components/identity.basic/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.basic/operations/types.d.ts +8 -4
- package/components/identity.basic/source/authenticate.ts +16 -5
- package/components/identity.basic/source/incept.ts +38 -0
- package/components/identity.basic/source/transit.ts +8 -6
- package/components/identity.basic/source/types.ts +8 -4
- package/components/identity.federation/manifest.toa.yaml +32 -16
- package/components/identity.federation/operations/authenticate.d.ts +2 -2
- package/components/identity.federation/operations/authenticate.js +4 -11
- package/components/identity.federation/operations/authenticate.js.map +1 -1
- package/components/identity.federation/operations/incept.d.ts +11 -0
- package/components/identity.federation/operations/{create.js → incept.js} +6 -7
- package/components/identity.federation/operations/incept.js.map +1 -0
- package/components/identity.federation/operations/lib/jwt.d.ts +5 -5
- package/components/identity.federation/operations/lib/jwt.js +25 -12
- package/components/identity.federation/operations/lib/jwt.js.map +1 -1
- package/components/identity.federation/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.federation/operations/types/configuration.d.ts +14 -0
- package/components/identity.federation/operations/types/configuration.js +3 -0
- package/components/identity.federation/operations/types/configuration.js.map +1 -0
- package/components/identity.federation/operations/{types.d.ts → types/context.d.ts} +15 -7
- package/components/identity.federation/operations/types/context.js +3 -0
- package/components/identity.federation/operations/types/context.js.map +1 -0
- package/components/identity.federation/operations/types/entity.d.ts +6 -0
- package/components/identity.federation/operations/types/entity.js +3 -0
- package/components/identity.federation/operations/types/entity.js.map +1 -0
- package/components/identity.federation/operations/types/index.d.ts +3 -0
- package/components/identity.federation/operations/types/index.js +20 -0
- package/components/identity.federation/operations/types/index.js.map +1 -0
- package/components/identity.federation/source/authenticate.ts +6 -19
- package/components/identity.federation/source/{create.ts → incept.ts} +10 -9
- package/components/identity.federation/source/lib/jwt.test.ts +123 -4
- package/components/identity.federation/source/lib/jwt.ts +36 -16
- package/components/identity.federation/source/types/configuration.ts +15 -0
- package/components/identity.federation/source/{types.ts → types/context.ts} +17 -6
- package/components/identity.federation/source/types/entity.ts +6 -0
- package/components/identity.federation/source/types/index.ts +3 -0
- package/components/identity.federation/tsconfig.json +5 -4
- package/components/identity.roles/manifest.toa.yaml +18 -7
- package/components/identity.roles/operations/grant.d.ts +10 -0
- package/components/identity.roles/operations/grant.js +21 -0
- package/components/identity.roles/operations/grant.js.map +1 -0
- package/components/identity.roles/operations/lib/Entity.d.ts +5 -0
- package/components/identity.roles/operations/lib/Entity.js +3 -0
- package/components/identity.roles/operations/lib/Entity.js.map +1 -0
- package/components/identity.roles/operations/list.d.ts +1 -4
- package/components/identity.roles/operations/list.js.map +1 -1
- package/components/identity.roles/operations/principal.d.ts +4 -6
- package/components/identity.roles/operations/principal.js +6 -1
- package/components/identity.roles/operations/principal.js.map +1 -1
- package/components/identity.roles/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.roles/source/grant.ts +32 -0
- package/components/identity.roles/source/lib/Entity.ts +5 -0
- package/components/identity.roles/source/list.ts +2 -4
- package/components/identity.roles/source/principal.ts +10 -8
- package/components/identity.tokens/manifest.toa.yaml +19 -5
- package/components/identity.tokens/operations/authenticate.d.ts +2 -2
- package/components/identity.tokens/operations/authenticate.js +12 -5
- package/components/identity.tokens/operations/authenticate.js.map +1 -1
- package/components/identity.tokens/operations/decrypt.js +1 -0
- package/components/identity.tokens/operations/decrypt.js.map +1 -1
- package/components/identity.tokens/operations/encrypt.js +5 -1
- package/components/identity.tokens/operations/encrypt.js.map +1 -1
- package/components/identity.tokens/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.tokens/operations/types.d.ts +8 -2
- package/components/identity.tokens/receivers/identity.bans.created.js +3 -0
- package/components/identity.tokens/source/authenticate.test.ts +11 -4
- package/components/identity.tokens/source/authenticate.ts +14 -6
- package/components/identity.tokens/source/decrypt.test.ts +5 -3
- package/components/identity.tokens/source/decrypt.ts +9 -8
- package/components/identity.tokens/source/encrypt.test.ts +26 -2
- package/components/identity.tokens/source/encrypt.ts +5 -1
- package/components/identity.tokens/source/types.ts +9 -2
- package/components/octets.storage/manifest.toa.yaml +5 -7
- package/components/octets.storage/operations/store.js +105 -3
- package/documentation/access.md +75 -38
- package/documentation/authorities.md +49 -0
- package/documentation/cache.md +8 -1
- package/documentation/components.md +47 -22
- package/documentation/flow.md +31 -0
- package/documentation/identity.md +17 -22
- package/documentation/introspection.md +82 -0
- package/documentation/octets.md +64 -23
- package/documentation/protocol.md +3 -0
- package/documentation/query.md +29 -4
- package/documentation/require.md +15 -0
- package/documentation/tree.md +13 -0
- package/documentation/vary.md +14 -14
- package/features/access.feature +78 -46
- package/features/annotation.feature +1 -0
- package/features/auth.claim.feature +170 -0
- package/features/authorities.basic.feature +141 -0
- package/features/authorities.feature +32 -0
- package/features/authorities.federation.feature +100 -0
- package/features/authorities.tokens.feature +117 -0
- package/features/body.feature +3 -0
- package/features/cache.feature +109 -5
- package/features/cors.feature +5 -0
- package/features/debug.feature +34 -0
- package/features/directives.feature +3 -0
- package/features/dynamic.feature +4 -0
- package/features/errors.feature +20 -7
- package/features/etag.feature +31 -0
- package/features/flow.feature +45 -0
- package/features/identity.bans.feature +137 -0
- package/features/identity.basic.feature +125 -23
- package/features/identity.feature +7 -2
- package/features/identity.federation.feature +66 -11
- package/features/identity.roles.feature +250 -7
- package/features/identity.tokens.feature +54 -4
- package/features/introspection.feature +153 -0
- package/features/io.feature +38 -1
- package/features/octets.download.feature +117 -0
- package/features/octets.entries.feature +8 -1
- package/features/octets.feature +58 -64
- package/features/octets.meta.feature +3 -0
- package/features/octets.workflows.feature +239 -19
- package/features/probes.feature +14 -0
- package/features/{queries.feature → query.feature} +65 -2
- package/features/require.feature +67 -0
- package/features/response.feature +38 -3
- package/features/routes.feature +93 -2
- package/features/steps/Database.ts +17 -10
- package/features/steps/Gateway.ts +23 -6
- package/features/steps/IdP.ts +30 -25
- package/features/steps/components/echo/manifest.toa.yaml +14 -1
- package/features/steps/components/echo/operations/identity.js +7 -0
- package/features/steps/components/echo/operations/parameters.js +7 -0
- package/features/steps/components/echo.beacon/manifest.toa.yaml +2 -0
- package/features/steps/components/echo.beacon/operations/hello.js +5 -0
- package/features/steps/components/octets.tester/manifest.toa.yaml +22 -1
- package/features/steps/components/octets.tester/operations/authority.js +7 -0
- package/features/steps/components/octets.tester/operations/baz.js +1 -2
- package/features/steps/components/octets.tester/operations/diversify.js +3 -1
- package/features/steps/components/octets.tester/operations/foo.js +2 -2
- package/features/steps/components/octets.tester/operations/redirect.js +12 -0
- package/features/steps/components/octets.tester/operations/yex.js +16 -0
- package/features/steps/components/octets.tester/operations/yield.js +13 -0
- package/features/steps/components/pots/manifest.toa.yaml +14 -3
- package/features/steps/components/users/manifest.toa.yaml +0 -1
- package/features/steps/components/users.properties/manifest.toa.yaml +1 -1
- package/features/streams.feature +1 -0
- package/features/timing.feature +27 -1
- package/features/vary.feature +71 -0
- package/package.json +22 -14
- package/readme.md +19 -14
- package/schemas/annotation.cos.yaml +1 -1
- package/schemas/node.cos.yaml +1 -0
- package/schemas/octets/store.cos.yaml +1 -0
- package/schemas/query.cos.yaml +4 -10
- package/source/Annotation.ts +3 -3
- package/source/Composition.ts +2 -2
- package/source/Directive.ts +4 -5
- package/source/Endpoint.ts +48 -12
- package/source/Factory.ts +10 -11
- package/source/Gateway.ts +49 -20
- package/source/HTTP/Context.ts +24 -2
- package/source/HTTP/Server.ts +50 -43
- package/source/HTTP/exceptions.ts +7 -1
- package/source/HTTP/formats/index.ts +3 -3
- package/source/HTTP/messages.test.ts +39 -2
- package/source/HTTP/messages.ts +7 -3
- package/source/Introspection.ts +11 -0
- package/source/Mapping.ts +63 -21
- package/source/Query.test.ts +3 -3
- package/source/Query.ts +117 -33
- package/source/RTD/Endpoint.ts +3 -0
- package/source/RTD/Method.ts +16 -0
- package/source/RTD/Node.ts +29 -13
- package/source/RTD/Route.ts +5 -4
- package/source/RTD/factory.ts +5 -2
- package/source/RTD/syntax/parse.ts +37 -24
- package/source/RTD/syntax/types.ts +6 -4
- package/source/Remotes.ts +2 -9
- package/source/Tenant.ts +0 -8
- package/source/deployment.ts +32 -22
- package/source/directives/auth/Authorization.ts +37 -14
- package/source/directives/auth/Delegate.ts +42 -0
- package/source/directives/auth/Federation.ts +84 -0
- package/source/directives/auth/Incept.ts +4 -3
- package/source/directives/auth/Role.test.ts +53 -6
- package/source/directives/auth/Role.ts +22 -14
- package/source/directives/auth/split.ts +1 -1
- package/source/directives/auth/types.ts +1 -1
- package/source/directives/cache/Cache.ts +13 -6
- package/source/directives/cache/Control.ts +42 -16
- package/source/directives/dev/Development.ts +1 -1
- package/source/directives/flow/Fetch.ts +88 -0
- package/source/directives/flow/Flow.ts +34 -0
- package/source/directives/flow/index.ts +3 -0
- package/source/directives/flow/types.ts +6 -0
- package/source/directives/index.ts +3 -1
- package/source/directives/io/Input.ts +2 -2
- package/source/directives/octets/Context.ts +4 -3
- package/source/directives/octets/Delete.ts +4 -2
- package/source/directives/octets/Directive.ts +10 -0
- package/source/directives/octets/Fetch.ts +14 -12
- package/source/directives/octets/List.ts +9 -7
- package/source/directives/octets/Octets.ts +4 -5
- package/source/directives/octets/Store.ts +21 -8
- package/source/directives/octets/Workflow.ts +10 -3
- package/source/directives/octets/schemas.ts +4 -4
- package/source/directives/octets/types.ts +0 -7
- package/source/directives/octets/workflows/Execution.ts +59 -8
- package/source/directives/octets/workflows/Workflow.ts +2 -1
- package/source/directives/require/Directive.ts +5 -0
- package/source/directives/require/Headers.ts +20 -0
- package/source/directives/require/Require.ts +28 -0
- package/source/directives/require/index.ts +3 -0
- package/source/directives/vary/Directive.ts +2 -1
- package/source/directives/vary/Embed.ts +14 -8
- package/source/directives/vary/Vary.ts +6 -4
- package/source/directives/vary/embeddings/Authority.ts +8 -0
- package/source/directives/vary/embeddings/Embedding.ts +2 -1
- package/source/directives/vary/embeddings/Parameter.ts +14 -0
- package/source/directives/vary/embeddings/index.ts +6 -4
- package/source/exceptions.ts +22 -11
- package/source/manifest.ts +10 -11
- package/source/schemas.ts +1 -1
- package/transpiled/Annotation.d.ts +3 -3
- package/transpiled/Composition.js +2 -2
- package/transpiled/Composition.js.map +1 -1
- package/transpiled/Directive.js +4 -4
- package/transpiled/Directive.js.map +1 -1
- package/transpiled/Endpoint.d.ts +6 -4
- package/transpiled/Endpoint.js +28 -4
- package/transpiled/Endpoint.js.map +1 -1
- package/transpiled/Factory.d.ts +1 -1
- package/transpiled/Factory.js +9 -8
- package/transpiled/Factory.js.map +1 -1
- package/transpiled/Gateway.d.ts +2 -0
- package/transpiled/Gateway.js +36 -12
- package/transpiled/Gateway.js.map +1 -1
- package/transpiled/HTTP/Context.d.ts +8 -1
- package/transpiled/HTTP/Context.js +15 -2
- package/transpiled/HTTP/Context.js.map +1 -1
- package/transpiled/HTTP/Server.d.ts +13 -2
- package/transpiled/HTTP/Server.js +37 -35
- package/transpiled/HTTP/Server.js.map +1 -1
- package/transpiled/HTTP/exceptions.d.ts +4 -1
- package/transpiled/HTTP/exceptions.js +7 -1
- package/transpiled/HTTP/exceptions.js.map +1 -1
- package/transpiled/HTTP/formats/index.js +3 -3
- package/transpiled/HTTP/formats/index.js.map +1 -1
- package/transpiled/HTTP/messages.d.ts +1 -0
- package/transpiled/HTTP/messages.js +9 -3
- package/transpiled/HTTP/messages.js.map +1 -1
- package/transpiled/Introspection.d.ts +9 -0
- package/transpiled/Introspection.js +3 -0
- package/transpiled/Introspection.js.map +1 -0
- package/transpiled/Mapping.d.ts +10 -2
- package/transpiled/Mapping.js +48 -19
- package/transpiled/Mapping.js.map +1 -1
- package/transpiled/Query.d.ts +10 -1
- package/transpiled/Query.js +83 -30
- package/transpiled/Query.js.map +1 -1
- package/transpiled/RTD/Endpoint.d.ts +1 -0
- package/transpiled/RTD/Method.d.ts +4 -0
- package/transpiled/RTD/Method.js +11 -0
- package/transpiled/RTD/Method.js.map +1 -1
- package/transpiled/RTD/Node.d.ts +4 -1
- package/transpiled/RTD/Node.js +23 -12
- package/transpiled/RTD/Node.js.map +1 -1
- package/transpiled/RTD/Route.d.ts +1 -1
- package/transpiled/RTD/Route.js +0 -1
- package/transpiled/RTD/Route.js.map +1 -1
- package/transpiled/RTD/factory.js +5 -2
- package/transpiled/RTD/factory.js.map +1 -1
- package/transpiled/RTD/syntax/parse.js +34 -22
- package/transpiled/RTD/syntax/parse.js.map +1 -1
- package/transpiled/RTD/syntax/types.d.ts +5 -3
- package/transpiled/RTD/syntax/types.js +1 -1
- package/transpiled/RTD/syntax/types.js.map +1 -1
- package/transpiled/Remotes.d.ts +2 -4
- package/transpiled/Remotes.js +0 -5
- package/transpiled/Remotes.js.map +1 -1
- package/transpiled/Tenant.d.ts +0 -1
- package/transpiled/Tenant.js +0 -6
- package/transpiled/Tenant.js.map +1 -1
- package/transpiled/deployment.d.ts +1 -1
- package/transpiled/deployment.js +28 -20
- package/transpiled/deployment.js.map +1 -1
- package/transpiled/directives/auth/Authorization.js +26 -10
- package/transpiled/directives/auth/Authorization.js.map +1 -1
- package/transpiled/directives/auth/Delegate.d.ts +10 -0
- package/transpiled/directives/auth/Delegate.js +34 -0
- package/transpiled/directives/auth/Delegate.js.map +1 -0
- package/transpiled/directives/auth/Federation.d.ts +16 -0
- package/transpiled/directives/auth/Federation.js +57 -0
- package/transpiled/directives/auth/Federation.js.map +1 -0
- package/transpiled/directives/auth/Incept.js +4 -3
- package/transpiled/directives/auth/Incept.js.map +1 -1
- package/transpiled/directives/auth/Role.d.ts +4 -1
- package/transpiled/directives/auth/Role.js +20 -14
- package/transpiled/directives/auth/Role.js.map +1 -1
- package/transpiled/directives/auth/split.js +1 -1
- package/transpiled/directives/auth/split.js.map +1 -1
- package/transpiled/directives/cache/Cache.d.ts +3 -3
- package/transpiled/directives/cache/Cache.js +10 -4
- package/transpiled/directives/cache/Cache.js.map +1 -1
- package/transpiled/directives/cache/Control.d.ts +2 -1
- package/transpiled/directives/cache/Control.js +29 -12
- package/transpiled/directives/cache/Control.js.map +1 -1
- package/transpiled/directives/dev/Development.js +1 -1
- package/transpiled/directives/dev/Development.js.map +1 -1
- package/transpiled/directives/flow/Fetch.d.ts +13 -0
- package/transpiled/directives/flow/Fetch.js +59 -0
- package/transpiled/directives/flow/Fetch.js.map +1 -0
- package/transpiled/directives/flow/Flow.d.ts +10 -0
- package/transpiled/directives/flow/Flow.js +27 -0
- package/transpiled/directives/flow/Flow.js.map +1 -0
- package/transpiled/directives/flow/index.d.ts +2 -0
- package/transpiled/directives/flow/index.js +6 -0
- package/transpiled/directives/flow/index.js.map +1 -0
- package/transpiled/directives/flow/types.d.ts +5 -0
- package/transpiled/directives/flow/types.js.map +1 -0
- package/transpiled/directives/index.js +3 -1
- package/transpiled/directives/index.js.map +1 -1
- package/transpiled/directives/io/Input.js +2 -2
- package/transpiled/directives/io/Input.js.map +1 -1
- package/transpiled/directives/octets/Context.d.ts +3 -3
- package/transpiled/directives/octets/Context.js +4 -2
- package/transpiled/directives/octets/Context.js.map +1 -1
- package/transpiled/directives/octets/Delete.d.ts +3 -2
- package/transpiled/directives/octets/Delete.js +3 -1
- package/transpiled/directives/octets/Delete.js.map +1 -1
- package/transpiled/directives/octets/Directive.d.ts +8 -0
- package/transpiled/directives/octets/Directive.js +8 -0
- package/transpiled/directives/octets/Directive.js.map +1 -0
- package/transpiled/directives/octets/Fetch.d.ts +6 -5
- package/transpiled/directives/octets/Fetch.js +10 -8
- package/transpiled/directives/octets/Fetch.js.map +1 -1
- package/transpiled/directives/octets/List.d.ts +6 -5
- package/transpiled/directives/octets/List.js +6 -4
- package/transpiled/directives/octets/List.js.map +1 -1
- package/transpiled/directives/octets/Octets.d.ts +2 -1
- package/transpiled/directives/octets/Octets.js +2 -4
- package/transpiled/directives/octets/Octets.js.map +1 -1
- package/transpiled/directives/octets/Store.d.ts +6 -3
- package/transpiled/directives/octets/Store.js +12 -6
- package/transpiled/directives/octets/Store.js.map +1 -1
- package/transpiled/directives/octets/Workflow.d.ts +3 -2
- package/transpiled/directives/octets/Workflow.js +9 -2
- package/transpiled/directives/octets/Workflow.js.map +1 -1
- package/transpiled/directives/octets/schemas.d.ts +4 -4
- package/transpiled/directives/octets/schemas.js.map +1 -1
- package/transpiled/directives/octets/types.d.ts +0 -5
- package/transpiled/directives/octets/workflows/Execution.d.ts +5 -1
- package/transpiled/directives/octets/workflows/Execution.js +43 -9
- package/transpiled/directives/octets/workflows/Execution.js.map +1 -1
- package/transpiled/directives/octets/workflows/Workflow.js +2 -1
- package/transpiled/directives/octets/workflows/Workflow.js.map +1 -1
- package/transpiled/directives/require/Directive.d.ts +4 -0
- package/transpiled/directives/require/Directive.js +3 -0
- package/transpiled/directives/require/Directive.js.map +1 -0
- package/transpiled/directives/require/Headers.d.ts +7 -0
- package/transpiled/directives/require/Headers.js +19 -0
- package/transpiled/directives/require/Headers.js.map +1 -0
- package/transpiled/directives/require/Require.d.ts +9 -0
- package/transpiled/directives/require/Require.js +27 -0
- package/transpiled/directives/require/Require.js.map +1 -0
- package/transpiled/directives/require/index.d.ts +2 -0
- package/transpiled/directives/require/index.js +6 -0
- package/transpiled/directives/require/index.js.map +1 -0
- package/transpiled/directives/vary/Directive.d.ts +2 -1
- package/transpiled/directives/vary/Embed.d.ts +2 -1
- package/transpiled/directives/vary/Embed.js +8 -6
- package/transpiled/directives/vary/Embed.js.map +1 -1
- package/transpiled/directives/vary/Vary.d.ts +2 -2
- package/transpiled/directives/vary/Vary.js +3 -3
- package/transpiled/directives/vary/Vary.js.map +1 -1
- package/transpiled/directives/vary/embeddings/Authority.d.ts +5 -0
- package/transpiled/directives/vary/embeddings/Authority.js +10 -0
- package/transpiled/directives/vary/embeddings/Authority.js.map +1 -0
- package/transpiled/directives/vary/embeddings/Embedding.d.ts +2 -1
- package/transpiled/directives/vary/embeddings/Parameter.d.ts +7 -0
- package/transpiled/directives/vary/embeddings/Parameter.js +14 -0
- package/transpiled/directives/vary/embeddings/Parameter.js.map +1 -0
- package/transpiled/directives/vary/embeddings/index.d.ts +2 -2
- package/transpiled/directives/vary/embeddings/index.js +8 -4
- package/transpiled/directives/vary/embeddings/index.js.map +1 -1
- package/transpiled/exceptions.d.ts +3 -2
- package/transpiled/exceptions.js +13 -7
- package/transpiled/exceptions.js.map +1 -1
- package/transpiled/manifest.js +10 -11
- package/transpiled/manifest.js.map +1 -1
- package/transpiled/schemas.d.ts +1 -1
- package/transpiled/schemas.js +2 -2
- package/transpiled/schemas.js.map +1 -1
- package/transpiled/tsconfig.tsbuildinfo +1 -1
- package/tsconfig.json +9 -7
- package/components/identity.basic/operations/create.d.ts +0 -10
- package/components/identity.basic/operations/create.js +0 -10
- package/components/identity.basic/operations/create.js.map +0 -1
- package/components/identity.basic/source/create.ts +0 -18
- package/components/identity.federation/operations/create.d.ts +0 -10
- package/components/identity.federation/operations/create.js.map +0 -1
- package/components/identity.federation/operations/schemas.d.ts +0 -59
- package/components/identity.federation/operations/schemas.js +0 -9
- package/components/identity.federation/operations/schemas.js.map +0 -1
- package/components/identity.federation/operations/types.js.map +0 -1
- package/components/identity.federation/source/schemas.ts +0 -61
- package/components/octets.storage/operations/permute.js +0 -7
- package/source/HTTP/Server.test.ts +0 -126
- package/source/directives/octets/Permute.ts +0 -43
- package/transpiled/directives/octets/Permute.d.ts +0 -10
- package/transpiled/directives/octets/Permute.js +0 -56
- package/transpiled/directives/octets/Permute.js.map +0 -1
- /package/{components/identity.federation/operations → transpiled/directives/flow}/types.js +0 -0
package/features/streams.feature
CHANGED
package/features/timing.feature
CHANGED
|
@@ -12,6 +12,7 @@ Feature: Server timing
|
|
|
12
12
|
When the following request is received:
|
|
13
13
|
"""
|
|
14
14
|
POST /pots/ HTTP/1.1
|
|
15
|
+
host: nex.toa.io
|
|
15
16
|
content-type: application/yaml
|
|
16
17
|
|
|
17
18
|
title: Hello
|
|
@@ -22,7 +23,7 @@ Feature: Server timing
|
|
|
22
23
|
server-timing:
|
|
23
24
|
"""
|
|
24
25
|
|
|
25
|
-
Scenario: Server timing is sent when
|
|
26
|
+
Scenario: Server timing is sent when `trace` is enabled
|
|
26
27
|
Given the annotation:
|
|
27
28
|
"""
|
|
28
29
|
trace: true
|
|
@@ -30,6 +31,7 @@ Feature: Server timing
|
|
|
30
31
|
When the following request is received:
|
|
31
32
|
"""
|
|
32
33
|
POST /pots/ HTTP/1.1
|
|
34
|
+
host: nex.toa.io
|
|
33
35
|
content-type: application/yaml
|
|
34
36
|
|
|
35
37
|
title: Hello
|
|
@@ -41,3 +43,27 @@ Feature: Server timing
|
|
|
41
43
|
201 Created
|
|
42
44
|
server-timing:
|
|
43
45
|
"""
|
|
46
|
+
|
|
47
|
+
Scenario: Octets timing
|
|
48
|
+
Given the annotation:
|
|
49
|
+
"""yaml
|
|
50
|
+
trace: true
|
|
51
|
+
/:
|
|
52
|
+
io:output: true
|
|
53
|
+
auth:anonymous: true
|
|
54
|
+
octets:context: octets
|
|
55
|
+
POST:
|
|
56
|
+
octets:store: ~
|
|
57
|
+
"""
|
|
58
|
+
When the stream of `lenna.png` is received with the following headers:
|
|
59
|
+
"""
|
|
60
|
+
POST / HTTP/1.1
|
|
61
|
+
host: nex.toa.io
|
|
62
|
+
content-type: application/octet-stream
|
|
63
|
+
"""
|
|
64
|
+
# to debug, break it and look at the console
|
|
65
|
+
Then the following reply is sent:
|
|
66
|
+
"""
|
|
67
|
+
201 Created
|
|
68
|
+
server-timing:
|
|
69
|
+
"""
|
package/features/vary.feature
CHANGED
|
@@ -15,6 +15,7 @@ Feature: The Vary directive family
|
|
|
15
15
|
When the following request is received:
|
|
16
16
|
"""
|
|
17
17
|
GET /echo/ HTTP/1.1
|
|
18
|
+
host: nex.toa.io
|
|
18
19
|
accept: application/yaml
|
|
19
20
|
accept-language: <accept>
|
|
20
21
|
"""
|
|
@@ -54,6 +55,7 @@ Feature: The Vary directive family
|
|
|
54
55
|
When the following request is received:
|
|
55
56
|
"""
|
|
56
57
|
GET /echo/ HTTP/1.1
|
|
58
|
+
host: nex.toa.io
|
|
57
59
|
accept: application/yaml
|
|
58
60
|
accept-language: fr
|
|
59
61
|
"""
|
|
@@ -78,6 +80,7 @@ Feature: The Vary directive family
|
|
|
78
80
|
When the following request is received:
|
|
79
81
|
"""
|
|
80
82
|
GET /echo/ HTTP/1.1
|
|
83
|
+
host: nex.toa.io
|
|
81
84
|
accept: application/yaml
|
|
82
85
|
foo: bar
|
|
83
86
|
"""
|
|
@@ -104,6 +107,7 @@ Feature: The Vary directive family
|
|
|
104
107
|
When the following request is received:
|
|
105
108
|
"""
|
|
106
109
|
GET /echo/ HTTP/1.1
|
|
110
|
+
host: nex.toa.io
|
|
107
111
|
accept: application/yaml
|
|
108
112
|
foo: bar
|
|
109
113
|
"""
|
|
@@ -134,6 +138,7 @@ Feature: The Vary directive family
|
|
|
134
138
|
When the following request is received:
|
|
135
139
|
"""
|
|
136
140
|
GET /echo/ HTTP/1.1
|
|
141
|
+
host: nex.toa.io
|
|
137
142
|
accept: application/yaml
|
|
138
143
|
<header>: <value>
|
|
139
144
|
"""
|
|
@@ -151,6 +156,30 @@ Feature: The Vary directive family
|
|
|
151
156
|
| bar | baz |
|
|
152
157
|
| accept-language | en |
|
|
153
158
|
|
|
159
|
+
Scenario: Embedding route parameter
|
|
160
|
+
Given the `echo` is running with the following manifest:
|
|
161
|
+
"""yaml
|
|
162
|
+
exposition:
|
|
163
|
+
/:friend:
|
|
164
|
+
io:output: true
|
|
165
|
+
GET:
|
|
166
|
+
vary:embed:
|
|
167
|
+
name: /:friend
|
|
168
|
+
endpoint: compute
|
|
169
|
+
"""
|
|
170
|
+
When the following request is received:
|
|
171
|
+
"""
|
|
172
|
+
GET /echo/Ken/ HTTP/1.1
|
|
173
|
+
host: nex.toa.io
|
|
174
|
+
accept: text/plain
|
|
175
|
+
"""
|
|
176
|
+
Then the following reply is sent:
|
|
177
|
+
"""
|
|
178
|
+
200 OK
|
|
179
|
+
|
|
180
|
+
Hello Ken
|
|
181
|
+
"""
|
|
182
|
+
|
|
154
183
|
Scenario: Adding headers used by defined embeddings to CORS permissions
|
|
155
184
|
Given the `echo` is running with the following manifest:
|
|
156
185
|
"""yaml
|
|
@@ -170,6 +199,7 @@ Feature: The Vary directive family
|
|
|
170
199
|
When the following request is received:
|
|
171
200
|
"""
|
|
172
201
|
OPTIONS / HTTP/1.1
|
|
202
|
+
host: nex.toa.io
|
|
173
203
|
origin: https://example.com
|
|
174
204
|
access-control-request-headers: whatever
|
|
175
205
|
"""
|
|
@@ -178,3 +208,44 @@ Feature: The Vary directive family
|
|
|
178
208
|
204 No Content
|
|
179
209
|
access-control-allow-headers: accept, authorization, content-type, etag, if-match, if-none-match, accept-language, foo, bar
|
|
180
210
|
"""
|
|
211
|
+
|
|
212
|
+
Scenario: Embedding authority
|
|
213
|
+
Given the annotation:
|
|
214
|
+
"""yaml
|
|
215
|
+
authorities:
|
|
216
|
+
one: the.one.com
|
|
217
|
+
"""
|
|
218
|
+
Given the `echo` is running with the following manifest:
|
|
219
|
+
"""yaml
|
|
220
|
+
exposition:
|
|
221
|
+
/:
|
|
222
|
+
io:output: true
|
|
223
|
+
GET:
|
|
224
|
+
vary:embed:
|
|
225
|
+
name: authority
|
|
226
|
+
endpoint: compute
|
|
227
|
+
"""
|
|
228
|
+
When the following request is received:
|
|
229
|
+
"""
|
|
230
|
+
GET /echo/ HTTP/1.1
|
|
231
|
+
host: the.one.com
|
|
232
|
+
accept: text/plain
|
|
233
|
+
"""
|
|
234
|
+
Then the following reply is sent:
|
|
235
|
+
"""
|
|
236
|
+
200 OK
|
|
237
|
+
|
|
238
|
+
Hello one
|
|
239
|
+
"""
|
|
240
|
+
When the following request is received:
|
|
241
|
+
"""
|
|
242
|
+
GET /echo/ HTTP/1.1
|
|
243
|
+
host: the.two.com
|
|
244
|
+
accept: text/plain
|
|
245
|
+
"""
|
|
246
|
+
Then the following reply is sent:
|
|
247
|
+
"""
|
|
248
|
+
200 OK
|
|
249
|
+
|
|
250
|
+
Hello the.two.com
|
|
251
|
+
"""
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@toa.io/extensions.exposition",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.60",
|
|
4
4
|
"description": "Toa Exposition",
|
|
5
5
|
"author": "temich <tema.gurtovoy@gmail.com>",
|
|
6
6
|
"homepage": "https://github.com/toa-io/toa#readme",
|
|
@@ -17,37 +17,45 @@
|
|
|
17
17
|
"access": "public"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@toa.io/core": "1.0.0-alpha.
|
|
21
|
-
"@toa.io/generic": "1.0.0-alpha.
|
|
22
|
-
"@toa.io/schemas": "1.0.0-alpha.
|
|
20
|
+
"@toa.io/core": "1.0.0-alpha.59",
|
|
21
|
+
"@toa.io/generic": "1.0.0-alpha.59",
|
|
22
|
+
"@toa.io/schemas": "1.0.0-alpha.59",
|
|
23
23
|
"bcryptjs": "2.4.3",
|
|
24
24
|
"error-value": "0.3.0",
|
|
25
25
|
"js-yaml": "4.1.0",
|
|
26
26
|
"matchacho": "0.3.5",
|
|
27
27
|
"msgpackr": "1.10.1",
|
|
28
28
|
"negotiator": "0.6.3",
|
|
29
|
-
"paseto": "3.1.4"
|
|
29
|
+
"paseto": "3.1.4",
|
|
30
|
+
"ultrafetch": "0.4.0"
|
|
30
31
|
},
|
|
31
32
|
"jest": {
|
|
32
|
-
"
|
|
33
|
+
"transform": {
|
|
34
|
+
"^.+\\.ts$": "jest-esbuild"
|
|
35
|
+
},
|
|
33
36
|
"testEnvironment": "node"
|
|
34
37
|
},
|
|
35
38
|
"scripts": {
|
|
36
39
|
"test": "jest",
|
|
37
|
-
"transpile": "tsc && npm run transpile:basic && npm run transpile:tokens && npm run transpile:roles && npm run transpile:federation",
|
|
40
|
+
"transpile": "tsc && npm run transpile:bans && npm run transpile:basic && npm run transpile:tokens && npm run transpile:roles && npm run transpile:federation",
|
|
41
|
+
"transpile:bans": "tsc -p ./components/identity.bans",
|
|
38
42
|
"transpile:basic": "tsc -p ./components/identity.basic",
|
|
39
|
-
"pretranspile:federation": "js-yaml components/identity.federation/manifest.toa.yaml | jq -M '{ type: \"object\", properties: {configuration: .configuration.schema, entity: .entity.schema }, additionalProperties: false}' > schemas.json && json2ts -i schemas.json -o components/identity.federation/source/schemas.ts && rm schemas.json",
|
|
40
|
-
"transpile:federation": "tsc -p ./components/identity.federation",
|
|
41
43
|
"transpile:tokens": "tsc -p ./components/identity.tokens",
|
|
42
44
|
"transpile:roles": "tsc -p ./components/identity.roles",
|
|
43
|
-
"
|
|
45
|
+
"transpile:federation": "tsc -p ./components/identity.federation",
|
|
46
|
+
"features": "cucumber-js",
|
|
47
|
+
"features:security": "cucumber-js --tags @security",
|
|
48
|
+
"features:octets": "cucumber-js features/octets.*"
|
|
44
49
|
},
|
|
45
50
|
"devDependencies": {
|
|
46
|
-
"@
|
|
47
|
-
"@
|
|
51
|
+
"@swc/core": "1.6.6",
|
|
52
|
+
"@swc/helpers": "0.5.11",
|
|
53
|
+
"@toa.io/agent": "1.0.0-alpha.59",
|
|
54
|
+
"@toa.io/extensions.storages": "1.0.0-alpha.59",
|
|
48
55
|
"@types/bcryptjs": "2.4.3",
|
|
49
56
|
"@types/cors": "2.8.13",
|
|
50
|
-
"@types/negotiator": "0.6.1"
|
|
57
|
+
"@types/negotiator": "0.6.1",
|
|
58
|
+
"jest-esbuild": "0.3.0"
|
|
51
59
|
},
|
|
52
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "81bf1dbf5b3f8dcb19097aca19947ddb60cb96be"
|
|
53
61
|
}
|
package/readme.md
CHANGED
|
@@ -20,7 +20,8 @@ exposition:
|
|
|
20
20
|
# context.toa.yaml
|
|
21
21
|
|
|
22
22
|
exposition:
|
|
23
|
-
|
|
23
|
+
authorities:
|
|
24
|
+
example: api.example.com
|
|
24
25
|
```
|
|
25
26
|
|
|
26
27
|
```http
|
|
@@ -117,33 +118,36 @@ The Exposition annotation declares options for its deployment.
|
|
|
117
118
|
```yaml
|
|
118
119
|
annotations:
|
|
119
120
|
'@toa.io/extensions.exposition':
|
|
120
|
-
|
|
121
|
+
authorities:
|
|
122
|
+
example: the.example.com
|
|
121
123
|
```
|
|
122
124
|
|
|
123
125
|
A shortcut is also available.
|
|
124
126
|
|
|
125
127
|
```yaml
|
|
126
128
|
exposition:
|
|
127
|
-
|
|
129
|
+
authorities:
|
|
130
|
+
example: the.example.com
|
|
128
131
|
```
|
|
129
132
|
|
|
130
|
-
| Option |
|
|
131
|
-
|
|
132
|
-
| `
|
|
133
|
-
| `class` |
|
|
134
|
-
| `annotations` |
|
|
135
|
-
| `debug` |
|
|
136
|
-
| `trace` |
|
|
133
|
+
| Option | Description |
|
|
134
|
+
|---------------|-------------------------------------------------------------------------------------------------------------------|
|
|
135
|
+
| `auhorities` | Mapping of authority identifiers to domain names. See [Authorities](documentation/authorities.md). |
|
|
136
|
+
| `class` | Ingress class. |
|
|
137
|
+
| `annotations` | Ingress annotations. |
|
|
138
|
+
| `debug` | Output server errors. Default `false`. |
|
|
139
|
+
| `trace` | Output [server timing](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Server-Timing). Default `false`. |
|
|
137
140
|
|
|
138
141
|
### Context resources
|
|
139
142
|
|
|
140
|
-
Exposition
|
|
143
|
+
Exposition annotation can contain [resource declaration](documentation/tree.md) under the `/` key.
|
|
141
144
|
|
|
142
145
|
```yaml
|
|
143
146
|
# context.toa.yaml
|
|
144
147
|
|
|
145
148
|
exposition:
|
|
146
|
-
|
|
149
|
+
authorities:
|
|
150
|
+
example: the.example.com
|
|
147
151
|
/:
|
|
148
152
|
/code:
|
|
149
153
|
GET:
|
|
@@ -162,8 +166,9 @@ If component resource branch conflicts with an annotation, the annotation takes
|
|
|
162
166
|
|
|
163
167
|
```yaml
|
|
164
168
|
exposition:
|
|
165
|
-
|
|
166
|
-
|
|
169
|
+
authorities:
|
|
170
|
+
example: the.example.com
|
|
171
|
+
example@staging: the.example.dev
|
|
167
172
|
class: alb
|
|
168
173
|
debug@staging: true
|
|
169
174
|
annotations:
|
package/schemas/node.cos.yaml
CHANGED
package/schemas/query.cos.yaml
CHANGED
|
@@ -1,17 +1,11 @@
|
|
|
1
|
-
_: true
|
|
2
1
|
id?: string
|
|
3
2
|
criteria?: string
|
|
4
3
|
sort?: string
|
|
5
|
-
omit
|
|
4
|
+
omit?:
|
|
6
5
|
$ref: range
|
|
7
|
-
|
|
8
|
-
value: 0
|
|
9
|
-
range: [0, 1000]
|
|
10
|
-
limit:
|
|
6
|
+
limit?:
|
|
11
7
|
$ref: range
|
|
12
|
-
default:
|
|
13
|
-
value: 10
|
|
14
|
-
range: [1, 1000]
|
|
15
|
-
required: [value]
|
|
16
8
|
selectors?: [string]
|
|
17
9
|
projection?: [string]
|
|
10
|
+
parameters?: [string]
|
|
11
|
+
_: true
|
package/source/Annotation.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export interface Annotation {
|
|
2
|
-
|
|
2
|
+
authorities: Record<string, string>
|
|
3
3
|
class?: string
|
|
4
4
|
annotations?: Record<string, string>
|
|
5
|
-
debug
|
|
6
|
-
trace
|
|
5
|
+
debug?: boolean
|
|
6
|
+
trace?: boolean
|
|
7
7
|
'/'?: object // parsed and validated by RTD.syntax.parse
|
|
8
8
|
}
|
package/source/Composition.ts
CHANGED
|
@@ -19,11 +19,11 @@ export class Composition extends Connector {
|
|
|
19
19
|
|
|
20
20
|
this.depends(composition)
|
|
21
21
|
|
|
22
|
-
console.info('Composition complete
|
|
22
|
+
console.info('Composition complete')
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
protected override dispose (): void {
|
|
26
|
-
console.info('Composition shutdown complete
|
|
26
|
+
console.info('Composition shutdown complete')
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
|
package/source/Directive.ts
CHANGED
|
@@ -17,11 +17,8 @@ export class Directives implements RTD.Directives {
|
|
|
17
17
|
|
|
18
18
|
const output = await set.family.preflight(set.directives, context, parameters)
|
|
19
19
|
|
|
20
|
-
if (output !== null)
|
|
21
|
-
await this.settle(context, output)
|
|
22
|
-
|
|
20
|
+
if (output !== null)
|
|
23
21
|
return output
|
|
24
|
-
}
|
|
25
22
|
}
|
|
26
23
|
|
|
27
24
|
return null
|
|
@@ -93,5 +90,7 @@ export const shortcuts: RTD.syntax.Shortcuts = new Map([
|
|
|
93
90
|
['id', 'auth:id'],
|
|
94
91
|
['role', 'auth:role'],
|
|
95
92
|
['rule', 'auth:rule'],
|
|
96
|
-
['incept', 'auth:incept']
|
|
93
|
+
['incept', 'auth:incept'],
|
|
94
|
+
['input', 'io:input'],
|
|
95
|
+
['output', 'io:output']
|
|
97
96
|
])
|
package/source/Endpoint.ts
CHANGED
|
@@ -1,34 +1,37 @@
|
|
|
1
|
-
import { type Component } from '@toa.io/core'
|
|
2
|
-
import { type Remotes } from './Remotes'
|
|
3
1
|
import { Mapping } from './Mapping'
|
|
4
|
-
import { type Context } from './Context'
|
|
5
2
|
import * as http from './HTTP'
|
|
3
|
+
import type { Introspection, Schema } from './Introspection'
|
|
4
|
+
import type { Remote } from '@toa.io/core'
|
|
5
|
+
import type { Remotes } from './Remotes'
|
|
6
|
+
import type { Context } from './Context'
|
|
6
7
|
import type * as RTD from './RTD'
|
|
7
8
|
|
|
8
9
|
export class Endpoint implements RTD.Endpoint {
|
|
9
10
|
private readonly endpoint: string
|
|
10
11
|
private readonly mapping: Mapping
|
|
11
|
-
private readonly discovery: Promise<
|
|
12
|
-
private remote:
|
|
12
|
+
private readonly discovery: Promise<Remote>
|
|
13
|
+
private remote: Remote | null = null
|
|
13
14
|
|
|
14
|
-
public constructor (endpoint: string, mapping: Mapping, discovery: Promise<
|
|
15
|
+
public constructor (endpoint: string, mapping: Mapping, discovery: Promise<Remote>) {
|
|
15
16
|
this.endpoint = endpoint
|
|
16
17
|
this.mapping = mapping
|
|
17
18
|
this.discovery = discovery
|
|
18
19
|
}
|
|
19
20
|
|
|
20
|
-
public async call
|
|
21
|
-
(context: http.Context, parameters: RTD.Parameter[]): Promise<http.OutgoingMessage> {
|
|
21
|
+
public async call (context: http.Context, parameters: RTD.Parameter[]): Promise<http.OutgoingMessage> {
|
|
22
22
|
const body = await context.body()
|
|
23
23
|
const query = this.query(context)
|
|
24
24
|
const request = this.mapping.fit(body, query, parameters)
|
|
25
25
|
|
|
26
26
|
this.remote ??= await this.discovery
|
|
27
27
|
|
|
28
|
+
if (context.debug)
|
|
29
|
+
console.debug('Call', `${this.remote.locator.id}.${this.endpoint}`, request)
|
|
30
|
+
|
|
28
31
|
const reply = await this.remote.invoke(this.endpoint, request)
|
|
29
32
|
|
|
30
33
|
if (reply instanceof Error)
|
|
31
|
-
throw new http.
|
|
34
|
+
throw new http.UnprocessableEntity(reply)
|
|
32
35
|
|
|
33
36
|
const message: http.OutgoingMessage = {}
|
|
34
37
|
|
|
@@ -42,10 +45,8 @@ export class Endpoint implements RTD.Endpoint {
|
|
|
42
45
|
message.headers.set('etag', etag)
|
|
43
46
|
|
|
44
47
|
return message
|
|
45
|
-
} else
|
|
48
|
+
} else
|
|
46
49
|
message.headers.set('etag', `"${reply._version.toString()}"`)
|
|
47
|
-
delete reply._version
|
|
48
|
-
}
|
|
49
50
|
}
|
|
50
51
|
|
|
51
52
|
message.body = reply
|
|
@@ -53,6 +54,41 @@ export class Endpoint implements RTD.Endpoint {
|
|
|
53
54
|
return message
|
|
54
55
|
}
|
|
55
56
|
|
|
57
|
+
public async explain (parameters: RTD.Parameter[]): Promise<Introspection> {
|
|
58
|
+
this.remote ??= await this.discovery
|
|
59
|
+
|
|
60
|
+
// eslint-disable-next-line @typescript-eslint/await-thenable
|
|
61
|
+
const operation = await this.remote.explain(this.endpoint)
|
|
62
|
+
|
|
63
|
+
let route: Record<string, Schema> | null = null
|
|
64
|
+
|
|
65
|
+
if (operation.input?.type === 'object')
|
|
66
|
+
for (const parameter of parameters) {
|
|
67
|
+
const schema = operation.input.properties[parameter.name]
|
|
68
|
+
|
|
69
|
+
// eslint-disable-next-line max-depth
|
|
70
|
+
if (schema !== undefined) {
|
|
71
|
+
route ??= {}
|
|
72
|
+
route[parameter.name] = schema
|
|
73
|
+
|
|
74
|
+
delete operation.input.properties[parameter.name]
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const query = this.mapping.explain(operation)
|
|
79
|
+
const introspection: Introspection = {}
|
|
80
|
+
|
|
81
|
+
if (route !== null)
|
|
82
|
+
introspection.route = route
|
|
83
|
+
|
|
84
|
+
if (query !== null)
|
|
85
|
+
introspection.query = query
|
|
86
|
+
|
|
87
|
+
Object.assign(introspection, operation)
|
|
88
|
+
|
|
89
|
+
return introspection
|
|
90
|
+
}
|
|
91
|
+
|
|
56
92
|
public async close (): Promise<void> {
|
|
57
93
|
this.remote ??= await this.discovery
|
|
58
94
|
|
package/source/Factory.ts
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
|
+
import assert from 'node:assert'
|
|
2
|
+
import { decode } from '@toa.io/generic'
|
|
1
3
|
import { Tenant } from './Tenant'
|
|
2
4
|
import { Gateway } from './Gateway'
|
|
3
5
|
import { Remotes } from './Remotes'
|
|
4
|
-
import { Tree
|
|
5
|
-
import { Server } from './HTTP'
|
|
6
|
+
import { Tree } from './RTD'
|
|
6
7
|
import { EndpointsFactory } from './Endpoint'
|
|
7
8
|
import { families, interceptors } from './directives'
|
|
8
9
|
import { DirectivesFactory } from './Directive'
|
|
9
10
|
import { Composition } from './Composition'
|
|
10
11
|
import * as root from './root'
|
|
11
12
|
import { Interception } from './Interception'
|
|
13
|
+
import * as http from './HTTP'
|
|
14
|
+
import type { syntax } from './RTD'
|
|
12
15
|
import type { Broadcast } from './Gateway'
|
|
13
16
|
import type { Connector, Locator, extensions } from '@toa.io/core'
|
|
14
17
|
|
|
@@ -26,16 +29,12 @@ export class Factory implements extensions.Factory {
|
|
|
26
29
|
}
|
|
27
30
|
|
|
28
31
|
public service (): Connector | null {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const broadcast: Broadcast = this.boot.bindings.broadcast(CHANNEL)
|
|
32
|
-
|
|
33
|
-
const server = Server.create({
|
|
34
|
-
methods: syntax.verbs,
|
|
35
|
-
debug,
|
|
36
|
-
trace
|
|
37
|
-
})
|
|
32
|
+
assert.ok(process.env.TOA_EXPOSITION_PROPERTIES,
|
|
33
|
+
'TOA_EXPOSITION_PROPERTIES is undefined')
|
|
38
34
|
|
|
35
|
+
const options = decode<http.Options>(process.env.TOA_EXPOSITION_PROPERTIES)
|
|
36
|
+
const broadcast: Broadcast = this.boot.bindings.broadcast(CHANNEL)
|
|
37
|
+
const server = http.Server.create({ ...options })
|
|
39
38
|
const remotes = new Remotes(this.boot)
|
|
40
39
|
const node = root.resolve()
|
|
41
40
|
const methods = new EndpointsFactory(remotes)
|