openapi-typesafe 0.0.0 → 1.0.0-rc.0

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 (678) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +71 -1
  3. package/bin/cli.js +4 -0
  4. package/dist/adapters/node-file-system/node-file-system.cjs +46 -0
  5. package/dist/adapters/node-file-system/node-file-system.cjs.map +1 -0
  6. package/dist/adapters/node-file-system/node-file-system.mjs +40 -0
  7. package/dist/adapters/node-file-system/node-file-system.mjs.map +1 -0
  8. package/dist/adapters/redocly-loader/alias-limit.cjs +16 -0
  9. package/dist/adapters/redocly-loader/alias-limit.cjs.map +1 -0
  10. package/dist/adapters/redocly-loader/alias-limit.mjs +14 -0
  11. package/dist/adapters/redocly-loader/alias-limit.mjs.map +1 -0
  12. package/dist/adapters/redocly-loader/allowed-hosts.cjs +42 -0
  13. package/dist/adapters/redocly-loader/allowed-hosts.cjs.map +1 -0
  14. package/dist/adapters/redocly-loader/allowed-hosts.mjs +40 -0
  15. package/dist/adapters/redocly-loader/allowed-hosts.mjs.map +1 -0
  16. package/dist/adapters/redocly-loader/bundled-ref-repair.cjs +53 -0
  17. package/dist/adapters/redocly-loader/bundled-ref-repair.cjs.map +1 -0
  18. package/dist/adapters/redocly-loader/bundled-ref-repair.mjs +51 -0
  19. package/dist/adapters/redocly-loader/bundled-ref-repair.mjs.map +1 -0
  20. package/dist/adapters/redocly-loader/malformed-refs.cjs +41 -0
  21. package/dist/adapters/redocly-loader/malformed-refs.cjs.map +1 -0
  22. package/dist/adapters/redocly-loader/malformed-refs.mjs +38 -0
  23. package/dist/adapters/redocly-loader/malformed-refs.mjs.map +1 -0
  24. package/dist/adapters/redocly-loader/redocly-config-source.cjs +42 -0
  25. package/dist/adapters/redocly-loader/redocly-config-source.cjs.map +1 -0
  26. package/dist/adapters/redocly-loader/redocly-config-source.mjs +35 -0
  27. package/dist/adapters/redocly-loader/redocly-config-source.mjs.map +1 -0
  28. package/dist/adapters/redocly-loader/redocly-schema-loader.cjs +169 -0
  29. package/dist/adapters/redocly-loader/redocly-schema-loader.cjs.map +1 -0
  30. package/dist/adapters/redocly-loader/redocly-schema-loader.mjs +167 -0
  31. package/dist/adapters/redocly-loader/redocly-schema-loader.mjs.map +1 -0
  32. package/dist/adapters/redocly-loader/ref-access.cjs +107 -0
  33. package/dist/adapters/redocly-loader/ref-access.cjs.map +1 -0
  34. package/dist/adapters/redocly-loader/ref-access.mjs +99 -0
  35. package/dist/adapters/redocly-loader/ref-access.mjs.map +1 -0
  36. package/dist/adapters/redocly-loader/ref-holders.cjs +31 -0
  37. package/dist/adapters/redocly-loader/ref-holders.cjs.map +1 -0
  38. package/dist/adapters/redocly-loader/ref-holders.mjs +29 -0
  39. package/dist/adapters/redocly-loader/ref-holders.mjs.map +1 -0
  40. package/dist/adapters/redocly-loader/remote-fetch.cjs +60 -0
  41. package/dist/adapters/redocly-loader/remote-fetch.cjs.map +1 -0
  42. package/dist/adapters/redocly-loader/remote-fetch.mjs +56 -0
  43. package/dist/adapters/redocly-loader/remote-fetch.mjs.map +1 -0
  44. package/dist/adapters/redocly-loader/schema-load-errors.cjs +87 -0
  45. package/dist/adapters/redocly-loader/schema-load-errors.cjs.map +1 -0
  46. package/dist/adapters/redocly-loader/schema-load-errors.mjs +77 -0
  47. package/dist/adapters/redocly-loader/schema-load-errors.mjs.map +1 -0
  48. package/dist/adapters/redocly-loader/schema-source.cjs +104 -0
  49. package/dist/adapters/redocly-loader/schema-source.cjs.map +1 -0
  50. package/dist/adapters/redocly-loader/schema-source.mjs +98 -0
  51. package/dist/adapters/redocly-loader/schema-source.mjs.map +1 -0
  52. package/dist/adapters/redocly-loader/unsupported-keys.cjs +62 -0
  53. package/dist/adapters/redocly-loader/unsupported-keys.cjs.map +1 -0
  54. package/dist/adapters/redocly-loader/unsupported-keys.mjs +58 -0
  55. package/dist/adapters/redocly-loader/unsupported-keys.mjs.map +1 -0
  56. package/dist/adapters/terminal-logger/terminal-logger.cjs +67 -0
  57. package/dist/adapters/terminal-logger/terminal-logger.cjs.map +1 -0
  58. package/dist/adapters/terminal-logger/terminal-logger.mjs +59 -0
  59. package/dist/adapters/terminal-logger/terminal-logger.mjs.map +1 -0
  60. package/dist/adapters/type-ast-bridge/footer-nodes.cjs +21 -0
  61. package/dist/adapters/type-ast-bridge/footer-nodes.cjs.map +1 -0
  62. package/dist/adapters/type-ast-bridge/footer-nodes.mjs +17 -0
  63. package/dist/adapters/type-ast-bridge/footer-nodes.mjs.map +1 -0
  64. package/dist/adapters/type-ast-bridge/ir-declarations-to-typescript.cjs +75 -0
  65. package/dist/adapters/type-ast-bridge/ir-declarations-to-typescript.cjs.map +1 -0
  66. package/dist/adapters/type-ast-bridge/ir-declarations-to-typescript.mjs +71 -0
  67. package/dist/adapters/type-ast-bridge/ir-declarations-to-typescript.mjs.map +1 -0
  68. package/dist/adapters/type-ast-bridge/ir-to-typescript.cjs +145 -0
  69. package/dist/adapters/type-ast-bridge/ir-to-typescript.cjs.map +1 -0
  70. package/dist/adapters/type-ast-bridge/ir-to-typescript.mjs +139 -0
  71. package/dist/adapters/type-ast-bridge/ir-to-typescript.mjs.map +1 -0
  72. package/dist/adapters/type-ast-bridge/lazy-node.cjs +23 -0
  73. package/dist/adapters/type-ast-bridge/lazy-node.cjs.map +1 -0
  74. package/dist/adapters/type-ast-bridge/lazy-node.mjs +21 -0
  75. package/dist/adapters/type-ast-bridge/lazy-node.mjs.map +1 -0
  76. package/dist/adapters/type-ast-bridge/load-typescript.cjs +57 -0
  77. package/dist/adapters/type-ast-bridge/load-typescript.cjs.map +1 -0
  78. package/dist/adapters/type-ast-bridge/load-typescript.mjs +51 -0
  79. package/dist/adapters/type-ast-bridge/load-typescript.mjs.map +1 -0
  80. package/dist/adapters/type-ast-bridge/print-typescript.cjs +21 -0
  81. package/dist/adapters/type-ast-bridge/print-typescript.cjs.map +1 -0
  82. package/dist/adapters/type-ast-bridge/print-typescript.mjs +19 -0
  83. package/dist/adapters/type-ast-bridge/print-typescript.mjs.map +1 -0
  84. package/dist/adapters/type-ast-bridge/typescript-raw-text.cjs +33 -0
  85. package/dist/adapters/type-ast-bridge/typescript-raw-text.cjs.map +1 -0
  86. package/dist/adapters/type-ast-bridge/typescript-raw-text.mjs +29 -0
  87. package/dist/adapters/type-ast-bridge/typescript-raw-text.mjs.map +1 -0
  88. package/dist/adapters/type-ast-bridge/typescript-to-ir.cjs +204 -0
  89. package/dist/adapters/type-ast-bridge/typescript-to-ir.cjs.map +1 -0
  90. package/dist/adapters/type-ast-bridge/typescript-to-ir.mjs +201 -0
  91. package/dist/adapters/type-ast-bridge/typescript-to-ir.mjs.map +1 -0
  92. package/dist/api/ast-to-string.cjs +39 -0
  93. package/dist/api/ast-to-string.cjs.map +1 -0
  94. package/dist/api/ast-to-string.mjs +37 -0
  95. package/dist/api/ast-to-string.mjs.map +1 -0
  96. package/dist/api/comment-header.cjs +11 -0
  97. package/dist/api/comment-header.cjs.map +1 -0
  98. package/dist/api/comment-header.mjs +9 -0
  99. package/dist/api/comment-header.mjs.map +1 -0
  100. package/dist/api/default-ports.cjs +38 -0
  101. package/dist/api/default-ports.cjs.map +1 -0
  102. package/dist/api/default-ports.mjs +28 -0
  103. package/dist/api/default-ports.mjs.map +1 -0
  104. package/dist/api/discriminator-enum.cjs +44 -0
  105. package/dist/api/discriminator-enum.cjs.map +1 -0
  106. package/dist/api/discriminator-enum.mjs +42 -0
  107. package/dist/api/discriminator-enum.mjs.map +1 -0
  108. package/dist/api/discriminator-scan.cjs +168 -0
  109. package/dist/api/discriminator-scan.cjs.map +1 -0
  110. package/dist/api/discriminator-scan.mjs +165 -0
  111. package/dist/api/discriminator-scan.mjs.map +1 -0
  112. package/dist/api/document-declarations.cjs +28 -0
  113. package/dist/api/document-declarations.cjs.map +1 -0
  114. package/dist/api/document-declarations.mjs +26 -0
  115. package/dist/api/document-declarations.mjs.map +1 -0
  116. package/dist/api/document-refs.cjs +53 -0
  117. package/dist/api/document-refs.cjs.map +1 -0
  118. package/dist/api/document-refs.mjs +50 -0
  119. package/dist/api/document-refs.mjs.map +1 -0
  120. package/dist/api/document-run.cjs +107 -0
  121. package/dist/api/document-run.cjs.map +1 -0
  122. package/dist/api/document-run.mjs +101 -0
  123. package/dist/api/document-run.mjs.map +1 -0
  124. package/dist/api/footer-entry.cjs +18 -0
  125. package/dist/api/footer-entry.cjs.map +1 -0
  126. package/dist/api/footer-entry.mjs +15 -0
  127. package/dist/api/footer-entry.mjs.map +1 -0
  128. package/dist/api/footer-sink.cjs +53 -0
  129. package/dist/api/footer-sink.cjs.map +1 -0
  130. package/dist/api/footer-sink.mjs +51 -0
  131. package/dist/api/footer-sink.mjs.map +1 -0
  132. package/dist/api/legacy-callback-warning.cjs +25 -0
  133. package/dist/api/legacy-callback-warning.cjs.map +1 -0
  134. package/dist/api/legacy-callback-warning.mjs +22 -0
  135. package/dist/api/legacy-callback-warning.mjs.map +1 -0
  136. package/dist/api/legacy-ts-helpers.cjs +203 -0
  137. package/dist/api/legacy-ts-helpers.cjs.map +1 -0
  138. package/dist/api/legacy-ts-helpers.mjs +187 -0
  139. package/dist/api/legacy-ts-helpers.mjs.map +1 -0
  140. package/dist/api/legacy-utils.cjs +65 -0
  141. package/dist/api/legacy-utils.cjs.map +1 -0
  142. package/dist/api/legacy-utils.mjs +50 -0
  143. package/dist/api/legacy-utils.mjs.map +1 -0
  144. package/dist/api/openapi-ts.cjs +40 -0
  145. package/dist/api/openapi-ts.cjs.map +1 -0
  146. package/dist/api/openapi-ts.mjs +34 -0
  147. package/dist/api/openapi-ts.mjs.map +1 -0
  148. package/dist/api/schema-callbacks.cjs +140 -0
  149. package/dist/api/schema-callbacks.cjs.map +1 -0
  150. package/dist/api/schema-callbacks.mjs +136 -0
  151. package/dist/api/schema-callbacks.mjs.map +1 -0
  152. package/dist/api/string-to-ast.cjs +21 -0
  153. package/dist/api/string-to-ast.cjs.map +1 -0
  154. package/dist/api/string-to-ast.mjs +18 -0
  155. package/dist/api/string-to-ast.mjs.map +1 -0
  156. package/dist/api/transform-context.cjs +82 -0
  157. package/dist/api/transform-context.cjs.map +1 -0
  158. package/dist/api/transform-context.mjs +65 -0
  159. package/dist/api/transform-context.mjs.map +1 -0
  160. package/dist/api/transform-schema.cjs +31 -0
  161. package/dist/api/transform-schema.cjs.map +1 -0
  162. package/dist/api/transform-schema.mjs +26 -0
  163. package/dist/api/transform-schema.mjs.map +1 -0
  164. package/dist/api/type-helpers.cjs +85 -0
  165. package/dist/api/type-helpers.cjs.map +1 -0
  166. package/dist/api/type-helpers.mjs +66 -0
  167. package/dist/api/type-helpers.mjs.map +1 -0
  168. package/dist/api/unsupported-feature-warnings.cjs +17 -0
  169. package/dist/api/unsupported-feature-warnings.cjs.map +1 -0
  170. package/dist/api/unsupported-feature-warnings.mjs +15 -0
  171. package/dist/api/unsupported-feature-warnings.mjs.map +1 -0
  172. package/dist/application/print/comment-writer.cjs +95 -0
  173. package/dist/application/print/comment-writer.cjs.map +1 -0
  174. package/dist/application/print/comment-writer.mjs +93 -0
  175. package/dist/application/print/comment-writer.mjs.map +1 -0
  176. package/dist/application/print/declaration-printer.cjs +83 -0
  177. package/dist/application/print/declaration-printer.cjs.map +1 -0
  178. package/dist/application/print/declaration-printer.mjs +81 -0
  179. package/dist/application/print/declaration-printer.mjs.map +1 -0
  180. package/dist/application/print/literal-text.cjs +52 -0
  181. package/dist/application/print/literal-text.cjs.map +1 -0
  182. package/dist/application/print/literal-text.mjs +48 -0
  183. package/dist/application/print/literal-text.mjs.map +1 -0
  184. package/dist/application/print/print-nodes.cjs +38 -0
  185. package/dist/application/print/print-nodes.cjs.map +1 -0
  186. package/dist/application/print/print-nodes.mjs +36 -0
  187. package/dist/application/print/print-nodes.mjs.map +1 -0
  188. package/dist/application/print/print-options.cjs +6 -0
  189. package/dist/application/print/print-options.cjs.map +1 -0
  190. package/dist/application/print/print-options.mjs +4 -0
  191. package/dist/application/print/print-options.mjs.map +1 -0
  192. package/dist/application/print/text-writer.cjs +63 -0
  193. package/dist/application/print/text-writer.cjs.map +1 -0
  194. package/dist/application/print/text-writer.mjs +60 -0
  195. package/dist/application/print/text-writer.mjs.map +1 -0
  196. package/dist/application/print/type-printer.cjs +214 -0
  197. package/dist/application/print/type-printer.cjs.map +1 -0
  198. package/dist/application/print/type-printer.mjs +210 -0
  199. package/dist/application/print/type-printer.mjs.map +1 -0
  200. package/dist/application/stack-overflow.cjs +36 -0
  201. package/dist/application/stack-overflow.cjs.map +1 -0
  202. package/dist/application/stack-overflow.mjs +31 -0
  203. package/dist/application/stack-overflow.mjs.map +1 -0
  204. package/dist/application/transform/document/components.cjs +104 -0
  205. package/dist/application/transform/document/components.cjs.map +1 -0
  206. package/dist/application/transform/document/components.mjs +102 -0
  207. package/dist/application/transform/document/components.mjs.map +1 -0
  208. package/dist/application/transform/document/defs-root.cjs +18 -0
  209. package/dist/application/transform/document/defs-root.cjs.map +1 -0
  210. package/dist/application/transform/document/defs-root.mjs +16 -0
  211. package/dist/application/transform/document/defs-root.mjs.map +1 -0
  212. package/dist/application/transform/document/document-member.cjs +13 -0
  213. package/dist/application/transform/document/document-member.cjs.map +1 -0
  214. package/dist/application/transform/document/document-member.mjs +11 -0
  215. package/dist/application/transform/document/document-member.mjs.map +1 -0
  216. package/dist/application/transform/document/document.cjs +86 -0
  217. package/dist/application/transform/document/document.cjs.map +1 -0
  218. package/dist/application/transform/document/document.mjs +83 -0
  219. package/dist/application/transform/document/document.mjs.map +1 -0
  220. package/dist/application/transform/document/header.cjs +27 -0
  221. package/dist/application/transform/document/header.cjs.map +1 -0
  222. package/dist/application/transform/document/header.mjs +25 -0
  223. package/dist/application/transform/document/header.mjs.map +1 -0
  224. package/dist/application/transform/document/kept-deprecated.cjs +96 -0
  225. package/dist/application/transform/document/kept-deprecated.cjs.map +1 -0
  226. package/dist/application/transform/document/kept-deprecated.mjs +94 -0
  227. package/dist/application/transform/document/kept-deprecated.mjs.map +1 -0
  228. package/dist/application/transform/document/media-type.cjs +42 -0
  229. package/dist/application/transform/document/media-type.cjs.map +1 -0
  230. package/dist/application/transform/document/media-type.mjs +38 -0
  231. package/dist/application/transform/document/media-type.mjs.map +1 -0
  232. package/dist/application/transform/document/operation.cjs +45 -0
  233. package/dist/application/transform/document/operation.cjs.map +1 -0
  234. package/dist/application/transform/document/operation.mjs +43 -0
  235. package/dist/application/transform/document/operation.mjs.map +1 -0
  236. package/dist/application/transform/document/parameter.cjs +25 -0
  237. package/dist/application/transform/document/parameter.cjs.map +1 -0
  238. package/dist/application/transform/document/parameter.mjs +23 -0
  239. package/dist/application/transform/document/parameter.mjs.map +1 -0
  240. package/dist/application/transform/document/parameters.cjs +114 -0
  241. package/dist/application/transform/document/parameters.cjs.map +1 -0
  242. package/dist/application/transform/document/parameters.mjs +112 -0
  243. package/dist/application/transform/document/parameters.mjs.map +1 -0
  244. package/dist/application/transform/document/path-item-conflicts.cjs +51 -0
  245. package/dist/application/transform/document/path-item-conflicts.cjs.map +1 -0
  246. package/dist/application/transform/document/path-item-conflicts.mjs +49 -0
  247. package/dist/application/transform/document/path-item-conflicts.mjs.map +1 -0
  248. package/dist/application/transform/document/path-item.cjs +82 -0
  249. package/dist/application/transform/document/path-item.cjs.map +1 -0
  250. package/dist/application/transform/document/path-item.mjs +80 -0
  251. package/dist/application/transform/document/path-item.mjs.map +1 -0
  252. package/dist/application/transform/document/path-key-overlaps.cjs +57 -0
  253. package/dist/application/transform/document/path-key-overlaps.cjs.map +1 -0
  254. package/dist/application/transform/document/path-key-overlaps.mjs +55 -0
  255. package/dist/application/transform/document/path-key-overlaps.mjs.map +1 -0
  256. package/dist/application/transform/document/paths-enum.cjs +75 -0
  257. package/dist/application/transform/document/paths-enum.cjs.map +1 -0
  258. package/dist/application/transform/document/paths-enum.mjs +72 -0
  259. package/dist/application/transform/document/paths-enum.mjs.map +1 -0
  260. package/dist/application/transform/document/paths.cjs +127 -0
  261. package/dist/application/transform/document/paths.cjs.map +1 -0
  262. package/dist/application/transform/document/paths.mjs +125 -0
  263. package/dist/application/transform/document/paths.mjs.map +1 -0
  264. package/dist/application/transform/document/request-body.cjs +36 -0
  265. package/dist/application/transform/document/request-body.cjs.map +1 -0
  266. package/dist/application/transform/document/request-body.mjs +34 -0
  267. package/dist/application/transform/document/request-body.mjs.map +1 -0
  268. package/dist/application/transform/document/response.cjs +59 -0
  269. package/dist/application/transform/document/response.cjs.map +1 -0
  270. package/dist/application/transform/document/response.mjs +57 -0
  271. package/dist/application/transform/document/response.mjs.map +1 -0
  272. package/dist/application/transform/document/responses.cjs +23 -0
  273. package/dist/application/transform/document/responses.cjs.map +1 -0
  274. package/dist/application/transform/document/responses.mjs +21 -0
  275. package/dist/application/transform/document/responses.mjs.map +1 -0
  276. package/dist/application/transform/document/root-type-aliases.cjs +69 -0
  277. package/dist/application/transform/document/root-type-aliases.cjs.map +1 -0
  278. package/dist/application/transform/document/root-type-aliases.mjs +65 -0
  279. package/dist/application/transform/document/root-type-aliases.mjs.map +1 -0
  280. package/dist/application/transform/document/webhooks.cjs +19 -0
  281. package/dist/application/transform/document/webhooks.cjs.map +1 -0
  282. package/dist/application/transform/document/webhooks.mjs +17 -0
  283. package/dist/application/transform/document/webhooks.mjs.map +1 -0
  284. package/dist/application/transform/document-entries.cjs +17 -0
  285. package/dist/application/transform/document-entries.cjs.map +1 -0
  286. package/dist/application/transform/document-entries.mjs +14 -0
  287. package/dist/application/transform/document-entries.mjs.map +1 -0
  288. package/dist/application/transform/footer/document-footer.cjs +88 -0
  289. package/dist/application/transform/footer/document-footer.cjs.map +1 -0
  290. package/dist/application/transform/footer/document-footer.mjs +86 -0
  291. package/dist/application/transform/footer/document-footer.mjs.map +1 -0
  292. package/dist/application/transform/footer/enum-naming.cjs +121 -0
  293. package/dist/application/transform/footer/enum-naming.cjs.map +1 -0
  294. package/dist/application/transform/footer/enum-naming.mjs +115 -0
  295. package/dist/application/transform/footer/enum-naming.mjs.map +1 -0
  296. package/dist/application/transform/helper-types.cjs +68 -0
  297. package/dist/application/transform/helper-types.cjs.map +1 -0
  298. package/dist/application/transform/helper-types.mjs +65 -0
  299. package/dist/application/transform/helper-types.mjs.map +1 -0
  300. package/dist/application/transform/literal-type.cjs +36 -0
  301. package/dist/application/transform/literal-type.cjs.map +1 -0
  302. package/dist/application/transform/literal-type.mjs +34 -0
  303. package/dist/application/transform/literal-type.mjs.map +1 -0
  304. package/dist/application/transform/numbered-names.cjs +18 -0
  305. package/dist/application/transform/numbered-names.cjs.map +1 -0
  306. package/dist/application/transform/numbered-names.mjs +16 -0
  307. package/dist/application/transform/numbered-names.mjs.map +1 -0
  308. package/dist/application/transform/ref-type.cjs +57 -0
  309. package/dist/application/transform/ref-type.cjs.map +1 -0
  310. package/dist/application/transform/ref-type.mjs +54 -0
  311. package/dist/application/transform/ref-type.mjs.map +1 -0
  312. package/dist/application/transform/schema/array-type.cjs +105 -0
  313. package/dist/application/transform/schema/array-type.cjs.map +1 -0
  314. package/dist/application/transform/schema/array-type.mjs +103 -0
  315. package/dist/application/transform/schema/array-type.mjs.map +1 -0
  316. package/dist/application/transform/schema/composition-type.cjs +107 -0
  317. package/dist/application/transform/schema/composition-type.cjs.map +1 -0
  318. package/dist/application/transform/schema/composition-type.mjs +105 -0
  319. package/dist/application/transform/schema/composition-type.mjs.map +1 -0
  320. package/dist/application/transform/schema/core-type.cjs +84 -0
  321. package/dist/application/transform/schema/core-type.cjs.map +1 -0
  322. package/dist/application/transform/schema/core-type.mjs +82 -0
  323. package/dist/application/transform/schema/core-type.mjs.map +1 -0
  324. package/dist/application/transform/schema/discriminator-property.cjs +21 -0
  325. package/dist/application/transform/schema/discriminator-property.cjs.map +1 -0
  326. package/dist/application/transform/schema/discriminator-property.mjs +19 -0
  327. package/dist/application/transform/schema/discriminator-property.mjs.map +1 -0
  328. package/dist/application/transform/schema/enum-rule.cjs +107 -0
  329. package/dist/application/transform/schema/enum-rule.cjs.map +1 -0
  330. package/dist/application/transform/schema/enum-rule.mjs +105 -0
  331. package/dist/application/transform/schema/enum-rule.mjs.map +1 -0
  332. package/dist/application/transform/schema/object-type.cjs +173 -0
  333. package/dist/application/transform/schema/object-type.cjs.map +1 -0
  334. package/dist/application/transform/schema/object-type.mjs +170 -0
  335. package/dist/application/transform/schema/object-type.mjs.map +1 -0
  336. package/dist/application/transform/schema/presence-members.cjs +59 -0
  337. package/dist/application/transform/schema/presence-members.cjs.map +1 -0
  338. package/dist/application/transform/schema/presence-members.mjs +57 -0
  339. package/dist/application/transform/schema/presence-members.mjs.map +1 -0
  340. package/dist/application/transform/schema/schema-transform.cjs +72 -0
  341. package/dist/application/transform/schema/schema-transform.cjs.map +1 -0
  342. package/dist/application/transform/schema/schema-transform.mjs +68 -0
  343. package/dist/application/transform/schema/schema-transform.mjs.map +1 -0
  344. package/dist/application/transform/schema/unevaluated-properties.cjs +61 -0
  345. package/dist/application/transform/schema/unevaluated-properties.cjs.map +1 -0
  346. package/dist/application/transform/schema/unevaluated-properties.mjs +59 -0
  347. package/dist/application/transform/schema/unevaluated-properties.mjs.map +1 -0
  348. package/dist/application/transform/schema-comment.cjs +84 -0
  349. package/dist/application/transform/schema-comment.cjs.map +1 -0
  350. package/dist/application/transform/schema-comment.mjs +81 -0
  351. package/dist/application/transform/schema-comment.mjs.map +1 -0
  352. package/dist/application/transform/shared-types.cjs +8 -0
  353. package/dist/application/transform/shared-types.cjs.map +1 -0
  354. package/dist/application/transform/shared-types.mjs +6 -0
  355. package/dist/application/transform/shared-types.mjs.map +1 -0
  356. package/dist/application/transform/type-combinators.cjs +49 -0
  357. package/dist/application/transform/type-combinators.cjs.map +1 -0
  358. package/dist/application/transform/type-combinators.mjs +42 -0
  359. package/dist/application/transform/type-combinators.mjs.map +1 -0
  360. package/dist/cli/cli-arguments.cjs +137 -0
  361. package/dist/cli/cli-arguments.cjs.map +1 -0
  362. package/dist/cli/cli-arguments.mjs +129 -0
  363. package/dist/cli/cli-arguments.mjs.map +1 -0
  364. package/dist/cli/cli-errors.cjs +80 -0
  365. package/dist/cli/cli-errors.cjs.map +1 -0
  366. package/dist/cli/cli-errors.mjs +76 -0
  367. package/dist/cli/cli-errors.mjs.map +1 -0
  368. package/dist/cli/cli-output.cjs +37 -0
  369. package/dist/cli/cli-output.cjs.map +1 -0
  370. package/dist/cli/cli-output.mjs +30 -0
  371. package/dist/cli/cli-output.mjs.map +1 -0
  372. package/dist/cli/docs-links.cjs +6 -0
  373. package/dist/cli/docs-links.cjs.map +1 -0
  374. package/dist/cli/docs-links.mjs +4 -0
  375. package/dist/cli/docs-links.mjs.map +1 -0
  376. package/dist/cli/fix-option.cjs +19 -0
  377. package/dist/cli/fix-option.cjs.map +1 -0
  378. package/dist/cli/fix-option.mjs +16 -0
  379. package/dist/cli/fix-option.mjs.map +1 -0
  380. package/dist/cli/help-text.cjs +44 -0
  381. package/dist/cli/help-text.cjs.map +1 -0
  382. package/dist/cli/help-text.mjs +42 -0
  383. package/dist/cli/help-text.mjs.map +1 -0
  384. package/dist/cli/main.cjs +62 -0
  385. package/dist/cli/main.cjs.map +1 -0
  386. package/dist/cli/main.d.cts +2 -0
  387. package/dist/cli/main.d.mts +2 -0
  388. package/dist/cli/main.d.ts +2 -0
  389. package/dist/cli/main.mjs +54 -0
  390. package/dist/cli/main.mjs.map +1 -0
  391. package/dist/cli/redocly-apis.cjs +65 -0
  392. package/dist/cli/redocly-apis.cjs.map +1 -0
  393. package/dist/cli/redocly-apis.mjs +62 -0
  394. package/dist/cli/redocly-apis.mjs.map +1 -0
  395. package/dist/cli/ref-limits.cjs +14 -0
  396. package/dist/cli/ref-limits.cjs.map +1 -0
  397. package/dist/cli/ref-limits.mjs +12 -0
  398. package/dist/cli/ref-limits.mjs.map +1 -0
  399. package/dist/cli/run-cli.cjs +100 -0
  400. package/dist/cli/run-cli.cjs.map +1 -0
  401. package/dist/cli/run-cli.mjs +98 -0
  402. package/dist/cli/run-cli.mjs.map +1 -0
  403. package/dist/domain/assert-never.cjs +8 -0
  404. package/dist/domain/assert-never.cjs.map +1 -0
  405. package/dist/domain/assert-never.mjs +6 -0
  406. package/dist/domain/assert-never.mjs.map +1 -0
  407. package/dist/domain/errors.cjs +50 -0
  408. package/dist/domain/errors.cjs.map +1 -0
  409. package/dist/domain/errors.mjs +46 -0
  410. package/dist/domain/errors.mjs.map +1 -0
  411. package/dist/domain/ir/constructors.cjs +89 -0
  412. package/dist/domain/ir/constructors.cjs.map +1 -0
  413. package/dist/domain/ir/constructors.mjs +71 -0
  414. package/dist/domain/ir/constructors.mjs.map +1 -0
  415. package/dist/domain/ir/identifier-text.cjs +29 -0
  416. package/dist/domain/ir/identifier-text.cjs.map +1 -0
  417. package/dist/domain/ir/identifier-text.mjs +25 -0
  418. package/dist/domain/ir/identifier-text.mjs.map +1 -0
  419. package/dist/domain/ir/newer-identifier-ranges.cjs +109 -0
  420. package/dist/domain/ir/newer-identifier-ranges.cjs.map +1 -0
  421. package/dist/domain/ir/newer-identifier-ranges.mjs +106 -0
  422. package/dist/domain/ir/newer-identifier-ranges.mjs.map +1 -0
  423. package/dist/domain/ir/normalize.cjs +32 -0
  424. package/dist/domain/ir/normalize.cjs.map +1 -0
  425. package/dist/domain/ir/normalize.mjs +29 -0
  426. package/dist/domain/ir/normalize.mjs.map +1 -0
  427. package/dist/domain/ir/property-name.cjs +19 -0
  428. package/dist/domain/ir/property-name.cjs.map +1 -0
  429. package/dist/domain/ir/property-name.mjs +16 -0
  430. package/dist/domain/ir/property-name.mjs.map +1 -0
  431. package/dist/domain/ir/raw-text-escapes.cjs +25 -0
  432. package/dist/domain/ir/raw-text-escapes.cjs.map +1 -0
  433. package/dist/domain/ir/raw-text-escapes.mjs +22 -0
  434. package/dist/domain/ir/raw-text-escapes.mjs.map +1 -0
  435. package/dist/domain/openapi/alias-expansion.cjs +50 -0
  436. package/dist/domain/openapi/alias-expansion.cjs.map +1 -0
  437. package/dist/domain/openapi/alias-expansion.mjs +45 -0
  438. package/dist/domain/openapi/alias-expansion.mjs.map +1 -0
  439. package/dist/domain/openapi/binary-content.cjs +48 -0
  440. package/dist/domain/openapi/binary-content.cjs.map +1 -0
  441. package/dist/domain/openapi/binary-content.mjs +45 -0
  442. package/dist/domain/openapi/binary-content.mjs.map +1 -0
  443. package/dist/domain/openapi/components-object.cjs +29 -0
  444. package/dist/domain/openapi/components-object.cjs.map +1 -0
  445. package/dist/domain/openapi/components-object.mjs +24 -0
  446. package/dist/domain/openapi/components-object.mjs.map +1 -0
  447. package/dist/domain/openapi/json-pointer.cjs +31 -0
  448. package/dist/domain/openapi/json-pointer.cjs.map +1 -0
  449. package/dist/domain/openapi/json-pointer.mjs +27 -0
  450. package/dist/domain/openapi/json-pointer.mjs.map +1 -0
  451. package/dist/domain/openapi/media-type-object.cjs +14 -0
  452. package/dist/domain/openapi/media-type-object.cjs.map +1 -0
  453. package/dist/domain/openapi/media-type-object.mjs +11 -0
  454. package/dist/domain/openapi/media-type-object.mjs.map +1 -0
  455. package/dist/domain/openapi/parameter-object.cjs +13 -0
  456. package/dist/domain/openapi/parameter-object.cjs.map +1 -0
  457. package/dist/domain/openapi/parameter-object.mjs +10 -0
  458. package/dist/domain/openapi/parameter-object.mjs.map +1 -0
  459. package/dist/domain/openapi/path-item-object.cjs +35 -0
  460. package/dist/domain/openapi/path-item-object.cjs.map +1 -0
  461. package/dist/domain/openapi/path-item-object.mjs +30 -0
  462. package/dist/domain/openapi/path-item-object.mjs.map +1 -0
  463. package/dist/domain/openapi/unsupported-features.cjs +87 -0
  464. package/dist/domain/openapi/unsupported-features.cjs.map +1 -0
  465. package/dist/domain/openapi/unsupported-features.mjs +84 -0
  466. package/dist/domain/openapi/unsupported-features.mjs.map +1 -0
  467. package/dist/domain/output-fixes.cjs +66 -0
  468. package/dist/domain/output-fixes.cjs.map +1 -0
  469. package/dist/domain/output-fixes.mjs +59 -0
  470. package/dist/domain/output-fixes.mjs.map +1 -0
  471. package/dist/index.cjs +98 -0
  472. package/dist/index.cjs.map +1 -0
  473. package/dist/index.d.cts +812 -0
  474. package/dist/index.d.mts +812 -0
  475. package/dist/index.d.ts +812 -0
  476. package/dist/index.mjs +27 -0
  477. package/dist/index.mjs.map +1 -0
  478. package/dist/transform/components-object.cjs +14 -0
  479. package/dist/transform/components-object.cjs.map +1 -0
  480. package/dist/transform/components-object.mjs +10 -0
  481. package/dist/transform/components-object.mjs.map +1 -0
  482. package/dist/transform/header-object.cjs +12 -0
  483. package/dist/transform/header-object.cjs.map +1 -0
  484. package/dist/transform/header-object.mjs +10 -0
  485. package/dist/transform/header-object.mjs.map +1 -0
  486. package/dist/transform/media-type-object.cjs +12 -0
  487. package/dist/transform/media-type-object.cjs.map +1 -0
  488. package/dist/transform/media-type-object.mjs +10 -0
  489. package/dist/transform/media-type-object.mjs.map +1 -0
  490. package/dist/transform/operation-object.cjs +26 -0
  491. package/dist/transform/operation-object.cjs.map +1 -0
  492. package/dist/transform/operation-object.mjs +21 -0
  493. package/dist/transform/operation-object.mjs.map +1 -0
  494. package/dist/transform/parameter-object.cjs +12 -0
  495. package/dist/transform/parameter-object.cjs.map +1 -0
  496. package/dist/transform/parameter-object.mjs +10 -0
  497. package/dist/transform/parameter-object.mjs.map +1 -0
  498. package/dist/transform/path-item-object.cjs +12 -0
  499. package/dist/transform/path-item-object.cjs.map +1 -0
  500. package/dist/transform/path-item-object.mjs +10 -0
  501. package/dist/transform/path-item-object.mjs.map +1 -0
  502. package/dist/transform/paths-object.cjs +11 -0
  503. package/dist/transform/paths-object.cjs.map +1 -0
  504. package/dist/transform/paths-object.mjs +9 -0
  505. package/dist/transform/paths-object.mjs.map +1 -0
  506. package/dist/transform/request-body-object.cjs +12 -0
  507. package/dist/transform/request-body-object.cjs.map +1 -0
  508. package/dist/transform/request-body-object.mjs +10 -0
  509. package/dist/transform/request-body-object.mjs.map +1 -0
  510. package/dist/transform/response-object.cjs +12 -0
  511. package/dist/transform/response-object.cjs.map +1 -0
  512. package/dist/transform/response-object.mjs +10 -0
  513. package/dist/transform/response-object.mjs.map +1 -0
  514. package/dist/transform/responses-object.cjs +12 -0
  515. package/dist/transform/responses-object.cjs.map +1 -0
  516. package/dist/transform/responses-object.mjs +10 -0
  517. package/dist/transform/responses-object.mjs.map +1 -0
  518. package/dist/transform/schema-object.cjs +21 -0
  519. package/dist/transform/schema-object.cjs.map +1 -0
  520. package/dist/transform/schema-object.mjs +16 -0
  521. package/dist/transform/schema-object.mjs.map +1 -0
  522. package/package.json +115 -4
  523. package/src/adapters/node-file-system/node-file-system.ts +44 -0
  524. package/src/adapters/redocly-loader/alias-limit.ts +20 -0
  525. package/src/adapters/redocly-loader/allowed-hosts.ts +62 -0
  526. package/src/adapters/redocly-loader/bundled-ref-repair.ts +65 -0
  527. package/src/adapters/redocly-loader/malformed-refs.ts +61 -0
  528. package/src/adapters/redocly-loader/redocly-config-source.ts +43 -0
  529. package/src/adapters/redocly-loader/redocly-schema-loader.ts +246 -0
  530. package/src/adapters/redocly-loader/ref-access.ts +146 -0
  531. package/src/adapters/redocly-loader/ref-holders.ts +43 -0
  532. package/src/adapters/redocly-loader/remote-fetch.ts +104 -0
  533. package/src/adapters/redocly-loader/schema-load-errors.ts +124 -0
  534. package/src/adapters/redocly-loader/schema-source.ts +151 -0
  535. package/src/adapters/redocly-loader/unsupported-keys.ts +102 -0
  536. package/src/adapters/terminal-logger/terminal-logger.ts +98 -0
  537. package/src/adapters/type-ast-bridge/footer-nodes.ts +38 -0
  538. package/src/adapters/type-ast-bridge/ir-declarations-to-typescript.ts +100 -0
  539. package/src/adapters/type-ast-bridge/ir-to-typescript.ts +220 -0
  540. package/src/adapters/type-ast-bridge/lazy-node.ts +24 -0
  541. package/src/adapters/type-ast-bridge/load-typescript.ts +84 -0
  542. package/src/adapters/type-ast-bridge/print-typescript.ts +33 -0
  543. package/src/adapters/type-ast-bridge/typescript-raw-text.ts +49 -0
  544. package/src/adapters/type-ast-bridge/typescript-to-ir.ts +280 -0
  545. package/src/adapters/type-ast-bridge/typescript-types.ts +8 -0
  546. package/src/api/ast-to-string.ts +59 -0
  547. package/src/api/comment-header.ts +7 -0
  548. package/src/api/default-ports.ts +44 -0
  549. package/src/api/discriminator-enum.ts +76 -0
  550. package/src/api/discriminator-scan.ts +272 -0
  551. package/src/api/document-declarations.ts +41 -0
  552. package/src/api/document-refs.ts +71 -0
  553. package/src/api/document-run.ts +159 -0
  554. package/src/api/footer-entry.ts +23 -0
  555. package/src/api/footer-sink.ts +67 -0
  556. package/src/api/legacy-callback-warning.ts +29 -0
  557. package/src/api/legacy-ts-helpers.ts +311 -0
  558. package/src/api/legacy-utils.ts +118 -0
  559. package/src/api/openapi-ts.ts +62 -0
  560. package/src/api/schema-callbacks.ts +211 -0
  561. package/src/api/string-to-ast.ts +27 -0
  562. package/src/api/transform-context.ts +87 -0
  563. package/src/api/transform-schema.ts +39 -0
  564. package/src/api/type-helpers.ts +130 -0
  565. package/src/api/unsupported-feature-warnings.ts +26 -0
  566. package/src/application/ports/file-system.ts +12 -0
  567. package/src/application/ports/logger.ts +16 -0
  568. package/src/application/ports/redocly-config-source.ts +16 -0
  569. package/src/application/ports/schema-loader.ts +32 -0
  570. package/src/application/print/comment-writer.ts +91 -0
  571. package/src/application/print/declaration-printer.ts +100 -0
  572. package/src/application/print/literal-text.ts +62 -0
  573. package/src/application/print/print-nodes.ts +62 -0
  574. package/src/application/print/print-options.ts +11 -0
  575. package/src/application/print/text-writer.ts +83 -0
  576. package/src/application/print/type-printer.ts +281 -0
  577. package/src/application/stack-overflow.ts +54 -0
  578. package/src/application/transform/document/components.ts +189 -0
  579. package/src/application/transform/document/defs-root.ts +25 -0
  580. package/src/application/transform/document/document-member.ts +20 -0
  581. package/src/application/transform/document/document.ts +157 -0
  582. package/src/application/transform/document/header.ts +34 -0
  583. package/src/application/transform/document/kept-deprecated.ts +135 -0
  584. package/src/application/transform/document/media-type.ts +78 -0
  585. package/src/application/transform/document/operation.ts +64 -0
  586. package/src/application/transform/document/parameter.ts +45 -0
  587. package/src/application/transform/document/parameters.ts +200 -0
  588. package/src/application/transform/document/path-item-conflicts.ts +79 -0
  589. package/src/application/transform/document/path-item.ts +168 -0
  590. package/src/application/transform/document/path-key-overlaps.ts +112 -0
  591. package/src/application/transform/document/paths-enum.ts +127 -0
  592. package/src/application/transform/document/paths.ts +211 -0
  593. package/src/application/transform/document/request-body.ts +50 -0
  594. package/src/application/transform/document/response.ts +109 -0
  595. package/src/application/transform/document/responses.ts +29 -0
  596. package/src/application/transform/document/root-type-aliases.ts +106 -0
  597. package/src/application/transform/document/webhooks.ts +22 -0
  598. package/src/application/transform/document-entries.ts +28 -0
  599. package/src/application/transform/footer/document-footer.ts +127 -0
  600. package/src/application/transform/footer/enum-naming.ts +181 -0
  601. package/src/application/transform/helper-types.ts +92 -0
  602. package/src/application/transform/literal-type.ts +54 -0
  603. package/src/application/transform/numbered-names.ts +20 -0
  604. package/src/application/transform/ref-type.ts +97 -0
  605. package/src/application/transform/schema/array-type.ts +152 -0
  606. package/src/application/transform/schema/composition-type.ts +183 -0
  607. package/src/application/transform/schema/core-type.ts +115 -0
  608. package/src/application/transform/schema/discriminator-property.ts +28 -0
  609. package/src/application/transform/schema/enum-rule.ts +157 -0
  610. package/src/application/transform/schema/object-type.ts +271 -0
  611. package/src/application/transform/schema/presence-members.ts +96 -0
  612. package/src/application/transform/schema/schema-context.ts +110 -0
  613. package/src/application/transform/schema/schema-rule.ts +29 -0
  614. package/src/application/transform/schema/schema-transform.ts +99 -0
  615. package/src/application/transform/schema/unevaluated-properties.ts +105 -0
  616. package/src/application/transform/schema-comment.ts +116 -0
  617. package/src/application/transform/shared-types.ts +9 -0
  618. package/src/application/transform/transform-context.ts +51 -0
  619. package/src/application/transform/type-combinators.ts +57 -0
  620. package/src/cli/cli-arguments.ts +198 -0
  621. package/src/cli/cli-dependencies.ts +42 -0
  622. package/src/cli/cli-errors.ts +125 -0
  623. package/src/cli/cli-output.ts +53 -0
  624. package/src/cli/docs-links.ts +6 -0
  625. package/src/cli/fix-option.ts +29 -0
  626. package/src/cli/help-text.ts +52 -0
  627. package/src/cli/main.ts +67 -0
  628. package/src/cli/redocly-apis.ts +91 -0
  629. package/src/cli/ref-limits.ts +16 -0
  630. package/src/cli/run-cli.ts +114 -0
  631. package/src/domain/assert-never.ts +8 -0
  632. package/src/domain/errors.ts +74 -0
  633. package/src/domain/ir/constructors.ts +137 -0
  634. package/src/domain/ir/identifier-text.ts +49 -0
  635. package/src/domain/ir/newer-identifier-ranges.ts +109 -0
  636. package/src/domain/ir/nodes.ts +224 -0
  637. package/src/domain/ir/normalize.ts +51 -0
  638. package/src/domain/ir/property-name.ts +28 -0
  639. package/src/domain/ir/raw-text-escapes.ts +37 -0
  640. package/src/domain/openapi/alias-expansion.ts +72 -0
  641. package/src/domain/openapi/binary-content.ts +74 -0
  642. package/src/domain/openapi/components-object.ts +52 -0
  643. package/src/domain/openapi/document-object.ts +12 -0
  644. package/src/domain/openapi/header-object.ts +9 -0
  645. package/src/domain/openapi/json-pointer.ts +46 -0
  646. package/src/domain/openapi/media-type-object.ts +26 -0
  647. package/src/domain/openapi/operation-object.ts +13 -0
  648. package/src/domain/openapi/parameter-object.ts +30 -0
  649. package/src/domain/openapi/path-item-object.ts +70 -0
  650. package/src/domain/openapi/request-body-object.ts +7 -0
  651. package/src/domain/openapi/response-object.ts +14 -0
  652. package/src/domain/openapi/schema-object.ts +59 -0
  653. package/src/domain/openapi/unsupported-features.ts +139 -0
  654. package/src/domain/output-fixes.ts +95 -0
  655. package/src/index.ts +67 -0
  656. package/src/transform/components-object.ts +25 -0
  657. package/src/transform/header-object.ts +19 -0
  658. package/src/transform/media-type-object.ts +19 -0
  659. package/src/transform/operation-object.ts +36 -0
  660. package/src/transform/parameter-object.ts +19 -0
  661. package/src/transform/parameters-array.ts +19 -0
  662. package/src/transform/path-item-object.ts +22 -0
  663. package/src/transform/paths-enum.ts +8 -0
  664. package/src/transform/paths-object.ts +15 -0
  665. package/src/transform/request-body-object.ts +19 -0
  666. package/src/transform/response-object.ts +19 -0
  667. package/src/transform/responses-object.ts +19 -0
  668. package/src/transform/schema-object.ts +36 -0
  669. package/src/transform/webhooks-object.ts +15 -0
  670. package/src/types/generator-options.ts +267 -0
  671. package/src/types/openapi-common.ts +100 -0
  672. package/src/types/openapi-document.ts +196 -0
  673. package/src/types/openapi-path-item.ts +130 -0
  674. package/src/types/openapi-request.ts +209 -0
  675. package/src/types/openapi-response.ts +81 -0
  676. package/src/types/openapi-schema.ts +169 -0
  677. package/src/types/openapi-security.ts +116 -0
  678. package/src/types.ts +12 -0
@@ -0,0 +1,71 @@
1
+ function irKeyword(keyword) {
2
+ return { kind: "keyword", keyword };
3
+ }
4
+ function irString(value, encoding) {
5
+ return { kind: "stringLiteral", value, encoding };
6
+ }
7
+ function irNumber(value) {
8
+ if (!Number.isFinite(value)) {
9
+ throw new RangeError(`A number literal type needs a finite number, got ${value}`);
10
+ }
11
+ return { kind: "numberLiteral", value };
12
+ }
13
+ function irBoolean(value) {
14
+ return { kind: "booleanLiteral", value };
15
+ }
16
+ function irReference(name, typeArguments = []) {
17
+ return { kind: "reference", name, typeArguments };
18
+ }
19
+ function irArray(element) {
20
+ return { kind: "array", element };
21
+ }
22
+ function irTuple(elements) {
23
+ return { kind: "tuple", elements };
24
+ }
25
+ function irTupleElement(type, isRest = false) {
26
+ return { type, isRest };
27
+ }
28
+ function irUnion(types) {
29
+ return { kind: "union", types };
30
+ }
31
+ function irIntersection(types) {
32
+ return { kind: "intersection", types };
33
+ }
34
+ function irObject(members) {
35
+ return { kind: "object", members };
36
+ }
37
+ function irIndexedAccess(object, index) {
38
+ return { kind: "indexedAccess", object, index };
39
+ }
40
+ function irReadonly(type) {
41
+ return { kind: "readonly", type };
42
+ }
43
+ function irRaw(text, origin) {
44
+ return origin === void 0 ? { kind: "raw", text } : { kind: "raw", text, origin };
45
+ }
46
+ function irProperty(name, type, options = {}) {
47
+ return {
48
+ kind: "property",
49
+ name,
50
+ type,
51
+ isOptional: options.isOptional ?? false,
52
+ isReadonly: options.isReadonly ?? false,
53
+ comments: options.comments ?? []
54
+ };
55
+ }
56
+ function irStringIndexSignature(parameterName, type, isReadonly = false) {
57
+ return {
58
+ kind: "indexSignature",
59
+ parameterName,
60
+ parameterType: irKeyword("string"),
61
+ type,
62
+ isReadonly,
63
+ comments: []
64
+ };
65
+ }
66
+ function irRecord(key, value) {
67
+ return irReference("Record", [key, value]);
68
+ }
69
+
70
+ export { irArray, irBoolean, irIndexedAccess, irIntersection, irKeyword, irNumber, irObject, irProperty, irRaw, irReadonly, irRecord, irReference, irString, irStringIndexSignature, irTuple, irTupleElement, irUnion };
71
+ //# sourceMappingURL=constructors.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constructors.mjs","sources":["../../../src/domain/ir/constructors.ts"],"sourcesContent":["import type {\n IrArrayType,\n IrBooleanLiteralType,\n IrComment,\n IrIndexedAccessType,\n IrIndexSignature,\n IrIntersectionType,\n IrKeyword,\n IrKeywordType,\n IrMember,\n IrNumberLiteralType,\n IrObjectType,\n IrPropertyName,\n IrPropertySignature,\n IrRawType,\n IrReadonlyType,\n IrReferenceType,\n IrStringEncoding,\n IrStringLiteralType,\n IrTupleElement,\n IrTupleType,\n IrType,\n IrUnionType,\n} from \"./nodes.js\";\n\n/**\n * Constructors of IR nodes. They build exactly the node asked for: no flattening, de-duplication or\n * sorting happens here (ENGINEERING_PLAN §4.2). Callers that need those call the functions in\n * `normalize.ts` explicitly, at the same places the original generator does.\n */\n\nexport function irKeyword(keyword: IrKeyword): IrKeywordType {\n return { kind: \"keyword\", keyword };\n}\n\nexport function irString(value: string, encoding: IrStringEncoding): IrStringLiteralType {\n return { kind: \"stringLiteral\", value, encoding };\n}\n\n/** Throws on NaN and infinities: they have no literal type. */\nexport function irNumber(value: number): IrNumberLiteralType {\n if (!Number.isFinite(value)) {\n throw new RangeError(`A number literal type needs a finite number, got ${value}`);\n }\n return { kind: \"numberLiteral\", value };\n}\n\nexport function irBoolean(value: boolean): IrBooleanLiteralType {\n return { kind: \"booleanLiteral\", value };\n}\n\nexport function irReference(name: string, typeArguments: readonly IrType[] = []): IrReferenceType {\n return { kind: \"reference\", name, typeArguments };\n}\n\nexport function irArray(element: IrType): IrArrayType {\n return { kind: \"array\", element };\n}\n\nexport function irTuple(elements: readonly IrTupleElement[]): IrTupleType {\n return { kind: \"tuple\", elements };\n}\n\nexport function irTupleElement(type: IrType, isRest = false): IrTupleElement {\n return { type, isRest };\n}\n\nexport function irUnion(types: readonly IrType[]): IrUnionType {\n return { kind: \"union\", types };\n}\n\nexport function irIntersection(types: readonly IrType[]): IrIntersectionType {\n return { kind: \"intersection\", types };\n}\n\nexport function irObject(members: readonly IrMember[]): IrObjectType {\n return { kind: \"object\", members };\n}\n\nexport function irIndexedAccess(object: IrType, index: IrType): IrIndexedAccessType {\n return { kind: \"indexedAccess\", object, index };\n}\n\nexport function irReadonly(type: IrType): IrReadonlyType {\n return { kind: \"readonly\", type };\n}\n\n/**\n * Type text printed as is. The original builds some types from text (template literal path keys,\n * root type aliases); keeping them as text keeps their exact spelling.\n */\nexport function irRaw(text: string, origin?: unknown): IrRawType {\n return origin === undefined ? { kind: \"raw\", text } : { kind: \"raw\", text, origin };\n}\n\n/** Options of a property signature; omitted flags are false and there are no comments. */\nexport interface IrPropertyOptions {\n readonly isOptional?: boolean;\n readonly isReadonly?: boolean;\n readonly comments?: readonly IrComment[];\n}\n\nexport function irProperty(\n name: IrPropertyName,\n type: IrType,\n options: IrPropertyOptions = {},\n): IrPropertySignature {\n return {\n kind: \"property\",\n name,\n type,\n isOptional: options.isOptional ?? false,\n isReadonly: options.isReadonly ?? false,\n comments: options.comments ?? [],\n };\n}\n\n/** `[name: string]: type` (a `string` key, the only kind the generator writes). */\nexport function irStringIndexSignature(\n parameterName: string,\n type: IrType,\n isReadonly = false,\n): IrIndexSignature {\n return {\n kind: \"indexSignature\",\n parameterName,\n parameterType: irKeyword(\"string\"),\n type,\n isReadonly,\n comments: [],\n };\n}\n\n/** `Record<key, value>`. */\nexport function irRecord(key: IrType, value: IrType): IrReferenceType {\n return irReference(\"Record\", [key, value]);\n}\n"],"names":[],"mappings":"AA+BO,SAAS,UAAU,OAAA,EAAmC;AAC3D,EAAA,OAAO,EAAE,IAAA,EAAM,SAAA,EAAW,OAAA,EAAQ;AACpC;AAEO,SAAS,QAAA,CAAS,OAAe,QAAA,EAAiD;AACvF,EAAA,OAAO,EAAE,IAAA,EAAM,eAAA,EAAiB,KAAA,EAAO,QAAA,EAAS;AAClD;AAGO,SAAS,SAAS,KAAA,EAAoC;AAC3D,EAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,EAAG;AAC3B,IAAA,MAAM,IAAI,UAAA,CAAW,CAAA,iDAAA,EAAoD,KAAK,CAAA,CAAE,CAAA;AAAA,EAClF;AACA,EAAA,OAAO,EAAE,IAAA,EAAM,eAAA,EAAiB,KAAA,EAAM;AACxC;AAEO,SAAS,UAAU,KAAA,EAAsC;AAC9D,EAAA,OAAO,EAAE,IAAA,EAAM,gBAAA,EAAkB,KAAA,EAAM;AACzC;AAEO,SAAS,WAAA,CAAY,IAAA,EAAc,aAAA,GAAmC,EAAC,EAAoB;AAChG,EAAA,OAAO,EAAE,IAAA,EAAM,WAAA,EAAa,IAAA,EAAM,aAAA,EAAc;AAClD;AAEO,SAAS,QAAQ,OAAA,EAA8B;AACpD,EAAA,OAAO,EAAE,IAAA,EAAM,OAAA,EAAS,OAAA,EAAQ;AAClC;AAEO,SAAS,QAAQ,QAAA,EAAkD;AACxE,EAAA,OAAO,EAAE,IAAA,EAAM,OAAA,EAAS,QAAA,EAAS;AACnC;AAEO,SAAS,cAAA,CAAe,IAAA,EAAc,MAAA,GAAS,KAAA,EAAuB;AAC3E,EAAA,OAAO,EAAE,MAAM,MAAA,EAAO;AACxB;AAEO,SAAS,QAAQ,KAAA,EAAuC;AAC7D,EAAA,OAAO,EAAE,IAAA,EAAM,OAAA,EAAS,KAAA,EAAM;AAChC;AAEO,SAAS,eAAe,KAAA,EAA8C;AAC3E,EAAA,OAAO,EAAE,IAAA,EAAM,cAAA,EAAgB,KAAA,EAAM;AACvC;AAEO,SAAS,SAAS,OAAA,EAA4C;AACnE,EAAA,OAAO,EAAE,IAAA,EAAM,QAAA,EAAU,OAAA,EAAQ;AACnC;AAEO,SAAS,eAAA,CAAgB,QAAgB,KAAA,EAAoC;AAClF,EAAA,OAAO,EAAE,IAAA,EAAM,eAAA,EAAiB,MAAA,EAAQ,KAAA,EAAM;AAChD;AAEO,SAAS,WAAW,IAAA,EAA8B;AACvD,EAAA,OAAO,EAAE,IAAA,EAAM,UAAA,EAAY,IAAA,EAAK;AAClC;AAMO,SAAS,KAAA,CAAM,MAAc,MAAA,EAA6B;AAC/D,EAAA,OAAO,MAAA,KAAW,MAAA,GAAY,EAAE,IAAA,EAAM,KAAA,EAAO,IAAA,EAAK,GAAI,EAAE,IAAA,EAAM,KAAA,EAAO,IAAA,EAAM,MAAA,EAAO;AACpF;AASO,SAAS,UAAA,CACd,IAAA,EACA,IAAA,EACA,OAAA,GAA6B,EAAC,EACT;AACrB,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,UAAA;AAAA,IACN,IAAA;AAAA,IACA,IAAA;AAAA,IACA,UAAA,EAAY,QAAQ,UAAA,IAAc,KAAA;AAAA,IAClC,UAAA,EAAY,QAAQ,UAAA,IAAc,KAAA;AAAA,IAClC,QAAA,EAAU,OAAA,CAAQ,QAAA,IAAY;AAAC,GACjC;AACF;AAGO,SAAS,sBAAA,CACd,aAAA,EACA,IAAA,EACA,UAAA,GAAa,KAAA,EACK;AAClB,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,gBAAA;AAAA,IACN,aAAA;AAAA,IACA,aAAA,EAAe,UAAU,QAAQ,CAAA;AAAA,IACjC,IAAA;AAAA,IACA,UAAA;AAAA,IACA,UAAU;AAAC,GACb;AACF;AAGO,SAAS,QAAA,CAAS,KAAa,KAAA,EAAgC;AACpE,EAAA,OAAO,WAAA,CAAY,QAAA,EAAU,CAAC,GAAA,EAAK,KAAK,CAAC,CAAA;AAC3C;;"}
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ const newerIdentifierRanges = require('./newer-identifier-ranges.cjs');
4
+
5
+ const IDENTIFIER_START_RE = new RegExp(
6
+ `^[[\\p{ID_Start}$_]--[${newerIdentifierRanges.NEWER_IDENTIFIER_START.join("")}]]`,
7
+ "v"
8
+ );
9
+ const INVALID_IDENTIFIER_PART_RE = new RegExp(
10
+ `[^[\\p{ID_Continue}$\\u{200C}\\u{200D}]--[${newerIdentifierRanges.NEWER_IDENTIFIER_PART.join("")}]]`,
11
+ "gv"
12
+ );
13
+ function hasIdentifierStart(text) {
14
+ return IDENTIFIER_START_RE.test(text);
15
+ }
16
+ function withIdentifierParts(text) {
17
+ return text.replace(INVALID_IDENTIFIER_PART_RE, "_");
18
+ }
19
+ const RESERVED_TYPE_NAMES = new Set(
20
+ "any as await bigint boolean break case catch class const continue debugger default delete do else enum export extends false finally for function if implements import in instanceof interface let never new null number object package private protected public return static string super switch symbol this throw true try typeof undefined unknown var void while with yield".split(" ")
21
+ );
22
+ function isReservedTypeName(text) {
23
+ return RESERVED_TYPE_NAMES.has(text);
24
+ }
25
+
26
+ exports.hasIdentifierStart = hasIdentifierStart;
27
+ exports.isReservedTypeName = isReservedTypeName;
28
+ exports.withIdentifierParts = withIdentifierParts;
29
+ //# sourceMappingURL=identifier-text.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identifier-text.cjs","sources":["../../../src/domain/ir/identifier-text.ts"],"sourcesContent":["import { NEWER_IDENTIFIER_PART, NEWER_IDENTIFIER_START } from \"./newer-identifier-ranges.js\";\n\n/**\n * Identifier rules of ECMAScript (Unicode `ID_Start` / `ID_Continue`, plus `$`, `_`, ZWNJ and\n * ZWJ), for names built from document text, without the characters that TypeScript's scanner\n * does not know yet. Node.js follows a newer Unicode version than TypeScript's identifier tables,\n * so a name such as `꟒Name` (Unicode 17) passed here and failed to parse with \"Invalid\n * character\" (ADR-019). Removing the newer characters also gives the same names on every\n * supported Node.js version.\n */\n\nconst IDENTIFIER_START_RE = new RegExp(\n `^[[\\\\p{ID_Start}$_]--[${NEWER_IDENTIFIER_START.join(\"\")}]]`,\n \"v\",\n);\nconst INVALID_IDENTIFIER_PART_RE = new RegExp(\n `[^[\\\\p{ID_Continue}$\\\\u{200C}\\\\u{200D}]--[${NEWER_IDENTIFIER_PART.join(\"\")}]]`,\n \"gv\",\n);\n\n/** Whether the text starts with a character that may start an identifier. */\nexport function hasIdentifierStart(text: string): boolean {\n return IDENTIFIER_START_RE.test(text);\n}\n\n/** The text with each character that cannot be part of an identifier replaced by `_`. */\nexport function withIdentifierParts(text: string): string {\n return text.replace(INVALID_IDENTIFIER_PART_RE, \"_\");\n}\n\n/**\n * The names TypeScript does not accept as a type alias name: reserved words, strict mode and\n * module reserved words, and predefined type names (`void`, `string`, …). Checked with the\n * TypeScript 6.0 compiler on `export type <name> = 1;` in a module.\n */\nconst RESERVED_TYPE_NAMES: ReadonlySet<string> = new Set(\n (\n \"any as await bigint boolean break case catch class const continue debugger default delete \" +\n \"do else enum export extends false finally for function if implements import in instanceof \" +\n \"interface let never new null number object package private protected public return static \" +\n \"string super switch symbol this throw true try typeof undefined unknown var void while with \" +\n \"yield\"\n ).split(\" \"),\n);\n\n/** Whether TypeScript rejects the text as the name of a type alias. */\nexport function isReservedTypeName(text: string): boolean {\n return RESERVED_TYPE_NAMES.has(text);\n}\n"],"names":["NEWER_IDENTIFIER_START","NEWER_IDENTIFIER_PART"],"mappings":";;;;AAWA,MAAM,sBAAsB,IAAI,MAAA;AAAA,EAC9B,CAAA,sBAAA,EAAyBA,4CAAA,CAAuB,IAAA,CAAK,EAAE,CAAC,CAAA,EAAA,CAAA;AAAA,EACxD;AACF,CAAA;AACA,MAAM,6BAA6B,IAAI,MAAA;AAAA,EACrC,CAAA,0CAAA,EAA6CC,2CAAA,CAAsB,IAAA,CAAK,EAAE,CAAC,CAAA,EAAA,CAAA;AAAA,EAC3E;AACF,CAAA;AAGO,SAAS,mBAAmB,IAAA,EAAuB;AACxD,EAAA,OAAO,mBAAA,CAAoB,KAAK,IAAI,CAAA;AACtC;AAGO,SAAS,oBAAoB,IAAA,EAAsB;AACxD,EAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,0BAAA,EAA4B,GAAG,CAAA;AACrD;AAOA,MAAM,sBAA2C,IAAI,GAAA;AAAA,EAEjD,iXAAA,CAKA,MAAM,GAAG;AACb,CAAA;AAGO,SAAS,mBAAmB,IAAA,EAAuB;AACxD,EAAA,OAAO,mBAAA,CAAoB,IAAI,IAAI,CAAA;AACrC;;;;"}
@@ -0,0 +1,25 @@
1
+ import { NEWER_IDENTIFIER_PART, NEWER_IDENTIFIER_START } from './newer-identifier-ranges.mjs';
2
+
3
+ const IDENTIFIER_START_RE = new RegExp(
4
+ `^[[\\p{ID_Start}$_]--[${NEWER_IDENTIFIER_START.join("")}]]`,
5
+ "v"
6
+ );
7
+ const INVALID_IDENTIFIER_PART_RE = new RegExp(
8
+ `[^[\\p{ID_Continue}$\\u{200C}\\u{200D}]--[${NEWER_IDENTIFIER_PART.join("")}]]`,
9
+ "gv"
10
+ );
11
+ function hasIdentifierStart(text) {
12
+ return IDENTIFIER_START_RE.test(text);
13
+ }
14
+ function withIdentifierParts(text) {
15
+ return text.replace(INVALID_IDENTIFIER_PART_RE, "_");
16
+ }
17
+ const RESERVED_TYPE_NAMES = new Set(
18
+ "any as await bigint boolean break case catch class const continue debugger default delete do else enum export extends false finally for function if implements import in instanceof interface let never new null number object package private protected public return static string super switch symbol this throw true try typeof undefined unknown var void while with yield".split(" ")
19
+ );
20
+ function isReservedTypeName(text) {
21
+ return RESERVED_TYPE_NAMES.has(text);
22
+ }
23
+
24
+ export { hasIdentifierStart, isReservedTypeName, withIdentifierParts };
25
+ //# sourceMappingURL=identifier-text.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identifier-text.mjs","sources":["../../../src/domain/ir/identifier-text.ts"],"sourcesContent":["import { NEWER_IDENTIFIER_PART, NEWER_IDENTIFIER_START } from \"./newer-identifier-ranges.js\";\n\n/**\n * Identifier rules of ECMAScript (Unicode `ID_Start` / `ID_Continue`, plus `$`, `_`, ZWNJ and\n * ZWJ), for names built from document text, without the characters that TypeScript's scanner\n * does not know yet. Node.js follows a newer Unicode version than TypeScript's identifier tables,\n * so a name such as `꟒Name` (Unicode 17) passed here and failed to parse with \"Invalid\n * character\" (ADR-019). Removing the newer characters also gives the same names on every\n * supported Node.js version.\n */\n\nconst IDENTIFIER_START_RE = new RegExp(\n `^[[\\\\p{ID_Start}$_]--[${NEWER_IDENTIFIER_START.join(\"\")}]]`,\n \"v\",\n);\nconst INVALID_IDENTIFIER_PART_RE = new RegExp(\n `[^[\\\\p{ID_Continue}$\\\\u{200C}\\\\u{200D}]--[${NEWER_IDENTIFIER_PART.join(\"\")}]]`,\n \"gv\",\n);\n\n/** Whether the text starts with a character that may start an identifier. */\nexport function hasIdentifierStart(text: string): boolean {\n return IDENTIFIER_START_RE.test(text);\n}\n\n/** The text with each character that cannot be part of an identifier replaced by `_`. */\nexport function withIdentifierParts(text: string): string {\n return text.replace(INVALID_IDENTIFIER_PART_RE, \"_\");\n}\n\n/**\n * The names TypeScript does not accept as a type alias name: reserved words, strict mode and\n * module reserved words, and predefined type names (`void`, `string`, …). Checked with the\n * TypeScript 6.0 compiler on `export type <name> = 1;` in a module.\n */\nconst RESERVED_TYPE_NAMES: ReadonlySet<string> = new Set(\n (\n \"any as await bigint boolean break case catch class const continue debugger default delete \" +\n \"do else enum export extends false finally for function if implements import in instanceof \" +\n \"interface let never new null number object package private protected public return static \" +\n \"string super switch symbol this throw true try typeof undefined unknown var void while with \" +\n \"yield\"\n ).split(\" \"),\n);\n\n/** Whether TypeScript rejects the text as the name of a type alias. */\nexport function isReservedTypeName(text: string): boolean {\n return RESERVED_TYPE_NAMES.has(text);\n}\n"],"names":[],"mappings":";;AAWA,MAAM,sBAAsB,IAAI,MAAA;AAAA,EAC9B,CAAA,sBAAA,EAAyB,sBAAA,CAAuB,IAAA,CAAK,EAAE,CAAC,CAAA,EAAA,CAAA;AAAA,EACxD;AACF,CAAA;AACA,MAAM,6BAA6B,IAAI,MAAA;AAAA,EACrC,CAAA,0CAAA,EAA6C,qBAAA,CAAsB,IAAA,CAAK,EAAE,CAAC,CAAA,EAAA,CAAA;AAAA,EAC3E;AACF,CAAA;AAGO,SAAS,mBAAmB,IAAA,EAAuB;AACxD,EAAA,OAAO,mBAAA,CAAoB,KAAK,IAAI,CAAA;AACtC;AAGO,SAAS,oBAAoB,IAAA,EAAsB;AACxD,EAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,0BAAA,EAA4B,GAAG,CAAA;AACrD;AAOA,MAAM,sBAA2C,IAAI,GAAA;AAAA,EAEjD,iXAAA,CAKA,MAAM,GAAG;AACb,CAAA;AAGO,SAAS,mBAAmB,IAAA,EAAuB;AACxD,EAAA,OAAO,mBAAA,CAAoB,IAAI,IAAI,CAAA;AACrC;;"}
@@ -0,0 +1,109 @@
1
+ 'use strict';
2
+
3
+ const NEWER_IDENTIFIER_START = [
4
+ "\\u{88F}",
5
+ "\\u{C5C}",
6
+ "\\u{CDC}",
7
+ "\\u{1C89}-\\u{1C8A}",
8
+ "\\u{A7CB}-\\u{A7CF}",
9
+ "\\u{A7D2}",
10
+ "\\u{A7D4}",
11
+ "\\u{A7DA}-\\u{A7DC}",
12
+ "\\u{A7F1}",
13
+ "\\u{105C0}-\\u{105F3}",
14
+ "\\u{10940}-\\u{10959}",
15
+ "\\u{10D4A}-\\u{10D65}",
16
+ "\\u{10D6F}-\\u{10D85}",
17
+ "\\u{10EC2}-\\u{10EC7}",
18
+ "\\u{11380}-\\u{11389}",
19
+ "\\u{1138B}",
20
+ "\\u{1138E}",
21
+ "\\u{11390}-\\u{113B5}",
22
+ "\\u{113B7}",
23
+ "\\u{113D1}",
24
+ "\\u{113D3}",
25
+ "\\u{11BC0}-\\u{11BE0}",
26
+ "\\u{11DB0}-\\u{11DDB}",
27
+ "\\u{13460}-\\u{143FA}",
28
+ "\\u{16100}-\\u{1611D}",
29
+ "\\u{16D40}-\\u{16D6C}",
30
+ "\\u{16EA0}-\\u{16EB8}",
31
+ "\\u{16EBB}-\\u{16ED3}",
32
+ "\\u{16FF2}-\\u{16FF6}",
33
+ "\\u{187F8}-\\u{187FF}",
34
+ "\\u{18CFF}",
35
+ "\\u{18D09}-\\u{18D1E}",
36
+ "\\u{18D80}-\\u{18DF2}",
37
+ "\\u{1E5D0}-\\u{1E5ED}",
38
+ "\\u{1E5F0}",
39
+ "\\u{1E6C0}-\\u{1E6DE}",
40
+ "\\u{1E6E0}-\\u{1E6E2}",
41
+ "\\u{1E6E4}-\\u{1E6E5}",
42
+ "\\u{1E6E7}-\\u{1E6ED}",
43
+ "\\u{1E6F0}-\\u{1E6F4}",
44
+ "\\u{1E6FE}-\\u{1E6FF}",
45
+ "\\u{2B73A}-\\u{2B73F}",
46
+ "\\u{2CEA2}-\\u{2CEAD}",
47
+ "\\u{323B0}-\\u{33479}"
48
+ ];
49
+ const NEWER_IDENTIFIER_PART = [
50
+ "\\u{88F}",
51
+ "\\u{897}",
52
+ "\\u{C5C}",
53
+ "\\u{CDC}",
54
+ "\\u{1ACF}-\\u{1ADD}",
55
+ "\\u{1AE0}-\\u{1AEB}",
56
+ "\\u{1C89}-\\u{1C8A}",
57
+ "\\u{A7CB}-\\u{A7CF}",
58
+ "\\u{A7D2}",
59
+ "\\u{A7D4}",
60
+ "\\u{A7DA}-\\u{A7DC}",
61
+ "\\u{A7F1}",
62
+ "\\u{105C0}-\\u{105F3}",
63
+ "\\u{10940}-\\u{10959}",
64
+ "\\u{10D40}-\\u{10D65}",
65
+ "\\u{10D69}-\\u{10D6D}",
66
+ "\\u{10D6F}-\\u{10D85}",
67
+ "\\u{10EC2}-\\u{10EC7}",
68
+ "\\u{10EFA}-\\u{10EFC}",
69
+ "\\u{11380}-\\u{11389}",
70
+ "\\u{1138B}",
71
+ "\\u{1138E}",
72
+ "\\u{11390}-\\u{113B5}",
73
+ "\\u{113B7}-\\u{113C0}",
74
+ "\\u{113C2}",
75
+ "\\u{113C5}",
76
+ "\\u{113C7}-\\u{113CA}",
77
+ "\\u{113CC}-\\u{113D3}",
78
+ "\\u{113E1}-\\u{113E2}",
79
+ "\\u{116D0}-\\u{116E3}",
80
+ "\\u{11B60}-\\u{11B67}",
81
+ "\\u{11BC0}-\\u{11BE0}",
82
+ "\\u{11BF0}-\\u{11BF9}",
83
+ "\\u{11DB0}-\\u{11DDB}",
84
+ "\\u{11DE0}-\\u{11DE9}",
85
+ "\\u{11F5A}",
86
+ "\\u{13460}-\\u{143FA}",
87
+ "\\u{16100}-\\u{16139}",
88
+ "\\u{16D40}-\\u{16D6C}",
89
+ "\\u{16D70}-\\u{16D79}",
90
+ "\\u{16EA0}-\\u{16EB8}",
91
+ "\\u{16EBB}-\\u{16ED3}",
92
+ "\\u{16FF2}-\\u{16FF6}",
93
+ "\\u{187F8}-\\u{187FF}",
94
+ "\\u{18CFF}",
95
+ "\\u{18D09}-\\u{18D1E}",
96
+ "\\u{18D80}-\\u{18DF2}",
97
+ "\\u{1CCF0}-\\u{1CCF9}",
98
+ "\\u{1E5D0}-\\u{1E5FA}",
99
+ "\\u{1E6C0}-\\u{1E6DE}",
100
+ "\\u{1E6E0}-\\u{1E6F5}",
101
+ "\\u{1E6FE}-\\u{1E6FF}",
102
+ "\\u{2B73A}-\\u{2B73F}",
103
+ "\\u{2CEA2}-\\u{2CEAD}",
104
+ "\\u{323B0}-\\u{33479}"
105
+ ];
106
+
107
+ exports.NEWER_IDENTIFIER_PART = NEWER_IDENTIFIER_PART;
108
+ exports.NEWER_IDENTIFIER_START = NEWER_IDENTIFIER_START;
109
+ //# sourceMappingURL=newer-identifier-ranges.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"newer-identifier-ranges.cjs","sources":["../../../src/domain/ir/newer-identifier-ranges.ts"],"sourcesContent":["// Generated by scripts/identifier-ranges.ts (Node.js 26.0.0, Unicode\n// 17.0, TypeScript 5.9.3). Do not edit.\n\n/** `ID_Start` code points that TypeScript's scanner does not accept, as regex class items. */\nexport const NEWER_IDENTIFIER_START: readonly string[] = [\n \"\\\\u{88F}\",\n \"\\\\u{C5C}\",\n \"\\\\u{CDC}\",\n \"\\\\u{1C89}-\\\\u{1C8A}\",\n \"\\\\u{A7CB}-\\\\u{A7CF}\",\n \"\\\\u{A7D2}\",\n \"\\\\u{A7D4}\",\n \"\\\\u{A7DA}-\\\\u{A7DC}\",\n \"\\\\u{A7F1}\",\n \"\\\\u{105C0}-\\\\u{105F3}\",\n \"\\\\u{10940}-\\\\u{10959}\",\n \"\\\\u{10D4A}-\\\\u{10D65}\",\n \"\\\\u{10D6F}-\\\\u{10D85}\",\n \"\\\\u{10EC2}-\\\\u{10EC7}\",\n \"\\\\u{11380}-\\\\u{11389}\",\n \"\\\\u{1138B}\",\n \"\\\\u{1138E}\",\n \"\\\\u{11390}-\\\\u{113B5}\",\n \"\\\\u{113B7}\",\n \"\\\\u{113D1}\",\n \"\\\\u{113D3}\",\n \"\\\\u{11BC0}-\\\\u{11BE0}\",\n \"\\\\u{11DB0}-\\\\u{11DDB}\",\n \"\\\\u{13460}-\\\\u{143FA}\",\n \"\\\\u{16100}-\\\\u{1611D}\",\n \"\\\\u{16D40}-\\\\u{16D6C}\",\n \"\\\\u{16EA0}-\\\\u{16EB8}\",\n \"\\\\u{16EBB}-\\\\u{16ED3}\",\n \"\\\\u{16FF2}-\\\\u{16FF6}\",\n \"\\\\u{187F8}-\\\\u{187FF}\",\n \"\\\\u{18CFF}\",\n \"\\\\u{18D09}-\\\\u{18D1E}\",\n \"\\\\u{18D80}-\\\\u{18DF2}\",\n \"\\\\u{1E5D0}-\\\\u{1E5ED}\",\n \"\\\\u{1E5F0}\",\n \"\\\\u{1E6C0}-\\\\u{1E6DE}\",\n \"\\\\u{1E6E0}-\\\\u{1E6E2}\",\n \"\\\\u{1E6E4}-\\\\u{1E6E5}\",\n \"\\\\u{1E6E7}-\\\\u{1E6ED}\",\n \"\\\\u{1E6F0}-\\\\u{1E6F4}\",\n \"\\\\u{1E6FE}-\\\\u{1E6FF}\",\n \"\\\\u{2B73A}-\\\\u{2B73F}\",\n \"\\\\u{2CEA2}-\\\\u{2CEAD}\",\n \"\\\\u{323B0}-\\\\u{33479}\",\n];\n\n/** `ID_Continue` code points that TypeScript's scanner does not accept, as regex class items. */\nexport const NEWER_IDENTIFIER_PART: readonly string[] = [\n \"\\\\u{88F}\",\n \"\\\\u{897}\",\n \"\\\\u{C5C}\",\n \"\\\\u{CDC}\",\n \"\\\\u{1ACF}-\\\\u{1ADD}\",\n \"\\\\u{1AE0}-\\\\u{1AEB}\",\n \"\\\\u{1C89}-\\\\u{1C8A}\",\n \"\\\\u{A7CB}-\\\\u{A7CF}\",\n \"\\\\u{A7D2}\",\n \"\\\\u{A7D4}\",\n \"\\\\u{A7DA}-\\\\u{A7DC}\",\n \"\\\\u{A7F1}\",\n \"\\\\u{105C0}-\\\\u{105F3}\",\n \"\\\\u{10940}-\\\\u{10959}\",\n \"\\\\u{10D40}-\\\\u{10D65}\",\n \"\\\\u{10D69}-\\\\u{10D6D}\",\n \"\\\\u{10D6F}-\\\\u{10D85}\",\n \"\\\\u{10EC2}-\\\\u{10EC7}\",\n \"\\\\u{10EFA}-\\\\u{10EFC}\",\n \"\\\\u{11380}-\\\\u{11389}\",\n \"\\\\u{1138B}\",\n \"\\\\u{1138E}\",\n \"\\\\u{11390}-\\\\u{113B5}\",\n \"\\\\u{113B7}-\\\\u{113C0}\",\n \"\\\\u{113C2}\",\n \"\\\\u{113C5}\",\n \"\\\\u{113C7}-\\\\u{113CA}\",\n \"\\\\u{113CC}-\\\\u{113D3}\",\n \"\\\\u{113E1}-\\\\u{113E2}\",\n \"\\\\u{116D0}-\\\\u{116E3}\",\n \"\\\\u{11B60}-\\\\u{11B67}\",\n \"\\\\u{11BC0}-\\\\u{11BE0}\",\n \"\\\\u{11BF0}-\\\\u{11BF9}\",\n \"\\\\u{11DB0}-\\\\u{11DDB}\",\n \"\\\\u{11DE0}-\\\\u{11DE9}\",\n \"\\\\u{11F5A}\",\n \"\\\\u{13460}-\\\\u{143FA}\",\n \"\\\\u{16100}-\\\\u{16139}\",\n \"\\\\u{16D40}-\\\\u{16D6C}\",\n \"\\\\u{16D70}-\\\\u{16D79}\",\n \"\\\\u{16EA0}-\\\\u{16EB8}\",\n \"\\\\u{16EBB}-\\\\u{16ED3}\",\n \"\\\\u{16FF2}-\\\\u{16FF6}\",\n \"\\\\u{187F8}-\\\\u{187FF}\",\n \"\\\\u{18CFF}\",\n \"\\\\u{18D09}-\\\\u{18D1E}\",\n \"\\\\u{18D80}-\\\\u{18DF2}\",\n \"\\\\u{1CCF0}-\\\\u{1CCF9}\",\n \"\\\\u{1E5D0}-\\\\u{1E5FA}\",\n \"\\\\u{1E6C0}-\\\\u{1E6DE}\",\n \"\\\\u{1E6E0}-\\\\u{1E6F5}\",\n \"\\\\u{1E6FE}-\\\\u{1E6FF}\",\n \"\\\\u{2B73A}-\\\\u{2B73F}\",\n \"\\\\u{2CEA2}-\\\\u{2CEAD}\",\n \"\\\\u{323B0}-\\\\u{33479}\",\n];\n"],"names":[],"mappings":";;AAIO,MAAM,sBAAA,GAA4C;AAAA,EACvD,UAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,qBAAA;AAAA,EACA,qBAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,qBAAA;AAAA,EACA,WAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,uBAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,YAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,YAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA;AACF;AAGO,MAAM,qBAAA,GAA2C;AAAA,EACtD,UAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,qBAAA;AAAA,EACA,qBAAA;AAAA,EACA,qBAAA;AAAA,EACA,qBAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,qBAAA;AAAA,EACA,WAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,YAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,YAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA;AACF;;;"}
@@ -0,0 +1,106 @@
1
+ const NEWER_IDENTIFIER_START = [
2
+ "\\u{88F}",
3
+ "\\u{C5C}",
4
+ "\\u{CDC}",
5
+ "\\u{1C89}-\\u{1C8A}",
6
+ "\\u{A7CB}-\\u{A7CF}",
7
+ "\\u{A7D2}",
8
+ "\\u{A7D4}",
9
+ "\\u{A7DA}-\\u{A7DC}",
10
+ "\\u{A7F1}",
11
+ "\\u{105C0}-\\u{105F3}",
12
+ "\\u{10940}-\\u{10959}",
13
+ "\\u{10D4A}-\\u{10D65}",
14
+ "\\u{10D6F}-\\u{10D85}",
15
+ "\\u{10EC2}-\\u{10EC7}",
16
+ "\\u{11380}-\\u{11389}",
17
+ "\\u{1138B}",
18
+ "\\u{1138E}",
19
+ "\\u{11390}-\\u{113B5}",
20
+ "\\u{113B7}",
21
+ "\\u{113D1}",
22
+ "\\u{113D3}",
23
+ "\\u{11BC0}-\\u{11BE0}",
24
+ "\\u{11DB0}-\\u{11DDB}",
25
+ "\\u{13460}-\\u{143FA}",
26
+ "\\u{16100}-\\u{1611D}",
27
+ "\\u{16D40}-\\u{16D6C}",
28
+ "\\u{16EA0}-\\u{16EB8}",
29
+ "\\u{16EBB}-\\u{16ED3}",
30
+ "\\u{16FF2}-\\u{16FF6}",
31
+ "\\u{187F8}-\\u{187FF}",
32
+ "\\u{18CFF}",
33
+ "\\u{18D09}-\\u{18D1E}",
34
+ "\\u{18D80}-\\u{18DF2}",
35
+ "\\u{1E5D0}-\\u{1E5ED}",
36
+ "\\u{1E5F0}",
37
+ "\\u{1E6C0}-\\u{1E6DE}",
38
+ "\\u{1E6E0}-\\u{1E6E2}",
39
+ "\\u{1E6E4}-\\u{1E6E5}",
40
+ "\\u{1E6E7}-\\u{1E6ED}",
41
+ "\\u{1E6F0}-\\u{1E6F4}",
42
+ "\\u{1E6FE}-\\u{1E6FF}",
43
+ "\\u{2B73A}-\\u{2B73F}",
44
+ "\\u{2CEA2}-\\u{2CEAD}",
45
+ "\\u{323B0}-\\u{33479}"
46
+ ];
47
+ const NEWER_IDENTIFIER_PART = [
48
+ "\\u{88F}",
49
+ "\\u{897}",
50
+ "\\u{C5C}",
51
+ "\\u{CDC}",
52
+ "\\u{1ACF}-\\u{1ADD}",
53
+ "\\u{1AE0}-\\u{1AEB}",
54
+ "\\u{1C89}-\\u{1C8A}",
55
+ "\\u{A7CB}-\\u{A7CF}",
56
+ "\\u{A7D2}",
57
+ "\\u{A7D4}",
58
+ "\\u{A7DA}-\\u{A7DC}",
59
+ "\\u{A7F1}",
60
+ "\\u{105C0}-\\u{105F3}",
61
+ "\\u{10940}-\\u{10959}",
62
+ "\\u{10D40}-\\u{10D65}",
63
+ "\\u{10D69}-\\u{10D6D}",
64
+ "\\u{10D6F}-\\u{10D85}",
65
+ "\\u{10EC2}-\\u{10EC7}",
66
+ "\\u{10EFA}-\\u{10EFC}",
67
+ "\\u{11380}-\\u{11389}",
68
+ "\\u{1138B}",
69
+ "\\u{1138E}",
70
+ "\\u{11390}-\\u{113B5}",
71
+ "\\u{113B7}-\\u{113C0}",
72
+ "\\u{113C2}",
73
+ "\\u{113C5}",
74
+ "\\u{113C7}-\\u{113CA}",
75
+ "\\u{113CC}-\\u{113D3}",
76
+ "\\u{113E1}-\\u{113E2}",
77
+ "\\u{116D0}-\\u{116E3}",
78
+ "\\u{11B60}-\\u{11B67}",
79
+ "\\u{11BC0}-\\u{11BE0}",
80
+ "\\u{11BF0}-\\u{11BF9}",
81
+ "\\u{11DB0}-\\u{11DDB}",
82
+ "\\u{11DE0}-\\u{11DE9}",
83
+ "\\u{11F5A}",
84
+ "\\u{13460}-\\u{143FA}",
85
+ "\\u{16100}-\\u{16139}",
86
+ "\\u{16D40}-\\u{16D6C}",
87
+ "\\u{16D70}-\\u{16D79}",
88
+ "\\u{16EA0}-\\u{16EB8}",
89
+ "\\u{16EBB}-\\u{16ED3}",
90
+ "\\u{16FF2}-\\u{16FF6}",
91
+ "\\u{187F8}-\\u{187FF}",
92
+ "\\u{18CFF}",
93
+ "\\u{18D09}-\\u{18D1E}",
94
+ "\\u{18D80}-\\u{18DF2}",
95
+ "\\u{1CCF0}-\\u{1CCF9}",
96
+ "\\u{1E5D0}-\\u{1E5FA}",
97
+ "\\u{1E6C0}-\\u{1E6DE}",
98
+ "\\u{1E6E0}-\\u{1E6F5}",
99
+ "\\u{1E6FE}-\\u{1E6FF}",
100
+ "\\u{2B73A}-\\u{2B73F}",
101
+ "\\u{2CEA2}-\\u{2CEAD}",
102
+ "\\u{323B0}-\\u{33479}"
103
+ ];
104
+
105
+ export { NEWER_IDENTIFIER_PART, NEWER_IDENTIFIER_START };
106
+ //# sourceMappingURL=newer-identifier-ranges.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"newer-identifier-ranges.mjs","sources":["../../../src/domain/ir/newer-identifier-ranges.ts"],"sourcesContent":["// Generated by scripts/identifier-ranges.ts (Node.js 26.0.0, Unicode\n// 17.0, TypeScript 5.9.3). Do not edit.\n\n/** `ID_Start` code points that TypeScript's scanner does not accept, as regex class items. */\nexport const NEWER_IDENTIFIER_START: readonly string[] = [\n \"\\\\u{88F}\",\n \"\\\\u{C5C}\",\n \"\\\\u{CDC}\",\n \"\\\\u{1C89}-\\\\u{1C8A}\",\n \"\\\\u{A7CB}-\\\\u{A7CF}\",\n \"\\\\u{A7D2}\",\n \"\\\\u{A7D4}\",\n \"\\\\u{A7DA}-\\\\u{A7DC}\",\n \"\\\\u{A7F1}\",\n \"\\\\u{105C0}-\\\\u{105F3}\",\n \"\\\\u{10940}-\\\\u{10959}\",\n \"\\\\u{10D4A}-\\\\u{10D65}\",\n \"\\\\u{10D6F}-\\\\u{10D85}\",\n \"\\\\u{10EC2}-\\\\u{10EC7}\",\n \"\\\\u{11380}-\\\\u{11389}\",\n \"\\\\u{1138B}\",\n \"\\\\u{1138E}\",\n \"\\\\u{11390}-\\\\u{113B5}\",\n \"\\\\u{113B7}\",\n \"\\\\u{113D1}\",\n \"\\\\u{113D3}\",\n \"\\\\u{11BC0}-\\\\u{11BE0}\",\n \"\\\\u{11DB0}-\\\\u{11DDB}\",\n \"\\\\u{13460}-\\\\u{143FA}\",\n \"\\\\u{16100}-\\\\u{1611D}\",\n \"\\\\u{16D40}-\\\\u{16D6C}\",\n \"\\\\u{16EA0}-\\\\u{16EB8}\",\n \"\\\\u{16EBB}-\\\\u{16ED3}\",\n \"\\\\u{16FF2}-\\\\u{16FF6}\",\n \"\\\\u{187F8}-\\\\u{187FF}\",\n \"\\\\u{18CFF}\",\n \"\\\\u{18D09}-\\\\u{18D1E}\",\n \"\\\\u{18D80}-\\\\u{18DF2}\",\n \"\\\\u{1E5D0}-\\\\u{1E5ED}\",\n \"\\\\u{1E5F0}\",\n \"\\\\u{1E6C0}-\\\\u{1E6DE}\",\n \"\\\\u{1E6E0}-\\\\u{1E6E2}\",\n \"\\\\u{1E6E4}-\\\\u{1E6E5}\",\n \"\\\\u{1E6E7}-\\\\u{1E6ED}\",\n \"\\\\u{1E6F0}-\\\\u{1E6F4}\",\n \"\\\\u{1E6FE}-\\\\u{1E6FF}\",\n \"\\\\u{2B73A}-\\\\u{2B73F}\",\n \"\\\\u{2CEA2}-\\\\u{2CEAD}\",\n \"\\\\u{323B0}-\\\\u{33479}\",\n];\n\n/** `ID_Continue` code points that TypeScript's scanner does not accept, as regex class items. */\nexport const NEWER_IDENTIFIER_PART: readonly string[] = [\n \"\\\\u{88F}\",\n \"\\\\u{897}\",\n \"\\\\u{C5C}\",\n \"\\\\u{CDC}\",\n \"\\\\u{1ACF}-\\\\u{1ADD}\",\n \"\\\\u{1AE0}-\\\\u{1AEB}\",\n \"\\\\u{1C89}-\\\\u{1C8A}\",\n \"\\\\u{A7CB}-\\\\u{A7CF}\",\n \"\\\\u{A7D2}\",\n \"\\\\u{A7D4}\",\n \"\\\\u{A7DA}-\\\\u{A7DC}\",\n \"\\\\u{A7F1}\",\n \"\\\\u{105C0}-\\\\u{105F3}\",\n \"\\\\u{10940}-\\\\u{10959}\",\n \"\\\\u{10D40}-\\\\u{10D65}\",\n \"\\\\u{10D69}-\\\\u{10D6D}\",\n \"\\\\u{10D6F}-\\\\u{10D85}\",\n \"\\\\u{10EC2}-\\\\u{10EC7}\",\n \"\\\\u{10EFA}-\\\\u{10EFC}\",\n \"\\\\u{11380}-\\\\u{11389}\",\n \"\\\\u{1138B}\",\n \"\\\\u{1138E}\",\n \"\\\\u{11390}-\\\\u{113B5}\",\n \"\\\\u{113B7}-\\\\u{113C0}\",\n \"\\\\u{113C2}\",\n \"\\\\u{113C5}\",\n \"\\\\u{113C7}-\\\\u{113CA}\",\n \"\\\\u{113CC}-\\\\u{113D3}\",\n \"\\\\u{113E1}-\\\\u{113E2}\",\n \"\\\\u{116D0}-\\\\u{116E3}\",\n \"\\\\u{11B60}-\\\\u{11B67}\",\n \"\\\\u{11BC0}-\\\\u{11BE0}\",\n \"\\\\u{11BF0}-\\\\u{11BF9}\",\n \"\\\\u{11DB0}-\\\\u{11DDB}\",\n \"\\\\u{11DE0}-\\\\u{11DE9}\",\n \"\\\\u{11F5A}\",\n \"\\\\u{13460}-\\\\u{143FA}\",\n \"\\\\u{16100}-\\\\u{16139}\",\n \"\\\\u{16D40}-\\\\u{16D6C}\",\n \"\\\\u{16D70}-\\\\u{16D79}\",\n \"\\\\u{16EA0}-\\\\u{16EB8}\",\n \"\\\\u{16EBB}-\\\\u{16ED3}\",\n \"\\\\u{16FF2}-\\\\u{16FF6}\",\n \"\\\\u{187F8}-\\\\u{187FF}\",\n \"\\\\u{18CFF}\",\n \"\\\\u{18D09}-\\\\u{18D1E}\",\n \"\\\\u{18D80}-\\\\u{18DF2}\",\n \"\\\\u{1CCF0}-\\\\u{1CCF9}\",\n \"\\\\u{1E5D0}-\\\\u{1E5FA}\",\n \"\\\\u{1E6C0}-\\\\u{1E6DE}\",\n \"\\\\u{1E6E0}-\\\\u{1E6F5}\",\n \"\\\\u{1E6FE}-\\\\u{1E6FF}\",\n \"\\\\u{2B73A}-\\\\u{2B73F}\",\n \"\\\\u{2CEA2}-\\\\u{2CEAD}\",\n \"\\\\u{323B0}-\\\\u{33479}\",\n];\n"],"names":[],"mappings":"AAIO,MAAM,sBAAA,GAA4C;AAAA,EACvD,UAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,qBAAA;AAAA,EACA,qBAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,qBAAA;AAAA,EACA,WAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,uBAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,YAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,YAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA;AACF;AAGO,MAAM,qBAAA,GAA2C;AAAA,EACtD,UAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,qBAAA;AAAA,EACA,qBAAA;AAAA,EACA,qBAAA;AAAA,EACA,qBAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,qBAAA;AAAA,EACA,WAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,YAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,YAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA,uBAAA;AAAA,EACA;AACF;;"}
@@ -0,0 +1,32 @@
1
+ 'use strict';
2
+
3
+ const DEDUPLICATED_KEYWORDS = /* @__PURE__ */ new Set([
4
+ "boolean",
5
+ "never",
6
+ "null",
7
+ "number",
8
+ "string",
9
+ "undefined"
10
+ ]);
11
+ function dedupeTypes(types) {
12
+ const seenKeywords = /* @__PURE__ */ new Set();
13
+ const kept = [];
14
+ for (const type of types) {
15
+ if (type.kind === "keyword" && DEDUPLICATED_KEYWORDS.has(type.keyword)) {
16
+ if (seenKeywords.has(type.keyword)) {
17
+ continue;
18
+ }
19
+ seenKeywords.add(type.keyword);
20
+ }
21
+ kept.push(type);
22
+ }
23
+ return kept;
24
+ }
25
+ const ALPHABETIZE_COLLATOR = new Intl.Collator("en-us", { numeric: true });
26
+ function sortEntriesByKey(entries) {
27
+ return entries.map(([key, value]) => [key, value]).sort(([left], [right]) => ALPHABETIZE_COLLATOR.compare(left, right));
28
+ }
29
+
30
+ exports.dedupeTypes = dedupeTypes;
31
+ exports.sortEntriesByKey = sortEntriesByKey;
32
+ //# sourceMappingURL=normalize.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.cjs","sources":["../../../src/domain/ir/normalize.ts"],"sourcesContent":["import type { IrKeyword, IrType } from \"./nodes.js\";\n\n/**\n * Keywords that `dedupeTypes` removes when repeated. The original (`tsDedupe`) treats these as\n * primitives; `unknown` is not one of them and is kept even when repeated.\n */\nconst DEDUPLICATED_KEYWORDS: ReadonlySet<IrKeyword> = new Set([\n \"boolean\",\n \"never\",\n \"null\",\n \"number\",\n \"string\",\n \"undefined\",\n]);\n\n/**\n * Remove repeated primitive keywords from a union or intersection member list, keeping the first\n * occurrence and the order. Literals, references and object types are never removed, even when\n * equal: this matches the original `tsDedupe`, which compares only node kinds of primitives.\n */\nexport function dedupeTypes(types: readonly IrType[]): IrType[] {\n const seenKeywords = new Set<IrKeyword>();\n const kept: IrType[] = [];\n for (const type of types) {\n if (type.kind === \"keyword\" && DEDUPLICATED_KEYWORDS.has(type.keyword)) {\n if (seenKeywords.has(type.keyword)) {\n continue;\n }\n seenKeywords.add(type.keyword);\n }\n kept.push(type);\n }\n return kept;\n}\n\n/**\n * The collation the original `getEntries` uses for `alphabetize`. Natural order: `a2` sorts before\n * `a10`. It is locale-based on purpose, to stay byte-compatible with the original output.\n */\nconst ALPHABETIZE_COLLATOR = new Intl.Collator(\"en-us\", { numeric: true });\n\n/**\n * Sort `[key, value]` entries by key like the original `alphabetize` option (ENGINEERING_PLAN 4.1\n * `sortMembers`). The original sorts source entries before it builds members, so transformers call\n * this on entries, not on finished IR members. The sort is stable and returns a new array.\n */\nexport function sortEntriesByKey<T>(entries: readonly (readonly [string, T])[]): [string, T][] {\n return entries\n .map(([key, value]): [string, T] => [key, value])\n .sort(([left], [right]) => ALPHABETIZE_COLLATOR.compare(left, right));\n}\n"],"names":[],"mappings":";;AAMA,MAAM,qBAAA,uBAAoD,GAAA,CAAI;AAAA,EAC5D,SAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAC,CAAA;AAOM,SAAS,YAAY,KAAA,EAAoC;AAC9D,EAAA,MAAM,YAAA,uBAAmB,GAAA,EAAe;AACxC,EAAA,MAAM,OAAiB,EAAC;AACxB,EAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,IAAA,IAAI,KAAK,IAAA,KAAS,SAAA,IAAa,sBAAsB,GAAA,CAAI,IAAA,CAAK,OAAO,CAAA,EAAG;AACtE,MAAA,IAAI,YAAA,CAAa,GAAA,CAAI,IAAA,CAAK,OAAO,CAAA,EAAG;AAClC,QAAA;AAAA,MACF;AACA,MAAA,YAAA,CAAa,GAAA,CAAI,KAAK,OAAO,CAAA;AAAA,IAC/B;AACA,IAAA,IAAA,CAAK,KAAK,IAAI,CAAA;AAAA,EAChB;AACA,EAAA,OAAO,IAAA;AACT;AAMA,MAAM,oBAAA,GAAuB,IAAI,IAAA,CAAK,QAAA,CAAS,SAAS,EAAE,OAAA,EAAS,MAAM,CAAA;AAOlE,SAAS,iBAAoB,OAAA,EAA2D;AAC7F,EAAA,OAAO,OAAA,CACJ,GAAA,CAAI,CAAC,CAAC,GAAA,EAAK,KAAK,CAAA,KAAmB,CAAC,GAAA,EAAK,KAAK,CAAC,CAAA,CAC/C,KAAK,CAAC,CAAC,IAAI,CAAA,EAAG,CAAC,KAAK,MAAM,oBAAA,CAAqB,OAAA,CAAQ,IAAA,EAAM,KAAK,CAAC,CAAA;AACxE;;;"}
@@ -0,0 +1,29 @@
1
+ const DEDUPLICATED_KEYWORDS = /* @__PURE__ */ new Set([
2
+ "boolean",
3
+ "never",
4
+ "null",
5
+ "number",
6
+ "string",
7
+ "undefined"
8
+ ]);
9
+ function dedupeTypes(types) {
10
+ const seenKeywords = /* @__PURE__ */ new Set();
11
+ const kept = [];
12
+ for (const type of types) {
13
+ if (type.kind === "keyword" && DEDUPLICATED_KEYWORDS.has(type.keyword)) {
14
+ if (seenKeywords.has(type.keyword)) {
15
+ continue;
16
+ }
17
+ seenKeywords.add(type.keyword);
18
+ }
19
+ kept.push(type);
20
+ }
21
+ return kept;
22
+ }
23
+ const ALPHABETIZE_COLLATOR = new Intl.Collator("en-us", { numeric: true });
24
+ function sortEntriesByKey(entries) {
25
+ return entries.map(([key, value]) => [key, value]).sort(([left], [right]) => ALPHABETIZE_COLLATOR.compare(left, right));
26
+ }
27
+
28
+ export { dedupeTypes, sortEntriesByKey };
29
+ //# sourceMappingURL=normalize.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.mjs","sources":["../../../src/domain/ir/normalize.ts"],"sourcesContent":["import type { IrKeyword, IrType } from \"./nodes.js\";\n\n/**\n * Keywords that `dedupeTypes` removes when repeated. The original (`tsDedupe`) treats these as\n * primitives; `unknown` is not one of them and is kept even when repeated.\n */\nconst DEDUPLICATED_KEYWORDS: ReadonlySet<IrKeyword> = new Set([\n \"boolean\",\n \"never\",\n \"null\",\n \"number\",\n \"string\",\n \"undefined\",\n]);\n\n/**\n * Remove repeated primitive keywords from a union or intersection member list, keeping the first\n * occurrence and the order. Literals, references and object types are never removed, even when\n * equal: this matches the original `tsDedupe`, which compares only node kinds of primitives.\n */\nexport function dedupeTypes(types: readonly IrType[]): IrType[] {\n const seenKeywords = new Set<IrKeyword>();\n const kept: IrType[] = [];\n for (const type of types) {\n if (type.kind === \"keyword\" && DEDUPLICATED_KEYWORDS.has(type.keyword)) {\n if (seenKeywords.has(type.keyword)) {\n continue;\n }\n seenKeywords.add(type.keyword);\n }\n kept.push(type);\n }\n return kept;\n}\n\n/**\n * The collation the original `getEntries` uses for `alphabetize`. Natural order: `a2` sorts before\n * `a10`. It is locale-based on purpose, to stay byte-compatible with the original output.\n */\nconst ALPHABETIZE_COLLATOR = new Intl.Collator(\"en-us\", { numeric: true });\n\n/**\n * Sort `[key, value]` entries by key like the original `alphabetize` option (ENGINEERING_PLAN 4.1\n * `sortMembers`). The original sorts source entries before it builds members, so transformers call\n * this on entries, not on finished IR members. The sort is stable and returns a new array.\n */\nexport function sortEntriesByKey<T>(entries: readonly (readonly [string, T])[]): [string, T][] {\n return entries\n .map(([key, value]): [string, T] => [key, value])\n .sort(([left], [right]) => ALPHABETIZE_COLLATOR.compare(left, right));\n}\n"],"names":[],"mappings":"AAMA,MAAM,qBAAA,uBAAoD,GAAA,CAAI;AAAA,EAC5D,SAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAC,CAAA;AAOM,SAAS,YAAY,KAAA,EAAoC;AAC9D,EAAA,MAAM,YAAA,uBAAmB,GAAA,EAAe;AACxC,EAAA,MAAM,OAAiB,EAAC;AACxB,EAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,IAAA,IAAI,KAAK,IAAA,KAAS,SAAA,IAAa,sBAAsB,GAAA,CAAI,IAAA,CAAK,OAAO,CAAA,EAAG;AACtE,MAAA,IAAI,YAAA,CAAa,GAAA,CAAI,IAAA,CAAK,OAAO,CAAA,EAAG;AAClC,QAAA;AAAA,MACF;AACA,MAAA,YAAA,CAAa,GAAA,CAAI,KAAK,OAAO,CAAA;AAAA,IAC/B;AACA,IAAA,IAAA,CAAK,KAAK,IAAI,CAAA;AAAA,EAChB;AACA,EAAA,OAAO,IAAA;AACT;AAMA,MAAM,oBAAA,GAAuB,IAAI,IAAA,CAAK,QAAA,CAAS,SAAS,EAAE,OAAA,EAAS,MAAM,CAAA;AAOlE,SAAS,iBAAoB,OAAA,EAA2D;AAC7F,EAAA,OAAO,OAAA,CACJ,GAAA,CAAI,CAAC,CAAC,GAAA,EAAK,KAAK,CAAA,KAAmB,CAAC,GAAA,EAAK,KAAK,CAAC,CAAA,CAC/C,KAAK,CAAC,CAAC,IAAI,CAAA,EAAG,CAAC,KAAK,MAAM,oBAAA,CAAqB,OAAA,CAAQ,IAAA,EAAM,KAAK,CAAC,CAAA;AACxE;;"}
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ const JS_PROPERTY_INDEX_RE = /^[A-Za-z_$][A-Za-z_$0-9]*$/;
4
+ function isNonNegativeNumberText(index) {
5
+ return String(Number(index)) === index && index[0] !== "-";
6
+ }
7
+ function toPropertyName(index) {
8
+ if (typeof index === "number") {
9
+ return index < 0 ? { kind: "string", value: String(index) } : { kind: "number", text: String(index) };
10
+ }
11
+ if (isNonNegativeNumberText(index)) {
12
+ return { kind: "number", text: index };
13
+ }
14
+ return JS_PROPERTY_INDEX_RE.test(index) ? { kind: "identifier", text: index } : { kind: "string", value: index };
15
+ }
16
+
17
+ exports.JS_PROPERTY_INDEX_RE = JS_PROPERTY_INDEX_RE;
18
+ exports.toPropertyName = toPropertyName;
19
+ //# sourceMappingURL=property-name.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"property-name.cjs","sources":["../../../src/domain/ir/property-name.ts"],"sourcesContent":["import type { IrPropertyName } from \"./nodes.js\";\n\n/** A name that can be written without quotes. */\nexport const JS_PROPERTY_INDEX_RE = /^[A-Za-z_$][A-Za-z_$0-9]*$/;\n\nfunction isNonNegativeNumberText(index: string): boolean {\n return String(Number(index)) === index && index[0] !== \"-\";\n}\n\n/**\n * Choose how a property key is written, following the original `tsPropertyIndex`: non-negative\n * numbers (and strings that are exactly such a number) unquoted, valid identifiers unquoted,\n * everything else as a quoted string. Negative numbers become strings because `-1` is not a valid\n * property key.\n */\nexport function toPropertyName(index: string | number): IrPropertyName {\n if (typeof index === \"number\") {\n return index < 0\n ? { kind: \"string\", value: String(index) }\n : { kind: \"number\", text: String(index) };\n }\n if (isNonNegativeNumberText(index)) {\n return { kind: \"number\", text: index };\n }\n return JS_PROPERTY_INDEX_RE.test(index)\n ? { kind: \"identifier\", text: index }\n : { kind: \"string\", value: index };\n}\n"],"names":[],"mappings":";;AAGO,MAAM,oBAAA,GAAuB;AAEpC,SAAS,wBAAwB,KAAA,EAAwB;AACvD,EAAA,OAAO,MAAA,CAAO,OAAO,KAAK,CAAC,MAAM,KAAA,IAAS,KAAA,CAAM,CAAC,CAAA,KAAM,GAAA;AACzD;AAQO,SAAS,eAAe,KAAA,EAAwC;AACrE,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,OAAO,QAAQ,CAAA,GACX,EAAE,IAAA,EAAM,QAAA,EAAU,OAAO,MAAA,CAAO,KAAK,CAAA,EAAE,GACvC,EAAE,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,MAAA,CAAO,KAAK,CAAA,EAAE;AAAA,EAC5C;AACA,EAAA,IAAI,uBAAA,CAAwB,KAAK,CAAA,EAAG;AAClC,IAAA,OAAO,EAAE,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,KAAA,EAAM;AAAA,EACvC;AACA,EAAA,OAAO,oBAAA,CAAqB,IAAA,CAAK,KAAK,CAAA,GAClC,EAAE,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,KAAA,EAAM,GAClC,EAAE,IAAA,EAAM,QAAA,EAAU,OAAO,KAAA,EAAM;AACrC;;;"}
@@ -0,0 +1,16 @@
1
+ const JS_PROPERTY_INDEX_RE = /^[A-Za-z_$][A-Za-z_$0-9]*$/;
2
+ function isNonNegativeNumberText(index) {
3
+ return String(Number(index)) === index && index[0] !== "-";
4
+ }
5
+ function toPropertyName(index) {
6
+ if (typeof index === "number") {
7
+ return index < 0 ? { kind: "string", value: String(index) } : { kind: "number", text: String(index) };
8
+ }
9
+ if (isNonNegativeNumberText(index)) {
10
+ return { kind: "number", text: index };
11
+ }
12
+ return JS_PROPERTY_INDEX_RE.test(index) ? { kind: "identifier", text: index } : { kind: "string", value: index };
13
+ }
14
+
15
+ export { JS_PROPERTY_INDEX_RE, toPropertyName };
16
+ //# sourceMappingURL=property-name.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"property-name.mjs","sources":["../../../src/domain/ir/property-name.ts"],"sourcesContent":["import type { IrPropertyName } from \"./nodes.js\";\n\n/** A name that can be written without quotes. */\nexport const JS_PROPERTY_INDEX_RE = /^[A-Za-z_$][A-Za-z_$0-9]*$/;\n\nfunction isNonNegativeNumberText(index: string): boolean {\n return String(Number(index)) === index && index[0] !== \"-\";\n}\n\n/**\n * Choose how a property key is written, following the original `tsPropertyIndex`: non-negative\n * numbers (and strings that are exactly such a number) unquoted, valid identifiers unquoted,\n * everything else as a quoted string. Negative numbers become strings because `-1` is not a valid\n * property key.\n */\nexport function toPropertyName(index: string | number): IrPropertyName {\n if (typeof index === \"number\") {\n return index < 0\n ? { kind: \"string\", value: String(index) }\n : { kind: \"number\", text: String(index) };\n }\n if (isNonNegativeNumberText(index)) {\n return { kind: \"number\", text: index };\n }\n return JS_PROPERTY_INDEX_RE.test(index)\n ? { kind: \"identifier\", text: index }\n : { kind: \"string\", value: index };\n}\n"],"names":[],"mappings":"AAGO,MAAM,oBAAA,GAAuB;AAEpC,SAAS,wBAAwB,KAAA,EAAwB;AACvD,EAAA,OAAO,MAAA,CAAO,OAAO,KAAK,CAAC,MAAM,KAAA,IAAS,KAAA,CAAM,CAAC,CAAA,KAAM,GAAA;AACzD;AAQO,SAAS,eAAe,KAAA,EAAwC;AACrE,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,OAAO,QAAQ,CAAA,GACX,EAAE,IAAA,EAAM,QAAA,EAAU,OAAO,MAAA,CAAO,KAAK,CAAA,EAAE,GACvC,EAAE,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,MAAA,CAAO,KAAK,CAAA,EAAE;AAAA,EAC5C;AACA,EAAA,IAAI,uBAAA,CAAwB,KAAK,CAAA,EAAG;AAClC,IAAA,OAAO,EAAE,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,KAAA,EAAM;AAAA,EACvC;AACA,EAAA,OAAO,oBAAA,CAAqB,IAAA,CAAK,KAAK,CAAA,GAClC,EAAE,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,KAAA,EAAM,GAClC,EAAE,IAAA,EAAM,QAAA,EAAU,OAAO,KAAA,EAAM;AACrC;;"}
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ const SINGLE_QUOTED_ESCAPES = /* @__PURE__ */ new Map([
4
+ ["\\", "\\\\"],
5
+ ["'", "\\'"],
6
+ ["\n", "\\n"],
7
+ ["\r", "\\r"],
8
+ ["\u2028", "\\u2028"],
9
+ ["\u2029", "\\u2029"]
10
+ ]);
11
+ const SINGLE_QUOTED_SPECIAL_RE = /[\\'\n\r\u2028\u2029]/g;
12
+ function escapeSingleQuotedText(value) {
13
+ return value.replace(SINGLE_QUOTED_SPECIAL_RE, (char) => SINGLE_QUOTED_ESCAPES.get(char) ?? char);
14
+ }
15
+ const TEMPLATE_SPECIAL_RE = /\\|`|\$\{|\r/g;
16
+ function escapeTemplateSpecial(special) {
17
+ return special === "\r" ? "\\r" : `\\${special}`;
18
+ }
19
+ function escapeTemplateText(value) {
20
+ return value.replace(TEMPLATE_SPECIAL_RE, escapeTemplateSpecial);
21
+ }
22
+
23
+ exports.escapeSingleQuotedText = escapeSingleQuotedText;
24
+ exports.escapeTemplateText = escapeTemplateText;
25
+ //# sourceMappingURL=raw-text-escapes.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raw-text-escapes.cjs","sources":["../../../src/domain/ir/raw-text-escapes.ts"],"sourcesContent":["/**\n * Escapes for document text that the transformer writes into raw type text (threat model,\n * docs/security/threat-model.md). Without them, a name or path from the document could end the\n * literal early and add its own code to the generated file. Only the characters that would end or\n * change the literal are escaped, so output for every other name stays byte-identical.\n */\n\n/** Line terminators end a single-quoted string; TypeScript reads U+2028 and U+2029 as such too. */\nconst SINGLE_QUOTED_ESCAPES: ReadonlyMap<string, string> = new Map([\n [\"\\\\\", \"\\\\\\\\\"],\n [\"'\", \"\\\\'\"],\n [\"\\n\", \"\\\\n\"],\n [\"\\r\", \"\\\\r\"],\n [\"\\u2028\", \"\\\\u2028\"],\n [\"\\u2029\", \"\\\\u2029\"],\n]);\nconst SINGLE_QUOTED_SPECIAL_RE = /[\\\\'\\n\\r\\u2028\\u2029]/g;\n\n/** The text between the quotes of a single-quoted string literal with this value. */\nexport function escapeSingleQuotedText(value: string): string {\n return value.replace(SINGLE_QUOTED_SPECIAL_RE, (char) => SINGLE_QUOTED_ESCAPES.get(char) ?? char);\n}\n\n/**\n * A backslash, a backtick, or the `${` that would start a placeholder. A raw carriage return is\n * read as a line feed inside a template literal, so it is written as an escape.\n */\nconst TEMPLATE_SPECIAL_RE = /\\\\|`|\\$\\{|\\r/g;\n\nfunction escapeTemplateSpecial(special: string): string {\n return special === \"\\r\" ? \"\\\\r\" : `\\\\${special}`;\n}\n\n/** Template literal text (between placeholders) that reads back as exactly this value. */\nexport function escapeTemplateText(value: string): string {\n return value.replace(TEMPLATE_SPECIAL_RE, escapeTemplateSpecial);\n}\n"],"names":[],"mappings":";;AAQA,MAAM,qBAAA,uBAAyD,GAAA,CAAI;AAAA,EACjE,CAAC,MAAM,MAAM,CAAA;AAAA,EACb,CAAC,KAAK,KAAK,CAAA;AAAA,EACX,CAAC,MAAM,KAAK,CAAA;AAAA,EACZ,CAAC,MAAM,KAAK,CAAA;AAAA,EACZ,CAAC,UAAU,SAAS,CAAA;AAAA,EACpB,CAAC,UAAU,SAAS;AACtB,CAAC,CAAA;AACD,MAAM,wBAAA,GAA2B,wBAAA;AAG1B,SAAS,uBAAuB,KAAA,EAAuB;AAC5D,EAAA,OAAO,KAAA,CAAM,QAAQ,wBAAA,EAA0B,CAAC,SAAS,qBAAA,CAAsB,GAAA,CAAI,IAAI,CAAA,IAAK,IAAI,CAAA;AAClG;AAMA,MAAM,mBAAA,GAAsB,eAAA;AAE5B,SAAS,sBAAsB,OAAA,EAAyB;AACtD,EAAA,OAAO,OAAA,KAAY,IAAA,GAAO,KAAA,GAAQ,CAAA,EAAA,EAAK,OAAO,CAAA,CAAA;AAChD;AAGO,SAAS,mBAAmB,KAAA,EAAuB;AACxD,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,mBAAA,EAAqB,qBAAqB,CAAA;AACjE;;;"}
@@ -0,0 +1,22 @@
1
+ const SINGLE_QUOTED_ESCAPES = /* @__PURE__ */ new Map([
2
+ ["\\", "\\\\"],
3
+ ["'", "\\'"],
4
+ ["\n", "\\n"],
5
+ ["\r", "\\r"],
6
+ ["\u2028", "\\u2028"],
7
+ ["\u2029", "\\u2029"]
8
+ ]);
9
+ const SINGLE_QUOTED_SPECIAL_RE = /[\\'\n\r\u2028\u2029]/g;
10
+ function escapeSingleQuotedText(value) {
11
+ return value.replace(SINGLE_QUOTED_SPECIAL_RE, (char) => SINGLE_QUOTED_ESCAPES.get(char) ?? char);
12
+ }
13
+ const TEMPLATE_SPECIAL_RE = /\\|`|\$\{|\r/g;
14
+ function escapeTemplateSpecial(special) {
15
+ return special === "\r" ? "\\r" : `\\${special}`;
16
+ }
17
+ function escapeTemplateText(value) {
18
+ return value.replace(TEMPLATE_SPECIAL_RE, escapeTemplateSpecial);
19
+ }
20
+
21
+ export { escapeSingleQuotedText, escapeTemplateText };
22
+ //# sourceMappingURL=raw-text-escapes.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raw-text-escapes.mjs","sources":["../../../src/domain/ir/raw-text-escapes.ts"],"sourcesContent":["/**\n * Escapes for document text that the transformer writes into raw type text (threat model,\n * docs/security/threat-model.md). Without them, a name or path from the document could end the\n * literal early and add its own code to the generated file. Only the characters that would end or\n * change the literal are escaped, so output for every other name stays byte-identical.\n */\n\n/** Line terminators end a single-quoted string; TypeScript reads U+2028 and U+2029 as such too. */\nconst SINGLE_QUOTED_ESCAPES: ReadonlyMap<string, string> = new Map([\n [\"\\\\\", \"\\\\\\\\\"],\n [\"'\", \"\\\\'\"],\n [\"\\n\", \"\\\\n\"],\n [\"\\r\", \"\\\\r\"],\n [\"\\u2028\", \"\\\\u2028\"],\n [\"\\u2029\", \"\\\\u2029\"],\n]);\nconst SINGLE_QUOTED_SPECIAL_RE = /[\\\\'\\n\\r\\u2028\\u2029]/g;\n\n/** The text between the quotes of a single-quoted string literal with this value. */\nexport function escapeSingleQuotedText(value: string): string {\n return value.replace(SINGLE_QUOTED_SPECIAL_RE, (char) => SINGLE_QUOTED_ESCAPES.get(char) ?? char);\n}\n\n/**\n * A backslash, a backtick, or the `${` that would start a placeholder. A raw carriage return is\n * read as a line feed inside a template literal, so it is written as an escape.\n */\nconst TEMPLATE_SPECIAL_RE = /\\\\|`|\\$\\{|\\r/g;\n\nfunction escapeTemplateSpecial(special: string): string {\n return special === \"\\r\" ? \"\\\\r\" : `\\\\${special}`;\n}\n\n/** Template literal text (between placeholders) that reads back as exactly this value. */\nexport function escapeTemplateText(value: string): string {\n return value.replace(TEMPLATE_SPECIAL_RE, escapeTemplateSpecial);\n}\n"],"names":[],"mappings":"AAQA,MAAM,qBAAA,uBAAyD,GAAA,CAAI;AAAA,EACjE,CAAC,MAAM,MAAM,CAAA;AAAA,EACb,CAAC,KAAK,KAAK,CAAA;AAAA,EACX,CAAC,MAAM,KAAK,CAAA;AAAA,EACZ,CAAC,MAAM,KAAK,CAAA;AAAA,EACZ,CAAC,UAAU,SAAS,CAAA;AAAA,EACpB,CAAC,UAAU,SAAS;AACtB,CAAC,CAAA;AACD,MAAM,wBAAA,GAA2B,wBAAA;AAG1B,SAAS,uBAAuB,KAAA,EAAuB;AAC5D,EAAA,OAAO,KAAA,CAAM,QAAQ,wBAAA,EAA0B,CAAC,SAAS,qBAAA,CAAsB,GAAA,CAAI,IAAI,CAAA,IAAK,IAAI,CAAA;AAClG;AAMA,MAAM,mBAAA,GAAsB,eAAA;AAE5B,SAAS,sBAAsB,OAAA,EAAyB;AACtD,EAAA,OAAO,OAAA,KAAY,IAAA,GAAO,KAAA,GAAQ,CAAA,EAAA,EAAK,OAAO,CAAA,CAAA;AAChD;AAGO,SAAS,mBAAmB,KAAA,EAAuB;AACxD,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,mBAAA,EAAqB,qBAAqB,CAAA;AACjE;;"}