@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,60 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
2
|
+
import { fileURLToPath } from 'node:url';
|
|
3
|
+
import { HttpError } from '../errors.js';
|
|
4
|
+
const DEFAULT_TIMEOUT_MS = 20_000;
|
|
5
|
+
const USER_AGENT = 'wirebench/0.1';
|
|
6
|
+
/**
|
|
7
|
+
* Decodes bytes as UTF-8, honouring an `<?xml ... encoding="iso-8859-1" ?>`
|
|
8
|
+
* declaration when present (single-byte, so it is safely sniffable by
|
|
9
|
+
* decoding the head as UTF-8 first). A `utf-16` declaration would require a
|
|
10
|
+
* BOM/byte-order sniff before the declaration itself is even legible, which
|
|
11
|
+
* does not fit a small helper like this — such documents fall back to (and
|
|
12
|
+
* garble under) UTF-8; use a pre-fetched `text` in that case instead.
|
|
13
|
+
*/
|
|
14
|
+
function decodeXmlBytes(bytes) {
|
|
15
|
+
const head = new TextDecoder('utf-8').decode(bytes.subarray(0, 200));
|
|
16
|
+
const match = /^\s*<\?xml[^>]*\bencoding=["']([^"']+)["']/i.exec(head);
|
|
17
|
+
if (match?.[1]?.toLowerCase() === 'iso-8859-1') {
|
|
18
|
+
return new TextDecoder('iso-8859-1').decode(bytes);
|
|
19
|
+
}
|
|
20
|
+
return new TextDecoder('utf-8').decode(bytes);
|
|
21
|
+
}
|
|
22
|
+
async function fetchFile(location) {
|
|
23
|
+
const bytes = await readFile(fileURLToPath(location));
|
|
24
|
+
return { location, bytes: new Uint8Array(bytes), text: decodeXmlBytes(bytes) };
|
|
25
|
+
}
|
|
26
|
+
async function fetchHttp(location, signal) {
|
|
27
|
+
const timeoutSignal = AbortSignal.timeout(DEFAULT_TIMEOUT_MS);
|
|
28
|
+
const combinedSignal = signal !== undefined ? AbortSignal.any([signal, timeoutSignal]) : timeoutSignal;
|
|
29
|
+
const response = await fetch(location, {
|
|
30
|
+
redirect: 'follow',
|
|
31
|
+
signal: combinedSignal,
|
|
32
|
+
headers: { 'user-agent': USER_AGENT },
|
|
33
|
+
});
|
|
34
|
+
if (!response.ok) {
|
|
35
|
+
throw new HttpError('fetch-failed', `GET ${location} failed with status ${response.status}`, {
|
|
36
|
+
details: { location, status: response.status },
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
const bytes = new Uint8Array(await response.arrayBuffer());
|
|
40
|
+
return { location: response.url, bytes, text: decodeXmlBytes(bytes) };
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Creates the default {@link FetchDocument} implementation: `file:` URLs are
|
|
44
|
+
* read from disk via `node:fs/promises`, and `http(s):` URLs are fetched via
|
|
45
|
+
* the global `fetch` (following redirects, with a 20s timeout combined with
|
|
46
|
+
* the caller's `AbortSignal`, and a `wirebench/0.1` User-Agent).
|
|
47
|
+
*
|
|
48
|
+
* Text is decoded as UTF-8 by default, honouring an `iso-8859-1` `encoding`
|
|
49
|
+
* in the document's XML declaration when present (see {@link decodeXmlBytes}
|
|
50
|
+
* for why `utf-16` isn't sniffed the same way). Other declared encodings
|
|
51
|
+
* fall back to UTF-8.
|
|
52
|
+
*/
|
|
53
|
+
export function createDefaultFetchDocument() {
|
|
54
|
+
return async (location, signal) => {
|
|
55
|
+
if (location.startsWith('file:')) {
|
|
56
|
+
return fetchFile(location);
|
|
57
|
+
}
|
|
58
|
+
return fetchHttp(location, signal);
|
|
59
|
+
};
|
|
60
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { WsdlDefinition } from './model.js';
|
|
2
|
+
import type { DefinitionBundle } from './resolver.js';
|
|
3
|
+
/**
|
|
4
|
+
* Merges a resolved {@link DefinitionBundle} into a single {@link WsdlDefinition}.
|
|
5
|
+
*
|
|
6
|
+
* Every `wsdl`-kind document in the bundle is parsed with {@link parseWsdlDocument}
|
|
7
|
+
* and merged: the root's `location`/`targetNamespace`/`documentation`/`imports`
|
|
8
|
+
* are kept, while `messages`/`portTypes`/`bindings`/`services` are concatenated
|
|
9
|
+
* (root first, then imports in discovery order) with duplicate QNames resolved
|
|
10
|
+
* by keeping the first occurrence. `schemaElements` collects the root's own
|
|
11
|
+
* inline schemas, plus the inline schemas of every imported `wsdl`-kind document,
|
|
12
|
+
* plus the root `xs:schema` element of every `xsd`-kind document in the bundle
|
|
13
|
+
* (in that order: root first, then imports in discovery order, then xsd roots).
|
|
14
|
+
*
|
|
15
|
+
* @param bundle the bundle produced by {@link resolveDefinition}
|
|
16
|
+
*/
|
|
17
|
+
export declare function parseWsdlBundle(bundle: DefinitionBundle): WsdlDefinition;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { qnameEquals } from './qname.js';
|
|
2
|
+
import { parseWsdlDocument } from './parse-wsdl.js';
|
|
3
|
+
/** Keeps the first occurrence of each expanded QName, dropping later duplicates. */
|
|
4
|
+
function dedupeByQName(items) {
|
|
5
|
+
const result = [];
|
|
6
|
+
for (const item of items) {
|
|
7
|
+
if (!result.some((existing) => qnameEquals(existing.name, item.name))) {
|
|
8
|
+
result.push(item);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
return result;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Merges a resolved {@link DefinitionBundle} into a single {@link WsdlDefinition}.
|
|
15
|
+
*
|
|
16
|
+
* Every `wsdl`-kind document in the bundle is parsed with {@link parseWsdlDocument}
|
|
17
|
+
* and merged: the root's `location`/`targetNamespace`/`documentation`/`imports`
|
|
18
|
+
* are kept, while `messages`/`portTypes`/`bindings`/`services` are concatenated
|
|
19
|
+
* (root first, then imports in discovery order) with duplicate QNames resolved
|
|
20
|
+
* by keeping the first occurrence. `schemaElements` collects the root's own
|
|
21
|
+
* inline schemas, plus the inline schemas of every imported `wsdl`-kind document,
|
|
22
|
+
* plus the root `xs:schema` element of every `xsd`-kind document in the bundle
|
|
23
|
+
* (in that order: root first, then imports in discovery order, then xsd roots).
|
|
24
|
+
*
|
|
25
|
+
* @param bundle the bundle produced by {@link resolveDefinition}
|
|
26
|
+
*/
|
|
27
|
+
export function parseWsdlBundle(bundle) {
|
|
28
|
+
const rootDef = parseWsdlDocument(bundle.root.document, bundle.root.location);
|
|
29
|
+
const importedWsdlDefs = bundle.documents
|
|
30
|
+
.filter((doc) => doc.kind === 'wsdl' && doc.location !== bundle.root.location)
|
|
31
|
+
.map((doc) => parseWsdlDocument(doc.document, doc.location));
|
|
32
|
+
const messages = dedupeByQName([...rootDef.messages, ...importedWsdlDefs.flatMap((d) => d.messages)]);
|
|
33
|
+
const portTypes = dedupeByQName([...rootDef.portTypes, ...importedWsdlDefs.flatMap((d) => d.portTypes)]);
|
|
34
|
+
const bindings = dedupeByQName([...rootDef.bindings, ...importedWsdlDefs.flatMap((d) => d.bindings)]);
|
|
35
|
+
const services = dedupeByQName([...rootDef.services, ...importedWsdlDefs.flatMap((d) => d.services)]);
|
|
36
|
+
const xsdSchemaElements = bundle.documents
|
|
37
|
+
.filter((doc) => doc.kind === 'xsd')
|
|
38
|
+
.map((doc) => doc.document.documentElement)
|
|
39
|
+
.filter((el) => el !== null);
|
|
40
|
+
return {
|
|
41
|
+
location: rootDef.location,
|
|
42
|
+
targetNamespace: rootDef.targetNamespace,
|
|
43
|
+
...(rootDef.documentation !== undefined ? { documentation: rootDef.documentation } : {}),
|
|
44
|
+
messages,
|
|
45
|
+
portTypes,
|
|
46
|
+
bindings,
|
|
47
|
+
services,
|
|
48
|
+
schemaElements: [
|
|
49
|
+
...rootDef.schemaElements,
|
|
50
|
+
...importedWsdlDefs.flatMap((d) => d.schemaElements),
|
|
51
|
+
...xsdSchemaElements,
|
|
52
|
+
],
|
|
53
|
+
imports: rootDef.imports,
|
|
54
|
+
namespaceDeclarations: rootDef.namespaceDeclarations,
|
|
55
|
+
problems: rootDef.problems,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import type { Element } from '@xmldom/xmldom';
|
|
2
|
+
import type { QName } from './qname.js';
|
|
3
|
+
import type { ResolveProblem } from './resolver.js';
|
|
4
|
+
/** A `wsdl:part` within a `wsdl:message`. Exactly one of `element`/`type` is normally present. */
|
|
5
|
+
export interface Part {
|
|
6
|
+
readonly name: string;
|
|
7
|
+
readonly element?: QName;
|
|
8
|
+
readonly type?: QName;
|
|
9
|
+
}
|
|
10
|
+
/** A `wsdl:message` definition. */
|
|
11
|
+
export interface Message {
|
|
12
|
+
readonly name: QName;
|
|
13
|
+
readonly documentation?: string;
|
|
14
|
+
readonly parts: readonly Part[];
|
|
15
|
+
}
|
|
16
|
+
/** Reference to a message from an operation's `wsdl:input`/`wsdl:output`. */
|
|
17
|
+
export interface MessageRef {
|
|
18
|
+
readonly name?: string;
|
|
19
|
+
readonly message: QName;
|
|
20
|
+
/**
|
|
21
|
+
* The `wsdl:input`/`wsdl:output` element this reference was parsed from, kept so extension
|
|
22
|
+
* attributes and elements no parser models (notably `wsam:Action`) stay reachable. Absent
|
|
23
|
+
* only for a reference built programmatically rather than parsed.
|
|
24
|
+
*/
|
|
25
|
+
readonly sourceElement?: Element;
|
|
26
|
+
}
|
|
27
|
+
/** A `wsdl:fault` within a `wsdl:operation`. */
|
|
28
|
+
export interface Fault {
|
|
29
|
+
readonly name: string;
|
|
30
|
+
readonly message: QName;
|
|
31
|
+
readonly documentation?: string;
|
|
32
|
+
}
|
|
33
|
+
/** A `wsdl:operation` within a `wsdl:portType`. */
|
|
34
|
+
export interface Operation {
|
|
35
|
+
readonly name: string;
|
|
36
|
+
readonly documentation?: string;
|
|
37
|
+
readonly input?: MessageRef;
|
|
38
|
+
readonly output?: MessageRef;
|
|
39
|
+
readonly faults: readonly Fault[];
|
|
40
|
+
readonly parameterOrder?: readonly string[];
|
|
41
|
+
}
|
|
42
|
+
/** A `wsdl:portType` definition (the abstract interface). */
|
|
43
|
+
export interface PortType {
|
|
44
|
+
readonly name: QName;
|
|
45
|
+
readonly documentation?: string;
|
|
46
|
+
readonly operations: readonly Operation[];
|
|
47
|
+
}
|
|
48
|
+
/** `use` attribute of a `soap:body`/`soap:header`/`soap:fault`. */
|
|
49
|
+
export type SoapUse = 'literal' | 'encoded';
|
|
50
|
+
/** A `soap:body` element within a binding operation's input/output. */
|
|
51
|
+
export interface SoapBody {
|
|
52
|
+
readonly use: SoapUse;
|
|
53
|
+
readonly parts?: readonly string[];
|
|
54
|
+
readonly namespace?: string;
|
|
55
|
+
readonly encodingStyle?: string;
|
|
56
|
+
}
|
|
57
|
+
/** A `soap:headerfault` within a `soap:header`. */
|
|
58
|
+
export interface SoapHeaderFault {
|
|
59
|
+
readonly message: QName;
|
|
60
|
+
readonly part: string;
|
|
61
|
+
readonly use: SoapUse;
|
|
62
|
+
}
|
|
63
|
+
/** A `soap:header` element within a binding operation's input/output. */
|
|
64
|
+
export interface SoapHeader {
|
|
65
|
+
readonly message: QName;
|
|
66
|
+
readonly part: string;
|
|
67
|
+
readonly use: SoapUse;
|
|
68
|
+
readonly namespace?: string;
|
|
69
|
+
readonly encodingStyle?: string;
|
|
70
|
+
readonly headerFaults: readonly SoapHeaderFault[];
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* One `mime:content` of a `mime:multipartRelated` binding message: the `wsdl:part` it carries
|
|
74
|
+
* and the media type the binding declares for it (absent when the WSDL states none).
|
|
75
|
+
*/
|
|
76
|
+
export interface MimePartInfo {
|
|
77
|
+
readonly part: string;
|
|
78
|
+
readonly type?: string;
|
|
79
|
+
}
|
|
80
|
+
/** The input or output side of a `wsdl:binding` operation. */
|
|
81
|
+
export interface BindingMessage {
|
|
82
|
+
readonly body: SoapBody;
|
|
83
|
+
readonly headers: readonly SoapHeader[];
|
|
84
|
+
/**
|
|
85
|
+
* The attachment parts of a WSDL 1.1 `mime:multipartRelated` binding, in document order.
|
|
86
|
+
* Absent (rather than empty) when the message is a plain `soap:body`, so "no MIME binding"
|
|
87
|
+
* and "a MIME binding with no content parts" stay distinguishable.
|
|
88
|
+
*/
|
|
89
|
+
readonly mimeParts?: readonly MimePartInfo[];
|
|
90
|
+
}
|
|
91
|
+
/** A `wsdl:fault` within a `wsdl:binding` operation, carrying its `soap:fault` `use`. */
|
|
92
|
+
export interface BindingFault {
|
|
93
|
+
readonly name: string;
|
|
94
|
+
readonly use: SoapUse;
|
|
95
|
+
}
|
|
96
|
+
/** A `wsdl:operation` within a `wsdl:binding`. */
|
|
97
|
+
export interface BindingOperation {
|
|
98
|
+
readonly name: string;
|
|
99
|
+
readonly soapAction?: string;
|
|
100
|
+
readonly style?: 'document' | 'rpc';
|
|
101
|
+
readonly input?: BindingMessage;
|
|
102
|
+
readonly output?: BindingMessage;
|
|
103
|
+
readonly faults: readonly BindingFault[];
|
|
104
|
+
}
|
|
105
|
+
/** SOAP version bound by a `wsdl:binding`, or `'none'` for non-SOAP (e.g. HTTP GET/POST) bindings. */
|
|
106
|
+
export type SoapVersion = '1.1' | '1.2' | 'none';
|
|
107
|
+
/** A `wsdl:binding` definition. */
|
|
108
|
+
export interface Binding {
|
|
109
|
+
readonly name: QName;
|
|
110
|
+
readonly type: QName;
|
|
111
|
+
readonly soapVersion: SoapVersion;
|
|
112
|
+
readonly style: 'document' | 'rpc';
|
|
113
|
+
readonly transport?: string;
|
|
114
|
+
readonly operations: readonly BindingOperation[];
|
|
115
|
+
/** The `wsdl:binding` element, kept for extensions no parser models (`wsaw:UsingAddressing`, `wsp:Policy`). */
|
|
116
|
+
readonly sourceElement?: Element;
|
|
117
|
+
}
|
|
118
|
+
/** A `wsdl:port` within a `wsdl:service`. */
|
|
119
|
+
export interface Port {
|
|
120
|
+
readonly name: string;
|
|
121
|
+
readonly binding: QName;
|
|
122
|
+
readonly address?: string;
|
|
123
|
+
/** The `wsdl:port` element, kept for extensions no parser models (`wsaw:UsingAddressing`, `wsp:Policy`). */
|
|
124
|
+
readonly sourceElement?: Element;
|
|
125
|
+
}
|
|
126
|
+
/** A `wsdl:service` definition. */
|
|
127
|
+
export interface Service {
|
|
128
|
+
readonly name: QName;
|
|
129
|
+
readonly documentation?: string;
|
|
130
|
+
readonly ports: readonly Port[];
|
|
131
|
+
}
|
|
132
|
+
/** A raw, unresolved `wsdl:import` (namespace/location pair); resolved by Task 6's resolver. */
|
|
133
|
+
export interface WsdlImport {
|
|
134
|
+
readonly namespace?: string;
|
|
135
|
+
readonly location: string;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* The parsed model of a single WSDL 1.1 document. `imports` and
|
|
139
|
+
* `schemaElements` are left raw/unresolved for later tasks (import
|
|
140
|
+
* resolution in Task 6, XSD compilation in Task 7).
|
|
141
|
+
*/
|
|
142
|
+
export interface WsdlDefinition {
|
|
143
|
+
readonly location: string;
|
|
144
|
+
readonly targetNamespace: string;
|
|
145
|
+
readonly documentation?: string;
|
|
146
|
+
readonly messages: readonly Message[];
|
|
147
|
+
readonly portTypes: readonly PortType[];
|
|
148
|
+
readonly bindings: readonly Binding[];
|
|
149
|
+
readonly services: readonly Service[];
|
|
150
|
+
/** Raw `xs:schema` elements found under `wsdl:types`, consumed by Task 7's schema set. */
|
|
151
|
+
readonly schemaElements: readonly Element[];
|
|
152
|
+
readonly imports: readonly WsdlImport[];
|
|
153
|
+
/**
|
|
154
|
+
* Prefix → namespace URI for every `xmlns:*` declared on the root
|
|
155
|
+
* `wsdl:definitions` element. WSDL-scoped QName-valued *attribute values*
|
|
156
|
+
* that no parser resolves (notably `wsdl:arrayType` on a SOAP-encoded array)
|
|
157
|
+
* are resolved against these.
|
|
158
|
+
*/
|
|
159
|
+
readonly namespaceDeclarations: Readonly<Record<string, string>>;
|
|
160
|
+
/**
|
|
161
|
+
* Problems encountered parsing this WSDL document itself. Import-resolution
|
|
162
|
+
* problems (failed fetches, unsupported redefines, and the like) live on
|
|
163
|
+
* the {@link DefinitionBundle}'s `problems`, not here — this is always
|
|
164
|
+
* empty for the current parser, which does not yet record WSDL-parse-level
|
|
165
|
+
* problems.
|
|
166
|
+
*/
|
|
167
|
+
readonly problems: readonly ResolveProblem[];
|
|
168
|
+
}
|
|
169
|
+
/** Finds a `wsdl:message` by expanded name, or `undefined` if not present in this document. */
|
|
170
|
+
export declare function findMessage(def: WsdlDefinition, qname: QName): Message | undefined;
|
|
171
|
+
/** Finds a `wsdl:portType` by expanded name, or `undefined` if not present in this document. */
|
|
172
|
+
export declare function findPortType(def: WsdlDefinition, qname: QName): PortType | undefined;
|
|
173
|
+
/** Finds a `wsdl:binding` by expanded name, or `undefined` if not present in this document. */
|
|
174
|
+
export declare function findBinding(def: WsdlDefinition, qname: QName): Binding | undefined;
|
|
175
|
+
/** Finds a `wsdl:service` by expanded name, or `undefined` if not present in this document. */
|
|
176
|
+
export declare function findService(def: WsdlDefinition, qname: QName): Service | undefined;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { qnameEquals } from './qname.js';
|
|
2
|
+
/** Finds a `wsdl:message` by expanded name, or `undefined` if not present in this document. */
|
|
3
|
+
export function findMessage(def, qname) {
|
|
4
|
+
return def.messages.find((m) => qnameEquals(m.name, qname));
|
|
5
|
+
}
|
|
6
|
+
/** Finds a `wsdl:portType` by expanded name, or `undefined` if not present in this document. */
|
|
7
|
+
export function findPortType(def, qname) {
|
|
8
|
+
return def.portTypes.find((p) => qnameEquals(p.name, qname));
|
|
9
|
+
}
|
|
10
|
+
/** Finds a `wsdl:binding` by expanded name, or `undefined` if not present in this document. */
|
|
11
|
+
export function findBinding(def, qname) {
|
|
12
|
+
return def.bindings.find((b) => qnameEquals(b.name, qname));
|
|
13
|
+
}
|
|
14
|
+
/** Finds a `wsdl:service` by expanded name, or `undefined` if not present in this document. */
|
|
15
|
+
export function findService(def, qname) {
|
|
16
|
+
return def.services.find((s) => qnameEquals(s.name, qname));
|
|
17
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Element } from '@xmldom/xmldom';
|
|
2
|
+
import type { Binding, Service } from './model.js';
|
|
3
|
+
/** Parses a single `wsdl:binding` element into a {@link Binding}. */
|
|
4
|
+
export declare function parseBinding(bindingEl: Element, location: string, defaultNamespace: string): Binding;
|
|
5
|
+
/** Parses a single `wsdl:service` element into a {@link Service}. */
|
|
6
|
+
export declare function parseService(serviceEl: Element, location: string, defaultNamespace: string): Service;
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { NS } from '../xml/namespaces.js';
|
|
2
|
+
import { childElements, firstChildElement, optionalAttribute, readDocumentation, requireAttribute, } from './dom-utils.js';
|
|
3
|
+
import { parseQName } from './qname.js';
|
|
4
|
+
const SOAP_NAMESPACES = [NS.WSDL_SOAP11, NS.WSDL_SOAP12];
|
|
5
|
+
function soapNs(binding) {
|
|
6
|
+
return SOAP_NAMESPACES.find((ns) => firstChildElement(binding, ns, 'binding') !== undefined);
|
|
7
|
+
}
|
|
8
|
+
function readUse(element) {
|
|
9
|
+
const use = element !== undefined ? optionalAttribute(element, 'use') : undefined;
|
|
10
|
+
return use === 'encoded' ? 'encoded' : 'literal';
|
|
11
|
+
}
|
|
12
|
+
function parseSoapBody(element) {
|
|
13
|
+
const parts = optionalAttribute(element, 'parts');
|
|
14
|
+
const namespace = optionalAttribute(element, 'namespace');
|
|
15
|
+
const encodingStyle = optionalAttribute(element, 'encodingStyle');
|
|
16
|
+
return {
|
|
17
|
+
use: readUse(element),
|
|
18
|
+
...(parts !== undefined ? { parts: parts.split(/\s+/).filter((p) => p.length > 0) } : {}),
|
|
19
|
+
...(namespace !== undefined ? { namespace } : {}),
|
|
20
|
+
...(encodingStyle !== undefined ? { encodingStyle } : {}),
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function parseHeaderFault(element, location, defaultNamespace) {
|
|
24
|
+
return {
|
|
25
|
+
message: parseQName(requireAttribute(element, 'message', location), element, defaultNamespace),
|
|
26
|
+
part: requireAttribute(element, 'part', location),
|
|
27
|
+
use: readUse(element),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function parseSoapHeader(element, ns, location, defaultNamespace) {
|
|
31
|
+
const headerFaults = childElements(element, ns, 'headerfault').map((hf) => parseHeaderFault(hf, location, defaultNamespace));
|
|
32
|
+
const namespace = optionalAttribute(element, 'namespace');
|
|
33
|
+
const encodingStyle = optionalAttribute(element, 'encodingStyle');
|
|
34
|
+
return {
|
|
35
|
+
message: parseQName(requireAttribute(element, 'message', location), element, defaultNamespace),
|
|
36
|
+
part: requireAttribute(element, 'part', location),
|
|
37
|
+
use: readUse(element),
|
|
38
|
+
...(namespace !== undefined ? { namespace } : {}),
|
|
39
|
+
...(encodingStyle !== undefined ? { encodingStyle } : {}),
|
|
40
|
+
headerFaults,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Splits a `mime:multipartRelated` into the `mime:part` that carries the SOAP envelope (the one
|
|
45
|
+
* holding `soap:body`) and the `mime:content` declarations of every other part — the attachment
|
|
46
|
+
* slots the request editor offers a "Part" for.
|
|
47
|
+
*/
|
|
48
|
+
function parseMultipartRelated(multipartEl, ns) {
|
|
49
|
+
let envelopePart;
|
|
50
|
+
const mimeParts = [];
|
|
51
|
+
for (const partEl of childElements(multipartEl, NS.WSDL_MIME, 'part')) {
|
|
52
|
+
if (firstChildElement(partEl, ns, 'body') !== undefined) {
|
|
53
|
+
envelopePart ??= partEl;
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
for (const contentEl of childElements(partEl, NS.WSDL_MIME, 'content')) {
|
|
57
|
+
const part = optionalAttribute(contentEl, 'part');
|
|
58
|
+
const type = optionalAttribute(contentEl, 'type');
|
|
59
|
+
if (part === undefined) {
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
mimeParts.push({ part, ...(type !== undefined ? { type } : {}) });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return { ...(envelopePart !== undefined ? { envelopePart } : {}), mimeParts };
|
|
66
|
+
}
|
|
67
|
+
function parseBindingMessage(wsdlMessageEl, ns, location, defaultNamespace) {
|
|
68
|
+
if (wsdlMessageEl === undefined || ns === undefined) {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
// In a WSDL 1.1 MIME binding the `soap:body` sits one level down, inside the
|
|
72
|
+
// `mime:part` that carries the envelope — so the envelope's own `use`/`parts` would be
|
|
73
|
+
// lost if only the direct children were read.
|
|
74
|
+
const multipartEl = firstChildElement(wsdlMessageEl, NS.WSDL_MIME, 'multipartRelated');
|
|
75
|
+
const multipart = multipartEl !== undefined ? parseMultipartRelated(multipartEl, ns) : undefined;
|
|
76
|
+
const soapOwner = multipart?.envelopePart ?? wsdlMessageEl;
|
|
77
|
+
const bodyEl = firstChildElement(soapOwner, ns, 'body');
|
|
78
|
+
const body = bodyEl !== undefined ? parseSoapBody(bodyEl) : { use: 'literal' };
|
|
79
|
+
const headers = childElements(soapOwner, ns, 'header').map((h) => parseSoapHeader(h, ns, location, defaultNamespace));
|
|
80
|
+
return { body, headers, ...(multipart !== undefined ? { mimeParts: multipart.mimeParts } : {}) };
|
|
81
|
+
}
|
|
82
|
+
function parseBindingFault(element, ns, location) {
|
|
83
|
+
const soapFault = ns !== undefined ? firstChildElement(element, ns, 'fault') : undefined;
|
|
84
|
+
return { name: requireAttribute(element, 'name', location), use: readUse(soapFault) };
|
|
85
|
+
}
|
|
86
|
+
function parseBindingOperation(opEl, ns, location, defaultNamespace) {
|
|
87
|
+
const soapOp = ns !== undefined ? firstChildElement(opEl, ns, 'operation') : undefined;
|
|
88
|
+
const styleAttr = soapOp !== undefined ? optionalAttribute(soapOp, 'style') : undefined;
|
|
89
|
+
const soapAction = soapOp !== undefined ? optionalAttribute(soapOp, 'soapAction') : undefined;
|
|
90
|
+
const inputEl = firstChildElement(opEl, NS.WSDL, 'input');
|
|
91
|
+
const outputEl = firstChildElement(opEl, NS.WSDL, 'output');
|
|
92
|
+
const input = parseBindingMessage(inputEl, ns, location, defaultNamespace);
|
|
93
|
+
const output = parseBindingMessage(outputEl, ns, location, defaultNamespace);
|
|
94
|
+
const faults = childElements(opEl, NS.WSDL, 'fault').map((f) => parseBindingFault(f, ns, location));
|
|
95
|
+
return {
|
|
96
|
+
name: requireAttribute(opEl, 'name', location),
|
|
97
|
+
...(soapAction !== undefined ? { soapAction } : {}),
|
|
98
|
+
...(styleAttr === 'rpc' || styleAttr === 'document' ? { style: styleAttr } : {}),
|
|
99
|
+
...(input !== undefined ? { input } : {}),
|
|
100
|
+
...(output !== undefined ? { output } : {}),
|
|
101
|
+
faults,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
/** Parses a single `wsdl:binding` element into a {@link Binding}. */
|
|
105
|
+
export function parseBinding(bindingEl, location, defaultNamespace) {
|
|
106
|
+
const ns = soapNs(bindingEl);
|
|
107
|
+
const soapBindingEl = ns !== undefined ? firstChildElement(bindingEl, ns, 'binding') : undefined;
|
|
108
|
+
const soapVersion = ns === NS.WSDL_SOAP11 ? '1.1' : ns === NS.WSDL_SOAP12 ? '1.2' : 'none';
|
|
109
|
+
const styleAttr = soapBindingEl !== undefined ? optionalAttribute(soapBindingEl, 'style') : undefined;
|
|
110
|
+
const transport = soapBindingEl !== undefined ? optionalAttribute(soapBindingEl, 'transport') : undefined;
|
|
111
|
+
const operations = childElements(bindingEl, NS.WSDL, 'operation').map((op) => parseBindingOperation(op, ns, location, defaultNamespace));
|
|
112
|
+
return {
|
|
113
|
+
name: { namespaceUri: defaultNamespace, localName: requireAttribute(bindingEl, 'name', location) },
|
|
114
|
+
type: parseQName(requireAttribute(bindingEl, 'type', location), bindingEl, defaultNamespace),
|
|
115
|
+
soapVersion,
|
|
116
|
+
style: styleAttr === 'rpc' ? 'rpc' : 'document',
|
|
117
|
+
...(transport !== undefined ? { transport } : {}),
|
|
118
|
+
operations,
|
|
119
|
+
sourceElement: bindingEl,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
function readAddress(portEl) {
|
|
123
|
+
for (const ns of [NS.WSDL_SOAP11, NS.WSDL_SOAP12, NS.WSDL_HTTP]) {
|
|
124
|
+
const addressEl = firstChildElement(portEl, ns, 'address');
|
|
125
|
+
if (addressEl !== undefined) {
|
|
126
|
+
return optionalAttribute(addressEl, 'location');
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return undefined;
|
|
130
|
+
}
|
|
131
|
+
function parsePort(portEl, location, defaultNamespace) {
|
|
132
|
+
const address = readAddress(portEl);
|
|
133
|
+
return {
|
|
134
|
+
name: requireAttribute(portEl, 'name', location),
|
|
135
|
+
binding: parseQName(requireAttribute(portEl, 'binding', location), portEl, defaultNamespace),
|
|
136
|
+
...(address !== undefined ? { address } : {}),
|
|
137
|
+
sourceElement: portEl,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
/** Parses a single `wsdl:service` element into a {@link Service}. */
|
|
141
|
+
export function parseService(serviceEl, location, defaultNamespace) {
|
|
142
|
+
const documentation = readDocumentation(serviceEl, NS.WSDL);
|
|
143
|
+
const ports = childElements(serviceEl, NS.WSDL, 'port').map((p) => parsePort(p, location, defaultNamespace));
|
|
144
|
+
const name = { namespaceUri: defaultNamespace, localName: requireAttribute(serviceEl, 'name', location) };
|
|
145
|
+
return {
|
|
146
|
+
name,
|
|
147
|
+
...(documentation !== undefined ? { documentation } : {}),
|
|
148
|
+
ports,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { Document } from '@xmldom/xmldom';
|
|
2
|
+
import type { WsdlDefinition } from './model.js';
|
|
3
|
+
import type { FetchDocument } from './resolver.js';
|
|
4
|
+
/**
|
|
5
|
+
* Source of a WSDL document. `text` is required when `resolveImports` is
|
|
6
|
+
* `false` (there is nothing to fetch it with); it is optional when
|
|
7
|
+
* `resolveImports` is `true`, in which case an absent `text` is fetched via
|
|
8
|
+
* `fetchDocument`.
|
|
9
|
+
*/
|
|
10
|
+
export interface WsdlDocumentSource {
|
|
11
|
+
readonly location: string;
|
|
12
|
+
readonly text?: string;
|
|
13
|
+
}
|
|
14
|
+
/** Options for {@link parseWsdl}. */
|
|
15
|
+
export interface ParseWsdlOptions {
|
|
16
|
+
/** Fetches a WSDL/XSD document by location. Unused while `resolveImports` is `false`. */
|
|
17
|
+
readonly fetchDocument: FetchDocument;
|
|
18
|
+
/** Whether to follow `wsdl:import`/`xsd:import`/`xsd:include`/`xsd:redefine`. */
|
|
19
|
+
readonly resolveImports: boolean;
|
|
20
|
+
readonly signal?: AbortSignal;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Parses a single, already-loaded WSDL 1.1 `Document` into a {@link WsdlDefinition}.
|
|
24
|
+
*
|
|
25
|
+
* Pure and synchronous: it does not resolve `wsdl:import`s or fetch anything,
|
|
26
|
+
* and does not validate cross-references (e.g. a binding's `type` pointing at
|
|
27
|
+
* an unknown `portType`) — only structural requirements of the WSDL document
|
|
28
|
+
* itself (required attributes) are enforced.
|
|
29
|
+
*
|
|
30
|
+
* @param doc the parsed WSDL document
|
|
31
|
+
* @param location a human-readable origin for the document, echoed into the resulting model and errors
|
|
32
|
+
* @throws {WsdlParseError} with code `not-a-wsdl` if the root element is not `{NS.WSDL}definitions`
|
|
33
|
+
* @throws {WsdlParseError} with code `wsdl-invalid` for structural errors (e.g. a missing required attribute)
|
|
34
|
+
*/
|
|
35
|
+
export declare function parseWsdlDocument(doc: Document, location: string): WsdlDefinition;
|
|
36
|
+
/**
|
|
37
|
+
* Parses a WSDL 1.1 document, given its root source.
|
|
38
|
+
*
|
|
39
|
+
* When `options.resolveImports` is `false`, only `root.text` is parsed as a
|
|
40
|
+
* single document (`fetchDocument` is unused). When `true`, the full import
|
|
41
|
+
* graph (`wsdl:import`/`xsd:import`/`xsd:include`/`xsd:redefine`) is resolved
|
|
42
|
+
* via {@link resolveDefinition} and merged via {@link parseWsdlBundle}.
|
|
43
|
+
*
|
|
44
|
+
* @throws {WsdlParseError} propagated from {@link parseWsdlDocument} for `not-a-wsdl`/`wsdl-invalid`
|
|
45
|
+
* @throws {WsdlParseError} with code `fetch-failed` if the root document cannot be fetched while resolving imports
|
|
46
|
+
*/
|
|
47
|
+
export declare function parseWsdl(root: WsdlDocumentSource, options: ParseWsdlOptions): Promise<WsdlDefinition>;
|