@edgeone/vite-core 1.0.0

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.
Files changed (73) hide show
  1. package/dist/bundler.d.ts +13 -0
  2. package/dist/bundler.d.ts.map +1 -0
  3. package/dist/bundler.js +101 -0
  4. package/dist/bundler.js.map +1 -0
  5. package/dist/core.d.ts +11 -0
  6. package/dist/core.d.ts.map +1 -0
  7. package/dist/core.js +330 -0
  8. package/dist/core.js.map +1 -0
  9. package/dist/factory/detectors.d.ts +13 -0
  10. package/dist/factory/detectors.d.ts.map +1 -0
  11. package/dist/factory/detectors.js +46 -0
  12. package/dist/factory/detectors.js.map +1 -0
  13. package/dist/factory/hooks.d.ts +29 -0
  14. package/dist/factory/hooks.d.ts.map +1 -0
  15. package/dist/factory/hooks.js +158 -0
  16. package/dist/factory/hooks.js.map +1 -0
  17. package/dist/factory/index.d.ts +24 -0
  18. package/dist/factory/index.d.ts.map +1 -0
  19. package/dist/factory/index.js +47 -0
  20. package/dist/factory/index.js.map +1 -0
  21. package/dist/factory/presets.d.ts +27 -0
  22. package/dist/factory/presets.d.ts.map +1 -0
  23. package/dist/factory/presets.js +186 -0
  24. package/dist/factory/presets.js.map +1 -0
  25. package/dist/factory.d.ts +183 -0
  26. package/dist/factory.d.ts.map +1 -0
  27. package/dist/factory.js +482 -0
  28. package/dist/factory.js.map +1 -0
  29. package/dist/helpers.d.ts +53 -0
  30. package/dist/helpers.d.ts.map +1 -0
  31. package/dist/helpers.js +177 -0
  32. package/dist/helpers.js.map +1 -0
  33. package/dist/index.d.ts +16 -0
  34. package/dist/index.d.ts.map +1 -0
  35. package/dist/index.js +12 -0
  36. package/dist/index.js.map +1 -0
  37. package/dist/route/index.d.ts +7 -0
  38. package/dist/route/index.d.ts.map +1 -0
  39. package/dist/route/index.js +6 -0
  40. package/dist/route/index.js.map +1 -0
  41. package/dist/route/parser.d.ts +18 -0
  42. package/dist/route/parser.d.ts.map +1 -0
  43. package/dist/route/parser.js +187 -0
  44. package/dist/route/parser.js.map +1 -0
  45. package/dist/route/regex.d.ts +31 -0
  46. package/dist/route/regex.d.ts.map +1 -0
  47. package/dist/route/regex.js +140 -0
  48. package/dist/route/regex.js.map +1 -0
  49. package/dist/route/regex.test.d.ts +7 -0
  50. package/dist/route/regex.test.d.ts.map +1 -0
  51. package/dist/route/regex.test.js +662 -0
  52. package/dist/route/regex.test.js.map +1 -0
  53. package/dist/route/types.d.ts +58 -0
  54. package/dist/route/types.d.ts.map +1 -0
  55. package/dist/route/types.js +5 -0
  56. package/dist/route/types.js.map +1 -0
  57. package/dist/route-parser.d.ts +8 -0
  58. package/dist/route-parser.d.ts.map +1 -0
  59. package/dist/route-parser.js +8 -0
  60. package/dist/route-parser.js.map +1 -0
  61. package/dist/types.d.ts +160 -0
  62. package/dist/types.d.ts.map +1 -0
  63. package/dist/types.js +5 -0
  64. package/dist/types.js.map +1 -0
  65. package/dist/utils.d.ts +40 -0
  66. package/dist/utils.d.ts.map +1 -0
  67. package/dist/utils.js +242 -0
  68. package/dist/utils.js.map +1 -0
  69. package/dist/vite-config-parser.d.ts +62 -0
  70. package/dist/vite-config-parser.d.ts.map +1 -0
  71. package/dist/vite-config-parser.js +229 -0
  72. package/dist/vite-config-parser.js.map +1 -0
  73. package/package.json +51 -0
@@ -0,0 +1,13 @@
1
+ import * as esbuild from "esbuild";
2
+ import type { BuildContext, ServerBundleConfig, ServerWrapperConfig } from "./types.js";
3
+ export interface EsmInteropPluginOptions {
4
+ mappings: Record<string, string>;
5
+ searchDirs?: string[];
6
+ }
7
+ export declare function createEsmInteropPlugin(options: EsmInteropPluginOptions): esbuild.Plugin;
8
+ export declare function bundleServerCode(context: BuildContext, config: ServerBundleConfig): Promise<esbuild.BuildResult>;
9
+ export declare function createServerWrapper(context: BuildContext, config: ServerWrapperConfig): Promise<string>;
10
+ export declare function cleanupWrapper(wrapperPath: string, logger?: {
11
+ verbose?: (msg: string) => void;
12
+ }): Promise<void>;
13
+ //# sourceMappingURL=bundler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundler.d.ts","sourceRoot":"","sources":["../src/bundler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAQxF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAsCvF;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CA+B9B;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAsBjB;AAED,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAMrH"}
@@ -0,0 +1,101 @@
1
+ import * as esbuild from "esbuild";
2
+ import path from "path";
3
+ import fs from "fs";
4
+ import { writeFile, deleteFile, ensureDirectory, generateServerWrapperCode, readFile } from "./utils.js";
5
+ const DEFAULT_BANNER = `import { createRequire } from 'node:module';
6
+ const require = createRequire(import.meta.url);
7
+ const __filename = new URL('', import.meta.url).pathname;
8
+ const __dirname = new URL('.', import.meta.url).pathname;`;
9
+ export function createEsmInteropPlugin(options) {
10
+ const { mappings, searchDirs = [] } = options;
11
+ return {
12
+ name: "esm-interop",
13
+ setup(build) {
14
+ // Build search paths for node_modules
15
+ const buildSearchDirs = (baseDir) => {
16
+ const dirs = [baseDir, process.cwd(), ...searchDirs];
17
+ // Add parent directories for monorepo support
18
+ let current = baseDir;
19
+ for (let i = 0; i < 5; i++) {
20
+ if (!dirs.includes(current))
21
+ dirs.push(current);
22
+ const parent = path.dirname(current);
23
+ if (parent === current)
24
+ break;
25
+ current = parent;
26
+ }
27
+ return dirs;
28
+ };
29
+ // Create resolver for each mapping
30
+ for (const [from, to] of Object.entries(mappings)) {
31
+ const filter = new RegExp(`^${from.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}$`);
32
+ build.onResolve({ filter }, (args) => {
33
+ const searchDirList = buildSearchDirs(args.resolveDir || process.cwd());
34
+ for (const baseDir of searchDirList) {
35
+ const searchPath = path.join(baseDir, "node_modules", to);
36
+ if (fs.existsSync(searchPath)) {
37
+ return { path: searchPath, external: false };
38
+ }
39
+ }
40
+ return null; // Let esbuild handle it
41
+ });
42
+ }
43
+ },
44
+ };
45
+ }
46
+ export async function bundleServerCode(context, config) {
47
+ const { projectRoot, logger } = context;
48
+ logger.verbose("Bundling server code...");
49
+ await ensureDirectory(path.dirname(config.outfile));
50
+ const absWorkingDir = config.esbuildOptions?.absWorkingDir || projectRoot;
51
+ // Extract plugins from esbuildOptions (adapter can pass custom plugins here)
52
+ const { plugins: customPlugins, ...restOptions } = config.esbuildOptions || {};
53
+ const result = await esbuild.build({
54
+ entryPoints: config.entryPoints,
55
+ bundle: true,
56
+ platform: "node",
57
+ target: "node18",
58
+ format: "esm",
59
+ outfile: config.outfile,
60
+ minify: false,
61
+ treeShaking: true,
62
+ external: ["node:*", ...(config.external || [])],
63
+ metafile: true,
64
+ logLevel: "warning",
65
+ banner: { js: DEFAULT_BANNER },
66
+ plugins: Array.isArray(customPlugins) ? customPlugins : [],
67
+ ...restOptions,
68
+ absWorkingDir,
69
+ });
70
+ logger.verbose(`Server code bundled to: ${config.outfile}`);
71
+ return result;
72
+ }
73
+ export async function createServerWrapper(context, config) {
74
+ const { projectRoot, logger } = context;
75
+ logger.verbose("Creating server wrapper...");
76
+ let wrapperContent;
77
+ if (config.wrapperTemplate) {
78
+ const serverBuildContent = await readFile(config.serverEntryPath);
79
+ wrapperContent = config.wrapperTemplate.replace("{{SERVER_BUILD_CONTENT}}", serverBuildContent);
80
+ }
81
+ else {
82
+ wrapperContent = generateServerWrapperCode({
83
+ serverEntryPath: config.serverEntryPath,
84
+ handlerSetup: config.banner || "",
85
+ handlerCall: "defaultExport(webRequest, ...args)",
86
+ });
87
+ }
88
+ const tempPath = path.join(projectRoot, "server-wrapper.temp.js");
89
+ await writeFile(tempPath, wrapperContent);
90
+ logger.verbose("Server wrapper created");
91
+ return tempPath;
92
+ }
93
+ export async function cleanupWrapper(wrapperPath, logger) {
94
+ try {
95
+ await deleteFile(wrapperPath);
96
+ }
97
+ catch (error) {
98
+ logger?.verbose?.(`Failed to cleanup wrapper file ${wrapperPath}: ${error instanceof Error ? error.message : String(error)}`);
99
+ }
100
+ }
101
+ //# sourceMappingURL=bundler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundler.js","sourceRoot":"","sources":["../src/bundler.ts"],"names":[],"mappings":"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"}
package/dist/core.d.ts ADDED
@@ -0,0 +1,11 @@
1
+ /**
2
+ * EdgeOne Vite Plugin Adapter - Core Plugin Module
3
+ *
4
+ * Handles build artifact detection, static asset copying, server code bundling,
5
+ * route config generation, and meta.json generation for EdgeOne deployment.
6
+ */
7
+ import type { Plugin } from "vite";
8
+ import type { CoreAdapterOptions } from "./types.js";
9
+ export declare function createCoreAdapter(options?: CoreAdapterOptions): Plugin;
10
+ export default createCoreAdapter;
11
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,MAAM,CAAC;AAEnD,OAAO,KAAK,EACV,kBAAkB,EAOnB,MAAM,YAAY,CAAC;AAkBpB,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,kBAAuB,GAAG,MAAM,CA0F1E;AA2RD,eAAe,iBAAiB,CAAC"}
package/dist/core.js ADDED
@@ -0,0 +1,330 @@
1
+ /**
2
+ * EdgeOne Vite Plugin Adapter - Core Plugin Module
3
+ *
4
+ * Handles build artifact detection, static asset copying, server code bundling,
5
+ * route config generation, and meta.json generation for EdgeOne deployment.
6
+ */
7
+ import path from "path";
8
+ import { createLogger, pathExists, copyDirectory, ensureDirectory, writeFile, detectServerEntry, } from "./utils.js";
9
+ import { ViteConfigParser } from "./vite-config-parser.js";
10
+ import { bundleServerCode, createServerWrapper, cleanupWrapper, } from "./bundler.js";
11
+ import { addRegexToRoutes, convertRoutesToMetaFormat } from "./route/index.js";
12
+ import fs from "fs/promises";
13
+ export function createCoreAdapter(options = {}) {
14
+ const { verbose = false, adapter, hooks = {}, ssr: ssrOption } = options;
15
+ const outputDir = ".edgeone";
16
+ const logger = createLogger(verbose);
17
+ let projectRoot;
18
+ let viteConfig;
19
+ let isSSR = false;
20
+ let hasProcessed = false;
21
+ return {
22
+ name: "vite-plugin-edgeone-adapter",
23
+ apply: "build",
24
+ enforce: "post",
25
+ configResolved(config) {
26
+ projectRoot = config.root;
27
+ viteConfig = config;
28
+ if (ssrOption !== undefined) {
29
+ logger.verbose("SSR mode configured:", ssrOption);
30
+ isSSR = ssrOption;
31
+ }
32
+ else {
33
+ logger.verbose("Auto-detecting SSR mode from Vite config", config.build.ssr);
34
+ isSSR = config.build.ssr !== false && config.build.ssr !== undefined;
35
+ }
36
+ logger.verbose("Project root:", projectRoot);
37
+ logger.verbose("SSR mode:", isSSR);
38
+ },
39
+ async closeBundle() {
40
+ const currentOutDir = viteConfig.build.outDir;
41
+ const isServerOutDir = currentOutDir.endsWith("/server") ||
42
+ currentOutDir.endsWith("\\server") ||
43
+ (typeof viteConfig.build.ssr === "string");
44
+ logger.verbose("closeBundle triggered, isSSR:", isSSR, "outDir:", currentOutDir, "isServerOutDir:", isServerOutDir);
45
+ if (isSSR && isServerOutDir) {
46
+ const serverDir = path.isAbsolute(currentOutDir)
47
+ ? currentOutDir
48
+ : path.join(projectRoot, currentOutDir);
49
+ const serverDirExists = await pathExists(serverDir);
50
+ logger.verbose("Server dir check:", serverDir, "exists:", serverDirExists);
51
+ if (!serverDirExists) {
52
+ logger.verbose("Skipping client build phase, server directory not yet created");
53
+ return;
54
+ }
55
+ }
56
+ if (hasProcessed) {
57
+ logger.verbose("Skipping processing (already processed)");
58
+ return;
59
+ }
60
+ hasProcessed = true;
61
+ try {
62
+ const context = { projectRoot, outputDir, isSSR, viteConfig, logger };
63
+ if (hooks.beforeBuild)
64
+ await hooks.beforeBuild(context);
65
+ let artifacts;
66
+ if (adapter) {
67
+ const shouldUse = await adapter.detect(context);
68
+ if (!shouldUse) {
69
+ logger.warn(`Adapter ${adapter.name} detection failed, using default config`);
70
+ }
71
+ artifacts = await adapter.getBuildArtifacts(context);
72
+ }
73
+ else {
74
+ artifacts = await detectBuildArtifacts(context);
75
+ }
76
+ if (hooks.afterBuild)
77
+ await hooks.afterBuild(context, artifacts);
78
+ logger.verbose("artifacts", artifacts);
79
+ await cleanOutputDir(context);
80
+ if (artifacts.clientDir)
81
+ await copyStaticAssets(context, artifacts.clientDir);
82
+ if (isSSR && artifacts.serverEntry)
83
+ await bundleServer(context, artifacts, adapter);
84
+ if (artifacts.serverEntry)
85
+ await generateMetaJson(context, adapter);
86
+ logger.verbose("EdgeOne adapter processing complete");
87
+ }
88
+ catch (error) {
89
+ logger.error("EdgeOne adapter processing failed:", error);
90
+ throw error;
91
+ }
92
+ },
93
+ };
94
+ }
95
+ async function detectBuildArtifacts(context) {
96
+ const { projectRoot, logger, viteConfig, isSSR } = context;
97
+ let clientDir = null;
98
+ let serverDir = null;
99
+ let serverEntry = null;
100
+ const serverEntryCandidates = [
101
+ "index.js", "index.mjs", "entry-server.js", "entry-server.mjs", "server.js", "server.mjs",
102
+ ];
103
+ if (viteConfig) {
104
+ const configParser = new ViteConfigParser(viteConfig, projectRoot, { logger, serverEntryCandidates });
105
+ const configInfo = await configParser.parse();
106
+ logger.verbose("Vite config parsed:", { outDir: configInfo.outDir, isSSR: configInfo.isSSR, ssrEntry: configInfo.ssrEntry });
107
+ if (configInfo.isSSR) {
108
+ const clientCandidates = [path.join(configInfo.absoluteOutDir, "client"), configInfo.absoluteOutDir];
109
+ for (const candidate of clientCandidates) {
110
+ if (await pathExists(candidate)) {
111
+ const hasHtml = await pathExists(path.join(candidate, "index.html"));
112
+ const hasAssets = await pathExists(path.join(candidate, "assets"));
113
+ if (hasHtml || hasAssets) {
114
+ clientDir = candidate;
115
+ logger.verbose(`Found client directory: ${clientDir}`);
116
+ break;
117
+ }
118
+ }
119
+ }
120
+ }
121
+ else {
122
+ if (await pathExists(configInfo.absoluteOutDir)) {
123
+ clientDir = configInfo.absoluteOutDir;
124
+ logger.verbose(`Found client directory (SPA): ${clientDir}`);
125
+ }
126
+ }
127
+ if (isSSR) {
128
+ serverDir = configInfo.serverDir;
129
+ serverEntry = configInfo.serverEntryPath;
130
+ if (!serverEntry && serverDir) {
131
+ serverEntry = await detectServerEntry(serverDir, serverEntryCandidates, { recursive: true, logger });
132
+ }
133
+ }
134
+ }
135
+ // Fallback detection
136
+ if (!clientDir) {
137
+ const clientPaths = [
138
+ path.join(projectRoot, "dist"),
139
+ path.join(projectRoot, "dist/client"),
140
+ path.join(projectRoot, "build/client"),
141
+ path.join(projectRoot, "build"),
142
+ ];
143
+ for (const p of clientPaths) {
144
+ if (await pathExists(p)) {
145
+ clientDir = p;
146
+ logger.verbose(`Found client build directory (fallback): ${p}`);
147
+ break;
148
+ }
149
+ }
150
+ }
151
+ if (isSSR && !serverDir) {
152
+ const serverPaths = [path.join(projectRoot, "dist/server"), path.join(projectRoot, "build/server")];
153
+ for (const p of serverPaths) {
154
+ if (await pathExists(p)) {
155
+ serverDir = p;
156
+ logger.verbose(`Found server build directory (fallback): ${p}`);
157
+ break;
158
+ }
159
+ }
160
+ }
161
+ if (isSSR && serverDir && !serverEntry) {
162
+ serverEntry = await detectServerEntry(serverDir, serverEntryCandidates, { recursive: true, logger });
163
+ }
164
+ return { clientDir, serverDir, serverEntry, assetsDir: clientDir };
165
+ }
166
+ async function cleanOutputDir(context) {
167
+ const { projectRoot, outputDir, logger } = context;
168
+ const outputPath = path.join(projectRoot, outputDir);
169
+ const pathsToClean = [
170
+ path.join(outputPath, "assets"),
171
+ path.join(outputPath, "server-handler"),
172
+ path.join(outputPath, "meta.json"),
173
+ ];
174
+ for (const p of pathsToClean) {
175
+ try {
176
+ await fs.rm(p, { recursive: true, force: true });
177
+ }
178
+ catch {
179
+ // Ignore errors
180
+ }
181
+ }
182
+ await ensureDirectory(outputPath);
183
+ logger.verbose("Output directory cleaned");
184
+ }
185
+ async function copyStaticAssets(context, clientDir) {
186
+ const { projectRoot, outputDir, logger } = context;
187
+ const targetPath = path.join(projectRoot, outputDir, "assets");
188
+ await copyDirectory(clientDir, targetPath);
189
+ logger.verbose(`Static assets copied to ${outputDir}/assets`);
190
+ }
191
+ async function bundleServer(context, artifacts, adapter) {
192
+ const { projectRoot, outputDir, logger } = context;
193
+ if (!artifacts.serverEntry) {
194
+ logger.warn("Server entry file not found, skipping server bundling");
195
+ return;
196
+ }
197
+ const outputPath = path.join(projectRoot, outputDir, "server-handler");
198
+ const outputFile = path.join(outputPath, "handler.js");
199
+ const adapterHooks = adapter?.hooks || {};
200
+ const wrapperConfig = { serverEntryPath: artifacts.serverEntry };
201
+ const serverDir = artifacts.serverDir || path.dirname(artifacts.serverEntry);
202
+ let wrapperPath;
203
+ if (adapterHooks.generateServerWrapper) {
204
+ const wrapperContent = await adapterHooks.generateServerWrapper(context, wrapperConfig);
205
+ wrapperPath = path.join(serverDir, "server-wrapper.temp.js");
206
+ await writeFile(wrapperPath, wrapperContent);
207
+ }
208
+ else {
209
+ wrapperPath = await createServerWrapper(context, wrapperConfig);
210
+ }
211
+ let bundleConfig = {
212
+ entryPoints: [wrapperPath],
213
+ outfile: outputFile,
214
+ esbuildOptions: { absWorkingDir: serverDir },
215
+ };
216
+ if (context.viteConfig && adapterHooks.beforeBundle) {
217
+ bundleConfig = await adapterHooks.beforeBundle(context, bundleConfig);
218
+ }
219
+ const bundleResult = await bundleServerCode(context, bundleConfig);
220
+ await cleanupWrapper(wrapperPath);
221
+ // Extract bundled files from metafile to avoid copying already-inlined files
222
+ const bundledFiles = getBundledFiles(bundleResult.metafile, serverDir);
223
+ // Copy only server-side files that were NOT inlined into handler.js
224
+ await copyServerAssets(serverDir, outputPath, artifacts.serverEntry, bundledFiles, logger);
225
+ if (adapterHooks.afterBundle) {
226
+ await adapterHooks.afterBundle(context, outputFile);
227
+ }
228
+ logger.verbose(`Server code bundled to ${outputDir}/server-handler/handler.js`);
229
+ }
230
+ /**
231
+ * Extract the set of files that were bundled/inlined into handler.js from esbuild metafile.
232
+ * Returns a Set of absolute file paths that are already included in the bundle.
233
+ */
234
+ function getBundledFiles(metafile, serverDir) {
235
+ const bundledFiles = new Set();
236
+ if (!metafile?.inputs) {
237
+ return bundledFiles;
238
+ }
239
+ for (const inputPath of Object.keys(metafile.inputs)) {
240
+ // esbuild metafile uses relative paths from absWorkingDir
241
+ // Convert to absolute path for comparison
242
+ const absolutePath = path.isAbsolute(inputPath)
243
+ ? inputPath
244
+ : path.resolve(serverDir, inputPath);
245
+ bundledFiles.add(absolutePath);
246
+ }
247
+ return bundledFiles;
248
+ }
249
+ /**
250
+ * Copy server build files to server-handler directory.
251
+ * Only copies files that are NOT already bundled into handler.js.
252
+ * This ensures files needed at runtime (non-JS assets, dynamic imports, etc.) are available.
253
+ */
254
+ async function copyServerAssets(serverDir, outputPath, serverEntry, bundledFiles, logger) {
255
+ const serverEntryFileName = path.basename(serverEntry);
256
+ let copiedCount = 0;
257
+ let skippedCount = 0;
258
+ async function copyRecursive(srcDir, destDir, relativePath = "") {
259
+ const entries = await fs.readdir(srcDir, { withFileTypes: true });
260
+ for (const entry of entries) {
261
+ const srcPath = path.join(srcDir, entry.name);
262
+ const destPath = path.join(destDir, entry.name);
263
+ const currentRelativePath = relativePath ? `${relativePath}/${entry.name}` : entry.name;
264
+ // Skip the main server entry file (already bundled into handler.js)
265
+ if (relativePath === "" && entry.name === serverEntryFileName)
266
+ continue;
267
+ // Skip temporary files generated during build
268
+ if (entry.name.endsWith(".temp.js") || entry.name.endsWith(".temp.mjs"))
269
+ continue;
270
+ if (entry.isDirectory()) {
271
+ // Recursively process directories
272
+ await copyRecursive(srcPath, destPath, currentRelativePath);
273
+ }
274
+ else if (entry.isFile()) {
275
+ // Check if this file was already bundled into handler.js
276
+ const absoluteSrcPath = path.resolve(srcPath);
277
+ if (bundledFiles.has(absoluteSrcPath)) {
278
+ skippedCount++;
279
+ logger.verbose(`Skipped (already bundled): ${currentRelativePath}`);
280
+ continue;
281
+ }
282
+ // Copy the file
283
+ try {
284
+ await ensureDirectory(destDir);
285
+ await fs.copyFile(srcPath, destPath);
286
+ copiedCount++;
287
+ logger.verbose(`Copied server file: ${currentRelativePath}`);
288
+ }
289
+ catch (error) {
290
+ logger.verbose(`Failed to copy ${currentRelativePath}: ${error instanceof Error ? error.message : String(error)}`);
291
+ }
292
+ }
293
+ }
294
+ }
295
+ await copyRecursive(serverDir, outputPath);
296
+ if (copiedCount > 0 || skippedCount > 0) {
297
+ logger.verbose(`Server assets: copied ${copiedCount}, skipped ${skippedCount} (already bundled)`);
298
+ }
299
+ }
300
+ async function generateMetaJson(context, adapter) {
301
+ const { projectRoot, outputDir, isSSR, logger } = context;
302
+ let routes = [];
303
+ const adapterHooks = adapter?.hooks || {};
304
+ if (adapterHooks.generateRoutes) {
305
+ routes = await adapterHooks.generateRoutes(context);
306
+ }
307
+ else {
308
+ routes = [{ path: "/", isStatic: !isSSR, srcRoute: "/" }];
309
+ }
310
+ const metaRoutes = convertRoutesToMetaFormat(routes);
311
+ let metaConfig;
312
+ if (adapterHooks.generateMeta) {
313
+ const routesWithRegex = addRegexToRoutes(routes);
314
+ metaConfig = await adapterHooks.generateMeta(context, routesWithRegex);
315
+ metaConfig.frameworkRoutes = metaRoutes;
316
+ }
317
+ else {
318
+ metaConfig = {
319
+ conf: { headers: [], redirects: [], rewrites: [], caches: [], has404: false, ssr404: isSSR },
320
+ has404: false,
321
+ frameworkRoutes: metaRoutes,
322
+ };
323
+ }
324
+ const metaContent = JSON.stringify(metaConfig, null, 2);
325
+ await writeFile(path.join(projectRoot, outputDir, "server-handler", "meta.json"), metaContent);
326
+ await writeFile(path.join(projectRoot, outputDir, "meta.json"), metaContent);
327
+ logger.verbose(`meta.json generated with ${routes.length} routes`);
328
+ }
329
+ export default createCoreAdapter;
330
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Framework Detectors - Utilities for detecting frameworks
3
+ */
4
+ import type { BuildContext } from "../types.js";
5
+ /** Combine multiple detector functions (returns true if any matches) */
6
+ export declare function combineDetectors(...detectors: ((context: BuildContext) => Promise<boolean> | boolean)[]): (context: BuildContext) => Promise<boolean>;
7
+ /** Create detector based on config files */
8
+ export declare function createConfigDetector(configFiles: string[]): (context: BuildContext) => Promise<boolean>;
9
+ /** Create detector based on build directories */
10
+ export declare function createBuildDirDetector(buildDirs: string[]): (context: BuildContext) => Promise<boolean>;
11
+ /** Create detector based on package.json dependencies */
12
+ export declare function createDependencyDetector(dependencies: string[]): (context: BuildContext) => Promise<boolean>;
13
+ //# sourceMappingURL=detectors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detectors.d.ts","sourceRoot":"","sources":["../../src/factory/detectors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,wEAAwE;AACxE,wBAAgB,gBAAgB,CAC9B,GAAG,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,EAAE,IAEzD,SAAS,YAAY,KAAG,OAAO,CAAC,OAAO,CAAC,CAMvD;AAED,4CAA4C;AAC5C,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,IAC1C,SAAS,YAAY,KAAG,OAAO,CAAC,OAAO,CAAC,CAGvD;AAED,iDAAiD;AACjD,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,IAC1C,SAAS,YAAY,KAAG,OAAO,CAAC,OAAO,CAAC,CAGvD;AAED,yDAAyD;AACzD,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,IAC/C,SAAS,YAAY,KAAG,OAAO,CAAC,OAAO,CAAC,CAcvD"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Framework Detectors - Utilities for detecting frameworks
3
+ */
4
+ import path from "path";
5
+ import { pathExists, readFile, detectConfigFile, detectBuildDir } from "../utils.js";
6
+ /** Combine multiple detector functions (returns true if any matches) */
7
+ export function combineDetectors(...detectors) {
8
+ return async (context) => {
9
+ for (const detector of detectors) {
10
+ if (await detector(context))
11
+ return true;
12
+ }
13
+ return false;
14
+ };
15
+ }
16
+ /** Create detector based on config files */
17
+ export function createConfigDetector(configFiles) {
18
+ return async (context) => {
19
+ return (await detectConfigFile(context.projectRoot, configFiles)) !== null;
20
+ };
21
+ }
22
+ /** Create detector based on build directories */
23
+ export function createBuildDirDetector(buildDirs) {
24
+ return async (context) => {
25
+ return (await detectBuildDir(context.projectRoot, buildDirs)) !== null;
26
+ };
27
+ }
28
+ /** Create detector based on package.json dependencies */
29
+ export function createDependencyDetector(dependencies) {
30
+ return async (context) => {
31
+ const packageJsonPath = path.join(context.projectRoot, "package.json");
32
+ if (!(await pathExists(packageJsonPath)))
33
+ return false;
34
+ try {
35
+ const content = await readFile(packageJsonPath);
36
+ const packageJson = JSON.parse(content);
37
+ const deps = { ...packageJson.dependencies, ...packageJson.devDependencies };
38
+ return dependencies.some((dep) => dep in deps);
39
+ }
40
+ catch (error) {
41
+ context.logger?.verbose?.(`Failed to parse package.json: ${error instanceof Error ? error.message : String(error)}`);
42
+ return false;
43
+ }
44
+ };
45
+ }
46
+ //# sourceMappingURL=detectors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detectors.js","sourceRoot":"","sources":["../../src/factory/detectors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAErF,wEAAwE;AACxE,MAAM,UAAU,gBAAgB,CAC9B,GAAG,SAAoE;IAEvE,OAAO,KAAK,EAAE,OAAqB,EAAoB,EAAE;QACvD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,MAAM,QAAQ,CAAC,OAAO,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC3C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,oBAAoB,CAAC,WAAqB;IACxD,OAAO,KAAK,EAAE,OAAqB,EAAoB,EAAE;QACvD,OAAO,CAAC,MAAM,gBAAgB,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,KAAK,IAAI,CAAC;IAC7E,CAAC,CAAC;AACJ,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,sBAAsB,CAAC,SAAmB;IACxD,OAAO,KAAK,EAAE,OAAqB,EAAoB,EAAE;QACvD,OAAO,CAAC,MAAM,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,KAAK,IAAI,CAAC;IACzE,CAAC,CAAC;AACJ,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,wBAAwB,CAAC,YAAsB;IAC7D,OAAO,KAAK,EAAE,OAAqB,EAAoB,EAAE;QACvD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACvE,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,eAAe,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAEvD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,IAAI,GAAG,EAAE,GAAG,WAAW,CAAC,YAAY,EAAE,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC;YAC7E,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACrH,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Hook Creation Functions - Internal functions for creating adapter hooks
3
+ */
4
+ import type { BuildContext, BuildArtifacts, RouteInfo, MetaConfig, ServerWrapperConfig, ServerBundleConfig, EsbuildConfig, ServerWrapperPreset } from "../types.js";
5
+ import { type RouteSource } from "../route/index.js";
6
+ export type { EsbuildConfig, ServerWrapperPreset };
7
+ export interface BuildDirConfig {
8
+ client: string[];
9
+ server?: string[];
10
+ }
11
+ export interface RouteSourceConfig {
12
+ sources?: RouteSource[];
13
+ defaultRoutes?: string[];
14
+ ssrExtraRoutes?: string[];
15
+ transform?: (routes: RouteInfo[], context: BuildContext) => RouteInfo[];
16
+ }
17
+ export interface AdapterFactoryOptions {
18
+ clientBuildDir?: string;
19
+ serverBuildDir?: string;
20
+ serverEntry?: string;
21
+ routes?: string[];
22
+ }
23
+ export declare function createDefaultDetector(configFiles: string[]): (context: BuildContext) => Promise<boolean>;
24
+ export declare function createDefaultBuildArtifactsGetter(name: string, buildDirs: BuildDirConfig, serverEntryFiles: string[], options: AdapterFactoryOptions): (context: BuildContext) => Promise<BuildArtifacts>;
25
+ export declare function createGenerateRoutesHook(effectiveRouteConfig: RouteSourceConfig, fallbackRoutes: string[]): (context: BuildContext) => Promise<RouteInfo[]>;
26
+ export declare function createGenerateMetaHook(ssr404?: boolean | ((isSSR: boolean) => boolean)): (context: BuildContext, routeList: RouteInfo[]) => Promise<MetaConfig>;
27
+ export declare function createGenerateServerWrapperHook(wrapperConfig: ServerWrapperPreset): (_context: BuildContext, wrapperCfg: ServerWrapperConfig) => Promise<string>;
28
+ export declare function createBeforeBundleHook(esbuildConfig: EsbuildConfig): (context: BuildContext, bundleConfig: ServerBundleConfig) => Promise<ServerBundleConfig>;
29
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/factory/hooks.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAWrB,OAAO,EAAqD,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIxG,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,YAAY,KAAK,SAAS,EAAE,CAAC;CACzE;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,IAC3C,SAAS,YAAY,KAAG,OAAO,CAAC,OAAO,CAAC,CAGvD;AAED,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,cAAc,EACzB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,OAAO,EAAE,qBAAqB,IAIhB,SAAS,YAAY,KAAG,OAAO,CAAC,cAAc,CAAC,CA+E9D;AAED,wBAAgB,wBAAwB,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,EAAE,IAC1F,SAAS,YAAY,KAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CA+B3D;AAED,wBAAgB,sBAAsB,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IACvE,SAAS,YAAY,EAAE,WAAW,SAAS,EAAE,KAAG,OAAO,CAAC,UAAU,CAAC,CAUlF;AAED,wBAAgB,+BAA+B,CAAC,aAAa,EAAE,mBAAmB,IAClE,UAAU,YAAY,EAAE,YAAY,mBAAmB,KAAG,OAAO,CAAC,MAAM,CAAC,CAUxF;AAED,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,aAAa,IACnD,SAAS,YAAY,EAAE,cAAc,kBAAkB,KAAG,OAAO,CAAC,kBAAkB,CAAC,CAepG"}