@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,255 @@
1
+ /**
2
+ * SOAP envelope structure checks — everything the XSD schema set cannot say
3
+ * about a message, because the envelope itself is never validated against it:
4
+ * the envelope namespace (and therefore the SOAP version), the
5
+ * `Header`/`Body` shape, the `Fault` shape, `mustUnderstand` values, and the
6
+ * agreement between the transport metadata (`Content-Type`, `SOAPAction`) and
7
+ * the version in the envelope.
8
+ *
9
+ * Tolerant by design: a document that is not well formed yields exactly one
10
+ * `xml-not-well-formed` problem (with the parser's position) instead of
11
+ * throwing, so a half-typed envelope still produces a usable marker.
12
+ */
13
+ import { WirebenchError } from '../errors.js';
14
+ import { NS } from '../xml/namespaces.js';
15
+ import { parseXml, getPosition } from '../xml/parse.js';
16
+ /** The envelope namespace URI for each SOAP version. */
17
+ const ENVELOPE_NS = {
18
+ '1.1': NS.SOAP11_ENV,
19
+ '1.2': NS.SOAP12_ENV,
20
+ };
21
+ /** The `Content-Type` media type each SOAP version prescribes. */
22
+ const MEDIA_TYPE = {
23
+ '1.1': 'text/xml',
24
+ '1.2': 'application/soap+xml',
25
+ };
26
+ /** Legal `mustUnderstand` values per version: 1.1 allows only `0`/`1`, 1.2 takes any `xs:boolean`. */
27
+ const MUST_UNDERSTAND_VALUES = {
28
+ '1.1': ['0', '1'],
29
+ '1.2': ['0', '1', 'true', 'false'],
30
+ };
31
+ /** Builds a problem, folding in the source position of `element` when it has one. */
32
+ function at(element, problem) {
33
+ const position = element === undefined ? undefined : getPosition(element);
34
+ return {
35
+ ...problem,
36
+ source: 'structure',
37
+ ...(position !== undefined ? { line: position.line, column: position.column } : {}),
38
+ };
39
+ }
40
+ /** The direct child elements of `parent`, in document order. */
41
+ function elementChildren(parent) {
42
+ const result = [];
43
+ let child = parent.firstChild;
44
+ while (child !== null) {
45
+ if (child.nodeType === 1) {
46
+ result.push(child);
47
+ }
48
+ child = child.nextSibling;
49
+ }
50
+ return result;
51
+ }
52
+ /** True when `element` has a child element with `localName` in `namespaceUri` that is not empty. */
53
+ function hasChild(element, namespaceUri, localName) {
54
+ return elementChildren(element).some((child) => child.localName === localName && (namespaceUri === undefined || child.namespaceURI === namespaceUri));
55
+ }
56
+ /** The `Fault` checks for one version; the shapes differ enough that they share nothing but the name. */
57
+ function checkFault(fault, version, problems) {
58
+ if (version === '1.1') {
59
+ // SOAP 1.1 Fault children are unqualified.
60
+ if (!hasChild(fault, undefined, 'faultcode')) {
61
+ problems.push(at(fault, { severity: 'error', code: 'fault-missing-faultcode', message: 'SOAP 1.1 Fault has no <faultcode>' }));
62
+ }
63
+ if (!hasChild(fault, undefined, 'faultstring')) {
64
+ problems.push(at(fault, {
65
+ severity: 'error',
66
+ code: 'fault-missing-faultstring',
67
+ message: 'SOAP 1.1 Fault has no <faultstring>',
68
+ }));
69
+ }
70
+ return;
71
+ }
72
+ const code = elementChildren(fault).find((child) => child.localName === 'Code');
73
+ if (code === undefined || !hasChild(code, NS.SOAP12_ENV, 'Value')) {
74
+ problems.push(at(fault, { severity: 'error', code: 'fault-missing-code', message: 'SOAP 1.2 Fault has no <Code><Value>' }));
75
+ }
76
+ const reason = elementChildren(fault).find((child) => child.localName === 'Reason');
77
+ if (reason === undefined || !hasChild(reason, NS.SOAP12_ENV, 'Text')) {
78
+ problems.push(at(fault, { severity: 'error', code: 'fault-missing-reason', message: 'SOAP 1.2 Fault has no <Reason><Text>' }));
79
+ }
80
+ }
81
+ /** Checks every header block's `mustUnderstand` attribute against the version's legal values. */
82
+ function checkMustUnderstand(header, version, problems) {
83
+ const legal = MUST_UNDERSTAND_VALUES[version];
84
+ for (const block of elementChildren(header)) {
85
+ const value = block.getAttributeNS(ENVELOPE_NS[version], 'mustUnderstand');
86
+ if (value === null || value === '' || legal.includes(value)) {
87
+ continue;
88
+ }
89
+ problems.push(at(block, {
90
+ severity: 'error',
91
+ code: 'invalid-must-understand',
92
+ message: `mustUnderstand="${value}" is not legal in SOAP ${version} (expected ${legal.join(' or ')})`,
93
+ }));
94
+ }
95
+ }
96
+ /** The value of one `Content-Type` parameter (e.g. `action`), unquoted, or `undefined`. */
97
+ function contentTypeParameter(contentType, name) {
98
+ const match = new RegExp(`;\\s*${name}\\s*=\\s*("([^"]*)"|[^;\\s]+)`, 'i').exec(contentType);
99
+ if (match === null) {
100
+ return undefined;
101
+ }
102
+ return match[2] ?? match[1];
103
+ }
104
+ /** Strips the quotes SOAP 1.1 wraps a `SOAPAction` in, so the two spellings compare equal. */
105
+ function unquote(value) {
106
+ return value.startsWith('"') && value.endsWith('"') ? value.slice(1, -1) : value;
107
+ }
108
+ /** Whether `mediaType` is the media type SOAP `version` sends over the wire, MTOM included:
109
+ * an MTOM-wrapped message's own `Content-Type` is `multipart/related`, with the actual SOAP
110
+ * media type carried in its `type` parameter instead. */
111
+ function matchesMediaType(contentType, mediaType, version) {
112
+ if (mediaType === MEDIA_TYPE[version]) {
113
+ return true;
114
+ }
115
+ if (mediaType !== 'multipart/related') {
116
+ return false;
117
+ }
118
+ const type = contentTypeParameter(contentType, 'type');
119
+ return type !== undefined && unquote(type).toLowerCase() === MEDIA_TYPE[version];
120
+ }
121
+ /**
122
+ * Compares the transport metadata against the version in the envelope. Media-type and
123
+ * `action`-parameter mismatches are independent findings — a message can carry both — so
124
+ * neither check short-circuits the other.
125
+ */
126
+ function checkTransport(options, problems) {
127
+ const { contentType, expectedVersion, soapAction } = options;
128
+ if (contentType === undefined) {
129
+ return;
130
+ }
131
+ const mediaType = (contentType.split(';')[0] ?? '').trim().toLowerCase();
132
+ if (mediaType.length > 0 && !matchesMediaType(contentType, mediaType, expectedVersion)) {
133
+ problems.push({
134
+ severity: 'warning',
135
+ code: 'content-type-mismatch',
136
+ message: `SOAP ${expectedVersion} expects Content-Type ${MEDIA_TYPE[expectedVersion]}, not ${mediaType}`,
137
+ source: 'structure',
138
+ });
139
+ }
140
+ if (expectedVersion !== '1.2' || soapAction === undefined) {
141
+ return;
142
+ }
143
+ const action = contentTypeParameter(contentType, 'action');
144
+ if (action !== undefined && unquote(action) !== unquote(soapAction)) {
145
+ problems.push({
146
+ severity: 'warning',
147
+ code: 'soap-action-mismatch',
148
+ message: `Content-Type action="${unquote(action)}" does not match the operation's action "${unquote(soapAction)}"`,
149
+ source: 'structure',
150
+ });
151
+ }
152
+ }
153
+ /**
154
+ * Checks the SOAP-level structure of `xml` against the binding's expectations.
155
+ *
156
+ * Never throws: a parse failure is reported as a single `xml-not-well-formed`
157
+ * problem carrying the parser's line/column.
158
+ *
159
+ * @param xml the whole envelope text, as typed in the editor
160
+ * @param options the binding's SOAP version, plus the transport metadata to cross-check
161
+ * @returns every finding, in document order (transport findings last)
162
+ */
163
+ export function checkSoapStructure(xml, options) {
164
+ const problems = [];
165
+ let root;
166
+ try {
167
+ root = parseXml(xml).documentElement;
168
+ }
169
+ catch (cause) {
170
+ const details = cause instanceof WirebenchError ? cause.details : undefined;
171
+ const line = typeof details?.['line'] === 'number' ? details['line'] : undefined;
172
+ const column = typeof details?.['column'] === 'number' ? details['column'] : undefined;
173
+ return [
174
+ {
175
+ severity: 'error',
176
+ code: 'xml-not-well-formed',
177
+ message: cause instanceof Error ? cause.message : 'The message is not well-formed XML',
178
+ source: 'structure',
179
+ ...(line !== undefined ? { line } : {}),
180
+ ...(column !== undefined ? { column } : {}),
181
+ },
182
+ ];
183
+ }
184
+ if (root === null) {
185
+ return [
186
+ {
187
+ severity: 'error',
188
+ code: 'xml-not-well-formed',
189
+ message: 'The message is empty or has no root element',
190
+ source: 'structure',
191
+ },
192
+ ];
193
+ }
194
+ const version = root.namespaceURI === NS.SOAP11_ENV ? '1.1' : root.namespaceURI === NS.SOAP12_ENV ? '1.2' : undefined;
195
+ if (root.localName !== 'Envelope' || version === undefined) {
196
+ problems.push(at(root, {
197
+ severity: 'error',
198
+ code: 'not-an-envelope',
199
+ message: `Expected a SOAP ${options.expectedVersion} <Envelope>, found <${root.tagName}>`,
200
+ path: `/${root.tagName}`,
201
+ }));
202
+ return problems;
203
+ }
204
+ if (version !== options.expectedVersion) {
205
+ problems.push(at(root, {
206
+ severity: 'error',
207
+ code: 'soap-version-mismatch',
208
+ message: `The binding is SOAP ${options.expectedVersion} but this envelope is SOAP ${version}`,
209
+ path: `/${root.tagName}`,
210
+ }));
211
+ }
212
+ const envelopeNs = ENVELOPE_NS[version];
213
+ const children = elementChildren(root);
214
+ const headers = children.filter((child) => child.namespaceURI === envelopeNs && child.localName === 'Header');
215
+ const bodies = children.filter((child) => child.namespaceURI === envelopeNs && child.localName === 'Body');
216
+ for (const child of children) {
217
+ if (child.namespaceURI === envelopeNs && (child.localName === 'Header' || child.localName === 'Body')) {
218
+ continue;
219
+ }
220
+ problems.push(at(child, {
221
+ severity: 'error',
222
+ code: 'unexpected-envelope-child',
223
+ message: `<${child.tagName}> is not allowed as a direct child of <Envelope>`,
224
+ }));
225
+ }
226
+ if (headers.length > 1) {
227
+ problems.push(at(headers[1], {
228
+ severity: 'error',
229
+ code: 'multiple-header',
230
+ message: 'An envelope may carry only one <Header>',
231
+ }));
232
+ }
233
+ else if (headers.length === 1 &&
234
+ bodies.length > 0 &&
235
+ children.indexOf(headers[0]) > children.indexOf(bodies[0])) {
236
+ problems.push(at(headers[0], { severity: 'error', code: 'header-after-body', message: '<Header> must precede <Body>' }));
237
+ }
238
+ if (bodies.length === 0) {
239
+ problems.push(at(root, { severity: 'error', code: 'missing-body', message: 'The envelope has no <Body>' }));
240
+ }
241
+ else if (bodies.length > 1) {
242
+ problems.push(at(bodies[1], { severity: 'error', code: 'multiple-body', message: 'An envelope may carry only one <Body>' }));
243
+ }
244
+ const header = headers[0];
245
+ if (header !== undefined) {
246
+ checkMustUnderstand(header, version, problems);
247
+ }
248
+ const body = bodies[0];
249
+ const fault = body === undefined ? undefined : elementChildren(body).find((child) => child.localName === 'Fault');
250
+ if (fault !== undefined && fault.namespaceURI === envelopeNs) {
251
+ checkFault(fault, version, problems);
252
+ }
253
+ checkTransport(options, problems);
254
+ return problems;
255
+ }
@@ -0,0 +1,47 @@
1
+ /**
2
+ * The problem shape every message validator reports, shared by the XSD schema
3
+ * validator (`schema-validator.ts`) and the SOAP structure checks
4
+ * (`soap-structure.ts`). Positions are 1-based and refer to the *envelope*
5
+ * text that was validated, so a UI can turn one straight into an editor
6
+ * marker.
7
+ */
8
+ /** How badly a validation finding matters. */
9
+ export type ValidationSeverity = 'error' | 'warning';
10
+ /** Which validator raised a finding: the XSD validator, the SOAP structure checks, or WS-I. */
11
+ export type ValidationSource = 'schema' | 'structure' | 'ws-i';
12
+ /** One finding about a SOAP message. */
13
+ export interface ValidationProblem {
14
+ readonly severity: ValidationSeverity;
15
+ /** Stable, machine-readable code (e.g. `soap-version-mismatch`, `schema-invalid`). */
16
+ readonly code: string;
17
+ readonly message: string;
18
+ /** 1-based line in the validated envelope text. */
19
+ readonly line?: number;
20
+ /** 1-based column in the validated envelope text. */
21
+ readonly column?: number;
22
+ readonly endLine?: number;
23
+ readonly endColumn?: number;
24
+ readonly source: ValidationSource;
25
+ /** A human-readable element path (e.g. `/Envelope/Body/Add`), when one is known. */
26
+ readonly path?: string;
27
+ }
28
+ /** One `wsdl:part` as the validator needs it: a name plus the element or type it carries. */
29
+ export interface ValidationPart {
30
+ readonly name: string;
31
+ readonly element?: {
32
+ readonly namespaceUri: string;
33
+ readonly localName: string;
34
+ };
35
+ readonly type?: {
36
+ readonly namespaceUri: string;
37
+ readonly localName: string;
38
+ };
39
+ }
40
+ /** The binding context one message is validated in. */
41
+ export interface ValidationBinding {
42
+ readonly soapVersion: '1.1' | '1.2';
43
+ readonly operation: string;
44
+ readonly style: 'document' | 'rpc';
45
+ /** The parts of the message being validated (input for a request, output for a response). */
46
+ readonly parts: readonly ValidationPart[];
47
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * The problem shape every message validator reports, shared by the XSD schema
3
+ * validator (`schema-validator.ts`) and the SOAP structure checks
4
+ * (`soap-structure.ts`). Positions are 1-based and refer to the *envelope*
5
+ * text that was validated, so a UI can turn one straight into an editor
6
+ * marker.
7
+ */
8
+ export {};
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Shared DOM navigation for the WS-I assertions.
3
+ *
4
+ * The assertions work on the *raw* documents rather than the merged {@link WsdlDefinition}: the
5
+ * profile constrains constructs the model normalizes away (a missing `use` attribute, a `parts`
6
+ * list, the order of `wsdl:input`/`wsdl:output`), and findings need the document and position the
7
+ * offending element actually came from.
8
+ */
9
+ import type { Element } from '@xmldom/xmldom';
10
+ import type { QName } from '../../../wsdl/qname.js';
11
+ import type { BundledDocument } from '../../../wsdl/resolver.js';
12
+ import type { WsiFinding, WsiWsdlContext } from '../types.js';
13
+ /** The two WSDL SOAP binding namespaces, in the order they are probed. */
14
+ export declare const SOAP_BINDING_NAMESPACES: readonly ["http://schemas.xmlsoap.org/wsdl/soap/", "http://schemas.xmlsoap.org/wsdl/soap12/"];
15
+ /** One `wsdl:definitions` document of the bundle. */
16
+ export interface WsdlDocumentView {
17
+ readonly location: string;
18
+ readonly definitions: Element;
19
+ }
20
+ /** Every `wsdl:definitions` document in the bundle, in discovery order. */
21
+ export declare function wsdlDocuments(context: WsiWsdlContext): readonly WsdlDocumentView[];
22
+ /** One `xs:schema` element of the bundle, with the document it was found in. */
23
+ export interface SchemaView {
24
+ readonly location: string;
25
+ readonly schema: Element;
26
+ }
27
+ /** Every `xs:schema` element in the bundle: the inline ones first, then standalone XSD roots. */
28
+ export declare function schemaElements(context: WsiWsdlContext): readonly SchemaView[];
29
+ /** Every descendant element of `root` (excluding `root` itself), depth first. */
30
+ export declare function descendants(root: Element): readonly Element[];
31
+ /** The SOAP binding namespace a `wsdl:binding` uses, or `undefined` when it is not a SOAP binding. */
32
+ export declare function soapNamespaceOf(binding: Element): string | undefined;
33
+ /** The SOAP bindings of every document, paired with the SOAP namespace they use. */
34
+ export interface SoapBindingView {
35
+ readonly location: string;
36
+ readonly binding: Element;
37
+ readonly soapNs: string;
38
+ /** The binding's `soapbind:binding` element. */
39
+ readonly soapBinding: Element;
40
+ }
41
+ /** Every `wsdl:binding` that is a SOAP binding, across the whole bundle. */
42
+ export declare function soapBindings(context: WsiWsdlContext): readonly SoapBindingView[];
43
+ /** The effective style of one binding operation: its own `soapbind:operation/@style`, else the binding's. */
44
+ export declare function operationStyle(view: SoapBindingView, operation: Element): 'document' | 'rpc';
45
+ /** The `wsdl:input`/`wsdl:output` children of a binding operation, in document order. */
46
+ export declare function bindingMessages(operation: Element): readonly Element[];
47
+ /** The `soapbind:body` of a binding `wsdl:input`/`wsdl:output`, if it declares one. */
48
+ export declare function soapBodyOf(message: Element, soapNs: string): Element | undefined;
49
+ /** Resolves a QName-valued attribute against the in-scope prefixes of `element`. */
50
+ export declare function attributeQName(element: Element, attribute: string, defaultNamespace: string): QName | undefined;
51
+ /** The `targetNamespace` of the `wsdl:definitions` an element belongs to (empty string when absent). */
52
+ export declare function targetNamespaceOf(definitions: Element): string;
53
+ /**
54
+ * Every namespace the description defines or imports: the `targetNamespace` of each
55
+ * `wsdl:definitions` and each `xs:schema` of the bundle, the `namespace` of each
56
+ * `wsdl:import`/`xs:import`, and the XML Schema namespace itself (always available to a
57
+ * description). This is the set R2101 and R2102 measure their QName references against.
58
+ */
59
+ export declare function declaredNamespaces(context: WsiWsdlContext): ReadonlySet<string>;
60
+ /** A bundle-wide index of the WSDL components assertions cross-reference, keyed by Clark name. */
61
+ export interface WsdlIndex {
62
+ readonly messages: ReadonlyMap<string, WsdlComponent>;
63
+ readonly portTypes: ReadonlyMap<string, WsdlComponent>;
64
+ }
65
+ /** One indexed WSDL component: its element plus the document it came from. */
66
+ export interface WsdlComponent {
67
+ readonly location: string;
68
+ readonly element: Element;
69
+ }
70
+ /** Indexes every `wsdl:message` and `wsdl:portType` of the bundle by expanded name (cached per context). */
71
+ export declare function wsdlIndex(context: WsiWsdlContext): WsdlIndex;
72
+ /** Looks a `wsdl:message` up by the QName an attribute of `element` refers to. */
73
+ export declare function referencedMessage(context: WsiWsdlContext, element: Element, attribute: string, defaultNamespace: string): WsdlComponent | undefined;
74
+ /** The `wsdl:part` children of a `wsdl:message`. */
75
+ export declare function messageParts(message: Element): readonly Element[];
76
+ /** Finds a `wsdl:part` of `message` by name. */
77
+ export declare function findPart(message: Element, name: string): Element | undefined;
78
+ /** A readable element path, using `@name` where an element has one and a position index otherwise. */
79
+ export declare function xpathOf(element: Element): string;
80
+ /** Builds a finding pointing at `element` in the document at `location`. */
81
+ export declare function findingAt(location: string, element: Element, message: string): WsiFinding;
82
+ /** True when `value` is an absolute URI (a scheme followed by a scheme-specific part). */
83
+ export declare function isAbsoluteUri(value: string): boolean;
84
+ /** Resolves a relative reference against a base location, returning `undefined` when it is not resolvable. */
85
+ export declare function resolveAgainst(reference: string, base: string): string | undefined;
86
+ /** Looks a bundled document up by the location one of its importers referenced. */
87
+ export declare function bundledDocumentFor(context: WsiWsdlContext, resolvedLocation: string): BundledDocument | undefined;
88
+ /** One side of one binding operation, joined to the abstract message it binds. */
89
+ export interface BoundMessageView {
90
+ readonly location: string;
91
+ readonly bindingView: SoapBindingView;
92
+ /** The `wsdl:operation` inside the `wsdl:binding`. */
93
+ readonly operation: Element;
94
+ readonly direction: 'input' | 'output' | 'fault';
95
+ /** The `wsdl:input`/`wsdl:output`/`wsdl:fault` inside the binding operation. */
96
+ readonly messageElement: Element;
97
+ readonly soapBody?: Element;
98
+ readonly style: 'document' | 'rpc';
99
+ /** The `wsdl:message` the port type's operation refers to, when it resolves. */
100
+ readonly abstractMessage?: WsdlComponent;
101
+ /** Every `wsdl:part` of that message. */
102
+ readonly parts: readonly Element[];
103
+ /** The names listed in `soapbind:body/@parts`, or `undefined` when the attribute is absent. */
104
+ readonly declaredParts?: readonly string[];
105
+ /**
106
+ * The parts actually bound to the SOAP body: the declared subset, or all of them. Always empty
107
+ * for a `fault` view — a fault's part is bound by `soapbind:fault`, never by `soapbind:body`.
108
+ */
109
+ readonly boundParts: readonly Element[];
110
+ /**
111
+ * The parts bound to *any* SOAP construct: the body-bound ones plus every part this binding
112
+ * operation's `soapbind:header`/`headerfault` elements name on the same abstract message. For a
113
+ * `fault` view it is every part of the fault message when the `wsdl:fault` carries a
114
+ * `soapbind:fault`, and nothing otherwise: a fault message has a single, implicitly bound part,
115
+ * so the binding either declares the fault or leaves it unbound.
116
+ */
117
+ readonly soapBoundParts: readonly Element[];
118
+ }
119
+ /** The `wsdl:portType` a binding refers to, when it resolves. */
120
+ export declare function portTypeOf(context: WsiWsdlContext, view: SoapBindingView, definitions: Element): WsdlComponent | undefined;
121
+ /** Joins every binding operation's input/output to the abstract message it binds. */
122
+ export declare function boundMessages(context: WsiWsdlContext): readonly BoundMessageView[];
123
+ /** One `soapbind:` extension element of a binding, with the context needed to judge it. */
124
+ export interface SoapExtensionView {
125
+ readonly location: string;
126
+ readonly bindingView: SoapBindingView;
127
+ /** The `wsdl:operation` of the binding the extension belongs to. */
128
+ readonly operation: Element;
129
+ /** The `soapbind:body`/`header`/`headerfault`/`fault` element itself. */
130
+ readonly element: Element;
131
+ readonly kind: 'body' | 'header' | 'headerfault' | 'fault';
132
+ /** The enclosing `wsdl:fault`, for a `soapbind:fault`. */
133
+ readonly wsdlFault?: Element;
134
+ readonly style: 'document' | 'rpc';
135
+ }
136
+ /** Every `soapbind:body`/`header`/`headerfault`/`fault` element of every SOAP binding. */
137
+ export declare function soapExtensions(context: WsiWsdlContext): readonly SoapExtensionView[];
138
+ /** One `soapbind:address` of a `wsdl:port`. */
139
+ export interface SoapAddressView {
140
+ readonly location: string;
141
+ readonly port: Element;
142
+ readonly address: Element;
143
+ }
144
+ /** Every `soapbind:address` element in the bundle. */
145
+ export declare function soapAddresses(context: WsiWsdlContext): readonly SoapAddressView[];