@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,284 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The WebSocket files of a project folder: `apis/<slug>/api.yaml` with `kind: websocket`, and each
|
|
3
|
+
* `*.request.yaml` of its request tree (spec §3.2).
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
/**
|
|
7
|
+
* `apis/<slug>/requests/[<folder>/…]<name>.request.yaml` for a WebSocket request. Each saved
|
|
8
|
+
* message's own text lives in its own sibling file, so a JSON message is a JSON file in git.
|
|
9
|
+
*/
|
|
10
|
+
export declare const wsRequestFileSchema: z.ZodObject<{
|
|
11
|
+
kind: z.ZodLiteral<"websocket">;
|
|
12
|
+
id: z.ZodString;
|
|
13
|
+
name: z.ZodString;
|
|
14
|
+
order: z.ZodNumber;
|
|
15
|
+
description: z.ZodOptional<z.ZodString>;
|
|
16
|
+
url: z.ZodString;
|
|
17
|
+
query: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
18
|
+
name: z.ZodString;
|
|
19
|
+
value: z.ZodString;
|
|
20
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
21
|
+
description: z.ZodOptional<z.ZodString>;
|
|
22
|
+
}, z.core.$loose>>>;
|
|
23
|
+
headers: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
24
|
+
name: z.ZodString;
|
|
25
|
+
value: z.ZodString;
|
|
26
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
27
|
+
description: z.ZodOptional<z.ZodString>;
|
|
28
|
+
}, z.core.$loose>>>;
|
|
29
|
+
subprotocols: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
30
|
+
auth: z.ZodDefault<z.ZodUnion<readonly [z.ZodObject<{
|
|
31
|
+
type: z.ZodEnum<{
|
|
32
|
+
none: "none";
|
|
33
|
+
basic: "basic";
|
|
34
|
+
ntlm: "ntlm";
|
|
35
|
+
}>;
|
|
36
|
+
username: z.ZodOptional<z.ZodString>;
|
|
37
|
+
passwordRef: z.ZodOptional<z.ZodString>;
|
|
38
|
+
passwordEnv: z.ZodOptional<z.ZodString>;
|
|
39
|
+
domain: z.ZodOptional<z.ZodString>;
|
|
40
|
+
workstation: z.ZodOptional<z.ZodString>;
|
|
41
|
+
preemptive: z.ZodOptional<z.ZodBoolean>;
|
|
42
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
43
|
+
type: z.ZodLiteral<"inherit">;
|
|
44
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
45
|
+
type: z.ZodLiteral<"bearer">;
|
|
46
|
+
tokenRef: z.ZodOptional<z.ZodString>;
|
|
47
|
+
tokenEnv: z.ZodOptional<z.ZodString>;
|
|
48
|
+
scheme: z.ZodOptional<z.ZodString>;
|
|
49
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
50
|
+
type: z.ZodLiteral<"api-key">;
|
|
51
|
+
name: z.ZodString;
|
|
52
|
+
valueRef: z.ZodOptional<z.ZodString>;
|
|
53
|
+
valueEnv: z.ZodOptional<z.ZodString>;
|
|
54
|
+
in: z.ZodEnum<{
|
|
55
|
+
header: "header";
|
|
56
|
+
query: "query";
|
|
57
|
+
}>;
|
|
58
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
59
|
+
type: z.ZodLiteral<"oauth2">;
|
|
60
|
+
grant: z.ZodEnum<{
|
|
61
|
+
"client-credentials": "client-credentials";
|
|
62
|
+
"authorization-code": "authorization-code";
|
|
63
|
+
}>;
|
|
64
|
+
tokenUrl: z.ZodString;
|
|
65
|
+
authorizationUrl: z.ZodOptional<z.ZodString>;
|
|
66
|
+
clientId: z.ZodString;
|
|
67
|
+
clientSecretRef: z.ZodOptional<z.ZodString>;
|
|
68
|
+
clientSecretEnv: z.ZodOptional<z.ZodString>;
|
|
69
|
+
scopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
70
|
+
audience: z.ZodOptional<z.ZodString>;
|
|
71
|
+
clientAuth: z.ZodDefault<z.ZodEnum<{
|
|
72
|
+
basic: "basic";
|
|
73
|
+
body: "body";
|
|
74
|
+
}>>;
|
|
75
|
+
pkce: z.ZodDefault<z.ZodBoolean>;
|
|
76
|
+
refreshTokenRef: z.ZodOptional<z.ZodString>;
|
|
77
|
+
}, z.core.$loose>]>>;
|
|
78
|
+
settings: z.ZodDefault<z.ZodObject<{
|
|
79
|
+
handshakeTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
80
|
+
trustInvalid: z.ZodOptional<z.ZodBoolean>;
|
|
81
|
+
sslKeystoreRef: z.ZodOptional<z.ZodString>;
|
|
82
|
+
bindAddress: z.ZodOptional<z.ZodString>;
|
|
83
|
+
maxMessageBytes: z.ZodOptional<z.ZodNumber>;
|
|
84
|
+
escapeProperties: z.ZodOptional<z.ZodBoolean>;
|
|
85
|
+
}, z.core.$loose>>;
|
|
86
|
+
messages: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
87
|
+
id: z.ZodString;
|
|
88
|
+
name: z.ZodString;
|
|
89
|
+
format: z.ZodDefault<z.ZodEnum<{
|
|
90
|
+
binary: "binary";
|
|
91
|
+
text: "text";
|
|
92
|
+
}>>;
|
|
93
|
+
file: z.ZodString;
|
|
94
|
+
contract: z.ZodOptional<z.ZodObject<{
|
|
95
|
+
message: z.ZodString;
|
|
96
|
+
generated: z.ZodString;
|
|
97
|
+
}, z.core.$loose>>;
|
|
98
|
+
}, z.core.$loose>>>;
|
|
99
|
+
assertions: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
100
|
+
type: z.ZodLiteral<"status">;
|
|
101
|
+
equals: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodNumber, z.ZodNumber, z.ZodString, z.ZodEnum<{
|
|
102
|
+
[x: string]: string;
|
|
103
|
+
}>]>, z.ZodArray<z.ZodUnion<readonly [z.ZodNumber, z.ZodNumber, z.ZodString, z.ZodEnum<{
|
|
104
|
+
[x: string]: string;
|
|
105
|
+
}>]>>]>;
|
|
106
|
+
name: z.ZodOptional<z.ZodString>;
|
|
107
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
108
|
+
type: z.ZodLiteral<"soap-fault">;
|
|
109
|
+
expect: z.ZodDefault<z.ZodEnum<{
|
|
110
|
+
none: "none";
|
|
111
|
+
present: "present";
|
|
112
|
+
}>>;
|
|
113
|
+
name: z.ZodOptional<z.ZodString>;
|
|
114
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
115
|
+
type: z.ZodLiteral<"match">;
|
|
116
|
+
language: z.ZodEnum<{
|
|
117
|
+
xpath: "xpath";
|
|
118
|
+
xquery: "xquery";
|
|
119
|
+
jsonpath: "jsonpath";
|
|
120
|
+
}>;
|
|
121
|
+
expression: z.ZodString;
|
|
122
|
+
namespaces: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
123
|
+
equals: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
|
|
124
|
+
matches: z.ZodOptional<z.ZodString>;
|
|
125
|
+
exists: z.ZodOptional<z.ZodBoolean>;
|
|
126
|
+
name: z.ZodOptional<z.ZodString>;
|
|
127
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
128
|
+
type: z.ZodLiteral<"schema">;
|
|
129
|
+
name: z.ZodOptional<z.ZodString>;
|
|
130
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
131
|
+
type: z.ZodLiteral<"sla">;
|
|
132
|
+
maxMs: z.ZodNumber;
|
|
133
|
+
name: z.ZodOptional<z.ZodString>;
|
|
134
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
135
|
+
type: z.ZodLiteral<"callback">;
|
|
136
|
+
catchUrl: z.ZodString;
|
|
137
|
+
withinMs: z.ZodDefault<z.ZodNumber>;
|
|
138
|
+
match: z.ZodDefault<z.ZodObject<{
|
|
139
|
+
method: z.ZodOptional<z.ZodString>;
|
|
140
|
+
path: z.ZodOptional<z.ZodString>;
|
|
141
|
+
pathMatches: z.ZodOptional<z.ZodString>;
|
|
142
|
+
headers: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
143
|
+
equals: z.ZodOptional<z.ZodString>;
|
|
144
|
+
matches: z.ZodOptional<z.ZodString>;
|
|
145
|
+
exists: z.ZodOptional<z.ZodBoolean>;
|
|
146
|
+
name: z.ZodString;
|
|
147
|
+
}, z.core.$loose>>>;
|
|
148
|
+
body: z.ZodOptional<z.ZodObject<{
|
|
149
|
+
equals: z.ZodOptional<z.ZodString>;
|
|
150
|
+
matches: z.ZodOptional<z.ZodString>;
|
|
151
|
+
exists: z.ZodOptional<z.ZodBoolean>;
|
|
152
|
+
language: z.ZodEnum<{
|
|
153
|
+
xpath: "xpath";
|
|
154
|
+
jsonpath: "jsonpath";
|
|
155
|
+
}>;
|
|
156
|
+
path: z.ZodString;
|
|
157
|
+
}, z.core.$loose>>;
|
|
158
|
+
}, z.core.$loose>>;
|
|
159
|
+
expect: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
160
|
+
body: z.ZodOptional<z.ZodObject<{
|
|
161
|
+
equals: z.ZodOptional<z.ZodString>;
|
|
162
|
+
matches: z.ZodOptional<z.ZodString>;
|
|
163
|
+
exists: z.ZodOptional<z.ZodBoolean>;
|
|
164
|
+
language: z.ZodEnum<{
|
|
165
|
+
xpath: "xpath";
|
|
166
|
+
jsonpath: "jsonpath";
|
|
167
|
+
}>;
|
|
168
|
+
path: z.ZodString;
|
|
169
|
+
}, z.core.$loose>>;
|
|
170
|
+
header: z.ZodOptional<z.ZodObject<{
|
|
171
|
+
equals: z.ZodOptional<z.ZodString>;
|
|
172
|
+
matches: z.ZodOptional<z.ZodString>;
|
|
173
|
+
exists: z.ZodOptional<z.ZodBoolean>;
|
|
174
|
+
name: z.ZodString;
|
|
175
|
+
}, z.core.$loose>>;
|
|
176
|
+
signature: z.ZodOptional<z.ZodLiteral<"verified">>;
|
|
177
|
+
}, z.core.$loose>>>;
|
|
178
|
+
name: z.ZodOptional<z.ZodString>;
|
|
179
|
+
}, z.core.$loose>], "type">>>;
|
|
180
|
+
contract: z.ZodOptional<z.ZodObject<{
|
|
181
|
+
channel: z.ZodString;
|
|
182
|
+
}, z.core.$loose>>;
|
|
183
|
+
orphaned: z.ZodOptional<z.ZodBoolean>;
|
|
184
|
+
}, z.core.$loose>;
|
|
185
|
+
/** `apis/<slug>/api.yaml` for a WebSocket API. */
|
|
186
|
+
export declare const wsApiFileSchema: z.ZodObject<{
|
|
187
|
+
kind: z.ZodLiteral<"websocket">;
|
|
188
|
+
id: z.ZodString;
|
|
189
|
+
name: z.ZodString;
|
|
190
|
+
order: z.ZodNumber;
|
|
191
|
+
description: z.ZodOptional<z.ZodString>;
|
|
192
|
+
url: z.ZodString;
|
|
193
|
+
headers: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
194
|
+
name: z.ZodString;
|
|
195
|
+
value: z.ZodString;
|
|
196
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
197
|
+
description: z.ZodOptional<z.ZodString>;
|
|
198
|
+
}, z.core.$loose>>>;
|
|
199
|
+
auth: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
|
|
200
|
+
type: z.ZodEnum<{
|
|
201
|
+
none: "none";
|
|
202
|
+
basic: "basic";
|
|
203
|
+
ntlm: "ntlm";
|
|
204
|
+
}>;
|
|
205
|
+
username: z.ZodOptional<z.ZodString>;
|
|
206
|
+
passwordRef: z.ZodOptional<z.ZodString>;
|
|
207
|
+
passwordEnv: z.ZodOptional<z.ZodString>;
|
|
208
|
+
domain: z.ZodOptional<z.ZodString>;
|
|
209
|
+
workstation: z.ZodOptional<z.ZodString>;
|
|
210
|
+
preemptive: z.ZodOptional<z.ZodBoolean>;
|
|
211
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
212
|
+
type: z.ZodLiteral<"inherit">;
|
|
213
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
214
|
+
type: z.ZodLiteral<"bearer">;
|
|
215
|
+
tokenRef: z.ZodOptional<z.ZodString>;
|
|
216
|
+
tokenEnv: z.ZodOptional<z.ZodString>;
|
|
217
|
+
scheme: z.ZodOptional<z.ZodString>;
|
|
218
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
219
|
+
type: z.ZodLiteral<"api-key">;
|
|
220
|
+
name: z.ZodString;
|
|
221
|
+
valueRef: z.ZodOptional<z.ZodString>;
|
|
222
|
+
valueEnv: z.ZodOptional<z.ZodString>;
|
|
223
|
+
in: z.ZodEnum<{
|
|
224
|
+
header: "header";
|
|
225
|
+
query: "query";
|
|
226
|
+
}>;
|
|
227
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
228
|
+
type: z.ZodLiteral<"oauth2">;
|
|
229
|
+
grant: z.ZodEnum<{
|
|
230
|
+
"client-credentials": "client-credentials";
|
|
231
|
+
"authorization-code": "authorization-code";
|
|
232
|
+
}>;
|
|
233
|
+
tokenUrl: z.ZodString;
|
|
234
|
+
authorizationUrl: z.ZodOptional<z.ZodString>;
|
|
235
|
+
clientId: z.ZodString;
|
|
236
|
+
clientSecretRef: z.ZodOptional<z.ZodString>;
|
|
237
|
+
clientSecretEnv: z.ZodOptional<z.ZodString>;
|
|
238
|
+
scopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
239
|
+
audience: z.ZodOptional<z.ZodString>;
|
|
240
|
+
clientAuth: z.ZodDefault<z.ZodEnum<{
|
|
241
|
+
basic: "basic";
|
|
242
|
+
body: "body";
|
|
243
|
+
}>>;
|
|
244
|
+
pkce: z.ZodDefault<z.ZodBoolean>;
|
|
245
|
+
refreshTokenRef: z.ZodOptional<z.ZodString>;
|
|
246
|
+
}, z.core.$loose>]>>;
|
|
247
|
+
definition: z.ZodOptional<z.ZodObject<{
|
|
248
|
+
kind: z.ZodLiteral<"asyncapi">;
|
|
249
|
+
source: z.ZodString;
|
|
250
|
+
cache: z.ZodDefault<z.ZodBoolean>;
|
|
251
|
+
server: z.ZodOptional<z.ZodString>;
|
|
252
|
+
auth: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
|
|
253
|
+
type: z.ZodEnum<{
|
|
254
|
+
none: "none";
|
|
255
|
+
basic: "basic";
|
|
256
|
+
ntlm: "ntlm";
|
|
257
|
+
}>;
|
|
258
|
+
username: z.ZodOptional<z.ZodString>;
|
|
259
|
+
passwordRef: z.ZodOptional<z.ZodString>;
|
|
260
|
+
passwordEnv: z.ZodOptional<z.ZodString>;
|
|
261
|
+
domain: z.ZodOptional<z.ZodString>;
|
|
262
|
+
workstation: z.ZodOptional<z.ZodString>;
|
|
263
|
+
preemptive: z.ZodOptional<z.ZodBoolean>;
|
|
264
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
265
|
+
type: z.ZodLiteral<"bearer">;
|
|
266
|
+
tokenRef: z.ZodOptional<z.ZodString>;
|
|
267
|
+
tokenEnv: z.ZodOptional<z.ZodString>;
|
|
268
|
+
scheme: z.ZodOptional<z.ZodString>;
|
|
269
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
270
|
+
type: z.ZodLiteral<"api-key">;
|
|
271
|
+
name: z.ZodString;
|
|
272
|
+
valueRef: z.ZodOptional<z.ZodString>;
|
|
273
|
+
valueEnv: z.ZodOptional<z.ZodString>;
|
|
274
|
+
in: z.ZodEnum<{
|
|
275
|
+
header: "header";
|
|
276
|
+
query: "query";
|
|
277
|
+
}>;
|
|
278
|
+
}, z.core.$loose>]>>;
|
|
279
|
+
}, z.core.$loose>>;
|
|
280
|
+
}, z.core.$loose>;
|
|
281
|
+
/** A WebSocket `api.yaml` as parsed. */
|
|
282
|
+
export type WsApiFile = z.infer<typeof wsApiFileSchema>;
|
|
283
|
+
/** A WebSocket `*.request.yaml` as parsed. */
|
|
284
|
+
export type WsRequestFile = z.infer<typeof wsRequestFileSchema>;
|
package/dist/ws/files.js
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The WebSocket files of a project folder: `apis/<slug>/api.yaml` with `kind: websocket`, and each
|
|
3
|
+
* `*.request.yaml` of its request tree (spec §3.2).
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
import { assertionsSchema } from '../assert/schema.js';
|
|
7
|
+
import { authConfigSchema, definitionAuthSchema, keyValueEntrySchema, nonEmpty } from '../project/schema-parts.js';
|
|
8
|
+
const wsSettingsSchema = z.looseObject({
|
|
9
|
+
handshakeTimeoutMs: z.number().int().nonnegative().optional(),
|
|
10
|
+
trustInvalid: z.boolean().optional(),
|
|
11
|
+
sslKeystoreRef: z.string().optional(),
|
|
12
|
+
bindAddress: z.string().optional(),
|
|
13
|
+
maxMessageBytes: z.number().int().nonnegative().optional(),
|
|
14
|
+
escapeProperties: z.boolean().optional(),
|
|
15
|
+
});
|
|
16
|
+
/**
|
|
17
|
+
* One saved message as persisted: its text (or, for `binary`, base64) lives in the sibling file
|
|
18
|
+
* `file` names, validated as a path segment before it is read (ADR-0005) — the same convention a
|
|
19
|
+
* gRPC message or a REST raw body follows.
|
|
20
|
+
*/
|
|
21
|
+
const wsSavedMessageSchema = z.looseObject({
|
|
22
|
+
id: nonEmpty,
|
|
23
|
+
name: z.string(),
|
|
24
|
+
format: z.enum(['text', 'binary']).default('text'),
|
|
25
|
+
file: nonEmpty,
|
|
26
|
+
/** The contract message this was generated from, and the sample text it was generated as. */
|
|
27
|
+
contract: z.looseObject({ message: nonEmpty, generated: z.string() }).optional(),
|
|
28
|
+
});
|
|
29
|
+
/**
|
|
30
|
+
* `apis/<slug>/requests/[<folder>/…]<name>.request.yaml` for a WebSocket request. Each saved
|
|
31
|
+
* message's own text lives in its own sibling file, so a JSON message is a JSON file in git.
|
|
32
|
+
*/
|
|
33
|
+
export const wsRequestFileSchema = z.looseObject({
|
|
34
|
+
kind: z.literal('websocket'),
|
|
35
|
+
id: nonEmpty,
|
|
36
|
+
name: z.string(),
|
|
37
|
+
order: z.number().int(),
|
|
38
|
+
description: z.string().optional(),
|
|
39
|
+
url: z.string(),
|
|
40
|
+
query: z.array(keyValueEntrySchema).default([]),
|
|
41
|
+
headers: z.array(keyValueEntrySchema).default([]),
|
|
42
|
+
subprotocols: z.array(z.string()).default([]),
|
|
43
|
+
auth: authConfigSchema.default({ type: 'inherit' }),
|
|
44
|
+
settings: wsSettingsSchema.default({}),
|
|
45
|
+
messages: z.array(wsSavedMessageSchema).default([]),
|
|
46
|
+
assertions: assertionsSchema.default([]),
|
|
47
|
+
/** The channel of the API's contract this request was imported from. */
|
|
48
|
+
contract: z.looseObject({ channel: nonEmpty }).optional(),
|
|
49
|
+
/** The contract no longer has that channel. */
|
|
50
|
+
orphaned: z.boolean().optional(),
|
|
51
|
+
});
|
|
52
|
+
/** `apis/<slug>/api.yaml` for a WebSocket API. */
|
|
53
|
+
export const wsApiFileSchema = z.looseObject({
|
|
54
|
+
kind: z.literal('websocket'),
|
|
55
|
+
id: nonEmpty,
|
|
56
|
+
name: z.string(),
|
|
57
|
+
order: z.number().int(),
|
|
58
|
+
description: z.string().optional(),
|
|
59
|
+
url: z.string(),
|
|
60
|
+
headers: z.array(keyValueEntrySchema).default([]),
|
|
61
|
+
auth: authConfigSchema.optional(),
|
|
62
|
+
definition: z
|
|
63
|
+
.looseObject({
|
|
64
|
+
kind: z.literal('asyncapi'),
|
|
65
|
+
source: nonEmpty,
|
|
66
|
+
cache: z.boolean().default(true),
|
|
67
|
+
server: z.string().optional(),
|
|
68
|
+
auth: definitionAuthSchema.optional(),
|
|
69
|
+
})
|
|
70
|
+
.optional(),
|
|
71
|
+
});
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { HistoryEntry } from '../project/history.js';
|
|
2
|
+
import type { WsExchange } from './model.js';
|
|
3
|
+
/** What {@link buildWsHistoryEntry} needs to build one WebSocket entry. */
|
|
4
|
+
export interface WsHistoryInput {
|
|
5
|
+
readonly requestId: string;
|
|
6
|
+
readonly requestName: string;
|
|
7
|
+
/** The API the request belongs to, in the interface name's slot. */
|
|
8
|
+
readonly apiName: string;
|
|
9
|
+
readonly folderPath: string;
|
|
10
|
+
readonly exchange: WsExchange;
|
|
11
|
+
/**
|
|
12
|
+
* Whether the session's handshake actually opened. `ok` follows it rather than
|
|
13
|
+
* `exchange.handshake.status === 101`: that status is optional (e.g. absent through a proxy
|
|
14
|
+
* tunnel) and so cannot itself tell an opened session from a refused one.
|
|
15
|
+
*/
|
|
16
|
+
readonly handshakeOpened: boolean;
|
|
17
|
+
/** Query parameters an API key travels in, masked in the URL whatever they are called. */
|
|
18
|
+
readonly keyParams?: readonly string[];
|
|
19
|
+
/** Where the entry came from, or the run it belongs to: `cli`, `sequence:<id>`. */
|
|
20
|
+
readonly tags?: readonly string[];
|
|
21
|
+
}
|
|
22
|
+
/** The secret values the host knows of, masked wherever no pattern rule looks. */
|
|
23
|
+
export interface WsHistoryMasks {
|
|
24
|
+
/** Masks each value in a text: a header, the URL, a frame's text, a close reason. */
|
|
25
|
+
readonly text: (text: string) => string;
|
|
26
|
+
/** Masks each value's bytes in a base64 run: a binary frame's payload. */
|
|
27
|
+
readonly base64: (base64: string) => string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* A session as History stores it: the headers and the URL redacted by pattern with `show: false`
|
|
31
|
+
* (an API key's own `keyParams` too), then masked; a frame's text, a binary payload's bytes and a
|
|
32
|
+
* close reason masked the same way. `size` stays the size on the wire, though a masked payload's own
|
|
33
|
+
* length can differ from it. A host that shows the session where History's rules apply (the command
|
|
34
|
+
* line's `send` result) reads it from here too.
|
|
35
|
+
*/
|
|
36
|
+
export declare function redactWsExchange(exchange: WsExchange, masks: WsHistoryMasks, keyParams?: readonly string[]): WsExchange;
|
|
37
|
+
/**
|
|
38
|
+
* Builds one redacted WebSocket `HistoryEntry` from a finished session, whether it closed cleanly or
|
|
39
|
+
* the handshake never got past `error`/a non-101 status. The SOAP-shaped fields carry what they can,
|
|
40
|
+
* as a gRPC entry's do: the API's name as the interface, the folder path as the operation, the
|
|
41
|
+
* handshake's status as the status; `ws` is the multi-message record ADR-0007 left room for, capped
|
|
42
|
+
* by {@link historyWsOf}'s own `capFrames`. Redacted by {@link redactWsExchange}.
|
|
43
|
+
*/
|
|
44
|
+
export declare function buildWsHistoryEntry(projectId: string, record: WsHistoryInput, masks: WsHistoryMasks): HistoryEntry;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One WebSocket session as History records it, for every host that writes History: the desktop on
|
|
3
|
+
* a session's close, the command line's `send`. Redaction is History's, whatever was shown live.
|
|
4
|
+
*/
|
|
5
|
+
import { generateHistoryId, historyWsOf } from '../project/history.js';
|
|
6
|
+
import { redactHeaders, redactUrl } from '../redact/index.js';
|
|
7
|
+
/**
|
|
8
|
+
* A session as History stores it: the headers and the URL redacted by pattern with `show: false`
|
|
9
|
+
* (an API key's own `keyParams` too), then masked; a frame's text, a binary payload's bytes and a
|
|
10
|
+
* close reason masked the same way. `size` stays the size on the wire, though a masked payload's own
|
|
11
|
+
* length can differ from it. A host that shows the session where History's rules apply (the command
|
|
12
|
+
* line's `send` result) reads it from here too.
|
|
13
|
+
*/
|
|
14
|
+
export function redactWsExchange(exchange, masks, keyParams = []) {
|
|
15
|
+
const url = (value) => masks.text(redactUrl(value, { show: false, extraParams: keyParams }));
|
|
16
|
+
const headers = (values) => {
|
|
17
|
+
const out = redactHeaders(values, { show: false });
|
|
18
|
+
for (const [name, value] of Object.entries(out)) {
|
|
19
|
+
out[name] = masks.text(value);
|
|
20
|
+
}
|
|
21
|
+
return out;
|
|
22
|
+
};
|
|
23
|
+
return {
|
|
24
|
+
kind: 'websocket',
|
|
25
|
+
url: url(exchange.url),
|
|
26
|
+
handshake: {
|
|
27
|
+
...exchange.handshake,
|
|
28
|
+
url: url(exchange.handshake.url),
|
|
29
|
+
requestHeaders: headers(exchange.handshake.requestHeaders),
|
|
30
|
+
...(exchange.handshake.responseHeaders !== undefined
|
|
31
|
+
? { responseHeaders: headers(exchange.handshake.responseHeaders) }
|
|
32
|
+
: {}),
|
|
33
|
+
},
|
|
34
|
+
frames: exchange.frames.map((frame) => ({
|
|
35
|
+
...frame,
|
|
36
|
+
...(frame.text !== undefined ? { text: masks.text(frame.text) } : {}),
|
|
37
|
+
...(frame.base64 !== undefined ? { base64: masks.base64(frame.base64) } : {}),
|
|
38
|
+
...(frame.close !== undefined
|
|
39
|
+
? { close: { code: frame.close.code, reason: masks.text(frame.close.reason) } }
|
|
40
|
+
: {}),
|
|
41
|
+
})),
|
|
42
|
+
// `historyWsOf` copies the reason into the entry's `closeReason`.
|
|
43
|
+
closed: { ...exchange.closed, reason: masks.text(exchange.closed.reason) },
|
|
44
|
+
counts: exchange.counts,
|
|
45
|
+
durationMs: exchange.durationMs,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Builds one redacted WebSocket `HistoryEntry` from a finished session, whether it closed cleanly or
|
|
50
|
+
* the handshake never got past `error`/a non-101 status. The SOAP-shaped fields carry what they can,
|
|
51
|
+
* as a gRPC entry's do: the API's name as the interface, the folder path as the operation, the
|
|
52
|
+
* handshake's status as the status; `ws` is the multi-message record ADR-0007 left room for, capped
|
|
53
|
+
* by {@link historyWsOf}'s own `capFrames`. Redacted by {@link redactWsExchange}.
|
|
54
|
+
*/
|
|
55
|
+
export function buildWsHistoryEntry(projectId, record, masks) {
|
|
56
|
+
const { exchange } = record;
|
|
57
|
+
const redacted = redactWsExchange(exchange, masks, record.keyParams);
|
|
58
|
+
const ws = historyWsOf(redacted);
|
|
59
|
+
const requestHeaders = Object.entries(redacted.handshake.requestHeaders).map(([name, value]) => ({
|
|
60
|
+
name,
|
|
61
|
+
value,
|
|
62
|
+
}));
|
|
63
|
+
return {
|
|
64
|
+
id: generateHistoryId(),
|
|
65
|
+
kind: 'websocket',
|
|
66
|
+
at: new Date().toISOString(),
|
|
67
|
+
projectId,
|
|
68
|
+
requestId: record.requestId,
|
|
69
|
+
requestName: record.requestName,
|
|
70
|
+
interfaceName: record.apiName,
|
|
71
|
+
operationName: record.folderPath,
|
|
72
|
+
endpoint: ws.url,
|
|
73
|
+
soapVersion: 'none',
|
|
74
|
+
method: 'GET',
|
|
75
|
+
...(ws.status !== undefined ? { status: ws.status } : {}),
|
|
76
|
+
durationMs: exchange.durationMs,
|
|
77
|
+
ok: record.handshakeOpened && ws.closedBy !== 'error',
|
|
78
|
+
request: { envelopeXml: '', headers: requestHeaders },
|
|
79
|
+
...(ws.status !== undefined
|
|
80
|
+
? {
|
|
81
|
+
response: {
|
|
82
|
+
rawHeaders: Object.entries(redacted.handshake.responseHeaders ?? {}),
|
|
83
|
+
status: ws.status,
|
|
84
|
+
statusText: exchange.handshake.statusText ?? '',
|
|
85
|
+
},
|
|
86
|
+
}
|
|
87
|
+
: {}),
|
|
88
|
+
...(ws.error !== undefined ? { error: { code: 'ws-handshake-failed', message: ws.error } } : {}),
|
|
89
|
+
ws,
|
|
90
|
+
sizeBytes: exchange.counts.bytesSent + exchange.counts.bytesReceived,
|
|
91
|
+
...(record.tags !== undefined ? { tags: record.tags } : {}),
|
|
92
|
+
};
|
|
93
|
+
}
|
package/dist/ws/model.d.ts
CHANGED
|
@@ -14,8 +14,10 @@
|
|
|
14
14
|
* survives a rename, `slug` is the file-system name derived from `name`, and nothing here ever
|
|
15
15
|
* holds a secret — credentials are `secretRef`s resolved from the OS keychain at send time.
|
|
16
16
|
*/
|
|
17
|
-
import type { AuthConfig, CreateOptions, IdGenerator } from '../project/model.js';
|
|
18
|
-
import type {
|
|
17
|
+
import type { AuthConfig, CreateOptions, DefinitionAuth, IdGenerator } from '../project/model.js';
|
|
18
|
+
import type { JsonSchemaProblem } from '../json/schema-validate.js';
|
|
19
|
+
import type { Assertion } from '../assert/model.js';
|
|
20
|
+
import type { KeyValueEntry } from '../http/entries.js';
|
|
19
21
|
import type { SslInfo } from '../http/tls.js';
|
|
20
22
|
export { wsApiFolders, wsApiRequests, wsFolderRequests, wsMessageFileName } from './shape.js';
|
|
21
23
|
/**
|
|
@@ -31,6 +33,16 @@ export interface WsRequestSettings {
|
|
|
31
33
|
readonly maxMessageBytes?: number;
|
|
32
34
|
readonly escapeProperties?: boolean;
|
|
33
35
|
}
|
|
36
|
+
/** Which channel of the API's contract a request was imported from: the channel key in the document. */
|
|
37
|
+
export interface WsContractLink {
|
|
38
|
+
readonly channel: string;
|
|
39
|
+
}
|
|
40
|
+
/** Which contract message a saved message was generated from, and the text it was generated as. */
|
|
41
|
+
export interface WsMessageContractLink {
|
|
42
|
+
readonly message: string;
|
|
43
|
+
/** The sample as imported — what Update Definition compares against to tell an untouched message. */
|
|
44
|
+
readonly generated: string;
|
|
45
|
+
}
|
|
34
46
|
/** A message saved under a request, ready to send without retyping it. */
|
|
35
47
|
export interface WsSavedMessage {
|
|
36
48
|
readonly id: string;
|
|
@@ -39,6 +51,7 @@ export interface WsSavedMessage {
|
|
|
39
51
|
readonly format: 'text' | 'binary';
|
|
40
52
|
/** The text as edited; for `binary`, base64. Stored in `<request-slug>.msg-<slug>.<ext>`. */
|
|
41
53
|
readonly content: string;
|
|
54
|
+
readonly contract?: WsMessageContractLink;
|
|
42
55
|
}
|
|
43
56
|
/** A saved WebSocket request: a URL to dial, headers and query to send, and saved messages. */
|
|
44
57
|
export interface WsRequestDef {
|
|
@@ -56,6 +69,12 @@ export interface WsRequestDef {
|
|
|
56
69
|
readonly auth: AuthConfig;
|
|
57
70
|
readonly settings: WsRequestSettings;
|
|
58
71
|
readonly messages: readonly WsSavedMessage[];
|
|
72
|
+
/** Checked against the received messages, in order, as a JSON array (request-assertions spec §3). */
|
|
73
|
+
readonly assertions: readonly Assertion[];
|
|
74
|
+
/** Set when the request was imported from the API's contract. */
|
|
75
|
+
readonly contract?: WsContractLink;
|
|
76
|
+
/** The contract no longer has the channel this request was imported from. */
|
|
77
|
+
readonly orphaned?: boolean;
|
|
59
78
|
}
|
|
60
79
|
/** A named node in a WebSocket API's tree. */
|
|
61
80
|
export interface WsFolder {
|
|
@@ -69,11 +88,16 @@ export interface WsFolder {
|
|
|
69
88
|
readonly folders: readonly WsFolder[];
|
|
70
89
|
readonly requests: readonly WsRequestDef[];
|
|
71
90
|
}
|
|
72
|
-
/**
|
|
91
|
+
/** Where an AsyncAPI-imported API's contract came from, and whether a copy is cached under `definition/`. */
|
|
73
92
|
export interface WsDefinitionRef {
|
|
74
93
|
readonly kind: 'asyncapi';
|
|
75
94
|
readonly source: string;
|
|
76
95
|
readonly cache: boolean;
|
|
96
|
+
/** The server key the API was mapped against, so an update maps the new document against the same one.
|
|
97
|
+
* Absent means the first WebSocket server. */
|
|
98
|
+
readonly server?: string;
|
|
99
|
+
/** Credentials the document is fetched with, sent to the source's own origin only. */
|
|
100
|
+
readonly auth?: DefinitionAuth;
|
|
77
101
|
}
|
|
78
102
|
/** A WebSocket API: a server URL and a tree of folders and requests. */
|
|
79
103
|
export interface WsApi {
|
|
@@ -91,6 +115,18 @@ export interface WsApi {
|
|
|
91
115
|
readonly folders: readonly WsFolder[];
|
|
92
116
|
readonly requests: readonly WsRequestDef[];
|
|
93
117
|
}
|
|
118
|
+
/** How a frame fared against its channel's contract. `not-checked` means the check ran out of
|
|
119
|
+
* time and stopped: it says nothing either way about the frame. */
|
|
120
|
+
export type WsFrameContractStatus = 'ok' | 'violation' | 'unmatched' | 'skipped' | 'not-checked';
|
|
121
|
+
/** One frame's contract check result: plain data, so it can cross a worker boundary. */
|
|
122
|
+
export interface WsFrameContract {
|
|
123
|
+
readonly status: WsFrameContractStatus;
|
|
124
|
+
/** The matched message's name, or the closest one's on a violation. */
|
|
125
|
+
readonly message?: string;
|
|
126
|
+
readonly problems?: readonly JsonSchemaProblem[];
|
|
127
|
+
/** Why a frame is a violation without schema problems, unmatched, skipped or not checked. */
|
|
128
|
+
readonly reason?: string;
|
|
129
|
+
}
|
|
94
130
|
export type WsOpcode = 'text' | 'binary' | 'ping' | 'pong' | 'close';
|
|
95
131
|
/** One frame sent or received during a WebSocket session, as shown in the log. */
|
|
96
132
|
export interface WsFrame {
|
|
@@ -108,6 +144,8 @@ export interface WsFrame {
|
|
|
108
144
|
readonly reason: string;
|
|
109
145
|
};
|
|
110
146
|
readonly payloadTruncated?: boolean;
|
|
147
|
+
/** Set when the session's request is linked to a contract channel. */
|
|
148
|
+
readonly contract?: WsFrameContract;
|
|
111
149
|
}
|
|
112
150
|
/** The handshake that opened (or failed to open) a WebSocket session. */
|
|
113
151
|
export interface WsHandshake {
|
|
@@ -179,6 +217,8 @@ export interface CreateWsRequestInput extends CreateOptions {
|
|
|
179
217
|
readonly auth?: AuthConfig;
|
|
180
218
|
readonly settings?: WsRequestSettings;
|
|
181
219
|
readonly messages?: readonly WsSavedMessage[];
|
|
220
|
+
readonly assertions?: readonly Assertion[];
|
|
221
|
+
readonly contract?: WsContractLink;
|
|
182
222
|
}
|
|
183
223
|
/** Creates a request with an empty URL and inherited credentials, and nothing saved. */
|
|
184
224
|
export declare function createWsRequest(name: string, input?: CreateWsRequestInput): WsRequestDef;
|
|
@@ -187,5 +227,6 @@ export declare function createWsSavedMessage(name: string, input?: CreateOptions
|
|
|
187
227
|
readonly slug?: string;
|
|
188
228
|
readonly format?: 'text' | 'binary';
|
|
189
229
|
readonly content?: string;
|
|
230
|
+
readonly contract?: WsMessageContractLink;
|
|
190
231
|
}): WsSavedMessage;
|
|
191
232
|
export type { IdGenerator };
|
package/dist/ws/model.js
CHANGED
|
@@ -69,6 +69,8 @@ export function createWsRequest(name, input = {}) {
|
|
|
69
69
|
auth: input.auth ?? { type: 'inherit' },
|
|
70
70
|
settings: input.settings ?? {},
|
|
71
71
|
messages: input.messages ?? [],
|
|
72
|
+
assertions: input.assertions ?? [],
|
|
73
|
+
...(input.contract !== undefined ? { contract: input.contract } : {}),
|
|
72
74
|
};
|
|
73
75
|
}
|
|
74
76
|
/** Creates a saved message, text and empty by default. */
|
|
@@ -79,5 +81,6 @@ export function createWsSavedMessage(name, input) {
|
|
|
79
81
|
slug: input?.slug ?? slugify(name),
|
|
80
82
|
format: input?.format ?? 'text',
|
|
81
83
|
content: input?.content ?? '',
|
|
84
|
+
...(input?.contract !== undefined ? { contract: input.contract } : {}),
|
|
82
85
|
};
|
|
83
86
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** WebSocket as a protocol module (spec §3). */
|
|
2
|
+
import { defineProtocol } from '../protocol/module.js';
|
|
3
|
+
import { wsRun } from './run.js';
|
|
4
|
+
import { wsStorage } from './storage.js';
|
|
5
|
+
/** The WebSocket protocol: APIs, their folders and their saved requests. */
|
|
6
|
+
export const wsProtocol = defineProtocol({
|
|
7
|
+
kind: 'websocket',
|
|
8
|
+
feature: { id: 'websocket', title: 'WebSocket', default: true, stage: 'stable', requires: [] },
|
|
9
|
+
storage: wsStorage,
|
|
10
|
+
run: wsRun,
|
|
11
|
+
});
|