@fluixi/compiler 1.0.0-alpha.91 → 1.0.0-alpha.92
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/intrinsics.cjs +3 -1
- package/dist/analyze/intrinsics.d.ts.map +1 -1
- package/dist/analyze/intrinsics.js +2 -0
- package/dist/analyze/intrinsics.mjs +3 -1
- package/dist/analyze/reactive-bindings.cjs +3 -1
- package/dist/analyze/reactive-bindings.mjs +3 -1
- package/dist/analyze/static-graph.cjs +4 -2
- package/dist/analyze/static-graph.mjs +4 -2
- package/dist/{babel-VBLQRHQ2.mjs → babel-GI375YZ2.mjs} +4 -4
- package/dist/{chunk-TWDJUXWZ.mjs → chunk-DWNWN5RH.mjs} +1 -1
- package/dist/{chunk-D53J7ICY.mjs → chunk-QZ4CJPYP.mjs} +1 -1
- package/dist/{chunk-3JWMCK4A.mjs → chunk-VC6X44FS.mjs} +2 -2
- package/dist/{chunk-QX6Y3OAR.mjs → chunk-VOUI6XPV.mjs} +1 -1
- package/dist/{chunk-S4J4OCWK.mjs → chunk-XJ5H2MXY.mjs} +4 -2
- package/dist/codegen/backends/imperative.cjs +3 -1
- package/dist/codegen/backends/imperative.mjs +3 -1
- package/dist/frontend/babel/build-ir-lit.cjs +3 -1
- package/dist/frontend/babel/build-ir-lit.mjs +3 -1
- package/dist/frontend/babel/build-ir.cjs +3 -1
- package/dist/frontend/babel/build-ir.mjs +3 -1
- package/dist/frontend/babel/index.cjs +4 -2
- package/dist/frontend/babel/index.mjs +4 -2
- package/dist/frontend/babel/lower-template.cjs +3 -1
- package/dist/frontend/babel/lower-template.mjs +3 -1
- package/dist/frontend/babel/plugin.cjs +3 -1
- package/dist/frontend/babel/plugin.mjs +3 -1
- package/dist/index.cjs +46 -9
- package/dist/index.mjs +48 -11
- package/dist/integrations.cjs +71 -10
- package/dist/integrations.mjs +53 -19
- package/dist/lower/compile-template.cjs +4 -2
- package/dist/lower/compile-template.mjs +4 -2
- package/dist/lower/template.cjs +3 -1
- package/dist/lower/template.mjs +3 -1
- package/dist/resolve/builtins.cjs +1 -1
- package/dist/resolve/builtins.mjs +1 -1
- package/dist/resolve/component-globals.cjs +19 -8
- package/dist/resolve/component-globals.d.cts +8 -0
- package/dist/resolve/component-globals.d.ts +8 -0
- package/dist/resolve/component-globals.d.ts.map +1 -1
- package/dist/resolve/component-globals.js +21 -12
- package/dist/resolve/component-globals.mjs +19 -8
- package/dist/resolve/write-globals.cjs +45 -8
- package/dist/resolve/write-globals.d.cts +6 -0
- package/dist/resolve/write-globals.d.ts +6 -0
- package/dist/resolve/write-globals.d.ts.map +1 -1
- package/dist/resolve/write-globals.js +35 -2
- package/dist/resolve/write-globals.mjs +47 -10
- package/dist/{server-fns-J56G3PFP.mjs → server-fns-BBZRZUPP.mjs} +4 -4
- package/dist/{server-functions-7PUFLRGF.mjs → server-functions-VEGLIFCE.mjs} +3 -3
- package/dist/transform/index.cjs +30 -3
- package/dist/transform/index.mjs +30 -3
- package/dist/transform/intrinsics.cjs +29 -2
- package/dist/transform/intrinsics.d.cts +12 -0
- package/dist/transform/intrinsics.d.ts +12 -0
- package/dist/transform/intrinsics.d.ts.map +1 -1
- package/dist/transform/intrinsics.js +43 -1
- package/dist/transform/intrinsics.mjs +29 -2
- package/dist/transform/source-locations.cjs +3 -1
- package/dist/transform/source-locations.mjs +3 -1
- package/dist/transform/templates.cjs +29 -2
- package/dist/transform/templates.d.ts.map +1 -1
- package/dist/transform/templates.js +3 -1
- package/dist/transform/templates.mjs +29 -2
- package/dist/{transform-D536WXGM.mjs → transform-UWZ7ZGJ2.mjs} +31 -6
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -45,7 +45,9 @@ var INTRINSICS = {
|
|
|
45
45
|
// does. `untrack` suppresses dependency collection, which is exactly the kind of thing
|
|
46
46
|
// dependency analysis must not guess at.
|
|
47
47
|
$untrack: { export: "untrack", module: REACTIVE_MODULE, returns: "plain" },
|
|
48
|
-
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" }
|
|
48
|
+
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" },
|
|
49
|
+
// An environment variable, public or server-only; the browser build refuses a secret.
|
|
50
|
+
$env: { export: "env", module: "@fluixi/start/env", returns: "plain" }
|
|
49
51
|
};
|
|
50
52
|
var RUNTIME_PRIMITIVES = {
|
|
51
53
|
signal: "signal-handle",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intrinsics.d.ts","sourceRoot":"","sources":["../../src/analyze/intrinsics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,6DAA6D;AAC7D,MAAM,MAAM,YAAY,GACpB,OAAO;AACT,6EAA6E;GAC3E,eAAe;AACjB,+CAA+C;GAC7C,aAAa;AACf,+DAA+D;GAC7D,cAAc;AAChB,oFAAoF;GAClF,iBAAiB;AACnB,8EAA8E;GAC5E,iBAAiB,GACjB,eAAe,GACf,eAAe,GACf,QAAQ,GACR,iBAAiB,CAAC;AAEtB,MAAM,WAAW,SAAS;IACxB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,OAAO,EAAE,YAAY,GAAG,SAAS,YAAY,EAAE,CAAC;CACjD;AAED,0FAA0F;AAC1F,eAAO,MAAM,eAAe,4BAA4B,CAAC;AAEzD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"intrinsics.d.ts","sourceRoot":"","sources":["../../src/analyze/intrinsics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,6DAA6D;AAC7D,MAAM,MAAM,YAAY,GACpB,OAAO;AACT,6EAA6E;GAC3E,eAAe;AACjB,+CAA+C;GAC7C,aAAa;AACf,+DAA+D;GAC7D,cAAc;AAChB,oFAAoF;GAClF,iBAAiB;AACnB,8EAA8E;GAC5E,iBAAiB,GACjB,eAAe,GACf,eAAe,GACf,QAAQ,GACR,iBAAiB,CAAC;AAEtB,MAAM,WAAW,SAAS;IACxB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,OAAO,EAAE,YAAY,GAAG,SAAS,YAAY,EAAE,CAAC;CACjD;AAED,0FAA0F;AAC1F,eAAO,MAAM,eAAe,4BAA4B,CAAC;AAEzD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAsB1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAc7E,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAK9C,CAAC;AAQF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,6DAA6D;AAC7D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEzD"}
|
|
@@ -44,6 +44,8 @@ export const INTRINSICS = {
|
|
|
44
44
|
// dependency analysis must not guess at.
|
|
45
45
|
$untrack: { export: 'untrack', module: REACTIVE_MODULE, returns: 'plain' },
|
|
46
46
|
$untrackStore: { export: 'untrackStore', module: '@fluixi/reactive/store', returns: 'plain' },
|
|
47
|
+
// An environment variable, public or server-only; the browser build refuses a secret.
|
|
48
|
+
$env: { export: 'env', module: '@fluixi/start/env', returns: 'plain' },
|
|
47
49
|
};
|
|
48
50
|
/**
|
|
49
51
|
* The runtime names, for the other direction: source that imports `createSignal` gets
|
|
@@ -15,7 +15,9 @@ var INTRINSICS = {
|
|
|
15
15
|
// does. `untrack` suppresses dependency collection, which is exactly the kind of thing
|
|
16
16
|
// dependency analysis must not guess at.
|
|
17
17
|
$untrack: { export: "untrack", module: REACTIVE_MODULE, returns: "plain" },
|
|
18
|
-
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" }
|
|
18
|
+
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" },
|
|
19
|
+
// An environment variable, public or server-only; the browser build refuses a secret.
|
|
20
|
+
$env: { export: "env", module: "@fluixi/start/env", returns: "plain" }
|
|
19
21
|
};
|
|
20
22
|
var RUNTIME_PRIMITIVES = {
|
|
21
23
|
signal: "signal-handle",
|
|
@@ -42,7 +42,9 @@ var INTRINSICS = {
|
|
|
42
42
|
// does. `untrack` suppresses dependency collection, which is exactly the kind of thing
|
|
43
43
|
// dependency analysis must not guess at.
|
|
44
44
|
$untrack: { export: "untrack", module: REACTIVE_MODULE, returns: "plain" },
|
|
45
|
-
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" }
|
|
45
|
+
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" },
|
|
46
|
+
// An environment variable, public or server-only; the browser build refuses a secret.
|
|
47
|
+
$env: { export: "env", module: "@fluixi/start/env", returns: "plain" }
|
|
46
48
|
};
|
|
47
49
|
var RUNTIME_PRIMITIVES = {
|
|
48
50
|
signal: "signal-handle",
|
|
@@ -15,7 +15,9 @@ var INTRINSICS = {
|
|
|
15
15
|
// does. `untrack` suppresses dependency collection, which is exactly the kind of thing
|
|
16
16
|
// dependency analysis must not guess at.
|
|
17
17
|
$untrack: { export: "untrack", module: REACTIVE_MODULE, returns: "plain" },
|
|
18
|
-
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" }
|
|
18
|
+
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" },
|
|
19
|
+
// An environment variable, public or server-only; the browser build refuses a secret.
|
|
20
|
+
$env: { export: "env", module: "@fluixi/start/env", returns: "plain" }
|
|
19
21
|
};
|
|
20
22
|
var RUNTIME_PRIMITIVES = {
|
|
21
23
|
signal: "signal-handle",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @fluixi/compiler v1.0.0-alpha.
|
|
1
|
+
/*! @fluixi/compiler v1.0.0-alpha.92 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
|
|
2
2
|
"use strict";
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -44,7 +44,9 @@ var INTRINSICS = {
|
|
|
44
44
|
// does. `untrack` suppresses dependency collection, which is exactly the kind of thing
|
|
45
45
|
// dependency analysis must not guess at.
|
|
46
46
|
$untrack: { export: "untrack", module: REACTIVE_MODULE, returns: "plain" },
|
|
47
|
-
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" }
|
|
47
|
+
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" },
|
|
48
|
+
// An environment variable, public or server-only; the browser build refuses a secret.
|
|
49
|
+
$env: { export: "env", module: "@fluixi/start/env", returns: "plain" }
|
|
48
50
|
};
|
|
49
51
|
var RUNTIME_PRIMITIVES = {
|
|
50
52
|
signal: "signal-handle",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @fluixi/compiler v1.0.0-alpha.
|
|
1
|
+
/*! @fluixi/compiler v1.0.0-alpha.92 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
|
|
2
2
|
|
|
3
3
|
// src/analyze/static-graph.ts
|
|
4
4
|
import { parse } from "@babel/parser";
|
|
@@ -23,7 +23,9 @@ var INTRINSICS = {
|
|
|
23
23
|
// does. `untrack` suppresses dependency collection, which is exactly the kind of thing
|
|
24
24
|
// dependency analysis must not guess at.
|
|
25
25
|
$untrack: { export: "untrack", module: REACTIVE_MODULE, returns: "plain" },
|
|
26
|
-
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" }
|
|
26
|
+
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" },
|
|
27
|
+
// An environment variable, public or server-only; the browser build refuses a secret.
|
|
28
|
+
$env: { export: "env", module: "@fluixi/start/env", returns: "plain" }
|
|
27
29
|
};
|
|
28
30
|
var RUNTIME_PRIMITIVES = {
|
|
29
31
|
signal: "signal-handle",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @fluixi/compiler v1.0.0-alpha.
|
|
1
|
+
/*! @fluixi/compiler v1.0.0-alpha.92 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
|
|
2
2
|
import {
|
|
3
3
|
analyzeStatic,
|
|
4
4
|
buildJsxIR,
|
|
@@ -10,13 +10,13 @@ import {
|
|
|
10
10
|
lowerTemplate,
|
|
11
11
|
resolveComponentSources,
|
|
12
12
|
shapeOf
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-VC6X44FS.mjs";
|
|
14
14
|
import {
|
|
15
15
|
CORE_CONTROL_FLOW,
|
|
16
16
|
ROUTER_COMPONENTS,
|
|
17
17
|
createComponentResolver
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import "./chunk-
|
|
18
|
+
} from "./chunk-XJ5H2MXY.mjs";
|
|
19
|
+
import "./chunk-VOUI6XPV.mjs";
|
|
20
20
|
|
|
21
21
|
// src/frontend/babel/plugin.ts
|
|
22
22
|
import { declare } from "@babel/helper-plugin-utils";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @fluixi/compiler v1.0.0-alpha.
|
|
1
|
+
/*! @fluixi/compiler v1.0.0-alpha.92 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
|
|
2
2
|
|
|
3
3
|
// ../../node_modules/.pnpm/@jridgewell+sourcemap-codec@1.5.5/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs
|
|
4
4
|
var comma = ",".charCodeAt(0);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @fluixi/compiler v1.0.0-alpha.
|
|
1
|
+
/*! @fluixi/compiler v1.0.0-alpha.92 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
|
|
2
2
|
import {
|
|
3
3
|
INTRINSICS,
|
|
4
4
|
RESERVED_COMPONENTS,
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
builtinComponentMap,
|
|
8
8
|
isIntrinsicName,
|
|
9
9
|
isPrimitiveModule
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-XJ5H2MXY.mjs";
|
|
11
11
|
|
|
12
12
|
// src/analyze/expr-shape.ts
|
|
13
13
|
var CALL = /* @__PURE__ */ new Set(["CallExpression", "OptionalCallExpression"]);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @fluixi/compiler v1.0.0-alpha.
|
|
1
|
+
/*! @fluixi/compiler v1.0.0-alpha.92 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
|
|
2
2
|
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
3
3
|
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
4
4
|
}) : x)(function(x) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @fluixi/compiler v1.0.0-alpha.
|
|
1
|
+
/*! @fluixi/compiler v1.0.0-alpha.92 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
|
|
2
2
|
|
|
3
3
|
// src/resolve/component-resolver.ts
|
|
4
4
|
var isMapRule = (rule) => "components" in rule;
|
|
@@ -109,7 +109,9 @@ var INTRINSICS = {
|
|
|
109
109
|
// does. `untrack` suppresses dependency collection, which is exactly the kind of thing
|
|
110
110
|
// dependency analysis must not guess at.
|
|
111
111
|
$untrack: { export: "untrack", module: REACTIVE_MODULE, returns: "plain" },
|
|
112
|
-
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" }
|
|
112
|
+
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" },
|
|
113
|
+
// An environment variable, public or server-only; the browser build refuses a secret.
|
|
114
|
+
$env: { export: "env", module: "@fluixi/start/env", returns: "plain" }
|
|
113
115
|
};
|
|
114
116
|
var RUNTIME_PRIMITIVES = {
|
|
115
117
|
signal: "signal-handle",
|
|
@@ -246,7 +246,9 @@ var INTRINSICS = {
|
|
|
246
246
|
// does. `untrack` suppresses dependency collection, which is exactly the kind of thing
|
|
247
247
|
// dependency analysis must not guess at.
|
|
248
248
|
$untrack: { export: "untrack", module: REACTIVE_MODULE, returns: "plain" },
|
|
249
|
-
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" }
|
|
249
|
+
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" },
|
|
250
|
+
// An environment variable, public or server-only; the browser build refuses a secret.
|
|
251
|
+
$env: { export: "env", module: "@fluixi/start/env", returns: "plain" }
|
|
250
252
|
};
|
|
251
253
|
var INTRINSIC_CALL = new RegExp(`\\$(?:${Object.keys(INTRINSICS).map((n) => n.slice(1)).join("|")})\\s*\\(`);
|
|
252
254
|
|
|
@@ -219,7 +219,9 @@ var INTRINSICS = {
|
|
|
219
219
|
// does. `untrack` suppresses dependency collection, which is exactly the kind of thing
|
|
220
220
|
// dependency analysis must not guess at.
|
|
221
221
|
$untrack: { export: "untrack", module: REACTIVE_MODULE, returns: "plain" },
|
|
222
|
-
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" }
|
|
222
|
+
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" },
|
|
223
|
+
// An environment variable, public or server-only; the browser build refuses a secret.
|
|
224
|
+
$env: { export: "env", module: "@fluixi/start/env", returns: "plain" }
|
|
223
225
|
};
|
|
224
226
|
var INTRINSIC_CALL = new RegExp(`\\$(?:${Object.keys(INTRINSICS).map((n) => n.slice(1)).join("|")})\\s*\\(`);
|
|
225
227
|
|
|
@@ -311,7 +311,9 @@ var INTRINSICS = {
|
|
|
311
311
|
// does. `untrack` suppresses dependency collection, which is exactly the kind of thing
|
|
312
312
|
// dependency analysis must not guess at.
|
|
313
313
|
$untrack: { export: "untrack", module: REACTIVE_MODULE, returns: "plain" },
|
|
314
|
-
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" }
|
|
314
|
+
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" },
|
|
315
|
+
// An environment variable, public or server-only; the browser build refuses a secret.
|
|
316
|
+
$env: { export: "env", module: "@fluixi/start/env", returns: "plain" }
|
|
315
317
|
};
|
|
316
318
|
var INTRINSIC_CALL = new RegExp(`\\$(?:${Object.keys(INTRINSICS).map((n) => n.slice(1)).join("|")})\\s*\\(`);
|
|
317
319
|
|
|
@@ -277,7 +277,9 @@ var INTRINSICS = {
|
|
|
277
277
|
// does. `untrack` suppresses dependency collection, which is exactly the kind of thing
|
|
278
278
|
// dependency analysis must not guess at.
|
|
279
279
|
$untrack: { export: "untrack", module: REACTIVE_MODULE, returns: "plain" },
|
|
280
|
-
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" }
|
|
280
|
+
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" },
|
|
281
|
+
// An environment variable, public or server-only; the browser build refuses a secret.
|
|
282
|
+
$env: { export: "env", module: "@fluixi/start/env", returns: "plain" }
|
|
281
283
|
};
|
|
282
284
|
var INTRINSIC_CALL = new RegExp(`\\$(?:${Object.keys(INTRINSICS).map((n) => n.slice(1)).join("|")})\\s*\\(`);
|
|
283
285
|
|
|
@@ -260,7 +260,9 @@ var INTRINSICS = {
|
|
|
260
260
|
// does. `untrack` suppresses dependency collection, which is exactly the kind of thing
|
|
261
261
|
// dependency analysis must not guess at.
|
|
262
262
|
$untrack: { export: "untrack", module: REACTIVE_MODULE, returns: "plain" },
|
|
263
|
-
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" }
|
|
263
|
+
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" },
|
|
264
|
+
// An environment variable, public or server-only; the browser build refuses a secret.
|
|
265
|
+
$env: { export: "env", module: "@fluixi/start/env", returns: "plain" }
|
|
264
266
|
};
|
|
265
267
|
var INTRINSIC_CALL = new RegExp(`\\$(?:${Object.keys(INTRINSICS).map((n) => n.slice(1)).join("|")})\\s*\\(`);
|
|
266
268
|
|
|
@@ -223,7 +223,9 @@ var INTRINSICS = {
|
|
|
223
223
|
// does. `untrack` suppresses dependency collection, which is exactly the kind of thing
|
|
224
224
|
// dependency analysis must not guess at.
|
|
225
225
|
$untrack: { export: "untrack", module: REACTIVE_MODULE, returns: "plain" },
|
|
226
|
-
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" }
|
|
226
|
+
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" },
|
|
227
|
+
// An environment variable, public or server-only; the browser build refuses a secret.
|
|
228
|
+
$env: { export: "env", module: "@fluixi/start/env", returns: "plain" }
|
|
227
229
|
};
|
|
228
230
|
var INTRINSIC_CALL = new RegExp(`\\$(?:${Object.keys(INTRINSICS).map((n) => n.slice(1)).join("|")})\\s*\\(`);
|
|
229
231
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @fluixi/compiler v1.0.0-alpha.
|
|
1
|
+
/*! @fluixi/compiler v1.0.0-alpha.92 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
|
|
2
2
|
"use strict";
|
|
3
3
|
var __create = Object.create;
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -485,7 +485,9 @@ var INTRINSICS = {
|
|
|
485
485
|
// does. `untrack` suppresses dependency collection, which is exactly the kind of thing
|
|
486
486
|
// dependency analysis must not guess at.
|
|
487
487
|
$untrack: { export: "untrack", module: REACTIVE_MODULE, returns: "plain" },
|
|
488
|
-
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" }
|
|
488
|
+
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" },
|
|
489
|
+
// An environment variable, public or server-only; the browser build refuses a secret.
|
|
490
|
+
$env: { export: "env", module: "@fluixi/start/env", returns: "plain" }
|
|
489
491
|
};
|
|
490
492
|
var INTRINSIC_CALL = new RegExp(`\\$(?:${Object.keys(INTRINSICS).map((n) => n.slice(1)).join("|")})\\s*\\(`);
|
|
491
493
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @fluixi/compiler v1.0.0-alpha.
|
|
1
|
+
/*! @fluixi/compiler v1.0.0-alpha.92 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
|
|
2
2
|
|
|
3
3
|
// src/frontend/babel/plugin.ts
|
|
4
4
|
import { declare } from "@babel/helper-plugin-utils";
|
|
@@ -446,7 +446,9 @@ var INTRINSICS = {
|
|
|
446
446
|
// does. `untrack` suppresses dependency collection, which is exactly the kind of thing
|
|
447
447
|
// dependency analysis must not guess at.
|
|
448
448
|
$untrack: { export: "untrack", module: REACTIVE_MODULE, returns: "plain" },
|
|
449
|
-
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" }
|
|
449
|
+
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" },
|
|
450
|
+
// An environment variable, public or server-only; the browser build refuses a secret.
|
|
451
|
+
$env: { export: "env", module: "@fluixi/start/env", returns: "plain" }
|
|
450
452
|
};
|
|
451
453
|
var INTRINSIC_CALL = new RegExp(`\\$(?:${Object.keys(INTRINSICS).map((n) => n.slice(1)).join("|")})\\s*\\(`);
|
|
452
454
|
|
|
@@ -309,7 +309,9 @@ var INTRINSICS = {
|
|
|
309
309
|
// does. `untrack` suppresses dependency collection, which is exactly the kind of thing
|
|
310
310
|
// dependency analysis must not guess at.
|
|
311
311
|
$untrack: { export: "untrack", module: REACTIVE_MODULE, returns: "plain" },
|
|
312
|
-
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" }
|
|
312
|
+
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" },
|
|
313
|
+
// An environment variable, public or server-only; the browser build refuses a secret.
|
|
314
|
+
$env: { export: "env", module: "@fluixi/start/env", returns: "plain" }
|
|
313
315
|
};
|
|
314
316
|
var INTRINSIC_CALL = new RegExp(`\\$(?:${Object.keys(INTRINSICS).map((n) => n.slice(1)).join("|")})\\s*\\(`);
|
|
315
317
|
|
|
@@ -277,7 +277,9 @@ var INTRINSICS = {
|
|
|
277
277
|
// does. `untrack` suppresses dependency collection, which is exactly the kind of thing
|
|
278
278
|
// dependency analysis must not guess at.
|
|
279
279
|
$untrack: { export: "untrack", module: REACTIVE_MODULE, returns: "plain" },
|
|
280
|
-
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" }
|
|
280
|
+
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" },
|
|
281
|
+
// An environment variable, public or server-only; the browser build refuses a secret.
|
|
282
|
+
$env: { export: "env", module: "@fluixi/start/env", returns: "plain" }
|
|
281
283
|
};
|
|
282
284
|
var INTRINSIC_CALL = new RegExp(`\\$(?:${Object.keys(INTRINSICS).map((n) => n.slice(1)).join("|")})\\s*\\(`);
|
|
283
285
|
|
|
@@ -478,7 +478,9 @@ var INTRINSICS = {
|
|
|
478
478
|
// does. `untrack` suppresses dependency collection, which is exactly the kind of thing
|
|
479
479
|
// dependency analysis must not guess at.
|
|
480
480
|
$untrack: { export: "untrack", module: REACTIVE_MODULE, returns: "plain" },
|
|
481
|
-
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" }
|
|
481
|
+
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" },
|
|
482
|
+
// An environment variable, public or server-only; the browser build refuses a secret.
|
|
483
|
+
$env: { export: "env", module: "@fluixi/start/env", returns: "plain" }
|
|
482
484
|
};
|
|
483
485
|
var INTRINSIC_CALL = new RegExp(`\\$(?:${Object.keys(INTRINSICS).map((n) => n.slice(1)).join("|")})\\s*\\(`);
|
|
484
486
|
|
|
@@ -444,7 +444,9 @@ var INTRINSICS = {
|
|
|
444
444
|
// does. `untrack` suppresses dependency collection, which is exactly the kind of thing
|
|
445
445
|
// dependency analysis must not guess at.
|
|
446
446
|
$untrack: { export: "untrack", module: REACTIVE_MODULE, returns: "plain" },
|
|
447
|
-
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" }
|
|
447
|
+
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" },
|
|
448
|
+
// An environment variable, public or server-only; the browser build refuses a secret.
|
|
449
|
+
$env: { export: "env", module: "@fluixi/start/env", returns: "plain" }
|
|
448
450
|
};
|
|
449
451
|
var INTRINSIC_CALL = new RegExp(`\\$(?:${Object.keys(INTRINSICS).map((n) => n.slice(1)).join("|")})\\s*\\(`);
|
|
450
452
|
|
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @fluixi/compiler v1.0.0-alpha.
|
|
1
|
+
/*! @fluixi/compiler v1.0.0-alpha.92 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
|
|
2
2
|
"use strict";
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -41,6 +41,7 @@ __export(index_exports, {
|
|
|
41
41
|
imperativeBackend: () => imperativeBackend,
|
|
42
42
|
isReactiveShape: () => isReactiveShape,
|
|
43
43
|
lowerTemplate: () => lowerTemplate,
|
|
44
|
+
patternCandidates: () => patternCandidates,
|
|
44
45
|
resolveComponentSources: () => resolveComponentSources,
|
|
45
46
|
routerComponents: () => routerComponents,
|
|
46
47
|
walk: () => walk,
|
|
@@ -336,7 +337,9 @@ var INTRINSICS = {
|
|
|
336
337
|
// does. `untrack` suppresses dependency collection, which is exactly the kind of thing
|
|
337
338
|
// dependency analysis must not guess at.
|
|
338
339
|
$untrack: { export: "untrack", module: REACTIVE_MODULE, returns: "plain" },
|
|
339
|
-
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" }
|
|
340
|
+
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" },
|
|
341
|
+
// An environment variable, public or server-only; the browser build refuses a secret.
|
|
342
|
+
$env: { export: "env", module: "@fluixi/start/env", returns: "plain" }
|
|
340
343
|
};
|
|
341
344
|
var INTRINSIC_CALL = new RegExp(`\\$(?:${Object.keys(INTRINSICS).map((n) => n.slice(1)).join("|")})\\s*\\(`);
|
|
342
345
|
|
|
@@ -1440,7 +1443,8 @@ function componentGlobals(rules, options = {}) {
|
|
|
1440
1443
|
builtins = true,
|
|
1441
1444
|
intrinsics = true,
|
|
1442
1445
|
generator = "@fluixi/compiler",
|
|
1443
|
-
specifier = (module2) => module2
|
|
1446
|
+
specifier = (module2) => module2,
|
|
1447
|
+
candidates = []
|
|
1444
1448
|
} = options;
|
|
1445
1449
|
const all = [...rules];
|
|
1446
1450
|
if (builtins) {
|
|
@@ -1452,7 +1456,8 @@ function componentGlobals(rules, options = {}) {
|
|
|
1452
1456
|
const shadowedByDom = [];
|
|
1453
1457
|
const unavailable = [];
|
|
1454
1458
|
const resolved = /* @__PURE__ */ new Map();
|
|
1455
|
-
|
|
1459
|
+
const names = /* @__PURE__ */ new Set([...resolver.names(), ...[...candidates].filter((n) => /^[A-Za-z_$][\w$]*$/.test(n))]);
|
|
1460
|
+
for (const name of [...names].sort()) {
|
|
1456
1461
|
const target = resolver.resolve(name);
|
|
1457
1462
|
if (!target) continue;
|
|
1458
1463
|
const pkg = packageOf(target.module);
|
|
@@ -1463,7 +1468,11 @@ function componentGlobals(rules, options = {}) {
|
|
|
1463
1468
|
resolved.set(name, target);
|
|
1464
1469
|
}
|
|
1465
1470
|
}
|
|
1466
|
-
const
|
|
1471
|
+
const usableIntrinsics = intrinsics ? Object.entries(INTRINSICS).filter(([, i]) => {
|
|
1472
|
+
const pkg = packageOf(i.module);
|
|
1473
|
+
return !available || !pkg || available.has(pkg);
|
|
1474
|
+
}) : [];
|
|
1475
|
+
const intrinsicModules = [...new Set(usableIntrinsics.map(([, i]) => i.module))];
|
|
1467
1476
|
const modules = [
|
|
1468
1477
|
.../* @__PURE__ */ new Set([...declared.map((name) => resolved.get(name).module), ...intrinsicModules])
|
|
1469
1478
|
].sort();
|
|
@@ -1483,15 +1492,18 @@ function componentGlobals(rules, options = {}) {
|
|
|
1483
1492
|
return `// import { ${n} } from '${module2 ? specifier(module2) : ""}';
|
|
1484
1493
|
`;
|
|
1485
1494
|
}).join("") : "";
|
|
1486
|
-
const intrinsicLines =
|
|
1495
|
+
const intrinsicLines = usableIntrinsics.map(
|
|
1487
1496
|
([name, intrinsic]) => ` const ${name}: typeof ${namespaceAlias(intrinsic.module)}.${intrinsic.export};`
|
|
1488
|
-
)
|
|
1497
|
+
);
|
|
1489
1498
|
const patternRules = rules.filter((rule) => "match" in rule).length;
|
|
1490
|
-
const patternNote = patternRules
|
|
1499
|
+
const patternNote = patternRules === 0 ? "" : options.candidates ? `//
|
|
1500
|
+
// ${patternRules} pattern rule${patternRules === 1 ? "" : "s"}: declared for the files the module path
|
|
1501
|
+
// points at. A name with no such file still resolves at build time; declare it by hand.
|
|
1502
|
+
` : `//
|
|
1491
1503
|
// ${patternRules} pattern rule${patternRules === 1 ? "" : "s"} cannot be declared:
|
|
1492
1504
|
// a pattern matches unboundedly many names, so there is no list to emit. Those
|
|
1493
1505
|
// tags still resolve at build time; declare them by hand if the editor needs them.
|
|
1494
|
-
|
|
1506
|
+
`;
|
|
1495
1507
|
const source = `// GENERATED by ${generator}, do not edit.
|
|
1496
1508
|
//
|
|
1497
1509
|
// The components \`resolve\` supplies without an import. This describes what the
|
|
@@ -1550,6 +1562,30 @@ function projectDependencies(root) {
|
|
|
1550
1562
|
return void 0;
|
|
1551
1563
|
}
|
|
1552
1564
|
}
|
|
1565
|
+
function patternCandidates(rules, root) {
|
|
1566
|
+
const out = [];
|
|
1567
|
+
for (const rule of rules) {
|
|
1568
|
+
if (!("match" in rule) || !rule.module.startsWith("/")) continue;
|
|
1569
|
+
const dir = (0, import_node_path.dirname)(rule.module);
|
|
1570
|
+
const file = (0, import_node_path.basename)(rule.module);
|
|
1571
|
+
const group = file.match(/\$\d+/);
|
|
1572
|
+
if (dir.includes("$") || !group || file.indexOf("$", group.index + 1) !== -1) continue;
|
|
1573
|
+
const before = file.slice(0, group.index);
|
|
1574
|
+
const after = file.slice(group.index + group[0].length);
|
|
1575
|
+
let entries;
|
|
1576
|
+
try {
|
|
1577
|
+
entries = (0, import_node_fs.readdirSync)((0, import_node_path.resolve)(root, dir.slice(1)));
|
|
1578
|
+
} catch {
|
|
1579
|
+
continue;
|
|
1580
|
+
}
|
|
1581
|
+
for (const entry of entries) {
|
|
1582
|
+
if (entry.length > before.length + after.length && entry.startsWith(before) && entry.endsWith(after)) {
|
|
1583
|
+
out.push(entry.slice(before.length, entry.length - after.length));
|
|
1584
|
+
}
|
|
1585
|
+
}
|
|
1586
|
+
}
|
|
1587
|
+
return out;
|
|
1588
|
+
}
|
|
1553
1589
|
function writeComponentGlobals(options, root) {
|
|
1554
1590
|
if (options.globals === false) return { status: "skipped", reason: "disabled" };
|
|
1555
1591
|
const rules = options.resolve ?? [];
|
|
@@ -1565,6 +1601,7 @@ function writeComponentGlobals(options, root) {
|
|
|
1565
1601
|
}
|
|
1566
1602
|
const { source, declared } = componentGlobals(rules, {
|
|
1567
1603
|
available: projectDependencies(root),
|
|
1604
|
+
candidates: patternCandidates(rules, root),
|
|
1568
1605
|
specifier: (module2) => forTypeScript(module2, (0, import_node_path.dirname)(target), root)
|
|
1569
1606
|
});
|
|
1570
1607
|
if (existing === source) {
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @fluixi/compiler v1.0.0-alpha.
|
|
1
|
+
/*! @fluixi/compiler v1.0.0-alpha.92 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
|
|
2
2
|
|
|
3
3
|
// src/analyze/reactive-expr.ts
|
|
4
4
|
var STABLE_MEMBER = "children";
|
|
@@ -290,7 +290,9 @@ var INTRINSICS = {
|
|
|
290
290
|
// does. `untrack` suppresses dependency collection, which is exactly the kind of thing
|
|
291
291
|
// dependency analysis must not guess at.
|
|
292
292
|
$untrack: { export: "untrack", module: REACTIVE_MODULE, returns: "plain" },
|
|
293
|
-
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" }
|
|
293
|
+
$untrackStore: { export: "untrackStore", module: "@fluixi/reactive/store", returns: "plain" },
|
|
294
|
+
// An environment variable, public or server-only; the browser build refuses a secret.
|
|
295
|
+
$env: { export: "env", module: "@fluixi/start/env", returns: "plain" }
|
|
294
296
|
};
|
|
295
297
|
var INTRINSIC_CALL = new RegExp(`\\$(?:${Object.keys(INTRINSICS).map((n) => n.slice(1)).join("|")})\\s*\\(`);
|
|
296
298
|
|
|
@@ -1394,7 +1396,8 @@ function componentGlobals(rules, options = {}) {
|
|
|
1394
1396
|
builtins = true,
|
|
1395
1397
|
intrinsics = true,
|
|
1396
1398
|
generator = "@fluixi/compiler",
|
|
1397
|
-
specifier = (module) => module
|
|
1399
|
+
specifier = (module) => module,
|
|
1400
|
+
candidates = []
|
|
1398
1401
|
} = options;
|
|
1399
1402
|
const all = [...rules];
|
|
1400
1403
|
if (builtins) {
|
|
@@ -1406,7 +1409,8 @@ function componentGlobals(rules, options = {}) {
|
|
|
1406
1409
|
const shadowedByDom = [];
|
|
1407
1410
|
const unavailable = [];
|
|
1408
1411
|
const resolved = /* @__PURE__ */ new Map();
|
|
1409
|
-
|
|
1412
|
+
const names = /* @__PURE__ */ new Set([...resolver.names(), ...[...candidates].filter((n) => /^[A-Za-z_$][\w$]*$/.test(n))]);
|
|
1413
|
+
for (const name of [...names].sort()) {
|
|
1410
1414
|
const target = resolver.resolve(name);
|
|
1411
1415
|
if (!target) continue;
|
|
1412
1416
|
const pkg = packageOf(target.module);
|
|
@@ -1417,7 +1421,11 @@ function componentGlobals(rules, options = {}) {
|
|
|
1417
1421
|
resolved.set(name, target);
|
|
1418
1422
|
}
|
|
1419
1423
|
}
|
|
1420
|
-
const
|
|
1424
|
+
const usableIntrinsics = intrinsics ? Object.entries(INTRINSICS).filter(([, i]) => {
|
|
1425
|
+
const pkg = packageOf(i.module);
|
|
1426
|
+
return !available || !pkg || available.has(pkg);
|
|
1427
|
+
}) : [];
|
|
1428
|
+
const intrinsicModules = [...new Set(usableIntrinsics.map(([, i]) => i.module))];
|
|
1421
1429
|
const modules = [
|
|
1422
1430
|
.../* @__PURE__ */ new Set([...declared.map((name) => resolved.get(name).module), ...intrinsicModules])
|
|
1423
1431
|
].sort();
|
|
@@ -1437,15 +1445,18 @@ function componentGlobals(rules, options = {}) {
|
|
|
1437
1445
|
return `// import { ${n} } from '${module ? specifier(module) : ""}';
|
|
1438
1446
|
`;
|
|
1439
1447
|
}).join("") : "";
|
|
1440
|
-
const intrinsicLines =
|
|
1448
|
+
const intrinsicLines = usableIntrinsics.map(
|
|
1441
1449
|
([name, intrinsic]) => ` const ${name}: typeof ${namespaceAlias(intrinsic.module)}.${intrinsic.export};`
|
|
1442
|
-
)
|
|
1450
|
+
);
|
|
1443
1451
|
const patternRules = rules.filter((rule) => "match" in rule).length;
|
|
1444
|
-
const patternNote = patternRules
|
|
1452
|
+
const patternNote = patternRules === 0 ? "" : options.candidates ? `//
|
|
1453
|
+
// ${patternRules} pattern rule${patternRules === 1 ? "" : "s"}: declared for the files the module path
|
|
1454
|
+
// points at. A name with no such file still resolves at build time; declare it by hand.
|
|
1455
|
+
` : `//
|
|
1445
1456
|
// ${patternRules} pattern rule${patternRules === 1 ? "" : "s"} cannot be declared:
|
|
1446
1457
|
// a pattern matches unboundedly many names, so there is no list to emit. Those
|
|
1447
1458
|
// tags still resolve at build time; declare them by hand if the editor needs them.
|
|
1448
|
-
|
|
1459
|
+
`;
|
|
1449
1460
|
const source = `// GENERATED by ${generator}, do not edit.
|
|
1450
1461
|
//
|
|
1451
1462
|
// The components \`resolve\` supplies without an import. This describes what the
|
|
@@ -1461,8 +1472,8 @@ ${[...lines, ...intrinsicLines].join("\n")}
|
|
|
1461
1472
|
}
|
|
1462
1473
|
|
|
1463
1474
|
// src/resolve/write-globals.ts
|
|
1464
|
-
import { mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
1465
|
-
import { dirname, relative, sep, resolve as resolvePath } from "node:path";
|
|
1475
|
+
import { mkdirSync, readdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
1476
|
+
import { basename, dirname, relative, sep, resolve as resolvePath } from "node:path";
|
|
1466
1477
|
var GENERATED_MARKER = "GENERATED by @fluixi/compiler";
|
|
1467
1478
|
var DEFAULT_GLOBALS_PATH = "fluixi.d.ts";
|
|
1468
1479
|
function coveredByInclude(root, target) {
|
|
@@ -1504,6 +1515,30 @@ function projectDependencies(root) {
|
|
|
1504
1515
|
return void 0;
|
|
1505
1516
|
}
|
|
1506
1517
|
}
|
|
1518
|
+
function patternCandidates(rules, root) {
|
|
1519
|
+
const out = [];
|
|
1520
|
+
for (const rule of rules) {
|
|
1521
|
+
if (!("match" in rule) || !rule.module.startsWith("/")) continue;
|
|
1522
|
+
const dir = dirname(rule.module);
|
|
1523
|
+
const file = basename(rule.module);
|
|
1524
|
+
const group = file.match(/\$\d+/);
|
|
1525
|
+
if (dir.includes("$") || !group || file.indexOf("$", group.index + 1) !== -1) continue;
|
|
1526
|
+
const before = file.slice(0, group.index);
|
|
1527
|
+
const after = file.slice(group.index + group[0].length);
|
|
1528
|
+
let entries;
|
|
1529
|
+
try {
|
|
1530
|
+
entries = readdirSync(resolvePath(root, dir.slice(1)));
|
|
1531
|
+
} catch {
|
|
1532
|
+
continue;
|
|
1533
|
+
}
|
|
1534
|
+
for (const entry of entries) {
|
|
1535
|
+
if (entry.length > before.length + after.length && entry.startsWith(before) && entry.endsWith(after)) {
|
|
1536
|
+
out.push(entry.slice(before.length, entry.length - after.length));
|
|
1537
|
+
}
|
|
1538
|
+
}
|
|
1539
|
+
}
|
|
1540
|
+
return out;
|
|
1541
|
+
}
|
|
1507
1542
|
function writeComponentGlobals(options, root) {
|
|
1508
1543
|
if (options.globals === false) return { status: "skipped", reason: "disabled" };
|
|
1509
1544
|
const rules = options.resolve ?? [];
|
|
@@ -1519,6 +1554,7 @@ function writeComponentGlobals(options, root) {
|
|
|
1519
1554
|
}
|
|
1520
1555
|
const { source, declared } = componentGlobals(rules, {
|
|
1521
1556
|
available: projectDependencies(root),
|
|
1557
|
+
candidates: patternCandidates(rules, root),
|
|
1522
1558
|
specifier: (module) => forTypeScript(module, dirname(target), root)
|
|
1523
1559
|
});
|
|
1524
1560
|
if (existing === source) {
|
|
@@ -1579,6 +1615,7 @@ export {
|
|
|
1579
1615
|
imperativeBackend,
|
|
1580
1616
|
isReactiveShape,
|
|
1581
1617
|
lowerTemplate,
|
|
1618
|
+
patternCandidates,
|
|
1582
1619
|
resolveComponentSources,
|
|
1583
1620
|
routerComponents,
|
|
1584
1621
|
walk,
|