cabloy 5.1.51 → 5.1.53
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/.claude/skills/cabloy-contract-loop/SKILL.md +1 -1
- package/.claude/skills/cabloy-frontend-scaffold/SKILL.md +11 -1
- package/.claude/skills/cabloy-workflow/SKILL.md +8 -4
- package/.claude/skills/cabloy-workflow/references/edition-detection.md +3 -2
- package/.github/workflows/docs-pages.yml +2 -0
- package/CHANGELOG.md +42 -0
- package/CLAUDE.md +7 -4
- package/README.md +36 -21
- package/cabloy-docs/.vitepress/config.mjs +171 -44
- package/cabloy-docs/ai/class-placement-rule.md +1 -0
- package/cabloy-docs/ai/cli-for-agents.md +1 -1
- package/cabloy-docs/ai/docs-skills-rules-mapping.md +1 -0
- package/cabloy-docs/ai/edition-consistency-checklist.md +150 -0
- package/cabloy-docs/ai/edition-detection.md +3 -3
- package/cabloy-docs/ai/global-bean-lookup.md +1 -0
- package/cabloy-docs/ai/introduction.md +47 -3
- package/cabloy-docs/ai/repo-guidance.md +2 -2
- package/cabloy-docs/ai/rules-and-config.md +1 -1
- package/cabloy-docs/ai/skills.md +2 -0
- package/cabloy-docs/ai/verification.md +1 -0
- package/cabloy-docs/ai/virtual-decorator-guidance.md +206 -0
- package/cabloy-docs/backend/introduction.md +2 -2
- package/cabloy-docs/backend/logger-guide.md +1 -1
- package/cabloy-docs/backend/quickstart.md +3 -3
- package/cabloy-docs/editions/cabloy-basic.md +4 -3
- package/cabloy-docs/editions/cabloy-start.md +34 -3
- package/cabloy-docs/editions/choosing-between-basic-and-start.md +84 -0
- package/cabloy-docs/editions/overview.md +114 -20
- package/cabloy-docs/frontend/css-in-js-guide.md +1 -1
- package/cabloy-docs/frontend/environment-config-guide.md +28 -0
- package/cabloy-docs/frontend/foundation.md +3 -2
- package/cabloy-docs/frontend/introduction.md +73 -4
- package/cabloy-docs/frontend/navigation-guards-guide.md +1 -1
- package/cabloy-docs/frontend/quickstart.md +4 -2
- package/cabloy-docs/frontend/scripts.md +2 -2
- package/cabloy-docs/frontend/ssr-env.md +23 -0
- package/cabloy-docs/frontend/theme-guide.md +140 -7
- package/cabloy-docs/fullstack/cli.md +118 -0
- package/cabloy-docs/fullstack/comparison-with-other-frameworks.md +117 -0
- package/cabloy-docs/fullstack/edition-collaboration-differences.md +3 -2
- package/cabloy-docs/fullstack/introduction.md +84 -34
- package/cabloy-docs/fullstack/quickstart.md +7 -4
- package/cabloy-docs/fullstack/vona-zova-integration.md +2 -2
- package/cabloy-docs/fullstack/vscode-extensions.md +126 -0
- package/cabloy-docs/index.md +39 -40
- package/cabloy-docs/reference/frontend-directory-structure.md +125 -0
- package/cabloy-docs/reference/glossary.md +2 -2
- package/cabloy-docs/reference/introduction.md +47 -0
- package/cabloy-docs/reference/package-map.md +2 -0
- package/cabloy-docs/reference/repo-scripts.md +5 -3
- package/package.json +1 -1
- package/vona/README.md +1 -1
- package/vona/pnpm-lock.yaml +383 -38
- package/vona/src/suite-vendor/a-cabloy/modules/a-ssr/package.json +1 -1
- package/vona/src/suite-vendor/a-cabloy/modules/a-ssr/src/.metadata/index.ts +49 -1
- package/vona/src/suite-vendor/a-cabloy/modules/a-ssr/src/controller/memoryDiag.ts +97 -0
- package/vona/src/suite-vendor/a-cabloy/package.json +1 -1
- package/zova/README.md +1 -1
- package/zova/package.original.json +4 -4
- package/zova/packages-cli/cli/package.json +2 -2
- package/zova/packages-cli/cli-set-front/package.json +2 -2
- package/zova/packages-cli/cli-set-front/src/lib/bean/cli.tools.metadata.ts +1 -1
- package/zova/packages-cli/cli-set-front/src/lib/bean/toolsMetadata/generateConfig.ts +2 -12
- package/zova/packages-utils/zova-jsx/package.json +2 -2
- package/zova/packages-utils/zova-vite/package.json +2 -2
- package/zova/packages-utils/zova-vite/templates/app/controller.tsx_ +3 -3
- package/zova/packages-zova/zova/package.json +3 -3
- package/zova/packages-zova/zova-core/package.json +2 -2
- package/zova/packages-zova/zova-core/src/bean/beanContainer.ts +3 -3
- package/zova/packages-zova/zova-core/src/bean/beanControllerPageBase.ts +1 -0
- package/zova/packages-zova/zova-core/src/core/component/module.ts +16 -16
- package/zova/packages-zova/zova-core/src/core/context/component.ts +35 -3
- package/zova/packages-zova/zova-core/src/core/context/util.ts +15 -11
- package/zova/packages-zova/zova-core/src/core/sys/config.ts +1 -1
- package/zova/pnpm-lock.yaml +1607 -1690
- package/zova/src/front/config/config/config.ts +1 -1
- package/zova/src/suite/a-demo/modules/demo-basic/src/.metadata/index.ts +11 -0
- package/zova/src/suite/a-demo/modules/demo-basic/src/.metadata/locales.ts +0 -15
- package/zova/src/suite/a-demo/modules/demo-basic/src/.metadata/page/toolMinimal.ts +9 -0
- package/zova/src/suite/a-demo/modules/demo-basic/src/page/toolMinimal/controller.tsx +11 -0
- package/zova/src/suite/a-demo/modules/demo-basic/src/routes.ts +10 -0
- package/zova/src/suite/a-devui/modules/devui-adapter/src/bean/meta.themeHandler.ts +1 -0
- package/zova/src/suite/a-home/modules/home-base/src/.metadata/locales.ts +0 -15
- package/zova/src/suite/a-home/modules/home-base/src/service/routerGuards.ts +1 -1
- package/zova/src/suite/a-home/modules/home-base/src/service/ssrLayout.ts +1 -0
- package/zova/src/suite/a-home/modules/home-layoutadmin/src/.metadata/locales.ts +0 -15
- package/zova/src/suite/a-home/modules/home-layoutweb/src/.metadata/locales.ts +0 -15
- package/zova/src/suite/a-home/modules/home-layoutweb/src/component/layoutWeb/controller.tsx +2 -2
- package/zova/src/suite/a-home/modules/home-login/src/.metadata/locales.ts +0 -15
- package/zova/src/suite/a-home/modules/home-passport/src/model/passport.ts +2 -2
- package/zova/src/suite/cabloy-basic/modules/basic-captcha/src/.metadata/locales.ts +0 -15
- package/zova/src/suite/cabloy-basic/modules/basic-form/src/.metadata/locales.ts +0 -15
- package/zova/src/suite/cabloy-basic/modules/basic-page/src/.metadata/locales.ts +0 -15
- package/zova/src/suite/cabloy-basic/modules/basic-pageentry/src/.metadata/locales.ts +0 -15
- package/zova/src/suite/cabloy-basic/modules/basic-table/src/.metadata/locales.ts +0 -15
- package/zova/src/suite-vendor/a-zova/modules/a-interceptor/package.json +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-interceptor/src/bean/interceptor.jwt.ts +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-model/package.json +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-model/src/service/storage.ts +4 -5
- package/zova/src/suite-vendor/a-zova/modules/a-openapi/package.json +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/monkey.ts +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-ssr/package.json +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-ssr/src/lib/ssr.ts +36 -1
- package/zova/src/suite-vendor/a-zova/modules/a-ssr/src/lib/ssrMetaStore.ts +8 -2
- package/zova/src/suite-vendor/a-zova/modules/a-ssr/src/monkey.ts +3 -0
- package/zova/src/suite-vendor/a-zova/modules/a-ssrserver/package.json +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-ssrserver/src/service/ssrHandler.ts +70 -29
- package/zova/src/suite-vendor/a-zova/modules/a-style/package.json +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-style/src/bean/bean.theme.ts +6 -3
- package/zova/src/suite-vendor/a-zova/modules/a-zod/package.json +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-zod/src/.metadata/locales.ts +0 -15
- package/zova/src/suite-vendor/a-zova/modules/a-zova/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/package.json +9 -9
|
@@ -72,42 +72,83 @@ export class ServiceSsrHandler extends BeanBase {
|
|
|
72
72
|
onRenderedList.push(fn);
|
|
73
73
|
},
|
|
74
74
|
};
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
75
|
+
let renderFn;
|
|
76
|
+
let runtimePageContent = '';
|
|
77
|
+
let renderedError;
|
|
78
|
+
let onRenderedFlushed = false;
|
|
79
|
+
let renderedFinalized = false;
|
|
80
|
+
try {
|
|
81
|
+
// render
|
|
82
|
+
renderFn = await serverEntry(ssrContext);
|
|
83
|
+
const [runtimePageContentInner, err] = await catchError(() => {
|
|
84
|
+
return renderToString(renderFn, ssrContext);
|
|
85
|
+
});
|
|
86
|
+
if (runtimePageContentInner) {
|
|
87
|
+
runtimePageContent = runtimePageContentInner as string;
|
|
88
|
+
}
|
|
80
89
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
fn
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
+
const error = ssrContext._meta.renderError ?? err;
|
|
91
|
+
renderedError = error;
|
|
92
|
+
onRenderedList.forEach(fn => {
|
|
93
|
+
fn(error);
|
|
94
|
+
});
|
|
95
|
+
onRenderedFlushed = true;
|
|
96
|
+
cast(ssrContext).rendered(error);
|
|
97
|
+
renderedFinalized = true;
|
|
98
|
+
if (error) {
|
|
99
|
+
if (error instanceof Error) throw error;
|
|
100
|
+
return error;
|
|
101
|
+
}
|
|
90
102
|
|
|
91
|
-
|
|
103
|
+
ssrContext._meta.runtimePageContent = runtimePageContent;
|
|
104
|
+
|
|
105
|
+
// @vitejs/plugin-vue injects code into a component's setup() that registers
|
|
106
|
+
// itself on ctx.modules. After the render, ctx.modules would contain all the
|
|
107
|
+
// components that have been instantiated during this render call.
|
|
108
|
+
const modules = cast(ssrContext).modules;
|
|
109
|
+
if (modules) {
|
|
110
|
+
ssrContext._meta.endingHeadTags += this._renderModulesPreload_zova(modules, {
|
|
111
|
+
ssrContext,
|
|
112
|
+
});
|
|
113
|
+
ssrContext._meta.endingHeadTags += this._renderModulesPreload(modules, {
|
|
114
|
+
ssrContext,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
92
117
|
|
|
93
|
-
|
|
94
|
-
// itself on ctx.modules. After the render, ctx.modules would contain all the
|
|
95
|
-
// components that have been instantiated during this render call.
|
|
96
|
-
ssrContext._meta.endingHeadTags += this._renderModulesPreload_zova(cast(ssrContext).modules, {
|
|
97
|
-
ssrContext,
|
|
98
|
-
});
|
|
99
|
-
ssrContext._meta.endingHeadTags += this._renderModulesPreload(cast(ssrContext).modules, {
|
|
100
|
-
ssrContext,
|
|
101
|
-
});
|
|
118
|
+
const html = renderTemplate(ssrContext);
|
|
102
119
|
|
|
103
|
-
|
|
120
|
+
// transferCache
|
|
121
|
+
await this._renderTransferCache(options, route);
|
|
104
122
|
|
|
105
|
-
|
|
106
|
-
await this._renderTransferCache(options, route);
|
|
123
|
+
// todo: ssg
|
|
107
124
|
|
|
108
|
-
|
|
125
|
+
return html;
|
|
126
|
+
} finally {
|
|
127
|
+
const context = cast(ssrContext);
|
|
128
|
+
if (!onRenderedFlushed) {
|
|
129
|
+
onRenderedList.forEach(fn => {
|
|
130
|
+
fn(renderedError);
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
if (!renderedFinalized && typeof context.rendered === 'function') {
|
|
134
|
+
context.rendered(renderedError);
|
|
135
|
+
}
|
|
136
|
+
onRenderedList.length = 0;
|
|
137
|
+
this._clearSsrContext(context);
|
|
138
|
+
renderFn = undefined;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
109
141
|
|
|
110
|
-
|
|
142
|
+
private _clearSsrContext(context): void {
|
|
143
|
+
context.modules?.clear?.();
|
|
144
|
+
if (context.__qMetaList?.length) {
|
|
145
|
+
context.__qMetaList.length = 0;
|
|
146
|
+
}
|
|
147
|
+
context.state = undefined;
|
|
148
|
+
context.stateDefer = undefined;
|
|
149
|
+
context.performAction = undefined;
|
|
150
|
+
context.rendered = undefined;
|
|
151
|
+
context._meta = undefined;
|
|
111
152
|
}
|
|
112
153
|
|
|
113
154
|
public async ensureReady(handlerNonce: number) {
|
|
@@ -66,7 +66,7 @@ export class BeanTheme extends BeanModelBase {
|
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
// not use watch.immediate for await done
|
|
69
|
-
await this.
|
|
69
|
+
await this._applyInitialThemeAndSsrDualOutput();
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
protected __dispose__() {
|
|
@@ -77,9 +77,12 @@ export class BeanTheme extends BeanModelBase {
|
|
|
77
77
|
this._dark = this._getDarkFromDarkMode(this.darkMode);
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
async
|
|
80
|
+
async _applyInitialThemeAndSsrDualOutput() {
|
|
81
|
+
// When server-side theme cookies are disabled, apply twice during SSR initialization so the
|
|
82
|
+
// server emits both data-ssr-theme-dark-false/true markers and the browser can resolve the
|
|
83
|
+
// final data-theme during bootstrap.
|
|
81
84
|
await this._applyTheme();
|
|
82
|
-
if (this.sys.config.ssr.
|
|
85
|
+
if (this.sys.config.ssr.cookieDisabledOnServer) {
|
|
83
86
|
this.toggleDark();
|
|
84
87
|
await this._applyTheme();
|
|
85
88
|
}
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import type { TypeLocaleBase } from 'zova';
|
|
2
|
-
|
|
3
|
-
import { useApp, useComputed } from 'zova';
|
|
4
|
-
|
|
5
1
|
import locale_en_us from '../config/locale/en-us.js';
|
|
6
2
|
import locale_zh_cn from '../config/locale/zh-cn.js';
|
|
7
3
|
|
|
@@ -9,14 +5,3 @@ export const locales = {
|
|
|
9
5
|
'en-us': locale_en_us,
|
|
10
6
|
'zh-cn': locale_zh_cn,
|
|
11
7
|
};
|
|
12
|
-
|
|
13
|
-
export function $useLocale<K extends keyof (typeof locales)[TypeLocaleBase]>(
|
|
14
|
-
key: K,
|
|
15
|
-
...args: any[]
|
|
16
|
-
) {
|
|
17
|
-
const app = useApp();
|
|
18
|
-
const str = `a-zod::${key}`;
|
|
19
|
-
return useComputed(() => {
|
|
20
|
-
return app.meta.text(str, ...args);
|
|
21
|
-
});
|
|
22
|
-
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zova-module-a-zova",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.62",
|
|
4
4
|
"gitHead": "2c5c19284bab738e492856189acb6fad74b8a7b7",
|
|
5
5
|
"description": "zova",
|
|
6
6
|
"keywords": [
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"@cabloy/word-utils": "^2.1.14",
|
|
44
44
|
"defu": "^6.1.7",
|
|
45
45
|
"luxon": "^3.7.2",
|
|
46
|
-
"zova-jsx": "^1.1.
|
|
46
|
+
"zova-jsx": "^1.1.56"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@cabloy/cli": "^3.1.14",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zova-suite-a-zova",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.94",
|
|
4
4
|
"gitHead": "2c5c19284bab738e492856189acb6fad74b8a7b7",
|
|
5
5
|
"description": "zova",
|
|
6
6
|
"license": "MIT",
|
|
@@ -18,21 +18,21 @@
|
|
|
18
18
|
"zova-module-a-fetch": "^5.1.17",
|
|
19
19
|
"zova-module-a-form": "^5.1.32",
|
|
20
20
|
"zova-module-a-icon": "^5.1.20",
|
|
21
|
-
"zova-module-a-interceptor": "^5.1.
|
|
21
|
+
"zova-module-a-interceptor": "^5.1.23",
|
|
22
22
|
"zova-module-a-logger": "^5.1.20",
|
|
23
23
|
"zova-module-a-meta": "^5.1.15",
|
|
24
|
-
"zova-module-a-model": "^5.1.
|
|
25
|
-
"zova-module-a-openapi": "^5.1.
|
|
24
|
+
"zova-module-a-model": "^5.1.24",
|
|
25
|
+
"zova-module-a-openapi": "^5.1.31",
|
|
26
26
|
"zova-module-a-router": "^5.1.23",
|
|
27
27
|
"zova-module-a-routerstack": "^5.1.20",
|
|
28
28
|
"zova-module-a-routertabs": "^5.1.25",
|
|
29
|
-
"zova-module-a-ssr": "^5.1.
|
|
29
|
+
"zova-module-a-ssr": "^5.1.20",
|
|
30
30
|
"zova-module-a-ssrhmr": "^5.1.16",
|
|
31
|
-
"zova-module-a-ssrserver": "^5.1.
|
|
32
|
-
"zova-module-a-style": "^5.1.
|
|
31
|
+
"zova-module-a-ssrserver": "^5.1.16",
|
|
32
|
+
"zova-module-a-style": "^5.1.26",
|
|
33
33
|
"zova-module-a-table": "^5.1.27",
|
|
34
|
-
"zova-module-a-zod": "^5.1.
|
|
35
|
-
"zova-module-a-zova": "^5.1.
|
|
34
|
+
"zova-module-a-zod": "^5.1.24",
|
|
35
|
+
"zova-module-a-zova": "^5.1.62"
|
|
36
36
|
},
|
|
37
37
|
"title": "a-zova"
|
|
38
38
|
}
|