@wirebench/engine 2.2.1 → 3.1.0
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
|
@@ -3,24 +3,25 @@
|
|
|
3
3
|
* and sending a SOAP request. These are the shapes the desktop app (Task 13)
|
|
4
4
|
* consumes directly.
|
|
5
5
|
*/
|
|
6
|
-
import type { FetchDocument } from '
|
|
7
|
-
import type { QName } from '
|
|
8
|
-
import type { DefinitionBundle } from '
|
|
9
|
-
import type { MimePartInfo, WsdlDefinition } from '
|
|
10
|
-
import type { SchemaSet } from '
|
|
11
|
-
import type {
|
|
12
|
-
import type {
|
|
13
|
-
import type {
|
|
14
|
-
import type {
|
|
15
|
-
import type {
|
|
16
|
-
import type {
|
|
17
|
-
import type {
|
|
18
|
-
import type {
|
|
19
|
-
import type {
|
|
20
|
-
import type {
|
|
21
|
-
import type {
|
|
6
|
+
import type { FetchDocument } from '../wsdl/resolver.js';
|
|
7
|
+
import type { QName } from '../wsdl/qname.js';
|
|
8
|
+
import type { DefinitionBundle } from '../wsdl/resolver.js';
|
|
9
|
+
import type { MimePartInfo, WsdlDefinition } from '../wsdl/model.js';
|
|
10
|
+
import type { SchemaSet } from '../xsd/schema-set.js';
|
|
11
|
+
import type { AuthSummary, SendAuth } from '../http/auth/send-auth.js';
|
|
12
|
+
import type { HttpExchange, ProxyOptions, TlsOptions } from '../http/types.js';
|
|
13
|
+
import type { SoapEnvelopeVersion } from './envelope.js';
|
|
14
|
+
import type { SoapFault } from './fault.js';
|
|
15
|
+
import type { UnresolvedRef } from '../project/properties.js';
|
|
16
|
+
import type { Attachment } from '../project/model.js';
|
|
17
|
+
import type { AttachmentResolver, ResponseAttachment } from './mime/types.js';
|
|
18
|
+
import type { WssContext, WssIncomingConfig, WssOutgoingConfig } from '../wss/model.js';
|
|
19
|
+
import type { WssResult } from '../wss/incoming/index.js';
|
|
20
|
+
import type { WssRequestProperties } from '../wss/apply.js';
|
|
21
|
+
import type { WsaConfig } from '../wsa/model.js';
|
|
22
|
+
import type { WsaSummary } from '../wsa/policy-detect.js';
|
|
22
23
|
/** Where a WSDL definition comes from. */
|
|
23
|
-
export type
|
|
24
|
+
export type WsdlImportSource = {
|
|
24
25
|
readonly kind: 'url';
|
|
25
26
|
readonly url: string;
|
|
26
27
|
} | {
|
|
@@ -32,8 +33,8 @@ export type ImportSource = {
|
|
|
32
33
|
/** Base location for resolving relative imports; defaults to `inline:wsdl`. */
|
|
33
34
|
readonly location?: string;
|
|
34
35
|
};
|
|
35
|
-
/** One phase of an in-progress {@link
|
|
36
|
-
export type
|
|
36
|
+
/** One phase of an in-progress {@link WsdlImportSource} import. */
|
|
37
|
+
export type WsdlImportProgress = {
|
|
37
38
|
readonly phase: 'fetch';
|
|
38
39
|
readonly location: string;
|
|
39
40
|
} | {
|
|
@@ -44,19 +45,19 @@ export type ImportProgress = {
|
|
|
44
45
|
readonly phase: 'done';
|
|
45
46
|
};
|
|
46
47
|
/**
|
|
47
|
-
* Definition-cache behaviour for `
|
|
48
|
+
* Definition-cache behaviour for `importWsdl`: `'prefer-cache'` resolves
|
|
48
49
|
* entirely from a valid cache with no network access (falling back to the
|
|
49
50
|
* network, with a problem reported, if the cache is missing or corrupt);
|
|
50
51
|
* `'refresh'` always resolves from the network and then (re)writes the
|
|
51
52
|
* cache; `'none'` ignores the cache entirely.
|
|
52
53
|
*/
|
|
53
|
-
export interface
|
|
54
|
+
export interface WsdlImportCacheOptions {
|
|
54
55
|
/** Absolute path of the interface's `definition/` directory (see `definitionCacheDir`). */
|
|
55
56
|
readonly dir: string;
|
|
56
57
|
readonly mode: 'prefer-cache' | 'refresh' | 'none';
|
|
57
58
|
}
|
|
58
|
-
/** Options accepted by `
|
|
59
|
-
export interface
|
|
59
|
+
/** Options accepted by `importWsdl`. */
|
|
60
|
+
export interface WsdlImportOptions {
|
|
60
61
|
/** Overrides the default `file://`/`http(s)://` fetcher, e.g. for tests. */
|
|
61
62
|
readonly fetchDocument?: FetchDocument;
|
|
62
63
|
/** Basic auth credentials added to every `http(s)://` fetch made while importing. */
|
|
@@ -65,12 +66,12 @@ export interface ImportOptions {
|
|
|
65
66
|
readonly password: string;
|
|
66
67
|
};
|
|
67
68
|
readonly signal?: AbortSignal;
|
|
68
|
-
readonly onProgress?: (event:
|
|
69
|
-
/** Definition-cache behaviour; see {@link
|
|
70
|
-
readonly cache?:
|
|
69
|
+
readonly onProgress?: (event: WsdlImportProgress) => void;
|
|
70
|
+
/** Definition-cache behaviour; see {@link WsdlImportCacheOptions}. Omitted/absent means no caching. */
|
|
71
|
+
readonly cache?: WsdlImportCacheOptions;
|
|
71
72
|
}
|
|
72
73
|
/** A non-fatal problem encountered while importing a definition, tagged by the stage that raised it. */
|
|
73
|
-
export interface
|
|
74
|
+
export interface WsdlImportProblem {
|
|
74
75
|
readonly source: 'resolve' | 'wsdl' | 'schema';
|
|
75
76
|
readonly code: string;
|
|
76
77
|
readonly message: string;
|
|
@@ -79,7 +80,7 @@ export interface ImportProblem {
|
|
|
79
80
|
readonly column?: number;
|
|
80
81
|
}
|
|
81
82
|
/** One binding operation's port bindings, as summarized for a picker UI. */
|
|
82
|
-
export interface
|
|
83
|
+
export interface SoapOperationSummary {
|
|
83
84
|
readonly bindingName: QName;
|
|
84
85
|
readonly operationName: string;
|
|
85
86
|
readonly soapVersion: '1.1' | '1.2' | 'none';
|
|
@@ -98,68 +99,17 @@ export interface OperationSummary {
|
|
|
98
99
|
readonly inputMimeParts: readonly MimePartInfo[];
|
|
99
100
|
}
|
|
100
101
|
/** The full result of importing a WSDL definition: parsed model, schema set, problems and an operation picker list. */
|
|
101
|
-
export interface
|
|
102
|
+
export interface WsdlImportResult {
|
|
102
103
|
readonly definition: WsdlDefinition;
|
|
103
104
|
readonly bundle: DefinitionBundle;
|
|
104
105
|
readonly schemaSet: SchemaSet;
|
|
105
|
-
readonly problems: readonly
|
|
106
|
-
readonly operations: readonly
|
|
106
|
+
readonly problems: readonly WsdlImportProblem[];
|
|
107
|
+
readonly operations: readonly SoapOperationSummary[];
|
|
107
108
|
/** What the definition itself says about WS-Addressing; see `summarizeWsa`. */
|
|
108
109
|
readonly wsa: WsaSummary;
|
|
109
110
|
/** True when this result was resolved entirely from the definition cache, with no network access. */
|
|
110
111
|
readonly fromCache?: boolean;
|
|
111
112
|
}
|
|
112
|
-
/**
|
|
113
|
-
* Credentials for one send, already resolved to plaintext: the desktop app looks a
|
|
114
|
-
* `passwordRef` up in its secret store before calling the engine, so the engine never
|
|
115
|
-
* sees a secret reference (and never persists or logs the password).
|
|
116
|
-
*/
|
|
117
|
-
export type SendAuth = {
|
|
118
|
-
readonly type: 'basic';
|
|
119
|
-
readonly username: string;
|
|
120
|
-
readonly password: string;
|
|
121
|
-
/** Send the `Authorization` header on the first attempt instead of waiting for a 401. */
|
|
122
|
-
readonly preemptive: boolean;
|
|
123
|
-
} | {
|
|
124
|
-
readonly type: 'ntlm';
|
|
125
|
-
readonly username: string;
|
|
126
|
-
readonly password: string;
|
|
127
|
-
readonly domain?: string;
|
|
128
|
-
readonly workstation?: string;
|
|
129
|
-
}
|
|
130
|
-
/** A token in an `Authorization` header. `scheme` defaults to `Bearer`. */
|
|
131
|
-
| {
|
|
132
|
-
readonly type: 'bearer';
|
|
133
|
-
readonly token: string;
|
|
134
|
-
readonly scheme?: string;
|
|
135
|
-
}
|
|
136
|
-
/** A key in one header or one query parameter. */
|
|
137
|
-
| {
|
|
138
|
-
readonly type: 'api-key';
|
|
139
|
-
readonly name: string;
|
|
140
|
-
readonly value: string;
|
|
141
|
-
readonly in: 'header' | 'query';
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* An OAuth2 access token the host already obtained. The engine never runs a grant during a send:
|
|
145
|
-
* the token is fetched (and cached, and refreshed) by the host, so a send is one exchange and
|
|
146
|
-
* the browser is never opened behind it. On the wire it is a Bearer token.
|
|
147
|
-
*/
|
|
148
|
-
| {
|
|
149
|
-
readonly type: 'oauth2';
|
|
150
|
-
readonly accessToken: string;
|
|
151
|
-
};
|
|
152
|
-
/** What authentication actually did during one send, for the UI to explain the exchange. */
|
|
153
|
-
export interface AuthSummary {
|
|
154
|
-
readonly scheme: SendAuth['type'];
|
|
155
|
-
/** True when the server answered the first attempt with a 401 challenge. */
|
|
156
|
-
readonly challenged: boolean;
|
|
157
|
-
/**
|
|
158
|
-
* How many HTTP attempts the send made: 1 preemptive/unchallenged, 2 after a Basic
|
|
159
|
-
* challenge, 3 for a full NTLM handshake (bare, Type 1, Type 3).
|
|
160
|
-
*/
|
|
161
|
-
readonly attempts: 1 | 2 | 3;
|
|
162
|
-
}
|
|
163
113
|
/** Input to `sendSoapRequest`: an already-built envelope plus transport knobs. */
|
|
164
114
|
export interface SoapSendInput {
|
|
165
115
|
readonly endpoint: string;
|
|
@@ -195,7 +145,7 @@ export interface SoapSendInput {
|
|
|
195
145
|
/** Attachments to send; only acted on when {@link attachmentOptions} says how. */
|
|
196
146
|
readonly attachments?: readonly Attachment[];
|
|
197
147
|
/** MTOM/SwA/inline-file behaviour plus the resolvers that turn references into bytes. */
|
|
198
|
-
readonly attachmentOptions?:
|
|
148
|
+
readonly attachmentOptions?: SoapAttachmentOptions;
|
|
199
149
|
/**
|
|
200
150
|
* WS-Security applied to the envelope after property expansion and inline-file substitution
|
|
201
151
|
* and before attachment packaging, so the header is part of the envelope that actually goes
|
|
@@ -236,7 +186,7 @@ export interface SoapSendWss {
|
|
|
236
186
|
* referenced part's base64, the second keeps those parts listed as attachments even
|
|
237
187
|
* once they have been expanded into the envelope.
|
|
238
188
|
*/
|
|
239
|
-
export interface
|
|
189
|
+
export interface SoapAttachmentOptions {
|
|
240
190
|
/** Rewrite `cid:` references as `xop:Include` and send an MTOM package. */
|
|
241
191
|
readonly enableMtom: boolean;
|
|
242
192
|
/** Send an MTOM package even when nothing was optimised. */
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A small, Electron-free wrapper around the system `git` executable: discovery ({@link findGit}),
|
|
3
|
+
* a hardened {@link GitCli.run}, error mapping and remote URL validation ({@link assertRemoteUrl}).
|
|
4
|
+
*
|
|
5
|
+
* This file must never import `electron` — `SyncService` and Wirebench Server's commit store run it
|
|
6
|
+
* in plain Node, and `ipc/git.ts` is the only place that bridges it to Electron.
|
|
7
|
+
*
|
|
8
|
+
* Git is never bundled: it is found on the machine it runs on, or the user is asked to locate
|
|
9
|
+
* it (`git.locate`). Every invocation goes through {@link GitCli.run}, which never opens a
|
|
10
|
+
* shell, never prompts, never runs a hook, and refuses any subcommand outside
|
|
11
|
+
* {@link GIT_SUBCOMMANDS} before a process is even spawned. A `GitCli` the server builds with
|
|
12
|
+
* `{ plumbing: true }` also accepts {@link GIT_PLUMBING_SUBCOMMANDS}; the desktop never does.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* The only git subcommands `GitCli.run` will spawn. A `-`-prefixed first argument, or any
|
|
16
|
+
* subcommand not on this list, is refused before a process is spawned — see `run`.
|
|
17
|
+
*/
|
|
18
|
+
export declare const GIT_SUBCOMMANDS: readonly ["--version", "init", "clone", "add", "commit", "fetch", "merge", "push", "status", "diff", "show", "rev-list", "rev-parse", "log", "checkout", "remote", "config", "symbolic-ref", "var", "rm"];
|
|
19
|
+
/** One of the subcommands {@link GIT_SUBCOMMANDS} allows. */
|
|
20
|
+
export type GitSubcommand = (typeof GIT_SUBCOMMANDS)[number];
|
|
21
|
+
/**
|
|
22
|
+
* Git plumbing, for Wirebench Server's commit store only (server-sync spec §3.3, R1): it builds
|
|
23
|
+
* commits in a bare repository, with no working tree. This is a second list rather than a longer
|
|
24
|
+
* {@link GIT_SUBCOMMANDS}, so the desktop's allow-list does not grow. Only a `GitCli` constructed
|
|
25
|
+
* with `{ plumbing: true }`, or returned by {@link GitCli.withPlumbing}, accepts these.
|
|
26
|
+
*/
|
|
27
|
+
export declare const GIT_PLUMBING_SUBCOMMANDS: readonly ["ls-tree", "cat-file", "merge-base", "diff-tree", "read-tree", "hash-object", "update-index", "write-tree", "commit-tree", "update-ref"];
|
|
28
|
+
/** One of the subcommands {@link GIT_PLUMBING_SUBCOMMANDS} allows. */
|
|
29
|
+
export type GitPlumbingSubcommand = (typeof GIT_PLUMBING_SUBCOMMANDS)[number];
|
|
30
|
+
/**
|
|
31
|
+
* The only variables a caller may set per call ({@link GitRunOptions.env}): the commit store's
|
|
32
|
+
* private index file, and the author and committer of the commit it writes. Anything else
|
|
33
|
+
* (`GIT_DIR`, `GIT_CONFIG_*`, `GIT_SSH_COMMAND`, `GIT_EXEC_PATH`, `PATH`) could point git somewhere
|
|
34
|
+
* else or make it run a program, so it is refused.
|
|
35
|
+
*/
|
|
36
|
+
export declare const GIT_CALL_ENV: readonly ["GIT_INDEX_FILE", "GIT_AUTHOR_NAME", "GIT_AUTHOR_EMAIL", "GIT_AUTHOR_DATE", "GIT_COMMITTER_NAME", "GIT_COMMITTER_EMAIL", "GIT_COMMITTER_DATE"];
|
|
37
|
+
/** One of the variables {@link GIT_CALL_ENV} allows. */
|
|
38
|
+
export type GitCallEnv = (typeof GIT_CALL_ENV)[number];
|
|
39
|
+
/** Per-call options of {@link GitCli.run}. */
|
|
40
|
+
export interface GitRunOptions {
|
|
41
|
+
/** Kills git after this long; 60 s when absent. */
|
|
42
|
+
readonly timeoutMs?: number;
|
|
43
|
+
/** Written to the child's stdin, then stdin is closed. */
|
|
44
|
+
readonly input?: string | Uint8Array;
|
|
45
|
+
/** Refused (git-failed, before spawning) when a key is not in GIT_CALL_ENV. */
|
|
46
|
+
readonly env?: Partial<Record<GitCallEnv, string>>;
|
|
47
|
+
/** Buffered-output ceiling for this call; defaults to today's 16 MiB. */
|
|
48
|
+
readonly maxBuffer?: number;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* How a git process is actually spawned. It resolves, never rejects, on a non-zero exit. It rejects
|
|
52
|
+
* only when git was never run or was killed:
|
|
53
|
+
* - The executable could not be spawned (`ENOENT`/`EACCES`). {@link findGit} treats that as "this
|
|
54
|
+
* candidate is not usable", and {@link GitCli.run} maps it to `git-not-found`.
|
|
55
|
+
* - The timeout killed git.
|
|
56
|
+
* - git's output passed `maxBuffer` (`ERR_CHILD_PROCESS_STDIO_MAXBUFFER`).
|
|
57
|
+
*
|
|
58
|
+
* When `input` is present, it is written to stdin and stdin is closed. `encoding: 'buffer'` asks
|
|
59
|
+
* for stdout as raw bytes, because a blob need not be UTF-8. stderr is always text, because the
|
|
60
|
+
* error mapping reads it. A fake runner may answer stdout in either shape; `GitCli.run` converts it.
|
|
61
|
+
*/
|
|
62
|
+
export type Runner = (file: string, args: readonly string[], options: {
|
|
63
|
+
cwd?: string;
|
|
64
|
+
env: NodeJS.ProcessEnv;
|
|
65
|
+
timeoutMs: number;
|
|
66
|
+
input?: string | Uint8Array;
|
|
67
|
+
encoding: 'utf8' | 'buffer';
|
|
68
|
+
maxBuffer: number;
|
|
69
|
+
}) => Promise<{
|
|
70
|
+
stdout: string | Buffer;
|
|
71
|
+
stderr: string;
|
|
72
|
+
exitCode: number;
|
|
73
|
+
}>;
|
|
74
|
+
/** A located, usable git executable. */
|
|
75
|
+
export interface GitLocation {
|
|
76
|
+
readonly path: string;
|
|
77
|
+
readonly version: string;
|
|
78
|
+
}
|
|
79
|
+
/** Parses `git version 2.39.2 (Apple Git-143)` (or `... 2.42.0.windows.1`) → the version string. */
|
|
80
|
+
export declare function parseGitVersion(stdout: string): string | undefined;
|
|
81
|
+
/**
|
|
82
|
+
* Finds a usable system git: the configured path first, then every `PATH` entry, then a
|
|
83
|
+
* platform default. The first candidate whose `--version` probe exits 0 with a parsable,
|
|
84
|
+
* sufficiently recent version wins; every other outcome (spawn failure, non-zero exit, unparsable
|
|
85
|
+
* output, too old) just skips to the next candidate.
|
|
86
|
+
*/
|
|
87
|
+
export declare function findGit(options: {
|
|
88
|
+
configuredPath?: string;
|
|
89
|
+
env?: NodeJS.ProcessEnv;
|
|
90
|
+
platform?: NodeJS.Platform;
|
|
91
|
+
exists?: (path: string) => boolean;
|
|
92
|
+
run?: Runner;
|
|
93
|
+
}): Promise<GitLocation | undefined>;
|
|
94
|
+
/**
|
|
95
|
+
* Refuses anything that is not a literal `https://`, `ssh://` or `file://` URL (scheme
|
|
96
|
+
* case-insensitive) or a `user@host:path` remote, trims and returns the accepted value
|
|
97
|
+
* otherwise. In particular refuses: an empty string; whitespace or control characters anywhere
|
|
98
|
+
* in the trimmed value; a value starting with `-` (which `git` — or a shell a transport helper
|
|
99
|
+
* invokes — would parse as a flag); `ext::…` (git's "run an arbitrary command" transport); a
|
|
100
|
+
* scheme-only form with no `//` (`https:x`, `file:/etc/r`, `ssh:-oProxyCommand=…`); and —
|
|
101
|
+
* crucially — a *user or host* starting with `-` once fully parsed out of the authority
|
|
102
|
+
* (`user@host[:port]`, `[bracketed-IPv6-host]`, `%`-decoded) and off the scp-like form's
|
|
103
|
+
* `user@host:`, closing bypasses a leading-`-` check on the whole string alone would miss:
|
|
104
|
+
* `ssh://git@-oProxyCommand=x/y`, `ssh://[-oProxyCommand=x]/y`, `ssh://%2doProxyCommand=x/y`
|
|
105
|
+
* (git percent-decodes the host), `https://user@-host/y`. A malformed `%` sequence in the user
|
|
106
|
+
* or host is refused outright rather than passed through undecoded.
|
|
107
|
+
*
|
|
108
|
+
* The error `details` carry only the scheme (or `'scp-like'`) — never the URL, which may embed
|
|
109
|
+
* credentials — and the message stays generic for the same reason.
|
|
110
|
+
*/
|
|
111
|
+
export declare function assertRemoteUrl(url: string): string;
|
|
112
|
+
/**
|
|
113
|
+
* Refuses a branch name that could be read as a flag by `git` (a leading `-`) or that git itself
|
|
114
|
+
* would refuse as a ref name, and returns it otherwise. In particular refuses: empty; a leading
|
|
115
|
+
* `-`; whitespace or control characters; `~^:?*[` or a backslash anywhere; `..` or `@{` anywhere
|
|
116
|
+
* (git's own ref-name restrictions); a leading, trailing, or doubled `/`; a trailing `.lock` or
|
|
117
|
+
* `.`; any `/`-separated component starting with `.`; and the bare name `@`.
|
|
118
|
+
*
|
|
119
|
+
* Every `GitBackend` method that builds a git argument or ref expression from a (renderer-
|
|
120
|
+
* settable) branch name calls this first — see git-backend.ts.
|
|
121
|
+
*/
|
|
122
|
+
export declare function assertBranchName(name: string): string;
|
|
123
|
+
/**
|
|
124
|
+
* Runs the system git found by {@link findGit}, with every hardening constraint the plan
|
|
125
|
+
* requires: no shell, no prompt, no hooks, a fixed subcommand allow-list, and error `details`
|
|
126
|
+
* that never carry the environment or a credential-bearing URL.
|
|
127
|
+
*/
|
|
128
|
+
export declare class GitCli {
|
|
129
|
+
readonly version: string;
|
|
130
|
+
private readonly path;
|
|
131
|
+
private readonly hooksDir;
|
|
132
|
+
private readonly runner;
|
|
133
|
+
private readonly extraEnv;
|
|
134
|
+
/** Whether {@link GIT_PLUMBING_SUBCOMMANDS} are allowed as well: only for the server's commit store. */
|
|
135
|
+
private readonly plumbing;
|
|
136
|
+
/**
|
|
137
|
+
* Memoised `git config --get core.sshCommand` lookups, one per distinct `cwd` a caller has
|
|
138
|
+
* `run()` with (the `cwd`-less key included) — a repository-local `core.sshCommand` only
|
|
139
|
+
* applies inside that repository, and a cwd-less run must never pick up a *different*
|
|
140
|
+
* repository's local config. `undefined` (the resolved value) covers "unset" too.
|
|
141
|
+
*/
|
|
142
|
+
private readonly sshCommandConfigByCwd;
|
|
143
|
+
constructor(location: GitLocation, options: {
|
|
144
|
+
hooksDir: string;
|
|
145
|
+
run?: Runner;
|
|
146
|
+
env?: NodeJS.ProcessEnv;
|
|
147
|
+
plumbing?: boolean;
|
|
148
|
+
});
|
|
149
|
+
/**
|
|
150
|
+
* A copy with the same location, hooks dir, runner and env that also accepts
|
|
151
|
+
* {@link GIT_PLUMBING_SUBCOMMANDS}. The server's commit store calls this on `ctx.git`. The desktop
|
|
152
|
+
* never does, because it never runs git for a server share (server-sync spec §3.3, §6). The copy
|
|
153
|
+
* shares nothing mutable with the original, only the `core.sshCommand` lookups it repeats.
|
|
154
|
+
*/
|
|
155
|
+
withPlumbing(): GitCli;
|
|
156
|
+
/** Whether `subcommand` is on this instance's allow-list(s). */
|
|
157
|
+
private allows;
|
|
158
|
+
/**
|
|
159
|
+
* Reads `core.sshCommand` for `cwd` once (cached per `cwd`, including a cached "unset"), via
|
|
160
|
+
* the same runner every other invocation uses. Exit code 1 (and any other failure) means
|
|
161
|
+
* unset.
|
|
162
|
+
*/
|
|
163
|
+
private queryCoreSshCommand;
|
|
164
|
+
/**
|
|
165
|
+
* Runs `git <args>` in `cwd` behind the fixed `-c` prefix (with `core.hooksPath` pointing at an empty
|
|
166
|
+
* directory, so no hook ever runs) and the hardened environment.
|
|
167
|
+
*
|
|
168
|
+
* `options.stdout: 'buffer'` returns stdout as raw bytes. Otherwise it is decoded as UTF-8.
|
|
169
|
+
*
|
|
170
|
+
* @throws WirebenchError
|
|
171
|
+
* - `git-failed`, which covers:
|
|
172
|
+
* - an off-list subcommand, or an `env` key outside {@link GIT_CALL_ENV}, both refused before
|
|
173
|
+
* anything spawns;
|
|
174
|
+
* - a non-zero exit;
|
|
175
|
+
* - a timeout (`details.timedOut`);
|
|
176
|
+
* - output over `maxBuffer` (`details.outputTooLarge`).
|
|
177
|
+
* - `git-auth-failed` and `git-offline`, read from stderr.
|
|
178
|
+
* - `git-not-found`.
|
|
179
|
+
*/
|
|
180
|
+
run(cwd: string | undefined, args: readonly string[], options: GitRunOptions & {
|
|
181
|
+
readonly stdout: 'buffer';
|
|
182
|
+
}): Promise<{
|
|
183
|
+
stdout: Buffer;
|
|
184
|
+
stderr: string;
|
|
185
|
+
}>;
|
|
186
|
+
run(cwd: string | undefined, args: readonly string[], options?: GitRunOptions & {
|
|
187
|
+
readonly stdout?: 'utf8';
|
|
188
|
+
}): Promise<{
|
|
189
|
+
stdout: string;
|
|
190
|
+
stderr: string;
|
|
191
|
+
}>;
|
|
192
|
+
}
|
|
193
|
+
/** The keys of `names` (git config key names) off the local-config allow-list, compared case-insensitively. */
|
|
194
|
+
export declare function refusedLocalConfigKeys(names: readonly string[]): string[];
|
|
195
|
+
/**
|
|
196
|
+
* Refuses a repository whose `.git/config` sets any key off the allow-list (see
|
|
197
|
+
* {@link refusedLocalConfigKeys}), or a `remote.*.url` value {@link assertRemoteUrl} refuses, with
|
|
198
|
+
* `git-config-refused` and `details.keys` naming the keys (never a URL). A folder that is not a
|
|
199
|
+
* repository is `git-not-a-repository`. Run before any other git command in a repository the app
|
|
200
|
+
* did not `clone` or `init` itself.
|
|
201
|
+
*/
|
|
202
|
+
export declare function assertSafeLocalConfig(git: GitCli, cwd: string): Promise<void>;
|