cabloy 5.1.62 → 5.1.64

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 (111) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/cabloy-docs/frontend/form-guide.md +10 -4
  3. package/cabloy-docs/frontend/table-cell-cookbook.md +4 -1
  4. package/package.json +1 -1
  5. package/vona/packages-vona/vona/package.json +1 -1
  6. package/vona/pnpm-lock.yaml +78 -2
  7. package/vona/src/suite/a-training/modules/training-record/package.json +53 -0
  8. package/vona/src/suite/a-training/modules/training-record/src/.metadata/index.ts +198 -0
  9. package/vona/src/suite/a-training/modules/training-record/src/.metadata/locales.ts +18 -0
  10. package/vona/src/suite/a-training/modules/training-record/src/.metadata/this.ts +2 -0
  11. package/vona/src/suite/a-training/modules/training-record/src/bean/meta.index.ts +12 -0
  12. package/vona/src/suite/a-training/modules/training-record/src/bean/meta.version.ts +21 -0
  13. package/vona/src/suite/a-training/modules/training-record/src/config/locale/en-us.ts +7 -0
  14. package/vona/src/suite/a-training/modules/training-record/src/config/locale/zh-cn.ts +7 -0
  15. package/vona/src/suite/a-training/modules/training-record/src/entity/record.tsx +48 -0
  16. package/vona/src/suite/a-training/modules/training-record/src/index.ts +2 -0
  17. package/vona/src/suite/a-training/modules/training-record/src/model/record.ts +10 -0
  18. package/vona/src/suite/a-training/modules/training-record/tsconfig.build.json +11 -0
  19. package/vona/src/suite/a-training/modules/training-record/tsconfig.json +7 -0
  20. package/vona/src/suite/a-training/modules/training-student/src/.metadata/index.ts +39 -3
  21. package/vona/src/suite/a-training/modules/training-student/src/config/locale/en-us.ts +1 -0
  22. package/vona/src/suite/a-training/modules/training-student/src/config/locale/zh-cn.ts +1 -0
  23. package/vona/src/suite/a-training/modules/training-student/src/dto/detailRecordBase.tsx +12 -0
  24. package/vona/src/suite/a-training/modules/training-student/src/dto/detailRecordMutate.tsx +31 -0
  25. package/vona/src/suite/a-training/modules/training-student/src/dto/detailRecordResItem.tsx +41 -0
  26. package/vona/src/suite/a-training/modules/training-student/src/dto/detailRecordView.tsx +28 -0
  27. package/vona/src/suite/a-training/modules/training-student/src/dto/studentCreate.tsx +16 -1
  28. package/vona/src/suite/a-training/modules/training-student/src/dto/studentUpdate.tsx +4 -1
  29. package/vona/src/suite/a-training/modules/training-student/src/dto/studentView.tsx +4 -1
  30. package/vona/src/suite/a-training/modules/training-student/src/model/student.ts +9 -2
  31. package/vona/src/suite/a-training/modules/training-student/src/service/student.ts +1 -1
  32. package/vona/src/suite/a-training/package.json +1 -0
  33. package/vona/src/suite/a-training/tsconfig.json +3 -0
  34. package/vona/src/suite-vendor/a-vona/modules/a-orm/package.json +1 -1
  35. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dto.ts +2 -0
  36. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoGet.ts +3 -3
  37. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoMutate.ts +2 -2
  38. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/dto/dtoGet.ts +3 -0
  39. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/dto/dtoMutate.ts +2 -1
  40. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/modelGeneral.ts +3 -0
  41. package/vona/src/suite-vendor/a-vona/package.json +1 -1
  42. package/zova/packages-cli/cli/package.json +2 -2
  43. package/zova/packages-cli/cli-set-front/cli/templates/create/component/boilerplateBlockPage/controller.tsx_ +6 -2
  44. package/zova/packages-cli/cli-set-front/cli/templates/create/component/boilerplateBlockPageEntry/controller.tsx_ +6 -2
  45. package/zova/packages-cli/cli-set-front/cli/templates/create/component/boilerplateFormActionRow/controller.tsx_ +6 -2
  46. package/zova/packages-cli/cli-set-front/cli/templates/create/component/boilerplateFormField/controller.tsx_ +2 -1
  47. package/zova/packages-cli/cli-set-front/cli/templates/create/component/boilerplateTableActionBulk/controller.tsx_ +6 -2
  48. package/zova/packages-cli/cli-set-front/cli/templates/rest/component.ts +22 -0
  49. package/zova/packages-cli/cli-set-front/cli/templates/rest/render.ts +4 -0
  50. package/zova/packages-cli/cli-set-front/package.json +1 -1
  51. package/zova/packages-zova/zova/package.json +2 -2
  52. package/zova/pnpm-lock.yaml +32 -2
  53. package/zova/src/suite/a-demo/modules/demo-basic/src/page/toolOne/render.tsx +5 -3
  54. package/zova/src/suite/a-home/modules/home-login/src/page/login/render.tsx +5 -3
  55. package/zova/src/suite/a-training/modules/training-student/package.json +6 -1
  56. package/zova/src/suite/a-training/modules/training-student/src/bean/tableCell.actionDeleteForce.tsx +13 -11
  57. package/zova/src/suite/a-training/modules/training-student/src/bean/tableCell.actionSummary.tsx +1 -1
  58. package/zova/src/suite/cabloy-basic/modules/basic-app/package.json +60 -0
  59. package/zova/src/suite/cabloy-basic/modules/basic-app/src/.metadata/index.ts +137 -0
  60. package/zova/src/suite/cabloy-basic/modules/basic-app/src/.metadata/locales.ts +7 -0
  61. package/zova/src/suite/cabloy-basic/modules/basic-app/src/.metadata/this.ts +2 -0
  62. package/zova/src/suite/cabloy-basic/modules/basic-app/src/bean/behavior.appModal.tsx +260 -0
  63. package/zova/src/suite/cabloy-basic/modules/basic-app/src/config/config.ts +39 -0
  64. package/zova/src/suite/cabloy-basic/modules/basic-app/src/config/locale/en-us.ts +7 -0
  65. package/zova/src/suite/cabloy-basic/modules/basic-app/src/config/locale/zh-cn.ts +7 -0
  66. package/zova/src/suite/cabloy-basic/modules/basic-app/src/index.ts +4 -0
  67. package/zova/src/suite/cabloy-basic/modules/basic-app/src/lib/appModalItem.ts +16 -0
  68. package/zova/src/suite/cabloy-basic/modules/basic-app/src/lib/index.ts +1 -0
  69. package/zova/src/suite/cabloy-basic/modules/basic-app/src/monkey.ts +38 -0
  70. package/zova/src/suite/cabloy-basic/modules/basic-app/src/monkeySys.ts +14 -0
  71. package/zova/src/suite/cabloy-basic/modules/basic-app/src/service/appModal.ts +89 -0
  72. package/zova/src/suite/cabloy-basic/modules/basic-app/src/types/appModal.ts +52 -0
  73. package/zova/src/suite/cabloy-basic/modules/basic-app/src/types/index.ts +1 -0
  74. package/zova/src/suite/cabloy-basic/modules/basic-app/tsconfig.build.json +13 -0
  75. package/zova/src/suite/cabloy-basic/modules/basic-app/tsconfig.json +5 -0
  76. package/zova/src/suite/cabloy-basic/modules/basic-commands/package.json +6 -1
  77. package/zova/src/suite/cabloy-basic/modules/basic-commands/src/.metadata/index.ts +16 -0
  78. package/zova/src/suite/cabloy-basic/modules/basic-commands/src/bean/command.alert.tsx +8 -14
  79. package/zova/src/suite/cabloy-basic/modules/basic-commands/src/bean/command.confirm.tsx +10 -7
  80. package/zova/src/suite/cabloy-basic/modules/basic-commands/src/bean/command.prompt.tsx +30 -0
  81. package/zova/src/suite/cabloy-basic/modules/basic-details/package.json +52 -0
  82. package/zova/src/suite/cabloy-basic/modules/basic-details/src/.metadata/component/actionCreate.ts +31 -0
  83. package/zova/src/suite/cabloy-basic/modules/basic-details/src/.metadata/component/blockDetails.ts +34 -0
  84. package/zova/src/suite/cabloy-basic/modules/basic-details/src/.metadata/component/blockDetailsToolbarBulk.ts +31 -0
  85. package/zova/src/suite/cabloy-basic/modules/basic-details/src/.metadata/component/formFieldDetails.ts +31 -0
  86. package/zova/src/suite/cabloy-basic/modules/basic-details/src/.metadata/index.ts +116 -0
  87. package/zova/src/suite/cabloy-basic/modules/basic-details/src/.metadata/locales.ts +7 -0
  88. package/zova/src/suite/cabloy-basic/modules/basic-details/src/.metadata/this.ts +2 -0
  89. package/zova/src/suite/cabloy-basic/modules/basic-details/src/component/actionCreate/controller.tsx +42 -0
  90. package/zova/src/suite/cabloy-basic/modules/basic-details/src/component/blockDetails/controller.tsx +114 -0
  91. package/zova/src/suite/cabloy-basic/modules/basic-details/src/component/blockDetailsToolbarBulk/controller.tsx +61 -0
  92. package/zova/src/suite/cabloy-basic/modules/basic-details/src/component/formFieldDetails/controller.tsx +105 -0
  93. package/zova/src/suite/cabloy-basic/modules/basic-details/src/config/locale/en-us.ts +3 -0
  94. package/zova/src/suite/cabloy-basic/modules/basic-details/src/config/locale/zh-cn.ts +3 -0
  95. package/zova/src/suite/cabloy-basic/modules/basic-details/src/index.ts +3 -0
  96. package/zova/src/suite/cabloy-basic/modules/basic-details/src/types/details.ts +8 -0
  97. package/zova/src/suite/cabloy-basic/modules/basic-details/src/types/index.ts +1 -0
  98. package/zova/src/suite/cabloy-basic/modules/basic-details/tsconfig.build.json +13 -0
  99. package/zova/src/suite/cabloy-basic/modules/basic-details/tsconfig.json +5 -0
  100. package/zova/src/suite/cabloy-basic/modules/basic-pageentry/src/component/blockForm/controller.tsx +5 -3
  101. package/zova/src/suite/cabloy-basic/modules/basic-table/package.json +6 -1
  102. package/zova/src/suite/cabloy-basic/modules/basic-table/src/bean/tableCell.actionDelete.tsx +4 -2
  103. package/zova/src/suite/cabloy-basic/package.json +2 -0
  104. package/zova/src/suite-vendor/a-zova/modules/a-openapi/package.json +1 -1
  105. package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/action.ts +2 -0
  106. package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/detail/details.ts +7 -0
  107. package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/detail/detailsActionBulk.ts +24 -0
  108. package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/detail/index.ts +2 -0
  109. package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/index.ts +1 -0
  110. package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/permissions.ts +6 -0
  111. package/zova/src/suite-vendor/a-zova/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## 5.1.64
4
+
5
+ ### Features
6
+
7
+ - Add various updates and feature enhancements across the project.
8
+
9
+ ## 5.1.63
10
+
11
+ ### Features
12
+
13
+ - Add the `basic-app` modal module.
14
+ - Add update functionality.
15
+
16
+ ### Improvements
17
+
18
+ - Update the force-delete action modal flow.
19
+ - Unify modal command usage.
20
+ - Migrate remaining confirmation dialogs to `basic-app`.
21
+
3
22
  ## 5.1.62
4
23
 
5
24
  ### Features
@@ -276,8 +276,11 @@ Use `onShowError` when you want a centralized user-facing error handler.
276
276
 
277
277
  ```tsx
278
278
  <ZForm
279
- onShowError={({ error }) => {
280
- window.alert(error.message);
279
+ onShowError={async ({ error }) => {
280
+ await this.$performCommand('basic-commands:alert', {
281
+ type: 'error',
282
+ text: error.message,
283
+ });
281
284
  }}
282
285
  ></ZForm>
283
286
  ```
@@ -583,8 +586,11 @@ Once the Student model side is prepared, the render side can stay thin:
583
586
  formMeta={this.studentFormMeta}
584
587
  formProvider={this.studentFormProvider}
585
588
  onSubmitData={data => this.submitStudent(data)}
586
- onShowError={({ error }) => {
587
- window.alert(error.message);
589
+ onShowError={async ({ error }) => {
590
+ await this.$performCommand('basic-commands:alert', {
591
+ type: 'error',
592
+ text: error.message,
593
+ });
588
594
  }}
589
595
  ></ZForm>
590
596
  ```
@@ -310,7 +310,10 @@ export class TableCellActionDelete extends BeanBase implements ITableCellRender
310
310
  class={options.class}
311
311
  type="button"
312
312
  onClick={async () => {
313
- if (!window.confirm(this.scope.locale.DeleteConfirm())) return;
313
+ const confirmed = await $host.$performCommand('basic-commands:confirm', {
314
+ text: this.scope.locale.DeleteConfirm(),
315
+ });
316
+ if (!confirmed) return;
314
317
  await $host.$performCommand('basic-commands:delete', options, renderContext);
315
318
  }}
316
319
  >
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cabloy",
3
- "version": "5.1.62",
3
+ "version": "5.1.64",
4
4
  "gitHead": "2c5c19284bab738e492856189acb6fad74b8a7b7",
5
5
  "description": "A Node.js fullstack framework",
6
6
  "keywords": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona",
3
- "version": "5.1.48",
3
+ "version": "5.1.49",
4
4
  "gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
5
5
  "description": "Vona is an intuitive, elegant and powerful Node.js framework for rapidly developing enterprise applications of any size",
6
6
  "keywords": [
@@ -346,6 +346,9 @@ importers:
346
346
  vona-module-test-vona:
347
347
  specifier: workspace:^
348
348
  version: link:src/suite-vendor/a-test/modules/test-vona
349
+ vona-module-training-record:
350
+ specifier: workspace:^
351
+ version: link:src/suite/a-training/modules/training-record
349
352
  vona-module-training-student:
350
353
  specifier: workspace:^
351
354
  version: link:src/suite/a-training/modules/training-student
@@ -2383,10 +2386,22 @@ importers:
2383
2386
 
2384
2387
  src/suite/a-training:
2385
2388
  dependencies:
2389
+ vona-module-training-record:
2390
+ specifier: ^5.0.0
2391
+ version: link:modules/training-record
2386
2392
  vona-module-training-student:
2387
2393
  specifier: ^5.0.0
2388
2394
  version: link:modules/training-student
2389
2395
 
2396
+ src/suite/a-training/modules/training-record:
2397
+ devDependencies:
2398
+ clean-package:
2399
+ specifier: ^2.2.0
2400
+ version: 2.2.0
2401
+ rimraf:
2402
+ specifier: ^6.1.3
2403
+ version: 6.1.3
2404
+
2390
2405
  src/suite/a-training/modules/training-student:
2391
2406
  devDependencies:
2392
2407
  clean-package:
@@ -7427,6 +7442,9 @@ packages:
7427
7442
  zova-module-a-table@5.1.31:
7428
7443
  resolution: {integrity: sha512-lU3Kx6wPr0VVoPL2YsBEceQ35WenoRGZhyu2rQ0nakslwQ0cjywX4nfevfxUD2AYsQMFqkjYSHBZpZ25337NCA==}
7429
7444
 
7445
+ zova-module-a-table@5.1.32:
7446
+ resolution: {integrity: sha512-K8DBvJu8ia4OdfLqfBUrdnzMIWgbsL0KbReuUAn/v9Q5UZGJHympPnaxXD/r8r5gE6XazD+0a3xho3DIQAgG2Q==}
7447
+
7430
7448
  zova-module-a-zod@5.1.30:
7431
7449
  resolution: {integrity: sha512-jQJV9MfJiymestwfljP7hPhlJdKk4+2ysi4geJAebmZ4uxPTzLCCEnqc80Ig7hX5D6m6pIoZs4QaCwG7RwdXwA==}
7432
7450
 
@@ -7445,9 +7463,15 @@ packages:
7445
7463
  zova-suite-a-zova@5.1.102:
7446
7464
  resolution: {integrity: sha512-R5HB45pBHN9lZhWRmCuWH0DSMcDb6iBsgCQojxSZNsD8ttSCvWyu2FwNAmCQFguwEuPyZw8ZZndwr/8HAU3IxQ==}
7447
7465
 
7466
+ zova-suite-a-zova@5.1.103:
7467
+ resolution: {integrity: sha512-8xQLu9mGdTqQlSGl/yzel+NqKpeh9jjL3nf0kphwwm15wzgEy4XjH+s9jLAAit21QekmxgUHArb3j2VmJsrnMw==}
7468
+
7448
7469
  zova@5.1.103:
7449
7470
  resolution: {integrity: sha512-AR+Pk9hozKvB6/R/fZ4WPtKX4I0TJxmHx8Ao8dpLovlXhacYi50dUHOTxUQDavwspkWjMDinNqjQWo2MpAVc9g==}
7450
7471
 
7472
+ zova@5.1.104:
7473
+ resolution: {integrity: sha512-a+Ib22pFmhO/0AtuFgZnMIdYbxH3I3ppPW14FmHg4xV7/uTofNBuE4BfOGrIuPxXUUlrSllxYUDdJfPaf/Vzmw==}
7474
+
7451
7475
  zwitch@1.0.5:
7452
7476
  resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==}
7453
7477
 
@@ -13044,6 +13068,13 @@ snapshots:
13044
13068
  transitivePeerDependencies:
13045
13069
  - vue
13046
13070
 
13071
+ zova-module-a-table@5.1.32(vue@3.5.38(typescript@5.9.3)):
13072
+ dependencies:
13073
+ '@tanstack/table-core': 8.21.3
13074
+ '@tanstack/vue-table': 8.21.3(vue@3.5.38(typescript@5.9.3))
13075
+ transitivePeerDependencies:
13076
+ - vue
13077
+
13047
13078
  zova-module-a-zod@5.1.30:
13048
13079
  dependencies:
13049
13080
  '@cabloy/zod-errors-custom': link:packages-utils/zod-errors-custom
@@ -13077,7 +13108,7 @@ snapshots:
13077
13108
  table-identity: link:packages-utils/table-identity
13078
13109
  vue: 3.5.38(typescript@5.9.3)
13079
13110
  zod: '@cabloy/zod@4.3.6'
13080
- zova: 5.1.103(typescript@5.9.3)(vue@3.5.38(typescript@5.9.3))
13111
+ zova: 5.1.104(typescript@5.9.3)(vue@3.5.38(typescript@5.9.3))
13081
13112
  zova-jsx: 1.1.63(typescript@5.9.3)
13082
13113
  zova-module-a-api: 5.1.18
13083
13114
  zova-module-a-bean: 5.1.28
@@ -13092,7 +13123,7 @@ snapshots:
13092
13123
  zova-module-a-routertabs: 5.1.29
13093
13124
  zova-module-a-ssr: 5.1.23
13094
13125
  zova-module-a-style: 5.1.29
13095
- zova-module-a-table: 5.1.31(vue@3.5.38(typescript@5.9.3))
13126
+ zova-module-a-table: 5.1.32(vue@3.5.38(typescript@5.9.3))
13096
13127
  zova-module-rest-resource: 5.1.36
13097
13128
  transitivePeerDependencies:
13098
13129
  - '@vue/composition-api'
@@ -13165,6 +13196,40 @@ snapshots:
13165
13196
  - typescript
13166
13197
  - vue
13167
13198
 
13199
+ zova-suite-a-zova@5.1.103(typescript@5.9.3)(vue@3.5.38(typescript@5.9.3)):
13200
+ dependencies:
13201
+ zova-module-a-api: 5.1.18
13202
+ zova-module-a-app: 5.1.21
13203
+ zova-module-a-bean: 5.1.28
13204
+ zova-module-a-behavior: 5.1.22
13205
+ zova-module-a-behaviors: 5.1.18
13206
+ zova-module-a-boundary: 5.1.18
13207
+ zova-module-a-command: 5.1.29
13208
+ zova-module-a-fetch: 5.1.20
13209
+ zova-module-a-form: 5.1.35(vue@3.5.38(typescript@5.9.3))
13210
+ zova-module-a-icon: 5.1.23
13211
+ zova-module-a-interceptor: 5.1.26
13212
+ zova-module-a-logger: 5.1.23
13213
+ zova-module-a-meta: 5.1.18
13214
+ zova-module-a-model: 5.1.27(vue@3.5.38(typescript@5.9.3))
13215
+ zova-module-a-openapi: 5.1.34
13216
+ zova-module-a-router: 5.1.26
13217
+ zova-module-a-routerstack: 5.1.23
13218
+ zova-module-a-routertabs: 5.1.29
13219
+ zova-module-a-ssr: 5.1.23
13220
+ zova-module-a-ssrhmr: 5.1.19
13221
+ zova-module-a-ssrserver: 5.1.19
13222
+ zova-module-a-style: 5.1.29
13223
+ zova-module-a-table: 5.1.32(vue@3.5.38(typescript@5.9.3))
13224
+ zova-module-a-zod: 5.1.30
13225
+ zova-module-a-zova: 5.1.70(typescript@5.9.3)(vue@3.5.38(typescript@5.9.3))
13226
+ transitivePeerDependencies:
13227
+ - '@vue/composition-api'
13228
+ - debug
13229
+ - supports-color
13230
+ - typescript
13231
+ - vue
13232
+
13168
13233
  zova@5.1.103(typescript@5.9.3)(vue@3.5.38(typescript@5.9.3)):
13169
13234
  dependencies:
13170
13235
  zova-core: 5.1.57(typescript@5.9.3)
@@ -13176,6 +13241,17 @@ snapshots:
13176
13241
  - typescript
13177
13242
  - vue
13178
13243
 
13244
+ zova@5.1.104(typescript@5.9.3)(vue@3.5.38(typescript@5.9.3)):
13245
+ dependencies:
13246
+ zova-core: 5.1.57(typescript@5.9.3)
13247
+ zova-suite-a-zova: 5.1.103(typescript@5.9.3)(vue@3.5.38(typescript@5.9.3))
13248
+ transitivePeerDependencies:
13249
+ - '@vue/composition-api'
13250
+ - debug
13251
+ - supports-color
13252
+ - typescript
13253
+ - vue
13254
+
13179
13255
  zwitch@1.0.5: {}
13180
13256
 
13181
13257
  zwitch@2.0.4: {}
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "vona-module-training-record",
3
+ "version": "5.0.0",
4
+ "description": "",
5
+ "keywords": [
6
+ "Vona Module"
7
+ ],
8
+ "author": "",
9
+ "files": [
10
+ "assets",
11
+ "dist",
12
+ "src"
13
+ ],
14
+ "type": "module",
15
+ "exports": {
16
+ ".": {
17
+ "types": [
18
+ "./src/index.ts",
19
+ "./dist/index.d.ts"
20
+ ],
21
+ "import": "./src/index.ts",
22
+ "default": "./dist/index.js"
23
+ },
24
+ "./package.json": "./package.json"
25
+ },
26
+ "scripts": {
27
+ "clean": "rimraf dist tsconfig.build.tsbuildinfo",
28
+ "tsc:publish": "npm run clean && node ../../../../../packages-cli/cli/src/bin/vona.ts :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
29
+ "prepublishOnly": "npm run tsc:publish",
30
+ "prepack": "clean-package",
31
+ "postpack": "clean-package restore && npm run clean"
32
+ },
33
+ "dependencies": {},
34
+ "devDependencies": {
35
+ "clean-package": "^2.2.0",
36
+ "rimraf": "^6.1.3"
37
+ },
38
+ "clean-package": {
39
+ "indent": 2,
40
+ "remove": [
41
+ "clean-package",
42
+ "devDependencies",
43
+ "exports.\\..import"
44
+ ]
45
+ },
46
+ "title": "training-record",
47
+ "vonaModule": {
48
+ "dependencies": {
49
+ "a-vona": "5.0.0"
50
+ },
51
+ "fileVersion": 1
52
+ }
53
+ }
@@ -0,0 +1,198 @@
1
+ // eslint-disable
2
+ import type { TypeEntityMeta,TypeModelsClassLikeGeneral,TypeSymbolKeyFieldsMore } from 'vona-module-a-orm';
3
+ import type { TypeEntityOptionsFields } from 'vona-module-a-openapi';
4
+ import type { TableIdentity } from 'table-identity';
5
+ /** entity: begin */
6
+ export * from '../entity/record.tsx';
7
+ import type { IEntityOptionsRecord } from '../entity/record.tsx';
8
+ import 'vona-module-a-orm';
9
+ declare module 'vona-module-a-orm' {
10
+
11
+ export interface IEntityRecord {
12
+ 'training-record:record': IEntityOptionsRecord;
13
+ }
14
+
15
+
16
+ }
17
+ declare module 'vona-module-training-record' {
18
+
19
+ }
20
+ /** entity: end */
21
+ /** entity: begin */
22
+ import type { EntityRecord } from '../entity/record.tsx';
23
+ export interface IModuleEntity {
24
+ 'record': EntityRecordMeta;
25
+ }
26
+ /** entity: end */
27
+ /** entity: begin */
28
+ export type EntityRecordTableName = 'trainingRecord';
29
+ export type EntityRecordMeta=TypeEntityMeta<EntityRecord,EntityRecordTableName>;
30
+ declare module 'vona-module-a-orm' {
31
+ export interface ITableRecord {
32
+ 'trainingRecord': EntityRecordMeta;
33
+ }
34
+ }
35
+ declare module 'vona-module-training-record' {
36
+
37
+ export interface IEntityOptionsRecord {
38
+ fields?: TypeEntityOptionsFields<EntityRecord, IEntityOptionsRecord[TypeSymbolKeyFieldsMore]>;
39
+ }
40
+ }
41
+ /** entity: end */
42
+ /** model: begin */
43
+ export * from '../model/record.ts';
44
+ import type { IModelOptionsRecord } from '../model/record.ts';
45
+ import 'vona-module-a-orm';
46
+ declare module 'vona-module-a-orm' {
47
+
48
+ export interface IModelRecord {
49
+ 'training-record:record': IModelOptionsRecord;
50
+ }
51
+
52
+
53
+ }
54
+ declare module 'vona-module-training-record' {
55
+
56
+ export interface ModelRecord {
57
+ /** @internal */
58
+ get scope(): ScopeModuleTrainingRecord;
59
+ }
60
+
61
+ export interface ModelRecord {
62
+ get $beanFullName(): 'training-record.model.record';
63
+ get $onionName(): 'training-record:record';
64
+ get $onionOptions(): IModelOptionsRecord;
65
+ }
66
+ }
67
+ /** model: end */
68
+ /** model: begin */
69
+ import type { ModelRecord } from '../model/record.ts';
70
+ export interface IModuleModel {
71
+ 'record': ModelRecord;
72
+ }
73
+ /** model: end */
74
+ /** model: begin */
75
+
76
+ import 'vona';
77
+ declare module 'vona' {
78
+ export interface IBeanRecordGeneral {
79
+ 'training-record.model.record': ModelRecord;
80
+ }
81
+ }
82
+ /** model: end */
83
+ /** model: begin */
84
+ import type { IModelGetOptions, IModelMethodOptions, IModelSelectParams, TypeModelSelectAndCount, TypeModelRelationResult, TypeModelWhere, IModelInsertOptions, TypeModelMutateRelationData, IModelDeleteOptions, IModelUpdateOptions, IModelMutateOptions, IModelSelectCountParams, IModelIncrementParams, IModelSelectAggrParams, TypeModelAggrRelationResult, IModelSelectGroupParams, TypeModelGroupRelationResult } from 'vona-module-a-orm';
85
+ import { SymbolKeyEntity, SymbolKeyEntityMeta, SymbolKeyModelOptions } from 'vona-module-a-orm';
86
+ declare module 'vona-module-training-record' {
87
+
88
+ export interface ModelRecord {
89
+ [SymbolKeyEntity]: EntityRecord;
90
+ [SymbolKeyEntityMeta]: EntityRecordMeta;
91
+ [SymbolKeyModelOptions]: IModelOptionsRecord;
92
+ get<T extends IModelGetOptions<EntityRecord,ModelRecord>>(where: TypeModelWhere<EntityRecord>, options?: T): Promise<TypeModelRelationResult<EntityRecord, ModelRecord, T> | undefined>;
93
+ mget<T extends IModelGetOptions<EntityRecord,ModelRecord>>(ids: TableIdentity[], options?: T): Promise<TypeModelRelationResult<EntityRecord, ModelRecord, T>[]>;
94
+ selectAndCount<T extends IModelSelectParams<EntityRecord,ModelRecord,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<TypeModelSelectAndCount<EntityRecord, ModelRecord, T>>;
95
+ select<T extends IModelSelectParams<EntityRecord,ModelRecord,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<TypeModelRelationResult<EntityRecord, ModelRecord, T>[]>;
96
+ insert<T extends IModelInsertOptions<EntityRecord,ModelRecord>>(data?: TypeModelMutateRelationData<EntityRecord,ModelRecord, T>, options?: T): Promise<TypeModelMutateRelationData<EntityRecord,ModelRecord, T, true>>;
97
+ insertBulk<T extends IModelInsertOptions<EntityRecord,ModelRecord>>(items: TypeModelMutateRelationData<EntityRecord,ModelRecord, T>[], options?: T): Promise<TypeModelMutateRelationData<EntityRecord,ModelRecord, T, true>[]>;
98
+ update<T extends IModelUpdateOptions<EntityRecord,ModelRecord>>(data: TypeModelMutateRelationData<EntityRecord,ModelRecord, T>, options?: T): Promise<TypeModelMutateRelationData<EntityRecord,ModelRecord, T>>;
99
+ updateBulk<T extends IModelUpdateOptions<EntityRecord,ModelRecord>>(items: TypeModelMutateRelationData<EntityRecord,ModelRecord, T>[], options?: T): Promise<TypeModelMutateRelationData<EntityRecord,ModelRecord, T>[]>;
100
+ delete<T extends IModelDeleteOptions<EntityRecord,ModelRecord>>(where?: TypeModelWhere<EntityRecord>, options?: T): Promise<void>;
101
+ deleteBulk<T extends IModelDeleteOptions<EntityRecord,ModelRecord>>(ids: TableIdentity[], options?: T): Promise<void>;
102
+ mutate<T extends IModelMutateOptions<EntityRecord,ModelRecord>>(data?: TypeModelMutateRelationData<EntityRecord,ModelRecord, T>, options?: T): Promise<TypeModelMutateRelationData<EntityRecord,ModelRecord, T>>;
103
+ mutateBulk<T extends IModelMutateOptions<EntityRecord,ModelRecord>>(items: TypeModelMutateRelationData<EntityRecord,ModelRecord, T>[], options?: T): Promise<TypeModelMutateRelationData<EntityRecord,ModelRecord, T>[]>;
104
+ count<T extends IModelSelectCountParams<EntityRecord,ModelRecord,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<string | undefined>;
105
+ increment<T extends IModelIncrementParams<EntityRecord,ModelRecord,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<number>;
106
+ decrement<T extends IModelIncrementParams<EntityRecord,ModelRecord,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<number>;
107
+ aggregate<T extends IModelSelectAggrParams<EntityRecord,ModelRecord,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<TypeModelAggrRelationResult<T>>;
108
+ group<T extends IModelSelectGroupParams<EntityRecord,ModelRecord,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<TypeModelGroupRelationResult<EntityRecord, T>[]>;
109
+ getById<T extends IModelGetOptions<EntityRecord,ModelRecord>>(id: TableIdentity, options?: T): Promise<TypeModelRelationResult<EntityRecord, ModelRecord, T> | undefined>;
110
+ updateById<T extends IModelUpdateOptions<EntityRecord,ModelRecord>>(id: TableIdentity, data: TypeModelMutateRelationData<EntityRecord,ModelRecord, T>, options?: T): Promise<TypeModelMutateRelationData<EntityRecord,ModelRecord, T>>;
111
+ deleteById<T extends IModelDeleteOptions<EntityRecord,ModelRecord>>(id: TableIdentity, options?: T): Promise<void>;
112
+ getByName<T extends IModelGetOptions<EntityRecord,ModelRecord>>(name?: string, options?: T): Promise<TypeModelRelationResult<EntityRecord, ModelRecord, T> | undefined>;
113
+ getByNameEqI<T extends IModelGetOptions<EntityRecord,ModelRecord>>(name?: string, options?: T): Promise<TypeModelRelationResult<EntityRecord, ModelRecord, T> | undefined>;
114
+ selectByName<T extends IModelSelectParams<EntityRecord,ModelRecord,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(name?: string, params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<TypeModelRelationResult<EntityRecord, ModelRecord, T>[]>;
115
+ selectByNameEqI<T extends IModelSelectParams<EntityRecord,ModelRecord,ModelJoins>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined>(name?: string, params?: T, options?: IModelMethodOptions, modelJoins?: ModelJoins): Promise<TypeModelRelationResult<EntityRecord, ModelRecord, T>[]>;
116
+ }
117
+ }
118
+ declare module 'vona-module-a-orm' {
119
+ export interface IModelClassRecord {
120
+ 'training-record:record': ModelRecord;
121
+ }
122
+ }
123
+ /** model: end */
124
+ /** meta: begin */
125
+ export * from '../bean/meta.index.ts';
126
+ export * from '../bean/meta.version.ts';
127
+ import type { IMetaOptionsIndex } from 'vona-module-a-index';
128
+ import 'vona-module-a-meta';
129
+ declare module 'vona-module-a-meta' {
130
+
131
+ export interface IMetaRecord {
132
+ 'training-record:index': IMetaOptionsIndex;
133
+ 'training-record:version': never;
134
+ }
135
+
136
+
137
+ }
138
+ declare module 'vona-module-training-record' {
139
+
140
+ export interface MetaIndex {
141
+ /** @internal */
142
+ get scope(): ScopeModuleTrainingRecord;
143
+ }
144
+
145
+ export interface MetaIndex {
146
+ get $beanFullName(): 'training-record.meta.index';
147
+ get $onionName(): 'training-record:index';
148
+ get $onionOptions(): IMetaOptionsIndex;
149
+ }
150
+
151
+ export interface MetaVersion {
152
+ /** @internal */
153
+ get scope(): ScopeModuleTrainingRecord;
154
+ }
155
+
156
+ export interface MetaVersion {
157
+ get $beanFullName(): 'training-record.meta.version';
158
+ get $onionName(): 'training-record:version';
159
+
160
+ }
161
+ }
162
+ /** meta: end */
163
+ /** locale: begin */
164
+ import { locales } from './locales.ts';
165
+ /** locale: end */
166
+ /** scope: begin */
167
+ import { BeanScopeBase, type BeanScopeUtil, type TypeModuleLocales, type TypeLocaleBase } from 'vona';
168
+ import { Scope } from 'vona-module-a-bean';
169
+
170
+ @Scope()
171
+ export class ScopeModuleTrainingRecord extends BeanScopeBase {}
172
+
173
+ export interface ScopeModuleTrainingRecord {
174
+ util: BeanScopeUtil;
175
+ locale: TypeModuleLocales<(typeof locales)[TypeLocaleBase]>;
176
+ entity: IModuleEntity;
177
+ model: IModuleModel;
178
+ }
179
+
180
+ import 'vona';
181
+ declare module 'vona' {
182
+ export interface IBeanScopeRecord {
183
+ 'training-record': ScopeModuleTrainingRecord;
184
+ }
185
+
186
+ export interface IBeanScopeContainer {
187
+ trainingRecord: ScopeModuleTrainingRecord;
188
+ }
189
+
190
+
191
+
192
+ export interface IBeanScopeLocale {
193
+ 'training-record': (typeof locales)[TypeLocaleBase];
194
+ }
195
+
196
+
197
+ }
198
+ /** scope: end */
@@ -0,0 +1,18 @@
1
+ import type { TypeLocaleBase } from 'vona';
2
+
3
+ import { $makeLocaleMagic } from 'vona';
4
+
5
+ import locale_en_us from '../config/locale/en-us.ts';
6
+ import locale_zh_cn from '../config/locale/zh-cn.ts';
7
+
8
+ export const locales = {
9
+ 'en-us': locale_en_us,
10
+ 'zh-cn': locale_zh_cn,
11
+ };
12
+
13
+ export function $locale<K extends keyof (typeof locales)[TypeLocaleBase]>(
14
+ key: K,
15
+ ...args: any[]
16
+ ): any {
17
+ return $makeLocaleMagic(`training-record::${key}`, ...args);
18
+ }
@@ -0,0 +1,2 @@
1
+ export const __ThisModule__ = 'training-record';
2
+ export { ScopeModuleTrainingRecord as ScopeModule } from './index.ts';
@@ -0,0 +1,12 @@
1
+ import type { IMetaOptionsIndex } from 'vona-module-a-index';
2
+
3
+ import { BeanBase } from 'vona';
4
+ import { Meta } from 'vona-module-a-meta';
5
+ import { $tableColumns } from 'vona-module-a-ormutils';
6
+
7
+ @Meta<IMetaOptionsIndex>({
8
+ indexes: {
9
+ ...$tableColumns('trainingRecord', 'studentId'),
10
+ },
11
+ })
12
+ export class MetaIndex extends BeanBase {}
@@ -0,0 +1,21 @@
1
+ import type { IMetaVersionUpdate, IMetaVersionUpdateOptions } from 'vona-module-a-version';
2
+
3
+ import { BeanBase } from 'vona';
4
+ import { Meta } from 'vona-module-a-meta';
5
+
6
+ @Meta()
7
+ export class MetaVersion extends BeanBase implements IMetaVersionUpdate {
8
+ async update(options: IMetaVersionUpdateOptions) {
9
+ if (options.version === 1) {
10
+ const entityRecord = this.scope.entity.record;
11
+ await this.bean.model.createTable(entityRecord.$table, table => {
12
+ table.comment(entityRecord.$comment.$table);
13
+ table.basicFields();
14
+ table.tableIdentity(entityRecord.studentId).comment(entityRecord.$comment.studentId);
15
+ table.string(entityRecord.name, 50).comment(entityRecord.$comment.name);
16
+ table.integer(entityRecord.score).comment(entityRecord.$comment.score);
17
+ table.string(entityRecord.description, 255).comment(entityRecord.$comment.description);
18
+ });
19
+ }
20
+ }
21
+ }
@@ -0,0 +1,7 @@
1
+ export default {
2
+ Description: 'Description',
3
+ Name: 'Name',
4
+ Operations: 'Operations',
5
+ TrainingRecord: 'Training Record',
6
+ Score: 'Score',
7
+ };
@@ -0,0 +1,7 @@
1
+ export default {
2
+ Description: '描述',
3
+ Name: '名称',
4
+ Operations: '操作',
5
+ TrainingRecord: '培训记录',
6
+ Score: '成绩',
7
+ };
@@ -0,0 +1,48 @@
1
+ import type { TableIdentity } from 'table-identity';
2
+ import type { IDecoratorEntityOptions } from 'vona-module-a-orm';
3
+
4
+ import { $makeMetadata, Api, v } from 'vona-module-a-openapiutils';
5
+ import { Entity, EntityBase } from 'vona-module-a-orm';
6
+ import { ZovaRender } from 'zova-rest-cabloy-basic-admin';
7
+
8
+ import { $locale } from '../.metadata/locales.ts';
9
+
10
+ export interface IEntityOptionsRecord extends IDecoratorEntityOptions {}
11
+
12
+ @Entity<IEntityOptionsRecord>('trainingRecord', {
13
+ openapi: { title: $locale('TrainingRecord') },
14
+ fields: {
15
+ id: $makeMetadata(ZovaRender.order(1, 'core')),
16
+ iid: $makeMetadata(ZovaRender.visible(false)),
17
+ deleted: $makeMetadata(ZovaRender.visible(false)),
18
+ createdAt: $makeMetadata(
19
+ ZovaRender.order(-2, 'max'),
20
+ ZovaRender.field('basic-date:formFieldDate'),
21
+ ZovaRender.cell('basic-date:date'),
22
+ ),
23
+ updatedAt: $makeMetadata(
24
+ ZovaRender.order(-1, 'max'),
25
+ ZovaRender.field('basic-date:formFieldDate'),
26
+ ZovaRender.cell('basic-date:date'),
27
+ ),
28
+ },
29
+ })
30
+ export class EntityRecord extends EntityBase {
31
+ @Api.field(v.required(), ZovaRender.visible(false))
32
+ studentId: TableIdentity;
33
+
34
+ @Api.field(
35
+ v.title($locale('Name')),
36
+ v.required(),
37
+ v.min(2),
38
+ ZovaRender.order(1),
39
+ ZovaRender.cell('basic-table:actionView'),
40
+ )
41
+ name: string;
42
+
43
+ @Api.field(v.title($locale('Score')), v.optional(), ZovaRender.order(2))
44
+ score?: number;
45
+
46
+ @Api.field(v.title($locale('Description')), v.optional(), ZovaRender.order(3))
47
+ description?: string;
48
+ }
@@ -0,0 +1,2 @@
1
+ export * from './.metadata/locales.ts';
2
+ export * from './.metadata/index.ts';
@@ -0,0 +1,10 @@
1
+ import type { IDecoratorModelOptions } from 'vona-module-a-orm';
2
+
3
+ import { BeanModelBase, Model } from 'vona-module-a-orm';
4
+
5
+ import { EntityRecord } from '../entity/record.tsx';
6
+
7
+ export interface IModelOptionsRecord extends IDecoratorModelOptions<EntityRecord> {}
8
+
9
+ @Model<IModelOptionsRecord>({ entity: EntityRecord })
10
+ export class ModelRecord extends BeanModelBase<EntityRecord> {}
@@ -0,0 +1,11 @@
1
+ {
2
+ "extends": "../../tsconfig.base",
3
+ "compilerOptions": {
4
+ "rootDir": "src",
5
+ "declaration": true,
6
+ "declarationMap": true,
7
+ "emitDeclarationOnly": true,
8
+ "outDir": "dist"
9
+ },
10
+ "include": ["src", "src/.metadata/*.ts", "src/**/*.json"]
11
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "extends": "../../tsconfig.base",
3
+ "compilerOptions": {
4
+ "noEmit": true
5
+ },
6
+ "include": ["src", "src/.metadata/*.ts", "src/**/*.json", "test"]
7
+ }