@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,356 @@
1
+ /**
2
+ * Property expansion over the `${#Project#name}`, `${#Env#name}`,
3
+ * `${#Workspace#name}`, `${#Global#name}` and `${#System#name}` syntax, plus
4
+ * the shorthand `${name}` which resolves through the scope chain
5
+ * Env -> Project -> Workspace -> Global (System is never implicit). Values
6
+ * are themselves expanded recursively (cycle-safe, depth limited);
7
+ * unresolved expressions are left verbatim in the output and reported via
8
+ * `unresolved`.
9
+ *
10
+ * Pure module: no I/O beyond reading the `scopes.system` map the caller
11
+ * passes in (default `process.env`).
12
+ */
13
+ import { entitizeValue } from '../soap/transforms.js';
14
+ /**
15
+ * Filters `map` down to the entries not listed in `disabled`, preserving the map's key order.
16
+ * Used to make property resolution treat a disabled property as absent (its value stays on disk,
17
+ * see `Environment.disabledProperties`) without mutating the stored map itself.
18
+ */
19
+ export function enabledProperties(map, disabled) {
20
+ if (disabled.length === 0) {
21
+ return map;
22
+ }
23
+ const disabledSet = new Set(disabled);
24
+ const result = {};
25
+ for (const [key, value] of Object.entries(map)) {
26
+ if (!disabledSet.has(key)) {
27
+ result[key] = value;
28
+ }
29
+ }
30
+ return result;
31
+ }
32
+ const DEFAULT_MAX_DEPTH = 8;
33
+ const SCOPE_NAMES = new Set(['Project', 'Env', 'Workspace', 'Global', 'System']);
34
+ /** Parses the inside of `${...}` (without the delimiters) into a scope + name. */
35
+ function parseExpr(inner) {
36
+ if (inner.startsWith('#')) {
37
+ const secondHash = inner.indexOf('#', 1);
38
+ if (secondHash !== -1) {
39
+ const scope = inner.slice(1, secondHash);
40
+ const name = inner.slice(secondHash + 1);
41
+ if (SCOPE_NAMES.has(scope)) {
42
+ return { scope, name };
43
+ }
44
+ }
45
+ }
46
+ return { scope: undefined, name: inner };
47
+ }
48
+ function lookupInScope(scope, name, scopes) {
49
+ switch (scope) {
50
+ case 'Project':
51
+ return scopes.project[name];
52
+ case 'Env':
53
+ return scopes.env?.[name];
54
+ case 'Workspace':
55
+ return scopes.workspace?.[name];
56
+ case 'Global':
57
+ return scopes.global[name];
58
+ case 'System':
59
+ return (scopes.system ?? process.env)[name];
60
+ default:
61
+ return undefined;
62
+ }
63
+ }
64
+ /** Resolves the shorthand `${name}` through Env -> Project -> Workspace -> Global. */
65
+ function lookupShorthand(name, scopes) {
66
+ if (scopes.env !== undefined && Object.hasOwn(scopes.env, name)) {
67
+ return { scope: 'Env', value: scopes.env[name] };
68
+ }
69
+ if (Object.hasOwn(scopes.project, name)) {
70
+ return { scope: 'Project', value: scopes.project[name] };
71
+ }
72
+ if (scopes.workspace !== undefined && Object.hasOwn(scopes.workspace, name)) {
73
+ return { scope: 'Workspace', value: scopes.workspace[name] };
74
+ }
75
+ if (Object.hasOwn(scopes.global, name)) {
76
+ return { scope: 'Global', value: scopes.global[name] };
77
+ }
78
+ return undefined;
79
+ }
80
+ /**
81
+ * Scans `text` for `$${` escapes and `${...}` expressions, respecting nested braces. The `$${`
82
+ * escape is matched left-to-right and greedily on the *first* two characters that can start it,
83
+ * so a run of three or more `$` before a `{` (e.g. `$$${x}`) never opens an expression: the
84
+ * escape consumes the middle `$$` + `{`, leaving the rest (including `x}`) as plain literal
85
+ * text, so `x` is never looked up.
86
+ */
87
+ function tokenize(text) {
88
+ const tokens = [];
89
+ let literal = '';
90
+ let i = 0;
91
+ while (i < text.length) {
92
+ if (text.startsWith('$${', i)) {
93
+ literal += '${';
94
+ i += 3;
95
+ continue;
96
+ }
97
+ if (text.startsWith('${', i)) {
98
+ if (literal.length > 0) {
99
+ tokens.push({ kind: 'literal', text: literal });
100
+ literal = '';
101
+ }
102
+ const start = i;
103
+ let depth = 1;
104
+ let j = i + 2;
105
+ while (j < text.length && depth > 0) {
106
+ if (text.startsWith('${', j)) {
107
+ depth++;
108
+ j += 2;
109
+ continue;
110
+ }
111
+ if (text[j] === '}') {
112
+ depth--;
113
+ j++;
114
+ continue;
115
+ }
116
+ j++;
117
+ }
118
+ if (depth === 0) {
119
+ const raw = text.slice(start, j);
120
+ const inner = text.slice(start + 2, j - 1);
121
+ tokens.push({ kind: 'expr', raw, inner, start, end: j });
122
+ i = j;
123
+ }
124
+ else {
125
+ // Unterminated ${ : malformed, runs to end of string.
126
+ const raw = text.slice(start);
127
+ tokens.push({ kind: 'malformed', raw, start, end: text.length });
128
+ i = text.length;
129
+ }
130
+ continue;
131
+ }
132
+ literal += text[i];
133
+ i++;
134
+ }
135
+ if (literal.length > 0) {
136
+ tokens.push({ kind: 'literal', text: literal });
137
+ }
138
+ return tokens;
139
+ }
140
+ /** Pushes an unresolved ref, reporting `outer`'s span (the user-visible outer reference) when set, else the token's own span. */
141
+ function pushUnresolved(ctx, outer, via, entry) {
142
+ ctx.unresolved.push({
143
+ ...entry,
144
+ start: outer?.start ?? entry.start,
145
+ end: outer?.end ?? entry.end,
146
+ ...(via.length > 0 ? { via } : {}),
147
+ });
148
+ }
149
+ /**
150
+ * The text a resolved reference contributes to the output. When entitizing is on, the value is
151
+ * XML-escaped — but only at the outermost reference (`outer === undefined`), so a property whose
152
+ * value itself expands another property is escaped once rather than once per nesting level.
153
+ */
154
+ function substituted(ctx, outer, value) {
155
+ return ctx.entitize && outer === undefined ? entitizeValue(value) : value;
156
+ }
157
+ /**
158
+ * Expands all `${...}` expressions in `text` at `depth`, tracking an active-resolution stack for
159
+ * cycle detection. `outer`/`via` are set once expansion recurses into a property's value: `outer`
160
+ * pins unresolved refs to the outermost user-visible `${...}` span in the original text (rather
161
+ * than an offset into the value string), and `via` records the `scope#name` chain traversed to
162
+ * get here (outermost first).
163
+ */
164
+ function expandAt(text, depth, stack, ctx, outer, via) {
165
+ const tokens = tokenize(text);
166
+ let out = '';
167
+ for (const token of tokens) {
168
+ if (token.kind === 'literal') {
169
+ out += token.text;
170
+ continue;
171
+ }
172
+ if (token.kind === 'malformed') {
173
+ pushUnresolved(ctx, outer, via, { expr: token.raw, code: 'malformed', start: token.start, end: token.end });
174
+ out += token.raw;
175
+ continue;
176
+ }
177
+ if (depth >= ctx.maxDepth) {
178
+ pushUnresolved(ctx, outer, via, { expr: token.raw, code: 'too-deep', start: token.start, end: token.end });
179
+ out += token.raw;
180
+ continue;
181
+ }
182
+ // The span/chain to attribute anything found from here on down (this token's own span, unless already nested).
183
+ const effectiveOuter = outer ?? { start: token.start, end: token.end };
184
+ // The inner text of the expression may itself contain expressions (nesting); expand those first.
185
+ const resolvedInner = expandAt(token.inner, depth + 1, stack, ctx, effectiveOuter, via);
186
+ const { scope, name } = parseExpr(resolvedInner);
187
+ if (scope !== undefined) {
188
+ const key = `${scope}#${name}`;
189
+ if (stack.includes(key)) {
190
+ pushUnresolved(ctx, outer, via, {
191
+ expr: token.raw,
192
+ scope,
193
+ name,
194
+ code: 'cycle',
195
+ start: token.start,
196
+ end: token.end,
197
+ });
198
+ out += token.raw;
199
+ continue;
200
+ }
201
+ const value = lookupInScope(scope, name, ctx.scopes);
202
+ if (value === undefined) {
203
+ pushUnresolved(ctx, outer, via, {
204
+ expr: token.raw,
205
+ scope,
206
+ name,
207
+ code: 'missing',
208
+ start: token.start,
209
+ end: token.end,
210
+ });
211
+ out += token.raw;
212
+ continue;
213
+ }
214
+ ctx.used.push({ scope, name });
215
+ out += substituted(ctx, outer, expandAt(value, depth + 1, [...stack, key], ctx, effectiveOuter, [...via, key]));
216
+ continue;
217
+ }
218
+ // Shorthand: check it's not referencing an unknown explicit scope form like `${#Foo#x}`.
219
+ if (resolvedInner.startsWith('#')) {
220
+ const secondHash = resolvedInner.indexOf('#', 1);
221
+ if (secondHash !== -1) {
222
+ const attemptedScope = resolvedInner.slice(1, secondHash);
223
+ const attemptedName = resolvedInner.slice(secondHash + 1);
224
+ pushUnresolved(ctx, outer, via, {
225
+ expr: token.raw,
226
+ scope: attemptedScope,
227
+ name: attemptedName,
228
+ code: 'unknown-scope',
229
+ start: token.start,
230
+ end: token.end,
231
+ });
232
+ out += token.raw;
233
+ continue;
234
+ }
235
+ }
236
+ const found = lookupShorthand(name, ctx.scopes);
237
+ if (found === undefined) {
238
+ pushUnresolved(ctx, outer, via, { expr: token.raw, name, code: 'missing', start: token.start, end: token.end });
239
+ out += token.raw;
240
+ continue;
241
+ }
242
+ const key = `${found.scope}#${name}`;
243
+ if (stack.includes(key)) {
244
+ pushUnresolved(ctx, outer, via, {
245
+ expr: token.raw,
246
+ scope: found.scope,
247
+ name,
248
+ code: 'cycle',
249
+ start: token.start,
250
+ end: token.end,
251
+ });
252
+ out += token.raw;
253
+ continue;
254
+ }
255
+ ctx.used.push({ scope: found.scope, name });
256
+ out += substituted(ctx, outer, expandAt(found.value, depth + 1, [...stack, key], ctx, effectiveOuter, [...via, key]));
257
+ }
258
+ return out;
259
+ }
260
+ /** Expands every `${...}` property reference in `text` against `scopes`. */
261
+ export function expand(text, scopes, options) {
262
+ const ctx = {
263
+ scopes,
264
+ maxDepth: options?.maxDepth ?? DEFAULT_MAX_DEPTH,
265
+ entitize: options?.entitize ?? false,
266
+ unresolved: [],
267
+ used: [],
268
+ };
269
+ const out = expandAt(text, 0, [], ctx, undefined, []);
270
+ const seen = new Set();
271
+ const used = ctx.used.filter(({ scope, name }) => {
272
+ const key = `${scope}#${name}`;
273
+ if (seen.has(key))
274
+ return false;
275
+ seen.add(key);
276
+ return true;
277
+ });
278
+ return { text: out, unresolved: ctx.unresolved, used };
279
+ }
280
+ /** True when `text` contains at least one (non-escaped) `${` sequence. */
281
+ export function hasExpansions(text) {
282
+ for (let i = 0; i < text.length; i++) {
283
+ if (text.startsWith('$${', i)) {
284
+ i += 2;
285
+ continue;
286
+ }
287
+ if (text.startsWith('${', i)) {
288
+ return true;
289
+ }
290
+ }
291
+ return false;
292
+ }
293
+ /**
294
+ * Expands the endpoint, envelope, soap action, and every header name/value of a
295
+ * {@link SoapSendInput}. Header *names* are expanded too, so two headers whose names expand to
296
+ * the same string collapse into one entry (last-write-wins, per `Object.entries` insertion
297
+ * order — same as any other JS object key collision).
298
+ *
299
+ * Attachments are expanded as well, in the two places a property can reasonably appear: the
300
+ * display/file name that ends up in `Content-Disposition`, and the path of a file-backed
301
+ * attachment. Content-IDs are left alone — they are generated, not authored.
302
+ */
303
+ export function expandSendInput(input, scopes, options) {
304
+ const unresolved = [];
305
+ function run(text, entitize = false) {
306
+ const result = expand(text, scopes, { ...options, entitize });
307
+ unresolved.push(...result.unresolved);
308
+ return result.text;
309
+ }
310
+ const endpoint = run(input.endpoint);
311
+ // Only the envelope is entitized: escaping a header value or an endpoint would corrupt it.
312
+ const envelopeXml = run(input.envelopeXml, options?.entitize ?? input.entitize ?? false);
313
+ const soapAction = input.soapAction !== undefined ? run(input.soapAction) : undefined;
314
+ let headers;
315
+ if (input.headers !== undefined) {
316
+ headers = {};
317
+ for (const [name, value] of Object.entries(input.headers)) {
318
+ headers[run(name)] = run(value);
319
+ }
320
+ }
321
+ const attachments = input.attachments?.map((attachment) => ({
322
+ ...attachment,
323
+ name: run(attachment.name),
324
+ source: attachment.source.kind === 'path'
325
+ ? { kind: 'path', path: run(attachment.source.path) }
326
+ : attachment.source,
327
+ }));
328
+ // The explicit WS-Addressing fields are user-typed strings just like the endpoint or a
329
+ // header value, and may carry the same `${#Env#…}`/`${#Global#…}` references — so they go
330
+ // through the same scopes rather than reaching the wire verbatim.
331
+ const wsa = input.wsa !== undefined
332
+ ? {
333
+ ...input.wsa,
334
+ config: {
335
+ ...input.wsa.config,
336
+ ...(input.wsa.config.to !== undefined ? { to: run(input.wsa.config.to) } : {}),
337
+ ...(input.wsa.config.action !== undefined ? { action: run(input.wsa.config.action) } : {}),
338
+ ...(input.wsa.config.replyTo !== undefined ? { replyTo: run(input.wsa.config.replyTo) } : {}),
339
+ ...(input.wsa.config.from !== undefined ? { from: run(input.wsa.config.from) } : {}),
340
+ ...(input.wsa.config.faultTo !== undefined ? { faultTo: run(input.wsa.config.faultTo) } : {}),
341
+ },
342
+ }
343
+ : undefined;
344
+ return {
345
+ input: {
346
+ ...input,
347
+ endpoint,
348
+ envelopeXml,
349
+ ...(soapAction !== undefined ? { soapAction } : {}),
350
+ ...(headers !== undefined ? { headers } : {}),
351
+ ...(attachments !== undefined ? { attachments } : {}),
352
+ ...(wsa !== undefined ? { wsa } : {}),
353
+ },
354
+ unresolved,
355
+ };
356
+ }
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Writes a {@link Project} to a project folder.
3
+ *
4
+ * Saving is incremental and atomic: only files whose bytes actually changed are
5
+ * rewritten (so an autosave produces a one-file git diff, and file watchers
6
+ * stay quiet), and every write goes through a temp file plus `rename`.
7
+ *
8
+ * Only Wirebench's own subtrees are managed. The definition cache
9
+ * (`interfaces/<slug>/definition/`) and `attachments/` belong to other
10
+ * components and are never read or removed here — except when their owning
11
+ * interface is deleted, in which case the whole interface folder goes.
12
+ */
13
+ import type { Project } from './model.js';
14
+ import type { FsLike } from './fs.js';
15
+ import type { ProjectFiles } from './serialize.js';
16
+ /** What a {@link saveProject} call did, as relative `/`-separated paths. */
17
+ export interface SaveResult {
18
+ /** Files created or whose content changed. */
19
+ readonly written: readonly string[];
20
+ /** Files (and empty entity folders) deleted because their entity is gone. */
21
+ readonly removed: readonly string[];
22
+ /** Files that were already byte-identical and therefore left alone. */
23
+ readonly unchanged: readonly string[];
24
+ /**
25
+ * The `.bak` files actually written for this save's {@link SaveProjectOptions.backups}
26
+ * request, one per requested `<slug>.xml.bak`, timestamped and in the same order. Empty when
27
+ * `backups` was omitted or every requested source was missing.
28
+ */
29
+ readonly backups: readonly string[];
30
+ }
31
+ /** Options for {@link saveProject}. */
32
+ export interface SaveProjectOptions {
33
+ /**
34
+ * The files as they were last written. When supplied, unchanged files are
35
+ * detected without reading them back from disk; when omitted, the current
36
+ * on-disk bytes are read and compared instead.
37
+ */
38
+ readonly previous?: ProjectFiles;
39
+ readonly fs?: FsLike;
40
+ /** Recorded in the manifest as `writtenBy`. Defaults to `'wirebench'`. */
41
+ readonly writer?: string;
42
+ /**
43
+ * Relative `<slug>.xml.bak` paths naming the requests to back up before this save overwrites
44
+ * their `<slug>.xml`, as produced by `wsdl/update-definition.ts`'s `applyUpdate`. The bytes
45
+ * copied are whatever is on disk *now*, so the backup is the envelope as the user last saw it
46
+ * — and one is written whenever its source exists, even if this save turns out not to change
47
+ * it, so that ticking "Create backups" always produces the file the user was promised. A path
48
+ * whose `.xml` does not exist is skipped silently.
49
+ *
50
+ * Each backup is actually written as `<slug>.<YYYYMMDD-HHmmss>.xml.bak` (UTC), never
51
+ * overwriting a previous backup of the same request — every Update Definition run gets its
52
+ * own file, kept next to the request file, one per update. The timestamped paths actually
53
+ * written are returned as {@link SaveResult.backups}. `.bak` files are not part of the
54
+ * managed file set, so nothing ever deletes them again.
55
+ */
56
+ readonly backups?: Iterable<string>;
57
+ /** Clock the backup timestamp is read from. Defaults to `() => new Date()`; tests inject it. */
58
+ readonly now?: () => Date;
59
+ }
60
+ /**
61
+ * Saves `project` into the directory `root`, creating it if needed.
62
+ *
63
+ * @returns which files were written, removed and left untouched.
64
+ */
65
+ export declare function saveProject(project: Project, root: string, options?: SaveProjectOptions): Promise<SaveResult>;