@toa.io/extensions.exposition 1.0.0-alpha.12 → 1.0.0-alpha.120
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 +14 -6
- 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 +28 -10
- package/components/identity.basic/operations/authenticate.d.ts +5 -1
- package/components/identity.basic/operations/authenticate.js +7 -4
- 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 +8 -6
- 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 +18 -7
- package/components/identity.basic/source/incept.ts +38 -0
- package/components/identity.basic/source/transit.ts +11 -9
- package/components/identity.basic/source/types.ts +8 -4
- package/components/identity.federation/manifest.toa.yaml +61 -19
- package/components/identity.federation/operations/authenticate.d.ts +13 -2
- package/components/identity.federation/operations/authenticate.js +10 -11
- package/components/identity.federation/operations/authenticate.js.map +1 -1
- package/components/identity.federation/operations/decode.d.ts +2 -0
- package/{transpiled/directives/octets/Permute.js → components/identity.federation/operations/decode.js} +7 -32
- package/components/identity.federation/operations/decode.js.map +1 -0
- package/components/identity.federation/operations/incept.d.ts +11 -0
- package/components/identity.federation/operations/incept.js +14 -0
- package/components/identity.federation/operations/incept.js.map +1 -0
- package/components/identity.federation/operations/lib/assertions-as-values.js +4 -2
- package/components/identity.federation/operations/lib/assertions-as-values.js.map +1 -1
- package/components/identity.federation/operations/lib/get.d.ts +1 -0
- package/components/identity.federation/operations/lib/get.js +64 -0
- package/components/identity.federation/operations/lib/get.js.map +1 -0
- package/components/identity.federation/operations/lib/jwt.d.ts +4 -5
- package/components/identity.federation/operations/lib/jwt.js +20 -16
- 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 +15 -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} +11 -12
- package/{transpiled/directives/vary/embeddings/Embedding.js → components/identity.federation/operations/types/context.js} +1 -1
- 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 +24 -17
- package/components/identity.federation/source/decode.ts +9 -0
- package/components/identity.federation/source/incept.ts +26 -0
- package/components/identity.federation/source/lib/assertions-as-values.ts +5 -2
- package/components/identity.federation/source/lib/get.ts +82 -0
- package/components/identity.federation/source/lib/jwt.test.ts +127 -4
- package/components/identity.federation/source/lib/jwt.ts +26 -19
- package/components/identity.federation/source/types/configuration.ts +16 -0
- package/components/identity.federation/source/{types.ts → types/context.ts} +12 -12
- 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.keys/manifest.toa.yaml +54 -0
- package/components/identity.keys/operations/create.d.ts +22 -0
- package/components/identity.keys/operations/create.js +16 -0
- package/components/identity.keys/operations/create.js.map +1 -0
- package/components/identity.keys/operations/tsconfig.tsbuildinfo +1 -0
- package/components/identity.keys/source/create.ts +35 -0
- package/components/identity.keys/tsconfig.json +9 -0
- package/components/identity.roles/manifest.toa.yaml +7 -5
- package/components/identity.roles/operations/grant.d.ts +1 -1
- package/components/identity.roles/operations/grant.js +8 -7
- package/components/identity.roles/operations/grant.js.map +1 -1
- package/components/identity.roles/operations/lib/Entity.d.ts +1 -1
- package/components/identity.roles/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.roles/source/grant.ts +9 -8
- package/components/identity.roles/source/lib/Entity.ts +1 -1
- package/components/identity.tokens/manifest.toa.yaml +103 -9
- package/components/identity.tokens/operations/authenticate.d.ts +3 -3
- package/components/identity.tokens/operations/authenticate.js +20 -13
- package/components/identity.tokens/operations/authenticate.js.map +1 -1
- package/components/identity.tokens/operations/decrypt.d.ts +12 -3
- package/components/identity.tokens/operations/decrypt.js +62 -17
- package/components/identity.tokens/operations/decrypt.js.map +1 -1
- package/components/identity.tokens/operations/encrypt.d.ts +3 -3
- package/components/identity.tokens/operations/encrypt.js +26 -6
- package/components/identity.tokens/operations/encrypt.js.map +1 -1
- package/components/identity.tokens/operations/issue.d.ts +24 -0
- package/components/identity.tokens/operations/issue.js +58 -0
- package/components/identity.tokens/operations/issue.js.map +1 -0
- package/components/identity.tokens/operations/lib/index.d.ts +2 -0
- package/components/identity.tokens/operations/lib/index.js +19 -0
- package/components/identity.tokens/operations/lib/index.js.map +1 -0
- package/components/identity.tokens/operations/lib/pad.d.ts +1 -0
- package/components/identity.tokens/operations/lib/pad.js +5 -0
- package/components/identity.tokens/operations/lib/pad.js.map +1 -0
- package/components/identity.tokens/operations/lib/types.d.ts +74 -0
- package/components/identity.tokens/operations/lib/types.js.map +1 -0
- package/components/identity.tokens/operations/revoke.d.ts +2 -2
- package/components/identity.tokens/operations/revoke.js.map +1 -1
- package/components/identity.tokens/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.tokens/receivers/identity.bans.created.js +3 -0
- package/components/identity.tokens/source/authenticate.test.ts +22 -9
- package/components/identity.tokens/source/authenticate.ts +23 -15
- package/components/identity.tokens/source/decrypt.test.ts +33 -18
- package/components/identity.tokens/source/decrypt.ts +91 -20
- package/components/identity.tokens/source/encrypt.test.ts +67 -12
- package/components/identity.tokens/source/encrypt.ts +37 -9
- package/components/identity.tokens/source/issue.ts +80 -0
- package/components/identity.tokens/source/lib/index.ts +2 -0
- package/components/identity.tokens/source/lib/pad.ts +1 -0
- package/components/identity.tokens/source/lib/paseto.test.ts +16 -0
- package/components/identity.tokens/source/lib/types.ts +85 -0
- package/components/identity.tokens/source/revoke.ts +2 -2
- package/components/octets.storage/manifest.toa.yaml +11 -11
- package/components/octets.storage/operations/get.js +3 -3
- package/components/octets.storage/operations/head.js +7 -0
- package/components/octets.storage/operations/put.js +135 -0
- package/documentation/access.md +91 -29
- package/documentation/authorities.md +48 -0
- package/documentation/cache.md +8 -1
- package/documentation/components.md +125 -54
- package/documentation/dev.md +30 -0
- package/documentation/flow.md +44 -0
- package/documentation/identity.md +29 -22
- package/documentation/introspection.md +82 -0
- package/documentation/map.md +73 -0
- package/documentation/octets.md +122 -69
- package/documentation/protocol.md +11 -4
- package/documentation/query.md +29 -4
- package/documentation/require.md +15 -0
- package/documentation/tree.md +13 -0
- package/features/access.feature +129 -48
- package/features/annotation.feature +1 -0
- package/features/auth.claims.feature +171 -0
- package/features/auth.incept.feature +89 -0
- package/features/auth.input.feature +59 -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 +2 -0
- package/features/cache.feature +109 -5
- package/features/cors.feature +8 -2
- package/features/debug.feature +34 -0
- package/features/dev.feature +56 -0
- package/features/directives.feature +3 -0
- package/features/dynamic.feature +48 -0
- package/features/errors.feature +32 -7
- package/features/etag.feature +109 -1
- package/features/flow.feature +148 -0
- package/features/identity.bans.feature +137 -0
- package/features/identity.basic.feature +85 -28
- package/features/identity.feature +18 -6
- package/features/identity.federation.feature +89 -18
- package/features/identity.roles.feature +112 -19
- package/features/identity.tokens.feature +13 -4
- package/features/identtiy.tokens.custom.feature +247 -0
- package/features/interruptions.feature +19 -0
- package/features/introspection.feature +153 -0
- package/features/io.feature +38 -1
- package/features/map.feature +305 -0
- package/features/methods.feature +47 -0
- package/features/octets.cloudinary.feature +71 -0
- package/features/octets.download.feature +189 -0
- package/features/octets.entries.feature +13 -55
- package/features/octets.feature +90 -114
- package/features/octets.head.feature +40 -0
- package/features/octets.location.feature +83 -0
- package/features/octets.meta.feature +65 -15
- package/features/octets.workflows.feature +339 -66
- package/features/probes.feature +14 -0
- package/features/{queries.feature → query.feature} +77 -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/server.feature +21 -0
- package/features/steps/.env.example +3 -0
- package/features/steps/Common.ts +4 -0
- package/features/steps/Database.ts +16 -9
- package/features/steps/Gateway.ts +26 -7
- package/features/steps/HTTP.ts +25 -2
- package/features/steps/IdP.ts +63 -25
- package/features/steps/Identity.ts +51 -0
- package/features/steps/Parameters.ts +44 -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/greeter/manifest.toa.yaml +0 -1
- package/features/steps/components/octets.tester/manifest.toa.yaml +25 -3
- package/features/steps/components/octets.tester/operations/authority.js +7 -0
- package/features/steps/components/octets.tester/operations/bar.js +0 -1
- package/features/steps/components/octets.tester/operations/baz.js +0 -2
- package/features/steps/components/octets.tester/operations/echo.js +1 -1
- package/features/steps/components/octets.tester/operations/foo.js +1 -2
- package/features/steps/components/octets.tester/operations/id.js +7 -0
- package/features/steps/components/octets.tester/operations/identity.js +7 -0
- 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 +12 -4
- package/features/steps/components/sequences/manifest.toa.yaml +0 -1
- package/features/steps/components/users/manifest.toa.yaml +4 -3
- package/features/steps/components/users/operations/create.js +15 -0
- package/features/steps/components/users.properties/manifest.toa.yaml +1 -2
- package/features/streams.feature +5 -0
- package/features/timestamps.feature +41 -0
- package/features/timing.feature +4 -1
- package/package.json +25 -13
- package/readme.md +19 -14
- package/schemas/annotation.cos.yaml +1 -1
- package/schemas/method.cos.yaml +1 -1
- package/schemas/node.cos.yaml +2 -0
- package/schemas/octets/put.cos.yaml +28 -0
- package/schemas/query.cos.yaml +4 -10
- package/source/Annotation.ts +3 -3
- package/source/Branch.ts +1 -0
- package/source/Composition.ts +0 -6
- package/source/Context.ts +1 -0
- package/source/Directive.test.ts +1 -1
- package/source/Directive.ts +16 -8
- package/source/Endpoint.ts +69 -17
- package/source/Factory.ts +22 -13
- package/source/Gateway.ts +73 -19
- package/source/HTTP/Context.ts +31 -7
- package/source/HTTP/Server.ts +112 -48
- 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 +39 -8
- package/source/Introspection.ts +11 -0
- package/source/Mapping.ts +68 -21
- package/source/Query.test.ts +3 -3
- package/source/Query.ts +123 -33
- package/source/RTD/Context.ts +1 -1
- 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/Tree.ts +2 -2
- package/source/RTD/factory.ts +5 -2
- package/source/RTD/syntax/parse.test.ts +1 -1
- package/source/RTD/syntax/parse.ts +37 -24
- package/source/RTD/syntax/types.ts +6 -4
- package/source/Remotes.ts +7 -6
- package/source/Tenant.ts +6 -20
- package/source/deployment.ts +33 -23
- package/source/directives/auth/Anonymous.ts +3 -3
- package/source/directives/auth/Anyone.ts +13 -0
- package/source/directives/auth/Authorization.ts +65 -25
- package/source/directives/auth/Delegate.ts +13 -6
- package/source/directives/auth/Echo.ts +16 -6
- package/source/directives/auth/Federation.ts +84 -0
- package/source/directives/auth/Id.ts +1 -1
- package/source/directives/auth/Incept.ts +27 -12
- package/source/directives/auth/Input.ts +72 -0
- package/source/directives/auth/Role.test.ts +53 -6
- package/source/directives/auth/Role.ts +23 -19
- package/source/directives/auth/Rule.ts +3 -5
- package/source/directives/auth/Scheme.ts +5 -5
- package/source/directives/auth/create.ts +10 -0
- package/source/directives/auth/split.ts +1 -1
- package/source/directives/auth/types.ts +11 -6
- package/source/directives/cache/Cache.ts +13 -6
- package/source/directives/cache/Control.ts +42 -16
- package/source/directives/cors/CORS.ts +3 -2
- package/source/directives/dev/Development.ts +12 -7
- package/source/directives/dev/Sleep.ts +35 -0
- package/source/directives/dev/types.ts +1 -1
- package/source/directives/flow/Compose.ts +92 -0
- package/source/directives/flow/Fetch.ts +86 -0
- package/source/directives/flow/Flow.ts +42 -0
- package/source/directives/flow/index.ts +3 -0
- package/source/directives/flow/types.ts +7 -0
- package/source/directives/index.ts +4 -2
- package/source/directives/io/IO.ts +1 -1
- package/source/directives/io/Input.ts +8 -5
- package/source/directives/io/Output.ts +5 -4
- package/source/directives/map/Authority.ts +15 -0
- package/source/directives/map/Claims.ts +58 -0
- package/source/directives/map/Directive.ts +4 -0
- package/source/directives/map/Headers.ts +38 -0
- package/source/directives/map/Language.ts +42 -0
- package/source/directives/map/Languages.ts +11 -0
- package/source/directives/map/Map.ts +61 -0
- package/source/directives/map/Mapping.ts +19 -0
- package/source/directives/{vary → map}/Properties.ts +2 -4
- package/source/directives/map/Segments.ts +26 -0
- package/source/directives/map/index.ts +3 -0
- package/source/directives/octets/Context.ts +3 -2
- package/source/directives/octets/Delete.ts +21 -17
- package/source/directives/octets/Get.ts +86 -0
- package/source/directives/octets/Octets.ts +9 -12
- package/source/directives/octets/{Store.ts → Put.ts} +52 -38
- package/source/directives/octets/Workflow.ts +9 -3
- package/source/directives/octets/bytes.test.ts +30 -0
- package/source/directives/octets/bytes.ts +18 -0
- package/source/directives/octets/schemas.ts +4 -8
- package/source/directives/octets/types.ts +2 -0
- package/source/directives/octets/workflows/Execution.ts +61 -8
- package/source/directives/octets/workflows/Workflow.ts +17 -7
- package/source/directives/octets/workflows/index.ts +1 -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/exceptions.ts +14 -6
- package/source/manifest.ts +10 -11
- package/source/root.ts +16 -1
- package/source/schemas.ts +1 -1
- package/transpiled/Annotation.d.ts +3 -3
- package/transpiled/Branch.d.ts +1 -0
- package/transpiled/Composition.d.ts +0 -1
- package/transpiled/Composition.js +0 -4
- package/transpiled/Composition.js.map +1 -1
- package/transpiled/Context.d.ts +1 -0
- package/transpiled/Directive.js +15 -8
- package/transpiled/Directive.js.map +1 -1
- package/transpiled/Endpoint.d.ts +6 -4
- package/transpiled/Endpoint.js +47 -9
- package/transpiled/Endpoint.js.map +1 -1
- package/transpiled/Factory.d.ts +3 -2
- package/transpiled/Factory.js +18 -10
- package/transpiled/Factory.js.map +1 -1
- package/transpiled/Gateway.d.ts +3 -0
- package/transpiled/Gateway.js +55 -12
- package/transpiled/Gateway.js.map +1 -1
- package/transpiled/HTTP/Context.d.ts +9 -2
- package/transpiled/HTTP/Context.js +20 -6
- package/transpiled/HTTP/Context.js.map +1 -1
- package/transpiled/HTTP/Server.d.ts +15 -4
- package/transpiled/HTTP/Server.js +78 -40
- 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 +2 -1
- package/transpiled/HTTP/messages.js +36 -7
- 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 +11 -2
- package/transpiled/Mapping.js +50 -19
- package/transpiled/Mapping.js.map +1 -1
- package/transpiled/Query.d.ts +10 -1
- package/transpiled/Query.js +87 -30
- package/transpiled/Query.js.map +1 -1
- package/transpiled/RTD/Context.d.ts +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/Tree.d.ts +1 -1
- package/transpiled/RTD/Tree.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 +4 -4
- package/transpiled/Remotes.js +6 -5
- package/transpiled/Remotes.js.map +1 -1
- package/transpiled/Tenant.d.ts +5 -5
- package/transpiled/Tenant.js +2 -13
- 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/Anonymous.d.ts +2 -2
- package/transpiled/directives/auth/Anonymous.js +2 -2
- package/transpiled/directives/auth/Anonymous.js.map +1 -1
- package/transpiled/directives/auth/Anyone.d.ts +6 -0
- package/transpiled/directives/auth/Anyone.js +14 -0
- package/transpiled/directives/auth/Anyone.js.map +1 -0
- package/transpiled/directives/auth/Authorization.d.ts +4 -3
- package/transpiled/directives/auth/Authorization.js +49 -22
- package/transpiled/directives/auth/Authorization.js.map +1 -1
- package/transpiled/directives/auth/Delegate.d.ts +5 -4
- package/transpiled/directives/auth/Delegate.js +10 -4
- package/transpiled/directives/auth/Delegate.js.map +1 -1
- package/transpiled/directives/auth/Echo.d.ts +4 -4
- package/transpiled/directives/auth/Echo.js +11 -4
- package/transpiled/directives/auth/Echo.js.map +1 -1
- 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/Id.d.ts +1 -1
- package/transpiled/directives/auth/Id.js.map +1 -1
- package/transpiled/directives/auth/Incept.d.ts +4 -3
- package/transpiled/directives/auth/Incept.js +23 -10
- package/transpiled/directives/auth/Incept.js.map +1 -1
- package/transpiled/directives/auth/Input.d.ts +13 -0
- package/transpiled/directives/auth/Input.js +49 -0
- package/transpiled/directives/auth/Input.js.map +1 -0
- package/transpiled/directives/auth/Role.d.ts +5 -2
- package/transpiled/directives/auth/Role.js +22 -18
- package/transpiled/directives/auth/Role.js.map +1 -1
- package/transpiled/directives/auth/Rule.d.ts +2 -4
- package/transpiled/directives/auth/Rule.js +2 -2
- package/transpiled/directives/auth/Rule.js.map +1 -1
- package/transpiled/directives/auth/Scheme.d.ts +2 -2
- package/transpiled/directives/auth/Scheme.js +4 -4
- package/transpiled/directives/auth/Scheme.js.map +1 -1
- package/transpiled/directives/auth/create.d.ts +2 -0
- package/transpiled/directives/auth/create.js +12 -0
- package/transpiled/directives/auth/create.js.map +1 -0
- package/transpiled/directives/auth/split.js +1 -1
- package/transpiled/directives/auth/split.js.map +1 -1
- package/transpiled/directives/auth/types.d.ts +8 -5
- 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 +3 -2
- package/transpiled/directives/cors/CORS.js.map +1 -1
- package/transpiled/directives/dev/Development.d.ts +1 -1
- package/transpiled/directives/dev/Development.js +13 -7
- package/transpiled/directives/dev/Development.js.map +1 -1
- package/transpiled/directives/dev/Sleep.d.ts +7 -0
- package/transpiled/directives/dev/Sleep.js +32 -0
- package/transpiled/directives/dev/Sleep.js.map +1 -0
- package/transpiled/directives/dev/types.d.ts +1 -1
- package/transpiled/directives/flow/Compose.d.ts +9 -0
- package/transpiled/directives/flow/Compose.js +94 -0
- package/transpiled/directives/flow/Compose.js.map +1 -0
- package/transpiled/directives/flow/Fetch.d.ts +12 -0
- package/transpiled/directives/flow/Fetch.js +58 -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 +33 -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 +6 -0
- package/transpiled/directives/flow/types.js.map +1 -0
- package/transpiled/directives/index.js +4 -2
- package/transpiled/directives/index.js.map +1 -1
- package/transpiled/directives/io/IO.js +1 -1
- package/transpiled/directives/io/IO.js.map +1 -1
- package/transpiled/directives/io/Input.js +4 -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/map/Authority.d.ts +6 -0
- package/transpiled/directives/map/Authority.js +19 -0
- package/transpiled/directives/map/Authority.js.map +1 -0
- package/transpiled/directives/map/Claims.d.ts +10 -0
- package/transpiled/directives/map/Claims.js +44 -0
- package/transpiled/directives/map/Claims.js.map +1 -0
- package/transpiled/directives/map/Directive.d.ts +3 -0
- package/transpiled/directives/map/Directive.js.map +1 -0
- package/transpiled/directives/map/Headers.d.ts +7 -0
- package/transpiled/directives/map/Headers.js +34 -0
- package/transpiled/directives/map/Headers.js.map +1 -0
- package/transpiled/directives/map/Language.d.ts +10 -0
- package/transpiled/directives/map/Language.js +38 -0
- package/transpiled/directives/map/Language.js.map +1 -0
- package/transpiled/directives/map/Languages.d.ts +4 -0
- package/transpiled/directives/map/Languages.js +17 -0
- package/transpiled/directives/map/Languages.js.map +1 -0
- package/transpiled/directives/map/Map.d.ts +13 -0
- package/transpiled/directives/map/Map.js +46 -0
- package/transpiled/directives/map/Map.js.map +1 -0
- package/transpiled/directives/map/Mapping.d.ts +13 -0
- package/transpiled/directives/map/Mapping.js +13 -0
- package/transpiled/directives/map/Mapping.js.map +1 -0
- package/transpiled/directives/{vary → map}/Properties.d.ts +2 -2
- package/transpiled/directives/{vary → map}/Properties.js +1 -3
- package/transpiled/directives/map/Properties.js.map +1 -0
- package/transpiled/directives/map/Segments.d.ts +6 -0
- package/transpiled/directives/map/Segments.js +25 -0
- package/transpiled/directives/map/Segments.js.map +1 -0
- package/transpiled/directives/map/index.d.ts +2 -0
- package/transpiled/directives/map/index.js +6 -0
- package/transpiled/directives/map/index.js.map +1 -0
- package/transpiled/directives/octets/Context.js +4 -24
- package/transpiled/directives/octets/Context.js.map +1 -1
- package/transpiled/directives/octets/Delete.js +15 -12
- package/transpiled/directives/octets/Delete.js.map +1 -1
- package/transpiled/directives/octets/{Fetch.d.ts → Get.d.ts} +5 -6
- package/transpiled/directives/octets/{Fetch.js → Get.js} +25 -29
- package/transpiled/directives/octets/Get.js.map +1 -0
- package/transpiled/directives/octets/Octets.js +9 -12
- package/transpiled/directives/octets/Octets.js.map +1 -1
- package/transpiled/directives/octets/{Store.d.ts → Put.d.ts} +8 -2
- package/transpiled/directives/octets/{Store.js → Put.js} +33 -27
- package/transpiled/directives/octets/Put.js.map +1 -0
- package/transpiled/directives/octets/Workflow.js +7 -2
- package/transpiled/directives/octets/Workflow.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 -8
- package/transpiled/directives/octets/schemas.js +3 -6
- package/transpiled/directives/octets/schemas.js.map +1 -1
- package/transpiled/directives/octets/types.d.ts +2 -0
- package/transpiled/directives/octets/workflows/Execution.d.ts +6 -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.d.ts +8 -3
- package/transpiled/directives/octets/workflows/Workflow.js +9 -4
- package/transpiled/directives/octets/workflows/Workflow.js.map +1 -1
- package/transpiled/directives/octets/workflows/index.d.ts +1 -1
- package/transpiled/directives/octets/workflows/index.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/exceptions.d.ts +3 -2
- package/transpiled/exceptions.js +8 -1
- package/transpiled/exceptions.js.map +1 -1
- package/transpiled/manifest.js +10 -11
- package/transpiled/manifest.js.map +1 -1
- package/transpiled/root.js +16 -1
- package/transpiled/root.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/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 +0 -15
- 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/create.ts +0 -26
- package/components/identity.federation/source/schemas.ts +0 -61
- package/components/identity.tokens/operations/types.d.ts +0 -40
- package/components/identity.tokens/operations/types.js.map +0 -1
- package/components/identity.tokens/source/types.ts +0 -48
- package/components/octets.storage/operations/fetch.js +0 -46
- package/components/octets.storage/operations/list.js +0 -7
- package/components/octets.storage/operations/permute.js +0 -7
- package/components/octets.storage/operations/store.js +0 -11
- package/documentation/vary.md +0 -69
- package/features/steps/components/octets.tester/operations/diversify.js +0 -14
- package/features/vary.feature +0 -180
- package/schemas/octets/context.cos.yaml +0 -1
- package/schemas/octets/fetch.cos.yaml +0 -3
- package/schemas/octets/permute.cos.yaml +0 -1
- package/schemas/octets/store.cos.yaml +0 -3
- package/source/HTTP/Server.test.ts +0 -126
- package/source/directives/octets/Fetch.ts +0 -100
- package/source/directives/octets/List.ts +0 -72
- package/source/directives/octets/Permute.ts +0 -44
- package/source/directives/vary/Directive.ts +0 -6
- package/source/directives/vary/Embed.ts +0 -62
- package/source/directives/vary/Vary.ts +0 -48
- package/source/directives/vary/embeddings/Embedding.ts +0 -6
- package/source/directives/vary/embeddings/Header.ts +0 -32
- package/source/directives/vary/embeddings/Language.ts +0 -31
- package/source/directives/vary/embeddings/index.ts +0 -11
- package/source/directives/vary/index.ts +0 -3
- package/transpiled/directives/octets/Fetch.js.map +0 -1
- package/transpiled/directives/octets/List.d.ts +0 -16
- package/transpiled/directives/octets/List.js +0 -74
- package/transpiled/directives/octets/List.js.map +0 -1
- package/transpiled/directives/octets/Permute.d.ts +0 -11
- package/transpiled/directives/octets/Permute.js.map +0 -1
- package/transpiled/directives/octets/Store.js.map +0 -1
- package/transpiled/directives/vary/Directive.d.ts +0 -5
- package/transpiled/directives/vary/Directive.js.map +0 -1
- package/transpiled/directives/vary/Embed.d.ts +0 -10
- package/transpiled/directives/vary/Embed.js +0 -49
- package/transpiled/directives/vary/Embed.js.map +0 -1
- package/transpiled/directives/vary/Properties.js.map +0 -1
- package/transpiled/directives/vary/Vary.d.ts +0 -10
- package/transpiled/directives/vary/Vary.js +0 -36
- package/transpiled/directives/vary/Vary.js.map +0 -1
- package/transpiled/directives/vary/embeddings/Embedding.d.ts +0 -5
- package/transpiled/directives/vary/embeddings/Embedding.js.map +0 -1
- package/transpiled/directives/vary/embeddings/Header.d.ts +0 -7
- package/transpiled/directives/vary/embeddings/Header.js +0 -28
- package/transpiled/directives/vary/embeddings/Header.js.map +0 -1
- package/transpiled/directives/vary/embeddings/Language.d.ts +0 -7
- package/transpiled/directives/vary/embeddings/Language.js +0 -28
- package/transpiled/directives/vary/embeddings/Language.js.map +0 -1
- package/transpiled/directives/vary/embeddings/index.d.ts +0 -5
- package/transpiled/directives/vary/embeddings/index.js +0 -10
- package/transpiled/directives/vary/embeddings/index.js.map +0 -1
- package/transpiled/directives/vary/index.d.ts +0 -2
- package/transpiled/directives/vary/index.js +0 -6
- package/transpiled/directives/vary/index.js.map +0 -1
- /package/components/{identity.federation/operations → identity.tokens/operations/lib}/types.js +0 -0
- /package/schemas/octets/{list.cos.yaml → get.cos.yaml} +0 -0
- /package/{components/identity.tokens/operations → transpiled/directives/flow}/types.js +0 -0
- /package/transpiled/directives/{vary → map}/Directive.js +0 -0
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file was automatically generated by json-schema-to-typescript.
|
|
3
|
-
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
|
|
4
|
-
* and run json-schema-to-typescript to regenerate this file.
|
|
5
|
-
*/
|
|
6
|
-
export interface Schemas {
|
|
7
|
-
configuration?: {
|
|
8
|
-
trust?: TrustConfiguration[];
|
|
9
|
-
/**
|
|
10
|
-
* Force identities to be explicitly created or incept before being used in authentication
|
|
11
|
-
*/
|
|
12
|
-
explicit_identity_creation?: boolean;
|
|
13
|
-
/**
|
|
14
|
-
* The value of `sub` of an identity token that will be assigned the `system` Role
|
|
15
|
-
*/
|
|
16
|
-
principal?: {
|
|
17
|
-
iss: string;
|
|
18
|
-
sub: string;
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
entity?: {
|
|
22
|
-
/**
|
|
23
|
-
* The issuer, or signer, of the token, URI like `https://accounts.google.com`
|
|
24
|
-
*/
|
|
25
|
-
iss: string;
|
|
26
|
-
/**
|
|
27
|
-
* the ID that represents the principal making the request
|
|
28
|
-
*/
|
|
29
|
-
sub: string;
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
export interface TrustConfiguration {
|
|
33
|
-
/**
|
|
34
|
-
* Allowed origins for a token `iss` field
|
|
35
|
-
*/
|
|
36
|
-
issuer: string;
|
|
37
|
-
/**
|
|
38
|
-
* Acceptable `aud` value(s)
|
|
39
|
-
*
|
|
40
|
-
* @minItems 1
|
|
41
|
-
*/
|
|
42
|
-
audience?: [string, ...string[]];
|
|
43
|
-
/**
|
|
44
|
-
* Symmetric encryption secrets
|
|
45
|
-
*/
|
|
46
|
-
secrets?: {
|
|
47
|
-
/**
|
|
48
|
-
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
49
|
-
* via the `patternProperty` "^HS\d{3}$".
|
|
50
|
-
*/
|
|
51
|
-
[k: string]: {
|
|
52
|
-
/**
|
|
53
|
-
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
54
|
-
* via the `patternProperty` "^\w+$".
|
|
55
|
-
*/
|
|
56
|
-
[k: string]: string;
|
|
57
|
-
};
|
|
58
|
-
};
|
|
59
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/* eslint-disable */
|
|
3
|
-
/**
|
|
4
|
-
* This file was automatically generated by json-schema-to-typescript.
|
|
5
|
-
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
|
|
6
|
-
* and run json-schema-to-typescript to regenerate this file.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
//# sourceMappingURL=schemas.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../source/schemas.ts"],"names":[],"mappings":";AAAA,oBAAoB;AACpB;;;;GAIG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../source/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { assertionsAsValues } from './lib/assertions-as-values.js'
|
|
2
|
-
import { validateIdToken } from './lib/jwt'
|
|
3
|
-
import type { Request } from '@toa.io/core'
|
|
4
|
-
import type { Context, Entity } from './types'
|
|
5
|
-
|
|
6
|
-
async function create (input: CreateInput, context: Context): Promise<CreateOutput> {
|
|
7
|
-
const { iss, sub } = await validateIdToken(input.credentials, context.configuration.trust)
|
|
8
|
-
|
|
9
|
-
const request: Request = {
|
|
10
|
-
input: { iss, sub } satisfies Omit<Entity, 'id'>,
|
|
11
|
-
query: { id: input.id }
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
return await context.local.transit(request)
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
interface CreateInput {
|
|
18
|
-
id: string
|
|
19
|
-
credentials: string
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
interface CreateOutput {
|
|
23
|
-
id: string
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export const effect = assertionsAsValues(create)
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/* eslint-disable */
|
|
2
|
-
/**
|
|
3
|
-
* This file was automatically generated by json-schema-to-typescript.
|
|
4
|
-
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
|
|
5
|
-
* and run json-schema-to-typescript to regenerate this file.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
export interface Schemas {
|
|
9
|
-
configuration?: {
|
|
10
|
-
trust?: TrustConfiguration[];
|
|
11
|
-
/**
|
|
12
|
-
* Force identities to be explicitly created or incept before being used in authentication
|
|
13
|
-
*/
|
|
14
|
-
explicit_identity_creation?: boolean;
|
|
15
|
-
/**
|
|
16
|
-
* The value of `sub` of an identity token that will be assigned the `system` Role
|
|
17
|
-
*/
|
|
18
|
-
principal?: {
|
|
19
|
-
iss: string;
|
|
20
|
-
sub: string;
|
|
21
|
-
};
|
|
22
|
-
};
|
|
23
|
-
entity?: {
|
|
24
|
-
/**
|
|
25
|
-
* The issuer, or signer, of the token, URI like `https://accounts.google.com`
|
|
26
|
-
*/
|
|
27
|
-
iss: string;
|
|
28
|
-
/**
|
|
29
|
-
* the ID that represents the principal making the request
|
|
30
|
-
*/
|
|
31
|
-
sub: string;
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
export interface TrustConfiguration {
|
|
35
|
-
/**
|
|
36
|
-
* Allowed origins for a token `iss` field
|
|
37
|
-
*/
|
|
38
|
-
issuer: string;
|
|
39
|
-
/**
|
|
40
|
-
* Acceptable `aud` value(s)
|
|
41
|
-
*
|
|
42
|
-
* @minItems 1
|
|
43
|
-
*/
|
|
44
|
-
audience?: [string, ...string[]];
|
|
45
|
-
/**
|
|
46
|
-
* Symmetric encryption secrets
|
|
47
|
-
*/
|
|
48
|
-
secrets?: {
|
|
49
|
-
/**
|
|
50
|
-
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
51
|
-
* via the `patternProperty` "^HS\d{3}$".
|
|
52
|
-
*/
|
|
53
|
-
[k: string]: {
|
|
54
|
-
/**
|
|
55
|
-
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
56
|
-
* via the `patternProperty` "^\w+$".
|
|
57
|
-
*/
|
|
58
|
-
[k: string]: string;
|
|
59
|
-
};
|
|
60
|
-
};
|
|
61
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { type Call, type Maybe, type Observation } from '@toa.io/types';
|
|
2
|
-
export interface Context {
|
|
3
|
-
local: {
|
|
4
|
-
observe: Observation<Entity>;
|
|
5
|
-
decrypt: Call<Maybe<DecryptOutput>, string>;
|
|
6
|
-
};
|
|
7
|
-
configuration: Configuration;
|
|
8
|
-
}
|
|
9
|
-
export interface Configuration {
|
|
10
|
-
readonly key0: string;
|
|
11
|
-
readonly key1?: string;
|
|
12
|
-
readonly lifetime: number;
|
|
13
|
-
readonly refresh: number;
|
|
14
|
-
}
|
|
15
|
-
export interface Entity {
|
|
16
|
-
identity: string;
|
|
17
|
-
revokedAt: number;
|
|
18
|
-
}
|
|
19
|
-
export interface Identity extends Record<string, any> {
|
|
20
|
-
id: string;
|
|
21
|
-
}
|
|
22
|
-
export interface AuthenticateOutput {
|
|
23
|
-
identity: Identity;
|
|
24
|
-
refresh: boolean;
|
|
25
|
-
}
|
|
26
|
-
export interface EncryptInput {
|
|
27
|
-
identity: Identity;
|
|
28
|
-
lifetime?: number;
|
|
29
|
-
}
|
|
30
|
-
export interface DecryptOutput {
|
|
31
|
-
identity: Identity;
|
|
32
|
-
iat: string;
|
|
33
|
-
exp?: string;
|
|
34
|
-
refresh: boolean;
|
|
35
|
-
}
|
|
36
|
-
export interface Claim {
|
|
37
|
-
identity: Identity;
|
|
38
|
-
iat: string;
|
|
39
|
-
exp?: string;
|
|
40
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../source/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { type Call, type Maybe, type Observation } from '@toa.io/types'
|
|
2
|
-
|
|
3
|
-
export interface Context {
|
|
4
|
-
local: {
|
|
5
|
-
observe: Observation<Entity>
|
|
6
|
-
decrypt: Call<Maybe<DecryptOutput>, string>
|
|
7
|
-
}
|
|
8
|
-
configuration: Configuration
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export interface Configuration {
|
|
12
|
-
readonly key0: string
|
|
13
|
-
readonly key1?: string
|
|
14
|
-
readonly lifetime: number
|
|
15
|
-
readonly refresh: number
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export interface Entity {
|
|
19
|
-
identity: string
|
|
20
|
-
revokedAt: number
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export interface Identity extends Record<string, any> {
|
|
24
|
-
id: string
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export interface AuthenticateOutput {
|
|
28
|
-
identity: Identity
|
|
29
|
-
refresh: boolean
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export interface EncryptInput {
|
|
33
|
-
identity: Identity
|
|
34
|
-
lifetime?: number
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export interface DecryptOutput {
|
|
38
|
-
identity: Identity
|
|
39
|
-
iat: string
|
|
40
|
-
exp?: string
|
|
41
|
-
refresh: boolean
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export interface Claim {
|
|
45
|
-
identity: Identity
|
|
46
|
-
iat: string
|
|
47
|
-
exp?: string
|
|
48
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
const { posix } = require('node:path')
|
|
4
|
-
const { Err } = require('error-value')
|
|
5
|
-
|
|
6
|
-
async function fetch (input, context) {
|
|
7
|
-
const storage = context.storages[input.storage]
|
|
8
|
-
const basename = posix.basename(input.path)
|
|
9
|
-
const path = posix.dirname(input.path)
|
|
10
|
-
const [id, suffix] = split(basename)
|
|
11
|
-
const entry = await storage.get(posix.join(path, id))
|
|
12
|
-
|
|
13
|
-
if (entry instanceof Error)
|
|
14
|
-
return entry
|
|
15
|
-
|
|
16
|
-
let variant
|
|
17
|
-
|
|
18
|
-
if (suffix !== undefined) {
|
|
19
|
-
variant = entry.variants.find((variant) => variant.name === suffix)
|
|
20
|
-
|
|
21
|
-
if (variant === undefined)
|
|
22
|
-
return NOT_FOUND
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
const stream = await storage.fetch(input.path)
|
|
26
|
-
|
|
27
|
-
if (stream instanceof Error)
|
|
28
|
-
return stream
|
|
29
|
-
|
|
30
|
-
const { type, size } = variant ?? entry
|
|
31
|
-
|
|
32
|
-
return { stream, checksum: entry.id, type, size }
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
function split (basename) {
|
|
36
|
-
const dot = basename.indexOf('.')
|
|
37
|
-
|
|
38
|
-
if (dot === -1)
|
|
39
|
-
return [basename, undefined]
|
|
40
|
-
else
|
|
41
|
-
return [basename.slice(0, dot), basename.slice(dot + 1)]
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
const NOT_FOUND = Err('NOT_FOUND')
|
|
45
|
-
|
|
46
|
-
exports.effect = fetch
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
function store (input, context) {
|
|
4
|
-
const { storage, request, accept, meta } = input
|
|
5
|
-
const path = request.url
|
|
6
|
-
const claim = request.headers['content-type']
|
|
7
|
-
|
|
8
|
-
return context.storages[storage].put(path, request, { claim, accept, meta })
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
exports.effect = store
|
package/documentation/vary.md
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
# HTTP request details
|
|
2
|
-
|
|
3
|
-
The `vary` directives family provides the capability to include HTTP request details as input for an
|
|
4
|
-
operation call.
|
|
5
|
-
|
|
6
|
-
## TL;DR
|
|
7
|
-
|
|
8
|
-
```yaml
|
|
9
|
-
exposition:
|
|
10
|
-
realms:
|
|
11
|
-
toa: the.toa.io
|
|
12
|
-
/:
|
|
13
|
-
vary:languages: [en, fr]
|
|
14
|
-
GET:
|
|
15
|
-
vary:embed:
|
|
16
|
-
lang: language # predefined embeddings
|
|
17
|
-
realm: realm
|
|
18
|
-
token: :x-access-token # raw header value
|
|
19
|
-
endpoint: dummies.get
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## Embeddings
|
|
23
|
-
|
|
24
|
-
Request parts are embedded into the operation call according to the mapping
|
|
25
|
-
defined by the `vary:embed` directive.
|
|
26
|
-
The keys in the embedding map are the names of the input properties details to be embedded to,
|
|
27
|
-
and the values are the names of the embedding functions.
|
|
28
|
-
If the value is an array, the first non-empty embedding function's result is used.
|
|
29
|
-
|
|
30
|
-
> If a property is already present in the input, the embedded value will overwrite its current
|
|
31
|
-
> value.
|
|
32
|
-
|
|
33
|
-
### Realm
|
|
34
|
-
|
|
35
|
-
Realm is an identifier of a domain used to access the Exposition.
|
|
36
|
-
The list of domains is defined by the `vary:realms` directive,
|
|
37
|
-
which is a map of realm names to their domain names.
|
|
38
|
-
|
|
39
|
-
The `realm` embedding substitutes the realm identified based on the `host` request header.
|
|
40
|
-
|
|
41
|
-
### Language
|
|
42
|
-
|
|
43
|
-
The `language` embedding substitutes the most matching language code based on the `accept-language`
|
|
44
|
-
request header and a list of supported languages defined by the `vary:languages` directive, and also
|
|
45
|
-
adds `accept-language` to the `vary` HTTP response header value.
|
|
46
|
-
If neither of the supported languages matches, the first supported language is used.
|
|
47
|
-
|
|
48
|
-
### Raw header values
|
|
49
|
-
|
|
50
|
-
Keys in the embedding map starting with a semicolon (:) are the names of HTTP request headers whose
|
|
51
|
-
values to be embedded into an operation call.
|
|
52
|
-
The names of these headers are then included in the `vary` HTTP response header
|
|
53
|
-
and [Access-Control-Allow-Headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers)
|
|
54
|
-
of the [CORS](protocol.md#cors).
|
|
55
|
-
|
|
56
|
-
[Multiple header fields](https://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2) are embedded
|
|
57
|
-
as a comma-separated list.
|
|
58
|
-
|
|
59
|
-
### Fallbacks
|
|
60
|
-
|
|
61
|
-
If the embedding function is an array, the first non-empty resolved value is used.
|
|
62
|
-
|
|
63
|
-
```yaml
|
|
64
|
-
vary:embed:
|
|
65
|
-
ip: # fallbacks
|
|
66
|
-
- :CloudFront-Viewer-Address
|
|
67
|
-
- :CF-Connecting-IP
|
|
68
|
-
- :X-Appengine-User-IP
|
|
69
|
-
```
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
const { join } = require('node:path')
|
|
4
|
-
const { createReadStream } = require('node:fs')
|
|
5
|
-
|
|
6
|
-
const lenna = join(__dirname, 'lenna.png')
|
|
7
|
-
|
|
8
|
-
async function diversify (input, context) {
|
|
9
|
-
const stream = createReadStream(lenna)
|
|
10
|
-
|
|
11
|
-
return context.storages[input.storage].diversify(input.path, 'hello.png', stream)
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
exports.effect = diversify
|
package/features/vary.feature
DELETED
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
Feature: The Vary directive family
|
|
2
|
-
|
|
3
|
-
Scenario Outline: Embedding a `<result>` language code
|
|
4
|
-
Given the `echo` is running with the following manifest:
|
|
5
|
-
"""yaml
|
|
6
|
-
exposition:
|
|
7
|
-
/:
|
|
8
|
-
io:output: true
|
|
9
|
-
vary:languages: [en, fr]
|
|
10
|
-
GET:
|
|
11
|
-
vary:embed:
|
|
12
|
-
name: language # embed resolved language code as a `name` property of the operation input
|
|
13
|
-
endpoint: compute
|
|
14
|
-
"""
|
|
15
|
-
When the following request is received:
|
|
16
|
-
"""
|
|
17
|
-
GET /echo/ HTTP/1.1
|
|
18
|
-
accept: application/yaml
|
|
19
|
-
accept-language: <accept>
|
|
20
|
-
"""
|
|
21
|
-
Then the following reply is sent:
|
|
22
|
-
"""
|
|
23
|
-
200 OK
|
|
24
|
-
content-type: application/yaml
|
|
25
|
-
content-language: <result>
|
|
26
|
-
vary: accept-language, accept
|
|
27
|
-
|
|
28
|
-
Hello <result>
|
|
29
|
-
"""
|
|
30
|
-
Examples:
|
|
31
|
-
| accept | result |
|
|
32
|
-
| en | en |
|
|
33
|
-
| en_US | en |
|
|
34
|
-
| fr | fr |
|
|
35
|
-
| sw | en |
|
|
36
|
-
|
|
37
|
-
Scenario: Listing languages on the root
|
|
38
|
-
Given the annotation:
|
|
39
|
-
"""
|
|
40
|
-
/:
|
|
41
|
-
vary:languages: [en, fr]
|
|
42
|
-
"""
|
|
43
|
-
And the `echo` is running with the following manifest:
|
|
44
|
-
"""yaml
|
|
45
|
-
exposition:
|
|
46
|
-
/:
|
|
47
|
-
io:output: true
|
|
48
|
-
GET:
|
|
49
|
-
anonymous: true
|
|
50
|
-
vary:embed:
|
|
51
|
-
name: language
|
|
52
|
-
endpoint: compute
|
|
53
|
-
"""
|
|
54
|
-
When the following request is received:
|
|
55
|
-
"""
|
|
56
|
-
GET /echo/ HTTP/1.1
|
|
57
|
-
accept: application/yaml
|
|
58
|
-
accept-language: fr
|
|
59
|
-
"""
|
|
60
|
-
Then the following reply is sent:
|
|
61
|
-
"""
|
|
62
|
-
200 OK
|
|
63
|
-
content-type: application/yaml
|
|
64
|
-
content-language: fr
|
|
65
|
-
"""
|
|
66
|
-
|
|
67
|
-
Scenario: Embedding a value of an arbitrary header
|
|
68
|
-
Given the `echo` is running with the following manifest:
|
|
69
|
-
"""yaml
|
|
70
|
-
exposition:
|
|
71
|
-
/:
|
|
72
|
-
io:output: true
|
|
73
|
-
GET:
|
|
74
|
-
vary:embed:
|
|
75
|
-
name: :foo
|
|
76
|
-
endpoint: compute
|
|
77
|
-
"""
|
|
78
|
-
When the following request is received:
|
|
79
|
-
"""
|
|
80
|
-
GET /echo/ HTTP/1.1
|
|
81
|
-
accept: application/yaml
|
|
82
|
-
foo: bar
|
|
83
|
-
"""
|
|
84
|
-
Then the following reply is sent:
|
|
85
|
-
"""
|
|
86
|
-
200 OK
|
|
87
|
-
content-type: application/yaml
|
|
88
|
-
vary: foo, accept
|
|
89
|
-
|
|
90
|
-
Hello bar
|
|
91
|
-
"""
|
|
92
|
-
|
|
93
|
-
Scenario: Embedding a `host` header value
|
|
94
|
-
Given the `echo` is running with the following manifest:
|
|
95
|
-
"""yaml
|
|
96
|
-
exposition:
|
|
97
|
-
/:
|
|
98
|
-
io:output: true
|
|
99
|
-
GET:
|
|
100
|
-
vary:embed:
|
|
101
|
-
name: :Host
|
|
102
|
-
endpoint: compute
|
|
103
|
-
"""
|
|
104
|
-
When the following request is received:
|
|
105
|
-
"""
|
|
106
|
-
GET /echo/ HTTP/1.1
|
|
107
|
-
accept: application/yaml
|
|
108
|
-
foo: bar
|
|
109
|
-
"""
|
|
110
|
-
Then the following reply is sent:
|
|
111
|
-
"""
|
|
112
|
-
200 OK
|
|
113
|
-
content-type: application/yaml
|
|
114
|
-
vary: accept
|
|
115
|
-
|
|
116
|
-
Hello 127.0.0.1:8000
|
|
117
|
-
"""
|
|
118
|
-
|
|
119
|
-
Scenario Outline: Embedding a value from the list of options
|
|
120
|
-
Given the `echo` is running with the following manifest:
|
|
121
|
-
"""yaml
|
|
122
|
-
exposition:
|
|
123
|
-
/:
|
|
124
|
-
io:output: true
|
|
125
|
-
vary:languages: [en, fr]
|
|
126
|
-
GET:
|
|
127
|
-
vary:embed:
|
|
128
|
-
name:
|
|
129
|
-
- :foo
|
|
130
|
-
- :bar
|
|
131
|
-
- language
|
|
132
|
-
endpoint: compute
|
|
133
|
-
"""
|
|
134
|
-
When the following request is received:
|
|
135
|
-
"""
|
|
136
|
-
GET /echo/ HTTP/1.1
|
|
137
|
-
accept: application/yaml
|
|
138
|
-
<header>: <value>
|
|
139
|
-
"""
|
|
140
|
-
Then the following reply is sent:
|
|
141
|
-
"""
|
|
142
|
-
200 OK
|
|
143
|
-
content-type: application/yaml
|
|
144
|
-
vary: <header>, accept
|
|
145
|
-
|
|
146
|
-
Hello <value>
|
|
147
|
-
"""
|
|
148
|
-
Examples:
|
|
149
|
-
| header | value |
|
|
150
|
-
| foo | bar |
|
|
151
|
-
| bar | baz |
|
|
152
|
-
| accept-language | en |
|
|
153
|
-
|
|
154
|
-
Scenario: Adding headers used by defined embeddings to CORS permissions
|
|
155
|
-
Given the `echo` is running with the following manifest:
|
|
156
|
-
"""yaml
|
|
157
|
-
exposition:
|
|
158
|
-
/:
|
|
159
|
-
io:output: true
|
|
160
|
-
vary:languages: [en, fr]
|
|
161
|
-
GET:
|
|
162
|
-
vary:embed:
|
|
163
|
-
name:
|
|
164
|
-
- language
|
|
165
|
-
- :foo
|
|
166
|
-
- :FOO
|
|
167
|
-
- :bar
|
|
168
|
-
endpoint: compute
|
|
169
|
-
"""
|
|
170
|
-
When the following request is received:
|
|
171
|
-
"""
|
|
172
|
-
OPTIONS / HTTP/1.1
|
|
173
|
-
origin: https://example.com
|
|
174
|
-
access-control-request-headers: whatever
|
|
175
|
-
"""
|
|
176
|
-
Then the following reply is sent:
|
|
177
|
-
"""
|
|
178
|
-
204 No Content
|
|
179
|
-
access-control-allow-headers: accept, authorization, content-type, etag, if-match, if-none-match, accept-language, foo, bar
|
|
180
|
-
"""
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
string
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
~
|