@wirebench/engine 2.1.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/LICENSE +201 -0
- package/README.md +3 -0
- package/dist/assert/contract.d.ts +3 -0
- package/dist/assert/contract.js +17 -0
- package/dist/assert/index.d.ts +4 -0
- package/dist/assert/index.js +27 -0
- package/dist/assert/match.d.ts +3 -0
- package/dist/assert/match.js +58 -0
- package/dist/assert/model.d.ts +73 -0
- package/dist/assert/model.js +8 -0
- package/dist/assert/schema.d.ts +34 -0
- package/dist/assert/schema.js +46 -0
- package/dist/assert/sla.d.ts +3 -0
- package/dist/assert/sla.js +8 -0
- package/dist/assert/soap-fault.d.ts +3 -0
- package/dist/assert/soap-fault.js +20 -0
- package/dist/assert/status.d.ts +3 -0
- package/dist/assert/status.js +14 -0
- package/dist/errors.d.ts +77 -0
- package/dist/errors.js +121 -0
- package/dist/fs.d.ts +35 -0
- package/dist/fs.js +64 -0
- package/dist/generate.d.ts +12 -0
- package/dist/generate.js +14 -0
- package/dist/grpc/browser.d.ts +11 -0
- package/dist/grpc/browser.js +9 -0
- package/dist/grpc/cache.d.ts +113 -0
- package/dist/grpc/cache.js +244 -0
- package/dist/grpc/call.d.ts +64 -0
- package/dist/grpc/call.js +72 -0
- package/dist/grpc/codec.d.ts +29 -0
- package/dist/grpc/codec.js +416 -0
- package/dist/grpc/command.d.ts +23 -0
- package/dist/grpc/command.js +91 -0
- package/dist/grpc/expand.d.ts +25 -0
- package/dist/grpc/expand.js +52 -0
- package/dist/grpc/framing.d.ts +28 -0
- package/dist/grpc/framing.js +61 -0
- package/dist/grpc/import.d.ts +47 -0
- package/dist/grpc/import.js +88 -0
- package/dist/grpc/model.d.ts +179 -0
- package/dist/grpc/model.js +91 -0
- package/dist/grpc/proto/describe.d.ts +92 -0
- package/dist/grpc/proto/describe.js +205 -0
- package/dist/grpc/proto/load.d.ts +35 -0
- package/dist/grpc/proto/load.js +112 -0
- package/dist/grpc/proto/sample.d.ts +21 -0
- package/dist/grpc/proto/sample.js +79 -0
- package/dist/grpc/proto/well-known.d.ts +42 -0
- package/dist/grpc/proto/well-known.js +143 -0
- package/dist/grpc/reconcile.d.ts +42 -0
- package/dist/grpc/reconcile.js +153 -0
- package/dist/grpc/reflection/client.d.ts +70 -0
- package/dist/grpc/reflection/client.js +197 -0
- package/dist/grpc/reflection/descriptors.d.ts +69 -0
- package/dist/grpc/reflection/descriptors.js +140 -0
- package/dist/grpc/reflection/proto.d.ts +33 -0
- package/dist/grpc/reflection/proto.js +144 -0
- package/dist/grpc/send.d.ts +132 -0
- package/dist/grpc/send.js +435 -0
- package/dist/grpc/shape.d.ts +29 -0
- package/dist/grpc/shape.js +36 -0
- package/dist/grpc/status.d.ts +21 -0
- package/dist/grpc/status.js +62 -0
- package/dist/grpc/target.d.ts +21 -0
- package/dist/grpc/target.js +66 -0
- package/dist/http/auth/apply.d.ts +37 -0
- package/dist/http/auth/apply.js +74 -0
- package/dist/http/auth/basic.d.ts +36 -0
- package/dist/http/auth/basic.js +69 -0
- package/dist/http/auth/md4.d.ts +13 -0
- package/dist/http/auth/md4.js +81 -0
- package/dist/http/auth/ntlm-transport.d.ts +61 -0
- package/dist/http/auth/ntlm-transport.js +97 -0
- package/dist/http/auth/ntlm.d.ts +190 -0
- package/dist/http/auth/ntlm.js +377 -0
- package/dist/http/client.d.ts +73 -0
- package/dist/http/client.js +403 -0
- package/dist/http/curl-flags.d.ts +15 -0
- package/dist/http/curl-flags.js +95 -0
- package/dist/http/curl.d.ts +94 -0
- package/dist/http/curl.js +245 -0
- package/dist/http/decompress.d.ts +7 -0
- package/dist/http/decompress.js +22 -0
- package/dist/http/errors.d.ts +22 -0
- package/dist/http/errors.js +144 -0
- package/dist/http/failed-request.d.ts +27 -0
- package/dist/http/failed-request.js +48 -0
- package/dist/http/headers.d.ts +15 -0
- package/dist/http/headers.js +50 -0
- package/dist/http/heredoc.d.ts +25 -0
- package/dist/http/heredoc.js +74 -0
- package/dist/http/proxy.d.ts +103 -0
- package/dist/http/proxy.js +168 -0
- package/dist/http/raw-capture.d.ts +23 -0
- package/dist/http/raw-capture.js +57 -0
- package/dist/http/timings.d.ts +79 -0
- package/dist/http/timings.js +212 -0
- package/dist/http/tls.d.ts +111 -0
- package/dist/http/tls.js +167 -0
- package/dist/http/types.d.ts +125 -0
- package/dist/http/types.js +6 -0
- package/dist/import-detect.d.ts +26 -0
- package/dist/import-detect.js +169 -0
- package/dist/import.d.ts +20 -0
- package/dist/import.js +163 -0
- package/dist/index.d.ts +272 -0
- package/dist/index.js +157 -0
- package/dist/json/cursor.d.ts +43 -0
- package/dist/json/cursor.js +168 -0
- package/dist/operations.d.ts +12 -0
- package/dist/operations.js +52 -0
- package/dist/project/attachments-cache.d.ts +80 -0
- package/dist/project/attachments-cache.js +186 -0
- package/dist/project/endpoints.d.ts +23 -0
- package/dist/project/endpoints.js +47 -0
- package/dist/project/environments.d.ts +68 -0
- package/dist/project/environments.js +124 -0
- package/dist/project/fs.d.ts +45 -0
- package/dist/project/fs.js +78 -0
- package/dist/project/history.d.ts +171 -0
- package/dist/project/history.js +179 -0
- package/dist/project/keystores.d.ts +24 -0
- package/dist/project/keystores.js +66 -0
- package/dist/project/load.d.ts +44 -0
- package/dist/project/load.js +634 -0
- package/dist/project/migrate.d.ts +27 -0
- package/dist/project/migrate.js +46 -0
- package/dist/project/model.d.ts +401 -0
- package/dist/project/model.js +126 -0
- package/dist/project/paths.d.ts +134 -0
- package/dist/project/paths.js +259 -0
- package/dist/project/preferences.d.ts +318 -0
- package/dist/project/preferences.js +239 -0
- package/dist/project/properties.d.ts +97 -0
- package/dist/project/properties.js +356 -0
- package/dist/project/save.d.ts +65 -0
- package/dist/project/save.js +295 -0
- package/dist/project/schema.d.ts +1329 -0
- package/dist/project/schema.js +737 -0
- package/dist/project/serialize.d.ts +42 -0
- package/dist/project/serialize.js +385 -0
- package/dist/project/wss-configs.d.ts +40 -0
- package/dist/project/wss-configs.js +142 -0
- package/dist/project/yaml.d.ts +17 -0
- package/dist/project/yaml.js +39 -0
- package/dist/redact/index.d.ts +77 -0
- package/dist/redact/index.js +328 -0
- package/dist/redact/literal.d.ts +12 -0
- package/dist/redact/literal.js +68 -0
- package/dist/rest/auth.d.ts +53 -0
- package/dist/rest/auth.js +80 -0
- package/dist/rest/body.d.ts +61 -0
- package/dist/rest/body.js +184 -0
- package/dist/rest/browser.d.ts +12 -0
- package/dist/rest/browser.js +11 -0
- package/dist/rest/cookies.d.ts +41 -0
- package/dist/rest/cookies.js +102 -0
- package/dist/rest/curl.d.ts +75 -0
- package/dist/rest/curl.js +417 -0
- package/dist/rest/expand.d.ts +35 -0
- package/dist/rest/expand.js +104 -0
- package/dist/rest/model.d.ts +247 -0
- package/dist/rest/model.js +118 -0
- package/dist/rest/oauth2.d.ts +118 -0
- package/dist/rest/oauth2.js +212 -0
- package/dist/rest/openapi/cache.d.ts +54 -0
- package/dist/rest/openapi/cache.js +128 -0
- package/dist/rest/openapi/import.d.ts +67 -0
- package/dist/rest/openapi/import.js +91 -0
- package/dist/rest/openapi/map.d.ts +102 -0
- package/dist/rest/openapi/map.js +477 -0
- package/dist/rest/openapi/model.d.ts +203 -0
- package/dist/rest/openapi/model.js +37 -0
- package/dist/rest/openapi/parse.d.ts +44 -0
- package/dist/rest/openapi/parse.js +1530 -0
- package/dist/rest/openapi/refs.d.ts +63 -0
- package/dist/rest/openapi/refs.js +258 -0
- package/dist/rest/openapi/sample.d.ts +68 -0
- package/dist/rest/openapi/sample.js +336 -0
- package/dist/rest/postman/import.d.ts +21 -0
- package/dist/rest/postman/import.js +47 -0
- package/dist/rest/postman/index.d.ts +7 -0
- package/dist/rest/postman/index.js +7 -0
- package/dist/rest/postman/map.d.ts +28 -0
- package/dist/rest/postman/map.js +427 -0
- package/dist/rest/postman/model.d.ts +118 -0
- package/dist/rest/postman/model.js +7 -0
- package/dist/rest/postman/parse.d.ts +29 -0
- package/dist/rest/postman/parse.js +518 -0
- package/dist/rest/response.d.ts +72 -0
- package/dist/rest/response.js +221 -0
- package/dist/rest/send.d.ts +102 -0
- package/dist/rest/send.js +148 -0
- package/dist/rest/url.d.ts +92 -0
- package/dist/rest/url.js +213 -0
- package/dist/run/effective-auth.d.ts +10 -0
- package/dist/run/effective-auth.js +19 -0
- package/dist/run/index.d.ts +8 -0
- package/dist/run/index.js +4 -0
- package/dist/run/prepare.d.ts +43 -0
- package/dist/run/prepare.js +280 -0
- package/dist/run/run.d.ts +53 -0
- package/dist/run/run.js +223 -0
- package/dist/run/secret-needs.d.ts +13 -0
- package/dist/run/secret-needs.js +125 -0
- package/dist/run/select.d.ts +34 -0
- package/dist/run/select.js +76 -0
- package/dist/secrets/env-names.d.ts +27 -0
- package/dist/secrets/env-names.js +40 -0
- package/dist/secrets/resolve.d.ts +58 -0
- package/dist/secrets/resolve.js +136 -0
- package/dist/send-options.d.ts +141 -0
- package/dist/send-options.js +228 -0
- package/dist/send.d.ts +53 -0
- package/dist/send.js +210 -0
- package/dist/soap/body-builder.d.ts +38 -0
- package/dist/soap/body-builder.js +250 -0
- package/dist/soap/build-problems.d.ts +12 -0
- package/dist/soap/build-problems.js +2 -0
- package/dist/soap/charset.d.ts +23 -0
- package/dist/soap/charset.js +47 -0
- package/dist/soap/envelope.d.ts +44 -0
- package/dist/soap/envelope.js +76 -0
- package/dist/soap/fault.d.ts +46 -0
- package/dist/soap/fault.js +129 -0
- package/dist/soap/form-request.d.ts +34 -0
- package/dist/soap/form-request.js +251 -0
- package/dist/soap/legacy-project/definition-fetcher.d.ts +21 -0
- package/dist/soap/legacy-project/definition-fetcher.js +43 -0
- package/dist/soap/legacy-project/format.d.ts +18 -0
- package/dist/soap/legacy-project/format.js +24 -0
- package/dist/soap/legacy-project/import.d.ts +21 -0
- package/dist/soap/legacy-project/import.js +46 -0
- package/dist/soap/legacy-project/index.d.ts +9 -0
- package/dist/soap/legacy-project/index.js +5 -0
- package/dist/soap/legacy-project/map.d.ts +91 -0
- package/dist/soap/legacy-project/map.js +290 -0
- package/dist/soap/legacy-project/model.d.ts +98 -0
- package/dist/soap/legacy-project/model.js +5 -0
- package/dist/soap/legacy-project/parse.d.ts +16 -0
- package/dist/soap/legacy-project/parse.js +325 -0
- package/dist/soap/mime/cid-scan.d.ts +36 -0
- package/dist/soap/mime/cid-scan.js +52 -0
- package/dist/soap/mime/inline-files.d.ts +39 -0
- package/dist/soap/mime/inline-files.js +71 -0
- package/dist/soap/mime/mtom.d.ts +74 -0
- package/dist/soap/mime/mtom.js +134 -0
- package/dist/soap/mime/multipart.d.ts +66 -0
- package/dist/soap/mime/multipart.js +329 -0
- package/dist/soap/mime/send-pipeline.d.ts +61 -0
- package/dist/soap/mime/send-pipeline.js +145 -0
- package/dist/soap/mime/swa.d.ts +45 -0
- package/dist/soap/mime/swa.js +62 -0
- package/dist/soap/mime/types.d.ts +69 -0
- package/dist/soap/mime/types.js +10 -0
- package/dist/soap/namespace-scope.d.ts +32 -0
- package/dist/soap/namespace-scope.js +85 -0
- package/dist/soap/prefixes.d.ts +24 -0
- package/dist/soap/prefixes.js +70 -0
- package/dist/soap/recreate.d.ts +28 -0
- package/dist/soap/recreate.js +168 -0
- package/dist/soap/request-builder.d.ts +63 -0
- package/dist/soap/request-builder.js +161 -0
- package/dist/soap/response-parser.d.ts +29 -0
- package/dist/soap/response-parser.js +71 -0
- package/dist/soap/soap-action.d.ts +31 -0
- package/dist/soap/soap-action.js +28 -0
- package/dist/soap/transforms.d.ts +52 -0
- package/dist/soap/transforms.js +164 -0
- package/dist/types.d.ts +307 -0
- package/dist/types.js +6 -0
- package/dist/validate/index.d.ts +61 -0
- package/dist/validate/index.js +72 -0
- package/dist/validate/schema-file-set.d.ts +51 -0
- package/dist/validate/schema-file-set.js +288 -0
- package/dist/validate/schema-validator.d.ts +53 -0
- package/dist/validate/schema-validator.js +251 -0
- package/dist/validate/soap-structure.d.ts +34 -0
- package/dist/validate/soap-structure.js +255 -0
- package/dist/validate/types.d.ts +47 -0
- package/dist/validate/types.js +8 -0
- package/dist/validate/wsi/assertions/helpers.d.ts +145 -0
- package/dist/validate/wsi/assertions/helpers.js +387 -0
- package/dist/validate/wsi/assertions/index.d.ts +44 -0
- package/dist/validate/wsi/assertions/index.js +77 -0
- package/dist/validate/wsi/assertions/message/helpers.d.ts +63 -0
- package/dist/validate/wsi/assertions/message/helpers.js +168 -0
- package/dist/validate/wsi/assertions/message/index.d.ts +39 -0
- package/dist/validate/wsi/assertions/message/index.js +62 -0
- package/dist/validate/wsi/assertions/message/r1001.d.ts +10 -0
- package/dist/validate/wsi/assertions/message/r1001.js +38 -0
- package/dist/validate/wsi/assertions/message/r1003.d.ts +14 -0
- package/dist/validate/wsi/assertions/message/r1003.js +45 -0
- package/dist/validate/wsi/assertions/message/r1005.d.ts +12 -0
- package/dist/validate/wsi/assertions/message/r1005.js +37 -0
- package/dist/validate/wsi/assertions/message/r1006.d.ts +10 -0
- package/dist/validate/wsi/assertions/message/r1006.js +49 -0
- package/dist/validate/wsi/assertions/message/r1007.d.ts +10 -0
- package/dist/validate/wsi/assertions/message/r1007.js +30 -0
- package/dist/validate/wsi/assertions/message/r1011.d.ts +10 -0
- package/dist/validate/wsi/assertions/message/r1011.js +33 -0
- package/dist/validate/wsi/assertions/message/r1012.d.ts +13 -0
- package/dist/validate/wsi/assertions/message/r1012.js +37 -0
- package/dist/validate/wsi/assertions/message/r1013.d.ts +9 -0
- package/dist/validate/wsi/assertions/message/r1013.js +42 -0
- package/dist/validate/wsi/assertions/message/r1014.d.ts +10 -0
- package/dist/validate/wsi/assertions/message/r1014.js +30 -0
- package/dist/validate/wsi/assertions/message/r1015.d.ts +12 -0
- package/dist/validate/wsi/assertions/message/r1015.js +36 -0
- package/dist/validate/wsi/assertions/message/r1017.d.ts +10 -0
- package/dist/validate/wsi/assertions/message/r1017.js +30 -0
- package/dist/validate/wsi/assertions/message/r1100.d.ts +10 -0
- package/dist/validate/wsi/assertions/message/r1100.js +39 -0
- package/dist/validate/wsi/assertions/message/r1101.d.ts +10 -0
- package/dist/validate/wsi/assertions/message/r1101.js +37 -0
- package/dist/validate/wsi/assertions/message/r1102.d.ts +10 -0
- package/dist/validate/wsi/assertions/message/r1102.js +41 -0
- package/dist/validate/wsi/assertions/message/r1103.d.ts +10 -0
- package/dist/validate/wsi/assertions/message/r1103.js +28 -0
- package/dist/validate/wsi/assertions/message/r1107.d.ts +10 -0
- package/dist/validate/wsi/assertions/message/r1107.js +38 -0
- package/dist/validate/wsi/assertions/message/r1109.d.ts +10 -0
- package/dist/validate/wsi/assertions/message/r1109.js +32 -0
- package/dist/validate/wsi/assertions/message/r1124.d.ts +10 -0
- package/dist/validate/wsi/assertions/message/r1124.js +31 -0
- package/dist/validate/wsi/assertions/message/r1132.d.ts +9 -0
- package/dist/validate/wsi/assertions/message/r1132.js +23 -0
- package/dist/validate/wsi/assertions/message/r1140.d.ts +10 -0
- package/dist/validate/wsi/assertions/message/r1140.js +42 -0
- package/dist/validate/wsi/assertions/message/r1141.d.ts +10 -0
- package/dist/validate/wsi/assertions/message/r1141.js +32 -0
- package/dist/validate/wsi/assertions/message/r2113.d.ts +11 -0
- package/dist/validate/wsi/assertions/message/r2113.js +33 -0
- package/dist/validate/wsi/assertions/message/r2211.d.ts +7 -0
- package/dist/validate/wsi/assertions/message/r2211.js +42 -0
- package/dist/validate/wsi/assertions/r2001.d.ts +15 -0
- package/dist/validate/wsi/assertions/r2001.js +47 -0
- package/dist/validate/wsi/assertions/r2002.d.ts +11 -0
- package/dist/validate/wsi/assertions/r2002.js +38 -0
- package/dist/validate/wsi/assertions/r2003.d.ts +7 -0
- package/dist/validate/wsi/assertions/r2003.js +32 -0
- package/dist/validate/wsi/assertions/r2005.d.ts +7 -0
- package/dist/validate/wsi/assertions/r2005.js +40 -0
- package/dist/validate/wsi/assertions/r2101.d.ts +14 -0
- package/dist/validate/wsi/assertions/r2101.js +65 -0
- package/dist/validate/wsi/assertions/r2102.d.ts +10 -0
- package/dist/validate/wsi/assertions/r2102.js +41 -0
- package/dist/validate/wsi/assertions/r2105.d.ts +8 -0
- package/dist/validate/wsi/assertions/r2105.js +39 -0
- package/dist/validate/wsi/assertions/r2110.d.ts +8 -0
- package/dist/validate/wsi/assertions/r2110.js +38 -0
- package/dist/validate/wsi/assertions/r2111.d.ts +6 -0
- package/dist/validate/wsi/assertions/r2111.js +30 -0
- package/dist/validate/wsi/assertions/r2112.d.ts +7 -0
- package/dist/validate/wsi/assertions/r2112.js +35 -0
- package/dist/validate/wsi/assertions/r2201.d.ts +7 -0
- package/dist/validate/wsi/assertions/r2201.js +28 -0
- package/dist/validate/wsi/assertions/r2203.d.ts +7 -0
- package/dist/validate/wsi/assertions/r2203.js +30 -0
- package/dist/validate/wsi/assertions/r2204.d.ts +6 -0
- package/dist/validate/wsi/assertions/r2204.js +29 -0
- package/dist/validate/wsi/assertions/r2205.d.ts +8 -0
- package/dist/validate/wsi/assertions/r2205.js +46 -0
- package/dist/validate/wsi/assertions/r2206.d.ts +7 -0
- package/dist/validate/wsi/assertions/r2206.js +36 -0
- package/dist/validate/wsi/assertions/r2209.d.ts +12 -0
- package/dist/validate/wsi/assertions/r2209.js +37 -0
- package/dist/validate/wsi/assertions/r2210.d.ts +7 -0
- package/dist/validate/wsi/assertions/r2210.js +30 -0
- package/dist/validate/wsi/assertions/r2303.d.ts +7 -0
- package/dist/validate/wsi/assertions/r2303.js +44 -0
- package/dist/validate/wsi/assertions/r2304.d.ts +6 -0
- package/dist/validate/wsi/assertions/r2304.js +32 -0
- package/dist/validate/wsi/assertions/r2401.d.ts +12 -0
- package/dist/validate/wsi/assertions/r2401.js +31 -0
- package/dist/validate/wsi/assertions/r2701.d.ts +7 -0
- package/dist/validate/wsi/assertions/r2701.js +28 -0
- package/dist/validate/wsi/assertions/r2702.d.ts +6 -0
- package/dist/validate/wsi/assertions/r2702.js +26 -0
- package/dist/validate/wsi/assertions/r2705.d.ts +11 -0
- package/dist/validate/wsi/assertions/r2705.js +31 -0
- package/dist/validate/wsi/assertions/r2706.d.ts +7 -0
- package/dist/validate/wsi/assertions/r2706.js +29 -0
- package/dist/validate/wsi/assertions/r2710.d.ts +13 -0
- package/dist/validate/wsi/assertions/r2710.js +37 -0
- package/dist/validate/wsi/assertions/r2716.d.ts +7 -0
- package/dist/validate/wsi/assertions/r2716.js +29 -0
- package/dist/validate/wsi/assertions/r2717.d.ts +9 -0
- package/dist/validate/wsi/assertions/r2717.js +31 -0
- package/dist/validate/wsi/assertions/r2718.d.ts +7 -0
- package/dist/validate/wsi/assertions/r2718.js +41 -0
- package/dist/validate/wsi/assertions/r2720.d.ts +7 -0
- package/dist/validate/wsi/assertions/r2720.js +29 -0
- package/dist/validate/wsi/assertions/r2721.d.ts +6 -0
- package/dist/validate/wsi/assertions/r2721.js +27 -0
- package/dist/validate/wsi/assertions/r2722.d.ts +6 -0
- package/dist/validate/wsi/assertions/r2722.js +29 -0
- package/dist/validate/wsi/assertions/r2801.d.ts +7 -0
- package/dist/validate/wsi/assertions/r2801.js +39 -0
- package/dist/validate/wsi/assertions/r2803.d.ts +7 -0
- package/dist/validate/wsi/assertions/r2803.js +29 -0
- package/dist/validate/wsi/docs.d.ts +29 -0
- package/dist/validate/wsi/docs.js +167 -0
- package/dist/validate/wsi/index.d.ts +16 -0
- package/dist/validate/wsi/index.js +11 -0
- package/dist/validate/wsi/report-html.d.ts +36 -0
- package/dist/validate/wsi/report-html.js +135 -0
- package/dist/validate/wsi/run-message.d.ts +50 -0
- package/dist/validate/wsi/run-message.js +190 -0
- package/dist/validate/wsi/run-wsdl.d.ts +48 -0
- package/dist/validate/wsi/run-wsdl.js +99 -0
- package/dist/validate/wsi/types.d.ts +173 -0
- package/dist/validate/wsi/types.js +17 -0
- package/dist/workspace/commit-message.d.ts +47 -0
- package/dist/workspace/commit-message.js +195 -0
- package/dist/workspace/environments.d.ts +79 -0
- package/dist/workspace/environments.js +115 -0
- package/dist/workspace/index.d.ts +28 -0
- package/dist/workspace/index.js +19 -0
- package/dist/workspace/load.d.ts +45 -0
- package/dist/workspace/load.js +155 -0
- package/dist/workspace/local-state.d.ts +37 -0
- package/dist/workspace/local-state.js +59 -0
- package/dist/workspace/migrate.d.ts +38 -0
- package/dist/workspace/migrate.js +50 -0
- package/dist/workspace/model.d.ts +86 -0
- package/dist/workspace/model.js +54 -0
- package/dist/workspace/paths.d.ts +64 -0
- package/dist/workspace/paths.js +97 -0
- package/dist/workspace/reidentify.d.ts +22 -0
- package/dist/workspace/reidentify.js +122 -0
- package/dist/workspace/save.d.ts +31 -0
- package/dist/workspace/save.js +84 -0
- package/dist/workspace/schema.d.ts +93 -0
- package/dist/workspace/schema.js +115 -0
- package/dist/workspace/serialize.d.ts +24 -0
- package/dist/workspace/serialize.js +60 -0
- package/dist/workspace/share.d.ts +52 -0
- package/dist/workspace/share.js +89 -0
- package/dist/ws/browser.d.ts +13 -0
- package/dist/ws/browser.js +11 -0
- package/dist/ws/call.d.ts +53 -0
- package/dist/ws/call.js +106 -0
- package/dist/ws/command.d.ts +19 -0
- package/dist/ws/command.js +28 -0
- package/dist/ws/expand.d.ts +38 -0
- package/dist/ws/expand.js +76 -0
- package/dist/ws/model.d.ts +191 -0
- package/dist/ws/model.js +83 -0
- package/dist/ws/pretty.d.ts +12 -0
- package/dist/ws/pretty.js +25 -0
- package/dist/ws/session.d.ts +50 -0
- package/dist/ws/session.js +333 -0
- package/dist/ws/shape.d.ts +18 -0
- package/dist/ws/shape.js +28 -0
- package/dist/ws/transcript.d.ts +14 -0
- package/dist/ws/transcript.js +29 -0
- package/dist/ws/url.d.ts +3 -0
- package/dist/ws/url.js +44 -0
- package/dist/wsa/headers.d.ts +78 -0
- package/dist/wsa/headers.js +244 -0
- package/dist/wsa/model.d.ts +66 -0
- package/dist/wsa/model.js +52 -0
- package/dist/wsa/policy-detect.d.ts +81 -0
- package/dist/wsa/policy-detect.js +245 -0
- package/dist/wsdl/cache-naming.d.ts +39 -0
- package/dist/wsdl/cache-naming.js +90 -0
- package/dist/wsdl/cache.d.ts +48 -0
- package/dist/wsdl/cache.js +141 -0
- package/dist/wsdl/docs-generator.d.ts +47 -0
- package/dist/wsdl/docs-generator.js +439 -0
- package/dist/wsdl/dom-utils.d.ts +15 -0
- package/dist/wsdl/dom-utils.js +50 -0
- package/dist/wsdl/export-definition.d.ts +38 -0
- package/dist/wsdl/export-definition.js +100 -0
- package/dist/wsdl/fetch.d.ts +13 -0
- package/dist/wsdl/fetch.js +60 -0
- package/dist/wsdl/merge.d.ts +17 -0
- package/dist/wsdl/merge.js +57 -0
- package/dist/wsdl/model.d.ts +176 -0
- package/dist/wsdl/model.js +17 -0
- package/dist/wsdl/parse-binding.d.ts +6 -0
- package/dist/wsdl/parse-binding.js +150 -0
- package/dist/wsdl/parse-wsdl.d.ts +47 -0
- package/dist/wsdl/parse-wsdl.js +161 -0
- package/dist/wsdl/qname.d.ts +28 -0
- package/dist/wsdl/qname.js +41 -0
- package/dist/wsdl/ref-policy.d.ts +54 -0
- package/dist/wsdl/ref-policy.js +87 -0
- package/dist/wsdl/resolver.d.ts +81 -0
- package/dist/wsdl/resolver.js +276 -0
- package/dist/wsdl/update-definition.d.ts +106 -0
- package/dist/wsdl/update-definition.js +314 -0
- package/dist/wss/apply.d.ts +40 -0
- package/dist/wss/apply.js +212 -0
- package/dist/wss/c14n-prefixes.d.ts +27 -0
- package/dist/wss/c14n-prefixes.js +95 -0
- package/dist/wss/incoming/decrypt.d.ts +35 -0
- package/dist/wss/incoming/decrypt.js +57 -0
- package/dist/wss/incoming/index.d.ts +56 -0
- package/dist/wss/incoming/index.js +189 -0
- package/dist/wss/incoming/verify.d.ts +74 -0
- package/dist/wss/incoming/verify.js +440 -0
- package/dist/wss/key-identifiers.d.ts +76 -0
- package/dist/wss/key-identifiers.js +139 -0
- package/dist/wss/keystore/certificate.d.ts +45 -0
- package/dist/wss/keystore/certificate.js +134 -0
- package/dist/wss/keystore/index.d.ts +50 -0
- package/dist/wss/keystore/index.js +80 -0
- package/dist/wss/keystore/model.d.ts +83 -0
- package/dist/wss/keystore/model.js +27 -0
- package/dist/wss/keystore/pem.d.ts +21 -0
- package/dist/wss/keystore/pem.js +140 -0
- package/dist/wss/keystore/pkcs12.d.ts +21 -0
- package/dist/wss/keystore/pkcs12.js +125 -0
- package/dist/wss/model.d.ts +160 -0
- package/dist/wss/model.js +37 -0
- package/dist/wss/outgoing/encryption.d.ts +76 -0
- package/dist/wss/outgoing/encryption.js +618 -0
- package/dist/wss/outgoing/signature.d.ts +73 -0
- package/dist/wss/outgoing/signature.js +239 -0
- package/dist/wss/outgoing/timestamp.d.ts +29 -0
- package/dist/wss/outgoing/timestamp.js +39 -0
- package/dist/wss/outgoing/username-token.d.ts +36 -0
- package/dist/wss/outgoing/username-token.js +68 -0
- package/dist/wss/security-header.d.ts +31 -0
- package/dist/wss/security-header.js +83 -0
- package/dist/xml/index.d.ts +7 -0
- package/dist/xml/index.js +7 -0
- package/dist/xml/namespaces.d.ts +36 -0
- package/dist/xml/namespaces.js +60 -0
- package/dist/xml/parse.d.ts +79 -0
- package/dist/xml/parse.js +109 -0
- package/dist/xml/positions.d.ts +26 -0
- package/dist/xml/positions.js +71 -0
- package/dist/xml/pretty.d.ts +37 -0
- package/dist/xml/pretty.js +137 -0
- package/dist/xml/serialize.d.ts +6 -0
- package/dist/xml/serialize.js +8 -0
- package/dist/xml/tolerant-tree.d.ts +56 -0
- package/dist/xml/tolerant-tree.js +134 -0
- package/dist/xpath/evaluate-async.d.ts +31 -0
- package/dist/xpath/evaluate-async.js +81 -0
- package/dist/xpath/evaluate.d.ts +98 -0
- package/dist/xpath/evaluate.js +340 -0
- package/dist/xpath/jsonpath.d.ts +40 -0
- package/dist/xpath/jsonpath.js +109 -0
- package/dist/xpath/namespaces.d.ts +29 -0
- package/dist/xpath/namespaces.js +101 -0
- package/dist/xpath/worker.d.ts +7 -0
- package/dist/xpath/worker.js +26 -0
- package/dist/xsd/builtins.d.ts +36 -0
- package/dist/xsd/builtins.js +108 -0
- package/dist/xsd/check-references.d.ts +25 -0
- package/dist/xsd/check-references.js +145 -0
- package/dist/xsd/form-edits.d.ts +57 -0
- package/dist/xsd/form-edits.js +153 -0
- package/dist/xsd/form-model.d.ts +153 -0
- package/dist/xsd/form-model.js +691 -0
- package/dist/xsd/locate.d.ts +42 -0
- package/dist/xsd/locate.js +249 -0
- package/dist/xsd/model.d.ts +249 -0
- package/dist/xsd/model.js +1 -0
- package/dist/xsd/parse-particles.d.ts +48 -0
- package/dist/xsd/parse-particles.js +320 -0
- package/dist/xsd/parse-schema.d.ts +21 -0
- package/dist/xsd/parse-schema.js +143 -0
- package/dist/xsd/resolve-content.d.ts +18 -0
- package/dist/xsd/resolve-content.js +242 -0
- package/dist/xsd/sample-generator.d.ts +51 -0
- package/dist/xsd/sample-generator.js +291 -0
- package/dist/xsd/sample-types.d.ts +21 -0
- package/dist/xsd/sample-types.js +69 -0
- package/dist/xsd/sample-values.d.ts +54 -0
- package/dist/xsd/sample-values.js +267 -0
- package/dist/xsd/schema-set.d.ts +51 -0
- package/dist/xsd/schema-set.js +203 -0
- package/dist/xsd/xml-scan.d.ts +64 -0
- package/dist/xsd/xml-scan.js +286 -0
- package/dist/xsd/xml-writer.d.ts +56 -0
- package/dist/xsd/xml-writer.js +103 -0
- package/package.json +69 -0
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
import { WsdlParseError } from '../errors.js';
|
|
2
|
+
import { NS } from '../xml/namespaces.js';
|
|
3
|
+
import { getPosition, parseXml } from '../xml/parse.js';
|
|
4
|
+
import { childElements, firstChildElement, optionalAttribute } from './dom-utils.js';
|
|
5
|
+
import { MAX_IMPORT_DEPTH, MAX_IMPORT_DOCUMENTS, referencePolicyFor } from './ref-policy.js';
|
|
6
|
+
/**
|
|
7
|
+
* Queues `ref`, resolved against `base` with the WHATWG `URL` class (which handles both
|
|
8
|
+
* `http(s):` and `file:`).
|
|
9
|
+
*
|
|
10
|
+
* A relative reference cannot be resolved against the pseudo-location of a pasted or dropped
|
|
11
|
+
* document (`inline:wsdl`, `dropped:service.wsdl`) — there is no directory to resolve it
|
|
12
|
+
* against — so that becomes an `unresolved-import` problem carrying the one action that fixes
|
|
13
|
+
* it, rather than an exception that loses the whole import.
|
|
14
|
+
*/
|
|
15
|
+
function queueRef(ref, base, importedBy, depth, queue, problems, chameleonNamespace) {
|
|
16
|
+
let requestedLocation;
|
|
17
|
+
try {
|
|
18
|
+
requestedLocation = new URL(ref, base).toString();
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
problems.push({
|
|
22
|
+
code: 'unresolved-import',
|
|
23
|
+
message: `Cannot resolve "${ref}" against "${base}". Use Browse… to import a WSDL whose imports live next to it`,
|
|
24
|
+
location: base,
|
|
25
|
+
});
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
queue.push({
|
|
29
|
+
requestedLocation,
|
|
30
|
+
importedBy,
|
|
31
|
+
depth,
|
|
32
|
+
...(chameleonNamespace !== undefined ? { chameleonNamespace } : {}),
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Builds a {@link BundledDocument} from a fetched document, determining its
|
|
37
|
+
* `kind` from the root element and, for an `xs:schema` root, its effective
|
|
38
|
+
* namespace (its own `targetNamespace`, or the chameleon namespace adopted
|
|
39
|
+
* from its includer).
|
|
40
|
+
*
|
|
41
|
+
* @throws {Error} if the root element is neither a WSDL `definitions` nor an XSD `schema` and `isRoot` is `false`
|
|
42
|
+
* (the caller turns this into a `not-xml` problem); a root with an unrecognized shape is tagged `kind: 'wsdl'`
|
|
43
|
+
* so downstream `parseWsdlDocument` raises its own `not-a-wsdl` error.
|
|
44
|
+
*/
|
|
45
|
+
function buildBundledDocument(fetched, requestedLocation, importedBy, chameleonNamespace, isRoot) {
|
|
46
|
+
const document = parseXml(fetched.text, { location: fetched.location });
|
|
47
|
+
const root = document.documentElement;
|
|
48
|
+
let kind;
|
|
49
|
+
let namespace;
|
|
50
|
+
let chameleonFor;
|
|
51
|
+
if (root !== null && root.namespaceURI === NS.WSDL && root.localName === 'definitions') {
|
|
52
|
+
kind = 'wsdl';
|
|
53
|
+
namespace = optionalAttribute(root, 'targetNamespace');
|
|
54
|
+
}
|
|
55
|
+
else if (root !== null && root.namespaceURI === NS.XSD && root.localName === 'schema') {
|
|
56
|
+
kind = 'xsd';
|
|
57
|
+
const ownNamespace = optionalAttribute(root, 'targetNamespace');
|
|
58
|
+
if (ownNamespace !== undefined) {
|
|
59
|
+
namespace = ownNamespace;
|
|
60
|
+
}
|
|
61
|
+
else if (chameleonNamespace !== undefined) {
|
|
62
|
+
namespace = chameleonNamespace;
|
|
63
|
+
chameleonFor = importedBy;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
else if (isRoot) {
|
|
67
|
+
// Leave shape validation of the root to parseWsdlDocument (via parseWsdl), which
|
|
68
|
+
// raises a proper 'not-a-wsdl' WsdlParseError with position details.
|
|
69
|
+
kind = 'wsdl';
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
throw new Error(`Document at "${fetched.location}" is neither a WSDL <definitions> nor an XSD <schema> root`);
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
location: fetched.location,
|
|
76
|
+
requestedLocation,
|
|
77
|
+
bytes: fetched.bytes,
|
|
78
|
+
text: fetched.text,
|
|
79
|
+
kind,
|
|
80
|
+
...(importedBy !== undefined ? { importedBy } : {}),
|
|
81
|
+
...(namespace !== undefined ? { namespace } : {}),
|
|
82
|
+
...(chameleonFor !== undefined ? { chameleonFor } : {}),
|
|
83
|
+
document,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/** Walks one `xs:schema` element's `xs:import`/`xs:include`/`xs:redefine` children, queuing referenced documents. */
|
|
87
|
+
function collectSchemaImports(schemaEl, baseLocation, importedBy, depth, queue, problems) {
|
|
88
|
+
const ownNamespace = optionalAttribute(schemaEl, 'targetNamespace');
|
|
89
|
+
for (const importEl of childElements(schemaEl, NS.XSD, 'import')) {
|
|
90
|
+
// A namespace-only xs:import (no schemaLocation) carries nothing to fetch: Task 7
|
|
91
|
+
// resolves types across the bundle by namespace instead.
|
|
92
|
+
const schemaLocation = optionalAttribute(importEl, 'schemaLocation');
|
|
93
|
+
if (schemaLocation === undefined) {
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
queueRef(schemaLocation, baseLocation, importedBy, depth, queue, problems);
|
|
97
|
+
}
|
|
98
|
+
for (const includeEl of childElements(schemaEl, NS.XSD, 'include')) {
|
|
99
|
+
const schemaLocation = optionalAttribute(includeEl, 'schemaLocation');
|
|
100
|
+
if (schemaLocation === undefined) {
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
queueRef(schemaLocation, baseLocation, importedBy, depth, queue, problems, ownNamespace);
|
|
104
|
+
}
|
|
105
|
+
for (const redefineEl of childElements(schemaEl, NS.XSD, 'redefine')) {
|
|
106
|
+
const schemaLocation = optionalAttribute(redefineEl, 'schemaLocation');
|
|
107
|
+
const pos = getPosition(redefineEl);
|
|
108
|
+
problems.push({
|
|
109
|
+
code: 'unsupported-redefine',
|
|
110
|
+
message: `xs:redefine is not supported${schemaLocation !== undefined ? ` (schemaLocation="${schemaLocation}")` : ''}`,
|
|
111
|
+
location: baseLocation,
|
|
112
|
+
...(pos !== undefined ? pos : {}),
|
|
113
|
+
});
|
|
114
|
+
if (schemaLocation !== undefined) {
|
|
115
|
+
// Still fetch the referenced document, treating the redefine as a plain include.
|
|
116
|
+
queueRef(schemaLocation, baseLocation, importedBy, depth, queue, problems, ownNamespace);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/** Walks a {@link BundledDocument}'s imports/includes/redefines, queuing every referenced document. */
|
|
121
|
+
function collectImports(doc, depth, queue, problems) {
|
|
122
|
+
const root = doc.document.documentElement;
|
|
123
|
+
if (root === null) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
if (doc.kind === 'wsdl') {
|
|
127
|
+
for (const importEl of childElements(root, NS.WSDL, 'import')) {
|
|
128
|
+
const location = optionalAttribute(importEl, 'location');
|
|
129
|
+
if (location === undefined) {
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
queueRef(location, doc.location, doc.location, depth, queue, problems);
|
|
133
|
+
}
|
|
134
|
+
const typesEl = firstChildElement(root, NS.WSDL, 'types');
|
|
135
|
+
if (typesEl !== undefined) {
|
|
136
|
+
for (const schemaEl of childElements(typesEl, NS.XSD, 'schema')) {
|
|
137
|
+
collectSchemaImports(schemaEl, doc.location, doc.location, depth, queue, problems);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
collectSchemaImports(root, doc.location, doc.location, depth, queue, problems);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
function abortError(signal) {
|
|
146
|
+
return signal.reason !== undefined ? signal.reason : new DOMException('Aborted', 'AbortError');
|
|
147
|
+
}
|
|
148
|
+
// Wrapped in a function (rather than inlining `signal?.aborted === true`) so TypeScript does not
|
|
149
|
+
// carry a `false` narrowing of the readonly `aborted` property across loop iterations/awaits.
|
|
150
|
+
function checkAborted(signal) {
|
|
151
|
+
if (signal !== undefined && signal.aborted) {
|
|
152
|
+
throw abortError(signal);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Resolves a WSDL/XSD document's full import graph (`wsdl:import`, `xs:import`,
|
|
157
|
+
* `xs:include`, `xs:redefine`) into a flat {@link DefinitionBundle}, fetching
|
|
158
|
+
* every referenced document exactly once (by canonical, post-redirect
|
|
159
|
+
* location) through the injected `fetchDocument`.
|
|
160
|
+
*
|
|
161
|
+
* Every nested reference is first judged against the root document's world (see
|
|
162
|
+
* `wsdl/ref-policy.ts`): a `file:` root may only reference `file:` documents inside its own
|
|
163
|
+
* folder, an `http(s):` root may only reference `http(s):` documents, and a pasted/dropped
|
|
164
|
+
* root may only reference `http(s):` documents. A refused reference becomes an
|
|
165
|
+
* `import-ref-refused` problem and the import continues with what did resolve — so a WSDL
|
|
166
|
+
* cannot be used to read arbitrary local files. The graph is additionally capped at
|
|
167
|
+
* {@link MAX_IMPORT_DEPTH} levels and {@link MAX_IMPORT_DOCUMENTS} documents (`import-limit`).
|
|
168
|
+
*
|
|
169
|
+
* A failed fetch of an imported/included document is recorded as a
|
|
170
|
+
* `fetch-failed` {@link ResolveProblem} and resolution continues with the
|
|
171
|
+
* rest of the graph; a failed fetch of the root document throws instead,
|
|
172
|
+
* since there is nothing to return without it.
|
|
173
|
+
*
|
|
174
|
+
* @throws {WsdlParseError} with code `fetch-failed` if the root document cannot be fetched
|
|
175
|
+
* @throws if `options.signal` is already aborted, or becomes aborted mid-resolution
|
|
176
|
+
*/
|
|
177
|
+
export async function resolveDefinition(source, options) {
|
|
178
|
+
const { fetchDocument, signal } = options;
|
|
179
|
+
checkAborted(signal);
|
|
180
|
+
const problems = [];
|
|
181
|
+
const canonicalDocs = new Map();
|
|
182
|
+
const requestedSeen = new Set([source.location]);
|
|
183
|
+
let rootFetched;
|
|
184
|
+
if (source.text !== undefined) {
|
|
185
|
+
rootFetched = { location: source.location, bytes: new TextEncoder().encode(source.text), text: source.text };
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
try {
|
|
189
|
+
rootFetched = await fetchDocument(source.location, signal);
|
|
190
|
+
}
|
|
191
|
+
catch (cause) {
|
|
192
|
+
throw new WsdlParseError('fetch-failed', `Failed to fetch root document "${source.location}"`, {
|
|
193
|
+
cause,
|
|
194
|
+
details: { location: source.location },
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
requestedSeen.add(rootFetched.location);
|
|
199
|
+
const rootDoc = buildBundledDocument(rootFetched, source.location, undefined, undefined, true);
|
|
200
|
+
canonicalDocs.set(rootFetched.location, rootDoc);
|
|
201
|
+
const documents = [rootDoc];
|
|
202
|
+
// Every nested reference is judged against the *root* document's world; see `ref-policy.ts`.
|
|
203
|
+
const policy = referencePolicyFor(rootFetched.location);
|
|
204
|
+
const queue = [];
|
|
205
|
+
collectImports(rootDoc, 1, queue, problems);
|
|
206
|
+
let limitReported = false;
|
|
207
|
+
while (queue.length > 0) {
|
|
208
|
+
const job = queue.shift();
|
|
209
|
+
/* v8 ignore next 3 -- queue.length > 0 guarantees a defined element */
|
|
210
|
+
if (job === undefined) {
|
|
211
|
+
continue;
|
|
212
|
+
}
|
|
213
|
+
if (requestedSeen.has(job.requestedLocation)) {
|
|
214
|
+
continue;
|
|
215
|
+
}
|
|
216
|
+
requestedSeen.add(job.requestedLocation);
|
|
217
|
+
if (job.depth > MAX_IMPORT_DEPTH || documents.length >= MAX_IMPORT_DOCUMENTS) {
|
|
218
|
+
// One problem for the whole runaway graph: a cap hit usually trips on hundreds of
|
|
219
|
+
// references at once, and a problems list that long tells the user nothing extra.
|
|
220
|
+
if (!limitReported) {
|
|
221
|
+
limitReported = true;
|
|
222
|
+
problems.push({
|
|
223
|
+
code: 'import-limit',
|
|
224
|
+
message: job.depth > MAX_IMPORT_DEPTH
|
|
225
|
+
? `Import graph deeper than ${String(MAX_IMPORT_DEPTH)} levels; the rest was not fetched`
|
|
226
|
+
: `Import graph larger than ${String(MAX_IMPORT_DOCUMENTS)} documents; the rest was not fetched`,
|
|
227
|
+
location: job.importedBy,
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
continue;
|
|
231
|
+
}
|
|
232
|
+
const refused = await policy.allows(job.requestedLocation);
|
|
233
|
+
if (refused !== undefined) {
|
|
234
|
+
problems.push({
|
|
235
|
+
code: 'import-ref-refused',
|
|
236
|
+
message: `Refused to fetch "${job.requestedLocation}": ${refused.reason}`,
|
|
237
|
+
location: job.importedBy,
|
|
238
|
+
});
|
|
239
|
+
continue;
|
|
240
|
+
}
|
|
241
|
+
checkAborted(signal);
|
|
242
|
+
let fetched;
|
|
243
|
+
try {
|
|
244
|
+
fetched = await fetchDocument(job.requestedLocation, signal);
|
|
245
|
+
}
|
|
246
|
+
catch (cause) {
|
|
247
|
+
problems.push({
|
|
248
|
+
code: 'fetch-failed',
|
|
249
|
+
message: `Failed to fetch "${job.requestedLocation}": ${cause instanceof Error ? cause.message : String(cause)}`,
|
|
250
|
+
location: job.requestedLocation,
|
|
251
|
+
});
|
|
252
|
+
continue;
|
|
253
|
+
}
|
|
254
|
+
requestedSeen.add(fetched.location);
|
|
255
|
+
// A redirect may converge onto a location already fetched via a different request.
|
|
256
|
+
if (canonicalDocs.has(fetched.location)) {
|
|
257
|
+
continue;
|
|
258
|
+
}
|
|
259
|
+
let bundled;
|
|
260
|
+
try {
|
|
261
|
+
bundled = buildBundledDocument(fetched, job.requestedLocation, job.importedBy, job.chameleonNamespace, false);
|
|
262
|
+
}
|
|
263
|
+
catch (cause) {
|
|
264
|
+
problems.push({
|
|
265
|
+
code: 'not-xml',
|
|
266
|
+
message: cause instanceof Error ? cause.message : String(cause),
|
|
267
|
+
location: fetched.location,
|
|
268
|
+
});
|
|
269
|
+
continue;
|
|
270
|
+
}
|
|
271
|
+
canonicalDocs.set(fetched.location, bundled);
|
|
272
|
+
documents.push(bundled);
|
|
273
|
+
collectImports(bundled, job.depth + 1, queue, problems);
|
|
274
|
+
}
|
|
275
|
+
return { root: rootDoc, documents, problems };
|
|
276
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* "Update Definition": re-import a WSDL and reconcile an existing
|
|
3
|
+
* project against it.
|
|
4
|
+
*
|
|
5
|
+
* The two halves are deliberately separate. {@link planUpdate} is a pure diff of
|
|
6
|
+
* two {@link ImportResult}s — what a preview dialog shows before the user commits
|
|
7
|
+
* to anything. {@link applyUpdate} then rewrites the project model per the
|
|
8
|
+
* options the user ticked, and is equally pure: it returns the next `Project`
|
|
9
|
+
* plus the relative paths of the `.xml.bak` backups the save layer should write
|
|
10
|
+
* (see `project/save.ts`'s `backups` option), and never touches a file system
|
|
11
|
+
* itself.
|
|
12
|
+
*
|
|
13
|
+
* Nothing is ever deleted. Requests belonging to an operation the new definition
|
|
14
|
+
* no longer has are kept and flagged {@link RequestDef.orphaned} rather than
|
|
15
|
+
* removed — the user decides whether a vanished operation means "clean
|
|
16
|
+
* this up" or "the new WSDL is wrong".
|
|
17
|
+
*/
|
|
18
|
+
import type { IdGenerator, Project } from '../project/model.js';
|
|
19
|
+
import type { OperationRef } from '../soap/request-builder.js';
|
|
20
|
+
import type { ImportResult } from '../types.js';
|
|
21
|
+
export type { OperationRef } from '../soap/request-builder.js';
|
|
22
|
+
/** Why {@link planUpdate} considers an operation changed; the first applicable reason wins. */
|
|
23
|
+
export type OperationChangeReason = 'input-schema' | 'output-schema' | 'soap-action' | 'style' | 'binding';
|
|
24
|
+
/** One operation both definitions have, but not identically. */
|
|
25
|
+
export interface ChangedOperation {
|
|
26
|
+
readonly ref: OperationRef;
|
|
27
|
+
readonly reason: OperationChangeReason;
|
|
28
|
+
}
|
|
29
|
+
/** The difference between the definition a project was built from and a freshly imported one. */
|
|
30
|
+
export interface UpdatePlan {
|
|
31
|
+
/** Operations only the new definition has. */
|
|
32
|
+
readonly newOperations: readonly OperationRef[];
|
|
33
|
+
/** Operations only the old definition had; their saved requests become orphaned. */
|
|
34
|
+
readonly removedOperations: readonly OperationRef[];
|
|
35
|
+
/** Operations both have, whose generated request or transport metadata differs. */
|
|
36
|
+
readonly changedOperations: readonly ChangedOperation[];
|
|
37
|
+
/** `soap:address` locations the new definition adds. */
|
|
38
|
+
readonly endpointsAdded: readonly string[];
|
|
39
|
+
/** `soap:address` locations the new definition no longer declares. */
|
|
40
|
+
readonly endpointsRemoved: readonly string[];
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Diffs two imports of the same interface: what the new definition adds, drops
|
|
44
|
+
* and changes. Operation identity is the binding's expanded name plus the
|
|
45
|
+
* operation name, so a renamed binding reads as "every operation removed, every
|
|
46
|
+
* operation added" — which is what it is.
|
|
47
|
+
*
|
|
48
|
+
* Pure and deterministic: the lists follow the new definition's document order
|
|
49
|
+
* (removed operations follow the old one's).
|
|
50
|
+
*
|
|
51
|
+
* @param oldImport the definition the project was built from
|
|
52
|
+
* @param newImport the freshly fetched definition
|
|
53
|
+
*/
|
|
54
|
+
export declare function planUpdate(oldImport: ImportResult, newImport: ImportResult): UpdatePlan;
|
|
55
|
+
/**
|
|
56
|
+
* What {@link applyUpdate} is allowed to do, named after the checkboxes of
|
|
57
|
+
* the Update Definition dialog.
|
|
58
|
+
*/
|
|
59
|
+
export interface ApplyUpdateOptions {
|
|
60
|
+
/** "Create new requests": add a `Request 1` for every operation the new definition adds. */
|
|
61
|
+
readonly createNewRequests: boolean;
|
|
62
|
+
/** "Recreate requests": regenerate the envelopes of every changed operation's requests. */
|
|
63
|
+
readonly recreateRequests: boolean;
|
|
64
|
+
/** "Recreate optional elements": include `minOccurs="0"` content when regenerating. */
|
|
65
|
+
readonly recreateOptional: boolean;
|
|
66
|
+
/** "Keep existing values": copy matching leaf values across (Task 29's merge). */
|
|
67
|
+
readonly keepExisting: boolean;
|
|
68
|
+
/** "Keep SOAP headers": keep the current `soapenv:Header` verbatim. */
|
|
69
|
+
readonly keepSoapHeaders: boolean;
|
|
70
|
+
/** "Create backups": ask the save layer for a `<request>.xml.bak` of every rewritten envelope. */
|
|
71
|
+
readonly createBackups: boolean;
|
|
72
|
+
/** "Update TestRequests": not implemented in this phase; the dialog shows it disabled. */
|
|
73
|
+
readonly updateTestRequests: false;
|
|
74
|
+
/** Mints ids for created requests and endpoints; injected by tests for determinism. */
|
|
75
|
+
readonly newId?: IdGenerator;
|
|
76
|
+
}
|
|
77
|
+
/** What {@link applyUpdate} did, in ids the caller can select in the UI. */
|
|
78
|
+
export interface ApplyUpdateResult {
|
|
79
|
+
readonly project: Project;
|
|
80
|
+
/** Ids of requests created for newly added operations. */
|
|
81
|
+
readonly requestsCreated: readonly string[];
|
|
82
|
+
/** Ids of requests whose envelope was regenerated. */
|
|
83
|
+
readonly requestsRecreated: readonly string[];
|
|
84
|
+
/** Ids of requests now flagged `orphaned` because their operation is gone. */
|
|
85
|
+
readonly requestsOrphaned: readonly string[];
|
|
86
|
+
/**
|
|
87
|
+
* Relative, `/`-separated project paths of the `.xml.bak` files the save layer
|
|
88
|
+
* should write before overwriting the corresponding envelope.
|
|
89
|
+
*/
|
|
90
|
+
readonly backups: readonly string[];
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Applies `plan` to one interface of `project`, per `options`.
|
|
94
|
+
*
|
|
95
|
+
* Never deletes anything: a removed operation's requests stay exactly where they
|
|
96
|
+
* are with `orphaned: true`, and an operation the new definition brought back has
|
|
97
|
+
* that flag cleared again.
|
|
98
|
+
*
|
|
99
|
+
* @param project the model to update; never mutated
|
|
100
|
+
* @param interfaceId the interface the plan belongs to
|
|
101
|
+
* @param plan the diff from {@link planUpdate}
|
|
102
|
+
* @param newImport the freshly imported definition the plan was built against
|
|
103
|
+
* @param options which of the update behaviours to perform
|
|
104
|
+
* @throws Error when `interfaceId` names no interface of `project`
|
|
105
|
+
*/
|
|
106
|
+
export declare function applyUpdate(project: Project, interfaceId: string, plan: UpdatePlan, newImport: ImportResult, options: ApplyUpdateOptions): ApplyUpdateResult;
|