@typespec/compiler 1.2.0-dev.1 → 1.2.0-dev.10

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 (74) hide show
  1. package/dist/manifest.js +2 -2
  2. package/dist/src/config/config-interpolation.d.ts.map +1 -1
  3. package/dist/src/config/config-interpolation.js +23 -52
  4. package/dist/src/config/config-interpolation.js.map +1 -1
  5. package/dist/src/experimental/realm.d.ts +4 -4
  6. package/dist/src/experimental/realm.d.ts.map +1 -1
  7. package/dist/src/lib/visibility.d.ts.map +1 -1
  8. package/dist/src/lib/visibility.js +11 -0
  9. package/dist/src/lib/visibility.js.map +1 -1
  10. package/dist/src/server/client-config-provider.d.ts +24 -0
  11. package/dist/src/server/client-config-provider.d.ts.map +1 -0
  12. package/dist/src/server/client-config-provider.js +40 -0
  13. package/dist/src/server/client-config-provider.js.map +1 -0
  14. package/dist/src/server/compile-service.d.ts +3 -1
  15. package/dist/src/server/compile-service.d.ts.map +1 -1
  16. package/dist/src/server/compile-service.js +9 -1
  17. package/dist/src/server/compile-service.js.map +1 -1
  18. package/dist/src/server/server.js +6 -2
  19. package/dist/src/server/server.js.map +1 -1
  20. package/dist/src/server/serverlib.d.ts +2 -1
  21. package/dist/src/server/serverlib.d.ts.map +1 -1
  22. package/dist/src/server/serverlib.js +2 -1
  23. package/dist/src/server/serverlib.js.map +1 -1
  24. package/dist/src/testing/fourslash.d.ts +16 -0
  25. package/dist/src/testing/fourslash.d.ts.map +1 -0
  26. package/dist/src/testing/fourslash.js +17 -0
  27. package/dist/src/testing/fourslash.js.map +1 -0
  28. package/dist/src/testing/fs.d.ts +12 -0
  29. package/dist/src/testing/fs.d.ts.map +1 -0
  30. package/dist/src/testing/fs.js +133 -0
  31. package/dist/src/testing/fs.js.map +1 -0
  32. package/dist/src/testing/index.d.ts +9 -2
  33. package/dist/src/testing/index.d.ts.map +1 -1
  34. package/dist/src/testing/index.js +7 -1
  35. package/dist/src/testing/index.js.map +1 -1
  36. package/dist/src/testing/marked-template.d.ts +96 -0
  37. package/dist/src/testing/marked-template.d.ts.map +1 -0
  38. package/dist/src/testing/marked-template.js +107 -0
  39. package/dist/src/testing/marked-template.js.map +1 -0
  40. package/dist/src/testing/rule-tester.d.ts +2 -2
  41. package/dist/src/testing/rule-tester.d.ts.map +1 -1
  42. package/dist/src/testing/rule-tester.js +2 -1
  43. package/dist/src/testing/rule-tester.js.map +1 -1
  44. package/dist/src/testing/test-compiler-host.d.ts +11 -0
  45. package/dist/src/testing/test-compiler-host.d.ts.map +1 -0
  46. package/dist/src/testing/test-compiler-host.js +138 -0
  47. package/dist/src/testing/test-compiler-host.js.map +1 -0
  48. package/dist/src/testing/test-host.d.ts +3 -9
  49. package/dist/src/testing/test-host.d.ts.map +1 -1
  50. package/dist/src/testing/test-host.js +6 -218
  51. package/dist/src/testing/test-host.js.map +1 -1
  52. package/dist/src/testing/test-server-host.d.ts +1 -1
  53. package/dist/src/testing/test-server-host.d.ts.map +1 -1
  54. package/dist/src/testing/test-server-host.js +5 -2
  55. package/dist/src/testing/test-server-host.js.map +1 -1
  56. package/dist/src/testing/tester.d.ts +12 -0
  57. package/dist/src/testing/tester.d.ts.map +1 -0
  58. package/dist/src/testing/tester.js +341 -0
  59. package/dist/src/testing/tester.js.map +1 -0
  60. package/dist/src/testing/types.d.ts +146 -3
  61. package/dist/src/testing/types.d.ts.map +1 -1
  62. package/dist/src/testing/types.js +1 -0
  63. package/dist/src/testing/types.js.map +1 -1
  64. package/dist/src/typekit/kits/literal.d.ts.map +1 -1
  65. package/dist/src/typekit/kits/literal.js +4 -25
  66. package/dist/src/typekit/kits/literal.js.map +1 -1
  67. package/lib/intrinsics.tsp +1 -1
  68. package/package.json +4 -4
  69. package/templates/__snapshots__/emitter-ts/package.json +1 -1
  70. package/templates/__snapshots__/library-ts/package.json +1 -1
  71. package/templates/__snapshots__/library-ts/test/decorators.test.ts +1 -1
  72. package/templates/emitter-ts/package.json +1 -1
  73. package/templates/library-ts/package.json +1 -1
  74. package/templates/library-ts/test/decorators.test.ts.mu +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"serverlib.js","sourceRoot":"","sources":["../../../src/server/serverlib.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serverlib.js","sourceRoot":"","sources":["../../../src/server/serverlib.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * PositionedMarker represents a marker in the code with its name and position.
3
+ */
4
+ export interface PositionedMarker {
5
+ /** Marker name */
6
+ readonly name: string;
7
+ /** Position of the marker */
8
+ readonly pos: number;
9
+ }
10
+ /**
11
+ * Extract TypeScript fourslash-style markers: /\*markerName*\/
12
+ * @param code
13
+ * @returns an array of Marker objects with name, pos, and end
14
+ */
15
+ export declare function extractMarkers(code: string): PositionedMarker[];
16
+ //# sourceMappingURL=fourslash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fourslash.d.ts","sourceRoot":"","sources":["../../../src/testing/fourslash.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,6BAA6B;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAU/D"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Extract TypeScript fourslash-style markers: /\*markerName*\/
3
+ * @param code
4
+ * @returns an array of Marker objects with name, pos, and end
5
+ */
6
+ export function extractMarkers(code) {
7
+ const markerRegex = /\/\*([a-zA-Z0-9_]+)\*\//g;
8
+ const markers = [];
9
+ let match;
10
+ while ((match = markerRegex.exec(code)) !== null) {
11
+ const markerName = match[1];
12
+ const pos = markerRegex.lastIndex;
13
+ markers.push({ name: markerName, pos });
14
+ }
15
+ return markers;
16
+ }
17
+ //# sourceMappingURL=fourslash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fourslash.js","sourceRoot":"","sources":["../../../src/testing/fourslash.ts"],"names":[],"mappings":"AAUA;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,WAAW,GAAG,0BAA0B,CAAC;IAC/C,MAAM,OAAO,GAAuB,EAAE,CAAC;IACvC,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACjD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,GAAG,GAAG,WAAW,CAAC,SAAS,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { TestHostOptions } from "./test-compiler-host.js";
2
+ import type { JsFile, TestFileSystem } from "./types.js";
3
+ export declare function resolveVirtualPath(path: string, ...paths: string[]): string;
4
+ /**
5
+ * Constructor for various mock files.
6
+ */
7
+ export declare const mockFile: {
8
+ /** Define a JS file with the given named exports */
9
+ js: (exports: Record<string, unknown>) => JsFile;
10
+ };
11
+ export declare function createTestFileSystem(options?: TestHostOptions): TestFileSystem;
12
+ //# sourceMappingURL=fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../../src/testing/fs.ts"],"names":[],"mappings":"AAKA,OAAO,EAA0B,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAElF,OAAO,KAAK,EAAE,MAAM,EAAY,cAAc,EAAuB,MAAM,YAAY,CAAC;AAExF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,UAMlE;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ;IACnB,oDAAoD;kBACtC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,MAAM;CAG/C,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,cAAc,CAI9E"}
@@ -0,0 +1,133 @@
1
+ import { readdir, readFile, stat } from "fs/promises";
2
+ import { join } from "path";
3
+ import { pathToFileURL } from "url";
4
+ import { getAnyExtensionFromPath, resolvePath } from "../core/path-utils.js";
5
+ import { createStringMap } from "../utils/misc.js";
6
+ import { createTestCompilerHost } from "./test-compiler-host.js";
7
+ import { findFilesFromPattern } from "./test-host.js";
8
+ export function resolveVirtualPath(path, ...paths) {
9
+ // NB: We should always resolve an absolute path, and there is no absolute
10
+ // path that works across OSes. This ensures that we can still rely on API
11
+ // like pathToFileURL in tests.
12
+ const rootDir = process.platform === "win32" ? "Z:/test" : "/test";
13
+ return resolvePath(rootDir, path, ...paths);
14
+ }
15
+ /**
16
+ * Constructor for various mock files.
17
+ */
18
+ export const mockFile = {
19
+ /** Define a JS file with the given named exports */
20
+ js: (exports) => {
21
+ return { kind: "js", exports };
22
+ },
23
+ };
24
+ export function createTestFileSystem(options) {
25
+ const virtualFs = createStringMap(!!options?.caseInsensitiveFileSystem);
26
+ const jsImports = createStringMap(!!options?.caseInsensitiveFileSystem);
27
+ return createTestFileSystemInternal(virtualFs, jsImports, options);
28
+ }
29
+ function createTestFileSystemInternal(virtualFs, jsImports, options) {
30
+ const compilerHost = createTestCompilerHost(virtualFs, jsImports, options);
31
+ let frozen = false;
32
+ return {
33
+ add,
34
+ addTypeSpecFile,
35
+ addJsFile,
36
+ addRealTypeSpecFile,
37
+ addRealJsFile,
38
+ addRealFolder,
39
+ addTypeSpecLibrary,
40
+ fs: virtualFs,
41
+ compilerHost,
42
+ freeze,
43
+ clone,
44
+ };
45
+ function assertNotFrozen() {
46
+ if (frozen) {
47
+ throw new Error("Cannot modify the file system after it has been frozen.");
48
+ }
49
+ }
50
+ function add(path, contents) {
51
+ assertNotFrozen();
52
+ if (typeof contents === "string") {
53
+ addRaw(path, contents);
54
+ }
55
+ else {
56
+ addJsFile(path, contents.exports);
57
+ }
58
+ }
59
+ function addRaw(path, contents) {
60
+ assertNotFrozen();
61
+ virtualFs.set(resolveVirtualPath(path), contents);
62
+ }
63
+ function addJsFile(path, contents) {
64
+ assertNotFrozen();
65
+ const key = resolveVirtualPath(path);
66
+ virtualFs.set(key, ""); // don't need contents
67
+ jsImports.set(key, new Promise((r) => r(contents)));
68
+ }
69
+ function addTypeSpecFile(path, contents) {
70
+ assertNotFrozen();
71
+ virtualFs.set(resolveVirtualPath(path), contents);
72
+ }
73
+ async function addRealTypeSpecFile(path, existingPath) {
74
+ assertNotFrozen();
75
+ virtualFs.set(resolveVirtualPath(path), await readFile(existingPath, "utf8"));
76
+ }
77
+ async function addRealFolder(folder, existingFolder) {
78
+ assertNotFrozen();
79
+ const entries = await readdir(existingFolder);
80
+ for (const entry of entries) {
81
+ const existingPath = join(existingFolder, entry);
82
+ const virtualPath = join(folder, entry);
83
+ const s = await stat(existingPath);
84
+ if (s.isFile()) {
85
+ if (existingPath.endsWith(".js")) {
86
+ await addRealJsFile(virtualPath, existingPath);
87
+ }
88
+ else {
89
+ await addRealTypeSpecFile(virtualPath, existingPath);
90
+ }
91
+ }
92
+ if (s.isDirectory()) {
93
+ await addRealFolder(virtualPath, existingPath);
94
+ }
95
+ }
96
+ }
97
+ async function addRealJsFile(path, existingPath) {
98
+ assertNotFrozen();
99
+ const key = resolveVirtualPath(path);
100
+ const exports = await import(pathToFileURL(existingPath).href);
101
+ virtualFs.set(key, "");
102
+ jsImports.set(key, exports);
103
+ }
104
+ async function addTypeSpecLibrary(testLibrary) {
105
+ assertNotFrozen();
106
+ for (const { realDir, pattern, virtualPath } of testLibrary.files) {
107
+ const lookupDir = resolvePath(testLibrary.packageRoot, realDir);
108
+ const entries = await findFilesFromPattern(lookupDir, pattern);
109
+ for (const entry of entries) {
110
+ const fileRealPath = resolvePath(lookupDir, entry);
111
+ const fileVirtualPath = resolveVirtualPath(virtualPath, entry);
112
+ switch (getAnyExtensionFromPath(fileRealPath)) {
113
+ case ".tsp":
114
+ case ".json":
115
+ const contents = await readFile(fileRealPath, "utf-8");
116
+ addTypeSpecFile(fileVirtualPath, contents);
117
+ break;
118
+ case ".js":
119
+ case ".mjs":
120
+ await addRealJsFile(fileVirtualPath, fileRealPath);
121
+ break;
122
+ }
123
+ }
124
+ }
125
+ }
126
+ function freeze() {
127
+ frozen = true;
128
+ }
129
+ function clone() {
130
+ return createTestFileSystemInternal(new Map(virtualFs), new Map(jsImports), options);
131
+ }
132
+ }
133
+ //# sourceMappingURL=fs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../../src/testing/fs.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,15 @@
1
+ export {
2
+ /** @deprecated Using this should be a noop. Prefer new test framework*/
3
+ StandardTestLibrary, } from "./test-compiler-host.js";
1
4
  export { expectCodeFixOnAst } from "./code-fix-testing.js";
2
5
  export { expectDiagnosticEmpty, expectDiagnostics, type DiagnosticMatch } from "./expect.js";
6
+ export { createTestFileSystem, mockFile } from "./fs.js";
7
+ export { t } from "./marked-template.js";
3
8
  export { createLinterRuleTester, type ApplyCodeFixExpect, type LinterRuleTestExpect, type LinterRuleTester, } from "./rule-tester.js";
4
9
  export { extractCursor, extractSquiggles } from "./source-utils.js";
5
- export { StandardTestLibrary, createTestFileSystem, createTestHost, createTestRunner, findFilesFromPattern, type TestHostOptions, } from "./test-host.js";
10
+ export type { TestHostOptions } from "./test-compiler-host.js";
11
+ export { createTestHost, createTestRunner, findFilesFromPattern } from "./test-host.js";
6
12
  export { createTestLibrary, createTestWrapper, expectTypeEquals, findTestPackageRoot, resolveVirtualPath, trimBlankLines, type TestWrapperOptions, } from "./test-utils.js";
7
- export type { BasicTestRunner, TestFileSystem, TestFiles, TestHost, TestHostConfig, TestHostError, TypeSpecTestLibrary, TypeSpecTestLibraryInit, } from "./types.js";
13
+ export { createTester } from "./tester.js";
14
+ export type { BasicTestRunner, EmitterTester, EmitterTesterInstance, JsFile, MockFile, TestCompileOptions, TestCompileResult, TestEmitterCompileResult, TestFileSystem as TestFileSystem, TestFiles, TestHost, TestHostConfig, TestHostError, Tester, TesterInstance, TypeSpecTestLibrary, TypeSpecTestLibraryInit, } from "./types.js";
8
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EACL,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,eAAe,GACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,KAAK,kBAAkB,GACxB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,eAAe,EACf,cAAc,EACd,SAAS,EACT,QAAQ,EACR,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO;AACL,wEAAwE;AACxE,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,CAAC,EAAE,MAAM,sBAAsB,CAAC;AACzC,OAAO,EACL,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACpE,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACxF,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,KAAK,kBAAkB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,EACV,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,MAAM,EACN,QAAQ,EACR,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,cAAc,IAAI,cAAc,EAChC,SAAS,EACT,QAAQ,EACR,cAAc,EACd,aAAa,EACb,MAAM,EACN,cAAc,EACd,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,YAAY,CAAC"}
@@ -1,7 +1,13 @@
1
+ export {
2
+ /** @deprecated Using this should be a noop. Prefer new test framework*/
3
+ StandardTestLibrary, } from "./test-compiler-host.js";
1
4
  export { expectCodeFixOnAst } from "./code-fix-testing.js";
2
5
  export { expectDiagnosticEmpty, expectDiagnostics } from "./expect.js";
6
+ export { createTestFileSystem, mockFile } from "./fs.js";
7
+ export { t } from "./marked-template.js";
3
8
  export { createLinterRuleTester, } from "./rule-tester.js";
4
9
  export { extractCursor, extractSquiggles } from "./source-utils.js";
5
- export { StandardTestLibrary, createTestFileSystem, createTestHost, createTestRunner, findFilesFromPattern, } from "./test-host.js";
10
+ export { createTestHost, createTestRunner, findFilesFromPattern } from "./test-host.js";
6
11
  export { createTestLibrary, createTestWrapper, expectTypeEquals, findTestPackageRoot, resolveVirtualPath, trimBlankLines, } from "./test-utils.js";
12
+ export { createTester } from "./tester.js";
7
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAwB,MAAM,aAAa,CAAC;AAC7F,OAAO,EACL,sBAAsB,GAIvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,GAErB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,GAEf,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO;AACL,wEAAwE;AACxE,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAwB,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,CAAC,EAAE,MAAM,sBAAsB,CAAC;AACzC,OAAO,EACL,sBAAsB,GAIvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACxF,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,GAEf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,96 @@
1
+ import type { ArrayValue, BooleanLiteral, BooleanValue, Entity, Enum, EnumMember, EnumValue, Interface, Model, ModelProperty, Namespace, NumericLiteral, NumericValue, ObjectValue, Operation, Scalar, ScalarValue, StringLiteral, StringValue, Type, Union, UnionVariant, Value } from "../core/types.js";
2
+ export type Marker<T extends Entity, N extends string> = T extends Type ? TypeMarker<T, N> : T extends Value ? ValueMarker<T, N> : never;
3
+ export interface TypeMarker<T extends Type, N extends string> {
4
+ readonly entityKind: "Type";
5
+ readonly kind?: T["kind"];
6
+ readonly name: N;
7
+ }
8
+ export interface ValueMarker<T extends Value, N extends string> {
9
+ readonly entityKind: "Value";
10
+ readonly valueKind?: T["valueKind"];
11
+ readonly name: N;
12
+ }
13
+ export type MarkerConfig<T extends Record<string, Entity>> = {
14
+ [K in keyof T]: Marker<T[K], K & string>;
15
+ };
16
+ export interface TemplateWithMarkers<T extends Record<string, Entity>> {
17
+ readonly isTemplateWithMarkers: true;
18
+ readonly code: string;
19
+ readonly markers: MarkerConfig<T>;
20
+ }
21
+ export declare const TemplateWithMarkers: {
22
+ is: (value: unknown) => value is TemplateWithMarkers<any>;
23
+ };
24
+ /** Specify that this value is dynamic and needs to be interpolated with the given keys */
25
+ declare function code<const T extends (Marker<Entity, string> | string)[]>(strings: TemplateStringsArray, ...keys: T): TemplateWithMarkers<Prettify<CollectType<T>>>;
26
+ /** TypeSpec template marker */
27
+ export declare const t: {
28
+ /**
29
+ * Define a marked code block
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * const code = t.code`model ${t.model("Foo")} { bar: string }`;
34
+ * ```
35
+ */
36
+ code: typeof code;
37
+ /** Mark any type */
38
+ type: <const N extends string>(name: N) => TypeMarker<Type, N>;
39
+ /** Mark a model */
40
+ model: <const N extends string>(name: N) => TypeMarker<Model, N>;
41
+ /** Mark an enum */
42
+ enum: <const N extends string>(name: N) => TypeMarker<Enum, N>;
43
+ /** Mark an union */
44
+ union: <const N extends string>(name: N) => TypeMarker<Union, N>;
45
+ /** Mark an interface */
46
+ interface: <const N extends string>(name: N) => TypeMarker<Interface, N>;
47
+ /** Mark an operation */
48
+ op: <const N extends string>(name: N) => TypeMarker<Operation, N>;
49
+ /** Mark an enum member */
50
+ enumMember: <const N extends string>(name: N) => TypeMarker<EnumMember, N>;
51
+ /** Mark a model property */
52
+ modelProperty: <const N extends string>(name: N) => TypeMarker<ModelProperty, N>;
53
+ /** Mark a namespace */
54
+ namespace: <const N extends string>(name: N) => TypeMarker<Namespace, N>;
55
+ /** Mark a scalar */
56
+ scalar: <const N extends string>(name: N) => TypeMarker<Scalar, N>;
57
+ /** Mark a union variant */
58
+ unionVariant: <const N extends string>(name: N) => TypeMarker<UnionVariant, N>;
59
+ /** Mark a boolean literal */
60
+ boolean: <const N extends string>(name: N) => TypeMarker<BooleanLiteral, N>;
61
+ /** Mark a number literal */
62
+ number: <const N extends string>(name: N) => TypeMarker<NumericLiteral, N>;
63
+ /** Mark a string literal */
64
+ string: <const N extends string>(name: N) => TypeMarker<StringLiteral, N>;
65
+ /** Mark any value */
66
+ value: <const N extends string>(name: N) => ValueMarker<Value, N>;
67
+ /** Mark an object value */
68
+ object: <const N extends string>(name: N) => ValueMarker<ObjectValue, N>;
69
+ /** Mark an array value */
70
+ array: <const N extends string>(name: N) => ValueMarker<ArrayValue, N>;
71
+ /** Mark a numeric value */
72
+ numericValue: <const N extends string>(name: N) => ValueMarker<NumericValue, N>;
73
+ /** Mark a string value */
74
+ stringValue: <const N extends string>(name: N) => ValueMarker<StringValue, N>;
75
+ /** Mark a boolean value */
76
+ booleanValue: <const N extends string>(name: N) => ValueMarker<BooleanValue, N>;
77
+ /** Mark a scalar value */
78
+ scalarValue: <const N extends string>(name: N) => ValueMarker<ScalarValue, N>;
79
+ /** Mark an enum value */
80
+ enumValue: <const N extends string>(name: N) => ValueMarker<EnumValue, N>;
81
+ };
82
+ type Prettify<T extends Record<string, Entity>> = {
83
+ [K in keyof T]: T[K] & Entity;
84
+ } & {};
85
+ type InferType<T> = T extends Marker<infer K, infer _> ? K : never;
86
+ type CollectType<T extends ReadonlyArray<Marker<Entity, string> | string>> = {
87
+ [K in T[number] as K extends Marker<infer _K, infer N> ? N : never]: InferType<K>;
88
+ };
89
+ type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
90
+ type FlattenRecord<T extends Record<string, unknown>> = UnionToIntersection<T[keyof T]>;
91
+ type FlattenTemplates<M extends Record<string, string | TemplateWithMarkers<any>>> = FlattenRecord<{
92
+ [K in keyof M]: M[K] extends TemplateWithMarkers<infer T> ? T : never;
93
+ }>;
94
+ export type GetMarkedEntities<M extends string | TemplateWithMarkers<any> | Record<string, string | TemplateWithMarkers<any>>> = M extends Record<string, string | TemplateWithMarkers<any>> ? FlattenTemplates<M> : M extends string | TemplateWithMarkers<infer R> ? R : never;
95
+ export {};
96
+ //# sourceMappingURL=marked-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marked-template.d.ts","sourceRoot":"","sources":["../../../src/testing/marked-template.ts"],"names":[],"mappings":"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"}