@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,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File-system naming and layout for a project folder.
|
|
3
|
+
*
|
|
4
|
+
* Display names live inside the YAML; the folder/file names are `slugify(name)`
|
|
5
|
+
* so a project stays readable and diffable in git while remaining portable
|
|
6
|
+
* across Windows, macOS and Linux.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Derives a portable file-system name from a display name.
|
|
10
|
+
*
|
|
11
|
+
* Case is preserved (a folder called `CountryInfo` should read as `CountryInfo`);
|
|
12
|
+
* whitespace runs collapse to a single space; characters illegal on any
|
|
13
|
+
* supported OS become `_`; leading/trailing dots and spaces are replaced by a
|
|
14
|
+
* single `_`; the result is capped at 80 characters and never empty.
|
|
15
|
+
*/
|
|
16
|
+
export declare function slugify(name: string): string;
|
|
17
|
+
/**
|
|
18
|
+
* Sanitises a candidate on-disk *file* name (as opposed to {@link slugify},
|
|
19
|
+
* which sanitises a display name into a directory/base segment): illegal
|
|
20
|
+
* characters become `_`, whitespace collapses, but unlike `slugify` a
|
|
21
|
+
* hyphen or a run of internal dots is left untouched, since file names
|
|
22
|
+
* legitimately contain both (`get-weather.xsd`). Never empty.
|
|
23
|
+
*/
|
|
24
|
+
export declare function sanitiseFileName(name: string): string;
|
|
25
|
+
/**
|
|
26
|
+
* True when `name` (a full file name, extension included) is a Windows
|
|
27
|
+
* reserved device name — `CON`, `NUL`, `COM1`, ... — with or without an
|
|
28
|
+
* extension.
|
|
29
|
+
*/
|
|
30
|
+
export declare function isReservedFileName(name: string): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Returns `slugify(name)`, or that slug plus a `-N` suffix when it is already
|
|
33
|
+
* taken. Comparison is case-insensitive because macOS and Windows file systems
|
|
34
|
+
* usually are.
|
|
35
|
+
*/
|
|
36
|
+
export declare function uniqueSlug(name: string, taken: ReadonlySet<string>): string;
|
|
37
|
+
/**
|
|
38
|
+
* Rejects a value that cannot safely be used as a single path segment on disk:
|
|
39
|
+
* empty, `.`/`..`, containing a path separator or NUL, leading/trailing
|
|
40
|
+
* whitespace or dots, or a Windows reserved device name. Used to validate any
|
|
41
|
+
* slug or file reference that flows into a project file path before it is
|
|
42
|
+
* ever written to (or deleted from) disk.
|
|
43
|
+
*
|
|
44
|
+
* @throws ProjectError `project-path-invalid` carrying the offending segment.
|
|
45
|
+
*/
|
|
46
|
+
export declare function assertPathSegment(segment: string): void;
|
|
47
|
+
/**
|
|
48
|
+
* Validates a `WssRef.file` value: it must be a relative path (no leading
|
|
49
|
+
* slash or drive letter), rooted at {@link WSS_DIR}, whose every segment
|
|
50
|
+
* passes {@link assertPathSegment} — so it can never resolve outside
|
|
51
|
+
* `wss/` no matter how it was constructed.
|
|
52
|
+
*
|
|
53
|
+
* @throws ProjectError `project-path-invalid` carrying the offending segment.
|
|
54
|
+
*/
|
|
55
|
+
export declare function assertWssRelativePath(file: string): void;
|
|
56
|
+
/** Directory holding every interface. */
|
|
57
|
+
export declare const INTERFACES_DIR = "interfaces";
|
|
58
|
+
/** Directory holding every environment file. */
|
|
59
|
+
export declare const ENVIRONMENTS_DIR = "environments";
|
|
60
|
+
/** Directory holding WS-Security configurations. */
|
|
61
|
+
export declare const WSS_DIR = "wss";
|
|
62
|
+
/** Per-interface directory holding the cached WSDL/XSD documents (owned by the definition-cache task). */
|
|
63
|
+
export declare const DEFINITION_DIR = "definition";
|
|
64
|
+
/** Per-interface directory holding operation folders. */
|
|
65
|
+
export declare const OPERATIONS_DIR = "operations";
|
|
66
|
+
/** Project-level directory holding cached attachment bytes (owned by the attachments task). */
|
|
67
|
+
export declare const ATTACHMENTS_DIR = "attachments";
|
|
68
|
+
/** Suffix identifying a request metadata file. */
|
|
69
|
+
export declare const REQUEST_SUFFIX = ".request.yaml";
|
|
70
|
+
/** Directory holding every REST API, beside `interfaces/`. */
|
|
71
|
+
export declare const APIS_DIR = "apis";
|
|
72
|
+
/** Per-API directory holding the request tree: request files and folder directories. */
|
|
73
|
+
export declare const REQUESTS_DIR = "requests";
|
|
74
|
+
/** File naming a folder inside an API's request tree. */
|
|
75
|
+
export declare const FOLDER_FILE = "folder.yaml";
|
|
76
|
+
/** File describing an API. */
|
|
77
|
+
export declare const API_FILE = "api.yaml";
|
|
78
|
+
/**
|
|
79
|
+
* How deeply folders may nest inside an API's request tree.
|
|
80
|
+
*
|
|
81
|
+
* Eight is not a taste judgement: `apis/<slug>/requests/` plus eight 80-character folder slugs
|
|
82
|
+
* plus a request file already sits close to the 260-character path limit Windows still applies to
|
|
83
|
+
* many APIs, and a tree deeper than this is unreadable in an explorer anyway. A folder below the
|
|
84
|
+
* cap loads as a {@link ProjectProblem} rather than being written to a path that might not open.
|
|
85
|
+
*/
|
|
86
|
+
export declare const MAX_FOLDER_DEPTH = 8;
|
|
87
|
+
/** Absolute path of the project manifest. */
|
|
88
|
+
export declare function manifestFile(root: string): string;
|
|
89
|
+
/** Absolute path of an interface's directory. */
|
|
90
|
+
export declare function interfaceDir(root: string, interfaceSlug: string): string;
|
|
91
|
+
/** Absolute path of an interface's metadata file. */
|
|
92
|
+
export declare function interfaceFile(root: string, interfaceSlug: string): string;
|
|
93
|
+
/** Absolute path of an interface's definition cache directory (`interfaces/<slug>/definition/`). */
|
|
94
|
+
export declare function definitionDir(root: string, interfaceSlug: string): string;
|
|
95
|
+
/**
|
|
96
|
+
* Alias of {@link definitionDir} under the name the desktop facade (Task 21)
|
|
97
|
+
* calls it by: the directory passed as `cache.dir` to `importDefinition`.
|
|
98
|
+
*/
|
|
99
|
+
export declare const definitionCacheDir: typeof definitionDir;
|
|
100
|
+
/** Absolute path of an operation's directory. */
|
|
101
|
+
export declare function operationDir(root: string, interfaceSlug: string, operationSlug: string): string;
|
|
102
|
+
/** The two files a request occupies: its YAML metadata and its verbatim envelope. */
|
|
103
|
+
export interface RequestFilePair {
|
|
104
|
+
readonly yaml: string;
|
|
105
|
+
readonly xml: string;
|
|
106
|
+
}
|
|
107
|
+
/** Absolute paths of a request's YAML and XML files. */
|
|
108
|
+
export declare function requestFiles(root: string, interfaceSlug: string, operationSlug: string, requestSlug: string): RequestFilePair;
|
|
109
|
+
/** Absolute path of an API's directory (`apis/<slug>/`). */
|
|
110
|
+
export declare function apiDir(root: string, apiSlug: string): string;
|
|
111
|
+
/** Absolute path of an API's metadata file. */
|
|
112
|
+
export declare function apiFile(root: string, apiSlug: string): string;
|
|
113
|
+
/** Absolute path of an API's definition cache directory (`apis/<slug>/definition/`). */
|
|
114
|
+
export declare function apiDefinitionDir(root: string, apiSlug: string): string;
|
|
115
|
+
/**
|
|
116
|
+
* Absolute path of a directory inside an API's request tree: `apis/<slug>/requests/` itself when
|
|
117
|
+
* `folderSlugs` is empty, and one directory per folder below it otherwise.
|
|
118
|
+
*/
|
|
119
|
+
export declare function restFolderDir(root: string, apiSlug: string, folderSlugs?: readonly string[]): string;
|
|
120
|
+
/** Absolute path of the `folder.yaml` describing the folder at `folderSlugs`. */
|
|
121
|
+
export declare function restFolderFile(root: string, apiSlug: string, folderSlugs: readonly string[]): string;
|
|
122
|
+
/** Absolute path of a REST request's metadata file. */
|
|
123
|
+
export declare function restRequestFile(root: string, apiSlug: string, folderSlugs: readonly string[], requestSlug: string): string;
|
|
124
|
+
/**
|
|
125
|
+
* The file name a raw body is stored under, beside its request file: `<slug>.body.<ext>`, the
|
|
126
|
+
* extension chosen by the body's language so the file diffs and highlights as what it is.
|
|
127
|
+
*/
|
|
128
|
+
export declare function restBodyFileName(requestSlug: string, extension: string): string;
|
|
129
|
+
/** Absolute path of an environment file. */
|
|
130
|
+
export declare function environmentFile(root: string, environmentSlug: string): string;
|
|
131
|
+
/** Absolute path of a WS-Security configuration file. */
|
|
132
|
+
export declare function wssFile(root: string, direction: 'outgoing' | 'incoming', name: string): string;
|
|
133
|
+
/** Absolute path of the keystore registry file. */
|
|
134
|
+
export declare function keystoresFile(root: string): string;
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File-system naming and layout for a project folder.
|
|
3
|
+
*
|
|
4
|
+
* Display names live inside the YAML; the folder/file names are `slugify(name)`
|
|
5
|
+
* so a project stays readable and diffable in git while remaining portable
|
|
6
|
+
* across Windows, macOS and Linux.
|
|
7
|
+
*/
|
|
8
|
+
import { join } from 'node:path';
|
|
9
|
+
import { ProjectError } from '../errors.js';
|
|
10
|
+
/** Longest slug we emit; leaves room for the `.request.yaml` suffix within common path limits. */
|
|
11
|
+
const MAX_SLUG_LENGTH = 80;
|
|
12
|
+
/** Characters that are illegal in a path segment on at least one supported OS. */
|
|
13
|
+
const ILLEGAL_CHARS = /[<>:"/\\|?*\u0000-\u001f\u007f]/g;
|
|
14
|
+
/** Device names Windows refuses to use as a file name, with or without an extension. */
|
|
15
|
+
const RESERVED_NAMES = /^(?:con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\.|$)/i;
|
|
16
|
+
/** True for the two characters a path segment must not begin or end with on Windows. */
|
|
17
|
+
function isDotOrSpace(code) {
|
|
18
|
+
return code === 0x2e || code === 0x20;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Replaces a leading run and a trailing run of dots/spaces with one `_` each. A single pass over
|
|
22
|
+
* the ends rather than an unanchored `[. ]+$`, which backtracks quadratically on a long run of
|
|
23
|
+
* dots and spaces that a display name from a file may contain.
|
|
24
|
+
*/
|
|
25
|
+
function replaceEdgeDotsAndSpaces(value) {
|
|
26
|
+
let start = 0;
|
|
27
|
+
while (start < value.length && isDotOrSpace(value.charCodeAt(start))) {
|
|
28
|
+
start += 1;
|
|
29
|
+
}
|
|
30
|
+
if (start === value.length) {
|
|
31
|
+
return start === 0 ? value : '_';
|
|
32
|
+
}
|
|
33
|
+
let end = value.length;
|
|
34
|
+
while (end > start && isDotOrSpace(value.charCodeAt(end - 1))) {
|
|
35
|
+
end -= 1;
|
|
36
|
+
}
|
|
37
|
+
return `${start > 0 ? '_' : ''}${value.slice(start, end)}${end < value.length ? '_' : ''}`;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Derives a portable file-system name from a display name.
|
|
41
|
+
*
|
|
42
|
+
* Case is preserved (a folder called `CountryInfo` should read as `CountryInfo`);
|
|
43
|
+
* whitespace runs collapse to a single space; characters illegal on any
|
|
44
|
+
* supported OS become `_`; leading/trailing dots and spaces are replaced by a
|
|
45
|
+
* single `_`; the result is capped at 80 characters and never empty.
|
|
46
|
+
*/
|
|
47
|
+
export function slugify(name) {
|
|
48
|
+
let slug = name.replace(/\s+/g, ' ').replace(ILLEGAL_CHARS, '_');
|
|
49
|
+
slug = slug.trim();
|
|
50
|
+
slug = replaceEdgeDotsAndSpaces(slug);
|
|
51
|
+
if (slug.length > MAX_SLUG_LENGTH) {
|
|
52
|
+
slug = replaceEdgeDotsAndSpaces(slug.slice(0, MAX_SLUG_LENGTH));
|
|
53
|
+
}
|
|
54
|
+
if (slug === '') {
|
|
55
|
+
return 'unnamed';
|
|
56
|
+
}
|
|
57
|
+
return RESERVED_NAMES.test(slug) ? `${slug}_` : slug;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Sanitises a candidate on-disk *file* name (as opposed to {@link slugify},
|
|
61
|
+
* which sanitises a display name into a directory/base segment): illegal
|
|
62
|
+
* characters become `_`, whitespace collapses, but unlike `slugify` a
|
|
63
|
+
* hyphen or a run of internal dots is left untouched, since file names
|
|
64
|
+
* legitimately contain both (`get-weather.xsd`). Never empty.
|
|
65
|
+
*/
|
|
66
|
+
export function sanitiseFileName(name) {
|
|
67
|
+
const cleaned = name.replace(/\s+/g, ' ').trim().replace(ILLEGAL_CHARS, '_');
|
|
68
|
+
return cleaned === '' ? 'document' : cleaned;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* True when `name` (a full file name, extension included) is a Windows
|
|
72
|
+
* reserved device name — `CON`, `NUL`, `COM1`, ... — with or without an
|
|
73
|
+
* extension.
|
|
74
|
+
*/
|
|
75
|
+
export function isReservedFileName(name) {
|
|
76
|
+
return RESERVED_NAMES.test(name);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Returns `slugify(name)`, or that slug plus a `-N` suffix when it is already
|
|
80
|
+
* taken. Comparison is case-insensitive because macOS and Windows file systems
|
|
81
|
+
* usually are.
|
|
82
|
+
*/
|
|
83
|
+
export function uniqueSlug(name, taken) {
|
|
84
|
+
const base = slugify(name);
|
|
85
|
+
const lower = new Set([...taken].map((s) => s.toLowerCase()));
|
|
86
|
+
if (!lower.has(base.toLowerCase())) {
|
|
87
|
+
return base;
|
|
88
|
+
}
|
|
89
|
+
for (let n = 2;; n += 1) {
|
|
90
|
+
const candidate = `${base}-${n}`;
|
|
91
|
+
if (!lower.has(candidate.toLowerCase())) {
|
|
92
|
+
return candidate;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Rejects a value that cannot safely be used as a single path segment on disk:
|
|
98
|
+
* empty, `.`/`..`, containing a path separator or NUL, leading/trailing
|
|
99
|
+
* whitespace or dots, or a Windows reserved device name. Used to validate any
|
|
100
|
+
* slug or file reference that flows into a project file path before it is
|
|
101
|
+
* ever written to (or deleted from) disk.
|
|
102
|
+
*
|
|
103
|
+
* @throws ProjectError `project-path-invalid` carrying the offending segment.
|
|
104
|
+
*/
|
|
105
|
+
export function assertPathSegment(segment) {
|
|
106
|
+
const invalid = segment === '' ||
|
|
107
|
+
segment === '.' ||
|
|
108
|
+
segment === '..' ||
|
|
109
|
+
segment.includes('/') ||
|
|
110
|
+
segment.includes('\\') ||
|
|
111
|
+
segment.includes('\u0000') ||
|
|
112
|
+
/^[. ]/.test(segment) ||
|
|
113
|
+
/[. ]$/.test(segment) ||
|
|
114
|
+
RESERVED_NAMES.test(segment);
|
|
115
|
+
if (invalid) {
|
|
116
|
+
throw new ProjectError('project-path-invalid', `Invalid path segment: ${JSON.stringify(segment)}`, {
|
|
117
|
+
details: { segment },
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Validates a `WssRef.file` value: it must be a relative path (no leading
|
|
123
|
+
* slash or drive letter), rooted at {@link WSS_DIR}, whose every segment
|
|
124
|
+
* passes {@link assertPathSegment} — so it can never resolve outside
|
|
125
|
+
* `wss/` no matter how it was constructed.
|
|
126
|
+
*
|
|
127
|
+
* @throws ProjectError `project-path-invalid` carrying the offending segment.
|
|
128
|
+
*/
|
|
129
|
+
export function assertWssRelativePath(file) {
|
|
130
|
+
const fail = (segment) => {
|
|
131
|
+
throw new ProjectError('project-path-invalid', `Invalid WSS file reference: ${JSON.stringify(file)}`, {
|
|
132
|
+
details: { segment, file },
|
|
133
|
+
});
|
|
134
|
+
};
|
|
135
|
+
if (file === '' ||
|
|
136
|
+
file.includes('\\') ||
|
|
137
|
+
file.includes('\u0000') ||
|
|
138
|
+
file.startsWith('/') ||
|
|
139
|
+
/^[A-Za-z]:/.test(file)) {
|
|
140
|
+
fail(file);
|
|
141
|
+
}
|
|
142
|
+
const segments = file.split('/');
|
|
143
|
+
if (segments[0] !== WSS_DIR || segments.length < 2) {
|
|
144
|
+
fail(file);
|
|
145
|
+
}
|
|
146
|
+
for (const segment of segments.slice(1)) {
|
|
147
|
+
assertPathSegment(segment);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
/** Directory holding every interface. */
|
|
151
|
+
export const INTERFACES_DIR = 'interfaces';
|
|
152
|
+
/** Directory holding every environment file. */
|
|
153
|
+
export const ENVIRONMENTS_DIR = 'environments';
|
|
154
|
+
/** Directory holding WS-Security configurations. */
|
|
155
|
+
export const WSS_DIR = 'wss';
|
|
156
|
+
/** Per-interface directory holding the cached WSDL/XSD documents (owned by the definition-cache task). */
|
|
157
|
+
export const DEFINITION_DIR = 'definition';
|
|
158
|
+
/** Per-interface directory holding operation folders. */
|
|
159
|
+
export const OPERATIONS_DIR = 'operations';
|
|
160
|
+
/** Project-level directory holding cached attachment bytes (owned by the attachments task). */
|
|
161
|
+
export const ATTACHMENTS_DIR = 'attachments';
|
|
162
|
+
/** Suffix identifying a request metadata file. */
|
|
163
|
+
export const REQUEST_SUFFIX = '.request.yaml';
|
|
164
|
+
/** Directory holding every REST API, beside `interfaces/`. */
|
|
165
|
+
export const APIS_DIR = 'apis';
|
|
166
|
+
/** Per-API directory holding the request tree: request files and folder directories. */
|
|
167
|
+
export const REQUESTS_DIR = 'requests';
|
|
168
|
+
/** File naming a folder inside an API's request tree. */
|
|
169
|
+
export const FOLDER_FILE = 'folder.yaml';
|
|
170
|
+
/** File describing an API. */
|
|
171
|
+
export const API_FILE = 'api.yaml';
|
|
172
|
+
/**
|
|
173
|
+
* How deeply folders may nest inside an API's request tree.
|
|
174
|
+
*
|
|
175
|
+
* Eight is not a taste judgement: `apis/<slug>/requests/` plus eight 80-character folder slugs
|
|
176
|
+
* plus a request file already sits close to the 260-character path limit Windows still applies to
|
|
177
|
+
* many APIs, and a tree deeper than this is unreadable in an explorer anyway. A folder below the
|
|
178
|
+
* cap loads as a {@link ProjectProblem} rather than being written to a path that might not open.
|
|
179
|
+
*/
|
|
180
|
+
export const MAX_FOLDER_DEPTH = 8;
|
|
181
|
+
/** Absolute path of the project manifest. */
|
|
182
|
+
export function manifestFile(root) {
|
|
183
|
+
return join(root, 'wirebench.yaml');
|
|
184
|
+
}
|
|
185
|
+
/** Absolute path of an interface's directory. */
|
|
186
|
+
export function interfaceDir(root, interfaceSlug) {
|
|
187
|
+
return join(root, INTERFACES_DIR, interfaceSlug);
|
|
188
|
+
}
|
|
189
|
+
/** Absolute path of an interface's metadata file. */
|
|
190
|
+
export function interfaceFile(root, interfaceSlug) {
|
|
191
|
+
return join(interfaceDir(root, interfaceSlug), 'interface.yaml');
|
|
192
|
+
}
|
|
193
|
+
/** Absolute path of an interface's definition cache directory (`interfaces/<slug>/definition/`). */
|
|
194
|
+
export function definitionDir(root, interfaceSlug) {
|
|
195
|
+
return join(interfaceDir(root, interfaceSlug), DEFINITION_DIR);
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Alias of {@link definitionDir} under the name the desktop facade (Task 21)
|
|
199
|
+
* calls it by: the directory passed as `cache.dir` to `importDefinition`.
|
|
200
|
+
*/
|
|
201
|
+
export const definitionCacheDir = definitionDir;
|
|
202
|
+
/** Absolute path of an operation's directory. */
|
|
203
|
+
export function operationDir(root, interfaceSlug, operationSlug) {
|
|
204
|
+
return join(interfaceDir(root, interfaceSlug), OPERATIONS_DIR, operationSlug);
|
|
205
|
+
}
|
|
206
|
+
/** Absolute paths of a request's YAML and XML files. */
|
|
207
|
+
export function requestFiles(root, interfaceSlug, operationSlug, requestSlug) {
|
|
208
|
+
const dir = operationDir(root, interfaceSlug, operationSlug);
|
|
209
|
+
return {
|
|
210
|
+
yaml: join(dir, `${requestSlug}${REQUEST_SUFFIX}`),
|
|
211
|
+
xml: join(dir, `${requestSlug}.xml`),
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
/** Absolute path of an API's directory (`apis/<slug>/`). */
|
|
215
|
+
export function apiDir(root, apiSlug) {
|
|
216
|
+
return join(root, APIS_DIR, apiSlug);
|
|
217
|
+
}
|
|
218
|
+
/** Absolute path of an API's metadata file. */
|
|
219
|
+
export function apiFile(root, apiSlug) {
|
|
220
|
+
return join(apiDir(root, apiSlug), API_FILE);
|
|
221
|
+
}
|
|
222
|
+
/** Absolute path of an API's definition cache directory (`apis/<slug>/definition/`). */
|
|
223
|
+
export function apiDefinitionDir(root, apiSlug) {
|
|
224
|
+
return join(apiDir(root, apiSlug), DEFINITION_DIR);
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Absolute path of a directory inside an API's request tree: `apis/<slug>/requests/` itself when
|
|
228
|
+
* `folderSlugs` is empty, and one directory per folder below it otherwise.
|
|
229
|
+
*/
|
|
230
|
+
export function restFolderDir(root, apiSlug, folderSlugs = []) {
|
|
231
|
+
return join(apiDir(root, apiSlug), REQUESTS_DIR, ...folderSlugs);
|
|
232
|
+
}
|
|
233
|
+
/** Absolute path of the `folder.yaml` describing the folder at `folderSlugs`. */
|
|
234
|
+
export function restFolderFile(root, apiSlug, folderSlugs) {
|
|
235
|
+
return join(restFolderDir(root, apiSlug, folderSlugs), FOLDER_FILE);
|
|
236
|
+
}
|
|
237
|
+
/** Absolute path of a REST request's metadata file. */
|
|
238
|
+
export function restRequestFile(root, apiSlug, folderSlugs, requestSlug) {
|
|
239
|
+
return join(restFolderDir(root, apiSlug, folderSlugs), `${requestSlug}${REQUEST_SUFFIX}`);
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* The file name a raw body is stored under, beside its request file: `<slug>.body.<ext>`, the
|
|
243
|
+
* extension chosen by the body's language so the file diffs and highlights as what it is.
|
|
244
|
+
*/
|
|
245
|
+
export function restBodyFileName(requestSlug, extension) {
|
|
246
|
+
return `${requestSlug}.body.${extension}`;
|
|
247
|
+
}
|
|
248
|
+
/** Absolute path of an environment file. */
|
|
249
|
+
export function environmentFile(root, environmentSlug) {
|
|
250
|
+
return join(root, ENVIRONMENTS_DIR, `${environmentSlug}.yaml`);
|
|
251
|
+
}
|
|
252
|
+
/** Absolute path of a WS-Security configuration file. */
|
|
253
|
+
export function wssFile(root, direction, name) {
|
|
254
|
+
return join(root, WSS_DIR, direction, `${name}.yaml`);
|
|
255
|
+
}
|
|
256
|
+
/** Absolute path of the keystore registry file. */
|
|
257
|
+
export function keystoresFile(root) {
|
|
258
|
+
return join(root, WSS_DIR, 'keystores.yaml');
|
|
259
|
+
}
|