@invinite-org/chartlang-compiler 1.0.1 → 1.1.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/CHANGELOG.md +101 -0
- package/README.md +3 -0
- package/dist/analysis/extractCapabilities.d.ts +5 -1
- package/dist/analysis/extractCapabilities.d.ts.map +1 -1
- package/dist/analysis/extractCapabilities.js +6 -2
- package/dist/analysis/extractCapabilities.js.map +1 -1
- package/dist/analysis/extractDependencyGraph.d.ts +160 -0
- package/dist/analysis/extractDependencyGraph.d.ts.map +1 -0
- package/dist/analysis/extractDependencyGraph.js +690 -0
- package/dist/analysis/extractDependencyGraph.js.map +1 -0
- package/dist/analysis/extractInputs.d.ts +5 -1
- package/dist/analysis/extractInputs.d.ts.map +1 -1
- package/dist/analysis/extractInputs.js +6 -2
- package/dist/analysis/extractInputs.js.map +1 -1
- package/dist/analysis/extractMaxLookback.d.ts +6 -1
- package/dist/analysis/extractMaxLookback.d.ts.map +1 -1
- package/dist/analysis/extractMaxLookback.js +10 -5
- package/dist/analysis/extractMaxLookback.js.map +1 -1
- package/dist/analysis/forbiddenConstructs.d.ts.map +1 -1
- package/dist/analysis/forbiddenConstructs.js +3 -0
- package/dist/analysis/forbiddenConstructs.js.map +1 -1
- package/dist/analysis/index.d.ts +3 -1
- package/dist/analysis/index.d.ts.map +1 -1
- package/dist/analysis/index.js +1 -0
- package/dist/analysis/index.js.map +1 -1
- package/dist/analysis/structuralChecks.d.ts +64 -8
- package/dist/analysis/structuralChecks.d.ts.map +1 -1
- package/dist/analysis/structuralChecks.js +111 -22
- package/dist/analysis/structuralChecks.js.map +1 -1
- package/dist/api.d.ts +40 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +484 -35
- package/dist/api.js.map +1 -1
- package/dist/bundle.d.ts +90 -3
- package/dist/bundle.d.ts.map +1 -1
- package/dist/bundle.js +59 -5
- package/dist/bundle.js.map +1 -1
- package/dist/dependency/index.d.ts +3 -0
- package/dist/dependency/index.d.ts.map +1 -0
- package/dist/dependency/index.js +4 -0
- package/dist/dependency/index.js.map +1 -0
- package/dist/dependency/resolveProducer.d.ts +183 -0
- package/dist/dependency/resolveProducer.d.ts.map +1 -0
- package/dist/dependency/resolveProducer.js +256 -0
- package/dist/dependency/resolveProducer.js.map +1 -0
- package/dist/diagnostics.d.ts +6 -2
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/diagnostics.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/manifest.d.ts +8 -1
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +27 -0
- package/dist/manifest.js.map +1 -1
- package/dist/program.d.ts +1 -0
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +80 -4
- package/dist/program.js.map +1 -1
- package/dist/transformers/callsiteIdInjection.d.ts +2 -1
- package/dist/transformers/callsiteIdInjection.d.ts.map +1 -1
- package/dist/transformers/callsiteIdInjection.js +15 -0
- package/dist/transformers/callsiteIdInjection.js.map +1 -1
- package/dist/transformers/index.d.ts +2 -0
- package/dist/transformers/index.d.ts.map +1 -1
- package/dist/transformers/index.js +1 -0
- package/dist/transformers/index.js.map +1 -1
- package/dist/transformers/plotKindFromCallsite.d.ts +43 -0
- package/dist/transformers/plotKindFromCallsite.d.ts.map +1 -0
- package/dist/transformers/plotKindFromCallsite.js +103 -0
- package/dist/transformers/plotKindFromCallsite.js.map +1 -0
- package/dist/transformers/rewriteDependencyAccessors.d.ts +65 -0
- package/dist/transformers/rewriteDependencyAccessors.d.ts.map +1 -0
- package/dist/transformers/rewriteDependencyAccessors.js +204 -0
- package/dist/transformers/rewriteDependencyAccessors.js.map +1 -0
- package/dist/typesEmit.d.ts +14 -11
- package/dist/typesEmit.d.ts.map +1 -1
- package/dist/typesEmit.js +91 -7
- package/dist/typesEmit.js.map +1 -1
- package/package.json +2 -2
|
@@ -43,6 +43,7 @@ function readScaleAxis(node) {
|
|
|
43
43
|
return undefined;
|
|
44
44
|
}
|
|
45
45
|
function extractOverrides(argument, kind) {
|
|
46
|
+
let overlay;
|
|
46
47
|
let maxBarsBack;
|
|
47
48
|
let format;
|
|
48
49
|
let precision;
|
|
@@ -56,7 +57,13 @@ function extractOverrides(argument, kind) {
|
|
|
56
57
|
if (!ts.isIdentifier(propertyName))
|
|
57
58
|
continue;
|
|
58
59
|
const initializer = property.initializer;
|
|
59
|
-
if (propertyName.text === "
|
|
60
|
+
if (propertyName.text === "overlay" && kind === "indicator") {
|
|
61
|
+
if (initializer.kind === ts.SyntaxKind.TrueKeyword)
|
|
62
|
+
overlay = true;
|
|
63
|
+
else if (initializer.kind === ts.SyntaxKind.FalseKeyword)
|
|
64
|
+
overlay = false;
|
|
65
|
+
}
|
|
66
|
+
else if (propertyName.text === "maxBarsBack" && kind !== "drawing") {
|
|
60
67
|
if (ts.isNumericLiteral(initializer))
|
|
61
68
|
maxBarsBack = Number(initializer.text);
|
|
62
69
|
}
|
|
@@ -79,6 +86,7 @@ function extractOverrides(argument, kind) {
|
|
|
79
86
|
}
|
|
80
87
|
}
|
|
81
88
|
return Object.freeze({
|
|
89
|
+
...(overlay === undefined ? {} : { overlay }),
|
|
82
90
|
...(maxBarsBack === undefined ? {} : { maxBarsBack }),
|
|
83
91
|
...(format === undefined ? {} : { format }),
|
|
84
92
|
...(precision === undefined ? {} : { precision }),
|
|
@@ -87,22 +95,91 @@ function extractOverrides(argument, kind) {
|
|
|
87
95
|
...(shortName === undefined ? {} : { shortName }),
|
|
88
96
|
});
|
|
89
97
|
}
|
|
98
|
+
function defineKindFromCallee(calleeName) {
|
|
99
|
+
if (calleeName === "defineAlert")
|
|
100
|
+
return "alert";
|
|
101
|
+
if (calleeName === "defineAlertCondition")
|
|
102
|
+
return "alertCondition";
|
|
103
|
+
if (calleeName === "defineDrawing")
|
|
104
|
+
return "drawing";
|
|
105
|
+
return "indicator";
|
|
106
|
+
}
|
|
107
|
+
function collectBindings(sourceFile, checker, sourcePath, diagnostics) {
|
|
108
|
+
const bindings = [];
|
|
109
|
+
const defaultAssignments = [];
|
|
110
|
+
for (const statement of sourceFile.statements) {
|
|
111
|
+
if (ts.isExportAssignment(statement) && !statement.isExportEquals) {
|
|
112
|
+
defaultAssignments.push(statement);
|
|
113
|
+
const expression = statement.expression;
|
|
114
|
+
if (!ts.isCallExpression(expression))
|
|
115
|
+
continue;
|
|
116
|
+
const calleeName = resolveCalleeName(expression, checker);
|
|
117
|
+
if (calleeName === null || !DEFINE_CALLS.has(calleeName))
|
|
118
|
+
continue;
|
|
119
|
+
bindings.push(Object.freeze({
|
|
120
|
+
exportKind: "default",
|
|
121
|
+
bindingName: "default",
|
|
122
|
+
defineKind: defineKindFromCallee(calleeName),
|
|
123
|
+
defineCall: expression,
|
|
124
|
+
}));
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
if (ts.isVariableStatement(statement)) {
|
|
128
|
+
const isExported = (statement.modifiers ?? []).some((m) => m.kind === ts.SyntaxKind.ExportKeyword);
|
|
129
|
+
const declarationList = statement.declarationList;
|
|
130
|
+
const isConst = (declarationList.flags & ts.NodeFlags.Const) === ts.NodeFlags.Const;
|
|
131
|
+
for (const declaration of declarationList.declarations) {
|
|
132
|
+
/* v8 ignore next */
|
|
133
|
+
if (!ts.isIdentifier(declaration.name))
|
|
134
|
+
continue;
|
|
135
|
+
const initializer = declaration.initializer;
|
|
136
|
+
if (initializer === undefined || !ts.isCallExpression(initializer))
|
|
137
|
+
continue;
|
|
138
|
+
const calleeName = resolveCalleeName(initializer, checker);
|
|
139
|
+
if (calleeName === null || !DEFINE_CALLS.has(calleeName))
|
|
140
|
+
continue;
|
|
141
|
+
if (!isConst) {
|
|
142
|
+
diagnostics.push(createDiagnostic({
|
|
143
|
+
severity: "error",
|
|
144
|
+
code: "non-const-define-binding",
|
|
145
|
+
message: `\`${calleeName}(...)\` must be assigned to a \`const\` binding so the compiler can statically resolve it.`,
|
|
146
|
+
file: sourcePath,
|
|
147
|
+
node: declaration,
|
|
148
|
+
sourceFile,
|
|
149
|
+
}));
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
bindings.push(Object.freeze({
|
|
153
|
+
exportKind: isExported ? "named" : "private",
|
|
154
|
+
bindingName: declaration.name.text,
|
|
155
|
+
defineKind: defineKindFromCallee(calleeName),
|
|
156
|
+
defineCall: initializer,
|
|
157
|
+
}));
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
return Object.freeze({ bindings, defaultAssignments });
|
|
162
|
+
}
|
|
90
163
|
/**
|
|
91
164
|
* Walk the source file's top-level statements to verify:
|
|
92
165
|
*
|
|
93
|
-
* -
|
|
166
|
+
* - Exactly one default export exists and is `defineIndicator(...)`,
|
|
94
167
|
* `defineDrawing(...)`, `defineAlert(...)`, or
|
|
95
|
-
* `defineAlertCondition(...)` from
|
|
96
|
-
*
|
|
97
|
-
*
|
|
168
|
+
* `defineAlertCondition(...)` from `@invinite-org/chartlang-core`.
|
|
169
|
+
* - Every `define*(...)` call sits on a `const` binding (Phase 7
|
|
170
|
+
* composition pass requires static resolution).
|
|
171
|
+
* - The default export's first argument is an object literal carrying
|
|
172
|
+
* `apiVersion: 1`.
|
|
98
173
|
*
|
|
99
|
-
* On any violation, emits `missing-default-export
|
|
100
|
-
* `
|
|
101
|
-
* the
|
|
174
|
+
* On any violation, emits `missing-default-export`,
|
|
175
|
+
* `multiple-default-exports`, `non-const-define-binding`, or
|
|
176
|
+
* `api-version-mismatch`. Returns the discovered script name + kind
|
|
177
|
+
* for the manifest assembly step plus the classified `bindings` list
|
|
178
|
+
* the composition pass walks (Phase 7).
|
|
102
179
|
*
|
|
103
180
|
* @since 0.1
|
|
104
181
|
* @example
|
|
105
|
-
* // const { diagnostics, name, kind } = runStructuralChecks(
|
|
182
|
+
* // const { diagnostics, name, kind, bindings } = runStructuralChecks(
|
|
106
183
|
* // sourceFile, checker, "demo.chart.ts",
|
|
107
184
|
* // );
|
|
108
185
|
* const fn: typeof runStructuralChecks = runStructuralChecks;
|
|
@@ -112,7 +189,25 @@ export function runStructuralChecks(sourceFile, checker, sourcePath) {
|
|
|
112
189
|
const diagnostics = [];
|
|
113
190
|
let name = "";
|
|
114
191
|
let kind = "indicator";
|
|
115
|
-
const
|
|
192
|
+
const { bindings, defaultAssignments } = collectBindings(sourceFile, checker, sourcePath, diagnostics);
|
|
193
|
+
const frozenBindings = Object.freeze(bindings.slice());
|
|
194
|
+
if (defaultAssignments.length > 1) {
|
|
195
|
+
for (let i = 1; i < defaultAssignments.length; i += 1) {
|
|
196
|
+
const extra = defaultAssignments[i];
|
|
197
|
+
/* v8 ignore next */
|
|
198
|
+
if (extra === undefined)
|
|
199
|
+
continue;
|
|
200
|
+
diagnostics.push(createDiagnostic({
|
|
201
|
+
severity: "error",
|
|
202
|
+
code: "multiple-default-exports",
|
|
203
|
+
message: "A `.chart.ts` file may declare at most one `export default define*(...)`; remove the extra default export.",
|
|
204
|
+
file: sourcePath,
|
|
205
|
+
node: extra,
|
|
206
|
+
sourceFile,
|
|
207
|
+
}));
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
const exportAssignment = defaultAssignments[0];
|
|
116
211
|
if (!exportAssignment) {
|
|
117
212
|
diagnostics.push(createDiagnostic({
|
|
118
213
|
severity: "error",
|
|
@@ -127,6 +222,7 @@ export function runStructuralChecks(sourceFile, checker, sourcePath) {
|
|
|
127
222
|
name,
|
|
128
223
|
kind,
|
|
129
224
|
overrides: Object.freeze({}),
|
|
225
|
+
bindings: frozenBindings,
|
|
130
226
|
});
|
|
131
227
|
}
|
|
132
228
|
const expression = exportAssignment.expression;
|
|
@@ -144,6 +240,7 @@ export function runStructuralChecks(sourceFile, checker, sourcePath) {
|
|
|
144
240
|
name,
|
|
145
241
|
kind,
|
|
146
242
|
overrides: Object.freeze({}),
|
|
243
|
+
bindings: frozenBindings,
|
|
147
244
|
});
|
|
148
245
|
}
|
|
149
246
|
const calleeName = resolveCalleeName(expression, checker);
|
|
@@ -161,20 +258,10 @@ export function runStructuralChecks(sourceFile, checker, sourcePath) {
|
|
|
161
258
|
name,
|
|
162
259
|
kind,
|
|
163
260
|
overrides: Object.freeze({}),
|
|
261
|
+
bindings: frozenBindings,
|
|
164
262
|
});
|
|
165
263
|
}
|
|
166
|
-
|
|
167
|
-
kind = "alert";
|
|
168
|
-
}
|
|
169
|
-
else if (calleeName === "defineAlertCondition") {
|
|
170
|
-
kind = "alertCondition";
|
|
171
|
-
}
|
|
172
|
-
else if (calleeName === "defineDrawing") {
|
|
173
|
-
kind = "drawing";
|
|
174
|
-
}
|
|
175
|
-
else {
|
|
176
|
-
kind = "indicator";
|
|
177
|
-
}
|
|
264
|
+
kind = defineKindFromCallee(calleeName);
|
|
178
265
|
const argument = expression.arguments[0];
|
|
179
266
|
if (!argument || !ts.isObjectLiteralExpression(argument)) {
|
|
180
267
|
diagnostics.push(createDiagnostic({
|
|
@@ -190,6 +277,7 @@ export function runStructuralChecks(sourceFile, checker, sourcePath) {
|
|
|
190
277
|
name,
|
|
191
278
|
kind,
|
|
192
279
|
overrides: Object.freeze({}),
|
|
280
|
+
bindings: frozenBindings,
|
|
193
281
|
});
|
|
194
282
|
}
|
|
195
283
|
let apiVersionOk = false;
|
|
@@ -238,6 +326,7 @@ export function runStructuralChecks(sourceFile, checker, sourcePath) {
|
|
|
238
326
|
name,
|
|
239
327
|
kind,
|
|
240
328
|
overrides: extractOverrides(argument, kind),
|
|
329
|
+
bindings: frozenBindings,
|
|
241
330
|
});
|
|
242
331
|
}
|
|
243
332
|
//# sourceMappingURL=structuralChecks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structuralChecks.js","sourceRoot":"","sources":["../../src/analysis/structuralChecks.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAA0B,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IACzB,iBAAiB;IACjB,aAAa;IACb,eAAe;IACf,sBAAsB;CACzB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"structuralChecks.js","sourceRoot":"","sources":["../../src/analysis/structuralChecks.ts"],"names":[],"mappings":"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"}
|
package/dist/api.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { IntervalDescriptor, ScriptManifest } from "@invinite-org/chartlang-core";
|
|
2
2
|
import ts from "typescript";
|
|
3
|
+
import { type ResolveCrossFileProducer } from "./dependency/index.js";
|
|
3
4
|
import type { CompileDiagnostic } from "./diagnostics.js";
|
|
4
5
|
/**
|
|
5
6
|
* Options accepted by `transformAndAnalyse`. `sourcePath` is the
|
|
@@ -8,6 +9,12 @@ import type { CompileDiagnostic } from "./diagnostics.js";
|
|
|
8
9
|
* `Capabilities.intervals` set used by the `lower-tf-not-lower` validation —
|
|
9
10
|
* when omitted the lower-timeframe ordering check is skipped.
|
|
10
11
|
*
|
|
12
|
+
* `resolveProducer` is the sync §22.10 indicator-composition snapshot
|
|
13
|
+
* lookup; `compile` builds this from the pre-resolved cross-file
|
|
14
|
+
* `ProducerCompiled` snapshots before invoking the transform pass. When
|
|
15
|
+
* omitted (e.g. direct unit-test calls), cross-file dep edges resolve to
|
|
16
|
+
* `null` and the analysis pass treats them as unresolvable.
|
|
17
|
+
*
|
|
11
18
|
* @since 0.1
|
|
12
19
|
* @example
|
|
13
20
|
* const opts: TransformAndAnalyseOptions = { sourcePath: "demo.chart.ts" };
|
|
@@ -15,6 +22,14 @@ import type { CompileDiagnostic } from "./diagnostics.js";
|
|
|
15
22
|
export type TransformAndAnalyseOptions = Readonly<{
|
|
16
23
|
sourcePath: string;
|
|
17
24
|
declaredIntervals?: ReadonlyArray<IntervalDescriptor>;
|
|
25
|
+
resolveProducer?: (moduleSpecifier: string, exportName: string) => Readonly<{
|
|
26
|
+
readonly name: string;
|
|
27
|
+
readonly outputs: ReadonlyArray<{
|
|
28
|
+
readonly title: string;
|
|
29
|
+
readonly kind: string;
|
|
30
|
+
}>;
|
|
31
|
+
readonly inputs: Readonly<Record<string, unknown>>;
|
|
32
|
+
}> | null;
|
|
18
33
|
}>;
|
|
19
34
|
/**
|
|
20
35
|
* Result of `transformAndAnalyse`. `transformed` is the AST after callsite
|
|
@@ -22,6 +37,12 @@ export type TransformAndAnalyseOptions = Readonly<{
|
|
|
22
37
|
* `ScriptManifest`; `diagnostics` is the flat list of every diagnostic
|
|
23
38
|
* emitted by any pass (errors abort the rewrite, warnings flow through).
|
|
24
39
|
*
|
|
40
|
+
* `siblings` is populated only for §22.10 multi-export indicator-composition
|
|
41
|
+
* files (files with more than one drawn `defineIndicator(...)` binding) —
|
|
42
|
+
* it carries every named-export manifest in source order. Single-script
|
|
43
|
+
* files omit the field entirely so existing snapshot assertions stay
|
|
44
|
+
* byte-identical.
|
|
45
|
+
*
|
|
25
46
|
* @since 0.1
|
|
26
47
|
* @example
|
|
27
48
|
* // const { transformed, manifest, diagnostics } =
|
|
@@ -37,6 +58,7 @@ export type TransformAndAnalyseResult = Readonly<{
|
|
|
37
58
|
transformed: ts.SourceFile;
|
|
38
59
|
manifest: ScriptManifest;
|
|
39
60
|
diagnostics: ReadonlyArray<CompileDiagnostic>;
|
|
61
|
+
siblings?: ReadonlyArray<ScriptManifest>;
|
|
40
62
|
}>;
|
|
41
63
|
/**
|
|
42
64
|
* Run the Phase-1 compiler pipeline against an in-memory script source.
|
|
@@ -85,6 +107,24 @@ export type CompileOptions = Readonly<{
|
|
|
85
107
|
minify?: boolean;
|
|
86
108
|
target?: "es2022";
|
|
87
109
|
declaredIntervals?: ReadonlyArray<IntervalDescriptor>;
|
|
110
|
+
/**
|
|
111
|
+
* Cross-file `.chart.ts` resolver. When undefined, `compile` builds
|
|
112
|
+
* a default per-call resolver rooted at the file's directory.
|
|
113
|
+
* `compileProject` shares one resolver across every file so the
|
|
114
|
+
* inline-once invariant holds (a producer referenced by N consumers
|
|
115
|
+
* compiles exactly once per project compile).
|
|
116
|
+
*
|
|
117
|
+
* @since 0.7
|
|
118
|
+
*/
|
|
119
|
+
resolveProducer?: ResolveCrossFileProducer;
|
|
120
|
+
/**
|
|
121
|
+
* Absolute path the cross-file resolver should treat as the project
|
|
122
|
+
* root. Defaults to the directory of `sourcePath`'s absolute
|
|
123
|
+
* resolution. Imports resolving outside this tree return `null`.
|
|
124
|
+
*
|
|
125
|
+
* @since 0.7
|
|
126
|
+
*/
|
|
127
|
+
rootDir?: string;
|
|
88
128
|
}>;
|
|
89
129
|
/**
|
|
90
130
|
* Options accepted by `compileFile`. Extends `CompileOptions` with a `write`
|
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|