@fluixi/compiler 1.0.0-alpha.83 → 1.0.0-alpha.85
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/dist/analyze/expr-shape.cjs +62 -1
- package/dist/analyze/expr-shape.d.cts +14 -0
- package/dist/analyze/expr-shape.d.ts +2 -2
- package/dist/analyze/expr-shape.js +1 -1
- package/dist/analyze/expr-shape.mjs +41 -1
- package/dist/analyze/intrinsics.cjs +80 -1
- package/dist/analyze/intrinsics.d.cts +66 -0
- package/dist/analyze/intrinsics.d.ts +7 -7
- package/dist/analyze/intrinsics.d.ts.map +1 -1
- package/dist/analyze/intrinsics.js +3 -3
- package/dist/analyze/intrinsics.mjs +59 -1
- package/dist/analyze/paren.cjs +134 -0
- package/dist/analyze/paren.d.cts +23 -0
- package/dist/analyze/paren.d.ts +24 -0
- package/dist/analyze/paren.d.ts.map +1 -0
- package/dist/analyze/paren.js +168 -0
- package/dist/analyze/paren.mjs +113 -0
- package/dist/analyze/props-destructure.cjs +226 -1
- package/dist/analyze/props-destructure.d.cts +83 -0
- package/dist/analyze/props-destructure.d.ts +3 -3
- package/dist/analyze/props-destructure.d.ts.map +1 -1
- package/dist/analyze/props-destructure.js +4 -4
- package/dist/analyze/props-destructure.mjs +205 -1
- package/dist/analyze/reactive-bindings.cjs +190 -1
- package/dist/analyze/reactive-bindings.d.cts +42 -0
- package/dist/analyze/reactive-bindings.d.ts +1 -1
- package/dist/analyze/reactive-bindings.js +2 -2
- package/dist/analyze/reactive-bindings.mjs +167 -1
- package/dist/analyze/reactive-expr.cjs +38 -1
- package/dist/analyze/reactive-expr.d.cts +38 -0
- package/dist/analyze/reactive-expr.d.ts +4 -4
- package/dist/analyze/reactive-expr.d.ts.map +1 -1
- package/dist/analyze/reactive-expr.js +2 -2
- package/dist/analyze/reactive-expr.mjs +17 -1
- package/dist/analyze/static-graph.cjs +811 -1
- package/dist/analyze/static-graph.d.cts +102 -0
- package/dist/analyze/static-graph.d.ts +1 -1
- package/dist/analyze/static-graph.d.ts.map +1 -1
- package/dist/analyze/static-graph.js +11 -11
- package/dist/analyze/static-graph.mjs +793 -1
- package/dist/babel-TGY76XJ7.mjs +636 -0
- package/dist/chunk-4PLHS2FP.mjs +158 -0
- package/dist/chunk-6DB5FXS4.mjs +1718 -0
- package/dist/chunk-F74GFKSL.mjs +16 -0
- package/dist/chunk-G6QC2WRJ.mjs +11 -0
- package/dist/chunk-RUDJDZAA.mjs +1078 -0
- package/dist/codegen/backend.cjs +18 -1
- package/dist/codegen/backend.d.cts +35 -0
- package/dist/codegen/backends/imperative.cjs +542 -1
- package/dist/codegen/backends/imperative.d.cts +11 -0
- package/dist/codegen/backends/imperative.d.ts +1 -1
- package/dist/codegen/backends/imperative.d.ts.map +1 -1
- package/dist/codegen/backends/imperative.js +24 -20
- package/dist/codegen/backends/imperative.mjs +519 -1
- package/dist/codegen/contract.cjs +52 -1
- package/dist/codegen/contract.d.cts +24 -0
- package/dist/codegen/contract.d.ts +2 -2
- package/dist/codegen/contract.js +2 -2
- package/dist/codegen/contract.mjs +31 -1
- package/dist/codegen/partial-template.cjs +176 -1
- package/dist/codegen/partial-template.d.cts +61 -0
- package/dist/codegen/partial-template.d.ts +4 -4
- package/dist/codegen/partial-template.js +0 -0
- package/dist/codegen/partial-template.mjs +153 -1
- package/dist/codegen/serialize-static.cjs +125 -1
- package/dist/codegen/serialize-static.d.cts +38 -0
- package/dist/codegen/serialize-static.d.ts +3 -3
- package/dist/codegen/serialize-static.js +6 -6
- package/dist/codegen/serialize-static.mjs +104 -1
- package/dist/frontend/babel/build-ir-lit.cjs +1509 -1
- package/dist/frontend/babel/build-ir-lit.d.cts +26 -0
- package/dist/frontend/babel/build-ir-lit.d.ts +2 -2
- package/dist/frontend/babel/build-ir-lit.mjs +1478 -1
- package/dist/frontend/babel/build-ir.cjs +1524 -1
- package/dist/frontend/babel/build-ir.d.cts +35 -0
- package/dist/frontend/babel/build-ir.d.ts +2 -2
- package/dist/frontend/babel/build-ir.js +2 -2
- package/dist/frontend/babel/build-ir.mjs +1495 -1
- package/dist/frontend/babel/index.cjs +2186 -1
- package/dist/frontend/babel/index.d.cts +33 -0
- package/dist/frontend/babel/index.d.ts +1 -1
- package/dist/frontend/babel/index.js +1 -1
- package/dist/frontend/babel/index.mjs +2156 -1
- package/dist/frontend/babel/lower-template.cjs +1507 -1
- package/dist/frontend/babel/lower-template.d.cts +23 -0
- package/dist/frontend/babel/lower-template.d.ts +1 -1
- package/dist/frontend/babel/lower-template.js +2 -2
- package/dist/frontend/babel/lower-template.mjs +1478 -1
- package/dist/frontend/babel/plugin.cjs +2132 -1
- package/dist/frontend/babel/plugin.d.cts +95 -0
- package/dist/frontend/babel/plugin.d.ts +5 -5
- package/dist/frontend/babel/plugin.d.ts.map +1 -1
- package/dist/frontend/babel/plugin.js +14 -14
- package/dist/frontend/babel/plugin.mjs +2103 -1
- package/dist/frontend/babel/server-functions.cjs +110 -1
- package/dist/frontend/babel/server-functions.d.cts +10 -0
- package/dist/frontend/babel/server-functions.mjs +89 -1
- package/dist/frontend/babel/types.cjs +18 -1
- package/dist/frontend/babel/types.d.cts +33 -0
- package/dist/frontend/types.cjs +18 -1
- package/dist/frontend/types.d.cts +25 -0
- package/dist/frontend/vocabulary.cjs +98 -0
- package/dist/frontend/vocabulary.d.cts +79 -0
- package/dist/frontend/vocabulary.d.ts +80 -0
- package/dist/frontend/vocabulary.d.ts.map +1 -0
- package/dist/frontend/vocabulary.js +124 -0
- package/dist/frontend/vocabulary.mjs +77 -0
- package/dist/index.cjs +1595 -14
- package/dist/index.d.cts +27 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +4 -4
- package/dist/index.mjs +1575 -14
- package/dist/integrations.cjs +4312 -26
- package/dist/integrations.d.cts +215 -0
- package/dist/integrations.d.ts +9 -9
- package/dist/integrations.d.ts.map +1 -1
- package/dist/integrations.js +29 -8
- package/dist/integrations.mjs +536 -18
- package/dist/ir/nodes.cjs +18 -1
- package/dist/ir/nodes.d.cts +168 -0
- package/dist/ir/nodes.d.ts +6 -6
- package/dist/lower/compile-template.cjs +1356 -1
- package/dist/lower/compile-template.d.cts +69 -0
- package/dist/lower/compile-template.d.ts +3 -3
- package/dist/lower/compile-template.js +1 -1
- package/dist/lower/compile-template.mjs +1336 -1
- package/dist/lower/jsx.cjs +529 -1
- package/dist/lower/jsx.d.cts +25 -0
- package/dist/lower/jsx.d.ts +1 -1
- package/dist/lower/jsx.d.ts.map +1 -1
- package/dist/lower/jsx.js +6 -5
- package/dist/lower/jsx.mjs +506 -1
- package/dist/lower/template.cjs +1061 -1
- package/dist/lower/template.d.cts +53 -0
- package/dist/lower/template.d.ts +3 -3
- package/dist/lower/template.d.ts.map +1 -1
- package/dist/lower/template.js +12 -11
- package/dist/lower/template.mjs +1042 -1
- package/dist/lower/text.cjs +42 -1
- package/dist/lower/text.d.cts +10 -0
- package/dist/lower/text.d.ts +2 -2
- package/dist/lower/text.d.ts.map +1 -1
- package/dist/lower/text.js +2 -2
- package/dist/lower/text.mjs +21 -1
- package/dist/optimize/analyze-static.cjs +112 -1
- package/dist/optimize/analyze-static.d.cts +39 -0
- package/dist/optimize/analyze-static.d.ts +2 -2
- package/dist/optimize/analyze-static.js +2 -2
- package/dist/optimize/analyze-static.mjs +91 -1
- package/dist/optimize/collapse-strategies.cjs +90 -1
- package/dist/optimize/collapse-strategies.d.cts +30 -0
- package/dist/optimize/collapse-strategies.d.ts +3 -3
- package/dist/optimize/collapse-strategies.mjs +67 -1
- package/dist/options.cjs +33 -1
- package/dist/options.d.cts +39 -0
- package/dist/options.d.ts +2 -2
- package/dist/options.mjs +12 -1
- package/dist/resolve/builtins.cjs +73 -1
- package/dist/resolve/builtins.d.cts +68 -0
- package/dist/resolve/builtins.d.ts +8 -8
- package/dist/resolve/builtins.d.ts.map +1 -1
- package/dist/resolve/builtins.js +4 -4
- package/dist/resolve/builtins.mjs +53 -1
- package/dist/resolve/component-globals.cjs +234 -14
- package/dist/resolve/component-globals.d.cts +80 -0
- package/dist/resolve/component-globals.d.ts +5 -5
- package/dist/resolve/component-globals.js +10 -10
- package/dist/resolve/component-globals.mjs +211 -14
- package/dist/resolve/component-resolver.cjs +80 -1
- package/dist/resolve/component-resolver.d.cts +68 -0
- package/dist/resolve/component-resolver.d.ts +3 -3
- package/dist/resolve/component-resolver.d.ts.map +1 -1
- package/dist/resolve/component-resolver.js +3 -3
- package/dist/resolve/component-resolver.mjs +59 -1
- package/dist/resolve/load-directive.cjs +93 -1
- package/dist/resolve/load-directive.d.cts +53 -0
- package/dist/resolve/load-directive.d.ts +5 -5
- package/dist/resolve/load-directive.js +6 -6
- package/dist/resolve/load-directive.mjs +72 -1
- package/dist/resolve/resolve-ir.cjs +108 -1
- package/dist/resolve/resolve-ir.d.cts +53 -0
- package/dist/resolve/resolve-ir.d.ts +6 -6
- package/dist/resolve/resolve-ir.d.ts.map +1 -1
- package/dist/resolve/resolve-ir.js +1 -1
- package/dist/resolve/resolve-ir.mjs +85 -1
- package/dist/resolve/write-globals.cjs +319 -14
- package/dist/resolve/write-globals.d.cts +30 -0
- package/dist/resolve/write-globals.js +2 -2
- package/dist/resolve/write-globals.mjs +298 -14
- package/dist/server-fns-ZYWQTSZU.mjs +78 -0
- package/dist/server-functions-PCERFA7A.mjs +82 -0
- package/dist/transform/bindings.cjs +71 -1
- package/dist/transform/bindings.d.cts +16 -0
- package/dist/transform/bindings.d.ts +1 -1
- package/dist/transform/bindings.js +1 -1
- package/dist/transform/bindings.mjs +50 -1
- package/dist/transform/index.cjs +2732 -8
- package/dist/transform/index.d.cts +15 -0
- package/dist/transform/index.mjs +3773 -17
- package/dist/transform/intrinsics.cjs +216 -3
- package/dist/transform/intrinsics.d.cts +21 -0
- package/dist/transform/intrinsics.js +1 -1
- package/dist/transform/intrinsics.mjs +193 -3
- package/dist/transform/props.cjs +441 -3
- package/dist/transform/props.d.cts +45 -0
- package/dist/transform/props.d.ts +1 -1
- package/dist/transform/props.d.ts.map +1 -1
- package/dist/transform/props.js +4 -4
- package/dist/transform/props.mjs +1482 -12
- package/dist/transform/server-fn-id.cjs +35 -1
- package/dist/transform/server-fn-id.d.cts +9 -0
- package/dist/transform/server-fn-id.d.ts +1 -1
- package/dist/transform/server-fn-id.js +2 -2
- package/dist/transform/server-fn-id.mjs +14 -1
- package/dist/transform/server-fns.cjs +114 -2
- package/dist/transform/server-fns.d.cts +12 -0
- package/dist/transform/server-fns.js +3 -3
- package/dist/transform/server-fns.mjs +1155 -11
- package/dist/transform/source-locations.cjs +330 -1
- package/dist/transform/source-locations.d.cts +43 -0
- package/dist/transform/source-locations.d.ts +1 -1
- package/dist/transform/source-locations.js +5 -5
- package/dist/transform/source-locations.mjs +307 -1
- package/dist/transform/templates.cjs +2701 -7
- package/dist/transform/templates.d.cts +69 -0
- package/dist/transform/templates.d.ts +2 -2
- package/dist/transform/templates.d.ts.map +1 -1
- package/dist/transform/templates.js +7 -7
- package/dist/transform/templates.mjs +3743 -16
- package/dist/transform-RWDTQUF5.mjs +893 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/package.json +6 -5
- package/dist/babel-VXKH6MRQ.mjs +0 -1
- package/dist/chunk-3SAEGOMQ.mjs +0 -1
- package/dist/chunk-5KMMN5QP.mjs +0 -1
- package/dist/chunk-IBRM4W7I.mjs +0 -10
- package/dist/chunk-OHHZCYIQ.mjs +0 -1
- package/dist/chunk-YKZ54NVE.mjs +0 -1
- package/dist/server-fns-6QM243HC.mjs +0 -2
- package/dist/server-functions-E3LKCZ4R.mjs +0 -1
- package/dist/transform-C4ZXRVGP.mjs +0 -8
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/*! @fluixi/compiler v1.0.0-alpha.85 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
|
|
2
|
+
|
|
3
|
+
// src/resolve/component-resolver.ts
|
|
4
|
+
var isMapRule = (rule) => "components" in rule;
|
|
5
|
+
function substitute(template, match) {
|
|
6
|
+
return template.replace(/\$(\d+)/g, (whole, index) => {
|
|
7
|
+
const group = match[Number(index)];
|
|
8
|
+
return group ?? whole;
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
function normalise(name, entry) {
|
|
12
|
+
return typeof entry === "string" ? { module: entry, export: name } : entry;
|
|
13
|
+
}
|
|
14
|
+
function createComponentResolver(rules = []) {
|
|
15
|
+
const exact = /* @__PURE__ */ new Map();
|
|
16
|
+
const conflicts = [];
|
|
17
|
+
const patterns = [];
|
|
18
|
+
for (const rule of rules) {
|
|
19
|
+
if (!isMapRule(rule)) {
|
|
20
|
+
patterns.push(rule);
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
for (const [name, entry] of Object.entries(rule.components)) {
|
|
24
|
+
const resolved = normalise(name, entry);
|
|
25
|
+
const existing = exact.get(name);
|
|
26
|
+
if (existing && existing.module !== resolved.module) {
|
|
27
|
+
const conflict = conflicts.find((c) => c.name === name);
|
|
28
|
+
if (conflict) conflict.modules.push(resolved.module);
|
|
29
|
+
else conflicts.push({ name, modules: [existing.module, resolved.module] });
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
exact.set(name, resolved);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const cache = /* @__PURE__ */ new Map();
|
|
36
|
+
const resolve = (name) => {
|
|
37
|
+
if (cache.has(name)) return cache.get(name);
|
|
38
|
+
let result = exact.get(name);
|
|
39
|
+
if (!result) {
|
|
40
|
+
for (const rule of patterns) {
|
|
41
|
+
const match = name.match(new RegExp(rule.match.source, rule.match.flags.replace("g", "")));
|
|
42
|
+
if (!match) continue;
|
|
43
|
+
result = {
|
|
44
|
+
module: substitute(rule.module, match),
|
|
45
|
+
export: rule.export ? substitute(rule.export, match) : name
|
|
46
|
+
};
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
cache.set(name, result);
|
|
51
|
+
return result;
|
|
52
|
+
};
|
|
53
|
+
return {
|
|
54
|
+
resolve,
|
|
55
|
+
names: () => [...exact.keys()],
|
|
56
|
+
conflicts: () => conflicts
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// src/resolve/builtins.ts
|
|
61
|
+
var DOM_CONTROL_FLOW = [
|
|
62
|
+
"Show",
|
|
63
|
+
"For",
|
|
64
|
+
"Index",
|
|
65
|
+
"Switch",
|
|
66
|
+
"Match",
|
|
67
|
+
"Portal",
|
|
68
|
+
"Dynamic",
|
|
69
|
+
"ErrorBoundary"
|
|
70
|
+
];
|
|
71
|
+
var CORE_CONTROL_FLOW = ["Suspense", "SuspenseList", "Await"];
|
|
72
|
+
var ROUTER_COMPONENTS = ["Router", "Outlet", "Redirect", "Link"];
|
|
73
|
+
var BUILTIN_COMPONENTS = [
|
|
74
|
+
...DOM_CONTROL_FLOW,
|
|
75
|
+
...CORE_CONTROL_FLOW,
|
|
76
|
+
...ROUTER_COMPONENTS
|
|
77
|
+
];
|
|
78
|
+
var RESERVED_COMPONENTS = /* @__PURE__ */ new Set([
|
|
79
|
+
...DOM_CONTROL_FLOW,
|
|
80
|
+
...CORE_CONTROL_FLOW
|
|
81
|
+
]);
|
|
82
|
+
function builtinComponentMap(modules = {}) {
|
|
83
|
+
const {
|
|
84
|
+
controlFlowModule = "@fluixi/dom",
|
|
85
|
+
coreModule = "@fluixi/core",
|
|
86
|
+
routerModule = "@fluixi/core/router"
|
|
87
|
+
} = modules;
|
|
88
|
+
const map = {};
|
|
89
|
+
for (const name of DOM_CONTROL_FLOW) map[name] = controlFlowModule;
|
|
90
|
+
for (const name of CORE_CONTROL_FLOW) map[name] = coreModule;
|
|
91
|
+
for (const name of ROUTER_COMPONENTS) map[name] = routerModule;
|
|
92
|
+
return map;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// src/analyze/intrinsics.ts
|
|
96
|
+
var REACTIVE_MODULE = "@fluixi/reactive/signal";
|
|
97
|
+
var INTRINSICS = {
|
|
98
|
+
$signal: { export: "signal", module: REACTIVE_MODULE, returns: "signal-handle" },
|
|
99
|
+
$memo: { export: "memo", module: REACTIVE_MODULE, returns: "memo-handle" },
|
|
100
|
+
$effect: { export: "effect", module: REACTIVE_MODULE, returns: "effect" },
|
|
101
|
+
$store: { export: "store", module: "@fluixi/reactive/store", returns: "store-handle" },
|
|
102
|
+
$resource: { export: "resource", module: REACTIVE_MODULE, returns: "resource-handle" },
|
|
103
|
+
// No short runtime form for these yet, so the intrinsic stands for the `create*`
|
|
104
|
+
// name. Still worth having: no import to write, and when a shorter form is
|
|
105
|
+
// designed, the change is this line rather than a compiler pass.
|
|
106
|
+
$selector: { export: "createSelector", module: REACTIVE_MODULE, returns: "memo-accessor" },
|
|
107
|
+
$deferred: { export: "createDeferred", module: REACTIVE_MODULE, returns: "memo-accessor" },
|
|
108
|
+
// Not value constructors, but the compiler has to know them: they change what a read
|
|
109
|
+
// does. `untrack` suppresses dependency collection, which is exactly the kind of thing
|
|
110
|
+
// dependency analysis must not guess at.
|
|
111
|
+
$untrack: { export: "untrack", module: REACTIVE_MODULE, returns: "plain" },
|
|
112
|
+
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" }
|
|
113
|
+
};
|
|
114
|
+
var RUNTIME_PRIMITIVES = {
|
|
115
|
+
signal: "signal-handle",
|
|
116
|
+
memo: "memo-handle",
|
|
117
|
+
effect: "effect",
|
|
118
|
+
store: "store-handle",
|
|
119
|
+
createSignal: ["signal-accessor", "signal-setter"],
|
|
120
|
+
createMemo: "memo-accessor",
|
|
121
|
+
createEffect: "effect",
|
|
122
|
+
createRenderEffect: "effect",
|
|
123
|
+
createStore: "reactive-object",
|
|
124
|
+
resource: "resource-handle",
|
|
125
|
+
createResource: "reactive-object",
|
|
126
|
+
createSelector: "memo-accessor",
|
|
127
|
+
createDeferred: "memo-accessor"
|
|
128
|
+
};
|
|
129
|
+
var PRIMITIVE_MODULES = [
|
|
130
|
+
"@fluixi/reactive",
|
|
131
|
+
"@fluixi/reactive/signal",
|
|
132
|
+
"@fluixi/reactive/store",
|
|
133
|
+
"@fluixi/core"
|
|
134
|
+
];
|
|
135
|
+
var INTRINSIC_CALL = new RegExp(`\\$(?:${Object.keys(INTRINSICS).map((n) => n.slice(1)).join("|")})\\s*\\(`);
|
|
136
|
+
function mayHaveIntrinsic(code) {
|
|
137
|
+
return INTRINSIC_CALL.test(code);
|
|
138
|
+
}
|
|
139
|
+
function isIntrinsicName(name) {
|
|
140
|
+
return Object.prototype.hasOwnProperty.call(INTRINSICS, name);
|
|
141
|
+
}
|
|
142
|
+
function isPrimitiveModule(source) {
|
|
143
|
+
return PRIMITIVE_MODULES.includes(source);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
export {
|
|
147
|
+
createComponentResolver,
|
|
148
|
+
DOM_CONTROL_FLOW,
|
|
149
|
+
CORE_CONTROL_FLOW,
|
|
150
|
+
ROUTER_COMPONENTS,
|
|
151
|
+
RESERVED_COMPONENTS,
|
|
152
|
+
builtinComponentMap,
|
|
153
|
+
INTRINSICS,
|
|
154
|
+
RUNTIME_PRIMITIVES,
|
|
155
|
+
mayHaveIntrinsic,
|
|
156
|
+
isIntrinsicName,
|
|
157
|
+
isPrimitiveModule
|
|
158
|
+
};
|