@ereo/bundler 0.2.37 → 0.2.39
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/index.js
CHANGED
|
@@ -830,23 +830,22 @@ import { mkdir, rm, readdir, stat, copyFile } from "fs/promises";
|
|
|
830
830
|
import { initFileRouter } from "@ereo/router";
|
|
831
831
|
|
|
832
832
|
// src/plugins/islands.ts
|
|
833
|
-
var
|
|
834
|
-
var
|
|
833
|
+
var ISLAND_DIRECTIVE_TEST = /client:(load|idle|visible|media)(?:="([^"]+)")?/;
|
|
834
|
+
var COMPONENT_EXPORT_EXEC = /export\s+(?:default\s+)?(?:function|const|class)\s+(\w+)/g;
|
|
835
835
|
var USE_CLIENT_PATTERN = /^['"]use client['"]/m;
|
|
836
836
|
function extractIslands(content, filePath) {
|
|
837
837
|
const islands = [];
|
|
838
838
|
const isClientComponent = USE_CLIENT_PATTERN.test(content);
|
|
839
839
|
if (!isClientComponent) {
|
|
840
|
-
|
|
841
|
-
const hasDirectives = ISLAND_DIRECTIVE_PATTERN.test(content);
|
|
840
|
+
const hasDirectives = ISLAND_DIRECTIVE_TEST.test(content);
|
|
842
841
|
if (!hasDirectives) {
|
|
843
842
|
return islands;
|
|
844
843
|
}
|
|
845
844
|
}
|
|
846
845
|
const componentNames = [];
|
|
847
846
|
let match;
|
|
848
|
-
|
|
849
|
-
while ((match =
|
|
847
|
+
COMPONENT_EXPORT_EXEC.lastIndex = 0;
|
|
848
|
+
while ((match = COMPONENT_EXPORT_EXEC.exec(content)) !== null) {
|
|
850
849
|
componentNames.push(match[1]);
|
|
851
850
|
}
|
|
852
851
|
if (isClientComponent && componentNames.length > 0) {
|
|
@@ -861,14 +860,14 @@ function extractIslands(content, filePath) {
|
|
|
861
860
|
return islands;
|
|
862
861
|
}
|
|
863
862
|
function generateIslandId(filePath) {
|
|
864
|
-
return filePath.replace(/[\/\\]/g, "_").replace(/\.[^.]+$/, "").replace(/[^a-zA-Z0-9_]/g, "");
|
|
863
|
+
return filePath.replace(/[\/\\]/g, "_").replace(/\.[^.]+$/, "").replace(/[^a-zA-Z0-9_-]/g, "");
|
|
865
864
|
}
|
|
866
865
|
function transformIslandJSX(code) {
|
|
867
866
|
let transformed = code;
|
|
868
867
|
let counter = 0;
|
|
869
|
-
transformed = transformed.replace(/<(\w+)\s+([^>]
|
|
868
|
+
transformed = transformed.replace(/<(\w+)\s+([^>]*?client:(load|idle|visible|media)[^>]*?)\s*(\/?)>/g, (match, tag, props, strategy, selfClose) => {
|
|
870
869
|
const id = `island-${tag}-${counter++}`;
|
|
871
|
-
return `<${tag} data-island="${id}" data-strategy="${strategy}" ${props}>`;
|
|
870
|
+
return `<${tag} data-island="${id}" data-strategy="${strategy}" ${props}${selfClose ? " /" : ""}>`;
|
|
872
871
|
});
|
|
873
872
|
return transformed;
|
|
874
873
|
}
|
|
@@ -890,8 +889,8 @@ function generateIslandEntry(islands) {
|
|
|
890
889
|
const registrations = [];
|
|
891
890
|
for (const island of islands) {
|
|
892
891
|
const importName = `Island_${island.id}`;
|
|
893
|
-
imports.push(`import ${importName} from '${island.file}';`);
|
|
894
|
-
registrations.push(` registerIslandComponent('${island.name}', ${importName});`);
|
|
892
|
+
imports.push(`import * as ${importName}_ns from '${island.file}';`);
|
|
893
|
+
registrations.push(` registerIslandComponent('${island.name}', ${importName}_ns.default || ${importName}_ns.${island.name});`);
|
|
895
894
|
}
|
|
896
895
|
return `
|
|
897
896
|
import { registerIslandComponent, initializeIslands } from '@ereo/client';
|
|
@@ -942,8 +941,7 @@ function findIslandByName(islands, name) {
|
|
|
942
941
|
return islands.find((i) => i.name === name);
|
|
943
942
|
}
|
|
944
943
|
function hasIslands(content) {
|
|
945
|
-
|
|
946
|
-
return USE_CLIENT_PATTERN.test(content) || ISLAND_DIRECTIVE_PATTERN.test(content);
|
|
944
|
+
return USE_CLIENT_PATTERN.test(content) || ISLAND_DIRECTIVE_TEST.test(content);
|
|
947
945
|
}
|
|
948
946
|
|
|
949
947
|
// src/prod/build.ts
|
|
@@ -1357,10 +1355,10 @@ function generateServerEntry(routes, root, routeOutputMap) {
|
|
|
1357
1355
|
const varName = `route_${routeCounter++}`;
|
|
1358
1356
|
const outputPath = routeOutputMap.get(route.file);
|
|
1359
1357
|
const importPath = outputPath ? `./routes/${outputPath}` : `./routes/${relative(join(root, "app/routes"), route.file).replace(/\\/g, "/").replace(/\.[^.]+$/, ".js")}`;
|
|
1360
|
-
imports.push(`import * as ${varName} from '${importPath}';`);
|
|
1358
|
+
imports.push(`import * as ${varName} from '${importPath.replace(/'/g, "\\'")}';`);
|
|
1361
1359
|
routeRegistrations.push(` {
|
|
1362
|
-
id:
|
|
1363
|
-
path:
|
|
1360
|
+
id: ${JSON.stringify(route.id)},
|
|
1361
|
+
path: ${JSON.stringify(route.path)},
|
|
1364
1362
|
module: ${varName},
|
|
1365
1363
|
index: ${route.index || false},
|
|
1366
1364
|
layout: ${route.layout || false},
|
|
@@ -1544,7 +1542,8 @@ async function buildIslands(options) {
|
|
|
1544
1542
|
isEntry: output.kind === "entry-point"
|
|
1545
1543
|
});
|
|
1546
1544
|
if (output.kind === "entry-point") {
|
|
1547
|
-
const
|
|
1545
|
+
const outputBaseName = basename(output.path, extname(output.path)).replace(/-[a-f0-9]+$/, "");
|
|
1546
|
+
const sourceIsland = islands.find((i) => basename(i.file, extname(i.file)) === outputBaseName);
|
|
1548
1547
|
if (sourceIsland) {
|
|
1549
1548
|
islandMap[sourceIsland.id] = relativePath;
|
|
1550
1549
|
}
|
|
@@ -1926,7 +1925,7 @@ function generateRouteTypes(routes, options = {}) {
|
|
|
1926
1925
|
const importPath = generateImportPath(info.file, routesDir);
|
|
1927
1926
|
const safeName = safeIdentifier(importPath);
|
|
1928
1927
|
const wrapType = lazyEvaluation ? (t) => `LazyEval<${t}>` : (t) => t;
|
|
1929
|
-
lines.push(` '${info.path}': {`);
|
|
1928
|
+
lines.push(` '${info.path.replace(/'/g, "\\'")}': {`);
|
|
1930
1929
|
lines.push(` params: ${paramsType};`);
|
|
1931
1930
|
if (generateSearchParams && info.hasSearchParams && inferTypes) {
|
|
1932
1931
|
lines.push(` search: ${wrapType(`${safeName} extends { searchParams: infer S } ? (S extends { parse: (data: any) => infer R } ? R : Record<string, string | string[] | undefined>) : Record<string, string | string[] | undefined>`)};`);
|
|
@@ -2615,6 +2614,7 @@ function createTailwindPlugin(options = {}) {
|
|
|
2615
2614
|
/cva\(([^)]+)\)/g
|
|
2616
2615
|
];
|
|
2617
2616
|
for (const pattern of patterns) {
|
|
2617
|
+
pattern.lastIndex = 0;
|
|
2618
2618
|
let match;
|
|
2619
2619
|
while ((match = pattern.exec(content2)) !== null) {
|
|
2620
2620
|
const classString = match[1];
|
|
@@ -2794,7 +2794,7 @@ function generateTailwindConfig(options = {}) {
|
|
|
2794
2794
|
/** @type {import('tailwindcss').Config} */
|
|
2795
2795
|
export default {
|
|
2796
2796
|
content: ${JSON.stringify(content, null, 4)},
|
|
2797
|
-
darkMode: '${darkMode}',
|
|
2797
|
+
darkMode: ${darkMode === false ? "false" : `'${darkMode}'`},
|
|
2798
2798
|
theme: {
|
|
2799
2799
|
extend: {
|
|
2800
2800
|
// Add your custom theme extensions here
|
|
@@ -2946,6 +2946,7 @@ function extractTailwindClasses(content) {
|
|
|
2946
2946
|
/cn\(\s*["']([^"']+)["']/g
|
|
2947
2947
|
];
|
|
2948
2948
|
for (const pattern of patterns) {
|
|
2949
|
+
pattern.lastIndex = 0;
|
|
2949
2950
|
let match;
|
|
2950
2951
|
while ((match = pattern.exec(content)) !== null) {
|
|
2951
2952
|
const classString = match[1];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"islands.d.ts","sourceRoot":"","sources":["../../src/plugins/islands.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"islands.d.ts","sourceRoot":"","sources":["../../src/plugins/islands.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAWD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,UAAU,EAAE,CAmCd;AAaD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiBvD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,CAcpE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,CAuBjE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CA4C5C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,UAAU,EAAE,EACrB,IAAI,EAAE,MAAM,GACX,UAAU,GAAG,SAAS,CAExB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEnD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tailwind.d.ts","sourceRoot":"","sources":["../../src/plugins/tailwind.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,MAAM,EAA4B,MAAM,YAAY,CAAC;AAOnE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,KAAK,CAAC;IAClD,+BAA+B;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yBAAyB;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6BAA6B;IAC7B,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC;IACvB,iDAAiD;IACjD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AA8BD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,qBAA0B,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"tailwind.d.ts","sourceRoot":"","sources":["../../src/plugins/tailwind.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,MAAM,EAA4B,MAAM,YAAY,CAAC;AAOnE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,KAAK,CAAC;IAClD,+BAA+B;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yBAAyB;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6BAA6B;IAC7B,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC;IACvB,iDAAiD;IACjD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AA8BD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,qBAA0B,GAAG,MAAM,CAiehF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,qBAA0B,GAAG,MAAM,CA0BlF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAqBzC;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA2BtE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,qBAA0B,IA6CtD,SAAS,OAAO,EAAE,SAAS,GAAG,EAAE,MAAM,MAAM,OAAO,CAAC,QAAQ,CAAC,uBAqD5E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CA4BhE;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAuB1F"}
|
package/dist/prod/build.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/prod/build.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAuC,MAAM,EAAE,MAAM,YAAY,CAAC;AAU9E;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qBAAqB;IACrB,MAAM,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC;IACpC,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAwED;;GAEG;AACH,wBAAsB,KAAK,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAyL5E;
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/prod/build.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAuC,MAAM,EAAE,MAAM,YAAY,CAAC;AAU9E;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qBAAqB;IACrB,MAAM,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC;IACpC,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAwED;;GAEG;AACH,wBAAsB,KAAK,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAyL5E;AAk5BD;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAyC1D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B,CA2CA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ereo/bundler",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.39",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "Enoch Kujem Abassey",
|
|
6
6
|
"homepage": "https://ereojs.github.io/ereoJS",
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
"typecheck": "tsc --noEmit"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@ereo/core": "^0.2.
|
|
36
|
-
"@ereo/router": "^0.2.
|
|
35
|
+
"@ereo/core": "^0.2.39",
|
|
36
|
+
"@ereo/router": "^0.2.39",
|
|
37
37
|
"postcss": "^8.4.35",
|
|
38
38
|
"tailwindcss": "^3.4.1",
|
|
39
39
|
"autoprefixer": "^10.4.17",
|