@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,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What core's loader and every protocol's `storage.load` share when they read a project folder:
|
|
3
|
+
* YAML from a relative path, the `undefined`-dropping helpers, authentication as loaded, a
|
|
4
|
+
* request's scripts, and the request tree an API (of any protocol) and the webhook collection keep
|
|
5
|
+
* under `requests/`.
|
|
6
|
+
*
|
|
7
|
+
* A protocol's storage imports this file and never `load.ts`, which imports the protocols.
|
|
8
|
+
*/
|
|
9
|
+
import type { z } from 'zod';
|
|
10
|
+
import type { KeyValueEntry } from '../http/entries.js';
|
|
11
|
+
import type { RequestScripts } from '../script/model.js';
|
|
12
|
+
import type { FsLike } from './fs.js';
|
|
13
|
+
import type { ProjectProblem } from './load.js';
|
|
14
|
+
import type { AuthConfig, DefinitionAuth } from './model.js';
|
|
15
|
+
import type { KeyValueEntryFile, scriptsSchema } from './schema-parts.js';
|
|
16
|
+
/** The absolute path of a `/`-separated path relative to the project root. */
|
|
17
|
+
export declare function abs(root: string, relative: string): string;
|
|
18
|
+
/** Reads and parses one YAML file of the project; undefined when the file does not exist. */
|
|
19
|
+
export declare function readYaml(fs: FsLike, root: string, relative: string): Promise<unknown>;
|
|
20
|
+
/** Orders entities by their persisted `order`, falling back to a stable name comparison. */
|
|
21
|
+
export declare function byOrder<T extends {
|
|
22
|
+
readonly order: number;
|
|
23
|
+
readonly name: string;
|
|
24
|
+
}>(a: T, b: T): number;
|
|
25
|
+
/** `{ [key]: value }`, or nothing at all when the value is undefined (`exactOptionalPropertyTypes`). */
|
|
26
|
+
export declare function optional<T>(key: string, value: T | undefined): Record<string, T>;
|
|
27
|
+
/**
|
|
28
|
+
* Drops `undefined`-valued keys from a zod result, so an absent optional field
|
|
29
|
+
* is truly absent rather than present-and-undefined (`exactOptionalPropertyTypes`).
|
|
30
|
+
*/
|
|
31
|
+
export declare function exact<T extends object>(value: {
|
|
32
|
+
readonly [K in keyof T]: T[K] | undefined;
|
|
33
|
+
}): T;
|
|
34
|
+
/**
|
|
35
|
+
* A request's scripts and the text of each script file (#63). The file read is always the name
|
|
36
|
+
* derived from the slug, never the one the request file records. A missing or oversized file is a
|
|
37
|
+
* problem on the request; an oversized one keeps its text so a save writes it back untouched.
|
|
38
|
+
*/
|
|
39
|
+
export declare function loadScripts(fs: FsLike, root: string, dir: string, slug: string, document: z.infer<typeof scriptsSchema> | undefined, requestName: string, problems: ProjectProblem[], claim: (fileName: string) => void): Promise<RequestScripts | undefined>;
|
|
40
|
+
/**
|
|
41
|
+
* Authentication as loaded: the same `undefined`-key drop {@link exact} performs, expressed
|
|
42
|
+
* separately because `AuthConfig` is a union and so has no single mapped shape to hand `exact`.
|
|
43
|
+
* The cast is safe for the same reason `exact`'s is: the schema has already established the
|
|
44
|
+
* arm's own fields, and this only removes keys whose value is absent.
|
|
45
|
+
*/
|
|
46
|
+
export declare function authConfig(parsed: Record<string, unknown>): AuthConfig;
|
|
47
|
+
/**
|
|
48
|
+
* A definition's fetch credentials as loaded, through {@link authConfig}. `definitionAuthSchema` has
|
|
49
|
+
* already refused every scheme but Basic, Bearer and API key, so the narrowing cast only restates
|
|
50
|
+
* what parsing proved.
|
|
51
|
+
*/
|
|
52
|
+
export declare function definitionAuth(parsed: Record<string, unknown> | undefined): DefinitionAuth | undefined;
|
|
53
|
+
/** A table row as loaded: `enabled` defaults to true, an absent description stays absent. */
|
|
54
|
+
export declare function keyValueEntries(rows: readonly KeyValueEntryFile[]): KeyValueEntry[];
|
|
55
|
+
/** A folder of either protocol's tree: the same node, holding one kind of request. */
|
|
56
|
+
export interface FolderNode<R> {
|
|
57
|
+
readonly id: string;
|
|
58
|
+
readonly name: string;
|
|
59
|
+
readonly slug: string;
|
|
60
|
+
readonly order: number;
|
|
61
|
+
readonly description?: string;
|
|
62
|
+
readonly auth?: AuthConfig;
|
|
63
|
+
readonly folders: readonly FolderNode<R>[];
|
|
64
|
+
readonly requests: readonly R[];
|
|
65
|
+
}
|
|
66
|
+
/** What one directory of an API's request tree holds. */
|
|
67
|
+
export interface FolderContents<R> {
|
|
68
|
+
readonly folders: FolderNode<R>[];
|
|
69
|
+
readonly requests: R[];
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Reads one `*.request.yaml` of a tree into a request of the API's protocol, claiming the files it
|
|
73
|
+
* owns (its own, and its body file) out of `unclaimed` so they are not reported as orphans.
|
|
74
|
+
*/
|
|
75
|
+
export type RequestReader<R> = (dir: string, fileName: string, unclaimed: Set<string>) => Promise<R>;
|
|
76
|
+
/**
|
|
77
|
+
* Loads one directory of an API's request tree: its `*.request.yaml` files as requests (through
|
|
78
|
+
* the protocol's reader), its subdirectories as folders, recursively.
|
|
79
|
+
*
|
|
80
|
+
* A directory with no `folder.yaml` is still a folder — named after the directory, ordered after
|
|
81
|
+
* the ones that do have a file, and given a file of its own on the next save — because a folder
|
|
82
|
+
* someone created with `mkdir` in a checked-out project is a folder, not a fault. A directory
|
|
83
|
+
* deeper than {@link MAX_FOLDER_DEPTH} becomes a problem and is skipped whole, so nothing is ever
|
|
84
|
+
* written to a path that might not open on Windows.
|
|
85
|
+
*/
|
|
86
|
+
export declare function loadFolderContents<R extends {
|
|
87
|
+
readonly order: number;
|
|
88
|
+
readonly name: string;
|
|
89
|
+
}>(fs: FsLike, root: string, dir: string, depth: number, problems: ProjectProblem[], readRequest: RequestReader<R>, folderExtra?: (document: unknown, relative: string) => Record<string, unknown>): Promise<FolderContents<R>>;
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What core's loader and every protocol's `storage.load` share when they read a project folder:
|
|
3
|
+
* YAML from a relative path, the `undefined`-dropping helpers, authentication as loaded, a
|
|
4
|
+
* request's scripts, and the request tree an API (of any protocol) and the webhook collection keep
|
|
5
|
+
* under `requests/`.
|
|
6
|
+
*
|
|
7
|
+
* A protocol's storage imports this file and never `load.ts`, which imports the protocols.
|
|
8
|
+
*/
|
|
9
|
+
import { join } from 'node:path';
|
|
10
|
+
import { scriptFileName } from '../script/model.js';
|
|
11
|
+
import { SCRIPT_LIMITS } from '../script/sandbox/model.js';
|
|
12
|
+
import { readFileIfExists, readdirIfExists } from './fs.js';
|
|
13
|
+
import { FOLDER_FILE, MAX_FOLDER_DEPTH, REQUEST_SUFFIX } from './paths.js';
|
|
14
|
+
import { parseFile, restFolderFileSchema } from './schema-parts.js';
|
|
15
|
+
import { parseYaml } from './yaml.js';
|
|
16
|
+
/** The absolute path of a `/`-separated path relative to the project root. */
|
|
17
|
+
export function abs(root, relative) {
|
|
18
|
+
return join(root, ...relative.split('/'));
|
|
19
|
+
}
|
|
20
|
+
/** Reads and parses one YAML file of the project; undefined when the file does not exist. */
|
|
21
|
+
export async function readYaml(fs, root, relative) {
|
|
22
|
+
const buffer = await readFileIfExists(fs, abs(root, relative));
|
|
23
|
+
return buffer === undefined ? undefined : parseYaml(buffer.toString('utf8'), relative);
|
|
24
|
+
}
|
|
25
|
+
/** Orders entities by their persisted `order`, falling back to a stable name comparison. */
|
|
26
|
+
export function byOrder(a, b) {
|
|
27
|
+
return a.order - b.order || a.name.localeCompare(b.name);
|
|
28
|
+
}
|
|
29
|
+
/** `{ [key]: value }`, or nothing at all when the value is undefined (`exactOptionalPropertyTypes`). */
|
|
30
|
+
export function optional(key, value) {
|
|
31
|
+
return value === undefined ? {} : { [key]: value };
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Drops `undefined`-valued keys from a zod result, so an absent optional field
|
|
35
|
+
* is truly absent rather than present-and-undefined (`exactOptionalPropertyTypes`).
|
|
36
|
+
*/
|
|
37
|
+
export function exact(value) {
|
|
38
|
+
const out = {};
|
|
39
|
+
for (const key of Object.keys(value)) {
|
|
40
|
+
const entry = value[key];
|
|
41
|
+
if (entry !== undefined) {
|
|
42
|
+
out[key] = entry;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return out;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* A request's scripts and the text of each script file (#63). The file read is always the name
|
|
49
|
+
* derived from the slug, never the one the request file records. A missing or oversized file is a
|
|
50
|
+
* problem on the request; an oversized one keeps its text so a save writes it back untouched.
|
|
51
|
+
*/
|
|
52
|
+
export async function loadScripts(fs, root, dir, slug, document, requestName, problems, claim) {
|
|
53
|
+
if (document === undefined) {
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
const read = async (phase) => {
|
|
57
|
+
if ((phase === 'pre' ? document.pre : document.post) === undefined) {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
const name = scriptFileName(slug, phase, document.api);
|
|
61
|
+
claim(name);
|
|
62
|
+
const relative = `${dir}/${name}`;
|
|
63
|
+
const buffer = await readFileIfExists(fs, abs(root, relative));
|
|
64
|
+
if (buffer === undefined) {
|
|
65
|
+
problems.push({
|
|
66
|
+
code: 'script-file-missing',
|
|
67
|
+
message: `Request "${requestName}" names a ${phase === 'pre' ? 'pre-request' : 'post-response'} script whose file is missing`,
|
|
68
|
+
file: relative,
|
|
69
|
+
});
|
|
70
|
+
return { text: '', problem: 'script-file-missing' };
|
|
71
|
+
}
|
|
72
|
+
const text = buffer.toString('utf8');
|
|
73
|
+
if (buffer.byteLength > SCRIPT_LIMITS.fileBytes) {
|
|
74
|
+
problems.push({
|
|
75
|
+
code: 'script-too-large',
|
|
76
|
+
message: `Request "${requestName}" has a script over ${String(SCRIPT_LIMITS.fileBytes / 1024)} KiB, which will not run`,
|
|
77
|
+
file: relative,
|
|
78
|
+
});
|
|
79
|
+
return { text, problem: 'script-too-large' };
|
|
80
|
+
}
|
|
81
|
+
return { text };
|
|
82
|
+
};
|
|
83
|
+
const pre = await read('pre');
|
|
84
|
+
const post = await read('post');
|
|
85
|
+
return {
|
|
86
|
+
...(pre !== undefined ? { pre } : {}),
|
|
87
|
+
...(post !== undefined ? { post } : {}),
|
|
88
|
+
api: document.api,
|
|
89
|
+
enabled: document.enabled,
|
|
90
|
+
secrets: [...document.secrets],
|
|
91
|
+
...(document.timeoutMs !== undefined ? { timeoutMs: document.timeoutMs } : {}),
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Authentication as loaded: the same `undefined`-key drop {@link exact} performs, expressed
|
|
96
|
+
* separately because `AuthConfig` is a union and so has no single mapped shape to hand `exact`.
|
|
97
|
+
* The cast is safe for the same reason `exact`'s is: the schema has already established the
|
|
98
|
+
* arm's own fields, and this only removes keys whose value is absent.
|
|
99
|
+
*/
|
|
100
|
+
export function authConfig(parsed) {
|
|
101
|
+
const out = {};
|
|
102
|
+
for (const [key, value] of Object.entries(parsed)) {
|
|
103
|
+
if (value !== undefined) {
|
|
104
|
+
out[key] = value;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return out;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* A definition's fetch credentials as loaded, through {@link authConfig}. `definitionAuthSchema` has
|
|
111
|
+
* already refused every scheme but Basic, Bearer and API key, so the narrowing cast only restates
|
|
112
|
+
* what parsing proved.
|
|
113
|
+
*/
|
|
114
|
+
export function definitionAuth(parsed) {
|
|
115
|
+
return parsed === undefined ? undefined : authConfig(parsed);
|
|
116
|
+
}
|
|
117
|
+
/** A table row as loaded: `enabled` defaults to true, an absent description stays absent. */
|
|
118
|
+
export function keyValueEntries(rows) {
|
|
119
|
+
return rows.map((row) => exact({ name: row.name, value: row.value, enabled: row.enabled, description: row.description }));
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Loads one directory of an API's request tree: its `*.request.yaml` files as requests (through
|
|
123
|
+
* the protocol's reader), its subdirectories as folders, recursively.
|
|
124
|
+
*
|
|
125
|
+
* A directory with no `folder.yaml` is still a folder — named after the directory, ordered after
|
|
126
|
+
* the ones that do have a file, and given a file of its own on the next save — because a folder
|
|
127
|
+
* someone created with `mkdir` in a checked-out project is a folder, not a fault. A directory
|
|
128
|
+
* deeper than {@link MAX_FOLDER_DEPTH} becomes a problem and is skipped whole, so nothing is ever
|
|
129
|
+
* written to a path that might not open on Windows.
|
|
130
|
+
*/
|
|
131
|
+
export async function loadFolderContents(fs, root, dir, depth, problems, readRequest, folderExtra) {
|
|
132
|
+
const entries = await readdirIfExists(fs, abs(root, dir));
|
|
133
|
+
const unclaimed = new Set(entries.filter((e) => e.isFile && e.name !== FOLDER_FILE).map((e) => e.name));
|
|
134
|
+
const requests = [];
|
|
135
|
+
const folders = [];
|
|
136
|
+
for (const entry of [...entries].sort((a, b) => a.name.localeCompare(b.name))) {
|
|
137
|
+
if (entry.isFile && entry.name.endsWith(REQUEST_SUFFIX)) {
|
|
138
|
+
requests.push(await readRequest(dir, entry.name, unclaimed));
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
if (!entry.isDirectory) {
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
const childDir = `${dir}/${entry.name}`;
|
|
145
|
+
if (depth + 1 > MAX_FOLDER_DEPTH) {
|
|
146
|
+
problems.push({
|
|
147
|
+
code: 'folder-too-deep',
|
|
148
|
+
message: `Folder "${entry.name}" is nested more than ${String(MAX_FOLDER_DEPTH)} deep and was skipped`,
|
|
149
|
+
file: childDir,
|
|
150
|
+
});
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
const contents = await loadFolderContents(fs, root, childDir, depth + 1, problems, readRequest, folderExtra);
|
|
154
|
+
const relative = `${childDir}/${FOLDER_FILE}`;
|
|
155
|
+
const document = await readYaml(fs, root, relative);
|
|
156
|
+
const parsed = document === undefined ? undefined : parseFile(restFolderFileSchema, document, relative);
|
|
157
|
+
folders.push({
|
|
158
|
+
id: parsed?.id ?? `folder:${entry.name}`,
|
|
159
|
+
name: parsed?.name ?? entry.name,
|
|
160
|
+
slug: entry.name,
|
|
161
|
+
order: parsed?.order ?? Number.MAX_SAFE_INTEGER,
|
|
162
|
+
...optional('description', parsed?.description),
|
|
163
|
+
...(parsed?.auth !== undefined ? { auth: authConfig(parsed.auth) } : {}),
|
|
164
|
+
folders: contents.folders,
|
|
165
|
+
requests: contents.requests,
|
|
166
|
+
...(folderExtra?.(document, relative) ?? {}),
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
for (const orphan of [...unclaimed].sort()) {
|
|
170
|
+
problems.push({
|
|
171
|
+
code: 'orphan-request-file',
|
|
172
|
+
message: `"${orphan}" does not belong to any request`,
|
|
173
|
+
file: `${dir}/${orphan}`,
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
return { folders: folders.sort(byOrder), requests: requests.sort(byOrder) };
|
|
177
|
+
}
|
package/dist/project/load.d.ts
CHANGED
|
@@ -7,9 +7,14 @@
|
|
|
7
7
|
* recoverable inconsistency (an orphaned envelope, an operation folder no
|
|
8
8
|
* interface declares) becomes a {@link ProjectProblem} rather than an error, so
|
|
9
9
|
* a slightly damaged project still opens.
|
|
10
|
+
*
|
|
11
|
+
* Core reads the manifest, environments, sequences, keystores, WS-Security references and the
|
|
12
|
+
* webhook collection. A container is read by its protocol's `storage.load` (`soap/storage.ts`,
|
|
13
|
+
* `rest/storage.ts`, `grpc/storage.ts`, `ws/storage.ts`), found through the registry.
|
|
10
14
|
*/
|
|
11
|
-
import type {
|
|
15
|
+
import type { ProtocolRegistry } from '../protocol/registry.js';
|
|
12
16
|
import type { FsLike } from './fs.js';
|
|
17
|
+
import type { Project } from './model.js';
|
|
13
18
|
/** A recoverable inconsistency found while loading a project. */
|
|
14
19
|
export interface ProjectProblem {
|
|
15
20
|
readonly code: 'missing-envelope' | 'orphan-operation-folder' | 'orphan-request-file' | 'missing-interface-file'
|
|
@@ -20,10 +25,24 @@ export interface ProjectProblem {
|
|
|
20
25
|
/** A folder nested deeper than {@link MAX_FOLDER_DEPTH}; it and everything below it is skipped. */
|
|
21
26
|
| 'folder-too-deep'
|
|
22
27
|
/** An API and an interface sharing a slug, which would make an endpoint override ambiguous. */
|
|
23
|
-
| 'api-slug-conflict'
|
|
28
|
+
| 'api-slug-conflict'
|
|
29
|
+
/** A sequence file that is malformed, over a limit, or not a sequence; it is skipped and left as it is. */
|
|
30
|
+
| 'sequence-file-invalid'
|
|
31
|
+
/** A sequence file written by a newer build; it is skipped and left as it is. */
|
|
32
|
+
| 'sequence-version-too-new'
|
|
33
|
+
/** A sequence file whose id another file already has; it is skipped and left as it is. */
|
|
34
|
+
| 'sequence-duplicate-id'
|
|
35
|
+
/** A script the request names whose file is gone; the request refuses to send until it is back (#63). */
|
|
36
|
+
| 'script-file-missing'
|
|
37
|
+
/** A script file over the size limit; kept as it is, and the request refuses to send (#63). */
|
|
38
|
+
| 'script-too-large'
|
|
39
|
+
/** A container whose kind has no enabled module; it is a placeholder and is left as it is (spec §6). */
|
|
40
|
+
| 'container-unsupported';
|
|
24
41
|
readonly message: string;
|
|
25
42
|
/** Path relative to the project root. */
|
|
26
43
|
readonly file: string;
|
|
44
|
+
/** For `container-unsupported`: `kind`, `reason`, `dir` and `slug`. */
|
|
45
|
+
readonly details?: Readonly<Record<string, unknown>>;
|
|
27
46
|
}
|
|
28
47
|
/** The result of {@link loadProject}: the model plus anything odd about the folder. */
|
|
29
48
|
export interface LoadResult {
|
|
@@ -33,12 +52,19 @@ export interface LoadResult {
|
|
|
33
52
|
/** Options for {@link loadProject}. */
|
|
34
53
|
export interface LoadProjectOptions {
|
|
35
54
|
readonly fs?: FsLike;
|
|
55
|
+
/** The protocols the project may hold. Defaults to the built-in ones, all switched on. */
|
|
56
|
+
readonly registry?: ProtocolRegistry;
|
|
36
57
|
}
|
|
37
58
|
/**
|
|
38
|
-
* Loads the project stored in the directory `root`.
|
|
59
|
+
* Loads the project stored in the directory `root`. Each container directory under `interfaces/`
|
|
60
|
+
* and `apis/` is read by the protocol module its container file's `kind` names (spec §5.1). A
|
|
61
|
+
* container whose kind has no enabled module in that directory becomes a placeholder in
|
|
62
|
+
* `project.unsupported` and a `container-unsupported` problem; nothing below its directory is read
|
|
63
|
+
* but its container file, and a save leaves all of it as it is (spec §6).
|
|
39
64
|
*
|
|
40
65
|
* @throws ProjectError `project-not-found` when there is no `wirebench.yaml`,
|
|
41
66
|
* `project-format-too-new` for a newer format version, `project-file-invalid`
|
|
42
|
-
* for malformed or schema-violating YAML (with the offending file in `details`)
|
|
67
|
+
* for malformed or schema-violating YAML (with the offending file in `details`),
|
|
68
|
+
* `project-kind-not-supported` for a request file of a kind this build has no module for.
|
|
43
69
|
*/
|
|
44
70
|
export declare function loadProject(root: string, options?: LoadProjectOptions): Promise<LoadResult>;
|