cabloy 5.1.172 → 5.1.174

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 (97) hide show
  1. package/.cabloy-version +1 -1
  2. package/CHANGELOG.md +12 -0
  3. package/package.json +2 -2
  4. package/repo-docs/frontend/component-guide.md +33 -0
  5. package/repo-docs/frontend/model-resource-cookbook.md +0 -8
  6. package/repo-docs/frontend/model-resource-usage-guide.md +0 -4
  7. package/repo-e2e/specs/cabloy-basic.spec.ts +158 -0
  8. package/repo-e2e/specs/controller-boundary.spec.ts +261 -0
  9. package/test-results/.last-run.json +1 -1
  10. package/vona/packages-utils/lint/package.json +1 -1
  11. package/vona/packages-utils/lint/src/oxc/lint.ts +1 -1
  12. package/vona/packages-utils/lint/src/oxc/lintVue.ts +1 -1
  13. package/vona/pnpm-lock.yaml +238 -46
  14. package/vona/pnpm-workspace.yaml +1 -1
  15. package/zova/package.original.json +1 -1
  16. package/zova/packages-cli/cli/package.json +2 -2
  17. package/zova/packages-cli/cli-set-front/package.json +3 -3
  18. package/zova/packages-utils/babel-plugin-zova-behavior/package.json +2 -1
  19. package/zova/packages-utils/babel-plugin-zova-behavior/src/index.ts +21 -8
  20. package/zova/packages-utils/babel-plugin-zova-behavior/test/behaviorSlots.test.ts +111 -0
  21. package/zova/packages-utils/zova-jsx/package.json +2 -2
  22. package/zova/packages-utils/zova-vite/package.json +2 -2
  23. package/zova/packages-zova/zova/package.json +3 -3
  24. package/zova/packages-zova/zova-core/package.json +1 -1
  25. package/zova/packages-zova/zova-core/src/bean/beanBase.ts +1 -1
  26. package/zova/packages-zova/zova-core/src/bean/beanContainer.ts +95 -39
  27. package/zova/packages-zova/zova-core/src/bean/resource/error/type.ts +9 -0
  28. package/zova/packages-zova/zova-core/src/bean/type.ts +18 -0
  29. package/zova/packages-zova/zova-core/src/components/component.ts +2 -1
  30. package/zova/packages-zova/zova-core/src/composables/useController.ts +155 -25
  31. package/zova/packages-zova/zova-core/src/core/component/error.ts +62 -5
  32. package/zova/packages-zova/zova-core/src/core/context/component.ts +37 -2
  33. package/zova/packages-zova/zova-core/src/core/context/hooks.ts +13 -2
  34. package/zova/packages-zova/zova-core/src/core/context/meta.ts +1 -0
  35. package/zova/packages-zova/zova-core/src/core/context/state.ts +161 -0
  36. package/zova/packages-zova/zova-core/src/core/sys/config.ts +32 -7
  37. package/zova/packages-zova/zova-core/src/types/interface/monkey.ts +15 -0
  38. package/zova/packages-zova/zova-core/src/types/utils/powerPartial.ts +1 -1
  39. package/zova/pnpm-lock.yaml +40 -25
  40. package/zova/src/front/config/config/config.ts +11 -0
  41. package/zova/src/front/config/config/render.tsx +79 -0
  42. package/zova/src/suite/a-commerce/modules/commerce-trade/src/model/order.ts +0 -1
  43. package/zova/src/suite/a-demo/modules/demo-basic/src/.metadata/component/controllerBoundaryProbe.ts +31 -0
  44. package/zova/src/suite/a-demo/modules/demo-basic/src/.metadata/component/controllerBoundaryProbeInline.ts +34 -0
  45. package/zova/src/suite/a-demo/modules/demo-basic/src/.metadata/component/controllerBoundaryProbeOverride.ts +34 -0
  46. package/zova/src/suite/a-demo/modules/demo-basic/src/.metadata/index.ts +58 -1
  47. package/zova/src/suite/a-demo/modules/demo-basic/src/.metadata/page/controllerBoundary.ts +23 -0
  48. package/zova/src/suite/a-demo/modules/demo-basic/src/component/controllerBoundaryProbe/controller.tsx +36 -0
  49. package/zova/src/suite/a-demo/modules/demo-basic/src/component/controllerBoundaryProbeInline/controller.tsx +34 -0
  50. package/zova/src/suite/a-demo/modules/demo-basic/src/component/controllerBoundaryProbeOverride/controller.tsx +46 -0
  51. package/zova/src/suite/a-demo/modules/demo-basic/src/page/controllerBoundary/controller.tsx +185 -0
  52. package/zova/src/suite/a-demo/modules/demo-basic/src/routes.ts +6 -0
  53. package/zova/src/suite/a-home/modules/home-base/src/config/locale/en-us.ts +1 -0
  54. package/zova/src/suite/a-home/modules/home-base/src/config/locale/zh-cn.ts +1 -0
  55. package/zova/src/suite/a-training/modules/training-student/src/model/student.ts +0 -3
  56. package/zova/src/suite/cabloy-basic/modules/basic-button/package.json +58 -0
  57. package/zova/src/suite/cabloy-basic/modules/basic-button/src/.metadata/component/button.ts +31 -0
  58. package/zova/src/suite/cabloy-basic/modules/basic-button/src/.metadata/index.ts +122 -0
  59. package/zova/src/suite/cabloy-basic/modules/basic-button/src/.metadata/this.ts +2 -0
  60. package/zova/src/suite/cabloy-basic/modules/basic-button/src/bean/behavior.perform.tsx +103 -0
  61. package/zova/src/suite/cabloy-basic/modules/basic-button/src/component/button/controller.tsx +39 -0
  62. package/zova/src/suite/cabloy-basic/modules/basic-button/src/index.ts +1 -0
  63. package/zova/src/suite/cabloy-basic/modules/basic-button/tsconfig.build.json +13 -0
  64. package/zova/src/suite/cabloy-basic/modules/basic-button/tsconfig.json +5 -0
  65. package/zova/src/suite/cabloy-basic/modules/basic-details/package.json +2 -1
  66. package/zova/src/suite/cabloy-basic/modules/basic-details/src/bean/tableCell.actionDelete.tsx +4 -4
  67. package/zova/src/suite/cabloy-basic/modules/basic-page/src/component/blockPage/controller.tsx +5 -1
  68. package/zova/src/suite/cabloy-basic/modules/basic-pageentry/src/component/blockPageEntry/controller.tsx +5 -1
  69. package/zova/src/suite/cabloy-basic/modules/basic-table/package.json +2 -1
  70. package/zova/src/suite/cabloy-basic/modules/basic-table/src/bean/tableCell.actionDelete.tsx +4 -4
  71. package/zova/src/suite/cabloy-basic/modules/basic-table/src/component/actionRefresh/controller.tsx +10 -8
  72. package/zova/src/suite/cabloy-basic/package.json +1 -0
  73. package/zova/src/suite-vendor/a-cabloy/modules/a-layoutprofile/package.json +1 -1
  74. package/zova/src/suite-vendor/a-cabloy/modules/a-layoutprofile/src/model/layoutprofile.ts +0 -3
  75. package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/package.json +1 -1
  76. package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/src/.metadata/page/resource.ts +6 -1
  77. package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/src/model/resource.ts +0 -1
  78. package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/src/page/resource/controller.tsx +5 -1
  79. package/zova/src/suite-vendor/a-cabloy/package.json +3 -3
  80. package/zova/src/suite-vendor/a-zova/modules/a-bean/cli/controller/metadata/generateFilePage.ts +3 -1
  81. package/zova/src/suite-vendor/a-zova/modules/a-bean/package.json +1 -1
  82. package/zova/src/suite-vendor/a-zova/modules/a-model/package.json +1 -1
  83. package/zova/src/suite-vendor/a-zova/modules/a-model/src/bean/bean.model/bean.model.useMutation.ts +1 -11
  84. package/zova/src/suite-vendor/a-zova/modules/a-model/src/bean/bean.model/bean.model.useQuery.ts +1 -17
  85. package/zova/src/suite-vendor/a-zova/modules/a-model/src/lib/utils.ts +2 -1
  86. package/zova/src/suite-vendor/a-zova/modules/a-model/src/types/query.ts +2 -7
  87. package/zova/src/suite-vendor/a-zova/modules/a-model/test/lib/mutation.types.ts +14 -0
  88. package/zova/src/suite-vendor/a-zova/modules/a-model/test/lib/queryEnsureLoaded.test.ts +56 -0
  89. package/zova/src/suite-vendor/a-zova/modules/a-router/package.json +1 -1
  90. package/zova/src/suite-vendor/a-zova/modules/a-router/src/monkey.ts +8 -0
  91. package/zova/src/suite-vendor/a-zova/modules/a-ssr/package.json +1 -1
  92. package/zova/src/suite-vendor/a-zova/modules/a-ssr/src/lib/ssr.ts +85 -1
  93. package/zova/src/suite-vendor/a-zova/modules/a-ssr/src/monkey.ts +25 -1
  94. package/zova/src/suite-vendor/a-zova/modules/a-ssr/src/types/ssr.ts +15 -1
  95. package/zova/src/suite-vendor/a-zova/modules/a-zova/package.json +2 -2
  96. package/zova/src/suite-vendor/a-zova/package.json +6 -6
  97. /package/vona/patches/{zova-core@5.1.89.patch → zova-core@5.1.90.patch} +0 -0
@@ -2,6 +2,7 @@ import type { IModule } from '@cabloy/module-info';
2
2
  import type {
3
3
  BeanBase,
4
4
  BeanContainer,
5
+ IControllerLoadEvent,
5
6
  IMonkeyAppContextInitialize,
6
7
  IMonkeyAppInitialize,
7
8
  IMonkeyBeanInit,
@@ -23,11 +24,22 @@ export class Monkey
23
24
  {
24
25
  appContextInitialize(ctx: ZovaContext): void {
25
26
  ctx.meta.$ssr = ctx.app.ctx.meta.$ssr;
27
+ if (process.env.CLIENT) {
28
+ ctx.meta.$ssr.handleDirectOrOnHydrated(() => {
29
+ if (!ctx.disposed) {
30
+ ctx.meta.hooks.invokeHook('hydrated');
31
+ }
32
+ });
33
+ }
26
34
  if (process.env.SERVER) {
27
35
  ctx.meta.$ssr._registerServerContext(ctx);
28
36
  }
29
37
  }
30
38
 
39
+ controllerLoad(event: IControllerLoadEvent) {
40
+ event.ctx.meta.$ssr.controllerLoad(event);
41
+ }
42
+
31
43
  async appInitialize() {
32
44
  this.app.meta.event.on('a-router:routerGuards', async (router, next) => {
33
45
  if (process.env.CLIENT) {
@@ -104,8 +116,16 @@ export class Monkey
104
116
 
105
117
  private _ssrErrorHandler() {
106
118
  if (!process.env.SERVER) return;
107
- const _eventErrorHandler = this.app.meta.event.on('app:errorHandler', (_data, next) => {
119
+ const _eventErrorHandler = this.app.meta.event.on('app:errorHandler', (data, next) => {
108
120
  const err = next();
121
+ if (data.load?.kind === 'controller-load') {
122
+ if (_isLoadErrorHandledServer(data.err)) {
123
+ data.load.disposition = 'handled';
124
+ if (!err || !(err instanceof Error)) return err;
125
+ return this._errorHandlerDefaultServer(err);
126
+ }
127
+ return err;
128
+ }
109
129
  if (!err || !(err instanceof Error)) return err;
110
130
  return this._errorHandlerDefaultServer(err);
111
131
  });
@@ -133,3 +153,7 @@ export class Monkey
133
153
  return undefined;
134
154
  }
135
155
  }
156
+
157
+ function _isLoadErrorHandledServer(err: Error) {
158
+ return isNavigationFailure(err) || [301, 302, 401].includes(Number((err as any).code));
159
+ }
@@ -66,7 +66,21 @@ export interface SSRContextState {
66
66
  ssrProfile?: TypeSsrProfile;
67
67
  ssrProfileOptions?: Readonly<ISsrProfileOptions>;
68
68
  }
69
- export interface SSRContextStateDefer {}
69
+ export interface SSRControllerLoadErrorSnapshot {
70
+ version: 1;
71
+ controllerBeanName?: string;
72
+ name: string;
73
+ message: string;
74
+ code?: number | string;
75
+ status?: number | string;
76
+ pagePath?: string;
77
+ url?: string;
78
+ controllerRecorded: boolean;
79
+ }
80
+
81
+ export interface SSRContextStateDefer {
82
+ controllerLoad?: Record<string, SSRControllerLoadErrorSnapshot>;
83
+ }
70
84
 
71
85
  // from: quasar/dist/types/meta.d.ts
72
86
  // Cannot use `Record<string, string>` as TS would error out about `template` signature
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zova-module-a-zova",
3
- "version": "5.1.104",
3
+ "version": "5.1.105",
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.89"
46
+ "zova-jsx": "^1.1.90"
47
47
  },
48
48
  "devDependencies": {
49
49
  "@cabloy/cli": "^3.1.29",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zova-suite-a-zova",
3
- "version": "5.1.161",
3
+ "version": "5.1.162",
4
4
  "gitHead": "2c5c19284bab738e492856189acb6fad74b8a7b7",
5
5
  "description": "zova",
6
6
  "license": "MIT",
@@ -10,7 +10,7 @@
10
10
  "dependencies": {
11
11
  "zova-module-a-api": "^5.1.22",
12
12
  "zova-module-a-app": "^5.1.26",
13
- "zova-module-a-bean": "^5.1.35",
13
+ "zova-module-a-bean": "^5.1.36",
14
14
  "zova-module-a-behavior": "^5.1.26",
15
15
  "zova-module-a-behaviors": "^5.1.22",
16
16
  "zova-module-a-boundary": "^5.1.22",
@@ -21,18 +21,18 @@
21
21
  "zova-module-a-interceptor": "^5.1.31",
22
22
  "zova-module-a-logger": "^5.1.28",
23
23
  "zova-module-a-meta": "^5.1.22",
24
- "zova-module-a-model": "^5.1.36",
24
+ "zova-module-a-model": "^5.1.37",
25
25
  "zova-module-a-openapi": "^5.1.54",
26
- "zova-module-a-router": "^5.1.37",
26
+ "zova-module-a-router": "^5.1.38",
27
27
  "zova-module-a-routerstack": "^5.1.29",
28
28
  "zova-module-a-routertabs": "^5.1.34",
29
- "zova-module-a-ssr": "^5.1.39",
29
+ "zova-module-a-ssr": "^5.1.40",
30
30
  "zova-module-a-ssrhmr": "^5.1.23",
31
31
  "zova-module-a-ssrserver": "^5.1.26",
32
32
  "zova-module-a-style": "^5.1.35",
33
33
  "zova-module-a-table": "^5.1.43",
34
34
  "zova-module-a-zod": "^5.1.37",
35
- "zova-module-a-zova": "^5.1.104"
35
+ "zova-module-a-zova": "^5.1.105"
36
36
  },
37
37
  "title": "a-zova"
38
38
  }