@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.
Files changed (583) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +3 -0
  3. package/dist/assert/contract.d.ts +3 -0
  4. package/dist/assert/contract.js +17 -0
  5. package/dist/assert/index.d.ts +4 -0
  6. package/dist/assert/index.js +27 -0
  7. package/dist/assert/match.d.ts +3 -0
  8. package/dist/assert/match.js +58 -0
  9. package/dist/assert/model.d.ts +73 -0
  10. package/dist/assert/model.js +8 -0
  11. package/dist/assert/schema.d.ts +34 -0
  12. package/dist/assert/schema.js +46 -0
  13. package/dist/assert/sla.d.ts +3 -0
  14. package/dist/assert/sla.js +8 -0
  15. package/dist/assert/soap-fault.d.ts +3 -0
  16. package/dist/assert/soap-fault.js +20 -0
  17. package/dist/assert/status.d.ts +3 -0
  18. package/dist/assert/status.js +14 -0
  19. package/dist/errors.d.ts +77 -0
  20. package/dist/errors.js +121 -0
  21. package/dist/fs.d.ts +35 -0
  22. package/dist/fs.js +64 -0
  23. package/dist/generate.d.ts +12 -0
  24. package/dist/generate.js +14 -0
  25. package/dist/grpc/browser.d.ts +11 -0
  26. package/dist/grpc/browser.js +9 -0
  27. package/dist/grpc/cache.d.ts +113 -0
  28. package/dist/grpc/cache.js +244 -0
  29. package/dist/grpc/call.d.ts +64 -0
  30. package/dist/grpc/call.js +72 -0
  31. package/dist/grpc/codec.d.ts +29 -0
  32. package/dist/grpc/codec.js +416 -0
  33. package/dist/grpc/command.d.ts +23 -0
  34. package/dist/grpc/command.js +91 -0
  35. package/dist/grpc/expand.d.ts +25 -0
  36. package/dist/grpc/expand.js +52 -0
  37. package/dist/grpc/framing.d.ts +28 -0
  38. package/dist/grpc/framing.js +61 -0
  39. package/dist/grpc/import.d.ts +47 -0
  40. package/dist/grpc/import.js +88 -0
  41. package/dist/grpc/model.d.ts +179 -0
  42. package/dist/grpc/model.js +91 -0
  43. package/dist/grpc/proto/describe.d.ts +92 -0
  44. package/dist/grpc/proto/describe.js +205 -0
  45. package/dist/grpc/proto/load.d.ts +35 -0
  46. package/dist/grpc/proto/load.js +112 -0
  47. package/dist/grpc/proto/sample.d.ts +21 -0
  48. package/dist/grpc/proto/sample.js +79 -0
  49. package/dist/grpc/proto/well-known.d.ts +42 -0
  50. package/dist/grpc/proto/well-known.js +143 -0
  51. package/dist/grpc/reconcile.d.ts +42 -0
  52. package/dist/grpc/reconcile.js +153 -0
  53. package/dist/grpc/reflection/client.d.ts +70 -0
  54. package/dist/grpc/reflection/client.js +197 -0
  55. package/dist/grpc/reflection/descriptors.d.ts +69 -0
  56. package/dist/grpc/reflection/descriptors.js +140 -0
  57. package/dist/grpc/reflection/proto.d.ts +33 -0
  58. package/dist/grpc/reflection/proto.js +144 -0
  59. package/dist/grpc/send.d.ts +132 -0
  60. package/dist/grpc/send.js +435 -0
  61. package/dist/grpc/shape.d.ts +29 -0
  62. package/dist/grpc/shape.js +36 -0
  63. package/dist/grpc/status.d.ts +21 -0
  64. package/dist/grpc/status.js +62 -0
  65. package/dist/grpc/target.d.ts +21 -0
  66. package/dist/grpc/target.js +66 -0
  67. package/dist/http/auth/apply.d.ts +37 -0
  68. package/dist/http/auth/apply.js +74 -0
  69. package/dist/http/auth/basic.d.ts +36 -0
  70. package/dist/http/auth/basic.js +69 -0
  71. package/dist/http/auth/md4.d.ts +13 -0
  72. package/dist/http/auth/md4.js +81 -0
  73. package/dist/http/auth/ntlm-transport.d.ts +61 -0
  74. package/dist/http/auth/ntlm-transport.js +97 -0
  75. package/dist/http/auth/ntlm.d.ts +190 -0
  76. package/dist/http/auth/ntlm.js +377 -0
  77. package/dist/http/client.d.ts +73 -0
  78. package/dist/http/client.js +403 -0
  79. package/dist/http/curl-flags.d.ts +15 -0
  80. package/dist/http/curl-flags.js +95 -0
  81. package/dist/http/curl.d.ts +94 -0
  82. package/dist/http/curl.js +245 -0
  83. package/dist/http/decompress.d.ts +7 -0
  84. package/dist/http/decompress.js +22 -0
  85. package/dist/http/errors.d.ts +22 -0
  86. package/dist/http/errors.js +144 -0
  87. package/dist/http/failed-request.d.ts +27 -0
  88. package/dist/http/failed-request.js +48 -0
  89. package/dist/http/headers.d.ts +15 -0
  90. package/dist/http/headers.js +50 -0
  91. package/dist/http/heredoc.d.ts +25 -0
  92. package/dist/http/heredoc.js +74 -0
  93. package/dist/http/proxy.d.ts +103 -0
  94. package/dist/http/proxy.js +168 -0
  95. package/dist/http/raw-capture.d.ts +23 -0
  96. package/dist/http/raw-capture.js +57 -0
  97. package/dist/http/timings.d.ts +79 -0
  98. package/dist/http/timings.js +212 -0
  99. package/dist/http/tls.d.ts +111 -0
  100. package/dist/http/tls.js +167 -0
  101. package/dist/http/types.d.ts +125 -0
  102. package/dist/http/types.js +6 -0
  103. package/dist/import-detect.d.ts +26 -0
  104. package/dist/import-detect.js +169 -0
  105. package/dist/import.d.ts +20 -0
  106. package/dist/import.js +163 -0
  107. package/dist/index.d.ts +272 -0
  108. package/dist/index.js +157 -0
  109. package/dist/json/cursor.d.ts +43 -0
  110. package/dist/json/cursor.js +168 -0
  111. package/dist/operations.d.ts +12 -0
  112. package/dist/operations.js +52 -0
  113. package/dist/project/attachments-cache.d.ts +80 -0
  114. package/dist/project/attachments-cache.js +186 -0
  115. package/dist/project/endpoints.d.ts +23 -0
  116. package/dist/project/endpoints.js +47 -0
  117. package/dist/project/environments.d.ts +68 -0
  118. package/dist/project/environments.js +124 -0
  119. package/dist/project/fs.d.ts +45 -0
  120. package/dist/project/fs.js +78 -0
  121. package/dist/project/history.d.ts +171 -0
  122. package/dist/project/history.js +179 -0
  123. package/dist/project/keystores.d.ts +24 -0
  124. package/dist/project/keystores.js +66 -0
  125. package/dist/project/load.d.ts +44 -0
  126. package/dist/project/load.js +634 -0
  127. package/dist/project/migrate.d.ts +27 -0
  128. package/dist/project/migrate.js +46 -0
  129. package/dist/project/model.d.ts +401 -0
  130. package/dist/project/model.js +126 -0
  131. package/dist/project/paths.d.ts +134 -0
  132. package/dist/project/paths.js +259 -0
  133. package/dist/project/preferences.d.ts +318 -0
  134. package/dist/project/preferences.js +239 -0
  135. package/dist/project/properties.d.ts +97 -0
  136. package/dist/project/properties.js +356 -0
  137. package/dist/project/save.d.ts +65 -0
  138. package/dist/project/save.js +295 -0
  139. package/dist/project/schema.d.ts +1329 -0
  140. package/dist/project/schema.js +737 -0
  141. package/dist/project/serialize.d.ts +42 -0
  142. package/dist/project/serialize.js +385 -0
  143. package/dist/project/wss-configs.d.ts +40 -0
  144. package/dist/project/wss-configs.js +142 -0
  145. package/dist/project/yaml.d.ts +17 -0
  146. package/dist/project/yaml.js +39 -0
  147. package/dist/redact/index.d.ts +77 -0
  148. package/dist/redact/index.js +328 -0
  149. package/dist/redact/literal.d.ts +12 -0
  150. package/dist/redact/literal.js +68 -0
  151. package/dist/rest/auth.d.ts +53 -0
  152. package/dist/rest/auth.js +80 -0
  153. package/dist/rest/body.d.ts +61 -0
  154. package/dist/rest/body.js +184 -0
  155. package/dist/rest/browser.d.ts +12 -0
  156. package/dist/rest/browser.js +11 -0
  157. package/dist/rest/cookies.d.ts +41 -0
  158. package/dist/rest/cookies.js +102 -0
  159. package/dist/rest/curl.d.ts +75 -0
  160. package/dist/rest/curl.js +417 -0
  161. package/dist/rest/expand.d.ts +35 -0
  162. package/dist/rest/expand.js +104 -0
  163. package/dist/rest/model.d.ts +247 -0
  164. package/dist/rest/model.js +118 -0
  165. package/dist/rest/oauth2.d.ts +118 -0
  166. package/dist/rest/oauth2.js +212 -0
  167. package/dist/rest/openapi/cache.d.ts +54 -0
  168. package/dist/rest/openapi/cache.js +128 -0
  169. package/dist/rest/openapi/import.d.ts +67 -0
  170. package/dist/rest/openapi/import.js +91 -0
  171. package/dist/rest/openapi/map.d.ts +102 -0
  172. package/dist/rest/openapi/map.js +477 -0
  173. package/dist/rest/openapi/model.d.ts +203 -0
  174. package/dist/rest/openapi/model.js +37 -0
  175. package/dist/rest/openapi/parse.d.ts +44 -0
  176. package/dist/rest/openapi/parse.js +1530 -0
  177. package/dist/rest/openapi/refs.d.ts +63 -0
  178. package/dist/rest/openapi/refs.js +258 -0
  179. package/dist/rest/openapi/sample.d.ts +68 -0
  180. package/dist/rest/openapi/sample.js +336 -0
  181. package/dist/rest/postman/import.d.ts +21 -0
  182. package/dist/rest/postman/import.js +47 -0
  183. package/dist/rest/postman/index.d.ts +7 -0
  184. package/dist/rest/postman/index.js +7 -0
  185. package/dist/rest/postman/map.d.ts +28 -0
  186. package/dist/rest/postman/map.js +427 -0
  187. package/dist/rest/postman/model.d.ts +118 -0
  188. package/dist/rest/postman/model.js +7 -0
  189. package/dist/rest/postman/parse.d.ts +29 -0
  190. package/dist/rest/postman/parse.js +518 -0
  191. package/dist/rest/response.d.ts +72 -0
  192. package/dist/rest/response.js +221 -0
  193. package/dist/rest/send.d.ts +102 -0
  194. package/dist/rest/send.js +148 -0
  195. package/dist/rest/url.d.ts +92 -0
  196. package/dist/rest/url.js +213 -0
  197. package/dist/run/effective-auth.d.ts +10 -0
  198. package/dist/run/effective-auth.js +19 -0
  199. package/dist/run/index.d.ts +8 -0
  200. package/dist/run/index.js +4 -0
  201. package/dist/run/prepare.d.ts +43 -0
  202. package/dist/run/prepare.js +280 -0
  203. package/dist/run/run.d.ts +53 -0
  204. package/dist/run/run.js +223 -0
  205. package/dist/run/secret-needs.d.ts +13 -0
  206. package/dist/run/secret-needs.js +125 -0
  207. package/dist/run/select.d.ts +34 -0
  208. package/dist/run/select.js +76 -0
  209. package/dist/secrets/env-names.d.ts +27 -0
  210. package/dist/secrets/env-names.js +40 -0
  211. package/dist/secrets/resolve.d.ts +58 -0
  212. package/dist/secrets/resolve.js +136 -0
  213. package/dist/send-options.d.ts +141 -0
  214. package/dist/send-options.js +228 -0
  215. package/dist/send.d.ts +53 -0
  216. package/dist/send.js +210 -0
  217. package/dist/soap/body-builder.d.ts +38 -0
  218. package/dist/soap/body-builder.js +250 -0
  219. package/dist/soap/build-problems.d.ts +12 -0
  220. package/dist/soap/build-problems.js +2 -0
  221. package/dist/soap/charset.d.ts +23 -0
  222. package/dist/soap/charset.js +47 -0
  223. package/dist/soap/envelope.d.ts +44 -0
  224. package/dist/soap/envelope.js +76 -0
  225. package/dist/soap/fault.d.ts +46 -0
  226. package/dist/soap/fault.js +129 -0
  227. package/dist/soap/form-request.d.ts +34 -0
  228. package/dist/soap/form-request.js +251 -0
  229. package/dist/soap/legacy-project/definition-fetcher.d.ts +21 -0
  230. package/dist/soap/legacy-project/definition-fetcher.js +43 -0
  231. package/dist/soap/legacy-project/format.d.ts +18 -0
  232. package/dist/soap/legacy-project/format.js +24 -0
  233. package/dist/soap/legacy-project/import.d.ts +21 -0
  234. package/dist/soap/legacy-project/import.js +46 -0
  235. package/dist/soap/legacy-project/index.d.ts +9 -0
  236. package/dist/soap/legacy-project/index.js +5 -0
  237. package/dist/soap/legacy-project/map.d.ts +91 -0
  238. package/dist/soap/legacy-project/map.js +290 -0
  239. package/dist/soap/legacy-project/model.d.ts +98 -0
  240. package/dist/soap/legacy-project/model.js +5 -0
  241. package/dist/soap/legacy-project/parse.d.ts +16 -0
  242. package/dist/soap/legacy-project/parse.js +325 -0
  243. package/dist/soap/mime/cid-scan.d.ts +36 -0
  244. package/dist/soap/mime/cid-scan.js +52 -0
  245. package/dist/soap/mime/inline-files.d.ts +39 -0
  246. package/dist/soap/mime/inline-files.js +71 -0
  247. package/dist/soap/mime/mtom.d.ts +74 -0
  248. package/dist/soap/mime/mtom.js +134 -0
  249. package/dist/soap/mime/multipart.d.ts +66 -0
  250. package/dist/soap/mime/multipart.js +329 -0
  251. package/dist/soap/mime/send-pipeline.d.ts +61 -0
  252. package/dist/soap/mime/send-pipeline.js +145 -0
  253. package/dist/soap/mime/swa.d.ts +45 -0
  254. package/dist/soap/mime/swa.js +62 -0
  255. package/dist/soap/mime/types.d.ts +69 -0
  256. package/dist/soap/mime/types.js +10 -0
  257. package/dist/soap/namespace-scope.d.ts +32 -0
  258. package/dist/soap/namespace-scope.js +85 -0
  259. package/dist/soap/prefixes.d.ts +24 -0
  260. package/dist/soap/prefixes.js +70 -0
  261. package/dist/soap/recreate.d.ts +28 -0
  262. package/dist/soap/recreate.js +168 -0
  263. package/dist/soap/request-builder.d.ts +63 -0
  264. package/dist/soap/request-builder.js +161 -0
  265. package/dist/soap/response-parser.d.ts +29 -0
  266. package/dist/soap/response-parser.js +71 -0
  267. package/dist/soap/soap-action.d.ts +31 -0
  268. package/dist/soap/soap-action.js +28 -0
  269. package/dist/soap/transforms.d.ts +52 -0
  270. package/dist/soap/transforms.js +164 -0
  271. package/dist/types.d.ts +307 -0
  272. package/dist/types.js +6 -0
  273. package/dist/validate/index.d.ts +61 -0
  274. package/dist/validate/index.js +72 -0
  275. package/dist/validate/schema-file-set.d.ts +51 -0
  276. package/dist/validate/schema-file-set.js +288 -0
  277. package/dist/validate/schema-validator.d.ts +53 -0
  278. package/dist/validate/schema-validator.js +251 -0
  279. package/dist/validate/soap-structure.d.ts +34 -0
  280. package/dist/validate/soap-structure.js +255 -0
  281. package/dist/validate/types.d.ts +47 -0
  282. package/dist/validate/types.js +8 -0
  283. package/dist/validate/wsi/assertions/helpers.d.ts +145 -0
  284. package/dist/validate/wsi/assertions/helpers.js +387 -0
  285. package/dist/validate/wsi/assertions/index.d.ts +44 -0
  286. package/dist/validate/wsi/assertions/index.js +77 -0
  287. package/dist/validate/wsi/assertions/message/helpers.d.ts +63 -0
  288. package/dist/validate/wsi/assertions/message/helpers.js +168 -0
  289. package/dist/validate/wsi/assertions/message/index.d.ts +39 -0
  290. package/dist/validate/wsi/assertions/message/index.js +62 -0
  291. package/dist/validate/wsi/assertions/message/r1001.d.ts +10 -0
  292. package/dist/validate/wsi/assertions/message/r1001.js +38 -0
  293. package/dist/validate/wsi/assertions/message/r1003.d.ts +14 -0
  294. package/dist/validate/wsi/assertions/message/r1003.js +45 -0
  295. package/dist/validate/wsi/assertions/message/r1005.d.ts +12 -0
  296. package/dist/validate/wsi/assertions/message/r1005.js +37 -0
  297. package/dist/validate/wsi/assertions/message/r1006.d.ts +10 -0
  298. package/dist/validate/wsi/assertions/message/r1006.js +49 -0
  299. package/dist/validate/wsi/assertions/message/r1007.d.ts +10 -0
  300. package/dist/validate/wsi/assertions/message/r1007.js +30 -0
  301. package/dist/validate/wsi/assertions/message/r1011.d.ts +10 -0
  302. package/dist/validate/wsi/assertions/message/r1011.js +33 -0
  303. package/dist/validate/wsi/assertions/message/r1012.d.ts +13 -0
  304. package/dist/validate/wsi/assertions/message/r1012.js +37 -0
  305. package/dist/validate/wsi/assertions/message/r1013.d.ts +9 -0
  306. package/dist/validate/wsi/assertions/message/r1013.js +42 -0
  307. package/dist/validate/wsi/assertions/message/r1014.d.ts +10 -0
  308. package/dist/validate/wsi/assertions/message/r1014.js +30 -0
  309. package/dist/validate/wsi/assertions/message/r1015.d.ts +12 -0
  310. package/dist/validate/wsi/assertions/message/r1015.js +36 -0
  311. package/dist/validate/wsi/assertions/message/r1017.d.ts +10 -0
  312. package/dist/validate/wsi/assertions/message/r1017.js +30 -0
  313. package/dist/validate/wsi/assertions/message/r1100.d.ts +10 -0
  314. package/dist/validate/wsi/assertions/message/r1100.js +39 -0
  315. package/dist/validate/wsi/assertions/message/r1101.d.ts +10 -0
  316. package/dist/validate/wsi/assertions/message/r1101.js +37 -0
  317. package/dist/validate/wsi/assertions/message/r1102.d.ts +10 -0
  318. package/dist/validate/wsi/assertions/message/r1102.js +41 -0
  319. package/dist/validate/wsi/assertions/message/r1103.d.ts +10 -0
  320. package/dist/validate/wsi/assertions/message/r1103.js +28 -0
  321. package/dist/validate/wsi/assertions/message/r1107.d.ts +10 -0
  322. package/dist/validate/wsi/assertions/message/r1107.js +38 -0
  323. package/dist/validate/wsi/assertions/message/r1109.d.ts +10 -0
  324. package/dist/validate/wsi/assertions/message/r1109.js +32 -0
  325. package/dist/validate/wsi/assertions/message/r1124.d.ts +10 -0
  326. package/dist/validate/wsi/assertions/message/r1124.js +31 -0
  327. package/dist/validate/wsi/assertions/message/r1132.d.ts +9 -0
  328. package/dist/validate/wsi/assertions/message/r1132.js +23 -0
  329. package/dist/validate/wsi/assertions/message/r1140.d.ts +10 -0
  330. package/dist/validate/wsi/assertions/message/r1140.js +42 -0
  331. package/dist/validate/wsi/assertions/message/r1141.d.ts +10 -0
  332. package/dist/validate/wsi/assertions/message/r1141.js +32 -0
  333. package/dist/validate/wsi/assertions/message/r2113.d.ts +11 -0
  334. package/dist/validate/wsi/assertions/message/r2113.js +33 -0
  335. package/dist/validate/wsi/assertions/message/r2211.d.ts +7 -0
  336. package/dist/validate/wsi/assertions/message/r2211.js +42 -0
  337. package/dist/validate/wsi/assertions/r2001.d.ts +15 -0
  338. package/dist/validate/wsi/assertions/r2001.js +47 -0
  339. package/dist/validate/wsi/assertions/r2002.d.ts +11 -0
  340. package/dist/validate/wsi/assertions/r2002.js +38 -0
  341. package/dist/validate/wsi/assertions/r2003.d.ts +7 -0
  342. package/dist/validate/wsi/assertions/r2003.js +32 -0
  343. package/dist/validate/wsi/assertions/r2005.d.ts +7 -0
  344. package/dist/validate/wsi/assertions/r2005.js +40 -0
  345. package/dist/validate/wsi/assertions/r2101.d.ts +14 -0
  346. package/dist/validate/wsi/assertions/r2101.js +65 -0
  347. package/dist/validate/wsi/assertions/r2102.d.ts +10 -0
  348. package/dist/validate/wsi/assertions/r2102.js +41 -0
  349. package/dist/validate/wsi/assertions/r2105.d.ts +8 -0
  350. package/dist/validate/wsi/assertions/r2105.js +39 -0
  351. package/dist/validate/wsi/assertions/r2110.d.ts +8 -0
  352. package/dist/validate/wsi/assertions/r2110.js +38 -0
  353. package/dist/validate/wsi/assertions/r2111.d.ts +6 -0
  354. package/dist/validate/wsi/assertions/r2111.js +30 -0
  355. package/dist/validate/wsi/assertions/r2112.d.ts +7 -0
  356. package/dist/validate/wsi/assertions/r2112.js +35 -0
  357. package/dist/validate/wsi/assertions/r2201.d.ts +7 -0
  358. package/dist/validate/wsi/assertions/r2201.js +28 -0
  359. package/dist/validate/wsi/assertions/r2203.d.ts +7 -0
  360. package/dist/validate/wsi/assertions/r2203.js +30 -0
  361. package/dist/validate/wsi/assertions/r2204.d.ts +6 -0
  362. package/dist/validate/wsi/assertions/r2204.js +29 -0
  363. package/dist/validate/wsi/assertions/r2205.d.ts +8 -0
  364. package/dist/validate/wsi/assertions/r2205.js +46 -0
  365. package/dist/validate/wsi/assertions/r2206.d.ts +7 -0
  366. package/dist/validate/wsi/assertions/r2206.js +36 -0
  367. package/dist/validate/wsi/assertions/r2209.d.ts +12 -0
  368. package/dist/validate/wsi/assertions/r2209.js +37 -0
  369. package/dist/validate/wsi/assertions/r2210.d.ts +7 -0
  370. package/dist/validate/wsi/assertions/r2210.js +30 -0
  371. package/dist/validate/wsi/assertions/r2303.d.ts +7 -0
  372. package/dist/validate/wsi/assertions/r2303.js +44 -0
  373. package/dist/validate/wsi/assertions/r2304.d.ts +6 -0
  374. package/dist/validate/wsi/assertions/r2304.js +32 -0
  375. package/dist/validate/wsi/assertions/r2401.d.ts +12 -0
  376. package/dist/validate/wsi/assertions/r2401.js +31 -0
  377. package/dist/validate/wsi/assertions/r2701.d.ts +7 -0
  378. package/dist/validate/wsi/assertions/r2701.js +28 -0
  379. package/dist/validate/wsi/assertions/r2702.d.ts +6 -0
  380. package/dist/validate/wsi/assertions/r2702.js +26 -0
  381. package/dist/validate/wsi/assertions/r2705.d.ts +11 -0
  382. package/dist/validate/wsi/assertions/r2705.js +31 -0
  383. package/dist/validate/wsi/assertions/r2706.d.ts +7 -0
  384. package/dist/validate/wsi/assertions/r2706.js +29 -0
  385. package/dist/validate/wsi/assertions/r2710.d.ts +13 -0
  386. package/dist/validate/wsi/assertions/r2710.js +37 -0
  387. package/dist/validate/wsi/assertions/r2716.d.ts +7 -0
  388. package/dist/validate/wsi/assertions/r2716.js +29 -0
  389. package/dist/validate/wsi/assertions/r2717.d.ts +9 -0
  390. package/dist/validate/wsi/assertions/r2717.js +31 -0
  391. package/dist/validate/wsi/assertions/r2718.d.ts +7 -0
  392. package/dist/validate/wsi/assertions/r2718.js +41 -0
  393. package/dist/validate/wsi/assertions/r2720.d.ts +7 -0
  394. package/dist/validate/wsi/assertions/r2720.js +29 -0
  395. package/dist/validate/wsi/assertions/r2721.d.ts +6 -0
  396. package/dist/validate/wsi/assertions/r2721.js +27 -0
  397. package/dist/validate/wsi/assertions/r2722.d.ts +6 -0
  398. package/dist/validate/wsi/assertions/r2722.js +29 -0
  399. package/dist/validate/wsi/assertions/r2801.d.ts +7 -0
  400. package/dist/validate/wsi/assertions/r2801.js +39 -0
  401. package/dist/validate/wsi/assertions/r2803.d.ts +7 -0
  402. package/dist/validate/wsi/assertions/r2803.js +29 -0
  403. package/dist/validate/wsi/docs.d.ts +29 -0
  404. package/dist/validate/wsi/docs.js +167 -0
  405. package/dist/validate/wsi/index.d.ts +16 -0
  406. package/dist/validate/wsi/index.js +11 -0
  407. package/dist/validate/wsi/report-html.d.ts +36 -0
  408. package/dist/validate/wsi/report-html.js +135 -0
  409. package/dist/validate/wsi/run-message.d.ts +50 -0
  410. package/dist/validate/wsi/run-message.js +190 -0
  411. package/dist/validate/wsi/run-wsdl.d.ts +48 -0
  412. package/dist/validate/wsi/run-wsdl.js +99 -0
  413. package/dist/validate/wsi/types.d.ts +173 -0
  414. package/dist/validate/wsi/types.js +17 -0
  415. package/dist/workspace/commit-message.d.ts +47 -0
  416. package/dist/workspace/commit-message.js +195 -0
  417. package/dist/workspace/environments.d.ts +79 -0
  418. package/dist/workspace/environments.js +115 -0
  419. package/dist/workspace/index.d.ts +28 -0
  420. package/dist/workspace/index.js +19 -0
  421. package/dist/workspace/load.d.ts +45 -0
  422. package/dist/workspace/load.js +155 -0
  423. package/dist/workspace/local-state.d.ts +37 -0
  424. package/dist/workspace/local-state.js +59 -0
  425. package/dist/workspace/migrate.d.ts +38 -0
  426. package/dist/workspace/migrate.js +50 -0
  427. package/dist/workspace/model.d.ts +86 -0
  428. package/dist/workspace/model.js +54 -0
  429. package/dist/workspace/paths.d.ts +64 -0
  430. package/dist/workspace/paths.js +97 -0
  431. package/dist/workspace/reidentify.d.ts +22 -0
  432. package/dist/workspace/reidentify.js +122 -0
  433. package/dist/workspace/save.d.ts +31 -0
  434. package/dist/workspace/save.js +84 -0
  435. package/dist/workspace/schema.d.ts +93 -0
  436. package/dist/workspace/schema.js +115 -0
  437. package/dist/workspace/serialize.d.ts +24 -0
  438. package/dist/workspace/serialize.js +60 -0
  439. package/dist/workspace/share.d.ts +52 -0
  440. package/dist/workspace/share.js +89 -0
  441. package/dist/ws/browser.d.ts +13 -0
  442. package/dist/ws/browser.js +11 -0
  443. package/dist/ws/call.d.ts +53 -0
  444. package/dist/ws/call.js +106 -0
  445. package/dist/ws/command.d.ts +19 -0
  446. package/dist/ws/command.js +28 -0
  447. package/dist/ws/expand.d.ts +38 -0
  448. package/dist/ws/expand.js +76 -0
  449. package/dist/ws/model.d.ts +191 -0
  450. package/dist/ws/model.js +83 -0
  451. package/dist/ws/pretty.d.ts +12 -0
  452. package/dist/ws/pretty.js +25 -0
  453. package/dist/ws/session.d.ts +50 -0
  454. package/dist/ws/session.js +333 -0
  455. package/dist/ws/shape.d.ts +18 -0
  456. package/dist/ws/shape.js +28 -0
  457. package/dist/ws/transcript.d.ts +14 -0
  458. package/dist/ws/transcript.js +29 -0
  459. package/dist/ws/url.d.ts +3 -0
  460. package/dist/ws/url.js +44 -0
  461. package/dist/wsa/headers.d.ts +78 -0
  462. package/dist/wsa/headers.js +244 -0
  463. package/dist/wsa/model.d.ts +66 -0
  464. package/dist/wsa/model.js +52 -0
  465. package/dist/wsa/policy-detect.d.ts +81 -0
  466. package/dist/wsa/policy-detect.js +245 -0
  467. package/dist/wsdl/cache-naming.d.ts +39 -0
  468. package/dist/wsdl/cache-naming.js +90 -0
  469. package/dist/wsdl/cache.d.ts +48 -0
  470. package/dist/wsdl/cache.js +141 -0
  471. package/dist/wsdl/docs-generator.d.ts +47 -0
  472. package/dist/wsdl/docs-generator.js +439 -0
  473. package/dist/wsdl/dom-utils.d.ts +15 -0
  474. package/dist/wsdl/dom-utils.js +50 -0
  475. package/dist/wsdl/export-definition.d.ts +38 -0
  476. package/dist/wsdl/export-definition.js +100 -0
  477. package/dist/wsdl/fetch.d.ts +13 -0
  478. package/dist/wsdl/fetch.js +60 -0
  479. package/dist/wsdl/merge.d.ts +17 -0
  480. package/dist/wsdl/merge.js +57 -0
  481. package/dist/wsdl/model.d.ts +176 -0
  482. package/dist/wsdl/model.js +17 -0
  483. package/dist/wsdl/parse-binding.d.ts +6 -0
  484. package/dist/wsdl/parse-binding.js +150 -0
  485. package/dist/wsdl/parse-wsdl.d.ts +47 -0
  486. package/dist/wsdl/parse-wsdl.js +161 -0
  487. package/dist/wsdl/qname.d.ts +28 -0
  488. package/dist/wsdl/qname.js +41 -0
  489. package/dist/wsdl/ref-policy.d.ts +54 -0
  490. package/dist/wsdl/ref-policy.js +87 -0
  491. package/dist/wsdl/resolver.d.ts +81 -0
  492. package/dist/wsdl/resolver.js +276 -0
  493. package/dist/wsdl/update-definition.d.ts +106 -0
  494. package/dist/wsdl/update-definition.js +314 -0
  495. package/dist/wss/apply.d.ts +40 -0
  496. package/dist/wss/apply.js +212 -0
  497. package/dist/wss/c14n-prefixes.d.ts +27 -0
  498. package/dist/wss/c14n-prefixes.js +95 -0
  499. package/dist/wss/incoming/decrypt.d.ts +35 -0
  500. package/dist/wss/incoming/decrypt.js +57 -0
  501. package/dist/wss/incoming/index.d.ts +56 -0
  502. package/dist/wss/incoming/index.js +189 -0
  503. package/dist/wss/incoming/verify.d.ts +74 -0
  504. package/dist/wss/incoming/verify.js +440 -0
  505. package/dist/wss/key-identifiers.d.ts +76 -0
  506. package/dist/wss/key-identifiers.js +139 -0
  507. package/dist/wss/keystore/certificate.d.ts +45 -0
  508. package/dist/wss/keystore/certificate.js +134 -0
  509. package/dist/wss/keystore/index.d.ts +50 -0
  510. package/dist/wss/keystore/index.js +80 -0
  511. package/dist/wss/keystore/model.d.ts +83 -0
  512. package/dist/wss/keystore/model.js +27 -0
  513. package/dist/wss/keystore/pem.d.ts +21 -0
  514. package/dist/wss/keystore/pem.js +140 -0
  515. package/dist/wss/keystore/pkcs12.d.ts +21 -0
  516. package/dist/wss/keystore/pkcs12.js +125 -0
  517. package/dist/wss/model.d.ts +160 -0
  518. package/dist/wss/model.js +37 -0
  519. package/dist/wss/outgoing/encryption.d.ts +76 -0
  520. package/dist/wss/outgoing/encryption.js +618 -0
  521. package/dist/wss/outgoing/signature.d.ts +73 -0
  522. package/dist/wss/outgoing/signature.js +239 -0
  523. package/dist/wss/outgoing/timestamp.d.ts +29 -0
  524. package/dist/wss/outgoing/timestamp.js +39 -0
  525. package/dist/wss/outgoing/username-token.d.ts +36 -0
  526. package/dist/wss/outgoing/username-token.js +68 -0
  527. package/dist/wss/security-header.d.ts +31 -0
  528. package/dist/wss/security-header.js +83 -0
  529. package/dist/xml/index.d.ts +7 -0
  530. package/dist/xml/index.js +7 -0
  531. package/dist/xml/namespaces.d.ts +36 -0
  532. package/dist/xml/namespaces.js +60 -0
  533. package/dist/xml/parse.d.ts +79 -0
  534. package/dist/xml/parse.js +109 -0
  535. package/dist/xml/positions.d.ts +26 -0
  536. package/dist/xml/positions.js +71 -0
  537. package/dist/xml/pretty.d.ts +37 -0
  538. package/dist/xml/pretty.js +137 -0
  539. package/dist/xml/serialize.d.ts +6 -0
  540. package/dist/xml/serialize.js +8 -0
  541. package/dist/xml/tolerant-tree.d.ts +56 -0
  542. package/dist/xml/tolerant-tree.js +134 -0
  543. package/dist/xpath/evaluate-async.d.ts +31 -0
  544. package/dist/xpath/evaluate-async.js +81 -0
  545. package/dist/xpath/evaluate.d.ts +98 -0
  546. package/dist/xpath/evaluate.js +340 -0
  547. package/dist/xpath/jsonpath.d.ts +40 -0
  548. package/dist/xpath/jsonpath.js +109 -0
  549. package/dist/xpath/namespaces.d.ts +29 -0
  550. package/dist/xpath/namespaces.js +101 -0
  551. package/dist/xpath/worker.d.ts +7 -0
  552. package/dist/xpath/worker.js +26 -0
  553. package/dist/xsd/builtins.d.ts +36 -0
  554. package/dist/xsd/builtins.js +108 -0
  555. package/dist/xsd/check-references.d.ts +25 -0
  556. package/dist/xsd/check-references.js +145 -0
  557. package/dist/xsd/form-edits.d.ts +57 -0
  558. package/dist/xsd/form-edits.js +153 -0
  559. package/dist/xsd/form-model.d.ts +153 -0
  560. package/dist/xsd/form-model.js +691 -0
  561. package/dist/xsd/locate.d.ts +42 -0
  562. package/dist/xsd/locate.js +249 -0
  563. package/dist/xsd/model.d.ts +249 -0
  564. package/dist/xsd/model.js +1 -0
  565. package/dist/xsd/parse-particles.d.ts +48 -0
  566. package/dist/xsd/parse-particles.js +320 -0
  567. package/dist/xsd/parse-schema.d.ts +21 -0
  568. package/dist/xsd/parse-schema.js +143 -0
  569. package/dist/xsd/resolve-content.d.ts +18 -0
  570. package/dist/xsd/resolve-content.js +242 -0
  571. package/dist/xsd/sample-generator.d.ts +51 -0
  572. package/dist/xsd/sample-generator.js +291 -0
  573. package/dist/xsd/sample-types.d.ts +21 -0
  574. package/dist/xsd/sample-types.js +69 -0
  575. package/dist/xsd/sample-values.d.ts +54 -0
  576. package/dist/xsd/sample-values.js +267 -0
  577. package/dist/xsd/schema-set.d.ts +51 -0
  578. package/dist/xsd/schema-set.js +203 -0
  579. package/dist/xsd/xml-scan.d.ts +64 -0
  580. package/dist/xsd/xml-scan.js +286 -0
  581. package/dist/xsd/xml-writer.d.ts +56 -0
  582. package/dist/xsd/xml-writer.js +103 -0
  583. package/package.json +69 -0
@@ -0,0 +1,168 @@
1
+ /**
2
+ * Shared DOM and HTTP navigation for the message-level WS-I assertions.
3
+ *
4
+ * The message assertions look at the bytes that actually went on the wire, so they work on the
5
+ * parsed envelope plus the HTTP metadata rather than on any model: the profile constrains
6
+ * constructs (a `DOCTYPE`, a processing instruction, an attribute nobody models) that a parsed
7
+ * SOAP message would otherwise normalise away.
8
+ */
9
+ import { NS } from '../../../../xml/namespaces.js';
10
+ import { childElements, firstChildElement } from '../../../../wsdl/dom-utils.js';
11
+ import { descendants, findingAt } from '../helpers.js';
12
+ /** The envelope namespace a SOAP version uses. */
13
+ export const SOAP_ENVELOPE_NS = {
14
+ '1.1': NS.SOAP11_ENV,
15
+ '1.2': NS.SOAP12_ENV,
16
+ };
17
+ /** The encoding namespace a SOAP version uses. */
18
+ export const SOAP_ENCODING_NS = {
19
+ '1.1': NS.SOAP11_ENC,
20
+ '1.2': NS.SOAP12_ENC,
21
+ };
22
+ /** Every message half that actually parsed into a `soap:Envelope`. */
23
+ export function envelopes(context) {
24
+ return context.messages.filter((view) => view.envelope !== undefined && view.soapNs !== undefined);
25
+ }
26
+ /** Builds a finding pointing at `element`, attributed to the half it was found in. */
27
+ export function messageFinding(view, element, message) {
28
+ return findingAt(view.direction, element, message);
29
+ }
30
+ /** Builds a finding about a half as a whole (an HTTP header, a missing envelope). */
31
+ export function viewFinding(view, message) {
32
+ return { message, location: { document: view.direction } };
33
+ }
34
+ /** The envelope element and every element beneath it, in document order. */
35
+ export function envelopeElements(view) {
36
+ const envelope = view.envelope;
37
+ return envelope === undefined ? [] : [envelope, ...descendants(envelope)];
38
+ }
39
+ /** The element children of `parent`, in document order (whatever their namespace). */
40
+ export function elementChildren(parent) {
41
+ const out = [];
42
+ let child = parent.firstChild;
43
+ while (child !== null) {
44
+ if (child.nodeType === 1) {
45
+ out.push(child);
46
+ }
47
+ child = child.nextSibling;
48
+ }
49
+ return out;
50
+ }
51
+ /** The element children of `soap:Envelope`, in document order (whatever their namespace). */
52
+ export function envelopeChildren(view) {
53
+ const envelope = view.envelope;
54
+ return envelope === undefined ? [] : elementChildren(envelope);
55
+ }
56
+ /** The `soap:Body` of a half, when it has exactly the one the profile requires. */
57
+ export function bodyOf(view) {
58
+ const envelope = view.envelope;
59
+ return envelope === undefined || view.soapNs === undefined
60
+ ? undefined
61
+ : firstChildElement(envelope, view.soapNs, 'Body');
62
+ }
63
+ /** The `soap:Header` of a half, when it declares one. */
64
+ export function headerOf(view) {
65
+ const envelope = view.envelope;
66
+ return envelope === undefined || view.soapNs === undefined
67
+ ? undefined
68
+ : firstChildElement(envelope, view.soapNs, 'Header');
69
+ }
70
+ /** The `soap:Fault` carried directly by `soap:Body`, when the half is a fault. */
71
+ export function faultOf(view) {
72
+ const body = bodyOf(view);
73
+ return body === undefined || view.soapNs === undefined ? undefined : firstChildElement(body, view.soapNs, 'Fault');
74
+ }
75
+ /** The element children of `soap:Body`, in document order. */
76
+ export function bodyChildren(view) {
77
+ const body = bodyOf(view);
78
+ return body === undefined ? [] : elementChildren(body);
79
+ }
80
+ /** Every attribute of `element`, as a plain list (xmldom's `attributes` is a live NamedNodeMap). */
81
+ export function attributesOf(element) {
82
+ const out = [];
83
+ const attributes = element.attributes;
84
+ for (let index = 0; index < attributes.length; index += 1) {
85
+ const attribute = attributes.item(index);
86
+ if (attribute !== null) {
87
+ out.push({
88
+ name: attribute.name,
89
+ localName: attribute.localName ?? attribute.name,
90
+ namespaceUri: attribute.namespaceURI,
91
+ value: attribute.value,
92
+ });
93
+ }
94
+ }
95
+ return out;
96
+ }
97
+ /** The media type of a `Content-Type` value, lower-cased and stripped of its parameters. */
98
+ export function mediaTypeOf(contentType) {
99
+ return (contentType.split(';')[0] ?? '').trim().toLowerCase();
100
+ }
101
+ /** The `charset` parameter of a `Content-Type` value, when it states one. */
102
+ export function charsetOf(contentType) {
103
+ const match = /;\s*charset\s*=\s*"?([^";]+)"?/i.exec(contentType);
104
+ return match?.[1]?.trim();
105
+ }
106
+ /** One header of a half, by its (already lower-cased) name. */
107
+ export function headerValue(view, name) {
108
+ return view.headers[name];
109
+ }
110
+ /** The prefixes in scope on `element`, mapped to the namespace they are bound to. */
111
+ export function inScopePrefixes(element) {
112
+ const prefixes = new Map();
113
+ let current = element;
114
+ while (current !== null && current.nodeType === 1) {
115
+ for (const attribute of attributesOf(current)) {
116
+ if (attribute.name === 'xmlns' && !prefixes.has('')) {
117
+ prefixes.set('', attribute.value);
118
+ }
119
+ else if (attribute.name.startsWith('xmlns:') && !prefixes.has(attribute.localName)) {
120
+ prefixes.set(attribute.localName, attribute.value);
121
+ }
122
+ }
123
+ const parent = current.parentNode;
124
+ current = parent !== null && parent.nodeType === 1 ? parent : null;
125
+ }
126
+ return prefixes;
127
+ }
128
+ /**
129
+ * The first unqualified child element of `parent` with this local name. SOAP 1.1 declares the
130
+ * fault's children in no namespace, and xmldom reports that as a `null` `namespaceURI`, which
131
+ * `childElements(parent, '', name)` does not match.
132
+ */
133
+ export function unqualifiedChild(parent, localName) {
134
+ let child = parent.firstChild;
135
+ while (child !== null) {
136
+ if (child.nodeType === 1) {
137
+ const element = child;
138
+ const ns = element.namespaceURI;
139
+ if ((ns === null || ns === '') && element.localName === localName) {
140
+ return element;
141
+ }
142
+ }
143
+ child = child.nextSibling;
144
+ }
145
+ return undefined;
146
+ }
147
+ /** Every `soap:Header` block (its element children), in document order. */
148
+ export function headerBlocks(view) {
149
+ const header = headerOf(view);
150
+ return header === undefined ? [] : elementChildren(header);
151
+ }
152
+ /** The `soap:Body` children of a half, skipping the `soap:Fault` (which has its own rules). */
153
+ export function partAccessors(view) {
154
+ const fault = faultOf(view);
155
+ return bodyChildren(view).filter((child) => child !== fault);
156
+ }
157
+ /** The number of `soap:Body` elements directly under `soap:Envelope`. */
158
+ export function bodyCount(view) {
159
+ const envelope = view.envelope;
160
+ return envelope === undefined || view.soapNs === undefined ? 0 : childElements(envelope, view.soapNs, 'Body').length;
161
+ }
162
+ /** The number of `soap:Header` elements directly under `soap:Envelope`. */
163
+ export function headerCount(view) {
164
+ const envelope = view.envelope;
165
+ return envelope === undefined || view.soapNs === undefined
166
+ ? 0
167
+ : childElements(envelope, view.soapNs, 'Header').length;
168
+ }
@@ -0,0 +1,39 @@
1
+ /**
2
+ * The WS-I Basic Profile 1.1 message assertion catalogue.
3
+ *
4
+ * The description-level counterpart lives in `../index.ts`. This array is the single source of
5
+ * truth for `runMessageAssertions` and for the message table `scripts/wsi-docs.ts` generates;
6
+ * adding an assertion means adding a module here and nothing else.
7
+ *
8
+ * R1007, R1011 and R1003 overlap by design: R1007 constrains *what* may be a child of
9
+ * `soap:Envelope`, R1011 constrains *where* (nothing may follow `soap:Body`), and R1003 folds
10
+ * both into the profile's cardinality/order rule for `soap:Body`/`soap:Header`. A single
11
+ * malformed envelope can therefore fail all three; that is expected, not a bug.
12
+ */
13
+ import type { WsiMessageAssertion } from '../../types.js';
14
+ import { R1001 } from './r1001.js';
15
+ import { R1003 } from './r1003.js';
16
+ import { R1005 } from './r1005.js';
17
+ import { R1006 } from './r1006.js';
18
+ import { R1007 } from './r1007.js';
19
+ import { R1011 } from './r1011.js';
20
+ import { R1012 } from './r1012.js';
21
+ import { R1013 } from './r1013.js';
22
+ import { R1014 } from './r1014.js';
23
+ import { R1015 } from './r1015.js';
24
+ import { R1017 } from './r1017.js';
25
+ import { R1100 } from './r1100.js';
26
+ import { R1101 } from './r1101.js';
27
+ import { R1102 } from './r1102.js';
28
+ import { R1103 } from './r1103.js';
29
+ import { R1107 } from './r1107.js';
30
+ import { R1109 } from './r1109.js';
31
+ import { R1124 } from './r1124.js';
32
+ import { R1132 } from './r1132.js';
33
+ import { R1140 } from './r1140.js';
34
+ import { R1141 } from './r1141.js';
35
+ import { R2113 } from './r2113.js';
36
+ import { R2211 } from './r2211.js';
37
+ /** Every implemented message assertion, in profile id order. */
38
+ export declare const WSI_MESSAGE_ASSERTIONS: readonly WsiMessageAssertion[];
39
+ export { R1001, R1003, R1005, R1006, R1007, R1011, R1012, R1013, R1014, R1015, R1017, R1100, R1101, R1102, R1103, R1107, R1109, R1124, R1132, R1140, R1141, R2113, R2211, };
@@ -0,0 +1,62 @@
1
+ /**
2
+ * The WS-I Basic Profile 1.1 message assertion catalogue.
3
+ *
4
+ * The description-level counterpart lives in `../index.ts`. This array is the single source of
5
+ * truth for `runMessageAssertions` and for the message table `scripts/wsi-docs.ts` generates;
6
+ * adding an assertion means adding a module here and nothing else.
7
+ *
8
+ * R1007, R1011 and R1003 overlap by design: R1007 constrains *what* may be a child of
9
+ * `soap:Envelope`, R1011 constrains *where* (nothing may follow `soap:Body`), and R1003 folds
10
+ * both into the profile's cardinality/order rule for `soap:Body`/`soap:Header`. A single
11
+ * malformed envelope can therefore fail all three; that is expected, not a bug.
12
+ */
13
+ import { R1001 } from './r1001.js';
14
+ import { R1003 } from './r1003.js';
15
+ import { R1005 } from './r1005.js';
16
+ import { R1006 } from './r1006.js';
17
+ import { R1007 } from './r1007.js';
18
+ import { R1011 } from './r1011.js';
19
+ import { R1012 } from './r1012.js';
20
+ import { R1013 } from './r1013.js';
21
+ import { R1014 } from './r1014.js';
22
+ import { R1015 } from './r1015.js';
23
+ import { R1017 } from './r1017.js';
24
+ import { R1100 } from './r1100.js';
25
+ import { R1101 } from './r1101.js';
26
+ import { R1102 } from './r1102.js';
27
+ import { R1103 } from './r1103.js';
28
+ import { R1107 } from './r1107.js';
29
+ import { R1109 } from './r1109.js';
30
+ import { R1124 } from './r1124.js';
31
+ import { R1132 } from './r1132.js';
32
+ import { R1140 } from './r1140.js';
33
+ import { R1141 } from './r1141.js';
34
+ import { R2113 } from './r2113.js';
35
+ import { R2211 } from './r2211.js';
36
+ /** Every implemented message assertion, in profile id order. */
37
+ export const WSI_MESSAGE_ASSERTIONS = Object.freeze([
38
+ R1001,
39
+ R1003,
40
+ R1005,
41
+ R1006,
42
+ R1007,
43
+ R1011,
44
+ R1012,
45
+ R1013,
46
+ R1014,
47
+ R1015,
48
+ R1017,
49
+ R1100,
50
+ R1101,
51
+ R1102,
52
+ R1103,
53
+ R1107,
54
+ R1109,
55
+ R1124,
56
+ R1132,
57
+ R1140,
58
+ R1141,
59
+ R2113,
60
+ R2211,
61
+ ]);
62
+ export { R1001, R1003, R1005, R1006, R1007, R1011, R1012, R1013, R1014, R1015, R1017, R1100, R1101, R1102, R1103, R1107, R1109, R1124, R1132, R1140, R1141, R2113, R2211, };
@@ -0,0 +1,10 @@
1
+ import type { WsiMessageAssertion } from '../../types.js';
2
+ /**
3
+ * BP 1.1 R1001: a message must be a SOAP envelope — well-formed XML whose document element is
4
+ * `soap:Envelope` in the envelope namespace of the version the binding declares. An HTML error
5
+ * page, a bare body, or a SOAP 1.2 envelope answering a SOAP 1.1 binding all breach it.
6
+ *
7
+ * The id is a paraphrase of the requirement Wirebench implements; it could not be confirmed
8
+ * against the published profile, so the catalogue marks it unverified.
9
+ */
10
+ export declare const R1001: WsiMessageAssertion;
@@ -0,0 +1,38 @@
1
+ import { NOT_APPLICABLE } from '../../types.js';
2
+ import { SOAP_ENVELOPE_NS, viewFinding } from './helpers.js';
3
+ /**
4
+ * BP 1.1 R1001: a message must be a SOAP envelope — well-formed XML whose document element is
5
+ * `soap:Envelope` in the envelope namespace of the version the binding declares. An HTML error
6
+ * page, a bare body, or a SOAP 1.2 envelope answering a SOAP 1.1 binding all breach it.
7
+ *
8
+ * The id is a paraphrase of the requirement Wirebench implements; it could not be confirmed
9
+ * against the published profile, so the catalogue marks it unverified.
10
+ */
11
+ export const R1001 = {
12
+ id: 'R1001',
13
+ title: 'Each message is a soap:Envelope of the SOAP version the binding declares',
14
+ level: 'REQUIRED',
15
+ section: '3.1 XML Representation of SOAP Messages',
16
+ unverifiedId: true,
17
+ check(context) {
18
+ const findings = [];
19
+ let envelopes = 0;
20
+ const expected = SOAP_ENVELOPE_NS[context.binding.soapVersion];
21
+ for (const view of context.messages) {
22
+ if (view.envelopeXml === undefined) {
23
+ continue;
24
+ }
25
+ envelopes += 1;
26
+ if (view.document === undefined) {
27
+ findings.push(viewFinding(view, `the ${view.direction} is not well-formed XML, so it is not a SOAP envelope`));
28
+ }
29
+ else if (view.envelope === undefined) {
30
+ findings.push(viewFinding(view, `the ${view.direction} document element is "${view.document.documentElement?.nodeName ?? '(none)'}", not soap:Envelope`));
31
+ }
32
+ else if (view.soapNs !== expected) {
33
+ findings.push(viewFinding(view, `the ${view.direction} envelope is in "${view.soapNs ?? ''}"; the binding declares SOAP ${context.binding.soapVersion} ("${expected}")`));
34
+ }
35
+ }
36
+ return envelopes === 0 ? NOT_APPLICABLE : findings;
37
+ },
38
+ };
@@ -0,0 +1,14 @@
1
+ import type { WsiMessageAssertion } from '../../types.js';
2
+ /**
3
+ * BP 1.1 R1003: an envelope carries exactly one `soap:Body`, at most one `soap:Header`, and the
4
+ * header — when there is one — comes first. Anything else is not the structure SOAP 1.1 section 4
5
+ * defines, so a receiver's dispatch is undefined.
6
+ *
7
+ * This is the best-attributed id Wirebench could give the requirement: it and R1012 (the
8
+ * UTF-8/UTF-16 serialization rule) were previously swapped; see the module doc for the note on
9
+ * the structural overlap with R1007/R1011.
10
+ *
11
+ * The id is a paraphrase of the requirement Wirebench implements; it could not be confirmed
12
+ * against the published profile, so the catalogue marks it unverified.
13
+ */
14
+ export declare const R1003: WsiMessageAssertion;
@@ -0,0 +1,45 @@
1
+ import { NOT_APPLICABLE } from '../../types.js';
2
+ import { bodyCount, envelopeChildren, envelopes, headerCount, messageFinding, viewFinding } from './helpers.js';
3
+ /**
4
+ * BP 1.1 R1003: an envelope carries exactly one `soap:Body`, at most one `soap:Header`, and the
5
+ * header — when there is one — comes first. Anything else is not the structure SOAP 1.1 section 4
6
+ * defines, so a receiver's dispatch is undefined.
7
+ *
8
+ * This is the best-attributed id Wirebench could give the requirement: it and R1012 (the
9
+ * UTF-8/UTF-16 serialization rule) were previously swapped; see the module doc for the note on
10
+ * the structural overlap with R1007/R1011.
11
+ *
12
+ * The id is a paraphrase of the requirement Wirebench implements; it could not be confirmed
13
+ * against the published profile, so the catalogue marks it unverified.
14
+ */
15
+ export const R1003 = {
16
+ id: 'R1003',
17
+ title: 'An envelope carries one soap:Body, at most one soap:Header, header first',
18
+ level: 'REQUIRED',
19
+ section: '3.1 XML Representation of SOAP Messages',
20
+ unverifiedId: true,
21
+ check(context) {
22
+ const findings = [];
23
+ const views = envelopes(context);
24
+ for (const view of views) {
25
+ const bodies = bodyCount(view);
26
+ const headers = headerCount(view);
27
+ if (bodies !== 1) {
28
+ findings.push(viewFinding(view, `the ${view.direction} envelope carries ${bodies} soap:Body elements; exactly one is required`));
29
+ }
30
+ if (headers > 1) {
31
+ findings.push(viewFinding(view, `the ${view.direction} envelope carries ${headers} soap:Header elements; at most one is allowed`));
32
+ }
33
+ const children = envelopeChildren(view);
34
+ const bodyIndex = children.findIndex((child) => child.namespaceURI === view.soapNs && child.localName === 'Body');
35
+ const headerIndex = children.findIndex((child) => child.namespaceURI === view.soapNs && child.localName === 'Header');
36
+ if (headerIndex > -1 && bodyIndex > -1 && headerIndex > bodyIndex) {
37
+ const header = children[headerIndex];
38
+ if (header !== undefined) {
39
+ findings.push(messageFinding(view, header, 'soap:Header follows soap:Body; it must precede it'));
40
+ }
41
+ }
42
+ }
43
+ return views.length === 0 ? NOT_APPLICABLE : findings;
44
+ },
45
+ };
@@ -0,0 +1,12 @@
1
+ import type { WsiMessageAssertion } from '../../types.js';
2
+ /**
3
+ * BP 1.1 R1005: a message must not contain a Document Type Declaration. A `DOCTYPE` lets a
4
+ * message pull in external entities, which a receiver cannot be expected to resolve.
5
+ *
6
+ * The check works on the raw text rather than the DOM: a parser is free to drop the declaration
7
+ * once it has applied it, so by the time there is a document the evidence may be gone.
8
+ *
9
+ * The id is a paraphrase of the requirement Wirebench implements; it could not be confirmed
10
+ * against the published profile, so the catalogue marks it unverified.
11
+ */
12
+ export declare const R1005: WsiMessageAssertion;
@@ -0,0 +1,37 @@
1
+ import { NOT_APPLICABLE } from '../../types.js';
2
+ import { viewFinding } from './helpers.js';
3
+ /**
4
+ * BP 1.1 R1005: a message must not contain a Document Type Declaration. A `DOCTYPE` lets a
5
+ * message pull in external entities, which a receiver cannot be expected to resolve.
6
+ *
7
+ * The check works on the raw text rather than the DOM: a parser is free to drop the declaration
8
+ * once it has applied it, so by the time there is a document the evidence may be gone.
9
+ *
10
+ * The id is a paraphrase of the requirement Wirebench implements; it could not be confirmed
11
+ * against the published profile, so the catalogue marks it unverified.
12
+ */
13
+ export const R1005 = {
14
+ id: 'R1005',
15
+ title: 'A message contains no Document Type Declaration',
16
+ level: 'REQUIRED',
17
+ section: '3.1 XML Representation of SOAP Messages',
18
+ unverifiedId: true,
19
+ check(context) {
20
+ const findings = [];
21
+ let messages = 0;
22
+ for (const view of context.messages) {
23
+ if (view.envelopeXml === undefined) {
24
+ continue;
25
+ }
26
+ messages += 1;
27
+ // Anything before the document element is prolog; a DOCTYPE can only legally appear there.
28
+ const rootTag = '<' + (view.document?.documentElement?.nodeName ?? '\u0000');
29
+ const rootIndex = view.envelopeXml.indexOf(rootTag);
30
+ const prolog = rootIndex === -1 ? view.envelopeXml : view.envelopeXml.slice(0, rootIndex);
31
+ if (/<!DOCTYPE\b/i.test(prolog)) {
32
+ findings.push(viewFinding(view, `the ${view.direction} carries a Document Type Declaration`));
33
+ }
34
+ }
35
+ return messages === 0 ? NOT_APPLICABLE : findings;
36
+ },
37
+ };
@@ -0,0 +1,10 @@
1
+ import type { WsiMessageAssertion } from '../../types.js';
2
+ /**
3
+ * BP 1.1 R1006: a message must not contain processing instructions. Their meaning is defined by
4
+ * the application, not the profile, so a receiver has no interoperable way to act on one. The XML
5
+ * declaration is not a processing instruction and is not reported.
6
+ *
7
+ * The id is a paraphrase of the requirement Wirebench implements; it could not be confirmed
8
+ * against the published profile, so the catalogue marks it unverified.
9
+ */
10
+ export declare const R1006: WsiMessageAssertion;
@@ -0,0 +1,49 @@
1
+ import { NOT_APPLICABLE } from '../../types.js';
2
+ import { viewFinding } from './helpers.js';
3
+ /** Counts the processing instructions anywhere in a parsed document. */
4
+ function processingInstructions(root) {
5
+ const found = [];
6
+ const visit = (node) => {
7
+ let child = node.firstChild;
8
+ while (child !== null) {
9
+ // xmldom exposes the XML declaration as a processing instruction named `xml`; it is a
10
+ // declaration, not an instruction, and the profile does not forbid it.
11
+ if (child.nodeType === 7 && child.nodeName !== 'xml') {
12
+ found.push(child.nodeName);
13
+ }
14
+ visit(child);
15
+ child = child.nextSibling;
16
+ }
17
+ };
18
+ visit(root);
19
+ return found;
20
+ }
21
+ /**
22
+ * BP 1.1 R1006: a message must not contain processing instructions. Their meaning is defined by
23
+ * the application, not the profile, so a receiver has no interoperable way to act on one. The XML
24
+ * declaration is not a processing instruction and is not reported.
25
+ *
26
+ * The id is a paraphrase of the requirement Wirebench implements; it could not be confirmed
27
+ * against the published profile, so the catalogue marks it unverified.
28
+ */
29
+ export const R1006 = {
30
+ id: 'R1006',
31
+ title: 'A message contains no processing instructions',
32
+ level: 'REQUIRED',
33
+ section: '3.1 XML Representation of SOAP Messages',
34
+ unverifiedId: true,
35
+ check(context) {
36
+ const findings = [];
37
+ let documents = 0;
38
+ for (const view of context.messages) {
39
+ if (view.document === undefined) {
40
+ continue;
41
+ }
42
+ documents += 1;
43
+ for (const name of processingInstructions(view.document)) {
44
+ findings.push(viewFinding(view, `the ${view.direction} carries the processing instruction "<?${name} ... ?>"`));
45
+ }
46
+ }
47
+ return documents === 0 ? NOT_APPLICABLE : findings;
48
+ },
49
+ };
@@ -0,0 +1,10 @@
1
+ import type { WsiMessageAssertion } from '../../types.js';
2
+ /**
3
+ * BP 1.1 R1007: `soap:Envelope` has no element children other than `soap:Header` and
4
+ * `soap:Body`. A trailing signature or a stray application element there is invisible to a
5
+ * conforming receiver, which only ever looks in the two.
6
+ *
7
+ * The id is a paraphrase of the requirement Wirebench implements; it could not be confirmed
8
+ * against the published profile, so the catalogue marks it unverified.
9
+ */
10
+ export declare const R1007: WsiMessageAssertion;
@@ -0,0 +1,30 @@
1
+ import { NOT_APPLICABLE } from '../../types.js';
2
+ import { envelopeChildren, envelopes, messageFinding } from './helpers.js';
3
+ /**
4
+ * BP 1.1 R1007: `soap:Envelope` has no element children other than `soap:Header` and
5
+ * `soap:Body`. A trailing signature or a stray application element there is invisible to a
6
+ * conforming receiver, which only ever looks in the two.
7
+ *
8
+ * The id is a paraphrase of the requirement Wirebench implements; it could not be confirmed
9
+ * against the published profile, so the catalogue marks it unverified.
10
+ */
11
+ export const R1007 = {
12
+ id: 'R1007',
13
+ title: 'soap:Envelope has no element children other than soap:Header and soap:Body',
14
+ level: 'REQUIRED',
15
+ section: '3.1 XML Representation of SOAP Messages',
16
+ unverifiedId: true,
17
+ check(context) {
18
+ const findings = [];
19
+ const views = envelopes(context);
20
+ for (const view of views) {
21
+ for (const child of envelopeChildren(view)) {
22
+ const known = child.namespaceURI === view.soapNs && (child.localName === 'Header' || child.localName === 'Body');
23
+ if (!known) {
24
+ findings.push(messageFinding(view, child, `soap:Envelope has the unexpected element child "${child.nodeName}"`));
25
+ }
26
+ }
27
+ }
28
+ return views.length === 0 ? NOT_APPLICABLE : findings;
29
+ },
30
+ };
@@ -0,0 +1,10 @@
1
+ import type { WsiMessageAssertion } from '../../types.js';
2
+ /**
3
+ * BP 1.1 R1011: nothing follows `soap:Body`. A receiver may stop reading once the body has been
4
+ * dispatched, so an element after it is not reliably seen. R1007 constrains *what* may appear as
5
+ * an envelope child; this one constrains *where*.
6
+ *
7
+ * The id is a paraphrase of the requirement Wirebench implements; it could not be confirmed
8
+ * against the published profile, so the catalogue marks it unverified.
9
+ */
10
+ export declare const R1011: WsiMessageAssertion;
@@ -0,0 +1,33 @@
1
+ import { NOT_APPLICABLE } from '../../types.js';
2
+ import { envelopeChildren, envelopes, messageFinding } from './helpers.js';
3
+ /**
4
+ * BP 1.1 R1011: nothing follows `soap:Body`. A receiver may stop reading once the body has been
5
+ * dispatched, so an element after it is not reliably seen. R1007 constrains *what* may appear as
6
+ * an envelope child; this one constrains *where*.
7
+ *
8
+ * The id is a paraphrase of the requirement Wirebench implements; it could not be confirmed
9
+ * against the published profile, so the catalogue marks it unverified.
10
+ */
11
+ export const R1011 = {
12
+ id: 'R1011',
13
+ title: 'No element child of soap:Envelope follows soap:Body',
14
+ level: 'REQUIRED',
15
+ section: '3.1 XML Representation of SOAP Messages',
16
+ unverifiedId: true,
17
+ check(context) {
18
+ const findings = [];
19
+ let bodies = 0;
20
+ for (const view of envelopes(context)) {
21
+ const children = envelopeChildren(view);
22
+ const bodyIndex = children.findIndex((child) => child.namespaceURI === view.soapNs && child.localName === 'Body');
23
+ if (bodyIndex === -1) {
24
+ continue;
25
+ }
26
+ bodies += 1;
27
+ for (const trailing of children.slice(bodyIndex + 1)) {
28
+ findings.push(messageFinding(view, trailing, `"${trailing.nodeName}" follows soap:Body inside soap:Envelope`));
29
+ }
30
+ }
31
+ return bodies === 0 ? NOT_APPLICABLE : findings;
32
+ },
33
+ };
@@ -0,0 +1,13 @@
1
+ import type { WsiMessageAssertion } from '../../types.js';
2
+ /**
3
+ * BP 1.1 R1012: a message is serialized as UTF-8 or UTF-16. Only a message that states its
4
+ * encoding in an XML declaration can be judged here; one that states none is, by the XML rules,
5
+ * already UTF-8 or UTF-16 and so conforms.
6
+ *
7
+ * This is the best-attributed id Wirebench could give the requirement: it and R1003 (the
8
+ * envelope-structure rule) were previously swapped.
9
+ *
10
+ * The id is a paraphrase of the requirement Wirebench implements; it could not be confirmed
11
+ * against the published profile, so the catalogue marks it unverified.
12
+ */
13
+ export declare const R1012: WsiMessageAssertion;
@@ -0,0 +1,37 @@
1
+ import { NOT_APPLICABLE } from '../../types.js';
2
+ import { viewFinding } from './helpers.js';
3
+ /** The encodings the profile allows a message to be serialized in. */
4
+ const ALLOWED = ['utf-8', 'utf-16'];
5
+ /**
6
+ * BP 1.1 R1012: a message is serialized as UTF-8 or UTF-16. Only a message that states its
7
+ * encoding in an XML declaration can be judged here; one that states none is, by the XML rules,
8
+ * already UTF-8 or UTF-16 and so conforms.
9
+ *
10
+ * This is the best-attributed id Wirebench could give the requirement: it and R1003 (the
11
+ * envelope-structure rule) were previously swapped.
12
+ *
13
+ * The id is a paraphrase of the requirement Wirebench implements; it could not be confirmed
14
+ * against the published profile, so the catalogue marks it unverified.
15
+ */
16
+ export const R1012 = {
17
+ id: 'R1012',
18
+ title: 'A message that declares an encoding declares UTF-8 or UTF-16',
19
+ level: 'REQUIRED',
20
+ section: '3.1 XML Representation of SOAP Messages',
21
+ unverifiedId: true,
22
+ check(context) {
23
+ const findings = [];
24
+ let declarations = 0;
25
+ for (const view of context.messages) {
26
+ const declared = /^\s*<\?xml[^?]*encoding\s*=\s*["']([^"']+)["']/i.exec(view.envelopeXml ?? '')?.[1];
27
+ if (declared === undefined) {
28
+ continue;
29
+ }
30
+ declarations += 1;
31
+ if (!ALLOWED.includes(declared.toLowerCase())) {
32
+ findings.push(viewFinding(view, `the ${view.direction} declares encoding "${declared}"; the profile allows UTF-8 and UTF-16`));
33
+ }
34
+ }
35
+ return declarations === 0 ? NOT_APPLICABLE : findings;
36
+ },
37
+ };
@@ -0,0 +1,9 @@
1
+ import type { WsiMessageAssertion } from '../../types.js';
2
+ /**
3
+ * BP 1.1 R1013: `soap:mustUnderstand` carries a value the SOAP version admits. A receiver that
4
+ * cannot parse the flag cannot tell a header block it may ignore from one it must reject.
5
+ *
6
+ * The id is a paraphrase of the requirement Wirebench implements; it could not be confirmed
7
+ * against the published profile, so the catalogue marks it unverified.
8
+ */
9
+ export declare const R1013: WsiMessageAssertion;