vinext 0.0.23 → 0.0.25
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 +24 -0
- package/dist/check.d.ts.map +1 -1
- package/dist/check.js +3 -2
- package/dist/check.js.map +1 -1
- package/dist/client/entry.js +1 -1
- package/dist/client/entry.js.map +1 -1
- package/dist/config/config-matchers.d.ts +21 -0
- package/dist/config/config-matchers.d.ts.map +1 -1
- package/dist/config/config-matchers.js +59 -9
- package/dist/config/config-matchers.js.map +1 -1
- package/dist/config/next-config.d.ts +8 -2
- package/dist/config/next-config.d.ts.map +1 -1
- package/dist/config/next-config.js +90 -35
- package/dist/config/next-config.js.map +1 -1
- package/dist/deploy.d.ts +10 -0
- package/dist/deploy.d.ts.map +1 -1
- package/dist/deploy.js +140 -56
- package/dist/deploy.js.map +1 -1
- package/dist/index.d.ts +14 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +195 -25
- package/dist/index.js.map +1 -1
- package/dist/plugins/async-hooks-stub.d.ts +16 -0
- package/dist/plugins/async-hooks-stub.d.ts.map +1 -0
- package/dist/plugins/async-hooks-stub.js +45 -0
- package/dist/plugins/async-hooks-stub.js.map +1 -0
- package/dist/routing/app-router.d.ts +12 -6
- package/dist/routing/app-router.d.ts.map +1 -1
- package/dist/routing/app-router.js +19 -40
- package/dist/routing/app-router.js.map +1 -1
- package/dist/routing/pages-router.d.ts.map +1 -1
- package/dist/routing/pages-router.js +3 -9
- package/dist/routing/pages-router.js.map +1 -1
- package/dist/routing/utils.d.ts +9 -0
- package/dist/routing/utils.d.ts.map +1 -1
- package/dist/routing/utils.js +10 -0
- package/dist/routing/utils.js.map +1 -1
- package/dist/server/api-handler.d.ts.map +1 -1
- package/dist/server/api-handler.js +6 -0
- package/dist/server/api-handler.js.map +1 -1
- package/dist/server/app-dev-server.d.ts +2 -2
- package/dist/server/app-dev-server.d.ts.map +1 -1
- package/dist/server/app-dev-server.js +294 -133
- package/dist/server/app-dev-server.js.map +1 -1
- package/dist/server/dev-module-runner.d.ts +84 -0
- package/dist/server/dev-module-runner.d.ts.map +1 -0
- package/dist/server/dev-module-runner.js +105 -0
- package/dist/server/dev-module-runner.js.map +1 -0
- package/dist/server/dev-server.js.map +1 -1
- package/dist/server/instrumentation.d.ts +52 -9
- package/dist/server/instrumentation.d.ts.map +1 -1
- package/dist/server/instrumentation.js +52 -15
- package/dist/server/instrumentation.js.map +1 -1
- package/dist/server/middleware.d.ts +7 -3
- package/dist/server/middleware.d.ts.map +1 -1
- package/dist/server/middleware.js +16 -6
- package/dist/server/middleware.js.map +1 -1
- package/dist/server/prod-server.d.ts +8 -2
- package/dist/server/prod-server.d.ts.map +1 -1
- package/dist/server/prod-server.js +56 -35
- package/dist/server/prod-server.js.map +1 -1
- package/dist/server/worker-utils.d.ts +15 -0
- package/dist/server/worker-utils.d.ts.map +1 -0
- package/dist/server/worker-utils.js +41 -0
- package/dist/server/worker-utils.js.map +1 -0
- package/dist/shims/cache.d.ts.map +1 -1
- package/dist/shims/cache.js +14 -2
- package/dist/shims/cache.js.map +1 -1
- package/dist/shims/fetch-cache.d.ts.map +1 -1
- package/dist/shims/fetch-cache.js +139 -29
- package/dist/shims/fetch-cache.js.map +1 -1
- package/dist/shims/form.d.ts.map +1 -1
- package/dist/shims/form.js +2 -3
- package/dist/shims/form.js.map +1 -1
- package/dist/shims/headers.d.ts +6 -0
- package/dist/shims/headers.d.ts.map +1 -1
- package/dist/shims/headers.js +8 -0
- package/dist/shims/headers.js.map +1 -1
- package/dist/shims/layout-segment-context.d.ts +5 -4
- package/dist/shims/layout-segment-context.d.ts.map +1 -1
- package/dist/shims/layout-segment-context.js +6 -5
- package/dist/shims/layout-segment-context.js.map +1 -1
- package/dist/shims/link.d.ts.map +1 -1
- package/dist/shims/link.js +32 -17
- package/dist/shims/link.js.map +1 -1
- package/dist/shims/navigation.d.ts +14 -11
- package/dist/shims/navigation.d.ts.map +1 -1
- package/dist/shims/navigation.js +122 -102
- package/dist/shims/navigation.js.map +1 -1
- package/dist/shims/router.d.ts.map +1 -1
- package/dist/shims/router.js +37 -21
- package/dist/shims/router.js.map +1 -1
- package/dist/shims/server.d.ts +2 -0
- package/dist/shims/server.d.ts.map +1 -1
- package/dist/shims/server.js +4 -0
- package/dist/shims/server.js.map +1 -1
- package/dist/shims/url-utils.d.ts +13 -0
- package/dist/shims/url-utils.d.ts.map +1 -0
- package/dist/shims/url-utils.js +28 -0
- package/dist/shims/url-utils.js.map +1 -0
- package/dist/utils/project.d.ts +13 -1
- package/dist/utils/project.d.ts.map +1 -1
- package/dist/utils/project.js +63 -13
- package/dist/utils/project.js.map +1 -1
- package/package.json +6 -1
package/dist/utils/project.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ type PackageManagerName = "pnpm" | "yarn" | "bun" | "npm";
|
|
|
19
19
|
/**
|
|
20
20
|
* Detect which package manager name is used.
|
|
21
21
|
* Priority:
|
|
22
|
-
* 1) lock files
|
|
22
|
+
* 1) lock files (walks up parent directories for monorepo support)
|
|
23
23
|
* 2) package.json#packageManager
|
|
24
24
|
* 3) invoking CLI user agent (npm_config_user_agent)
|
|
25
25
|
* 4) npm fallback
|
|
@@ -30,6 +30,18 @@ export declare function detectPackageManagerName(root: string, env?: Record<stri
|
|
|
30
30
|
* Returns the dev-install command string (e.g. "pnpm add -D").
|
|
31
31
|
*/
|
|
32
32
|
export declare function detectPackageManager(root: string): string;
|
|
33
|
+
/**
|
|
34
|
+
* Walk from `start` up to the filesystem root looking for a path inside
|
|
35
|
+
* node_modules. Returns the first absolute path found, or null.
|
|
36
|
+
*
|
|
37
|
+
* Handles monorepos where packages are hoisted to the workspace root's
|
|
38
|
+
* node_modules rather than installed in each app's own node_modules.
|
|
39
|
+
*
|
|
40
|
+
* @param start - Directory to begin the search (usually the project root)
|
|
41
|
+
* @param subPath - Path relative to a node_modules dir, e.g. ".bin/wrangler"
|
|
42
|
+
* or "@cloudflare/vite-plugin"
|
|
43
|
+
*/
|
|
44
|
+
export declare function findInNodeModules(start: string, subPath: string): string | null;
|
|
33
45
|
/**
|
|
34
46
|
* Check if a vite.config file exists in the project root.
|
|
35
47
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/utils/project.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoBH;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAepD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAsBtE;
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/utils/project.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoBH;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAepD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAsBtE;AA0BD,KAAK,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AAuD1D;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,kBAAkB,CAWpB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIzD;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK/E;AAID;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMnD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAK/C"}
|
package/dist/utils/project.js
CHANGED
|
@@ -67,6 +67,27 @@ export function renameCJSConfigs(root) {
|
|
|
67
67
|
}
|
|
68
68
|
return renamed;
|
|
69
69
|
}
|
|
70
|
+
// ─── Ancestor Directory Walking ──────────────────────────────────────────────
|
|
71
|
+
/**
|
|
72
|
+
* Walk from `start` up to the filesystem root, calling `check` on each
|
|
73
|
+
* directory. Returns the first non-null value returned by `check`, or null.
|
|
74
|
+
*
|
|
75
|
+
* This is the shared primitive used by both lock-file detection and
|
|
76
|
+
* node_modules resolution to support monorepo layouts where the relevant
|
|
77
|
+
* files live at the workspace root rather than inside each app package.
|
|
78
|
+
*/
|
|
79
|
+
function walkUpUntil(start, check) {
|
|
80
|
+
let dir = path.resolve(start);
|
|
81
|
+
const { root: fsRoot } = path.parse(dir);
|
|
82
|
+
while (true) {
|
|
83
|
+
const result = check(dir);
|
|
84
|
+
if (result !== null)
|
|
85
|
+
return result;
|
|
86
|
+
if (dir === fsRoot)
|
|
87
|
+
return null;
|
|
88
|
+
dir = path.dirname(dir);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
70
91
|
function parsePackageManagerName(value) {
|
|
71
92
|
if (!value)
|
|
72
93
|
return null;
|
|
@@ -95,26 +116,37 @@ function detectPackageManagerFromPackageJson(root) {
|
|
|
95
116
|
}
|
|
96
117
|
}
|
|
97
118
|
/**
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
* 1) lock files in the project
|
|
101
|
-
* 2) package.json#packageManager
|
|
102
|
-
* 3) invoking CLI user agent (npm_config_user_agent)
|
|
103
|
-
* 4) npm fallback
|
|
119
|
+
* Check a single directory for lock files, returning the package manager name.
|
|
120
|
+
* Used by walkUpUntil to walk ancestor directories in monorepos.
|
|
104
121
|
*/
|
|
105
|
-
|
|
106
|
-
if (fs.existsSync(path.join(
|
|
122
|
+
function checkLockFiles(dir) {
|
|
123
|
+
if (fs.existsSync(path.join(dir, "pnpm-lock.yaml")))
|
|
107
124
|
return "pnpm";
|
|
108
|
-
if (fs.existsSync(path.join(
|
|
125
|
+
if (fs.existsSync(path.join(dir, "yarn.lock")))
|
|
109
126
|
return "yarn";
|
|
110
|
-
|
|
111
|
-
|
|
127
|
+
// bun.lock = text format (Bun v1.0+); bun.lockb = legacy binary format
|
|
128
|
+
if (fs.existsSync(path.join(dir, "bun.lock")) ||
|
|
129
|
+
fs.existsSync(path.join(dir, "bun.lockb"))) {
|
|
112
130
|
return "bun";
|
|
113
131
|
}
|
|
114
|
-
if (fs.existsSync(path.join(
|
|
115
|
-
fs.existsSync(path.join(
|
|
132
|
+
if (fs.existsSync(path.join(dir, "package-lock.json")) ||
|
|
133
|
+
fs.existsSync(path.join(dir, "npm-shrinkwrap.json"))) {
|
|
116
134
|
return "npm";
|
|
117
135
|
}
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Detect which package manager name is used.
|
|
140
|
+
* Priority:
|
|
141
|
+
* 1) lock files (walks up parent directories for monorepo support)
|
|
142
|
+
* 2) package.json#packageManager
|
|
143
|
+
* 3) invoking CLI user agent (npm_config_user_agent)
|
|
144
|
+
* 4) npm fallback
|
|
145
|
+
*/
|
|
146
|
+
export function detectPackageManagerName(root, env = process.env) {
|
|
147
|
+
const fromLockFile = walkUpUntil(root, checkLockFiles);
|
|
148
|
+
if (fromLockFile)
|
|
149
|
+
return fromLockFile;
|
|
118
150
|
const fromPkg = detectPackageManagerFromPackageJson(root);
|
|
119
151
|
if (fromPkg)
|
|
120
152
|
return fromPkg;
|
|
@@ -133,6 +165,24 @@ export function detectPackageManager(root) {
|
|
|
133
165
|
return "npm install -D";
|
|
134
166
|
return `${pm} add -D`;
|
|
135
167
|
}
|
|
168
|
+
// ─── Node Modules Resolution ─────────────────────────────────────────────────
|
|
169
|
+
/**
|
|
170
|
+
* Walk from `start` up to the filesystem root looking for a path inside
|
|
171
|
+
* node_modules. Returns the first absolute path found, or null.
|
|
172
|
+
*
|
|
173
|
+
* Handles monorepos where packages are hoisted to the workspace root's
|
|
174
|
+
* node_modules rather than installed in each app's own node_modules.
|
|
175
|
+
*
|
|
176
|
+
* @param start - Directory to begin the search (usually the project root)
|
|
177
|
+
* @param subPath - Path relative to a node_modules dir, e.g. ".bin/wrangler"
|
|
178
|
+
* or "@cloudflare/vite-plugin"
|
|
179
|
+
*/
|
|
180
|
+
export function findInNodeModules(start, subPath) {
|
|
181
|
+
return walkUpUntil(start, (dir) => {
|
|
182
|
+
const candidate = path.join(dir, "node_modules", subPath);
|
|
183
|
+
return fs.existsSync(candidate) ? candidate : null;
|
|
184
|
+
});
|
|
185
|
+
}
|
|
136
186
|
// ─── Vite Config Detection ───────────────────────────────────────────────────
|
|
137
187
|
/**
|
|
138
188
|
* Check if a vite.config file exists in the project root.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/utils/project.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Shared project utilities — used by both `vinext init` and `vinext deploy`.\n *\n * These functions detect and modify project configuration without touching\n * any Next.js source files, config files, or tsconfig.json.\n */\n\nimport fs from \"node:fs\";\nimport path from \"node:path\";\n\n// ─── CJS Config Handling ─────────────────────────────────────────────────────\n\n/** Common CJS config files that may need renaming when adding \"type\": \"module\" */\nconst CJS_CONFIG_FILES = [\n \"postcss.config.js\",\n \"tailwind.config.js\",\n \".eslintrc.js\",\n \"prettier.config.js\",\n \"stylelint.config.js\",\n \"commitlint.config.js\",\n \"jest.config.js\",\n \"babel.config.js\",\n \".babelrc.js\",\n];\n\n/**\n * Ensure package.json has \"type\": \"module\".\n * Returns true if it was added (i.e. it wasn't already there).\n */\nexport function ensureESModule(root: string): boolean {\n const pkgPath = path.join(root, \"package.json\");\n if (!fs.existsSync(pkgPath)) return false;\n\n try {\n const raw = fs.readFileSync(pkgPath, \"utf-8\");\n const pkg = JSON.parse(raw);\n if (pkg.type === \"module\") return false;\n\n pkg.type = \"module\";\n fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + \"\\n\", \"utf-8\");\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * Rename CJS config files (that use `module.exports`) to .cjs\n * to avoid breakage when \"type\": \"module\" is added.\n * Returns array of [oldName, newName] pairs that were renamed.\n */\nexport function renameCJSConfigs(root: string): Array<[string, string]> {\n const renamed: Array<[string, string]> = [];\n\n for (const fileName of CJS_CONFIG_FILES) {\n const filePath = path.join(root, fileName);\n if (!fs.existsSync(filePath)) continue;\n\n try {\n const content = fs.readFileSync(filePath, \"utf-8\");\n // Only rename if it actually uses CJS patterns\n if (/\\bmodule\\.exports\\b/.test(content) || /\\brequire\\s*\\(/.test(content)) {\n const newName = fileName.replace(/\\.js$/, \".cjs\");\n const newPath = path.join(root, newName);\n fs.renameSync(filePath, newPath);\n renamed.push([fileName, newName]);\n }\n } catch {\n // skip unreadable files\n }\n }\n\n return renamed;\n}\n\n// ─── Package Manager Detection ───────────────────────────────────────────────\n\ntype PackageManagerName = \"pnpm\" | \"yarn\" | \"bun\" | \"npm\";\n\nfunction parsePackageManagerName(value: string | undefined): PackageManagerName | null {\n if (!value) return null;\n\n // packageManager: \"pnpm@10.0.0\"\n const fromPkg = value.trim().toLowerCase().split(\"@\")[0];\n if (fromPkg === \"pnpm\" || fromPkg === \"yarn\" || fromPkg === \"bun\" || fromPkg === \"npm\") {\n return fromPkg;\n }\n\n // npm_config_user_agent: \"pnpm/10.0.0 npm/? node/v22...\"\n const fromUA = value.trim().toLowerCase().split(\" \")[0]?.split(\"/\")[0];\n if (fromUA === \"pnpm\" || fromUA === \"yarn\" || fromUA === \"bun\" || fromUA === \"npm\") {\n return fromUA;\n }\n\n return null;\n}\n\nfunction detectPackageManagerFromPackageJson(root: string): PackageManagerName | null {\n const pkgPath = path.join(root, \"package.json\");\n if (!fs.existsSync(pkgPath)) return null;\n\n try {\n const pkg = JSON.parse(fs.readFileSync(pkgPath, \"utf-8\")) as { packageManager?: string };\n return parsePackageManagerName(pkg.packageManager);\n } catch {\n return null;\n }\n}\n\n/**\n * Detect which package manager name is used.\n * Priority:\n * 1) lock files in the project\n * 2) package.json#packageManager\n * 3) invoking CLI user agent (npm_config_user_agent)\n * 4) npm fallback\n */\nexport function detectPackageManagerName(\n root: string,\n env: Record<string, string | undefined> = process.env,\n): PackageManagerName {\n if (fs.existsSync(path.join(root, \"pnpm-lock.yaml\"))) return \"pnpm\";\n if (fs.existsSync(path.join(root, \"yarn.lock\"))) return \"yarn\";\n if (\n fs.existsSync(path.join(root, \"bun.lock\")) ||\n fs.existsSync(path.join(root, \"bun.lockb\"))\n ) {\n return \"bun\";\n }\n if (\n fs.existsSync(path.join(root, \"package-lock.json\")) ||\n fs.existsSync(path.join(root, \"npm-shrinkwrap.json\"))\n ) {\n return \"npm\";\n }\n\n const fromPkg = detectPackageManagerFromPackageJson(root);\n if (fromPkg) return fromPkg;\n\n const fromUA = parsePackageManagerName(env.npm_config_user_agent);\n if (fromUA) return fromUA;\n\n return \"npm\";\n}\n\n/**\n * Detect which package manager install command to use.\n * Returns the dev-install command string (e.g. \"pnpm add -D\").\n */\nexport function detectPackageManager(root: string): string {\n const pm = detectPackageManagerName(root);\n if (pm === \"npm\") return \"npm install -D\";\n return `${pm} add -D`;\n}\n\n// ─── Vite Config Detection ───────────────────────────────────────────────────\n\n/**\n * Check if a vite.config file exists in the project root.\n */\nexport function hasViteConfig(root: string): boolean {\n return (\n fs.existsSync(path.join(root, \"vite.config.ts\")) ||\n fs.existsSync(path.join(root, \"vite.config.js\")) ||\n fs.existsSync(path.join(root, \"vite.config.mjs\"))\n );\n}\n\n/**\n * Check if the project uses App Router (has an app/ directory).\n */\nexport function hasAppDir(root: string): boolean {\n return (\n fs.existsSync(path.join(root, \"app\")) ||\n fs.existsSync(path.join(root, \"src\", \"app\"))\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/utils/project.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Shared project utilities — used by both `vinext init` and `vinext deploy`.\n *\n * These functions detect and modify project configuration without touching\n * any Next.js source files, config files, or tsconfig.json.\n */\n\nimport fs from \"node:fs\";\nimport path from \"node:path\";\n\n// ─── CJS Config Handling ─────────────────────────────────────────────────────\n\n/** Common CJS config files that may need renaming when adding \"type\": \"module\" */\nconst CJS_CONFIG_FILES = [\n \"postcss.config.js\",\n \"tailwind.config.js\",\n \".eslintrc.js\",\n \"prettier.config.js\",\n \"stylelint.config.js\",\n \"commitlint.config.js\",\n \"jest.config.js\",\n \"babel.config.js\",\n \".babelrc.js\",\n];\n\n/**\n * Ensure package.json has \"type\": \"module\".\n * Returns true if it was added (i.e. it wasn't already there).\n */\nexport function ensureESModule(root: string): boolean {\n const pkgPath = path.join(root, \"package.json\");\n if (!fs.existsSync(pkgPath)) return false;\n\n try {\n const raw = fs.readFileSync(pkgPath, \"utf-8\");\n const pkg = JSON.parse(raw);\n if (pkg.type === \"module\") return false;\n\n pkg.type = \"module\";\n fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + \"\\n\", \"utf-8\");\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * Rename CJS config files (that use `module.exports`) to .cjs\n * to avoid breakage when \"type\": \"module\" is added.\n * Returns array of [oldName, newName] pairs that were renamed.\n */\nexport function renameCJSConfigs(root: string): Array<[string, string]> {\n const renamed: Array<[string, string]> = [];\n\n for (const fileName of CJS_CONFIG_FILES) {\n const filePath = path.join(root, fileName);\n if (!fs.existsSync(filePath)) continue;\n\n try {\n const content = fs.readFileSync(filePath, \"utf-8\");\n // Only rename if it actually uses CJS patterns\n if (/\\bmodule\\.exports\\b/.test(content) || /\\brequire\\s*\\(/.test(content)) {\n const newName = fileName.replace(/\\.js$/, \".cjs\");\n const newPath = path.join(root, newName);\n fs.renameSync(filePath, newPath);\n renamed.push([fileName, newName]);\n }\n } catch {\n // skip unreadable files\n }\n }\n\n return renamed;\n}\n\n// ─── Ancestor Directory Walking ──────────────────────────────────────────────\n\n/**\n * Walk from `start` up to the filesystem root, calling `check` on each\n * directory. Returns the first non-null value returned by `check`, or null.\n *\n * This is the shared primitive used by both lock-file detection and\n * node_modules resolution to support monorepo layouts where the relevant\n * files live at the workspace root rather than inside each app package.\n */\nfunction walkUpUntil<T>(start: string, check: (dir: string) => T | null): T | null {\n let dir = path.resolve(start);\n const { root: fsRoot } = path.parse(dir);\n\n while (true) {\n const result = check(dir);\n if (result !== null) return result;\n if (dir === fsRoot) return null;\n dir = path.dirname(dir);\n }\n}\n\n// ─── Package Manager Detection ───────────────────────────────────────────────\n\ntype PackageManagerName = \"pnpm\" | \"yarn\" | \"bun\" | \"npm\";\n\nfunction parsePackageManagerName(value: string | undefined): PackageManagerName | null {\n if (!value) return null;\n\n // packageManager: \"pnpm@10.0.0\"\n const fromPkg = value.trim().toLowerCase().split(\"@\")[0];\n if (fromPkg === \"pnpm\" || fromPkg === \"yarn\" || fromPkg === \"bun\" || fromPkg === \"npm\") {\n return fromPkg;\n }\n\n // npm_config_user_agent: \"pnpm/10.0.0 npm/? node/v22...\"\n const fromUA = value.trim().toLowerCase().split(\" \")[0]?.split(\"/\")[0];\n if (fromUA === \"pnpm\" || fromUA === \"yarn\" || fromUA === \"bun\" || fromUA === \"npm\") {\n return fromUA;\n }\n\n return null;\n}\n\nfunction detectPackageManagerFromPackageJson(root: string): PackageManagerName | null {\n const pkgPath = path.join(root, \"package.json\");\n if (!fs.existsSync(pkgPath)) return null;\n\n try {\n const pkg = JSON.parse(fs.readFileSync(pkgPath, \"utf-8\")) as { packageManager?: string };\n return parsePackageManagerName(pkg.packageManager);\n } catch {\n return null;\n }\n}\n\n/**\n * Check a single directory for lock files, returning the package manager name.\n * Used by walkUpUntil to walk ancestor directories in monorepos.\n */\nfunction checkLockFiles(dir: string): PackageManagerName | null {\n if (fs.existsSync(path.join(dir, \"pnpm-lock.yaml\"))) return \"pnpm\";\n if (fs.existsSync(path.join(dir, \"yarn.lock\"))) return \"yarn\";\n // bun.lock = text format (Bun v1.0+); bun.lockb = legacy binary format\n if (\n fs.existsSync(path.join(dir, \"bun.lock\")) ||\n fs.existsSync(path.join(dir, \"bun.lockb\"))\n ) {\n return \"bun\";\n }\n if (\n fs.existsSync(path.join(dir, \"package-lock.json\")) ||\n fs.existsSync(path.join(dir, \"npm-shrinkwrap.json\"))\n ) {\n return \"npm\";\n }\n return null;\n}\n\n/**\n * Detect which package manager name is used.\n * Priority:\n * 1) lock files (walks up parent directories for monorepo support)\n * 2) package.json#packageManager\n * 3) invoking CLI user agent (npm_config_user_agent)\n * 4) npm fallback\n */\nexport function detectPackageManagerName(\n root: string,\n env: Record<string, string | undefined> = process.env,\n): PackageManagerName {\n const fromLockFile = walkUpUntil(root, checkLockFiles);\n if (fromLockFile) return fromLockFile;\n\n const fromPkg = detectPackageManagerFromPackageJson(root);\n if (fromPkg) return fromPkg;\n\n const fromUA = parsePackageManagerName(env.npm_config_user_agent);\n if (fromUA) return fromUA;\n\n return \"npm\";\n}\n\n/**\n * Detect which package manager install command to use.\n * Returns the dev-install command string (e.g. \"pnpm add -D\").\n */\nexport function detectPackageManager(root: string): string {\n const pm = detectPackageManagerName(root);\n if (pm === \"npm\") return \"npm install -D\";\n return `${pm} add -D`;\n}\n\n// ─── Node Modules Resolution ─────────────────────────────────────────────────\n\n/**\n * Walk from `start` up to the filesystem root looking for a path inside\n * node_modules. Returns the first absolute path found, or null.\n *\n * Handles monorepos where packages are hoisted to the workspace root's\n * node_modules rather than installed in each app's own node_modules.\n *\n * @param start - Directory to begin the search (usually the project root)\n * @param subPath - Path relative to a node_modules dir, e.g. \".bin/wrangler\"\n * or \"@cloudflare/vite-plugin\"\n */\nexport function findInNodeModules(start: string, subPath: string): string | null {\n return walkUpUntil(start, (dir) => {\n const candidate = path.join(dir, \"node_modules\", subPath);\n return fs.existsSync(candidate) ? candidate : null;\n });\n}\n\n// ─── Vite Config Detection ───────────────────────────────────────────────────\n\n/**\n * Check if a vite.config file exists in the project root.\n */\nexport function hasViteConfig(root: string): boolean {\n return (\n fs.existsSync(path.join(root, \"vite.config.ts\")) ||\n fs.existsSync(path.join(root, \"vite.config.js\")) ||\n fs.existsSync(path.join(root, \"vite.config.mjs\"))\n );\n}\n\n/**\n * Check if the project uses App Router (has an app/ directory).\n */\nexport function hasAppDir(root: string): boolean {\n return (\n fs.existsSync(path.join(root, \"app\")) ||\n fs.existsSync(path.join(root, \"src\", \"app\"))\n );\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vinext",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.25",
|
|
4
4
|
"description": "Run Next.js apps on Vite. Drop-in replacement for the next CLI.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -44,6 +44,10 @@
|
|
|
44
44
|
"./config/config-matchers": {
|
|
45
45
|
"import": "./dist/config/config-matchers.js",
|
|
46
46
|
"types": "./dist/config/config-matchers.d.ts"
|
|
47
|
+
},
|
|
48
|
+
"./server/worker-utils": {
|
|
49
|
+
"import": "./dist/server/worker-utils.js",
|
|
50
|
+
"types": "./dist/server/worker-utils.d.ts"
|
|
47
51
|
}
|
|
48
52
|
},
|
|
49
53
|
"files": [
|
|
@@ -62,6 +66,7 @@
|
|
|
62
66
|
"dependencies": {
|
|
63
67
|
"@unpic/react": "^1.0.2",
|
|
64
68
|
"@vercel/og": "^0.8.6",
|
|
69
|
+
"@vitejs/plugin-react": "^5.1.4",
|
|
65
70
|
"@vitejs/plugin-rsc": "^0.5.19",
|
|
66
71
|
"magic-string": "^0.30.21",
|
|
67
72
|
"react-server-dom-webpack": "^19.2.4",
|