@analogjs/angular-compiler 2.5.0-beta.1
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/COMPILER.md +474 -0
- package/README.md +5 -0
- package/package.json +51 -0
- package/src/index.d.ts +5 -0
- package/src/index.js +6 -0
- package/src/index.js.map +1 -0
- package/src/lib/ast-translator.d.ts +40 -0
- package/src/lib/ast-translator.js +243 -0
- package/src/lib/ast-translator.js.map +1 -0
- package/src/lib/compile.d.ts +24 -0
- package/src/lib/compile.js +630 -0
- package/src/lib/compile.js.map +1 -0
- package/src/lib/defer.d.ts +23 -0
- package/src/lib/defer.js +158 -0
- package/src/lib/defer.js.map +1 -0
- package/src/lib/dts-reader.d.ts +25 -0
- package/src/lib/dts-reader.js +326 -0
- package/src/lib/dts-reader.js.map +1 -0
- package/src/lib/hmr.d.ts +12 -0
- package/src/lib/hmr.js +49 -0
- package/src/lib/hmr.js.map +1 -0
- package/src/lib/index.d.ts +5 -0
- package/src/lib/index.js +6 -0
- package/src/lib/index.js.map +1 -0
- package/src/lib/jit-metadata.d.ts +11 -0
- package/src/lib/jit-metadata.js +201 -0
- package/src/lib/jit-metadata.js.map +1 -0
- package/src/lib/jit-transform.d.ts +21 -0
- package/src/lib/jit-transform.js +207 -0
- package/src/lib/jit-transform.js.map +1 -0
- package/src/lib/js-emitter.d.ts +8 -0
- package/src/lib/js-emitter.js +317 -0
- package/src/lib/js-emitter.js.map +1 -0
- package/src/lib/metadata.d.ts +36 -0
- package/src/lib/metadata.js +465 -0
- package/src/lib/metadata.js.map +1 -0
- package/src/lib/registry.d.ts +32 -0
- package/src/lib/registry.js +177 -0
- package/src/lib/registry.js.map +1 -0
- package/src/lib/resource-inliner.d.ts +17 -0
- package/src/lib/resource-inliner.js +109 -0
- package/src/lib/resource-inliner.js.map +1 -0
- package/src/lib/style-ast.d.ts +8 -0
- package/src/lib/style-ast.js +110 -0
- package/src/lib/style-ast.js.map +1 -0
- package/src/lib/styles.d.ts +13 -0
- package/src/lib/styles.js +60 -0
- package/src/lib/styles.js.map +1 -0
- package/src/lib/utils.d.ts +8 -0
- package/src/lib/utils.js +71 -0
- package/src/lib/utils.js.map +1 -0
- package/vite.config.d.ts +2 -0
- package/vite.config.js +19 -0
- package/vite.config.js.map +1 -0
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import * as o from '@angular/compiler';
|
|
2
|
+
import * as ts from 'typescript';
|
|
3
|
+
const BINARY_OP_MAP = {
|
|
4
|
+
[o.BinaryOperator.Equals]: ts.SyntaxKind.EqualsEqualsToken,
|
|
5
|
+
[o.BinaryOperator.NotEquals]: ts.SyntaxKind.ExclamationEqualsToken,
|
|
6
|
+
[o.BinaryOperator.Assign]: ts.SyntaxKind.EqualsToken,
|
|
7
|
+
[o.BinaryOperator.Identical]: ts.SyntaxKind.EqualsEqualsEqualsToken,
|
|
8
|
+
[o.BinaryOperator.NotIdentical]: ts.SyntaxKind.ExclamationEqualsEqualsToken,
|
|
9
|
+
[o.BinaryOperator.Minus]: ts.SyntaxKind.MinusToken,
|
|
10
|
+
[o.BinaryOperator.Plus]: ts.SyntaxKind.PlusToken,
|
|
11
|
+
[o.BinaryOperator.Divide]: ts.SyntaxKind.SlashToken,
|
|
12
|
+
[o.BinaryOperator.Multiply]: ts.SyntaxKind.AsteriskToken,
|
|
13
|
+
[o.BinaryOperator.Modulo]: ts.SyntaxKind.PercentToken,
|
|
14
|
+
[o.BinaryOperator.And]: ts.SyntaxKind.AmpersandAmpersandToken,
|
|
15
|
+
[o.BinaryOperator.Or]: ts.SyntaxKind.BarBarToken,
|
|
16
|
+
[o.BinaryOperator.BitwiseOr]: ts.SyntaxKind.BarToken,
|
|
17
|
+
[o.BinaryOperator.BitwiseAnd]: ts.SyntaxKind.AmpersandToken,
|
|
18
|
+
[o.BinaryOperator.Lower]: ts.SyntaxKind.LessThanToken,
|
|
19
|
+
[o.BinaryOperator.LowerEquals]: ts.SyntaxKind.LessThanEqualsToken,
|
|
20
|
+
[o.BinaryOperator.Bigger]: ts.SyntaxKind.GreaterThanToken,
|
|
21
|
+
[o.BinaryOperator.BiggerEquals]: ts.SyntaxKind.GreaterThanEqualsToken,
|
|
22
|
+
[o.BinaryOperator.NullishCoalesce]: ts.SyntaxKind.QuestionQuestionToken,
|
|
23
|
+
[o.BinaryOperator.Exponentiation]: ts.SyntaxKind.AsteriskAsteriskToken,
|
|
24
|
+
[o.BinaryOperator.In]: ts.SyntaxKind.InKeyword,
|
|
25
|
+
[o.BinaryOperator.InstanceOf]: ts.SyntaxKind.InstanceOfKeyword,
|
|
26
|
+
[o.BinaryOperator.AdditionAssignment]: ts.SyntaxKind.PlusEqualsToken,
|
|
27
|
+
[o.BinaryOperator.SubtractionAssignment]: ts.SyntaxKind.MinusEqualsToken,
|
|
28
|
+
[o.BinaryOperator.MultiplicationAssignment]: ts.SyntaxKind.AsteriskEqualsToken,
|
|
29
|
+
[o.BinaryOperator.DivisionAssignment]: ts.SyntaxKind.SlashEqualsToken,
|
|
30
|
+
[o.BinaryOperator.RemainderAssignment]: ts.SyntaxKind.PercentEqualsToken,
|
|
31
|
+
[o.BinaryOperator.ExponentiationAssignment]: ts.SyntaxKind.AsteriskAsteriskEqualsToken,
|
|
32
|
+
[o.BinaryOperator.AndAssignment]: ts.SyntaxKind.AmpersandAmpersandEqualsToken,
|
|
33
|
+
[o.BinaryOperator.OrAssignment]: ts.SyntaxKind.BarBarEqualsToken,
|
|
34
|
+
[o.BinaryOperator.NullishCoalesceAssignment]: ts.SyntaxKind.QuestionQuestionEqualsToken,
|
|
35
|
+
};
|
|
36
|
+
const UNARY_OP_MAP = {
|
|
37
|
+
[o.UnaryOperator.Minus]: ts.SyntaxKind.MinusToken,
|
|
38
|
+
[o.UnaryOperator.Plus]: ts.SyntaxKind.PlusToken,
|
|
39
|
+
};
|
|
40
|
+
export class AstTranslator {
|
|
41
|
+
// --- Non-exported or Version-Specific Expression Methods ---
|
|
42
|
+
visitWritePropExpr(ast, context) {
|
|
43
|
+
return ts.factory.createBinaryExpression(ast.receiver.visitExpression(this, context), ts.SyntaxKind.EqualsToken, ast.value.visitExpression(this, context));
|
|
44
|
+
}
|
|
45
|
+
visitInvokeMethodExpr(ast, context) {
|
|
46
|
+
return ts.factory.createCallExpression(ts.factory.createPropertyAccessExpression(ast.receiver.visitExpression(this, context), ast.name), undefined, ast.args.map((a) => a.visitExpression(this, context)));
|
|
47
|
+
}
|
|
48
|
+
visitWriteVarExpr(ast, context) {
|
|
49
|
+
return ts.factory.createBinaryExpression(ts.factory.createIdentifier(ast.name), ts.SyntaxKind.EqualsToken, ast.value.visitExpression(this, context));
|
|
50
|
+
}
|
|
51
|
+
visitWriteKeyExpr(ast, context) {
|
|
52
|
+
return ts.factory.createBinaryExpression(ts.factory.createElementAccessExpression(ast.receiver.visitExpression(this, context), ast.index.visitExpression(this, context)), ts.SyntaxKind.EqualsToken, ast.value.visitExpression(this, context));
|
|
53
|
+
}
|
|
54
|
+
visitTaggedTemplateLiteralExpr(ast, context) {
|
|
55
|
+
const elements = ast.template.elements;
|
|
56
|
+
const expressions = ast.template.expressions;
|
|
57
|
+
const head = ts.factory.createTemplateHead(elements[0].text, elements[0].text);
|
|
58
|
+
const spans = expressions.map((expr, i) => {
|
|
59
|
+
const element = elements[i + 1];
|
|
60
|
+
const literal = i === expressions.length - 1
|
|
61
|
+
? ts.factory.createTemplateTail(element.text, element.text)
|
|
62
|
+
: ts.factory.createTemplateMiddle(element.text, element.text);
|
|
63
|
+
return ts.factory.createTemplateSpan(expr.visitExpression(this, context), literal);
|
|
64
|
+
});
|
|
65
|
+
return ts.factory.createTaggedTemplateExpression(ast.tag.visitExpression(this, context), undefined, ts.factory.createTemplateExpression(head, spans));
|
|
66
|
+
}
|
|
67
|
+
// --- Standard Expression Visitor Methods ---
|
|
68
|
+
// Support Defer dependency tracking variables
|
|
69
|
+
visitReadVarExpr(ast, context) {
|
|
70
|
+
if (ast.name === 'this')
|
|
71
|
+
return ts.factory.createThis();
|
|
72
|
+
if (ast.name === 'super')
|
|
73
|
+
return ts.factory.createSuper();
|
|
74
|
+
return ts.factory.createIdentifier(ast.name);
|
|
75
|
+
}
|
|
76
|
+
visitReadPropExpr(ast, context) {
|
|
77
|
+
return ts.factory.createPropertyAccessExpression(ast.receiver.visitExpression(this, context), ast.name);
|
|
78
|
+
}
|
|
79
|
+
visitReadKeyExpr(ast, context) {
|
|
80
|
+
return ts.factory.createElementAccessExpression(ast.receiver.visitExpression(this, context), ast.index.visitExpression(this, context));
|
|
81
|
+
}
|
|
82
|
+
visitLiteralExpr(ast, context) {
|
|
83
|
+
if (typeof ast.value === 'string') {
|
|
84
|
+
return ts.factory.createStringLiteral(ast.value);
|
|
85
|
+
}
|
|
86
|
+
if (typeof ast.value === 'number') {
|
|
87
|
+
if (ast.value < 0) {
|
|
88
|
+
return ts.factory.createPrefixUnaryExpression(ts.SyntaxKind.MinusToken, ts.factory.createNumericLiteral(Math.abs(ast.value).toString()));
|
|
89
|
+
}
|
|
90
|
+
return ts.factory.createNumericLiteral(ast.value.toString());
|
|
91
|
+
}
|
|
92
|
+
if (typeof ast.value === 'boolean')
|
|
93
|
+
return ast.value ? ts.factory.createTrue() : ts.factory.createFalse();
|
|
94
|
+
if (typeof ast.value === 'undefined')
|
|
95
|
+
return ts.factory.createVoidExpression(ts.factory.createNumericLiteral('0'));
|
|
96
|
+
return ts.factory.createNull();
|
|
97
|
+
}
|
|
98
|
+
visitLiteralArrayExpr(ast, context) {
|
|
99
|
+
return ts.factory.createArrayLiteralExpression(ast.entries.map((e) => {
|
|
100
|
+
// Safety check: sometimes the compiler emits null entries for empty slots
|
|
101
|
+
if (!e)
|
|
102
|
+
return ts.factory.createNull();
|
|
103
|
+
return e.visitExpression(this, context);
|
|
104
|
+
}), true);
|
|
105
|
+
}
|
|
106
|
+
visitSpreadElementExpr(ast, context) {
|
|
107
|
+
return ts.factory.createSpreadElement(ast.expression.visitExpression(this, context));
|
|
108
|
+
}
|
|
109
|
+
visitLiteralMapExpr(ast, context) {
|
|
110
|
+
return ts.factory.createObjectLiteralExpression(ast.entries.map((e) => {
|
|
111
|
+
if (e instanceof o.LiteralMapSpreadAssignment) {
|
|
112
|
+
return ts.factory.createSpreadAssignment(e.expression.visitExpression(this, context));
|
|
113
|
+
}
|
|
114
|
+
const prop = e;
|
|
115
|
+
return ts.factory.createPropertyAssignment(prop.quoted
|
|
116
|
+
? ts.factory.createStringLiteral(prop.key)
|
|
117
|
+
: ts.factory.createIdentifier(prop.key), prop.value
|
|
118
|
+
? prop.value.visitExpression(this, context)
|
|
119
|
+
: ts.factory.createNull());
|
|
120
|
+
}), true);
|
|
121
|
+
}
|
|
122
|
+
// Ensure visitInvokeFunctionExpr is fully mapping all arguments for v21
|
|
123
|
+
visitInvokeFunctionExpr(ast, context) {
|
|
124
|
+
return ts.factory.createCallExpression(ast.fn.visitExpression(this, context), undefined, ast.args.map((a) => a.visitExpression(this, context)));
|
|
125
|
+
}
|
|
126
|
+
visitInstantiateExpr(ast, context) {
|
|
127
|
+
return ts.factory.createNewExpression(ast.classExpr.visitExpression(this, context), undefined, ast.args.map((a) => a.visitExpression(this, context)));
|
|
128
|
+
}
|
|
129
|
+
visitTemplateLiteralExpr(ast, context) {
|
|
130
|
+
const headText = ast.elements[0].text;
|
|
131
|
+
const head = ts.factory.createTemplateHead(headText, headText);
|
|
132
|
+
const spans = ast.expressions.map((expr, i) => {
|
|
133
|
+
const isLast = i === ast.expressions.length - 1;
|
|
134
|
+
const content = ast.elements[i + 1].text;
|
|
135
|
+
const literal = isLast
|
|
136
|
+
? ts.factory.createTemplateTail(content, content)
|
|
137
|
+
: ts.factory.createTemplateMiddle(content, content);
|
|
138
|
+
return ts.factory.createTemplateSpan(expr.visitExpression(this, context), literal);
|
|
139
|
+
});
|
|
140
|
+
return ts.factory.createTemplateExpression(head, spans);
|
|
141
|
+
}
|
|
142
|
+
visitBinaryOperatorExpr(ast, context) {
|
|
143
|
+
const op = BINARY_OP_MAP[ast.operator];
|
|
144
|
+
if (op === undefined) {
|
|
145
|
+
throw new Error(`Unsupported binary operator: ${ast.operator}`);
|
|
146
|
+
}
|
|
147
|
+
return ts.factory.createBinaryExpression(ast.lhs.visitExpression(this, context), op, ast.rhs.visitExpression(this, context));
|
|
148
|
+
}
|
|
149
|
+
visitConditionalExpr(ast, context) {
|
|
150
|
+
return ts.factory.createConditionalExpression(ast.condition.visitExpression(this, context), ts.factory.createToken(ts.SyntaxKind.QuestionToken), ast.trueCase.visitExpression(this, context), ts.factory.createToken(ts.SyntaxKind.ColonToken), ast.falseCase.visitExpression(this, context));
|
|
151
|
+
}
|
|
152
|
+
visitNotExpr(ast, context) {
|
|
153
|
+
return ts.factory.createPrefixUnaryExpression(ts.SyntaxKind.ExclamationToken, ast.condition.visitExpression(this, context));
|
|
154
|
+
}
|
|
155
|
+
visitTypeofExpr(ast, context) {
|
|
156
|
+
return ts.factory.createTypeOfExpression(ast.expr.visitExpression(this, context));
|
|
157
|
+
}
|
|
158
|
+
visitUnaryOperatorExpr(ast, context) {
|
|
159
|
+
const op = UNARY_OP_MAP[ast.operator];
|
|
160
|
+
if (op === undefined) {
|
|
161
|
+
throw new Error(`Unsupported unary operator: ${ast.operator}`);
|
|
162
|
+
}
|
|
163
|
+
return ts.factory.createPrefixUnaryExpression(op, ast.expr.visitExpression(this, context));
|
|
164
|
+
}
|
|
165
|
+
visitFunctionExpr(ast, context) {
|
|
166
|
+
return ts.factory.createArrowFunction(undefined, undefined, ast.params.map((p) => ts.factory.createParameterDeclaration(undefined, undefined, p.name)), undefined, ts.factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken), ts.factory.createBlock(ast.statements.map((s) => s.visitStatement(this, context)), true));
|
|
167
|
+
}
|
|
168
|
+
visitArrowFunctionExpr(ast, context) {
|
|
169
|
+
const params = ast.params.map((p) => ts.factory.createParameterDeclaration(undefined, undefined, p.name));
|
|
170
|
+
const arrow = ts.factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken);
|
|
171
|
+
// ArrowFunctionExpr body can be a single Expression or an array of Statements
|
|
172
|
+
const body = Array.isArray(ast.body)
|
|
173
|
+
? ts.factory.createBlock(ast.body.map((s) => s.visitStatement(this, context)), true)
|
|
174
|
+
: ast.body.visitExpression(this, context);
|
|
175
|
+
return ts.factory.createArrowFunction(undefined, undefined, params, undefined, arrow, body);
|
|
176
|
+
}
|
|
177
|
+
visitDynamicImportExpr(ast, context) {
|
|
178
|
+
const urlArg = typeof ast.url === 'string'
|
|
179
|
+
? ts.factory.createStringLiteral(ast.url)
|
|
180
|
+
: ast.url.visitExpression(this, context);
|
|
181
|
+
return ts.factory.createCallExpression(ts.factory.createToken(ts.SyntaxKind.ImportKeyword), undefined, [urlArg]);
|
|
182
|
+
}
|
|
183
|
+
visitParenthesizedExpr(ast, context) {
|
|
184
|
+
return ts.factory.createParenthesizedExpression(ast.expr.visitExpression(this, context));
|
|
185
|
+
}
|
|
186
|
+
visitCommaExpr(ast, context) {
|
|
187
|
+
return ast.parts
|
|
188
|
+
.map((p) => p.visitExpression(this, context))
|
|
189
|
+
.reduce((p, c) => ts.factory.createBinaryExpression(p, ts.SyntaxKind.CommaToken, c));
|
|
190
|
+
}
|
|
191
|
+
visitVoidExpr(ast, context) {
|
|
192
|
+
return ts.factory.createVoidExpression(ast.expr.visitExpression(this, context));
|
|
193
|
+
}
|
|
194
|
+
visitLocalizedString(ast, context) {
|
|
195
|
+
throw new Error('i18n is not supported');
|
|
196
|
+
}
|
|
197
|
+
visitRegularExpressionLiteral(ast, context) {
|
|
198
|
+
return ts.factory.createRegularExpressionLiteral(`/${ast.body ?? ast.pattern}/${ast.flags}`);
|
|
199
|
+
}
|
|
200
|
+
visitTemplateLiteralElementExpr(ast, context) {
|
|
201
|
+
return ts.factory.createStringLiteral(ast.text);
|
|
202
|
+
}
|
|
203
|
+
visitWrappedNodeExpr(ast, context) {
|
|
204
|
+
// This is how Angular passes back original TS nodes (like Signal calls)
|
|
205
|
+
// into the generated code.
|
|
206
|
+
return ast.node;
|
|
207
|
+
}
|
|
208
|
+
visitExternalExpr(ast, context) {
|
|
209
|
+
const moduleName = ast.value.moduleName;
|
|
210
|
+
const name = ast.value.name;
|
|
211
|
+
if (moduleName && moduleName !== '@angular/core') {
|
|
212
|
+
throw new Error(`Unsupported external module reference: ${moduleName}.${name}`);
|
|
213
|
+
}
|
|
214
|
+
// ngDevMode is a global variable, not an @angular/core export
|
|
215
|
+
if (name === 'ngDevMode') {
|
|
216
|
+
return ts.factory.createIdentifier(name);
|
|
217
|
+
}
|
|
218
|
+
return ts.factory.createPropertyAccessExpression(ts.factory.createIdentifier('i0'), ts.factory.createIdentifier(name));
|
|
219
|
+
}
|
|
220
|
+
// --- Statement Visitor Methods ---
|
|
221
|
+
visitDeclareVarStmt(stmt, context) {
|
|
222
|
+
return ts.factory.createVariableStatement(undefined, ts.factory.createVariableDeclarationList([
|
|
223
|
+
ts.factory.createVariableDeclaration(stmt.name, undefined, undefined, stmt.value ? stmt.value.visitExpression(this, context) : undefined),
|
|
224
|
+
], stmt.hasModifier(o.StmtModifier.Final)
|
|
225
|
+
? ts.NodeFlags.Const
|
|
226
|
+
: ts.NodeFlags.Let));
|
|
227
|
+
}
|
|
228
|
+
visitDeclareFunctionStmt(stmt, context) {
|
|
229
|
+
return ts.factory.createFunctionDeclaration(undefined, undefined, stmt.name, undefined, stmt.params.map((p) => ts.factory.createParameterDeclaration(undefined, undefined, p.name)), undefined, ts.factory.createBlock(stmt.statements.map((s) => s.visitStatement(this, context)), true));
|
|
230
|
+
}
|
|
231
|
+
visitExpressionStmt(stmt, context) {
|
|
232
|
+
return ts.factory.createExpressionStatement(stmt.expr.visitExpression(this, context));
|
|
233
|
+
}
|
|
234
|
+
visitReturnStmt(stmt, context) {
|
|
235
|
+
return ts.factory.createReturnStatement(stmt.value.visitExpression(this, context));
|
|
236
|
+
}
|
|
237
|
+
visitIfStmt(stmt, context) {
|
|
238
|
+
return ts.factory.createIfStatement(stmt.condition.visitExpression(this, context), ts.factory.createBlock(stmt.trueCase.map((s) => s.visitStatement(this, context)), true), stmt.falseCase.length
|
|
239
|
+
? ts.factory.createBlock(stmt.falseCase.map((s) => s.visitStatement(this, context)), true)
|
|
240
|
+
: undefined);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
//# sourceMappingURL=ast-translator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ast-translator.js","sourceRoot":"","sources":["../../../../../packages/angular-compiler/src/lib/ast-translator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import MagicString from 'magic-string';
|
|
2
|
+
import { ComponentRegistry } from './registry.js';
|
|
3
|
+
/**
|
|
4
|
+
* COMPLETE EXHAUSTIVE ANGULAR LITE COMPILER
|
|
5
|
+
* Translates Angular Decorators + Signals to Ivy Static Definitions.
|
|
6
|
+
*
|
|
7
|
+
* @param registry - Optional external registry from the global analysis plugin.
|
|
8
|
+
* When provided, used to resolve component/directive selectors for template compilation.
|
|
9
|
+
*/
|
|
10
|
+
export interface CompileResult {
|
|
11
|
+
code: string;
|
|
12
|
+
/** Source map for the transformation */
|
|
13
|
+
map: ReturnType<MagicString['generateMap']>;
|
|
14
|
+
/** Absolute paths of external resources (templateUrl, styleUrl) read during compilation */
|
|
15
|
+
resourceDependencies: string[];
|
|
16
|
+
}
|
|
17
|
+
export interface CompileOptions {
|
|
18
|
+
registry?: ComponentRegistry;
|
|
19
|
+
/** Pre-resolved style contents keyed by absolute file path (e.g. SCSS already compiled to CSS). */
|
|
20
|
+
resolvedStyles?: Map<string, string>;
|
|
21
|
+
/** Pre-processed inline styles (index in styles array → compiled CSS). */
|
|
22
|
+
resolvedInlineStyles?: Map<number, string>;
|
|
23
|
+
}
|
|
24
|
+
export declare function compile(sourceCode: string, fileName: string, optionsOrRegistry?: CompileOptions | ComponentRegistry): CompileResult;
|