@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,286 @@
1
+ /**
2
+ * A tolerant, dependency-free XML fragment scanner used by the form model.
3
+ *
4
+ * It walks the raw text once and produces an element tree in which every node,
5
+ * attribute value and text run carries the exact UTF-16 offset range it came
6
+ * from, so the form view can splice a single value back into the envelope
7
+ * without reformatting anything around it. Never throws: malformed input stops
8
+ * the scan and is reported, and elements still open at end-of-input are closed
9
+ * at the document end.
10
+ *
11
+ * Deliberately minimal — it exists to read a body fragment, not to validate
12
+ * one, so entities are decoded but DTDs, namespaces beyond `xmlns` bookkeeping
13
+ * and processing instructions are skipped.
14
+ */
15
+ const ATTR_RE = /([^\s=/>]+)\s*=\s*(?:"([^"]*)"|'([^']*)')/g;
16
+ const NAME_CHAR_RE = /[^\s/>]/;
17
+ const XML_NS = 'http://www.w3.org/XML/1998/namespace';
18
+ /** Decodes the five predefined XML entities plus numeric character references. */
19
+ function decodeEntities(raw) {
20
+ return raw.replace(/&(#x[0-9a-fA-F]+|#\d+|[a-zA-Z]+);/g, (match, body) => {
21
+ if (body === 'amp')
22
+ return '&';
23
+ if (body === 'lt')
24
+ return '<';
25
+ if (body === 'gt')
26
+ return '>';
27
+ if (body === 'quot')
28
+ return '"';
29
+ if (body === 'apos')
30
+ return "'";
31
+ if (body.startsWith('#x') || body.startsWith('#X')) {
32
+ const code = Number.parseInt(body.slice(2), 16);
33
+ return Number.isNaN(code) ? match : String.fromCodePoint(code);
34
+ }
35
+ if (body.startsWith('#')) {
36
+ const code = Number.parseInt(body.slice(1), 10);
37
+ return Number.isNaN(code) ? match : String.fromCodePoint(code);
38
+ }
39
+ return match;
40
+ });
41
+ }
42
+ function toElement(draft) {
43
+ return {
44
+ name: draft.name,
45
+ localName: draft.localName,
46
+ ...(draft.prefix !== undefined ? { prefix: draft.prefix } : {}),
47
+ namespaceUri: draft.namespaceUri,
48
+ declaredNamespaces: draft.declaredNamespaces,
49
+ attributes: draft.attributes,
50
+ range: draft.range,
51
+ ...(draft.text !== undefined ? { text: draft.text } : {}),
52
+ children: draft.children.map(toElement),
53
+ selfClosing: draft.selfClosing,
54
+ leadingComments: draft.leadingComments,
55
+ trailingComments: draft.trailingComments,
56
+ };
57
+ }
58
+ /** Parses `name="value"` pairs out of `text.slice(start, end)`, keeping offsets absolute. */
59
+ function parseAttrs(text, start, end) {
60
+ const region = text.slice(start, end);
61
+ const out = [];
62
+ const re = new RegExp(ATTR_RE);
63
+ let m;
64
+ while ((m = re.exec(region)) !== null) {
65
+ const name = m[1];
66
+ const dq = m[2];
67
+ const raw = dq ?? m[3] ?? '';
68
+ const quoteChar = dq !== undefined ? '"' : "'";
69
+ const matchStart = start + m.index;
70
+ const eqIdx = m[0].indexOf('=');
71
+ const quoteIdx = m[0].indexOf(quoteChar, eqIdx === -1 ? 0 : eqIdx);
72
+ const valueStart = quoteIdx === -1 ? matchStart : matchStart + quoteIdx + 1;
73
+ out.push({
74
+ name,
75
+ value: decodeEntities(raw),
76
+ valueRange: { start: valueStart, end: valueStart + raw.length },
77
+ });
78
+ }
79
+ return out;
80
+ }
81
+ /** Scans one open (or self-closing) tag starting at `text[lt] === '<'`, respecting quoted values. */
82
+ function parseOpenTag(text, lt) {
83
+ let i = lt + 1;
84
+ const nameStart = i;
85
+ while (i < text.length && NAME_CHAR_RE.test(text[i])) {
86
+ i += 1;
87
+ }
88
+ if (i === nameStart) {
89
+ return undefined;
90
+ }
91
+ const name = text.slice(nameStart, i);
92
+ let quote;
93
+ while (i < text.length) {
94
+ const ch = text[i];
95
+ if (quote !== undefined) {
96
+ if (ch === quote) {
97
+ quote = undefined;
98
+ }
99
+ }
100
+ else if (ch === '"' || ch === "'") {
101
+ quote = ch;
102
+ }
103
+ else if (ch === '>') {
104
+ break;
105
+ }
106
+ i += 1;
107
+ }
108
+ if (i >= text.length) {
109
+ return undefined;
110
+ }
111
+ const selfClosing = text[i - 1] === '/';
112
+ return {
113
+ tagEnd: i,
114
+ selfClosing,
115
+ name,
116
+ attrs: parseAttrs(text, nameStart + name.length, selfClosing ? i - 1 : i),
117
+ };
118
+ }
119
+ function splitName(name) {
120
+ const colon = name.indexOf(':');
121
+ return colon === -1 ? { localName: name } : { prefix: name.slice(0, colon), localName: name.slice(colon + 1) };
122
+ }
123
+ /** Merges any `xmlns`/`xmlns:*` declarations on `attrs` into `parent`, without mutating it. */
124
+ function declarationsOf(attrs) {
125
+ const decls = {};
126
+ for (const attr of attrs) {
127
+ if (attr.name === 'xmlns') {
128
+ decls[''] = attr.value;
129
+ }
130
+ else if (attr.name.startsWith('xmlns:')) {
131
+ decls[attr.name.slice('xmlns:'.length)] = attr.value;
132
+ }
133
+ }
134
+ return decls;
135
+ }
136
+ /** Records a text-only element's content span, or an empty one when it has none. */
137
+ function finalizeText(frame, contentStart) {
138
+ if (frame.sawChildElement) {
139
+ return;
140
+ }
141
+ if (frame.spans.length === 0) {
142
+ frame.draft.text = { value: '', range: { start: contentStart, end: contentStart } };
143
+ return;
144
+ }
145
+ const first = frame.spans[0];
146
+ const last = frame.spans[frame.spans.length - 1];
147
+ frame.draft.text = {
148
+ value: frame.spans.map((s) => s.value).join(''),
149
+ range: { start: first.start, end: last.end },
150
+ };
151
+ }
152
+ /**
153
+ * Scans an XML fragment into an element tree with exact ranges.
154
+ *
155
+ * @param text the raw fragment; may contain several top-level elements
156
+ * @param inScope prefix → URI bindings inherited from an enclosing document (a
157
+ * body fragment sliced out of an envelope carries none of its own)
158
+ */
159
+ export function scanXml(text, inScope = {}) {
160
+ const problems = [];
161
+ const len = text.length;
162
+ const stack = [];
163
+ const roots = [];
164
+ let rootComments = [];
165
+ let i = 0;
166
+ const frame = () => stack[stack.length - 1];
167
+ while (i < len) {
168
+ const lt = text.indexOf('<', i);
169
+ if (lt === -1) {
170
+ break;
171
+ }
172
+ if (lt > i) {
173
+ const current = frame();
174
+ if (current !== undefined) {
175
+ current.spans.push({ start: i, end: lt, value: decodeEntities(text.slice(i, lt)) });
176
+ }
177
+ }
178
+ if (text.startsWith('<!--', lt)) {
179
+ const end = text.indexOf('-->', lt + 4);
180
+ if (end === -1) {
181
+ problems.push(`Unterminated comment at offset ${lt}`);
182
+ break;
183
+ }
184
+ const body = text.slice(lt + 4, end);
185
+ const current = frame();
186
+ if (current === undefined) {
187
+ rootComments.push(body);
188
+ }
189
+ else {
190
+ current.pendingComments.push(body);
191
+ }
192
+ i = end + 3;
193
+ continue;
194
+ }
195
+ if (text.startsWith('<![CDATA[', lt)) {
196
+ const payloadStart = lt + 9;
197
+ const end = text.indexOf(']]>', payloadStart);
198
+ if (end === -1) {
199
+ problems.push(`Unterminated CDATA section at offset ${lt}`);
200
+ break;
201
+ }
202
+ frame()?.spans.push({ start: payloadStart, end, value: text.slice(payloadStart, end) });
203
+ i = end + 3;
204
+ continue;
205
+ }
206
+ if (text.startsWith('<?', lt) || text.startsWith('<!', lt)) {
207
+ const closer = text.startsWith('<?', lt) ? '?>' : '>';
208
+ const end = text.indexOf(closer, lt + 2);
209
+ if (end === -1) {
210
+ problems.push(`Unterminated declaration at offset ${lt}`);
211
+ break;
212
+ }
213
+ i = end + closer.length;
214
+ continue;
215
+ }
216
+ if (text.startsWith('</', lt)) {
217
+ const end = text.indexOf('>', lt + 2);
218
+ if (end === -1) {
219
+ problems.push(`Unterminated closing tag at offset ${lt}`);
220
+ break;
221
+ }
222
+ const closing = stack.pop();
223
+ if (closing === undefined) {
224
+ problems.push(`Unexpected closing tag at offset ${lt} with no open element`);
225
+ }
226
+ else {
227
+ finalizeText(closing, closing.draft.range.end);
228
+ closing.draft.trailingComments = closing.pendingComments;
229
+ closing.draft.range = { start: closing.draft.range.start, end: end + 1 };
230
+ }
231
+ i = end + 1;
232
+ continue;
233
+ }
234
+ const parsed = parseOpenTag(text, lt);
235
+ if (parsed === undefined) {
236
+ problems.push(`Malformed tag at offset ${lt}`);
237
+ i = lt + 1;
238
+ continue;
239
+ }
240
+ const parent = frame();
241
+ const declared = declarationsOf(parsed.attrs);
242
+ const prefixes = Object.keys(declared).length > 0
243
+ ? { ...(parent?.prefixes ?? inScope), ...declared }
244
+ : (parent?.prefixes ?? inScope);
245
+ const { localName, prefix } = splitName(parsed.name);
246
+ const namespaceUri = prefix === 'xml' ? XML_NS : (prefixes[prefix ?? ''] ?? '');
247
+ const leading = parent === undefined ? rootComments : parent.pendingComments;
248
+ const draft = {
249
+ name: parsed.name,
250
+ localName,
251
+ ...(prefix !== undefined ? { prefix } : {}),
252
+ namespaceUri,
253
+ declaredNamespaces: declared,
254
+ attributes: parsed.attrs,
255
+ range: { start: lt, end: parsed.tagEnd + 1 },
256
+ children: [],
257
+ selfClosing: parsed.selfClosing,
258
+ leadingComments: leading,
259
+ trailingComments: [],
260
+ };
261
+ if (parent === undefined) {
262
+ roots.push(draft);
263
+ rootComments = [];
264
+ }
265
+ else {
266
+ parent.draft.children.push(draft);
267
+ parent.sawChildElement = true;
268
+ parent.pendingComments = [];
269
+ }
270
+ // A self-closing element has no content range at all, so it never gets a
271
+ // `text` field — a value edit on it must go through a structural edit.
272
+ if (!parsed.selfClosing) {
273
+ stack.push({ draft, prefixes, sawChildElement: false, spans: [], pendingComments: [] });
274
+ }
275
+ i = parsed.tagEnd + 1;
276
+ }
277
+ if (stack.length > 0) {
278
+ problems.push('Fragment ended with unclosed element(s); closed at end of text');
279
+ while (stack.length > 0) {
280
+ const open = stack.pop();
281
+ finalizeText(open, open.draft.range.end);
282
+ open.draft.range = { start: open.draft.range.start, end: len };
283
+ }
284
+ }
285
+ return { elements: roots.map(toElement), problems };
286
+ }
@@ -0,0 +1,56 @@
1
+ /**
2
+ * A tiny, dependency-free XML fragment writer used by the sample generator.
3
+ *
4
+ * It builds an element tree in memory and renders it with a fixed indent, so
5
+ * namespace declarations discovered while walking a schema can still be added
6
+ * to the fragment's root element once the walk is finished.
7
+ */
8
+ import type { QName } from '../wsdl/qname.js';
9
+ /** A literal attribute on an emitted element. */
10
+ export interface XmlAttribute {
11
+ readonly name: string;
12
+ readonly value: string;
13
+ }
14
+ /** An emitted element, comment, or nothing at all. */
15
+ export type XmlNode = XmlElementNode | XmlCommentNode;
16
+ /** An element node; either a leaf carrying `text` or a container with `children`. */
17
+ export interface XmlElementNode {
18
+ readonly kind: 'element';
19
+ /** The already-prefixed tag name, e.g. `ns1:Add` or `intA`. */
20
+ readonly name: string;
21
+ attributes: XmlAttribute[];
22
+ readonly children: XmlNode[];
23
+ /** Simple content, rendered on the element's own line. */
24
+ text?: string;
25
+ /** A comment rendered immediately before {@link XmlElementNode.text}, inside the element. */
26
+ leadingComment?: string;
27
+ }
28
+ /** A standalone comment line. */
29
+ export interface XmlCommentNode {
30
+ readonly kind: 'comment';
31
+ readonly text: string;
32
+ }
33
+ /** Creates an element node with no attributes and no children. */
34
+ export declare function element(name: string): XmlElementNode;
35
+ /** Creates a standalone comment node. */
36
+ export declare function comment(text: string): XmlCommentNode;
37
+ /** Escapes text content: `&`, `<` and `>` only, per XML's character-data rules. */
38
+ export declare function escapeText(value: string): string;
39
+ /** Escapes an attribute value, including the double quote it is delimited by. */
40
+ export declare function escapeAttribute(value: string): string;
41
+ /** Renders a node tree to a pretty-printed XML fragment (no XML declaration). */
42
+ export declare function renderXml(root: XmlNode, indent: string): string;
43
+ /** Assigns and remembers a stable prefix per namespace URI. */
44
+ export declare class PrefixTable {
45
+ private readonly preferred;
46
+ private readonly byUri;
47
+ private readonly taken;
48
+ private counter;
49
+ constructor(preferred: Readonly<Record<string, string>>);
50
+ /** The prefix for `uri`, allocating one on first use. The empty namespace has no prefix. */
51
+ prefixFor(uri: string, hint?: string): string;
52
+ /** Renders `name` as a prefixed lexical QName. */
53
+ qualify(name: QName, hint?: string): string;
54
+ /** Prefix → URI for every namespace used so far, in first-use order. */
55
+ namespaces(): Record<string, string>;
56
+ }
@@ -0,0 +1,103 @@
1
+ /**
2
+ * A tiny, dependency-free XML fragment writer used by the sample generator.
3
+ *
4
+ * It builds an element tree in memory and renders it with a fixed indent, so
5
+ * namespace declarations discovered while walking a schema can still be added
6
+ * to the fragment's root element once the walk is finished.
7
+ */
8
+ /** Creates an element node with no attributes and no children. */
9
+ export function element(name) {
10
+ return { kind: 'element', name, attributes: [], children: [] };
11
+ }
12
+ /** Creates a standalone comment node. */
13
+ export function comment(text) {
14
+ return { kind: 'comment', text };
15
+ }
16
+ /** Escapes text content: `&`, `<` and `>` only, per XML's character-data rules. */
17
+ export function escapeText(value) {
18
+ return value.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
19
+ }
20
+ /** Escapes an attribute value, including the double quote it is delimited by. */
21
+ export function escapeAttribute(value) {
22
+ return escapeText(value).replace(/"/g, '&quot;');
23
+ }
24
+ /** Neutralises `--` so a generated comment can never terminate early. */
25
+ function escapeComment(text) {
26
+ return text.replace(/--/g, '- -');
27
+ }
28
+ function renderAttributes(attributes) {
29
+ return attributes.map((a) => ` ${a.name}="${escapeAttribute(a.value)}"`).join('');
30
+ }
31
+ function renderNode(node, indent, depth, out) {
32
+ const pad = indent.repeat(depth);
33
+ if (node.kind === 'comment') {
34
+ out.push(`${pad}<!--${escapeComment(node.text)}-->`);
35
+ return;
36
+ }
37
+ const open = `<${node.name}${renderAttributes(node.attributes)}`;
38
+ if (node.children.length === 0 && node.text === undefined && node.leadingComment === undefined) {
39
+ out.push(`${pad}${open}/>`);
40
+ return;
41
+ }
42
+ if (node.children.length === 0) {
43
+ const inner = `${node.leadingComment !== undefined ? `<!--${escapeComment(node.leadingComment)}-->` : ''}${node.text !== undefined ? escapeText(node.text) : ''}`;
44
+ out.push(`${pad}${open}>${inner}</${node.name}>`);
45
+ return;
46
+ }
47
+ out.push(`${pad}${open}>`);
48
+ for (const child of node.children) {
49
+ renderNode(child, indent, depth + 1, out);
50
+ }
51
+ out.push(`${pad}</${node.name}>`);
52
+ }
53
+ /** Renders a node tree to a pretty-printed XML fragment (no XML declaration). */
54
+ export function renderXml(root, indent) {
55
+ const out = [];
56
+ renderNode(root, indent, 0, out);
57
+ return out.join('\n');
58
+ }
59
+ /** Assigns and remembers a stable prefix per namespace URI. */
60
+ export class PrefixTable {
61
+ preferred;
62
+ byUri = new Map();
63
+ taken = new Set();
64
+ counter = 0;
65
+ constructor(preferred) {
66
+ this.preferred = preferred;
67
+ }
68
+ /** The prefix for `uri`, allocating one on first use. The empty namespace has no prefix. */
69
+ prefixFor(uri, hint) {
70
+ if (uri === '') {
71
+ return '';
72
+ }
73
+ const existing = this.byUri.get(uri);
74
+ if (existing !== undefined) {
75
+ return existing;
76
+ }
77
+ const wanted = this.preferred[uri] ?? hint;
78
+ let prefix = wanted !== undefined && !this.taken.has(wanted) ? wanted : '';
79
+ while (prefix === '') {
80
+ this.counter += 1;
81
+ const candidate = `ns${this.counter}`;
82
+ if (!this.taken.has(candidate)) {
83
+ prefix = candidate;
84
+ }
85
+ }
86
+ this.taken.add(prefix);
87
+ this.byUri.set(uri, prefix);
88
+ return prefix;
89
+ }
90
+ /** Renders `name` as a prefixed lexical QName. */
91
+ qualify(name, hint) {
92
+ const prefix = this.prefixFor(name.namespaceUri, hint);
93
+ return prefix === '' ? name.localName : `${prefix}:${name.localName}`;
94
+ }
95
+ /** Prefix → URI for every namespace used so far, in first-use order. */
96
+ namespaces() {
97
+ const result = {};
98
+ for (const [uri, prefix] of this.byUri) {
99
+ result[prefix] = uri;
100
+ }
101
+ return result;
102
+ }
103
+ }
package/package.json ADDED
@@ -0,0 +1,69 @@
1
+ {
2
+ "name": "@wirebench/engine",
3
+ "version": "2.1.1",
4
+ "license": "Apache-2.0",
5
+ "type": "module",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/wirebench/wirebench.git",
9
+ "directory": "packages/engine"
10
+ },
11
+ "engines": {
12
+ "node": ">=24"
13
+ },
14
+ "files": [
15
+ "dist",
16
+ "README.md",
17
+ "LICENSE"
18
+ ],
19
+ "publishConfig": {
20
+ "access": "public",
21
+ "provenance": true
22
+ },
23
+ "prepack": "node -e \"require('fs').copyFileSync('../../LICENSE', 'LICENSE')\"",
24
+ "exports": {
25
+ ".": {
26
+ "types": "./dist/index.d.ts",
27
+ "default": "./dist/index.js"
28
+ },
29
+ "./xml": {
30
+ "types": "./dist/xml/index.d.ts",
31
+ "default": "./dist/xml/index.js"
32
+ },
33
+ "./rest": {
34
+ "types": "./dist/rest/browser.d.ts",
35
+ "default": "./dist/rest/browser.js"
36
+ },
37
+ "./json": {
38
+ "types": "./dist/json/cursor.d.ts",
39
+ "default": "./dist/json/cursor.js"
40
+ },
41
+ "./grpc": {
42
+ "types": "./dist/grpc/browser.d.ts",
43
+ "default": "./dist/grpc/browser.js"
44
+ },
45
+ "./detect": {
46
+ "types": "./dist/import-detect.d.ts",
47
+ "default": "./dist/import-detect.js"
48
+ }
49
+ },
50
+ "dependencies": {
51
+ "@xmldom/xmldom": "^0.9.12",
52
+ "fontoxpath": "^3.34.0",
53
+ "jsonpath-plus": "^10.4.0",
54
+ "node-forge": "^1.3.1",
55
+ "protobufjs": "^8.8.0",
56
+ "ulidx": "^2.4.1",
57
+ "undici": "^8",
58
+ "xml-crypto": "^6.1.2",
59
+ "xmllint-wasm": "5.3.0",
60
+ "yaml": "^2.9",
61
+ "zod": "^4.6.1"
62
+ },
63
+ "scripts": {
64
+ "build": "tsc -b",
65
+ "test": "vitest run --root ../.. --project engine-unit --project engine-integration",
66
+ "test:perf": "vitest run --root ../.. --project engine-perf",
67
+ "typecheck": "tsc -b"
68
+ }
69
+ }