vike-lite 1.17.0 → 1.17.2

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/README.md CHANGED
@@ -43,10 +43,10 @@ When set to `true`, at the end of each production build (client and server) the
43
43
 
44
44
  ```sh
45
45
 
46
- 📦 [Client bundle] package.json dependencies used (1):
46
+ 📦 [Client bundle] 1 dependencies used from package.json:
47
47
  - solid-js@^1.9.3
48
48
 
49
- 📦 [Server bundle] package.json dependencies used (2):
49
+ 📦 [Server bundle] 2 dependencies used from package.json:
50
50
  - solid-js@^1.9.3
51
51
  - hono@^4.12.31
52
52
  ```
@@ -1,4 +1,4 @@
1
- import { t as VikeState } from "../store-9UNcAe5D.mjs";
1
+ import { t as VikeState } from "../store-DRuFjsY3.mjs";
2
2
  //#region src/__internal/client.d.ts
3
3
  declare function createLinkClickHandler(onNavigate: (url: URL) => void): (e: MouseEvent) => void;
4
4
  declare function createLinkPrefetchHandler(onPrefetch: (url: URL) => void): (e: Event) => void;
@@ -1,4 +1,4 @@
1
- import { n as setVikeState, r as store, t as VikeState } from "../store-9UNcAe5D.mjs";
1
+ import { n as setVikeState, r as store, t as VikeState } from "../store-DRuFjsY3.mjs";
2
2
  //#region src/__internal/server.d.ts
3
3
  interface HtmlShellParams {
4
4
  pageTitleTag: string;
@@ -1,4 +1,4 @@
1
- import { n as store, t as setVikeState } from "../store-BCs8gL_o.mjs";
1
+ import { n as store, t as setVikeState } from "../store-D-6PbvfY.mjs";
2
2
  //#region src/__internal/server.ts
3
3
  /**
4
4
  * Renders the HTML document shell shared by every adapter: doctype, meta tags,
@@ -14,7 +14,6 @@ interface RenderContext {
14
14
  };
15
15
  nonce?: string;
16
16
  }
17
- declare function escapeRegex(str: string): string;
18
17
  declare function matchRoute(urlPathname: string, routes: typeof import('virtual:vike-lite/routes').routes): {
19
18
  route: any;
20
19
  routeParams: Record<string, string>;
@@ -31,4 +30,4 @@ declare function stripBase(pathname: string): string;
31
30
  */
32
31
  declare function prependBase(pathname: string): string;
33
32
  //#endregion
34
- export { BASE_URL, RenderContext, escapeRegex, matchRoute, prependBase, stripBase };
33
+ export { BASE_URL, RenderContext, matchRoute, prependBase, stripBase };
@@ -1,8 +1,6 @@
1
+ import { t as escapeRegex } from "../shared-Dh8Fb_3P.mjs";
1
2
  //#region src/__internal/shared.ts
2
3
  const regexCache = /* @__PURE__ */ new Map();
3
- function escapeRegex(str) {
4
- return str.replaceAll(/[.*+?^${}()|[\]\\]/g, String.raw`\$&`);
5
- }
6
4
  function matchRoute(urlPathname, routes) {
7
5
  for (const route of routes) {
8
6
  if (!route.path.includes(":")) {
@@ -62,4 +60,4 @@ function prependBase(pathname) {
62
60
  return BASE_URL + (pathname === "/" ? "" : pathname);
63
61
  }
64
62
  //#endregion
65
- export { BASE_URL, escapeRegex, matchRoute, prependBase, stripBase };
63
+ export { BASE_URL, matchRoute, prependBase, stripBase };
package/dist/server.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { BASE_URL, matchRoute, stripBase } from "./__internal/shared.mjs";
2
2
  import { AbortRedirect, AbortRender } from "./server/abort.mjs";
3
- import { n as store } from "./store-BCs8gL_o.mjs";
3
+ import { n as store } from "./store-D-6PbvfY.mjs";
4
4
  //#region src/utils/serializeContext.ts
5
5
  const ESCAPE_LOOKUP = {
6
6
  "&": String.raw`\u0026`,
@@ -0,0 +1,6 @@
1
+ //#region src/shared/index.ts
2
+ function escapeRegex(str) {
3
+ return str.replaceAll(/[.*+?^${}()|[\]\\]/g, String.raw`\$&`);
4
+ }
5
+ //#endregion
6
+ export { escapeRegex as t };
@@ -1,4 +1,4 @@
1
- //#region src/server/store.ts
1
+ //#region src/shared/store.ts
2
2
  const KEY = Symbol.for("vike-lite:store");
3
3
  const store = globalThis[KEY] ??= {
4
4
  routes: [],
@@ -1,4 +1,4 @@
1
- //#region src/server/store.d.ts
1
+ //#region src/shared/store.d.ts
2
2
  interface VikeState {
3
3
  routes: typeof import('virtual:vike-lite/routes')['routes'] | [];
4
4
  errorRoute: typeof import('virtual:vike-lite/routes')['errorRoute'] | null;
package/dist/vite.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { escapeRegex } from "./__internal/shared.mjs";
1
+ import { t as escapeRegex } from "./shared-Dh8Fb_3P.mjs";
2
2
  import fs from "node:fs";
3
3
  import path from "node:path";
4
4
  import { Readable } from "node:stream";
@@ -121,15 +121,18 @@ function findPackageJsonPath(startDir) {
121
121
  dir = parent;
122
122
  }
123
123
  }
124
- function extractPackageNameFromPath(moduleId) {
125
- const matches = [...moduleId.replaceAll("\\", "/").matchAll(/node_modules\/(@[^/]+\/[^/]+|[^/]+)/g)];
126
- if (matches.length === 0) return null;
127
- return matches[matches.length - 1][1];
128
- }
129
- function extractPackageNameFromImport(imp) {
130
- if (imp.startsWith(".") || imp.startsWith("/") || imp.startsWith("\0") || path.isAbsolute(imp) || imp.startsWith("node:")) return null;
131
- const parts = imp.split("/");
132
- return imp.startsWith("@") && parts.length > 1 ? `${parts[0]}/${parts[1]}` : parts[0];
124
+ function extractPkgName(id) {
125
+ const normalized = id.replaceAll("\\", "/");
126
+ const matches = [...normalized.matchAll(/(?:node_modules|\.yarn(?:\/__virtual__)?)\/(@[^/]+\/[^/]+|[^/]+)/g)];
127
+ if (matches.length > 0) {
128
+ const pkg = matches[matches.length - 1][1];
129
+ if (pkg !== ".pnpm") return pkg;
130
+ }
131
+ if (!normalized.startsWith(".") && !normalized.startsWith("/") && !normalized.includes(":")) {
132
+ const parts = normalized.split("/");
133
+ return normalized.startsWith("@") && parts.length > 1 ? `${parts[0]}/${parts[1]}` : parts[0];
134
+ }
135
+ return null;
133
136
  }
134
137
  //#endregion
135
138
  //#region src/vite/index.ts
@@ -167,10 +170,18 @@ function vikeLite({ pagesDir = "pages", apiPrefix = "/api", prerender = false, s
167
170
  const pkgJsonPath = findPackageJsonPath(viteConfigRoot);
168
171
  if (pkgJsonPath) {
169
172
  const pkgJson = JSON.parse(fs.readFileSync(pkgJsonPath, "utf8"));
170
- projectDependencies = {
171
- ...pkgJson.dependencies,
172
- ...pkgJson.devDependencies,
173
- ...pkgJson.peerDependencies
173
+ projectDependencies = {};
174
+ for (const [k, v] of Object.entries(pkgJson.dependencies || {})) projectDependencies[k] = {
175
+ version: v,
176
+ type: ""
177
+ };
178
+ for (const [k, v] of Object.entries(pkgJson.devDependencies || {})) projectDependencies[k] = {
179
+ version: v,
180
+ type: "dev"
181
+ };
182
+ for (const [k, v] of Object.entries(pkgJson.peerDependencies || {})) if (!projectDependencies[k]) projectDependencies[k] = {
183
+ version: v,
184
+ type: "peer"
174
185
  };
175
186
  }
176
187
  }
@@ -336,27 +347,25 @@ function vikeLite({ pagesDir = "pages", apiPrefix = "/api", prerender = false, s
336
347
  if (!printDependencies || !projectDependencies) return;
337
348
  const envName = this.environment.name;
338
349
  if (envName !== "client" && envName !== "ssr") return;
339
- const usedPackages = /* @__PURE__ */ new Set();
340
- for (const file of Object.values(bundle)) {
341
- if (file.type !== "chunk") continue;
342
- for (const moduleId of file.moduleIds) {
343
- const pkgName = extractPackageNameFromPath(moduleId);
344
- if (pkgName && projectDependencies[pkgName] !== void 0) usedPackages.add(pkgName);
345
- }
346
- for (const imp of file.imports) {
347
- const pkgName = extractPackageNameFromImport(imp);
348
- if (pkgName && projectDependencies[pkgName] !== void 0) usedPackages.add(pkgName);
350
+ const usedDeps = /* @__PURE__ */ new Map();
351
+ for (const chunk of Object.values(bundle)) {
352
+ if (chunk.type !== "chunk") continue;
353
+ for (const id of chunk.moduleIds) {
354
+ const pkg = extractPkgName(id);
355
+ if (pkg && !pkg.startsWith("vike-lite") && Object.hasOwn(projectDependencies, pkg)) usedDeps.set(pkg, projectDependencies[pkg]);
349
356
  }
350
- for (const imp of file.dynamicImports) {
351
- const pkgName = extractPackageNameFromImport(imp);
352
- if (pkgName && projectDependencies[pkgName] !== void 0) usedPackages.add(pkgName);
357
+ for (const imp of [...chunk.imports, ...chunk.dynamicImports]) {
358
+ const pkg = extractPkgName(imp);
359
+ if (pkg && !pkg.startsWith("vike-lite") && Object.hasOwn(projectDependencies, pkg)) usedDeps.set(pkg, projectDependencies[pkg]);
353
360
  }
354
361
  }
355
- const label = envName === "client" ? "Client" : "Server";
356
- const sorted = [...usedPackages].sort();
357
- console.log(`📦 [${label} bundle] package.json dependencies used (${sorted.length}):`);
358
- if (sorted.length === 0) console.log(` (None)`);
359
- else for (const dep of sorted) console.log(` - ${dep}@${projectDependencies[dep]}`);
362
+ const sorted = [...usedDeps.entries()].sort(([a], [b]) => a.localeCompare(b));
363
+ console.log(`\n📦 [${envName === "client" ? "Client" : "Server"} bundle] ${sorted.length} dependencies used from package.json:`);
364
+ if (sorted.length === 0) console.log(" (None)");
365
+ else for (const [name, info] of sorted) {
366
+ const typeTag = info.type ? ` \u{1B}[33m[${info.type}]\u{1B}[0m` : "";
367
+ console.log(` - \u{1B}[36m${name}@${info.version}\u{1B}[0m${typeTag}`);
368
+ }
360
369
  },
361
370
  closeBundle: {
362
371
  order: "pre",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vike-lite",
3
- "version": "1.17.0",
3
+ "version": "1.17.2",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",