@invinite-org/chartlang-compiler 1.1.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.
Files changed (40) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/analysis/extractAlertConditions.js.map +1 -1
  3. package/dist/analysis/extractCapabilities.js.map +1 -1
  4. package/dist/analysis/extractDependencyGraph.js.map +1 -1
  5. package/dist/analysis/extractInputs.js.map +1 -1
  6. package/dist/analysis/extractMaxLookback.js.map +1 -1
  7. package/dist/analysis/extractRequestedIntervals.js.map +1 -1
  8. package/dist/analysis/extractRequiresIntervals.js.map +1 -1
  9. package/dist/analysis/forbiddenConstructs.d.ts +1 -2
  10. package/dist/analysis/forbiddenConstructs.d.ts.map +1 -1
  11. package/dist/analysis/forbiddenConstructs.js +1 -2
  12. package/dist/analysis/forbiddenConstructs.js.map +1 -1
  13. package/dist/analysis/index.js.map +1 -1
  14. package/dist/analysis/statefulCallInLoop.js.map +1 -1
  15. package/dist/analysis/structuralChecks.d.ts +1 -1
  16. package/dist/analysis/structuralChecks.js.map +1 -1
  17. package/dist/analysis/validateLowerTfIntervals.js.map +1 -1
  18. package/dist/api.d.ts +12 -0
  19. package/dist/api.d.ts.map +1 -1
  20. package/dist/api.js +1 -0
  21. package/dist/api.js.map +1 -1
  22. package/dist/bundle.d.ts +1 -0
  23. package/dist/bundle.d.ts.map +1 -1
  24. package/dist/bundle.js +29 -0
  25. package/dist/bundle.js.map +1 -1
  26. package/dist/dependency/index.js.map +1 -1
  27. package/dist/dependency/resolveProducer.js.map +1 -1
  28. package/dist/diagnostics.js.map +1 -1
  29. package/dist/index.js.map +1 -1
  30. package/dist/manifest.js.map +1 -1
  31. package/dist/program.js.map +1 -1
  32. package/dist/transformers/callsiteIdInjection.d.ts +1 -1
  33. package/dist/transformers/callsiteIdInjection.js +1 -1
  34. package/dist/transformers/callsiteIdInjection.js.map +1 -1
  35. package/dist/transformers/index.js.map +1 -1
  36. package/dist/transformers/plotKindFromCallsite.js.map +1 -1
  37. package/dist/transformers/resolveCallee.js.map +1 -1
  38. package/dist/transformers/rewriteDependencyAccessors.js.map +1 -1
  39. package/dist/typesEmit.js.map +1 -1
  40. 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.d.ts CHANGED
@@ -125,6 +125,18 @@ export type CompileOptions = Readonly<{
125
125
  * @since 0.7
126
126
  */
127
127
  rootDir?: string;
128
+ /**
129
+ * Bare specifier → self-contained ESM source map the bundler resolves
130
+ * in-memory instead of from disk. Lets a host run `compile` where the
131
+ * workspace `@invinite-org/chartlang-*` packages are not installed as
132
+ * resolvable node_modules — e.g. a bundled serverless function, where
133
+ * the packages were inlined into the host bundle rather than shipped
134
+ * to the function filesystem. Each value must have no remaining bare
135
+ * imports (pre-bundle the package before passing it).
136
+ *
137
+ * @since 1.1
138
+ */
139
+ inMemoryModules?: Readonly<Record<string, string>>;
128
140
  }>;
129
141
  /**
130
142
  * Options accepted by `compileFile`. Extends `CompileOptions` with a `write`
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAER,kBAAkB,EAGlB,cAAc,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,MAAM,YAAY,CAAC;AAiB5B,OAAO,EAGH,KAAK,wBAAwB,EAEhC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAQ1D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,0BAA0B,GAAG,QAAQ,CAAC;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACtD,eAAe,CAAC,EAAE,CACd,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,KACjB,QAAQ,CAAC;QACV,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;YAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACnF,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;KACtD,CAAC,GAAG,IAAI,CAAC;CACb,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC;IAC7C,WAAW,EAAE,EAAE,CAAC,UAAU,CAAC;IAC3B,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC9C,QAAQ,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;CAC5C,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CAC/B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,0BAA0B,GACjC,yBAAyB,CAkN3B;AAwFD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IAClC,UAAU,EAAE,CAAC,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,iBAAiB,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACtD;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE,wBAAwB,CAAC;IAC3C;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC,CAAC;AAEH;;;;;;;;;GASG;AACH,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAC3C,QAAQ,CAAC;IACL,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC,CAAC;AAEP;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACnC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;gBAE3C,WAAW,EAAE,aAAa,CAAC,iBAAiB,CAAC;CAU5D;AAOD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAiJ3F;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAcjF;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,CAiCjG;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA+BvE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,cAAc,GACrB,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CA0BxC"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/api.js CHANGED
@@ -397,6 +397,7 @@ export async function compile(source, opts) {
397
397
  sourcemap,
398
398
  minify: opts.minify ?? false,
399
399
  ...(inlinedProducers.length === 0 ? {} : { inlinedProducers }),
400
+ ...(opts.inMemoryModules === undefined ? {} : { inMemoryModules: opts.inMemoryModules }),
400
401
  });
401
402
  const sidecar = result.siblings === undefined
402
403
  ? result.manifest
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.d.ts CHANGED
@@ -29,6 +29,7 @@ export type BundleModuleOptions = Readonly<{
29
29
  sourcemap: boolean | "inline" | "external";
30
30
  minify: boolean;
31
31
  inlinedProducers?: ReadonlyArray<InlinedProducer>;
32
+ inMemoryModules?: Readonly<Record<string, string>>;
32
33
  }>;
33
34
  /**
34
35
  * One pre-rewritten cross-file producer the bundler inlines ahead of the
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAGnE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACvC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC3C,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;CACrD,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CACpC,CAAC,CAAC;AAEH;;;;;;;;;;GAUG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC,CAAC;AAeH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAsDzF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,wBAAwB,CACpC,eAAe,EAAE,cAAc,GAAG,aAAa,CAAC,cAAc,CAAC,GAChE,MAAM,CAKR;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAChE,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,4BAA4B,CACxC,IAAI,EAAE,aAAa,CAAC,yBAAyB,CAAC,GAC/C,MAAM,CAYR"}
1
+ {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAGnE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACvC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC3C,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAClD,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACtD,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CACpC,CAAC,CAAC;AAEH;;;;;;;;;;GAUG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC,CAAC;AA6CH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA0DzF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,wBAAwB,CACpC,eAAe,EAAE,cAAc,GAAG,aAAa,CAAC,cAAc,CAAC,GAChE,MAAM,CAKR;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAChE,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,4BAA4B,CACxC,IAAI,EAAE,aAAa,CAAC,yBAAyB,CAAC,GAC/C,MAAM,CAYR"}
package/dist/bundle.js CHANGED
@@ -14,6 +14,32 @@ const COMPILER_PACKAGE_DIR = dirname(dirname(fileURLToPath(import.meta.url)));
14
14
  // otherwise the throwing fallback signals a runtime / compiler skew. The
15
15
  // shim keeps the §5.2 "zero remaining `import` statements" contract intact.
16
16
  const DEP_OUTPUT_SHIM = `const __chartlang_depOutput = globalThis.__chartlang_depOutput ?? (() => { throw new Error("@invinite-org/chartlang-runtime >= 0.7 is required to evaluate this bundle"); });`;
17
+ const IN_MEMORY_NAMESPACE = "chartlang-in-memory";
18
+ /**
19
+ * Build an esbuild plugin that resolves the bare specifiers in `modules`
20
+ * to in-memory ESM contents instead of the filesystem. Used by hosts that
21
+ * run the compiler where the workspace `@invinite-org/chartlang-*`
22
+ * packages are not resolvable on disk (e.g. a bundled serverless function
23
+ * where the packages were inlined into the host bundle, not installed as
24
+ * node_modules). The contents must be self-contained ESM (no remaining
25
+ * bare imports), since they are loaded in their own namespace.
26
+ */
27
+ function inMemoryModulesPlugin(modules) {
28
+ return {
29
+ name: "chartlang-in-memory-modules",
30
+ setup(build) {
31
+ const filter = /.*/;
32
+ build.onResolve({ filter }, (args) => Object.hasOwn(modules, args.path)
33
+ ? { path: args.path, namespace: IN_MEMORY_NAMESPACE }
34
+ : null);
35
+ build.onLoad({ filter, namespace: IN_MEMORY_NAMESPACE }, (args) => ({
36
+ contents: modules[args.path],
37
+ loader: "js",
38
+ resolveDir: COMPILER_PACKAGE_DIR,
39
+ }));
40
+ },
41
+ };
42
+ }
17
43
  /**
18
44
  * Drive esbuild's `build` API against an in-memory transformed TS source and
19
45
  * emit a self-contained ESM bundle. Pinned flags: `bundle: true`,
@@ -43,6 +69,8 @@ export async function bundleModule(opts) {
43
69
  const combinedSource = producers.length === 0
44
70
  ? opts.transformedSource
45
71
  : `${DEP_OUTPUT_SHIM}\n${producers.map((p) => p.rewrittenSource).join("\n")}\n${opts.transformedSource}`;
72
+ const inMemoryModules = opts.inMemoryModules ?? {};
73
+ const hasInMemoryModules = Object.keys(inMemoryModules).length > 0;
46
74
  const buildOpts = {
47
75
  stdin: {
48
76
  contents: combinedSource,
@@ -59,6 +87,7 @@ export async function bundleModule(opts) {
59
87
  minify: opts.minify,
60
88
  treeShaking: true,
61
89
  write: false,
90
+ ...(hasInMemoryModules ? { plugins: [inMemoryModulesPlugin(inMemoryModules)] } : {}),
62
91
  // `outfile` is required when `sourcemap: "external"`; the virtual path
63
92
  // never touches disk because `write: false`.
64
93
  ...(wantsExternalMap ? { outfile: `${opts.sourcePath}.js` } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAuEnC,2EAA2E;AAC3E,8EAA8E;AAC9E,uEAAuE;AACvE,MAAM,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAE9E,4EAA4E;AAC5E,sEAAsE;AACtE,2EAA2E;AAC3E,4EAA4E;AAC5E,yEAAyE;AACzE,4EAA4E;AAC5E,MAAM,eAAe,GAAG,+KAA+K,CAAC;AAExM;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAyB;IACxD,MAAM,gBAAgB,GAClB,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;IAE3F,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU,CAAC;IAClF,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC;IAC9C,MAAM,cAAc,GAChB,SAAS,CAAC,MAAM,KAAK,CAAC;QAClB,CAAC,CAAC,IAAI,CAAC,iBAAiB;QACxB,CAAC,CAAC,GAAG,eAAe,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAEjH,MAAM,SAAS,GAAyB;QACpC,KAAK,EAAE;YACH,QAAQ,EAAE,cAAc;YACxB,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,oBAAoB;SACnC;QACD,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,SAAS;QACnB,SAAS,EAAE,gBAAgB;QAC3B,cAAc,EAAE,IAAI;QACpB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,WAAW,EAAE,IAAI;QACjB,KAAK,EAAE,KAAK;QACZ,uEAAuE;QACvE,6CAA6C;QAC7C,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpE,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE9C,mEAAmE;IACnE,wEAAwE;IACxE,kEAAkE;IAClE,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,oBAAoB,CAAC,EAAE,CAAC;IAClE,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,sBAAsB;IACtB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,gBAAgB,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACjE,sBAAsB;QACtB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,wBAAwB,CACpC,eAA+D;IAE/D,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC;QACvC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IACtC,OAAO,6BAA6B,IAAI,KAAK,CAAC;AAClD,CAAC;AAiCD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,4BAA4B,CACxC,IAA8C;IAE9C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,IAAI;SACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACP,MAAM,SAAS,GACX,CAAC,CAAC,eAAe,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC;YACxE,CAAC,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE;YAC1D,CAAC,CAAC,EAAE,CAAC;QACb,OAAO,kBAAkB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,iBAAiB,GAAG,SAAS,KAAK,CAAC;IAC1G,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,OAAO,oCAAoC,OAAO,QAAQ,CAAC;AAC/D,CAAC"}
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"]}