@glint/ember-tsc 1.4.0 → 1.6.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 (139) hide show
  1. package/package.json +14 -3
  2. package/src/config/index.ts +12 -0
  3. package/src/environment-ember-template-imports/-private/environment/index.ts +48 -20
  4. package/src/index.ts +9 -2
  5. package/src/volar/language-server.ts +23 -11
  6. package/types/-private/dsl/globals.d.ts +316 -1
  7. package/types/-private/intrinsics/array-hash.d.ts +17 -0
  8. package/types/-private/intrinsics/comparison.d.ts +36 -0
  9. package/types/-private/intrinsics/element.d.ts +14 -0
  10. package/types/-private/intrinsics/truth-convert.d.ts +86 -0
  11. package/types/-private/intrinsics/truth-helpers.d.ts +32 -0
  12. package/lib/cli/run-volar-tsc.d.ts +0 -2
  13. package/lib/cli/run-volar-tsc.d.ts.map +0 -1
  14. package/lib/cli/run-volar-tsc.js +0 -32
  15. package/lib/cli/run-volar-tsc.js.map +0 -1
  16. package/lib/config/config.d.ts +0 -15
  17. package/lib/config/config.d.ts.map +0 -1
  18. package/lib/config/config.js +0 -21
  19. package/lib/config/config.js.map +0 -1
  20. package/lib/config/environment.d.ts +0 -26
  21. package/lib/config/environment.d.ts.map +0 -1
  22. package/lib/config/environment.js +0 -96
  23. package/lib/config/environment.js.map +0 -1
  24. package/lib/config/index.d.ts +0 -17
  25. package/lib/config/index.d.ts.map +0 -1
  26. package/lib/config/index.js +0 -26
  27. package/lib/config/index.js.map +0 -1
  28. package/lib/config/loader.d.ts +0 -28
  29. package/lib/config/loader.d.ts.map +0 -1
  30. package/lib/config/loader.js +0 -121
  31. package/lib/config/loader.js.map +0 -1
  32. package/lib/config/types.cjs +0 -3
  33. package/lib/config/types.cjs.map +0 -1
  34. package/lib/config/types.d.cts +0 -60
  35. package/lib/config/types.d.cts.map +0 -1
  36. package/lib/environment-ember-template-imports/-private/environment/common.d.ts +0 -13
  37. package/lib/environment-ember-template-imports/-private/environment/common.d.ts.map +0 -1
  38. package/lib/environment-ember-template-imports/-private/environment/common.js +0 -2
  39. package/lib/environment-ember-template-imports/-private/environment/common.js.map +0 -1
  40. package/lib/environment-ember-template-imports/-private/environment/index.d.ts +0 -3
  41. package/lib/environment-ember-template-imports/-private/environment/index.d.ts.map +0 -1
  42. package/lib/environment-ember-template-imports/-private/environment/index.js +0 -76
  43. package/lib/environment-ember-template-imports/-private/environment/index.js.map +0 -1
  44. package/lib/environment-ember-template-imports/-private/environment/preprocess.d.ts +0 -4
  45. package/lib/environment-ember-template-imports/-private/environment/preprocess.d.ts.map +0 -1
  46. package/lib/environment-ember-template-imports/-private/environment/preprocess.js +0 -42
  47. package/lib/environment-ember-template-imports/-private/environment/preprocess.js.map +0 -1
  48. package/lib/environment-ember-template-imports/-private/environment/transform.d.ts +0 -4
  49. package/lib/environment-ember-template-imports/-private/environment/transform.d.ts.map +0 -1
  50. package/lib/environment-ember-template-imports/-private/environment/transform.js +0 -134
  51. package/lib/environment-ember-template-imports/-private/environment/transform.js.map +0 -1
  52. package/lib/index.d.ts +0 -7
  53. package/lib/index.d.ts.map +0 -1
  54. package/lib/index.js +0 -6
  55. package/lib/index.js.map +0 -1
  56. package/lib/plugins/g-compiler-errors.d.ts +0 -12
  57. package/lib/plugins/g-compiler-errors.d.ts.map +0 -1
  58. package/lib/plugins/g-compiler-errors.js +0 -58
  59. package/lib/plugins/g-compiler-errors.js.map +0 -1
  60. package/lib/plugins/g-component-hover.d.ts +0 -24
  61. package/lib/plugins/g-component-hover.d.ts.map +0 -1
  62. package/lib/plugins/g-component-hover.js +0 -135
  63. package/lib/plugins/g-component-hover.js.map +0 -1
  64. package/lib/plugins/g-template-tag-symbols.d.ts +0 -11
  65. package/lib/plugins/g-template-tag-symbols.d.ts.map +0 -1
  66. package/lib/plugins/g-template-tag-symbols.js +0 -48
  67. package/lib/plugins/g-template-tag-symbols.js.map +0 -1
  68. package/lib/plugins/utils.d.ts +0 -25
  69. package/lib/plugins/utils.d.ts.map +0 -1
  70. package/lib/plugins/utils.js +0 -63
  71. package/lib/plugins/utils.js.map +0 -1
  72. package/lib/transform/diagnostics/augmentation.d.ts +0 -4
  73. package/lib/transform/diagnostics/augmentation.d.ts.map +0 -1
  74. package/lib/transform/diagnostics/augmentation.js +0 -249
  75. package/lib/transform/diagnostics/augmentation.js.map +0 -1
  76. package/lib/transform/diagnostics/index.d.ts +0 -5
  77. package/lib/transform/diagnostics/index.d.ts.map +0 -1
  78. package/lib/transform/diagnostics/index.js +0 -2
  79. package/lib/transform/diagnostics/index.js.map +0 -1
  80. package/lib/transform/index.d.ts +0 -4
  81. package/lib/transform/index.d.ts.map +0 -1
  82. package/lib/transform/index.js +0 -2
  83. package/lib/transform/index.js.map +0 -1
  84. package/lib/transform/template/code-features.d.ts +0 -30
  85. package/lib/transform/template/code-features.d.ts.map +0 -1
  86. package/lib/transform/template/code-features.js +0 -26
  87. package/lib/transform/template/code-features.js.map +0 -1
  88. package/lib/transform/template/glimmer-ast-mapping-tree.d.ts +0 -80
  89. package/lib/transform/template/glimmer-ast-mapping-tree.d.ts.map +0 -1
  90. package/lib/transform/template/glimmer-ast-mapping-tree.js +0 -132
  91. package/lib/transform/template/glimmer-ast-mapping-tree.js.map +0 -1
  92. package/lib/transform/template/inlining/index.d.ts +0 -16
  93. package/lib/transform/template/inlining/index.d.ts.map +0 -1
  94. package/lib/transform/template/inlining/index.js +0 -21
  95. package/lib/transform/template/inlining/index.js.map +0 -1
  96. package/lib/transform/template/inlining/tagged-strings.d.ts +0 -8
  97. package/lib/transform/template/inlining/tagged-strings.d.ts.map +0 -1
  98. package/lib/transform/template/inlining/tagged-strings.js +0 -140
  99. package/lib/transform/template/inlining/tagged-strings.js.map +0 -1
  100. package/lib/transform/template/map-template-contents.d.ts +0 -121
  101. package/lib/transform/template/map-template-contents.d.ts.map +0 -1
  102. package/lib/transform/template/map-template-contents.js +0 -287
  103. package/lib/transform/template/map-template-contents.js.map +0 -1
  104. package/lib/transform/template/rewrite-module.d.ts +0 -22
  105. package/lib/transform/template/rewrite-module.d.ts.map +0 -1
  106. package/lib/transform/template/rewrite-module.js +0 -265
  107. package/lib/transform/template/rewrite-module.js.map +0 -1
  108. package/lib/transform/template/scope-stack.d.ts +0 -13
  109. package/lib/transform/template/scope-stack.d.ts.map +0 -1
  110. package/lib/transform/template/scope-stack.js +0 -28
  111. package/lib/transform/template/scope-stack.js.map +0 -1
  112. package/lib/transform/template/template-to-typescript.d.ts +0 -19
  113. package/lib/transform/template/template-to-typescript.d.ts.map +0 -1
  114. package/lib/transform/template/template-to-typescript.js +0 -1125
  115. package/lib/transform/template/template-to-typescript.js.map +0 -1
  116. package/lib/transform/template/transformed-module.d.ts +0 -111
  117. package/lib/transform/template/transformed-module.d.ts.map +0 -1
  118. package/lib/transform/template/transformed-module.js +0 -287
  119. package/lib/transform/template/transformed-module.js.map +0 -1
  120. package/lib/transform/util.d.ts +0 -7
  121. package/lib/transform/util.d.ts.map +0 -1
  122. package/lib/transform/util.js +0 -15
  123. package/lib/transform/util.js.map +0 -1
  124. package/lib/volar/ember-language-plugin.d.ts +0 -14
  125. package/lib/volar/ember-language-plugin.d.ts.map +0 -1
  126. package/lib/volar/ember-language-plugin.js +0 -91
  127. package/lib/volar/ember-language-plugin.js.map +0 -1
  128. package/lib/volar/gts-virtual-code.d.ts +0 -83
  129. package/lib/volar/gts-virtual-code.d.ts.map +0 -1
  130. package/lib/volar/gts-virtual-code.js +0 -210
  131. package/lib/volar/gts-virtual-code.js.map +0 -1
  132. package/lib/volar/language-server.d.ts +0 -2
  133. package/lib/volar/language-server.d.ts.map +0 -1
  134. package/lib/volar/language-server.js +0 -171
  135. package/lib/volar/language-server.js.map +0 -1
  136. package/lib/volar/script-snapshot.d.ts +0 -17
  137. package/lib/volar/script-snapshot.d.ts.map +0 -1
  138. package/lib/volar/script-snapshot.js +0 -24
  139. package/lib/volar/script-snapshot.js.map +0 -1
@@ -0,0 +1,86 @@
1
+ // Adapted from `ember-truth-helpers` to give Glint exact return-type inference
2
+ // for the `(and ...)` and `(or ...)` built-in keywords introduced in
3
+ // ember-source 7.1 (RFC 560). The runtime semantics in Ember intentionally
4
+ // match `ember-truth-helpers`, so the type-level rules here mirror that
5
+ // package's published types.
6
+ //
7
+ // See: https://github.com/jmurphyau/ember-truth-helpers/blob/master/src/utils/truth-convert.ts
8
+
9
+ export type Falsy = { isTruthy: false } | undefined | null | false | 0 | 0n | '' | never[];
10
+
11
+ export type MaybeTruthy =
12
+ | { isTruthy: boolean }
13
+ | undefined
14
+ | null
15
+ | boolean
16
+ | number
17
+ | bigint
18
+ | string
19
+ | unknown[]
20
+ | object;
21
+
22
+ export type TruthConvert<T> = T extends { isTruthy: true }
23
+ ? true
24
+ : T extends { isTruthy: false }
25
+ ? false
26
+ : T extends { isTruthy: boolean }
27
+ ? boolean
28
+ : T extends undefined | null
29
+ ? false
30
+ : T extends boolean
31
+ ? T
32
+ : T extends number
33
+ ? T extends 0
34
+ ? false
35
+ : number extends T
36
+ ? boolean
37
+ : true
38
+ : T extends bigint
39
+ ? T extends 0n
40
+ ? false
41
+ : bigint extends T
42
+ ? boolean
43
+ : true
44
+ : T extends string
45
+ ? T extends ''
46
+ ? false
47
+ : string extends T
48
+ ? boolean
49
+ : true
50
+ : T extends never[]
51
+ ? false
52
+ : T extends ArrayLike<unknown>
53
+ ? boolean
54
+ : T extends object
55
+ ? true
56
+ : boolean;
57
+
58
+ /**
59
+ * Walks the positional argument tuple and returns the type of the first
60
+ * element whose `TruthConvert` resolves to `false`, falling back to the last
61
+ * element. Mirrors the runtime short-circuit behaviour of `(and ...)`.
62
+ */
63
+ export type FirstFalsy<T> = T extends [infer Item]
64
+ ? Item
65
+ : T extends [infer Head, ...infer Tail]
66
+ ? TruthConvert<Head> extends false
67
+ ? Head
68
+ : TruthConvert<Head> extends true
69
+ ? FirstFalsy<Tail>
70
+ : Head | FirstFalsy<Tail>
71
+ : undefined;
72
+
73
+ /**
74
+ * Walks the positional argument tuple and returns the type of the first
75
+ * element whose `TruthConvert` resolves to `true`, falling back to the last
76
+ * element. Mirrors the runtime short-circuit behaviour of `(or ...)`.
77
+ */
78
+ export type FirstTruthy<T> = T extends [infer Item]
79
+ ? Item
80
+ : T extends [infer Head, ...infer Tail]
81
+ ? TruthConvert<Head> extends true
82
+ ? Head
83
+ : TruthConvert<Head> extends false
84
+ ? FirstTruthy<Tail>
85
+ : Exclude<Head, Falsy> | FirstTruthy<Tail>
86
+ : undefined;
@@ -0,0 +1,32 @@
1
+ import { DirectInvokable } from '@glint/template/-private/integration';
2
+
3
+ import type { FirstFalsy, FirstTruthy, MaybeTruthy, TruthConvert } from './truth-convert';
4
+
5
+ /**
6
+ * `(and a b ...)` — short-circuit logical AND. Returns the first falsy
7
+ * positional argument or the last argument. Available as a built-in keyword
8
+ * in ember-source >= 7.1 (RFC 560).
9
+ */
10
+ export type AndHelper = DirectInvokable<{
11
+ <T extends MaybeTruthy[]>(...args: T): FirstFalsy<T>;
12
+ }>;
13
+
14
+ /**
15
+ * `(or a b ...)` — short-circuit logical OR. Returns the first truthy
16
+ * positional argument or the last argument. Available as a built-in keyword
17
+ * in ember-source >= 7.1 (RFC 560).
18
+ */
19
+ export type OrHelper = DirectInvokable<{
20
+ <T extends MaybeTruthy[]>(...args: T): FirstTruthy<T>;
21
+ }>;
22
+
23
+ /**
24
+ * `(not value)` — boolean negation using truthy semantics matching the rest
25
+ * of Ember's template-side helpers. Built-in keyword in ember-source >= 7.1
26
+ * (RFC 560).
27
+ */
28
+ export type NotHelper = DirectInvokable<{
29
+ <T>(
30
+ value: T,
31
+ ): TruthConvert<T> extends true ? false : TruthConvert<T> extends false ? true : boolean;
32
+ }>;
@@ -1,2 +0,0 @@
1
- export declare function run(): void;
2
- //# sourceMappingURL=run-volar-tsc.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-volar-tsc.d.ts","sourceRoot":"","sources":["../../src/cli/run-volar-tsc.ts"],"names":[],"mappings":"AAOA,wBAAgB,GAAG,IAAI,IAAI,CA6B1B"}
@@ -1,32 +0,0 @@
1
- import { runTsc } from '@volar/typescript/lib/quickstart/runTsc.js';
2
- import { createEmberLanguagePlugin } from '../volar/ember-language-plugin.js';
3
- import { findConfig } from '../config/index.js';
4
- import { createRequire } from 'node:module';
5
- const require = createRequire(import.meta.url);
6
- export function run() {
7
- let cwd = process.cwd();
8
- const options = {
9
- extraSupportedExtensions: ['.gjs', '.gts'],
10
- // With the below configuration `{basename.gts}` will produce `{basename}.d.ts`
11
- // This is in line with how V2 addons build their components.
12
- // At build time, `.gts` components are emitted as `.js` files, so that's why the corresponding declarations should be `.d.ts`
13
- //
14
- // Please refer to https://github.com/typed-ember/glint/issues/988 for more information
15
- //
16
- // Before this option, glint emitted broken declarations in which relative imports to other .gts files did not strip extensions (https://github.com/typed-ember/glint/issues/628).
17
- // The declarations outputted by volar's runTsc luckily also remove extension in imports.
18
- extraExtensionsToRemove: ['.gjs', '.gts'],
19
- };
20
- const main = () => runTsc(require.resolve('typescript/lib/tsc'), options, (ts, options) => {
21
- const glintConfig = findConfig(cwd);
22
- if (glintConfig) {
23
- const gtsLanguagePlugin = createEmberLanguagePlugin(glintConfig);
24
- return [gtsLanguagePlugin];
25
- }
26
- else {
27
- return [];
28
- }
29
- });
30
- main();
31
- }
32
- //# sourceMappingURL=run-volar-tsc.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-volar-tsc.js","sourceRoot":"","sources":["../../src/cli/run-volar-tsc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,4CAA4C,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,MAAM,UAAU,GAAG;IACjB,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAExB,MAAM,OAAO,GAAG;QACd,wBAAwB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;QAE1C,+EAA+E;QAC/E,6DAA6D;QAC7D,8HAA8H;QAC9H,EAAE;QACF,uFAAuF;QACvF,EAAE;QACF,kLAAkL;QAClL,yFAAyF;QACzF,uBAAuB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;KAC1C,CAAC;IAEF,MAAM,IAAI,GAAG,GAAS,EAAE,CACtB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;QACrE,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAEpC,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC;YACjE,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;IACL,IAAI,EAAE,CAAC;AACT,CAAC"}
@@ -1,15 +0,0 @@
1
- import { GlintConfigInput } from '@glint/ember-tsc/config-types';
2
- import { GlintEnvironment } from './environment.js';
3
- /**
4
- * This class represents parsed Glint configuration from a `tsconfig` or `jsconfig` file,
5
- * with methods for interrogating project configuration based on its contents.
6
- */
7
- export declare class GlintConfig {
8
- readonly ts: typeof import('typescript');
9
- readonly rootDir: string;
10
- readonly configPath: string;
11
- readonly environment: GlintEnvironment;
12
- constructor(ts: typeof import('typescript'), configPath: string, config: GlintConfigInput);
13
- }
14
- export declare function normalizePath(fileName: string): string;
15
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;;GAGG;AACH,qBAAa,WAAW;IACtB,SAAwB,EAAE,EAAE,cAAc,YAAY,CAAC,CAAC;IACxD,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,WAAW,EAAE,gBAAgB,CAAC;gBAG5C,EAAE,EAAE,cAAc,YAAY,CAAC,EAC/B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,gBAAgB;CAO3B;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMtD"}
@@ -1,21 +0,0 @@
1
- import * as path from 'node:path';
2
- import { GlintEnvironment } from './environment.js';
3
- /**
4
- * This class represents parsed Glint configuration from a `tsconfig` or `jsconfig` file,
5
- * with methods for interrogating project configuration based on its contents.
6
- */
7
- export class GlintConfig {
8
- constructor(ts, configPath, config) {
9
- Object.defineProperty(this, 'ts', { value: ts });
10
- this.configPath = normalizePath(configPath);
11
- this.rootDir = path.dirname(configPath);
12
- this.environment = GlintEnvironment.load(config);
13
- }
14
- }
15
- export function normalizePath(fileName) {
16
- if (path.sep !== '/') {
17
- return fileName.split(path.sep).join('/');
18
- }
19
- return fileName;
20
- }
21
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;;GAGG;AACH,MAAM,OAAO,WAAW;IAMtB,YACE,EAA+B,EAC/B,UAAkB,EAClB,MAAwB;QAExB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;CACF;AAED,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;QACrB,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1,26 +0,0 @@
1
- import { GlintEnvironmentConfig, GlintExtensionConfig, GlintExtensionsConfig, GlintTagsConfig, SourceKind } from '@glint/ember-tsc/config-types';
2
- export declare const DEFAULT_EXTENSIONS: GlintExtensionsConfig;
3
- /**
4
- * A GlintEnvironment represents the _merged_ configurations of one or more
5
- * glint environments (e.g. ember-template-imports).
6
- */
7
- export declare class GlintEnvironment {
8
- readonly names: Array<string>;
9
- private tagConfig;
10
- private extensionsConfig;
11
- constructor(names: Array<string>, config: GlintEnvironmentConfig);
12
- static load(topLevelGlintConfigObject: any): GlintEnvironment;
13
- getSourceKind(fileName: string): SourceKind | 'unknown';
14
- isUntypedScript(path: string): boolean;
15
- /**
16
- * Returns any custom configuration for the given file extension.
17
- */
18
- getConfigForExtension(extension: string): GlintExtensionConfig | undefined;
19
- /**
20
- * Returns an array of template tags that should be rewritten according to this
21
- * config object, along with an import specifier indicating where the template types
22
- * for each tag can be found.
23
- */
24
- getConfiguredTemplateTags(): GlintTagsConfig;
25
- }
26
- //# sourceMappingURL=environment.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/config/environment.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,UAAU,EACX,MAAM,+BAA+B,CAAC;AAMvC,eAAO,MAAM,kBAAkB,EAAE,qBAGhC,CAAC;AAEF;;;GAGG;AACH,qBAAa,gBAAgB;aAKT,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;IAJtC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,gBAAgB,CAAwB;gBAG9B,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EACpC,MAAM,EAAE,sBAAsB;WAOlB,IAAI,CAAC,yBAAyB,EAAE,GAAG,GAAG,gBAAgB;IAqE7D,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAKvD,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI7C;;OAEG;IACI,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAIjF;;;;OAIG;IACI,yBAAyB,IAAI,eAAe;CAGpD"}
@@ -1,96 +0,0 @@
1
- import * as path from 'node:path';
2
- import SilentError from 'silent-error';
3
- import emberTemplateImportsEnvironment from '../environment-ember-template-imports/-private/environment/index.js';
4
- export const DEFAULT_EXTENSIONS = {
5
- '.js': { kind: 'untyped-script' },
6
- '.ts': { kind: 'typed-script' },
7
- };
8
- /**
9
- * A GlintEnvironment represents the _merged_ configurations of one or more
10
- * glint environments (e.g. ember-template-imports).
11
- */
12
- export class GlintEnvironment {
13
- constructor(names, config) {
14
- this.names = names;
15
- this.tagConfig = config.tags ?? {};
16
- // when is this populated? what is config?
17
- this.extensionsConfig = config.extensions ?? {};
18
- }
19
- static load(topLevelGlintConfigObject) {
20
- // Glint V1:
21
- let additionalGlobals = null;
22
- let additionalSpecialForms = {};
23
- if (topLevelGlintConfigObject) {
24
- if (topLevelGlintConfigObject.additionalGlobals ||
25
- topLevelGlintConfigObject.additionalSpecialForms) {
26
- additionalGlobals = topLevelGlintConfigObject.additionalGlobals;
27
- additionalSpecialForms = topLevelGlintConfigObject.additionalSpecialForms ?? {};
28
- }
29
- else {
30
- if (Array.isArray(topLevelGlintConfigObject.environment)) {
31
- // If it's a legacy array of environment names, e.g. ['ember-template-imports', 'ember-loose'],
32
- // then there is no additional config such as additionalGlobals to extract.
33
- }
34
- else {
35
- if (typeof topLevelGlintConfigObject.environment === 'object') {
36
- const emberTemplateImportsConfig = topLevelGlintConfigObject.environment?.['ember-template-imports'] ?? {};
37
- additionalGlobals = emberTemplateImportsConfig.additionalGlobals ?? [];
38
- additionalSpecialForms = emberTemplateImportsConfig.additionalSpecialForms ?? {};
39
- }
40
- }
41
- }
42
- }
43
- let tags = {};
44
- let extensions = { ...DEFAULT_EXTENSIONS };
45
- const envUserConfig = { additionalGlobals, additionalSpecialForms };
46
- let config = emberTemplateImportsEnvironment(envUserConfig);
47
- if (config.tags) {
48
- for (let [importSource, specifiers] of Object.entries(config.tags)) {
49
- tags[importSource] ?? (tags[importSource] = {});
50
- for (let [importSpecifier, tagConfig] of Object.entries(specifiers)) {
51
- if (importSpecifier in tags[importSource]) {
52
- throw new SilentError('Multiple configured Glint environments attempted to define behavior for the tag `' +
53
- importSpecifier +
54
- "` in module '" +
55
- importSource +
56
- "'.");
57
- }
58
- tags[importSource][importSpecifier] = tagConfig;
59
- }
60
- }
61
- }
62
- if (config.extensions) {
63
- for (let [extension, extensionConfig] of Object.entries(config.extensions)) {
64
- if (extension in extensions) {
65
- throw new SilentError('Multiple configured Glint environments attempted to define handling for the ' +
66
- extension +
67
- ' file extension.');
68
- }
69
- extensions[extension] = extensionConfig;
70
- }
71
- }
72
- return new GlintEnvironment(Object.keys(config), { tags, extensions });
73
- }
74
- getSourceKind(fileName) {
75
- let extension = path.extname(fileName);
76
- return this.extensionsConfig[extension]?.kind ?? 'unknown';
77
- }
78
- isUntypedScript(path) {
79
- return this.getSourceKind(path) === 'untyped-script';
80
- }
81
- /**
82
- * Returns any custom configuration for the given file extension.
83
- */
84
- getConfigForExtension(extension) {
85
- return this.extensionsConfig[extension];
86
- }
87
- /**
88
- * Returns an array of template tags that should be rewritten according to this
89
- * config object, along with an import specifier indicating where the template types
90
- * for each tag can be found.
91
- */
92
- getConfiguredTemplateTags() {
93
- return this.tagConfig;
94
- }
95
- }
96
- //# sourceMappingURL=environment.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/config/environment.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import { GlintConfig } from './config.js';
2
- export { GlintConfig } from './config.js';
3
- export { GlintEnvironment } from './environment.js';
4
- export { ConfigLoader, findTypeScript } from './loader.js';
5
- /**
6
- * Loads glint configuration, starting from the given directory
7
- * and searching upwards and raising an error if no configuration
8
- * is found.
9
- */
10
- export declare function loadConfig(from: string): GlintConfig;
11
- /**
12
- * Loads glint configuration, starting from the given directory
13
- * and searching upwards. Returns `null` if no configuration is
14
- * found.
15
- */
16
- export declare function findConfig(from: string): GlintConfig | null;
17
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE3D;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAOpD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAE3D"}
@@ -1,26 +0,0 @@
1
- import SilentError from 'silent-error';
2
- import { ConfigLoader } from './loader.js';
3
- export { GlintConfig } from './config.js';
4
- export { GlintEnvironment } from './environment.js';
5
- export { ConfigLoader, findTypeScript } from './loader.js';
6
- /**
7
- * Loads glint configuration, starting from the given directory
8
- * and searching upwards and raising an error if no configuration
9
- * is found.
10
- */
11
- export function loadConfig(from) {
12
- let config = findConfig(from);
13
- if (!config) {
14
- throw new SilentError(`Unable to find Glint configuration for ${from}`);
15
- }
16
- return config;
17
- }
18
- /**
19
- * Loads glint configuration, starting from the given directory
20
- * and searching upwards. Returns `null` if no configuration is
21
- * found.
22
- */
23
- export function findConfig(from) {
24
- return new ConfigLoader().configForDirectory(from);
25
- }
26
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE3D;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAI,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,WAAW,CAAC,0CAA0C,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,IAAI,YAAY,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC"}
@@ -1,28 +0,0 @@
1
- import { GlintConfigInput } from '@glint/ember-tsc/config-types';
2
- import type TS from 'typescript';
3
- import { GlintConfig } from './config.js';
4
- /**
5
- * @private
6
- *
7
- * Only exported for testing purposes. Do not import.
8
- */
9
- export declare const require: NodeJS.Require;
10
- type TypeScript = typeof TS;
11
- /**
12
- * `ConfigLoader` provides an interface for finding the Glint config that
13
- * applies to a given file or directory, ensuring that only a single instance
14
- * of `GlintConfig` is ever created for a given `tsconfig.json` or
15
- * `jsconfig.json` source file.
16
- */
17
- export declare class ConfigLoader {
18
- private configs;
19
- private logInfo?;
20
- constructor(logInfo?: (message: string) => void);
21
- private log;
22
- configForFile(filePath: string): GlintConfig | null;
23
- configForDirectory(directory: string): GlintConfig | null;
24
- }
25
- export declare function findTypeScript(fromDir: string): TypeScript | null;
26
- export declare function loadConfigInput(ts: TypeScript, entryPath: string): GlintConfigInput | null;
27
- export {};
28
- //# sourceMappingURL=loader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAKjE,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;GAIG;AACH,eAAO,MAAM,OAAO,gBAAiC,CAAC;AAEtD,KAAK,UAAU,GAAG,OAAO,EAAE,CAAC;AAE5B;;;;;GAKG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,OAAO,CAAC,CAA4B;gBAEhC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI;IAI/C,OAAO,CAAC,GAAG;IAIJ,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAInD,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;CA4BjE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAMjE;AAiDD,wBAAgB,eAAe,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAE1F"}
@@ -1,121 +0,0 @@
1
- import * as fs from 'node:fs';
2
- import { createRequire } from 'node:module';
3
- import * as path from 'node:path';
4
- import SilentError from 'silent-error';
5
- import { GlintConfig } from './config.js';
6
- /**
7
- * @private
8
- *
9
- * Only exported for testing purposes. Do not import.
10
- */
11
- export const require = createRequire(import.meta.url);
12
- /**
13
- * `ConfigLoader` provides an interface for finding the Glint config that
14
- * applies to a given file or directory, ensuring that only a single instance
15
- * of `GlintConfig` is ever created for a given `tsconfig.json` or
16
- * `jsconfig.json` source file.
17
- */
18
- export class ConfigLoader {
19
- constructor(logInfo) {
20
- this.configs = new Map();
21
- this.logInfo = logInfo;
22
- }
23
- log(message) {
24
- this.logInfo?.(message);
25
- }
26
- configForFile(filePath) {
27
- return this.configForDirectory(path.dirname(filePath));
28
- }
29
- configForDirectory(directory) {
30
- let ts = findTypeScript(directory);
31
- if (!ts) {
32
- this.log(`No TypeScript installation found from ${directory}.`);
33
- return null;
34
- }
35
- let configPath = findNearestConfigFile(ts, directory);
36
- if (!configPath) {
37
- this.log(`No tsconfig.json or jsconfig.json found from ${directory}.`);
38
- return null;
39
- }
40
- let existing = this.configs.get(configPath);
41
- if (existing !== undefined) {
42
- this.log(`Using cached Glint config from ${configPath}.`);
43
- return existing;
44
- }
45
- let configInput = loadConfigInput(ts, configPath);
46
- let config = new GlintConfig(ts, configPath, configInput || { environment: [] });
47
- this.log(`Loaded Glint config from ${configPath}.`);
48
- this.configs.set(configPath, config);
49
- return config;
50
- }
51
- }
52
- export function findTypeScript(fromDir) {
53
- let requireFrom = path.resolve(fromDir, 'package.json');
54
- return (tryResolve(() => createRequire(requireFrom)('typescript')) ??
55
- tryResolve(() => require('typescript')));
56
- }
57
- function tryResolve(load) {
58
- try {
59
- return load();
60
- }
61
- catch (error) {
62
- if (error?.code === 'MODULE_NOT_FOUND') {
63
- return null;
64
- }
65
- throw error;
66
- }
67
- }
68
- function parseConfigInput(ts, entryPath, currentPath, fullGlintConfig) {
69
- let currentContents = ts.readConfigFile(currentPath, ts.sys.readFile).config;
70
- let currentGlintConfig = currentContents.glint ?? {};
71
- assert(currentPath === entryPath || !currentGlintConfig.transform, 'Glint `transform` options may not be specified in extended config.');
72
- if (currentContents.extends) {
73
- let paths = Array.isArray(currentContents.extends)
74
- ? currentContents.extends
75
- : [currentContents.extends];
76
- for (let extendPath of paths) {
77
- let currentExtendPath = path.resolve(path.dirname(currentPath), extendPath);
78
- if (!fs.existsSync(currentExtendPath)) {
79
- try {
80
- currentExtendPath = require.resolve(currentContents.extends);
81
- }
82
- catch {
83
- // suppress the exception thrown by require.resolve for those scenarios where the file does not exist
84
- }
85
- }
86
- fullGlintConfig = parseConfigInput(ts, entryPath, currentExtendPath, fullGlintConfig);
87
- }
88
- }
89
- return { ...fullGlintConfig, ...currentGlintConfig };
90
- }
91
- export function loadConfigInput(ts, entryPath) {
92
- return validateConfigInput(parseConfigInput(ts, entryPath, entryPath, {}));
93
- }
94
- function findNearestConfigFile(ts, searchFrom) {
95
- // Assume that the longest path is the most relevant one in the case that
96
- // multiple config files exist at or above our current directory.
97
- let configCandidates = [
98
- ts.findConfigFile(searchFrom, ts.sys.fileExists, 'tsconfig.json'),
99
- ts.findConfigFile(searchFrom, ts.sys.fileExists, 'jsconfig.json'),
100
- ]
101
- .filter((path) => typeof path === 'string')
102
- .sort((a, b) => b.length - a.length);
103
- return configCandidates[0];
104
- }
105
- function validateConfigInput(input) {
106
- if (!input['environment']) {
107
- input['environment'] = [];
108
- }
109
- assert(Array.isArray(input['environment'])
110
- ? input['environment'].every((env) => typeof env === 'string')
111
- : typeof input['environment'] === 'string' ||
112
- (typeof input['environment'] === 'object' && input['environment']), 'Glint config must specify an `environment` that is a string, array of strings, or an object ' +
113
- 'mapping environment names to their config.');
114
- return input;
115
- }
116
- function assert(test, message) {
117
- if (!test) {
118
- throw new SilentError(`Glint config: ${message}`);
119
- }
120
- }
121
- //# sourceMappingURL=loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.cjs","sourceRoot":"","sources":["../../src/config/types.cts"],"names":[],"mappings":""}
@@ -1,60 +0,0 @@
1
- import type ts from 'typescript';
2
- type TSLib = typeof ts;
3
- export type GlintConfigInput = {
4
- environment: string | Array<string> | Record<string, unknown>;
5
- };
6
- export type GlintEnvironmentConfig = {
7
- tags?: GlintTagsConfig;
8
- extensions?: GlintExtensionsConfig;
9
- };
10
- export type GlintExtensionPreprocess<T> = (source: string, filePath: string) => {
11
- contents: string;
12
- data?: T;
13
- };
14
- export type GlintEmitMetadata = {
15
- prepend?: string;
16
- append?: string;
17
- templateLocation?: {
18
- start: number;
19
- end: number;
20
- contentStart: number;
21
- contentEnd: number;
22
- };
23
- };
24
- export type GlintExtensionTransform<T> = (data: T, state: {
25
- ts: TSLib;
26
- context: ts.TransformationContext;
27
- setEmitMetadata: (node: ts.TaggedTemplateExpression, meta: GlintEmitMetadata) => void;
28
- }) => ts.Transformer<ts.Node>;
29
- export type GlintSpecialForm = 'if' | 'if-not' | 'yield' | 'object-literal' | 'array-literal' | 'bind-invokable' | '===' | '!==' | '&&' | '||' | '!';
30
- export type GlintSpecialFormConfig = {
31
- globals?: {
32
- [global: string]: GlintSpecialForm;
33
- };
34
- imports?: {
35
- [path: string]: {
36
- [identifier: string]: GlintSpecialForm;
37
- };
38
- };
39
- };
40
- export type SourceKind = 'typed-script' | 'untyped-script';
41
- export type GlintExtensionConfig<PreprocessData = any> = {
42
- kind: SourceKind;
43
- preprocess?: GlintExtensionPreprocess<PreprocessData>;
44
- transform?: GlintExtensionTransform<PreprocessData>;
45
- };
46
- export type GlintExtensionsConfig = {
47
- [extension: string]: GlintExtensionConfig;
48
- };
49
- export type GlintTagConfig = {
50
- typesModule: string;
51
- globals?: Array<string>;
52
- specialForms?: GlintSpecialFormConfig;
53
- };
54
- export type GlintTagsConfig = {
55
- [importSource: string]: {
56
- [importSpecifier: string]: GlintTagConfig;
57
- };
58
- };
59
- export {};
60
- //# sourceMappingURL=types.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../../src/config/types.cts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAKjC,KAAK,KAAK,GAAG,OAAO,EAAE,CAAC;AAEvB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/D,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI,CACxC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,KACb;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CAAA;CAAE,CAAC;AAEpC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI,CACvC,IAAI,EAAE,CAAC,EACP,KAAK,EAAE;IACL,EAAE,EAAE,KAAK,CAAC;IACV,OAAO,EAAE,EAAE,CAAC,qBAAqB,CAAC;IAClC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,EAAE,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACvF,KACE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAE7B,MAAM,MAAM,gBAAgB,GACxB,IAAI,GACJ,QAAQ,GACR,OAAO,GACP,gBAAgB,GAChB,eAAe,GACf,gBAAgB,GAChB,KAAK,GACL,KAAK,GACL,IAAI,GACJ,IAAI,GACJ,GAAG,CAAC;AAER,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,CAAC,EAAE;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAAC;IACjD,OAAO,CAAC,EAAE;QACR,CAAC,IAAI,EAAE,MAAM,GAAG;YACd,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAAC;SACxC,CAAC;KACH,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,gBAAgB,CAAC;AAC3D,MAAM,MAAM,oBAAoB,CAAC,cAAc,GAAG,GAAG,IAAI;IACvD,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,CAAC,EAAE,wBAAwB,CAAC,cAAc,CAAC,CAAC;IACtD,SAAS,CAAC,EAAE,uBAAuB,CAAC,cAAc,CAAC,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,CAAC,SAAS,EAAE,MAAM,GAAG,oBAAoB,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,YAAY,CAAC,EAAE,sBAAsB,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,CAAC,YAAY,EAAE,MAAM,GAAG;QACtB,CAAC,eAAe,EAAE,MAAM,GAAG,cAAc,CAAC;KAC3C,CAAC;CACH,CAAC"}