@typespec/compiler 0.67.0-dev.9 → 0.67.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 (303) hide show
  1. package/dist/generated-defs/TypeSpec.d.ts +28 -1
  2. package/dist/generated-defs/TypeSpec.d.ts.map +1 -1
  3. package/dist/manifest.js +2 -2
  4. package/dist/src/ast/index.d.ts +14 -0
  5. package/dist/src/ast/index.d.ts.map +1 -0
  6. package/dist/src/ast/index.js +13 -0
  7. package/dist/src/ast/index.js.map +1 -0
  8. package/dist/src/config/config-loader.d.ts.map +1 -1
  9. package/dist/src/config/config-loader.js +2 -1
  10. package/dist/src/config/config-loader.js.map +1 -1
  11. package/dist/src/config/config-to-options.d.ts.map +1 -1
  12. package/dist/src/config/config-to-options.js +2 -1
  13. package/dist/src/config/config-to-options.js.map +1 -1
  14. package/dist/src/core/binder.d.ts.map +1 -1
  15. package/dist/src/core/binder.js +18 -137
  16. package/dist/src/core/binder.js.map +1 -1
  17. package/dist/src/core/checker.d.ts +7 -23
  18. package/dist/src/core/checker.d.ts.map +1 -1
  19. package/dist/src/core/checker.js +59 -780
  20. package/dist/src/core/checker.js.map +1 -1
  21. package/dist/src/core/cli/actions/compile/args.d.ts +1 -0
  22. package/dist/src/core/cli/actions/compile/args.d.ts.map +1 -1
  23. package/dist/src/core/cli/actions/compile/args.js +3 -0
  24. package/dist/src/core/cli/actions/compile/args.js.map +1 -1
  25. package/dist/src/core/cli/actions/compile/compile.js +1 -1
  26. package/dist/src/core/cli/actions/compile/compile.js.map +1 -1
  27. package/dist/src/core/cli/cli.js +14 -4
  28. package/dist/src/core/cli/cli.js.map +1 -1
  29. package/dist/src/core/cli/utils.d.ts.map +1 -1
  30. package/dist/src/core/cli/utils.js +5 -1
  31. package/dist/src/core/cli/utils.js.map +1 -1
  32. package/dist/src/core/decorator-utils.d.ts.map +1 -1
  33. package/dist/src/core/decorator-utils.js +1 -3
  34. package/dist/src/core/decorator-utils.js.map +1 -1
  35. package/dist/src/core/diagnostic-error.d.ts +7 -0
  36. package/dist/src/core/diagnostic-error.d.ts.map +1 -0
  37. package/dist/src/core/diagnostic-error.js +9 -0
  38. package/dist/src/core/diagnostic-error.js.map +1 -0
  39. package/dist/src/core/diagnostics.d.ts +6 -6
  40. package/dist/src/core/diagnostics.d.ts.map +1 -1
  41. package/dist/src/core/diagnostics.js +10 -11
  42. package/dist/src/core/diagnostics.js.map +1 -1
  43. package/dist/src/core/emitter-utils.js +2 -2
  44. package/dist/src/core/emitter-utils.js.map +1 -1
  45. package/dist/src/core/entrypoint-resolution.d.ts.map +1 -1
  46. package/dist/src/core/entrypoint-resolution.js +2 -1
  47. package/dist/src/core/entrypoint-resolution.js.map +1 -1
  48. package/dist/src/core/helpers/discriminator-utils.d.ts +1 -6
  49. package/dist/src/core/helpers/discriminator-utils.d.ts.map +1 -1
  50. package/dist/src/core/helpers/discriminator-utils.js +1 -57
  51. package/dist/src/core/helpers/discriminator-utils.js.map +1 -1
  52. package/dist/src/core/helpers/index.d.ts +1 -1
  53. package/dist/src/core/helpers/index.d.ts.map +1 -1
  54. package/dist/src/core/helpers/index.js +1 -1
  55. package/dist/src/core/helpers/index.js.map +1 -1
  56. package/dist/src/core/helpers/syntax-utils.d.ts +2 -1
  57. package/dist/src/core/helpers/syntax-utils.d.ts.map +1 -1
  58. package/dist/src/core/helpers/syntax-utils.js +8 -4
  59. package/dist/src/core/helpers/syntax-utils.js.map +1 -1
  60. package/dist/src/core/inspector/symbol.d.ts.map +1 -1
  61. package/dist/src/core/inspector/symbol.js +9 -11
  62. package/dist/src/core/inspector/symbol.js.map +1 -1
  63. package/dist/src/core/js-marshaller.d.ts +0 -9
  64. package/dist/src/core/js-marshaller.d.ts.map +1 -1
  65. package/dist/src/core/js-marshaller.js +0 -26
  66. package/dist/src/core/js-marshaller.js.map +1 -1
  67. package/dist/src/core/logger/console-sink.browser.d.ts.map +1 -1
  68. package/dist/src/core/logger/console-sink.browser.js +0 -16
  69. package/dist/src/core/logger/console-sink.browser.js.map +1 -1
  70. package/dist/src/core/logger/console-sink.d.ts +2 -3
  71. package/dist/src/core/logger/console-sink.d.ts.map +1 -1
  72. package/dist/src/core/logger/console-sink.js +16 -43
  73. package/dist/src/core/logger/console-sink.js.map +1 -1
  74. package/dist/src/core/logger/dynamic-task.d.ts +16 -0
  75. package/dist/src/core/logger/dynamic-task.d.ts.map +1 -0
  76. package/dist/src/core/logger/dynamic-task.js +93 -0
  77. package/dist/src/core/logger/dynamic-task.js.map +1 -0
  78. package/dist/src/core/logger/logger.d.ts.map +1 -1
  79. package/dist/src/core/logger/logger.js +11 -1
  80. package/dist/src/core/logger/logger.js.map +1 -1
  81. package/dist/src/core/messages.d.ts +35 -45
  82. package/dist/src/core/messages.d.ts.map +1 -1
  83. package/dist/src/core/messages.js +9 -11
  84. package/dist/src/core/messages.js.map +1 -1
  85. package/dist/src/core/name-resolver.d.ts.map +1 -1
  86. package/dist/src/core/name-resolver.js +12 -23
  87. package/dist/src/core/name-resolver.js.map +1 -1
  88. package/dist/src/core/node-host.d.ts +0 -3
  89. package/dist/src/core/node-host.d.ts.map +1 -1
  90. package/dist/src/core/node-host.js +5 -51
  91. package/dist/src/core/node-host.js.map +1 -1
  92. package/dist/src/core/node-system-host.d.ts +9 -0
  93. package/dist/src/core/node-system-host.d.ts.map +1 -0
  94. package/dist/src/core/node-system-host.js +57 -0
  95. package/dist/src/core/node-system-host.js.map +1 -0
  96. package/dist/src/core/options.d.ts +9 -0
  97. package/dist/src/core/options.d.ts.map +1 -1
  98. package/dist/src/core/parser.d.ts.map +1 -1
  99. package/dist/src/core/parser.js +50 -654
  100. package/dist/src/core/parser.js.map +1 -1
  101. package/dist/src/core/program.d.ts +6 -16
  102. package/dist/src/core/program.d.ts.map +1 -1
  103. package/dist/src/core/program.js +48 -24
  104. package/dist/src/core/program.js.map +1 -1
  105. package/dist/src/core/scanner.d.ts +37 -1
  106. package/dist/src/core/scanner.d.ts.map +1 -1
  107. package/dist/src/core/scanner.js +150 -3
  108. package/dist/src/core/scanner.js.map +1 -1
  109. package/dist/src/core/semantic-walker.d.ts.map +1 -1
  110. package/dist/src/core/semantic-walker.js +0 -9
  111. package/dist/src/core/semantic-walker.js.map +1 -1
  112. package/dist/src/core/source-loader.d.ts.map +1 -1
  113. package/dist/src/core/source-loader.js +2 -1
  114. package/dist/src/core/source-loader.js.map +1 -1
  115. package/dist/src/core/state-accessors.d.ts +53 -12
  116. package/dist/src/core/state-accessors.d.ts.map +1 -1
  117. package/dist/src/core/state-accessors.js +75 -48
  118. package/dist/src/core/state-accessors.js.map +1 -1
  119. package/dist/src/core/type-relation-checker.d.ts.map +1 -1
  120. package/dist/src/core/type-relation-checker.js +4 -22
  121. package/dist/src/core/type-relation-checker.js.map +1 -1
  122. package/dist/src/core/type-utils.js +2 -2
  123. package/dist/src/core/type-utils.js.map +1 -1
  124. package/dist/src/core/types.d.ts +58 -324
  125. package/dist/src/core/types.d.ts.map +1 -1
  126. package/dist/src/core/types.js +24 -55
  127. package/dist/src/core/types.js.map +1 -1
  128. package/dist/src/core/visibility/lifecycle.d.ts.map +1 -1
  129. package/dist/src/core/visibility/lifecycle.js +2 -11
  130. package/dist/src/core/visibility/lifecycle.js.map +1 -1
  131. package/dist/src/emitter-framework/asset-emitter.js +2 -2
  132. package/dist/src/emitter-framework/asset-emitter.js.map +1 -1
  133. package/dist/src/emitter-framework/index.d.ts +74 -8
  134. package/dist/src/emitter-framework/index.d.ts.map +1 -1
  135. package/dist/src/emitter-framework/index.js +32 -8
  136. package/dist/src/emitter-framework/index.js.map +1 -1
  137. package/dist/src/experimental/freeze-graph.d.ts.map +1 -1
  138. package/dist/src/experimental/freeze-graph.js +0 -3
  139. package/dist/src/experimental/freeze-graph.js.map +1 -1
  140. package/dist/src/experimental/mutators.d.ts +2 -2
  141. package/dist/src/experimental/mutators.d.ts.map +1 -1
  142. package/dist/src/experimental/mutators.js +1 -7
  143. package/dist/src/experimental/mutators.js.map +1 -1
  144. package/dist/src/experimental/typekit/kits/model.d.ts +6 -0
  145. package/dist/src/experimental/typekit/kits/model.d.ts.map +1 -1
  146. package/dist/src/experimental/typekit/kits/model.js +10 -0
  147. package/dist/src/experimental/typekit/kits/model.js.map +1 -1
  148. package/dist/src/experimental/typekit/kits/type.d.ts +0 -6
  149. package/dist/src/experimental/typekit/kits/type.d.ts.map +1 -1
  150. package/dist/src/experimental/typekit/kits/type.js +15 -9
  151. package/dist/src/experimental/typekit/kits/type.js.map +1 -1
  152. package/dist/src/experimental/typekit/kits/union.d.ts +6 -0
  153. package/dist/src/experimental/typekit/kits/union.d.ts.map +1 -1
  154. package/dist/src/experimental/typekit/kits/union.js +4 -0
  155. package/dist/src/experimental/typekit/kits/union.js.map +1 -1
  156. package/dist/src/formatter/print/comment-handler.js +1 -0
  157. package/dist/src/formatter/print/comment-handler.js.map +1 -1
  158. package/dist/src/formatter/print/needs-parens.d.ts.map +1 -1
  159. package/dist/src/formatter/print/needs-parens.js +0 -4
  160. package/dist/src/formatter/print/needs-parens.js.map +1 -1
  161. package/dist/src/formatter/print/printer.d.ts +4 -12
  162. package/dist/src/formatter/print/printer.d.ts.map +1 -1
  163. package/dist/src/formatter/print/printer.js +14 -196
  164. package/dist/src/formatter/print/printer.js.map +1 -1
  165. package/dist/src/index.d.ts +11 -14
  166. package/dist/src/index.d.ts.map +1 -1
  167. package/dist/src/index.js +17 -13
  168. package/dist/src/index.js.map +1 -1
  169. package/dist/src/init/core-templates.d.ts +2 -2
  170. package/dist/src/init/core-templates.d.ts.map +1 -1
  171. package/dist/src/init/core-templates.js.map +1 -1
  172. package/dist/src/init/init.d.ts +0 -2
  173. package/dist/src/init/init.d.ts.map +1 -1
  174. package/dist/src/init/init.js +17 -51
  175. package/dist/src/init/init.js.map +1 -1
  176. package/dist/src/init/scaffold.d.ts +4 -3
  177. package/dist/src/init/scaffold.d.ts.map +1 -1
  178. package/dist/src/init/scaffold.js +3 -4
  179. package/dist/src/init/scaffold.js.map +1 -1
  180. package/dist/src/install/config.d.ts +9 -0
  181. package/dist/src/install/config.d.ts.map +1 -0
  182. package/dist/src/install/config.js +16 -0
  183. package/dist/src/install/config.js.map +1 -0
  184. package/dist/src/install/install.d.ts +14 -0
  185. package/dist/src/install/install.d.ts.map +1 -0
  186. package/dist/src/install/install.js +191 -0
  187. package/dist/src/install/install.js.map +1 -0
  188. package/dist/src/install/spec.d.ts +39 -0
  189. package/dist/src/install/spec.d.ts.map +1 -0
  190. package/dist/src/install/spec.js +152 -0
  191. package/dist/src/install/spec.js.map +1 -0
  192. package/dist/src/internals/index.d.ts +8 -0
  193. package/dist/src/internals/index.d.ts.map +1 -0
  194. package/dist/src/internals/index.js +11 -0
  195. package/dist/src/internals/index.js.map +1 -0
  196. package/dist/src/lib/decorators.d.ts +16 -4
  197. package/dist/src/lib/decorators.d.ts.map +1 -1
  198. package/dist/src/lib/decorators.js +86 -46
  199. package/dist/src/lib/decorators.js.map +1 -1
  200. package/dist/src/lib/examples.js +1 -5
  201. package/dist/src/lib/examples.js.map +1 -1
  202. package/dist/src/lib/service.d.ts.map +1 -1
  203. package/dist/src/lib/service.js +0 -4
  204. package/dist/src/lib/service.js.map +1 -1
  205. package/dist/src/lib/tsp-index.d.ts.map +1 -1
  206. package/dist/src/lib/tsp-index.js +2 -2
  207. package/dist/src/lib/tsp-index.js.map +1 -1
  208. package/dist/src/module-resolver/module-resolver.d.ts.map +1 -1
  209. package/dist/src/module-resolver/module-resolver.js +20 -13
  210. package/dist/src/module-resolver/module-resolver.js.map +1 -1
  211. package/dist/src/package-manger/npm-registry-utils.d.ts +83 -0
  212. package/dist/src/package-manger/npm-registry-utils.d.ts.map +1 -0
  213. package/dist/src/package-manger/npm-registry-utils.js +42 -0
  214. package/dist/src/package-manger/npm-registry-utils.js.map +1 -0
  215. package/dist/src/server/classify.d.ts.map +1 -1
  216. package/dist/src/server/classify.js +0 -26
  217. package/dist/src/server/classify.js.map +1 -1
  218. package/dist/src/server/compile-service.d.ts.map +1 -1
  219. package/dist/src/server/compile-service.js +2 -1
  220. package/dist/src/server/compile-service.js.map +1 -1
  221. package/dist/src/server/completion.d.ts.map +1 -1
  222. package/dist/src/server/completion.js +21 -10
  223. package/dist/src/server/completion.js.map +1 -1
  224. package/dist/src/server/constants.js +1 -1
  225. package/dist/src/server/server.js +1 -1
  226. package/dist/src/server/server.js.map +1 -1
  227. package/dist/src/server/serverlib.d.ts.map +1 -1
  228. package/dist/src/server/serverlib.js +2 -1
  229. package/dist/src/server/serverlib.js.map +1 -1
  230. package/dist/src/server/tmlanguage.d.ts.map +1 -1
  231. package/dist/src/server/tmlanguage.js +0 -125
  232. package/dist/src/server/tmlanguage.js.map +1 -1
  233. package/dist/src/server/type-signature.js +4 -15
  234. package/dist/src/server/type-signature.js.map +1 -1
  235. package/dist/src/testing/code-fix-testing.js +1 -1
  236. package/dist/src/testing/code-fix-testing.js.map +1 -1
  237. package/dist/src/testing/expect.d.ts +1 -7
  238. package/dist/src/testing/expect.d.ts.map +1 -1
  239. package/dist/src/testing/expect.js +0 -12
  240. package/dist/src/testing/expect.js.map +1 -1
  241. package/dist/src/testing/index.d.ts +6 -6
  242. package/dist/src/testing/index.d.ts.map +1 -1
  243. package/dist/src/testing/index.js +5 -6
  244. package/dist/src/testing/index.js.map +1 -1
  245. package/dist/src/testing/source-utils.d.ts +20 -0
  246. package/dist/src/testing/source-utils.d.ts.map +1 -0
  247. package/dist/src/testing/source-utils.js +23 -0
  248. package/dist/src/testing/source-utils.js.map +1 -0
  249. package/dist/src/testing/test-host.d.ts.map +1 -1
  250. package/dist/src/testing/test-host.js +0 -4
  251. package/dist/src/testing/test-host.js.map +1 -1
  252. package/dist/src/testing/test-server-host.d.ts +0 -19
  253. package/dist/src/testing/test-server-host.d.ts.map +1 -1
  254. package/dist/src/testing/test-server-host.js +0 -22
  255. package/dist/src/testing/test-server-host.js.map +1 -1
  256. package/dist/src/testing/test-utils.js +1 -1
  257. package/dist/src/testing/test-utils.js.map +1 -1
  258. package/dist/src/types/package-json.d.ts +14 -0
  259. package/dist/src/types/package-json.d.ts.map +1 -1
  260. package/dist/src/utils/custom-key-map.d.ts.map +1 -0
  261. package/dist/src/utils/custom-key-map.js.map +1 -0
  262. package/dist/src/utils/fs-utils.d.ts +3 -0
  263. package/dist/src/utils/fs-utils.d.ts.map +1 -0
  264. package/dist/src/utils/fs-utils.js +19 -0
  265. package/dist/src/utils/fs-utils.js.map +1 -0
  266. package/dist/src/utils/io.d.ts +16 -0
  267. package/dist/src/utils/io.d.ts.map +1 -0
  268. package/dist/src/utils/io.js +77 -0
  269. package/dist/src/utils/io.js.map +1 -0
  270. package/dist/src/utils/misc.d.ts +4 -18
  271. package/dist/src/utils/misc.d.ts.map +1 -1
  272. package/dist/src/utils/misc.js +1 -77
  273. package/dist/src/utils/misc.js.map +1 -1
  274. package/dist/typespec.tmLanguage +0 -342
  275. package/lib/std/decorators.tsp +37 -2
  276. package/package.json +13 -7
  277. package/templates/__snapshots__/emitter-ts/src/emitter.ts +4 -6
  278. package/templates/emitter-ts/src/emitter.ts +4 -6
  279. package/templates/scaffolding.json +4 -4
  280. package/dist/src/core/helpers/projected-names-utils.d.ts +0 -20
  281. package/dist/src/core/helpers/projected-names-utils.d.ts.map +0 -1
  282. package/dist/src/core/helpers/projected-names-utils.js +0 -42
  283. package/dist/src/core/helpers/projected-names-utils.js.map +0 -1
  284. package/dist/src/core/install.d.ts +0 -3
  285. package/dist/src/core/install.d.ts.map +0 -1
  286. package/dist/src/core/install.js +0 -60
  287. package/dist/src/core/install.js.map +0 -1
  288. package/dist/src/core/projected-program.d.ts +0 -3
  289. package/dist/src/core/projected-program.d.ts.map +0 -1
  290. package/dist/src/core/projected-program.js +0 -4
  291. package/dist/src/core/projected-program.js.map +0 -1
  292. package/dist/src/core/projection-members.d.ts +0 -8
  293. package/dist/src/core/projection-members.d.ts.map +0 -1
  294. package/dist/src/core/projection-members.js +0 -382
  295. package/dist/src/core/projection-members.js.map +0 -1
  296. package/dist/src/core/projector.d.ts +0 -26
  297. package/dist/src/core/projector.d.ts.map +0 -1
  298. package/dist/src/core/projector.js +0 -572
  299. package/dist/src/core/projector.js.map +0 -1
  300. package/dist/src/emitter-framework/custom-key-map.d.ts.map +0 -1
  301. package/dist/src/emitter-framework/custom-key-map.js.map +0 -1
  302. /package/dist/src/{emitter-framework → utils}/custom-key-map.d.ts +0 -0
  303. /package/dist/src/{emitter-framework → utils}/custom-key-map.js +0 -0
@@ -1,572 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-deprecated */
2
- import { createRekeyableMap, mutate } from "../utils/misc.js";
3
- import { finishTypeForProgram } from "./checker.js";
4
- import { compilerAssert } from "./diagnostics.js";
5
- import { isProjectedProgram } from "./projected-program.js";
6
- import { createStateAccessors } from "./state-accessors.js";
7
- import { getParentTemplateNode, isNeverType, isTemplateInstance, isValue } from "./type-utils.js";
8
- /**
9
- * Creates a projector which returns a projected view of either the global namespace or the
10
- * start node provided. Projecting a type effectively clones every type referenced underneath
11
- * it. This is accomplished by doing a semantic walk of each type, cloning each type we find,
12
- * and running projection code on the clone.
13
- *
14
- * Projectors can run multiple projections at once. In such cases, each projection is run
15
- * on the same clone of the unprojected type. It is up to projections and the user to ensure
16
- * that projections which depend on a particular shape are run when that shape is present (or
17
- * else to ensure that their projections are tolerant to shape changes).
18
- *
19
- * The projector maintains its own state maps and sets. If a projection is active (i.e.
20
- * program.currentProjector is set), then the projector's state will be returned instead
21
- * of the program's state. This ensures that there is no overlap between projected and
22
- * unprojected state. It also means that you cannot get state for nodes that are not
23
- * part of the active projection.
24
- *
25
- * Note that decorators are run on namespaces prior to cloning any child types to align
26
- * with the checker semantics, while projections are run after everything under the namespace
27
- * is cloned. All other run decorators and projections after all child types are cloned and
28
- * have their decorators run.
29
- */
30
- export function createProjector(program, projections, startNode) {
31
- const projectedTypes = new Map();
32
- const checker = program.checker;
33
- const neverType = checker.neverType;
34
- const scope = [];
35
- const projector = {
36
- projectedTypes,
37
- projections,
38
- projectType,
39
- parentProjector: isProjectedProgram(program) ? program.projector : undefined,
40
- };
41
- const projectedNamespaces = [];
42
- let projectingNamespaces = false;
43
- const projectedProgram = {
44
- ...program,
45
- getGlobalNamespaceType: () => projector.projectedGlobalNamespace,
46
- projector,
47
- ...createStateAccessors(program.stateMaps, program.stateSets, projector),
48
- };
49
- const targetGlobalNs = startNode
50
- ? startNode.projector
51
- ? startNode.projector.projectedGlobalNamespace
52
- : program.checker.getGlobalNamespaceType()
53
- : program.checker.getGlobalNamespaceType();
54
- projectingNamespaces = true;
55
- // Project the global namespace to get a reference.
56
- projector.projectedGlobalNamespace = projectNamespace(targetGlobalNs, false);
57
- // Then project the content
58
- projectSubNamespaces(targetGlobalNs, projector.projectedGlobalNamespace);
59
- projectingNamespaces = false;
60
- // then project all the types
61
- for (const ns of projectedNamespaces) {
62
- projectNamespaceContents(ns);
63
- }
64
- projectType(targetGlobalNs);
65
- projector.projectedStartNode = startNode
66
- ? projectedTypes.get(startNode)
67
- : projector.projectedGlobalNamespace;
68
- return projectedProgram;
69
- function projectType(type) {
70
- if (isValue(type)) {
71
- if (type.valueKind === "EnumValue") {
72
- // This is a hack. We project the enum itself, so we need to project enum values in order to prevent incoherence
73
- // between projections that reference enum values and the enum/members themselves. If we project the enummember
74
- // in the value and it results in something other than an enum member, we will give up and just return the value
75
- // as is. Otherwise we'll return the projected member.
76
- const projectedType = projectType(type.type);
77
- const projectedMember = projectType(type.value);
78
- if (projectedMember.kind === "EnumMember") {
79
- return {
80
- entityKind: "Value",
81
- valueKind: "EnumValue",
82
- type: projectedType,
83
- value: projectedMember,
84
- };
85
- }
86
- else {
87
- return type;
88
- }
89
- }
90
- else {
91
- return type;
92
- }
93
- }
94
- if (type.entityKind === "Indeterminate") {
95
- return { entityKind: "Indeterminate", type: projectType(type.type) };
96
- }
97
- if (projectedTypes.has(type)) {
98
- return projectedTypes.get(type);
99
- }
100
- scope.push(type);
101
- const preProjected = applyPreProjection(type);
102
- if (preProjected !== type) {
103
- projectedTypes.set(type, preProjected);
104
- scope.pop();
105
- return preProjected;
106
- }
107
- let projected;
108
- switch (type.kind) {
109
- case "Namespace":
110
- compilerAssert(projectingNamespaces, `Namespace ${type.name} should have already been projected.`);
111
- projected = projectNamespace(type, false);
112
- break;
113
- case "Scalar":
114
- projected = projectScalar(type);
115
- break;
116
- case "Model":
117
- projected = projectModel(type);
118
- break;
119
- case "ModelProperty":
120
- projected = projectModelProperty(type);
121
- break;
122
- case "Operation":
123
- projected = projectOperation(type);
124
- break;
125
- case "Interface":
126
- projected = projectInterface(type);
127
- break;
128
- case "Union":
129
- projected = projectUnion(type);
130
- break;
131
- case "UnionVariant":
132
- projected = projectUnionVariant(type);
133
- break;
134
- case "Tuple":
135
- projected = projectTuple(type);
136
- break;
137
- case "Enum":
138
- projected = projectEnum(type);
139
- break;
140
- case "EnumMember":
141
- projected = projectEnumMember(type);
142
- break;
143
- default:
144
- projected = type;
145
- }
146
- scope.pop();
147
- return projected;
148
- }
149
- function projectSubNamespaces(ns, projectedNs) {
150
- if (ns.namespaces.size === projectedNs.namespaces.size) {
151
- // Sub namespace should already have been projected.
152
- return;
153
- }
154
- for (const [key, childNs] of ns.namespaces) {
155
- const projected = projectNamespace(childNs);
156
- if (projected.kind === "Namespace") {
157
- // todo: check for never?
158
- projectedNs.namespaces.set(key, projected);
159
- }
160
- }
161
- }
162
- function projectNamespace(ns, projectSubNamespace = true) {
163
- const alreadyProjected = projectedTypes.get(ns);
164
- if (alreadyProjected) {
165
- if (projectSubNamespace) {
166
- projectSubNamespaces(ns, alreadyProjected);
167
- }
168
- return alreadyProjected;
169
- }
170
- const projectedNs = shallowClone(ns, {
171
- namespaces: new Map(),
172
- scalars: new Map(),
173
- models: new Map(),
174
- operations: new Map(),
175
- interfaces: new Map(),
176
- unions: new Map(),
177
- enums: new Map(),
178
- decorators: [],
179
- });
180
- projectedNs.decorators = projectDecorators(ns.decorators);
181
- if (ns.namespace) {
182
- projectedNs.namespace = projectNamespace(ns.namespace, false);
183
- }
184
- // ns run decorators before projecting anything inside them
185
- finishTypeForProgram(projectedProgram, projectedNs);
186
- if (projectSubNamespace) {
187
- projectSubNamespaces(ns, projectedNs);
188
- }
189
- projectedNamespaces.push(ns);
190
- return applyProjection(ns, projectedNs);
191
- }
192
- /**
193
- * Projects the contents of a namespace, but not the namespace itself. The namespace itself
194
- * is projected in an earlier phase.
195
- */
196
- function projectNamespaceContents(ns) {
197
- const projectedNs = projectedTypes.get(ns);
198
- compilerAssert(projectedNs, "Should have projected namespace by now");
199
- if (projectedNs.kind !== "Namespace") {
200
- // we projected the namespace to something else so don't do any more work.
201
- // this might happen if a namespace itself was added/removed/etc. and is
202
- // projected to never.
203
- return neverType;
204
- }
205
- for (const childModel of ns.models.values()) {
206
- const projected = projectType(childModel);
207
- if (projected.kind === "Model") {
208
- projectedNs.models.set(projected.name, projected);
209
- }
210
- }
211
- for (const scalar of ns.scalars.values()) {
212
- const projected = projectType(scalar);
213
- if (projected.kind === "Scalar") {
214
- projectedNs.scalars.set(projected.name, projected);
215
- }
216
- }
217
- for (const childOperation of ns.operations.values()) {
218
- const projected = projectType(childOperation);
219
- if (projected.kind === "Operation") {
220
- projectedNs.operations.set(projected.name, projected);
221
- }
222
- }
223
- for (const childInterface of ns.interfaces.values()) {
224
- const projected = projectType(childInterface);
225
- if (projected.kind === "Interface") {
226
- projectedNs.interfaces.set(projected.name, projected);
227
- }
228
- }
229
- for (const childUnion of ns.unions.values()) {
230
- const projected = projectType(childUnion);
231
- if (projected.kind === "Union") {
232
- projectedNs.unions.set(projected.name, projected);
233
- }
234
- }
235
- for (const childEnum of ns.enums.values()) {
236
- const projected = projectType(childEnum);
237
- if (projected.kind === "Enum") {
238
- projectedNs.enums.set(projected.name, projected);
239
- }
240
- }
241
- return projectedNs;
242
- }
243
- function projectModel(model) {
244
- const properties = createRekeyableMap();
245
- const projectedModel = shallowClone(model, {
246
- properties,
247
- derivedModels: [],
248
- });
249
- if (model.templateMapper) {
250
- projectedModel.templateMapper = projectTemplateMapper(model.templateMapper);
251
- }
252
- if (model.baseModel) {
253
- projectedModel.baseModel = projectType(model.baseModel);
254
- }
255
- if (model.sourceModel) {
256
- projectedModel.sourceModel = projectType(model.sourceModel);
257
- }
258
- projectedModel.sourceModels = model.sourceModels.map((source) => {
259
- return { ...source, model: projectType(source.model) };
260
- });
261
- if (model.indexer) {
262
- const projectedValue = projectType(model.indexer.value);
263
- projectedModel.indexer = {
264
- key: projectType(model.indexer.key),
265
- value: projectedValue,
266
- };
267
- }
268
- projectedTypes.set(model, projectedModel);
269
- for (const prop of model.properties.values()) {
270
- const projectedProp = projectType(prop);
271
- if (projectedProp.kind === "ModelProperty") {
272
- properties.set(projectedProp.name, projectedProp);
273
- }
274
- }
275
- projectedModel.decorators = projectDecorators(model.decorators);
276
- if (shouldFinishType(model)) {
277
- finishTypeForProgram(projectedProgram, projectedModel);
278
- }
279
- const projectedResult = applyProjection(model, projectedModel);
280
- if (!isNeverType(projectedResult) &&
281
- projectedResult.kind === "Model" &&
282
- projectedResult.baseModel) {
283
- projectedResult.baseModel.derivedModels ??= [];
284
- projectedResult.baseModel.derivedModels.push(projectedModel);
285
- }
286
- return projectedResult;
287
- }
288
- function projectTemplateMapper(mapper) {
289
- const projectedMapper = {
290
- ...mapper,
291
- args: [],
292
- map: new Map(),
293
- };
294
- for (const arg of mapper.args) {
295
- mutate(projectedMapper.args).push(projectType(arg));
296
- }
297
- for (const [param, type] of mapper.map) {
298
- projectedMapper.map.set(param, projectType(type));
299
- }
300
- return projectedMapper;
301
- }
302
- function projectScalar(scalar) {
303
- const projectedScalar = shallowClone(scalar, {
304
- derivedScalars: [],
305
- });
306
- if (scalar.templateMapper) {
307
- projectedScalar.templateMapper = projectTemplateMapper(scalar.templateMapper);
308
- }
309
- if (scalar.baseScalar) {
310
- projectedScalar.baseScalar = projectType(scalar.baseScalar);
311
- }
312
- projectedTypes.set(scalar, projectedScalar);
313
- projectedScalar.decorators = projectDecorators(scalar.decorators);
314
- if (shouldFinishType(scalar)) {
315
- finishTypeForProgram(projectedProgram, projectedScalar);
316
- }
317
- const projectedResult = applyProjection(scalar, projectedScalar);
318
- if (!isNeverType(projectedResult) &&
319
- projectedResult.kind === "Scalar" &&
320
- projectedResult.baseScalar) {
321
- projectedResult.baseScalar.derivedScalars ??= [];
322
- projectedResult.baseScalar.derivedScalars.push(projectedScalar);
323
- }
324
- return projectedResult;
325
- }
326
- /**
327
- * Returns true if we should finish a type. The only time we don't finish is when it's
328
- * a template type, because we don't want to run decorators for templates.
329
- */
330
- function shouldFinishType(type) {
331
- const parentTemplate = type.node && getParentTemplateNode(type.node);
332
- return !parentTemplate || isTemplateInstance(type);
333
- }
334
- function projectModelProperty(prop) {
335
- const projectedType = projectType(prop.type);
336
- const projectedDecs = projectDecorators(prop.decorators);
337
- const projectedProp = shallowClone(prop, {
338
- type: projectedType,
339
- decorators: projectedDecs,
340
- });
341
- if (prop.sourceProperty) {
342
- const sourceProperty = projectType(prop.sourceProperty);
343
- projectedProp.sourceProperty = sourceProperty;
344
- }
345
- if (shouldFinishType(prop)) {
346
- finishTypeForProgram(projectedProgram, projectedProp);
347
- }
348
- if (prop.model) {
349
- projectedProp.model = projectType(prop.model);
350
- }
351
- return applyProjection(prop, projectedProp);
352
- }
353
- function projectOperation(op) {
354
- const projectedOp = shallowClone(op, {});
355
- projectedOp.parameters = projectType(op.parameters);
356
- projectedOp.returnType = projectType(op.returnType);
357
- projectedOp.decorators = projectDecorators(op.decorators);
358
- if (op.templateMapper) {
359
- projectedOp.templateMapper = projectTemplateMapper(op.templateMapper);
360
- }
361
- if (op.sourceOperation) {
362
- projectedOp.sourceOperation = projectType(op.sourceOperation);
363
- }
364
- if (op.namespace) {
365
- projectedOp.namespace = projectedNamespaceScope();
366
- }
367
- if (op.isFinished) {
368
- finishTypeForProgram(projectedProgram, projectedOp);
369
- }
370
- if (op.interface) {
371
- projectedOp.interface = projectType(op.interface);
372
- }
373
- return applyProjection(op, projectedOp);
374
- }
375
- function projectInterface(iface) {
376
- const operations = createRekeyableMap();
377
- const sourceInterfaces = [];
378
- const projectedIface = shallowClone(iface, {
379
- operations,
380
- sourceInterfaces,
381
- });
382
- projectedIface.decorators = projectDecorators(iface.decorators);
383
- if (iface.templateMapper) {
384
- projectedIface.templateMapper = projectTemplateMapper(iface.templateMapper);
385
- }
386
- for (const op of iface.operations.values()) {
387
- const projectedOp = projectType(op);
388
- if (projectedOp.kind === "Operation") {
389
- operations.set(projectedOp.name, projectedOp);
390
- }
391
- }
392
- for (const source of iface.sourceInterfaces) {
393
- sourceInterfaces.push(projectType(source));
394
- }
395
- if (shouldFinishType(iface)) {
396
- finishTypeForProgram(projectedProgram, projectedIface);
397
- }
398
- return applyProjection(iface, projectedIface);
399
- }
400
- function projectUnion(union) {
401
- const variants = createRekeyableMap();
402
- const projectedUnion = shallowClone(union, {
403
- variants,
404
- });
405
- projectedUnion.decorators = projectDecorators(union.decorators);
406
- if (union.templateMapper) {
407
- projectedUnion.templateMapper = projectTemplateMapper(union.templateMapper);
408
- }
409
- for (const variant of union.variants.values()) {
410
- const projectedVariant = projectType(variant);
411
- if (projectedVariant.kind === "UnionVariant" && projectedVariant.type !== neverType) {
412
- variants.set(projectedVariant.name, projectedVariant);
413
- }
414
- }
415
- if (shouldFinishType(union)) {
416
- finishTypeForProgram(projectedProgram, projectedUnion);
417
- }
418
- return applyProjection(union, projectedUnion);
419
- }
420
- function projectUnionVariant(variant) {
421
- const projectedType = projectType(variant.type);
422
- const projectedDecs = projectDecorators(variant.decorators);
423
- const projectedVariant = shallowClone(variant, {
424
- type: projectedType,
425
- decorators: projectedDecs,
426
- });
427
- finishTypeForProgram(projectedProgram, projectedVariant);
428
- projectedVariant.union = projectType(variant.union);
429
- return applyProjection(variant, projectedVariant);
430
- }
431
- function projectTuple(tuple) {
432
- const values = [];
433
- const projectedTuple = shallowClone(tuple, {
434
- values,
435
- });
436
- for (const item of tuple.values) {
437
- values.push(projectType(item));
438
- }
439
- return projectedTuple;
440
- }
441
- function projectEnum(e) {
442
- const members = createRekeyableMap();
443
- const projectedEnum = shallowClone(e, {
444
- members,
445
- });
446
- projectedEnum.decorators = projectDecorators(e.decorators);
447
- projectedTypes.set(e, projectedEnum);
448
- for (const member of e.members.values()) {
449
- const projectedMember = projectType(member);
450
- if (projectedMember.kind === "EnumMember") {
451
- members.set(projectedMember.name, projectedMember);
452
- }
453
- }
454
- finishTypeForProgram(projectedProgram, projectedEnum);
455
- return applyProjection(e, projectedEnum);
456
- }
457
- function projectEnumMember(e) {
458
- const decorators = projectDecorators(e.decorators);
459
- const projectedMember = shallowClone(e, {
460
- decorators,
461
- });
462
- finishTypeForProgram(projectedProgram, projectedMember);
463
- projectedMember.enum = projectType(e.enum);
464
- return applyProjection(e, projectedMember);
465
- }
466
- function projectDecorators(decs) {
467
- const decorators = [];
468
- for (const dec of decs) {
469
- const args = [];
470
- for (const arg of dec.args) {
471
- const jsValue = typeof arg.jsValue === "object" && arg.jsValue !== null && "entityKind" in arg.jsValue
472
- ? projectType(arg.jsValue)
473
- : arg.jsValue;
474
- args.push({ ...arg, value: projectType(arg.value), jsValue });
475
- }
476
- decorators.push({ ...dec, args });
477
- }
478
- return decorators;
479
- }
480
- function getInScopeProjections() {
481
- const candidates = new Set(projections);
482
- const inScope = [];
483
- let currentScope = namespaceScope();
484
- outer: while (currentScope) {
485
- for (const candidate of candidates) {
486
- if (!candidate.scope || candidate.scope === currentScope) {
487
- candidates.delete(candidate);
488
- inScope.push(candidate);
489
- if (candidates.size === 0) {
490
- break outer;
491
- }
492
- }
493
- }
494
- currentScope = currentScope.namespace;
495
- }
496
- return inScope;
497
- }
498
- function namespaceScope() {
499
- for (let i = scope.length - 1; i >= 0; i--) {
500
- if (scope[i].namespace !== undefined) {
501
- return scope[i].namespace;
502
- }
503
- }
504
- return undefined;
505
- }
506
- function projectedNamespaceScope() {
507
- const ns = namespaceScope();
508
- if (!ns)
509
- return ns;
510
- return projectType(ns);
511
- }
512
- function applyProjection(baseType, projectedType) {
513
- const inScopeProjections = getInScopeProjections();
514
- for (const projectionApplication of inScopeProjections) {
515
- const projectionsByName = baseType.projectionsByName(projectionApplication.projectionName);
516
- if (projectionsByName.length === 0)
517
- continue;
518
- const targetNode = projectionApplication.direction === "from"
519
- ? projectionsByName[0].from
520
- : projectionsByName[0].to;
521
- if (targetNode) {
522
- const projected = checker.project(projectedType, targetNode, projectionApplication.arguments);
523
- if (projected !== projectedType) {
524
- // override the projected type cache with the returned type
525
- projectedTypes.set(baseType, projected);
526
- return projected;
527
- }
528
- }
529
- }
530
- return projectedType;
531
- }
532
- function applyPreProjection(type) {
533
- const inScopeProjections = getInScopeProjections();
534
- for (const projectionApplication of inScopeProjections) {
535
- const projectionsByName = type.projectionsByName(projectionApplication.projectionName);
536
- if (projectionsByName.length === 0)
537
- continue;
538
- const targetNode = projectionApplication.direction === "from"
539
- ? projectionsByName[0].preFrom
540
- : projectionsByName[0].preTo;
541
- if (targetNode) {
542
- return checker.project(type, targetNode, projectionApplication.arguments);
543
- }
544
- }
545
- return type;
546
- }
547
- function shallowClone(type, additionalProps) {
548
- const scopeProps = {};
549
- if ("namespace" in type && type.namespace !== undefined) {
550
- scopeProps.namespace = projectedNamespaceScope();
551
- }
552
- const clone = checker.createType({
553
- ...type,
554
- ...additionalProps,
555
- ...scopeProps,
556
- projectionSource: type,
557
- projectionBase: type.projectionBase ?? type,
558
- projector,
559
- });
560
- if (type.kind === "Union") {
561
- // create the options getter
562
- Object.defineProperty(clone, "options", {
563
- get() {
564
- return Array.from(this.variants.values()).map((v) => v.type);
565
- },
566
- });
567
- }
568
- projectedTypes.set(type, clone);
569
- return clone;
570
- }
571
- }
572
- //# sourceMappingURL=projector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"projector.js","sourceRoot":"","sources":["../../../src/core/projector.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom-key-map.d.ts","sourceRoot":"","sources":["../../../src/emitter-framework/custom-key-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,YAAY,CAAC,CAAC,SAAS,SAAS,GAAG,EAAE,EAAE,CAAC;;gBAIvC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM;IAItC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAI5B,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAK7B,MAAM,CAAC,WAAW;kBAIJ,MAAM;;CAYrB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom-key-map.js","sourceRoot":"","sources":["../../../src/emitter-framework/custom-key-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,YAAY;IACvB,MAAM,GAAG,IAAI,GAAG,EAAa,CAAC;IAC9B,MAAM,CAAC;IAEP,YAAY,KAA0B;QACpC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,GAAG,CAAC,KAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,GAAG,CAAC,KAAQ,EAAE,KAAQ;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,MAAM,SAAS,GAAG,IAAI,OAAO,EAAkB,CAAC;QAChD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO;YACL,MAAM,CAAC,CAAS;gBACd,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrB,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC1B,CAAC;gBAED,MAAM,GAAG,GAAG,KAAK,CAAC;gBAClB,KAAK,EAAE,CAAC;gBACR,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBACtB,OAAO,GAAG,CAAC;YACb,CAAC;SACF,CAAC;IACJ,CAAC;CACF"}