@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,191 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Running a sequence: the loop, the transfers and the assertions, with the same semantics wherever it
|
|
3
|
+
* runs. Sending stays with the host (the CLI through `createRunSender`, the desktop through its own send
|
|
4
|
+
* paths and History), because the two send with different secrets, auth flows and cookie jars.
|
|
5
|
+
*
|
|
6
|
+
* Values lifted from responses reach the next step only through the `sequence` scope the host passes to
|
|
7
|
+
* its expanders, where ADR-0015's rules apply: literal, explicit, escaped, never the origin.
|
|
8
|
+
*/
|
|
9
|
+
import { isCallbackAssertion, sendAwaitingCallbacks } from '../assert/callback.js';
|
|
10
|
+
import { evaluateAssertions } from '../assert/index.js';
|
|
11
|
+
import { isWirebenchError } from '../errors.js';
|
|
12
|
+
import { findStepRequest } from '../run/select.js';
|
|
13
|
+
import { extractTransfer } from './transfer.js';
|
|
14
|
+
import { mergeScriptValues, scriptAssertions } from '../run/script-support.js';
|
|
15
|
+
/** Carries a step the host could not send out of `sendAwaitingCallbacks`, so no wait follows it. */
|
|
16
|
+
class NotSent extends Error {
|
|
17
|
+
failure;
|
|
18
|
+
constructor(failure) {
|
|
19
|
+
super(failure.error.message);
|
|
20
|
+
this.failure = failure;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
const RANK = { skipped: 0, passed: 1, failed: 2, errored: 3 };
|
|
24
|
+
function worst(outcomes) {
|
|
25
|
+
return outcomes.reduce((a, b) => (RANK[b] > RANK[a] ? b : a), 'skipped');
|
|
26
|
+
}
|
|
27
|
+
function stepName(step, selected) {
|
|
28
|
+
return step.name ?? selected?.request.name ?? step.requestId;
|
|
29
|
+
}
|
|
30
|
+
function requestAssertionsOf(selected) {
|
|
31
|
+
return ('assertions' in selected.request ? selected.request.assertions : undefined) ?? [];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Runs `sequence` against `project`, sending each step through `send`. Never throws: every failure,
|
|
35
|
+
* a throwing sender included, is an errored step. A step after an abort, after a failure under
|
|
36
|
+
* `stopOnFailure`, or disabled, is `skipped` and never sent.
|
|
37
|
+
*/
|
|
38
|
+
export async function runSequence(sequence, project, send, options = {}) {
|
|
39
|
+
const startedAt = (options.now ?? (() => new Date()))().toISOString();
|
|
40
|
+
const signal = options.signal ?? new AbortController().signal;
|
|
41
|
+
// A Map, not an object: a transfer may legitimately be named `__proto__` or `constructor`.
|
|
42
|
+
const values = new Map();
|
|
43
|
+
const steps = [];
|
|
44
|
+
let stopped = false;
|
|
45
|
+
const finish = (result) => {
|
|
46
|
+
steps.push(result);
|
|
47
|
+
options.onStepDone?.(result);
|
|
48
|
+
if (sequence.settings.stopOnFailure && (result.outcome === 'failed' || result.outcome === 'errored')) {
|
|
49
|
+
stopped = true;
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
for (const [index, step] of sequence.steps.entries()) {
|
|
53
|
+
const target = findStepRequest(project, step.requestId, options.registry);
|
|
54
|
+
const selected = target.kind === 'found' ? target.selected : undefined;
|
|
55
|
+
const base = {
|
|
56
|
+
index,
|
|
57
|
+
stepId: step.id,
|
|
58
|
+
requestId: step.requestId,
|
|
59
|
+
name: stepName(step, selected),
|
|
60
|
+
...(selected !== undefined ? { protocol: selected.kind } : {}),
|
|
61
|
+
assertions: [],
|
|
62
|
+
transfers: [],
|
|
63
|
+
};
|
|
64
|
+
const skip = signal.aborted ? 'cancelled' : stopped ? 'after-failure' : !step.enabled ? 'disabled' : undefined;
|
|
65
|
+
if (skip !== undefined) {
|
|
66
|
+
// A skipped step never ends the run early by itself; only a failure does.
|
|
67
|
+
steps.push({ ...base, outcome: 'skipped', skipped: skip });
|
|
68
|
+
options.onStepDone?.(steps[steps.length - 1]);
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
if (target.kind === 'missing') {
|
|
72
|
+
finish({
|
|
73
|
+
...base,
|
|
74
|
+
outcome: 'errored',
|
|
75
|
+
error: { code: 'sequence-step-missing-request', message: `The request ${step.requestId} no longer exists` },
|
|
76
|
+
});
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
if (target.kind === 'unsupported') {
|
|
80
|
+
finish({ ...base, outcome: 'errored', error: { code: 'sequence-step-unsupported', message: target.reason } });
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
const resolved = {
|
|
84
|
+
index,
|
|
85
|
+
step,
|
|
86
|
+
selected: target.selected,
|
|
87
|
+
...(sequence.settings.stepTimeoutMs !== undefined ? { timeoutMs: sequence.settings.stepTimeoutMs } : {}),
|
|
88
|
+
};
|
|
89
|
+
const sequenceScope = Object.fromEntries(values);
|
|
90
|
+
const stepAssertions = [
|
|
91
|
+
...(step.requestAssertions ? requestAssertionsOf(target.selected) : []),
|
|
92
|
+
...step.assertions,
|
|
93
|
+
];
|
|
94
|
+
let sent;
|
|
95
|
+
let callbacks = [];
|
|
96
|
+
try {
|
|
97
|
+
// The cursor is taken inside this helper, before the send (§2.3 step 1).
|
|
98
|
+
const awaited = await sendAwaitingCallbacks(stepAssertions, () => options.callbackScopes?.(resolved, sequenceScope) ?? {
|
|
99
|
+
project: {},
|
|
100
|
+
global: {},
|
|
101
|
+
system: {},
|
|
102
|
+
sequence: sequenceScope,
|
|
103
|
+
}, async () => {
|
|
104
|
+
const result = await send(resolved, sequenceScope, signal);
|
|
105
|
+
if ('error' in result)
|
|
106
|
+
throw new NotSent(result);
|
|
107
|
+
return result;
|
|
108
|
+
}, {
|
|
109
|
+
...(options.captures !== undefined ? { captures: options.captures } : {}),
|
|
110
|
+
...(options.callbackClock !== undefined ? { clock: options.callbackClock } : {}),
|
|
111
|
+
...(options.callbackPollMs !== undefined ? { pollIntervalMs: options.callbackPollMs } : {}),
|
|
112
|
+
signal,
|
|
113
|
+
onWaiting: (waiting) => options.onCallbackWaiting?.({ index, stepId: step.id, name: base.name }, waiting),
|
|
114
|
+
});
|
|
115
|
+
sent = awaited.sent;
|
|
116
|
+
callbacks = awaited.callbacks;
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
sent =
|
|
120
|
+
error instanceof NotSent
|
|
121
|
+
? error.failure
|
|
122
|
+
: {
|
|
123
|
+
error: {
|
|
124
|
+
code: isWirebenchError(error) ? error.code : 'internal-error',
|
|
125
|
+
message: error instanceof Error ? error.message : String(error),
|
|
126
|
+
},
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
if ('error' in sent) {
|
|
130
|
+
finish({ ...base, outcome: 'errored', error: sent.error });
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
const { subject, script } = sent;
|
|
134
|
+
// A script's values join the run's before the step's own transfers, which win on a clash (#63).
|
|
135
|
+
mergeScriptValues(values, script?.values ?? [], options.onSecretValue, options.containsKnownSecret);
|
|
136
|
+
const transfers = [];
|
|
137
|
+
let transferError;
|
|
138
|
+
for (const transfer of step.transfers) {
|
|
139
|
+
const found = await extractTransfer(subject, transfer);
|
|
140
|
+
if (found.kind === 'value') {
|
|
141
|
+
const secret = transfer.secret === true || options.containsKnownSecret?.(found.value) === true;
|
|
142
|
+
if (secret) {
|
|
143
|
+
options.onSecretValue?.(found.value);
|
|
144
|
+
}
|
|
145
|
+
values.set(transfer.name, found.value);
|
|
146
|
+
transfers.push({ name: transfer.name, outcome: 'set', secret, ...(secret ? {} : { value: found.value }) });
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
const secret = transfer.secret === true;
|
|
150
|
+
if (found.kind === 'missing') {
|
|
151
|
+
transfers.push({ name: transfer.name, outcome: 'missing', secret });
|
|
152
|
+
if (transfer.optional !== true) {
|
|
153
|
+
transferError ??= {
|
|
154
|
+
code: 'sequence-transfer-missing',
|
|
155
|
+
message: `${transfer.name}: the response had nothing there`,
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
160
|
+
transfers.push({ name: transfer.name, outcome: 'errored', secret, message: found.message });
|
|
161
|
+
transferError ??= { code: found.code, message: `${transfer.name}: ${found.message}` };
|
|
162
|
+
}
|
|
163
|
+
const immediate = await evaluateAssertions(subject, stepAssertions.filter((assertion) => !isCallbackAssertion(assertion)));
|
|
164
|
+
const assertions = [...immediate, ...callbacks, ...scriptAssertions(script?.tests ?? [])];
|
|
165
|
+
transferError ??= script?.error;
|
|
166
|
+
const outcome = transferError !== undefined || assertions.some((a) => a.outcome === 'errored')
|
|
167
|
+
? 'errored'
|
|
168
|
+
: assertions.some((a) => a.outcome === 'failed')
|
|
169
|
+
? 'failed'
|
|
170
|
+
: 'passed';
|
|
171
|
+
finish({
|
|
172
|
+
...base,
|
|
173
|
+
outcome,
|
|
174
|
+
status: subject.status,
|
|
175
|
+
durationMs: subject.durationMs,
|
|
176
|
+
...(sent.origin !== undefined ? { origin: sent.origin } : {}),
|
|
177
|
+
assertions,
|
|
178
|
+
transfers,
|
|
179
|
+
...(transferError !== undefined ? { error: transferError } : {}),
|
|
180
|
+
...(script !== undefined && script.log.lines.length > 0 ? { scriptLog: script.log.lines } : {}),
|
|
181
|
+
...(sent.scriptsOff === true ? { scriptsOff: true } : {}),
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
return {
|
|
185
|
+
sequenceId: sequence.id,
|
|
186
|
+
name: sequence.name,
|
|
187
|
+
startedAt,
|
|
188
|
+
outcome: worst(steps.map((s) => s.outcome)),
|
|
189
|
+
steps,
|
|
190
|
+
};
|
|
191
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lifting one value out of a step's response. Body expressions go through the same hardened path as
|
|
3
|
+
* assertions (`fontoxpath`, `jsonpath-plus` in its safe mode, both on a worker with a time budget), so
|
|
4
|
+
* nothing in a sequence file is evaluated any other way (ADR-0015, spec Rule 7).
|
|
5
|
+
*/
|
|
6
|
+
import type { AssertionSubject } from '../assert/model.js';
|
|
7
|
+
import type { Transfer } from './model.js';
|
|
8
|
+
/** What one transfer found. */
|
|
9
|
+
export type ExtractedValue = {
|
|
10
|
+
readonly kind: 'value';
|
|
11
|
+
readonly value: string;
|
|
12
|
+
} | {
|
|
13
|
+
readonly kind: 'missing';
|
|
14
|
+
} | {
|
|
15
|
+
readonly kind: 'error';
|
|
16
|
+
readonly code: string;
|
|
17
|
+
readonly message: string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Evaluates one transfer against a response. Never throws. A value over
|
|
21
|
+
* {@link SEQUENCE_LIMITS.valueBytes} is an error rather than a value, so a server cannot make a run
|
|
22
|
+
* hold (or send onward) more than that per name.
|
|
23
|
+
*/
|
|
24
|
+
export declare function extractTransfer(subject: AssertionSubject, transfer: Transfer): Promise<ExtractedValue>;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lifting one value out of a step's response. Body expressions go through the same hardened path as
|
|
3
|
+
* assertions (`fontoxpath`, `jsonpath-plus` in its safe mode, both on a worker with a time budget), so
|
|
4
|
+
* nothing in a sequence file is evaluated any other way (ADR-0015, spec Rule 7).
|
|
5
|
+
*/
|
|
6
|
+
import { firstHeaderValue } from '../assert/header.js';
|
|
7
|
+
import { firstText } from '../assert/match.js';
|
|
8
|
+
import { parseSetCookie } from '../http/cookies.js';
|
|
9
|
+
import { evaluateWithTimeout } from '../xpath/evaluate-async.js';
|
|
10
|
+
import { collectNamespaces } from '../xpath/namespaces.js';
|
|
11
|
+
import { SEQUENCE_LIMITS } from './model.js';
|
|
12
|
+
/** The response's own prefix bindings, or none when the body is not XML that parses. */
|
|
13
|
+
function defaultNamespaces(bodyText) {
|
|
14
|
+
try {
|
|
15
|
+
return collectNamespaces(bodyText);
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return {};
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
async function fromBody(subject, transfer) {
|
|
22
|
+
const wantsJson = transfer.language === 'jsonpath';
|
|
23
|
+
if (wantsJson && subject.bodyKind !== 'json') {
|
|
24
|
+
return { kind: 'error', code: 'sequence-transfer-failed', message: 'jsonpath needs a JSON response body' };
|
|
25
|
+
}
|
|
26
|
+
if (!wantsJson && subject.bodyKind === 'other') {
|
|
27
|
+
return {
|
|
28
|
+
kind: 'error',
|
|
29
|
+
code: 'sequence-transfer-failed',
|
|
30
|
+
message: `${transfer.language} needs an XML or JSON response body`,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
const namespaces = transfer.namespaces ?? (subject.bodyKind === 'xml' && !wantsJson ? defaultNamespaces(subject.bodyText) : undefined);
|
|
34
|
+
const result = await evaluateWithTimeout(subject.bodyText, transfer.expression, { language: transfer.language, ...(namespaces !== undefined ? { namespaces } : {}) }, { kind: subject.bodyKind === 'json' ? 'json' : 'xml' });
|
|
35
|
+
if (result.kind === 'error') {
|
|
36
|
+
return { kind: 'error', code: 'sequence-transfer-failed', message: result.message };
|
|
37
|
+
}
|
|
38
|
+
const text = firstText(result);
|
|
39
|
+
return text === undefined ? { kind: 'missing' } : { kind: 'value', value: text };
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Evaluates one transfer against a response. Never throws. A value over
|
|
43
|
+
* {@link SEQUENCE_LIMITS.valueBytes} is an error rather than a value, so a server cannot make a run
|
|
44
|
+
* hold (or send onward) more than that per name.
|
|
45
|
+
*/
|
|
46
|
+
export async function extractTransfer(subject, transfer) {
|
|
47
|
+
let found;
|
|
48
|
+
switch (transfer.from) {
|
|
49
|
+
case 'body':
|
|
50
|
+
found = await fromBody(subject, transfer);
|
|
51
|
+
break;
|
|
52
|
+
case 'header': {
|
|
53
|
+
const value = firstHeaderValue(subject.headers, transfer.header);
|
|
54
|
+
found = value === undefined ? { kind: 'missing' } : { kind: 'value', value };
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
case 'status':
|
|
58
|
+
found = { kind: 'value', value: String(subject.status) };
|
|
59
|
+
break;
|
|
60
|
+
case 'cookie': {
|
|
61
|
+
const set = parseSetCookie(subject.headers ?? []).filter((cookie) => cookie.malformed !== true && cookie.name === transfer.cookie);
|
|
62
|
+
const last = set[set.length - 1];
|
|
63
|
+
found = last === undefined ? { kind: 'missing' } : { kind: 'value', value: last.value };
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
if (found.kind === 'value' && Buffer.byteLength(found.value, 'utf8') > SEQUENCE_LIMITS.valueBytes) {
|
|
68
|
+
return {
|
|
69
|
+
kind: 'error',
|
|
70
|
+
code: 'sequence-value-too-large',
|
|
71
|
+
message: `${transfer.name} is larger than ${SEQUENCE_LIMITS.valueBytes} bytes`,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
return found;
|
|
75
|
+
}
|