@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,63 @@
1
+ /**
2
+ * Resolving `$ref` in an OpenAPI document: local JSON pointers, and references into other documents.
3
+ *
4
+ * Every reference is inlined before the parser runs, so the parser never fetches and never has to
5
+ * carry a resolver around. That makes the fetched set the same thing the cache stores, which is what
6
+ * lets the definition be exported byte-exact later.
7
+ *
8
+ * Two rules keep this from being a file-read primitive handed to whoever wrote the document. The
9
+ * *reference policy* is the one WSDL import already uses (`wsdl/ref-policy.ts`): a `file:` root may
10
+ * only reference files inside its own folder tree, an `http(s):` root may never reach a local file.
11
+ * And the walk is bounded — a visited set per pointer, a depth cap, and a document cap — because a
12
+ * cyclic or fan-out document must end in a diagnostic, not a hang.
13
+ */
14
+ import type { FetchDocument } from '../../wsdl/resolver.js';
15
+ /** How deep a chain of `$ref`s may nest before the graph is treated as runaway. */
16
+ export declare const MAX_REF_DEPTH = 32;
17
+ /** One document the resolution pulled in, kept for the definition cache. */
18
+ export interface ResolvedDocument {
19
+ /** The absolute location it was fetched from, post-redirect. */
20
+ readonly location: string;
21
+ /** The location that was asked for, before any redirect. */
22
+ readonly requestedLocation: string;
23
+ readonly bytes: Uint8Array;
24
+ readonly text: string;
25
+ }
26
+ /** A reference that could not be followed, and why. Never fatal: the `$ref` is left in place. */
27
+ export interface RefProblem {
28
+ /** The reference as written. */
29
+ readonly ref: string;
30
+ /** Where it was written, as a JSON pointer into the root document. */
31
+ readonly at: string;
32
+ readonly reason: string;
33
+ }
34
+ /** What {@link resolveRefs} produced. */
35
+ export interface ResolvedRefs {
36
+ /** The root document with every reference it could follow inlined. */
37
+ readonly document: unknown;
38
+ /** Every document fetched, root first, in the order they were reached. */
39
+ readonly documents: readonly ResolvedDocument[];
40
+ readonly problems: readonly RefProblem[];
41
+ }
42
+ export interface ResolveRefsOptions {
43
+ readonly fetchDocument: FetchDocument;
44
+ readonly signal?: AbortSignal;
45
+ }
46
+ /** Unescapes one JSON pointer token per RFC 6901: `~1` is `/`, `~0` is `~`, in that order. */
47
+ export declare function unescapePointerToken(token: string): string;
48
+ /**
49
+ * The value one JSON pointer names inside `document`, or `undefined` when the pointer leads nowhere.
50
+ *
51
+ * `''` is the whole document, per RFC 6901. An array index is read as a number; anything else is a
52
+ * key. A pointer into a non-container is `undefined` rather than an error — the caller reports it as
53
+ * a reference problem, which is the only form the user can act on.
54
+ */
55
+ export declare function resolvePointer(document: unknown, pointer: string): unknown;
56
+ /**
57
+ * Inlines every `$ref` in `rootText`'s document.
58
+ *
59
+ * @param rootText the root document's text, JSON or YAML
60
+ * @param rootLocation its absolute location, which decides the reference policy
61
+ * @throws OpenApiError `openapi-malformed` when the root document itself does not parse
62
+ */
63
+ export declare function resolveRefs(rootText: string, rootLocation: string, options: ResolveRefsOptions, rootBytes?: Uint8Array): Promise<ResolvedRefs>;
@@ -0,0 +1,258 @@
1
+ /**
2
+ * Resolving `$ref` in an OpenAPI document: local JSON pointers, and references into other documents.
3
+ *
4
+ * Every reference is inlined before the parser runs, so the parser never fetches and never has to
5
+ * carry a resolver around. That makes the fetched set the same thing the cache stores, which is what
6
+ * lets the definition be exported byte-exact later.
7
+ *
8
+ * Two rules keep this from being a file-read primitive handed to whoever wrote the document. The
9
+ * *reference policy* is the one WSDL import already uses (`wsdl/ref-policy.ts`): a `file:` root may
10
+ * only reference files inside its own folder tree, an `http(s):` root may never reach a local file.
11
+ * And the walk is bounded — a visited set per pointer, a depth cap, and a document cap — because a
12
+ * cyclic or fan-out document must end in a diagnostic, not a hang.
13
+ */
14
+ import { OpenApiError } from '../../errors.js';
15
+ import { referencePolicyFor, MAX_IMPORT_DEPTH, MAX_IMPORT_DOCUMENTS } from '../../wsdl/ref-policy.js';
16
+ import { parseDocumentText } from './parse.js';
17
+ /** How deep a chain of `$ref`s may nest before the graph is treated as runaway. */
18
+ export const MAX_REF_DEPTH = MAX_IMPORT_DEPTH;
19
+ /** Unescapes one JSON pointer token per RFC 6901: `~1` is `/`, `~0` is `~`, in that order. */
20
+ export function unescapePointerToken(token) {
21
+ return token.replace(/~1/g, '/').replace(/~0/g, '~');
22
+ }
23
+ /**
24
+ * The value one JSON pointer names inside `document`, or `undefined` when the pointer leads nowhere.
25
+ *
26
+ * `''` is the whole document, per RFC 6901. An array index is read as a number; anything else is a
27
+ * key. A pointer into a non-container is `undefined` rather than an error — the caller reports it as
28
+ * a reference problem, which is the only form the user can act on.
29
+ */
30
+ export function resolvePointer(document, pointer) {
31
+ if (pointer === '' || pointer === '#') {
32
+ return document;
33
+ }
34
+ const path = pointer.startsWith('#') ? pointer.slice(1) : pointer;
35
+ if (!path.startsWith('/')) {
36
+ return undefined;
37
+ }
38
+ let at = document;
39
+ for (const raw of path.slice(1).split('/')) {
40
+ const token = unescapePointerToken(decodeURIComponent(raw));
41
+ if (Array.isArray(at)) {
42
+ const index = Number(token);
43
+ if (!Number.isInteger(index) || index < 0 || index >= at.length) {
44
+ return undefined;
45
+ }
46
+ at = at[index];
47
+ continue;
48
+ }
49
+ if (typeof at !== 'object' || at === null) {
50
+ return undefined;
51
+ }
52
+ at = at[token];
53
+ if (at === undefined) {
54
+ return undefined;
55
+ }
56
+ }
57
+ return at;
58
+ }
59
+ /** Splits a `$ref` into the document part (possibly empty) and its fragment pointer. */
60
+ function splitRef(ref) {
61
+ const hash = ref.indexOf('#');
62
+ if (hash === -1) {
63
+ return { target: ref, pointer: '' };
64
+ }
65
+ return { target: ref.slice(0, hash), pointer: ref.slice(hash) };
66
+ }
67
+ /** Resolves a possibly relative document location against the document that referenced it. */
68
+ function absolute(target, base) {
69
+ try {
70
+ return new URL(target, base).toString();
71
+ }
72
+ catch {
73
+ return undefined;
74
+ }
75
+ }
76
+ /**
77
+ * Inlines every `$ref` in `rootText`'s document.
78
+ *
79
+ * @param rootText the root document's text, JSON or YAML
80
+ * @param rootLocation its absolute location, which decides the reference policy
81
+ * @throws OpenApiError `openapi-malformed` when the root document itself does not parse
82
+ */
83
+ export async function resolveRefs(rootText, rootLocation, options, rootBytes) {
84
+ const root = parseDocumentText(rootText);
85
+ const byLocation = new Map([[rootLocation, root]]);
86
+ const rawSelf = typeof root?.$self === 'string'
87
+ ? root.$self.trim()
88
+ : undefined;
89
+ if (rawSelf) {
90
+ const resolvedSelf = absolute(rawSelf, rootLocation);
91
+ if (resolvedSelf !== undefined) {
92
+ try {
93
+ const normalizedSelf = new URL(resolvedSelf).toString();
94
+ const rootUrl = new URL(rootLocation);
95
+ const selfUrl = new URL(normalizedSelf);
96
+ const isSameOrigin = rootUrl.origin !== 'null' && selfUrl.origin !== 'null'
97
+ ? rootUrl.origin === selfUrl.origin
98
+ : rootUrl.protocol === selfUrl.protocol;
99
+ if (isSameOrigin) {
100
+ const policy = referencePolicyFor(rootLocation);
101
+ const refusal = await policy.allows(normalizedSelf);
102
+ if (refusal === undefined) {
103
+ byLocation.set(normalizedSelf, root);
104
+ }
105
+ }
106
+ }
107
+ catch {
108
+ // Invalid URL; do not alias
109
+ }
110
+ }
111
+ }
112
+ const walk = {
113
+ root,
114
+ rootLocation,
115
+ options,
116
+ byLocation,
117
+ documents: [
118
+ {
119
+ location: rootLocation,
120
+ requestedLocation: rootLocation,
121
+ bytes: rootBytes ?? new TextEncoder().encode(rootText),
122
+ text: rootText,
123
+ },
124
+ ],
125
+ problems: [],
126
+ resolved: new Map(),
127
+ inProgress: new Set(),
128
+ };
129
+ const document = await inline(walk, root, rootLocation, '', 0);
130
+ return { document, documents: walk.documents, problems: walk.problems };
131
+ }
132
+ /**
133
+ * Walks `value`, replacing each `{ $ref }` with what it names.
134
+ *
135
+ * `seen` holds the references already being followed *on this branch*, which is what makes a cyclic
136
+ * document terminate: the second time a branch reaches the same reference it is left as a `$ref`,
137
+ * and the sample generator treats that as the cut it already caps depth with.
138
+ */
139
+ async function inline(walk, value, location, at, depth) {
140
+ walk.options.signal?.throwIfAborted();
141
+ if (Array.isArray(value)) {
142
+ const out = [];
143
+ for (const [index, entry] of value.entries()) {
144
+ out.push(await inline(walk, entry, location, `${at}/${String(index)}`, depth));
145
+ }
146
+ return out;
147
+ }
148
+ if (typeof value !== 'object' || value === null) {
149
+ return value;
150
+ }
151
+ const record = value;
152
+ const ref = typeof record['$ref'] === 'string' ? record['$ref'] : undefined;
153
+ if (ref !== undefined) {
154
+ return await follow(walk, record, ref, location, at, depth);
155
+ }
156
+ const out = {};
157
+ for (const [key, entry] of Object.entries(record)) {
158
+ out[key] = await inline(walk, entry, location, `${at}/${key.replace(/~/g, '~0').replace(/\//g, '~1')}`, depth);
159
+ }
160
+ return out;
161
+ }
162
+ /** Follows one reference, or leaves it in place with a problem recorded. */
163
+ async function follow(walk, node, ref, location, at, depth) {
164
+ const { target, pointer } = splitRef(ref);
165
+ const documentLocation = target === '' ? location : absolute(target, location);
166
+ if (documentLocation === undefined) {
167
+ walk.problems.push({ ref, at, reason: 'the reference is not a usable location' });
168
+ return node;
169
+ }
170
+ const key = `${documentLocation}${pointer}`;
171
+ if (walk.inProgress.has(key)) {
172
+ // A cycle. The `$ref` stays, which is exactly what the sample generator's depth cut expects.
173
+ return node;
174
+ }
175
+ const already = walk.resolved.get(key);
176
+ if (already !== undefined) {
177
+ // Seen before, and a target's expansion does not depend on who asked for it: hand back the same
178
+ // subtree rather than building an identical one. This is what keeps a densely cross-referenced
179
+ // document from expanding exponentially.
180
+ return already;
181
+ }
182
+ if (depth >= MAX_REF_DEPTH) {
183
+ walk.problems.push({ ref, at, reason: `references nest deeper than ${String(MAX_REF_DEPTH)} levels` });
184
+ return node;
185
+ }
186
+ let document = walk.byLocation.get(documentLocation);
187
+ if (document === undefined) {
188
+ document = await fetchInto(walk, documentLocation, ref, at);
189
+ if (document === undefined) {
190
+ return node;
191
+ }
192
+ }
193
+ const resolved = resolvePointer(document, pointer);
194
+ if (resolved === undefined) {
195
+ walk.problems.push({ ref, at, reason: 'nothing at that location' });
196
+ return node;
197
+ }
198
+ // Resolved from the *referenced* document's location, so a relative reference inside it is
199
+ // resolved against the document it was written in rather than against the root.
200
+ walk.inProgress.add(key);
201
+ try {
202
+ const inlined = await inline(walk, resolved, documentLocation, at, depth + 1);
203
+ walk.resolved.set(key, inlined);
204
+ return inlined;
205
+ }
206
+ finally {
207
+ walk.inProgress.delete(key);
208
+ }
209
+ }
210
+ /** Fetches one referenced document, under the policy, and records it. */
211
+ async function fetchInto(walk, location, ref, at) {
212
+ if (walk.documents.length >= MAX_IMPORT_DOCUMENTS) {
213
+ walk.problems.push({ ref, at, reason: `more than ${String(MAX_IMPORT_DOCUMENTS)} documents were referenced` });
214
+ return undefined;
215
+ }
216
+ const refusal = await referencePolicyFor(walk.rootLocation).allows(location);
217
+ if (refusal !== undefined) {
218
+ walk.problems.push({ ref, at, reason: refusal.reason });
219
+ return undefined;
220
+ }
221
+ let fetched;
222
+ try {
223
+ fetched = await walk.options.fetchDocument(location, walk.options.signal);
224
+ }
225
+ catch (error) {
226
+ if (error instanceof Error && error.name === 'AbortError') {
227
+ throw error;
228
+ }
229
+ walk.problems.push({
230
+ ref,
231
+ at,
232
+ reason: `could not be fetched: ${error instanceof Error ? error.message : 'failed'}`,
233
+ });
234
+ return undefined;
235
+ }
236
+ // A cancel that lands while a document is in flight must stop the walk here rather than after the
237
+ // next reference: the user pressed Cancel, and the remaining fetches are what they cancelled.
238
+ walk.options.signal?.throwIfAborted();
239
+ let parsed;
240
+ try {
241
+ parsed = parseDocumentText(fetched.text, location);
242
+ }
243
+ catch (error) {
244
+ walk.problems.push({ ref, at, reason: error instanceof OpenApiError ? error.message : 'could not be parsed' });
245
+ return undefined;
246
+ }
247
+ walk.documents.push({
248
+ location: fetched.location,
249
+ requestedLocation: location,
250
+ bytes: fetched.bytes,
251
+ text: fetched.text,
252
+ });
253
+ walk.byLocation.set(location, parsed);
254
+ // A redirect means the document also answers to where it ended up, so a sibling reference
255
+ // resolved against that location finds it without a second fetch.
256
+ walk.byLocation.set(fetched.location, parsed);
257
+ return parsed;
258
+ }
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Turning a JSON Schema into a body a user can send.
3
+ *
4
+ * The generator is deliberately dull and deterministic: the same schema always produces the same
5
+ * sample, so an imported request is reviewable and a golden test means something. It answers one
6
+ * question per node — "what is the most specific thing this schema says a value looks like?" — and
7
+ * takes the first answer it finds: an `example`, then a `default`, then a `const`, then the first
8
+ * `enum` member, then the type's own empty value.
9
+ *
10
+ * Three rules keep the output usable rather than merely correct:
11
+ *
12
+ * - **Required properties are always present, optional ones follow the preference.** A body missing a
13
+ * required field is a request that cannot succeed, so it is never generated that way.
14
+ * - **A composition is not a puzzle to solve.** `allOf` is merged (its whole point), and `oneOf` and
15
+ * `anyOf` take their first branch — picking "the right one" needs an intent the document does not
16
+ * carry, and a body from the first branch is one the user can see and change.
17
+ * - **Depth is capped**, and a `$ref` the resolver left in place is a cut. A self-referencing schema
18
+ * is normal in a description, so it has to end in a finite document rather than a stack overflow.
19
+ */
20
+ import type { JsonSchema, JsonValue } from './model.js';
21
+ /** How deep generation goes before it stops and emits `null`. */
22
+ export declare const MAX_SAMPLE_DEPTH = 8;
23
+ /**
24
+ * How many values one sample may contain before generation stops adding to it.
25
+ *
26
+ * The depth cap alone is not a bound: a resolved description is a *graph*, not a tree — a `$ref` to a
27
+ * shared schema is one object reachable from many places — so a document whose schemas reference each
28
+ * other reaches `breadth ^ depth` nodes, which for a realistic 20-property schema is billions at
29
+ * depth 8. A total budget makes generation linear in the size of what it produces, whatever shape the
30
+ * schema graph has. Required properties are still emitted first, so what a truncated sample keeps is
31
+ * the part a request cannot go without.
32
+ */
33
+ export declare const MAX_SAMPLE_NODES = 2000;
34
+ export interface SampleOptions {
35
+ /** Emit properties the schema does not require. Mirrors the WSDL generator's preference. */
36
+ readonly includeOptional?: boolean;
37
+ /**
38
+ * Emit format-appropriate placeholders (`2026-01-01T00:00:00Z` for a `date-time`) instead of the
39
+ * type's empty value. The same preference the WSDL sample generator has.
40
+ */
41
+ readonly sampleValues?: boolean;
42
+ /** Where to stop. Defaults to {@link MAX_SAMPLE_DEPTH}. */
43
+ readonly maxDepth?: number;
44
+ /** How many values the sample may hold. Defaults to {@link MAX_SAMPLE_NODES}. */
45
+ readonly maxNodes?: number;
46
+ }
47
+ /**
48
+ * A sample value for one schema.
49
+ *
50
+ * @param schema the schema, with its references already inlined (see `refs.ts`)
51
+ * @returns a JSON value — `null` where generation had to stop
52
+ */
53
+ export declare function sampleFromSchema(schema: JsonSchema, options?: SampleOptions): JsonValue;
54
+ /** Options for {@link sampleXml}. */
55
+ export interface SampleXmlOptions extends SampleOptions {
56
+ /** The root element's name, when the schema's own `xml.name` does not give one. */
57
+ readonly rootName?: string;
58
+ /** Indent per level. Defaults to two spaces, matching a REST body's own formatting. */
59
+ readonly indent?: string;
60
+ }
61
+ /**
62
+ * A sample XML body for a schema, honouring its `xml` object: `name`, `attribute`, `wrapped`, and a
63
+ * `prefix`/`namespace` pair.
64
+ *
65
+ * Written here rather than through the XSD sample generator because the shape comes from JSON Schema,
66
+ * not from an XSD: there is no schema set to resolve against, and the `xml` object is OpenAPI's own.
67
+ */
68
+ export declare function sampleXml(schema: JsonSchema, options?: SampleXmlOptions): string;