@teamvelix/velix 5.1.3 → 5.1.4
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 +1 -0
- package/dist/build/index.js +2 -2
- package/dist/{chunk-HPJYZZUY.js → chunk-BXDKUP2L.js} +3 -3
- package/dist/{chunk-HPJYZZUY.js.map → chunk-BXDKUP2L.js.map} +1 -1
- package/dist/{chunk-YB6W3YKP.js → chunk-PB3226UC.js} +17 -14
- package/dist/chunk-PB3226UC.js.map +1 -0
- package/dist/{chunk-MU7FPEFV.js → chunk-RFWV4CDG.js} +3 -3
- package/dist/{chunk-MU7FPEFV.js.map → chunk-RFWV4CDG.js.map} +1 -1
- package/dist/index.js +3 -3
- package/dist/runtime/start-build.js +1 -1
- package/dist/runtime/start-build.js.map +1 -1
- package/dist/runtime/start-dev.js +1 -4
- package/dist/runtime/start-dev.js.map +1 -1
- package/dist/runtime/start-prod.js +1 -4
- package/dist/runtime/start-prod.js.map +1 -1
- package/dist/server/index.js +2 -2
- package/package.json +1 -1
- package/dist/chunk-YB6W3YKP.js.map +0 -1
package/README.md
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
<p align="center">
|
|
3
3
|
<img src="https://raw.githubusercontent.com/Velixteam/velix/main/assets/velix%20cover.webp" width="100%" alt="Velix Cover" />
|
|
4
4
|
</p>
|
|
5
|
+
|
|
5
6
|
> **A modern full-stack React framework** optimized for performance, SEO, simplicity, and developer experience.
|
|
6
7
|
|
|
7
8
|
Velix is a lightweight but powerful React 19 framework featuring file-based routing, SSR, SSG, Islands architecture, built-in SEO optimization, and an intuitive CLI.
|
package/dist/build/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { build, build_default as default } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { build, build_default as default } from '../chunk-BXDKUP2L.js';
|
|
2
|
+
import '../chunk-RFWV4CDG.js';
|
|
3
3
|
import '../chunk-F24Q2MX3.js';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { logger_default, cleanDir, buildRouteTree, findFiles, ensureDir, VERSION, formatBytes } from './chunk-
|
|
1
|
+
import { logger_default, cleanDir, buildRouteTree, findFiles, ensureDir, VERSION, formatBytes } from './chunk-RFWV4CDG.js';
|
|
2
2
|
import { loadConfig, resolvePaths } from './chunk-F24Q2MX3.js';
|
|
3
3
|
import esbuild from 'esbuild';
|
|
4
4
|
import fs from 'fs';
|
|
@@ -132,5 +132,5 @@ function getDirSize(dir) {
|
|
|
132
132
|
var build_default = { build };
|
|
133
133
|
|
|
134
134
|
export { build, build_default };
|
|
135
|
-
//# sourceMappingURL=chunk-
|
|
136
|
-
//# sourceMappingURL=chunk-
|
|
135
|
+
//# sourceMappingURL=chunk-BXDKUP2L.js.map
|
|
136
|
+
//# sourceMappingURL=chunk-BXDKUP2L.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../build/index.ts"],"names":[],"mappings":"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","file":"chunk-HPJYZZUY.js","sourcesContent":["/**\n * Velix v5 Build System\n * Production build using esbuild\n */\n\nimport esbuild from 'esbuild';\nimport fs from 'fs';\nimport path from 'path';\nimport { loadConfig, resolvePaths } from '../config.js';\nimport { buildRouteTree } from '../router/index.js';\nimport { ensureDir, cleanDir, findFiles, formatBytes, formatTime } from '../utils.js';\nimport logger from '../logger.js';\nimport { VERSION } from '../version.js';\n\nexport interface BuildOptions {\n projectRoot?: string;\n outDir?: string;\n minify?: boolean;\n sourcemap?: boolean;\n}\n\n/**\n * Build the Velix application for production\n */\nexport async function build(options: BuildOptions = {}) {\n const projectRoot = options.projectRoot || process.cwd();\n const config = await loadConfig(projectRoot);\n const resolved = resolvePaths(config, projectRoot);\n\n const outDir = options.outDir || resolved.resolvedOutDir;\n const startTime = Date.now();\n\n logger.logo();\n logger.info('Building for production...');\n logger.blank();\n\n // Clean output directory\n cleanDir(outDir);\n\n const appDir = resolved.resolvedAppDir;\n const routes = buildRouteTree(appDir);\n\n // Collect all source files\n const sourceFiles = findFiles(appDir, /\\.(tsx?|jsx?)$/);\n\n if (sourceFiles.length === 0) {\n logger.warn('No source files found in app/ directory');\n return;\n }\n\n // Build server bundle\n try {\n const serverOutDir = path.join(outDir, 'server');\n ensureDir(serverOutDir);\n\n await esbuild.build({\n entryPoints: sourceFiles,\n outdir: serverOutDir,\n bundle: false,\n format: 'esm',\n platform: 'node',\n target: config.build.target,\n minify: options.minify ?? config.build.minify,\n sourcemap: options.sourcemap ?? config.build.sourcemap,\n jsx: 'automatic',\n logLevel: 'silent',\n treeShaking: true,\n legalComments: 'none',\n });\n\n logger.success('Server bundle built');\n } catch (err: any) {\n logger.error('Server build failed', err);\n process.exit(1);\n }\n\n // Build client bundle (client components and islands)\n try {\n const clientOutDir = path.join(outDir, 'client');\n ensureDir(clientOutDir);\n\n const clientFiles = sourceFiles.filter(f => {\n const content = fs.readFileSync(f, 'utf-8');\n const firstLine = content.split('\\n')[0]?.trim();\n return firstLine === \"'use client'\" || firstLine === '\"use client\"' ||\n firstLine === \"'use island'\" || firstLine === '\"use island\"';\n });\n\n if (clientFiles.length > 0) {\n await esbuild.build({\n entryPoints: clientFiles,\n outdir: clientOutDir,\n bundle: true,\n format: 'esm',\n platform: 'browser',\n target: ['es2022'],\n minify: options.minify ?? config.build.minify,\n sourcemap: options.sourcemap ?? config.build.sourcemap,\n splitting: config.build.splitting,\n jsx: 'automatic',\n logLevel: 'silent',\n external: ['react', 'react-dom'],\n treeShaking: true,\n legalComments: 'none',\n drop: options.minify ?? config.build.minify ? ['console', 'debugger'] : [],\n chunkNames: 'chunks/[name]-[hash]',\n });\n\n logger.success(`Client bundle built (${clientFiles.length} components)`);\n }\n } catch (err: any) {\n logger.error('Client build failed', err);\n process.exit(1);\n }\n\n // Copy public directory\n const publicDir = resolved.resolvedPublicDir;\n if (fs.existsSync(publicDir)) {\n const publicOutDir = path.join(outDir, 'public');\n ensureDir(publicOutDir);\n copyDirRecursive(publicDir, publicOutDir);\n logger.success('Static assets copied');\n }\n\n // Generate build manifest\n const manifest = {\n version: VERSION,\n buildTime: new Date().toISOString(),\n routes: routes.appRoutes.map(r => ({\n path: r.path,\n type: r.path.includes(':') ? 'dynamic' : 'static',\n })),\n api: routes.api.map(r => ({ path: r.path })),\n };\n\n fs.writeFileSync(path.join(outDir, 'manifest.json'), JSON.stringify(manifest, null, 2));\n\n const elapsed = Date.now() - startTime;\n const totalSize = getDirSize(outDir);\n\n logger.blank();\n logger.divider();\n logger.blank();\n\n // Log routes\n routes.appRoutes.forEach(r => {\n const type = r.path.includes(':') || r.path.includes('*') ? 'dynamic' : 'static';\n logger.route(r.path, type);\n });\n routes.api.forEach(r => logger.route(r.path, 'api'));\n\n logger.blank();\n logger.build({ time: elapsed });\n logger.info(`Output: ${outDir} (${formatBytes(totalSize)})`);\n logger.blank();\n}\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\nfunction copyDirRecursive(src: string, dest: string) {\n ensureDir(dest);\n const entries = fs.readdirSync(src, { withFileTypes: true });\n for (const entry of entries) {\n const srcPath = path.join(src, entry.name);\n const destPath = path.join(dest, entry.name);\n if (entry.isDirectory()) copyDirRecursive(srcPath, destPath);\n else fs.copyFileSync(srcPath, destPath);\n }\n}\n\nfunction getDirSize(dir: string): number {\n let size = 0;\n if (!fs.existsSync(dir)) return size;\n const entries = fs.readdirSync(dir, { withFileTypes: true });\n for (const entry of entries) {\n const fullPath = path.join(dir, entry.name);\n if (entry.isDirectory()) size += getDirSize(fullPath);\n else size += fs.statSync(fullPath).size;\n }\n return size;\n}\n\nexport default { build };\n"]}
|
|
1
|
+
{"version":3,"sources":["../build/index.ts"],"names":[],"mappings":"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","file":"chunk-BXDKUP2L.js","sourcesContent":["/**\n * Velix v5 Build System\n * Production build using esbuild\n */\n\nimport esbuild from 'esbuild';\nimport fs from 'fs';\nimport path from 'path';\nimport { loadConfig, resolvePaths } from '../config.js';\nimport { buildRouteTree } from '../router/index.js';\nimport { ensureDir, cleanDir, findFiles, formatBytes, formatTime } from '../utils.js';\nimport logger from '../logger.js';\nimport { VERSION } from '../version.js';\n\nexport interface BuildOptions {\n projectRoot?: string;\n outDir?: string;\n minify?: boolean;\n sourcemap?: boolean;\n}\n\n/**\n * Build the Velix application for production\n */\nexport async function build(options: BuildOptions = {}) {\n const projectRoot = options.projectRoot || process.cwd();\n const config = await loadConfig(projectRoot);\n const resolved = resolvePaths(config, projectRoot);\n\n const outDir = options.outDir || resolved.resolvedOutDir;\n const startTime = Date.now();\n\n logger.logo();\n logger.info('Building for production...');\n logger.blank();\n\n // Clean output directory\n cleanDir(outDir);\n\n const appDir = resolved.resolvedAppDir;\n const routes = buildRouteTree(appDir);\n\n // Collect all source files\n const sourceFiles = findFiles(appDir, /\\.(tsx?|jsx?)$/);\n\n if (sourceFiles.length === 0) {\n logger.warn('No source files found in app/ directory');\n return;\n }\n\n // Build server bundle\n try {\n const serverOutDir = path.join(outDir, 'server');\n ensureDir(serverOutDir);\n\n await esbuild.build({\n entryPoints: sourceFiles,\n outdir: serverOutDir,\n bundle: false,\n format: 'esm',\n platform: 'node',\n target: config.build.target,\n minify: options.minify ?? config.build.minify,\n sourcemap: options.sourcemap ?? config.build.sourcemap,\n jsx: 'automatic',\n logLevel: 'silent',\n treeShaking: true,\n legalComments: 'none',\n });\n\n logger.success('Server bundle built');\n } catch (err: any) {\n logger.error('Server build failed', err);\n process.exit(1);\n }\n\n // Build client bundle (client components and islands)\n try {\n const clientOutDir = path.join(outDir, 'client');\n ensureDir(clientOutDir);\n\n const clientFiles = sourceFiles.filter(f => {\n const content = fs.readFileSync(f, 'utf-8');\n const firstLine = content.split('\\n')[0]?.trim();\n return firstLine === \"'use client'\" || firstLine === '\"use client\"' ||\n firstLine === \"'use island'\" || firstLine === '\"use island\"';\n });\n\n if (clientFiles.length > 0) {\n await esbuild.build({\n entryPoints: clientFiles,\n outdir: clientOutDir,\n bundle: true,\n format: 'esm',\n platform: 'browser',\n target: ['es2022'],\n minify: options.minify ?? config.build.minify,\n sourcemap: options.sourcemap ?? config.build.sourcemap,\n splitting: config.build.splitting,\n jsx: 'automatic',\n logLevel: 'silent',\n external: ['react', 'react-dom'],\n treeShaking: true,\n legalComments: 'none',\n drop: options.minify ?? config.build.minify ? ['console', 'debugger'] : [],\n chunkNames: 'chunks/[name]-[hash]',\n });\n\n logger.success(`Client bundle built (${clientFiles.length} components)`);\n }\n } catch (err: any) {\n logger.error('Client build failed', err);\n process.exit(1);\n }\n\n // Copy public directory\n const publicDir = resolved.resolvedPublicDir;\n if (fs.existsSync(publicDir)) {\n const publicOutDir = path.join(outDir, 'public');\n ensureDir(publicOutDir);\n copyDirRecursive(publicDir, publicOutDir);\n logger.success('Static assets copied');\n }\n\n // Generate build manifest\n const manifest = {\n version: VERSION,\n buildTime: new Date().toISOString(),\n routes: routes.appRoutes.map(r => ({\n path: r.path,\n type: r.path.includes(':') ? 'dynamic' : 'static',\n })),\n api: routes.api.map(r => ({ path: r.path })),\n };\n\n fs.writeFileSync(path.join(outDir, 'manifest.json'), JSON.stringify(manifest, null, 2));\n\n const elapsed = Date.now() - startTime;\n const totalSize = getDirSize(outDir);\n\n logger.blank();\n logger.divider();\n logger.blank();\n\n // Log routes\n routes.appRoutes.forEach(r => {\n const type = r.path.includes(':') || r.path.includes('*') ? 'dynamic' : 'static';\n logger.route(r.path, type);\n });\n routes.api.forEach(r => logger.route(r.path, 'api'));\n\n logger.blank();\n logger.build({ time: elapsed });\n logger.info(`Output: ${outDir} (${formatBytes(totalSize)})`);\n logger.blank();\n}\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\nfunction copyDirRecursive(src: string, dest: string) {\n ensureDir(dest);\n const entries = fs.readdirSync(src, { withFileTypes: true });\n for (const entry of entries) {\n const srcPath = path.join(src, entry.name);\n const destPath = path.join(dest, entry.name);\n if (entry.isDirectory()) copyDirRecursive(srcPath, destPath);\n else fs.copyFileSync(srcPath, destPath);\n }\n}\n\nfunction getDirSize(dir: string): number {\n let size = 0;\n if (!fs.existsSync(dir)) return size;\n const entries = fs.readdirSync(dir, { withFileTypes: true });\n for (const entry of entries) {\n const fullPath = path.join(dir, entry.name);\n if (entry.isDirectory()) size += getDirSize(fullPath);\n else size += fs.statSync(fullPath).size;\n }\n return size;\n}\n\nexport default { build };\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { logger_default, buildRouteTree, matchRoute, VERSION } from './chunk-
|
|
1
|
+
import { logger_default, buildRouteTree, matchRoute, VERSION } from './chunk-RFWV4CDG.js';
|
|
2
2
|
import { loadConfig, resolvePaths } from './chunk-F24Q2MX3.js';
|
|
3
3
|
import { getRegisteredIslands, generateAdvancedHydrationScript } from './chunk-OIZNYND3.js';
|
|
4
4
|
import http from 'http';
|
|
@@ -303,11 +303,11 @@ function definePlugin(definition) {
|
|
|
303
303
|
}
|
|
304
304
|
})
|
|
305
305
|
});
|
|
306
|
-
var NPX = process.platform === "win32" ? "npx.cmd" : "npx";
|
|
307
306
|
function detectTailwindCli() {
|
|
308
|
-
const v4 = spawnSync(
|
|
307
|
+
const v4 = spawnSync("npx @tailwindcss/cli --help", {
|
|
309
308
|
stdio: "pipe",
|
|
310
|
-
timeout: 15e3
|
|
309
|
+
timeout: 15e3,
|
|
310
|
+
shell: true
|
|
311
311
|
});
|
|
312
312
|
if (v4.status === 0) return "@tailwindcss/cli";
|
|
313
313
|
return "tailwindcss";
|
|
@@ -336,11 +336,12 @@ function tailwindPlugin(options = {}) {
|
|
|
336
336
|
logger_default.info("Building Tailwind CSS...");
|
|
337
337
|
try {
|
|
338
338
|
const cli = getCli();
|
|
339
|
-
|
|
340
|
-
if (options.minify !== false)
|
|
341
|
-
spawnSync(
|
|
339
|
+
let cmd = `npx ${cli} -i "${input}" -o "${output}"`;
|
|
340
|
+
if (options.minify !== false) cmd += " --minify";
|
|
341
|
+
spawnSync(cmd, {
|
|
342
342
|
stdio: "inherit",
|
|
343
|
-
cwd: process.cwd()
|
|
343
|
+
cwd: process.cwd(),
|
|
344
|
+
shell: true
|
|
344
345
|
});
|
|
345
346
|
logger_default.success("Tailwind CSS built successfully");
|
|
346
347
|
} catch (err) {
|
|
@@ -360,9 +361,10 @@ function tailwindPlugin(options = {}) {
|
|
|
360
361
|
logger_default.info("Building initial Tailwind CSS...");
|
|
361
362
|
try {
|
|
362
363
|
const cli2 = getCli();
|
|
363
|
-
const buildResult = spawnSync(
|
|
364
|
+
const buildResult = spawnSync(`npx ${cli2} -i "${input}" -o "${output}"`, {
|
|
364
365
|
cwd: process.cwd(),
|
|
365
|
-
stdio: "pipe"
|
|
366
|
+
stdio: "pipe",
|
|
367
|
+
shell: true
|
|
366
368
|
});
|
|
367
369
|
if (buildResult.status !== 0) {
|
|
368
370
|
const stderr = buildResult.stderr?.toString() || "";
|
|
@@ -380,9 +382,10 @@ function tailwindPlugin(options = {}) {
|
|
|
380
382
|
}
|
|
381
383
|
logger_default.info("Starting Tailwind CSS watcher...");
|
|
382
384
|
const cli = getCli();
|
|
383
|
-
const watcher = spawn(
|
|
385
|
+
const watcher = spawn(`npx ${cli} -i "${input}" -o "${output}" --watch`, {
|
|
384
386
|
stdio: "pipe",
|
|
385
|
-
cwd: process.cwd()
|
|
387
|
+
cwd: process.cwd(),
|
|
388
|
+
shell: true
|
|
386
389
|
});
|
|
387
390
|
watcher.stdout.on("data", (data) => {
|
|
388
391
|
const msg = data.toString().trim();
|
|
@@ -2320,5 +2323,5 @@ function parseRequestBody(req) {
|
|
|
2320
2323
|
var server_default = { createServer, tailwindPlugin };
|
|
2321
2324
|
|
|
2322
2325
|
export { NotFoundError, PluginHooks, PluginManager, RedirectError, bindArgs, callServerAction, composeMiddleware, cookies, createServer, definePlugin, deserializeArgs, executeAction, formAction, generateJsonLd, generateMetadataTags, generateRobotsTxt, generateSitemap, getAction, getMethod, getPathname, headers, html, isMethod, json, jsonLd, loadMiddleware, loadPlugins, mergeMetadata, middlewares, notFound, parseFormData, parseJson, parseSearchParams, pluginManager, redirect, registerAction, runMiddleware, serverAction, server_default, tailwindPlugin, text, useActionContext, useVelixAction };
|
|
2323
|
-
//# sourceMappingURL=chunk-
|
|
2324
|
-
//# sourceMappingURL=chunk-
|
|
2326
|
+
//# sourceMappingURL=chunk-PB3226UC.js.map
|
|
2327
|
+
//# sourceMappingURL=chunk-PB3226UC.js.map
|