@glint/ember-tsc 1.0.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.
- package/LICENSE +21 -0
- package/README.md +49 -0
- package/bin/ember-tsc.js +4 -0
- package/bin/glint-language-server.js +2 -0
- package/lib/cli/run-volar-tsc.d.ts +2 -0
- package/lib/cli/run-volar-tsc.d.ts.map +1 -0
- package/lib/cli/run-volar-tsc.js +30 -0
- package/lib/cli/run-volar-tsc.js.map +1 -0
- package/lib/config/config.d.ts +15 -0
- package/lib/config/config.d.ts.map +1 -0
- package/lib/config/config.js +21 -0
- package/lib/config/config.js.map +1 -0
- package/lib/config/environment.d.ts +26 -0
- package/lib/config/environment.d.ts.map +1 -0
- package/lib/config/environment.js +96 -0
- package/lib/config/environment.js.map +1 -0
- package/lib/config/index.d.ts +17 -0
- package/lib/config/index.d.ts.map +1 -0
- package/lib/config/index.js +26 -0
- package/lib/config/index.js.map +1 -0
- package/lib/config/loader.d.ts +25 -0
- package/lib/config/loader.d.ts.map +1 -0
- package/lib/config/loader.js +110 -0
- package/lib/config/loader.js.map +1 -0
- package/lib/config/types.cjs +3 -0
- package/lib/config/types.cjs.map +1 -0
- package/lib/config/types.d.cts +60 -0
- package/lib/config/types.d.cts.map +1 -0
- package/lib/environment-ember-template-imports/-private/environment/common.d.ts +13 -0
- package/lib/environment-ember-template-imports/-private/environment/common.d.ts.map +1 -0
- package/lib/environment-ember-template-imports/-private/environment/common.js +2 -0
- package/lib/environment-ember-template-imports/-private/environment/common.js.map +1 -0
- package/lib/environment-ember-template-imports/-private/environment/index.d.ts +3 -0
- package/lib/environment-ember-template-imports/-private/environment/index.d.ts.map +1 -0
- package/lib/environment-ember-template-imports/-private/environment/index.js +76 -0
- package/lib/environment-ember-template-imports/-private/environment/index.js.map +1 -0
- package/lib/environment-ember-template-imports/-private/environment/preprocess.d.ts +4 -0
- package/lib/environment-ember-template-imports/-private/environment/preprocess.d.ts.map +1 -0
- package/lib/environment-ember-template-imports/-private/environment/preprocess.js +73 -0
- package/lib/environment-ember-template-imports/-private/environment/preprocess.js.map +1 -0
- package/lib/environment-ember-template-imports/-private/environment/transform.d.ts +4 -0
- package/lib/environment-ember-template-imports/-private/environment/transform.d.ts.map +1 -0
- package/lib/environment-ember-template-imports/-private/environment/transform.js +134 -0
- package/lib/environment-ember-template-imports/-private/environment/transform.js.map +1 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +6 -0
- package/lib/index.js.map +1 -0
- package/lib/plugins/g-compiler-errors.d.ts +12 -0
- package/lib/plugins/g-compiler-errors.d.ts.map +1 -0
- package/lib/plugins/g-compiler-errors.js +58 -0
- package/lib/plugins/g-compiler-errors.js.map +1 -0
- package/lib/plugins/g-template-tag-symbols.d.ts +11 -0
- package/lib/plugins/g-template-tag-symbols.d.ts.map +1 -0
- package/lib/plugins/g-template-tag-symbols.js +48 -0
- package/lib/plugins/g-template-tag-symbols.js.map +1 -0
- package/lib/plugins/utils.d.ts +25 -0
- package/lib/plugins/utils.d.ts.map +1 -0
- package/lib/plugins/utils.js +63 -0
- package/lib/plugins/utils.js.map +1 -0
- package/lib/transform/diagnostics/augmentation.d.ts +4 -0
- package/lib/transform/diagnostics/augmentation.d.ts.map +1 -0
- package/lib/transform/diagnostics/augmentation.js +223 -0
- package/lib/transform/diagnostics/augmentation.js.map +1 -0
- package/lib/transform/diagnostics/index.d.ts +5 -0
- package/lib/transform/diagnostics/index.d.ts.map +1 -0
- package/lib/transform/diagnostics/index.js +2 -0
- package/lib/transform/diagnostics/index.js.map +1 -0
- package/lib/transform/index.d.ts +4 -0
- package/lib/transform/index.d.ts.map +1 -0
- package/lib/transform/index.js +2 -0
- package/lib/transform/index.js.map +1 -0
- package/lib/transform/template/code-features.d.ts +30 -0
- package/lib/transform/template/code-features.d.ts.map +1 -0
- package/lib/transform/template/code-features.js +26 -0
- package/lib/transform/template/code-features.js.map +1 -0
- package/lib/transform/template/glimmer-ast-mapping-tree.d.ts +80 -0
- package/lib/transform/template/glimmer-ast-mapping-tree.d.ts.map +1 -0
- package/lib/transform/template/glimmer-ast-mapping-tree.js +132 -0
- package/lib/transform/template/glimmer-ast-mapping-tree.js.map +1 -0
- package/lib/transform/template/inlining/index.d.ts +16 -0
- package/lib/transform/template/inlining/index.d.ts.map +1 -0
- package/lib/transform/template/inlining/index.js +21 -0
- package/lib/transform/template/inlining/index.js.map +1 -0
- package/lib/transform/template/inlining/tagged-strings.d.ts +8 -0
- package/lib/transform/template/inlining/tagged-strings.d.ts.map +1 -0
- package/lib/transform/template/inlining/tagged-strings.js +140 -0
- package/lib/transform/template/inlining/tagged-strings.js.map +1 -0
- package/lib/transform/template/map-template-contents.d.ts +121 -0
- package/lib/transform/template/map-template-contents.d.ts.map +1 -0
- package/lib/transform/template/map-template-contents.js +287 -0
- package/lib/transform/template/map-template-contents.js.map +1 -0
- package/lib/transform/template/rewrite-module.d.ts +22 -0
- package/lib/transform/template/rewrite-module.d.ts.map +1 -0
- package/lib/transform/template/rewrite-module.js +265 -0
- package/lib/transform/template/rewrite-module.js.map +1 -0
- package/lib/transform/template/scope-stack.d.ts +13 -0
- package/lib/transform/template/scope-stack.d.ts.map +1 -0
- package/lib/transform/template/scope-stack.js +28 -0
- package/lib/transform/template/scope-stack.js.map +1 -0
- package/lib/transform/template/template-to-typescript.d.ts +19 -0
- package/lib/transform/template/template-to-typescript.d.ts.map +1 -0
- package/lib/transform/template/template-to-typescript.js +1095 -0
- package/lib/transform/template/template-to-typescript.js.map +1 -0
- package/lib/transform/template/transformed-module.d.ts +111 -0
- package/lib/transform/template/transformed-module.d.ts.map +1 -0
- package/lib/transform/template/transformed-module.js +287 -0
- package/lib/transform/template/transformed-module.js.map +1 -0
- package/lib/transform/util.d.ts +7 -0
- package/lib/transform/util.d.ts.map +1 -0
- package/lib/transform/util.js +15 -0
- package/lib/transform/util.js.map +1 -0
- package/lib/volar/ember-language-plugin.d.ts +14 -0
- package/lib/volar/ember-language-plugin.d.ts.map +1 -0
- package/lib/volar/ember-language-plugin.js +91 -0
- package/lib/volar/ember-language-plugin.js.map +1 -0
- package/lib/volar/gts-virtual-code.d.ts +83 -0
- package/lib/volar/gts-virtual-code.d.ts.map +1 -0
- package/lib/volar/gts-virtual-code.js +210 -0
- package/lib/volar/gts-virtual-code.js.map +1 -0
- package/lib/volar/language-server.d.ts +2 -0
- package/lib/volar/language-server.d.ts.map +1 -0
- package/lib/volar/language-server.js +214 -0
- package/lib/volar/language-server.js.map +1 -0
- package/lib/volar/script-snapshot.d.ts +17 -0
- package/lib/volar/script-snapshot.d.ts.map +1 -0
- package/lib/volar/script-snapshot.js +24 -0
- package/lib/volar/script-snapshot.js.map +1 -0
- package/package.json +104 -0
- package/src/cli/run-volar-tsc.ts +36 -0
- package/src/config/config.ts +33 -0
- package/src/config/environment.ts +128 -0
- package/src/config/index.ts +30 -0
- package/src/config/loader.ts +143 -0
- package/src/config/types.cts +85 -0
- package/src/environment-ember-template-imports/-private/environment/common.ts +14 -0
- package/src/environment-ember-template-imports/-private/environment/index.ts +83 -0
- package/src/environment-ember-template-imports/-private/environment/preprocess.ts +90 -0
- package/src/environment-ember-template-imports/-private/environment/transform.ts +202 -0
- package/src/index.ts +9 -0
- package/src/plugins/g-compiler-errors.ts +67 -0
- package/src/plugins/g-template-tag-symbols.ts +54 -0
- package/src/plugins/utils.ts +86 -0
- package/src/transform/diagnostics/augmentation.ts +333 -0
- package/src/transform/diagnostics/index.ts +5 -0
- package/src/transform/index.ts +4 -0
- package/src/transform/template/code-features.ts +30 -0
- package/src/transform/template/glimmer-ast-mapping-tree.ts +173 -0
- package/src/transform/template/inlining/index.ts +33 -0
- package/src/transform/template/inlining/tagged-strings.ts +187 -0
- package/src/transform/template/map-template-contents.ts +501 -0
- package/src/transform/template/rewrite-module.ts +372 -0
- package/src/transform/template/scope-stack.ts +34 -0
- package/src/transform/template/template-to-typescript.ts +1476 -0
- package/src/transform/template/transformed-module.ts +431 -0
- package/src/transform/util.ts +24 -0
- package/src/volar/ember-language-plugin.ts +108 -0
- package/src/volar/gts-virtual-code.ts +249 -0
- package/src/volar/language-server.ts +250 -0
- package/src/volar/script-snapshot.ts +27 -0
- package/types/-private/dsl/globals.d.ts +204 -0
- package/types/-private/dsl/index.d.ts +50 -0
- package/types/-private/dsl/integration-declarations.d.ts +143 -0
- package/types/-private/intrinsics/action.d.ts +45 -0
- package/types/-private/intrinsics/concat.d.ts +6 -0
- package/types/-private/intrinsics/each-in.d.ts +24 -0
- package/types/-private/intrinsics/each.d.ts +17 -0
- package/types/-private/intrinsics/fn.d.ts +44 -0
- package/types/-private/intrinsics/get.d.ts +31 -0
- package/types/-private/intrinsics/input.d.ts +24 -0
- package/types/-private/intrinsics/link-to.d.ts +31 -0
- package/types/-private/intrinsics/log.d.ts +6 -0
- package/types/-private/intrinsics/mount.d.ts +9 -0
- package/types/-private/intrinsics/mut.d.ts +14 -0
- package/types/-private/intrinsics/on.d.ts +21 -0
- package/types/-private/intrinsics/outlet.d.ts +8 -0
- package/types/-private/intrinsics/textarea.d.ts +16 -0
- package/types/-private/intrinsics/unbound.d.ts +10 -0
- package/types/-private/intrinsics/unique-id.d.ts +5 -0
- package/types/globals/index.d.ts +3 -0
- package/types/silent-error.d.ts +4 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-to-typescript.js","sourceRoot":"","sources":["../../../src/transform/template/template-to-typescript.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import type { AST } from '@glimmer/syntax';
|
|
2
|
+
import { CodeMapping } from '@volar/language-core';
|
|
3
|
+
import GlimmerASTMappingTree from './glimmer-ast-mapping-tree.js';
|
|
4
|
+
export type Range = {
|
|
5
|
+
start: number;
|
|
6
|
+
end: number;
|
|
7
|
+
};
|
|
8
|
+
export type RangeWithMapping = Range & {
|
|
9
|
+
mapping?: GlimmerASTMappingTree;
|
|
10
|
+
};
|
|
11
|
+
export type RangeWithMappingAndSource = RangeWithMapping & {
|
|
12
|
+
source: SourceFile;
|
|
13
|
+
};
|
|
14
|
+
export type CorrelatedSpan = {
|
|
15
|
+
/** Where this span of content originated */
|
|
16
|
+
originalFile: SourceFile;
|
|
17
|
+
/** The offset where this content began in its original source */
|
|
18
|
+
originalStart: number;
|
|
19
|
+
/** The length of this span's content in its original source */
|
|
20
|
+
originalLength: number;
|
|
21
|
+
/** The location in the untransformed source where this span is spliced in */
|
|
22
|
+
insertionPoint: number;
|
|
23
|
+
/** The contents of this span in the transformed output */
|
|
24
|
+
transformedSource: string;
|
|
25
|
+
/** The offset in the transformed output of this span */
|
|
26
|
+
transformedStart: number;
|
|
27
|
+
/** The length of this span in the transformed output */
|
|
28
|
+
transformedLength: number;
|
|
29
|
+
/** (Glimmer/Handlebars spans only:) A mapping of offsets within this span between its original and transformed versions */
|
|
30
|
+
glimmerAstMapping?: GlimmerASTMappingTree;
|
|
31
|
+
};
|
|
32
|
+
export type DirectiveKind = 'ignore' | 'expect-error' | 'nocheck';
|
|
33
|
+
export type Directive = {
|
|
34
|
+
kind: DirectiveKind;
|
|
35
|
+
commentNode: AST.CommentStatement | AST.MustacheCommentStatement;
|
|
36
|
+
source: SourceFile;
|
|
37
|
+
location: Range;
|
|
38
|
+
areaOfEffect: Range;
|
|
39
|
+
/** The number of errors that have been reported for this directive */
|
|
40
|
+
errorCount: number;
|
|
41
|
+
};
|
|
42
|
+
export type TransformError = {
|
|
43
|
+
isContentTagError?: boolean;
|
|
44
|
+
message: string;
|
|
45
|
+
location: Range;
|
|
46
|
+
source: SourceFile;
|
|
47
|
+
};
|
|
48
|
+
export type SourceFile = {
|
|
49
|
+
filename: string;
|
|
50
|
+
contents: string;
|
|
51
|
+
};
|
|
52
|
+
export type TemplateSymbol = {
|
|
53
|
+
start: number;
|
|
54
|
+
end: number;
|
|
55
|
+
startTagEnd: number;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* This class represents the result of transforming a TypeScript
|
|
59
|
+
* module with one or more embedded HBS templates. It contains
|
|
60
|
+
* both the original and transformed source text of the module, as
|
|
61
|
+
* well any errors encountered during transformation.
|
|
62
|
+
*
|
|
63
|
+
* It is used heavily for bidirectional source mapping between the original TS/HBS code
|
|
64
|
+
* and the singular transformed TS output (aka the Intermediate Representation).
|
|
65
|
+
* It can be queried with an offset or range in either the
|
|
66
|
+
* original or transformed source to determine the corresponding
|
|
67
|
+
* offset or range in the other.
|
|
68
|
+
*/
|
|
69
|
+
export default class TransformedModule {
|
|
70
|
+
readonly transformedContents: string;
|
|
71
|
+
readonly errors: ReadonlyArray<TransformError>;
|
|
72
|
+
readonly directives: ReadonlyArray<Directive>;
|
|
73
|
+
readonly correlatedSpans: Array<CorrelatedSpan>;
|
|
74
|
+
readonly originalFileName: string;
|
|
75
|
+
constructor(transformedContents: string, errors: ReadonlyArray<TransformError>, directives: ReadonlyArray<Directive>, correlatedSpans: Array<CorrelatedSpan>, originalFileName: string);
|
|
76
|
+
toDebugString(): string;
|
|
77
|
+
getOriginalOffset(transformedOffset: number): {
|
|
78
|
+
source?: SourceFile;
|
|
79
|
+
offset: number;
|
|
80
|
+
};
|
|
81
|
+
getTransformedOffset(originalFileName: string, originalOffset: number): number;
|
|
82
|
+
getOriginalRange(transformedStart: number, transformedEnd: number): RangeWithMappingAndSource;
|
|
83
|
+
getTransformedRange(originalFileName: string, originalStart: number, originalEnd: number): RangeWithMapping;
|
|
84
|
+
getExactTransformedRanges(originalFileName: string, originalStart: number, originalEnd: number): GlimmerASTMappingTree[];
|
|
85
|
+
findTemplateAtOriginalOffset(originalFileName: string, originalOffset: number): {
|
|
86
|
+
originalContentStart: number;
|
|
87
|
+
originalContentEnd: number;
|
|
88
|
+
originalContent: string;
|
|
89
|
+
} | null;
|
|
90
|
+
private determineOriginalOffsetAndSpan;
|
|
91
|
+
private determineTransformedOffsetAndSpan;
|
|
92
|
+
/**
|
|
93
|
+
* Converts the mappings in this transformed module to the format expected by Volar.
|
|
94
|
+
*
|
|
95
|
+
* The main difference between the two formats is that while the classic Glint transformation
|
|
96
|
+
* mappings support mapping a differently sized source region to a differently sized target region
|
|
97
|
+
* (e.g. `{{expectsAtLeastOneArg}}` in an .hbs file to `__glintDSL__.emitContent(__glintDSL__.resolveOrReturn(expectsAtLeastOneArg)());`
|
|
98
|
+
* in a generated TS file, in Volar you can only map regions of the same size.
|
|
99
|
+
*
|
|
100
|
+
* In the case that you need to map regions of different sizes in Volar, you need to use
|
|
101
|
+
* zero-length mappings to delineate regions/boundaries that should map to each other, otherwise there will
|
|
102
|
+
* be cases where TS diagnostics will fail to transform/map back to the original source. Example:
|
|
103
|
+
*
|
|
104
|
+
* - `{{[[ZEROLEN-A]][[expectsAtLeastOneArg]][[ZEROLEN-B]]}}`
|
|
105
|
+
* - to
|
|
106
|
+
* - `[[ZEROLEN-A]]__glintDSL__.emitContent(__glintDSL__.resolveOrReturn([[expectsAtLeastOneArg]])());[[ZEROLEN-B]]`
|
|
107
|
+
*/
|
|
108
|
+
toVolarMappings(filenameFilter?: string): CodeMapping[];
|
|
109
|
+
templateSymbols(): Array<TemplateSymbol>;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=transformed-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformed-module.d.ts","sourceRoot":"","sources":["../../../src/transform/template/transformed-module.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
import { assert } from '../util.js';
|
|
2
|
+
import { codeFeatures } from './code-features.js';
|
|
3
|
+
/**
|
|
4
|
+
* This class represents the result of transforming a TypeScript
|
|
5
|
+
* module with one or more embedded HBS templates. It contains
|
|
6
|
+
* both the original and transformed source text of the module, as
|
|
7
|
+
* well any errors encountered during transformation.
|
|
8
|
+
*
|
|
9
|
+
* It is used heavily for bidirectional source mapping between the original TS/HBS code
|
|
10
|
+
* and the singular transformed TS output (aka the Intermediate Representation).
|
|
11
|
+
* It can be queried with an offset or range in either the
|
|
12
|
+
* original or transformed source to determine the corresponding
|
|
13
|
+
* offset or range in the other.
|
|
14
|
+
*/
|
|
15
|
+
export default class TransformedModule {
|
|
16
|
+
constructor(transformedContents, errors, directives, correlatedSpans, originalFileName) {
|
|
17
|
+
this.transformedContents = transformedContents;
|
|
18
|
+
this.errors = errors;
|
|
19
|
+
this.directives = directives;
|
|
20
|
+
this.correlatedSpans = correlatedSpans;
|
|
21
|
+
this.originalFileName = originalFileName;
|
|
22
|
+
}
|
|
23
|
+
toDebugString() {
|
|
24
|
+
let mappingStrings = this.correlatedSpans.map((span) => span.glimmerAstMapping?.toDebugString({
|
|
25
|
+
originalStart: span.originalStart,
|
|
26
|
+
originalSource: span.originalFile.contents.slice(span.originalStart, span.originalStart + span.originalLength),
|
|
27
|
+
transformedStart: span.transformedStart,
|
|
28
|
+
transformedSource: span.transformedSource,
|
|
29
|
+
}));
|
|
30
|
+
return `TransformedModule\n\n${mappingStrings.filter(Boolean).join('\n\n')}`;
|
|
31
|
+
}
|
|
32
|
+
getOriginalOffset(transformedOffset) {
|
|
33
|
+
let { start, source } = this.getOriginalRange(transformedOffset, transformedOffset);
|
|
34
|
+
return { source, offset: start };
|
|
35
|
+
}
|
|
36
|
+
getTransformedOffset(originalFileName, originalOffset) {
|
|
37
|
+
return this.getTransformedRange(originalFileName, originalOffset, originalOffset).start;
|
|
38
|
+
}
|
|
39
|
+
getOriginalRange(transformedStart, transformedEnd) {
|
|
40
|
+
let startInfo = this.determineOriginalOffsetAndSpan(transformedStart);
|
|
41
|
+
let endInfo = this.determineOriginalOffsetAndSpan(transformedEnd);
|
|
42
|
+
assert(startInfo.correlatedSpan.originalFile === endInfo.correlatedSpan.originalFile, 'Attempted to transform a range across two different files');
|
|
43
|
+
let source = startInfo.correlatedSpan.originalFile;
|
|
44
|
+
let start = startInfo.originalOffset;
|
|
45
|
+
let end = endInfo.originalOffset;
|
|
46
|
+
if (startInfo.correlatedSpan === endInfo.correlatedSpan) {
|
|
47
|
+
let { correlatedSpan } = startInfo;
|
|
48
|
+
let mapping = correlatedSpan.glimmerAstMapping?.narrowestMappingForTransformedRange({
|
|
49
|
+
start: start - correlatedSpan.originalStart,
|
|
50
|
+
end: end - correlatedSpan.originalStart,
|
|
51
|
+
});
|
|
52
|
+
if (mapping) {
|
|
53
|
+
let start = correlatedSpan.originalStart + mapping.originalRange.start;
|
|
54
|
+
let end = correlatedSpan.originalStart + mapping.originalRange.end;
|
|
55
|
+
return { mapping, start, end, source };
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return { start, end, source };
|
|
59
|
+
}
|
|
60
|
+
getTransformedRange(originalFileName, originalStart, originalEnd) {
|
|
61
|
+
let startInfo = this.determineTransformedOffsetAndSpan(originalFileName, originalStart);
|
|
62
|
+
let endInfo = this.determineTransformedOffsetAndSpan(originalFileName, originalEnd);
|
|
63
|
+
let start = startInfo.transformedOffset;
|
|
64
|
+
let end = endInfo.transformedOffset;
|
|
65
|
+
if (startInfo.correlatedSpan && startInfo.correlatedSpan === endInfo.correlatedSpan) {
|
|
66
|
+
let { correlatedSpan } = startInfo;
|
|
67
|
+
let mapping = correlatedSpan.glimmerAstMapping?.narrowestMappingForOriginalRange({
|
|
68
|
+
start: start - correlatedSpan.transformedStart,
|
|
69
|
+
end: end - correlatedSpan.transformedStart,
|
|
70
|
+
});
|
|
71
|
+
if (mapping) {
|
|
72
|
+
let start = correlatedSpan.transformedStart + mapping.transformedRange.start;
|
|
73
|
+
let end = correlatedSpan.transformedStart + mapping.transformedRange.end;
|
|
74
|
+
return { mapping, start, end };
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return { start, end };
|
|
78
|
+
}
|
|
79
|
+
getExactTransformedRanges(originalFileName, originalStart, originalEnd) {
|
|
80
|
+
let startInfo = this.determineTransformedOffsetAndSpan(originalFileName, originalStart);
|
|
81
|
+
let endInfo = this.determineTransformedOffsetAndSpan(originalFileName, originalEnd);
|
|
82
|
+
let start = startInfo.transformedOffset;
|
|
83
|
+
let end = endInfo.transformedOffset;
|
|
84
|
+
if (startInfo.correlatedSpan && startInfo.correlatedSpan === endInfo.correlatedSpan) {
|
|
85
|
+
let { correlatedSpan } = startInfo;
|
|
86
|
+
return (correlatedSpan.glimmerAstMapping?.exactMappingsForOriginalRange({
|
|
87
|
+
start: start - correlatedSpan.transformedStart,
|
|
88
|
+
end: end - correlatedSpan.transformedStart,
|
|
89
|
+
}) || []);
|
|
90
|
+
}
|
|
91
|
+
return [];
|
|
92
|
+
}
|
|
93
|
+
findTemplateAtOriginalOffset(originalFileName, originalOffset) {
|
|
94
|
+
let { correlatedSpan } = this.determineTransformedOffsetAndSpan(originalFileName, originalOffset);
|
|
95
|
+
if (!correlatedSpan.glimmerAstMapping) {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
let templateMapping = correlatedSpan.glimmerAstMapping?.children[0];
|
|
99
|
+
assert(correlatedSpan.glimmerAstMapping?.sourceNode.type === 'TemplateEmbedding' &&
|
|
100
|
+
templateMapping?.sourceNode.type === 'Template', 'Internal error: unexpected mapping structure.' + ` (${templateMapping?.sourceNode.type})`);
|
|
101
|
+
let originalContentStart = correlatedSpan.originalStart + templateMapping.originalRange.start;
|
|
102
|
+
let originalContentEnd = correlatedSpan.originalStart + templateMapping.originalRange.end;
|
|
103
|
+
let originalContent = correlatedSpan.originalFile.contents.slice(originalContentStart, originalContentEnd);
|
|
104
|
+
return { originalContentStart, originalContentEnd, originalContent };
|
|
105
|
+
}
|
|
106
|
+
determineOriginalOffsetAndSpan(transformedOffset) {
|
|
107
|
+
for (let span of this.correlatedSpans) {
|
|
108
|
+
if (transformedOffset >= span.transformedStart &&
|
|
109
|
+
transformedOffset <= span.transformedStart + span.transformedLength) {
|
|
110
|
+
return {
|
|
111
|
+
originalOffset: transformedOffset - span.transformedStart + span.originalStart,
|
|
112
|
+
correlatedSpan: span,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
assert(false, 'Internal error: offset out of bounds');
|
|
117
|
+
}
|
|
118
|
+
determineTransformedOffsetAndSpan(originalFileName, originalOffset) {
|
|
119
|
+
for (let span of this.correlatedSpans) {
|
|
120
|
+
if (span.originalFile.filename === originalFileName &&
|
|
121
|
+
originalOffset >= span.originalStart &&
|
|
122
|
+
originalOffset < span.originalStart + span.originalLength) {
|
|
123
|
+
return {
|
|
124
|
+
transformedOffset: originalOffset - span.originalStart + span.transformedStart,
|
|
125
|
+
correlatedSpan: span,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
assert(false, 'Internal error: offset out of bounds');
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Converts the mappings in this transformed module to the format expected by Volar.
|
|
133
|
+
*
|
|
134
|
+
* The main difference between the two formats is that while the classic Glint transformation
|
|
135
|
+
* mappings support mapping a differently sized source region to a differently sized target region
|
|
136
|
+
* (e.g. `{{expectsAtLeastOneArg}}` in an .hbs file to `__glintDSL__.emitContent(__glintDSL__.resolveOrReturn(expectsAtLeastOneArg)());`
|
|
137
|
+
* in a generated TS file, in Volar you can only map regions of the same size.
|
|
138
|
+
*
|
|
139
|
+
* In the case that you need to map regions of different sizes in Volar, you need to use
|
|
140
|
+
* zero-length mappings to delineate regions/boundaries that should map to each other, otherwise there will
|
|
141
|
+
* be cases where TS diagnostics will fail to transform/map back to the original source. Example:
|
|
142
|
+
*
|
|
143
|
+
* - `{{[[ZEROLEN-A]][[expectsAtLeastOneArg]][[ZEROLEN-B]]}}`
|
|
144
|
+
* - to
|
|
145
|
+
* - `[[ZEROLEN-A]]__glintDSL__.emitContent(__glintDSL__.resolveOrReturn([[expectsAtLeastOneArg]])());[[ZEROLEN-B]]`
|
|
146
|
+
*/
|
|
147
|
+
toVolarMappings(filenameFilter) {
|
|
148
|
+
const codeMappings = [];
|
|
149
|
+
const push = (sourceOffset, generatedOffset, length, codeInformation) => {
|
|
150
|
+
// if (sourceOffsets.length > 0) {
|
|
151
|
+
// TODO: these assertions are firing for certain files/transformations, which means
|
|
152
|
+
// we're emitting unsorted mappings, which means volar has to fall back to an inefficient
|
|
153
|
+
// source mapping algorithm rather than using binary search:
|
|
154
|
+
// https://github.com/volarjs/volar.js/blob/3798f27684f5c671f06bf7a19e32bc489e652e14/packages/source-map/lib/translateOffset.ts#L18
|
|
155
|
+
//
|
|
156
|
+
// The fix for this is probably somewhere in the `template-to-typescript.ts` file, but I
|
|
157
|
+
// don't have a sense for how complicated that'll be.
|
|
158
|
+
// assert(
|
|
159
|
+
// sourceOffset >= sourceOffsets[sourceOffsets.length - 1],
|
|
160
|
+
// 'Source offsets should be monotonically increasing',
|
|
161
|
+
// );
|
|
162
|
+
// assert(
|
|
163
|
+
// generatedOffset >= generatedOffsets[generatedOffsets.length - 1],
|
|
164
|
+
// 'Generated offsets should be monotonically increasing',
|
|
165
|
+
// );
|
|
166
|
+
// }
|
|
167
|
+
codeMappings.push({
|
|
168
|
+
sourceOffsets: [sourceOffset],
|
|
169
|
+
generatedOffsets: [generatedOffset],
|
|
170
|
+
lengths: [length],
|
|
171
|
+
data: codeInformation || {},
|
|
172
|
+
});
|
|
173
|
+
};
|
|
174
|
+
let recurse = (span, mapping) => {
|
|
175
|
+
const children = mapping.children;
|
|
176
|
+
let { originalRange, transformedRange } = mapping;
|
|
177
|
+
let hbsStart = span.originalStart + originalRange.start;
|
|
178
|
+
let hbsEnd = span.originalStart + originalRange.end;
|
|
179
|
+
let tsStart = span.transformedStart + transformedRange.start;
|
|
180
|
+
let tsEnd = span.transformedStart + transformedRange.end;
|
|
181
|
+
// Push mappings for equal length mapping even if there are children;
|
|
182
|
+
// Need to support recursive `forNode()`s map monotonically
|
|
183
|
+
// smaller chunks of generated code to the same source region, e.g.
|
|
184
|
+
//
|
|
185
|
+
// source: `{{foo 1 2 3}}`
|
|
186
|
+
//
|
|
187
|
+
// This might produce something like:
|
|
188
|
+
//
|
|
189
|
+
// __glintDSL__.resolve('foo')(1, 2, 3)
|
|
190
|
+
//
|
|
191
|
+
// and depending on the nature of the type error, the diagnostic raised
|
|
192
|
+
// might originate from any of the following ranges:
|
|
193
|
+
//
|
|
194
|
+
// __glintDSL__.resolve('foo')(1, 2, 3)
|
|
195
|
+
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
196
|
+
//
|
|
197
|
+
// __glintDSL__.resolve('foo')(1, 2, 3)
|
|
198
|
+
// ~~~~~
|
|
199
|
+
//
|
|
200
|
+
// __glintDSL__.resolve('foo')(1, 2, 3)
|
|
201
|
+
// ~~~~~~~~~
|
|
202
|
+
//
|
|
203
|
+
// We have some flexibility as to whether we want to map back to the entire
|
|
204
|
+
// `{{foo 1 2 3}}` region or perhaps just `1 2 3` or some other subset, but regardless,
|
|
205
|
+
// we need to support the case that multiple overlapping (or even non-overlapping) spans
|
|
206
|
+
// of generated code map back to the same source region.
|
|
207
|
+
const hbsLength = hbsEnd - hbsStart;
|
|
208
|
+
const tsLength = tsEnd - tsStart;
|
|
209
|
+
// Disregard the "null zone" mappings, i.e. cases where TS code maps to empty HBS code
|
|
210
|
+
const isNonNullMapping = hbsLength > 0 && tsLength > 0;
|
|
211
|
+
if (children.length > 0) {
|
|
212
|
+
if (isNonNullMapping) {
|
|
213
|
+
push(hbsStart, tsStart, 0, mapping.codeInformation);
|
|
214
|
+
}
|
|
215
|
+
mapping.children.forEach((child) => {
|
|
216
|
+
recurse(span, child);
|
|
217
|
+
});
|
|
218
|
+
// Disregard the "null zone" mappings, i.e. cases where TS code maps to empty HBS code
|
|
219
|
+
if (isNonNullMapping) {
|
|
220
|
+
push(hbsEnd, tsEnd, 0, mapping.codeInformation);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
if (hbsLength === tsLength) {
|
|
225
|
+
push(hbsStart, tsStart, hbsLength, mapping.codeInformation);
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
// Disregard the "null zone" mappings, i.e. cases where TS code maps to empty HBS code
|
|
229
|
+
if (isNonNullMapping) {
|
|
230
|
+
push(hbsStart, tsStart, 0, mapping.codeInformation);
|
|
231
|
+
push(hbsEnd, tsEnd, 0, mapping.codeInformation);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
};
|
|
236
|
+
this.correlatedSpans.forEach((span) => {
|
|
237
|
+
if (filenameFilter && span.originalFile.filename !== filenameFilter) {
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
if (span.glimmerAstMapping) {
|
|
241
|
+
// this span is transformation from HBS to TS (either the replaced contents
|
|
242
|
+
// within `<template>` tags in a .gts file
|
|
243
|
+
recurse(span, span.glimmerAstMapping);
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
// This span contains untransformed TS content (because it comes
|
|
247
|
+
// from a region of source code that is already TS, e.g. the top of a .gts file,
|
|
248
|
+
// outside of any `<template>` tags). Because there's no transformation,
|
|
249
|
+
// we expect these to be the same length (in fact, they
|
|
250
|
+
// should be the same string entirely)
|
|
251
|
+
// This assertion seemed valid when parsing .gts files with extracted hbs in <template> tags,
|
|
252
|
+
// but when parsing solo .hbs files in loose mode there were cases where, e.g.,
|
|
253
|
+
// originalLength == 0 and transformLength == 1;
|
|
254
|
+
// assert(
|
|
255
|
+
// span.originalLength === span.transformedLength,
|
|
256
|
+
// 'span length mismatch for untransformed content'
|
|
257
|
+
// );
|
|
258
|
+
if (span.originalLength === span.transformedLength) {
|
|
259
|
+
// TODO: audit usage of `codeFeatures.all` here: https://github.com/typed-ember/glint/issues/769
|
|
260
|
+
// There are cases where we need to be disabling certain features to prevent, e.g., navigation
|
|
261
|
+
// that targets an "in-between" piece of generated code.
|
|
262
|
+
push(span.originalStart, span.transformedStart, span.originalLength, {
|
|
263
|
+
...codeFeatures.all,
|
|
264
|
+
// This enables symbol/outline info for the transformed TS to appear in for the .gts file.
|
|
265
|
+
structure: true,
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
});
|
|
270
|
+
return codeMappings;
|
|
271
|
+
}
|
|
272
|
+
templateSymbols() {
|
|
273
|
+
const result = [];
|
|
274
|
+
this.correlatedSpans.forEach((span) => {
|
|
275
|
+
if (span.glimmerAstMapping) {
|
|
276
|
+
// This is a template span
|
|
277
|
+
result.push({
|
|
278
|
+
start: span.originalStart,
|
|
279
|
+
end: span.originalStart + span.originalLength,
|
|
280
|
+
startTagEnd: span.originalStart + span.originalLength,
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
return result;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
//# sourceMappingURL=transformed-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformed-module.js","sourceRoot":"","sources":["../../../src/transform/template/transformed-module.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type ts from 'typescript';
|
|
2
|
+
import { SourceFile } from './template/transformed-module.js';
|
|
3
|
+
export type TSLib = typeof ts;
|
|
4
|
+
export declare function unreachable(value: never, message?: string): never;
|
|
5
|
+
export declare function assert(test: unknown, message?: string | (() => string)): asserts test;
|
|
6
|
+
export declare function createSyntheticSourceFile(ts: TSLib, source: SourceFile): ts.SourceFile;
|
|
7
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/transform/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAE9D,MAAM,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC;AAE9B,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,SAAqB,GAAG,KAAK,CAE7E;AAED,wBAAgB,MAAM,CACpB,IAAI,EAAE,OAAO,EACb,OAAO,GAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAoB,GAClD,OAAO,CAAC,IAAI,CAId;AAED,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,GAAG,EAAE,CAAC,UAAU,CAKtF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export function unreachable(value, message = 'unreachable code') {
|
|
2
|
+
throw new Error(`[ember-tsc] Internal error: ${message}`);
|
|
3
|
+
}
|
|
4
|
+
export function assert(test, message = 'Internal error') {
|
|
5
|
+
if (test == null || test === false) {
|
|
6
|
+
throw new Error(typeof message === 'string' ? message : message());
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export function createSyntheticSourceFile(ts, source) {
|
|
10
|
+
return Object.assign(ts.createSourceFile(source.filename, '', ts.ScriptTarget.Latest), {
|
|
11
|
+
text: source.contents,
|
|
12
|
+
end: source.contents.length,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/transform/util.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,WAAW,CAAC,KAAY,EAAE,OAAO,GAAG,kBAAkB;IACpE,MAAM,IAAI,KAAK,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,MAAM,CACpB,IAAa,EACb,UAAmC,gBAAgB;IAEnD,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,EAAS,EAAE,MAAkB;IACrE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;QACrF,IAAI,EAAE,MAAM,CAAC,QAAQ;QACrB,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;KAC5B,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { LanguagePlugin } from '@volar/language-core';
|
|
2
|
+
import type ts from 'typescript';
|
|
3
|
+
import { URI } from 'vscode-uri';
|
|
4
|
+
import { GlintConfig } from '../index.js';
|
|
5
|
+
export type TS = typeof ts;
|
|
6
|
+
/**
|
|
7
|
+
* Create a [Volar](https://volarjs.dev) language plugin to support
|
|
8
|
+
*
|
|
9
|
+
* - .gts/.gjs files (the `ember-template-imports` environment)
|
|
10
|
+
*/
|
|
11
|
+
export declare function createEmberLanguagePlugin<T extends URI | string>(glintConfig: GlintConfig, { clientId }?: {
|
|
12
|
+
clientId?: string;
|
|
13
|
+
}): LanguagePlugin<T>;
|
|
14
|
+
//# sourceMappingURL=ember-language-plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ember-language-plugin.d.ts","sourceRoot":"","sources":["../../src/volar/ember-language-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;AAE3B;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,GAAG,GAAG,MAAM,EAC9D,WAAW,EAAE,WAAW,EACxB,EAAE,QAAQ,EAAE,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GACvC,cAAc,CAAC,CAAC,CAAC,CA4FnB"}
|