@wirebench/engine 2.2.1 → 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,70 @@
|
|
|
1
|
+
import type { Project } from '../../project/model.js';
|
|
2
|
+
import type { DetectContext, SecretRule } from './rules.js';
|
|
3
|
+
/**
|
|
4
|
+
* Where a finding's value is stored. The finding's `valueStart`/`valueEnd` index into that stored
|
|
5
|
+
* text: the entry's value for the keyed kinds and the properties, the text itself for the others.
|
|
6
|
+
*
|
|
7
|
+
* Beyond the spec's fields, `index` pins a keyed entry by its position in its list (names may
|
|
8
|
+
* repeat), `field` is the position of the form field or multipart text part a `rest-body` finding
|
|
9
|
+
* sits in and `name` that field's name (both absent for a raw body), and `messageId` names the
|
|
10
|
+
* saved message of a `ws-message` finding. `rest-url` and `ws-url` are the request's URL text, with
|
|
11
|
+
* `name` the query parameter a finding in it sits under (absent for any other finding in the URL,
|
|
12
|
+
* a userinfo password included); `rest-query` and `ws-query` are its query table.
|
|
13
|
+
* `grpc-api-metadata` and `ws-api-header` are the entries set on the API itself, sent by every
|
|
14
|
+
* request in it.
|
|
15
|
+
*/
|
|
16
|
+
export type SecretLocation = {
|
|
17
|
+
readonly kind: 'soap-header' | 'rest-header' | 'rest-query' | 'grpc-metadata' | 'ws-header' | 'ws-query';
|
|
18
|
+
readonly requestId: string;
|
|
19
|
+
readonly name: string;
|
|
20
|
+
readonly index: number;
|
|
21
|
+
} | {
|
|
22
|
+
readonly kind: 'grpc-api-metadata' | 'ws-api-header';
|
|
23
|
+
readonly apiId: string;
|
|
24
|
+
readonly name: string;
|
|
25
|
+
readonly index: number;
|
|
26
|
+
} | {
|
|
27
|
+
readonly kind: 'rest-body';
|
|
28
|
+
readonly requestId: string;
|
|
29
|
+
readonly field?: number;
|
|
30
|
+
readonly name?: string;
|
|
31
|
+
} | {
|
|
32
|
+
readonly kind: 'soap-body' | 'grpc-message';
|
|
33
|
+
readonly requestId: string;
|
|
34
|
+
} | {
|
|
35
|
+
readonly kind: 'rest-url' | 'ws-url';
|
|
36
|
+
readonly requestId: string;
|
|
37
|
+
readonly name?: string;
|
|
38
|
+
} | {
|
|
39
|
+
readonly kind: 'ws-message';
|
|
40
|
+
readonly requestId: string;
|
|
41
|
+
readonly messageId: string;
|
|
42
|
+
} | {
|
|
43
|
+
readonly kind: 'project-property';
|
|
44
|
+
readonly name: string;
|
|
45
|
+
} | {
|
|
46
|
+
readonly kind: 'env-property';
|
|
47
|
+
readonly environmentId: string;
|
|
48
|
+
readonly name: string;
|
|
49
|
+
};
|
|
50
|
+
export interface SecretFinding {
|
|
51
|
+
/** sha256 of the location and value, hex, first 16 characters: stable while neither changes. */
|
|
52
|
+
readonly id: string;
|
|
53
|
+
readonly location: SecretLocation;
|
|
54
|
+
readonly rule: SecretRule;
|
|
55
|
+
/** Display path, `Billing API › GET /invoices › header Authorization`. */
|
|
56
|
+
readonly label: string;
|
|
57
|
+
readonly valueStart: number;
|
|
58
|
+
readonly valueEnd: number;
|
|
59
|
+
/** The credential itself; never crosses IPC (the wire shape carries `maskedPreview`). */
|
|
60
|
+
readonly value: string;
|
|
61
|
+
}
|
|
62
|
+
/** One stored text to scan. */
|
|
63
|
+
export interface ScanTarget {
|
|
64
|
+
readonly location: SecretLocation;
|
|
65
|
+
readonly label: string;
|
|
66
|
+
readonly text: string;
|
|
67
|
+
readonly context: DetectContext;
|
|
68
|
+
}
|
|
69
|
+
/** Every scannable stored text in `project`, in explorer order within each container kind. */
|
|
70
|
+
export declare function scanTargets(project: Project): Generator<ScanTarget>;
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
const SEP = ' › ';
|
|
2
|
+
function* keyed(kind, ownerId, path, noun, nameKind, entries) {
|
|
3
|
+
for (let index = 0; index < entries.length; index++) {
|
|
4
|
+
const { name, value } = entries[index];
|
|
5
|
+
if (value === '')
|
|
6
|
+
continue;
|
|
7
|
+
yield {
|
|
8
|
+
location: kind === 'grpc-api-metadata' || kind === 'ws-api-header'
|
|
9
|
+
? { kind, apiId: ownerId, name, index }
|
|
10
|
+
: { kind, requestId: ownerId, name, index },
|
|
11
|
+
label: `${path}${SEP}${noun} ${name}`,
|
|
12
|
+
text: value,
|
|
13
|
+
context: { fieldName: name, nameKind },
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function rawContentType(body) {
|
|
18
|
+
if (body.contentType !== undefined)
|
|
19
|
+
return body.contentType;
|
|
20
|
+
if (body.language === 'json')
|
|
21
|
+
return 'application/json';
|
|
22
|
+
if (body.language === 'xml')
|
|
23
|
+
return 'application/xml';
|
|
24
|
+
return 'text/plain';
|
|
25
|
+
}
|
|
26
|
+
function* restBody(request, path) {
|
|
27
|
+
const { body } = request;
|
|
28
|
+
if (body.kind === 'raw') {
|
|
29
|
+
if (body.text !== '') {
|
|
30
|
+
yield {
|
|
31
|
+
location: { kind: 'rest-body', requestId: request.id },
|
|
32
|
+
label: `${path}${SEP}body`,
|
|
33
|
+
text: body.text,
|
|
34
|
+
context: { contentType: rawContentType(body) },
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const fields = body.kind === 'form' ? body.fields : body.kind === 'multipart' ? body.parts : [];
|
|
40
|
+
for (let field = 0; field < fields.length; field++) {
|
|
41
|
+
const entry = fields[field];
|
|
42
|
+
if (!('value' in entry) || entry.value === '')
|
|
43
|
+
continue;
|
|
44
|
+
yield {
|
|
45
|
+
location: { kind: 'rest-body', requestId: request.id, field, name: entry.name },
|
|
46
|
+
label: `${path}${SEP}body field ${entry.name}`,
|
|
47
|
+
text: entry.value,
|
|
48
|
+
context: { fieldName: entry.name, nameKind: 'field' },
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/** A request's URL, scanned for its query parameters as form pairs and for any shape. */
|
|
53
|
+
function url(kind, requestId, path, text) {
|
|
54
|
+
return {
|
|
55
|
+
location: { kind, requestId },
|
|
56
|
+
label: `${path}${SEP}URL`,
|
|
57
|
+
text,
|
|
58
|
+
context: { contentType: 'application/x-www-form-urlencoded', nameKind: 'query' },
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
function* restRequest(request, prefix) {
|
|
62
|
+
const path = `${prefix}${SEP}${request.name}`;
|
|
63
|
+
if (request.url !== '')
|
|
64
|
+
yield url('rest-url', request.id, path, request.url);
|
|
65
|
+
yield* keyed('rest-query', request.id, path, 'query', 'query', request.query);
|
|
66
|
+
yield* keyed('rest-header', request.id, path, 'header', 'header', request.headers);
|
|
67
|
+
yield* restBody(request, path);
|
|
68
|
+
}
|
|
69
|
+
function* grpcRequest(request, prefix) {
|
|
70
|
+
const path = `${prefix}${SEP}${request.name}`;
|
|
71
|
+
yield* keyed('grpc-metadata', request.id, path, 'metadata', 'header', request.metadata);
|
|
72
|
+
if (request.message !== '') {
|
|
73
|
+
yield {
|
|
74
|
+
location: { kind: 'grpc-message', requestId: request.id },
|
|
75
|
+
label: `${path}${SEP}message`,
|
|
76
|
+
text: request.message,
|
|
77
|
+
context: { contentType: 'application/json' },
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
function* wsRequest(request, prefix) {
|
|
82
|
+
const path = `${prefix}${SEP}${request.name}`;
|
|
83
|
+
if (request.url !== '')
|
|
84
|
+
yield url('ws-url', request.id, path, request.url);
|
|
85
|
+
yield* keyed('ws-query', request.id, path, 'query', 'query', request.query);
|
|
86
|
+
yield* keyed('ws-header', request.id, path, 'header', 'header', request.headers);
|
|
87
|
+
for (const message of request.messages) {
|
|
88
|
+
if (message.format !== 'text' || message.content === '')
|
|
89
|
+
continue;
|
|
90
|
+
yield {
|
|
91
|
+
location: { kind: 'ws-message', requestId: request.id, messageId: message.id },
|
|
92
|
+
label: `${path}${SEP}message ${message.name}`,
|
|
93
|
+
text: message.content,
|
|
94
|
+
context: {},
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
function* tree(node, prefix, visit) {
|
|
99
|
+
for (const request of node.requests)
|
|
100
|
+
yield* visit(request, prefix);
|
|
101
|
+
for (const folder of node.folders)
|
|
102
|
+
yield* tree(folder, `${prefix}${SEP}${folder.name}`, visit);
|
|
103
|
+
}
|
|
104
|
+
/** Every scannable stored text in `project`, in explorer order within each container kind. */
|
|
105
|
+
export function* scanTargets(project) {
|
|
106
|
+
for (const [name, value] of Object.entries(project.properties)) {
|
|
107
|
+
if (value === '')
|
|
108
|
+
continue;
|
|
109
|
+
yield {
|
|
110
|
+
location: { kind: 'project-property', name },
|
|
111
|
+
label: `${project.name}${SEP}property ${name}`,
|
|
112
|
+
text: value,
|
|
113
|
+
context: { fieldName: name, nameKind: 'property' },
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
for (const env of project.environments) {
|
|
117
|
+
for (const [name, value] of Object.entries(env.properties)) {
|
|
118
|
+
if (value === '')
|
|
119
|
+
continue;
|
|
120
|
+
yield {
|
|
121
|
+
location: { kind: 'env-property', environmentId: env.id, name },
|
|
122
|
+
label: `Environment ${env.name}${SEP}property ${name}`,
|
|
123
|
+
text: value,
|
|
124
|
+
context: { fieldName: name, nameKind: 'property' },
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
for (const iface of project.interfaces) {
|
|
129
|
+
for (const operation of iface.operations) {
|
|
130
|
+
for (const request of operation.requests) {
|
|
131
|
+
const path = `${iface.name}${SEP}${operation.name}${SEP}${request.name}`;
|
|
132
|
+
yield* keyed('soap-header', request.id, path, 'header', 'header', request.headers);
|
|
133
|
+
if (request.envelopeXml !== '') {
|
|
134
|
+
yield {
|
|
135
|
+
location: { kind: 'soap-body', requestId: request.id },
|
|
136
|
+
label: `${path}${SEP}envelope`,
|
|
137
|
+
text: request.envelopeXml,
|
|
138
|
+
context: { contentType: 'text/xml' },
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
for (const api of project.apis)
|
|
145
|
+
yield* tree(api, api.name, restRequest);
|
|
146
|
+
if (project.webhooks !== undefined)
|
|
147
|
+
yield* tree(project.webhooks, 'Webhooks', restRequest);
|
|
148
|
+
for (const api of project.grpcApis) {
|
|
149
|
+
yield* keyed('grpc-api-metadata', api.id, api.name, 'metadata', 'header', api.metadata);
|
|
150
|
+
yield* tree(api, api.name, grpcRequest);
|
|
151
|
+
}
|
|
152
|
+
for (const api of project.wsApis) {
|
|
153
|
+
yield* keyed('ws-api-header', api.id, api.name, 'header', 'header', api.headers);
|
|
154
|
+
yield* tree(api, api.name, wsRequest);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The keychain references (`sec_…`) a model carries, wherever they sit: an auth's `passwordRef`, a
|
|
3
|
+
* `tokenRef`, a `valueRef`, an OAuth client secret. Team secrets back-fill the vault from them (§3.1).
|
|
4
|
+
* Pure: no I/O.
|
|
5
|
+
*/
|
|
6
|
+
/** The shape `SecretStore` mints (`sec_` and lowercase hex); a little looser, so an older ref still counts. */
|
|
7
|
+
export declare const SECRET_REF_PATTERN: RegExp;
|
|
8
|
+
export declare function secretRefsInValue(value: unknown): string[];
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The keychain references (`sec_…`) a model carries, wherever they sit: an auth's `passwordRef`, a
|
|
3
|
+
* `tokenRef`, a `valueRef`, an OAuth client secret. Team secrets back-fill the vault from them (§3.1).
|
|
4
|
+
* Pure: no I/O.
|
|
5
|
+
*/
|
|
6
|
+
/** The shape `SecretStore` mints (`sec_` and lowercase hex); a little looser, so an older ref still counts. */
|
|
7
|
+
export const SECRET_REF_PATTERN = /^sec_[0-9a-z]{16,64}$/;
|
|
8
|
+
export function secretRefsInValue(value) {
|
|
9
|
+
const found = new Set();
|
|
10
|
+
const visit = (current) => {
|
|
11
|
+
if (typeof current === 'string') {
|
|
12
|
+
if (SECRET_REF_PATTERN.test(current)) {
|
|
13
|
+
found.add(current);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
else if (Array.isArray(current)) {
|
|
17
|
+
current.forEach(visit);
|
|
18
|
+
}
|
|
19
|
+
else if (current !== null && typeof current === 'object' && !ArrayBuffer.isView(current)) {
|
|
20
|
+
Object.values(current).forEach(visit);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
visit(value);
|
|
24
|
+
return [...found];
|
|
25
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `${secret:name}` token: the file-visible form of a value stored in the keychain-backed
|
|
3
|
+
* secret store. `name` is stable across machines (unlike the store's opaque `sec_…` ref) and is
|
|
4
|
+
* what CI sets through `WIREBENCH_SECRET_<NAME>`. See docs/specs/2026-09-22-secret-scanning-design.md.
|
|
5
|
+
*
|
|
6
|
+
* Pure module: no I/O, no dependency on the rest of the engine.
|
|
7
|
+
*/
|
|
8
|
+
/** A secret name: a valid environment-variable suffix. */
|
|
9
|
+
export declare const SECRET_NAME_PATTERN: RegExp;
|
|
10
|
+
/** The literal `${secret:name}` text to write into a project file in place of a value. */
|
|
11
|
+
export declare function secretToken(name: string): string;
|
|
12
|
+
/** The pseudo-ref passed to a `GetSecret` resolver for a secret named `name`. */
|
|
13
|
+
export declare function secretPseudoRef(name: string): string;
|
|
14
|
+
/** The name inside a `secret:<name>` pseudo-ref, or `undefined` when `ref` isn't one. */
|
|
15
|
+
export declare function parseSecretPseudoRef(ref: string): string | undefined;
|
|
16
|
+
/** The `WIREBENCH_SECRET_<NAME>` environment variable suffix for a secret named `name`. */
|
|
17
|
+
export declare function secretEnvName(name: string): string;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `${secret:name}` token: the file-visible form of a value stored in the keychain-backed
|
|
3
|
+
* secret store. `name` is stable across machines (unlike the store's opaque `sec_…` ref) and is
|
|
4
|
+
* what CI sets through `WIREBENCH_SECRET_<NAME>`. See docs/specs/2026-09-22-secret-scanning-design.md.
|
|
5
|
+
*
|
|
6
|
+
* Pure module: no I/O, no dependency on the rest of the engine.
|
|
7
|
+
*/
|
|
8
|
+
/** A secret name: a valid environment-variable suffix. */
|
|
9
|
+
export const SECRET_NAME_PATTERN = /^[A-Za-z_][A-Za-z0-9_]*$/;
|
|
10
|
+
/** The literal `${secret:name}` text to write into a project file in place of a value. */
|
|
11
|
+
export function secretToken(name) {
|
|
12
|
+
return `\${secret:${name}}`;
|
|
13
|
+
}
|
|
14
|
+
/** The pseudo-ref passed to a `GetSecret` resolver for a secret named `name`. */
|
|
15
|
+
export function secretPseudoRef(name) {
|
|
16
|
+
return `secret:${name}`;
|
|
17
|
+
}
|
|
18
|
+
/** The name inside a `secret:<name>` pseudo-ref, or `undefined` when `ref` isn't one. */
|
|
19
|
+
export function parseSecretPseudoRef(ref) {
|
|
20
|
+
return ref.startsWith('secret:') ? ref.slice('secret:'.length) : undefined;
|
|
21
|
+
}
|
|
22
|
+
/** The `WIREBENCH_SECRET_<NAME>` environment variable suffix for a secret named `name`. */
|
|
23
|
+
export function secretEnvName(name) {
|
|
24
|
+
return name.toUpperCase();
|
|
25
|
+
}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `sequences/<slug>.sequence.yaml`: parsing, validation and serialisation of one sequence file.
|
|
3
|
+
*
|
|
4
|
+
* The file may come from a teammate or a branch just pulled, so it is untrusted input: its size is
|
|
5
|
+
* checked before it is parsed, it is parsed with the project's YAML parser (core schema, aliases capped
|
|
6
|
+
* by the library), and every count is bounded by {@link SEQUENCE_LIMITS}. It names requests only by id,
|
|
7
|
+
* so nothing in it can name a path on disk.
|
|
8
|
+
*
|
|
9
|
+
* Like every project schema, objects are `looseObject`: an unknown key is ignored and not written back.
|
|
10
|
+
* That is only safe because a file whose `version` is newer than {@link SEQUENCE_VERSION} is refused
|
|
11
|
+
* whole rather than read in part, and a refused file is never deleted by a save (`save.ts`).
|
|
12
|
+
*/
|
|
13
|
+
import { z } from 'zod';
|
|
14
|
+
import type { SequenceDef } from './model.js';
|
|
15
|
+
/** Directory holding every sequence file, beside `interfaces/` and `apis/`. */
|
|
16
|
+
export declare const SEQUENCES_DIR = "sequences";
|
|
17
|
+
/** Suffix identifying a sequence file. */
|
|
18
|
+
export declare const SEQUENCE_SUFFIX = ".sequence.yaml";
|
|
19
|
+
/** One sequence file, after its `kind` and `version` have been checked. */
|
|
20
|
+
export declare const sequenceFileSchema: z.ZodObject<{
|
|
21
|
+
kind: z.ZodLiteral<"sequence">;
|
|
22
|
+
version: z.ZodLiteral<1>;
|
|
23
|
+
id: z.ZodString;
|
|
24
|
+
name: z.ZodString;
|
|
25
|
+
order: z.ZodNumber;
|
|
26
|
+
description: z.ZodOptional<z.ZodString>;
|
|
27
|
+
settings: z.ZodDefault<z.ZodObject<{
|
|
28
|
+
stopOnFailure: z.ZodDefault<z.ZodBoolean>;
|
|
29
|
+
stepTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
30
|
+
}, z.core.$loose>>;
|
|
31
|
+
steps: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
32
|
+
id: z.ZodString;
|
|
33
|
+
name: z.ZodOptional<z.ZodString>;
|
|
34
|
+
request: z.ZodString;
|
|
35
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
36
|
+
requestAssertions: z.ZodDefault<z.ZodBoolean>;
|
|
37
|
+
transfers: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
38
|
+
from: z.ZodLiteral<"body">;
|
|
39
|
+
language: z.ZodEnum<{
|
|
40
|
+
xpath: "xpath";
|
|
41
|
+
xquery: "xquery";
|
|
42
|
+
jsonpath: "jsonpath";
|
|
43
|
+
}>;
|
|
44
|
+
expression: z.ZodString;
|
|
45
|
+
namespaces: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
46
|
+
name: z.ZodString;
|
|
47
|
+
secret: z.ZodOptional<z.ZodBoolean>;
|
|
48
|
+
optional: z.ZodOptional<z.ZodBoolean>;
|
|
49
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
50
|
+
from: z.ZodLiteral<"header">;
|
|
51
|
+
header: z.ZodString;
|
|
52
|
+
name: z.ZodString;
|
|
53
|
+
secret: z.ZodOptional<z.ZodBoolean>;
|
|
54
|
+
optional: z.ZodOptional<z.ZodBoolean>;
|
|
55
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
56
|
+
from: z.ZodLiteral<"status">;
|
|
57
|
+
name: z.ZodString;
|
|
58
|
+
secret: z.ZodOptional<z.ZodBoolean>;
|
|
59
|
+
optional: z.ZodOptional<z.ZodBoolean>;
|
|
60
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
61
|
+
from: z.ZodLiteral<"cookie">;
|
|
62
|
+
cookie: z.ZodString;
|
|
63
|
+
name: z.ZodString;
|
|
64
|
+
secret: z.ZodOptional<z.ZodBoolean>;
|
|
65
|
+
optional: z.ZodOptional<z.ZodBoolean>;
|
|
66
|
+
}, z.core.$loose>], "from">>>;
|
|
67
|
+
assertions: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
68
|
+
type: z.ZodLiteral<"status">;
|
|
69
|
+
equals: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodNumber, z.ZodNumber, z.ZodString, z.ZodEnum<{
|
|
70
|
+
[x: string]: string;
|
|
71
|
+
}>]>, z.ZodArray<z.ZodUnion<readonly [z.ZodNumber, z.ZodNumber, z.ZodString, z.ZodEnum<{
|
|
72
|
+
[x: string]: string;
|
|
73
|
+
}>]>>]>;
|
|
74
|
+
name: z.ZodOptional<z.ZodString>;
|
|
75
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
76
|
+
type: z.ZodLiteral<"soap-fault">;
|
|
77
|
+
expect: z.ZodDefault<z.ZodEnum<{
|
|
78
|
+
none: "none";
|
|
79
|
+
present: "present";
|
|
80
|
+
}>>;
|
|
81
|
+
name: z.ZodOptional<z.ZodString>;
|
|
82
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
83
|
+
type: z.ZodLiteral<"match">;
|
|
84
|
+
language: z.ZodEnum<{
|
|
85
|
+
xpath: "xpath";
|
|
86
|
+
xquery: "xquery";
|
|
87
|
+
jsonpath: "jsonpath";
|
|
88
|
+
}>;
|
|
89
|
+
expression: z.ZodString;
|
|
90
|
+
namespaces: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
91
|
+
equals: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
|
|
92
|
+
matches: z.ZodOptional<z.ZodString>;
|
|
93
|
+
exists: z.ZodOptional<z.ZodBoolean>;
|
|
94
|
+
name: z.ZodOptional<z.ZodString>;
|
|
95
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
96
|
+
type: z.ZodLiteral<"schema">;
|
|
97
|
+
name: z.ZodOptional<z.ZodString>;
|
|
98
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
99
|
+
type: z.ZodLiteral<"sla">;
|
|
100
|
+
maxMs: z.ZodNumber;
|
|
101
|
+
name: z.ZodOptional<z.ZodString>;
|
|
102
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
103
|
+
type: z.ZodLiteral<"header">;
|
|
104
|
+
header: z.ZodString;
|
|
105
|
+
equals: z.ZodOptional<z.ZodString>;
|
|
106
|
+
matches: z.ZodOptional<z.ZodString>;
|
|
107
|
+
exists: z.ZodOptional<z.ZodBoolean>;
|
|
108
|
+
name: z.ZodOptional<z.ZodString>;
|
|
109
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
110
|
+
type: z.ZodLiteral<"callback">;
|
|
111
|
+
catchUrl: z.ZodString;
|
|
112
|
+
withinMs: z.ZodDefault<z.ZodNumber>;
|
|
113
|
+
match: z.ZodDefault<z.ZodObject<{
|
|
114
|
+
method: z.ZodOptional<z.ZodString>;
|
|
115
|
+
path: z.ZodOptional<z.ZodString>;
|
|
116
|
+
pathMatches: z.ZodOptional<z.ZodString>;
|
|
117
|
+
headers: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
118
|
+
equals: z.ZodOptional<z.ZodString>;
|
|
119
|
+
matches: z.ZodOptional<z.ZodString>;
|
|
120
|
+
exists: z.ZodOptional<z.ZodBoolean>;
|
|
121
|
+
name: z.ZodString;
|
|
122
|
+
}, z.core.$loose>>>;
|
|
123
|
+
body: z.ZodOptional<z.ZodObject<{
|
|
124
|
+
equals: z.ZodOptional<z.ZodString>;
|
|
125
|
+
matches: z.ZodOptional<z.ZodString>;
|
|
126
|
+
exists: z.ZodOptional<z.ZodBoolean>;
|
|
127
|
+
language: z.ZodEnum<{
|
|
128
|
+
xpath: "xpath";
|
|
129
|
+
jsonpath: "jsonpath";
|
|
130
|
+
}>;
|
|
131
|
+
path: z.ZodString;
|
|
132
|
+
}, z.core.$loose>>;
|
|
133
|
+
}, z.core.$loose>>;
|
|
134
|
+
expect: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
135
|
+
body: z.ZodOptional<z.ZodObject<{
|
|
136
|
+
equals: z.ZodOptional<z.ZodString>;
|
|
137
|
+
matches: z.ZodOptional<z.ZodString>;
|
|
138
|
+
exists: z.ZodOptional<z.ZodBoolean>;
|
|
139
|
+
language: z.ZodEnum<{
|
|
140
|
+
xpath: "xpath";
|
|
141
|
+
jsonpath: "jsonpath";
|
|
142
|
+
}>;
|
|
143
|
+
path: z.ZodString;
|
|
144
|
+
}, z.core.$loose>>;
|
|
145
|
+
header: z.ZodOptional<z.ZodObject<{
|
|
146
|
+
equals: z.ZodOptional<z.ZodString>;
|
|
147
|
+
matches: z.ZodOptional<z.ZodString>;
|
|
148
|
+
exists: z.ZodOptional<z.ZodBoolean>;
|
|
149
|
+
name: z.ZodString;
|
|
150
|
+
}, z.core.$loose>>;
|
|
151
|
+
signature: z.ZodOptional<z.ZodLiteral<"verified">>;
|
|
152
|
+
}, z.core.$loose>>>;
|
|
153
|
+
name: z.ZodOptional<z.ZodString>;
|
|
154
|
+
}, z.core.$loose>], "type">>>;
|
|
155
|
+
}, z.core.$loose>>>;
|
|
156
|
+
}, z.core.$loose>;
|
|
157
|
+
/** The relative path of a sequence's file. */
|
|
158
|
+
export declare function sequenceFilePath(slug: string): string;
|
|
159
|
+
/** The slug a sequence file's name gives it, or `undefined` for a name that is not a sequence file. */
|
|
160
|
+
export declare function sequenceSlugOf(fileName: string): string | undefined;
|
|
161
|
+
/**
|
|
162
|
+
* Parses one sequence file.
|
|
163
|
+
*
|
|
164
|
+
* @throws ProjectError `sequence-file-invalid` (too large, malformed YAML, not a sequence, or failing the
|
|
165
|
+
* schema or a limit), `sequence-version-too-new` (a `version` above {@link SEQUENCE_VERSION})
|
|
166
|
+
*/
|
|
167
|
+
export declare function parseSequenceFile(bytes: Uint8Array | string, file: string, slug: string): SequenceDef;
|
|
168
|
+
/** Serialises a sequence as its file's content: keys sorted, defaults omitted, steps in order. */
|
|
169
|
+
export declare function sequenceDocument(sequence: SequenceDef): string;
|