@toa.io/extensions.exposition 1.0.0-alpha.7 → 1.0.0-alpha.71
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/assertions-as-values.js +2 -1
- package/components/identity.federation/operations/lib/assertions-as-values.js.map +1 -1
- 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/assertions-as-values.ts +4 -2
- 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 +6 -7
- package/components/octets.storage/operations/get.js +2 -2
- package/components/octets.storage/operations/store.js +113 -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 +81 -23
- package/documentation/protocol.md +13 -3
- 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 +6 -1
- 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/methods.feature +47 -0
- package/features/octets.download.feature +189 -0
- package/features/octets.entries.feature +8 -1
- package/features/octets.feature +82 -54
- 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/realtime.feature +34 -0
- 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/Parameters.ts +4 -1
- package/features/steps/Realtime.ts +151 -0
- 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 +5 -0
- package/features/timing.feature +4 -1
- package/features/vary.feature +71 -0
- package/package.json +23 -14
- package/readme.md +19 -14
- package/schemas/annotation.cos.yaml +1 -1
- package/schemas/method.cos.yaml +1 -1
- package/schemas/node.cos.yaml +1 -0
- package/schemas/octets/store.cos.yaml +25 -3
- package/schemas/query.cos.yaml +4 -10
- package/source/Annotation.ts +3 -3
- package/source/Composition.ts +0 -6
- package/source/Directive.ts +4 -5
- package/source/Endpoint.ts +52 -12
- package/source/Factory.ts +10 -11
- package/source/Gateway.ts +48 -19
- package/source/HTTP/Context.ts +25 -2
- package/source/HTTP/Server.ts +52 -44
- package/source/HTTP/exceptions.ts +13 -1
- package/source/HTTP/formats/index.ts +3 -3
- package/source/HTTP/messages.test.ts +45 -2
- package/source/HTTP/messages.ts +23 -5
- 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 +33 -23
- 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/cors/CORS.ts +1 -1
- 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 +4 -4
- package/source/directives/io/Output.ts +4 -3
- package/source/directives/octets/Context.ts +3 -2
- package/source/directives/octets/Fetch.ts +11 -10
- package/source/directives/octets/List.ts +5 -5
- package/source/directives/octets/Octets.ts +1 -3
- package/source/directives/octets/Store.ts +30 -10
- package/source/directives/octets/bytes.test.ts +30 -0
- package/source/directives/octets/bytes.ts +18 -0
- package/source/directives/octets/schemas.ts +4 -6
- package/source/directives/octets/workflows/Execution.ts +60 -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 +23 -11
- package/source/manifest.ts +10 -11
- package/source/schemas.ts +1 -1
- package/transpiled/Annotation.d.ts +3 -3
- package/transpiled/Composition.d.ts +0 -1
- package/transpiled/Composition.js +0 -4
- 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 +32 -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 +16 -2
- package/transpiled/HTTP/Context.js.map +1 -1
- package/transpiled/HTTP/Server.d.ts +13 -2
- package/transpiled/HTTP/Server.js +39 -36
- package/transpiled/HTTP/Server.js.map +1 -1
- package/transpiled/HTTP/exceptions.d.ts +7 -1
- package/transpiled/HTTP/exceptions.js +13 -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 +24 -5
- 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/cors/CORS.js +1 -1
- package/transpiled/directives/cors/CORS.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/io/Output.js +2 -2
- package/transpiled/directives/io/Output.js.map +1 -1
- package/transpiled/directives/octets/Context.js +4 -24
- package/transpiled/directives/octets/Context.js.map +1 -1
- package/transpiled/directives/octets/Fetch.d.ts +3 -3
- package/transpiled/directives/octets/Fetch.js +8 -8
- package/transpiled/directives/octets/Fetch.js.map +1 -1
- package/transpiled/directives/octets/List.d.ts +3 -3
- package/transpiled/directives/octets/List.js +3 -3
- package/transpiled/directives/octets/List.js.map +1 -1
- package/transpiled/directives/octets/Octets.js +1 -3
- package/transpiled/directives/octets/Octets.js.map +1 -1
- package/transpiled/directives/octets/Store.d.ts +6 -1
- package/transpiled/directives/octets/Store.js +17 -7
- package/transpiled/directives/octets/Store.js.map +1 -1
- package/transpiled/directives/octets/bytes.d.ts +1 -0
- package/transpiled/directives/octets/bytes.js +21 -0
- package/transpiled/directives/octets/bytes.js.map +1 -0
- package/transpiled/directives/octets/schemas.d.ts +4 -6
- package/transpiled/directives/octets/schemas.js +1 -3
- package/transpiled/directives/octets/schemas.js.map +1 -1
- package/transpiled/directives/octets/workflows/Execution.d.ts +5 -1
- package/transpiled/directives/octets/workflows/Execution.js +44 -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 +14 -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/schemas/octets/context.cos.yaml +0 -1
- package/source/HTTP/Server.test.ts +0 -126
- package/source/directives/octets/Permute.ts +0 -44
- package/transpiled/directives/octets/Permute.d.ts +0 -11
- package/transpiled/directives/octets/Permute.js +0 -58
- package/transpiled/directives/octets/Permute.js.map +0 -1
- /package/{components/identity.federation/operations → transpiled/directives/flow}/types.js +0 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
Feature: Probes
|
|
2
|
+
|
|
3
|
+
Scenario: Startup probe
|
|
4
|
+
Given the Gateway is running
|
|
5
|
+
And after 1 second
|
|
6
|
+
When the following request is received:
|
|
7
|
+
"""
|
|
8
|
+
GET /.ready HTTP/1.1
|
|
9
|
+
"""
|
|
10
|
+
Then the following reply is sent:
|
|
11
|
+
"""
|
|
12
|
+
200 OK
|
|
13
|
+
cache-control: no-store
|
|
14
|
+
"""
|
|
@@ -19,6 +19,7 @@ Feature: Queries
|
|
|
19
19
|
When the following request is received:
|
|
20
20
|
"""
|
|
21
21
|
GET /pots/pot/?id=99988d785d7d445cad45dbf8531f560b HTTP/1.1
|
|
22
|
+
host: nex.toa.io
|
|
22
23
|
accept: application/yaml
|
|
23
24
|
"""
|
|
24
25
|
Then the following reply is sent:
|
|
@@ -42,6 +43,7 @@ Feature: Queries
|
|
|
42
43
|
When the following request is received:
|
|
43
44
|
"""
|
|
44
45
|
GET /pots/?criteria=volume<300&limit=10 HTTP/1.1
|
|
46
|
+
host: nex.toa.io
|
|
45
47
|
accept: application/yaml
|
|
46
48
|
"""
|
|
47
49
|
Then the following reply is sent:
|
|
@@ -68,6 +70,7 @@ Feature: Queries
|
|
|
68
70
|
When the following request is received:
|
|
69
71
|
"""
|
|
70
72
|
GET /pots/?omit=1&limit=2 HTTP/1.1
|
|
73
|
+
host: nex.toa.io
|
|
71
74
|
accept: application/yaml
|
|
72
75
|
"""
|
|
73
76
|
Then the following reply is sent:
|
|
@@ -94,6 +97,7 @@ Feature: Queries
|
|
|
94
97
|
When the following request is received:
|
|
95
98
|
"""
|
|
96
99
|
GET /pots/?sort=volume:desc&limit=2 HTTP/1.1
|
|
100
|
+
host: nex.toa.io
|
|
97
101
|
accept: application/yaml
|
|
98
102
|
"""
|
|
99
103
|
Then the following reply is sent:
|
|
@@ -109,7 +113,7 @@ Feature: Queries
|
|
|
109
113
|
volume: 300
|
|
110
114
|
"""
|
|
111
115
|
|
|
112
|
-
Scenario: Request to a route with
|
|
116
|
+
Scenario: Request to a route with path variable
|
|
113
117
|
Given the `pots` is running with the following manifest:
|
|
114
118
|
"""yaml
|
|
115
119
|
exposition:
|
|
@@ -120,6 +124,7 @@ Feature: Queries
|
|
|
120
124
|
When the following request is received:
|
|
121
125
|
"""
|
|
122
126
|
GET /pots/99988d785d7d445cad45dbf8531f560b/ HTTP/1.1
|
|
127
|
+
host: nex.toa.io
|
|
123
128
|
accept: application/yaml
|
|
124
129
|
"""
|
|
125
130
|
Then the following reply is sent:
|
|
@@ -132,6 +137,37 @@ Feature: Queries
|
|
|
132
137
|
volume: 200
|
|
133
138
|
"""
|
|
134
139
|
|
|
140
|
+
Scenario: Request to a route with path variable using OR operator
|
|
141
|
+
Given the `pots` is running with the following manifest:
|
|
142
|
+
"""yaml
|
|
143
|
+
exposition:
|
|
144
|
+
/:volume:
|
|
145
|
+
io:output: true
|
|
146
|
+
GET:
|
|
147
|
+
query:
|
|
148
|
+
criteria: ',volume==100'
|
|
149
|
+
endpoint: enumerate
|
|
150
|
+
"""
|
|
151
|
+
When the following request is received:
|
|
152
|
+
"""
|
|
153
|
+
GET /pots/200/ HTTP/1.1
|
|
154
|
+
host: nex.toa.io
|
|
155
|
+
accept: application/yaml
|
|
156
|
+
"""
|
|
157
|
+
Then the following reply is sent:
|
|
158
|
+
"""
|
|
159
|
+
200 OK
|
|
160
|
+
content-type: application/yaml
|
|
161
|
+
|
|
162
|
+
- id: 4c4759e6f9c74da989d64511df42d6f4
|
|
163
|
+
title: First pot
|
|
164
|
+
volume: 100
|
|
165
|
+
temperature: 80
|
|
166
|
+
- id: 99988d785d7d445cad45dbf8531f560b
|
|
167
|
+
title: Second pot
|
|
168
|
+
volume: 200
|
|
169
|
+
"""
|
|
170
|
+
|
|
135
171
|
Scenario: Request to a route with predefined criteria
|
|
136
172
|
Given the `pots` is running with the following manifest:
|
|
137
173
|
"""yaml
|
|
@@ -146,6 +182,7 @@ Feature: Queries
|
|
|
146
182
|
When the following request is received:
|
|
147
183
|
"""
|
|
148
184
|
GET /pots/big/ HTTP/1.1
|
|
185
|
+
host: nex.toa.io
|
|
149
186
|
accept: application/yaml
|
|
150
187
|
"""
|
|
151
188
|
Then the following reply is sent:
|
|
@@ -161,7 +198,7 @@ Feature: Queries
|
|
|
161
198
|
volume: 400
|
|
162
199
|
"""
|
|
163
200
|
|
|
164
|
-
Scenario: Request to a route with
|
|
201
|
+
Scenario: Request to a route with open criteria
|
|
165
202
|
Given the `pots` is running with the following manifest:
|
|
166
203
|
"""yaml
|
|
167
204
|
exposition:
|
|
@@ -175,6 +212,7 @@ Feature: Queries
|
|
|
175
212
|
When the following request is received:
|
|
176
213
|
"""
|
|
177
214
|
GET /pots/big/?criteria=temperature>50 HTTP/1.1
|
|
215
|
+
host: nex.toa.io
|
|
178
216
|
accept: application/yaml
|
|
179
217
|
"""
|
|
180
218
|
Then the following reply is sent:
|
|
@@ -204,6 +242,7 @@ Feature: Queries
|
|
|
204
242
|
When the following request is received:
|
|
205
243
|
"""
|
|
206
244
|
GET /pots/hottest2/ HTTP/1.1
|
|
245
|
+
host: nex.toa.io
|
|
207
246
|
accept: application/yaml
|
|
208
247
|
"""
|
|
209
248
|
Then the following reply is sent:
|
|
@@ -220,3 +259,27 @@ Feature: Queries
|
|
|
220
259
|
volume: 100
|
|
221
260
|
temperature: 80
|
|
222
261
|
"""
|
|
262
|
+
|
|
263
|
+
Scenario: Query parameters
|
|
264
|
+
Given the `echo` is running with the following manifest:
|
|
265
|
+
"""yaml
|
|
266
|
+
exposition:
|
|
267
|
+
/:
|
|
268
|
+
GET:
|
|
269
|
+
io:output: true
|
|
270
|
+
query:
|
|
271
|
+
parameters: [name]
|
|
272
|
+
endpoint: compute
|
|
273
|
+
"""
|
|
274
|
+
When the following request is received:
|
|
275
|
+
"""
|
|
276
|
+
GET /echo/?name=John HTTP/1.1
|
|
277
|
+
host: nex.toa.io
|
|
278
|
+
accept: text/plain
|
|
279
|
+
"""
|
|
280
|
+
Then the following reply is sent:
|
|
281
|
+
"""
|
|
282
|
+
200 OK
|
|
283
|
+
|
|
284
|
+
Hello John
|
|
285
|
+
"""
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
Feature: Realtime events
|
|
2
|
+
|
|
3
|
+
Background:
|
|
4
|
+
Given the Realtime is running with the following annotation:
|
|
5
|
+
"""yaml
|
|
6
|
+
users.properties.sync: id
|
|
7
|
+
"""
|
|
8
|
+
And the identity Bob is consuming realtime events
|
|
9
|
+
|
|
10
|
+
Scenario: Getting realtime events
|
|
11
|
+
Given the `users.properties` is running with the following manifest:
|
|
12
|
+
"""yaml
|
|
13
|
+
exposition:
|
|
14
|
+
/:id:
|
|
15
|
+
anonymous: true
|
|
16
|
+
io:output: false
|
|
17
|
+
PATCH: transit
|
|
18
|
+
"""
|
|
19
|
+
When the following request is received:
|
|
20
|
+
"""
|
|
21
|
+
PATCH /users/properties/${{ Bob.id }}/ HTTP/1.1
|
|
22
|
+
host: nex.toa.io
|
|
23
|
+
content-type: application/yaml
|
|
24
|
+
|
|
25
|
+
newbie: false
|
|
26
|
+
"""
|
|
27
|
+
Then the following reply is sent:
|
|
28
|
+
"""
|
|
29
|
+
200 OK
|
|
30
|
+
"""
|
|
31
|
+
And the following event `users.properties.sync` is received by Bob:
|
|
32
|
+
"""yaml
|
|
33
|
+
newbie: false
|
|
34
|
+
"""
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
Feature: Request requirements
|
|
2
|
+
|
|
3
|
+
Scenario Outline: Require headers
|
|
4
|
+
Given the `pots` is running with the following manifest:
|
|
5
|
+
"""yaml
|
|
6
|
+
exposition:
|
|
7
|
+
/:
|
|
8
|
+
io:output: true
|
|
9
|
+
POST: create
|
|
10
|
+
/one/:id:
|
|
11
|
+
require:header: if-match
|
|
12
|
+
PUT: transit
|
|
13
|
+
/two/:id:
|
|
14
|
+
require:headers: [if-match]
|
|
15
|
+
PUT: transit
|
|
16
|
+
"""
|
|
17
|
+
When the following request is received:
|
|
18
|
+
"""
|
|
19
|
+
POST /pots/ HTTP/1.1
|
|
20
|
+
host: nex.toa.io
|
|
21
|
+
content-type: application/yaml
|
|
22
|
+
accept: application/yaml
|
|
23
|
+
|
|
24
|
+
title: Hello
|
|
25
|
+
volume: 1.5
|
|
26
|
+
"""
|
|
27
|
+
Then the following reply is sent:
|
|
28
|
+
"""
|
|
29
|
+
201 Created
|
|
30
|
+
etag: ${{ etag }}
|
|
31
|
+
|
|
32
|
+
id: ${{ id }}
|
|
33
|
+
"""
|
|
34
|
+
When the following request is received:
|
|
35
|
+
"""
|
|
36
|
+
PUT /pots/<variant>/${{ id }}/ HTTP/1.1
|
|
37
|
+
host: nex.toa.io
|
|
38
|
+
content-type: application/yaml
|
|
39
|
+
accept: text/plain
|
|
40
|
+
|
|
41
|
+
title: Hello
|
|
42
|
+
volume: 1.5
|
|
43
|
+
"""
|
|
44
|
+
Then the following reply is sent:
|
|
45
|
+
"""
|
|
46
|
+
400 Bad Request
|
|
47
|
+
|
|
48
|
+
Header required: if-match
|
|
49
|
+
"""
|
|
50
|
+
When the following request is received:
|
|
51
|
+
"""
|
|
52
|
+
PUT /pots/<variant>/${{ id }}/ HTTP/1.1
|
|
53
|
+
host: nex.toa.io
|
|
54
|
+
content-type: application/yaml
|
|
55
|
+
accept: text/plain
|
|
56
|
+
if-match: ${{ etag }}
|
|
57
|
+
|
|
58
|
+
title: Bye
|
|
59
|
+
"""
|
|
60
|
+
Then the following reply is sent:
|
|
61
|
+
"""
|
|
62
|
+
200 OK
|
|
63
|
+
"""
|
|
64
|
+
Examples:
|
|
65
|
+
| variant |
|
|
66
|
+
| one |
|
|
67
|
+
| two |
|
|
@@ -7,11 +7,13 @@ Feature: Response
|
|
|
7
7
|
io:output: true
|
|
8
8
|
GET:
|
|
9
9
|
anonymous: true
|
|
10
|
-
dev:stub:
|
|
10
|
+
dev:stub:
|
|
11
|
+
hello: world
|
|
11
12
|
"""
|
|
12
13
|
When the following request is received:
|
|
13
14
|
"""
|
|
14
15
|
GET / HTTP/1.1
|
|
16
|
+
host: nex.toa.io
|
|
15
17
|
accept: application/json
|
|
16
18
|
"""
|
|
17
19
|
Then the following reply is sent:
|
|
@@ -19,6 +21,37 @@ Feature: Response
|
|
|
19
21
|
200 OK
|
|
20
22
|
content-type: application/json
|
|
21
23
|
vary: accept
|
|
24
|
+
|
|
25
|
+
{"hello":"world"}
|
|
26
|
+
"""
|
|
27
|
+
When the following request is received:
|
|
28
|
+
"""
|
|
29
|
+
GET / HTTP/1.1
|
|
30
|
+
host: nex.toa.io
|
|
31
|
+
accept: application/yaml
|
|
32
|
+
"""
|
|
33
|
+
Then the following reply is sent:
|
|
34
|
+
"""
|
|
35
|
+
200 OK
|
|
36
|
+
content-type: application/yaml
|
|
37
|
+
vary: accept
|
|
38
|
+
|
|
39
|
+
hello: world
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
# default is JSON
|
|
43
|
+
When the following request is received:
|
|
44
|
+
"""
|
|
45
|
+
GET / HTTP/1.1
|
|
46
|
+
host: nex.toa.io
|
|
47
|
+
"""
|
|
48
|
+
Then the following reply is sent:
|
|
49
|
+
"""
|
|
50
|
+
200 OK
|
|
51
|
+
content-type: application/json
|
|
52
|
+
vary: accept
|
|
53
|
+
|
|
54
|
+
{"hello":"world"}
|
|
22
55
|
"""
|
|
23
56
|
|
|
24
57
|
Scenario: Error as YAML
|
|
@@ -32,11 +65,12 @@ Feature: Response
|
|
|
32
65
|
When the following request is received:
|
|
33
66
|
"""
|
|
34
67
|
GET /echo/ HTTP/1.1
|
|
68
|
+
host: nex.toa.io
|
|
35
69
|
accept: application/yaml
|
|
36
70
|
"""
|
|
37
71
|
Then the following reply is sent:
|
|
38
72
|
"""
|
|
39
|
-
|
|
73
|
+
422 Unprocessable Entity
|
|
40
74
|
content-type: application/yaml
|
|
41
75
|
|
|
42
76
|
code: CODE
|
|
@@ -54,11 +88,12 @@ Feature: Response
|
|
|
54
88
|
When the following request is received:
|
|
55
89
|
"""
|
|
56
90
|
GET /echo/ HTTP/1.1
|
|
91
|
+
host: nex.toa.io
|
|
57
92
|
accept: application/msgpack
|
|
58
93
|
"""
|
|
59
94
|
Then the following reply is sent:
|
|
60
95
|
"""
|
|
61
|
-
|
|
96
|
+
422 Unprocessable Entity
|
|
62
97
|
content-type: application/msgpack
|
|
63
98
|
"""
|
|
64
99
|
And response body contains MessagePack-encoded value:
|
package/features/routes.feature
CHANGED
|
@@ -18,6 +18,7 @@ Feature: Routes
|
|
|
18
18
|
When the following request is received:
|
|
19
19
|
"""
|
|
20
20
|
GET /basic/greeter<route> HTTP/1.1
|
|
21
|
+
host: nex.toa.io
|
|
21
22
|
accept: text/plain
|
|
22
23
|
"""
|
|
23
24
|
Then the following reply is sent:
|
|
@@ -42,6 +43,7 @@ Feature: Routes
|
|
|
42
43
|
When the following request is received:
|
|
43
44
|
"""
|
|
44
45
|
GET /greeter/ HTTP/1.1
|
|
46
|
+
host: nex.toa.io
|
|
45
47
|
accept: text/plain
|
|
46
48
|
"""
|
|
47
49
|
Then the following reply is sent:
|
|
@@ -65,6 +67,7 @@ Feature: Routes
|
|
|
65
67
|
When the following request is received:
|
|
66
68
|
"""
|
|
67
69
|
GET /greeter/baz/ HTTP/1.1
|
|
70
|
+
host: nex.toa.io
|
|
68
71
|
accept: text/plain
|
|
69
72
|
"""
|
|
70
73
|
Then the following reply is sent:
|
|
@@ -76,6 +79,7 @@ Feature: Routes
|
|
|
76
79
|
When the following request is received:
|
|
77
80
|
"""
|
|
78
81
|
GET /greeter/baz/qux/ HTTP/1.1
|
|
82
|
+
host: nex.toa.io
|
|
79
83
|
"""
|
|
80
84
|
Then the following reply is sent:
|
|
81
85
|
"""
|
|
@@ -84,6 +88,7 @@ Feature: Routes
|
|
|
84
88
|
When the following request is received:
|
|
85
89
|
"""
|
|
86
90
|
GET /greeter/foo/baz/bar/ HTTP/1.1
|
|
91
|
+
host: nex.toa.io
|
|
87
92
|
accept: text/plain
|
|
88
93
|
"""
|
|
89
94
|
Then the following reply is sent:
|
|
@@ -94,8 +99,7 @@ Feature: Routes
|
|
|
94
99
|
"""
|
|
95
100
|
|
|
96
101
|
Scenario: Routes with naming conflicts
|
|
97
|
-
Given the
|
|
98
|
-
And the `users` is running with the following manifest:
|
|
102
|
+
Given the `users` is running with the following manifest:
|
|
99
103
|
"""yaml
|
|
100
104
|
exposition:
|
|
101
105
|
/:
|
|
@@ -112,6 +116,7 @@ Feature: Routes
|
|
|
112
116
|
When the following request is received:
|
|
113
117
|
"""
|
|
114
118
|
GET /users/properties/b5534021e30042259badffbd1831e472/ HTTP/1.1
|
|
119
|
+
host: nex.toa.io
|
|
115
120
|
accept: application/yaml
|
|
116
121
|
"""
|
|
117
122
|
Then the following reply is sent:
|
|
@@ -123,6 +128,7 @@ Feature: Routes
|
|
|
123
128
|
When the following request is received:
|
|
124
129
|
"""
|
|
125
130
|
POST /users/ HTTP/1.1
|
|
131
|
+
host: nex.toa.io
|
|
126
132
|
content-type: application/yaml
|
|
127
133
|
|
|
128
134
|
name: Alice
|
|
@@ -131,3 +137,88 @@ Feature: Routes
|
|
|
131
137
|
"""
|
|
132
138
|
201 Created
|
|
133
139
|
"""
|
|
140
|
+
|
|
141
|
+
Scenario: Routes with default namespace conflicts
|
|
142
|
+
Given the `echo` is running with the following manifest:
|
|
143
|
+
"""yaml
|
|
144
|
+
exposition:
|
|
145
|
+
/:foo:
|
|
146
|
+
io:output: true
|
|
147
|
+
PUT: compute
|
|
148
|
+
"""
|
|
149
|
+
And the `echo.beacon` is running with the following manifest:
|
|
150
|
+
"""yaml
|
|
151
|
+
exposition:
|
|
152
|
+
/:
|
|
153
|
+
io:output: true
|
|
154
|
+
GET: hello
|
|
155
|
+
"""
|
|
156
|
+
When the following request is received:
|
|
157
|
+
"""
|
|
158
|
+
GET /echo/beacon/ HTTP/1.1
|
|
159
|
+
host: nex.toa.io
|
|
160
|
+
accept: application/yaml
|
|
161
|
+
"""
|
|
162
|
+
Then the following reply is sent:
|
|
163
|
+
"""
|
|
164
|
+
200 OK
|
|
165
|
+
"""
|
|
166
|
+
|
|
167
|
+
Scenario: Routes with parameters
|
|
168
|
+
Given the `echo` is running with the following manifest:
|
|
169
|
+
"""yaml
|
|
170
|
+
exposition:
|
|
171
|
+
/:a/:b:
|
|
172
|
+
io:output: true
|
|
173
|
+
GET: parameters
|
|
174
|
+
"""
|
|
175
|
+
When the following request is received:
|
|
176
|
+
"""
|
|
177
|
+
GET /echo/foo/bar/ HTTP/1.1
|
|
178
|
+
host: nex.toa.io
|
|
179
|
+
accept: application/yaml
|
|
180
|
+
"""
|
|
181
|
+
Then the following reply is sent:
|
|
182
|
+
"""
|
|
183
|
+
200 OK
|
|
184
|
+
|
|
185
|
+
a: foo
|
|
186
|
+
b: bar
|
|
187
|
+
"""
|
|
188
|
+
|
|
189
|
+
Scenario: Route forwarding
|
|
190
|
+
Given the `echo` is running with the following manifest:
|
|
191
|
+
"""yaml
|
|
192
|
+
exposition:
|
|
193
|
+
/show/:a/:b:
|
|
194
|
+
io:output: true
|
|
195
|
+
GET: parameters
|
|
196
|
+
/hello: /echo/show/foo/bar
|
|
197
|
+
/mirror/:a/:b: /echo/show/:a/:b
|
|
198
|
+
"""
|
|
199
|
+
When the following request is received:
|
|
200
|
+
"""
|
|
201
|
+
GET /echo/hello/ HTTP/1.1
|
|
202
|
+
host: nex.toa.io
|
|
203
|
+
accept: application/yaml
|
|
204
|
+
"""
|
|
205
|
+
Then the following reply is sent:
|
|
206
|
+
"""
|
|
207
|
+
200 OK
|
|
208
|
+
|
|
209
|
+
a: foo
|
|
210
|
+
b: bar
|
|
211
|
+
"""
|
|
212
|
+
When the following request is received:
|
|
213
|
+
"""
|
|
214
|
+
GET /echo/mirror/bar/baz/ HTTP/1.1
|
|
215
|
+
host: nex.toa.io
|
|
216
|
+
accept: application/yaml
|
|
217
|
+
"""
|
|
218
|
+
Then the following reply is sent:
|
|
219
|
+
"""
|
|
220
|
+
200 OK
|
|
221
|
+
|
|
222
|
+
a: bar
|
|
223
|
+
b: baz
|
|
224
|
+
"""
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { afterAll, beforeAll, binding, given } from 'cucumber-tsflow'
|
|
2
|
-
import { type DataTable } from '@cucumber/cucumber'
|
|
3
2
|
import { MongoClient } from 'mongodb'
|
|
3
|
+
import type { Collection } from 'mongodb'
|
|
4
|
+
import type { DataTable } from '@cucumber/cucumber'
|
|
4
5
|
|
|
5
6
|
@binding()
|
|
6
7
|
export class Database {
|
|
@@ -8,9 +9,7 @@ export class Database {
|
|
|
8
9
|
|
|
9
10
|
@given('the `{word}` database contains:')
|
|
10
11
|
public async upsert (id: string, table: DataTable): Promise<void> {
|
|
11
|
-
const
|
|
12
|
-
const collection = Database.client.db(namespace).collection(name)
|
|
13
|
-
|
|
12
|
+
const collection = this.collection(id)
|
|
14
13
|
const columns = table.raw()[0]
|
|
15
14
|
const rows = table.rows()
|
|
16
15
|
const documents: Document[] = []
|
|
@@ -22,7 +21,11 @@ export class Database {
|
|
|
22
21
|
const str = rows[r][c]
|
|
23
22
|
const int = parseInt(str)
|
|
24
23
|
|
|
25
|
-
document[columns[c]] = int.toString() === str
|
|
24
|
+
document[columns[c]] = int.toString() === str
|
|
25
|
+
? int
|
|
26
|
+
: str === 'null'
|
|
27
|
+
? null
|
|
28
|
+
: str
|
|
26
29
|
}
|
|
27
30
|
|
|
28
31
|
documents.push(document)
|
|
@@ -36,10 +39,7 @@ export class Database {
|
|
|
36
39
|
|
|
37
40
|
@given('the `{word}` database is empty')
|
|
38
41
|
public async truncate (id: string): Promise<void> {
|
|
39
|
-
|
|
40
|
-
const collection = Database.client.db(namespace).collection(name)
|
|
41
|
-
|
|
42
|
-
await collection.deleteMany({})
|
|
42
|
+
await this.collection(id).deleteMany({})
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
@beforeAll()
|
|
@@ -53,6 +53,13 @@ export class Database {
|
|
|
53
53
|
public static async disconnect (): Promise<void> {
|
|
54
54
|
await this.client.close()
|
|
55
55
|
}
|
|
56
|
+
|
|
57
|
+
private collection (id: string): Collection {
|
|
58
|
+
const [name, namespace = 'default'] = id.split('.').reverse()
|
|
59
|
+
const collection = `${namespace}_${name}`.toLowerCase()
|
|
60
|
+
|
|
61
|
+
return Database.client.db('toa-dev').collection(collection)
|
|
62
|
+
}
|
|
56
63
|
}
|
|
57
64
|
|
|
58
|
-
type Document = Record<string, string | number>
|
|
65
|
+
type Document = Record<string, string | number | null>
|
|
@@ -6,6 +6,7 @@ import { encode, timeout } from '@toa.io/generic'
|
|
|
6
6
|
import { Factory } from '../../source'
|
|
7
7
|
import * as syntax from '../../source/RTD/syntax'
|
|
8
8
|
import { shortcuts } from '../../source/Directive'
|
|
9
|
+
import type * as http from '../../source/HTTP'
|
|
9
10
|
|
|
10
11
|
let instance: Connector | null = null
|
|
11
12
|
|
|
@@ -23,11 +24,19 @@ export class Gateway {
|
|
|
23
24
|
process.env.TOA_EXPOSITION = encode(tree)
|
|
24
25
|
}
|
|
25
26
|
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
const { debug, trace, authorities } = annotation
|
|
28
|
+
const properties = Object.assign({}, DEFAULT_PROPERTIES)
|
|
28
29
|
|
|
29
|
-
if (
|
|
30
|
-
|
|
30
|
+
if (debug !== undefined)
|
|
31
|
+
properties.debug = debug
|
|
32
|
+
|
|
33
|
+
if (trace !== undefined)
|
|
34
|
+
properties.trace = trace
|
|
35
|
+
|
|
36
|
+
if (authorities !== undefined)
|
|
37
|
+
properties.authorities = authorities
|
|
38
|
+
|
|
39
|
+
process.env.TOA_EXPOSITION_PROPERTIES = encode(properties)
|
|
31
40
|
|
|
32
41
|
await Gateway.stop()
|
|
33
42
|
|
|
@@ -54,7 +63,8 @@ export class Gateway {
|
|
|
54
63
|
if (instance !== null)
|
|
55
64
|
return
|
|
56
65
|
|
|
57
|
-
process.env.TOA_EXPOSITION ??=
|
|
66
|
+
process.env.TOA_EXPOSITION ??= DEFAULT_TREE
|
|
67
|
+
process.env.TOA_EXPOSITION_PROPERTIES ??= encode(DEFAULT_PROPERTIES)
|
|
58
68
|
|
|
59
69
|
this.writeConfiguration()
|
|
60
70
|
|
|
@@ -76,6 +86,7 @@ export class Gateway {
|
|
|
76
86
|
return
|
|
77
87
|
|
|
78
88
|
delete process.env.TOA_EXPOSITION
|
|
89
|
+
delete process.env.TOA_EXPOSITION_PROPERTIES
|
|
79
90
|
|
|
80
91
|
await Gateway.stop()
|
|
81
92
|
}
|
|
@@ -96,7 +107,7 @@ export class Gateway {
|
|
|
96
107
|
}
|
|
97
108
|
}
|
|
98
109
|
|
|
99
|
-
const
|
|
110
|
+
const DEFAULT_TREE = encode({
|
|
100
111
|
routes: [],
|
|
101
112
|
methods: [],
|
|
102
113
|
directives: [
|
|
@@ -108,6 +119,12 @@ const DEFAULT_ANNOTATION = encode({
|
|
|
108
119
|
]
|
|
109
120
|
} satisfies syntax.Node)
|
|
110
121
|
|
|
122
|
+
const DEFAULT_PROPERTIES: Partial<http.Options> = {
|
|
123
|
+
authorities: {
|
|
124
|
+
nex: 'nex.toa.io'
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
111
128
|
const DEFAULT_CONFIGURATION: Record<string, object> = {
|
|
112
129
|
'identity.tokens': {
|
|
113
130
|
key0: 'k3.local.pIZT8-9Fa6U_QtfQHOSStfGtmyzPINyKQq2Xk-hd7vA'
|