@tamagui/compiler-core 0.0.0-bootstrap.0 → 3.0.0-beta.637.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/LICENSE +21 -0
- package/README.md +57 -1
- package/dist/cjs/ast.cjs +95 -0
- package/dist/cjs/contracts.cjs +62 -0
- package/dist/cjs/diagnostics.cjs +69 -0
- package/dist/cjs/evaluate.cjs +351 -0
- package/dist/cjs/graph.cjs +279 -0
- package/dist/cjs/hash.cjs +49 -0
- package/dist/cjs/index.cjs +44 -0
- package/dist/cjs/ir.cjs +33 -0
- package/dist/cjs/lower.cjs +225 -0
- package/dist/cjs/materialize.cjs +200 -0
- package/dist/cjs/normalize.cjs +622 -0
- package/dist/cjs/output.cjs +149 -0
- package/dist/cjs/planCache.cjs +224 -0
- package/dist/cjs/session.cjs +119 -0
- package/dist/cjs/yuku.cjs +159 -0
- package/dist/cjs/zero.cjs +387 -0
- package/dist/esm/ast.mjs +65 -0
- package/dist/esm/ast.mjs.map +1 -0
- package/dist/esm/contracts.mjs +34 -0
- package/dist/esm/contracts.mjs.map +1 -0
- package/dist/esm/diagnostics.mjs +44 -0
- package/dist/esm/diagnostics.mjs.map +1 -0
- package/dist/esm/evaluate.mjs +327 -0
- package/dist/esm/evaluate.mjs.map +1 -0
- package/dist/esm/graph.mjs +256 -0
- package/dist/esm/graph.mjs.map +1 -0
- package/dist/esm/hash.mjs +26 -0
- package/dist/esm/hash.mjs.map +1 -0
- package/dist/esm/index.mjs +30 -0
- package/dist/esm/ir.mjs +12 -0
- package/dist/esm/ir.mjs.map +1 -0
- package/dist/esm/lower.mjs +202 -0
- package/dist/esm/lower.mjs.map +1 -0
- package/dist/esm/materialize.mjs +179 -0
- package/dist/esm/materialize.mjs.map +1 -0
- package/dist/esm/normalize.mjs +596 -0
- package/dist/esm/normalize.mjs.map +1 -0
- package/dist/esm/output.mjs +119 -0
- package/dist/esm/output.mjs.map +1 -0
- package/dist/esm/planCache.mjs +194 -0
- package/dist/esm/planCache.mjs.map +1 -0
- package/dist/esm/session.mjs +99 -0
- package/dist/esm/session.mjs.map +1 -0
- package/dist/esm/yuku.mjs +136 -0
- package/dist/esm/yuku.mjs.map +1 -0
- package/dist/esm/zero.mjs +352 -0
- package/dist/esm/zero.mjs.map +1 -0
- package/package.json +42 -4
- package/src/ast.ts +86 -0
- package/src/contracts.ts +148 -0
- package/src/diagnostics.ts +96 -0
- package/src/evaluate.ts +497 -0
- package/src/graph.ts +347 -0
- package/src/hash.ts +36 -0
- package/src/index.ts +15 -0
- package/src/ir.ts +154 -0
- package/src/lower.ts +418 -0
- package/src/materialize.ts +330 -0
- package/src/normalize.ts +846 -0
- package/src/output.ts +175 -0
- package/src/planCache.ts +327 -0
- package/src/session.ts +172 -0
- package/src/yuku.ts +189 -0
- package/src/zero.ts +598 -0
- package/types/ast.d.ts +10 -0
- package/types/ast.d.ts.map +1 -0
- package/types/contracts.d.ts +97 -0
- package/types/contracts.d.ts.map +1 -0
- package/types/diagnostics.d.ts +31 -0
- package/types/diagnostics.d.ts.map +1 -0
- package/types/evaluate.d.ts +36 -0
- package/types/evaluate.d.ts.map +1 -0
- package/types/graph.d.ts +37 -0
- package/types/graph.d.ts.map +1 -0
- package/types/hash.d.ts +8 -0
- package/types/hash.d.ts.map +1 -0
- package/types/index.d.ts +16 -0
- package/types/index.d.ts.map +1 -0
- package/types/ir.d.ts +118 -0
- package/types/ir.d.ts.map +1 -0
- package/types/lower.d.ts +99 -0
- package/types/lower.d.ts.map +1 -0
- package/types/materialize.d.ts +104 -0
- package/types/materialize.d.ts.map +1 -0
- package/types/normalize.d.ts +8 -0
- package/types/normalize.d.ts.map +1 -0
- package/types/output.d.ts +32 -0
- package/types/output.d.ts.map +1 -0
- package/types/planCache.d.ts +113 -0
- package/types/planCache.d.ts.map +1 -0
- package/types/session.d.ts +44 -0
- package/types/session.d.ts.map +1 -0
- package/types/yuku.d.ts +4 -0
- package/types/yuku.d.ts.map +1 -0
- package/types/zero.d.ts +98 -0
- package/types/zero.d.ts.map +1 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
export interface AstNode {
|
|
2
|
+
type: string;
|
|
3
|
+
start: number;
|
|
4
|
+
end: number;
|
|
5
|
+
[key: string]: unknown;
|
|
6
|
+
}
|
|
7
|
+
export type ResolvedModuleId = string & {
|
|
8
|
+
readonly __resolvedModuleId: unique symbol;
|
|
9
|
+
};
|
|
10
|
+
export interface SourceSpan {
|
|
11
|
+
id: ResolvedModuleId;
|
|
12
|
+
/** UTF-16 source-string index, inclusive. */
|
|
13
|
+
start: number;
|
|
14
|
+
/** UTF-16 source-string index, exclusive. */
|
|
15
|
+
end: number;
|
|
16
|
+
}
|
|
17
|
+
export interface HostResolvedImport {
|
|
18
|
+
specifier: string;
|
|
19
|
+
resolvedId: ResolvedModuleId;
|
|
20
|
+
external?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface HostModuleInput {
|
|
23
|
+
id: ResolvedModuleId;
|
|
24
|
+
source: string;
|
|
25
|
+
/** Every import identity is canonical and resolved before the compiler sees it. */
|
|
26
|
+
imports: readonly HostResolvedImport[];
|
|
27
|
+
}
|
|
28
|
+
export interface HostResolvedProject {
|
|
29
|
+
modules: readonly HostModuleInput[];
|
|
30
|
+
}
|
|
31
|
+
export interface ProjectInput {
|
|
32
|
+
files: ReadonlyMap<string, string>;
|
|
33
|
+
resolutions: ReadonlyMap<string, string>;
|
|
34
|
+
}
|
|
35
|
+
export interface DefinitionSite {
|
|
36
|
+
id: ResolvedModuleId;
|
|
37
|
+
name: string;
|
|
38
|
+
start: number;
|
|
39
|
+
end: number;
|
|
40
|
+
initializer: AstNode | null;
|
|
41
|
+
constant: boolean;
|
|
42
|
+
}
|
|
43
|
+
export interface ReferenceSite {
|
|
44
|
+
id: ResolvedModuleId;
|
|
45
|
+
name: string;
|
|
46
|
+
start: number;
|
|
47
|
+
end: number;
|
|
48
|
+
}
|
|
49
|
+
export interface ParseDiagnostic {
|
|
50
|
+
kind: 'parse' | 'link';
|
|
51
|
+
id: ResolvedModuleId;
|
|
52
|
+
message: string;
|
|
53
|
+
}
|
|
54
|
+
export interface AnalyzerCandidate {
|
|
55
|
+
readonly name: string;
|
|
56
|
+
addFile(id: string, source: string): void;
|
|
57
|
+
removeFile(id: string): boolean;
|
|
58
|
+
link(): void;
|
|
59
|
+
definitionOf(id: string, localName: string): DefinitionSite | null;
|
|
60
|
+
referencesOf(definition: DefinitionSite): ReferenceSite[];
|
|
61
|
+
dependenciesOf(id: string): string[];
|
|
62
|
+
dependentsOf(id: string): string[];
|
|
63
|
+
affectedBy(id: string): string[];
|
|
64
|
+
programOf(id: string): AstNode;
|
|
65
|
+
sourceOf(id: string): string;
|
|
66
|
+
parseCount(id: string): number;
|
|
67
|
+
diagnostics(): ParseDiagnostic[];
|
|
68
|
+
}
|
|
69
|
+
export interface ExpressionReference extends SourceSpan {
|
|
70
|
+
readonly kind: 'expression';
|
|
71
|
+
}
|
|
72
|
+
export interface SymbolDefinition {
|
|
73
|
+
id: ResolvedModuleId;
|
|
74
|
+
name: string;
|
|
75
|
+
span: SourceSpan;
|
|
76
|
+
initializer: ExpressionReference | null;
|
|
77
|
+
constant: boolean;
|
|
78
|
+
}
|
|
79
|
+
/** Parser-independent symbol access used by partial evaluation and element IR. */
|
|
80
|
+
export interface SymbolResolver {
|
|
81
|
+
resolveBinding(id: ResolvedModuleId, localName: string): SymbolDefinition | null;
|
|
82
|
+
expressionNode(reference: ExpressionReference): AstNode | null;
|
|
83
|
+
sourceOf(id: ResolvedModuleId): string;
|
|
84
|
+
}
|
|
85
|
+
export interface CandidateFactory {
|
|
86
|
+
name: AnalyzerCandidate['name'];
|
|
87
|
+
create(project: ProjectInput): AnalyzerCandidate;
|
|
88
|
+
/** Parser-owned static module scan; no parser-specific node types escape this boundary. */
|
|
89
|
+
scanImports(id: ResolvedModuleId, source: string): string[];
|
|
90
|
+
}
|
|
91
|
+
export declare function resolutionKey(importer: string, specifier: string): string;
|
|
92
|
+
export declare function resolveFromHost(resolutions: ReadonlyMap<string, string>, specifier: string, importer: string): string | null;
|
|
93
|
+
export declare function resolvedModuleId(id: string): ResolvedModuleId;
|
|
94
|
+
export declare function expressionReference(id: ResolvedModuleId, node: Pick<AstNode, 'start' | 'end'>): ExpressionReference;
|
|
95
|
+
export declare function spanOf(id: ResolvedModuleId, node: Pick<AstNode, 'start' | 'end'>): SourceSpan;
|
|
96
|
+
export declare function textOfSpan(source: string, span: Pick<SourceSpan, 'start' | 'end'>): string;
|
|
97
|
+
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { ResolvedModuleId, SourceSpan } from './contracts';
|
|
2
|
+
export type BailoutCode = 'local/invalid-element-call' | 'local/unsupported-element-name' | 'local/unsupported-prop-key' | 'local/unsupported-child' | 'local/unsupported-expression' | 'local/unsupported-styled-definition' | 'local/dynamic-style-value' | 'local/unsafe-style-spread' | 'local/unsupported-target' | 'local/style-resolution-failed' | 'local/overlapping-edit' | 'local/non-object-spread' | 'local/static-evaluation-cycle' | 'local/parse-error' | 'linked/unresolved-component-binding' | 'linked/unresolved-binding' | 'linked/missing-initializer' | 'linked/unresolved-import' | 'linked/unresolved-component-config';
|
|
3
|
+
/**
|
|
4
|
+
* The zero-runtime rule a diagnostic belongs to. Set by whichever site knows the
|
|
5
|
+
* reason; `zeroRuleForBailout` supplies the default for the rest.
|
|
6
|
+
*/
|
|
7
|
+
export type ZeroRule = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;
|
|
8
|
+
export interface BailoutReason {
|
|
9
|
+
code: BailoutCode;
|
|
10
|
+
kind: 'local' | 'linked';
|
|
11
|
+
message: string;
|
|
12
|
+
span: SourceSpan;
|
|
13
|
+
dependencyId?: ResolvedModuleId;
|
|
14
|
+
component?: string;
|
|
15
|
+
specifier?: string;
|
|
16
|
+
prop?: string;
|
|
17
|
+
/**
|
|
18
|
+
* True when this diagnostic stopped its candidate from lowering. Zero mode
|
|
19
|
+
* reports exactly these: a diagnostic recorded alongside a successful
|
|
20
|
+
* lowering describes a dropped prop, not a retained runtime.
|
|
21
|
+
*/
|
|
22
|
+
blocking?: boolean;
|
|
23
|
+
/** Set where the reporting site knows better than the code-level default. */
|
|
24
|
+
zeroRule?: ZeroRule;
|
|
25
|
+
/** The design's fixed text for sites that have one, used verbatim. */
|
|
26
|
+
zeroMessage?: string;
|
|
27
|
+
}
|
|
28
|
+
export declare function zeroRuleForBailout(reason: BailoutReason): ZeroRule;
|
|
29
|
+
export declare function localBailout(code: Extract<BailoutCode, `local/${string}`>, span: SourceSpan, message: string): BailoutReason;
|
|
30
|
+
export declare function linkedBailout(code: Extract<BailoutCode, `linked/${string}`>, span: SourceSpan, message: string, dependencyId?: ResolvedModuleId): BailoutReason;
|
|
31
|
+
//# sourceMappingURL=diagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE/D,MAAM,MAAM,WAAW,GACnB,4BAA4B,GAC5B,gCAAgC,GAChC,4BAA4B,GAC5B,yBAAyB,GACzB,8BAA8B,GAC9B,qCAAqC,GACrC,2BAA2B,GAC3B,2BAA2B,GAC3B,0BAA0B,GAC1B,+BAA+B,GAC/B,wBAAwB,GACxB,yBAAyB,GACzB,+BAA+B,GAC/B,mBAAmB,GACnB,qCAAqC,GACrC,2BAA2B,GAC3B,4BAA4B,GAC5B,0BAA0B,GAC1B,oCAAoC,CAAA;AAExC;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAEpD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,UAAU,CAAA;IAChB,YAAY,CAAC,EAAE,gBAAgB,CAAA;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AA4BD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,GAAG,QAAQ,CAElE;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC,EAC7C,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,GACd,aAAa,CAEf;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,UAAU,MAAM,EAAE,CAAC,EAC9C,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,gBAAgB,GAC9B,aAAa,CAEf"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { ExpressionReference, ResolvedModuleId, SourceSpan, SymbolResolver } from './contracts';
|
|
2
|
+
import { type BailoutReason } from './diagnostics';
|
|
3
|
+
export type StaticEvaluationValue = string | number | boolean | null | StaticEvaluationValue[] | {
|
|
4
|
+
[key: string]: StaticEvaluationValue;
|
|
5
|
+
};
|
|
6
|
+
export type EvaluationResult = {
|
|
7
|
+
ok: true;
|
|
8
|
+
value: StaticEvaluationValue;
|
|
9
|
+
dependencies: ResolvedModuleId[];
|
|
10
|
+
} | {
|
|
11
|
+
ok: false;
|
|
12
|
+
bailout: BailoutReason;
|
|
13
|
+
};
|
|
14
|
+
export interface ConditionalEvaluation {
|
|
15
|
+
/** Span of the test expression, sliced verbatim into compiled output. */
|
|
16
|
+
test: SourceSpan;
|
|
17
|
+
whenTrue: {
|
|
18
|
+
value: StaticEvaluationValue;
|
|
19
|
+
dependencies: ResolvedModuleId[];
|
|
20
|
+
};
|
|
21
|
+
whenFalse: {
|
|
22
|
+
value: StaticEvaluationValue;
|
|
23
|
+
dependencies: ResolvedModuleId[];
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* A conditional whose test resists static evaluation while both branches
|
|
28
|
+
* evaluate: `cond ? 'body' : 'heading'`. Plain evaluation bails on the test;
|
|
29
|
+
* this recovers the branch values so a lowering can resolve each branch at
|
|
30
|
+
* compile time and leave only the test in the output. Returns null for any
|
|
31
|
+
* other expression shape — the caller keeps its ordinary bailout.
|
|
32
|
+
*/
|
|
33
|
+
export declare function evaluateConditionalExpression(resolver: SymbolResolver, reference: ExpressionReference): ConditionalEvaluation | null;
|
|
34
|
+
export declare function evaluateExpression(resolver: SymbolResolver, reference: ExpressionReference): EvaluationResult;
|
|
35
|
+
export declare function evaluateBinding(resolver: SymbolResolver, id: ResolvedModuleId, localName: string): EvaluationResult;
|
|
36
|
+
//# sourceMappingURL=evaluate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../src/evaluate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,EAEV,cAAc,EACf,MAAM,aAAa,CAAA;AAEpB,OAAO,EAA+B,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AAE/E,MAAM,MAAM,qBAAqB,GAC7B,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,qBAAqB,EAAE,GACvB;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAAA;CAAE,CAAA;AAE5C,MAAM,MAAM,gBAAgB,GACxB;IACE,EAAE,EAAE,IAAI,CAAA;IACR,KAAK,EAAE,qBAAqB,CAAA;IAC5B,YAAY,EAAE,gBAAgB,EAAE,CAAA;CACjC,GACD;IACE,EAAE,EAAE,KAAK,CAAA;IACT,OAAO,EAAE,aAAa,CAAA;CACvB,CAAA;AAkWL,MAAM,WAAW,qBAAqB;IACpC,yEAAyE;IACzE,IAAI,EAAE,UAAU,CAAA;IAChB,QAAQ,EAAE;QAAE,KAAK,EAAE,qBAAqB,CAAC;QAAC,YAAY,EAAE,gBAAgB,EAAE,CAAA;KAAE,CAAA;IAC5E,SAAS,EAAE;QAAE,KAAK,EAAE,qBAAqB,CAAC;QAAC,YAAY,EAAE,gBAAgB,EAAE,CAAA;KAAE,CAAA;CAC9E;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,mBAAmB,GAC7B,qBAAqB,GAAG,IAAI,CAgC9B;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,mBAAmB,GAC7B,gBAAgB,CAyBlB;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,cAAc,EACxB,EAAE,EAAE,gBAAgB,EACpB,SAAS,EAAE,MAAM,GAChB,gBAAgB,CA4BlB"}
|
package/types/graph.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { CandidateFactory, ExpressionReference, HostModuleInput, HostResolvedProject, ResolvedModuleId, SymbolDefinition, SymbolResolver } from './contracts';
|
|
2
|
+
import { type BailoutReason } from './diagnostics';
|
|
3
|
+
import { type ConditionalEvaluation, type EvaluationResult } from './evaluate';
|
|
4
|
+
import type { ElementIRResult } from './ir';
|
|
5
|
+
export interface GraphInvalidation {
|
|
6
|
+
changed: boolean;
|
|
7
|
+
id: ResolvedModuleId;
|
|
8
|
+
previousHash: string | null;
|
|
9
|
+
contentHash: string | null;
|
|
10
|
+
invalidatedIds: ResolvedModuleId[];
|
|
11
|
+
}
|
|
12
|
+
export declare function moduleContentHash(input: HostModuleInput): string;
|
|
13
|
+
/**
|
|
14
|
+
* Long-lived semantic graph. The host owns resolution and supplies every canonical id;
|
|
15
|
+
* this service owns parsing, linking, hashes, reverse edges, IR, and evaluation caches.
|
|
16
|
+
*/
|
|
17
|
+
export declare class ProjectGraph implements SymbolResolver {
|
|
18
|
+
#private;
|
|
19
|
+
constructor(factory: CandidateFactory, project: HostResolvedProject);
|
|
20
|
+
moduleIds(): ResolvedModuleId[];
|
|
21
|
+
contentHash(id: ResolvedModuleId): string | null;
|
|
22
|
+
sourceOf(id: ResolvedModuleId): string;
|
|
23
|
+
dependenciesOf(id: ResolvedModuleId): ResolvedModuleId[];
|
|
24
|
+
dependentsOf(id: ResolvedModuleId): ResolvedModuleId[];
|
|
25
|
+
affectedBy(id: ResolvedModuleId): ResolvedModuleId[];
|
|
26
|
+
parseCount(id: ResolvedModuleId): number;
|
|
27
|
+
resolveBinding(id: ResolvedModuleId, localName: string): SymbolDefinition | null;
|
|
28
|
+
expressionNode(reference: ExpressionReference): import("./contracts").AstNode | null;
|
|
29
|
+
evaluate(reference: ExpressionReference): EvaluationResult;
|
|
30
|
+
evaluateConditional(reference: ExpressionReference): ConditionalEvaluation | null;
|
|
31
|
+
evaluateBinding(id: ResolvedModuleId, localName: string): EvaluationResult;
|
|
32
|
+
elementsOf(id: ResolvedModuleId): ElementIRResult;
|
|
33
|
+
diagnostics(): BailoutReason[];
|
|
34
|
+
updateModule(input: HostModuleInput): GraphInvalidation;
|
|
35
|
+
removeModule(id: ResolvedModuleId): GraphInvalidation;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EAEf,mBAAmB,EAEnB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACf,MAAM,aAAa,CAAA;AAEpB,OAAO,EAA+B,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AAC/E,OAAO,EAIL,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,MAAM,CAAA;AAa3C,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,EAAE,EAAE,gBAAgB,CAAA;IACpB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,cAAc,EAAE,gBAAgB,EAAE,CAAA;CACnC;AAiBD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAahE;AAED;;;GAGG;AACH,qBAAa,YAAa,YAAW,cAAc;;IASjD,YAAY,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,mBAAmB,EAQlE;IAED,SAAS,IAAI,gBAAgB,EAAE,CAE9B;IAED,WAAW,CAAC,EAAE,EAAE,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAE/C;IAED,QAAQ,CAAC,EAAE,EAAE,gBAAgB,GAAG,MAAM,CAIrC;IAED,cAAc,CAAC,EAAE,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,CAEvD;IAED,YAAY,CAAC,EAAE,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,CAErD;IAED,UAAU,CAAC,EAAE,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,CAYnD;IAED,UAAU,CAAC,EAAE,EAAE,gBAAgB,GAAG,MAAM,CAEvC;IAED,cAAc,CAAC,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAgB/E;IAED,cAAc,CAAC,SAAS,EAAE,mBAAmB,wCAO5C;IAED,QAAQ,CAAC,SAAS,EAAE,mBAAmB,GAAG,gBAAgB,CAEzD;IAED,mBAAmB,CAAC,SAAS,EAAE,mBAAmB,GAAG,qBAAqB,GAAG,IAAI,CAEhF;IAED,eAAe,CAAC,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAEzE;IAED,UAAU,CAAC,EAAE,EAAE,gBAAgB,GAAG,eAAe,CAQhD;IAED,WAAW,IAAI,aAAa,EAAE,CAsC7B;IAED,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,iBAAiB,CA4BtD;IAED,YAAY,CAAC,EAAE,EAAE,gBAAgB,GAAG,iBAAiB,CA0BpD;CAgEF"}
|
package/types/hash.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** The one content hash every compiler cache identity is built from. */
|
|
2
|
+
export declare function contentHash(value: string | Uint8Array): string;
|
|
3
|
+
/**
|
|
4
|
+
* Key-order-independent JSON. Cache identities are hashed from this, so two
|
|
5
|
+
* objects that differ only in property order must serialize identically.
|
|
6
|
+
*/
|
|
7
|
+
export declare function stableStringify(value: unknown): string;
|
|
8
|
+
//# sourceMappingURL=hash.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../src/hash.ts"],"names":[],"mappings":"AAEA,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAE9D;AAsBD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAItD"}
|
package/types/index.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export * from './ast';
|
|
2
|
+
export * from './contracts';
|
|
3
|
+
export * from './diagnostics';
|
|
4
|
+
export * from './evaluate';
|
|
5
|
+
export * from './graph';
|
|
6
|
+
export * from './hash';
|
|
7
|
+
export * from './ir';
|
|
8
|
+
export * from './lower';
|
|
9
|
+
export * from './materialize';
|
|
10
|
+
export * from './output';
|
|
11
|
+
export * from './planCache';
|
|
12
|
+
export * from './session';
|
|
13
|
+
export { normalizeElements } from './normalize';
|
|
14
|
+
export * from './zero';
|
|
15
|
+
export { parseModuleAst, yukuFactory } from './yuku';
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAA;AACrB,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,MAAM,CAAA;AACpB,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,cAAc,QAAQ,CAAA;AACtB,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA"}
|
package/types/ir.d.ts
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import type { ExpressionReference, HostResolvedImport, ResolvedModuleId, SourceSpan, SymbolDefinition } from './contracts';
|
|
2
|
+
import type { BailoutReason } from './diagnostics';
|
|
3
|
+
export type ElementForm = 'jsx' | 'jsx-runtime' | 'create-element';
|
|
4
|
+
export type StaticValue = string | number | boolean | null;
|
|
5
|
+
export type ElementValue = {
|
|
6
|
+
kind: 'static';
|
|
7
|
+
value: StaticValue;
|
|
8
|
+
span: SourceSpan;
|
|
9
|
+
} | ExpressionReference | DOMStyleProgramIR;
|
|
10
|
+
export interface DOMStyleProgramIR {
|
|
11
|
+
kind: 'dom-style';
|
|
12
|
+
span: SourceSpan;
|
|
13
|
+
items: {
|
|
14
|
+
condition: ExpressionReference | null;
|
|
15
|
+
value: ExpressionReference;
|
|
16
|
+
}[];
|
|
17
|
+
}
|
|
18
|
+
export interface ComponentImportProvenance {
|
|
19
|
+
specifier: string;
|
|
20
|
+
importedName: string;
|
|
21
|
+
resolvedId: ResolvedModuleId;
|
|
22
|
+
external: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface ElementComponentIR {
|
|
25
|
+
kind: 'binding' | 'intrinsic';
|
|
26
|
+
name: string;
|
|
27
|
+
span: SourceSpan;
|
|
28
|
+
closingSpan: SourceSpan | null;
|
|
29
|
+
definition: SymbolDefinition | null;
|
|
30
|
+
provenance: ComponentImportProvenance | null;
|
|
31
|
+
}
|
|
32
|
+
export interface ElementPropIR {
|
|
33
|
+
kind: 'prop';
|
|
34
|
+
name: string;
|
|
35
|
+
span: SourceSpan;
|
|
36
|
+
value: ElementValue;
|
|
37
|
+
}
|
|
38
|
+
export interface ElementSpreadIR {
|
|
39
|
+
kind: 'spread';
|
|
40
|
+
span: SourceSpan;
|
|
41
|
+
value: ExpressionReference;
|
|
42
|
+
}
|
|
43
|
+
export interface ElementChildIR {
|
|
44
|
+
kind: 'child';
|
|
45
|
+
span: SourceSpan;
|
|
46
|
+
value: ElementValue | {
|
|
47
|
+
kind: 'element';
|
|
48
|
+
span: SourceSpan;
|
|
49
|
+
} | {
|
|
50
|
+
kind: 'empty';
|
|
51
|
+
span: SourceSpan;
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Entries remain in source order. Consumers must apply duplicate props in this order;
|
|
56
|
+
* the last statically evaluated value wins exactly as it does at runtime.
|
|
57
|
+
*/
|
|
58
|
+
export type ElementEntryIR = ElementPropIR | ElementSpreadIR | ElementChildIR;
|
|
59
|
+
export interface ElementIRBase {
|
|
60
|
+
kind: 'element';
|
|
61
|
+
form: ElementForm;
|
|
62
|
+
id: ResolvedModuleId;
|
|
63
|
+
span: SourceSpan;
|
|
64
|
+
/** JSX opening element or compiled props argument, used for punctuation-safe edits. */
|
|
65
|
+
propsSpan: SourceSpan | null;
|
|
66
|
+
component: ElementComponentIR;
|
|
67
|
+
}
|
|
68
|
+
export interface CompleteElementIR extends ElementIRBase {
|
|
69
|
+
complete: true;
|
|
70
|
+
entries: ElementEntryIR[];
|
|
71
|
+
bailouts: readonly [];
|
|
72
|
+
}
|
|
73
|
+
export interface IncompleteElementIR extends ElementIRBase {
|
|
74
|
+
complete: false;
|
|
75
|
+
/** Preserved only for diagnostics; incomplete entries must never be optimized. */
|
|
76
|
+
bailedEntries: ElementEntryIR[];
|
|
77
|
+
bailouts: readonly [BailoutReason, ...BailoutReason[]];
|
|
78
|
+
}
|
|
79
|
+
export type ElementIR = CompleteElementIR | IncompleteElementIR;
|
|
80
|
+
export interface StyledDefinitionIRBase {
|
|
81
|
+
kind: 'styled-definition';
|
|
82
|
+
id: ResolvedModuleId;
|
|
83
|
+
name: string;
|
|
84
|
+
span: SourceSpan;
|
|
85
|
+
definitionSpan: SourceSpan;
|
|
86
|
+
factory: ComponentImportProvenance;
|
|
87
|
+
base: ElementComponentIR;
|
|
88
|
+
baseClassName: ElementValue | null;
|
|
89
|
+
options: ExpressionReference;
|
|
90
|
+
}
|
|
91
|
+
export interface CompleteStyledDefinitionIR extends StyledDefinitionIRBase {
|
|
92
|
+
complete: true;
|
|
93
|
+
bailouts: readonly [];
|
|
94
|
+
}
|
|
95
|
+
export interface IncompleteStyledDefinitionIR extends StyledDefinitionIRBase {
|
|
96
|
+
complete: false;
|
|
97
|
+
bailouts: readonly [BailoutReason, ...BailoutReason[]];
|
|
98
|
+
}
|
|
99
|
+
export type StyledDefinitionIR = CompleteStyledDefinitionIR | IncompleteStyledDefinitionIR;
|
|
100
|
+
/** A compile-time style handle declared by the standalone DOM frontend. */
|
|
101
|
+
export interface DOMStyleDefinitionIR {
|
|
102
|
+
kind: 'dom-style-definition';
|
|
103
|
+
id: ResolvedModuleId;
|
|
104
|
+
name: string;
|
|
105
|
+
/** Span of the complete style(...) call. */
|
|
106
|
+
span: SourceSpan;
|
|
107
|
+
definitionSpan: SourceSpan;
|
|
108
|
+
factory: ComponentImportProvenance;
|
|
109
|
+
value: ExpressionReference;
|
|
110
|
+
}
|
|
111
|
+
export interface ElementIRResult {
|
|
112
|
+
elements: ElementIR[];
|
|
113
|
+
styledDefinitions: StyledDefinitionIR[];
|
|
114
|
+
domStyleDefinitions: DOMStyleDefinitionIR[];
|
|
115
|
+
bailouts: BailoutReason[];
|
|
116
|
+
}
|
|
117
|
+
export declare function hostImportProvenance(imports: readonly HostResolvedImport[], specifier: string, importedName: string): ComponentImportProvenance | null;
|
|
118
|
+
//# sourceMappingURL=ir.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../src/ir.ts"],"names":[],"mappings":"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"}
|
package/types/lower.d.ts
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import type { ResolvedModuleId, SourceSpan } from './contracts';
|
|
2
|
+
import { type BailoutReason } from './diagnostics';
|
|
3
|
+
import type { MaterializedElement, MaterializedModule, MaterializedStyledDefinition } from './materialize';
|
|
4
|
+
import { type ApplicableLoweredModulePlan, type SourceEdit } from './output';
|
|
5
|
+
export declare const LOWERED_MODULE_PLAN_VERSION = 2;
|
|
6
|
+
export type CompilerTarget = 'web' | 'native';
|
|
7
|
+
export interface LoweredModuleStats {
|
|
8
|
+
found: number;
|
|
9
|
+
lowered: number;
|
|
10
|
+
flattened: number;
|
|
11
|
+
styled: number;
|
|
12
|
+
bailed: number;
|
|
13
|
+
}
|
|
14
|
+
export interface LoweringComponent {
|
|
15
|
+
/** Canonical resolved module id plus export name, supplied by the host registry. */
|
|
16
|
+
key: string;
|
|
17
|
+
canFlatten: boolean;
|
|
18
|
+
staticConfig: unknown;
|
|
19
|
+
}
|
|
20
|
+
export interface LoweringCandidateInput {
|
|
21
|
+
id: ResolvedModuleId;
|
|
22
|
+
source: string;
|
|
23
|
+
target: CompilerTarget;
|
|
24
|
+
module: MaterializedModule;
|
|
25
|
+
element: MaterializedElement;
|
|
26
|
+
styledDefinition: MaterializedStyledDefinition | null;
|
|
27
|
+
component: LoweringComponent;
|
|
28
|
+
}
|
|
29
|
+
export interface CandidateImport {
|
|
30
|
+
content: string;
|
|
31
|
+
origin: SourceSpan;
|
|
32
|
+
}
|
|
33
|
+
export type LoweringCandidateResult = {
|
|
34
|
+
ok: true;
|
|
35
|
+
edits: SourceEdit[];
|
|
36
|
+
css: string[];
|
|
37
|
+
imports: CandidateImport[];
|
|
38
|
+
dependencies?: ResolvedModuleId[];
|
|
39
|
+
diagnostics?: BailoutReason[];
|
|
40
|
+
flattened?: boolean;
|
|
41
|
+
} | {
|
|
42
|
+
ok: false;
|
|
43
|
+
bailout: BailoutReason;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Tamagui's static adapter supplies stable style primitives and registry data. It does
|
|
47
|
+
* not traverse modules, apply edits, commit partial candidates, or choose a fallback.
|
|
48
|
+
*/
|
|
49
|
+
export interface CompilerLoweringHost {
|
|
50
|
+
resolveComponent(element: MaterializedElement, styledDefinition: MaterializedStyledDefinition | null): LoweringComponent | null;
|
|
51
|
+
isStyleProp(name: string, component: LoweringComponent): boolean;
|
|
52
|
+
/** The host can retain this dynamic prop while committing other safe candidate edits. */
|
|
53
|
+
canLowerDynamicStyleProp?(name: string, component: LoweringComponent, valueKind?: 'bailout' | 'conditional'): boolean;
|
|
54
|
+
lowerCandidate(input: LoweringCandidateInput): LoweringCandidateResult;
|
|
55
|
+
/** Development-only source instrumentation for an existing component debug channel. */
|
|
56
|
+
developmentDebugInstrumentation?(input: LoweringCandidateInput, result: LoweringCandidateResult): SourceEdit[] | undefined;
|
|
57
|
+
}
|
|
58
|
+
export interface LowerModuleOptions {
|
|
59
|
+
projectGeneration: string;
|
|
60
|
+
}
|
|
61
|
+
export interface StructuralModulePassResult {
|
|
62
|
+
module: MaterializedModule;
|
|
63
|
+
edits: SourceEdit[];
|
|
64
|
+
imports: CandidateImport[];
|
|
65
|
+
diagnostics: BailoutReason[];
|
|
66
|
+
dependencies: ResolvedModuleId[];
|
|
67
|
+
}
|
|
68
|
+
export interface StructuralModulePass {
|
|
69
|
+
/** Stable implementation/data hash included in every lowerer cache identity. */
|
|
70
|
+
versionHash: string;
|
|
71
|
+
transform(input: {
|
|
72
|
+
module: MaterializedModule;
|
|
73
|
+
source: string;
|
|
74
|
+
target: CompilerTarget;
|
|
75
|
+
}): StructuralModulePassResult;
|
|
76
|
+
}
|
|
77
|
+
export interface LoweredModulePlan extends ApplicableLoweredModulePlan {
|
|
78
|
+
version: typeof LOWERED_MODULE_PLAN_VERSION;
|
|
79
|
+
target: CompilerTarget;
|
|
80
|
+
inputHash: string;
|
|
81
|
+
projectGeneration: string;
|
|
82
|
+
structuralPassHash: string;
|
|
83
|
+
edits: SourceEdit[];
|
|
84
|
+
css: string;
|
|
85
|
+
diagnostics: BailoutReason[];
|
|
86
|
+
dependencies: ResolvedModuleId[];
|
|
87
|
+
stats: LoweredModuleStats;
|
|
88
|
+
}
|
|
89
|
+
export interface LowerModuleInput {
|
|
90
|
+
module: MaterializedModule;
|
|
91
|
+
source: string;
|
|
92
|
+
target: CompilerTarget;
|
|
93
|
+
host: CompilerLoweringHost;
|
|
94
|
+
options: LowerModuleOptions;
|
|
95
|
+
structuralPass?: StructuralModulePass;
|
|
96
|
+
}
|
|
97
|
+
/** Builds one JSON-safe plan. Each recognized candidate commits all edits/CSS/imports or none. */
|
|
98
|
+
export declare function lowerModule({ module, source, target, host, options, structuralPass, }: LowerModuleInput): LoweredModulePlan;
|
|
99
|
+
//# sourceMappingURL=lower.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lower.d.ts","sourceRoot":"","sources":["../src/lower.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import type { ResolvedModuleId, SourceSpan } from './contracts';
|
|
2
|
+
import type { BailoutReason } from './diagnostics';
|
|
3
|
+
import type { StaticEvaluationValue } from './evaluate';
|
|
4
|
+
import type { ProjectGraph } from './graph';
|
|
5
|
+
import type { ComponentImportProvenance, ElementComponentIR, ElementIR, DOMStyleDefinitionIR } from './ir';
|
|
6
|
+
export type MaterializedValue = {
|
|
7
|
+
kind: 'static';
|
|
8
|
+
value: StaticEvaluationValue;
|
|
9
|
+
dependencies: ResolvedModuleId[];
|
|
10
|
+
span: SourceSpan;
|
|
11
|
+
/**
|
|
12
|
+
* Present only when normalization received syntax-level literal input:
|
|
13
|
+
* a string, number, boolean, or null AST literal, or JSXText. Template
|
|
14
|
+
* literals, constant-folded expressions, and values reached through a
|
|
15
|
+
* binding are evaluated static values but do not have literal origin.
|
|
16
|
+
*/
|
|
17
|
+
literalOrigin?: true;
|
|
18
|
+
} | {
|
|
19
|
+
kind: 'bailout';
|
|
20
|
+
bailout: BailoutReason;
|
|
21
|
+
span: SourceSpan;
|
|
22
|
+
} | {
|
|
23
|
+
/**
|
|
24
|
+
* A conditional whose branches evaluated statically while the test did
|
|
25
|
+
* not: `cond ? 'body' : 'heading'`. Lowerings that cannot use it treat
|
|
26
|
+
* it exactly like a bailout (the bailout it would otherwise have been
|
|
27
|
+
* is preserved for that purpose).
|
|
28
|
+
*/
|
|
29
|
+
kind: 'conditional';
|
|
30
|
+
test: SourceSpan;
|
|
31
|
+
whenTrue: StaticEvaluationValue;
|
|
32
|
+
whenFalse: StaticEvaluationValue;
|
|
33
|
+
dependencies: ResolvedModuleId[];
|
|
34
|
+
bailout: BailoutReason;
|
|
35
|
+
span: SourceSpan;
|
|
36
|
+
} | {
|
|
37
|
+
kind: 'dom-style';
|
|
38
|
+
span: SourceSpan;
|
|
39
|
+
items: {
|
|
40
|
+
condition: SourceSpan | null;
|
|
41
|
+
value: Exclude<MaterializedValue, {
|
|
42
|
+
kind: 'dom-style';
|
|
43
|
+
}>;
|
|
44
|
+
}[];
|
|
45
|
+
};
|
|
46
|
+
export type MaterializedElementEntry = {
|
|
47
|
+
kind: 'prop';
|
|
48
|
+
name: string;
|
|
49
|
+
span: SourceSpan;
|
|
50
|
+
value: MaterializedValue;
|
|
51
|
+
} | {
|
|
52
|
+
kind: 'spread';
|
|
53
|
+
span: SourceSpan;
|
|
54
|
+
value: MaterializedValue;
|
|
55
|
+
} | {
|
|
56
|
+
kind: 'child';
|
|
57
|
+
span: SourceSpan;
|
|
58
|
+
value: MaterializedValue | {
|
|
59
|
+
kind: 'element';
|
|
60
|
+
span: SourceSpan;
|
|
61
|
+
} | {
|
|
62
|
+
kind: 'empty';
|
|
63
|
+
span: SourceSpan;
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
export interface MaterializedElement {
|
|
67
|
+
kind: 'element';
|
|
68
|
+
form: ElementIR['form'];
|
|
69
|
+
id: ResolvedModuleId;
|
|
70
|
+
span: SourceSpan;
|
|
71
|
+
propsSpan: SourceSpan | null;
|
|
72
|
+
component: ElementComponentIR;
|
|
73
|
+
complete: boolean;
|
|
74
|
+
entries: MaterializedElementEntry[];
|
|
75
|
+
bailouts: BailoutReason[];
|
|
76
|
+
}
|
|
77
|
+
export interface MaterializedStyledDefinition {
|
|
78
|
+
kind: 'styled-definition';
|
|
79
|
+
id: ResolvedModuleId;
|
|
80
|
+
name: string;
|
|
81
|
+
span: SourceSpan;
|
|
82
|
+
definitionSpan: SourceSpan;
|
|
83
|
+
factory: ComponentImportProvenance;
|
|
84
|
+
base: ElementComponentIR;
|
|
85
|
+
baseClassName: MaterializedValue | null;
|
|
86
|
+
options: MaterializedValue;
|
|
87
|
+
complete: boolean;
|
|
88
|
+
bailouts: BailoutReason[];
|
|
89
|
+
}
|
|
90
|
+
export interface MaterializedDOMStyleDefinition extends Omit<DOMStyleDefinitionIR, 'value'> {
|
|
91
|
+
value: MaterializedValue;
|
|
92
|
+
}
|
|
93
|
+
export interface MaterializedModule {
|
|
94
|
+
version: 1;
|
|
95
|
+
id: ResolvedModuleId;
|
|
96
|
+
inputHash: string;
|
|
97
|
+
elements: MaterializedElement[];
|
|
98
|
+
styledDefinitions: MaterializedStyledDefinition[];
|
|
99
|
+
domStyleDefinitions: MaterializedDOMStyleDefinition[];
|
|
100
|
+
diagnostics: BailoutReason[];
|
|
101
|
+
dependencies: ResolvedModuleId[];
|
|
102
|
+
}
|
|
103
|
+
export declare function materializeModule(graph: ProjectGraph, id: ResolvedModuleId): MaterializedModule;
|
|
104
|
+
//# sourceMappingURL=materialize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"materialize.d.ts","sourceRoot":"","sources":["../src/materialize.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type AnalyzerCandidate, type AstNode, type DefinitionSite, type HostResolvedImport } from './contracts';
|
|
2
|
+
import type { ElementIRResult } from './ir';
|
|
3
|
+
export declare function definitionFromDeclaration(id: string, name: string, program: AstNode, declaration: AstNode): DefinitionSite;
|
|
4
|
+
export declare function normalizeElements(candidate: AnalyzerCandidate, rawId: string, imports?: readonly HostResolvedImport[]): ElementIRResult;
|
|
5
|
+
export declare function declarationForName(program: AstNode, name: string): AstNode | null;
|
|
6
|
+
export declare function nodeAtSpan(program: AstNode, start: number, end: number): AstNode | null;
|
|
7
|
+
export declare function asAstNode(value: unknown, label: string): AstNode;
|
|
8
|
+
//# sourceMappingURL=normalize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAQA,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,kBAAkB,EAGxB,MAAM,aAAa,CAAA;AAEpB,OAAO,KAAK,EAMV,eAAe,EAQhB,MAAM,MAAM,CAAA;AAmBb,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,OAAO,GACnB,cAAc,CA8ChB;AAynBD,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,iBAAiB,EAC5B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,SAAS,kBAAkB,EAAO,GAC1C,eAAe,CAwFjB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAKjF;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAEvF;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAGhE"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { ResolvedModuleId, SourceSpan } from './contracts';
|
|
2
|
+
export interface SourceEdit {
|
|
3
|
+
/** UTF-16 source-string index, inclusive. */
|
|
4
|
+
start: number;
|
|
5
|
+
/** UTF-16 source-string index, exclusive. Equal to start for an insertion. */
|
|
6
|
+
end: number;
|
|
7
|
+
content: string;
|
|
8
|
+
origin: SourceSpan;
|
|
9
|
+
}
|
|
10
|
+
export interface CompilerSourceMap {
|
|
11
|
+
version: 3;
|
|
12
|
+
file?: string;
|
|
13
|
+
names: readonly string[];
|
|
14
|
+
sources: readonly (string | null)[];
|
|
15
|
+
sourcesContent: readonly (string | null)[];
|
|
16
|
+
mappings: string;
|
|
17
|
+
}
|
|
18
|
+
export interface AppliedLoweredModule {
|
|
19
|
+
changed: boolean;
|
|
20
|
+
code: string;
|
|
21
|
+
map: CompilerSourceMap | null;
|
|
22
|
+
}
|
|
23
|
+
export interface ApplicableLoweredModulePlan {
|
|
24
|
+
id: ResolvedModuleId;
|
|
25
|
+
sourceHash: string;
|
|
26
|
+
edits: readonly SourceEdit[];
|
|
27
|
+
}
|
|
28
|
+
export declare function sourceContentHash(source: string): string;
|
|
29
|
+
export declare function validateSourceEdits(source: string, edits: readonly SourceEdit[]): void;
|
|
30
|
+
/** The only compiler-core path that applies source edits and owns their source map. */
|
|
31
|
+
export declare function applyLoweredModule(source: string, id: ResolvedModuleId, plan: ApplicableLoweredModulePlan): AppliedLoweredModule;
|
|
32
|
+
//# sourceMappingURL=output.d.ts.map
|