@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,276 @@
1
+ import { WsdlParseError } from '../errors.js';
2
+ import { NS } from '../xml/namespaces.js';
3
+ import { getPosition, parseXml } from '../xml/parse.js';
4
+ import { childElements, firstChildElement, optionalAttribute } from './dom-utils.js';
5
+ import { MAX_IMPORT_DEPTH, MAX_IMPORT_DOCUMENTS, referencePolicyFor } from './ref-policy.js';
6
+ /**
7
+ * Queues `ref`, resolved against `base` with the WHATWG `URL` class (which handles both
8
+ * `http(s):` and `file:`).
9
+ *
10
+ * A relative reference cannot be resolved against the pseudo-location of a pasted or dropped
11
+ * document (`inline:wsdl`, `dropped:service.wsdl`) — there is no directory to resolve it
12
+ * against — so that becomes an `unresolved-import` problem carrying the one action that fixes
13
+ * it, rather than an exception that loses the whole import.
14
+ */
15
+ function queueRef(ref, base, importedBy, depth, queue, problems, chameleonNamespace) {
16
+ let requestedLocation;
17
+ try {
18
+ requestedLocation = new URL(ref, base).toString();
19
+ }
20
+ catch {
21
+ problems.push({
22
+ code: 'unresolved-import',
23
+ message: `Cannot resolve "${ref}" against "${base}". Use Browse… to import a WSDL whose imports live next to it`,
24
+ location: base,
25
+ });
26
+ return;
27
+ }
28
+ queue.push({
29
+ requestedLocation,
30
+ importedBy,
31
+ depth,
32
+ ...(chameleonNamespace !== undefined ? { chameleonNamespace } : {}),
33
+ });
34
+ }
35
+ /**
36
+ * Builds a {@link BundledDocument} from a fetched document, determining its
37
+ * `kind` from the root element and, for an `xs:schema` root, its effective
38
+ * namespace (its own `targetNamespace`, or the chameleon namespace adopted
39
+ * from its includer).
40
+ *
41
+ * @throws {Error} if the root element is neither a WSDL `definitions` nor an XSD `schema` and `isRoot` is `false`
42
+ * (the caller turns this into a `not-xml` problem); a root with an unrecognized shape is tagged `kind: 'wsdl'`
43
+ * so downstream `parseWsdlDocument` raises its own `not-a-wsdl` error.
44
+ */
45
+ function buildBundledDocument(fetched, requestedLocation, importedBy, chameleonNamespace, isRoot) {
46
+ const document = parseXml(fetched.text, { location: fetched.location });
47
+ const root = document.documentElement;
48
+ let kind;
49
+ let namespace;
50
+ let chameleonFor;
51
+ if (root !== null && root.namespaceURI === NS.WSDL && root.localName === 'definitions') {
52
+ kind = 'wsdl';
53
+ namespace = optionalAttribute(root, 'targetNamespace');
54
+ }
55
+ else if (root !== null && root.namespaceURI === NS.XSD && root.localName === 'schema') {
56
+ kind = 'xsd';
57
+ const ownNamespace = optionalAttribute(root, 'targetNamespace');
58
+ if (ownNamespace !== undefined) {
59
+ namespace = ownNamespace;
60
+ }
61
+ else if (chameleonNamespace !== undefined) {
62
+ namespace = chameleonNamespace;
63
+ chameleonFor = importedBy;
64
+ }
65
+ }
66
+ else if (isRoot) {
67
+ // Leave shape validation of the root to parseWsdlDocument (via parseWsdl), which
68
+ // raises a proper 'not-a-wsdl' WsdlParseError with position details.
69
+ kind = 'wsdl';
70
+ }
71
+ else {
72
+ throw new Error(`Document at "${fetched.location}" is neither a WSDL <definitions> nor an XSD <schema> root`);
73
+ }
74
+ return {
75
+ location: fetched.location,
76
+ requestedLocation,
77
+ bytes: fetched.bytes,
78
+ text: fetched.text,
79
+ kind,
80
+ ...(importedBy !== undefined ? { importedBy } : {}),
81
+ ...(namespace !== undefined ? { namespace } : {}),
82
+ ...(chameleonFor !== undefined ? { chameleonFor } : {}),
83
+ document,
84
+ };
85
+ }
86
+ /** Walks one `xs:schema` element's `xs:import`/`xs:include`/`xs:redefine` children, queuing referenced documents. */
87
+ function collectSchemaImports(schemaEl, baseLocation, importedBy, depth, queue, problems) {
88
+ const ownNamespace = optionalAttribute(schemaEl, 'targetNamespace');
89
+ for (const importEl of childElements(schemaEl, NS.XSD, 'import')) {
90
+ // A namespace-only xs:import (no schemaLocation) carries nothing to fetch: Task 7
91
+ // resolves types across the bundle by namespace instead.
92
+ const schemaLocation = optionalAttribute(importEl, 'schemaLocation');
93
+ if (schemaLocation === undefined) {
94
+ continue;
95
+ }
96
+ queueRef(schemaLocation, baseLocation, importedBy, depth, queue, problems);
97
+ }
98
+ for (const includeEl of childElements(schemaEl, NS.XSD, 'include')) {
99
+ const schemaLocation = optionalAttribute(includeEl, 'schemaLocation');
100
+ if (schemaLocation === undefined) {
101
+ continue;
102
+ }
103
+ queueRef(schemaLocation, baseLocation, importedBy, depth, queue, problems, ownNamespace);
104
+ }
105
+ for (const redefineEl of childElements(schemaEl, NS.XSD, 'redefine')) {
106
+ const schemaLocation = optionalAttribute(redefineEl, 'schemaLocation');
107
+ const pos = getPosition(redefineEl);
108
+ problems.push({
109
+ code: 'unsupported-redefine',
110
+ message: `xs:redefine is not supported${schemaLocation !== undefined ? ` (schemaLocation="${schemaLocation}")` : ''}`,
111
+ location: baseLocation,
112
+ ...(pos !== undefined ? pos : {}),
113
+ });
114
+ if (schemaLocation !== undefined) {
115
+ // Still fetch the referenced document, treating the redefine as a plain include.
116
+ queueRef(schemaLocation, baseLocation, importedBy, depth, queue, problems, ownNamespace);
117
+ }
118
+ }
119
+ }
120
+ /** Walks a {@link BundledDocument}'s imports/includes/redefines, queuing every referenced document. */
121
+ function collectImports(doc, depth, queue, problems) {
122
+ const root = doc.document.documentElement;
123
+ if (root === null) {
124
+ return;
125
+ }
126
+ if (doc.kind === 'wsdl') {
127
+ for (const importEl of childElements(root, NS.WSDL, 'import')) {
128
+ const location = optionalAttribute(importEl, 'location');
129
+ if (location === undefined) {
130
+ continue;
131
+ }
132
+ queueRef(location, doc.location, doc.location, depth, queue, problems);
133
+ }
134
+ const typesEl = firstChildElement(root, NS.WSDL, 'types');
135
+ if (typesEl !== undefined) {
136
+ for (const schemaEl of childElements(typesEl, NS.XSD, 'schema')) {
137
+ collectSchemaImports(schemaEl, doc.location, doc.location, depth, queue, problems);
138
+ }
139
+ }
140
+ }
141
+ else {
142
+ collectSchemaImports(root, doc.location, doc.location, depth, queue, problems);
143
+ }
144
+ }
145
+ function abortError(signal) {
146
+ return signal.reason !== undefined ? signal.reason : new DOMException('Aborted', 'AbortError');
147
+ }
148
+ // Wrapped in a function (rather than inlining `signal?.aborted === true`) so TypeScript does not
149
+ // carry a `false` narrowing of the readonly `aborted` property across loop iterations/awaits.
150
+ function checkAborted(signal) {
151
+ if (signal !== undefined && signal.aborted) {
152
+ throw abortError(signal);
153
+ }
154
+ }
155
+ /**
156
+ * Resolves a WSDL/XSD document's full import graph (`wsdl:import`, `xs:import`,
157
+ * `xs:include`, `xs:redefine`) into a flat {@link DefinitionBundle}, fetching
158
+ * every referenced document exactly once (by canonical, post-redirect
159
+ * location) through the injected `fetchDocument`.
160
+ *
161
+ * Every nested reference is first judged against the root document's world (see
162
+ * `wsdl/ref-policy.ts`): a `file:` root may only reference `file:` documents inside its own
163
+ * folder, an `http(s):` root may only reference `http(s):` documents, and a pasted/dropped
164
+ * root may only reference `http(s):` documents. A refused reference becomes an
165
+ * `import-ref-refused` problem and the import continues with what did resolve — so a WSDL
166
+ * cannot be used to read arbitrary local files. The graph is additionally capped at
167
+ * {@link MAX_IMPORT_DEPTH} levels and {@link MAX_IMPORT_DOCUMENTS} documents (`import-limit`).
168
+ *
169
+ * A failed fetch of an imported/included document is recorded as a
170
+ * `fetch-failed` {@link ResolveProblem} and resolution continues with the
171
+ * rest of the graph; a failed fetch of the root document throws instead,
172
+ * since there is nothing to return without it.
173
+ *
174
+ * @throws {WsdlParseError} with code `fetch-failed` if the root document cannot be fetched
175
+ * @throws if `options.signal` is already aborted, or becomes aborted mid-resolution
176
+ */
177
+ export async function resolveDefinition(source, options) {
178
+ const { fetchDocument, signal } = options;
179
+ checkAborted(signal);
180
+ const problems = [];
181
+ const canonicalDocs = new Map();
182
+ const requestedSeen = new Set([source.location]);
183
+ let rootFetched;
184
+ if (source.text !== undefined) {
185
+ rootFetched = { location: source.location, bytes: new TextEncoder().encode(source.text), text: source.text };
186
+ }
187
+ else {
188
+ try {
189
+ rootFetched = await fetchDocument(source.location, signal);
190
+ }
191
+ catch (cause) {
192
+ throw new WsdlParseError('fetch-failed', `Failed to fetch root document "${source.location}"`, {
193
+ cause,
194
+ details: { location: source.location },
195
+ });
196
+ }
197
+ }
198
+ requestedSeen.add(rootFetched.location);
199
+ const rootDoc = buildBundledDocument(rootFetched, source.location, undefined, undefined, true);
200
+ canonicalDocs.set(rootFetched.location, rootDoc);
201
+ const documents = [rootDoc];
202
+ // Every nested reference is judged against the *root* document's world; see `ref-policy.ts`.
203
+ const policy = referencePolicyFor(rootFetched.location);
204
+ const queue = [];
205
+ collectImports(rootDoc, 1, queue, problems);
206
+ let limitReported = false;
207
+ while (queue.length > 0) {
208
+ const job = queue.shift();
209
+ /* v8 ignore next 3 -- queue.length > 0 guarantees a defined element */
210
+ if (job === undefined) {
211
+ continue;
212
+ }
213
+ if (requestedSeen.has(job.requestedLocation)) {
214
+ continue;
215
+ }
216
+ requestedSeen.add(job.requestedLocation);
217
+ if (job.depth > MAX_IMPORT_DEPTH || documents.length >= MAX_IMPORT_DOCUMENTS) {
218
+ // One problem for the whole runaway graph: a cap hit usually trips on hundreds of
219
+ // references at once, and a problems list that long tells the user nothing extra.
220
+ if (!limitReported) {
221
+ limitReported = true;
222
+ problems.push({
223
+ code: 'import-limit',
224
+ message: job.depth > MAX_IMPORT_DEPTH
225
+ ? `Import graph deeper than ${String(MAX_IMPORT_DEPTH)} levels; the rest was not fetched`
226
+ : `Import graph larger than ${String(MAX_IMPORT_DOCUMENTS)} documents; the rest was not fetched`,
227
+ location: job.importedBy,
228
+ });
229
+ }
230
+ continue;
231
+ }
232
+ const refused = await policy.allows(job.requestedLocation);
233
+ if (refused !== undefined) {
234
+ problems.push({
235
+ code: 'import-ref-refused',
236
+ message: `Refused to fetch "${job.requestedLocation}": ${refused.reason}`,
237
+ location: job.importedBy,
238
+ });
239
+ continue;
240
+ }
241
+ checkAborted(signal);
242
+ let fetched;
243
+ try {
244
+ fetched = await fetchDocument(job.requestedLocation, signal);
245
+ }
246
+ catch (cause) {
247
+ problems.push({
248
+ code: 'fetch-failed',
249
+ message: `Failed to fetch "${job.requestedLocation}": ${cause instanceof Error ? cause.message : String(cause)}`,
250
+ location: job.requestedLocation,
251
+ });
252
+ continue;
253
+ }
254
+ requestedSeen.add(fetched.location);
255
+ // A redirect may converge onto a location already fetched via a different request.
256
+ if (canonicalDocs.has(fetched.location)) {
257
+ continue;
258
+ }
259
+ let bundled;
260
+ try {
261
+ bundled = buildBundledDocument(fetched, job.requestedLocation, job.importedBy, job.chameleonNamespace, false);
262
+ }
263
+ catch (cause) {
264
+ problems.push({
265
+ code: 'not-xml',
266
+ message: cause instanceof Error ? cause.message : String(cause),
267
+ location: fetched.location,
268
+ });
269
+ continue;
270
+ }
271
+ canonicalDocs.set(fetched.location, bundled);
272
+ documents.push(bundled);
273
+ collectImports(bundled, job.depth + 1, queue, problems);
274
+ }
275
+ return { root: rootDoc, documents, problems };
276
+ }
@@ -0,0 +1,106 @@
1
+ /**
2
+ * "Update Definition": re-import a WSDL and reconcile an existing
3
+ * project against it.
4
+ *
5
+ * The two halves are deliberately separate. {@link planUpdate} is a pure diff of
6
+ * two {@link ImportResult}s — what a preview dialog shows before the user commits
7
+ * to anything. {@link applyUpdate} then rewrites the project model per the
8
+ * options the user ticked, and is equally pure: it returns the next `Project`
9
+ * plus the relative paths of the `.xml.bak` backups the save layer should write
10
+ * (see `project/save.ts`'s `backups` option), and never touches a file system
11
+ * itself.
12
+ *
13
+ * Nothing is ever deleted. Requests belonging to an operation the new definition
14
+ * no longer has are kept and flagged {@link RequestDef.orphaned} rather than
15
+ * removed — the user decides whether a vanished operation means "clean
16
+ * this up" or "the new WSDL is wrong".
17
+ */
18
+ import type { IdGenerator, Project } from '../project/model.js';
19
+ import type { OperationRef } from '../soap/request-builder.js';
20
+ import type { ImportResult } from '../types.js';
21
+ export type { OperationRef } from '../soap/request-builder.js';
22
+ /** Why {@link planUpdate} considers an operation changed; the first applicable reason wins. */
23
+ export type OperationChangeReason = 'input-schema' | 'output-schema' | 'soap-action' | 'style' | 'binding';
24
+ /** One operation both definitions have, but not identically. */
25
+ export interface ChangedOperation {
26
+ readonly ref: OperationRef;
27
+ readonly reason: OperationChangeReason;
28
+ }
29
+ /** The difference between the definition a project was built from and a freshly imported one. */
30
+ export interface UpdatePlan {
31
+ /** Operations only the new definition has. */
32
+ readonly newOperations: readonly OperationRef[];
33
+ /** Operations only the old definition had; their saved requests become orphaned. */
34
+ readonly removedOperations: readonly OperationRef[];
35
+ /** Operations both have, whose generated request or transport metadata differs. */
36
+ readonly changedOperations: readonly ChangedOperation[];
37
+ /** `soap:address` locations the new definition adds. */
38
+ readonly endpointsAdded: readonly string[];
39
+ /** `soap:address` locations the new definition no longer declares. */
40
+ readonly endpointsRemoved: readonly string[];
41
+ }
42
+ /**
43
+ * Diffs two imports of the same interface: what the new definition adds, drops
44
+ * and changes. Operation identity is the binding's expanded name plus the
45
+ * operation name, so a renamed binding reads as "every operation removed, every
46
+ * operation added" — which is what it is.
47
+ *
48
+ * Pure and deterministic: the lists follow the new definition's document order
49
+ * (removed operations follow the old one's).
50
+ *
51
+ * @param oldImport the definition the project was built from
52
+ * @param newImport the freshly fetched definition
53
+ */
54
+ export declare function planUpdate(oldImport: ImportResult, newImport: ImportResult): UpdatePlan;
55
+ /**
56
+ * What {@link applyUpdate} is allowed to do, named after the checkboxes of
57
+ * the Update Definition dialog.
58
+ */
59
+ export interface ApplyUpdateOptions {
60
+ /** "Create new requests": add a `Request 1` for every operation the new definition adds. */
61
+ readonly createNewRequests: boolean;
62
+ /** "Recreate requests": regenerate the envelopes of every changed operation's requests. */
63
+ readonly recreateRequests: boolean;
64
+ /** "Recreate optional elements": include `minOccurs="0"` content when regenerating. */
65
+ readonly recreateOptional: boolean;
66
+ /** "Keep existing values": copy matching leaf values across (Task 29's merge). */
67
+ readonly keepExisting: boolean;
68
+ /** "Keep SOAP headers": keep the current `soapenv:Header` verbatim. */
69
+ readonly keepSoapHeaders: boolean;
70
+ /** "Create backups": ask the save layer for a `<request>.xml.bak` of every rewritten envelope. */
71
+ readonly createBackups: boolean;
72
+ /** "Update TestRequests": not implemented in this phase; the dialog shows it disabled. */
73
+ readonly updateTestRequests: false;
74
+ /** Mints ids for created requests and endpoints; injected by tests for determinism. */
75
+ readonly newId?: IdGenerator;
76
+ }
77
+ /** What {@link applyUpdate} did, in ids the caller can select in the UI. */
78
+ export interface ApplyUpdateResult {
79
+ readonly project: Project;
80
+ /** Ids of requests created for newly added operations. */
81
+ readonly requestsCreated: readonly string[];
82
+ /** Ids of requests whose envelope was regenerated. */
83
+ readonly requestsRecreated: readonly string[];
84
+ /** Ids of requests now flagged `orphaned` because their operation is gone. */
85
+ readonly requestsOrphaned: readonly string[];
86
+ /**
87
+ * Relative, `/`-separated project paths of the `.xml.bak` files the save layer
88
+ * should write before overwriting the corresponding envelope.
89
+ */
90
+ readonly backups: readonly string[];
91
+ }
92
+ /**
93
+ * Applies `plan` to one interface of `project`, per `options`.
94
+ *
95
+ * Never deletes anything: a removed operation's requests stay exactly where they
96
+ * are with `orphaned: true`, and an operation the new definition brought back has
97
+ * that flag cleared again.
98
+ *
99
+ * @param project the model to update; never mutated
100
+ * @param interfaceId the interface the plan belongs to
101
+ * @param plan the diff from {@link planUpdate}
102
+ * @param newImport the freshly imported definition the plan was built against
103
+ * @param options which of the update behaviours to perform
104
+ * @throws Error when `interfaceId` names no interface of `project`
105
+ */
106
+ export declare function applyUpdate(project: Project, interfaceId: string, plan: UpdatePlan, newImport: ImportResult, options: ApplyUpdateOptions): ApplyUpdateResult;