@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,427 @@
1
+ /**
2
+ * Pure mapping from Postman Collection v2.0/v2.1 documents to Wirebench REST entities.
3
+ *
4
+ * Recursively maps Postman items into `RestFolder` and `RestRequestDef` trees, preserving author
5
+ * order, variable substitutions (`${var}`), path parameter definitions, headers, query parameters,
6
+ * request bodies (raw, urlencoded, formdata, binary), and auth configurations.
7
+ */
8
+ import { PostmanError } from '../../errors.js';
9
+ import { generateId } from '../../project/model.js';
10
+ import { slugify, uniqueSlug } from '../../project/paths.js';
11
+ import { createApi, createFolder, createRestRequest, entry, NO_BODY } from '../model.js';
12
+ import { splitQuery } from '../url.js';
13
+ import { MAX_POSTMAN_DEPTH } from './parse.js';
14
+ /** Matches a leading `${baseUrl}` / `${base_url}` reference in any letter case. */
15
+ const BASE_URL_REFERENCE = /^\$\{(baseurl|base_url)\}/i;
16
+ function isBaseUrlKey(key) {
17
+ const lower = key.toLowerCase();
18
+ return lower === 'baseurl' || lower === 'base_url';
19
+ }
20
+ function tooDeep() {
21
+ return new PostmanError('postman-too-deep', `The collection nests folders more than ${MAX_POSTMAN_DEPTH} levels deep`);
22
+ }
23
+ /**
24
+ * Maps a parsed Postman Collection into a Wirebench REST API and import summary.
25
+ */
26
+ export function apiFromPostmanCollection(collection, options = {}) {
27
+ const newId = options.newId ?? generateId;
28
+ const name = options.name?.trim() || collection.info.name || 'Imported Collection';
29
+ // Determine base URL: options.baseUrl -> collection variable baseUrl/base_url -> inferred from first request -> empty
30
+ let baseUrl = options.baseUrl?.trim();
31
+ if (baseUrl === undefined || baseUrl === '') {
32
+ const baseVar = collection.variable?.find((v) => isBaseUrlKey(v.key));
33
+ if (baseVar?.value !== undefined && String(baseVar.value).trim().length > 0) {
34
+ baseUrl = String(baseVar.value).trim();
35
+ }
36
+ else {
37
+ baseUrl = inferBaseUrl(collection.item, 1);
38
+ }
39
+ }
40
+ const warnings = [...(collection.warnings ?? [])];
41
+ const unmappedVariables = new Set((collection.variable ?? []).map((v) => v.key).filter((key) => !isBaseUrlKey(key)));
42
+ const credentialCount = { value: hasCredentials(collection.auth) ? 1 : 0 };
43
+ const servers = baseUrl !== '' ? [{ url: baseUrl, description: 'Collection Base URL' }] : [];
44
+ const apiAuth = mapPostmanAuth(collection.auth, false, warnings);
45
+ let folderCount = 0;
46
+ let requestCount = 0;
47
+ const mapItems = (items, depth) => {
48
+ if (depth > MAX_POSTMAN_DEPTH) {
49
+ throw tooDeep();
50
+ }
51
+ const folders = [];
52
+ const requests = [];
53
+ const folderSlugs = new Set();
54
+ const requestSlugs = new Set();
55
+ for (const item of items) {
56
+ for (const v of item.variable ?? [])
57
+ unmappedVariables.add(v.key);
58
+ if (hasCredentials(item.auth))
59
+ credentialCount.value += 1;
60
+ if (typeof item.request === 'object' && hasCredentials(item.request.auth))
61
+ credentialCount.value += 1;
62
+ if (Array.isArray(item.item)) {
63
+ // Folder item
64
+ folderCount += 1;
65
+ const slug = uniqueSlug(item.name, folderSlugs);
66
+ folderSlugs.add(slug);
67
+ const folderAuth = mapPostmanAuth(item.auth, false, warnings);
68
+ const children = mapItems(item.item, depth + 1);
69
+ folders.push(createFolder(item.name, {
70
+ id: newId(),
71
+ slug,
72
+ order: folders.length,
73
+ ...(item.description !== undefined ? { description: item.description } : {}),
74
+ ...(folderAuth !== undefined ? { auth: folderAuth } : {}),
75
+ folders: children.folders,
76
+ requests: children.requests,
77
+ }));
78
+ }
79
+ else if (item.request !== undefined) {
80
+ // Request item
81
+ requestCount += 1;
82
+ const slug = uniqueSlug(item.name, requestSlugs);
83
+ requestSlugs.add(slug);
84
+ const mappedRequest = mapRequest(item.name, slug, requests.length, item, newId, baseUrl, warnings);
85
+ requests.push(mappedRequest);
86
+ }
87
+ }
88
+ return { folders, requests };
89
+ };
90
+ const root = mapItems(collection.item, 1);
91
+ if (unmappedVariables.size > 0) {
92
+ warnings.push(`Collection and folder variables were not imported; define them as properties: ${[...unmappedVariables].sort().join(', ')}`);
93
+ }
94
+ if (credentialCount.value > 0) {
95
+ warnings.push(`Credentials are not copied from the collection; re-enter them for ${credentialCount.value} auth ${credentialCount.value === 1 ? 'configuration' : 'configurations'}`);
96
+ }
97
+ const api = createApi(name, {
98
+ id: newId(),
99
+ slug: slugify(name),
100
+ order: options.order ?? 0,
101
+ baseUrl,
102
+ servers,
103
+ ...(collection.info.description !== undefined ? { description: collection.info.description } : {}),
104
+ ...(apiAuth !== undefined ? { auth: apiAuth } : {}),
105
+ folders: root.folders,
106
+ requests: root.requests,
107
+ });
108
+ const summary = {
109
+ name,
110
+ ...(collection.info.description !== undefined ? { description: collection.info.description } : {}),
111
+ folders: folderCount,
112
+ requests: requestCount,
113
+ ...(apiAuth !== undefined ? { auth: apiAuth.type } : {}),
114
+ ...(warnings.length > 0 ? { warnings } : {}),
115
+ };
116
+ return { api, summary };
117
+ }
118
+ function mapRequest(name, slug, order, item, newId, effectiveBaseUrl, warnings) {
119
+ const req = typeof item.request === 'string' ? { method: 'GET', url: item.request } : (item.request ?? {});
120
+ const method = (req.method ?? 'GET').toUpperCase();
121
+ // Normalize URL and extract query and path params
122
+ const rawUrlObj = typeof req.url === 'string' ? { raw: req.url } : (req.url ?? {});
123
+ const rawUrlString = rawUrlObj.raw ?? '';
124
+ const { path: urlPath, query: inlineQuery } = splitQuery(rawUrlString);
125
+ // Relative URL with base URL stripped if it matches
126
+ let cleanUrl = urlPath;
127
+ if (effectiveBaseUrl !== '') {
128
+ if (cleanUrl === effectiveBaseUrl) {
129
+ cleanUrl = '/';
130
+ }
131
+ else if (cleanUrl.startsWith(`${effectiveBaseUrl}/`)) {
132
+ cleanUrl = cleanUrl.slice(effectiveBaseUrl.length);
133
+ }
134
+ }
135
+ const baseReference = BASE_URL_REFERENCE.exec(cleanUrl)?.[0];
136
+ if (baseReference !== undefined) {
137
+ const rest = cleanUrl.slice(baseReference.length);
138
+ if (rest === '') {
139
+ cleanUrl = '/';
140
+ }
141
+ else if (rest.startsWith('/')) {
142
+ cleanUrl = rest;
143
+ }
144
+ }
145
+ // Query parameters: prefer explicit query array from Postman, fallback to inline query from URL
146
+ const query = [];
147
+ const rawQuery = rawUrlObj.query ?? [];
148
+ if (rawQuery.length > 0) {
149
+ for (const q of rawQuery) {
150
+ if (q.key !== undefined) {
151
+ query.push(entry(q.key, q.value ?? '', {
152
+ enabled: q.disabled !== true,
153
+ ...(q.description !== undefined ? { description: q.description } : {}),
154
+ }));
155
+ }
156
+ }
157
+ }
158
+ else if (inlineQuery.length > 0) {
159
+ query.push(...inlineQuery);
160
+ }
161
+ // Path parameters: match {param} in cleanUrl (ignoring ${var} properties), populate from rawUrlObj.variable
162
+ const urlParamNames = [];
163
+ for (const match of cleanUrl.matchAll(/(?<!\$)\{([^{}/?#]+)\}/g)) {
164
+ const name = match[1];
165
+ if (!urlParamNames.includes(name)) {
166
+ urlParamNames.push(name);
167
+ }
168
+ }
169
+ const pathParams = [];
170
+ for (const paramName of urlParamNames) {
171
+ const matched = rawUrlObj.variable?.find((v) => v.key === paramName);
172
+ pathParams.push(entry(paramName, asText(matched?.value) ?? '', {
173
+ enabled: true,
174
+ ...(matched?.description !== undefined ? { description: matched.description } : {}),
175
+ }));
176
+ }
177
+ // Headers
178
+ const headers = [];
179
+ const rawHeaders = Array.isArray(req.header) ? req.header : [];
180
+ for (const h of rawHeaders) {
181
+ if (h.key.trim().length > 0) {
182
+ headers.push(entry(h.key, h.value, {
183
+ enabled: h.disabled !== true,
184
+ ...(h.description !== undefined ? { description: h.description } : {}),
185
+ }));
186
+ }
187
+ }
188
+ // Body
189
+ const body = mapBody(req.body, rawHeaders.filter((h) => h.disabled !== true));
190
+ // Auth: request-level auth, or item-level auth, or inherit
191
+ const auth = mapPostmanAuth(req.auth ?? item.auth, true, warnings) ?? { type: 'inherit' };
192
+ const description = item.description ?? req.description;
193
+ return createRestRequest(name, {
194
+ id: newId(),
195
+ slug,
196
+ order,
197
+ method,
198
+ url: cleanUrl,
199
+ ...(description !== undefined ? { description } : {}),
200
+ pathParams,
201
+ query,
202
+ headers,
203
+ body,
204
+ auth,
205
+ });
206
+ }
207
+ function mapBody(body, headers) {
208
+ if (body === undefined) {
209
+ return NO_BODY;
210
+ }
211
+ if (body.mode === 'raw') {
212
+ const rawText = body.raw ?? '';
213
+ const language = detectLanguage(body, headers, rawText);
214
+ return {
215
+ kind: 'raw',
216
+ language,
217
+ text: rawText,
218
+ };
219
+ }
220
+ if (body.mode === 'urlencoded') {
221
+ const fields = (body.urlencoded ?? []).map((p) => entry(p.key, p.value, {
222
+ enabled: p.disabled !== true,
223
+ ...(p.description !== undefined ? { description: p.description } : {}),
224
+ }));
225
+ return { kind: 'form', fields };
226
+ }
227
+ if (body.mode === 'formdata') {
228
+ const parts = (body.formdata ?? []).flatMap((p) => {
229
+ if (p.type === 'file') {
230
+ const paths = typeof p.src === 'string' ? [p.src] : p.src !== undefined && p.src.length > 0 ? p.src : [''];
231
+ return paths.map((path) => ({
232
+ kind: 'file',
233
+ name: p.key,
234
+ source: { kind: 'path', path },
235
+ enabled: p.disabled !== true,
236
+ ...(p.contentType !== undefined ? { contentType: p.contentType } : {}),
237
+ }));
238
+ }
239
+ return [
240
+ {
241
+ kind: 'text',
242
+ name: p.key,
243
+ value: p.value ?? '',
244
+ enabled: p.disabled !== true,
245
+ ...(p.contentType !== undefined ? { contentType: p.contentType } : {}),
246
+ },
247
+ ];
248
+ });
249
+ return { kind: 'multipart', parts };
250
+ }
251
+ if (body.mode === 'file') {
252
+ const ctHeader = headers.find((h) => h.key.toLowerCase() === 'content-type')?.value;
253
+ return {
254
+ kind: 'binary',
255
+ source: { kind: 'path', path: body.file?.src ?? '' },
256
+ contentType: ctHeader ?? 'application/octet-stream',
257
+ };
258
+ }
259
+ return NO_BODY;
260
+ }
261
+ function detectLanguage(body, headers, rawText) {
262
+ const optLang = body.options?.raw?.language?.toLowerCase();
263
+ if (optLang === 'json' || optLang === 'xml' || optLang === 'text' || optLang === 'html' || optLang === 'javascript') {
264
+ return optLang;
265
+ }
266
+ const ctHeader = headers.find((h) => h.key.toLowerCase() === 'content-type')?.value?.toLowerCase();
267
+ if (ctHeader?.includes('xml'))
268
+ return 'xml';
269
+ if (ctHeader?.includes('html'))
270
+ return 'html';
271
+ if (ctHeader?.includes('javascript'))
272
+ return 'javascript';
273
+ if (ctHeader?.includes('text/plain'))
274
+ return 'text';
275
+ if (ctHeader?.includes('json'))
276
+ return 'json';
277
+ const trimmed = rawText.trim();
278
+ if (trimmed.startsWith('<') && trimmed.endsWith('>')) {
279
+ return 'xml';
280
+ }
281
+ if ((trimmed.startsWith('{') && trimmed.endsWith('}')) || (trimmed.startsWith('[') && trimmed.endsWith(']'))) {
282
+ return 'json';
283
+ }
284
+ return trimmed.length > 0 ? 'text' : 'json';
285
+ }
286
+ /** Secret attribute keys per auth type; a non-empty value means the user must re-enter it. */
287
+ const SECRET_KEYS = {
288
+ basic: ['password'],
289
+ bearer: ['token'],
290
+ apikey: ['value'],
291
+ oauth2: ['clientSecret', 'accessToken', 'password', 'refreshToken'],
292
+ ntlm: ['password'],
293
+ };
294
+ function hasCredentials(auth) {
295
+ const type = auth?.type?.toLowerCase();
296
+ if (auth === undefined || type === undefined)
297
+ return false;
298
+ const keys = SECRET_KEYS[type];
299
+ const attrs = auth[type];
300
+ if (keys === undefined || !Array.isArray(attrs))
301
+ return false;
302
+ return attrs.some((a) => keys.includes(a.key) && a.value !== undefined && a.value !== null && a.value !== '');
303
+ }
304
+ function asText(value) {
305
+ if (value === undefined || value === null) {
306
+ return undefined;
307
+ }
308
+ if (typeof value === 'string') {
309
+ return value;
310
+ }
311
+ if (typeof value === 'number' || typeof value === 'boolean') {
312
+ return String(value);
313
+ }
314
+ return undefined;
315
+ }
316
+ function mapPostmanAuth(auth, isRequest, warnings) {
317
+ const type = auth?.type?.toLowerCase();
318
+ if (auth === undefined || type === 'inherit') {
319
+ return isRequest ? { type: 'inherit' } : undefined;
320
+ }
321
+ switch (type) {
322
+ case 'noauth':
323
+ return { type: 'none' };
324
+ case 'basic': {
325
+ const usernameAttr = auth.basic?.find((a) => a.key === 'username');
326
+ const username = asText(usernameAttr?.value);
327
+ return {
328
+ type: 'basic',
329
+ ...(username !== undefined ? { username } : {}),
330
+ };
331
+ }
332
+ case 'bearer':
333
+ return { type: 'bearer' };
334
+ case 'apikey': {
335
+ const keyAttr = auth.apikey?.find((a) => a.key === 'key' || a.key === 'name');
336
+ const inAttr = auth.apikey?.find((a) => a.key === 'in');
337
+ const inLoc = inAttr?.value === 'query' ? 'query' : 'header';
338
+ return {
339
+ type: 'api-key',
340
+ name: asText(keyAttr?.value) ?? 'api_key',
341
+ in: inLoc,
342
+ };
343
+ }
344
+ case 'oauth2': {
345
+ const grantAttr = auth.oauth2?.find((a) => a.key === 'grant_type');
346
+ const tokenUrlAttr = auth.oauth2?.find((a) => a.key === 'accessTokenUrl' || a.key === 'tokenUrl');
347
+ const authUrlAttr = auth.oauth2?.find((a) => a.key === 'authUrl' || a.key === 'authorizationUrl');
348
+ const clientIdAttr = auth.oauth2?.find((a) => a.key === 'clientId');
349
+ const scopeAttr = auth.oauth2?.find((a) => a.key === 'scope');
350
+ const grant = asText(grantAttr?.value) ?? 'client_credentials';
351
+ const isAuthCode = grant === 'authorization_code' || grant === 'authorization_code_with_pkce';
352
+ if (!isAuthCode && grant !== 'client_credentials') {
353
+ warnings?.push(`OAuth 2.0 grant "${grant}" is not supported; set to "none"`);
354
+ return { type: 'none' };
355
+ }
356
+ const authUrl = asText(authUrlAttr?.value);
357
+ const scopeText = asText(scopeAttr?.value);
358
+ return {
359
+ type: 'oauth2',
360
+ grant: isAuthCode ? 'authorization-code' : 'client-credentials',
361
+ tokenUrl: asText(tokenUrlAttr?.value) ?? '',
362
+ ...(authUrl !== undefined ? { authorizationUrl: authUrl } : {}),
363
+ clientId: asText(clientIdAttr?.value) ?? '',
364
+ scopes: scopeText !== undefined ? scopeText.split(/[\s,]+/).filter(Boolean) : [],
365
+ clientAuth: 'basic',
366
+ pkce: isAuthCode,
367
+ };
368
+ }
369
+ case 'ntlm': {
370
+ const userAttr = auth.ntlm?.find((a) => a.key === 'username');
371
+ const domainAttr = auth.ntlm?.find((a) => a.key === 'domain');
372
+ const workstationAttr = auth.ntlm?.find((a) => a.key === 'workstation');
373
+ const username = asText(userAttr?.value);
374
+ const domain = asText(domainAttr?.value);
375
+ const workstation = asText(workstationAttr?.value);
376
+ return {
377
+ type: 'ntlm',
378
+ ...(username !== undefined ? { username } : {}),
379
+ ...(domain !== undefined ? { domain } : {}),
380
+ ...(workstation !== undefined ? { workstation } : {}),
381
+ };
382
+ }
383
+ default:
384
+ if (type !== undefined) {
385
+ warnings?.push(`Authentication type "${type}" is not supported; set to "none"`);
386
+ }
387
+ return { type: 'none' };
388
+ }
389
+ }
390
+ /** Recursively looks for the first absolute URL to infer a collection base URL. */
391
+ function inferBaseUrl(items, depth) {
392
+ if (depth > MAX_POSTMAN_DEPTH) {
393
+ throw tooDeep();
394
+ }
395
+ for (const item of items) {
396
+ if (item.request !== undefined) {
397
+ const req = typeof item.request === 'string' ? { url: item.request } : item.request;
398
+ const rawUrl = typeof req.url === 'string' ? req.url : req.url?.raw;
399
+ if (rawUrl !== undefined && rawUrl.length > 0) {
400
+ if (/^https?:\/\//i.test(rawUrl)) {
401
+ try {
402
+ const parsed = new URL(rawUrl);
403
+ return parsed.origin;
404
+ }
405
+ catch {
406
+ // If URL constructor fails (e.g. contains variables), extract up to the first single slash
407
+ const match = rawUrl.match(/^(https?:\/\/[^/?#]+)/i);
408
+ if (match)
409
+ return match[1];
410
+ }
411
+ }
412
+ else if (rawUrl.startsWith('${')) {
413
+ const closeIndex = rawUrl.indexOf('}');
414
+ if (closeIndex !== -1) {
415
+ return rawUrl.slice(0, closeIndex + 1);
416
+ }
417
+ }
418
+ }
419
+ }
420
+ if (Array.isArray(item.item)) {
421
+ const found = inferBaseUrl(item.item, depth + 1);
422
+ if (found !== '')
423
+ return found;
424
+ }
425
+ }
426
+ return '';
427
+ }
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Postman Collection v2.0 and v2.1 representation and intermediate types.
3
+ *
4
+ * Postman collections are JSON documents containing nested items: items with child `item` arrays
5
+ * represent folders, and items with a `request` object represent executable HTTP requests.
6
+ */
7
+ import type { AuthConfig } from '../../project/model.js';
8
+ export interface PostmanInfo {
9
+ readonly name: string;
10
+ readonly description?: string;
11
+ readonly version?: string;
12
+ readonly schema?: string;
13
+ readonly _postman_id?: string;
14
+ }
15
+ export interface PostmanVariable {
16
+ readonly key: string;
17
+ readonly value?: string | number | boolean | null;
18
+ readonly type?: string;
19
+ readonly description?: string;
20
+ }
21
+ export interface PostmanAuthAttribute {
22
+ readonly key: string;
23
+ readonly value: unknown;
24
+ readonly type?: string;
25
+ }
26
+ export interface PostmanAuth {
27
+ readonly type?: string;
28
+ readonly basic?: readonly PostmanAuthAttribute[];
29
+ readonly bearer?: readonly PostmanAuthAttribute[];
30
+ readonly apikey?: readonly PostmanAuthAttribute[];
31
+ readonly oauth2?: readonly PostmanAuthAttribute[];
32
+ readonly ntlm?: readonly PostmanAuthAttribute[];
33
+ readonly noauth?: unknown;
34
+ }
35
+ export interface PostmanQueryParam {
36
+ readonly key?: string;
37
+ readonly value?: string;
38
+ readonly description?: string;
39
+ readonly disabled?: boolean;
40
+ }
41
+ export interface PostmanUrl {
42
+ readonly raw?: string;
43
+ readonly protocol?: string;
44
+ readonly host?: readonly string[] | string;
45
+ readonly path?: readonly string[] | string;
46
+ readonly port?: string;
47
+ readonly query?: readonly PostmanQueryParam[];
48
+ readonly variable?: readonly PostmanVariable[];
49
+ }
50
+ export interface PostmanHeader {
51
+ readonly key: string;
52
+ readonly value: string;
53
+ readonly description?: string;
54
+ readonly disabled?: boolean;
55
+ }
56
+ export interface PostmanUrlEncodedParam {
57
+ readonly key: string;
58
+ readonly value: string;
59
+ readonly description?: string;
60
+ readonly disabled?: boolean;
61
+ }
62
+ export interface PostmanFormDataParam {
63
+ readonly key: string;
64
+ readonly value?: string;
65
+ readonly src?: string | readonly string[];
66
+ readonly type?: string;
67
+ readonly description?: string;
68
+ readonly disabled?: boolean;
69
+ readonly contentType?: string;
70
+ }
71
+ export interface PostmanBody {
72
+ readonly mode?: 'raw' | 'urlencoded' | 'formdata' | 'file' | 'graphql' | (string & {});
73
+ readonly raw?: string;
74
+ readonly options?: {
75
+ readonly raw?: {
76
+ readonly language?: 'json' | 'xml' | 'text' | 'html' | 'javascript' | (string & {});
77
+ };
78
+ };
79
+ readonly urlencoded?: readonly PostmanUrlEncodedParam[];
80
+ readonly formdata?: readonly PostmanFormDataParam[];
81
+ readonly file?: {
82
+ readonly src?: string;
83
+ readonly content?: string;
84
+ };
85
+ }
86
+ export interface PostmanRequest {
87
+ readonly method?: string;
88
+ readonly url?: PostmanUrl | string;
89
+ readonly header?: readonly PostmanHeader[] | string;
90
+ readonly body?: PostmanBody;
91
+ readonly auth?: PostmanAuth;
92
+ readonly description?: string;
93
+ }
94
+ export interface PostmanItem {
95
+ readonly name: string;
96
+ readonly description?: string;
97
+ readonly item?: readonly PostmanItem[];
98
+ readonly request?: PostmanRequest | string;
99
+ readonly auth?: PostmanAuth;
100
+ readonly variable?: readonly PostmanVariable[];
101
+ }
102
+ export interface PostmanCollection {
103
+ readonly info: PostmanInfo;
104
+ readonly item: readonly PostmanItem[];
105
+ readonly auth?: PostmanAuth;
106
+ readonly variable?: readonly PostmanVariable[];
107
+ /** Problems found while parsing that the import summary should report. */
108
+ readonly warnings?: readonly string[];
109
+ }
110
+ /** Summary of what the Postman import produced, for the import summary display. */
111
+ export interface PostmanImportSummary {
112
+ readonly name: string;
113
+ readonly description?: string;
114
+ readonly folders: number;
115
+ readonly requests: number;
116
+ readonly auth?: AuthConfig['type'];
117
+ readonly warnings?: readonly string[];
118
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Postman Collection v2.0 and v2.1 representation and intermediate types.
3
+ *
4
+ * Postman collections are JSON documents containing nested items: items with child `item` arrays
5
+ * represent folders, and items with a `request` object represent executable HTTP requests.
6
+ */
7
+ export {};
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Parsing and normalizing Postman Collection v2.0 and v2.1 documents.
3
+ *
4
+ * Handles tolerant parsing of Postman JSON exports, variable translation (`{{var}}` to `${var}`),
5
+ * path parameter syntax normalization (`:param` to `{param}`), and structure validation.
6
+ */
7
+ import type { PostmanCollection } from './model.js';
8
+ /** Nesting deeper than this is refused rather than risking a stack overflow. */
9
+ export declare const MAX_POSTMAN_DEPTH = 64;
10
+ /**
11
+ * Translates Postman's `{{var}}` variable interpolation to Wirebench's `${var}` format.
12
+ *
13
+ * A literal `${` already in the text is escaped to `$${` first so it stays literal. Names of
14
+ * dynamic variables (`{{$guid}}`) are added to `dynamic` when given; they are translated anyway.
15
+ */
16
+ export declare function translatePostmanVariables(text: string, dynamic?: Set<string>): string;
17
+ /** Normalizes Postman's `:param` path segment syntax to Wirebench's `{param}` format. */
18
+ export declare function normalizePostmanPath(path: string): string;
19
+ export declare function extractDescription(desc: unknown): string | undefined;
20
+ /** Checks whether a parsed JSON object has the shape of a Postman Collection. */
21
+ export declare function isPostmanCollection(root: unknown): boolean;
22
+ /**
23
+ * Parses JSON text as a Postman Collection.
24
+ *
25
+ * @throws PostmanError `postman-malformed` if invalid JSON, or `postman-not-a-collection`.
26
+ */
27
+ export declare function parsePostmanCollectionText(text: string): PostmanCollection;
28
+ /** Validates and normalizes an already parsed Postman JSON structure into {@link PostmanCollection}. */
29
+ export declare function parsePostmanCollection(root: unknown): PostmanCollection;