@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,42 +0,0 @@
1
- import { projectProgram } from "../program.js";
2
- /**
3
- * Create an helper to manager project names.
4
- * @param program Program
5
- * @param target Name of the projected name target(e.g. json, csharp, etc.)
6
- * @returns ProjectedNameView
7
- */
8
- export function createProjectedNameProgram(program, target) {
9
- const projectedProgram = projectProgram(program, [
10
- {
11
- projectionName: "target",
12
- arguments: [target],
13
- },
14
- ]);
15
- return {
16
- program: projectedProgram,
17
- getProjectedName,
18
- };
19
- function getProjectedName(type) {
20
- const baseType = findTypeInProjector(projectedProgram.projector, type);
21
- const projectedType = projectedProgram.projector.projectedTypes.get(baseType);
22
- if (projectedType === undefined ||
23
- !("name" in projectedType) ||
24
- projectedType.name === baseType.name) {
25
- return type.name;
26
- }
27
- return projectedType.name;
28
- }
29
- }
30
- // TODO will REALM help here?
31
- function findTypeInProjector(projector, type) {
32
- if (type.projectionSource === undefined) {
33
- return type;
34
- }
35
- else if (type.projector === projector) {
36
- return type;
37
- }
38
- else {
39
- return findTypeInProjector(projector, type.projectionSource);
40
- }
41
- }
42
- //# sourceMappingURL=projected-names-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"projected-names-utils.js","sourceRoot":"","sources":["../../../../src/core/helpers/projected-names-utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAa/C;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAgB,EAAE,MAAc;IACzE,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,EAAE;QAC/C;YACE,cAAc,EAAE,QAAQ;YACxB,SAAS,EAAE,CAAC,MAAM,CAAC;SACpB;KACF,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,gBAAgB;QACzB,gBAAgB;KACjB,CAAC;IAEF,SAAS,gBAAgB,CAAC,IAA6B;QACrD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACvE,MAAM,aAAa,GAAG,gBAAgB,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9E,IACE,aAAa,KAAK,SAAS;YAC3B,CAAC,CAAC,MAAM,IAAI,aAAa,CAAC;YAC1B,aAAa,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EACpC,CAAC;YACD,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;QACD,OAAO,aAAa,CAAC,IAAc,CAAC;IACtC,CAAC;AACH,CAAC;AAED,6BAA6B;AAC7B,SAAS,mBAAmB,CAAiB,SAAgC,EAAE,IAAO;IACpF,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,CAAC;QACN,OAAO,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAQ,CAAC;IACtE,CAAC;AACH,CAAC"}
@@ -1,3 +0,0 @@
1
- import { CliCompilerHost } from "./cli/types.js";
2
- export declare function installTypeSpecDependencies(host: CliCompilerHost, directory: string, stdio?: "inherit" | "pipe"): Promise<void>;
3
- //# sourceMappingURL=install.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/core/install.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAWjD,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,SAAS,GAAG,MAAkB,GACpC,OAAO,CAAC,IAAI,CAAC,CAQf"}
@@ -1,60 +0,0 @@
1
- import Arborist from "@npmcli/arborist";
2
- import { spawn } from "child_process";
3
- import { getTypeSpecEngine } from "./engine.js";
4
- export async function installTypeSpecDependencies(host, directory, stdio = "inherit") {
5
- // Only use the builtin npm when running in standalone tsp mode.
6
- // TBD how we'll change this as we move to a more integrated setup and resolve the user package manager.
7
- if (getTypeSpecEngine() === "tsp") {
8
- await installWithBuiltinNpm(host, directory);
9
- }
10
- else {
11
- await installWithNpmExe(host, directory, stdio);
12
- }
13
- }
14
- async function installWithBuiltinNpm(host, directory) {
15
- const arb = new Arborist({
16
- path: directory,
17
- });
18
- await arb.loadActual();
19
- await arb.buildIdealTree({});
20
- await arb.reify();
21
- }
22
- async function installWithNpmExe(host, directory, stdio) {
23
- const child = spawn("npm", ["install"], {
24
- shell: process.platform === "win32",
25
- stdio: "pipe",
26
- cwd: directory,
27
- env: process.env,
28
- });
29
- const stdout = [];
30
- if (child.stdout) {
31
- child.stdout.on("data", (data) => {
32
- stdout.push(data.toString());
33
- });
34
- }
35
- if (child.stderr) {
36
- child.stderr.on("data", (data) => {
37
- stdout.push(data.toString());
38
- });
39
- }
40
- return new Promise((resolve, reject) => {
41
- child.on("error", (error) => {
42
- if (error.code === "ENOENT") {
43
- host.logger.error("Cannot find `npm` executable. Make sure to have npm installed in your path.");
44
- }
45
- else {
46
- host.logger.error(error.toString());
47
- }
48
- process.exit(error.errno);
49
- });
50
- child.on("exit", (exitCode) => {
51
- if (exitCode !== 0) {
52
- reject(new Error(`Npm installed failed with exit code ${exitCode}\n${stdout.join("\n")}`));
53
- }
54
- else {
55
- resolve();
56
- }
57
- });
58
- });
59
- }
60
- //# sourceMappingURL=install.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/core/install.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAUhD,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAAqB,EACrB,SAAiB,EACjB,QAA4B,SAAS;IAErC,gEAAgE;IAChE,wGAAwG;IACxG,IAAI,iBAAiB,EAAE,KAAK,KAAK,EAAE,CAAC;QAClC,MAAM,qBAAqB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,MAAM,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,IAAqB,EAAE,SAAiB;IAC3E,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC;QACvB,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC;IACvB,MAAM,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC7B,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,IAAqB,EACrB,SAAiB,EACjB,KAAyB;IAEzB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE;QACtC,KAAK,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;QACnC,KAAK,EAAE,MAAM;QACb,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAiB,EAAE,EAAE;YACtC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,6EAA6E,CAC9E,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YACtC,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;YAC5B,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,KAAK,CAAC,uCAAuC,QAAQ,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7F,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { Program, ProjectedProgram } from "./program.js";
2
- export declare function isProjectedProgram(program: Program | ProjectedProgram): program is ProjectedProgram;
3
- //# sourceMappingURL=projected-program.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"projected-program.d.ts","sourceRoot":"","sources":["../../../src/core/projected-program.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE9D,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,GAAG,gBAAgB,GAClC,OAAO,IAAI,gBAAgB,CAE7B"}
@@ -1,4 +0,0 @@
1
- export function isProjectedProgram(program) {
2
- return "projector" in program;
3
- }
4
- //# sourceMappingURL=projected-program.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"projected-program.js","sourceRoot":"","sources":["../../../src/core/projected-program.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,kBAAkB,CAChC,OAAmC;IAEnC,OAAO,WAAW,IAAI,OAAO,CAAC;AAChC,CAAC"}
@@ -1,8 +0,0 @@
1
- import type { Checker } from "./checker.js";
2
- import type { Type } from "./types.js";
3
- export declare function createProjectionMembers(checker: Checker): {
4
- [TKind in Type["kind"]]?: Record<string, (base: Type & {
5
- kind: TKind;
6
- }) => Type>;
7
- };
8
- //# sourceMappingURL=projection-members.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"projection-members.d.ts","sourceRoot":"","sources":["../../../src/core/projection-members.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAc,IAAI,EAAgB,MAAM,YAAY,CAAC;AAEjE,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG;KACxD,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG;QAAE,IAAI,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI,CAAC;CACjF,CAyZA"}
@@ -1,382 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-deprecated */
2
- import { camelCase, kebabCase, pascalCase, snakeCase } from "change-case";
3
- import { ProjectionError, assertType } from "./diagnostics.js";
4
- export function createProjectionMembers(checker) {
5
- const { voidType, neverType, createType, createFunctionType, createLiteralType } = checker;
6
- function createBaseMembers() {
7
- return {
8
- projectionSource: (base) => base.projectionSource ?? voidType,
9
- projectionBase: (base) => base.projectionBase ?? voidType,
10
- };
11
- }
12
- function createNameableMembers() {
13
- return {
14
- name: (base) => (base.name ? createLiteralType(base.name) : voidType),
15
- rename: (base) => {
16
- return createFunctionType((newName) => {
17
- assertType("new name", newName, "String");
18
- base.name = newName.value;
19
- return voidType;
20
- });
21
- },
22
- };
23
- }
24
- return {
25
- Model: {
26
- ...createBaseMembers(),
27
- ...createNameableMembers(),
28
- properties(base) {
29
- return createType({
30
- kind: "Object",
31
- properties: {
32
- forEach: createFunctionType((block) => {
33
- assertType("block", block, "Function");
34
- const props = Array.from(base.properties.values());
35
- props.forEach((p) => block.implementation(p));
36
- return voidType;
37
- }),
38
- },
39
- });
40
- },
41
- renameProperty(base) {
42
- return createFunctionType((oldNameT, newNameT) => {
43
- assertType("current property name", oldNameT, "String");
44
- assertType("new property name", newNameT, "String");
45
- const oldName = oldNameT.value;
46
- const newName = newNameT.value;
47
- const prop = base.properties.get(oldName);
48
- if (!prop) {
49
- throw new ProjectionError(`Property ${oldName} not found`);
50
- }
51
- prop.name = newName;
52
- base.properties.rekey(oldName, newName);
53
- return voidType;
54
- });
55
- },
56
- changePropertyType(base) {
57
- return createFunctionType((nameT, newType) => {
58
- assertType("property name", nameT, "String");
59
- const propertyName = nameT.value;
60
- const prop = base.properties.get(propertyName);
61
- if (!prop) {
62
- throw new ProjectionError(`Property ${propertyName} not found`);
63
- }
64
- prop.type = newType;
65
- return voidType;
66
- });
67
- },
68
- addProperty(base) {
69
- return createFunctionType((nameT, type, defaultT) => {
70
- assertType("property", nameT, "String");
71
- const name = nameT.value;
72
- const prop = base.properties.get(name);
73
- if (prop) {
74
- throw new ProjectionError(`Property ${name} already exists`);
75
- }
76
- base.properties.set(name, createType({
77
- kind: "ModelProperty",
78
- name,
79
- optional: false,
80
- decorators: [],
81
- node: undefined,
82
- default: defaultT,
83
- type,
84
- }));
85
- return voidType;
86
- });
87
- },
88
- deleteProperty(base) {
89
- return createFunctionType((nameT) => {
90
- assertType("property", nameT, "String");
91
- const name = nameT.value;
92
- const prop = base.properties.get(name);
93
- if (!prop) {
94
- return voidType;
95
- }
96
- base.properties.delete(name);
97
- return voidType;
98
- });
99
- },
100
- },
101
- ModelProperty: {
102
- ...createBaseMembers(),
103
- name(base) {
104
- return createLiteralType(base.name);
105
- },
106
- type(base) {
107
- return base.type;
108
- },
109
- setType(base) {
110
- return createFunctionType((t) => {
111
- base.type = t;
112
- return voidType;
113
- });
114
- },
115
- setOptional(base) {
116
- return createFunctionType((optional) => {
117
- assertType("Optional", optional, "Boolean");
118
- base.optional = optional.value;
119
- return voidType;
120
- });
121
- },
122
- },
123
- Scalar: {
124
- ...createBaseMembers(),
125
- ...createNameableMembers(),
126
- },
127
- Union: {
128
- ...createBaseMembers(),
129
- ...createNameableMembers(),
130
- variants(base) {
131
- return createType({
132
- kind: "Object",
133
- properties: {
134
- forEach: createFunctionType((block) => {
135
- assertType("block", block, "Function");
136
- const variants = Array.from(base.variants.values());
137
- variants.forEach((p) => block.implementation(p));
138
- return voidType;
139
- }),
140
- },
141
- });
142
- },
143
- renameVariant(base) {
144
- return createFunctionType((oldNameT, newNameT) => {
145
- assertType("old variant name", oldNameT, "String");
146
- assertType("new variant name", newNameT, "String");
147
- const oldName = oldNameT.value;
148
- const newName = newNameT.value;
149
- const variant = base.variants.get(oldName);
150
- if (!variant) {
151
- throw new ProjectionError(`Couldn't find variant ${variant}`);
152
- }
153
- base.variants.rekey(oldName, newName);
154
- variant.name = newName;
155
- return voidType;
156
- });
157
- },
158
- addVariant(base) {
159
- return createFunctionType((nameT, type) => {
160
- assertType("Variant name", nameT, "String");
161
- const name = nameT.value;
162
- const variantType = createType({
163
- kind: "UnionVariant",
164
- decorators: [],
165
- name,
166
- node: undefined,
167
- type,
168
- union: base,
169
- });
170
- base.variants.set(name, variantType);
171
- return voidType;
172
- });
173
- },
174
- deleteVariant(base) {
175
- return createFunctionType((nameT) => {
176
- assertType("Name", nameT, "String");
177
- const name = nameT.value;
178
- base.variants.delete(name);
179
- return voidType;
180
- });
181
- },
182
- },
183
- UnionVariant: {
184
- ...createBaseMembers(),
185
- name(base) {
186
- if (typeof base.name === "string") {
187
- return createLiteralType(base.name);
188
- }
189
- else {
190
- throw new ProjectionError("Can't refer to name of anonymous union variant");
191
- }
192
- },
193
- setType(base) {
194
- return createFunctionType((type) => {
195
- base.type = type;
196
- return voidType;
197
- });
198
- },
199
- type(base) {
200
- return base.type;
201
- },
202
- },
203
- Operation: {
204
- ...createBaseMembers(),
205
- ...createNameableMembers(),
206
- parameters(base) {
207
- return base.parameters;
208
- },
209
- returnType(base) {
210
- return base.returnType;
211
- },
212
- changeReturnType(base) {
213
- return createFunctionType((newType) => {
214
- base.returnType = newType;
215
- return voidType;
216
- });
217
- },
218
- },
219
- Interface: {
220
- ...createBaseMembers(),
221
- ...createNameableMembers(),
222
- operations(base) {
223
- return createType({
224
- kind: "Object",
225
- properties: {
226
- forEach: createFunctionType((block) => {
227
- assertType("block", block, "Function");
228
- const props = Array.from(base.operations.values());
229
- props.forEach((p) => block.implementation(p));
230
- return voidType;
231
- }),
232
- },
233
- });
234
- },
235
- renameOperation(base) {
236
- return createFunctionType((oldNameT, newNameT) => {
237
- assertType("operation name", oldNameT, "String");
238
- assertType("operation name", newNameT, "String");
239
- const oldName = oldNameT.value;
240
- const newName = newNameT.value;
241
- const op = base.operations.get(oldName);
242
- if (!op) {
243
- throw new ProjectionError(`Couldn't find operation named ${oldName}`);
244
- }
245
- op.name = newName;
246
- base.operations.rekey(oldName, newName);
247
- return voidType;
248
- });
249
- },
250
- addOperation(base) {
251
- return createFunctionType((nameT, parameters, returnType) => {
252
- assertType("operation name", nameT, "String");
253
- assertType("parameters", parameters, "Model");
254
- const name = nameT.value;
255
- const prop = base.operations.get(name);
256
- if (prop) {
257
- throw new ProjectionError(`Operation named ${name} already exists`);
258
- }
259
- base.operations.set(name, createType({
260
- kind: "Operation",
261
- name,
262
- node: undefined,
263
- parameters,
264
- returnType,
265
- decorators: [],
266
- }));
267
- return voidType;
268
- });
269
- },
270
- deleteOperation(base) {
271
- return createFunctionType((nameT) => {
272
- assertType("operation name", nameT, "String");
273
- const name = nameT.value;
274
- const prop = base.operations.get(name);
275
- if (!prop) {
276
- return voidType;
277
- }
278
- base.operations.delete(name);
279
- return voidType;
280
- });
281
- },
282
- },
283
- Enum: {
284
- ...createBaseMembers(),
285
- ...createNameableMembers(),
286
- members(base) {
287
- return createType({
288
- kind: "Object",
289
- properties: {
290
- forEach: createFunctionType((block) => {
291
- assertType("parameter", block, "Function");
292
- const props = Array.from(base.members.values());
293
- props.forEach((p) => block.implementation(p));
294
- return voidType;
295
- }),
296
- },
297
- });
298
- },
299
- name(base) {
300
- return createLiteralType(base.name);
301
- },
302
- addMember(base) {
303
- return createFunctionType((nameT, type) => {
304
- assertType("enum member", nameT, "String");
305
- type && assertType("enum type", type, "String", "Number");
306
- const name = nameT.value;
307
- const member = base.members.get(name);
308
- if (member) {
309
- throw new ProjectionError(`Enum already has a member named ${name}`);
310
- }
311
- if (type !== undefined && type.kind !== "Number" && type.kind !== "String") {
312
- throw new ProjectionError(`Enum member types must be string or number`);
313
- }
314
- base.members.set(name, createType({
315
- kind: "EnumMember",
316
- enum: base,
317
- name,
318
- decorators: [],
319
- node: undefined,
320
- value: type ? type.value : undefined,
321
- }));
322
- return voidType;
323
- });
324
- },
325
- deleteMember(base) {
326
- return createFunctionType((nameT) => {
327
- assertType("enum member", nameT, "String");
328
- const name = nameT.value;
329
- base.members.delete(name);
330
- return voidType;
331
- });
332
- },
333
- renameMember(base) {
334
- return createFunctionType((oldNameT, newNameT) => {
335
- assertType("enum member", oldNameT, "String");
336
- assertType("enum member", newNameT, "String");
337
- const oldName = oldNameT.value;
338
- const newName = newNameT.value;
339
- const member = base.members.get(oldName);
340
- if (!member) {
341
- throw new ProjectionError(`Enum doesn't have member ${oldName}`);
342
- }
343
- member.name = newName;
344
- base.members.rekey(oldName, newName);
345
- return voidType;
346
- });
347
- },
348
- },
349
- EnumMember: {
350
- ...createBaseMembers(),
351
- name(base) {
352
- return createLiteralType(base.name);
353
- },
354
- type(base) {
355
- return base.value ? createLiteralType(base.value) : neverType;
356
- },
357
- },
358
- String: {
359
- toCamelCase(base) {
360
- return createFunctionType(() => {
361
- return createLiteralType(camelCase(base.value));
362
- });
363
- },
364
- toPascalCase(base) {
365
- return createFunctionType(() => {
366
- return createLiteralType(pascalCase(base.value));
367
- });
368
- },
369
- toSnakeCase(base) {
370
- return createFunctionType(() => {
371
- return createLiteralType(snakeCase(base.value));
372
- });
373
- },
374
- toKebabCase(base) {
375
- return createFunctionType(() => {
376
- return createLiteralType(kebabCase(base.value));
377
- });
378
- },
379
- },
380
- };
381
- }
382
- //# sourceMappingURL=projection-members.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"projection-members.js","sourceRoot":"","sources":["../../../src/core/projection-members.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- import type { Program, ProjectedProgram } from "./program.js";
2
- import type { ProjectionApplication, Type } from "./types.js";
3
- /**
4
- * Creates a projector which returns a projected view of either the global namespace or the
5
- * start node provided. Projecting a type effectively clones every type referenced underneath
6
- * it. This is accomplished by doing a semantic walk of each type, cloning each type we find,
7
- * and running projection code on the clone.
8
- *
9
- * Projectors can run multiple projections at once. In such cases, each projection is run
10
- * on the same clone of the unprojected type. It is up to projections and the user to ensure
11
- * that projections which depend on a particular shape are run when that shape is present (or
12
- * else to ensure that their projections are tolerant to shape changes).
13
- *
14
- * The projector maintains its own state maps and sets. If a projection is active (i.e.
15
- * program.currentProjector is set), then the projector's state will be returned instead
16
- * of the program's state. This ensures that there is no overlap between projected and
17
- * unprojected state. It also means that you cannot get state for nodes that are not
18
- * part of the active projection.
19
- *
20
- * Note that decorators are run on namespaces prior to cloning any child types to align
21
- * with the checker semantics, while projections are run after everything under the namespace
22
- * is cloned. All other run decorators and projections after all child types are cloned and
23
- * have their decorators run.
24
- */
25
- export declare function createProjector(program: Program, projections: ProjectionApplication[], startNode?: Type): ProjectedProgram;
26
- //# sourceMappingURL=projector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"projector.d.ts","sourceRoot":"","sources":["../../../src/core/projector.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAI9D,OAAO,KAAK,EAWV,qBAAqB,EAIrB,IAAI,EAKL,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,qBAAqB,EAAE,EACpC,SAAS,CAAC,EAAE,IAAI,GACf,gBAAgB,CA2oBlB"}