@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,37 @@
|
|
|
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, soapBindings } from './helpers.js';
|
|
5
|
+
/**
|
|
6
|
+
* BP 1.1 R2710: the operations of a `wsdl:binding` "MUST result in wire signatures that are
|
|
7
|
+
* different from one another".
|
|
8
|
+
*
|
|
9
|
+
* This is an **approximation**: the profile's subject is the *wire signature* (for document-literal,
|
|
10
|
+
* the qualified name of the body's first child; for rpc-literal, the wrapper element), which two
|
|
11
|
+
* differently-named operations can still share. What is checked here is the much cheaper and
|
|
12
|
+
* strictly narrower condition that no two operations of one binding share a `name` — the case
|
|
13
|
+
* that is both unambiguous and by far the most common. Operations whose names differ but whose
|
|
14
|
+
* wire signatures collide are not reported.
|
|
15
|
+
*/
|
|
16
|
+
export const R2710 = {
|
|
17
|
+
id: 'R2710',
|
|
18
|
+
title: 'Operation names are distinct within a binding (approximates wire-signature distinctness)',
|
|
19
|
+
level: 'REQUIRED',
|
|
20
|
+
section: '4.7 SOAP Binding',
|
|
21
|
+
check(context) {
|
|
22
|
+
const findings = [];
|
|
23
|
+
let operations = 0;
|
|
24
|
+
for (const view of soapBindings(context)) {
|
|
25
|
+
const seen = new Set();
|
|
26
|
+
for (const operation of childElements(view.binding, NS.WSDL, 'operation')) {
|
|
27
|
+
operations += 1;
|
|
28
|
+
const name = optionalAttribute(operation, 'name') ?? '';
|
|
29
|
+
if (seen.has(name)) {
|
|
30
|
+
findings.push(findingAt(view.location, operation, `wsdl:binding "${optionalAttribute(view.binding, 'name') ?? ''}" declares more than one operation named "${name}"`));
|
|
31
|
+
}
|
|
32
|
+
seen.add(name);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return operations === 0 ? NOT_APPLICABLE : findings;
|
|
36
|
+
},
|
|
37
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { WsiAssertion } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* BP 1.1 R2716: a document-literal binding "MUST NOT have the namespace attribute specified on
|
|
4
|
+
* contained soapbind:body, soapbind:header, soapbind:headerfault and soapbind:fault elements" —
|
|
5
|
+
* the namespace comes from the global element declaration the part names.
|
|
6
|
+
*/
|
|
7
|
+
export declare const R2716: WsiAssertion;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { optionalAttribute } from '../../../wsdl/dom-utils.js';
|
|
2
|
+
import { NOT_APPLICABLE } from '../types.js';
|
|
3
|
+
import { findingAt, soapExtensions } from './helpers.js';
|
|
4
|
+
/**
|
|
5
|
+
* BP 1.1 R2716: a document-literal binding "MUST NOT have the namespace attribute specified on
|
|
6
|
+
* contained soapbind:body, soapbind:header, soapbind:headerfault and soapbind:fault elements" —
|
|
7
|
+
* the namespace comes from the global element declaration the part names.
|
|
8
|
+
*/
|
|
9
|
+
export const R2716 = {
|
|
10
|
+
id: 'R2716',
|
|
11
|
+
title: 'document-literal soapbind elements declare no namespace attribute',
|
|
12
|
+
level: 'REQUIRED',
|
|
13
|
+
section: '4.7 SOAP Binding',
|
|
14
|
+
check(context) {
|
|
15
|
+
const findings = [];
|
|
16
|
+
let elements = 0;
|
|
17
|
+
for (const view of soapExtensions(context)) {
|
|
18
|
+
if (view.style !== 'document') {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
elements += 1;
|
|
22
|
+
const namespace = optionalAttribute(view.element, 'namespace');
|
|
23
|
+
if (namespace !== undefined) {
|
|
24
|
+
findings.push(findingAt(view.location, view.element, `document-literal soapbind:${view.kind} declares namespace="${namespace}"`));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return elements === 0 ? NOT_APPLICABLE : findings;
|
|
28
|
+
},
|
|
29
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { WsiAssertion } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* BP 1.1 R2717: an rpc-literal binding "MUST have the namespace attribute specified" on every
|
|
4
|
+
* contained `soapbind:body` — the operation wrapper element needs a namespace to live in.
|
|
5
|
+
*
|
|
6
|
+
* What that namespace may *be* is a separate requirement: {@link R2803} forbids a relative URI
|
|
7
|
+
* there. This assertion only checks that the attribute is present.
|
|
8
|
+
*/
|
|
9
|
+
export declare const R2717: WsiAssertion;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { optionalAttribute } from '../../../wsdl/dom-utils.js';
|
|
2
|
+
import { NOT_APPLICABLE } from '../types.js';
|
|
3
|
+
import { findingAt, soapExtensions } from './helpers.js';
|
|
4
|
+
/**
|
|
5
|
+
* BP 1.1 R2717: an rpc-literal binding "MUST have the namespace attribute specified" on every
|
|
6
|
+
* contained `soapbind:body` — the operation wrapper element needs a namespace to live in.
|
|
7
|
+
*
|
|
8
|
+
* What that namespace may *be* is a separate requirement: {@link R2803} forbids a relative URI
|
|
9
|
+
* there. This assertion only checks that the attribute is present.
|
|
10
|
+
*/
|
|
11
|
+
export const R2717 = {
|
|
12
|
+
id: 'R2717',
|
|
13
|
+
title: 'rpc-literal soapbind:body declares a namespace attribute',
|
|
14
|
+
level: 'REQUIRED',
|
|
15
|
+
section: '4.7 SOAP Binding',
|
|
16
|
+
check(context) {
|
|
17
|
+
const findings = [];
|
|
18
|
+
let bodies = 0;
|
|
19
|
+
for (const view of soapExtensions(context)) {
|
|
20
|
+
if (view.style !== 'rpc' || view.kind !== 'body') {
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
bodies += 1;
|
|
24
|
+
const namespace = optionalAttribute(view.element, 'namespace');
|
|
25
|
+
if (namespace === undefined) {
|
|
26
|
+
findings.push(findingAt(view.location, view.element, 'rpc-literal soapbind:body has no namespace attribute'));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return bodies === 0 ? NOT_APPLICABLE : findings;
|
|
30
|
+
},
|
|
31
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { WsiAssertion } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* BP 1.1 R2718: a `wsdl:binding` "MUST have the same set of wsdl:operations as the wsdl:portType
|
|
4
|
+
* to which it refers" — a binding may neither bind an operation the interface does not declare nor
|
|
5
|
+
* leave one of its operations unbound.
|
|
6
|
+
*/
|
|
7
|
+
export declare const R2718: 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 { findingAt, portTypeOf, soapBindings, wsdlDocuments } from './helpers.js';
|
|
5
|
+
/**
|
|
6
|
+
* BP 1.1 R2718: a `wsdl:binding` "MUST have the same set of wsdl:operations as the wsdl:portType
|
|
7
|
+
* to which it refers" — a binding may neither bind an operation the interface does not declare nor
|
|
8
|
+
* leave one of its operations unbound.
|
|
9
|
+
*/
|
|
10
|
+
export const R2718 = {
|
|
11
|
+
id: 'R2718',
|
|
12
|
+
title: 'A binding binds exactly the operations of its portType',
|
|
13
|
+
level: 'REQUIRED',
|
|
14
|
+
section: '4.7 SOAP Binding',
|
|
15
|
+
check(context) {
|
|
16
|
+
const definitionsByLocation = new Map(wsdlDocuments(context).map((doc) => [doc.location, doc.definitions]));
|
|
17
|
+
const findings = [];
|
|
18
|
+
let compared = 0;
|
|
19
|
+
for (const view of soapBindings(context)) {
|
|
20
|
+
const definitions = definitionsByLocation.get(view.location);
|
|
21
|
+
const portType = definitions === undefined ? undefined : portTypeOf(context, view, definitions);
|
|
22
|
+
if (portType === undefined) {
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
compared += 1;
|
|
26
|
+
const bound = new Set(childElements(view.binding, NS.WSDL, 'operation').map((operation) => optionalAttribute(operation, 'name') ?? ''));
|
|
27
|
+
const declared = new Set(childElements(portType.element, NS.WSDL, 'operation').map((operation) => optionalAttribute(operation, 'name') ?? ''));
|
|
28
|
+
for (const name of bound) {
|
|
29
|
+
if (!declared.has(name)) {
|
|
30
|
+
findings.push(findingAt(view.location, view.binding, `Binding operation "${name}" is not declared by the portType`));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
for (const name of declared) {
|
|
34
|
+
if (!bound.has(name)) {
|
|
35
|
+
findings.push(findingAt(view.location, view.binding, `portType operation "${name}" is not bound`));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return compared === 0 ? NOT_APPLICABLE : findings;
|
|
40
|
+
},
|
|
41
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { WsiAssertion } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* BP 1.1 R2720: a `wsdl:binding` "MUST use the part attribute with a schema type of 'NMTOKEN' on
|
|
4
|
+
* all contained soapbind:header and soapbind:headerfault elements" — one header binds exactly one
|
|
5
|
+
* part, so a whitespace-separated list is out of profile.
|
|
6
|
+
*/
|
|
7
|
+
export declare const R2720: WsiAssertion;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { optionalAttribute } from '../../../wsdl/dom-utils.js';
|
|
2
|
+
import { NOT_APPLICABLE } from '../types.js';
|
|
3
|
+
import { findingAt, soapExtensions } from './helpers.js';
|
|
4
|
+
/**
|
|
5
|
+
* BP 1.1 R2720: a `wsdl:binding` "MUST use the part attribute with a schema type of 'NMTOKEN' on
|
|
6
|
+
* all contained soapbind:header and soapbind:headerfault elements" — one header binds exactly one
|
|
7
|
+
* part, so a whitespace-separated list is out of profile.
|
|
8
|
+
*/
|
|
9
|
+
export const R2720 = {
|
|
10
|
+
id: 'R2720',
|
|
11
|
+
title: 'soapbind:header and headerfault name exactly one part',
|
|
12
|
+
level: 'REQUIRED',
|
|
13
|
+
section: '4.7 SOAP Binding',
|
|
14
|
+
check(context) {
|
|
15
|
+
const findings = [];
|
|
16
|
+
let headers = 0;
|
|
17
|
+
for (const view of soapExtensions(context)) {
|
|
18
|
+
if (view.kind !== 'header' && view.kind !== 'headerfault') {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
headers += 1;
|
|
22
|
+
const part = optionalAttribute(view.element, 'part');
|
|
23
|
+
if (part === undefined || /\s/.test(part.trim())) {
|
|
24
|
+
findings.push(findingAt(view.location, view.element, `soapbind:${view.kind} part="${part ?? ''}" must name exactly one wsdl:part`));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return headers === 0 ? NOT_APPLICABLE : findings;
|
|
28
|
+
},
|
|
29
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { WsiAssertion } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* BP 1.1 R2721: a `wsdl:binding` "MUST have the name attribute specified on all contained
|
|
4
|
+
* soapbind:fault elements" — without it the fault cannot be tied to the abstract `wsdl:fault`.
|
|
5
|
+
*/
|
|
6
|
+
export declare const R2721: WsiAssertion;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { optionalAttribute } from '../../../wsdl/dom-utils.js';
|
|
2
|
+
import { NOT_APPLICABLE } from '../types.js';
|
|
3
|
+
import { findingAt, soapExtensions } from './helpers.js';
|
|
4
|
+
/**
|
|
5
|
+
* BP 1.1 R2721: a `wsdl:binding` "MUST have the name attribute specified on all contained
|
|
6
|
+
* soapbind:fault elements" — without it the fault cannot be tied to the abstract `wsdl:fault`.
|
|
7
|
+
*/
|
|
8
|
+
export const R2721 = {
|
|
9
|
+
id: 'R2721',
|
|
10
|
+
title: 'Every soapbind:fault carries a name attribute',
|
|
11
|
+
level: 'REQUIRED',
|
|
12
|
+
section: '4.7 SOAP Binding',
|
|
13
|
+
check(context) {
|
|
14
|
+
const findings = [];
|
|
15
|
+
let faults = 0;
|
|
16
|
+
for (const view of soapExtensions(context)) {
|
|
17
|
+
if (view.kind !== 'fault') {
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
faults += 1;
|
|
21
|
+
if (optionalAttribute(view.element, 'name') === undefined) {
|
|
22
|
+
findings.push(findingAt(view.location, view.element, 'soapbind:fault has no name attribute'));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return faults === 0 ? NOT_APPLICABLE : findings;
|
|
26
|
+
},
|
|
27
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { WsiAssertion } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* BP 1.1 R2722: when a `soapbind:fault` carries a name attribute, its value "MUST match the value
|
|
4
|
+
* of the name attribute of the parent wsdl:fault" — the two describe the same fault.
|
|
5
|
+
*/
|
|
6
|
+
export declare const R2722: WsiAssertion;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { optionalAttribute } from '../../../wsdl/dom-utils.js';
|
|
2
|
+
import { NOT_APPLICABLE } from '../types.js';
|
|
3
|
+
import { findingAt, soapExtensions } from './helpers.js';
|
|
4
|
+
/**
|
|
5
|
+
* BP 1.1 R2722: when a `soapbind:fault` carries a name attribute, its value "MUST match the value
|
|
6
|
+
* of the name attribute of the parent wsdl:fault" — the two describe the same fault.
|
|
7
|
+
*/
|
|
8
|
+
export const R2722 = {
|
|
9
|
+
id: 'R2722',
|
|
10
|
+
title: 'A soapbind:fault name matches its parent wsdl:fault',
|
|
11
|
+
level: 'REQUIRED',
|
|
12
|
+
section: '4.7 SOAP Binding',
|
|
13
|
+
check(context) {
|
|
14
|
+
const findings = [];
|
|
15
|
+
let faults = 0;
|
|
16
|
+
for (const view of soapExtensions(context)) {
|
|
17
|
+
const name = view.kind === 'fault' ? optionalAttribute(view.element, 'name') : undefined;
|
|
18
|
+
if (name === undefined || view.wsdlFault === undefined) {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
faults += 1;
|
|
22
|
+
const parentName = optionalAttribute(view.wsdlFault, 'name');
|
|
23
|
+
if (parentName !== name) {
|
|
24
|
+
findings.push(findingAt(view.location, view.element, `soapbind:fault name="${name}" does not match the enclosing wsdl:fault name="${parentName ?? ''}"`));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return faults === 0 ? NOT_APPLICABLE : findings;
|
|
28
|
+
},
|
|
29
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { WsiAssertion } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* BP 1.1 R2801: a description "MUST use XML Schema 1.0 Recommendation as the basis of user defined
|
|
4
|
+
* datatypes and structures" — a `wsdl:types` section holding a schema in one of the superseded
|
|
5
|
+
* XML Schema draft namespaces is out of profile.
|
|
6
|
+
*/
|
|
7
|
+
export declare const R2801: WsiAssertion;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { NS } from '../../../xml/namespaces.js';
|
|
2
|
+
import { 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 R2801: a description "MUST use XML Schema 1.0 Recommendation as the basis of user defined
|
|
7
|
+
* datatypes and structures" — a `wsdl:types` section holding a schema in one of the superseded
|
|
8
|
+
* XML Schema draft namespaces is out of profile.
|
|
9
|
+
*/
|
|
10
|
+
export const R2801 = {
|
|
11
|
+
id: 'R2801',
|
|
12
|
+
title: 'Type definitions use the XML Schema 1.0 namespace',
|
|
13
|
+
level: 'REQUIRED',
|
|
14
|
+
section: '4.9 Namespaces',
|
|
15
|
+
check(context) {
|
|
16
|
+
const findings = [];
|
|
17
|
+
let children = 0;
|
|
18
|
+
for (const doc of wsdlDocuments(context)) {
|
|
19
|
+
const typesEl = firstChildElement(doc.definitions, NS.WSDL, 'types');
|
|
20
|
+
if (typesEl === undefined) {
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
for (let child = typesEl.firstChild; child !== null; child = child.nextSibling) {
|
|
24
|
+
if (child.nodeType !== 1) {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
const element = child;
|
|
28
|
+
if (element.localName !== 'schema') {
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
children += 1;
|
|
32
|
+
if (element.namespaceURI !== NS.XSD) {
|
|
33
|
+
findings.push(findingAt(doc.location, element, `wsdl:types holds a schema in namespace "${element.namespaceURI ?? ''}" rather than XML Schema 1.0`));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return children === 0 ? NOT_APPLICABLE : findings;
|
|
38
|
+
},
|
|
39
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { WsiAssertion } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* BP 1.1 R2803: in a description, "the namespace attribute on the soapbind:body, soapbind:header,
|
|
4
|
+
* soapbind:headerfault and soapbind:fault elements MUST NOT be a relative URI" — a relative value
|
|
5
|
+
* has no stable base once the description moves.
|
|
6
|
+
*/
|
|
7
|
+
export declare const R2803: WsiAssertion;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { optionalAttribute } from '../../../wsdl/dom-utils.js';
|
|
2
|
+
import { NOT_APPLICABLE } from '../types.js';
|
|
3
|
+
import { findingAt, isAbsoluteUri, soapExtensions } from './helpers.js';
|
|
4
|
+
/**
|
|
5
|
+
* BP 1.1 R2803: in a description, "the namespace attribute on the soapbind:body, soapbind:header,
|
|
6
|
+
* soapbind:headerfault and soapbind:fault elements MUST NOT be a relative URI" — a relative value
|
|
7
|
+
* has no stable base once the description moves.
|
|
8
|
+
*/
|
|
9
|
+
export const R2803 = {
|
|
10
|
+
id: 'R2803',
|
|
11
|
+
title: 'soapbind namespace attributes are absolute URIs',
|
|
12
|
+
level: 'REQUIRED',
|
|
13
|
+
section: '4.9 Namespaces',
|
|
14
|
+
check(context) {
|
|
15
|
+
const findings = [];
|
|
16
|
+
let namespaces = 0;
|
|
17
|
+
for (const view of soapExtensions(context)) {
|
|
18
|
+
const namespace = optionalAttribute(view.element, 'namespace');
|
|
19
|
+
if (namespace === undefined) {
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
namespaces += 1;
|
|
23
|
+
if (!isAbsoluteUri(namespace)) {
|
|
24
|
+
findings.push(findingAt(view.location, view.element, `soapbind:${view.kind} namespace="${namespace}" is a relative URI`));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return namespaces === 0 ? NOT_APPLICABLE : findings;
|
|
28
|
+
},
|
|
29
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Renders the assertion catalogue as Markdown.
|
|
3
|
+
*
|
|
4
|
+
* `docs/ws-i-assertions.md` is generated from this by `scripts/wsi-docs.ts` (`pnpm wsi:docs`), and
|
|
5
|
+
* `scripts/wsi-docs.test.ts` fails when the committed file drifts from the registry — the registry
|
|
6
|
+
* stays the single source of truth.
|
|
7
|
+
*/
|
|
8
|
+
import type { WsiAssertion, WsiAssertionLevel, WsiMessageAssertion } from './types.js';
|
|
9
|
+
/** One assertion the catalogue names but does not implement yet. */
|
|
10
|
+
export interface PlannedAssertion {
|
|
11
|
+
readonly id: string;
|
|
12
|
+
readonly level: WsiAssertionLevel;
|
|
13
|
+
readonly title: string;
|
|
14
|
+
readonly notes: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Assertions within the ranges the catalogue covers that are known to be missing, so the generated
|
|
18
|
+
* document states the gap instead of implying the profile is fully covered.
|
|
19
|
+
*/
|
|
20
|
+
export declare const WSI_PLANNED_ASSERTIONS: readonly PlannedAssertion[];
|
|
21
|
+
/**
|
|
22
|
+
* Renders the catalogue: one table of implemented description assertions, one of implemented
|
|
23
|
+
* message assertions, and one of the known gaps.
|
|
24
|
+
*
|
|
25
|
+
* @param assertions the implemented description catalogue (defaults to the registry)
|
|
26
|
+
* @param planned the known gaps (defaults to {@link WSI_PLANNED_ASSERTIONS})
|
|
27
|
+
* @param messages the implemented message catalogue (defaults to the registry)
|
|
28
|
+
*/
|
|
29
|
+
export declare function renderWsiAssertionsMarkdown(assertions?: readonly WsiAssertion[], planned?: readonly PlannedAssertion[], messages?: readonly WsiMessageAssertion[]): string;
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Renders the assertion catalogue as Markdown.
|
|
3
|
+
*
|
|
4
|
+
* `docs/ws-i-assertions.md` is generated from this by `scripts/wsi-docs.ts` (`pnpm wsi:docs`), and
|
|
5
|
+
* `scripts/wsi-docs.test.ts` fails when the committed file drifts from the registry — the registry
|
|
6
|
+
* stays the single source of truth.
|
|
7
|
+
*/
|
|
8
|
+
import { WSI_WSDL_ASSERTIONS } from './assertions/index.js';
|
|
9
|
+
import { WSI_MESSAGE_ASSERTIONS } from './assertions/message/index.js';
|
|
10
|
+
/**
|
|
11
|
+
* Assertions within the ranges the catalogue covers that are known to be missing, so the generated
|
|
12
|
+
* document states the gap instead of implying the profile is fully covered.
|
|
13
|
+
*/
|
|
14
|
+
export const WSI_PLANNED_ASSERTIONS = Object.freeze([
|
|
15
|
+
{
|
|
16
|
+
id: 'R2004',
|
|
17
|
+
level: 'REQUIRED',
|
|
18
|
+
title: 'An xs:import must not name a document whose root element is not xs:schema',
|
|
19
|
+
notes: 'Needs the resolver to keep documents it could not classify as a schema.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
id: 'R2114',
|
|
23
|
+
level: 'REQUIRED',
|
|
24
|
+
title: 'A description’s schema constructs stay within the profile’s XML Schema subset',
|
|
25
|
+
notes: 'Id and requirement text not verified against the published profile.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
id: 'R2202',
|
|
29
|
+
level: 'RECOMMENDED',
|
|
30
|
+
title: 'A description prefers the wrapped document-literal convention',
|
|
31
|
+
notes: 'Planned.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
id: 'R2207',
|
|
35
|
+
level: 'REQUIRED',
|
|
36
|
+
title: 'A wsdl:message part uses either the element or the type attribute, not both',
|
|
37
|
+
notes: 'Id and requirement text not verified against the published profile.',
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
id: 'R2208',
|
|
41
|
+
level: 'REQUIRED',
|
|
42
|
+
title: 'An rpc-literal operation’s parameterOrder names only parts of its messages',
|
|
43
|
+
notes: 'Id and requirement text not verified against the published profile.',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
id: 'R1104',
|
|
47
|
+
level: 'REQUIRED',
|
|
48
|
+
title: 'A faultcode value is one of the four standard codes, or a QName outside the SOAP namespace',
|
|
49
|
+
notes: 'Message-level; id and requirement text not verified against the published profile.',
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
id: 'R2301',
|
|
53
|
+
level: 'REQUIRED',
|
|
54
|
+
title: 'The order of body children matches the order of the wsdl:parts',
|
|
55
|
+
notes: 'Message-level; not yet in the message assertion catalogue (see the Messages table).',
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
id: 'R2302',
|
|
59
|
+
level: 'REQUIRED',
|
|
60
|
+
title: 'An rpc-literal envelope names its part accessors after the wsdl:parts',
|
|
61
|
+
notes: 'Message-level; not yet in the message assertion catalogue (see the Messages table).',
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
id: 'R2305',
|
|
65
|
+
level: 'REQUIRED',
|
|
66
|
+
title: 'A document-literal envelope carries the element declared by the bound part',
|
|
67
|
+
notes: 'Message-level; not yet in the message assertion catalogue (see the Messages table).',
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
id: 'R2707',
|
|
71
|
+
level: 'REQUIRED',
|
|
72
|
+
title: 'Every soapbind element states the use attribute explicitly',
|
|
73
|
+
notes: 'R2706 only checks the ones that state it; stating it is a separate requirement.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
id: 'R2724',
|
|
77
|
+
level: 'REQUIRED',
|
|
78
|
+
title: 'An instance places the parts a soapbind:header names in the SOAP header',
|
|
79
|
+
notes: 'Message-level; id and requirement text not verified against the published profile.',
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
id: 'R2725',
|
|
83
|
+
level: 'REQUIRED',
|
|
84
|
+
title: 'An instance places the parts a soapbind:headerfault names in a header fault',
|
|
85
|
+
notes: 'Message-level; id and requirement text not verified against the published profile.',
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
id: 'R2726',
|
|
89
|
+
level: 'REQUIRED',
|
|
90
|
+
title: 'An instance must not carry a soapbind:header part the binding does not declare',
|
|
91
|
+
notes: 'Message-level; id and requirement text not verified against the published profile.',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
id: 'R2802',
|
|
95
|
+
level: 'REQUIRED',
|
|
96
|
+
title: 'The description declares the WSDL 1.1 namespaces the profile mandates',
|
|
97
|
+
notes: 'Planned.',
|
|
98
|
+
},
|
|
99
|
+
]);
|
|
100
|
+
/** Escapes the pipe characters that would break a Markdown table cell. */
|
|
101
|
+
function cell(value) {
|
|
102
|
+
return value.replace(/\|/g, '\\|');
|
|
103
|
+
}
|
|
104
|
+
/** Renders one assertion as a row of the implemented table. */
|
|
105
|
+
function implementedRow(assertion) {
|
|
106
|
+
return `| ${assertion.id} | ${assertion.level} | ${cell(assertion.title)} | ${assertion.unverifiedId === true ? 'Implemented (id unverified)' : 'Implemented'} | ${cell(assertion.section)} |`;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Renders the catalogue: one table of implemented description assertions, one of implemented
|
|
110
|
+
* message assertions, and one of the known gaps.
|
|
111
|
+
*
|
|
112
|
+
* @param assertions the implemented description catalogue (defaults to the registry)
|
|
113
|
+
* @param planned the known gaps (defaults to {@link WSI_PLANNED_ASSERTIONS})
|
|
114
|
+
* @param messages the implemented message catalogue (defaults to the registry)
|
|
115
|
+
*/
|
|
116
|
+
export function renderWsiAssertionsMarkdown(assertions = WSI_WSDL_ASSERTIONS, planned = WSI_PLANNED_ASSERTIONS, messages = WSI_MESSAGE_ASSERTIONS) {
|
|
117
|
+
const lines = [
|
|
118
|
+
'# WS-I Basic Profile 1.1 assertions',
|
|
119
|
+
'',
|
|
120
|
+
'<!--',
|
|
121
|
+
' Generated by `pnpm wsi:docs` from packages/engine/src/validate/wsi/assertions/index.ts.',
|
|
122
|
+
' Do not edit by hand: `pnpm wsi:docs --check` (and scripts/wsi-docs.test.ts) fail on drift.',
|
|
123
|
+
'-->',
|
|
124
|
+
'',
|
|
125
|
+
`Wirebench implements ${assertions.length} description-level and ${messages.length} message-level`,
|
|
126
|
+
'assertions of the WS-I Basic Profile 1.1.',
|
|
127
|
+
'Each is evaluated against a description and reports `passed`, `failed` (a `REQUIRED`',
|
|
128
|
+
'assertion), `warning` (a `RECOMMENDED` one) or `notApplicable` when the construct it examines',
|
|
129
|
+
'does not occur. Profile requirement text is paraphrased; see the profile itself for the',
|
|
130
|
+
'normative wording.',
|
|
131
|
+
'',
|
|
132
|
+
'A row marked *id unverified* implements a requirement Wirebench is confident about but whose',
|
|
133
|
+
'requirement **number** could not be confirmed against the published profile; treat the id as',
|
|
134
|
+
'provisional. The Planned table lists every id in the ranges this catalogue covers',
|
|
135
|
+
'(`R2001`–`R2005`, `R2101`–`R2114`, `R2201`–`R2211`, `R2301`–`R2305`, `R2401`, `R2701`–`R2726`,',
|
|
136
|
+
'`R2801`–`R2803`) that is known to be missing, so the coverage above is not overstated.',
|
|
137
|
+
'',
|
|
138
|
+
'## Implemented — descriptions',
|
|
139
|
+
'',
|
|
140
|
+
'Evaluated against a WSDL description by `runWsdlAssertions`.',
|
|
141
|
+
'',
|
|
142
|
+
'| Id | Level | Title | Status | Section |',
|
|
143
|
+
'| --- | --- | --- | --- | --- |',
|
|
144
|
+
...assertions.map(implementedRow),
|
|
145
|
+
'',
|
|
146
|
+
'## Implemented — messages',
|
|
147
|
+
'',
|
|
148
|
+
'Evaluated against one SOAP exchange — request and response — by `runMessageAssertions`.',
|
|
149
|
+
'Every `R1xxx` row below is marked *id unverified*: the requirements are real and are',
|
|
150
|
+
'implemented as described, but ws-i.org could not be reached from the environment this',
|
|
151
|
+
"catalogue was written in, so the requirement **numbers** are Wirebench's best attribution",
|
|
152
|
+
'rather than a transcription. Quote the titles, not the ids, until they have been checked',
|
|
153
|
+
'against the published profile.',
|
|
154
|
+
'',
|
|
155
|
+
'| Id | Level | Title | Status | Section |',
|
|
156
|
+
'| --- | --- | --- | --- | --- |',
|
|
157
|
+
...messages.map(implementedRow),
|
|
158
|
+
'',
|
|
159
|
+
'## Planned',
|
|
160
|
+
'',
|
|
161
|
+
'| Id | Level | Title | Status | Notes |',
|
|
162
|
+
'| --- | --- | --- | --- | --- |',
|
|
163
|
+
...planned.map((entry) => `| ${entry.id} | ${entry.level} | ${cell(entry.title)} | Planned | ${cell(entry.notes)} |`),
|
|
164
|
+
'',
|
|
165
|
+
];
|
|
166
|
+
return `${lines.join('\n')}`;
|
|
167
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WS-I Basic Profile 1.1 conformance analysis: of a WSDL description (`run-wsdl.ts`) and of one
|
|
3
|
+
* SOAP exchange (`run-message.ts`), plus the shared HTML report renderer.
|
|
4
|
+
*/
|
|
5
|
+
export type { WsiAssertion, WsiAssertionLevel, WsiAssertionReport, WsiAssertionResult, WsiCheckOutcome, WsiFinding, WsiLocation, WsiNotApplicable, WsiReport, WsiSummary, WsiWsdlContext, WsiMessageAssertion, WsiMessageBinding, WsiMessageContext, WsiMessageDirection, WsiMessageView, } from './types.js';
|
|
6
|
+
export { NOT_APPLICABLE, isNotApplicable } from './types.js';
|
|
7
|
+
export { WSI_WSDL_ASSERTIONS } from './assertions/index.js';
|
|
8
|
+
export { runWsdlAssertions, wsiWsdlContext, wsiProblems } from './run-wsdl.js';
|
|
9
|
+
export type { RunWsdlAssertionsOptions, WsiWsdlContextInput } from './run-wsdl.js';
|
|
10
|
+
export { WSI_MESSAGE_ASSERTIONS } from './assertions/message/index.js';
|
|
11
|
+
export { messageBindingFor, runMessageAssertions, wsiMessageContext } from './run-message.js';
|
|
12
|
+
export type { RunMessageAssertionsOptions } from './run-message.js';
|
|
13
|
+
export { escapeHtml, renderWsiReportHtml } from './report-html.js';
|
|
14
|
+
export type { RenderWsiReportHtmlOptions } from './report-html.js';
|
|
15
|
+
export { renderWsiAssertionsMarkdown, WSI_PLANNED_ASSERTIONS } from './docs.js';
|
|
16
|
+
export type { PlannedAssertion } from './docs.js';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WS-I Basic Profile 1.1 conformance analysis: of a WSDL description (`run-wsdl.ts`) and of one
|
|
3
|
+
* SOAP exchange (`run-message.ts`), plus the shared HTML report renderer.
|
|
4
|
+
*/
|
|
5
|
+
export { NOT_APPLICABLE, isNotApplicable } from './types.js';
|
|
6
|
+
export { WSI_WSDL_ASSERTIONS } from './assertions/index.js';
|
|
7
|
+
export { runWsdlAssertions, wsiWsdlContext, wsiProblems } from './run-wsdl.js';
|
|
8
|
+
export { WSI_MESSAGE_ASSERTIONS } from './assertions/message/index.js';
|
|
9
|
+
export { messageBindingFor, runMessageAssertions, wsiMessageContext } from './run-message.js';
|
|
10
|
+
export { escapeHtml, renderWsiReportHtml } from './report-html.js';
|
|
11
|
+
export { renderWsiAssertionsMarkdown, WSI_PLANNED_ASSERTIONS } from './docs.js';
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Renders a {@link WsiReport} as a self-contained HTML document.
|
|
3
|
+
*
|
|
4
|
+
* "Self-contained" is the whole point: the file a user exports has to open from a mail
|
|
5
|
+
* attachment, a ticket, or a shared drive years from now, so it carries its own inline CSS and
|
|
6
|
+
* nothing else — no script, no font, no stylesheet, no image, nothing that resolves over the
|
|
7
|
+
* network. Every value that reaches the markup goes through {@link escapeHtml} first: a finding
|
|
8
|
+
* quotes the offending element's name straight out of somebody else's message.
|
|
9
|
+
*/
|
|
10
|
+
import type { WsiReport } from './types.js';
|
|
11
|
+
/** Escapes the five characters that could otherwise close a tag or an attribute. */
|
|
12
|
+
export declare function escapeHtml(value: string): string;
|
|
13
|
+
/** Options for {@link renderWsiReportHtml}. */
|
|
14
|
+
export interface RenderWsiReportHtmlOptions {
|
|
15
|
+
/** The document title and page heading, e.g. the interface or request name. */
|
|
16
|
+
readonly title: string;
|
|
17
|
+
/**
|
|
18
|
+
* The timestamp printed in the header, as an ISO 8601 string. Injected rather than read from
|
|
19
|
+
* the clock so the output is a deterministic function of its input (and so the snapshot test
|
|
20
|
+
* has something stable to compare).
|
|
21
|
+
*/
|
|
22
|
+
readonly generatedAt: string;
|
|
23
|
+
/**
|
|
24
|
+
* Whether the table includes the `passed`/`notApplicable` rows the report carries. It only
|
|
25
|
+
* ever *removes* rows: a report produced without `verbose` has no passing rows to show.
|
|
26
|
+
*/
|
|
27
|
+
readonly verbose?: boolean;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Renders one WS-I report as a standalone HTML document.
|
|
31
|
+
*
|
|
32
|
+
* @param report the report to render, from `runWsdlAssertions` or `runMessageAssertions`
|
|
33
|
+
* @param options the heading, the (injected) timestamp, and whether to keep non-failing rows
|
|
34
|
+
* @returns a complete HTML document with no external references of any kind
|
|
35
|
+
*/
|
|
36
|
+
export declare function renderWsiReportHtml(report: WsiReport, options: RenderWsiReportHtmlOptions): string;
|