@invinite-org/chartlang-compiler 1.2.0 → 1.2.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/CHANGELOG.md +8 -0
- package/dist/analysis/extractAlertConditions.js.map +1 -1
- package/dist/analysis/extractCapabilities.js.map +1 -1
- package/dist/analysis/extractDependencyGraph.js.map +1 -1
- package/dist/analysis/extractInputs.js.map +1 -1
- package/dist/analysis/extractMaxLookback.js.map +1 -1
- package/dist/analysis/extractRequestedIntervals.js.map +1 -1
- package/dist/analysis/extractRequiresIntervals.js.map +1 -1
- package/dist/analysis/forbiddenConstructs.js.map +1 -1
- package/dist/analysis/index.js.map +1 -1
- package/dist/analysis/statefulCallInLoop.js.map +1 -1
- package/dist/analysis/structuralChecks.js.map +1 -1
- package/dist/analysis/validateLowerTfIntervals.js.map +1 -1
- package/dist/api.js.map +1 -1
- package/dist/bundle.js.map +1 -1
- package/dist/dependency/index.js.map +1 -1
- package/dist/dependency/resolveProducer.js.map +1 -1
- package/dist/diagnostics.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/manifest.js.map +1 -1
- package/dist/program.js.map +1 -1
- package/dist/transformers/callsiteIdInjection.js.map +1 -1
- package/dist/transformers/index.js.map +1 -1
- package/dist/transformers/plotKindFromCallsite.js.map +1 -1
- package/dist/transformers/resolveCallee.js.map +1 -1
- package/dist/transformers/rewriteDependencyAccessors.js.map +1 -1
- package/dist/typesEmit.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structuralChecks.js","sourceRoot":"","sources":["../../src/analysis/structuralChecks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"structuralChecks.js","sourceRoot":"","sources":["../../src/analysis/structuralChecks.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport ts from \"typescript\";\n\nimport { type CompileDiagnostic, createDiagnostic } from \"../diagnostics.js\";\nimport { resolveCalleeName } from \"../transformers/resolveCallee.js\";\n\nconst DEFINE_CALLS = new Set([\n \"defineIndicator\",\n \"defineAlert\",\n \"defineDrawing\",\n \"defineAlertCondition\",\n]);\n\ntype ValueFormat = \"price\" | \"volume\" | \"percent\" | \"compact\";\ntype ScaleAxis = \"price\" | \"left\" | \"right\" | \"new\";\n\n/**\n * Static script-author overrides extracted from the `define*` object\n * literal. Non-literal values are ignored here; later Phase 4 passes attach\n * dedicated diagnostics for stricter validation.\n *\n * @since 0.4\n * @example\n * const o: StructuralScriptOverrides = { shortName: \"EMA\", format: \"price\" };\n * void o;\n */\nexport type StructuralScriptOverrides = Readonly<{\n /**\n * `defineIndicator({ overlay })` literal-boolean extraction. Persisted\n * onto `ScriptManifest.overlay` so the runtime can derive each script's\n * default pane at mount. Only `true` / `false` literals are picked up;\n * any other initializer is silently ignored.\n *\n * @since 0.2\n */\n overlay?: boolean;\n maxBarsBack?: number;\n format?: ValueFormat;\n precision?: number;\n scale?: ScaleAxis;\n requiresIntervals?: ReadonlyArray<string>;\n shortName?: string;\n}>;\n\n/**\n * Classified `defineIndicator(...)` / `defineAlert(...)` /\n * `defineDrawing(...)` / `defineAlertCondition(...)` binding discovered\n * by `runStructuralChecks`. Phase 7's indicator-composition pass reads\n * this list to walk the file's full dependency graph.\n *\n * `exportKind: \"default\"` = the file's `export default define*(...)`\n * binding. There is always at most one in a valid file.\n * `exportKind: \"named\"` = `export const X = define*(...);` — a drawn\n * sibling that the host will mount alongside the default.\n * `exportKind: \"private\"` = `const X = define*(...);` (no `export`)\n * — a data-only dependency that only flows into other indicators.\n *\n * `bindingName` is the local identifier; for `default` bindings it is\n * always the synthetic string `\"default\"` so consumers can index by\n * binding-name uniformly.\n *\n * @since 0.7\n * @stable\n * @example\n * const info: StructuralBindingInfo = {\n * exportKind: \"default\",\n * bindingName: \"default\",\n * defineKind: \"indicator\",\n * defineCall: undefined as unknown as ts.CallExpression,\n * };\n * void info;\n */\nexport type StructuralBindingInfo = Readonly<{\n readonly exportKind: \"default\" | \"named\" | \"private\";\n readonly bindingName: string;\n readonly defineKind: \"indicator\" | \"drawing\" | \"alert\" | \"alertCondition\";\n readonly defineCall: ts.CallExpression;\n}>;\n\n/**\n * Result of `runStructuralChecks` — the discovered script `name` / `kind`\n * for the manifest, plus any structural diagnostics. `name` is `\"\"` when no\n * default export is present; `kind` defaults to `\"indicator\"` for the same\n * reason. The driver only consumes these fields when there are zero\n * error-severity diagnostics.\n *\n * The `\"drawing\"` kind (Phase 3 / `defineDrawing`) maps to\n * the same code path the other two kinds use — only the manifest's\n * discriminator differs so the editor can route the script to the\n * drawing-tool picker vs the indicator-picker UI.\n *\n * `bindings` (Phase 7) lists every top-level `defineIndicator(...)` /\n * `defineAlert(...)` / `defineDrawing(...)` / `defineAlertCondition(...)`\n * `const` binding the file declares — default + named + private. Empty\n * on files with no recognised default export.\n *\n * @since 0.1\n * @example\n * const r: StructuralCheckResult = {\n * diagnostics: [],\n * name: \"demo\",\n * kind: \"indicator\",\n * overrides: {},\n * bindings: [],\n * };\n * void r;\n */\nexport type StructuralCheckResult = Readonly<{\n diagnostics: ReadonlyArray<CompileDiagnostic>;\n name: string;\n kind: \"indicator\" | \"drawing\" | \"alert\" | \"alertCondition\";\n overrides: StructuralScriptOverrides;\n /** @since 0.7 */\n bindings: ReadonlyArray<StructuralBindingInfo>;\n}>;\n\nfunction readStringArray(node: ts.Expression): ReadonlyArray<string> | undefined {\n if (!ts.isArrayLiteralExpression(node)) return undefined;\n const values: string[] = [];\n for (const element of node.elements) {\n if (!ts.isStringLiteral(element)) return undefined;\n values.push(element.text);\n }\n return Object.freeze(values);\n}\n\nfunction readValueFormat(node: ts.Expression): ValueFormat | undefined {\n if (!ts.isStringLiteral(node)) return undefined;\n if (\n node.text === \"price\" ||\n node.text === \"volume\" ||\n node.text === \"percent\" ||\n node.text === \"compact\"\n ) {\n return node.text;\n }\n return undefined;\n}\n\nfunction readScaleAxis(node: ts.Expression): ScaleAxis | undefined {\n if (!ts.isStringLiteral(node)) return undefined;\n if (\n node.text === \"price\" ||\n node.text === \"left\" ||\n node.text === \"right\" ||\n node.text === \"new\"\n ) {\n return node.text;\n }\n return undefined;\n}\n\nfunction extractOverrides(\n argument: ts.ObjectLiteralExpression,\n kind: \"indicator\" | \"drawing\" | \"alert\" | \"alertCondition\",\n): StructuralScriptOverrides {\n let overlay: boolean | undefined;\n let maxBarsBack: number | undefined;\n let format: ValueFormat | undefined;\n let precision: number | undefined;\n let scale: ScaleAxis | undefined;\n let requiresIntervals: ReadonlyArray<string> | undefined;\n let shortName: string | undefined;\n\n for (const property of argument.properties) {\n if (!ts.isPropertyAssignment(property)) continue;\n const propertyName = property.name;\n if (!ts.isIdentifier(propertyName)) continue;\n const initializer = property.initializer;\n if (propertyName.text === \"overlay\" && kind === \"indicator\") {\n if (initializer.kind === ts.SyntaxKind.TrueKeyword) overlay = true;\n else if (initializer.kind === ts.SyntaxKind.FalseKeyword) overlay = false;\n } else if (propertyName.text === \"maxBarsBack\" && kind !== \"drawing\") {\n if (ts.isNumericLiteral(initializer)) maxBarsBack = Number(initializer.text);\n } else if (propertyName.text === \"format\" && kind !== \"alert\") {\n format = readValueFormat(initializer);\n } else if (propertyName.text === \"precision\" && kind !== \"alert\") {\n if (ts.isNumericLiteral(initializer)) precision = Number(initializer.text);\n } else if (propertyName.text === \"scale\" && kind === \"indicator\") {\n scale = readScaleAxis(initializer);\n } else if (propertyName.text === \"requiresIntervals\") {\n requiresIntervals = readStringArray(initializer);\n } else if (propertyName.text === \"shortName\") {\n if (ts.isStringLiteral(initializer)) shortName = initializer.text;\n }\n }\n\n return Object.freeze({\n ...(overlay === undefined ? {} : { overlay }),\n ...(maxBarsBack === undefined ? {} : { maxBarsBack }),\n ...(format === undefined ? {} : { format }),\n ...(precision === undefined ? {} : { precision }),\n ...(scale === undefined ? {} : { scale }),\n ...(requiresIntervals === undefined ? {} : { requiresIntervals }),\n ...(shortName === undefined ? {} : { shortName }),\n });\n}\n\nfunction defineKindFromCallee(\n calleeName: string,\n): \"indicator\" | \"drawing\" | \"alert\" | \"alertCondition\" {\n if (calleeName === \"defineAlert\") return \"alert\";\n if (calleeName === \"defineAlertCondition\") return \"alertCondition\";\n if (calleeName === \"defineDrawing\") return \"drawing\";\n return \"indicator\";\n}\n\ntype BindingCollector = Readonly<{\n readonly bindings: StructuralBindingInfo[];\n readonly defaultAssignments: ts.ExportAssignment[];\n}>;\n\nfunction collectBindings(\n sourceFile: ts.SourceFile,\n checker: ts.TypeChecker,\n sourcePath: string,\n diagnostics: CompileDiagnostic[],\n): BindingCollector {\n const bindings: StructuralBindingInfo[] = [];\n const defaultAssignments: ts.ExportAssignment[] = [];\n\n for (const statement of sourceFile.statements) {\n if (ts.isExportAssignment(statement) && !statement.isExportEquals) {\n defaultAssignments.push(statement);\n const expression = statement.expression;\n if (!ts.isCallExpression(expression)) continue;\n const calleeName = resolveCalleeName(expression, checker);\n if (calleeName === null || !DEFINE_CALLS.has(calleeName)) continue;\n bindings.push(\n Object.freeze({\n exportKind: \"default\",\n bindingName: \"default\",\n defineKind: defineKindFromCallee(calleeName),\n defineCall: expression,\n }),\n );\n continue;\n }\n if (ts.isVariableStatement(statement)) {\n const isExported = (statement.modifiers ?? []).some(\n (m) => m.kind === ts.SyntaxKind.ExportKeyword,\n );\n const declarationList = statement.declarationList;\n const isConst = (declarationList.flags & ts.NodeFlags.Const) === ts.NodeFlags.Const;\n for (const declaration of declarationList.declarations) {\n /* v8 ignore next */\n if (!ts.isIdentifier(declaration.name)) continue;\n const initializer = declaration.initializer;\n if (initializer === undefined || !ts.isCallExpression(initializer)) continue;\n const calleeName = resolveCalleeName(initializer, checker);\n if (calleeName === null || !DEFINE_CALLS.has(calleeName)) continue;\n if (!isConst) {\n diagnostics.push(\n createDiagnostic({\n severity: \"error\",\n code: \"non-const-define-binding\",\n message: `\\`${calleeName}(...)\\` must be assigned to a \\`const\\` binding so the compiler can statically resolve it.`,\n file: sourcePath,\n node: declaration,\n sourceFile,\n }),\n );\n continue;\n }\n bindings.push(\n Object.freeze({\n exportKind: isExported ? \"named\" : \"private\",\n bindingName: declaration.name.text,\n defineKind: defineKindFromCallee(calleeName),\n defineCall: initializer,\n }),\n );\n }\n }\n }\n\n return Object.freeze({ bindings, defaultAssignments });\n}\n\n/**\n * Walk the source file's top-level statements to verify:\n *\n * - Exactly one default export exists and is `defineIndicator(...)`,\n * `defineDrawing(...)`, `defineAlert(...)`, or\n * `defineAlertCondition(...)` from `@invinite-org/chartlang-core`.\n * - Every `define*(...)` call sits on a `const` binding (Phase 7\n * composition pass requires static resolution).\n * - The default export's first argument is an object literal carrying\n * `apiVersion: 1`.\n *\n * On any violation, emits `missing-default-export`,\n * `multiple-default-exports`, `non-const-define-binding`, or\n * `api-version-mismatch`. Returns the discovered script name + kind\n * for the manifest assembly step plus the classified `bindings` list\n * the composition pass walks (Phase 7).\n *\n * @since 0.1\n * @example\n * // const { diagnostics, name, kind, bindings } = runStructuralChecks(\n * // sourceFile, checker, \"demo.chart.ts\",\n * // );\n * const fn: typeof runStructuralChecks = runStructuralChecks;\n * void fn;\n */\nexport function runStructuralChecks(\n sourceFile: ts.SourceFile,\n checker: ts.TypeChecker,\n sourcePath: string,\n): StructuralCheckResult {\n const diagnostics: CompileDiagnostic[] = [];\n let name = \"\";\n let kind: \"indicator\" | \"drawing\" | \"alert\" | \"alertCondition\" = \"indicator\";\n\n const { bindings, defaultAssignments } = collectBindings(\n sourceFile,\n checker,\n sourcePath,\n diagnostics,\n );\n const frozenBindings = Object.freeze(bindings.slice());\n\n if (defaultAssignments.length > 1) {\n for (let i = 1; i < defaultAssignments.length; i += 1) {\n const extra = defaultAssignments[i];\n /* v8 ignore next */\n if (extra === undefined) continue;\n diagnostics.push(\n createDiagnostic({\n severity: \"error\",\n code: \"multiple-default-exports\",\n message:\n \"A `.chart.ts` file may declare at most one `export default define*(...)`; remove the extra default export.\",\n file: sourcePath,\n node: extra,\n sourceFile,\n }),\n );\n }\n }\n\n const exportAssignment = defaultAssignments[0];\n if (!exportAssignment) {\n diagnostics.push(\n createDiagnostic({\n severity: \"error\",\n code: \"missing-default-export\",\n message:\n \"Script must default-export a defineIndicator(...), defineDrawing(...), defineAlert(...), or defineAlertCondition(...) call.\",\n file: sourcePath,\n node: sourceFile,\n sourceFile,\n }),\n );\n return Object.freeze({\n diagnostics: Object.freeze(diagnostics),\n name,\n kind,\n overrides: Object.freeze({}),\n bindings: frozenBindings,\n });\n }\n\n const expression = exportAssignment.expression;\n if (!ts.isCallExpression(expression)) {\n diagnostics.push(\n createDiagnostic({\n severity: \"error\",\n code: \"missing-default-export\",\n message:\n \"Default export must be a defineIndicator/defineDrawing/defineAlert/defineAlertCondition call.\",\n file: sourcePath,\n node: expression,\n sourceFile,\n }),\n );\n return Object.freeze({\n diagnostics: Object.freeze(diagnostics),\n name,\n kind,\n overrides: Object.freeze({}),\n bindings: frozenBindings,\n });\n }\n\n const calleeName = resolveCalleeName(expression, checker);\n if (calleeName === null || !DEFINE_CALLS.has(calleeName)) {\n diagnostics.push(\n createDiagnostic({\n severity: \"error\",\n code: \"missing-default-export\",\n message:\n \"Default export must call defineIndicator, defineDrawing, defineAlert, or defineAlertCondition from core.\",\n file: sourcePath,\n node: expression,\n sourceFile,\n }),\n );\n return Object.freeze({\n diagnostics: Object.freeze(diagnostics),\n name,\n kind,\n overrides: Object.freeze({}),\n bindings: frozenBindings,\n });\n }\n kind = defineKindFromCallee(calleeName);\n\n const argument = expression.arguments[0];\n if (!argument || !ts.isObjectLiteralExpression(argument)) {\n diagnostics.push(\n createDiagnostic({\n severity: \"error\",\n code: \"api-version-mismatch\",\n message:\n \"defineIndicator/defineDrawing/defineAlert/defineAlertCondition requires an object-literal argument.\",\n file: sourcePath,\n node: expression,\n sourceFile,\n }),\n );\n return Object.freeze({\n diagnostics: Object.freeze(diagnostics),\n name,\n kind,\n overrides: Object.freeze({}),\n bindings: frozenBindings,\n });\n }\n\n let apiVersionOk = false;\n for (const property of argument.properties) {\n if (!ts.isPropertyAssignment(property)) continue;\n const propertyName = property.name;\n if (!ts.isIdentifier(propertyName)) continue;\n if (propertyName.text === \"apiVersion\") {\n const initializer = property.initializer;\n if (ts.isNumericLiteral(initializer) && Number(initializer.text) === 1) {\n apiVersionOk = true;\n } else {\n const found = initializer.getText(sourceFile);\n diagnostics.push(\n createDiagnostic({\n severity: \"error\",\n code: \"api-version-mismatch\",\n message: `\\`apiVersion: ${found}\\` is not supported — this compiler implements the frozen \\`apiVersion: 1\\` contract. Future language versions require a compiler that declares support for them.`,\n file: sourcePath,\n node: initializer,\n sourceFile,\n }),\n );\n }\n } else if (propertyName.text === \"name\") {\n const initializer = property.initializer;\n if (ts.isStringLiteral(initializer)) {\n name = initializer.text;\n }\n }\n }\n if (!apiVersionOk && diagnostics.length === 0) {\n diagnostics.push(\n createDiagnostic({\n severity: \"error\",\n code: \"api-version-mismatch\",\n message:\n \"defineIndicator/defineDrawing/defineAlert/defineAlertCondition requires `apiVersion: 1` — the frozen language version this compiler implements.\",\n file: sourcePath,\n node: argument,\n sourceFile,\n }),\n );\n }\n\n return Object.freeze({\n diagnostics: Object.freeze(diagnostics),\n name,\n kind,\n overrides: extractOverrides(argument, kind),\n bindings: frozenBindings,\n });\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateLowerTfIntervals.js","sourceRoot":"","sources":["../../src/analysis/validateLowerTfIntervals.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validateLowerTfIntervals.js","sourceRoot":"","sources":["../../src/analysis/validateLowerTfIntervals.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport { type IntervalDescriptor, intervalToSeconds } from \"@invinite-org/chartlang-core\";\nimport ts from \"typescript\";\n\nimport { type CompileDiagnostic, createDiagnostic } from \"../diagnostics.js\";\nimport { resolveCalleeName } from \"../transformers/resolveCallee.js\";\n\nfunction secondsOrNull(descriptor: IntervalDescriptor): number | null {\n try {\n return intervalToSeconds(descriptor);\n } catch {\n return null;\n }\n}\n\ntype SmallestMain = Readonly<{ descriptor: IntervalDescriptor; seconds: number }>;\n\nfunction smallestParseableMain(\n declaredIntervals: ReadonlyArray<IntervalDescriptor>,\n): SmallestMain | null {\n let smallest: SmallestMain | null = null;\n for (const descriptor of declaredIntervals) {\n const seconds = secondsOrNull(descriptor);\n if (seconds !== null && (smallest === null || seconds < smallest.seconds)) {\n smallest = { descriptor, seconds };\n }\n }\n return smallest;\n}\n\n/**\n * Validate static `request.lowerTf({ interval })` calls against declared main\n * intervals and emit `lower-tf-not-lower` when the requested interval is not\n * strictly lower than the smallest declared main interval. Non-literal and\n * unparseable interval values are skipped — the literal-check pass and the\n * runtime's `unsupported-interval` gate own those.\n *\n * Ordering uses {@link intervalToSeconds}, which treats `1M` as 30 days and\n * `1Y` as 365 days. Comparisons that hinge on calendar-exact durations (e.g.\n * `30D` vs `1M`) should provide `intervalSeconds` on the {@link IntervalDescriptor}\n * to override the approximation.\n *\n * @since 0.6\n * @stable\n * @example\n * // const diagnostics = validateLowerTfIntervals(\n * // sourceFile, checker, \"demo.chart.ts\", capabilities.intervals,\n * // );\n * const fn: typeof validateLowerTfIntervals = validateLowerTfIntervals;\n * void fn;\n */\nexport function validateLowerTfIntervals(\n sourceFile: ts.SourceFile,\n checker: ts.TypeChecker,\n filePath: string,\n declaredIntervals: ReadonlyArray<IntervalDescriptor>,\n): ReadonlyArray<CompileDiagnostic> {\n const main = smallestParseableMain(declaredIntervals);\n if (main === null) return [];\n\n const diagnostics: CompileDiagnostic[] = [];\n const checkCall = (call: ts.CallExpression): void => {\n const literal = readLiteralInterval(call);\n if (literal === null) return;\n const requestedSec = secondsOrNull({\n value: literal.text,\n label: literal.text,\n group: \"request\",\n });\n if (requestedSec === null || requestedSec < main.seconds) return;\n diagnostics.push(\n createDiagnostic({\n severity: \"error\",\n code: \"lower-tf-not-lower\",\n message: `request.lowerTf({ interval: \"${literal.text}\" }) must be strictly lower than the main interval \"${main.descriptor.value}\" (requested ${requestedSec}s >= main ${main.seconds}s)`,\n file: filePath,\n node: literal,\n sourceFile,\n }),\n );\n };\n\n const visit = (node: ts.Node): void => {\n if (ts.isCallExpression(node) && resolveCalleeName(node, checker) === \"request.lowerTf\") {\n checkCall(node);\n }\n ts.forEachChild(node, visit);\n };\n\n ts.forEachChild(sourceFile, visit);\n return Object.freeze(diagnostics.slice());\n}\n\nfunction readLiteralInterval(call: ts.CallExpression): ts.StringLiteral | null {\n const opts = call.arguments[0];\n if (opts === undefined || !ts.isObjectLiteralExpression(opts)) return null;\n const property = opts.properties\n .filter(ts.isPropertyAssignment)\n .find((p) => ts.isIdentifier(p.name) && p.name.text === \"interval\");\n if (property === undefined || !ts.isStringLiteral(property.initializer)) return null;\n return property.initializer;\n}\n"]}
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport { randomBytes } from \"node:crypto\";\nimport { readFile, readdir, rename, unlink, writeFile } from \"node:fs/promises\";\nimport { dirname, isAbsolute, join, relative, resolve as resolvePath } from \"node:path\";\nimport { STATEFUL_PRIMITIVES_BY_NAME } from \"@invinite-org/chartlang-core\";\nimport type {\n DependencyDeclaration,\n IntervalDescriptor,\n OutputDeclaration,\n PlotSlotDescriptor,\n ScriptManifest,\n} from \"@invinite-org/chartlang-core\";\nimport ts from \"typescript\";\n\nimport type { DepGraph, DrawnScript } from \"./analysis/extractDependencyGraph.js\";\nimport {\n extractAlertConditions,\n extractCapabilities,\n extractDependencyGraph,\n extractInputs,\n extractMaxLookback,\n extractRequestedIntervals,\n extractRequiresIntervals,\n runForbiddenConstructs,\n runStatefulCallInLoop,\n runStructuralChecks,\n validateLowerTfIntervals,\n} from \"./analysis/index.js\";\nimport { bundleModule, formatDependenciesAssignment, formatManifestAssignment } from \"./bundle.js\";\nimport {\n type CompiledProducerArtefacts,\n type ProducerCompiled,\n type ResolveCrossFileProducer,\n createProducerResolver,\n} from \"./dependency/index.js\";\nimport type { CompileDiagnostic } from \"./diagnostics.js\";\nimport { mapTsDiagnostic } from \"./diagnostics.js\";\nimport { buildManifest } from \"./manifest.js\";\nimport { createProgramForSource } from \"./program.js\";\nimport { injectCallsiteIds } from \"./transformers/callsiteIdInjection.js\";\nimport { rewriteDependencyAccessors } from \"./transformers/rewriteDependencyAccessors.js\";\nimport { emitTypes } from \"./typesEmit.js\";\n\n/**\n * Options accepted by `transformAndAnalyse`. `sourcePath` is the\n * package-relative POSIX path baked into every callsite id; the compiler\n * does not read any other file. `declaredIntervals` is the host-supplied\n * `Capabilities.intervals` set used by the `lower-tf-not-lower` validation —\n * when omitted the lower-timeframe ordering check is skipped.\n *\n * `resolveProducer` is the sync §22.10 indicator-composition snapshot\n * lookup; `compile` builds this from the pre-resolved cross-file\n * `ProducerCompiled` snapshots before invoking the transform pass. When\n * omitted (e.g. direct unit-test calls), cross-file dep edges resolve to\n * `null` and the analysis pass treats them as unresolvable.\n *\n * @since 0.1\n * @example\n * const opts: TransformAndAnalyseOptions = { sourcePath: \"demo.chart.ts\" };\n */\nexport type TransformAndAnalyseOptions = Readonly<{\n sourcePath: string;\n declaredIntervals?: ReadonlyArray<IntervalDescriptor>;\n resolveProducer?: (\n moduleSpecifier: string,\n exportName: string,\n ) => Readonly<{\n readonly name: string;\n readonly outputs: ReadonlyArray<{ readonly title: string; readonly kind: string }>;\n readonly inputs: Readonly<Record<string, unknown>>;\n }> | null;\n}>;\n\n/**\n * Result of `transformAndAnalyse`. `transformed` is the AST after callsite\n * ids have been injected; `manifest` is the recursively-frozen\n * `ScriptManifest`; `diagnostics` is the flat list of every diagnostic\n * emitted by any pass (errors abort the rewrite, warnings flow through).\n *\n * `siblings` is populated only for §22.10 multi-export indicator-composition\n * files (files with more than one drawn `defineIndicator(...)` binding) —\n * it carries every named-export manifest in source order. Single-script\n * files omit the field entirely so existing snapshot assertions stay\n * byte-identical.\n *\n * @since 0.1\n * @example\n * // const { transformed, manifest, diagnostics } =\n * // transformAndAnalyse(src, { sourcePath: \"demo.chart.ts\" });\n * const shape: { transformed: unknown; manifest: unknown; diagnostics: unknown } = {\n * transformed: null,\n * manifest: null,\n * diagnostics: [],\n * };\n * void shape;\n */\nexport type TransformAndAnalyseResult = Readonly<{\n transformed: ts.SourceFile;\n manifest: ScriptManifest;\n diagnostics: ReadonlyArray<CompileDiagnostic>;\n siblings?: ReadonlyArray<ScriptManifest>;\n}>;\n\n/**\n * Run the Phase-1 compiler pipeline against an in-memory script source.\n * Builds a TypeScript program, runs the structural / forbidden-construct /\n * stateful-call-in-loop checks, rewrites stateful calls with callsite ids,\n * and extracts the manifest's `capabilities` / `maxLookback` /\n * `seriesCapacities` / `inputs` fields.\n *\n * Error-severity diagnostics short-circuit the transform: the function\n * returns the original `sourceFile` and a placeholder manifest so callers\n * can still surface the errors uniformly. The public `compile` /\n * `compileFile` / `compileProject` wrappers above turn those error\n * diagnostics into a `CompileError` throw.\n *\n * @since 0.1\n * @example\n * // const result = transformAndAnalyse(\n * // 'export default defineIndicator({ name: \"x\", apiVersion: 1, compute: () => {} });',\n * // { sourcePath: \"demo.chart.ts\" },\n * // );\n * const fn: typeof transformAndAnalyse = transformAndAnalyse;\n * void fn;\n */\nexport function transformAndAnalyse(\n source: string,\n opts: TransformAndAnalyseOptions,\n): TransformAndAnalyseResult {\n const sourcePath = opts.sourcePath;\n const chartImports = preScanChartImports(source, sourcePath);\n const { program, sourceFile, checker } = createProgramForSource(source, {\n sourcePath,\n chartImports,\n });\n\n const structural = runStructuralChecks(sourceFile, checker, sourcePath);\n const forbidden = runForbiddenConstructs(sourceFile, sourcePath);\n const statefulInLoop = runStatefulCallInLoop(\n sourceFile,\n checker,\n sourcePath,\n STATEFUL_PRIMITIVES_BY_NAME,\n );\n // PLAN §5.2 step 1: the pipeline starts with tsc programmatic-API\n // typechecking against `@invinite-org/chartlang-core`'s ambient\n // declarations. Surface every semantic error coming from the\n // user's source file under the stable `type-error` code. Shim\n // diagnostics are dropped — they always come from the synthetic\n // core.d.ts and would only ever signal a chartlang-side bug.\n const semanticDiagnostics: CompileDiagnostic[] = program\n .getSemanticDiagnostics(sourceFile)\n .filter((d) => d.file?.fileName === sourceFile.fileName)\n .map((d) => mapTsDiagnostic(d, sourcePath));\n\n const depGraph: DepGraph = extractDependencyGraph(\n sourceFile,\n checker,\n sourcePath,\n structural.bindings,\n opts.resolveProducer === undefined\n ? () => null\n : (modSpec, expName) => {\n const snap = opts.resolveProducer?.(modSpec, expName);\n /* v8 ignore next */\n if (snap === undefined || snap === null) return null;\n return Object.freeze({\n name: snap.name,\n outputs: Object.freeze(\n snap.outputs.map((o) =>\n Object.freeze({\n title: o.title,\n kind: o.kind as \"series-number\",\n }),\n ),\n ),\n inputs: snap.inputs,\n });\n },\n );\n\n const earlyDiagnostics: CompileDiagnostic[] = [\n ...semanticDiagnostics,\n ...structural.diagnostics,\n ...forbidden,\n ...statefulInLoop,\n ...depGraph.diagnostics,\n ];\n const hasError = earlyDiagnostics.some((d) => d.severity === \"error\");\n if (hasError) {\n return Object.freeze({\n transformed: sourceFile,\n manifest: buildManifest({\n name: structural.name,\n kind: structural.kind,\n capabilities: [\"indicators\"],\n requestedIntervals: [],\n userPickableInterval: false,\n seriesCapacities: {},\n maxLookback: 0,\n inputs: {},\n ...structural.overrides,\n }),\n diagnostics: Object.freeze(earlyDiagnostics.slice()),\n });\n }\n\n const rewrite = rewriteDependencyAccessors(sourceFile, depGraph, sourcePath);\n const rewrittenSource = rewrite.transformed;\n const plotSlots: PlotSlotDescriptor[] = [];\n const injection = injectCallsiteIds(rewrittenSource, checker, {\n sourcePath,\n statefulByName: STATEFUL_PRIMITIVES_BY_NAME,\n plotSlots,\n });\n const alertConditions = extractAlertConditions(sourceFile, checker, sourcePath);\n const intervalDiagnostics: CompileDiagnostic[] = [];\n const lowerTfDiagnostics = validateLowerTfIntervals(\n sourceFile,\n checker,\n sourcePath,\n opts.declaredIntervals ?? [],\n );\n const { requiresIntervals: structuralRequiresIntervals, ...structuralOverrides } =\n structural.overrides;\n void structuralRequiresIntervals;\n\n // The structural pass guarantees a single default-export drawn\n // entry before we reach this code (errors short-circuit above);\n // we surface the default here for manifest assembly.\n const defaultDrawn = depGraph.drawn.find((d) => d.exportName === \"default\");\n /* v8 ignore start */\n if (defaultDrawn === undefined) {\n // The structural pass guarantees a default-export drawn entry\n // before we reach this code (errors short-circuit above).\n throw new Error(\"internal: depGraph.drawn missing default entry\");\n }\n /* v8 ignore stop */\n\n const isMultiExport = depGraph.drawn.length > 1;\n\n // File-level extractions (single-export back-compat path) — full source\n // walk so existing single-script manifests stay byte-identical.\n const fileCapabilities = extractCapabilities(sourceFile, checker, structural.kind);\n const fileLookback = extractMaxLookback(sourceFile, checker, sourcePath);\n const fileInputs = extractInputs(sourceFile, checker, sourcePath);\n const fileRequestedIntervalsFromCalls = extractRequestedIntervals(\n sourceFile,\n checker,\n fileInputs.inputs,\n intervalDiagnostics,\n sourcePath,\n );\n const fileRequiresIntervals = extractRequiresIntervals(\n sourceFile,\n checker,\n intervalDiagnostics,\n sourcePath,\n );\n const fileRequestedIntervals = Array.from(\n new Set([...fileRequestedIntervalsFromCalls, ...fileRequiresIntervals]),\n ).sort();\n\n const namedManifests: ScriptManifest[] = [];\n if (isMultiExport) {\n for (const drawn of depGraph.drawn) {\n if (drawn.exportName === \"default\") continue;\n namedManifests.push(\n buildDrawnManifest(\n drawn,\n depGraph,\n sourceFile,\n checker,\n sourcePath,\n structural.kind,\n structuralOverrides,\n alertConditions.alertConditions,\n ),\n );\n }\n }\n\n const defaultDependencies = buildDependencyDeclarations(defaultDrawn, depGraph, sourcePath);\n const defaultOutputs = defaultDrawn.outputs.length === 0 ? undefined : defaultDrawn.outputs;\n\n const manifest = isMultiExport\n ? buildDrawnManifest(\n defaultDrawn,\n depGraph,\n sourceFile,\n checker,\n sourcePath,\n structural.kind,\n structuralOverrides,\n alertConditions.alertConditions,\n namedManifests,\n plotSlots,\n )\n : buildManifest({\n name: structural.name,\n kind: structural.kind,\n capabilities: fileCapabilities,\n requestedIntervals: fileRequestedIntervals,\n userPickableInterval: fileInputs.userPickableInterval,\n seriesCapacities: fileLookback.seriesCapacities,\n maxLookback: fileLookback.maxLookback,\n inputs: fileInputs.inputs,\n ...structuralOverrides,\n ...(fileRequiresIntervals.length === 0\n ? {}\n : { requiresIntervals: fileRequiresIntervals }),\n ...(alertConditions.alertConditions.length === 0\n ? {}\n : { alertConditions: alertConditions.alertConditions }),\n ...(defaultDependencies === undefined || defaultDependencies.length === 0\n ? {}\n : { dependencies: defaultDependencies }),\n ...(defaultOutputs === undefined ? {} : { outputs: defaultOutputs }),\n ...(plotSlots.length === 0 ? {} : { plots: plotSlots }),\n });\n\n const allDiagnostics: CompileDiagnostic[] = [\n ...earlyDiagnostics,\n ...injection.diagnostics,\n ...rewrite.diagnostics,\n ...fileLookback.diagnostics,\n ...fileInputs.diagnostics,\n ...alertConditions.diagnostics,\n ...intervalDiagnostics,\n ...lowerTfDiagnostics,\n ];\n\n return Object.freeze({\n transformed: injection.transformed,\n manifest,\n diagnostics: Object.freeze(allDiagnostics.slice()),\n ...(isMultiExport ? { siblings: Object.freeze(namedManifests.slice()) } : {}),\n });\n}\n\nfunction buildDrawnManifest(\n drawn: DrawnScript,\n depGraph: DepGraph,\n sourceFile: ts.SourceFile,\n checker: ts.TypeChecker,\n sourcePath: string,\n kind: \"indicator\" | \"drawing\" | \"alert\" | \"alertCondition\",\n structuralOverrides: Omit<\n ReturnType<typeof runStructuralChecks>[\"overrides\"],\n \"requiresIntervals\"\n >,\n sharedAlertConditions: ReturnType<typeof extractAlertConditions>[\"alertConditions\"],\n siblings?: ReadonlyArray<ScriptManifest>,\n plotSlots?: ReadonlyArray<PlotSlotDescriptor>,\n): ScriptManifest {\n const intervalDiagnostics: CompileDiagnostic[] = [];\n const scope = drawn.defineCall;\n const capabilities = extractCapabilities(sourceFile, checker, kind, scope);\n const lookback = extractMaxLookback(sourceFile, checker, sourcePath, scope);\n const inputs = extractInputs(sourceFile, checker, sourcePath, scope);\n const requestedFromCalls = extractRequestedIntervals(\n sourceFile,\n checker,\n inputs.inputs,\n intervalDiagnostics,\n sourcePath,\n );\n const requiresIntervalsScoped = extractRequiresIntervals(\n sourceFile,\n checker,\n intervalDiagnostics,\n sourcePath,\n );\n const requestedIntervals = Array.from(\n new Set([...requestedFromCalls, ...requiresIntervalsScoped]),\n ).sort();\n const dependencies = buildDependencyDeclarations(drawn, depGraph, sourcePath);\n const outputs = drawn.outputs.length === 0 ? undefined : drawn.outputs;\n const isDefault = drawn.exportName === \"default\";\n const nameForManifest = isDefault ? readDefineCallName(drawn.defineCall) : drawn.bindingName;\n\n return buildManifest({\n name: nameForManifest,\n kind,\n capabilities,\n requestedIntervals,\n userPickableInterval: inputs.userPickableInterval,\n seriesCapacities: lookback.seriesCapacities,\n maxLookback: lookback.maxLookback,\n inputs: inputs.inputs,\n ...structuralOverrides,\n /* v8 ignore start */\n ...(requiresIntervalsScoped.length === 0\n ? {}\n : { requiresIntervals: requiresIntervalsScoped }),\n ...(sharedAlertConditions.length === 0 ? {} : { alertConditions: sharedAlertConditions }),\n /* v8 ignore stop */\n ...(dependencies === undefined || dependencies.length === 0 ? {} : { dependencies }),\n ...(outputs === undefined ? {} : { outputs }),\n ...(plotSlots === undefined || plotSlots.length === 0 ? {} : { plots: plotSlots }),\n exportName: drawn.exportName,\n isDrawn: true,\n ...(siblings !== undefined && siblings.length > 0 ? { siblings } : {}),\n });\n}\n\nfunction readDefineCallName(defineCall: ts.CallExpression): string {\n const arg = defineCall.arguments[0];\n /* v8 ignore next 3 */\n if (arg === undefined || !ts.isObjectLiteralExpression(arg)) {\n return \"\";\n }\n for (const property of arg.properties) {\n /* v8 ignore next */\n if (!ts.isPropertyAssignment(property)) continue;\n const name = property.name;\n /* v8 ignore next */\n if (!ts.isIdentifier(name) || name.text !== \"name\") continue;\n const initializer = property.initializer;\n if (ts.isStringLiteral(initializer)) return initializer.text;\n /* v8 ignore next */\n }\n /* v8 ignore next 2 */\n return \"\";\n}\n\n/**\n * Options accepted by `compile`. `apiVersion` is the frozen language\n * version this compiler implements. Passing `apiVersion: 1` is an explicit\n * acknowledgement of that contract; the type stays the literal `1` so a\n * future `apiVersion: 2` compiler is a type-level break. See\n * `docs/spec/versioning.md`. `sourcePath` overrides the file-system-derived\n * path used in callsite ids; `sourcemap`, `minify`, and `target` mirror the\n * bundler's flags. `declaredIntervals` is the adapter's\n * `Capabilities.intervals` set — when supplied, `request.lowerTf` literals\n * are validated against the smallest declared main interval\n * (`lower-tf-not-lower`).\n *\n * @since 0.1\n * @example\n * const opts: CompileOptions = { apiVersion: 1, sourcePath: \"demo.chart.ts\" };\n * void opts;\n */\nexport type CompileOptions = Readonly<{\n apiVersion: 1;\n sourcePath?: string;\n sourcemap?: boolean | \"inline\" | \"external\";\n minify?: boolean;\n target?: \"es2022\";\n declaredIntervals?: ReadonlyArray<IntervalDescriptor>;\n /**\n * Cross-file `.chart.ts` resolver. When undefined, `compile` builds\n * a default per-call resolver rooted at the file's directory.\n * `compileProject` shares one resolver across every file so the\n * inline-once invariant holds (a producer referenced by N consumers\n * compiles exactly once per project compile).\n *\n * @since 0.7\n */\n resolveProducer?: ResolveCrossFileProducer;\n /**\n * Absolute path the cross-file resolver should treat as the project\n * root. Defaults to the directory of `sourcePath`'s absolute\n * resolution. Imports resolving outside this tree return `null`.\n *\n * @since 0.7\n */\n rootDir?: string;\n /**\n * Bare specifier → self-contained ESM source map the bundler resolves\n * in-memory instead of from disk. Lets a host run `compile` where the\n * workspace `@invinite-org/chartlang-*` packages are not installed as\n * resolvable node_modules — e.g. a bundled serverless function, where\n * the packages were inlined into the host bundle rather than shipped\n * to the function filesystem. Each value must have no remaining bare\n * imports (pre-bundle the package before passing it).\n *\n * @since 1.1\n */\n inMemoryModules?: Readonly<Record<string, string>>;\n}>;\n\n/**\n * Options accepted by `compileFile`. Extends `CompileOptions` with a `write`\n * toggle that, when `false`, skips the sibling-file writes and returns the\n * triple in memory only.\n *\n * @since 0.1\n * @example\n * const opts: CompileFileOptions = { apiVersion: 1, write: false };\n * void opts;\n */\nexport type CompileFileOptions = CompileOptions &\n Readonly<{\n write?: boolean;\n }>;\n\n/**\n * Frozen result of a single script compilation. `moduleSource` is the bundled\n * ESM string (with the `export const __manifest = …;` tail appended);\n * `sourcemap` is present when the caller asked for an external map;\n * `manifest` is the recursively-frozen `ScriptManifest`; `types` is the\n * `.d.ts` sibling source.\n *\n * @since 0.1\n * @example\n * // const result: CompiledScript = await compile(src, { apiVersion: 1 });\n * const shape: CompiledScript = {} as CompiledScript;\n * void shape;\n */\nexport type CompiledScript = Readonly<{\n moduleSource: string;\n sourcemap?: string;\n manifest: ScriptManifest;\n types: string;\n}>;\n\n/**\n * Error thrown by `compile` / `compileFile` / `compileProject` when any\n * compilation produces an error-severity diagnostic. Carries the full\n * frozen diagnostic array on `err.diagnostics`; the message starts with the\n * first diagnostic's `code: message (file:line:column)` so console output\n * stays compact.\n *\n * @since 0.1\n * @example\n * // try { await compile(badSrc, { apiVersion: 1 }); }\n * // catch (err) { if (err instanceof CompileError) console.error(err.diagnostics); }\n * const E: typeof CompileError = CompileError;\n * void E;\n */\nexport class CompileError extends Error {\n readonly diagnostics: ReadonlyArray<CompileDiagnostic>;\n\n constructor(diagnostics: ReadonlyArray<CompileDiagnostic>) {\n const first = diagnostics[0];\n const message =\n first === undefined\n ? \"Compilation failed\"\n : `${first.code}: ${first.message} (${first.file}:${first.line}:${first.column})`;\n super(message);\n this.name = \"CompileError\";\n this.diagnostics = diagnostics;\n }\n}\n\nconst PRINTER = ts.createPrinter({\n removeComments: false,\n newLine: ts.NewLineKind.LineFeed,\n});\n\n/**\n * Compile a script source into a frozen `CompiledScript` triple. Runs\n * `transformAndAnalyse`, throws `CompileError` on any error diagnostic,\n * prints the transformed AST, drives esbuild to ESM, appends the\n * `__manifest` assignment, and emits the `.d.ts` sibling.\n *\n * @since 0.1\n * @example\n * // const result = await compile(emaCrossSource, {\n * // apiVersion: 1,\n * // sourcePath: \"ema-cross.chart.ts\",\n * // });\n * const fn: typeof compile = compile;\n * void fn;\n */\nexport async function compile(source: string, opts: CompileOptions): Promise<CompiledScript> {\n const sourcePath = opts.sourcePath ?? \"script.chart.ts\";\n const resolveProducer = opts.resolveProducer ?? createDefaultProducerResolver(sourcePath, opts);\n\n // Pre-scan the consumer's source for `import X from \"./Y.chart\"`\n // statements + resolve them in parallel. Each producer's resolved\n // snapshot feeds the sync lookup passed to `transformAndAnalyse`;\n // the same snapshots become the bundler's `inlinedProducers`.\n const preScan = preScanChartImports(source, sourcePath);\n const resolved = await Promise.all(\n preScan.map(async (specifier) => {\n const compiled = await resolveProducer(specifier, sourcePath);\n return { specifier, compiled };\n }),\n );\n const resolvedBySpecifier = new Map<string, ProducerCompiled | null>();\n for (const entry of resolved) {\n resolvedBySpecifier.set(entry.specifier, entry.compiled);\n }\n\n const transformOpts: TransformAndAnalyseOptions = {\n sourcePath,\n /* v8 ignore next 3 */\n ...(opts.declaredIntervals === undefined\n ? {}\n : { declaredIntervals: opts.declaredIntervals }),\n resolveProducer: (modSpec, expName) => {\n const compiled = resolvedBySpecifier.get(modSpec);\n /* v8 ignore next 3 */\n if (compiled === undefined || compiled === null) {\n return null;\n }\n const manifest = compiled.drawnByExportName.get(expName);\n /* v8 ignore next 3 */\n if (manifest === undefined) {\n return null;\n }\n /* v8 ignore next */\n const outputs = manifest.outputs ?? [];\n return Object.freeze({\n name: manifest.name,\n outputs: Object.freeze(\n outputs.map((o) => Object.freeze({ title: o.title, kind: o.kind })),\n ),\n inputs: Object.fromEntries(\n Object.entries(manifest.inputs).map(([key, descriptor]) => [\n key,\n descriptor as unknown,\n ]),\n ),\n });\n },\n };\n const result = transformAndAnalyse(source, transformOpts);\n\n const errors = result.diagnostics.filter((d) => d.severity === \"error\");\n if (errors.length > 0) {\n throw new CompileError(Object.freeze(errors.slice()));\n }\n\n const printedSource = PRINTER.printFile(result.transformed);\n const sourcemap = opts.sourcemap ?? false;\n // Walk every direct dep's transitive producer tree to build a\n // topologically-ordered list (leaves first). Dedup by hash so a\n // producer reached via two paths inlines exactly once.\n const orderedProducers: ProducerCompiled[] = [];\n const seenHashes = new Set<string>();\n const collectTransitive = (p: ProducerCompiled): void => {\n if (seenHashes.has(p.hash)) return;\n for (const nested of p.transitiveProducers) collectTransitive(nested);\n seenHashes.add(p.hash);\n orderedProducers.push(p);\n };\n for (const { compiled } of resolved) {\n /* v8 ignore next */\n if (compiled === null) continue;\n collectTransitive(compiled);\n }\n // Lower each cross-file `import <name> from \"./X.chart\"` line in\n // the consumer's source to `const <name> = __producer_<hash>__default;`\n // so the inlined producer's local binding feeds the rest of the\n // consumer's body. Imports of non-resolved producers stay as-is so\n // esbuild surfaces the unresolved-import error.\n const specifierToHash = new Map<string, string>();\n for (const entry of resolved) {\n /* v8 ignore next */\n if (entry.compiled === null) continue;\n specifierToHash.set(entry.specifier, entry.compiled.hash);\n }\n const consumerSourceWithRewrittenImports = rewriteConsumerChartImports(\n printedSource,\n specifierToHash,\n );\n // §22.10 indicator-composition: when the default manifest declares\n // private deps, append a hidden `export const __dependencies = [...]`\n // BEFORE handing the source to esbuild so the bundler sees every\n // alias binding referenced from the export graph. Pre-bundle inclusion\n // is load-bearing — appending after `bundleModule` would let esbuild's\n // tree-shaker drop aliases declared via `const trend = baseTrend;`\n // (cross-file aliases reduce to a bare reference after the §22.10\n // `withInputs` chain rewrite, which esbuild treats as side-effect-free\n // and DCE-eligible).\n const defaultDeps = result.manifest.dependencies ?? [];\n const depsAssignment = formatDependenciesAssignment(\n defaultDeps.map((d) => ({\n localId: d.localId,\n bindingExpression: d.localId,\n ...(Object.keys(d.effectiveInputs).length === 0\n ? {}\n : { effectiveInputs: d.effectiveInputs }),\n })),\n );\n const transformedSource = `${consumerSourceWithRewrittenImports}\\n${depsAssignment}`;\n const inlinedProducers = orderedProducers.map((p) => ({\n hash: p.hash,\n rewrittenSource: p.rewrittenSource,\n }));\n const bundle = await bundleModule({\n transformedSource,\n sourcePath,\n sourcemap,\n minify: opts.minify ?? false,\n ...(inlinedProducers.length === 0 ? {} : { inlinedProducers }),\n ...(opts.inMemoryModules === undefined ? {} : { inMemoryModules: opts.inMemoryModules }),\n });\n\n const sidecar: ScriptManifest | ReadonlyArray<ScriptManifest> =\n result.siblings === undefined\n ? result.manifest\n : Object.freeze([result.manifest, ...result.siblings]);\n const moduleSource = `${bundle.moduleSource}${formatManifestAssignment(sidecar)}`;\n const types = emitTypes({ manifest: sidecar, sourcePath });\n\n if (bundle.sourcemap !== undefined) {\n return Object.freeze({\n moduleSource,\n sourcemap: bundle.sourcemap,\n manifest: result.manifest,\n types,\n });\n }\n return Object.freeze({\n moduleSource,\n manifest: result.manifest,\n types,\n });\n}\n\n/**\n * Write a file atomically — render to a `<target>.tmp.<rand>` sibling first,\n * then `rename` into place. On any error during write or rename, the temp\n * file is unlinked so the caller never sees a half-written artefact.\n *\n * @since 0.1\n * @example\n * // await writeAtomic(\"/tmp/foo.txt\", \"hello\");\n * const fn: typeof writeAtomic = writeAtomic;\n * void fn;\n */\nexport async function writeAtomic(target: string, contents: string): Promise<void> {\n const suffix = randomBytes(8).toString(\"hex\");\n const tmp = `${target}.tmp.${suffix}`;\n try {\n await writeFile(tmp, contents, \"utf8\");\n await rename(tmp, target);\n } catch (err) {\n try {\n await unlink(tmp);\n } catch {\n // Best-effort cleanup; the rename failure is the real error.\n }\n throw err;\n }\n}\n\n/**\n * Read a `.chart.ts` file from disk, compile it, and (when `write !== false`)\n * emit the three sibling files atomically — `<base>.chart.js`,\n * `<base>.chart.manifest.json`, `<base>.chart.d.ts`, plus\n * `<base>.chart.js.map` when `sourcemap` is external.\n *\n * @since 0.1\n * @example\n * // const result = await compileFile(\"./demo.chart.ts\", { apiVersion: 1 });\n * const fn: typeof compileFile = compileFile;\n * void fn;\n */\nexport async function compileFile(path: string, opts: CompileFileOptions): Promise<CompiledScript> {\n const absolute = isAbsolute(path) ? path : resolvePath(process.cwd(), path);\n const source = await readFile(absolute, \"utf8\");\n const sourcePath = opts.sourcePath ?? toPosixRelative(process.cwd(), absolute);\n\n const compileOpts: CompileOptions = stripWriteFlag({ ...opts, sourcePath });\n const result = await compile(source, compileOpts);\n\n if (opts.write === false) {\n return result;\n }\n\n const base = absolute.replace(/\\.chart\\.ts$/, \"\");\n const jsPath = `${base}.chart.js`;\n const manifestPath = `${base}.chart.manifest.json`;\n const dtsPath = `${base}.chart.d.ts`;\n\n const sidecar: ScriptManifest | ReadonlyArray<ScriptManifest> =\n result.manifest.siblings === undefined\n ? result.manifest\n : Object.freeze([result.manifest, ...result.manifest.siblings]);\n\n await writeAtomic(jsPath, result.moduleSource);\n await writeAtomic(manifestPath, JSON.stringify(sidecar, null, 4));\n await writeAtomic(dtsPath, result.types);\n if (\n (opts.sourcemap === true || opts.sourcemap === \"external\") &&\n result.sourcemap !== undefined\n ) {\n await writeAtomic(`${jsPath}.map`, result.sourcemap);\n }\n\n return result;\n}\n\n/**\n * Walk `rootDir` recursively and return every `*.chart.ts` file's absolute\n * path. Skips `node_modules` and `dist` subtrees. The walker is iterative to\n * stay portable across Node 20.1 → 20.x.\n *\n * @since 0.1\n * @example\n * // const files = await walkChartFiles(\"./examples/scripts\");\n * const fn: typeof walkChartFiles = walkChartFiles;\n * void fn;\n */\nexport async function walkChartFiles(rootDir: string): Promise<string[]> {\n const absolute = isAbsolute(rootDir) ? rootDir : resolvePath(process.cwd(), rootDir);\n const out: string[] = [];\n const queue: string[] = [absolute];\n\n for (;;) {\n const current = queue.shift();\n if (current === undefined) break;\n\n let entries: Awaited<ReturnType<typeof readDirEntries>>;\n try {\n entries = await readDirEntries(current);\n } catch {\n continue;\n }\n\n for (const entry of entries) {\n if (entry.name === \"node_modules\" || entry.name === \"dist\") continue;\n const full = join(current, entry.name);\n if (entry.isDirectory) {\n queue.push(full);\n continue;\n }\n if (entry.isFile && full.endsWith(\".chart.ts\")) {\n out.push(full);\n }\n }\n }\n\n out.sort();\n return out;\n}\n\n/**\n * Discover every `*.chart.ts` under `rootDir` and compile each in parallel.\n * Results are returned in deterministic (path-sorted) order so callers can\n * snapshot the array safely. Compilation runs in memory only — the CLI\n * (Phase-1 Task 11) loops `compileFile` when it needs sibling files on disk.\n *\n * @since 0.1\n * @example\n * // const all = await compileProject(\"./examples/scripts\", { apiVersion: 1 });\n * const fn: typeof compileProject = compileProject;\n * void fn;\n */\nexport async function compileProject(\n rootDir: string,\n opts: CompileOptions,\n): Promise<ReadonlyArray<CompiledScript>> {\n const files = await walkChartFiles(rootDir);\n let absoluteRoot: string;\n if (isAbsolute(rootDir)) {\n absoluteRoot = rootDir;\n /* v8 ignore next 3 */\n } else {\n absoluteRoot = resolvePath(process.cwd(), rootDir);\n }\n const sharedResolver: ResolveCrossFileProducer =\n opts.resolveProducer ??\n createProducerResolver({ rootDir: absoluteRoot }, (source, producerSourcePath) =>\n compileProducerArtefacts(source, producerSourcePath, sharedResolver),\n );\n const compiled = await Promise.all(\n files.map((file) =>\n compileFile(file, {\n ...opts,\n write: false,\n sourcePath: toPosixRelative(process.cwd(), file),\n resolveProducer: sharedResolver,\n rootDir: absoluteRoot,\n }),\n ),\n );\n return Object.freeze(compiled);\n}\n\nfunction toPosixRelative(cwd: string, absolute: string): string {\n return relative(cwd, absolute).replace(/\\\\/g, \"/\");\n}\n\ntype DirEntry = Readonly<{ name: string; isDirectory: boolean; isFile: boolean }>;\n\nasync function readDirEntries(dir: string): Promise<DirEntry[]> {\n const raw = await readdir(dir, { withFileTypes: true });\n return raw.map((entry) =>\n Object.freeze({\n name: entry.name,\n isDirectory: entry.isDirectory(),\n isFile: entry.isFile(),\n }),\n );\n}\n\nfunction buildDependencyDeclarations(\n drawn: DrawnScript,\n depGraph: DepGraph,\n sourcePath: string,\n): ReadonlyArray<DependencyDeclaration> {\n if (drawn.consumes.length === 0) return Object.freeze([]);\n const declarations: DependencyDeclaration[] = [];\n for (const consume of drawn.consumes) {\n declarations.push(buildOneDependencyDeclaration(consume, depGraph, sourcePath));\n }\n return Object.freeze(declarations);\n}\n\nfunction buildOneDependencyDeclaration(\n consume: DrawnScript[\"consumes\"][number],\n depGraph: DepGraph,\n sourcePath: string,\n): DependencyDeclaration {\n const ref = consume.producerRef;\n const outputsCopy = consume.outputs.map(\n (o): OutputDeclaration => Object.freeze({ title: o.title, kind: o.kind }),\n );\n /* v8 ignore next */\n if (ref.kind !== \"same-file\") return buildCrossFileDeclaration(consume, ref, outputsCopy);\n const isDrawn = depGraph.drawn.some(\n (d) => d.bindingName === ref.bindingName && d.exportName !== \"default\",\n );\n const exportName =\n depGraph.drawn.find((d) => d.bindingName === ref.bindingName)?.exportName ??\n ref.bindingName;\n return Object.freeze({\n localId: consume.localId,\n producerName: ref.bindingName,\n producerSourcePath: sourcePath,\n producerExportName: exportName,\n effectiveInputs: Object.freeze({ ...consume.effectiveInputs }),\n outputs: Object.freeze(outputsCopy),\n isDrawn,\n });\n}\n\n/* v8 ignore start */\nfunction buildCrossFileDeclaration(\n consume: DrawnScript[\"consumes\"][number],\n ref: Extract<DrawnScript[\"consumes\"][number][\"producerRef\"], { kind: \"cross-file\" }>,\n outputsCopy: ReadonlyArray<OutputDeclaration>,\n): DependencyDeclaration {\n return Object.freeze({\n localId: consume.localId,\n producerName: ref.exportName,\n producerSourcePath: ref.sourcePath,\n producerExportName: ref.exportName,\n effectiveInputs: Object.freeze({ ...consume.effectiveInputs }),\n outputs: Object.freeze(outputsCopy),\n isDrawn: false,\n });\n}\n/* v8 ignore stop */\n\nfunction stripWriteFlag(opts: CompileFileOptions): CompileOptions {\n const {\n apiVersion,\n sourcePath,\n sourcemap,\n minify,\n target,\n declaredIntervals,\n resolveProducer,\n rootDir,\n } = opts;\n const out: { -readonly [K in keyof CompileOptions]: CompileOptions[K] } = { apiVersion };\n if (sourcePath !== undefined) out.sourcePath = sourcePath;\n if (sourcemap !== undefined) out.sourcemap = sourcemap;\n if (minify !== undefined) out.minify = minify;\n if (target !== undefined) out.target = target;\n if (declaredIntervals !== undefined) out.declaredIntervals = declaredIntervals;\n if (resolveProducer !== undefined) out.resolveProducer = resolveProducer;\n if (rootDir !== undefined) out.rootDir = rootDir;\n return out;\n}\n\n/**\n * Lower each cross-file `import <name> from \"./X.chart\"` line in the\n * consumer's printed TS source to `const <name> = __producer_<hash>__default;`\n * so the inlined producer's local binding wires into the consumer's body.\n * Imports of unresolved specifiers (no entry in `specifierToHash`) stay\n * as-is so esbuild surfaces the resolution failure.\n *\n * Phase 1 only supports the default-import form — named imports remain\n * untouched and will be addressed when same-file named-export composition\n * crosses file boundaries.\n *\n * @since 0.7\n */\nfunction rewriteConsumerChartImports(\n source: string,\n specifierToHash: ReadonlyMap<string, string>,\n): string {\n if (specifierToHash.size === 0) return source;\n return source.replace(\n /^\\s*import\\s+([A-Za-z_$][A-Za-z0-9_$]*)\\s+from\\s+(['\"])([^'\"]+)\\2;\\s*$/gm,\n (match, name: string, _quote: string, specifier: string) => {\n const hash = specifierToHash.get(specifier);\n /* v8 ignore next */\n if (hash === undefined) return match;\n return `const ${name} = __producer_${hash}__default;`;\n },\n );\n}\n\n/**\n * Pre-scan a `.chart.ts` source for `.chart.ts` / `.chart` import\n * specifiers using a one-pass AST walk. Returns a deduplicated array of\n * specifiers in source-declaration order. The list feeds `compile`'s\n * async resolver before `transformAndAnalyse` runs so the analysis pass\n * can resolve cross-file producer snapshots synchronously.\n *\n * @since 0.7\n */\nfunction preScanChartImports(source: string, sourcePath: string): ReadonlyArray<string> {\n const sourceFile = ts.createSourceFile(\n sourcePath,\n source,\n ts.ScriptTarget.ES2022,\n true,\n ts.ScriptKind.TS,\n );\n const specifiers: string[] = [];\n const seen = new Set<string>();\n for (const statement of sourceFile.statements) {\n if (!ts.isImportDeclaration(statement)) continue;\n const specifier = statement.moduleSpecifier;\n /* v8 ignore next 3 */\n if (!ts.isStringLiteral(specifier)) {\n continue;\n }\n const text = specifier.text;\n if (!text.endsWith(\".chart\") && !text.endsWith(\".chart.ts\")) continue;\n /* v8 ignore next 3 */\n if (seen.has(text)) {\n continue;\n }\n seen.add(text);\n specifiers.push(text);\n }\n return Object.freeze(specifiers);\n}\n\n/**\n * Build a per-`compile` cross-file resolver rooted at the consumer's\n * directory. `compileProject` overrides this by sharing a single\n * resolver across every file so the inline-once invariant holds.\n *\n * @since 0.7\n */\nfunction createDefaultProducerResolver(\n sourcePath: string,\n opts: CompileOptions,\n): ResolveCrossFileProducer {\n let absSourcePath: string;\n /* v8 ignore next 3 */\n if (isAbsolute(sourcePath)) {\n absSourcePath = sourcePath;\n } else {\n absSourcePath = resolvePath(process.cwd(), sourcePath);\n }\n const rootDir = opts.rootDir ?? dirname(absSourcePath);\n const resolver: ResolveCrossFileProducer = createProducerResolver(\n { rootDir },\n (source, producerSourcePath) =>\n compileProducerArtefacts(source, producerSourcePath, resolver),\n );\n return resolver;\n}\n\n/**\n * Compile one producer file for the resolver. Pre-scans its imports,\n * resolves them recursively (so transitive producers populate the\n * cache before we hand control back), runs the producer's own\n * `compile` + `transformAndAnalyse`, and returns the artefacts the\n * resolver wraps into a {@link ProducerCompiled} snapshot.\n *\n * @since 0.7\n */\nasync function compileProducerArtefacts(\n source: string,\n producerSourcePath: string,\n resolver: ResolveCrossFileProducer,\n): Promise<CompiledProducerArtefacts | null> {\n try {\n // Pre-resolve the producer's own cross-file deps so the\n // recursive `compile` can pull the matching snapshot from the\n // shared resolver's cache instead of compiling twice.\n const preScan = preScanChartImports(source, producerSourcePath);\n const nested = await Promise.all(\n preScan.map(async (specifier) => ({\n specifier,\n compiled: await resolver(specifier, producerSourcePath),\n })),\n );\n const result = await compile(source, {\n apiVersion: 1,\n sourcePath: producerSourcePath,\n resolveProducer: resolver,\n });\n const transformAndAnalyseResult = transformAndAnalyse(source, {\n sourcePath: producerSourcePath,\n resolveProducer: buildSyncSnapshotResolver(nested),\n });\n const transformedSource = PRINTER.printFile(transformAndAnalyseResult.transformed);\n const transitiveProducers: ProducerCompiled[] = [];\n const specifierToHash = new Map<string, string>();\n for (const { specifier, compiled } of nested) {\n /* v8 ignore next */\n if (compiled === null) continue;\n transitiveProducers.push(compiled);\n specifierToHash.set(specifier, compiled.hash);\n }\n let siblings: ReadonlyArray<ScriptManifest>;\n if (transformAndAnalyseResult.siblings === undefined) {\n siblings = Object.freeze([]);\n /* v8 ignore next 3 */\n } else {\n siblings = transformAndAnalyseResult.siblings;\n }\n return Object.freeze({\n moduleSource: result.moduleSource,\n transformedSource,\n manifest: result.manifest,\n siblings,\n transitiveProducers: Object.freeze(transitiveProducers),\n specifierToHash,\n });\n /* v8 ignore next 3 */\n } catch {\n return null;\n }\n}\n\n/**\n * Build a sync snapshot resolver from a pre-resolved list of cross-file\n * producers. Returns the producer manifest's `ProducerSnapshot` shape\n * `transformAndAnalyse` calls when walking consumer-side\n * `<binding>.output(\"title\")` references.\n */\nfunction buildSyncSnapshotResolver(\n nested: ReadonlyArray<{ specifier: string; compiled: ProducerCompiled | null }>,\n): NonNullable<TransformAndAnalyseOptions[\"resolveProducer\"]> {\n const bySpecifier = new Map<string, ProducerCompiled>();\n for (const entry of nested) {\n if (entry.compiled !== null) bySpecifier.set(entry.specifier, entry.compiled);\n }\n return (modSpec, expName) => {\n const compiled = bySpecifier.get(modSpec);\n /* v8 ignore next 3 */\n if (compiled === undefined) {\n return null;\n }\n const manifest = compiled.drawnByExportName.get(expName);\n /* v8 ignore next 3 */\n if (manifest === undefined) {\n return null;\n }\n /* v8 ignore next */\n const outputs = manifest.outputs ?? [];\n return Object.freeze({\n name: manifest.name,\n outputs: Object.freeze(\n outputs.map((o) => Object.freeze({ title: o.title, kind: o.kind })),\n ),\n inputs: Object.fromEntries(\n Object.entries(manifest.inputs).map(([key, descriptor]) => [\n key,\n descriptor as unknown,\n ]),\n ),\n });\n };\n}\n"]}
|
package/dist/bundle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport { fileURLToPath } from \"node:url\";\nimport { dirname } from \"node:path\";\nimport type { ScriptManifest } from \"@invinite-org/chartlang-core\";\nimport * as esbuild from \"esbuild\";\n\n/**\n * Options accepted by `bundleModule`. `transformedSource` is the printed text\n * of the callsite-id-injected `ts.SourceFile`; `sourcePath` becomes the\n * sourcemap `sourcefile` field; `sourcemap` mirrors the compile API contract;\n * `minify` toggles esbuild's minifier.\n *\n * `inlinedProducers` is the §22.10 indicator-composition extension — when\n * non-empty, the bundler synthesises the `__chartlang_depOutput` runtime\n * shim and concatenates each producer's pre-rewritten TS source ahead of\n * the consumer's. The producer source must already have its `export\n * default <expr>` / `export const <name>` lines rewritten to local\n * `const __producer_<hash>__default = …` / `const __producer_<hash>__<name>\n * = …` form and its top-level `import` lines stripped so the combined\n * source parses as one ESM module.\n *\n * @since 0.1\n * @example\n * const opts: BundleModuleOptions = {\n * transformedSource: \"export default {};\",\n * sourcePath: \"demo.chart.ts\",\n * sourcemap: false,\n * minify: false,\n * };\n */\nexport type BundleModuleOptions = Readonly<{\n transformedSource: string;\n sourcePath: string;\n sourcemap: boolean | \"inline\" | \"external\";\n minify: boolean;\n inlinedProducers?: ReadonlyArray<InlinedProducer>;\n inMemoryModules?: Readonly<Record<string, string>>;\n}>;\n\n/**\n * One pre-rewritten cross-file producer the bundler inlines ahead of the\n * consumer's source. `hash` is a stable identifier derived from the\n * producer's absolute path; `rewrittenSource` is the producer's printed\n * TS source with `export` statements lowered to local `const`s and\n * top-level `import`s stripped.\n *\n * @since 0.7\n * @stable\n * @example\n * const p: InlinedProducer = {\n * hash: \"a1b2c3\",\n * rewrittenSource: \"const __producer_a1b2c3__default = {};\",\n * };\n * void p;\n */\nexport type InlinedProducer = Readonly<{\n readonly hash: string;\n readonly rewrittenSource: string;\n}>;\n\n/**\n * Result of `bundleModule`. `moduleSource` is the ESM output; `sourcemap` is\n * the external map JSON when `sourcemap === true | \"external\"` and omitted\n * when `sourcemap === false | \"inline\"`. Inline sourcemaps land inside\n * `moduleSource` as a base64 `sourceMappingURL` comment.\n *\n * @since 0.1\n * @example\n * const result: BundleModuleResult = { moduleSource: \"export default {};\" };\n * void result;\n */\nexport type BundleModuleResult = Readonly<{\n moduleSource: string;\n sourcemap?: string;\n}>;\n\n// The compiler package directory — esbuild's `resolveDir` so the workspace\n// `@invinite-org/chartlang-core` bare specifier resolves through the compiler\n// package's own `node_modules/` symlink. Computed once at module load.\nconst COMPILER_PACKAGE_DIR = dirname(dirname(fileURLToPath(import.meta.url)));\n\n// `__chartlang_depOutput` is the runtime helper that lets inlined producers\n// read each other's titled outputs via `__chartlang_depOutput(slotId,\n// depLocalId, title)`. When `@invinite-org/chartlang-runtime` ≥ 0.7 mounts\n// the bundle, it sets `globalThis.__chartlang_depOutput` before evaluation;\n// otherwise the throwing fallback signals a runtime / compiler skew. The\n// shim keeps the §5.2 \"zero remaining `import` statements\" contract intact.\nconst DEP_OUTPUT_SHIM = `const __chartlang_depOutput = globalThis.__chartlang_depOutput ?? (() => { throw new Error(\"@invinite-org/chartlang-runtime >= 0.7 is required to evaluate this bundle\"); });`;\n\nconst IN_MEMORY_NAMESPACE = \"chartlang-in-memory\";\n\n/**\n * Build an esbuild plugin that resolves the bare specifiers in `modules`\n * to in-memory ESM contents instead of the filesystem. Used by hosts that\n * run the compiler where the workspace `@invinite-org/chartlang-*`\n * packages are not resolvable on disk (e.g. a bundled serverless function\n * where the packages were inlined into the host bundle, not installed as\n * node_modules). The contents must be self-contained ESM (no remaining\n * bare imports), since they are loaded in their own namespace.\n */\nfunction inMemoryModulesPlugin(modules: Readonly<Record<string, string>>): esbuild.Plugin {\n return {\n name: \"chartlang-in-memory-modules\",\n setup(build) {\n const filter = /.*/;\n build.onResolve({ filter }, (args) =>\n Object.hasOwn(modules, args.path)\n ? { path: args.path, namespace: IN_MEMORY_NAMESPACE }\n : null,\n );\n build.onLoad({ filter, namespace: IN_MEMORY_NAMESPACE }, (args) => ({\n contents: modules[args.path],\n loader: \"js\",\n resolveDir: COMPILER_PACKAGE_DIR,\n }));\n },\n };\n}\n\n/**\n * Drive esbuild's `build` API against an in-memory transformed TS source and\n * emit a self-contained ESM bundle. Pinned flags: `bundle: true`,\n * `loader: \"ts\"`, `format: \"esm\"`, `target: \"es2022\"`, `treeShaking: true`,\n * `platform: \"neutral\"`. Bare specifiers like\n * `@invinite-org/chartlang-core` resolve through the compiler package's own\n * `node_modules/` (i.e. `resolveDir` is fixed to the compiler package dir),\n * so the output has zero remaining `import` statements and can load from a\n * `data:` URL inside any host (worker / QuickJS / Node) without a module\n * resolver. Output is ~5–50 KB unminified per PLAN §5.2.\n *\n * @since 0.1\n * @example\n * // const { moduleSource } = await bundleModule({\n * // transformedSource: \"export default {};\",\n * // sourcePath: \"demo.chart.ts\",\n * // sourcemap: false,\n * // minify: false,\n * // });\n * const fn: typeof bundleModule = bundleModule;\n * void fn;\n */\nexport async function bundleModule(opts: BundleModuleOptions): Promise<BundleModuleResult> {\n const esbuildSourcemap: esbuild.BuildOptions[\"sourcemap\"] =\n opts.sourcemap === false ? false : opts.sourcemap === \"inline\" ? \"inline\" : \"external\";\n\n const wantsExternalMap = opts.sourcemap === true || opts.sourcemap === \"external\";\n const producers = opts.inlinedProducers ?? [];\n const combinedSource =\n producers.length === 0\n ? opts.transformedSource\n : `${DEP_OUTPUT_SHIM}\\n${producers.map((p) => p.rewrittenSource).join(\"\\n\")}\\n${opts.transformedSource}`;\n\n const inMemoryModules = opts.inMemoryModules ?? {};\n const hasInMemoryModules = Object.keys(inMemoryModules).length > 0;\n\n const buildOpts: esbuild.BuildOptions = {\n stdin: {\n contents: combinedSource,\n loader: \"ts\",\n sourcefile: opts.sourcePath,\n resolveDir: COMPILER_PACKAGE_DIR,\n },\n bundle: true,\n format: \"esm\",\n target: \"es2022\",\n platform: \"neutral\",\n sourcemap: esbuildSourcemap,\n sourcesContent: true,\n minify: opts.minify,\n treeShaking: true,\n write: false,\n ...(hasInMemoryModules ? { plugins: [inMemoryModulesPlugin(inMemoryModules)] } : {}),\n // `outfile` is required when `sourcemap: \"external\"`; the virtual path\n // never touches disk because `write: false`.\n ...(wantsExternalMap ? { outfile: `${opts.sourcePath}.js` } : {}),\n };\n\n const result = await esbuild.build(buildOpts);\n\n // `outputFiles` is only `undefined` when `write !== false`; we pin\n // `write: false` above so the runtime branch never fires. The defensive\n // throws keep the type narrow without bloating the coverage gate.\n const outputFiles = result.outputFiles ?? /* v8 ignore next */ [];\n const jsFile = outputFiles.find((f) => !f.path.endsWith(\".map\"));\n /* v8 ignore next 3 */\n if (jsFile === undefined) {\n throw new Error(\"esbuild produced no JS output file\");\n }\n\n if (wantsExternalMap) {\n const mapFile = outputFiles.find((f) => f.path.endsWith(\".map\"));\n /* v8 ignore next 3 */\n if (mapFile === undefined) {\n throw new Error(\"esbuild produced no sourcemap file\");\n }\n return Object.freeze({ moduleSource: jsFile.text, sourcemap: mapFile.text });\n }\n\n return Object.freeze({ moduleSource: jsFile.text });\n}\n\n/**\n * Synthesise the bottom-of-bundle `export const __manifest = …;` assignment.\n * The runtime reads this constant via dynamic `import(...)` to recover the\n * frozen `ScriptManifest` (or array of manifests, for multi-export files)\n * that travels alongside the compiled JS. Serialised via `JSON.stringify`\n * for determinism (insertion-order key emission).\n *\n * Single-object branch stays byte-identical to Phase 1 — no indent. The\n * array branch (one entry per drawn indicator in source order, default\n * first) is indented at 4 spaces for readability; runtimes branch on\n * `Array.isArray(__manifest)`.\n *\n * @since 0.1\n * @example\n * // const line = formatManifestAssignment(manifest);\n * // line === 'export const __manifest = {\"apiVersion\":1,…};\\n'\n * const fn: typeof formatManifestAssignment = formatManifestAssignment;\n * void fn;\n */\nexport function formatManifestAssignment(\n manifestOrArray: ScriptManifest | ReadonlyArray<ScriptManifest>,\n): string {\n const json = Array.isArray(manifestOrArray)\n ? JSON.stringify(manifestOrArray, null, 4)\n : JSON.stringify(manifestOrArray);\n return `export const __manifest = ${json};\\n`;\n}\n\n/**\n * One inlined private-dep entry for the bundler's `__dependencies`\n * export. `localId` matches the `DependencyDeclaration.localId` on the\n * consumer's manifest; `bindingExpression` is the JS expression the\n * runtime walks to reach the dep's compiled `{ manifest, compute }`\n * object. In Phase-7, `bindingExpression === localId` because the\n * compiler keys deps by their JS binding name and the bundler\n * preserves the top-level `const` declaration.\n *\n * `effectiveInputs` carries the merged `.withInputs({...})` overrides\n * the consumer applied to its alias binding. When present and\n * non-empty, the runtime feeds it into the `DepRunner` as the dep's\n * input overrides so the producer's `compute` reads the consumer-\n * supplied values instead of its own manifest defaults. Empty / absent\n * for direct `defineIndicator(...)` private deps.\n *\n * @since 0.7\n * @stable\n * @example\n * const entry: DependencyAssignmentEntry = {\n * localId: \"base\",\n * bindingExpression: \"base\",\n * };\n * void entry;\n */\nexport type DependencyAssignmentEntry = Readonly<{\n readonly localId: string;\n readonly bindingExpression: string;\n readonly effectiveInputs?: Readonly<Record<string, unknown>>;\n}>;\n\n/**\n * Synthesise the bottom-of-bundle `export const __dependencies = […];`\n * assignment that exposes private-dep `CompiledScriptObject` instances\n * to the host. Hosts mount each entry as a `DepRunner` (Task 4); the\n * binding reference keeps esbuild's tree-shaker from dropping the\n * compiled module-local `const` that produced it.\n *\n * Returns the empty string when `deps` is empty so single-script\n * bundles stay byte-identical to the Phase 1/2/3 baseline.\n *\n * @since 0.7\n * @stable\n * @example\n * // const line = formatDependenciesAssignment([\n * // { localId: \"base\", bindingExpression: \"base\" },\n * // ]);\n * // line === 'export const __dependencies = [\\n { localId: \"base\", compiled: base },\\n];\\n'\n * const fn: typeof formatDependenciesAssignment = formatDependenciesAssignment;\n * void fn;\n */\nexport function formatDependenciesAssignment(\n deps: ReadonlyArray<DependencyAssignmentEntry>,\n): string {\n if (deps.length === 0) return \"\";\n const entries = deps\n .map((d) => {\n const overrides =\n d.effectiveInputs !== undefined && Object.keys(d.effectiveInputs).length > 0\n ? `, inputOverrides: ${JSON.stringify(d.effectiveInputs)}`\n : \"\";\n return ` { localId: ${JSON.stringify(d.localId)}, compiled: ${d.bindingExpression}${overrides} },`;\n })\n .join(\"\\n\");\n return `export const __dependencies = [\\n${entries}\\n];\\n`;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dependency/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,OAAO,EACH,sBAAsB,EACtB,cAAc,EACd,qBAAqB,GACxB,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dependency/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,OAAO,EACH,sBAAsB,EACtB,cAAc,EACd,qBAAqB,GACxB,MAAM,sBAAsB,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nexport {\n createProducerResolver,\n hashSourcePath,\n rewriteProducerSource,\n} from \"./resolveProducer.js\";\nexport type {\n CompiledProducerArtefacts,\n CompileProducerCallback,\n CreateProducerResolverOptions,\n ProducerCompiled,\n ResolveCrossFileProducer,\n} from \"./resolveProducer.js\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveProducer.js","sourceRoot":"","sources":["../../src/dependency/resolveProducer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resolveProducer.js","sourceRoot":"","sources":["../../src/dependency/resolveProducer.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AAElF,OAAO,EAAE,MAAM,YAAY,CAAC;AAmI5B,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,sBAAsB,CAClC,IAAmC,EACnC,eAAwC;IAExC,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;QACzC,CAAC,CAAC,IAAI,CAAC,OAAO;QACd,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,IAAI,GAAG,EAA4C,CAAC;IAClE,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,oEAAoE;IACpE,oEAAoE;IACpE,oEAAoE;IACpE,qEAAqE;IACrE,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAA+B,CAAC;IAElE,SAAS,wBAAwB,CAC7B,UAAkB,EAClB,cAAsB;QAEtB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;QAC7E,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEpD,6DAA6D;QAC7D,0DAA0D;QAC1D,gDAAgD;QAChD,MAAM,YAAY,GAAG,UAAU,CAAC,cAAc,CAAC;YAC3C,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,WAAW,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,YAAY,KAAK,QAAQ,CAAC,EAAE,CAAC;YACpF,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QAExC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAS,SAAS,IAAI,EAAE,CAAC,CAAC;QACvD,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAChC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAEhD,MAAM,OAAO,GAAG,CAAC,KAAK,IAAsC,EAAE;YAC1D,IAAI,CAAC;gBACD,IAAI,MAAc,CAAC;gBACnB,IAAI,CAAC;oBACD,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAC9C,CAAC;gBAAC,MAAM,CAAC;oBACL,OAAO,IAAI,CAAC;gBAChB,CAAC;gBACD,qDAAqD;gBACrD,oDAAoD;gBACpD,uDAAuD;gBACvD,oDAAoD;gBACpD,uDAAuD;gBACvD,4CAA4C;gBAC5C,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAC1D,IAAI,SAAS,KAAK,IAAI;oBAAE,OAAO,IAAI,CAAC;gBACpC,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;gBACtC,MAAM,eAAe,GAAG,qBAAqB,CACzC,SAAS,CAAC,iBAAiB,EAC3B,IAAI,EACJ,SAAS,CAAC,eAAe,IAAI,IAAI,GAAG,EAAE,CACzC,CAAC;gBACF,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAA0B,CAAC;gBAC5D,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACrD,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;oBACvC,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;wBACnC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;oBACvD,CAAC;gBACL,CAAC;gBACD,OAAO,MAAM,CAAC,MAAM,CAAC;oBACjB,UAAU,EAAE,QAAQ;oBACpB,QAAQ,EAAE,SAAS,CAAC,QAAQ;oBAC5B,iBAAiB;oBACjB,YAAY,EAAE,SAAS,CAAC,YAAY;oBACpC,eAAe;oBACf,IAAI;oBACJ,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAC9B,CAAC,SAAS,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAChD;iBACJ,CAAC,CAAC;YACP,CAAC;oBAAS,CAAC;gBACP,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACxC,CAAC;QACL,CAAC,CAAC,EAAE,CAAC;QAEL,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7B,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,cAAc,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC;YACtC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC9C,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,OAAO,wBAAwB,CAAC;AACpC,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,cAAc,CAAC,YAAoB;IAC/C,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACpD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,qBAAqB,CACjC,MAAc,EACd,IAAY,EACZ,kBAA+C,IAAI,GAAG,EAAE;IAExD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CAClC,aAAa,EACb,MAAM,EACN,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,EAAE,CACnB,CAAC;IACF,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC;QAC7B,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ;KACnC,CAAC,CAAC;IAEH,qEAAqE;IACrE,qEAAqE;IACrE,oEAAoE;IACpE,gEAAgE;IAChE,sEAAsE;IACtE,mEAAmE;IACnE,kEAAkE;IAClE,mEAAmE;IACnE,+DAA+D;IAC/D,oEAAoE;IACpE,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,WAAW,GAAkB,IAAI,CAAC;IACtC,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;IACjC,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;QAC5C,IAAI,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,SAAS,CAAC,eAAe,CAAC;YAC5C,oBAAoB;YACpB,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC;gBAAE,SAAS;YAC7C,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;YAC5B,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC;gBACtC,MAAM,WAAW,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC;gBACvC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;oBAC5B,SAAS,CAAC,IAAI,CAAC,SAAS,WAAW,iBAAiB,UAAU,YAAY,CAAC,CAAC;gBAChF,CAAC;gBACD,SAAS;YACb,CAAC;YACD,gEAAgE;YAChE,8DAA8D;YAC9D,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACxF,SAAS;QACb,CAAC;QACD,IAAI,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC;YAAE,SAAS;QAChD,IAAI,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,WAAW,GAAG,OAAO,CAAC,SAAS,CAC3B,EAAE,CAAC,QAAQ,CAAC,UAAU,EACtB,SAAS,CAAC,UAAU,EACpB,UAAU,CACb,CAAC;YACF,SAAS;QACb,CAAC;QACD,IAAI,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,EAAE,IAAI,CACxC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,aAAa,CACpD,CAAC;YACF,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACtB,SAAS,CAAC,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC/E,SAAS;YACb,CAAC;QACL,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,UAAU,GAAG,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,UAAU,WAAW,GAAG,CAAC;IACzF,MAAM,IAAI,GAAG,oBAAoB,IAAI,yBAAyB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,UAAU,SAAS,CAAC;IAC3G,OAAO,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;AACxF,CAAC;AAED,SAAS,wBAAwB,CAC7B,SAA+B,EAC/B,IAAY,EACZ,UAAyB,EACzB,OAAmB;IAEnB,MAAM,YAAY,GAAG,SAAS,CAAC,eAAe,CAAC,YAAY;SACtD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACV,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,WAAW,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QACpF,OAAO,oBAAoB,IAAI,KAAK,QAAQ,CAAC,IAAI,MAAM,QAAQ,GAAG,CAAC;IACvE,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACrD,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,iBAAiB,CACtB,UAAkB,EAClB,cAAsB,EACtB,YAAoB;IAEpB,IAAI,UAAkB,CAAC;IACvB,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,UAAU,GAAG,UAAU,CAAC;IAC5B,CAAC;SAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,UAAU,GAAG,GAAG,UAAU,KAAK,CAAC;IACpC,CAAC;SAAM,CAAC;QACJ,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,8DAA8D;IAC9D,iEAAiE;IACjE,kEAAkE;IAClE,0BAA0B;IAC1B,MAAM,YAAY,GAAG,UAAU,CAAC,cAAc,CAAC;QAC3C,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACxF,MAAM,GAAG,GAAG,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC7C,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACzD,OAAO,QAAQ,CAAC;AACpB,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport { createHash } from \"node:crypto\";\nimport { readFile } from \"node:fs/promises\";\nimport { dirname, isAbsolute, relative, resolve as resolvePath } from \"node:path\";\nimport type { ScriptManifest } from \"@invinite-org/chartlang-core\";\nimport ts from \"typescript\";\n\n/**\n * Producer compiled snapshot returned by {@link ResolveCrossFileProducer}.\n * Carries the producer's manifest, every drawn export's manifest indexed\n * by `exportName`, and the producer's `rewrittenSource` — TS source with\n * top-level `import` statements stripped and every `export default <X>`\n * or `export const <name> = <X>` lowered to `const __producer_<hash>__<…> = <X>`.\n * The consumer's bundler concatenates `rewrittenSource` ahead of the\n * consumer's own transformed source so esbuild can tree-shake the\n * combined module.\n *\n * @since 0.7\n * @stable\n * @example\n * const c: ProducerCompiled = {\n * sourcePath: \"base.chart.ts\",\n * manifest: {} as ScriptManifest,\n * drawnByExportName: new Map(),\n * moduleSource: \"\",\n * rewrittenSource: \"\",\n * hash: \"\",\n * };\n * void c;\n */\nexport type ProducerCompiled = Readonly<{\n readonly sourcePath: string;\n readonly manifest: ScriptManifest;\n readonly drawnByExportName: ReadonlyMap<string, ScriptManifest>;\n readonly moduleSource: string;\n readonly rewrittenSource: string;\n readonly hash: string;\n /**\n * Transitive producers this producer itself imports — keyed by hash\n * so the top-level consumer can dedup the inline-once invariant\n * across the whole project's diamond shape.\n *\n * @since 0.7\n */\n readonly transitiveProducers: ReadonlyArray<ProducerCompiled>;\n}>;\n\n/**\n * Resolve a cross-file producer reference (`import X from \"./Y.chart\"`)\n * to its compiled snapshot. Returns `null` when the path is not a\n * `.chart.ts` file, escapes the resolver's `rootDir`, can't be read,\n * forms a cycle, or fails to compile.\n *\n * @since 0.7\n * @stable\n * @example\n * const r: ResolveCrossFileProducer = async () => null;\n * void r;\n */\nexport type ResolveCrossFileProducer = (\n importPath: string,\n fromSourcePath: string,\n) => Promise<ProducerCompiled | null>;\n\n/**\n * Options accepted by {@link createProducerResolver}. `rootDir` is the\n * absolute base directory that constrains every cross-file walk —\n * imports resolving outside this tree return `null`.\n *\n * @since 0.7\n * @stable\n * @example\n * const opts: CreateProducerResolverOptions = { rootDir: \"/repo\" };\n * void opts;\n */\nexport type CreateProducerResolverOptions = Readonly<{\n readonly rootDir: string;\n}>;\n\n/**\n * Compile callback the resolver delegates the actual producer compilation\n * to. Keeps the resolver decoupled from `compile`'s import graph so the\n * resolver module can be unit-tested in isolation.\n *\n * @since 0.7\n * @stable\n * @example\n * const c: CompileProducerCallback = async () => null;\n * void c;\n */\nexport type CompileProducerCallback = (\n source: string,\n sourcePath: string,\n) => Promise<CompiledProducerArtefacts | null>;\n\n/**\n * Artefacts the {@link CompileProducerCallback} hands back for a single\n * producer file. Mirrors the public `CompileResult` shape but drops\n * sourcemaps and types (the resolver only needs the JS + manifests).\n *\n * @since 0.7\n * @stable\n * @example\n * const a: CompiledProducerArtefacts = {\n * moduleSource: \"\",\n * transformedSource: \"\",\n * manifest: {} as ScriptManifest,\n * siblings: [],\n * };\n * void a;\n */\nexport type CompiledProducerArtefacts = Readonly<{\n readonly moduleSource: string;\n readonly transformedSource: string;\n readonly manifest: ScriptManifest;\n readonly siblings: ReadonlyArray<ScriptManifest>;\n /**\n * Transitive producers this producer pulled in via its own\n * `import X from \"./Y.chart\"` lines. Each entry is the\n * `ProducerCompiled` snapshot the resolver previously returned.\n *\n * @since 0.7\n */\n readonly transitiveProducers?: ReadonlyArray<ProducerCompiled>;\n /**\n * Mapping from the producer's own `.chart` import specifiers to\n * the resolved producer's hash. Used by the resolver to rewrite\n * cross-file imports inside the producer's IIFE so transitive deps\n * are read from the consumer's namespace instead of left as bare\n * `import` lines.\n *\n * @since 0.7\n */\n readonly specifierToHash?: ReadonlyMap<string, string>;\n}>;\n\nconst LRU_LIMIT = 256;\n\n/**\n * Build a Promise-cached, cycle-safe cross-file `.chart.ts` resolver. Each\n * unique absolute path is compiled at most once per resolver instance.\n * Cycles (`A` imports `B` imports `A`) surface as `null` so the calling\n * compile pass can raise `dep-cycle` at the consumer's call site.\n *\n * The resolver delegates the actual compile to a caller-supplied\n * {@link CompileProducerCallback} so this module stays free of the\n * compile pipeline's import graph — testable in isolation.\n *\n * @since 0.7\n * @stable\n * @example\n * // const resolve = createProducerResolver({ rootDir: cwd }, compileFn);\n * // const producer = await resolve(\"./base.chart\", \"consumer.chart.ts\");\n * const fn: typeof createProducerResolver = createProducerResolver;\n * void fn;\n */\nexport function createProducerResolver(\n opts: CreateProducerResolverOptions,\n compileProducer: CompileProducerCallback,\n): ResolveCrossFileProducer {\n const rootAbsolute = isAbsolute(opts.rootDir)\n ? opts.rootDir\n : resolvePath(process.cwd(), opts.rootDir);\n const cache = new Map<string, Promise<ProducerCompiled | null>>();\n const insertionOrder: string[] = [];\n // Track per-resolve-chain ancestry. Each compileProducer for file X\n // adds X to its descendants' chains via a per-promise registry so a\n // genuine cycle (X → Y → X) is detected without false-positiving on\n // concurrent sibling compiles (X → Y and X → Z, sharing producer Y).\n const ancestryByAbsolute = new Map<string, ReadonlySet<string>>();\n\n function resolveCrossFileProducer(\n importPath: string,\n fromSourcePath: string,\n ): Promise<ProducerCompiled | null> {\n const absolute = resolveImportPath(importPath, fromSourcePath, rootAbsolute);\n if (absolute === null) return Promise.resolve(null);\n\n // Cycle: the file we'd compile is already an ancestor of the\n // file currently driving the resolve. Returns null so the\n // caller surfaces `dep-cycle` at the call site.\n const fromAbsolute = isAbsolute(fromSourcePath)\n ? fromSourcePath\n : resolvePath(rootAbsolute, fromSourcePath);\n const ancestors = ancestryByAbsolute.get(fromAbsolute);\n if (ancestors !== undefined && (ancestors.has(absolute) || fromAbsolute === absolute)) {\n return Promise.resolve(null);\n }\n\n const cached = cache.get(absolute);\n if (cached !== undefined) return cached;\n\n const childAncestry = new Set<string>(ancestors ?? []);\n childAncestry.add(fromAbsolute);\n ancestryByAbsolute.set(absolute, childAncestry);\n\n const pending = (async (): Promise<ProducerCompiled | null> => {\n try {\n let source: string;\n try {\n source = await readFile(absolute, \"utf8\");\n } catch {\n return null;\n }\n // Hand the absolute path to `compileProducer` so the\n // recursive `compile` invocation can resolve nested\n // cross-file imports from the producer's real location\n // without going through the (process-cwd-dependent)\n // posix-relative form. The compiler's callsite-id slot\n // ids still derive from this path verbatim.\n const artefacts = await compileProducer(source, absolute);\n if (artefacts === null) return null;\n const hash = hashSourcePath(absolute);\n const rewrittenSource = rewriteProducerSource(\n artefacts.transformedSource,\n hash,\n artefacts.specifierToHash ?? new Map(),\n );\n const drawnByExportName = new Map<string, ScriptManifest>();\n drawnByExportName.set(\"default\", artefacts.manifest);\n for (const sibling of artefacts.siblings) {\n if (sibling.exportName !== undefined) {\n drawnByExportName.set(sibling.exportName, sibling);\n }\n }\n return Object.freeze({\n sourcePath: absolute,\n manifest: artefacts.manifest,\n drawnByExportName,\n moduleSource: artefacts.moduleSource,\n rewrittenSource,\n hash,\n transitiveProducers: Object.freeze(\n (artefacts.transitiveProducers ?? []).slice(),\n ),\n });\n } finally {\n ancestryByAbsolute.delete(absolute);\n }\n })();\n\n cache.set(absolute, pending);\n insertionOrder.push(absolute);\n while (insertionOrder.length > LRU_LIMIT) {\n const oldest = insertionOrder.shift();\n if (oldest !== undefined && oldest !== absolute) {\n cache.delete(oldest);\n }\n }\n return pending;\n }\n\n return resolveCrossFileProducer;\n}\n\n/**\n * Compute the stable 12-hex-char identifier the bundler uses to namespace\n * each inlined producer's locals (`__producer_<hash>__default`,\n * `__producer_<hash>__<name>`). Driven off the producer's absolute path\n * so two consumers in the same project share the same identifier for\n * the same producer — esbuild's tree-shake then dedups the inline.\n *\n * @since 0.7\n * @stable\n * @example\n * // const id = hashSourcePath(\"/repo/src/base.chart.ts\");\n * // id === \"a1b2c3d4e5f6\"\n * const fn: typeof hashSourcePath = hashSourcePath;\n * void fn;\n */\nexport function hashSourcePath(absolutePath: string): string {\n const normalised = absolutePath.replace(/\\\\/g, \"/\");\n return createHash(\"sha256\").update(normalised).digest(\"hex\").slice(0, 12);\n}\n\n/**\n * Rewrite a producer's printed TS source into a self-contained IIFE\n * block that exposes one `__producer_<hash>__default` const. Strips\n * `@invinite-org/chartlang-core` imports (the consumer already pulled\n * the symbols in), lowers cross-file `.chart` imports to\n * `const <name> = __producer_<nestedhash>__default;` so the inlined\n * dep is read from the consumer's already-inlined namespace, replaces\n * `export default <X>` with `return <X>;`, and wraps everything in an\n * IIFE so private same-file consts stay scoped — preventing name\n * collisions across producers that happen to share local identifiers.\n *\n * `specifierToHash` maps the producer's own cross-file import\n * specifiers to the nested producers' stable hashes. Empty when the\n * producer has no cross-file imports.\n *\n * @since 0.7\n * @stable\n * @example\n * // const src = rewriteProducerSource(\n * // 'export default defineIndicator({});',\n * // 'a1b2c3',\n * // new Map(),\n * // );\n * // src includes \"const __producer_a1b2c3__default = (() => { ... })();\"\n * const fn: typeof rewriteProducerSource = rewriteProducerSource;\n * void fn;\n */\nexport function rewriteProducerSource(\n source: string,\n hash: string,\n specifierToHash: ReadonlyMap<string, string> = new Map(),\n): string {\n const sourceFile = ts.createSourceFile(\n \"producer.ts\",\n source,\n ts.ScriptTarget.ES2022,\n true,\n ts.ScriptKind.TS,\n );\n const printer = ts.createPrinter({\n removeComments: false,\n newLine: ts.NewLineKind.LineFeed,\n });\n\n // Imports of `@invinite-org/chartlang-core` (and other host-supplied\n // bare specifiers) are hoisted to the top of the rewritten output as\n // top-level `import` statements so esbuild dedupes them against the\n // consumer's own imports. Without hoisting, the producer's body\n // references (`input.int(...)`, `ta.ema(...)`, etc.) would be unbound\n // when the consumer omits those symbols from its own import line —\n // a real bug surfaced by the dep-cross-file conformance scenario.\n // Producer-side `.chart` imports stay lowered inside the IIFE body\n // as `const <name> = __producer_<nestedHash>__default;` so the\n // top-level inlined producer is read from the consumer's namespace.\n const hoistedImports: string[] = [];\n const bodyLines: string[] = [];\n let defaultExpr: string | null = null;\n const fullText = sourceFile.text;\n for (const statement of sourceFile.statements) {\n if (ts.isImportDeclaration(statement)) {\n const specifier = statement.moduleSpecifier;\n /* v8 ignore next */\n if (!ts.isStringLiteral(specifier)) continue;\n const text = specifier.text;\n const nestedHash = specifierToHash.get(text);\n if (nestedHash !== undefined) {\n const clause = statement.importClause;\n const defaultName = clause?.name?.text;\n if (defaultName !== undefined) {\n bodyLines.push(`const ${defaultName} = __producer_${nestedHash}__default;`);\n }\n continue;\n }\n // Non-chart import (e.g. `@invinite-org/chartlang-core`): hoist\n // verbatim so esbuild dedupes against the consumer's imports.\n hoistedImports.push(fullText.slice(statement.getStart(sourceFile), statement.getEnd()));\n continue;\n }\n if (ts.isExportDeclaration(statement)) continue;\n if (ts.isExportAssignment(statement)) {\n defaultExpr = printer.printNode(\n ts.EmitHint.Expression,\n statement.expression,\n sourceFile,\n );\n continue;\n }\n if (ts.isVariableStatement(statement)) {\n const isExported = statement.modifiers?.some(\n (mod) => mod.kind === ts.SyntaxKind.ExportKeyword,\n );\n if (isExported === true) {\n bodyLines.push(rewriteVariableStatement(statement, hash, sourceFile, printer));\n continue;\n }\n }\n bodyLines.push(fullText.slice(statement.getStart(sourceFile), statement.getEnd()));\n }\n\n const returnLine = defaultExpr === null ? \"return undefined;\" : `return ${defaultExpr};`;\n const iife = `const __producer_${hash}__default = (() => {\\n${bodyLines.join(\"\\n\")}\\n${returnLine}\\n})();`;\n return hoistedImports.length === 0 ? iife : `${hoistedImports.join(\"\\n\")}\\n${iife}`;\n}\n\nfunction rewriteVariableStatement(\n statement: ts.VariableStatement,\n hash: string,\n sourceFile: ts.SourceFile,\n printer: ts.Printer,\n): string {\n const declarations = statement.declarationList.declarations\n .map((decl) => {\n const nameNode = decl.name;\n if (!ts.isIdentifier(nameNode)) return null;\n const initializer = decl.initializer;\n if (initializer === undefined) return null;\n const initText = printer.printNode(ts.EmitHint.Expression, initializer, sourceFile);\n return `const __producer_${hash}__${nameNode.text} = ${initText};`;\n })\n .filter((line): line is string => line !== null);\n return declarations.join(\"\\n\");\n}\n\nfunction resolveImportPath(\n importPath: string,\n fromSourcePath: string,\n rootAbsolute: string,\n): string | null {\n let normalised: string;\n if (importPath.endsWith(\".chart.ts\")) {\n normalised = importPath;\n } else if (importPath.endsWith(\".chart\")) {\n normalised = `${importPath}.ts`;\n } else {\n return null;\n }\n // `fromSourcePath` may be absolute (driven by `compileFile`'s\n // absolute resolution) or relative to the process cwd (driven by\n // `compileProject` passing posix-relative paths). Resolve against\n // cwd so both forms work.\n const fromAbsolute = isAbsolute(fromSourcePath)\n ? fromSourcePath\n : resolvePath(process.cwd(), fromSourcePath);\n const fromDir = dirname(fromAbsolute);\n const absolute = isAbsolute(normalised) ? normalised : resolvePath(fromDir, normalised);\n const rel = relative(rootAbsolute, absolute);\n if (rel.startsWith(\"..\") || isAbsolute(rel)) return null;\n return absolute;\n}\n"]}
|
package/dist/diagnostics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type ts from \"typescript\";\n\n/**\n * Stable identifier for every diagnostic the compiler can emit. New codes are\n * added at the end; existing codes never change meaning so consumer-side\n * filtering stays compatible across versions.\n *\n * Phase 1 ships eight emittable codes plus Phase 4's\n * `request.security` and input-extraction codes. Phase 7 adds\n * `multiple-default-exports`, `non-const-define-binding`, and the six\n * `dep-*` codes for indicator-composition analysis (plus\n * `duplicate-output-title` for clashing `plot(value, { title })`\n * declarations in the same script).\n *\n * @since 0.1\n * @example\n * const code: CompileDiagnosticCode = \"unbounded-loop\";\n */\nexport type CompileDiagnosticCode =\n | \"unbounded-loop\"\n | \"recursion-not-allowed\"\n | \"hostile-global\"\n | \"stateful-call-inside-loop\"\n | \"stateful-call-element-access\"\n | \"request-security-interval-not-literal\"\n | \"dynamic-series-index\"\n | \"callsite-id-conflict\"\n | \"missing-default-export\"\n | \"api-version-mismatch\"\n | \"input-default-not-literal\"\n | \"unknown-input-kind\"\n | \"multiple-input-interval\"\n | \"requires-intervals-not-literal\"\n | \"alert-condition-not-literal\"\n | \"alert-condition-field-not-literal\"\n | \"lower-tf-not-lower\"\n | \"request-lower-tf-interval-not-literal\"\n | \"type-error\"\n | \"multiple-default-exports\"\n | \"non-const-define-binding\"\n | \"dep-cycle\"\n | \"dep-unknown-output\"\n | \"dep-invalid-input-override\"\n | \"dep-dynamic\"\n | \"dep-output-not-titled\"\n | \"duplicate-output-title\";\n\n/**\n * Single diagnostic the compiler emits while transforming or analysing a\n * `.chart.ts` source. The shape is intentionally small — file/line/column and\n * a stable code — so callers (CLI, editor, host) can format errors uniformly.\n *\n * `severity` distinguishes hard errors (abort `compile`) from warnings\n * (surface to the user but still produce a manifest).\n *\n * @since 0.1\n * @example\n * const d: CompileDiagnostic = {\n * severity: \"error\",\n * code: \"unbounded-loop\",\n * message: \"while loops are not allowed\",\n * file: \"demo.chart.ts\",\n * line: 5,\n * column: 1,\n * };\n */\nexport type CompileDiagnostic = {\n readonly severity: \"error\" | \"warning\";\n readonly code: CompileDiagnosticCode;\n readonly message: string;\n readonly file: string;\n readonly line: number;\n readonly column: number;\n readonly nodeText?: string;\n};\n\n/**\n * Build a frozen `CompileDiagnostic` from a TypeScript node. Reads the node's\n * starting position against the supplied source file, converts to 1-based\n * line/column, and truncates the source snippet to a single line so terminal\n * output stays compact.\n *\n * @since 0.1\n * @example\n * // Inside an analysis pass:\n * // diagnostics.push(createDiagnostic({\n * // severity: \"error\", code: \"unbounded-loop\",\n * // message: \"while loops are not allowed\",\n * // file: sourcePath, node, sourceFile,\n * // }));\n * const fake = { severity: \"error\" as const };\n * void fake;\n */\nexport function createDiagnostic(args: {\n readonly severity: \"error\" | \"warning\";\n readonly code: CompileDiagnosticCode;\n readonly message: string;\n readonly file: string;\n readonly node: ts.Node;\n readonly sourceFile: ts.SourceFile;\n readonly includeSnippet?: boolean;\n}): CompileDiagnostic {\n const { severity, code, message, file, node, sourceFile, includeSnippet } = args;\n const start = node.getStart(sourceFile);\n const { line, character } = sourceFile.getLineAndCharacterOfPosition(start);\n const base = {\n severity,\n code,\n message,\n file,\n line: line + 1,\n column: character + 1,\n };\n if (includeSnippet) {\n const text = node.getText(sourceFile);\n const newlineIndex = text.indexOf(\"\\n\");\n const firstLine = newlineIndex === -1 ? text : text.slice(0, newlineIndex);\n const snippet = firstLine.length > 80 ? `${firstLine.slice(0, 77)}...` : firstLine;\n return Object.freeze({ ...base, nodeText: snippet });\n }\n return Object.freeze(base);\n}\n\n/**\n * Build a frozen `CompileDiagnostic` from a raw TypeScript `ts.Diagnostic`.\n * Used by the `compile()` pipeline to surface semantic type-checker errors\n * (TS2322, TS2345, …) under the `type-error` code. Carries the original\n * `TS<code>` numeric prefix in the message so editor consumers can route\n * to the TypeScript documentation if they want.\n *\n * Diagnostics without a `file` (global-scope, project-shape) are mapped to\n * the script's `sourcePath` at line/column `1:1` so callers always get a\n * stable location they can attribute to the user's source. The message is\n * flattened across `DiagnosticMessageChain` nodes.\n *\n * @since 0.7\n * @example\n * // const compileDiagnostic = mapTsDiagnostic(tsDiagnostic, \"demo.chart.ts\");\n * const fn: typeof mapTsDiagnostic = mapTsDiagnostic;\n * void fn;\n */\nexport function mapTsDiagnostic(diagnostic: ts.Diagnostic, sourcePath: string): CompileDiagnostic {\n const message = flattenDiagnosticMessage(diagnostic.messageText);\n const file = diagnostic.file;\n if (file === undefined || diagnostic.start === undefined) {\n return Object.freeze({\n severity: \"error\",\n code: \"type-error\",\n message: `TS${diagnostic.code}: ${message}`,\n file: sourcePath,\n line: 1,\n column: 1,\n });\n }\n const { line, character } = file.getLineAndCharacterOfPosition(diagnostic.start);\n return Object.freeze({\n severity: \"error\",\n code: \"type-error\",\n message: `TS${diagnostic.code}: ${message}`,\n file: sourcePath,\n line: line + 1,\n column: character + 1,\n });\n}\n\nfunction flattenDiagnosticMessage(message: string | ts.DiagnosticMessageChain): string {\n if (typeof message === \"string\") return message;\n const parts: string[] = [message.messageText];\n const next = message.next;\n if (next === undefined) return parts.join(\" \");\n const queue: ReadonlyArray<ts.DiagnosticMessageChain> = next;\n for (const chain of queue) {\n parts.push(flattenDiagnosticMessage(chain));\n }\n return parts.join(\" \");\n}\n"]}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,OAAO,EACH,YAAY,EACZ,OAAO,EACP,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,WAAW,GACd,MAAM,UAAU,CAAC;AAQlB,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAMrE,OAAO,EACH,sBAAsB,EACtB,cAAc,EACd,qBAAqB,GACxB,MAAM,uBAAuB,CAAC;AAS/B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,OAAO,EACH,YAAY,EACZ,OAAO,EACP,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,WAAW,GACd,MAAM,UAAU,CAAC;AAQlB,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAMrE,OAAO,EACH,sBAAsB,EACtB,cAAc,EACd,qBAAqB,GACxB,MAAM,uBAAuB,CAAC;AAS/B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nexport {\n CompileError,\n compile,\n compileFile,\n compileProject,\n transformAndAnalyse,\n walkChartFiles,\n writeAtomic,\n} from \"./api.js\";\nexport type {\n CompileFileOptions,\n CompileOptions,\n CompiledScript,\n TransformAndAnalyseOptions,\n TransformAndAnalyseResult,\n} from \"./api.js\";\nexport { bundleModule, formatManifestAssignment } from \"./bundle.js\";\nexport type {\n BundleModuleOptions,\n BundleModuleResult,\n InlinedProducer,\n} from \"./bundle.js\";\nexport {\n createProducerResolver,\n hashSourcePath,\n rewriteProducerSource,\n} from \"./dependency/index.js\";\nexport type {\n CompiledProducerArtefacts,\n CompileProducerCallback,\n CreateProducerResolverOptions,\n ProducerCompiled,\n ResolveCrossFileProducer,\n} from \"./dependency/index.js\";\nexport type { CompileDiagnostic, CompileDiagnosticCode } from \"./diagnostics.js\";\nexport { emitTypes } from \"./typesEmit.js\";\nexport type { EmitTypesOptions } from \"./typesEmit.js\";\nexport { resolveCalleeName } from \"./transformers/resolveCallee.js\";\n"]}
|
package/dist/manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type {\n AlertConditionDefinition,\n CapabilityId,\n DependencyDeclaration,\n OutputDeclaration,\n PlotSlotDescriptor,\n ScriptManifest,\n} from \"@invinite-org/chartlang-core\";\n\ntype ValueFormat = \"price\" | \"volume\" | \"percent\" | \"compact\";\ntype ScaleAxis = \"price\" | \"left\" | \"right\" | \"new\";\ntype ManifestInputDescriptors = Readonly<Record<string, Readonly<Record<string, unknown>>>>;\n\n/**\n * Build a recursively-frozen `ScriptManifest` from the compiler's\n * extraction passes. Every array, every nested record, and the outer\n * object itself are frozen so the runtime can structurally clone the\n * manifest without worrying about post-build mutation.\n *\n * @since 0.1\n * @example\n * // const manifest = buildManifest({\n * // name: \"EMA(20)\", kind: \"indicator\",\n * // capabilities: [\"alerts\", \"indicators\"],\n * // requestedIntervals: [], userPickableInterval: false,\n * // seriesCapacities: {}, maxLookback: 0, inputs: {},\n * // });\n * const fn: typeof buildManifest = buildManifest;\n * void fn;\n */\nexport function buildManifest(args: {\n readonly name: string;\n readonly kind: \"indicator\" | \"drawing\" | \"alert\" | \"alertCondition\";\n readonly capabilities: ReadonlyArray<CapabilityId>;\n readonly requestedIntervals: ReadonlyArray<string>;\n readonly userPickableInterval: boolean;\n readonly seriesCapacities: Readonly<Record<string, number>>;\n readonly maxLookback: number;\n readonly inputs: ManifestInputDescriptors;\n readonly overlay?: boolean;\n readonly maxBarsBack?: number;\n readonly format?: ValueFormat;\n readonly precision?: number;\n readonly scale?: ScaleAxis;\n readonly requiresIntervals?: ReadonlyArray<string>;\n readonly shortName?: string;\n readonly alertConditions?: ReadonlyArray<AlertConditionDefinition>;\n readonly dependencies?: ReadonlyArray<DependencyDeclaration>;\n readonly outputs?: ReadonlyArray<OutputDeclaration>;\n readonly plots?: ReadonlyArray<PlotSlotDescriptor>;\n readonly exportName?: string;\n readonly isDrawn?: boolean;\n readonly siblings?: ReadonlyArray<ScriptManifest>;\n}): ScriptManifest {\n const capabilities = Object.freeze(args.capabilities.slice());\n const requestedIntervals = Object.freeze(args.requestedIntervals.slice());\n const seriesCapacities = Object.freeze({ ...args.seriesCapacities });\n const inputEntries = Object.entries(args.inputs).map(\n ([key, value]) => [key, Object.freeze({ ...value })] as const,\n );\n const inputs = Object.freeze(Object.fromEntries(inputEntries));\n const scriptInputs = inputs as ScriptManifest[\"inputs\"];\n const requiresIntervals =\n args.requiresIntervals === undefined\n ? undefined\n : Object.freeze(args.requiresIntervals.slice());\n const alertConditions =\n args.alertConditions === undefined\n ? undefined\n : Object.freeze(\n args.alertConditions.map((condition) =>\n Object.freeze({\n id: condition.id,\n title: condition.title,\n description: condition.description,\n defaultMessage: condition.defaultMessage,\n }),\n ),\n );\n const dependencies =\n args.dependencies === undefined || args.dependencies.length === 0\n ? undefined\n : Object.freeze(\n args.dependencies.map((dep) =>\n Object.freeze({\n localId: dep.localId,\n producerName: dep.producerName,\n producerSourcePath: dep.producerSourcePath,\n producerExportName: dep.producerExportName,\n effectiveInputs: Object.freeze({ ...dep.effectiveInputs }),\n outputs: Object.freeze(\n dep.outputs.map((o) =>\n Object.freeze({ title: o.title, kind: o.kind }),\n ),\n ),\n isDrawn: dep.isDrawn,\n }),\n ),\n );\n const outputs =\n args.outputs === undefined || args.outputs.length === 0\n ? undefined\n : Object.freeze(\n args.outputs.map((o) => Object.freeze({ title: o.title, kind: o.kind })),\n );\n const plots =\n args.plots === undefined || args.plots.length === 0\n ? undefined\n : Object.freeze(args.plots.map((s) => Object.freeze({ ...s })));\n const siblings =\n args.siblings === undefined || args.siblings.length === 0\n ? undefined\n : Object.freeze(args.siblings.slice());\n return Object.freeze({\n apiVersion: 1 as const,\n kind: args.kind,\n name: args.name,\n inputs: scriptInputs,\n capabilities,\n requestedIntervals,\n userPickableInterval: args.userPickableInterval,\n seriesCapacities,\n maxLookback: args.maxLookback,\n ...(args.overlay === undefined ? {} : { overlay: args.overlay }),\n ...(args.maxBarsBack === undefined ? {} : { maxBarsBack: args.maxBarsBack }),\n ...(args.format === undefined ? {} : { format: args.format }),\n ...(args.precision === undefined ? {} : { precision: args.precision }),\n ...(args.scale === undefined ? {} : { scale: args.scale }),\n ...(requiresIntervals === undefined ? {} : { requiresIntervals }),\n ...(args.shortName === undefined ? {} : { shortName: args.shortName }),\n ...(alertConditions === undefined ? {} : { alertConditions }),\n ...(dependencies === undefined ? {} : { dependencies }),\n ...(outputs === undefined ? {} : { outputs }),\n ...(plots === undefined ? {} : { plots }),\n ...(args.exportName === undefined ? {} : { exportName: args.exportName }),\n ...(args.isDrawn === undefined ? {} : { isDrawn: args.isDrawn }),\n ...(siblings === undefined ? {} : { siblings }),\n });\n}\n"]}
|