@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,11 @@
|
|
|
1
|
+
import type { WsiMessageAssertion } from '../../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* BP 1.1 R2113: an envelope carries no `soapenc:arrayType` attribute on any of its elements.
|
|
4
|
+
* The profile rules out SOAP encoding, and `arrayType` is the attribute that carries an encoded
|
|
5
|
+
* array's item type and dimensions — so its presence means the message is not the literal
|
|
6
|
+
* instance the description promised.
|
|
7
|
+
*
|
|
8
|
+
* The description-level counterparts (a `wsdl:arrayType` attribute, a type derived from
|
|
9
|
+
* `soapenc:Array`) stay in the WSDL catalogue as R2110/R2111.
|
|
10
|
+
*/
|
|
11
|
+
export declare const R2113: WsiMessageAssertion;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { NOT_APPLICABLE } from '../../types.js';
|
|
2
|
+
import { SOAP_ENCODING_NS, attributesOf, envelopeElements, envelopes, messageFinding } from './helpers.js';
|
|
3
|
+
/** Both SOAP encoding namespaces; an `arrayType` in either one is out of profile. */
|
|
4
|
+
const ENCODING_NAMESPACES = [SOAP_ENCODING_NS['1.1'], SOAP_ENCODING_NS['1.2']];
|
|
5
|
+
/**
|
|
6
|
+
* BP 1.1 R2113: an envelope carries no `soapenc:arrayType` attribute on any of its elements.
|
|
7
|
+
* The profile rules out SOAP encoding, and `arrayType` is the attribute that carries an encoded
|
|
8
|
+
* array's item type and dimensions — so its presence means the message is not the literal
|
|
9
|
+
* instance the description promised.
|
|
10
|
+
*
|
|
11
|
+
* The description-level counterparts (a `wsdl:arrayType` attribute, a type derived from
|
|
12
|
+
* `soapenc:Array`) stay in the WSDL catalogue as R2110/R2111.
|
|
13
|
+
*/
|
|
14
|
+
export const R2113 = {
|
|
15
|
+
id: 'R2113',
|
|
16
|
+
title: 'An envelope carries no soapenc:arrayType attribute',
|
|
17
|
+
level: 'REQUIRED',
|
|
18
|
+
section: '4.3 Use of SOAP Encoding',
|
|
19
|
+
check(context) {
|
|
20
|
+
const findings = [];
|
|
21
|
+
const views = envelopes(context);
|
|
22
|
+
for (const view of views) {
|
|
23
|
+
for (const element of envelopeElements(view)) {
|
|
24
|
+
for (const attribute of attributesOf(element)) {
|
|
25
|
+
if (attribute.localName === 'arrayType' && ENCODING_NAMESPACES.includes(attribute.namespaceUri ?? '')) {
|
|
26
|
+
findings.push(messageFinding(view, element, `"${element.nodeName}" carries soapenc:arrayType="${attribute.value}"`));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return views.length === 0 ? NOT_APPLICABLE : findings;
|
|
32
|
+
},
|
|
33
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { WsiMessageAssertion } from '../../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* BP 1.1 R2211: an rpc-literal message carries no `xsi:nil="true"` on a part accessor. An rpc
|
|
4
|
+
* part accessor is not a schema element declaration, so it has no `nillable` to make nil legal —
|
|
5
|
+
* an omitted part says "absent" in a way every receiver agrees on.
|
|
6
|
+
*/
|
|
7
|
+
export declare const R2211: WsiMessageAssertion;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { NS } from '../../../../xml/namespaces.js';
|
|
2
|
+
import { NOT_APPLICABLE } from '../../types.js';
|
|
3
|
+
import { attributesOf, envelopes, messageFinding, partAccessors } from './helpers.js';
|
|
4
|
+
/** The `xsi:nil` values that actually assert nil-ness. */
|
|
5
|
+
const NIL = ['1', 'true'];
|
|
6
|
+
/**
|
|
7
|
+
* BP 1.1 R2211: an rpc-literal message carries no `xsi:nil="true"` on a part accessor. An rpc
|
|
8
|
+
* part accessor is not a schema element declaration, so it has no `nillable` to make nil legal —
|
|
9
|
+
* an omitted part says "absent" in a way every receiver agrees on.
|
|
10
|
+
*/
|
|
11
|
+
export const R2211 = {
|
|
12
|
+
id: 'R2211',
|
|
13
|
+
title: 'An rpc-literal part accessor carries no xsi:nil',
|
|
14
|
+
level: 'REQUIRED',
|
|
15
|
+
section: '4.4 rpc-literal',
|
|
16
|
+
check(context) {
|
|
17
|
+
if (context.binding.style !== 'rpc' || context.binding.use !== 'literal') {
|
|
18
|
+
return NOT_APPLICABLE;
|
|
19
|
+
}
|
|
20
|
+
const findings = [];
|
|
21
|
+
let accessors = 0;
|
|
22
|
+
for (const view of envelopes(context)) {
|
|
23
|
+
// The body child is the operation wrapper; its children are the part accessors.
|
|
24
|
+
for (const wrapper of partAccessors(view)) {
|
|
25
|
+
let child = wrapper.firstChild;
|
|
26
|
+
while (child !== null) {
|
|
27
|
+
if (child.nodeType === 1) {
|
|
28
|
+
const element = child;
|
|
29
|
+
accessors += 1;
|
|
30
|
+
for (const attribute of attributesOf(element)) {
|
|
31
|
+
if (attribute.namespaceUri === NS.XSI && attribute.localName === 'nil' && NIL.includes(attribute.value)) {
|
|
32
|
+
findings.push(messageFinding(view, element, `the rpc-literal part accessor "${element.nodeName}" carries xsi:nil="${attribute.value}"`));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
child = child.nextSibling;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return accessors === 0 ? NOT_APPLICABLE : findings;
|
|
41
|
+
},
|
|
42
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { WsiAssertion } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* BP 1.1 R2001: a description "MUST only use the WSDL 'import' statement to import another WSDL
|
|
4
|
+
* description". Every `wsdl:import` is therefore checked to point at a document whose root element
|
|
5
|
+
* is `wsdl:definitions`; an import whose target could not be fetched is left alone (the resolver
|
|
6
|
+
* already reports that as its own problem).
|
|
7
|
+
*
|
|
8
|
+
* A `wsdl:import` of an *XML Schema* violates this requirement too, but it is the subject of the
|
|
9
|
+
* more specific {@link R2002} ("use xs:import for schemas"), so it is reported there only and
|
|
10
|
+
* skipped here — otherwise every such import would be flagged twice for one construct.
|
|
11
|
+
*
|
|
12
|
+
* A target the resolver could not classify at all never reaches the bundle; it shows up as a
|
|
13
|
+
* `not-xml` resolve problem instead, which is exactly the "not a WSDL description" case.
|
|
14
|
+
*/
|
|
15
|
+
export declare const R2001: WsiAssertion;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { NS } from '../../../xml/namespaces.js';
|
|
2
|
+
import { childElements, optionalAttribute } from '../../../wsdl/dom-utils.js';
|
|
3
|
+
import { NOT_APPLICABLE } from '../types.js';
|
|
4
|
+
import { bundledDocumentFor, findingAt, resolveAgainst, wsdlDocuments } from './helpers.js';
|
|
5
|
+
/**
|
|
6
|
+
* BP 1.1 R2001: a description "MUST only use the WSDL 'import' statement to import another WSDL
|
|
7
|
+
* description". Every `wsdl:import` is therefore checked to point at a document whose root element
|
|
8
|
+
* is `wsdl:definitions`; an import whose target could not be fetched is left alone (the resolver
|
|
9
|
+
* already reports that as its own problem).
|
|
10
|
+
*
|
|
11
|
+
* A `wsdl:import` of an *XML Schema* violates this requirement too, but it is the subject of the
|
|
12
|
+
* more specific {@link R2002} ("use xs:import for schemas"), so it is reported there only and
|
|
13
|
+
* skipped here — otherwise every such import would be flagged twice for one construct.
|
|
14
|
+
*
|
|
15
|
+
* A target the resolver could not classify at all never reaches the bundle; it shows up as a
|
|
16
|
+
* `not-xml` resolve problem instead, which is exactly the "not a WSDL description" case.
|
|
17
|
+
*/
|
|
18
|
+
export const R2001 = {
|
|
19
|
+
id: 'R2001',
|
|
20
|
+
title: 'wsdl:import only imports WSDL documents',
|
|
21
|
+
level: 'REQUIRED',
|
|
22
|
+
section: '4.2 Document Structure',
|
|
23
|
+
check(context) {
|
|
24
|
+
const findings = [];
|
|
25
|
+
let imports = 0;
|
|
26
|
+
for (const doc of wsdlDocuments(context)) {
|
|
27
|
+
for (const importEl of childElements(doc.definitions, NS.WSDL, 'import')) {
|
|
28
|
+
const location = optionalAttribute(importEl, 'location');
|
|
29
|
+
if (location === undefined) {
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
imports += 1;
|
|
33
|
+
const resolved = resolveAgainst(location, doc.location);
|
|
34
|
+
// A bundled target is either 'wsdl' or 'xsd'; the schema case belongs to R2002, so the
|
|
35
|
+
// only violation left to report here is a target the resolver could not classify at all.
|
|
36
|
+
const target = resolved === undefined ? undefined : bundledDocumentFor(context, resolved);
|
|
37
|
+
const unclassified = target === undefined &&
|
|
38
|
+
resolved !== undefined &&
|
|
39
|
+
context.bundle.problems.some((problem) => problem.code === 'not-xml' && problem.location === resolved);
|
|
40
|
+
if (unclassified) {
|
|
41
|
+
findings.push(findingAt(doc.location, importEl, `wsdl:import location="${location}" refers to a document whose root element is not wsdl:definitions`));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return imports === 0 ? NOT_APPLICABLE : findings;
|
|
46
|
+
},
|
|
47
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { WsiAssertion } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* BP 1.1 R2002: to import XML Schema definitions, a description "MUST use the XML Schema 'import'
|
|
4
|
+
* statement" — i.e. an `xs:import` inside `wsdl:types`, never a `wsdl:import`. This flags each
|
|
5
|
+
* `wsdl:import` that resolves to an `xs:schema` document.
|
|
6
|
+
*
|
|
7
|
+
* Such an import also breaches {@link R2001} ("wsdl:import imports WSDL only"); this assertion is
|
|
8
|
+
* the more specific of the two, so R2001 defers the schema case to it and the construct is
|
|
9
|
+
* reported once.
|
|
10
|
+
*/
|
|
11
|
+
export declare const R2002: WsiAssertion;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { NS } from '../../../xml/namespaces.js';
|
|
2
|
+
import { childElements, optionalAttribute } from '../../../wsdl/dom-utils.js';
|
|
3
|
+
import { NOT_APPLICABLE } from '../types.js';
|
|
4
|
+
import { bundledDocumentFor, findingAt, resolveAgainst, wsdlDocuments } from './helpers.js';
|
|
5
|
+
/**
|
|
6
|
+
* BP 1.1 R2002: to import XML Schema definitions, a description "MUST use the XML Schema 'import'
|
|
7
|
+
* statement" — i.e. an `xs:import` inside `wsdl:types`, never a `wsdl:import`. This flags each
|
|
8
|
+
* `wsdl:import` that resolves to an `xs:schema` document.
|
|
9
|
+
*
|
|
10
|
+
* Such an import also breaches {@link R2001} ("wsdl:import imports WSDL only"); this assertion is
|
|
11
|
+
* the more specific of the two, so R2001 defers the schema case to it and the construct is
|
|
12
|
+
* reported once.
|
|
13
|
+
*/
|
|
14
|
+
export const R2002 = {
|
|
15
|
+
id: 'R2002',
|
|
16
|
+
title: 'Schemas are imported with xs:import, not wsdl:import',
|
|
17
|
+
level: 'REQUIRED',
|
|
18
|
+
section: '4.2 Document Structure',
|
|
19
|
+
check(context) {
|
|
20
|
+
const findings = [];
|
|
21
|
+
let imports = 0;
|
|
22
|
+
for (const doc of wsdlDocuments(context)) {
|
|
23
|
+
for (const importEl of childElements(doc.definitions, NS.WSDL, 'import')) {
|
|
24
|
+
const location = optionalAttribute(importEl, 'location');
|
|
25
|
+
if (location === undefined) {
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
imports += 1;
|
|
29
|
+
const resolved = resolveAgainst(location, doc.location);
|
|
30
|
+
const target = resolved === undefined ? undefined : bundledDocumentFor(context, resolved);
|
|
31
|
+
if (target?.kind === 'xsd') {
|
|
32
|
+
findings.push(findingAt(doc.location, importEl, `wsdl:import location="${location}" imports a schema; use xs:import inside wsdl:types instead`));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return imports === 0 ? NOT_APPLICABLE : findings;
|
|
37
|
+
},
|
|
38
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { WsiAssertion } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* BP 1.1 R2003: a description "MUST use the XML Schema 'import' statement only within the
|
|
4
|
+
* xsd:schema element of the types section". An `xs:import` placed directly under `wsdl:types` (or
|
|
5
|
+
* anywhere else in the document) is flagged.
|
|
6
|
+
*/
|
|
7
|
+
export declare const R2003: WsiAssertion;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { NS } from '../../../xml/namespaces.js';
|
|
2
|
+
import { NOT_APPLICABLE } from '../types.js';
|
|
3
|
+
import { descendants, findingAt, wsdlDocuments } from './helpers.js';
|
|
4
|
+
/**
|
|
5
|
+
* BP 1.1 R2003: a description "MUST use the XML Schema 'import' statement only within the
|
|
6
|
+
* xsd:schema element of the types section". An `xs:import` placed directly under `wsdl:types` (or
|
|
7
|
+
* anywhere else in the document) is flagged.
|
|
8
|
+
*/
|
|
9
|
+
export const R2003 = {
|
|
10
|
+
id: 'R2003',
|
|
11
|
+
title: 'xs:import appears only inside an xs:schema of wsdl:types',
|
|
12
|
+
level: 'REQUIRED',
|
|
13
|
+
section: '4.2 Document Structure',
|
|
14
|
+
check(context) {
|
|
15
|
+
const findings = [];
|
|
16
|
+
let imports = 0;
|
|
17
|
+
for (const doc of wsdlDocuments(context)) {
|
|
18
|
+
for (const element of descendants(doc.definitions)) {
|
|
19
|
+
if (element.namespaceURI !== NS.XSD || element.localName !== 'import') {
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
imports += 1;
|
|
23
|
+
const parent = element.parentNode;
|
|
24
|
+
const parentEl = parent !== null && parent.nodeType === 1 ? parent : undefined;
|
|
25
|
+
if (parentEl?.namespaceURI !== NS.XSD || parentEl.localName !== 'schema') {
|
|
26
|
+
findings.push(findingAt(doc.location, element, 'xs:import must be a child of an xs:schema inside wsdl:types'));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return imports === 0 ? NOT_APPLICABLE : findings;
|
|
31
|
+
},
|
|
32
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { WsiAssertion } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* BP 1.1 R2005: the `targetNamespace` of an imported schema must be identical to the `namespace`
|
|
4
|
+
* attribute of the `xs:import` that referenced it. Imports without a `schemaLocation`, and imports
|
|
5
|
+
* whose target was not fetched, carry nothing to compare and are skipped.
|
|
6
|
+
*/
|
|
7
|
+
export declare const R2005: WsiAssertion;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { NS } from '../../../xml/namespaces.js';
|
|
2
|
+
import { childElements, optionalAttribute } from '../../../wsdl/dom-utils.js';
|
|
3
|
+
import { NOT_APPLICABLE } from '../types.js';
|
|
4
|
+
import { bundledDocumentFor, findingAt, resolveAgainst, schemaElements } from './helpers.js';
|
|
5
|
+
/**
|
|
6
|
+
* BP 1.1 R2005: the `targetNamespace` of an imported schema must be identical to the `namespace`
|
|
7
|
+
* attribute of the `xs:import` that referenced it. Imports without a `schemaLocation`, and imports
|
|
8
|
+
* whose target was not fetched, carry nothing to compare and are skipped.
|
|
9
|
+
*/
|
|
10
|
+
export const R2005 = {
|
|
11
|
+
id: 'R2005',
|
|
12
|
+
title: 'An imported schema targetNamespace matches the xs:import namespace',
|
|
13
|
+
level: 'REQUIRED',
|
|
14
|
+
section: '4.2 Document Structure',
|
|
15
|
+
check(context) {
|
|
16
|
+
const findings = [];
|
|
17
|
+
let compared = 0;
|
|
18
|
+
for (const view of schemaElements(context)) {
|
|
19
|
+
for (const importEl of childElements(view.schema, NS.XSD, 'import')) {
|
|
20
|
+
const schemaLocation = optionalAttribute(importEl, 'schemaLocation');
|
|
21
|
+
if (schemaLocation === undefined) {
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
const resolved = resolveAgainst(schemaLocation, view.location);
|
|
25
|
+
const target = resolved === undefined ? undefined : bundledDocumentFor(context, resolved);
|
|
26
|
+
const root = target?.document.documentElement ?? null;
|
|
27
|
+
if (target === undefined || root === null || root.namespaceURI !== NS.XSD) {
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
compared += 1;
|
|
31
|
+
const declared = optionalAttribute(importEl, 'namespace') ?? '';
|
|
32
|
+
const actual = optionalAttribute(root, 'targetNamespace') ?? '';
|
|
33
|
+
if (declared !== actual) {
|
|
34
|
+
findings.push(findingAt(view.location, importEl, `xs:import namespace="${declared}" does not match the imported schema's targetNamespace "${actual}"`));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return compared === 0 ? NOT_APPLICABLE : findings;
|
|
39
|
+
},
|
|
40
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { WsiAssertion } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* BP 1.1 R2101: a description "MUST NOT use QName references to WSDL components in namespaces
|
|
4
|
+
* that have been neither imported, nor defined in the referring WSDL document". Checked here are
|
|
5
|
+
* the references to *WSDL* components: `wsdl:binding/@type`, `wsdl:port/@binding`, the
|
|
6
|
+
* `@message` of an abstract `wsdl:input`/`output`/`fault` and of a `soapbind:header`/
|
|
7
|
+
* `headerfault`. A `wsdl:import` *declares* a namespace rather than referring to one, so it is not
|
|
8
|
+
* itself a reference to check.
|
|
9
|
+
*
|
|
10
|
+
* The parallel requirement for *schema* components (`wsdl:part/@element|@type`) is {@link R2102}.
|
|
11
|
+
* A namespace counts as known when it is a `wsdl:definitions/@targetNamespace` or an
|
|
12
|
+
* `xs:schema/@targetNamespace` of the bundle, or the `namespace` of a `wsdl:import`/`xs:import`.
|
|
13
|
+
*/
|
|
14
|
+
export declare const R2101: WsiAssertion;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { NS } from '../../../xml/namespaces.js';
|
|
2
|
+
import { optionalAttribute } from '../../../wsdl/dom-utils.js';
|
|
3
|
+
import { NOT_APPLICABLE } from '../types.js';
|
|
4
|
+
import { SOAP_BINDING_NAMESPACES, attributeQName, declaredNamespaces, descendants, findingAt, targetNamespaceOf, wsdlDocuments, } from './helpers.js';
|
|
5
|
+
/** Every attribute of `definitions` that is a QName reference to a WSDL component. */
|
|
6
|
+
function componentReferences(definitions) {
|
|
7
|
+
const references = [];
|
|
8
|
+
for (const element of descendants(definitions)) {
|
|
9
|
+
if (element.namespaceURI === NS.WSDL) {
|
|
10
|
+
if (element.localName === 'binding' && element.parentNode === definitions) {
|
|
11
|
+
references.push({ element, attribute: 'type' });
|
|
12
|
+
}
|
|
13
|
+
else if (element.localName === 'port') {
|
|
14
|
+
references.push({ element, attribute: 'binding' });
|
|
15
|
+
}
|
|
16
|
+
else if (element.localName === 'input' || element.localName === 'output' || element.localName === 'fault') {
|
|
17
|
+
// Only the abstract sides carry @message; the binding sides do not.
|
|
18
|
+
references.push({ element, attribute: 'message' });
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
else if (SOAP_BINDING_NAMESPACES.includes(element.namespaceURI) &&
|
|
22
|
+
(element.localName === 'header' || element.localName === 'headerfault')) {
|
|
23
|
+
references.push({ element, attribute: 'message' });
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return references;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* BP 1.1 R2101: a description "MUST NOT use QName references to WSDL components in namespaces
|
|
30
|
+
* that have been neither imported, nor defined in the referring WSDL document". Checked here are
|
|
31
|
+
* the references to *WSDL* components: `wsdl:binding/@type`, `wsdl:port/@binding`, the
|
|
32
|
+
* `@message` of an abstract `wsdl:input`/`output`/`fault` and of a `soapbind:header`/
|
|
33
|
+
* `headerfault`. A `wsdl:import` *declares* a namespace rather than referring to one, so it is not
|
|
34
|
+
* itself a reference to check.
|
|
35
|
+
*
|
|
36
|
+
* The parallel requirement for *schema* components (`wsdl:part/@element|@type`) is {@link R2102}.
|
|
37
|
+
* A namespace counts as known when it is a `wsdl:definitions/@targetNamespace` or an
|
|
38
|
+
* `xs:schema/@targetNamespace` of the bundle, or the `namespace` of a `wsdl:import`/`xs:import`.
|
|
39
|
+
*/
|
|
40
|
+
export const R2101 = {
|
|
41
|
+
id: 'R2101',
|
|
42
|
+
title: 'WSDL component references name only imported or locally defined namespaces',
|
|
43
|
+
level: 'REQUIRED',
|
|
44
|
+
section: '4.4 XML Schema',
|
|
45
|
+
check(context) {
|
|
46
|
+
const known = declaredNamespaces(context);
|
|
47
|
+
const findings = [];
|
|
48
|
+
let references = 0;
|
|
49
|
+
for (const doc of wsdlDocuments(context)) {
|
|
50
|
+
const tns = targetNamespaceOf(doc.definitions);
|
|
51
|
+
for (const { element, attribute } of componentReferences(doc.definitions)) {
|
|
52
|
+
const raw = optionalAttribute(element, attribute);
|
|
53
|
+
if (raw === undefined) {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
const qname = attributeQName(element, attribute, tns);
|
|
57
|
+
references += 1;
|
|
58
|
+
if (qname === undefined || !known.has(qname.namespaceUri)) {
|
|
59
|
+
findings.push(findingAt(doc.location, element, `${element.localName ?? ''} ${attribute}="${raw}" refers to a namespace that is neither defined nor imported`));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return references === 0 ? NOT_APPLICABLE : findings;
|
|
64
|
+
},
|
|
65
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { WsiAssertion } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* BP 1.1 R2102: a QName reference to a *schema component* — the `element` or `type` of a
|
|
4
|
+
* `wsdl:part` — "MUST use the namespace defined in the targetNamespace attribute on the
|
|
5
|
+
* xsd:schema element", i.e. it must name a namespace the description actually defines or imports.
|
|
6
|
+
*
|
|
7
|
+
* The companion {@link R2101} covers references to *WSDL* components (a binding's port type, a
|
|
8
|
+
* port's binding, an operation's messages); this one covers the schema side.
|
|
9
|
+
*/
|
|
10
|
+
export declare const R2102: WsiAssertion;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { NS } from '../../../xml/namespaces.js';
|
|
2
|
+
import { childElements, optionalAttribute } from '../../../wsdl/dom-utils.js';
|
|
3
|
+
import { NOT_APPLICABLE } from '../types.js';
|
|
4
|
+
import { attributeQName, declaredNamespaces, findingAt, messageParts, targetNamespaceOf, wsdlDocuments, } from './helpers.js';
|
|
5
|
+
/**
|
|
6
|
+
* BP 1.1 R2102: a QName reference to a *schema component* — the `element` or `type` of a
|
|
7
|
+
* `wsdl:part` — "MUST use the namespace defined in the targetNamespace attribute on the
|
|
8
|
+
* xsd:schema element", i.e. it must name a namespace the description actually defines or imports.
|
|
9
|
+
*
|
|
10
|
+
* The companion {@link R2101} covers references to *WSDL* components (a binding's port type, a
|
|
11
|
+
* port's binding, an operation's messages); this one covers the schema side.
|
|
12
|
+
*/
|
|
13
|
+
export const R2102 = {
|
|
14
|
+
id: 'R2102',
|
|
15
|
+
title: 'Part element/type references name only imported or locally defined namespaces',
|
|
16
|
+
level: 'REQUIRED',
|
|
17
|
+
section: '4.4 XML Schema',
|
|
18
|
+
check(context) {
|
|
19
|
+
const known = declaredNamespaces(context);
|
|
20
|
+
const findings = [];
|
|
21
|
+
let references = 0;
|
|
22
|
+
for (const doc of wsdlDocuments(context)) {
|
|
23
|
+
const tns = targetNamespaceOf(doc.definitions);
|
|
24
|
+
for (const message of childElements(doc.definitions, NS.WSDL, 'message')) {
|
|
25
|
+
for (const part of messageParts(message)) {
|
|
26
|
+
for (const attribute of ['element', 'type']) {
|
|
27
|
+
const qname = attributeQName(part, attribute, tns);
|
|
28
|
+
if (qname === undefined) {
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
references += 1;
|
|
32
|
+
if (!known.has(qname.namespaceUri)) {
|
|
33
|
+
findings.push(findingAt(doc.location, part, `wsdl:part ${attribute}="${optionalAttribute(part, attribute) ?? ''}" is in namespace "${qname.namespaceUri}", which is neither defined nor imported`));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return references === 0 ? NOT_APPLICABLE : findings;
|
|
40
|
+
},
|
|
41
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { WsiAssertion } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* BP 1.1 R2105: every `xs:schema` contained in a `wsdl:types` element "MUST have a targetNamespace
|
|
4
|
+
* attribute with a valid and non-null value". Both an absent `targetNamespace` and a present but
|
|
5
|
+
* empty one (`targetNamespace=""`, the no-namespace schema) fail. Standalone schema documents are
|
|
6
|
+
* governed by XML Schema itself and are not examined here.
|
|
7
|
+
*/
|
|
8
|
+
export declare const R2105: WsiAssertion;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { NS } from '../../../xml/namespaces.js';
|
|
2
|
+
import { childElements, firstChildElement } from '../../../wsdl/dom-utils.js';
|
|
3
|
+
import { NOT_APPLICABLE } from '../types.js';
|
|
4
|
+
import { findingAt, wsdlDocuments } from './helpers.js';
|
|
5
|
+
/**
|
|
6
|
+
* BP 1.1 R2105: every `xs:schema` contained in a `wsdl:types` element "MUST have a targetNamespace
|
|
7
|
+
* attribute with a valid and non-null value". Both an absent `targetNamespace` and a present but
|
|
8
|
+
* empty one (`targetNamespace=""`, the no-namespace schema) fail. Standalone schema documents are
|
|
9
|
+
* governed by XML Schema itself and are not examined here.
|
|
10
|
+
*/
|
|
11
|
+
export const R2105 = {
|
|
12
|
+
id: 'R2105',
|
|
13
|
+
title: 'Every inline xs:schema declares a non-empty targetNamespace',
|
|
14
|
+
level: 'REQUIRED',
|
|
15
|
+
section: '4.4 XML Schema',
|
|
16
|
+
check(context) {
|
|
17
|
+
const findings = [];
|
|
18
|
+
let schemas = 0;
|
|
19
|
+
for (const doc of wsdlDocuments(context)) {
|
|
20
|
+
const typesEl = firstChildElement(doc.definitions, NS.WSDL, 'types');
|
|
21
|
+
if (typesEl === undefined) {
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
for (const schema of childElements(typesEl, NS.XSD, 'schema')) {
|
|
25
|
+
schemas += 1;
|
|
26
|
+
// "a valid and non-null value": an absent attribute and a present-but-empty one both
|
|
27
|
+
// fail. getAttribute is used directly because optionalAttribute collapses the two.
|
|
28
|
+
const declared = schema.getAttribute('targetNamespace');
|
|
29
|
+
if (declared === null) {
|
|
30
|
+
findings.push(findingAt(doc.location, schema, 'Inline xs:schema has no targetNamespace attribute'));
|
|
31
|
+
}
|
|
32
|
+
else if (declared === '') {
|
|
33
|
+
findings.push(findingAt(doc.location, schema, 'Inline xs:schema declares an empty targetNamespace'));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return schemas === 0 ? NOT_APPLICABLE : findings;
|
|
38
|
+
},
|
|
39
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { WsiAssertion } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* BP 1.1 R2110: in a description, "declarations MUST NOT extend or restrict the soapenc:Array
|
|
4
|
+
* type" — the SOAP 1.1 section 5 array shape is outside the profile. Every
|
|
5
|
+
* `xs:extension`/`xs:restriction` inside an `xs:complexContent` is checked against the SOAP
|
|
6
|
+
* encoding namespaces.
|
|
7
|
+
*/
|
|
8
|
+
export declare const R2110: WsiAssertion;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { NS } from '../../../xml/namespaces.js';
|
|
2
|
+
import { childElements, optionalAttribute } from '../../../wsdl/dom-utils.js';
|
|
3
|
+
import { NOT_APPLICABLE } from '../types.js';
|
|
4
|
+
import { attributeQName, descendants, findingAt, schemaElements } from './helpers.js';
|
|
5
|
+
const ENCODING_NAMESPACES = new Set([NS.SOAP11_ENC, NS.SOAP12_ENC]);
|
|
6
|
+
/**
|
|
7
|
+
* BP 1.1 R2110: in a description, "declarations MUST NOT extend or restrict the soapenc:Array
|
|
8
|
+
* type" — the SOAP 1.1 section 5 array shape is outside the profile. Every
|
|
9
|
+
* `xs:extension`/`xs:restriction` inside an `xs:complexContent` is checked against the SOAP
|
|
10
|
+
* encoding namespaces.
|
|
11
|
+
*/
|
|
12
|
+
export const R2110 = {
|
|
13
|
+
id: 'R2110',
|
|
14
|
+
title: 'No type extends or restricts soapenc:Array',
|
|
15
|
+
level: 'REQUIRED',
|
|
16
|
+
section: '4.4 XML Schema',
|
|
17
|
+
check(context) {
|
|
18
|
+
const findings = [];
|
|
19
|
+
let derivations = 0;
|
|
20
|
+
for (const view of schemaElements(context)) {
|
|
21
|
+
for (const complexContent of descendants(view.schema)) {
|
|
22
|
+
if (complexContent.namespaceURI !== NS.XSD || complexContent.localName !== 'complexContent') {
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
for (const kind of ['extension', 'restriction']) {
|
|
26
|
+
for (const derivation of childElements(complexContent, NS.XSD, kind)) {
|
|
27
|
+
derivations += 1;
|
|
28
|
+
const base = attributeQName(derivation, 'base', '');
|
|
29
|
+
if (base !== undefined && ENCODING_NAMESPACES.has(base.namespaceUri) && base.localName === 'Array') {
|
|
30
|
+
findings.push(findingAt(view.location, derivation, `xs:${kind} base="${optionalAttribute(derivation, 'base') ?? ''}" derives from soapenc:Array`));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return derivations === 0 ? NOT_APPLICABLE : findings;
|
|
37
|
+
},
|
|
38
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { WsiAssertion } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* BP 1.1 R2111: a description's type declarations "MUST NOT use the wsdl:arrayType attribute" —
|
|
4
|
+
* the SOAP-encoded array annotation has no place in a literal description.
|
|
5
|
+
*/
|
|
6
|
+
export declare const R2111: WsiAssertion;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { NS } from '../../../xml/namespaces.js';
|
|
2
|
+
import { NOT_APPLICABLE } from '../types.js';
|
|
3
|
+
import { descendants, findingAt, schemaElements } from './helpers.js';
|
|
4
|
+
/**
|
|
5
|
+
* BP 1.1 R2111: a description's type declarations "MUST NOT use the wsdl:arrayType attribute" —
|
|
6
|
+
* the SOAP-encoded array annotation has no place in a literal description.
|
|
7
|
+
*/
|
|
8
|
+
export const R2111 = {
|
|
9
|
+
id: 'R2111',
|
|
10
|
+
title: 'No type declaration carries wsdl:arrayType',
|
|
11
|
+
level: 'REQUIRED',
|
|
12
|
+
section: '4.4 XML Schema',
|
|
13
|
+
check(context) {
|
|
14
|
+
const findings = [];
|
|
15
|
+
let declarations = 0;
|
|
16
|
+
for (const view of schemaElements(context)) {
|
|
17
|
+
for (const element of descendants(view.schema)) {
|
|
18
|
+
if (element.namespaceURI !== NS.XSD) {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
declarations += 1;
|
|
22
|
+
const value = element.getAttributeNS(NS.WSDL, 'arrayType');
|
|
23
|
+
if (value !== null && value !== '') {
|
|
24
|
+
findings.push(findingAt(view.location, element, `xs:${element.localName ?? ''} carries wsdl:arrayType="${value}"`));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return declarations === 0 ? NOT_APPLICABLE : findings;
|
|
29
|
+
},
|
|
30
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { WsiAssertion } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* BP 1.1 R2112: in a description, "elements SHOULD NOT be named using the convention ArrayOfXXX" —
|
|
4
|
+
* the naming survives from SOAP encoding and misleads consumers of a literal description. This is
|
|
5
|
+
* a `SHOULD`, so a hit is reported as a warning rather than a failure.
|
|
6
|
+
*/
|
|
7
|
+
export declare const R2112: WsiAssertion;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { NS } from '../../../xml/namespaces.js';
|
|
2
|
+
import { childElements, optionalAttribute } from '../../../wsdl/dom-utils.js';
|
|
3
|
+
import { NOT_APPLICABLE } from '../types.js';
|
|
4
|
+
import { findingAt, schemaElements } from './helpers.js';
|
|
5
|
+
const ARRAY_OF = /^ArrayOf.+/;
|
|
6
|
+
/**
|
|
7
|
+
* BP 1.1 R2112: in a description, "elements SHOULD NOT be named using the convention ArrayOfXXX" —
|
|
8
|
+
* the naming survives from SOAP encoding and misleads consumers of a literal description. This is
|
|
9
|
+
* a `SHOULD`, so a hit is reported as a warning rather than a failure.
|
|
10
|
+
*/
|
|
11
|
+
export const R2112 = {
|
|
12
|
+
id: 'R2112',
|
|
13
|
+
title: 'Global declarations avoid the ArrayOfXXX naming convention',
|
|
14
|
+
level: 'RECOMMENDED',
|
|
15
|
+
section: '4.4 XML Schema',
|
|
16
|
+
check(context) {
|
|
17
|
+
const findings = [];
|
|
18
|
+
let declarations = 0;
|
|
19
|
+
for (const view of schemaElements(context)) {
|
|
20
|
+
for (const kind of ['element', 'complexType', 'simpleType']) {
|
|
21
|
+
for (const declaration of childElements(view.schema, NS.XSD, kind)) {
|
|
22
|
+
const name = optionalAttribute(declaration, 'name');
|
|
23
|
+
if (name === undefined) {
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
declarations += 1;
|
|
27
|
+
if (ARRAY_OF.test(name)) {
|
|
28
|
+
findings.push(findingAt(view.location, declaration, `xs:${kind} "${name}" uses the ArrayOfXXX naming convention`));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return declarations === 0 ? NOT_APPLICABLE : findings;
|
|
34
|
+
},
|
|
35
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { WsiAssertion } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* BP 1.1 R2201: a document-literal binding "MUST, in each of its soapbind:body element(s), have at
|
|
4
|
+
* most one part listed in the parts attribute, if the parts attribute is specified" — a literal
|
|
5
|
+
* body carries exactly one child element.
|
|
6
|
+
*/
|
|
7
|
+
export declare const R2201: WsiAssertion;
|