@typespec/compiler 0.41.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 (352) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +9 -0
  3. package/cmd/tsp-server.js +3 -0
  4. package/cmd/tsp.js +3 -0
  5. package/dist/cmd/runner.d.ts +9 -0
  6. package/dist/cmd/runner.d.ts.map +1 -0
  7. package/dist/cmd/runner.js +62 -0
  8. package/dist/cmd/runner.js.map +1 -0
  9. package/dist/config/config-interpolation.d.ts +11 -0
  10. package/dist/config/config-interpolation.d.ts.map +1 -0
  11. package/dist/config/config-interpolation.js +109 -0
  12. package/dist/config/config-interpolation.js.map +1 -0
  13. package/dist/config/config-loader.d.ts +25 -0
  14. package/dist/config/config-loader.d.ts.map +1 -0
  15. package/dist/config/config-loader.js +182 -0
  16. package/dist/config/config-loader.js.map +1 -0
  17. package/dist/config/config-schema.d.ts +4 -0
  18. package/dist/config/config-schema.d.ts.map +1 -0
  19. package/dist/config/config-schema.js +84 -0
  20. package/dist/config/config-schema.js.map +1 -0
  21. package/dist/config/index.d.ts +3 -0
  22. package/dist/config/index.d.ts.map +1 -0
  23. package/dist/config/index.js +3 -0
  24. package/dist/config/index.js.map +1 -0
  25. package/dist/config/types.d.ts +79 -0
  26. package/dist/config/types.d.ts.map +1 -0
  27. package/dist/config/types.js +2 -0
  28. package/dist/config/types.js.map +1 -0
  29. package/dist/core/binder.d.ts +29 -0
  30. package/dist/core/binder.d.ts.map +1 -0
  31. package/dist/core/binder.js +455 -0
  32. package/dist/core/binder.js.map +1 -0
  33. package/dist/core/charcode.d.ts +130 -0
  34. package/dist/core/charcode.d.ts.map +1 -0
  35. package/dist/core/charcode.js +115 -0
  36. package/dist/core/charcode.js.map +1 -0
  37. package/dist/core/checker.d.ts +138 -0
  38. package/dist/core/checker.d.ts.map +1 -0
  39. package/dist/core/checker.js +4070 -0
  40. package/dist/core/checker.js.map +1 -0
  41. package/dist/core/cli/args.d.ts +18 -0
  42. package/dist/core/cli/args.d.ts.map +1 -0
  43. package/dist/core/cli/args.js +108 -0
  44. package/dist/core/cli/args.js.map +1 -0
  45. package/dist/core/cli/cli.d.ts +2 -0
  46. package/dist/core/cli/cli.d.ts.map +1 -0
  47. package/dist/core/cli/cli.js +477 -0
  48. package/dist/core/cli/cli.js.map +1 -0
  49. package/dist/core/cli/index.d.ts +2 -0
  50. package/dist/core/cli/index.d.ts.map +1 -0
  51. package/dist/core/cli/index.js +2 -0
  52. package/dist/core/cli/index.js.map +1 -0
  53. package/dist/core/decorator-utils.d.ts +108 -0
  54. package/dist/core/decorator-utils.d.ts.map +1 -0
  55. package/dist/core/decorator-utils.js +326 -0
  56. package/dist/core/decorator-utils.js.map +1 -0
  57. package/dist/core/diagnostics.d.ts +93 -0
  58. package/dist/core/diagnostics.d.ts.map +1 -0
  59. package/dist/core/diagnostics.js +315 -0
  60. package/dist/core/diagnostics.js.map +1 -0
  61. package/dist/core/emitter-utils.d.ts +14 -0
  62. package/dist/core/emitter-utils.d.ts.map +1 -0
  63. package/dist/core/emitter-utils.js +16 -0
  64. package/dist/core/emitter-utils.js.map +1 -0
  65. package/dist/core/formatter-fs.d.ts +21 -0
  66. package/dist/core/formatter-fs.d.ts.map +1 -0
  67. package/dist/core/formatter-fs.js +79 -0
  68. package/dist/core/formatter-fs.js.map +1 -0
  69. package/dist/core/formatter.d.ts +10 -0
  70. package/dist/core/formatter.d.ts.map +1 -0
  71. package/dist/core/formatter.js +24 -0
  72. package/dist/core/formatter.js.map +1 -0
  73. package/dist/core/helpers/discriminator-utils.d.ts +14 -0
  74. package/dist/core/helpers/discriminator-utils.d.ts.map +1 -0
  75. package/dist/core/helpers/discriminator-utils.js +169 -0
  76. package/dist/core/helpers/discriminator-utils.js.map +1 -0
  77. package/dist/core/helpers/index.d.ts +6 -0
  78. package/dist/core/helpers/index.d.ts.map +1 -0
  79. package/dist/core/helpers/index.js +6 -0
  80. package/dist/core/helpers/index.js.map +1 -0
  81. package/dist/core/helpers/operation-utils.d.ts +15 -0
  82. package/dist/core/helpers/operation-utils.d.ts.map +1 -0
  83. package/dist/core/helpers/operation-utils.js +35 -0
  84. package/dist/core/helpers/operation-utils.js.map +1 -0
  85. package/dist/core/helpers/projected-names-utils.d.ts +20 -0
  86. package/dist/core/helpers/projected-names-utils.d.ts.map +1 -0
  87. package/dist/core/helpers/projected-names-utils.js +40 -0
  88. package/dist/core/helpers/projected-names-utils.js.map +1 -0
  89. package/dist/core/helpers/type-name-utils.d.ts +14 -0
  90. package/dist/core/helpers/type-name-utils.d.ts.map +1 -0
  91. package/dist/core/helpers/type-name-utils.js +122 -0
  92. package/dist/core/helpers/type-name-utils.js.map +1 -0
  93. package/dist/core/helpers/usage-resolver.d.ts +20 -0
  94. package/dist/core/helpers/usage-resolver.d.ts.map +1 -0
  95. package/dist/core/helpers/usage-resolver.js +108 -0
  96. package/dist/core/helpers/usage-resolver.js.map +1 -0
  97. package/dist/core/index.d.ts +26 -0
  98. package/dist/core/index.d.ts.map +1 -0
  99. package/dist/core/index.js +26 -0
  100. package/dist/core/index.js.map +1 -0
  101. package/dist/core/install.d.ts +2 -0
  102. package/dist/core/install.d.ts.map +1 -0
  103. package/dist/core/install.js +26 -0
  104. package/dist/core/install.js.map +1 -0
  105. package/dist/core/library.d.ts +34 -0
  106. package/dist/core/library.d.ts.map +1 -0
  107. package/dist/core/library.js +100 -0
  108. package/dist/core/library.js.map +1 -0
  109. package/dist/core/logger/console-sink.browser.d.ts +4 -0
  110. package/dist/core/logger/console-sink.browser.d.ts.map +1 -0
  111. package/dist/core/logger/console-sink.browser.js +14 -0
  112. package/dist/core/logger/console-sink.browser.js.map +1 -0
  113. package/dist/core/logger/console-sink.d.ts +9 -0
  114. package/dist/core/logger/console-sink.d.ts.map +1 -0
  115. package/dist/core/logger/console-sink.js +81 -0
  116. package/dist/core/logger/console-sink.js.map +1 -0
  117. package/dist/core/logger/index.d.ts +3 -0
  118. package/dist/core/logger/index.d.ts.map +1 -0
  119. package/dist/core/logger/index.js +3 -0
  120. package/dist/core/logger/index.js.map +1 -0
  121. package/dist/core/logger/logger.d.ts +7 -0
  122. package/dist/core/logger/logger.d.ts.map +1 -0
  123. package/dist/core/logger/logger.js +32 -0
  124. package/dist/core/logger/logger.js.map +1 -0
  125. package/dist/core/logger/tracer.d.ts +3 -0
  126. package/dist/core/logger/tracer.d.ts.map +1 -0
  127. package/dist/core/logger/tracer.js +91 -0
  128. package/dist/core/logger/tracer.js.map +1 -0
  129. package/dist/core/manifest.d.ts +21 -0
  130. package/dist/core/manifest.d.ts.map +1 -0
  131. package/dist/core/manifest.js +8 -0
  132. package/dist/core/manifest.js.map +1 -0
  133. package/dist/core/messages.d.ts +2253 -0
  134. package/dist/core/messages.d.ts.map +1 -0
  135. package/dist/core/messages.js +749 -0
  136. package/dist/core/messages.js.map +1 -0
  137. package/dist/core/module-resolver.d.ts +84 -0
  138. package/dist/core/module-resolver.d.ts.map +1 -0
  139. package/dist/core/module-resolver.js +170 -0
  140. package/dist/core/module-resolver.js.map +1 -0
  141. package/dist/core/node-host.browser.d.ts +2 -0
  142. package/dist/core/node-host.browser.d.ts.map +1 -0
  143. package/dist/core/node-host.browser.js +2 -0
  144. package/dist/core/node-host.browser.js.map +1 -0
  145. package/dist/core/node-host.d.ts +7 -0
  146. package/dist/core/node-host.d.ts.map +1 -0
  147. package/dist/core/node-host.js +43 -0
  148. package/dist/core/node-host.js.map +1 -0
  149. package/dist/core/nonascii.d.ts +2 -0
  150. package/dist/core/nonascii.d.ts.map +1 -0
  151. package/dist/core/nonascii.js +712 -0
  152. package/dist/core/nonascii.js.map +1 -0
  153. package/dist/core/options.d.ts +46 -0
  154. package/dist/core/options.d.ts.map +1 -0
  155. package/dist/core/options.js +2 -0
  156. package/dist/core/options.js.map +1 -0
  157. package/dist/core/parser.d.ts +17 -0
  158. package/dist/core/parser.d.ts.map +1 -0
  159. package/dist/core/parser.js +2561 -0
  160. package/dist/core/parser.js.map +1 -0
  161. package/dist/core/path-utils.d.ts +193 -0
  162. package/dist/core/path-utils.d.ts.map +1 -0
  163. package/dist/core/path-utils.js +427 -0
  164. package/dist/core/path-utils.js.map +1 -0
  165. package/dist/core/program.d.ts +104 -0
  166. package/dist/core/program.d.ts.map +1 -0
  167. package/dist/core/program.js +898 -0
  168. package/dist/core/program.js.map +1 -0
  169. package/dist/core/projection-members.d.ts +8 -0
  170. package/dist/core/projection-members.d.ts.map +1 -0
  171. package/dist/core/projection-members.js +387 -0
  172. package/dist/core/projection-members.js.map +1 -0
  173. package/dist/core/projector.d.ts +26 -0
  174. package/dist/core/projector.d.ts.map +1 -0
  175. package/dist/core/projector.js +523 -0
  176. package/dist/core/projector.js.map +1 -0
  177. package/dist/core/scanner.d.ts +125 -0
  178. package/dist/core/scanner.d.ts.map +1 -0
  179. package/dist/core/scanner.js +1012 -0
  180. package/dist/core/scanner.js.map +1 -0
  181. package/dist/core/schema-validator.d.ts +6 -0
  182. package/dist/core/schema-validator.d.ts.map +1 -0
  183. package/dist/core/schema-validator.js +38 -0
  184. package/dist/core/schema-validator.js.map +1 -0
  185. package/dist/core/semantic-walker.d.ts +53 -0
  186. package/dist/core/semantic-walker.d.ts.map +1 -0
  187. package/dist/core/semantic-walker.js +355 -0
  188. package/dist/core/semantic-walker.js.map +1 -0
  189. package/dist/core/type-utils.d.ts +49 -0
  190. package/dist/core/type-utils.d.ts.map +1 -0
  191. package/dist/core/type-utils.js +95 -0
  192. package/dist/core/type-utils.js.map +1 -0
  193. package/dist/core/types.d.ts +1345 -0
  194. package/dist/core/types.d.ts.map +1 -0
  195. package/dist/core/types.js +105 -0
  196. package/dist/core/types.js.map +1 -0
  197. package/dist/core/util.d.ts +150 -0
  198. package/dist/core/util.d.ts.map +1 -0
  199. package/dist/core/util.js +417 -0
  200. package/dist/core/util.js.map +1 -0
  201. package/dist/emitter-framework/asset-emitter.d.ts +5 -0
  202. package/dist/emitter-framework/asset-emitter.d.ts.map +1 -0
  203. package/dist/emitter-framework/asset-emitter.js +610 -0
  204. package/dist/emitter-framework/asset-emitter.js.map +1 -0
  205. package/dist/emitter-framework/builders/array-builder.d.ts +7 -0
  206. package/dist/emitter-framework/builders/array-builder.d.ts.map +1 -0
  207. package/dist/emitter-framework/builders/array-builder.js +45 -0
  208. package/dist/emitter-framework/builders/array-builder.js.map +1 -0
  209. package/dist/emitter-framework/builders/object-builder.d.ts +9 -0
  210. package/dist/emitter-framework/builders/object-builder.d.ts.map +1 -0
  211. package/dist/emitter-framework/builders/object-builder.js +30 -0
  212. package/dist/emitter-framework/builders/object-builder.js.map +1 -0
  213. package/dist/emitter-framework/builders/string-builder.d.ts +13 -0
  214. package/dist/emitter-framework/builders/string-builder.d.ts.map +1 -0
  215. package/dist/emitter-framework/builders/string-builder.js +98 -0
  216. package/dist/emitter-framework/builders/string-builder.js.map +1 -0
  217. package/dist/emitter-framework/custom-key-map.d.ts +29 -0
  218. package/dist/emitter-framework/custom-key-map.d.ts.map +1 -0
  219. package/dist/emitter-framework/custom-key-map.js +62 -0
  220. package/dist/emitter-framework/custom-key-map.js.map +1 -0
  221. package/dist/emitter-framework/index.d.ts +8 -0
  222. package/dist/emitter-framework/index.d.ts.map +1 -0
  223. package/dist/emitter-framework/index.js +8 -0
  224. package/dist/emitter-framework/index.js.map +1 -0
  225. package/dist/emitter-framework/placeholder.d.ts +12 -0
  226. package/dist/emitter-framework/placeholder.d.ts.map +1 -0
  227. package/dist/emitter-framework/placeholder.js +27 -0
  228. package/dist/emitter-framework/placeholder.js.map +1 -0
  229. package/dist/emitter-framework/type-emitter.d.ts +314 -0
  230. package/dist/emitter-framework/type-emitter.d.ts.map +1 -0
  231. package/dist/emitter-framework/type-emitter.js +612 -0
  232. package/dist/emitter-framework/type-emitter.js.map +1 -0
  233. package/dist/emitter-framework/types.d.ts +124 -0
  234. package/dist/emitter-framework/types.d.ts.map +1 -0
  235. package/dist/emitter-framework/types.js +39 -0
  236. package/dist/emitter-framework/types.js.map +1 -0
  237. package/dist/formatter/index.d.ts +11 -0
  238. package/dist/formatter/index.d.ts.map +1 -0
  239. package/dist/formatter/index.js +28 -0
  240. package/dist/formatter/index.js.map +1 -0
  241. package/dist/formatter/parser.d.ts +16 -0
  242. package/dist/formatter/parser.d.ts.map +1 -0
  243. package/dist/formatter/parser.js +23 -0
  244. package/dist/formatter/parser.js.map +1 -0
  245. package/dist/formatter/print/comment-handler.d.ts +7 -0
  246. package/dist/formatter/print/comment-handler.d.ts.map +1 -0
  247. package/dist/formatter/print/comment-handler.js +81 -0
  248. package/dist/formatter/print/comment-handler.js.map +1 -0
  249. package/dist/formatter/print/index.d.ts +3 -0
  250. package/dist/formatter/print/index.d.ts.map +1 -0
  251. package/dist/formatter/print/index.js +3 -0
  252. package/dist/formatter/print/index.js.map +1 -0
  253. package/dist/formatter/print/needs-parens.d.ts +10 -0
  254. package/dist/formatter/print/needs-parens.d.ts.map +1 -0
  255. package/dist/formatter/print/needs-parens.js +27 -0
  256. package/dist/formatter/print/needs-parens.js.map +1 -0
  257. package/dist/formatter/print/printer.d.ts +62 -0
  258. package/dist/formatter/print/printer.d.ts.map +1 -0
  259. package/dist/formatter/print/printer.js +1025 -0
  260. package/dist/formatter/print/printer.js.map +1 -0
  261. package/dist/formatter/print/types.d.ts +9 -0
  262. package/dist/formatter/print/types.d.ts.map +1 -0
  263. package/dist/formatter/print/types.js +2 -0
  264. package/dist/formatter/print/types.js.map +1 -0
  265. package/dist/init/index.d.ts +2 -0
  266. package/dist/init/index.d.ts.map +1 -0
  267. package/dist/init/index.js +2 -0
  268. package/dist/init/index.js.map +1 -0
  269. package/dist/init/init-template.d.ts +45 -0
  270. package/dist/init/init-template.d.ts.map +1 -0
  271. package/dist/init/init-template.js +45 -0
  272. package/dist/init/init-template.js.map +1 -0
  273. package/dist/init/init.d.ts +49 -0
  274. package/dist/init/init.d.ts.map +1 -0
  275. package/dist/init/init.js +224 -0
  276. package/dist/init/init.js.map +1 -0
  277. package/dist/lib/decorators.d.ts +222 -0
  278. package/dist/lib/decorators.d.ts.map +1 -0
  279. package/dist/lib/decorators.js +745 -0
  280. package/dist/lib/decorators.js.map +1 -0
  281. package/dist/lib/service.d.ts +38 -0
  282. package/dist/lib/service.d.ts.map +1 -0
  283. package/dist/lib/service.js +78 -0
  284. package/dist/lib/service.js.map +1 -0
  285. package/dist/manifest.js +4 -0
  286. package/dist/server/completion.d.ts +10 -0
  287. package/dist/server/completion.d.ts.map +1 -0
  288. package/dist/server/completion.js +207 -0
  289. package/dist/server/completion.js.map +1 -0
  290. package/dist/server/index.d.ts +3 -0
  291. package/dist/server/index.d.ts.map +1 -0
  292. package/dist/server/index.js +3 -0
  293. package/dist/server/index.js.map +1 -0
  294. package/dist/server/language-config.d.ts +195 -0
  295. package/dist/server/language-config.d.ts.map +1 -0
  296. package/dist/server/language-config.js +102 -0
  297. package/dist/server/language-config.js.map +1 -0
  298. package/dist/server/server.d.ts +2 -0
  299. package/dist/server/server.d.ts.map +1 -0
  300. package/dist/server/server.js +131 -0
  301. package/dist/server/server.js.map +1 -0
  302. package/dist/server/serverlib.d.ts +72 -0
  303. package/dist/server/serverlib.d.ts.map +1 -0
  304. package/dist/server/serverlib.js +1034 -0
  305. package/dist/server/serverlib.js.map +1 -0
  306. package/dist/server/symbol-structure.d.ts +4 -0
  307. package/dist/server/symbol-structure.d.ts.map +1 -0
  308. package/dist/server/symbol-structure.js +121 -0
  309. package/dist/server/symbol-structure.js.map +1 -0
  310. package/dist/server/tmlanguage.d.ts +3 -0
  311. package/dist/server/tmlanguage.d.ts.map +1 -0
  312. package/dist/server/tmlanguage.js +713 -0
  313. package/dist/server/tmlanguage.js.map +1 -0
  314. package/dist/server/type-details.d.ts +11 -0
  315. package/dist/server/type-details.d.ts.map +1 -0
  316. package/dist/server/type-details.js +72 -0
  317. package/dist/server/type-details.js.map +1 -0
  318. package/dist/server/type-signature.d.ts +2 -0
  319. package/dist/server/type-signature.d.ts.map +1 -0
  320. package/dist/server/type-signature.js +108 -0
  321. package/dist/server/type-signature.js.map +1 -0
  322. package/dist/testing/expect.d.ts +49 -0
  323. package/dist/testing/expect.d.ts.map +1 -0
  324. package/dist/testing/expect.js +83 -0
  325. package/dist/testing/expect.js.map +1 -0
  326. package/dist/testing/index.d.ts +6 -0
  327. package/dist/testing/index.d.ts.map +1 -0
  328. package/dist/testing/index.js +6 -0
  329. package/dist/testing/index.js.map +1 -0
  330. package/dist/testing/test-host.d.ts +14 -0
  331. package/dist/testing/test-host.d.ts.map +1 -0
  332. package/dist/testing/test-host.js +271 -0
  333. package/dist/testing/test-host.js.map +1 -0
  334. package/dist/testing/test-server-host.d.ts +39 -0
  335. package/dist/testing/test-server-host.d.ts.map +1 -0
  336. package/dist/testing/test-server-host.js +112 -0
  337. package/dist/testing/test-server-host.js.map +1 -0
  338. package/dist/testing/test-utils.d.ts +22 -0
  339. package/dist/testing/test-utils.d.ts.map +1 -0
  340. package/dist/testing/test-utils.js +60 -0
  341. package/dist/testing/test-utils.js.map +1 -0
  342. package/dist/testing/types.d.ts +69 -0
  343. package/dist/testing/types.d.ts.map +1 -0
  344. package/dist/testing/types.js +7 -0
  345. package/dist/testing/types.js.map +1 -0
  346. package/dist/typespec.tmLanguage +1760 -0
  347. package/lib/decorators.tsp +420 -0
  348. package/lib/lib.tsp +158 -0
  349. package/lib/main.tsp +4 -0
  350. package/lib/projected-names.tsp +94 -0
  351. package/lib/reflection.tsp +10 -0
  352. package/package.json +119 -0
@@ -0,0 +1,417 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
+ if (kind === "m") throw new TypeError("Private method is not writable");
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
+ };
12
+ var _MultiKeyMap_currentId, _MultiKeyMap_idMap, _MultiKeyMap_items, _Queue_elements, _Queue_headIndex, _DuplicateTracker_entries;
13
+ import { createSourceFile } from "./diagnostics.js";
14
+ import { createDiagnostic } from "./messages.js";
15
+ import { getAnyExtensionFromPath, getDirectoryPath, isPathAbsolute, isUrl, joinPaths, normalizePath, resolvePath, } from "./path-utils.js";
16
+ import { NoTarget, } from "./types.js";
17
+ export { typespecVersion } from "./manifest.js";
18
+ export { NodeHost } from "./node-host.js";
19
+ export class ExternalError extends Error {
20
+ }
21
+ /**
22
+ * Recursively calls Object.freeze such that all objects and arrays
23
+ * referenced are frozen.
24
+ *
25
+ * Does not support cycles. Intended to be used only on plain data that can
26
+ * be directly represented in JSON.
27
+ */
28
+ export function deepFreeze(value) {
29
+ if (Array.isArray(value)) {
30
+ value.forEach(deepFreeze);
31
+ }
32
+ else if (typeof value === "object") {
33
+ for (const prop in value) {
34
+ deepFreeze(value[prop]);
35
+ }
36
+ }
37
+ return Object.freeze(value);
38
+ }
39
+ /**
40
+ * Deeply clones an object.
41
+ *
42
+ * Does not support cycles. Intended to be used only on plain data that can
43
+ * be directly represented in JSON.
44
+ */
45
+ export function deepClone(value) {
46
+ if (Array.isArray(value)) {
47
+ return value.map(deepClone);
48
+ }
49
+ if (typeof value === "object") {
50
+ const obj = {};
51
+ for (const prop in value) {
52
+ obj[prop] = deepClone(value[prop]);
53
+ }
54
+ return obj;
55
+ }
56
+ return value;
57
+ }
58
+ /**
59
+ * Checks if two objects are deeply equal.
60
+ *
61
+ * Does not support cycles. Intended to be used only on plain data that can
62
+ * be directly represented in JSON.
63
+ */
64
+ export function deepEquals(left, right) {
65
+ if (left === right) {
66
+ return true;
67
+ }
68
+ if (left === null || right === null || typeof left !== "object" || typeof right !== "object") {
69
+ return false;
70
+ }
71
+ if (Array.isArray(left)) {
72
+ return Array.isArray(right) ? arrayEquals(left, right, deepEquals) : false;
73
+ }
74
+ return mapEquals(new Map(Object.entries(left)), new Map(Object.entries(right)), deepEquals);
75
+ }
76
+ /**
77
+ * Check if two arrays have the same elements.
78
+ *
79
+ * @param equals Optional callback for element equality comparison.
80
+ * Default is to compare by identity using `===`.
81
+ */
82
+ export function arrayEquals(left, right, equals = (x, y) => x === y) {
83
+ if (left === right) {
84
+ return true;
85
+ }
86
+ if (left.length !== right.length) {
87
+ return false;
88
+ }
89
+ for (let i = 0; i < left.length; i++) {
90
+ if (!equals(left[i], right[i])) {
91
+ return false;
92
+ }
93
+ }
94
+ return true;
95
+ }
96
+ /**
97
+ * Check if two maps have the same entries.
98
+ *
99
+ * @param equals Optional callback for value equality comparison.
100
+ * Default is to compare by identity using `===`.
101
+ */
102
+ export function mapEquals(left, right, equals = (x, y) => x === y) {
103
+ if (left === right) {
104
+ return true;
105
+ }
106
+ if (left.size !== right.size) {
107
+ return false;
108
+ }
109
+ for (const [key, value] of left) {
110
+ if (!right.has(key) || !equals(value, right.get(key))) {
111
+ return false;
112
+ }
113
+ }
114
+ return true;
115
+ }
116
+ export async function getNormalizedRealPath(host, path) {
117
+ return normalizePath(await host.realpath(path));
118
+ }
119
+ export async function doIO(action, path, reportDiagnostic, options) {
120
+ var _a;
121
+ let result;
122
+ try {
123
+ result = await action(path);
124
+ }
125
+ catch (e) {
126
+ let diagnostic;
127
+ let target = (_a = options === null || options === void 0 ? void 0 : options.diagnosticTarget) !== null && _a !== void 0 ? _a : NoTarget;
128
+ // blame the JS file, not the TypeSpec import statement for JS syntax errors.
129
+ if (e instanceof SyntaxError && (options === null || options === void 0 ? void 0 : options.jsDiagnosticTarget)) {
130
+ target = options.jsDiagnosticTarget;
131
+ }
132
+ switch (e.code) {
133
+ case "ENOENT":
134
+ if (options === null || options === void 0 ? void 0 : options.allowFileNotFound) {
135
+ return undefined;
136
+ }
137
+ diagnostic = createDiagnostic({ code: "file-not-found", target, format: { path } });
138
+ break;
139
+ default:
140
+ diagnostic = createDiagnostic({
141
+ code: "file-load",
142
+ target,
143
+ format: { message: e.message },
144
+ });
145
+ break;
146
+ }
147
+ reportDiagnostic(diagnostic);
148
+ return undefined;
149
+ }
150
+ return result;
151
+ }
152
+ export async function loadFile(host, path, load, reportDiagnostic, options) {
153
+ const file = await doIO(host.readFile, path, reportDiagnostic, options);
154
+ if (!file) {
155
+ return [undefined, createSourceFile("", path)];
156
+ }
157
+ let data;
158
+ try {
159
+ data = load(file.text);
160
+ }
161
+ catch (e) {
162
+ reportDiagnostic({
163
+ code: "file-load",
164
+ message: e.message,
165
+ severity: "error",
166
+ target: { file, pos: 1, end: 1 },
167
+ });
168
+ return [undefined, file];
169
+ }
170
+ return [data, file];
171
+ }
172
+ export async function readUrlOrPath(host, pathOrUrl) {
173
+ if (isUrl(pathOrUrl)) {
174
+ return host.readUrl(pathOrUrl);
175
+ }
176
+ return host.readFile(pathOrUrl);
177
+ }
178
+ export function resolveRelativeUrlOrPath(base, relativeOrAbsolute) {
179
+ if (isUrl(relativeOrAbsolute)) {
180
+ return relativeOrAbsolute;
181
+ }
182
+ else if (isPathAbsolute(relativeOrAbsolute)) {
183
+ return relativeOrAbsolute;
184
+ }
185
+ else if (isUrl(base)) {
186
+ return new URL(relativeOrAbsolute, base).href;
187
+ }
188
+ else {
189
+ return resolvePath(base, relativeOrAbsolute);
190
+ }
191
+ }
192
+ /**
193
+ * A specially typed version of `Array.isArray` to work around [this issue](https://github.com/microsoft/TypeScript/issues/17002).
194
+ */
195
+ export function isArray(
196
+ // eslint-disable-next-line @typescript-eslint/ban-types
197
+ arg) {
198
+ return Array.isArray(arg);
199
+ }
200
+ /**
201
+ * Check if argument is not undefined.
202
+ */
203
+ export function isDefined(arg) {
204
+ return arg !== undefined;
205
+ }
206
+ /**
207
+ * Remove undefined properties from object.
208
+ */
209
+ export function omitUndefined(data) {
210
+ return Object.fromEntries(Object.entries(data).filter(([k, v]) => v !== undefined));
211
+ }
212
+ /**
213
+ * Look for the project root by looking up until a `package.json` is found.
214
+ * @param path Path to start looking
215
+ * @param lookIn
216
+ */
217
+ export async function findProjectRoot(host, path) {
218
+ let current = path;
219
+ while (true) {
220
+ const pkgPath = joinPaths(current, "package.json");
221
+ const stat = await doIO(() => host.stat(pkgPath), pkgPath, () => { });
222
+ if (stat === null || stat === void 0 ? void 0 : stat.isFile()) {
223
+ return current;
224
+ }
225
+ const parent = getDirectoryPath(current);
226
+ if (parent === current) {
227
+ return undefined;
228
+ }
229
+ current = parent;
230
+ }
231
+ }
232
+ /**
233
+ * Extract package.json's tspMain entry point in a given path. Note, it takes into
234
+ * back compat for deprecated cadlMain
235
+ * @param path Path that contains package.json
236
+ * @param reportDiagnostic optional diagnostic handler.
237
+ */
238
+ export function resolveTspMain(packageJson) {
239
+ if ((packageJson === null || packageJson === void 0 ? void 0 : packageJson.tspMain) !== undefined) {
240
+ return packageJson.tspMain;
241
+ }
242
+ if ((packageJson === null || packageJson === void 0 ? void 0 : packageJson.cadlMain) !== undefined) {
243
+ return packageJson.cadlMain;
244
+ }
245
+ return undefined;
246
+ }
247
+ /**
248
+ * A map keyed by a set of objects.
249
+ *
250
+ * This is likely non-optimal.
251
+ */
252
+ export class MultiKeyMap {
253
+ constructor() {
254
+ _MultiKeyMap_currentId.set(this, 0);
255
+ _MultiKeyMap_idMap.set(this, new WeakMap());
256
+ _MultiKeyMap_items.set(this, new Map());
257
+ }
258
+ get(items) {
259
+ return __classPrivateFieldGet(this, _MultiKeyMap_items, "f").get(this.compositeKeyFor(items));
260
+ }
261
+ set(items, value) {
262
+ const key = this.compositeKeyFor(items);
263
+ __classPrivateFieldGet(this, _MultiKeyMap_items, "f").set(key, value);
264
+ }
265
+ compositeKeyFor(items) {
266
+ return items.map((i) => this.keyFor(i)).join(",");
267
+ }
268
+ keyFor(item) {
269
+ var _a, _b;
270
+ if (__classPrivateFieldGet(this, _MultiKeyMap_idMap, "f").has(item)) {
271
+ return __classPrivateFieldGet(this, _MultiKeyMap_idMap, "f").get(item);
272
+ }
273
+ const id = (__classPrivateFieldSet(this, _MultiKeyMap_currentId, (_b = __classPrivateFieldGet(this, _MultiKeyMap_currentId, "f"), _a = _b++, _b), "f"), _a);
274
+ __classPrivateFieldGet(this, _MultiKeyMap_idMap, "f").set(item, id);
275
+ return id;
276
+ }
277
+ }
278
+ _MultiKeyMap_currentId = new WeakMap(), _MultiKeyMap_idMap = new WeakMap(), _MultiKeyMap_items = new WeakMap();
279
+ /**
280
+ * A map with exactly two keys per value.
281
+ *
282
+ * Functionally the same as `MultiKeyMap<[K1, K2], V>`, but more efficient.
283
+ */
284
+ export class TwoLevelMap extends Map {
285
+ /**
286
+ * Get an existing entry in the map or add a new one if not found.
287
+ *
288
+ * @param key1 The first key
289
+ * @param key2 The second key
290
+ * @param create A callback to create the new entry when not found.
291
+ * @param sentinel An optional sentinel value to use to indicate that the
292
+ * entry is being created.
293
+ */
294
+ getOrAdd(key1, key2, create, sentinel) {
295
+ let map = this.get(key1);
296
+ if (map === undefined) {
297
+ map = new Map();
298
+ this.set(key1, map);
299
+ }
300
+ let entry = map.get(key2);
301
+ if (entry === undefined) {
302
+ if (sentinel !== undefined) {
303
+ map.set(key2, sentinel);
304
+ }
305
+ entry = create();
306
+ map.set(key2, entry);
307
+ }
308
+ return entry;
309
+ }
310
+ }
311
+ // Adapted from https://github.com/microsoft/TypeScript/blob/bc52ff6f4be9347981de415a35da90497eae84ac/src/compiler/core.ts#L1507
312
+ export class Queue {
313
+ constructor(elements) {
314
+ var _a;
315
+ _Queue_elements.set(this, void 0);
316
+ _Queue_headIndex.set(this, 0);
317
+ __classPrivateFieldSet(this, _Queue_elements, (_a = elements === null || elements === void 0 ? void 0 : elements.slice()) !== null && _a !== void 0 ? _a : [], "f");
318
+ }
319
+ isEmpty() {
320
+ return __classPrivateFieldGet(this, _Queue_headIndex, "f") === __classPrivateFieldGet(this, _Queue_elements, "f").length;
321
+ }
322
+ enqueue(...items) {
323
+ __classPrivateFieldGet(this, _Queue_elements, "f").push(...items);
324
+ }
325
+ dequeue() {
326
+ var _a;
327
+ if (this.isEmpty()) {
328
+ throw new Error("Queue is empty.");
329
+ }
330
+ const result = __classPrivateFieldGet(this, _Queue_elements, "f")[__classPrivateFieldGet(this, _Queue_headIndex, "f")];
331
+ __classPrivateFieldGet(this, _Queue_elements, "f")[__classPrivateFieldGet(this, _Queue_headIndex, "f")] = undefined; // Don't keep referencing dequeued item
332
+ __classPrivateFieldSet(this, _Queue_headIndex, // Don't keep referencing dequeued item
333
+ (_a = __classPrivateFieldGet(this, _Queue_headIndex, "f"), _a++, _a), "f");
334
+ // If more than half of the queue is empty, copy the remaining elements to the
335
+ // front and shrink the array (unless we'd be saving fewer than 100 slots)
336
+ if (__classPrivateFieldGet(this, _Queue_headIndex, "f") > 100 && __classPrivateFieldGet(this, _Queue_headIndex, "f") > __classPrivateFieldGet(this, _Queue_elements, "f").length >> 1) {
337
+ const newLength = __classPrivateFieldGet(this, _Queue_elements, "f").length - __classPrivateFieldGet(this, _Queue_headIndex, "f");
338
+ __classPrivateFieldGet(this, _Queue_elements, "f").copyWithin(0, __classPrivateFieldGet(this, _Queue_headIndex, "f"));
339
+ __classPrivateFieldGet(this, _Queue_elements, "f").length = newLength;
340
+ __classPrivateFieldSet(this, _Queue_headIndex, 0, "f");
341
+ }
342
+ return result;
343
+ }
344
+ }
345
+ _Queue_elements = new WeakMap(), _Queue_headIndex = new WeakMap();
346
+ /**
347
+ * Casts away readonly typing.
348
+ *
349
+ * Use it like this when it is safe to override readonly typing:
350
+ * mutate(item).prop = value;
351
+ */
352
+ export function mutate(value) {
353
+ return value;
354
+ }
355
+ export function getSourceFileKindFromExt(path) {
356
+ const ext = getAnyExtensionFromPath(path);
357
+ if (ext === ".js" || ext === ".mjs") {
358
+ return "js";
359
+ }
360
+ else if (ext === ".tsp" || ext === ".cadl") {
361
+ return "typespec";
362
+ }
363
+ else {
364
+ return undefined;
365
+ }
366
+ }
367
+ export function createStringMap(caseInsensitive) {
368
+ return caseInsensitive ? new CaseInsensitiveMap() : new Map();
369
+ }
370
+ class CaseInsensitiveMap extends Map {
371
+ get(key) {
372
+ return super.get(key.toUpperCase());
373
+ }
374
+ set(key, value) {
375
+ return super.set(key.toUpperCase(), value);
376
+ }
377
+ has(key) {
378
+ return super.has(key.toUpperCase());
379
+ }
380
+ delete(key) {
381
+ return super.delete(key.toUpperCase());
382
+ }
383
+ }
384
+ /**
385
+ * Helper class to track duplicate instance
386
+ */
387
+ export class DuplicateTracker {
388
+ constructor() {
389
+ _DuplicateTracker_entries.set(this, new Map());
390
+ }
391
+ /**
392
+ * Track usage of K.
393
+ * @param k key that is being checked for duplicate.
394
+ * @param v value that map to the key
395
+ */
396
+ track(k, v) {
397
+ const existing = __classPrivateFieldGet(this, _DuplicateTracker_entries, "f").get(k);
398
+ if (existing === undefined) {
399
+ __classPrivateFieldGet(this, _DuplicateTracker_entries, "f").set(k, [v]);
400
+ }
401
+ else {
402
+ existing.push(v);
403
+ }
404
+ }
405
+ /**
406
+ * Return iterator of all the duplicate entries.
407
+ */
408
+ *entries() {
409
+ for (const [k, v] of __classPrivateFieldGet(this, _DuplicateTracker_entries, "f").entries()) {
410
+ if (v.length > 1) {
411
+ yield [k, v];
412
+ }
413
+ }
414
+ }
415
+ }
416
+ _DuplicateTracker_entries = new WeakMap();
417
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../core/util.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,gBAAgB,EAAqB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,cAAc,EACd,KAAK,EACL,SAAS,EACT,aAAa,EACb,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAIL,QAAQ,GAKT,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,OAAO,aAAc,SAAQ,KAAK;CAAG;AAE3C;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAI,KAAQ;IACpC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;KAC3B;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;SACzB;KACF;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAI,KAAQ;IACnC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAQ,CAAC;KACpC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,MAAM,GAAG,GAAQ,EAAE,CAAC;QACpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;SACpC;QACD,OAAO,GAAG,CAAC;KACZ;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,IAAa,EAAE,KAAc;IACtD,IAAI,IAAI,KAAK,KAAK,EAAE;QAClB,OAAO,IAAI,CAAC;KACb;IACD,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC5F,OAAO,KAAK,CAAC;KACd;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACvB,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;KAC5E;IACD,OAAO,SAAS,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAC9F,CAAC;AAID;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACzB,IAAS,EACT,KAAU,EACV,SAA8B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC;IAE/C,IAAI,IAAI,KAAK,KAAK,EAAE;QAClB,OAAO,IAAI,CAAC;KACb;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;QAChC,OAAO,KAAK,CAAC;KACd;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;YAC9B,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CACvB,IAAe,EACf,KAAgB,EAChB,SAA8B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC;IAE/C,IAAI,IAAI,KAAK,KAAK,EAAE;QAClB,OAAO,IAAI,CAAC;KACb;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE;QAC5B,OAAO,KAAK,CAAC;KACd;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;QAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,EAAE;YACtD,OAAO,KAAK,CAAC;SACd;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAAkB,EAAE,IAAY;IAC1E,OAAO,aAAa,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,MAAoC,EACpC,IAAY,EACZ,gBAAmC,EACnC,OAA6B;;IAE7B,IAAI,MAAM,CAAC;IACX,IAAI;QACF,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;KAC7B;IAAC,OAAO,CAAM,EAAE;QACf,IAAI,UAAsB,CAAC;QAC3B,IAAI,MAAM,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,mCAAI,QAAQ,CAAC;QAEnD,6EAA6E;QAC7E,IAAI,CAAC,YAAY,WAAW,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,kBAAkB,CAAA,EAAE;YAC3D,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;SACrC;QAED,QAAQ,CAAC,CAAC,IAAI,EAAE;YACd,KAAK,QAAQ;gBACX,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,EAAE;oBAC9B,OAAO,SAAS,CAAC;iBAClB;gBACD,UAAU,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;gBACpF,MAAM;YACR;gBACE,UAAU,GAAG,gBAAgB,CAAC;oBAC5B,IAAI,EAAE,WAAW;oBACjB,MAAM;oBACN,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;iBAC/B,CAAC,CAAC;gBACH,MAAM;SACT;QAED,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC7B,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,IAAkB,EAClB,IAAY,EACZ,IAA6B,EAC7B,gBAAmC,EACnC,OAA6B;IAE7B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACxE,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,CAAC,SAAS,EAAE,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;KAChD;IACD,IAAI,IAAO,CAAC;IACZ,IAAI;QACF,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACxB;IAAC,OAAO,CAAM,EAAE;QACf,gBAAgB,CAAC;YACf,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,QAAQ,EAAE,OAAO;YACjB,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;SACjC,CAAC,CAAC;QACH,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;KAC1B;IAED,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAkB,EAAE,SAAiB;IACvE,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;KAChC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAY,EAAE,kBAA0B;IAC/E,IAAI,KAAK,CAAC,kBAAkB,CAAC,EAAE;QAC7B,OAAO,kBAAkB,CAAC;KAC3B;SAAM,IAAI,cAAc,CAAC,kBAAkB,CAAC,EAAE;QAC7C,OAAO,kBAAkB,CAAC;KAC3B;SAAM,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;QACtB,OAAO,IAAI,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC;KAC/C;SAAM;QACL,OAAO,WAAW,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;KAC9C;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO;AACrB,wDAAwD;AACxD,GAAW;IAEX,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAI,GAAkB;IAC7C,OAAO,GAAG,KAAK,SAAS,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAoC,IAAO;IACtE,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAQ,CAAC;AAC7F,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAkB,EAClB,IAAY;IAEZ,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,OAAO,IAAI,EAAE;QACX,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CACrB,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EACxB,OAAO,EACP,GAAG,EAAE,GAAE,CAAC,CACT,CAAC;QACF,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,EAAE,EAAE;YAClB,OAAO,OAAO,CAAC;SAChB;QACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,MAAM,KAAK,OAAO,EAAE;YACtB,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,GAAG,MAAM,CAAC;KAClB;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,WAAgB;IAC7C,IAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,MAAK,SAAS,EAAE;QACtC,OAAO,WAAW,CAAC,OAAO,CAAC;KAC5B;IACD,IAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,MAAK,SAAS,EAAE;QACvC,OAAO,WAAW,CAAC,QAAQ,CAAC;KAC7B;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,WAAW;IAAxB;QACE,iCAAa,CAAC,EAAC;QACf,6BAAS,IAAI,OAAO,EAAkB,EAAC;QACvC,6BAAS,IAAI,GAAG,EAAa,EAAC;IAwBhC,CAAC;IAtBC,GAAG,CAAC,KAAQ;QACV,OAAO,uBAAA,IAAI,0BAAO,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,GAAG,CAAC,KAAQ,EAAE,KAAQ;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACxC,uBAAA,IAAI,0BAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAEO,eAAe,CAAC,KAAQ;QAC9B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC;IAEO,MAAM,CAAC,IAAY;;QACzB,IAAI,uBAAA,IAAI,0BAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACzB,OAAO,uBAAA,IAAI,0BAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SAC9B;QAED,MAAM,EAAE,GAAG,CAAA,qDAAA,CAAA,8DAAe,EAAf,KAAA,IAAiB,IAAA,CAAA,MAAA,IAAA,CAAA,CAAC;QAC7B,uBAAA,IAAI,0BAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;;AAED;;;;GAIG;AACH,MAAM,OAAO,WAAuB,SAAQ,GAAmB;IAC7D;;;;;;;;OAQG;IACH,QAAQ,CAAC,IAAQ,EAAE,IAAQ,EAAE,MAAe,EAAE,QAAY;QACxD,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,GAAG,KAAK,SAAS,EAAE;YACrB,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SACrB;QACD,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAC1B,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;aACzB;YACD,KAAK,GAAG,MAAM,EAAE,CAAC;YACjB,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACtB;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,gIAAgI;AAChI,MAAM,OAAO,KAAK;IAIhB,YAAY,QAAc;;QAH1B,kCAAe;QACf,2BAAa,CAAC,EAAC;QAGb,uBAAA,IAAI,mBAAa,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,EAAE,mCAAI,EAAE,MAAA,CAAC;IAC3C,CAAC;IAED,OAAO;QACL,OAAO,uBAAA,IAAI,wBAAW,KAAK,uBAAA,IAAI,uBAAU,CAAC,MAAM,CAAC;IACnD,CAAC;IAED,OAAO,CAAC,GAAG,KAAU;QACnB,uBAAA,IAAI,uBAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,OAAO;;QACL,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;SACpC;QAED,MAAM,MAAM,GAAG,uBAAA,IAAI,uBAAU,CAAC,uBAAA,IAAI,wBAAW,CAAC,CAAC;QAC/C,uBAAA,IAAI,uBAAU,CAAC,uBAAA,IAAI,wBAAW,CAAC,GAAG,SAAU,CAAC,CAAC,uCAAuC;QACrF,+CAD8C,uCAAuC;QACrF,CAAA,wDAAe,EAAf,IAAiB,IAAA,CAAA,MAAA,CAAC;QAElB,8EAA8E;QAC9E,0EAA0E;QAC1E,IAAI,uBAAA,IAAI,wBAAW,GAAG,GAAG,IAAI,uBAAA,IAAI,wBAAW,GAAG,uBAAA,IAAI,uBAAU,CAAC,MAAM,IAAI,CAAC,EAAE;YACzE,MAAM,SAAS,GAAG,uBAAA,IAAI,uBAAU,CAAC,MAAM,GAAG,uBAAA,IAAI,wBAAW,CAAC;YAC1D,uBAAA,IAAI,uBAAU,CAAC,UAAU,CAAC,CAAC,EAAE,uBAAA,IAAI,wBAAW,CAAC,CAAC;YAC9C,uBAAA,IAAI,uBAAU,CAAC,MAAM,GAAG,SAAS,CAAC;YAClC,uBAAA,IAAI,oBAAc,CAAC,MAAA,CAAC;SACrB;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;;AAcD;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAI,KAAQ;IAChC,OAAO,KAAmB,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,MAAM,GAAG,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,EAAE;QACnC,OAAO,IAAI,CAAC;KACb;SAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,EAAE;QAC5C,OAAO,UAAU,CAAC;KACnB;SAAM;QACL,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAI,eAAwB;IACzD,OAAO,eAAe,CAAC,CAAC,CAAC,IAAI,kBAAkB,EAAK,CAAC,CAAC,CAAC,IAAI,GAAG,EAAa,CAAC;AAC9E,CAAC;AAED,MAAM,kBAAsB,SAAQ,GAAc;IAChD,GAAG,CAAC,GAAW;QACb,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,GAAG,CAAC,GAAW,EAAE,KAAQ;QACvB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IACD,GAAG,CAAC,GAAW;QACb,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,CAAC,GAAW;QAChB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACzC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAA7B;QACE,oCAAW,IAAI,GAAG,EAAU,EAAC;IA0B/B,CAAC;IAxBC;;;;OAIG;IACH,KAAK,CAAC,CAAI,EAAE,CAAI;QACd,MAAM,QAAQ,GAAG,uBAAA,IAAI,iCAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,uBAAA,IAAI,iCAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3B;aAAM;YACL,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAClB;IACH,CAAC;IAED;;OAEG;IACH,CAAC,OAAO;QACN,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,uBAAA,IAAI,iCAAS,CAAC,OAAO,EAAE,EAAE;YAC5C,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACd;SACF;IACH,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ import { EmitContext, Program } from "../core/index.js";
2
+ import { TypeEmitter } from "./type-emitter.js";
3
+ import { AssetEmitter } from "./types.js";
4
+ export declare function createAssetEmitter<T, TOptions extends object>(program: Program, TypeEmitterClass: typeof TypeEmitter<T, TOptions>, emitContext: EmitContext<TOptions>): AssetEmitter<T, TOptions>;
5
+ //# sourceMappingURL=asset-emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-emitter.d.ts","sourceRoot":"","sources":["../../emitter-framework/asset-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EAOX,OAAO,EAER,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,YAAY,EAcb,MAAM,YAAY,CAAC;AAIpB,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,QAAQ,SAAS,MAAM,EAC3D,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,OAAO,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,EACjD,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,GACjC,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,CA6oB3B"}