@ubean/cli 0.4.4 → 0.4.6
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/cli.js +21 -3
- package/dist/index.d.ts +30 -30
- package/dist/index.js +1 -1
- package/dist/{page-pkDKNCLT.js → page-Um0fHKa9.js} +1 -1
- package/package.json +16 -16
package/dist/cli.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as summarizeBundle, D as compareBundleBaseline, E as createFsOps, O as findClientManifest, S as renderTemplate, a as scaffold, c as scaffoldStarterTemplate, i as recoverScaffold, j as writeBundleBaseline, k as readViteManifest, l as scaffoldUnifyTemplate, n as listScaffoldableFiles, o as scaffoldBlogTemplate, r as pageCommand, s as scaffoldMinimalTemplate, t as deleteScaffold } from "./page-
|
|
1
|
+
import { A as summarizeBundle, D as compareBundleBaseline, E as createFsOps, O as findClientManifest, S as renderTemplate, a as scaffold, c as scaffoldStarterTemplate, i as recoverScaffold, j as writeBundleBaseline, k as readViteManifest, l as scaffoldUnifyTemplate, n as listScaffoldableFiles, o as scaffoldBlogTemplate, r as pageCommand, s as scaffoldMinimalTemplate, t as deleteScaffold } from "./page-Um0fHKa9.js";
|
|
2
2
|
import { existsSync, mkdirSync, readFileSync, watch } from "node:fs";
|
|
3
3
|
import { basename, join, relative, resolve } from "pathe";
|
|
4
4
|
import { extname, normalize, sep } from "node:path";
|
|
@@ -10,6 +10,7 @@ import { pathToFileURL } from "node:url";
|
|
|
10
10
|
import { generateOpenApiTypesFromServer, generateTypes } from "@ubean/build/codegen";
|
|
11
11
|
import { prerender } from "@ubean/build/prerender";
|
|
12
12
|
import { buildProduction } from "@ubean/build/production";
|
|
13
|
+
import { createStaticSsgRenderer } from "@ubean/build/static-render";
|
|
13
14
|
import { NODE_REQUIREMENTS, createCapabilitySet, diagnoseCapabilities, registerBuiltinPresets, resolvePresetByName } from "@ubean/preset";
|
|
14
15
|
import { scanProject } from "@ubean/scan";
|
|
15
16
|
import { applyServerConfig, createUbeanApp } from "@ubean/app";
|
|
@@ -402,7 +403,22 @@ const buildCommand = {
|
|
|
402
403
|
const hasPrerenderRules = Object.values(config.routeRules || {}).some((r) => r?.prerender === true);
|
|
403
404
|
if (config.prerender.enabled || hasPrerenderRules) {
|
|
404
405
|
logger$9.info("Prerendering static pages...");
|
|
405
|
-
|
|
406
|
+
let fetcher;
|
|
407
|
+
let notFoundRoute = false;
|
|
408
|
+
let expandRoutes;
|
|
409
|
+
if (config.mode === "ssg") {
|
|
410
|
+
const staticRenderer = await createStaticSsgRenderer(cwd, manifest, {
|
|
411
|
+
pages: result.pages,
|
|
412
|
+
notFoundPage: result.notFoundPage ?? null,
|
|
413
|
+
i18n: config.i18n
|
|
414
|
+
});
|
|
415
|
+
if (staticRenderer) {
|
|
416
|
+
fetcher = staticRenderer.fetcher;
|
|
417
|
+
expandRoutes = staticRenderer.expandRoutes;
|
|
418
|
+
notFoundRoute = Boolean(result.notFoundPage);
|
|
419
|
+
logger$9.info("Using static SSG renderer (direct render, no HTTP pipeline)");
|
|
420
|
+
}
|
|
421
|
+
} else fetcher = await createSsrFetcher(cwd, manifest);
|
|
406
422
|
await prerender({
|
|
407
423
|
cwd,
|
|
408
424
|
outputDir: config.build.outputDir,
|
|
@@ -410,7 +426,9 @@ const buildCommand = {
|
|
|
410
426
|
prerender: config.prerender,
|
|
411
427
|
routeRules: config.routeRules,
|
|
412
428
|
contentRoutes,
|
|
413
|
-
fetcher
|
|
429
|
+
fetcher,
|
|
430
|
+
notFoundRoute,
|
|
431
|
+
expandRoutes
|
|
414
432
|
});
|
|
415
433
|
}
|
|
416
434
|
if (config.mode === "ssg" && !process.env.UBEAN_KEEP_SSR) {
|
package/dist/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ interface BackupOptions {
|
|
|
7
7
|
backupSuffix?: string;
|
|
8
8
|
removeOriginal?: boolean;
|
|
9
9
|
}
|
|
10
|
-
declare function createFsOps(cwd: string): {
|
|
10
|
+
export declare function createFsOps(cwd: string): {
|
|
11
11
|
cwd: string;
|
|
12
12
|
resolve: (...paths: string[]) => string;
|
|
13
13
|
exists: (path: string) => Promise<boolean>;
|
|
@@ -53,9 +53,9 @@ interface BundleBaseline {
|
|
|
53
53
|
totalGzip: number;
|
|
54
54
|
entryGzip: number;
|
|
55
55
|
}
|
|
56
|
-
declare function readViteManifest(manifestPath: string): Record<string, ManifestChunk>;
|
|
57
|
-
declare function summarizeBundle(outDir: string, manifest: Record<string, ManifestChunk>): BundleBaseline;
|
|
58
|
-
declare function compareBundleBaseline(current: Pick<BundleBaseline, 'totalGzip' | 'entryGzip'>, committed: Pick<BundleBaseline, 'totalGzip' | 'entryGzip'>, options?: {
|
|
56
|
+
export declare function readViteManifest(manifestPath: string): Record<string, ManifestChunk>;
|
|
57
|
+
export declare function summarizeBundle(outDir: string, manifest: Record<string, ManifestChunk>): BundleBaseline;
|
|
58
|
+
export declare function compareBundleBaseline(current: Pick<BundleBaseline, 'totalGzip' | 'entryGzip'>, committed: Pick<BundleBaseline, 'totalGzip' | 'entryGzip'>, options?: {
|
|
59
59
|
maxIncrease?: number;
|
|
60
60
|
}): {
|
|
61
61
|
ok: boolean;
|
|
@@ -64,8 +64,8 @@ declare function compareBundleBaseline(current: Pick<BundleBaseline, 'totalGzip'
|
|
|
64
64
|
entryRatio: number;
|
|
65
65
|
messages: string[];
|
|
66
66
|
};
|
|
67
|
-
declare function writeBundleBaseline(filePath: string, baseline: BundleBaseline): void;
|
|
68
|
-
declare function findClientManifest(cwd: string): {
|
|
67
|
+
export declare function writeBundleBaseline(filePath: string, baseline: BundleBaseline): void;
|
|
68
|
+
export declare function findClientManifest(cwd: string): {
|
|
69
69
|
outDir: string;
|
|
70
70
|
manifestPath: string;
|
|
71
71
|
} | undefined;
|
|
@@ -78,7 +78,7 @@ interface TemplateOptions {
|
|
|
78
78
|
variables?: Record<string, unknown>;
|
|
79
79
|
delimiters?: [string, string];
|
|
80
80
|
}
|
|
81
|
-
declare function renderTemplate(template: string, options?: TemplateOptions): string;
|
|
81
|
+
export declare function renderTemplate(template: string, options?: TemplateOptions): string;
|
|
82
82
|
interface PageTemplateData {
|
|
83
83
|
name: string;
|
|
84
84
|
path: string;
|
|
@@ -112,21 +112,21 @@ interface PluginTemplateData {
|
|
|
112
112
|
kebabName: string;
|
|
113
113
|
pascalName: string;
|
|
114
114
|
}
|
|
115
|
-
declare function toKebabCase(str: string): string;
|
|
116
|
-
declare function toPascalCase(str: string): string;
|
|
117
|
-
declare function toCamelCase(str: string): string;
|
|
118
|
-
declare const PAGE_TEMPLATE = "<script setup lang=\"ts\">\ndefinePage({\n meta: {\n title: '{{name}}'\n }\n});\n</script>\n\n<template>\n <div class=\"{{kebabName}}-page\">\n <div>{{name}}</div>\n </div>\n</template>\n\n";
|
|
119
|
-
declare const API_TEMPLATE = "import { defineHandler } from 'ubean/server';\n\nexport default defineHandler(async c => {\n return c.json({ message: '{{name}} endpoint' });\n});\n";
|
|
120
|
-
declare const MIDDLEWARE_TEMPLATE = "import { defineMiddleware } from 'ubean/server';\n\nexport default defineMiddleware(async (c, next) => {\n console.log('{{name}} middleware');\n await next();\n});\n";
|
|
121
|
-
declare const LAYOUT_TEMPLATE = "<script setup lang=\"ts\">\ndefinePage({\n meta: {\n title: '{{name}}'\n }\n});\n</script>\n\n<template>\n <div class=\"{{kebabName}}\">\n <slot />\n </div>\n</template>\n";
|
|
122
|
-
declare const CRON_TEMPLATE = "import { defineScheduled } from 'ubean/server';\n\nexport default defineScheduled({\n name: '{{name}}',\n schedule: '{{schedule}}'\n}, async () => {\n console.log('Running {{name}} cron task');\n});\n";
|
|
123
|
-
declare const PLUGIN_TEMPLATE = "import { definePlugin } from 'ubean';\n\nexport default definePlugin({\n name: '{{kebabName}}',\n setup() {\n console.log('{{name}} plugin setup');\n }\n});\n";
|
|
124
|
-
declare function renderPageTemplate(data: PageTemplateData): string;
|
|
125
|
-
declare function renderApiTemplate(data: ApiTemplateData): string;
|
|
126
|
-
declare function renderMiddlewareTemplate(data: MiddlewareTemplateData): string;
|
|
127
|
-
declare function renderLayoutTemplate(data: LayoutTemplateData): string;
|
|
128
|
-
declare function renderCronTemplate(data: CronTemplateData): string;
|
|
129
|
-
declare function renderPluginTemplate(data: PluginTemplateData): string;
|
|
115
|
+
export declare function toKebabCase(str: string): string;
|
|
116
|
+
export declare function toPascalCase(str: string): string;
|
|
117
|
+
export declare function toCamelCase(str: string): string;
|
|
118
|
+
export declare const PAGE_TEMPLATE = "<script setup lang=\"ts\">\ndefinePage({\n meta: {\n title: '{{name}}'\n }\n});\n</script>\n\n<template>\n <div class=\"{{kebabName}}-page\">\n <div>{{name}}</div>\n </div>\n</template>\n\n";
|
|
119
|
+
export declare const API_TEMPLATE = "import { defineHandler } from 'ubean/server';\n\nexport default defineHandler(async c => {\n return c.json({ message: '{{name}} endpoint' });\n});\n";
|
|
120
|
+
export declare const MIDDLEWARE_TEMPLATE = "import { defineMiddleware } from 'ubean/server';\n\nexport default defineMiddleware(async (c, next) => {\n console.log('{{name}} middleware');\n await next();\n});\n";
|
|
121
|
+
export declare const LAYOUT_TEMPLATE = "<script setup lang=\"ts\">\ndefinePage({\n meta: {\n title: '{{name}}'\n }\n});\n</script>\n\n<template>\n <div class=\"{{kebabName}}\">\n <slot />\n </div>\n</template>\n";
|
|
122
|
+
export declare const CRON_TEMPLATE = "import { defineScheduled } from 'ubean/server';\n\nexport default defineScheduled({\n name: '{{name}}',\n schedule: '{{schedule}}'\n}, async () => {\n console.log('Running {{name}} cron task');\n});\n";
|
|
123
|
+
export declare const PLUGIN_TEMPLATE = "import { definePlugin } from 'ubean';\n\nexport default definePlugin({\n name: '{{kebabName}}',\n setup() {\n console.log('{{name}} plugin setup');\n }\n});\n";
|
|
124
|
+
export declare function renderPageTemplate(data: PageTemplateData): string;
|
|
125
|
+
export declare function renderApiTemplate(data: ApiTemplateData): string;
|
|
126
|
+
export declare function renderMiddlewareTemplate(data: MiddlewareTemplateData): string;
|
|
127
|
+
export declare function renderLayoutTemplate(data: LayoutTemplateData): string;
|
|
128
|
+
export declare function renderCronTemplate(data: CronTemplateData): string;
|
|
129
|
+
export declare function renderPluginTemplate(data: PluginTemplateData): string;
|
|
130
130
|
//#endregion
|
|
131
131
|
//#region src/page.d.ts
|
|
132
132
|
type ScaffoldType = 'page' | 'api' | 'layout' | 'middleware' | 'reuse' | 'cron' | 'plugin';
|
|
@@ -148,8 +148,8 @@ interface ScaffoldResult {
|
|
|
148
148
|
skipped: string[];
|
|
149
149
|
errors: string[];
|
|
150
150
|
}
|
|
151
|
-
declare function scaffold(options: ScaffoldOptions): Promise<ScaffoldResult>;
|
|
152
|
-
declare function deleteScaffold(options: {
|
|
151
|
+
export declare function scaffold(options: ScaffoldOptions): Promise<ScaffoldResult>;
|
|
152
|
+
export declare function deleteScaffold(options: {
|
|
153
153
|
cwd?: string;
|
|
154
154
|
type: ScaffoldType;
|
|
155
155
|
path: string;
|
|
@@ -157,17 +157,17 @@ declare function deleteScaffold(options: {
|
|
|
157
157
|
dry?: boolean;
|
|
158
158
|
baseDir?: string;
|
|
159
159
|
}): Promise<ScaffoldResult>;
|
|
160
|
-
declare function recoverScaffold(options: {
|
|
160
|
+
export declare function recoverScaffold(options: {
|
|
161
161
|
cwd?: string;
|
|
162
162
|
type: ScaffoldType;
|
|
163
163
|
path: string;
|
|
164
164
|
dry?: boolean;
|
|
165
165
|
baseDir?: string;
|
|
166
166
|
}): Promise<ScaffoldResult>;
|
|
167
|
-
declare function listScaffoldableFiles(cwd: string, type: ScaffoldType, baseDir?: string): Promise<string[]>;
|
|
167
|
+
export declare function listScaffoldableFiles(cwd: string, type: ScaffoldType, baseDir?: string): Promise<string[]>;
|
|
168
168
|
//#endregion
|
|
169
169
|
//#region src/scaffold-manifest.d.ts
|
|
170
|
-
declare const SCAFFOLD_CONTRACT_VERSION: 1;
|
|
170
|
+
export declare const SCAFFOLD_CONTRACT_VERSION: 1;
|
|
171
171
|
interface ScaffoldArgManifest {
|
|
172
172
|
name: string;
|
|
173
173
|
required: boolean;
|
|
@@ -188,9 +188,9 @@ interface ScaffoldManifest {
|
|
|
188
188
|
types: ScaffoldTypeManifest[];
|
|
189
189
|
}
|
|
190
190
|
/** Machine-readable scaffold catalog for studio / IDE plugins (RM-S01). */
|
|
191
|
-
declare function getScaffoldManifest(): ScaffoldManifest;
|
|
191
|
+
export declare function getScaffoldManifest(): ScaffoldManifest;
|
|
192
192
|
//#endregion
|
|
193
193
|
//#region src/index.d.ts
|
|
194
|
-
type FsOps = ReturnType<typeof createFsOps>;
|
|
194
|
+
export type FsOps = ReturnType<typeof createFsOps>;
|
|
195
195
|
//#endregion
|
|
196
|
-
export {
|
|
196
|
+
export type { ApiTemplateData, BackupOptions, BundleBaseline, BundleBudgetEntry, CronTemplateData, FsOpOptions as FsOpsOptions, LayoutTemplateData, ManifestChunk, MiddlewareTemplateData, PageTemplateData, PluginTemplateData, ScaffoldArgManifest, ScaffoldManifest, ScaffoldOptions, ScaffoldResult, ScaffoldType, ScaffoldTypeManifest, TemplateOptions, TemplateVariables };
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { n as getScaffoldManifest, t as SCAFFOLD_CONTRACT_VERSION } from "./scaffold-manifest-TrH6OCX8.js";
|
|
2
|
-
import { A as summarizeBundle, C as toCamelCase, D as compareBundleBaseline, E as createFsOps, O as findClientManifest, S as renderTemplate, T as toPascalCase, _ as renderCronTemplate, a as scaffold, b as renderPageTemplate, d as CRON_TEMPLATE, f as LAYOUT_TEMPLATE, g as renderApiTemplate, h as PLUGIN_TEMPLATE, i as recoverScaffold, j as writeBundleBaseline, k as readViteManifest, m as PAGE_TEMPLATE, n as listScaffoldableFiles, p as MIDDLEWARE_TEMPLATE, t as deleteScaffold, u as API_TEMPLATE, v as renderLayoutTemplate, w as toKebabCase, x as renderPluginTemplate, y as renderMiddlewareTemplate } from "./page-
|
|
2
|
+
import { A as summarizeBundle, C as toCamelCase, D as compareBundleBaseline, E as createFsOps, O as findClientManifest, S as renderTemplate, T as toPascalCase, _ as renderCronTemplate, a as scaffold, b as renderPageTemplate, d as CRON_TEMPLATE, f as LAYOUT_TEMPLATE, g as renderApiTemplate, h as PLUGIN_TEMPLATE, i as recoverScaffold, j as writeBundleBaseline, k as readViteManifest, m as PAGE_TEMPLATE, n as listScaffoldableFiles, p as MIDDLEWARE_TEMPLATE, t as deleteScaffold, u as API_TEMPLATE, v as renderLayoutTemplate, w as toKebabCase, x as renderPluginTemplate, y as renderMiddlewareTemplate } from "./page-Um0fHKa9.js";
|
|
3
3
|
export { API_TEMPLATE, CRON_TEMPLATE, LAYOUT_TEMPLATE, MIDDLEWARE_TEMPLATE, PAGE_TEMPLATE, PLUGIN_TEMPLATE, SCAFFOLD_CONTRACT_VERSION, compareBundleBaseline, createFsOps, deleteScaffold, findClientManifest, getScaffoldManifest, listScaffoldableFiles, readViteManifest, recoverScaffold, renderApiTemplate, renderCronTemplate, renderLayoutTemplate, renderMiddlewareTemplate, renderPageTemplate, renderPluginTemplate, renderTemplate, scaffold, summarizeBundle, toCamelCase, toKebabCase, toPascalCase, writeBundleBaseline };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ubean/cli",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.6",
|
|
4
4
|
"description": "CLI for ubean (ubean-next binary: dev, build, prepare, init, preview, page, env, config, devtools, api/layout/middleware/cron/plugin scaffolds) plus the Vite dev server runner",
|
|
5
5
|
"bin": {
|
|
6
6
|
"ubean-next": "./bin/ubean-next.mjs"
|
|
@@ -24,15 +24,15 @@
|
|
|
24
24
|
}
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@ubean/app": "0.4.
|
|
28
|
-
"@ubean/build": "0.4.
|
|
29
|
-
"@ubean/client": "0.4.
|
|
30
|
-
"@ubean/config": "0.4.
|
|
31
|
-
"@ubean/i18n": "0.4.
|
|
32
|
-
"@ubean/islands": "0.4.
|
|
33
|
-
"@ubean/preset": "0.4.
|
|
34
|
-
"@ubean/scan": "0.4.
|
|
35
|
-
"@ubean/shared": "0.4.
|
|
27
|
+
"@ubean/app": "0.4.6",
|
|
28
|
+
"@ubean/build": "0.4.6",
|
|
29
|
+
"@ubean/client": "0.4.6",
|
|
30
|
+
"@ubean/config": "0.4.6",
|
|
31
|
+
"@ubean/i18n": "0.4.6",
|
|
32
|
+
"@ubean/islands": "0.4.6",
|
|
33
|
+
"@ubean/preset": "0.4.6",
|
|
34
|
+
"@ubean/scan": "0.4.6",
|
|
35
|
+
"@ubean/shared": "0.4.6",
|
|
36
36
|
"citty": "^0.2.2",
|
|
37
37
|
"kolorist": "^1.8.0",
|
|
38
38
|
"pathe": "^2.0.3"
|
|
@@ -40,15 +40,15 @@
|
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@types/node": "^26.5.0",
|
|
42
42
|
"@vitejs/plugin-vue": "^6.0.8",
|
|
43
|
-
"typescript": "
|
|
44
|
-
"vite": "npm:@voidzero-dev/vite-plus-core@0.3.
|
|
45
|
-
"vite-plus": "0.3.
|
|
43
|
+
"typescript": "npm:typescript-native-bridge@latest",
|
|
44
|
+
"vite": "npm:@voidzero-dev/vite-plus-core@0.3.1",
|
|
45
|
+
"vite-plus": "0.3.1"
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
|
-
"@ubean/content": "0.4.
|
|
49
|
-
"@ubean/devtools": "0.4.
|
|
48
|
+
"@ubean/content": "0.4.6",
|
|
49
|
+
"@ubean/devtools": "0.4.6",
|
|
50
50
|
"@vitejs/plugin-vue": "^6.0.8",
|
|
51
|
-
"vite": "npm:@voidzero-dev/vite-plus-core@0.3.
|
|
51
|
+
"vite": "npm:@voidzero-dev/vite-plus-core@0.3.1"
|
|
52
52
|
},
|
|
53
53
|
"peerDependenciesMeta": {
|
|
54
54
|
"@ubean/content": {
|