@llui/compiler 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/accessor-resolver.d.ts +58 -0
- package/dist/accessor-resolver.d.ts.map +1 -0
- package/dist/accessor-resolver.js +119 -0
- package/dist/accessor-resolver.js.map +1 -0
- package/dist/binding-descriptors.d.ts +105 -0
- package/dist/binding-descriptors.d.ts.map +1 -0
- package/dist/binding-descriptors.js +340 -0
- package/dist/binding-descriptors.js.map +1 -0
- package/dist/collect-deps.d.ts +49 -0
- package/dist/collect-deps.d.ts.map +1 -0
- package/dist/collect-deps.js +444 -0
- package/dist/collect-deps.js.map +1 -0
- package/dist/compiler-cache.d.ts +20 -0
- package/dist/compiler-cache.d.ts.map +1 -0
- package/dist/compiler-cache.js +20 -0
- package/dist/compiler-cache.js.map +1 -0
- package/dist/cross-file-resolver.d.ts +109 -0
- package/dist/cross-file-resolver.d.ts.map +1 -0
- package/dist/cross-file-resolver.js +530 -0
- package/dist/cross-file-resolver.js.map +1 -0
- package/dist/cross-file-walker.d.ts +63 -0
- package/dist/cross-file-walker.d.ts.map +1 -0
- package/dist/cross-file-walker.js +516 -0
- package/dist/cross-file-walker.js.map +1 -0
- package/dist/diagnostic.d.ts +76 -0
- package/dist/diagnostic.d.ts.map +1 -0
- package/dist/diagnostic.js +59 -0
- package/dist/diagnostic.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/introspection-factory.d.ts +54 -0
- package/dist/introspection-factory.d.ts.map +1 -0
- package/dist/introspection-factory.js +46 -0
- package/dist/introspection-factory.js.map +1 -0
- package/dist/manifest.d.ts +144 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +209 -0
- package/dist/manifest.js.map +1 -0
- package/dist/module.d.ts +222 -0
- package/dist/module.d.ts.map +1 -0
- package/dist/module.js +256 -0
- package/dist/module.js.map +1 -0
- package/dist/modules/_element-helpers.d.ts +4 -0
- package/dist/modules/_element-helpers.d.ts.map +1 -0
- package/dist/modules/_element-helpers.js +138 -0
- package/dist/modules/_element-helpers.js.map +1 -0
- package/dist/modules/_msg-variants.d.ts +10 -0
- package/dist/modules/_msg-variants.d.ts.map +1 -0
- package/dist/modules/_msg-variants.js +97 -0
- package/dist/modules/_msg-variants.js.map +1 -0
- package/dist/modules/_shared.d.ts +16 -0
- package/dist/modules/_shared.d.ts.map +1 -0
- package/dist/modules/_shared.js +30 -0
- package/dist/modules/_shared.js.map +1 -0
- package/dist/modules/accessibility.d.ts +3 -0
- package/dist/modules/accessibility.d.ts.map +1 -0
- package/dist/modules/accessibility.js +82 -0
- package/dist/modules/accessibility.js.map +1 -0
- package/dist/modules/accessor-side-effect.d.ts +3 -0
- package/dist/modules/accessor-side-effect.d.ts.map +1 -0
- package/dist/modules/accessor-side-effect.js +113 -0
- package/dist/modules/accessor-side-effect.js.map +1 -0
- package/dist/modules/agent-emits-drift.d.ts +3 -0
- package/dist/modules/agent-emits-drift.d.ts.map +1 -0
- package/dist/modules/agent-emits-drift.js +158 -0
- package/dist/modules/agent-emits-drift.js.map +1 -0
- package/dist/modules/agent-example-on-payload.d.ts +3 -0
- package/dist/modules/agent-example-on-payload.d.ts.map +1 -0
- package/dist/modules/agent-example-on-payload.js +53 -0
- package/dist/modules/agent-example-on-payload.js.map +1 -0
- package/dist/modules/agent-exclusive-annotations.d.ts +3 -0
- package/dist/modules/agent-exclusive-annotations.d.ts.map +1 -0
- package/dist/modules/agent-exclusive-annotations.js +68 -0
- package/dist/modules/agent-exclusive-annotations.js.map +1 -0
- package/dist/modules/agent-missing-intent.d.ts +3 -0
- package/dist/modules/agent-missing-intent.d.ts.map +1 -0
- package/dist/modules/agent-missing-intent.js +47 -0
- package/dist/modules/agent-missing-intent.js.map +1 -0
- package/dist/modules/agent-msg-resolvable.d.ts +3 -0
- package/dist/modules/agent-msg-resolvable.d.ts.map +1 -0
- package/dist/modules/agent-msg-resolvable.js +161 -0
- package/dist/modules/agent-msg-resolvable.js.map +1 -0
- package/dist/modules/agent-nonextractable-handler.d.ts +3 -0
- package/dist/modules/agent-nonextractable-handler.d.ts.map +1 -0
- package/dist/modules/agent-nonextractable-handler.js +127 -0
- package/dist/modules/agent-nonextractable-handler.js.map +1 -0
- package/dist/modules/agent-optional-field-undocumented.d.ts +3 -0
- package/dist/modules/agent-optional-field-undocumented.d.ts.map +1 -0
- package/dist/modules/agent-optional-field-undocumented.js +67 -0
- package/dist/modules/agent-optional-field-undocumented.js.map +1 -0
- package/dist/modules/agent-tagsend-translator-missing.d.ts +3 -0
- package/dist/modules/agent-tagsend-translator-missing.d.ts.map +1 -0
- package/dist/modules/agent-tagsend-translator-missing.js +58 -0
- package/dist/modules/agent-tagsend-translator-missing.js.map +1 -0
- package/dist/modules/agent-warning-on-confirm.d.ts +3 -0
- package/dist/modules/agent-warning-on-confirm.d.ts.map +1 -0
- package/dist/modules/agent-warning-on-confirm.js +46 -0
- package/dist/modules/agent-warning-on-confirm.js.map +1 -0
- package/dist/modules/async-update.d.ts +3 -0
- package/dist/modules/async-update.d.ts.map +1 -0
- package/dist/modules/async-update.js +86 -0
- package/dist/modules/async-update.js.map +1 -0
- package/dist/modules/binding-descriptors.d.ts +4 -0
- package/dist/modules/binding-descriptors.d.ts.map +1 -0
- package/dist/modules/binding-descriptors.js +48 -0
- package/dist/modules/binding-descriptors.js.map +1 -0
- package/dist/modules/bitmask-overflow.d.ts +3 -0
- package/dist/modules/bitmask-overflow.d.ts.map +1 -0
- package/dist/modules/bitmask-overflow.js +152 -0
- package/dist/modules/bitmask-overflow.js.map +1 -0
- package/dist/modules/compiler-stamp.d.ts +3 -0
- package/dist/modules/compiler-stamp.d.ts.map +1 -0
- package/dist/modules/compiler-stamp.js +44 -0
- package/dist/modules/compiler-stamp.js.map +1 -0
- package/dist/modules/component-meta.d.ts +3 -0
- package/dist/modules/component-meta.d.ts.map +1 -0
- package/dist/modules/component-meta.js +44 -0
- package/dist/modules/component-meta.js.map +1 -0
- package/dist/modules/controlled-input.d.ts +3 -0
- package/dist/modules/controlled-input.d.ts.map +1 -0
- package/dist/modules/controlled-input.js +68 -0
- package/dist/modules/controlled-input.js.map +1 -0
- package/dist/modules/core-synthesis.d.ts +18 -0
- package/dist/modules/core-synthesis.d.ts.map +1 -0
- package/dist/modules/core-synthesis.js +748 -0
- package/dist/modules/core-synthesis.js.map +1 -0
- package/dist/modules/direct-state-in-view.d.ts +3 -0
- package/dist/modules/direct-state-in-view.d.ts.map +1 -0
- package/dist/modules/direct-state-in-view.js +103 -0
- package/dist/modules/direct-state-in-view.js.map +1 -0
- package/dist/modules/each-closure-violation.d.ts +3 -0
- package/dist/modules/each-closure-violation.d.ts.map +1 -0
- package/dist/modules/each-closure-violation.js +255 -0
- package/dist/modules/each-closure-violation.js.map +1 -0
- package/dist/modules/each-memo.d.ts +15 -0
- package/dist/modules/each-memo.d.ts.map +1 -0
- package/dist/modules/each-memo.js +115 -0
- package/dist/modules/each-memo.js.map +1 -0
- package/dist/modules/effect-without-handler.d.ts +3 -0
- package/dist/modules/effect-without-handler.d.ts.map +1 -0
- package/dist/modules/effect-without-handler.js +92 -0
- package/dist/modules/effect-without-handler.js.map +1 -0
- package/dist/modules/element-rewrite.d.ts +22 -0
- package/dist/modules/element-rewrite.d.ts.map +1 -0
- package/dist/modules/element-rewrite.js +1017 -0
- package/dist/modules/element-rewrite.js.map +1 -0
- package/dist/modules/empty-props.d.ts +3 -0
- package/dist/modules/empty-props.d.ts.map +1 -0
- package/dist/modules/empty-props.js +50 -0
- package/dist/modules/empty-props.js.map +1 -0
- package/dist/modules/exhaustive-effect-handling.d.ts +3 -0
- package/dist/modules/exhaustive-effect-handling.d.ts.map +1 -0
- package/dist/modules/exhaustive-effect-handling.js +61 -0
- package/dist/modules/exhaustive-effect-handling.js.map +1 -0
- package/dist/modules/exhaustive-update.d.ts +3 -0
- package/dist/modules/exhaustive-update.d.ts.map +1 -0
- package/dist/modules/exhaustive-update.js +146 -0
- package/dist/modules/exhaustive-update.js.map +1 -0
- package/dist/modules/forgotten-spread.d.ts +3 -0
- package/dist/modules/forgotten-spread.d.ts.map +1 -0
- package/dist/modules/forgotten-spread.js +51 -0
- package/dist/modules/forgotten-spread.js.map +1 -0
- package/dist/modules/form-boilerplate.d.ts +3 -0
- package/dist/modules/form-boilerplate.d.ts.map +1 -0
- package/dist/modules/form-boilerplate.js +101 -0
- package/dist/modules/form-boilerplate.js.map +1 -0
- package/dist/modules/imperative-dom-in-view.d.ts +3 -0
- package/dist/modules/imperative-dom-in-view.d.ts.map +1 -0
- package/dist/modules/imperative-dom-in-view.js +123 -0
- package/dist/modules/imperative-dom-in-view.js.map +1 -0
- package/dist/modules/item-dedup.d.ts +7 -0
- package/dist/modules/item-dedup.d.ts.map +1 -0
- package/dist/modules/item-dedup.js +204 -0
- package/dist/modules/item-dedup.js.map +1 -0
- package/dist/modules/map-on-state-array.d.ts +3 -0
- package/dist/modules/map-on-state-array.d.ts.map +1 -0
- package/dist/modules/map-on-state-array.js +84 -0
- package/dist/modules/map-on-state-array.js.map +1 -0
- package/dist/modules/mask-legend.d.ts +10 -0
- package/dist/modules/mask-legend.d.ts.map +1 -0
- package/dist/modules/mask-legend.js +50 -0
- package/dist/modules/mask-legend.js.map +1 -0
- package/dist/modules/missing-memo.d.ts +3 -0
- package/dist/modules/missing-memo.d.ts.map +1 -0
- package/dist/modules/missing-memo.js +114 -0
- package/dist/modules/missing-memo.js.map +1 -0
- package/dist/modules/msg-annotations.d.ts +9 -0
- package/dist/modules/msg-annotations.d.ts.map +1 -0
- package/dist/modules/msg-annotations.js +54 -0
- package/dist/modules/msg-annotations.js.map +1 -0
- package/dist/modules/msg-schema.d.ts +10 -0
- package/dist/modules/msg-schema.d.ts.map +1 -0
- package/dist/modules/msg-schema.js +70 -0
- package/dist/modules/msg-schema.js.map +1 -0
- package/dist/modules/namespace-import.d.ts +3 -0
- package/dist/modules/namespace-import.d.ts.map +1 -0
- package/dist/modules/namespace-import.js +80 -0
- package/dist/modules/namespace-import.js.map +1 -0
- package/dist/modules/nested-send-in-update.d.ts +3 -0
- package/dist/modules/nested-send-in-update.d.ts.map +1 -0
- package/dist/modules/nested-send-in-update.js +77 -0
- package/dist/modules/nested-send-in-update.js.map +1 -0
- package/dist/modules/no-barrel-import-when-subpath-exists.d.ts +3 -0
- package/dist/modules/no-barrel-import-when-subpath-exists.d.ts.map +1 -0
- package/dist/modules/no-barrel-import-when-subpath-exists.js +100 -0
- package/dist/modules/no-barrel-import-when-subpath-exists.js.map +1 -0
- package/dist/modules/no-eager-item-accessor.d.ts +3 -0
- package/dist/modules/no-eager-item-accessor.d.ts.map +1 -0
- package/dist/modules/no-eager-item-accessor.js +74 -0
- package/dist/modules/no-eager-item-accessor.js.map +1 -0
- package/dist/modules/no-let-reactive-accessor.d.ts +3 -0
- package/dist/modules/no-let-reactive-accessor.d.ts.map +1 -0
- package/dist/modules/no-let-reactive-accessor.js +227 -0
- package/dist/modules/no-let-reactive-accessor.js.map +1 -0
- package/dist/modules/no-list-render-in-sample.d.ts +3 -0
- package/dist/modules/no-list-render-in-sample.d.ts.map +1 -0
- package/dist/modules/no-list-render-in-sample.js +89 -0
- package/dist/modules/no-list-render-in-sample.js.map +1 -0
- package/dist/modules/no-sample-in-accessor.d.ts +3 -0
- package/dist/modules/no-sample-in-accessor.d.ts.map +1 -0
- package/dist/modules/no-sample-in-accessor.js +141 -0
- package/dist/modules/no-sample-in-accessor.js.map +1 -0
- package/dist/modules/no-sample-in-reactive-position.d.ts +3 -0
- package/dist/modules/no-sample-in-reactive-position.d.ts.map +1 -0
- package/dist/modules/no-sample-in-reactive-position.js +72 -0
- package/dist/modules/no-sample-in-reactive-position.js.map +1 -0
- package/dist/modules/pure-update-function.d.ts +3 -0
- package/dist/modules/pure-update-function.d.ts.map +1 -0
- package/dist/modules/pure-update-function.js +127 -0
- package/dist/modules/pure-update-function.js.map +1 -0
- package/dist/modules/reactive-paths.d.ts +3 -0
- package/dist/modules/reactive-paths.d.ts.map +1 -0
- package/dist/modules/reactive-paths.js +77 -0
- package/dist/modules/reactive-paths.js.map +1 -0
- package/dist/modules/row-factory.d.ts +12 -0
- package/dist/modules/row-factory.d.ts.map +1 -0
- package/dist/modules/row-factory.js +385 -0
- package/dist/modules/row-factory.js.map +1 -0
- package/dist/modules/schema-hash.d.ts +15 -0
- package/dist/modules/schema-hash.d.ts.map +1 -0
- package/dist/modules/schema-hash.js +70 -0
- package/dist/modules/schema-hash.js.map +1 -0
- package/dist/modules/spread-in-children.d.ts +3 -0
- package/dist/modules/spread-in-children.d.ts.map +1 -0
- package/dist/modules/spread-in-children.js +144 -0
- package/dist/modules/spread-in-children.js.map +1 -0
- package/dist/modules/state-mutation.d.ts +3 -0
- package/dist/modules/state-mutation.d.ts.map +1 -0
- package/dist/modules/state-mutation.js +138 -0
- package/dist/modules/state-mutation.js.map +1 -0
- package/dist/modules/state-schema.d.ts +8 -0
- package/dist/modules/state-schema.d.ts.map +1 -0
- package/dist/modules/state-schema.js +55 -0
- package/dist/modules/state-schema.js.map +1 -0
- package/dist/modules/static-items.d.ts +3 -0
- package/dist/modules/static-items.d.ts.map +1 -0
- package/dist/modules/static-items.js +125 -0
- package/dist/modules/static-items.js.map +1 -0
- package/dist/modules/static-on.d.ts +3 -0
- package/dist/modules/static-on.d.ts.map +1 -0
- package/dist/modules/static-on.js +100 -0
- package/dist/modules/static-on.js.map +1 -0
- package/dist/modules/string-effect-callback.d.ts +3 -0
- package/dist/modules/string-effect-callback.d.ts.map +1 -0
- package/dist/modules/string-effect-callback.js +50 -0
- package/dist/modules/string-effect-callback.js.map +1 -0
- package/dist/modules/structural-mask.d.ts +8 -0
- package/dist/modules/structural-mask.d.ts.map +1 -0
- package/dist/modules/structural-mask.js +76 -0
- package/dist/modules/structural-mask.js.map +1 -0
- package/dist/modules/subapp-requires-reason.d.ts +3 -0
- package/dist/modules/subapp-requires-reason.d.ts.map +1 -0
- package/dist/modules/subapp-requires-reason.js +129 -0
- package/dist/modules/subapp-requires-reason.js.map +1 -0
- package/dist/modules/text-mask.d.ts +12 -0
- package/dist/modules/text-mask.d.ts.map +1 -0
- package/dist/modules/text-mask.js +63 -0
- package/dist/modules/text-mask.js.map +1 -0
- package/dist/modules/view-bag-import.d.ts +3 -0
- package/dist/modules/view-bag-import.d.ts.map +1 -0
- package/dist/modules/view-bag-import.js +80 -0
- package/dist/modules/view-bag-import.js.map +1 -0
- package/dist/msg-annotations.d.ts +104 -0
- package/dist/msg-annotations.d.ts.map +1 -0
- package/dist/msg-annotations.js +242 -0
- package/dist/msg-annotations.js.map +1 -0
- package/dist/msg-schema.d.ts +130 -0
- package/dist/msg-schema.d.ts.map +1 -0
- package/dist/msg-schema.js +770 -0
- package/dist/msg-schema.js.map +1 -0
- package/dist/schema-hash.d.ts +16 -0
- package/dist/schema-hash.d.ts.map +1 -0
- package/dist/schema-hash.js +31 -0
- package/dist/schema-hash.js.map +1 -0
- package/dist/state-schema.d.ts +41 -0
- package/dist/state-schema.d.ts.map +1 -0
- package/dist/state-schema.js +156 -0
- package/dist/state-schema.js.map +1 -0
- package/dist/transform.d.ts +109 -0
- package/dist/transform.d.ts.map +1 -0
- package/dist/transform.js +1390 -0
- package/dist/transform.js.map +1 -0
- package/dist/version.d.ts +11 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +11 -0
- package/dist/version.js.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
export type DiagnosticSeverity = 'error' | 'warning' | 'info';
|
|
2
|
+
export type DiagnosticCategory =
|
|
3
|
+
/** Reactive-path correctness — overflow, opaque accessors, mask gating. */
|
|
4
|
+
'reactivity'
|
|
5
|
+
/** View composition — async helpers, missing context providers, helper cycles. */
|
|
6
|
+
| 'composition'
|
|
7
|
+
/** Agent integration — Msg-schema resolvability, dispatch-translator drift. */
|
|
8
|
+
| 'agent'
|
|
9
|
+
/** Style / authoring conventions — naming, redundancy, lint-only signals. */
|
|
10
|
+
| 'style'
|
|
11
|
+
/** Performance — bitmask overflow, FULL_MASK fallbacks, expensive accessors. */
|
|
12
|
+
| 'perf'
|
|
13
|
+
/** Module / build configuration — manifest skew, version mismatch, integrity. */
|
|
14
|
+
| 'config'
|
|
15
|
+
/** Internal — module exceptions, walker termination paths, debug diagnostics. */
|
|
16
|
+
| 'internal';
|
|
17
|
+
export interface Position {
|
|
18
|
+
/** 0-based line index. */
|
|
19
|
+
line: number;
|
|
20
|
+
/** 0-based UTF-16 code-unit column. */
|
|
21
|
+
column: number;
|
|
22
|
+
}
|
|
23
|
+
export interface Range {
|
|
24
|
+
start: Position;
|
|
25
|
+
end: Position;
|
|
26
|
+
}
|
|
27
|
+
export interface DiagnosticLocation {
|
|
28
|
+
/** Project-relative path on emission (never absolute, never hostname-tainted). */
|
|
29
|
+
file: string;
|
|
30
|
+
range: Range;
|
|
31
|
+
}
|
|
32
|
+
export interface CodeAction {
|
|
33
|
+
/** Human-readable label for the autofix. */
|
|
34
|
+
title: string;
|
|
35
|
+
/** Source edits that apply the fix. Adapters translate to their host edit format. */
|
|
36
|
+
edits: Array<{
|
|
37
|
+
file: string;
|
|
38
|
+
range: Range;
|
|
39
|
+
/** New text replacing `range`. Empty string deletes the range. */
|
|
40
|
+
newText: string;
|
|
41
|
+
}>;
|
|
42
|
+
}
|
|
43
|
+
export interface DiagnosticRelatedInformation {
|
|
44
|
+
location: DiagnosticLocation;
|
|
45
|
+
message: string;
|
|
46
|
+
}
|
|
47
|
+
export interface Diagnostic {
|
|
48
|
+
/** Stable id — `<namespace>/<slug>`. Examples: `llui/opaque-view-call`. */
|
|
49
|
+
id: string;
|
|
50
|
+
severity: DiagnosticSeverity;
|
|
51
|
+
category: DiagnosticCategory;
|
|
52
|
+
/** Human-readable, present-tense, actionable. */
|
|
53
|
+
message: string;
|
|
54
|
+
location: DiagnosticLocation;
|
|
55
|
+
/** Cross-references (e.g. the other end of a cycle, the missing provider's expected site). */
|
|
56
|
+
relatedInformation?: DiagnosticRelatedInformation[];
|
|
57
|
+
/** Structured edits the adapter can offer as autofixes. */
|
|
58
|
+
fixes?: CodeAction[];
|
|
59
|
+
/** Optional URL to user-facing documentation for this diagnostic id. */
|
|
60
|
+
documentation?: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Convert a TS Compiler API `(start, end)` offset pair against a source
|
|
64
|
+
* file into the canonical `Range` shape. Used by emitters that have AST
|
|
65
|
+
* node positions but not pre-computed line/column.
|
|
66
|
+
*/
|
|
67
|
+
export declare function rangeFromOffsets(sourceText: string, start: number, end: number): Range;
|
|
68
|
+
/**
|
|
69
|
+
* Project-relative path helper. Adapters pass the project root resolved
|
|
70
|
+
* from `llui.config.ts` / Vite's `config.root`; emitters that have an
|
|
71
|
+
* absolute path use this to canonicalize before placing into a
|
|
72
|
+
* Diagnostic. Falls back to the absolute path if `root` is empty or
|
|
73
|
+
* the file isn't a descendant.
|
|
74
|
+
*/
|
|
75
|
+
export declare function relativizeFile(absoluteFile: string, root: string): string;
|
|
76
|
+
//# sourceMappingURL=diagnostic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostic.d.ts","sourceRoot":"","sources":["../src/diagnostic.ts"],"names":[],"mappings":"AAkBA,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;AAE7D,MAAM,MAAM,kBAAkB;AAC5B,2EAA2E;AACzE,YAAY;AACd,kFAAkF;GAChF,aAAa;AACf,+EAA+E;GAC7E,OAAO;AACT,6EAA6E;GAC3E,OAAO;AACT,gFAAgF;GAC9E,MAAM;AACR,iFAAiF;GAC/E,QAAQ;AACV,iFAAiF;GAC/E,UAAU,CAAA;AAEd,MAAM,WAAW,QAAQ;IACvB,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,QAAQ,CAAA;IACf,GAAG,EAAE,QAAQ,CAAA;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,KAAK,CAAA;CACb;AAED,MAAM,WAAW,UAAU;IACzB,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAA;IACb,qFAAqF;IACrF,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,KAAK,CAAA;QACZ,kEAAkE;QAClE,OAAO,EAAE,MAAM,CAAA;KAChB,CAAC,CAAA;CACH;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,2EAA2E;IAC3E,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,8FAA8F;IAC9F,kBAAkB,CAAC,EAAE,4BAA4B,EAAE,CAAA;IACnD,2DAA2D;IAC3D,KAAK,CAAC,EAAE,UAAU,EAAE,CAAA;IACpB,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,CAKtF;AAiBD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAOzE"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// Canonical diagnostic schema — v2c §3.
|
|
2
|
+
//
|
|
3
|
+
// Every diagnostic the compiler emits (cross-file walker, manifest
|
|
4
|
+
// substitution, future per-module diagnostics) flows through this shape.
|
|
5
|
+
// Adapters (ESLint, MCP, future LSP, CLI) translate it into their
|
|
6
|
+
// host-specific representations. Adapters never construct diagnostics;
|
|
7
|
+
// they consume.
|
|
8
|
+
//
|
|
9
|
+
// Stable contract:
|
|
10
|
+
// - `id` is a stable string like `llui/opaque-view-call`. Renaming
|
|
11
|
+
// follows the §8.2 deprecation cycle (alias for one minor; remove
|
|
12
|
+
// in the next).
|
|
13
|
+
// - `severity` is the *intent* of the diagnostic; adapters may downgrade
|
|
14
|
+
// `error` to `warning` based on host policy (e.g. ESLint `--max-warnings`).
|
|
15
|
+
// - `category` groups diagnostics for filtering. New categories require
|
|
16
|
+
// a doc revision.
|
|
17
|
+
// - `location` is always project-relative on emission (shared.md §6.4).
|
|
18
|
+
/**
|
|
19
|
+
* Convert a TS Compiler API `(start, end)` offset pair against a source
|
|
20
|
+
* file into the canonical `Range` shape. Used by emitters that have AST
|
|
21
|
+
* node positions but not pre-computed line/column.
|
|
22
|
+
*/
|
|
23
|
+
export function rangeFromOffsets(sourceText, start, end) {
|
|
24
|
+
return {
|
|
25
|
+
start: offsetToPosition(sourceText, start),
|
|
26
|
+
end: offsetToPosition(sourceText, end),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function offsetToPosition(sourceText, offset) {
|
|
30
|
+
// Linear scan — adequate for emitter-time use. A line-table cache
|
|
31
|
+
// would help for high-frequency emitters; v2c diagnostic-volume is
|
|
32
|
+
// low enough that this is not yet load-bearing.
|
|
33
|
+
let line = 0;
|
|
34
|
+
let lineStart = 0;
|
|
35
|
+
for (let i = 0; i < offset && i < sourceText.length; i++) {
|
|
36
|
+
if (sourceText.charCodeAt(i) === 10 /* \n */) {
|
|
37
|
+
line++;
|
|
38
|
+
lineStart = i + 1;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return { line, column: offset - lineStart };
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Project-relative path helper. Adapters pass the project root resolved
|
|
45
|
+
* from `llui.config.ts` / Vite's `config.root`; emitters that have an
|
|
46
|
+
* absolute path use this to canonicalize before placing into a
|
|
47
|
+
* Diagnostic. Falls back to the absolute path if `root` is empty or
|
|
48
|
+
* the file isn't a descendant.
|
|
49
|
+
*/
|
|
50
|
+
export function relativizeFile(absoluteFile, root) {
|
|
51
|
+
if (!root)
|
|
52
|
+
return absoluteFile;
|
|
53
|
+
const normRoot = root.endsWith('/') ? root : root + '/';
|
|
54
|
+
if (absoluteFile.startsWith(normRoot)) {
|
|
55
|
+
return absoluteFile.slice(normRoot.length);
|
|
56
|
+
}
|
|
57
|
+
return absoluteFile;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=diagnostic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../src/diagnostic.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,EAAE;AACF,mEAAmE;AACnE,yEAAyE;AACzE,kEAAkE;AAClE,uEAAuE;AACvE,gBAAgB;AAChB,EAAE;AACF,mBAAmB;AACnB,qEAAqE;AACrE,sEAAsE;AACtE,oBAAoB;AACpB,2EAA2E;AAC3E,gFAAgF;AAChF,0EAA0E;AAC1E,sBAAsB;AACtB,0EAA0E;AAuE1E;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAAkB,EAAE,KAAa,EAAE,GAAW;IAC7E,OAAO;QACL,KAAK,EAAE,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC;QAC1C,GAAG,EAAE,gBAAgB,CAAC,UAAU,EAAE,GAAG,CAAC;KACvC,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAkB,EAAE,MAAc;IAC1D,kEAAkE;IAClE,mEAAmE;IACnE,gDAAgD;IAChD,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzD,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;YAC7C,IAAI,EAAE,CAAA;YACN,SAAS,GAAG,CAAC,GAAG,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,CAAA;AAC7C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,YAAoB,EAAE,IAAY;IAC/D,IAAI,CAAC,IAAI;QAAE,OAAO,YAAY,CAAA;IAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAA;IACvD,IAAI,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,OAAO,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC5C,CAAC;IACD,OAAO,YAAY,CAAA;AACrB,CAAC","sourcesContent":["// Canonical diagnostic schema — v2c §3.\n//\n// Every diagnostic the compiler emits (cross-file walker, manifest\n// substitution, future per-module diagnostics) flows through this shape.\n// Adapters (ESLint, MCP, future LSP, CLI) translate it into their\n// host-specific representations. Adapters never construct diagnostics;\n// they consume.\n//\n// Stable contract:\n// - `id` is a stable string like `llui/opaque-view-call`. Renaming\n// follows the §8.2 deprecation cycle (alias for one minor; remove\n// in the next).\n// - `severity` is the *intent* of the diagnostic; adapters may downgrade\n// `error` to `warning` based on host policy (e.g. ESLint `--max-warnings`).\n// - `category` groups diagnostics for filtering. New categories require\n// a doc revision.\n// - `location` is always project-relative on emission (shared.md §6.4).\n\nexport type DiagnosticSeverity = 'error' | 'warning' | 'info'\n\nexport type DiagnosticCategory =\n /** Reactive-path correctness — overflow, opaque accessors, mask gating. */\n | 'reactivity'\n /** View composition — async helpers, missing context providers, helper cycles. */\n | 'composition'\n /** Agent integration — Msg-schema resolvability, dispatch-translator drift. */\n | 'agent'\n /** Style / authoring conventions — naming, redundancy, lint-only signals. */\n | 'style'\n /** Performance — bitmask overflow, FULL_MASK fallbacks, expensive accessors. */\n | 'perf'\n /** Module / build configuration — manifest skew, version mismatch, integrity. */\n | 'config'\n /** Internal — module exceptions, walker termination paths, debug diagnostics. */\n | 'internal'\n\nexport interface Position {\n /** 0-based line index. */\n line: number\n /** 0-based UTF-16 code-unit column. */\n column: number\n}\n\nexport interface Range {\n start: Position\n end: Position\n}\n\nexport interface DiagnosticLocation {\n /** Project-relative path on emission (never absolute, never hostname-tainted). */\n file: string\n range: Range\n}\n\nexport interface CodeAction {\n /** Human-readable label for the autofix. */\n title: string\n /** Source edits that apply the fix. Adapters translate to their host edit format. */\n edits: Array<{\n file: string\n range: Range\n /** New text replacing `range`. Empty string deletes the range. */\n newText: string\n }>\n}\n\nexport interface DiagnosticRelatedInformation {\n location: DiagnosticLocation\n message: string\n}\n\nexport interface Diagnostic {\n /** Stable id — `<namespace>/<slug>`. Examples: `llui/opaque-view-call`. */\n id: string\n severity: DiagnosticSeverity\n category: DiagnosticCategory\n /** Human-readable, present-tense, actionable. */\n message: string\n location: DiagnosticLocation\n /** Cross-references (e.g. the other end of a cycle, the missing provider's expected site). */\n relatedInformation?: DiagnosticRelatedInformation[]\n /** Structured edits the adapter can offer as autofixes. */\n fixes?: CodeAction[]\n /** Optional URL to user-facing documentation for this diagnostic id. */\n documentation?: string\n}\n\n/**\n * Convert a TS Compiler API `(start, end)` offset pair against a source\n * file into the canonical `Range` shape. Used by emitters that have AST\n * node positions but not pre-computed line/column.\n */\nexport function rangeFromOffsets(sourceText: string, start: number, end: number): Range {\n return {\n start: offsetToPosition(sourceText, start),\n end: offsetToPosition(sourceText, end),\n }\n}\n\nfunction offsetToPosition(sourceText: string, offset: number): Position {\n // Linear scan — adequate for emitter-time use. A line-table cache\n // would help for high-frequency emitters; v2c diagnostic-volume is\n // low enough that this is not yet load-bearing.\n let line = 0\n let lineStart = 0\n for (let i = 0; i < offset && i < sourceText.length; i++) {\n if (sourceText.charCodeAt(i) === 10 /* \\n */) {\n line++\n lineStart = i + 1\n }\n }\n return { line, column: offset - lineStart }\n}\n\n/**\n * Project-relative path helper. Adapters pass the project root resolved\n * from `llui.config.ts` / Vite's `config.root`; emitters that have an\n * absolute path use this to canonicalize before placing into a\n * Diagnostic. Falls back to the absolute path if `root` is empty or\n * the file isn't a descendant.\n */\nexport function relativizeFile(absoluteFile: string, root: string): string {\n if (!root) return absoluteFile\n const normRoot = root.endsWith('/') ? root : root + '/'\n if (absoluteFile.startsWith(normRoot)) {\n return absoluteFile.slice(normRoot.length)\n }\n return absoluteFile\n}\n"]}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export * from './accessor-resolver.js';
|
|
2
|
+
export * from './binding-descriptors.js';
|
|
3
|
+
export * from './collect-deps.js';
|
|
4
|
+
export * from './compiler-cache.js';
|
|
5
|
+
export * from './cross-file-resolver.js';
|
|
6
|
+
export * from './cross-file-walker.js';
|
|
7
|
+
export * from './diagnostic.js';
|
|
8
|
+
export * from './manifest.js';
|
|
9
|
+
export * from './module.js';
|
|
10
|
+
export * from './version.js';
|
|
11
|
+
export * from './introspection-factory.js';
|
|
12
|
+
export { findComponentCalls } from './modules/_shared.js';
|
|
13
|
+
export { maskLegendModule, type MaskLegendModuleOptions } from './modules/mask-legend.js';
|
|
14
|
+
export { compilerStampModule } from './modules/compiler-stamp.js';
|
|
15
|
+
export { eachMemoModule, EACH_MEMO_SLOT, type EachMemoModuleOptions, type EachMemoSlot, } from './modules/each-memo.js';
|
|
16
|
+
export { structuralMaskModule, type StructuralMaskModuleOptions, } from './modules/structural-mask.js';
|
|
17
|
+
export { textMaskModule, type TextMaskModuleOptions } from './modules/text-mask.js';
|
|
18
|
+
export { itemDedupModule, type ItemDedupModuleOptions } from './modules/item-dedup.js';
|
|
19
|
+
export { elementRewriteModule, ELEMENT_REWRITE_SLOT, type ElementRewriteModuleOptions, type ElementRewriteSlot, } from './modules/element-rewrite.js';
|
|
20
|
+
export { rowFactoryModule, type RowFactoryModuleOptions } from './modules/row-factory.js';
|
|
21
|
+
export { coreSynthesisModule, CORE_SYNTHESIS_SLOT, type CoreSynthesisModuleOptions, type CoreSynthesisSlot, } from './modules/core-synthesis.js';
|
|
22
|
+
export * from './msg-annotations.js';
|
|
23
|
+
export * from './msg-schema.js';
|
|
24
|
+
export * from './schema-hash.js';
|
|
25
|
+
export * from './state-schema.js';
|
|
26
|
+
export * from './transform.js';
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,4BAA4B,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AASzD,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EACL,cAAc,EACd,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,YAAY,GAClB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,oBAAoB,EACpB,KAAK,2BAA2B,GACjC,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AACnF,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AACtF,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,2BAA2B,EAChC,KAAK,kBAAkB,GACxB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AACzF,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,0BAA0B,EAC/B,KAAK,iBAAiB,GACvB,MAAM,6BAA6B,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// @llui/compiler — engine. Adapters consume through these re-exports.
|
|
2
|
+
// Migration in progress (see docs/proposals/v2-compiler/v2a.md §4.4).
|
|
3
|
+
export * from './accessor-resolver.js';
|
|
4
|
+
export * from './binding-descriptors.js';
|
|
5
|
+
export * from './collect-deps.js';
|
|
6
|
+
export * from './compiler-cache.js';
|
|
7
|
+
export * from './cross-file-resolver.js';
|
|
8
|
+
export * from './cross-file-walker.js';
|
|
9
|
+
export * from './diagnostic.js';
|
|
10
|
+
export * from './manifest.js';
|
|
11
|
+
export * from './module.js';
|
|
12
|
+
export * from './version.js';
|
|
13
|
+
export * from './introspection-factory.js';
|
|
14
|
+
export { findComponentCalls } from './modules/_shared.js';
|
|
15
|
+
// Introspection modules (schemaHashModule, msg-schema, msg-annotations,
|
|
16
|
+
// state-schema, binding-descriptors) moved to @llui/compiler-introspection
|
|
17
|
+
// in v2c/decomp-26. Adapters that previously imported these names from
|
|
18
|
+
// @llui/compiler must now import from @llui/compiler-introspection.
|
|
19
|
+
// BINDING_DESCRIPTORS_SLOT is re-exported from introspection-factory.js
|
|
20
|
+
// (above) so the orchestrator can read the slot without depending on
|
|
21
|
+
// the introspection package.
|
|
22
|
+
// componentMetaModule moved to @llui/compiler-devtools (v2c/decomp-27).
|
|
23
|
+
export { maskLegendModule } from './modules/mask-legend.js';
|
|
24
|
+
export { compilerStampModule } from './modules/compiler-stamp.js';
|
|
25
|
+
export { eachMemoModule, EACH_MEMO_SLOT, } from './modules/each-memo.js';
|
|
26
|
+
export { structuralMaskModule, } from './modules/structural-mask.js';
|
|
27
|
+
export { textMaskModule } from './modules/text-mask.js';
|
|
28
|
+
export { itemDedupModule } from './modules/item-dedup.js';
|
|
29
|
+
export { elementRewriteModule, ELEMENT_REWRITE_SLOT, } from './modules/element-rewrite.js';
|
|
30
|
+
export { rowFactoryModule } from './modules/row-factory.js';
|
|
31
|
+
export { coreSynthesisModule, CORE_SYNTHESIS_SLOT, } from './modules/core-synthesis.js';
|
|
32
|
+
export * from './msg-annotations.js';
|
|
33
|
+
export * from './msg-schema.js';
|
|
34
|
+
export * from './schema-hash.js';
|
|
35
|
+
export * from './state-schema.js';
|
|
36
|
+
export * from './transform.js';
|
|
37
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,sEAAsE;AACtE,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,4BAA4B,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,wEAAwE;AACxE,2EAA2E;AAC3E,uEAAuE;AACvE,oEAAoE;AACpE,wEAAwE;AACxE,qEAAqE;AACrE,6BAA6B;AAC7B,wEAAwE;AACxE,OAAO,EAAE,gBAAgB,EAAgC,MAAM,0BAA0B,CAAA;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EACL,cAAc,EACd,cAAc,GAGf,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,oBAAoB,GAErB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,cAAc,EAA8B,MAAM,wBAAwB,CAAA;AACnF,OAAO,EAAE,eAAe,EAA+B,MAAM,yBAAyB,CAAA;AACtF,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GAGrB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,gBAAgB,EAAgC,MAAM,0BAA0B,CAAA;AACzF,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GAGpB,MAAM,6BAA6B,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA","sourcesContent":["// @llui/compiler — engine. Adapters consume through these re-exports.\n// Migration in progress (see docs/proposals/v2-compiler/v2a.md §4.4).\nexport * from './accessor-resolver.js'\nexport * from './binding-descriptors.js'\nexport * from './collect-deps.js'\nexport * from './compiler-cache.js'\nexport * from './cross-file-resolver.js'\nexport * from './cross-file-walker.js'\nexport * from './diagnostic.js'\nexport * from './manifest.js'\nexport * from './module.js'\nexport * from './version.js'\nexport * from './introspection-factory.js'\nexport { findComponentCalls } from './modules/_shared.js'\n// Introspection modules (schemaHashModule, msg-schema, msg-annotations,\n// state-schema, binding-descriptors) moved to @llui/compiler-introspection\n// in v2c/decomp-26. Adapters that previously imported these names from\n// @llui/compiler must now import from @llui/compiler-introspection.\n// BINDING_DESCRIPTORS_SLOT is re-exported from introspection-factory.js\n// (above) so the orchestrator can read the slot without depending on\n// the introspection package.\n// componentMetaModule moved to @llui/compiler-devtools (v2c/decomp-27).\nexport { maskLegendModule, type MaskLegendModuleOptions } from './modules/mask-legend.js'\nexport { compilerStampModule } from './modules/compiler-stamp.js'\nexport {\n eachMemoModule,\n EACH_MEMO_SLOT,\n type EachMemoModuleOptions,\n type EachMemoSlot,\n} from './modules/each-memo.js'\nexport {\n structuralMaskModule,\n type StructuralMaskModuleOptions,\n} from './modules/structural-mask.js'\nexport { textMaskModule, type TextMaskModuleOptions } from './modules/text-mask.js'\nexport { itemDedupModule, type ItemDedupModuleOptions } from './modules/item-dedup.js'\nexport {\n elementRewriteModule,\n ELEMENT_REWRITE_SLOT,\n type ElementRewriteModuleOptions,\n type ElementRewriteSlot,\n} from './modules/element-rewrite.js'\nexport { rowFactoryModule, type RowFactoryModuleOptions } from './modules/row-factory.js'\nexport {\n coreSynthesisModule,\n CORE_SYNTHESIS_SLOT,\n type CoreSynthesisModuleOptions,\n type CoreSynthesisSlot,\n} from './modules/core-synthesis.js'\nexport * from './msg-annotations.js'\nexport * from './msg-schema.js'\nexport * from './schema-hash.js'\nexport * from './state-schema.js'\nexport * from './transform.js'\n"]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type ts from 'typescript';
|
|
2
|
+
import type { CompilerModule } from './module.js';
|
|
3
|
+
/**
|
|
4
|
+
* Slot key the binding-descriptors module sets to signal whether it
|
|
5
|
+
* inserted `__registerScopeVariants` calls. Lives here (not in
|
|
6
|
+
* `@llui/compiler-introspection`) so the orchestrator can read the
|
|
7
|
+
* slot without static-importing the sibling package. The CONSTANT
|
|
8
|
+
* is the contract; both sides must agree on the literal string.
|
|
9
|
+
*/
|
|
10
|
+
export declare const BINDING_DESCRIPTORS_SLOT = "binding-descriptors:state";
|
|
11
|
+
export interface BindingDescriptorsSlot {
|
|
12
|
+
scopeRegistrationsInjected: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Inputs the orchestrator hands to the introspection factory. These
|
|
16
|
+
* are the file-level extractions the orchestrator already performs
|
|
17
|
+
* (the extractors `extractMsgSchema`, `extractStateSchema`, etc.
|
|
18
|
+
* remain in `@llui/compiler` because the orchestrator uses their
|
|
19
|
+
* output for the compiler cache too).
|
|
20
|
+
*/
|
|
21
|
+
export interface IntrospectionFactoryInput {
|
|
22
|
+
/** Source file the modules will walk. */
|
|
23
|
+
sourceFile: ts.SourceFile;
|
|
24
|
+
/** Pre-extracted Msg schema (or null when extraction failed / not present). */
|
|
25
|
+
msgSchema: unknown;
|
|
26
|
+
/** Pre-extracted Effect schema. */
|
|
27
|
+
effectSchema: unknown;
|
|
28
|
+
/** Pre-extracted State schema. */
|
|
29
|
+
stateSchema: unknown;
|
|
30
|
+
/** Pre-extracted message annotations (or null when extraction failed). */
|
|
31
|
+
msgAnnotations: Record<string, unknown> | null;
|
|
32
|
+
/** Whether agent-metadata emission is requested (devMode || emitAgentMetadata). */
|
|
33
|
+
shouldEmitAgentMetadata: boolean;
|
|
34
|
+
}
|
|
35
|
+
export type IntrospectionFactory = (input: IntrospectionFactoryInput) => CompilerModule[];
|
|
36
|
+
/**
|
|
37
|
+
* Register the introspection module factory. Called once per process
|
|
38
|
+
* by `@llui/compiler-introspection`'s init code (or by test setup /
|
|
39
|
+
* vite-plugin's import side-effect). Subsequent registrations replace
|
|
40
|
+
* the previous; that's intentional for test isolation.
|
|
41
|
+
*/
|
|
42
|
+
export declare function registerIntrospectionFactory(factory: IntrospectionFactory | null): void;
|
|
43
|
+
/** Used by transformLlui to retrieve the registered factory. Returns
|
|
44
|
+
* `null` when no factory is registered (introspection disabled). */
|
|
45
|
+
export declare function getIntrospectionFactory(): IntrospectionFactory | null;
|
|
46
|
+
export interface DevtoolsFactoryInput {
|
|
47
|
+
sourceFile: ts.SourceFile;
|
|
48
|
+
/** Whether dev-mode emission is requested (controls componentMeta). */
|
|
49
|
+
devMode: boolean;
|
|
50
|
+
}
|
|
51
|
+
export type DevtoolsFactory = (input: DevtoolsFactoryInput) => CompilerModule[];
|
|
52
|
+
export declare function registerDevtoolsFactory(factory: DevtoolsFactory | null): void;
|
|
53
|
+
export declare function getDevtoolsFactory(): DevtoolsFactory | null;
|
|
54
|
+
//# sourceMappingURL=introspection-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"introspection-factory.d.ts","sourceRoot":"","sources":["../src/introspection-factory.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAA;AAChC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,8BAA8B,CAAA;AAEnE,MAAM,WAAW,sBAAsB;IACrC,0BAA0B,EAAE,OAAO,CAAA;CACpC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,yBAAyB;IACxC,yCAAyC;IACzC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAA;IACzB,+EAA+E;IAC/E,SAAS,EAAE,OAAO,CAAA;IAClB,mCAAmC;IACnC,YAAY,EAAE,OAAO,CAAA;IACrB,kCAAkC;IAClC,WAAW,EAAE,OAAO,CAAA;IACpB,0EAA0E;IAC1E,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAC9C,mFAAmF;IACnF,uBAAuB,EAAE,OAAO,CAAA;CACjC;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,yBAAyB,KAAK,cAAc,EAAE,CAAA;AAIzF;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAEvF;AAED;qEACqE;AACrE,wBAAgB,uBAAuB,IAAI,oBAAoB,GAAG,IAAI,CAErE;AAUD,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAA;IACzB,uEAAuE;IACvE,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,oBAAoB,KAAK,cAAc,EAAE,CAAA;AAI/E,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI,CAE7E;AAED,wBAAgB,kBAAkB,IAAI,eAAe,GAAG,IAAI,CAE3D"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// Registry hook for the introspection module set (msg/state schemas,
|
|
2
|
+
// schema hash, binding descriptors).
|
|
3
|
+
//
|
|
4
|
+
// The introspection modules live in `@llui/compiler-introspection`,
|
|
5
|
+
// an opt-in sibling package. To keep `@llui/compiler` free of any
|
|
6
|
+
// dependency on its opt-in siblings (which would create a workspace
|
|
7
|
+
// cycle), the orchestrator calls this registry rather than importing
|
|
8
|
+
// the modules directly. The actual factory implementation registers
|
|
9
|
+
// itself when `@llui/compiler-introspection` is imported by the host
|
|
10
|
+
// (test setup, Vite plugin, MCP, etc.).
|
|
11
|
+
//
|
|
12
|
+
// When no factory is registered, transformLlui simply doesn't
|
|
13
|
+
// activate introspection modules — no schemas, hashes, or descriptors
|
|
14
|
+
// get emitted. That's the intended "production build with introspection
|
|
15
|
+
// disabled" path.
|
|
16
|
+
/**
|
|
17
|
+
* Slot key the binding-descriptors module sets to signal whether it
|
|
18
|
+
* inserted `__registerScopeVariants` calls. Lives here (not in
|
|
19
|
+
* `@llui/compiler-introspection`) so the orchestrator can read the
|
|
20
|
+
* slot without static-importing the sibling package. The CONSTANT
|
|
21
|
+
* is the contract; both sides must agree on the literal string.
|
|
22
|
+
*/
|
|
23
|
+
export const BINDING_DESCRIPTORS_SLOT = 'binding-descriptors:state';
|
|
24
|
+
let registered = null;
|
|
25
|
+
/**
|
|
26
|
+
* Register the introspection module factory. Called once per process
|
|
27
|
+
* by `@llui/compiler-introspection`'s init code (or by test setup /
|
|
28
|
+
* vite-plugin's import side-effect). Subsequent registrations replace
|
|
29
|
+
* the previous; that's intentional for test isolation.
|
|
30
|
+
*/
|
|
31
|
+
export function registerIntrospectionFactory(factory) {
|
|
32
|
+
registered = factory;
|
|
33
|
+
}
|
|
34
|
+
/** Used by transformLlui to retrieve the registered factory. Returns
|
|
35
|
+
* `null` when no factory is registered (introspection disabled). */
|
|
36
|
+
export function getIntrospectionFactory() {
|
|
37
|
+
return registered;
|
|
38
|
+
}
|
|
39
|
+
let registeredDevtools = null;
|
|
40
|
+
export function registerDevtoolsFactory(factory) {
|
|
41
|
+
registeredDevtools = factory;
|
|
42
|
+
}
|
|
43
|
+
export function getDevtoolsFactory() {
|
|
44
|
+
return registeredDevtools;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=introspection-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"introspection-factory.js","sourceRoot":"","sources":["../src/introspection-factory.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,qCAAqC;AACrC,EAAE;AACF,oEAAoE;AACpE,kEAAkE;AAClE,oEAAoE;AACpE,qEAAqE;AACrE,oEAAoE;AACpE,qEAAqE;AACrE,wCAAwC;AACxC,EAAE;AACF,8DAA8D;AAC9D,sEAAsE;AACtE,wEAAwE;AACxE,kBAAkB;AAKlB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,2BAA2B,CAAA;AA8BnE,IAAI,UAAU,GAAgC,IAAI,CAAA;AAElD;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAAC,OAAoC;IAC/E,UAAU,GAAG,OAAO,CAAA;AACtB,CAAC;AAED;qEACqE;AACrE,MAAM,UAAU,uBAAuB;IACrC,OAAO,UAAU,CAAA;AACnB,CAAC;AAkBD,IAAI,kBAAkB,GAA2B,IAAI,CAAA;AAErD,MAAM,UAAU,uBAAuB,CAAC,OAA+B;IACrE,kBAAkB,GAAG,OAAO,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,kBAAkB,CAAA;AAC3B,CAAC","sourcesContent":["// Registry hook for the introspection module set (msg/state schemas,\n// schema hash, binding descriptors).\n//\n// The introspection modules live in `@llui/compiler-introspection`,\n// an opt-in sibling package. To keep `@llui/compiler` free of any\n// dependency on its opt-in siblings (which would create a workspace\n// cycle), the orchestrator calls this registry rather than importing\n// the modules directly. The actual factory implementation registers\n// itself when `@llui/compiler-introspection` is imported by the host\n// (test setup, Vite plugin, MCP, etc.).\n//\n// When no factory is registered, transformLlui simply doesn't\n// activate introspection modules — no schemas, hashes, or descriptors\n// get emitted. That's the intended \"production build with introspection\n// disabled\" path.\n\nimport type ts from 'typescript'\nimport type { CompilerModule } from './module.js'\n\n/**\n * Slot key the binding-descriptors module sets to signal whether it\n * inserted `__registerScopeVariants` calls. Lives here (not in\n * `@llui/compiler-introspection`) so the orchestrator can read the\n * slot without static-importing the sibling package. The CONSTANT\n * is the contract; both sides must agree on the literal string.\n */\nexport const BINDING_DESCRIPTORS_SLOT = 'binding-descriptors:state'\n\nexport interface BindingDescriptorsSlot {\n scopeRegistrationsInjected: boolean\n}\n\n/**\n * Inputs the orchestrator hands to the introspection factory. These\n * are the file-level extractions the orchestrator already performs\n * (the extractors `extractMsgSchema`, `extractStateSchema`, etc.\n * remain in `@llui/compiler` because the orchestrator uses their\n * output for the compiler cache too).\n */\nexport interface IntrospectionFactoryInput {\n /** Source file the modules will walk. */\n sourceFile: ts.SourceFile\n /** Pre-extracted Msg schema (or null when extraction failed / not present). */\n msgSchema: unknown\n /** Pre-extracted Effect schema. */\n effectSchema: unknown\n /** Pre-extracted State schema. */\n stateSchema: unknown\n /** Pre-extracted message annotations (or null when extraction failed). */\n msgAnnotations: Record<string, unknown> | null\n /** Whether agent-metadata emission is requested (devMode || emitAgentMetadata). */\n shouldEmitAgentMetadata: boolean\n}\n\nexport type IntrospectionFactory = (input: IntrospectionFactoryInput) => CompilerModule[]\n\nlet registered: IntrospectionFactory | null = null\n\n/**\n * Register the introspection module factory. Called once per process\n * by `@llui/compiler-introspection`'s init code (or by test setup /\n * vite-plugin's import side-effect). Subsequent registrations replace\n * the previous; that's intentional for test isolation.\n */\nexport function registerIntrospectionFactory(factory: IntrospectionFactory | null): void {\n registered = factory\n}\n\n/** Used by transformLlui to retrieve the registered factory. Returns\n * `null` when no factory is registered (introspection disabled). */\nexport function getIntrospectionFactory(): IntrospectionFactory | null {\n return registered\n}\n\n// ── Devtools factory ──────────────────────────────────────────────\n//\n// Same registry pattern as introspection: `@llui/compiler-devtools`\n// provides the implementation; hosts call `registerDevtoolsFactory`\n// at module-import time. When no factory is registered (production\n// build with devtools disabled), no devtools modules activate and\n// no `__componentMeta` / future trace instrumentation ships.\n\nexport interface DevtoolsFactoryInput {\n sourceFile: ts.SourceFile\n /** Whether dev-mode emission is requested (controls componentMeta). */\n devMode: boolean\n}\n\nexport type DevtoolsFactory = (input: DevtoolsFactoryInput) => CompilerModule[]\n\nlet registeredDevtools: DevtoolsFactory | null = null\n\nexport function registerDevtoolsFactory(factory: DevtoolsFactory | null): void {\n registeredDevtools = factory\n}\n\nexport function getDevtoolsFactory(): DevtoolsFactory | null {\n return registeredDevtools\n}\n"]}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
export interface Manifest {
|
|
3
|
+
/** Schema version. Frozen at 1 in v2b. */
|
|
4
|
+
version: 1;
|
|
5
|
+
/** Compiler version that emitted this manifest. */
|
|
6
|
+
compilerVersion: string;
|
|
7
|
+
/** Exported helpers keyed by name. */
|
|
8
|
+
helpers: Record<string, HelperEntry>;
|
|
9
|
+
/** Exported components keyed by name (for completeness; not used in v2b's substitution). */
|
|
10
|
+
components: Record<string, ComponentEntry>;
|
|
11
|
+
}
|
|
12
|
+
export interface HelperEntry {
|
|
13
|
+
/**
|
|
14
|
+
* `'view-helper'` — the call returns Node[]-like and is resolved once per
|
|
15
|
+
* call site.
|
|
16
|
+
* `'parts-helper'` — the call returns a *parts bag* (a record of accessor
|
|
17
|
+
* thunks). The bag is later spread into element calls by the consumer;
|
|
18
|
+
* every spread contributes the same read set.
|
|
19
|
+
*/
|
|
20
|
+
kind: 'view-helper' | 'parts-helper';
|
|
21
|
+
/** Paths the helper reads from its OWN state shape (rare; usually empty). */
|
|
22
|
+
helperLocalPaths: string[];
|
|
23
|
+
/** Per-parameter substitution metadata. Index N corresponds to the helper's Nth declared parameter. */
|
|
24
|
+
viaParams: ParamSpec[];
|
|
25
|
+
/** Context-provider keys this helper consumes. Resolved against the consumer's provide() call sites. */
|
|
26
|
+
contextReads?: ContextRead[];
|
|
27
|
+
}
|
|
28
|
+
export interface ComponentEntry {
|
|
29
|
+
/** Reserved for v2b's read-everything-the-component-reads escape hatch. Unused at v2b ship. */
|
|
30
|
+
name: string;
|
|
31
|
+
}
|
|
32
|
+
export type ParamSpec = {
|
|
33
|
+
index: number;
|
|
34
|
+
shape: 'accessor';
|
|
35
|
+
innerReads: InnerRead[];
|
|
36
|
+
} | {
|
|
37
|
+
index: number;
|
|
38
|
+
shape: 'accessor';
|
|
39
|
+
/** This parameter's body operates on the result of parameter N. */
|
|
40
|
+
readsThroughResultOf: number;
|
|
41
|
+
innerReads: InnerRead[];
|
|
42
|
+
} | {
|
|
43
|
+
index: number;
|
|
44
|
+
shape: 'options-bag';
|
|
45
|
+
fields: Record<string, FieldSpec>;
|
|
46
|
+
} | {
|
|
47
|
+
index: number;
|
|
48
|
+
shape: 'send';
|
|
49
|
+
} | {
|
|
50
|
+
index: number;
|
|
51
|
+
shape: 'thunk-returning-nodes';
|
|
52
|
+
} | {
|
|
53
|
+
index: number;
|
|
54
|
+
shape: 'opaque';
|
|
55
|
+
};
|
|
56
|
+
export type FieldSpec = {
|
|
57
|
+
shape: 'accessor';
|
|
58
|
+
innerReads: InnerRead[];
|
|
59
|
+
} | {
|
|
60
|
+
shape: 'accessor';
|
|
61
|
+
readsThroughResultOf: number;
|
|
62
|
+
innerReads: InnerRead[];
|
|
63
|
+
} | {
|
|
64
|
+
shape: 'send';
|
|
65
|
+
} | {
|
|
66
|
+
shape: 'thunk-returning-nodes';
|
|
67
|
+
} | {
|
|
68
|
+
shape: 'opaque';
|
|
69
|
+
};
|
|
70
|
+
export type InnerRead =
|
|
71
|
+
/** Helper-local read — rare; the helper sees state directly. */
|
|
72
|
+
{
|
|
73
|
+
kind: 'rooted';
|
|
74
|
+
path: string;
|
|
75
|
+
}
|
|
76
|
+
/** The entire result of parameter N. */
|
|
77
|
+
| {
|
|
78
|
+
kind: 'param-result';
|
|
79
|
+
from: number;
|
|
80
|
+
}
|
|
81
|
+
/** A sub-path within parameter N's accessor result. The dominant kind across @llui/components. */
|
|
82
|
+
| {
|
|
83
|
+
kind: 'param-result-path';
|
|
84
|
+
from: number;
|
|
85
|
+
path: string;
|
|
86
|
+
};
|
|
87
|
+
export interface ContextRead {
|
|
88
|
+
/** Canonical id: `<package-name>#<export-name>`. */
|
|
89
|
+
context: string;
|
|
90
|
+
/** Sub-paths within the context value the helper reads. */
|
|
91
|
+
subPaths: string[];
|
|
92
|
+
}
|
|
93
|
+
export interface ContextProvider {
|
|
94
|
+
context: string;
|
|
95
|
+
/** Source AST for the consumer's `provide(LocaleContext, (s) => s.i18n, ...)` accessor. */
|
|
96
|
+
accessor: ts.ArrowFunction | ts.FunctionExpression | undefined;
|
|
97
|
+
}
|
|
98
|
+
export interface SubstitutionContext {
|
|
99
|
+
/** Maps canonical context ids to the consumer's matching provide(...) accessor. */
|
|
100
|
+
providers: Map<string, ContextProvider>;
|
|
101
|
+
/**
|
|
102
|
+
* Path-extraction hook. Walks an arrow body and returns the dotted paths
|
|
103
|
+
* it reads. The cross-file walker injects its `extractAccessorPaths`
|
|
104
|
+
* here; tests can stub with a simpler walker.
|
|
105
|
+
*/
|
|
106
|
+
extractPaths: (accessor: ts.ArrowFunction | ts.FunctionExpression, rootParamName: string) => string[];
|
|
107
|
+
}
|
|
108
|
+
export interface SubstitutionResult {
|
|
109
|
+
/** Host-state paths contributed by this call site, e.g. `['carousel.paused', 'carousel.current']`. */
|
|
110
|
+
paths: string[];
|
|
111
|
+
/** Diagnostics emitted by the substitution. */
|
|
112
|
+
diagnostics: SubstitutionDiagnostic[];
|
|
113
|
+
/** Whether the call site fell back to FULL_MASK (e.g. unrecognized options-bag shape). */
|
|
114
|
+
fullMask: boolean;
|
|
115
|
+
}
|
|
116
|
+
export interface SubstitutionDiagnostic {
|
|
117
|
+
id: 'llui/opaque-options-bag' | 'llui/missing-context-provider' | 'llui/substitution-depth-exceeded' | 'llui/substitution-cycle';
|
|
118
|
+
message: string;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Substitute a manifest helper call against its call-site arguments.
|
|
122
|
+
*
|
|
123
|
+
* Given a helper's manifest entry and the argument expressions at one call
|
|
124
|
+
* site, returns the set of host-state paths the call contributes to the
|
|
125
|
+
* consumer's __prefixes table.
|
|
126
|
+
*
|
|
127
|
+
* §4.4 substitution rules:
|
|
128
|
+
* 1. For each ViaParams entry, resolve the call-site argument.
|
|
129
|
+
* 2. `shape: 'accessor'` parameters are walked via `extractPaths`.
|
|
130
|
+
* 3. `shape: 'options-bag'` parameters are unpacked field-by-field
|
|
131
|
+
* against the call site's object-literal argument.
|
|
132
|
+
* 4. `innerReads` are composed against the resolved accessors:
|
|
133
|
+
* - rooted: helper-local, contributed verbatim
|
|
134
|
+
* - param-result: paths from param N's body
|
|
135
|
+
* - param-result-path: lift + sub-path composition
|
|
136
|
+
* 5. `readsThroughResultOf: N` — param's body operates on param N's
|
|
137
|
+
* result; substitution composes through N's accessor.
|
|
138
|
+
* 6. `contextReads` — resolved against `providers`; provider.accessor +
|
|
139
|
+
* subPaths compose to host-state paths.
|
|
140
|
+
* 7. Depth bounded at 8; cycles caught by `(helper-symbol, param-index)`
|
|
141
|
+
* visited set.
|
|
142
|
+
*/
|
|
143
|
+
export declare function substituteHelperCall(entry: HelperEntry, callArgs: ReadonlyArray<ts.Expression>, ctx: SubstitutionContext, helperKey?: string, visited?: Set<string>, depth?: number): SubstitutionResult;
|
|
144
|
+
//# sourceMappingURL=manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
|