@wirebench/engine 2.2.0 → 3.1.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +134 -1
- package/dist/account/schema.d.ts +34 -0
- package/dist/account/schema.js +29 -0
- package/dist/assert/callback.d.ts +76 -0
- package/dist/assert/callback.js +320 -0
- package/dist/assert/capture-source.d.ts +50 -0
- package/dist/assert/capture-source.js +89 -0
- package/dist/assert/check.d.ts +8 -0
- package/dist/assert/check.js +18 -0
- package/dist/assert/header.d.ts +5 -0
- package/dist/assert/header.js +48 -0
- package/dist/assert/index.d.ts +2 -2
- package/dist/assert/index.js +12 -0
- package/dist/assert/match.d.ts +6 -0
- package/dist/assert/match.js +13 -4
- package/dist/assert/model.d.ts +110 -3
- package/dist/assert/model.js +16 -1
- package/dist/assert/schema.d.ts +194 -1
- package/dist/assert/schema.js +154 -12
- package/dist/assert/status-names.d.ts +9 -0
- package/dist/assert/status-names.js +27 -0
- package/dist/assert/status.d.ts +4 -1
- package/dist/assert/status.js +27 -3
- package/dist/asyncapi/browser.d.ts +7 -0
- package/dist/asyncapi/browser.js +6 -0
- package/dist/asyncapi/frame-check-worker-host.d.ts +44 -0
- package/dist/asyncapi/frame-check-worker-host.js +175 -0
- package/dist/asyncapi/frame-check-worker.d.ts +12 -0
- package/dist/asyncapi/frame-check-worker.js +25 -0
- package/dist/asyncapi/frame-check.d.ts +25 -0
- package/dist/asyncapi/frame-check.js +78 -0
- package/dist/asyncapi/import.d.ts +25 -0
- package/dist/asyncapi/import.js +34 -0
- package/dist/asyncapi/map.d.ts +40 -0
- package/dist/asyncapi/map.js +230 -0
- package/dist/asyncapi/model.d.ts +84 -0
- package/dist/asyncapi/model.js +7 -0
- package/dist/asyncapi/normalise-2.d.ts +13 -0
- package/dist/asyncapi/normalise-2.js +113 -0
- package/dist/asyncapi/normalise-3.d.ts +14 -0
- package/dist/asyncapi/normalise-3.js +133 -0
- package/dist/asyncapi/parse.d.ts +31 -0
- package/dist/asyncapi/parse.js +85 -0
- package/dist/asyncapi/read.d.ts +35 -0
- package/dist/asyncapi/read.js +186 -0
- package/dist/asyncapi/security.d.ts +14 -0
- package/dist/asyncapi/security.js +55 -0
- package/dist/asyncapi/update.d.ts +53 -0
- package/dist/asyncapi/update.js +220 -0
- package/dist/errors.d.ts +16 -0
- package/dist/errors.js +22 -0
- package/dist/grpc/events.d.ts +22 -0
- package/dist/grpc/events.js +1 -0
- package/dist/grpc/expand.d.ts +1 -1
- package/dist/grpc/expand.js +15 -5
- package/dist/grpc/files.d.ts +271 -0
- package/dist/grpc/files.js +62 -0
- package/dist/grpc/model.d.ts +11 -1
- package/dist/grpc/module.d.ts +2 -0
- package/dist/grpc/module.js +13 -0
- package/dist/grpc/run.d.ts +73 -0
- package/dist/grpc/run.js +407 -0
- package/dist/grpc/script-types.d.ts +8 -0
- package/dist/grpc/script-types.js +149 -0
- package/dist/grpc/scripting.d.ts +34 -0
- package/dist/grpc/scripting.js +147 -0
- package/dist/grpc/send-input.d.ts +46 -0
- package/dist/grpc/send-input.js +42 -0
- package/dist/grpc/send.d.ts +2 -2
- package/dist/grpc/status.d.ts +9 -2
- package/dist/grpc/status.js +11 -24
- package/dist/grpc/storage.d.ts +9 -0
- package/dist/grpc/storage.js +167 -0
- package/dist/{rest/auth.d.ts → http/auth/apply-auth.d.ts} +4 -4
- package/dist/{rest/auth.js → http/auth/apply-auth.js} +1 -1
- package/dist/http/auth/apply.d.ts +1 -1
- package/dist/{rest → http/auth}/oauth2.d.ts +2 -2
- package/dist/{rest → http/auth}/oauth2.js +1 -1
- package/dist/http/auth/send-auth.d.ts +57 -0
- package/dist/http/auth/send-auth.js +7 -0
- package/dist/http/client.js +150 -8
- package/dist/http/cookies.d.ts +79 -0
- package/dist/http/cookies.js +81 -0
- package/dist/http/curl.d.ts +4 -14
- package/dist/http/curl.js +4 -154
- package/dist/http/decompress.d.ts +7 -0
- package/dist/http/decompress.js +23 -1
- package/dist/http/document-fetch.d.ts +42 -0
- package/dist/http/document-fetch.js +207 -0
- package/dist/http/entries.d.ts +27 -0
- package/dist/http/entries.js +16 -0
- package/dist/http/escape.d.ts +18 -0
- package/dist/http/escape.js +30 -0
- package/dist/http/fetch-document.d.ts +28 -0
- package/dist/{wsdl/fetch.js → http/fetch-document.js} +8 -16
- package/dist/http/media-type.d.ts +9 -0
- package/dist/http/media-type.js +12 -0
- package/dist/http/transcript-cap.d.ts +26 -0
- package/dist/http/transcript-cap.js +36 -0
- package/dist/http/types.d.ts +59 -0
- package/dist/http/webhook-signature.d.ts +81 -0
- package/dist/http/webhook-signature.js +227 -0
- package/dist/import-detect.d.ts +2 -2
- package/dist/import-detect.js +10 -1
- package/dist/index.d.ts +207 -55
- package/dist/index.js +129 -32
- package/dist/json/cursor.d.ts +2 -0
- package/dist/json/cursor.js +1 -0
- package/dist/json/pointer-range.d.ts +18 -0
- package/dist/json/pointer-range.js +157 -0
- package/dist/json/schema/model.d.ts +59 -0
- package/dist/json/schema/model.js +8 -0
- package/dist/json/schema/parse-text.d.ts +16 -0
- package/dist/json/schema/parse-text.js +37 -0
- package/dist/{rest/openapi → json/schema}/refs.d.ts +2 -2
- package/dist/{rest/openapi → json/schema}/refs.js +3 -3
- package/dist/{rest/openapi → json/schema}/sample.d.ts +4 -0
- package/dist/{rest/openapi → json/schema}/sample.js +2 -2
- package/dist/json/schema/source.d.ts +21 -0
- package/dist/json/schema/source.js +8 -0
- package/dist/json/schema-validate.d.ts +49 -0
- package/dist/json/schema-validate.js +557 -0
- package/dist/{wss/keystore → keystore}/index.js +1 -1
- package/dist/{wss/keystore → keystore}/pem.js +1 -1
- package/dist/{wss/keystore → keystore}/pkcs12.js +1 -1
- package/dist/project/attachments-cache.d.ts +3 -1
- package/dist/{wsdl → project}/cache-naming.js +1 -1
- package/dist/project/endpoints.d.ts +18 -8
- package/dist/project/endpoints.js +21 -6
- package/dist/project/environments.d.ts +7 -5
- package/dist/project/history.d.ts +105 -9
- package/dist/project/history.js +195 -23
- package/dist/project/inherit.d.ts +7 -0
- package/dist/project/inherit.js +9 -0
- package/dist/project/keystores.d.ts +1 -1
- package/dist/project/load-helpers.d.ts +89 -0
- package/dist/project/load-helpers.js +177 -0
- package/dist/project/load.d.ts +30 -4
- package/dist/project/load.js +168 -545
- package/dist/project/managed-files.d.ts +36 -0
- package/dist/project/managed-files.js +97 -0
- package/dist/project/migrate.d.ts +2 -2
- package/dist/project/migrate.js +2 -2
- package/dist/project/model.d.ts +92 -14
- package/dist/project/model.js +50 -4
- package/dist/project/paths.d.ts +10 -1
- package/dist/project/paths.js +10 -1
- package/dist/project/preferences.d.ts +11 -2
- package/dist/project/preferences.js +5 -1
- package/dist/project/properties.d.ts +31 -17
- package/dist/project/properties.js +89 -70
- package/dist/project/request-location.d.ts +20 -0
- package/dist/project/request-location.js +62 -0
- package/dist/project/save.d.ts +12 -2
- package/dist/project/save.js +186 -141
- package/dist/project/schema-parts.d.ts +337 -0
- package/dist/project/schema-parts.js +248 -0
- package/dist/project/schema.d.ts +72 -928
- package/dist/project/schema.js +17 -466
- package/dist/project/sequence-guards.d.ts +43 -0
- package/dist/project/sequence-guards.js +109 -0
- package/dist/project/serialize-helpers.d.ts +60 -0
- package/dist/project/serialize-helpers.js +108 -0
- package/dist/project/serialize.d.ts +7 -8
- package/dist/project/serialize.js +34 -293
- package/dist/protocol/features.d.ts +51 -0
- package/dist/protocol/features.js +64 -0
- package/dist/protocol/index.d.ts +7 -0
- package/dist/protocol/index.js +4 -0
- package/dist/protocol/module.d.ts +247 -0
- package/dist/protocol/module.js +48 -0
- package/dist/protocol/registry.d.ts +42 -0
- package/dist/protocol/registry.js +47 -0
- package/dist/protocols.d.ts +77 -0
- package/dist/protocols.js +40 -0
- package/dist/redact/index.d.ts +12 -1
- package/dist/redact/index.js +55 -7
- package/dist/redact/literal.d.ts +10 -0
- package/dist/redact/literal.js +110 -12
- package/dist/rest/body.d.ts +2 -10
- package/dist/rest/body.js +3 -25
- package/dist/rest/browser.d.ts +4 -0
- package/dist/rest/browser.js +5 -0
- package/dist/rest/contract-check-worker-host.d.ts +36 -0
- package/dist/rest/contract-check-worker-host.js +158 -0
- package/dist/rest/contract-check-worker.d.ts +7 -0
- package/dist/rest/contract-check-worker.js +28 -0
- package/dist/rest/contract-check.d.ts +43 -0
- package/dist/rest/contract-check.js +217 -0
- package/dist/rest/cookie-jar.d.ts +62 -0
- package/dist/rest/cookie-jar.js +262 -0
- package/dist/rest/cookies.d.ts +6 -22
- package/dist/rest/cookies.js +6 -42
- package/dist/rest/curl.js +5 -1
- package/dist/rest/events.d.ts +12 -0
- package/dist/rest/events.js +1 -0
- package/dist/rest/expand.d.ts +6 -1
- package/dist/rest/expand.js +29 -11
- package/dist/rest/files.d.ts +439 -0
- package/dist/rest/files.js +107 -0
- package/dist/rest/json-form.d.ts +97 -0
- package/dist/rest/json-form.js +396 -0
- package/dist/rest/model.d.ts +35 -24
- package/dist/rest/model.js +6 -9
- package/dist/rest/module.d.ts +2 -0
- package/dist/rest/module.js +13 -0
- package/dist/rest/openapi/cache.d.ts +7 -2
- package/dist/rest/openapi/cache.js +2 -2
- package/dist/rest/openapi/import.d.ts +11 -16
- package/dist/rest/openapi/import.js +6 -2
- package/dist/rest/openapi/map.d.ts +38 -1
- package/dist/rest/openapi/map.js +151 -41
- package/dist/rest/openapi/match.d.ts +20 -0
- package/dist/rest/openapi/match.js +117 -0
- package/dist/rest/openapi/model.d.ts +33 -45
- package/dist/rest/openapi/parse.d.ts +3 -12
- package/dist/rest/openapi/parse.js +138 -67
- package/dist/rest/openapi/responses.d.ts +23 -0
- package/dist/rest/openapi/responses.js +59 -0
- package/dist/rest/openapi/runtime-expression.d.ts +69 -0
- package/dist/rest/openapi/runtime-expression.js +213 -0
- package/dist/rest/openapi/update.d.ts +116 -0
- package/dist/rest/openapi/update.js +456 -0
- package/dist/rest/postman/map.d.ts +1 -0
- package/dist/rest/postman/map.js +66 -4
- package/dist/rest/postman/model.d.ts +9 -0
- package/dist/rest/postman/parse.js +33 -10
- package/dist/rest/response.d.ts +2 -23
- package/dist/rest/response.js +3 -75
- package/dist/rest/run.d.ts +56 -0
- package/dist/rest/run.js +395 -0
- package/dist/rest/script-types.d.ts +7 -0
- package/dist/rest/script-types.js +83 -0
- package/dist/rest/scripting.d.ts +38 -0
- package/dist/rest/scripting.js +282 -0
- package/dist/rest/send-input.d.ts +54 -0
- package/dist/rest/send-input.js +73 -0
- package/dist/rest/send.d.ts +77 -4
- package/dist/rest/send.js +128 -7
- package/dist/rest/sse-transcript.d.ts +25 -0
- package/dist/rest/sse-transcript.js +95 -0
- package/dist/rest/sse.d.ts +43 -0
- package/dist/rest/sse.js +195 -0
- package/dist/rest/storage.d.ts +26 -0
- package/dist/rest/storage.js +262 -0
- package/dist/rest/url.d.ts +10 -4
- package/dist/rest/url.js +38 -5
- package/dist/run/baseline-update.d.ts +35 -0
- package/dist/run/baseline-update.js +97 -0
- package/dist/run/baseline.d.ts +42 -0
- package/dist/run/baseline.js +93 -0
- package/dist/run/context.d.ts +86 -0
- package/dist/run/context.js +31 -0
- package/dist/run/current-values.d.ts +32 -0
- package/dist/run/current-values.js +43 -0
- package/dist/run/event-queue.d.ts +14 -0
- package/dist/run/event-queue.js +46 -0
- package/dist/run/exchange.d.ts +62 -0
- package/dist/run/exchange.js +65 -0
- package/dist/run/host.d.ts +89 -0
- package/dist/run/host.js +1 -0
- package/dist/run/index.d.ts +20 -7
- package/dist/run/index.js +12 -4
- package/dist/run/oauth2-token.d.ts +42 -0
- package/dist/run/oauth2-token.js +92 -0
- package/dist/run/open.d.ts +12 -0
- package/dist/run/open.js +16 -0
- package/dist/run/run.d.ts +124 -4
- package/dist/run/run.js +293 -134
- package/dist/run/scope.d.ts +11 -0
- package/dist/run/scope.js +26 -0
- package/dist/run/script-support.d.ts +53 -0
- package/dist/run/script-support.js +68 -0
- package/dist/run/secret-needs.d.ts +11 -4
- package/dist/run/secret-needs.js +48 -96
- package/dist/run/select.d.ts +34 -25
- package/dist/run/select.js +45 -54
- package/dist/run/send-helpers.d.ts +93 -0
- package/dist/run/send-helpers.js +255 -0
- package/dist/run/tree.d.ts +50 -0
- package/dist/run/tree.js +54 -0
- package/dist/script/api/postman.d.ts +10 -0
- package/dist/script/api/postman.js +264 -0
- package/dist/script/api/prelude.d.ts +20 -0
- package/dist/script/api/prelude.js +215 -0
- package/dist/script/apply.d.ts +44 -0
- package/dist/script/apply.js +120 -0
- package/dist/script/check/host.d.ts +41 -0
- package/dist/script/check/host.js +143 -0
- package/dist/script/check/service.d.ts +52 -0
- package/dist/script/check/service.js +195 -0
- package/dist/script/check/worker.d.ts +1 -0
- package/dist/script/check/worker.js +40 -0
- package/dist/script/index.d.ts +16 -0
- package/dist/script/index.js +10 -0
- package/dist/script/lookup.d.ts +10 -0
- package/dist/script/lookup.js +23 -0
- package/dist/script/model.d.ts +82 -0
- package/dist/script/model.js +18 -0
- package/dist/script/props.d.ts +8 -0
- package/dist/script/props.js +28 -0
- package/dist/script/request-scripts.d.ts +83 -0
- package/dist/script/request-scripts.js +160 -0
- package/dist/script/run.d.ts +47 -0
- package/dist/script/run.js +146 -0
- package/dist/script/sandbox/execute.d.ts +26 -0
- package/dist/script/sandbox/execute.js +212 -0
- package/dist/script/sandbox/host-api.d.ts +27 -0
- package/dist/script/sandbox/host-api.js +101 -0
- package/dist/script/sandbox/host.d.ts +18 -0
- package/dist/script/sandbox/host.js +172 -0
- package/dist/script/sandbox/model.d.ts +69 -0
- package/dist/script/sandbox/model.js +24 -0
- package/dist/script/sandbox/worker.d.ts +1 -0
- package/dist/script/sandbox/worker.js +20 -0
- package/dist/script/send.d.ts +27 -0
- package/dist/script/send.js +76 -0
- package/dist/script/strip.d.ts +5 -0
- package/dist/script/strip.js +43 -0
- package/dist/script/types/api.d.ts +38 -0
- package/dist/script/types/api.js +113 -0
- package/dist/script/types/json-schema.d.ts +26 -0
- package/dist/script/types/json-schema.js +206 -0
- package/dist/secrets/env-names.d.ts +9 -1
- package/dist/secrets/env-names.js +17 -1
- package/dist/secrets/resolve.d.ts +44 -4
- package/dist/secrets/resolve.js +58 -1
- package/dist/secrets/scan/apply.d.ts +36 -0
- package/dist/secrets/scan/apply.js +194 -0
- package/dist/secrets/scan/rules.d.ts +32 -0
- package/dist/secrets/scan/rules.js +346 -0
- package/dist/secrets/scan/scan.d.ts +6 -0
- package/dist/secrets/scan/scan.js +57 -0
- package/dist/secrets/scan/walk.d.ts +70 -0
- package/dist/secrets/scan/walk.js +156 -0
- package/dist/secrets/secret-refs.d.ts +8 -0
- package/dist/secrets/secret-refs.js +25 -0
- package/dist/secrets/secret-token.d.ts +17 -0
- package/dist/secrets/secret-token.js +25 -0
- package/dist/sequence/file.d.ts +169 -0
- package/dist/sequence/file.js +237 -0
- package/dist/sequence/index.d.ts +7 -0
- package/dist/sequence/index.js +5 -0
- package/dist/sequence/load.d.ts +32 -0
- package/dist/sequence/load.js +56 -0
- package/dist/sequence/model.d.ts +115 -0
- package/dist/sequence/model.js +53 -0
- package/dist/sequence/run.d.ts +131 -0
- package/dist/sequence/run.js +191 -0
- package/dist/sequence/transfer.d.ts +24 -0
- package/dist/sequence/transfer.js +75 -0
- package/dist/server-api/audit.d.ts +455 -0
- package/dist/server-api/audit.js +186 -0
- package/dist/server-api/ci-tokens.d.ts +50 -0
- package/dist/server-api/ci-tokens.js +35 -0
- package/dist/server-api/hooks.d.ts +337 -0
- package/dist/server-api/hooks.js +152 -0
- package/dist/server-api/identity.d.ts +210 -0
- package/dist/server-api/identity.js +115 -0
- package/dist/server-api/licensing.d.ts +80 -0
- package/dist/server-api/licensing.js +53 -0
- package/dist/server-api/live.d.ts +132 -0
- package/dist/server-api/live.js +102 -0
- package/dist/server-api/meta.d.ts +31 -0
- package/dist/server-api/meta.js +21 -0
- package/dist/server-api/sync.d.ts +179 -0
- package/dist/server-api/sync.js +124 -0
- package/dist/server-api/teams.d.ts +306 -0
- package/dist/server-api/teams.js +113 -0
- package/dist/snapshot/diff.d.ts +30 -0
- package/dist/snapshot/diff.js +75 -0
- package/dist/snapshot/format.d.ts +17 -0
- package/dist/snapshot/format.js +40 -0
- package/dist/snapshot/golden-file.d.ts +45 -0
- package/dist/snapshot/golden-file.js +173 -0
- package/dist/snapshot/ignore.d.ts +14 -0
- package/dist/snapshot/ignore.js +79 -0
- package/dist/snapshot/index.d.ts +9 -0
- package/dist/snapshot/index.js +9 -0
- package/dist/snapshot/json-diff.d.ts +3 -0
- package/dist/snapshot/json-diff.js +93 -0
- package/dist/snapshot/xml-diff.d.ts +10 -0
- package/dist/snapshot/xml-diff.js +194 -0
- package/dist/soap/auth.d.ts +26 -0
- package/dist/soap/auth.js +54 -0
- package/dist/soap/curl.d.ts +20 -0
- package/dist/soap/curl.js +161 -0
- package/dist/soap/expand.d.ts +24 -0
- package/dist/soap/expand.js +95 -0
- package/dist/soap/files.d.ts +384 -0
- package/dist/soap/files.js +114 -0
- package/dist/soap/form-request.d.ts +13 -0
- package/dist/soap/form-request.js +2 -2
- package/dist/soap/generate.d.ts +12 -0
- package/dist/{generate.js → soap/generate.js} +4 -4
- package/dist/{import.d.ts → soap/import.d.ts} +4 -4
- package/dist/{import.js → soap/import.js} +13 -13
- package/dist/soap/json-operation.d.ts +35 -0
- package/dist/soap/json-operation.js +225 -0
- package/dist/soap/legacy-project/env-refs.d.ts +19 -0
- package/dist/soap/legacy-project/env-refs.js +105 -0
- package/dist/soap/legacy-project/map.d.ts +2 -2
- package/dist/soap/legacy-project/map.js +6 -0
- package/dist/soap/mime/multipart.d.ts +2 -2
- package/dist/soap/mime/multipart.js +2 -5
- package/dist/soap/mime/send-pipeline.d.ts +1 -1
- package/dist/soap/mime/send-pipeline.js +1 -1
- package/dist/soap/mime/types.d.ts +1 -3
- package/dist/soap/module.d.ts +2 -0
- package/dist/soap/module.js +13 -0
- package/dist/soap/namespace-scope.js +1 -1
- package/dist/soap/operations.d.ts +12 -0
- package/dist/{operations.js → soap/operations.js} +4 -4
- package/dist/soap/run.d.ts +70 -0
- package/dist/soap/run.js +549 -0
- package/dist/soap/script-types.d.ts +65 -0
- package/dist/soap/script-types.js +379 -0
- package/dist/soap/scripting.d.ts +45 -0
- package/dist/soap/scripting.js +221 -0
- package/dist/soap/send-input.d.ts +61 -0
- package/dist/{send-options.js → soap/send-input.js} +5 -109
- package/dist/{send.d.ts → soap/send.d.ts} +1 -1
- package/dist/{send.js → soap/send.js} +28 -12
- package/dist/soap/storage.d.ts +9 -0
- package/dist/soap/storage.js +237 -0
- package/dist/soap/transforms.d.ts +3 -12
- package/dist/soap/transforms.js +3 -14
- package/dist/{types.d.ts → soap/types.d.ts} +34 -84
- package/dist/sync/git-cli.d.ts +202 -0
- package/dist/sync/git-cli.js +684 -0
- package/dist/sync/three-way-merge.d.ts +41 -0
- package/dist/sync/three-way-merge.js +85 -0
- package/dist/sync/tree-paths.d.ts +34 -0
- package/dist/sync/tree-paths.js +131 -0
- package/dist/team-secrets/envelope.d.ts +10 -0
- package/dist/team-secrets/envelope.js +121 -0
- package/dist/team-secrets/errors.d.ts +26 -0
- package/dist/team-secrets/errors.js +27 -0
- package/dist/team-secrets/index.d.ts +14 -0
- package/dist/team-secrets/index.js +8 -0
- package/dist/team-secrets/keys.d.ts +52 -0
- package/dist/team-secrets/keys.js +158 -0
- package/dist/team-secrets/log.d.ts +48 -0
- package/dist/team-secrets/log.js +175 -0
- package/dist/team-secrets/resolve-conflict.d.ts +7 -0
- package/dist/team-secrets/resolve-conflict.js +14 -0
- package/dist/team-secrets/schema.d.ts +97 -0
- package/dist/team-secrets/schema.js +157 -0
- package/dist/team-secrets/sign.d.ts +24 -0
- package/dist/team-secrets/sign.js +71 -0
- package/dist/team-secrets/vault.d.ts +49 -0
- package/dist/team-secrets/vault.js +148 -0
- package/dist/validate/wsi/run-message.d.ts +2 -2
- package/dist/validate/wsi/run-message.js +1 -1
- package/dist/validate/wsi/run-wsdl.d.ts +2 -2
- package/dist/validate/wsi/run-wsdl.js +1 -1
- package/dist/validate/wsi/types.d.ts +1 -1
- package/dist/webhooks/model.d.ts +138 -0
- package/dist/webhooks/model.js +150 -0
- package/dist/workspace/commit-message.d.ts +1 -1
- package/dist/workspace/commit-message.js +6 -1
- package/dist/workspace/environments.d.ts +11 -4
- package/dist/workspace/environments.js +12 -0
- package/dist/workspace/index.d.ts +3 -3
- package/dist/workspace/index.js +2 -2
- package/dist/workspace/paths.d.ts +5 -2
- package/dist/workspace/paths.js +5 -2
- package/dist/workspace/schema.d.ts +7 -3
- package/dist/workspace/schema.js +24 -3
- package/dist/workspace/share.d.ts +30 -11
- package/dist/workspace/share.js +32 -6
- package/dist/ws/call.d.ts +1 -1
- package/dist/ws/call.js +2 -2
- package/dist/ws/connect.d.ts +60 -0
- package/dist/ws/connect.js +131 -0
- package/dist/ws/events.d.ts +17 -0
- package/dist/ws/events.js +1 -0
- package/dist/ws/expand.d.ts +1 -1
- package/dist/ws/expand.js +1 -1
- package/dist/ws/files.d.ts +284 -0
- package/dist/ws/files.js +71 -0
- package/dist/ws/history-entry.d.ts +44 -0
- package/dist/ws/history-entry.js +93 -0
- package/dist/ws/model.d.ts +44 -3
- package/dist/ws/model.js +3 -0
- package/dist/ws/module.d.ts +2 -0
- package/dist/ws/module.js +11 -0
- package/dist/ws/run.d.ts +63 -0
- package/dist/ws/run.js +470 -0
- package/dist/ws/session.d.ts +18 -0
- package/dist/ws/session.js +52 -25
- package/dist/ws/storage.d.ts +9 -0
- package/dist/ws/storage.js +176 -0
- package/dist/ws/transcript.d.ts +3 -4
- package/dist/ws/transcript.js +26 -17
- package/dist/ws/url.d.ts +1 -1
- package/dist/wsdl/cache.js +1 -1
- package/dist/wsdl/docs-generator.d.ts +3 -3
- package/dist/wsdl/docs-generator.js +1 -1
- package/dist/wsdl/export-definition.js +1 -1
- package/dist/wsdl/qname.d.ts +2 -5
- package/dist/wsdl/resolver.d.ts +4 -11
- package/dist/wsdl/resolver.js +3 -3
- package/dist/wsdl/update-definition.d.ts +5 -5
- package/dist/wsdl/update-definition.js +6 -6
- package/dist/wss/apply.js +1 -1
- package/dist/{project/wss-configs.d.ts → wss/configs.d.ts} +2 -2
- package/dist/{project/wss-configs.js → wss/configs.js} +2 -2
- package/dist/wss/incoming/decrypt.d.ts +1 -1
- package/dist/wss/incoming/index.js +1 -1
- package/dist/wss/incoming/verify.d.ts +1 -1
- package/dist/wss/incoming/verify.js +1 -1
- package/dist/wss/key-identifiers.js +1 -1
- package/dist/wss/model.d.ts +1 -1
- package/dist/wss/outgoing/encryption.d.ts +1 -1
- package/dist/wss/outgoing/signature.d.ts +1 -1
- package/dist/xml/decode.d.ts +15 -0
- package/dist/xml/decode.js +22 -0
- package/dist/xml/entitize.d.ts +17 -0
- package/dist/xml/entitize.js +19 -0
- package/dist/xml/index.d.ts +1 -1
- package/dist/xml/index.js +1 -1
- package/dist/xml/locate.d.ts +39 -0
- package/dist/xml/locate.js +117 -0
- package/dist/xml/qname.d.ts +12 -0
- package/dist/xml/qname.js +8 -0
- package/dist/xpath/evaluate-async.d.ts +19 -0
- package/dist/xpath/evaluate-async.js +31 -11
- package/dist/xpath/evaluate.d.ts +1 -1
- package/dist/xpath/namespaces.js +1 -1
- package/dist/xpath/worker.d.ts +11 -5
- package/dist/xpath/worker.js +24 -7
- package/dist/xsd/form-model.d.ts +19 -2
- package/dist/xsd/form-model.js +14 -2
- package/dist/xsd/json-bridge.d.ts +152 -0
- package/dist/xsd/json-bridge.js +1213 -0
- package/dist/xsd/locate.d.ts +2 -30
- package/dist/xsd/locate.js +1 -109
- package/dist/xsd/xml-scan.d.ts +2 -0
- package/dist/xsd/xml-scan.js +1 -1
- package/dist/xsd/xml-writer.d.ts +2 -0
- package/dist/xsd/xml-writer.js +4 -0
- package/package.json +12 -1
- package/dist/generate.d.ts +0 -12
- package/dist/operations.d.ts +0 -12
- package/dist/run/effective-auth.d.ts +0 -10
- package/dist/run/effective-auth.js +0 -19
- package/dist/run/prepare.d.ts +0 -43
- package/dist/run/prepare.js +0 -280
- package/dist/send-options.d.ts +0 -141
- package/dist/wsdl/fetch.d.ts +0 -13
- /package/dist/{soap → http}/charset.d.ts +0 -0
- /package/dist/{soap → http}/charset.js +0 -0
- /package/dist/{wsdl → http}/ref-policy.d.ts +0 -0
- /package/dist/{wsdl → http}/ref-policy.js +0 -0
- /package/dist/{wss/keystore → keystore}/certificate.d.ts +0 -0
- /package/dist/{wss/keystore → keystore}/certificate.js +0 -0
- /package/dist/{wss/keystore → keystore}/index.d.ts +0 -0
- /package/dist/{wss/keystore → keystore}/model.d.ts +0 -0
- /package/dist/{wss/keystore → keystore}/model.js +0 -0
- /package/dist/{wss/keystore → keystore}/pem.d.ts +0 -0
- /package/dist/{wss/keystore → keystore}/pkcs12.d.ts +0 -0
- /package/dist/{wsdl → project}/cache-naming.d.ts +0 -0
- /package/dist/{types.js → soap/types.js} +0 -0
- /package/dist/{soap → xml}/prefixes.d.ts +0 -0
- /package/dist/{soap → xml}/prefixes.js +0 -0
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The identity module's wire shapes (identity spec §3.1), one object per request and response.
|
|
3
|
+
* The server's routes validate with them (through `z.toJSONSchema`) and the desktop's
|
|
4
|
+
* `ServerClient` parses answers with them, so a drift between the two fails typecheck.
|
|
5
|
+
*
|
|
6
|
+
* Nothing here trims or lower-cases: Fastify validates the JSON Schema rendering, which cannot
|
|
7
|
+
* carry a transform, so normalisation happens in the handler (`emailKey` in the server).
|
|
8
|
+
*/
|
|
9
|
+
import { z } from 'zod';
|
|
10
|
+
/** §3.4: the only composition rule. Checked in the handler so the problem can name the number. */
|
|
11
|
+
export declare const MIN_PASSWORD_LENGTH = 12;
|
|
12
|
+
export declare const MAX_PASSWORD_LENGTH = 256;
|
|
13
|
+
export declare const MAX_DEVICE_NAME_LENGTH = 80;
|
|
14
|
+
export declare const MAX_DISPLAY_NAME_LENGTH = 120;
|
|
15
|
+
/** 32 random bytes in base64url without padding: invitation secrets, grants, PKCE challenges. */
|
|
16
|
+
export declare const SECRET_PATTERN: RegExp;
|
|
17
|
+
export declare const DEVICE_TOKEN_PATTERN: RegExp;
|
|
18
|
+
/** RFC 7636 §4.1 verifier alphabet and length. */
|
|
19
|
+
export declare const PKCE_VERIFIER_PATTERN: RegExp;
|
|
20
|
+
export declare const emailSchema: z.ZodString;
|
|
21
|
+
export declare const passwordSchema: z.ZodString;
|
|
22
|
+
export declare const deviceSchema: z.ZodObject<{
|
|
23
|
+
name: z.ZodString;
|
|
24
|
+
}, z.core.$strip>;
|
|
25
|
+
export declare const identityIdSchema: z.ZodString;
|
|
26
|
+
export declare const serverUserSchema: z.ZodObject<{
|
|
27
|
+
id: z.ZodString;
|
|
28
|
+
email: z.ZodString;
|
|
29
|
+
displayName: z.ZodString;
|
|
30
|
+
serverAdmin: z.ZodBoolean;
|
|
31
|
+
}, z.core.$strip>;
|
|
32
|
+
export type ServerUser = z.infer<typeof serverUserSchema>;
|
|
33
|
+
export declare const signInResponseSchema: z.ZodObject<{
|
|
34
|
+
token: z.ZodString;
|
|
35
|
+
user: z.ZodObject<{
|
|
36
|
+
id: z.ZodString;
|
|
37
|
+
email: z.ZodString;
|
|
38
|
+
displayName: z.ZodString;
|
|
39
|
+
serverAdmin: z.ZodBoolean;
|
|
40
|
+
}, z.core.$strip>;
|
|
41
|
+
}, z.core.$strip>;
|
|
42
|
+
export type SignInResponse = z.infer<typeof signInResponseSchema>;
|
|
43
|
+
export declare const localSignInRequestSchema: z.ZodObject<{
|
|
44
|
+
email: z.ZodString;
|
|
45
|
+
password: z.ZodString;
|
|
46
|
+
device: z.ZodObject<{
|
|
47
|
+
name: z.ZodString;
|
|
48
|
+
}, z.core.$strip>;
|
|
49
|
+
}, z.core.$strip>;
|
|
50
|
+
export type LocalSignInRequest = z.infer<typeof localSignInRequestSchema>;
|
|
51
|
+
export declare const oidcStartRequestSchema: z.ZodObject<{
|
|
52
|
+
device: z.ZodObject<{
|
|
53
|
+
name: z.ZodString;
|
|
54
|
+
}, z.core.$strip>;
|
|
55
|
+
codeChallenge: z.ZodString;
|
|
56
|
+
loopbackPort: z.ZodNumber;
|
|
57
|
+
}, z.core.$strip>;
|
|
58
|
+
export type OidcStartRequest = z.infer<typeof oidcStartRequestSchema>;
|
|
59
|
+
export declare const oidcStartResponseSchema: z.ZodObject<{
|
|
60
|
+
flowId: z.ZodString;
|
|
61
|
+
authorizationUrl: z.ZodString;
|
|
62
|
+
expiresAt: z.ZodString;
|
|
63
|
+
}, z.core.$strip>;
|
|
64
|
+
export type OidcStartResponse = z.infer<typeof oidcStartResponseSchema>;
|
|
65
|
+
export declare const oidcCompleteRequestSchema: z.ZodObject<{
|
|
66
|
+
flowId: z.ZodString;
|
|
67
|
+
grant: z.ZodString;
|
|
68
|
+
codeVerifier: z.ZodString;
|
|
69
|
+
}, z.core.$strip>;
|
|
70
|
+
export type OidcCompleteRequest = z.infer<typeof oidcCompleteRequestSchema>;
|
|
71
|
+
/** The IdP's redirect back to the server; `code` and `error` are mutually exclusive in practice. */
|
|
72
|
+
export declare const oidcCallbackQuerySchema: z.ZodObject<{
|
|
73
|
+
state: z.ZodString;
|
|
74
|
+
code: z.ZodOptional<z.ZodString>;
|
|
75
|
+
error: z.ZodOptional<z.ZodString>;
|
|
76
|
+
error_description: z.ZodOptional<z.ZodString>;
|
|
77
|
+
}, z.core.$strip>;
|
|
78
|
+
export type OidcCallbackQuery = z.infer<typeof oidcCallbackQuerySchema>;
|
|
79
|
+
export declare const signInMethodsSchema: z.ZodObject<{
|
|
80
|
+
local: z.ZodBoolean;
|
|
81
|
+
oidc: z.ZodArray<z.ZodObject<{
|
|
82
|
+
issuer: z.ZodString;
|
|
83
|
+
}, z.core.$strip>>;
|
|
84
|
+
}, z.core.$strip>;
|
|
85
|
+
export declare const meResponseSchema: z.ZodObject<{
|
|
86
|
+
user: z.ZodObject<{
|
|
87
|
+
id: z.ZodString;
|
|
88
|
+
email: z.ZodString;
|
|
89
|
+
displayName: z.ZodString;
|
|
90
|
+
serverAdmin: z.ZodBoolean;
|
|
91
|
+
}, z.core.$strip>;
|
|
92
|
+
methods: z.ZodObject<{
|
|
93
|
+
local: z.ZodBoolean;
|
|
94
|
+
oidc: z.ZodArray<z.ZodObject<{
|
|
95
|
+
issuer: z.ZodString;
|
|
96
|
+
}, z.core.$strip>>;
|
|
97
|
+
}, z.core.$strip>;
|
|
98
|
+
}, z.core.$strip>;
|
|
99
|
+
export type MeResponse = z.infer<typeof meResponseSchema>;
|
|
100
|
+
export declare const passwordChangeRequestSchema: z.ZodObject<{
|
|
101
|
+
currentPassword: z.ZodOptional<z.ZodString>;
|
|
102
|
+
newPassword: z.ZodString;
|
|
103
|
+
}, z.core.$strip>;
|
|
104
|
+
export type PasswordChangeRequest = z.infer<typeof passwordChangeRequestSchema>;
|
|
105
|
+
export declare const deviceSummarySchema: z.ZodObject<{
|
|
106
|
+
id: z.ZodString;
|
|
107
|
+
name: z.ZodString;
|
|
108
|
+
createdAt: z.ZodString;
|
|
109
|
+
lastUsedAt: z.ZodString;
|
|
110
|
+
current: z.ZodBoolean;
|
|
111
|
+
}, z.core.$strip>;
|
|
112
|
+
export declare const devicesResponseSchema: z.ZodArray<z.ZodObject<{
|
|
113
|
+
id: z.ZodString;
|
|
114
|
+
name: z.ZodString;
|
|
115
|
+
createdAt: z.ZodString;
|
|
116
|
+
lastUsedAt: z.ZodString;
|
|
117
|
+
current: z.ZodBoolean;
|
|
118
|
+
}, z.core.$strip>>;
|
|
119
|
+
export type DeviceSummary = z.infer<typeof deviceSummarySchema>;
|
|
120
|
+
export declare const invitationCreateRequestSchema: z.ZodObject<{
|
|
121
|
+
email: z.ZodString;
|
|
122
|
+
serverAdmin: z.ZodOptional<z.ZodBoolean>;
|
|
123
|
+
}, z.core.$strip>;
|
|
124
|
+
export type InvitationCreateRequest = z.infer<typeof invitationCreateRequestSchema>;
|
|
125
|
+
export declare const invitationCreatedSchema: z.ZodObject<{
|
|
126
|
+
id: z.ZodString;
|
|
127
|
+
email: z.ZodString;
|
|
128
|
+
url: z.ZodString;
|
|
129
|
+
expiresAt: z.ZodString;
|
|
130
|
+
}, z.core.$strip>;
|
|
131
|
+
export type InvitationCreated = z.infer<typeof invitationCreatedSchema>;
|
|
132
|
+
export declare const invitationSummarySchema: z.ZodObject<{
|
|
133
|
+
id: z.ZodString;
|
|
134
|
+
email: z.ZodString;
|
|
135
|
+
serverAdmin: z.ZodBoolean;
|
|
136
|
+
createdBy: z.ZodNullable<z.ZodString>;
|
|
137
|
+
createdAt: z.ZodString;
|
|
138
|
+
expiresAt: z.ZodString;
|
|
139
|
+
acceptedAt: z.ZodOptional<z.ZodString>;
|
|
140
|
+
}, z.core.$strip>;
|
|
141
|
+
export declare const invitationsResponseSchema: z.ZodArray<z.ZodObject<{
|
|
142
|
+
id: z.ZodString;
|
|
143
|
+
email: z.ZodString;
|
|
144
|
+
serverAdmin: z.ZodBoolean;
|
|
145
|
+
createdBy: z.ZodNullable<z.ZodString>;
|
|
146
|
+
createdAt: z.ZodString;
|
|
147
|
+
expiresAt: z.ZodString;
|
|
148
|
+
acceptedAt: z.ZodOptional<z.ZodString>;
|
|
149
|
+
}, z.core.$strip>>;
|
|
150
|
+
export type InvitationSummary = z.infer<typeof invitationSummarySchema>;
|
|
151
|
+
export declare const invitationLookupQuerySchema: z.ZodObject<{
|
|
152
|
+
secret: z.ZodString;
|
|
153
|
+
}, z.core.$strip>;
|
|
154
|
+
export declare const invitationLookupResponseSchema: z.ZodObject<{
|
|
155
|
+
email: z.ZodString;
|
|
156
|
+
methods: z.ZodObject<{
|
|
157
|
+
local: z.ZodBoolean;
|
|
158
|
+
oidc: z.ZodBoolean;
|
|
159
|
+
}, z.core.$strip>;
|
|
160
|
+
}, z.core.$strip>;
|
|
161
|
+
export type InvitationLookupResponse = z.infer<typeof invitationLookupResponseSchema>;
|
|
162
|
+
export declare const invitationAcceptRequestSchema: z.ZodObject<{
|
|
163
|
+
secret: z.ZodString;
|
|
164
|
+
displayName: z.ZodString;
|
|
165
|
+
password: z.ZodString;
|
|
166
|
+
device: z.ZodObject<{
|
|
167
|
+
name: z.ZodString;
|
|
168
|
+
}, z.core.$strip>;
|
|
169
|
+
}, z.core.$strip>;
|
|
170
|
+
export type InvitationAcceptRequest = z.infer<typeof invitationAcceptRequestSchema>;
|
|
171
|
+
export declare const userSummarySchema: z.ZodObject<{
|
|
172
|
+
id: z.ZodString;
|
|
173
|
+
email: z.ZodString;
|
|
174
|
+
displayName: z.ZodString;
|
|
175
|
+
serverAdmin: z.ZodBoolean;
|
|
176
|
+
disabledAt: z.ZodOptional<z.ZodString>;
|
|
177
|
+
methods: z.ZodObject<{
|
|
178
|
+
local: z.ZodBoolean;
|
|
179
|
+
oidc: z.ZodArray<z.ZodObject<{
|
|
180
|
+
issuer: z.ZodString;
|
|
181
|
+
}, z.core.$strip>>;
|
|
182
|
+
}, z.core.$strip>;
|
|
183
|
+
}, z.core.$strip>;
|
|
184
|
+
export declare const usersResponseSchema: z.ZodArray<z.ZodObject<{
|
|
185
|
+
id: z.ZodString;
|
|
186
|
+
email: z.ZodString;
|
|
187
|
+
displayName: z.ZodString;
|
|
188
|
+
serverAdmin: z.ZodBoolean;
|
|
189
|
+
disabledAt: z.ZodOptional<z.ZodString>;
|
|
190
|
+
methods: z.ZodObject<{
|
|
191
|
+
local: z.ZodBoolean;
|
|
192
|
+
oidc: z.ZodArray<z.ZodObject<{
|
|
193
|
+
issuer: z.ZodString;
|
|
194
|
+
}, z.core.$strip>>;
|
|
195
|
+
}, z.core.$strip>;
|
|
196
|
+
}, z.core.$strip>>;
|
|
197
|
+
export type UserSummary = z.infer<typeof userSummarySchema>;
|
|
198
|
+
export declare const userPatchRequestSchema: z.ZodObject<{
|
|
199
|
+
serverAdmin: z.ZodOptional<z.ZodBoolean>;
|
|
200
|
+
disabled: z.ZodOptional<z.ZodBoolean>;
|
|
201
|
+
}, z.core.$strip>;
|
|
202
|
+
export type UserPatchRequest = z.infer<typeof userPatchRequestSchema>;
|
|
203
|
+
export declare const passwordResetCreatedSchema: z.ZodObject<{
|
|
204
|
+
url: z.ZodString;
|
|
205
|
+
expiresAt: z.ZodString;
|
|
206
|
+
}, z.core.$strip>;
|
|
207
|
+
export type PasswordResetCreated = z.infer<typeof passwordResetCreatedSchema>;
|
|
208
|
+
export declare const identityIdParamsSchema: z.ZodObject<{
|
|
209
|
+
id: z.ZodString;
|
|
210
|
+
}, z.core.$strip>;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The identity module's wire shapes (identity spec §3.1), one object per request and response.
|
|
3
|
+
* The server's routes validate with them (through `z.toJSONSchema`) and the desktop's
|
|
4
|
+
* `ServerClient` parses answers with them, so a drift between the two fails typecheck.
|
|
5
|
+
*
|
|
6
|
+
* Nothing here trims or lower-cases: Fastify validates the JSON Schema rendering, which cannot
|
|
7
|
+
* carry a transform, so normalisation happens in the handler (`emailKey` in the server).
|
|
8
|
+
*/
|
|
9
|
+
import { z } from 'zod';
|
|
10
|
+
/** §3.4: the only composition rule. Checked in the handler so the problem can name the number. */
|
|
11
|
+
export const MIN_PASSWORD_LENGTH = 12;
|
|
12
|
+
export const MAX_PASSWORD_LENGTH = 256;
|
|
13
|
+
export const MAX_DEVICE_NAME_LENGTH = 80;
|
|
14
|
+
export const MAX_DISPLAY_NAME_LENGTH = 120;
|
|
15
|
+
/** 32 random bytes in base64url without padding: invitation secrets, grants, PKCE challenges. */
|
|
16
|
+
export const SECRET_PATTERN = /^[A-Za-z0-9_-]{43}$/;
|
|
17
|
+
export const DEVICE_TOKEN_PATTERN = /^wbs_[A-Za-z0-9_-]{43}$/;
|
|
18
|
+
/** RFC 7636 §4.1 verifier alphabet and length. */
|
|
19
|
+
export const PKCE_VERIFIER_PATTERN = /^[A-Za-z0-9._~-]{43,128}$/;
|
|
20
|
+
export const emailSchema = z.string().min(3).max(254).email();
|
|
21
|
+
export const passwordSchema = z.string().min(1).max(MAX_PASSWORD_LENGTH);
|
|
22
|
+
export const deviceSchema = z.object({ name: z.string().min(1).max(MAX_DEVICE_NAME_LENGTH) });
|
|
23
|
+
export const identityIdSchema = z.string().min(1).max(64);
|
|
24
|
+
export const serverUserSchema = z.object({
|
|
25
|
+
id: z.string(),
|
|
26
|
+
email: z.string(),
|
|
27
|
+
displayName: z.string(),
|
|
28
|
+
serverAdmin: z.boolean(),
|
|
29
|
+
});
|
|
30
|
+
export const signInResponseSchema = z.object({ token: z.string().regex(DEVICE_TOKEN_PATTERN), user: serverUserSchema });
|
|
31
|
+
export const localSignInRequestSchema = z.object({
|
|
32
|
+
email: emailSchema,
|
|
33
|
+
password: passwordSchema,
|
|
34
|
+
device: deviceSchema,
|
|
35
|
+
});
|
|
36
|
+
export const oidcStartRequestSchema = z.object({
|
|
37
|
+
device: deviceSchema,
|
|
38
|
+
codeChallenge: z.string().regex(SECRET_PATTERN),
|
|
39
|
+
loopbackPort: z.number().int().min(1).max(65_535),
|
|
40
|
+
});
|
|
41
|
+
export const oidcStartResponseSchema = z.object({
|
|
42
|
+
flowId: z.string(),
|
|
43
|
+
authorizationUrl: z.string().url(),
|
|
44
|
+
expiresAt: z.string(),
|
|
45
|
+
});
|
|
46
|
+
export const oidcCompleteRequestSchema = z.object({
|
|
47
|
+
flowId: identityIdSchema,
|
|
48
|
+
grant: z.string().regex(SECRET_PATTERN),
|
|
49
|
+
codeVerifier: z.string().regex(PKCE_VERIFIER_PATTERN),
|
|
50
|
+
});
|
|
51
|
+
/** The IdP's redirect back to the server; `code` and `error` are mutually exclusive in practice. */
|
|
52
|
+
export const oidcCallbackQuerySchema = z.object({
|
|
53
|
+
state: z.string().min(1).max(256),
|
|
54
|
+
code: z.string().min(1).max(4096).optional(),
|
|
55
|
+
error: z.string().max(256).optional(),
|
|
56
|
+
error_description: z.string().max(1024).optional(),
|
|
57
|
+
});
|
|
58
|
+
export const signInMethodsSchema = z.object({ local: z.boolean(), oidc: z.array(z.object({ issuer: z.string() })) });
|
|
59
|
+
export const meResponseSchema = z.object({ user: serverUserSchema, methods: signInMethodsSchema });
|
|
60
|
+
export const passwordChangeRequestSchema = z.object({
|
|
61
|
+
currentPassword: passwordSchema.optional(),
|
|
62
|
+
newPassword: passwordSchema,
|
|
63
|
+
});
|
|
64
|
+
export const deviceSummarySchema = z.object({
|
|
65
|
+
id: z.string(),
|
|
66
|
+
name: z.string(),
|
|
67
|
+
createdAt: z.string(),
|
|
68
|
+
lastUsedAt: z.string(),
|
|
69
|
+
current: z.boolean(),
|
|
70
|
+
});
|
|
71
|
+
export const devicesResponseSchema = z.array(deviceSummarySchema);
|
|
72
|
+
export const invitationCreateRequestSchema = z.object({ email: emailSchema, serverAdmin: z.boolean().optional() });
|
|
73
|
+
export const invitationCreatedSchema = z.object({
|
|
74
|
+
id: z.string(),
|
|
75
|
+
email: z.string(),
|
|
76
|
+
url: z.string().url(),
|
|
77
|
+
expiresAt: z.string(),
|
|
78
|
+
});
|
|
79
|
+
export const invitationSummarySchema = z.object({
|
|
80
|
+
id: z.string(),
|
|
81
|
+
email: z.string(),
|
|
82
|
+
serverAdmin: z.boolean(),
|
|
83
|
+
/** `null` for one created from the console (`admin invite`). */
|
|
84
|
+
createdBy: z.string().nullable(),
|
|
85
|
+
createdAt: z.string(),
|
|
86
|
+
expiresAt: z.string(),
|
|
87
|
+
acceptedAt: z.string().optional(),
|
|
88
|
+
});
|
|
89
|
+
export const invitationsResponseSchema = z.array(invitationSummarySchema);
|
|
90
|
+
export const invitationLookupQuerySchema = z.object({ secret: z.string().regex(SECRET_PATTERN) });
|
|
91
|
+
export const invitationLookupResponseSchema = z.object({
|
|
92
|
+
email: z.string(),
|
|
93
|
+
methods: z.object({ local: z.boolean(), oidc: z.boolean() }),
|
|
94
|
+
});
|
|
95
|
+
export const invitationAcceptRequestSchema = z.object({
|
|
96
|
+
secret: z.string().regex(SECRET_PATTERN),
|
|
97
|
+
displayName: z.string().min(1).max(MAX_DISPLAY_NAME_LENGTH),
|
|
98
|
+
password: passwordSchema,
|
|
99
|
+
device: deviceSchema,
|
|
100
|
+
});
|
|
101
|
+
export const userSummarySchema = z.object({
|
|
102
|
+
id: z.string(),
|
|
103
|
+
email: z.string(),
|
|
104
|
+
displayName: z.string(),
|
|
105
|
+
serverAdmin: z.boolean(),
|
|
106
|
+
disabledAt: z.string().optional(),
|
|
107
|
+
methods: signInMethodsSchema,
|
|
108
|
+
});
|
|
109
|
+
export const usersResponseSchema = z.array(userSummarySchema);
|
|
110
|
+
export const userPatchRequestSchema = z.object({
|
|
111
|
+
serverAdmin: z.boolean().optional(),
|
|
112
|
+
disabled: z.boolean().optional(),
|
|
113
|
+
});
|
|
114
|
+
export const passwordResetCreatedSchema = z.object({ url: z.string().url(), expiresAt: z.string() });
|
|
115
|
+
export const identityIdParamsSchema = z.object({ id: identityIdSchema });
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The licensing wire shapes (licensing spec §3.1, §3.3, §3.6). The server verifies and stores a license;
|
|
3
|
+
* the desktop parses a pasted one before sending it and reads the state back. Plain zod only (ADR-0009).
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
export declare const LICENSE_FORMAT = "wbl1";
|
|
7
|
+
/** `wbl1.<base64url payload>.<base64url signature>`: the shape only; verification is the server's. */
|
|
8
|
+
export declare const LICENSE_TEXT_PATTERN: RegExp;
|
|
9
|
+
/** Far above any real license line; bounds the body a server admin can send. */
|
|
10
|
+
export declare const LICENSE_TEXT_MAX_LENGTH = 8192;
|
|
11
|
+
/** Seats on a server with no license, or a lapsed one. A product term, not a setting. */
|
|
12
|
+
export declare const COMMUNITY_SEATS = 5;
|
|
13
|
+
/** Days after `expiresAt` that the license's edition still holds. A product term, not a setting. */
|
|
14
|
+
export declare const GRACE_DAYS = 30;
|
|
15
|
+
export declare const EDITIONS: readonly ["community", "team", "enterprise"];
|
|
16
|
+
export declare const editionSchema: z.ZodEnum<{
|
|
17
|
+
community: "community";
|
|
18
|
+
team: "team";
|
|
19
|
+
enterprise: "enterprise";
|
|
20
|
+
}>;
|
|
21
|
+
export type Edition = z.infer<typeof editionSchema>;
|
|
22
|
+
/** Names a route or module checks. Later modules add `scim`, `policies`, `scheduled-runs`. */
|
|
23
|
+
export declare const FEATURES: readonly ["audit-log"];
|
|
24
|
+
export declare const featureSchema: z.ZodEnum<{
|
|
25
|
+
"audit-log": "audit-log";
|
|
26
|
+
}>;
|
|
27
|
+
export type Feature = z.infer<typeof featureSchema>;
|
|
28
|
+
export declare const LICENSE_STATUSES: readonly ["none", "active", "grace", "expired", "invalid"];
|
|
29
|
+
export type LicenseStatus = (typeof LICENSE_STATUSES)[number];
|
|
30
|
+
export type LicenseInvalidReason = 'malformed' | 'bad-signature' | 'not-yet-valid';
|
|
31
|
+
/**
|
|
32
|
+
* The signed payload. Unknown keys are refused: the format version is what grows the payload.
|
|
33
|
+
* `features` stays a list of strings so that a feature a newer signer names does not make the whole
|
|
34
|
+
* license unreadable to an older server, which grants only the features it knows.
|
|
35
|
+
*/
|
|
36
|
+
export declare const licensePayloadSchema: z.ZodObject<{
|
|
37
|
+
id: z.ZodString;
|
|
38
|
+
customer: z.ZodString;
|
|
39
|
+
edition: z.ZodEnum<{
|
|
40
|
+
team: "team";
|
|
41
|
+
enterprise: "enterprise";
|
|
42
|
+
}>;
|
|
43
|
+
seats: z.ZodNullable<z.ZodNumber>;
|
|
44
|
+
issuedAt: z.ZodISODateTime;
|
|
45
|
+
expiresAt: z.ZodISODateTime;
|
|
46
|
+
features: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
47
|
+
}, z.core.$strict>;
|
|
48
|
+
export type LicensePayload = z.infer<typeof licensePayloadSchema>;
|
|
49
|
+
/** `GET /license` and the answer to `PUT /license` (§3.3). Fields past `features` are absent with no license. */
|
|
50
|
+
export declare const licenseStateSchema: z.ZodObject<{
|
|
51
|
+
edition: z.ZodEnum<{
|
|
52
|
+
community: "community";
|
|
53
|
+
team: "team";
|
|
54
|
+
enterprise: "enterprise";
|
|
55
|
+
}>;
|
|
56
|
+
status: z.ZodEnum<{
|
|
57
|
+
none: "none";
|
|
58
|
+
invalid: "invalid";
|
|
59
|
+
active: "active";
|
|
60
|
+
grace: "grace";
|
|
61
|
+
expired: "expired";
|
|
62
|
+
}>;
|
|
63
|
+
seats: z.ZodObject<{
|
|
64
|
+
used: z.ZodNumber;
|
|
65
|
+
limit: z.ZodNullable<z.ZodNumber>;
|
|
66
|
+
}, z.core.$strip>;
|
|
67
|
+
features: z.ZodArray<z.ZodString>;
|
|
68
|
+
licenseId: z.ZodOptional<z.ZodString>;
|
|
69
|
+
customer: z.ZodOptional<z.ZodString>;
|
|
70
|
+
issuedAt: z.ZodOptional<z.ZodString>;
|
|
71
|
+
expiresAt: z.ZodOptional<z.ZodString>;
|
|
72
|
+
graceUntil: z.ZodOptional<z.ZodString>;
|
|
73
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
74
|
+
message: z.ZodOptional<z.ZodString>;
|
|
75
|
+
}, z.core.$strip>;
|
|
76
|
+
export type LicenseState = z.infer<typeof licenseStateSchema>;
|
|
77
|
+
export declare const licenseInstallRequestSchema: z.ZodObject<{
|
|
78
|
+
license: z.ZodString;
|
|
79
|
+
}, z.core.$strip>;
|
|
80
|
+
export type LicenseInstallRequest = z.infer<typeof licenseInstallRequestSchema>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The licensing wire shapes (licensing spec §3.1, §3.3, §3.6). The server verifies and stores a license;
|
|
3
|
+
* the desktop parses a pasted one before sending it and reads the state back. Plain zod only (ADR-0009).
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
export const LICENSE_FORMAT = 'wbl1';
|
|
7
|
+
/** `wbl1.<base64url payload>.<base64url signature>`: the shape only; verification is the server's. */
|
|
8
|
+
export const LICENSE_TEXT_PATTERN = /^wbl1\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/;
|
|
9
|
+
/** Far above any real license line; bounds the body a server admin can send. */
|
|
10
|
+
export const LICENSE_TEXT_MAX_LENGTH = 8192;
|
|
11
|
+
/** Seats on a server with no license, or a lapsed one. A product term, not a setting. */
|
|
12
|
+
export const COMMUNITY_SEATS = 5;
|
|
13
|
+
/** Days after `expiresAt` that the license's edition still holds. A product term, not a setting. */
|
|
14
|
+
export const GRACE_DAYS = 30;
|
|
15
|
+
export const EDITIONS = ['community', 'team', 'enterprise'];
|
|
16
|
+
export const editionSchema = z.enum(EDITIONS);
|
|
17
|
+
/** Names a route or module checks. Later modules add `scim`, `policies`, `scheduled-runs`. */
|
|
18
|
+
export const FEATURES = ['audit-log'];
|
|
19
|
+
export const featureSchema = z.enum(FEATURES);
|
|
20
|
+
export const LICENSE_STATUSES = ['none', 'active', 'grace', 'expired', 'invalid'];
|
|
21
|
+
const ULID = /^[0-7][0-9A-HJKMNP-TV-Z]{25}$/;
|
|
22
|
+
/**
|
|
23
|
+
* The signed payload. Unknown keys are refused: the format version is what grows the payload.
|
|
24
|
+
* `features` stays a list of strings so that a feature a newer signer names does not make the whole
|
|
25
|
+
* license unreadable to an older server, which grants only the features it knows.
|
|
26
|
+
*/
|
|
27
|
+
export const licensePayloadSchema = z.strictObject({
|
|
28
|
+
id: z.string().regex(ULID),
|
|
29
|
+
customer: z.string().min(1).max(200),
|
|
30
|
+
edition: z.enum(['team', 'enterprise']),
|
|
31
|
+
seats: z.number().int().positive().nullable(),
|
|
32
|
+
issuedAt: z.iso.datetime(),
|
|
33
|
+
expiresAt: z.iso.datetime(),
|
|
34
|
+
features: z.array(z.string().min(1).max(64)).max(64).optional(),
|
|
35
|
+
});
|
|
36
|
+
/** `GET /license` and the answer to `PUT /license` (§3.3). Fields past `features` are absent with no license. */
|
|
37
|
+
export const licenseStateSchema = z.object({
|
|
38
|
+
edition: editionSchema,
|
|
39
|
+
status: z.enum(LICENSE_STATUSES),
|
|
40
|
+
/** `limit: null` is unlimited. */
|
|
41
|
+
seats: z.object({ used: z.number().int().nonnegative(), limit: z.number().int().positive().nullable() }),
|
|
42
|
+
/** The granted set: empty on Community and Team unless the license lists features. Open strings: a newer server may grant a feature this build does not know. */
|
|
43
|
+
features: z.array(z.string()),
|
|
44
|
+
licenseId: z.string().optional(),
|
|
45
|
+
customer: z.string().optional(),
|
|
46
|
+
issuedAt: z.string().optional(),
|
|
47
|
+
expiresAt: z.string().optional(),
|
|
48
|
+
graceUntil: z.string().optional(),
|
|
49
|
+
/** Only with `status: 'invalid'`. Open for the same reason as `features`; the server produces a `LicenseInvalidReason`. */
|
|
50
|
+
reason: z.string().optional(),
|
|
51
|
+
message: z.string().optional(),
|
|
52
|
+
});
|
|
53
|
+
export const licenseInstallRequestSchema = z.object({ license: z.string().min(1).max(LICENSE_TEXT_MAX_LENGTH) });
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The live-updates protocol (live-updates spec §3.1, §4): one WebSocket at `GET /api/v1/live`, one
|
|
3
|
+
* UTF-8 JSON text message per frame. The server's socket loop parses client messages with
|
|
4
|
+
* {@link liveClientMessageSchema} and the desktop's `LiveClient` parses server messages with
|
|
5
|
+
* {@link liveServerMessageSchema}, so a drift between the two fails typecheck.
|
|
6
|
+
*
|
|
7
|
+
* Plain zod only (ADR-0009). Tokens are on `DEVICE_TOKEN_PATTERN`, workspace ids on `TEAMS_ID_PATTERN`,
|
|
8
|
+
* user ids on `identityIdSchema` and heads on `SYNC_COMMIT_ID_PATTERN`. No message carries a role, an
|
|
9
|
+
* email or file content (§6):
|
|
10
|
+
* HTTP stays the source of truth, and a message only ever says "ask again".
|
|
11
|
+
*
|
|
12
|
+
* The server union is closed on purpose. `LiveClient` skips a `type` it does not know before it parses
|
|
13
|
+
* (§3.1, *Unknown types*), so a newer server can add a message without breaking an older app. zod's
|
|
14
|
+
* default strip drops unknown fields from a known message for the same reason.
|
|
15
|
+
*/
|
|
16
|
+
import { z } from 'zod';
|
|
17
|
+
/** §3.3's limits, shared so the desktop never sends what the server would refuse. */
|
|
18
|
+
export declare const LIVE_LIMITS: {
|
|
19
|
+
/** A client message's largest size (`maxPayload`); a larger one closes `1009`. Server messages are not capped. */
|
|
20
|
+
readonly maxMessageBytes: 4096;
|
|
21
|
+
/** Across every socket of one device token; the next subscribe is `refused … live-too-many-subscriptions`. */
|
|
22
|
+
readonly maxSubscriptionsPerSession: 200;
|
|
23
|
+
/** Authenticated sockets per user; the next one closes `4429`. */
|
|
24
|
+
readonly maxSocketsPerUser: 32;
|
|
25
|
+
/** How long a socket may wait before its `auth` (then `4408`), and how long the desktop waits for `ready` or `pong`. */
|
|
26
|
+
readonly authTimeoutMs: 10000;
|
|
27
|
+
/** The server's protocol-ping interval, and the desktop's `ping` interval. */
|
|
28
|
+
readonly heartbeatMs: 30000;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* The close codes of §3.1. `1000`–`1011` are the protocol's own. The `44xx` codes mirror the HTTP
|
|
32
|
+
* status each stands for. Only `4401` stops the desktop from reconnecting: it runs the token check
|
|
33
|
+
* instead.
|
|
34
|
+
*/
|
|
35
|
+
export declare const LIVE_CLOSE: {
|
|
36
|
+
/** The desktop closed it: no open workspace on that server, sign-out, or quit. */
|
|
37
|
+
readonly normal: 1000;
|
|
38
|
+
/** The server is shutting down; the desktop reconnects with back-off. */
|
|
39
|
+
readonly goingAway: 1001;
|
|
40
|
+
/** A client message over `LIVE_LIMITS.maxMessageBytes`. */
|
|
41
|
+
readonly tooBig: 1009;
|
|
42
|
+
/** An unexpected server error on this socket. */
|
|
43
|
+
readonly serverError: 1011;
|
|
44
|
+
/** A malformed or out-of-order message, or a binary frame. */
|
|
45
|
+
readonly badMessage: 4400;
|
|
46
|
+
/** A bad token, an ended session, or the token's maximum age reached. */
|
|
47
|
+
readonly unauthenticated: 4401;
|
|
48
|
+
/** No `auth` within `LIVE_LIMITS.authTimeoutMs`. */
|
|
49
|
+
readonly authTimeout: 4408;
|
|
50
|
+
/** The user already has `LIVE_LIMITS.maxSocketsPerUser` sockets; the desktop waits 60 s. */
|
|
51
|
+
readonly tooManySockets: 4429;
|
|
52
|
+
};
|
|
53
|
+
/** The `capabilities` entry of `GET /api/v1/meta` that says a server serves {@link LIVE_PATH}. */
|
|
54
|
+
export declare const LIVE_CAPABILITY = "live";
|
|
55
|
+
/** The socket's path on the server's origin. */
|
|
56
|
+
export declare const LIVE_PATH = "/api/v1/live";
|
|
57
|
+
/** Why a subscribe was refused. `teams-workspace-not-found` also means "no access", as HTTP does, so an id reveals nothing. */
|
|
58
|
+
export declare const LIVE_REFUSED_CODES: readonly ["teams-workspace-not-found", "live-too-many-subscriptions"];
|
|
59
|
+
export type LiveRefusedCode = (typeof LIVE_REFUSED_CODES)[number];
|
|
60
|
+
/**
|
|
61
|
+
* One user with a subscribed socket on a workspace: an id and a display name, never an email (§6).
|
|
62
|
+
* - `id` is `identityIdSchema`: bounded in length and otherwise opaque, as HTTP treats user ids. Nothing
|
|
63
|
+
* on the client uses it as a path or a storage key, and the e2e fake's ids are `u-<email>`.
|
|
64
|
+
* - `name` is the user's display name, which is never empty.
|
|
65
|
+
*/
|
|
66
|
+
export declare const livePresenceUserSchema: z.ZodObject<{
|
|
67
|
+
id: z.ZodString;
|
|
68
|
+
name: z.ZodString;
|
|
69
|
+
}, z.core.$strip>;
|
|
70
|
+
export type LivePresenceUser = z.infer<typeof livePresenceUserSchema>;
|
|
71
|
+
/** Client → server (§3.1). `auth` comes first, within `authTimeoutMs`, and the token travels nowhere else. */
|
|
72
|
+
export declare const liveClientMessageSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
73
|
+
type: z.ZodLiteral<"auth">;
|
|
74
|
+
token: z.ZodString;
|
|
75
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
76
|
+
type: z.ZodLiteral<"subscribe">;
|
|
77
|
+
workspaceId: z.ZodString;
|
|
78
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
79
|
+
type: z.ZodLiteral<"unsubscribe">;
|
|
80
|
+
workspaceId: z.ZodString;
|
|
81
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
82
|
+
type: z.ZodLiteral<"ping">;
|
|
83
|
+
}, z.core.$strip>], "type">;
|
|
84
|
+
export type LiveClientMessage = z.infer<typeof liveClientMessageSchema>;
|
|
85
|
+
/**
|
|
86
|
+
* Server → client (§3.1, R6).
|
|
87
|
+
* - `ready` answers a valid `auth` and `pong` answers `ping`. Together they let the desktop tell
|
|
88
|
+
* *connecting* from *connected*, and a dead server from a quiet one.
|
|
89
|
+
* - `presence` includes the recipient, whom the desktop removes.
|
|
90
|
+
* - `session-ended` is always followed by a `4401` close.
|
|
91
|
+
* - `capture` and `hooks` (webhook-capture spec §3.6) say "a catch URL of this workspace caught
|
|
92
|
+
* something" and "the workspace's catch URLs changed". Like every message they carry ids only; the
|
|
93
|
+
* desktop fetches. The hub sends at most one `capture` per catch URL every 250 ms, carrying the
|
|
94
|
+
* newest id. An app older than them skips both types.
|
|
95
|
+
*/
|
|
96
|
+
export declare const liveServerMessageSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
97
|
+
type: z.ZodLiteral<"ready">;
|
|
98
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
99
|
+
type: z.ZodLiteral<"head">;
|
|
100
|
+
workspaceId: z.ZodString;
|
|
101
|
+
head: z.ZodString;
|
|
102
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
103
|
+
type: z.ZodLiteral<"access">;
|
|
104
|
+
workspaceId: z.ZodString;
|
|
105
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
106
|
+
type: z.ZodLiteral<"presence">;
|
|
107
|
+
workspaceId: z.ZodString;
|
|
108
|
+
users: z.ZodArray<z.ZodObject<{
|
|
109
|
+
id: z.ZodString;
|
|
110
|
+
name: z.ZodString;
|
|
111
|
+
}, z.core.$strip>>;
|
|
112
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
113
|
+
type: z.ZodLiteral<"refused">;
|
|
114
|
+
workspaceId: z.ZodString;
|
|
115
|
+
code: z.ZodEnum<{
|
|
116
|
+
"teams-workspace-not-found": "teams-workspace-not-found";
|
|
117
|
+
"live-too-many-subscriptions": "live-too-many-subscriptions";
|
|
118
|
+
}>;
|
|
119
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
120
|
+
type: z.ZodLiteral<"session-ended">;
|
|
121
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
122
|
+
type: z.ZodLiteral<"pong">;
|
|
123
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
124
|
+
type: z.ZodLiteral<"capture">;
|
|
125
|
+
workspaceId: z.ZodString;
|
|
126
|
+
hookId: z.ZodString;
|
|
127
|
+
captureId: z.ZodString;
|
|
128
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
129
|
+
type: z.ZodLiteral<"hooks">;
|
|
130
|
+
workspaceId: z.ZodString;
|
|
131
|
+
}, z.core.$strip>], "type">;
|
|
132
|
+
export type LiveServerMessage = z.infer<typeof liveServerMessageSchema>;
|