@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,244 @@
1
+ /**
2
+ * Builds, applies and strips the WS-Addressing header block of an outgoing SOAP envelope,
3
+ * for both the 2005/08 (W3C Recommendation) and the 2004/08 (Member Submission) versions.
4
+ *
5
+ * Header construction is deterministic: every non-deterministic input — the MessageID's UUID —
6
+ * is injected, so a golden test can pin the exact bytes.
7
+ */
8
+ import { WsaError } from '../errors.js';
9
+ import { detectEnvelopeVersion, envelopeNamespace } from '../soap/envelope.js';
10
+ import { NS } from '../xml/namespaces.js';
11
+ import { parseXml } from '../xml/parse.js';
12
+ import { serializeXml } from '../xml/serialize.js';
13
+ /** The prefix every generated WS-Addressing header binds its namespace to. */
14
+ export const WSA_PREFIX = 'wsa';
15
+ /** The addressing namespace URI for `version`. */
16
+ export function wsaNamespace(version) {
17
+ return version === '2004/08' ? NS.WSA_200408 : NS.WSA_200508;
18
+ }
19
+ /** The "anonymous" endpoint-reference address for `version`. */
20
+ export function anonymousAddress(version) {
21
+ return version === '2004/08'
22
+ ? 'http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous'
23
+ : 'http://www.w3.org/2005/08/addressing/anonymous';
24
+ }
25
+ /** The default `RelationshipType` of a `wsa:RelatesTo` for `version`. */
26
+ export function defaultRelationshipType(version) {
27
+ return version === '2004/08' ? 'wsa:Reply' : 'http://www.w3.org/2005/08/addressing/reply';
28
+ }
29
+ /** The `soap:mustUnderstand` attribute value meaning `true` for `version`. */
30
+ function mustUnderstandLiteral(version, value) {
31
+ if (version === '1.2') {
32
+ return value;
33
+ }
34
+ return value === 'true' ? '1' : '0';
35
+ }
36
+ /** The `wsa:Action` a send will carry, or `undefined` when it carries none. */
37
+ export function effectiveAction(config, ctx) {
38
+ if (config.action !== undefined && config.action.length > 0) {
39
+ return config.action;
40
+ }
41
+ if (!config.addDefaultAction) {
42
+ return undefined;
43
+ }
44
+ if (ctx.soapAction !== undefined && ctx.soapAction.length > 0) {
45
+ return ctx.soapAction;
46
+ }
47
+ return ctx.defaultAction.length > 0 ? ctx.defaultAction : undefined;
48
+ }
49
+ /** The `wsa:To` a send will carry, or `undefined` when it carries none. */
50
+ export function effectiveTo(config, endpoint) {
51
+ if (config.to !== undefined && config.to.length > 0) {
52
+ return config.to;
53
+ }
54
+ if (!config.addDefaultTo) {
55
+ return undefined;
56
+ }
57
+ return endpoint.length > 0 ? endpoint : undefined;
58
+ }
59
+ /** The `wsa:MessageID` a send will carry, or `undefined` when it carries none. */
60
+ export function effectiveMessageId(config, uuid) {
61
+ const configured = config.messageId;
62
+ if (configured !== undefined && configured.length > 0 && configured !== 'auto') {
63
+ return configured;
64
+ }
65
+ if (configured === 'auto' || config.generateMessageId) {
66
+ return `urn:uuid:${uuid()}`;
67
+ }
68
+ return undefined;
69
+ }
70
+ /** Resolves an endpoint-reference address, mapping the literal `anonymous` to the version's URI. */
71
+ function addressOf(value, version) {
72
+ return value === 'anonymous' ? anonymousAddress(version) : value;
73
+ }
74
+ /**
75
+ * Builds the `wsa:*` header elements for `config`, in WS-Addressing's own order:
76
+ * `Action`, `To`, `MessageID`, `ReplyTo`, `From`, `FaultTo`, `RelatesTo`.
77
+ *
78
+ * The elements belong to a scratch document; a caller inserting them into an envelope must
79
+ * `importNode` them first (as {@link applyWsaHeaders} does).
80
+ *
81
+ * @param config the effective configuration for this send
82
+ * @param ctx the endpoint, SOAPAction, WSDL default action, UUID source and SOAP version
83
+ * @returns the header elements, empty when the configuration produces none
84
+ */
85
+ export function buildWsaHeaders(config, ctx) {
86
+ const ns = wsaNamespace(config.version);
87
+ const doc = parseXml(`<wsa:headers xmlns:wsa="${ns}"/>`, { location: 'wsa-headers' });
88
+ const owner = doc.documentElement;
89
+ /* v8 ignore next 3 */
90
+ if (owner === null) {
91
+ return [];
92
+ }
93
+ const envelopeNs = envelopeNamespace(ctx.envelopeVersion);
94
+ const envelopePrefix = ctx.envelopePrefix !== undefined && ctx.envelopePrefix.length > 0 ? ctx.envelopePrefix : 'soapenv';
95
+ const headers = [];
96
+ const create = (localName) => {
97
+ const element = doc.createElementNS(ns, `${WSA_PREFIX}:${localName}`);
98
+ if (config.mustUnderstand !== 'none') {
99
+ element.setAttributeNS(envelopeNs, `${envelopePrefix}:mustUnderstand`, mustUnderstandLiteral(ctx.envelopeVersion, config.mustUnderstand));
100
+ }
101
+ headers.push(element);
102
+ return element;
103
+ };
104
+ const text = (localName, value) => {
105
+ const element = create(localName);
106
+ element.appendChild(doc.createTextNode(value));
107
+ return element;
108
+ };
109
+ const epr = (localName, value) => {
110
+ const element = create(localName);
111
+ const address = doc.createElementNS(ns, `${WSA_PREFIX}:Address`);
112
+ address.appendChild(doc.createTextNode(addressOf(value, config.version)));
113
+ element.appendChild(address);
114
+ };
115
+ const action = effectiveAction(config, ctx);
116
+ if (action !== undefined) {
117
+ text('Action', action);
118
+ }
119
+ const to = effectiveTo(config, ctx.endpoint);
120
+ if (to !== undefined) {
121
+ text('To', to);
122
+ }
123
+ const messageId = effectiveMessageId(config, ctx.uuid);
124
+ if (messageId !== undefined) {
125
+ text('MessageID', messageId);
126
+ }
127
+ for (const [field, localName] of [
128
+ ['replyTo', 'ReplyTo'],
129
+ ['from', 'From'],
130
+ ['faultTo', 'FaultTo'],
131
+ ]) {
132
+ const value = config[field];
133
+ if (value !== undefined && value.length > 0) {
134
+ epr(localName, value);
135
+ }
136
+ }
137
+ if (config.relatesTo !== undefined && config.relatesTo.length > 0) {
138
+ const element = text('RelatesTo', config.relatesTo);
139
+ const relationship = config.relationshipType;
140
+ element.setAttribute('RelationshipType', relationship !== undefined && relationship.length > 0 ? relationship : defaultRelationshipType(config.version));
141
+ }
142
+ return headers;
143
+ }
144
+ /** Parses `envelopeXml`, rejecting anything that is not a SOAP envelope. */
145
+ function parseEnvelope(envelopeXml) {
146
+ const doc = parseXml(envelopeXml, { location: 'envelope' });
147
+ const version = detectEnvelopeVersion(doc);
148
+ const root = doc.documentElement;
149
+ if (version === undefined || root === null) {
150
+ throw new WsaError('wsa-not-an-envelope', 'WS-Addressing can only be applied to a SOAP envelope.');
151
+ }
152
+ return { doc, root, version };
153
+ }
154
+ /** The direct child element of `parent` in `namespaceUri` with `localName`, if any. */
155
+ function childElement(parent, namespaceUri, localName) {
156
+ for (let node = parent.firstChild; node !== null; node = node.nextSibling) {
157
+ if (node.nodeType === 1) {
158
+ const element = node;
159
+ if (element.namespaceURI === namespaceUri && element.localName === localName) {
160
+ return element;
161
+ }
162
+ }
163
+ }
164
+ return undefined;
165
+ }
166
+ /** The prefix the envelope binds its SOAP namespace to (`soapenv` when it uses a default one). */
167
+ function envelopePrefix(root) {
168
+ const prefix = root.prefix;
169
+ return prefix === null || prefix === '' ? 'soapenv' : prefix;
170
+ }
171
+ /** Finds or creates the `soap:Header`, always placing a new one before the `Body`. */
172
+ function ensureHeader(doc, root, version) {
173
+ const namespace = envelopeNamespace(version);
174
+ const existing = childElement(root, namespace, 'Header');
175
+ if (existing !== undefined) {
176
+ return existing;
177
+ }
178
+ const header = doc.createElementNS(namespace, `${envelopePrefix(root)}:Header`);
179
+ root.insertBefore(header, childElement(root, namespace, 'Body') ?? null);
180
+ return header;
181
+ }
182
+ /** Removes every `wsa:*` header of either version from `header`; returns how many went. */
183
+ function removeExisting(header) {
184
+ const doomed = [];
185
+ for (let node = header.firstChild; node !== null; node = node.nextSibling) {
186
+ if (node.nodeType === 1) {
187
+ const element = node;
188
+ if (element.namespaceURI === NS.WSA_200508 || element.namespaceURI === NS.WSA_200408) {
189
+ doomed.push(element);
190
+ }
191
+ }
192
+ }
193
+ for (const element of doomed) {
194
+ header.removeChild(element);
195
+ }
196
+ return doomed.length;
197
+ }
198
+ /**
199
+ * Writes `config`'s WS-Addressing headers into `envelopeXml`.
200
+ *
201
+ * Any `wsa:*` header already present — of *either* version — is removed first, so applying
202
+ * twice (or switching version) never leaves two contradicting `wsa:Action`s behind. The new
203
+ * block is inserted before every other header, which is where a reader looks for it.
204
+ *
205
+ * @param envelopeXml the envelope to address
206
+ * @param config the effective configuration for this send
207
+ * @param ctx the endpoint, SOAPAction, default action, UUID source and SOAP version
208
+ * @returns the serialized, addressed envelope
209
+ * @throws WirebenchError `wsa-not-an-envelope` when `envelopeXml` is not a SOAP envelope
210
+ */
211
+ export function applyWsaHeaders(envelopeXml, config, ctx) {
212
+ const { doc, root, version } = parseEnvelope(envelopeXml);
213
+ const header = ensureHeader(doc, root, version);
214
+ removeExisting(header);
215
+ const built = buildWsaHeaders(config, { ...ctx, envelopeVersion: version, envelopePrefix: envelopePrefix(root) });
216
+ const first = header.firstChild;
217
+ for (const element of built) {
218
+ header.insertBefore(doc.importNode(element, true), first);
219
+ }
220
+ return serializeXml(doc);
221
+ }
222
+ /**
223
+ * Removes every WS-Addressing header (either version) from `envelopeXml`.
224
+ *
225
+ * A document that is not a SOAP envelope — or that carries no addressing at all — is returned
226
+ * byte for byte, so "Remove" on an untouched envelope is a genuine no-op.
227
+ *
228
+ * @param envelopeXml the envelope to clean
229
+ */
230
+ export function stripWsaHeaders(envelopeXml) {
231
+ let parsed;
232
+ try {
233
+ parsed = parseEnvelope(envelopeXml);
234
+ }
235
+ catch {
236
+ return envelopeXml;
237
+ }
238
+ const { doc, root, version } = parsed;
239
+ const header = childElement(root, envelopeNamespace(version), 'Header');
240
+ if (header === undefined) {
241
+ return envelopeXml;
242
+ }
243
+ return removeExisting(header) === 0 ? envelopeXml : serializeXml(doc);
244
+ }
@@ -0,0 +1,66 @@
1
+ /**
2
+ * The WS-Addressing configuration model: what a request (or its interface) says about the
3
+ * `wsa:*` headers a send should carry, and how the two levels combine.
4
+ *
5
+ * Both levels hold the same shape. A request that defines no `wsa` at all inherits its
6
+ * interface's configuration wholesale; a request that defines one overrides the interface
7
+ * field by field, so a request can change only the `Action` and still follow the interface
8
+ * for everything else.
9
+ */
10
+ /** The WS-Addressing specification version a header block is written in. */
11
+ export type WsaVersion = '2005/08' | '2004/08';
12
+ /**
13
+ * Whether (and how) a `soap:mustUnderstand` attribute is put on every `wsa:*` header:
14
+ * `'none'` writes no attribute at all, and is the default.
15
+ */
16
+ export type WsaMustUnderstand = 'none' | 'true' | 'false';
17
+ /** One level's WS-Addressing settings. */
18
+ export interface WsaConfig {
19
+ readonly enabled: boolean;
20
+ readonly version: WsaVersion;
21
+ readonly mustUnderstand: WsaMustUnderstand;
22
+ /** Explicit `wsa:Action`; falls back to the SOAPAction and then the WSDL default action. */
23
+ readonly action?: string;
24
+ /** Explicit `wsa:To`; falls back to the endpoint URL when {@link addDefaultTo}. */
25
+ readonly to?: string;
26
+ /**
27
+ * The literal `'auto'` (or any empty value with {@link generateMessageId}) mints a fresh
28
+ * `urn:uuid:`; anything else is sent verbatim, so two sends share one MessageID.
29
+ */
30
+ readonly messageId?: string;
31
+ readonly replyTo?: string;
32
+ readonly from?: string;
33
+ readonly faultTo?: string;
34
+ readonly relatesTo?: string;
35
+ readonly relationshipType?: string;
36
+ readonly addDefaultAction: boolean;
37
+ readonly addDefaultTo: boolean;
38
+ readonly generateMessageId: boolean;
39
+ }
40
+ /**
41
+ * A partial configuration, as a project file written by an older build may hold. Every key is
42
+ * explicitly `| undefined` so a value parsed by zod (where an absent optional is present as
43
+ * `undefined`) is assignable under `exactOptionalPropertyTypes`.
44
+ */
45
+ export type WsaConfigPatch = {
46
+ readonly [K in keyof WsaConfig]?: WsaConfig[K] | undefined;
47
+ };
48
+ /**
49
+ * The v1 defaults. They match what a project file from before the WS-Addressing task holds
50
+ * once the missing fields are filled in, so an old `{ enabled, version }` keeps working.
51
+ */
52
+ export declare const DEFAULT_WSA_CONFIG: WsaConfig;
53
+ /**
54
+ * Fills a (possibly partial) configuration out with {@link DEFAULT_WSA_CONFIG}.
55
+ *
56
+ * @param patch the stored configuration, or `undefined`
57
+ */
58
+ export declare function normalizeWsa(patch: WsaConfigPatch | undefined): WsaConfig;
59
+ /**
60
+ * The configuration one send actually runs with: the defaults, then the interface's settings,
61
+ * then the request's own — each level overriding the previous field by field.
62
+ *
63
+ * @param interfaceWsa the interface-level defaults
64
+ * @param requestWsa the request's own overrides, absent when the request inherits
65
+ */
66
+ export declare function effectiveWsa(interfaceWsa: WsaConfigPatch | undefined, requestWsa: WsaConfigPatch | undefined): WsaConfig;
@@ -0,0 +1,52 @@
1
+ /**
2
+ * The WS-Addressing configuration model: what a request (or its interface) says about the
3
+ * `wsa:*` headers a send should carry, and how the two levels combine.
4
+ *
5
+ * Both levels hold the same shape. A request that defines no `wsa` at all inherits its
6
+ * interface's configuration wholesale; a request that defines one overrides the interface
7
+ * field by field, so a request can change only the `Action` and still follow the interface
8
+ * for everything else.
9
+ */
10
+ /**
11
+ * The v1 defaults. They match what a project file from before the WS-Addressing task holds
12
+ * once the missing fields are filled in, so an old `{ enabled, version }` keeps working.
13
+ */
14
+ export const DEFAULT_WSA_CONFIG = {
15
+ enabled: false,
16
+ version: '2005/08',
17
+ mustUnderstand: 'none',
18
+ addDefaultAction: true,
19
+ addDefaultTo: true,
20
+ generateMessageId: true,
21
+ };
22
+ /** Copies the keys of `patch` that are actually set onto `base`. */
23
+ function merge(base, patch) {
24
+ if (patch === undefined) {
25
+ return base;
26
+ }
27
+ const next = { ...base };
28
+ for (const [key, value] of Object.entries(patch)) {
29
+ if (value !== undefined) {
30
+ next[key] = value;
31
+ }
32
+ }
33
+ return next;
34
+ }
35
+ /**
36
+ * Fills a (possibly partial) configuration out with {@link DEFAULT_WSA_CONFIG}.
37
+ *
38
+ * @param patch the stored configuration, or `undefined`
39
+ */
40
+ export function normalizeWsa(patch) {
41
+ return merge(DEFAULT_WSA_CONFIG, patch);
42
+ }
43
+ /**
44
+ * The configuration one send actually runs with: the defaults, then the interface's settings,
45
+ * then the request's own — each level overriding the previous field by field.
46
+ *
47
+ * @param interfaceWsa the interface-level defaults
48
+ * @param requestWsa the request's own overrides, absent when the request inherits
49
+ */
50
+ export function effectiveWsa(interfaceWsa, requestWsa) {
51
+ return merge(merge(DEFAULT_WSA_CONFIG, interfaceWsa), requestWsa);
52
+ }
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Reads what a WSDL says about WS-Addressing, so an imported interface can turn addressing on
3
+ * by itself instead of making the user discover the requirement from a runtime fault.
4
+ *
5
+ * Three shapes are recognised, all of which real services use:
6
+ * - `wsaw:UsingAddressing` (or the 2004 `wsap:UsingAddressing`) on the binding or the port;
7
+ * - a `wsp:Policy` — attached inline or through a `wsp:PolicyReference` to a `#id` — that
8
+ * contains `wsam:Addressing` or one of the `UsingAddressing` assertions;
9
+ * - `wsam:Action` (or `wsaw:Action`) on a `portType` operation's `wsdl:input`, which also
10
+ * supplies that operation's default `wsa:Action`.
11
+ */
12
+ import type { Binding, BindingOperation, Operation, PortType, WsdlDefinition } from '../wsdl/model.js';
13
+ import type { QName } from '../wsdl/qname.js';
14
+ import type { WsaVersion } from './model.js';
15
+ /** What a WSDL says about WS-Addressing for one binding operation. */
16
+ export interface WsaDetection {
17
+ /** True when the definition asks for WS-Addressing at all. */
18
+ readonly usingAddressing: boolean;
19
+ /** The addressing version the definition's markers imply. */
20
+ readonly version: WsaVersion;
21
+ /** The operation's default `wsa:Action`, when the WSDL declares one. */
22
+ readonly action?: string;
23
+ /**
24
+ * True when the only addressing markers found are `wsp:Optional="true"` and there is no
25
+ * declared `wsa:Action` to force it on anyway — the WSDL merely *offers* addressing, so it
26
+ * must not auto-enable (`usingAddressing` is `false` in this case).
27
+ */
28
+ readonly optional?: boolean;
29
+ }
30
+ /**
31
+ * The default `wsa:Action` for one operation, following the WS-Addressing 1.0 WSDL binding's
32
+ * precedence: an explicit `wsam:Action`, then a non-empty `soapAction`, then the default
33
+ * pattern `<targetNamespace>/<portType>/<operation>Request`.
34
+ *
35
+ * @param definition the definition the operation belongs to
36
+ * @param portType the operation's `wsdl:portType`
37
+ * @param operation the abstract `wsdl:operation`
38
+ * @param options `soapAction` from the binding operation, when it has one
39
+ */
40
+ export declare function defaultAction(definition: WsdlDefinition, portType: PortType, operation: Operation, options?: {
41
+ readonly soapAction?: string;
42
+ }): string;
43
+ /**
44
+ * What `definition` says about WS-Addressing for one binding operation.
45
+ *
46
+ * `version` is `'2004/08'` only when *every* marker found is a 2004 one; a definition that
47
+ * mixes the two (or declares none at all) is treated as 2005/08, the version a modern stack
48
+ * speaks.
49
+ *
50
+ * @param definition the imported definition
51
+ * @param binding the binding the operation belongs to
52
+ * @param operation the binding operation, for its `soapAction` and abstract counterpart
53
+ */
54
+ export declare function detectWsaDefaults(definition: WsdlDefinition, binding: Binding, operation: BindingOperation): WsaDetection;
55
+ /** What an import records about WS-Addressing for a whole interface. */
56
+ export interface WsaSummary {
57
+ /** True when any binding of the definition asks for WS-Addressing. */
58
+ readonly enabled: boolean;
59
+ /**
60
+ * True when no binding requires addressing but at least one only *offers* it
61
+ * (`wsp:Optional="true"`) — the inspector shows "WSDL offers WS-Addressing (optional)"
62
+ * rather than auto-enabling.
63
+ */
64
+ readonly optional: boolean;
65
+ readonly version: WsaVersion;
66
+ /**
67
+ * Each binding operation's default `wsa:Action`, keyed by Clark-notation binding QName and
68
+ * operation name (`{namespace}Binding|Operation`) so two bindings that happen to share an
69
+ * operation name do not overwrite each other's default action.
70
+ */
71
+ readonly defaultActionByOperation: Readonly<Record<string, string>>;
72
+ }
73
+ /** The `defaultActionByOperation` key for one binding operation: `{ns}Binding|Operation`. */
74
+ export declare function wsaActionKey(bindingName: QName, operationName: string): string;
75
+ /**
76
+ * Folds {@link detectWsaDefaults} and {@link defaultAction} over every binding operation, for
77
+ * the interface summary an import produces.
78
+ *
79
+ * @param definition the imported definition
80
+ */
81
+ export declare function summarizeWsa(definition: WsdlDefinition): WsaSummary;