@fluixi/compiler 1.0.0-alpha.100
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/README.md +131 -0
- package/dist/analyze/expr-shape.cjs +62 -0
- package/dist/analyze/expr-shape.d.cts +14 -0
- package/dist/analyze/expr-shape.d.ts +15 -0
- package/dist/analyze/expr-shape.d.ts.map +1 -0
- package/dist/analyze/expr-shape.js +37 -0
- package/dist/analyze/expr-shape.mjs +41 -0
- package/dist/analyze/intrinsics.cjs +112 -0
- package/dist/analyze/intrinsics.d.cts +80 -0
- package/dist/analyze/intrinsics.d.ts +81 -0
- package/dist/analyze/intrinsics.d.ts.map +1 -0
- package/dist/analyze/intrinsics.js +126 -0
- package/dist/analyze/intrinsics.mjs +91 -0
- 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 -0
- package/dist/analyze/props-destructure.d.cts +83 -0
- package/dist/analyze/props-destructure.d.ts +84 -0
- package/dist/analyze/props-destructure.d.ts.map +1 -0
- package/dist/analyze/props-destructure.js +272 -0
- package/dist/analyze/props-destructure.mjs +205 -0
- package/dist/analyze/reactive-bindings.cjs +210 -0
- package/dist/analyze/reactive-bindings.d.cts +42 -0
- package/dist/analyze/reactive-bindings.d.ts +43 -0
- package/dist/analyze/reactive-bindings.d.ts.map +1 -0
- package/dist/analyze/reactive-bindings.js +191 -0
- package/dist/analyze/reactive-bindings.mjs +187 -0
- package/dist/analyze/reactive-expr.cjs +38 -0
- package/dist/analyze/reactive-expr.d.cts +38 -0
- package/dist/analyze/reactive-expr.d.ts +39 -0
- package/dist/analyze/reactive-expr.d.ts.map +1 -0
- package/dist/analyze/reactive-expr.js +31 -0
- package/dist/analyze/reactive-expr.mjs +17 -0
- package/dist/analyze/static-graph.cjs +831 -0
- package/dist/analyze/static-graph.d.cts +102 -0
- package/dist/analyze/static-graph.d.ts +103 -0
- package/dist/analyze/static-graph.d.ts.map +1 -0
- package/dist/analyze/static-graph.js +871 -0
- package/dist/analyze/static-graph.mjs +813 -0
- package/dist/babel-I6BUWUCU.mjs +636 -0
- package/dist/chunk-3AICWNF7.mjs +92 -0
- package/dist/chunk-6CWJWGE2.mjs +2170 -0
- package/dist/chunk-C3XPDB4Y.mjs +16 -0
- package/dist/chunk-GX5XV6Z7.mjs +190 -0
- package/dist/chunk-HXEXPWJ2.mjs +999 -0
- package/dist/chunk-NU3W67UZ.mjs +584 -0
- package/dist/chunk-SKAVY75W.mjs +11 -0
- package/dist/codegen/backend.cjs +18 -0
- package/dist/codegen/backend.d.cts +35 -0
- package/dist/codegen/backend.d.ts +36 -0
- package/dist/codegen/backend.d.ts.map +1 -0
- package/dist/codegen/backend.js +1 -0
- package/dist/codegen/backend.mjs +0 -0
- package/dist/codegen/backends/imperative.cjs +577 -0
- package/dist/codegen/backends/imperative.d.cts +11 -0
- package/dist/codegen/backends/imperative.d.ts +12 -0
- package/dist/codegen/backends/imperative.d.ts.map +1 -0
- package/dist/codegen/backends/imperative.js +362 -0
- package/dist/codegen/backends/imperative.mjs +554 -0
- package/dist/codegen/contract.cjs +52 -0
- package/dist/codegen/contract.d.cts +24 -0
- package/dist/codegen/contract.d.ts +25 -0
- package/dist/codegen/contract.d.ts.map +1 -0
- package/dist/codegen/contract.js +30 -0
- package/dist/codegen/contract.mjs +31 -0
- package/dist/codegen/partial-template.cjs +176 -0
- package/dist/codegen/partial-template.d.cts +61 -0
- package/dist/codegen/partial-template.d.ts +62 -0
- package/dist/codegen/partial-template.d.ts.map +1 -0
- package/dist/codegen/partial-template.js +0 -0
- package/dist/codegen/partial-template.mjs +153 -0
- package/dist/codegen/serialize-static.cjs +125 -0
- package/dist/codegen/serialize-static.d.cts +38 -0
- package/dist/codegen/serialize-static.d.ts +39 -0
- package/dist/codegen/serialize-static.d.ts.map +1 -0
- package/dist/codegen/serialize-static.js +165 -0
- package/dist/codegen/serialize-static.mjs +104 -0
- package/dist/frontend/babel/build-ir-lit.cjs +1933 -0
- package/dist/frontend/babel/build-ir-lit.d.cts +26 -0
- package/dist/frontend/babel/build-ir-lit.d.ts +27 -0
- package/dist/frontend/babel/build-ir-lit.d.ts.map +1 -0
- package/dist/frontend/babel/build-ir-lit.js +13 -0
- package/dist/frontend/babel/build-ir-lit.mjs +1902 -0
- package/dist/frontend/babel/build-ir.cjs +1948 -0
- package/dist/frontend/babel/build-ir.d.cts +35 -0
- package/dist/frontend/babel/build-ir.d.ts +36 -0
- package/dist/frontend/babel/build-ir.d.ts.map +1 -0
- package/dist/frontend/babel/build-ir.js +124 -0
- package/dist/frontend/babel/build-ir.mjs +1919 -0
- package/dist/frontend/babel/index.cjs +2610 -0
- package/dist/frontend/babel/index.d.cts +33 -0
- package/dist/frontend/babel/index.d.ts +34 -0
- package/dist/frontend/babel/index.d.ts.map +1 -0
- package/dist/frontend/babel/index.js +65 -0
- package/dist/frontend/babel/index.mjs +2580 -0
- package/dist/frontend/babel/lower-template.cjs +1931 -0
- package/dist/frontend/babel/lower-template.d.cts +23 -0
- package/dist/frontend/babel/lower-template.d.ts +24 -0
- package/dist/frontend/babel/lower-template.d.ts.map +1 -0
- package/dist/frontend/babel/lower-template.js +64 -0
- package/dist/frontend/babel/lower-template.mjs +1902 -0
- package/dist/frontend/babel/plugin.cjs +2556 -0
- package/dist/frontend/babel/plugin.d.cts +95 -0
- package/dist/frontend/babel/plugin.d.ts +96 -0
- package/dist/frontend/babel/plugin.d.ts.map +1 -0
- package/dist/frontend/babel/plugin.js +523 -0
- package/dist/frontend/babel/plugin.mjs +2527 -0
- package/dist/frontend/babel/server-functions.cjs +110 -0
- package/dist/frontend/babel/server-functions.d.cts +10 -0
- package/dist/frontend/babel/server-functions.d.ts +11 -0
- package/dist/frontend/babel/server-functions.d.ts.map +1 -0
- package/dist/frontend/babel/server-functions.js +81 -0
- package/dist/frontend/babel/server-functions.mjs +89 -0
- package/dist/frontend/babel/types.cjs +18 -0
- package/dist/frontend/babel/types.d.cts +33 -0
- package/dist/frontend/babel/types.d.ts +34 -0
- package/dist/frontend/babel/types.d.ts.map +1 -0
- package/dist/frontend/babel/types.js +1 -0
- package/dist/frontend/babel/types.mjs +0 -0
- package/dist/frontend/types.cjs +18 -0
- package/dist/frontend/types.d.cts +25 -0
- package/dist/frontend/types.d.ts +26 -0
- package/dist/frontend/types.d.ts.map +1 -0
- package/dist/frontend/types.js +1 -0
- package/dist/frontend/types.mjs +0 -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 +1957 -0
- package/dist/index.d.cts +27 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +38 -0
- package/dist/index.mjs +1949 -0
- package/dist/integrations.cjs +5705 -0
- package/dist/integrations.d.cts +215 -0
- package/dist/integrations.d.ts +216 -0
- package/dist/integrations.d.ts.map +1 -0
- package/dist/integrations.js +566 -0
- package/dist/integrations.mjs +810 -0
- package/dist/ir/nodes.cjs +18 -0
- package/dist/ir/nodes.d.cts +168 -0
- package/dist/ir/nodes.d.ts +169 -0
- package/dist/ir/nodes.d.ts.map +1 -0
- package/dist/ir/nodes.js +1 -0
- package/dist/ir/nodes.mjs +0 -0
- package/dist/lower/compile-template.cjs +1670 -0
- package/dist/lower/compile-template.d.cts +82 -0
- package/dist/lower/compile-template.d.ts +83 -0
- package/dist/lower/compile-template.d.ts.map +1 -0
- package/dist/lower/compile-template.js +79 -0
- package/dist/lower/compile-template.mjs +1662 -0
- package/dist/lower/entities.cjs +288 -0
- package/dist/lower/entities.d.cts +1 -0
- package/dist/lower/entities.d.ts +2 -0
- package/dist/lower/entities.d.ts.map +1 -0
- package/dist/lower/entities.js +54 -0
- package/dist/lower/entities.mjs +267 -0
- package/dist/lower/jsx.cjs +1101 -0
- package/dist/lower/jsx.d.cts +33 -0
- package/dist/lower/jsx.d.ts +34 -0
- package/dist/lower/jsx.d.ts.map +1 -0
- package/dist/lower/jsx.js +414 -0
- package/dist/lower/jsx.mjs +1078 -0
- package/dist/lower/template.cjs +1354 -0
- package/dist/lower/template.d.cts +53 -0
- package/dist/lower/template.d.ts +54 -0
- package/dist/lower/template.d.ts.map +1 -0
- package/dist/lower/template.js +542 -0
- package/dist/lower/template.mjs +1335 -0
- package/dist/lower/text.cjs +42 -0
- package/dist/lower/text.d.cts +10 -0
- package/dist/lower/text.d.ts +11 -0
- package/dist/lower/text.d.ts.map +1 -0
- package/dist/lower/text.js +31 -0
- package/dist/lower/text.mjs +21 -0
- package/dist/optimize/analyze-static.cjs +112 -0
- package/dist/optimize/analyze-static.d.cts +39 -0
- package/dist/optimize/analyze-static.d.ts +40 -0
- package/dist/optimize/analyze-static.d.ts.map +1 -0
- package/dist/optimize/analyze-static.js +131 -0
- package/dist/optimize/analyze-static.mjs +91 -0
- package/dist/optimize/collapse-strategies.cjs +90 -0
- package/dist/optimize/collapse-strategies.d.cts +30 -0
- package/dist/optimize/collapse-strategies.d.ts +31 -0
- package/dist/optimize/collapse-strategies.d.ts.map +1 -0
- package/dist/optimize/collapse-strategies.js +33 -0
- package/dist/optimize/collapse-strategies.mjs +67 -0
- package/dist/options.cjs +33 -0
- package/dist/options.d.cts +39 -0
- package/dist/options.d.ts +40 -0
- package/dist/options.d.ts.map +1 -0
- package/dist/options.js +8 -0
- package/dist/options.mjs +12 -0
- package/dist/resolve/builtins.cjs +73 -0
- package/dist/resolve/builtins.d.cts +68 -0
- package/dist/resolve/builtins.d.ts +69 -0
- package/dist/resolve/builtins.d.ts.map +1 -0
- package/dist/resolve/builtins.js +64 -0
- package/dist/resolve/builtins.mjs +53 -0
- package/dist/resolve/component-globals.cjs +272 -0
- package/dist/resolve/component-globals.d.cts +88 -0
- package/dist/resolve/component-globals.d.ts +89 -0
- package/dist/resolve/component-globals.d.ts.map +1 -0
- package/dist/resolve/component-globals.js +160 -0
- package/dist/resolve/component-globals.mjs +249 -0
- package/dist/resolve/component-resolver.cjs +80 -0
- package/dist/resolve/component-resolver.d.cts +68 -0
- package/dist/resolve/component-resolver.d.ts +69 -0
- package/dist/resolve/component-resolver.d.ts.map +1 -0
- package/dist/resolve/component-resolver.js +95 -0
- package/dist/resolve/component-resolver.mjs +59 -0
- package/dist/resolve/load-directive.cjs +93 -0
- package/dist/resolve/load-directive.d.cts +53 -0
- package/dist/resolve/load-directive.d.ts +54 -0
- package/dist/resolve/load-directive.d.ts.map +1 -0
- package/dist/resolve/load-directive.js +93 -0
- package/dist/resolve/load-directive.mjs +72 -0
- package/dist/resolve/resolve-ir.cjs +108 -0
- package/dist/resolve/resolve-ir.d.cts +53 -0
- package/dist/resolve/resolve-ir.d.ts +54 -0
- package/dist/resolve/resolve-ir.d.ts.map +1 -0
- package/dist/resolve/resolve-ir.js +58 -0
- package/dist/resolve/resolve-ir.mjs +85 -0
- package/dist/resolve/write-globals.cjs +383 -0
- package/dist/resolve/write-globals.d.cts +36 -0
- package/dist/resolve/write-globals.d.ts +37 -0
- package/dist/resolve/write-globals.d.ts.map +1 -0
- package/dist/resolve/write-globals.js +169 -0
- package/dist/resolve/write-globals.mjs +362 -0
- package/dist/server-fns-VZLHMQTC.mjs +79 -0
- package/dist/server-functions-UAZKOLZW.mjs +82 -0
- package/dist/transform/bindings.cjs +71 -0
- package/dist/transform/bindings.d.cts +16 -0
- package/dist/transform/bindings.d.ts +17 -0
- package/dist/transform/bindings.d.ts.map +1 -0
- package/dist/transform/bindings.js +69 -0
- package/dist/transform/bindings.mjs +50 -0
- package/dist/transform/index.cjs +3837 -0
- package/dist/transform/index.d.cts +15 -0
- package/dist/transform/index.d.ts +16 -0
- package/dist/transform/index.d.ts.map +1 -0
- package/dist/transform/index.js +12 -0
- package/dist/transform/index.mjs +4882 -0
- package/dist/transform/intrinsics.cjs +261 -0
- package/dist/transform/intrinsics.d.cts +33 -0
- package/dist/transform/intrinsics.d.ts +34 -0
- package/dist/transform/intrinsics.d.ts.map +1 -0
- package/dist/transform/intrinsics.js +120 -0
- package/dist/transform/intrinsics.mjs +238 -0
- package/dist/transform/props.cjs +441 -0
- package/dist/transform/props.d.cts +45 -0
- package/dist/transform/props.d.ts +46 -0
- package/dist/transform/props.d.ts.map +1 -0
- package/dist/transform/props.js +221 -0
- package/dist/transform/props.mjs +1487 -0
- package/dist/transform/server-fn-id.cjs +35 -0
- package/dist/transform/server-fn-id.d.cts +9 -0
- package/dist/transform/server-fn-id.d.ts +10 -0
- package/dist/transform/server-fn-id.d.ts.map +1 -0
- package/dist/transform/server-fn-id.js +18 -0
- package/dist/transform/server-fn-id.mjs +14 -0
- package/dist/transform/server-fns.cjs +114 -0
- package/dist/transform/server-fns.d.cts +12 -0
- package/dist/transform/server-fns.d.ts +13 -0
- package/dist/transform/server-fns.d.ts.map +1 -0
- package/dist/transform/server-fns.js +94 -0
- package/dist/transform/server-fns.mjs +1160 -0
- package/dist/transform/source-locations.cjs +393 -0
- package/dist/transform/source-locations.d.cts +48 -0
- package/dist/transform/source-locations.d.ts +49 -0
- package/dist/transform/source-locations.d.ts.map +1 -0
- package/dist/transform/source-locations.js +303 -0
- package/dist/transform/source-locations.mjs +370 -0
- package/dist/transform/styles.cjs +606 -0
- package/dist/transform/styles.d.cts +237 -0
- package/dist/transform/styles.d.ts +238 -0
- package/dist/transform/styles.d.ts.map +1 -0
- package/dist/transform/styles.js +743 -0
- package/dist/transform/styles.mjs +671 -0
- package/dist/transform/templates.cjs +3806 -0
- package/dist/transform/templates.d.cts +82 -0
- package/dist/transform/templates.d.ts +83 -0
- package/dist/transform/templates.d.ts.map +1 -0
- package/dist/transform/templates.js +613 -0
- package/dist/transform/templates.mjs +4852 -0
- package/dist/transform-3W45L3EA.mjs +951 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -0
- package/dist/vite-styles.cjs +223 -0
- package/dist/vite-styles.d.cts +68 -0
- package/dist/vite-styles.d.ts +69 -0
- package/dist/vite-styles.d.ts.map +1 -0
- package/dist/vite-styles.js +241 -0
- package/dist/vite-styles.mjs +214 -0
- package/package.json +141 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/*! @fluixi/compiler v1.0.0-alpha.100 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
|
|
2
|
+
|
|
3
|
+
// src/transform/server-fn-id.ts
|
|
4
|
+
function hash(s) {
|
|
5
|
+
let h = 5381;
|
|
6
|
+
for (let i = 0; i < s.length; i++) h = h * 33 ^ s.charCodeAt(i);
|
|
7
|
+
return (h >>> 0).toString(16);
|
|
8
|
+
}
|
|
9
|
+
function serverFnId(filename, root, index) {
|
|
10
|
+
const rel = (filename || "unknown").replace(root ? root + "/" : "", "");
|
|
11
|
+
return `${hash(rel)}:${index}`;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export {
|
|
15
|
+
serverFnId
|
|
16
|
+
};
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/*! @fluixi/compiler v1.0.0-alpha.100 | (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
|
+
$cachedResource: { export: "cachedResource", module: "@fluixi/reactive/cached-resource", returns: "resource-handle" },
|
|
104
|
+
// No short runtime form for these yet, so the intrinsic stands for the `create*`
|
|
105
|
+
// name. Still worth having: no import to write, and when a shorter form is
|
|
106
|
+
// designed, the change is this line rather than a compiler pass.
|
|
107
|
+
$selector: { export: "createSelector", module: REACTIVE_MODULE, returns: "memo-accessor" },
|
|
108
|
+
$deferred: { export: "createDeferred", module: REACTIVE_MODULE, returns: "memo-accessor" },
|
|
109
|
+
// Not value constructors, but the compiler has to know them: they change what a read
|
|
110
|
+
// does. `untrack` suppresses dependency collection, which is exactly the kind of thing
|
|
111
|
+
// dependency analysis must not guess at.
|
|
112
|
+
$untrack: { export: "untrack", module: REACTIVE_MODULE, returns: "plain" },
|
|
113
|
+
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" },
|
|
114
|
+
// Scopes, scheduling and lifecycle: no value to classify, but the same authoring promise,
|
|
115
|
+
// no import to write. `$cleanup` registers a callback on the current owner (`onCleanup`).
|
|
116
|
+
$batch: { export: "batch", module: REACTIVE_MODULE, returns: "plain" },
|
|
117
|
+
$cleanup: { export: "onCleanup", module: REACTIVE_MODULE, returns: "plain" },
|
|
118
|
+
$root: { export: "root", module: REACTIVE_MODULE, returns: "plain" },
|
|
119
|
+
$context: { export: "context", module: REACTIVE_MODULE, returns: "plain" },
|
|
120
|
+
$renderEffect: { export: "renderEffect", module: REACTIVE_MODULE, returns: "effect" },
|
|
121
|
+
$computed: { export: "computed", module: REACTIVE_MODULE, returns: "effect" },
|
|
122
|
+
// Storage for where the code runs, and a signal kept in it. `$persisted` is a signal
|
|
123
|
+
// handle as far as reads go: the same accessor with `set` on it.
|
|
124
|
+
$storage: { export: "useStorage", module: "@fluixi/core/storage", returns: "plain" },
|
|
125
|
+
$asyncStorage: { export: "useAsyncStorage", module: "@fluixi/core/storage", returns: "plain" },
|
|
126
|
+
$persisted: { export: "persisted", module: "@fluixi/core/storage", returns: "signal-handle" },
|
|
127
|
+
// An environment variable, public or server-only; the browser build refuses a secret.
|
|
128
|
+
$env: { export: "env", module: "@fluixi/start/env", returns: "plain" }
|
|
129
|
+
};
|
|
130
|
+
var RUNTIME_PRIMITIVES = {
|
|
131
|
+
signal: "signal-handle",
|
|
132
|
+
memo: "memo-handle",
|
|
133
|
+
effect: "effect",
|
|
134
|
+
store: "store-handle",
|
|
135
|
+
createSignal: ["signal-accessor", "signal-setter"],
|
|
136
|
+
createMemo: "memo-accessor",
|
|
137
|
+
createEffect: "effect",
|
|
138
|
+
createRenderEffect: "effect",
|
|
139
|
+
renderEffect: "effect",
|
|
140
|
+
computed: "effect",
|
|
141
|
+
createStore: "reactive-object",
|
|
142
|
+
resource: "resource-handle",
|
|
143
|
+
cachedResource: "resource-handle",
|
|
144
|
+
createResource: "reactive-object",
|
|
145
|
+
createSelector: "memo-accessor",
|
|
146
|
+
createDeferred: "memo-accessor"
|
|
147
|
+
};
|
|
148
|
+
var PRIMITIVE_MODULES = [
|
|
149
|
+
"@fluixi/reactive",
|
|
150
|
+
"@fluixi/reactive/signal",
|
|
151
|
+
"@fluixi/reactive/store",
|
|
152
|
+
"@fluixi/reactive/cached-resource",
|
|
153
|
+
"@fluixi/core"
|
|
154
|
+
];
|
|
155
|
+
var TAG_INTRINSICS = {
|
|
156
|
+
$html: { export: "html", module: "@fluixi/core" },
|
|
157
|
+
$svg: { export: "svg", module: "@fluixi/core" },
|
|
158
|
+
$css: { export: "css", module: "@fluixi/core" }
|
|
159
|
+
};
|
|
160
|
+
function tagIntrinsics(bound) {
|
|
161
|
+
const tags = /* @__PURE__ */ new Map();
|
|
162
|
+
for (const [name, tag] of Object.entries(TAG_INTRINSICS)) if (!bound.has(name)) tags.set(name, tag.export);
|
|
163
|
+
return tags;
|
|
164
|
+
}
|
|
165
|
+
var INTRINSIC_CALL = new RegExp(`\\$(?:${Object.keys(INTRINSICS).map((n) => n.slice(1)).join("|")})\\s*\\(`);
|
|
166
|
+
function mayHaveIntrinsic(code) {
|
|
167
|
+
return INTRINSIC_CALL.test(code);
|
|
168
|
+
}
|
|
169
|
+
function isIntrinsicName(name) {
|
|
170
|
+
return Object.prototype.hasOwnProperty.call(INTRINSICS, name);
|
|
171
|
+
}
|
|
172
|
+
function isPrimitiveModule(source) {
|
|
173
|
+
return PRIMITIVE_MODULES.includes(source);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
export {
|
|
177
|
+
createComponentResolver,
|
|
178
|
+
DOM_CONTROL_FLOW,
|
|
179
|
+
CORE_CONTROL_FLOW,
|
|
180
|
+
ROUTER_COMPONENTS,
|
|
181
|
+
RESERVED_COMPONENTS,
|
|
182
|
+
builtinComponentMap,
|
|
183
|
+
INTRINSICS,
|
|
184
|
+
RUNTIME_PRIMITIVES,
|
|
185
|
+
TAG_INTRINSICS,
|
|
186
|
+
tagIntrinsics,
|
|
187
|
+
mayHaveIntrinsic,
|
|
188
|
+
isIntrinsicName,
|
|
189
|
+
isPrimitiveModule
|
|
190
|
+
};
|