cabloy 5.1.164 → 5.1.165
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/.cabloy-version +1 -1
- package/.claude/scheduled_tasks.lock +1 -0
- package/CHANGELOG.md +7 -0
- package/package.json +1 -1
- package/repo-docs/backend/shared-rbac-architecture.md +22 -0
- package/repo-docs/fullstack/backend-metadata-to-frontend-table-actions.md +36 -1
- package/repo-e2e/specs/cabloy-basic.spec.ts +7 -5
- package/vona/packages-cli/cli/package.json +1 -1
- package/vona/packages-cli/cli-set-api/cli/templates/tools/crudBasic/boilerplate/src/controller/{{resourceName}}.ts_ +7 -7
- package/vona/packages-cli/cli-set-api/cli/templates/tools/crudStart/boilerplate/src/controller/{{resourceName}}.ts_ +20 -7
- package/vona/packages-cli/cli-set-api/package.json +1 -1
- package/vona/pnpm-lock.yaml +91 -11
- package/zova/packages-utils/zova-jsx/package.json +2 -2
- package/zova/packages-zova/zova/package.json +3 -3
- package/zova/packages-zova/zova-core/package.json +1 -1
- package/zova/packages-zova/zova-core/src/types/interface/component.ts +26 -20
- package/zova/pnpm-lock.yaml +6 -6
- package/zova/src/suite-vendor/a-zova/modules/a-zova/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/package.json +2 -2
package/.cabloy-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
5.1.
|
|
1
|
+
5.1.165
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"sessionId":"ca46c3da-f068-490d-8585-52645b0c5e32","pid":48025,"procStart":"Wed Sep 9 23:18:11 2026","acquiredAt":1789174622732}
|
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
|
@@ -133,6 +133,28 @@ For an atomic multi-ID Resource command, have the command DTO validate its reque
|
|
|
133
133
|
|
|
134
134
|
`a-rbac` exposes `this.bean.rbacResourceBulk.entries(...)` for the reusable integrity and authorization sequence. Pass the facade a fresh, ordinary instance-scoped loader (rather than a cache-backed lookup) from the domain transaction. It preserves the requested order, invokes `checkEntries(...)` only after complete normal-scoped loading, and emits localized `a-rbac` scoped errors for invalid ID lists and absent entries.
|
|
135
135
|
|
|
136
|
+
A canonical Resource bulk-delete controller shape is:
|
|
137
|
+
|
|
138
|
+
```typescript
|
|
139
|
+
@Web.post('bulk/delete')
|
|
140
|
+
@Api.body(z.null())
|
|
141
|
+
@Core.transaction()
|
|
142
|
+
@Passport.rbac({ dataScope: true, actionInherit: 'delete' })
|
|
143
|
+
async deleteBulk(
|
|
144
|
+
@Arg.body() command: DtoRecordDeleteBulk,
|
|
145
|
+
@Arg.rbacScopeCurrent() rbacScopeCurrent: IRbacScopeAccess,
|
|
146
|
+
) {
|
|
147
|
+
const entries = await this.bean.rbacResourceBulk.entries(
|
|
148
|
+
command.ids,
|
|
149
|
+
ids => this.scope.model.record.select({ where: rbacScopeCurrent.where({ id: ids }) }),
|
|
150
|
+
rbacScopeCurrent,
|
|
151
|
+
);
|
|
152
|
+
await this.scope.service.record.deleteBulk(entries.map(entry => entry.id));
|
|
153
|
+
}
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
The DTO must require `ids` and declare an operation-appropriate maximum. This controller shape makes `POST <resource>/bulk/delete` compatible with the generic Resource mutation surface while keeping the data-scope preflight and delete in one transaction. A frontend table may hide or disable a selected action as a usability aid, but it must never replace this server-side validation.
|
|
157
|
+
|
|
136
158
|
A representative list shape is:
|
|
137
159
|
|
|
138
160
|
```typescript
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
# Backend Metadata to Frontend Table Actions
|
|
2
2
|
|
|
3
|
-
This page explains one of the most practical fullstack contract chains in Cabloy
|
|
3
|
+
This page explains one of the most practical fullstack contract chains in Cabloy:
|
|
4
4
|
|
|
5
5
|
> backend field and row metadata can drive visible frontend table actions, while frontend action resources and generated contract consumers stay aligned with that backend truth.
|
|
6
6
|
|
|
7
|
+
The contract model is shared by Cabloy Basic and Cabloy Start. The rendering adapter is edition-specific: the examples below use Basic resource names where they illustrate the general mechanism; Start list pages use `start-page`, `start-table`, `start-commands`, and Vuetify.
|
|
8
|
+
|
|
7
9
|
This page sits between the pure direction guides:
|
|
8
10
|
|
|
9
11
|
- [Backend OpenAPI to Frontend SDK](/fullstack/openapi-to-sdk)
|
|
@@ -300,6 +302,39 @@ This is the same contract idea at a different UI level:
|
|
|
300
302
|
- backend or shared page metadata chooses the action resource identity
|
|
301
303
|
- frontend runtime resolves that identity to a visible action implementation
|
|
302
304
|
|
|
305
|
+
### Cabloy Start selected-resource actions
|
|
306
|
+
|
|
307
|
+
A selected-resource action adds a page-owned selection payload to this same contract. A Training Student list can declare the Start render resources directly in its backend DTO metadata:
|
|
308
|
+
|
|
309
|
+
```tsx
|
|
310
|
+
ZovaRender.block('start-page:blockToolbarBulk', {
|
|
311
|
+
actions: [
|
|
312
|
+
ZovaRender.tableActionBulk('start-table:actionCreate'),
|
|
313
|
+
ZovaRender.tableActionBulk('start-table:actionDeleteBulk', {
|
|
314
|
+
requiresSelection: true,
|
|
315
|
+
selectedMaxIds: 100,
|
|
316
|
+
}),
|
|
317
|
+
],
|
|
318
|
+
});
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
The metadata remains declarative. `start-page:blockPage` owns the normalized selected IDs and currently loaded selected-row snapshots; `start-page:blockTable` bridges that state to Vuetify `VDataTableServer` with page-local checkbox selection. Therefore a page change retains earlier selections, while a new resource, fixed query, submitted/reset filter, sort, page-size change, or successful selected mutation clears the relevant selection.
|
|
322
|
+
|
|
323
|
+
`start-page:blockToolbarBulk` adds the Start **Select**/**Done** mode and selected-count status. It supplies runtime `dynamicSelection` and `dynamicDisabled` props to action resources without overwriting authored `disabled` metadata. Selection-required actions are unavailable when the selection is empty, incomplete, exceeds its declared/default limit, or fails the projected frontend permission check for any selected row.
|
|
324
|
+
|
|
325
|
+
`start-table:actionDeleteBulk` confirms the operation and delegates to `start-commands:deleteBulk`. The command uses the existing `rest-resource.model.resource` owner and calls its generated-resource mutation with `{ ids }`; it clears only successfully deleted IDs after the mutation resolves. A cancel or failed request preserves selection. Browser-side eligibility is only a UX projection: the backend controller remains authoritative.
|
|
326
|
+
|
|
327
|
+
For a Resource bulk delete, expose the canonical endpoint as `POST <resource>/bulk/delete` with a request DTO whose `ids` array is required and bounded. In a `@Core.transaction()` controller action, pass the requested IDs and an ordinary active-instance model loader to `this.bean.rbacResourceBulk.entries(...)`, then mutate only the returned entries. This rejects malformed or normalized-duplicate identities, requires complete scoped resolution, checks every entry through the current data scope, and prevents partial deletion. Missing, soft-deleted, or other-instance rows are uniformly absent; do not issue cross-instance probes merely to distinguish them.
|
|
328
|
+
|
|
329
|
+
After adding or changing a Start action resource, regenerate its Zova metadata and run the paired Admin reverse chain from the repository root:
|
|
330
|
+
|
|
331
|
+
```bash
|
|
332
|
+
npm run build:zova:admin
|
|
333
|
+
npm run deps:vona
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
Regenerate generated OpenAPI consumers only after the backend contract output contains the canonical operation; do not hand-edit generated consumers. Build the Web flavor too only when the affected action is consumed by Web.
|
|
337
|
+
|
|
303
338
|
## Step 7A: Detail actions follow the same contract idea inside details blocks
|
|
304
339
|
|
|
305
340
|
The same contract model also appears in resource details tables.
|
|
@@ -545,7 +545,9 @@ test(
|
|
|
545
545
|
name: 'Select all rows on this page',
|
|
546
546
|
exact: true,
|
|
547
547
|
});
|
|
548
|
-
const selectionStatus = page
|
|
548
|
+
const selectionStatus = page
|
|
549
|
+
.getByRole('status')
|
|
550
|
+
.filter({ hasText: /^Selected (?:\d+ items|one item)$/ });
|
|
549
551
|
const select = page.getByRole('button', { name: 'Select', exact: true });
|
|
550
552
|
const done = page.getByRole('button', { name: 'Done', exact: true });
|
|
551
553
|
const create = page.getByRole('button', { name: 'Create', exact: true });
|
|
@@ -597,7 +599,7 @@ test(
|
|
|
597
599
|
|
|
598
600
|
await rowCheckboxFor(visibleFixtureNames[0]).check();
|
|
599
601
|
await expect(rowFor(visibleFixtureNames[0])).toHaveAttribute('aria-selected', 'true');
|
|
600
|
-
await expect(selectionStatus).toHaveText('Selected
|
|
602
|
+
await expect(selectionStatus).toHaveText('Selected one item');
|
|
601
603
|
await expect(allPageCheckbox).toHaveAttribute('aria-checked', 'mixed');
|
|
602
604
|
await expect(allPageCheckbox).toHaveJSProperty('indeterminate', true);
|
|
603
605
|
|
|
@@ -629,7 +631,7 @@ test(
|
|
|
629
631
|
await expect(rowFor(visibleFixtureNames[0])).toHaveCount(1);
|
|
630
632
|
await expect(allPageCheckbox).toBeChecked();
|
|
631
633
|
await allPageCheckbox.uncheck();
|
|
632
|
-
await expect(selectionStatus).toHaveText('Selected
|
|
634
|
+
await expect(selectionStatus).toHaveText('Selected one item');
|
|
633
635
|
|
|
634
636
|
await rowCheckboxFor(visibleFixtureNames[9]).check();
|
|
635
637
|
await expect(selectionStatus).toHaveText('Selected 2 items');
|
|
@@ -639,7 +641,7 @@ test(
|
|
|
639
641
|
await expect(rowFor(visibleFixtureNames[9])).toHaveAttribute('aria-selected', 'false');
|
|
640
642
|
|
|
641
643
|
await rowCheckboxFor(visibleFixtureNames[9]).check();
|
|
642
|
-
await expect(selectionStatus).toHaveText('Selected
|
|
644
|
+
await expect(selectionStatus).toHaveText('Selected one item');
|
|
643
645
|
await page.getByRole('button', { name: 'Reset', exact: true }).click();
|
|
644
646
|
await expect(page.getByLabel('Student Name')).toHaveValue('');
|
|
645
647
|
await expect(selectionStatus).toHaveText('Selected 0 items');
|
|
@@ -648,7 +650,7 @@ test(
|
|
|
648
650
|
await expect(rowFor(visibleFixtureNames[0])).toHaveCount(1);
|
|
649
651
|
|
|
650
652
|
await rowCheckboxFor(visibleFixtureNames[0]).check();
|
|
651
|
-
await expect(selectionStatus).toHaveText('Selected
|
|
653
|
+
await expect(selectionStatus).toHaveText('Selected one item');
|
|
652
654
|
const nameSort = page.getByRole('button', { name: 'Sort by name', exact: true });
|
|
653
655
|
const sortResponse = waitForStudentSelect(page);
|
|
654
656
|
await nameSort.click();
|
|
@@ -53,17 +53,17 @@ export class Controller<%=argv.resourceNameCapitalize%> extends BeanBase {
|
|
|
53
53
|
await this.scope.service.<%=argv.resourceName%>.update(id, <%=argv.resourceName%>);
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
@Web.post('bulk/delete', { summary: $locale('BulkDelete') })
|
|
57
|
-
@Api.body(z.null())
|
|
58
|
-
@Passport.systemAdmin()
|
|
59
|
-
async deleteBulk(@Arg.body() command: Dto<%=argv.resourceNameCapitalize%>DeleteBulk): Promise<void> {
|
|
60
|
-
await this.scope.service.<%=argv.resourceName%>.deleteBulk(command.ids);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
56
|
@Web.delete(':id', { summary: $locale('<%=argv.resourceNameCapitalize%>Delete') })
|
|
64
57
|
@Api.body(z.null())
|
|
65
58
|
@Passport.systemAdmin()
|
|
66
59
|
async delete(@Arg.param('id', v.tableIdentity()) id: TableIdentity): Promise<void> {
|
|
67
60
|
await this.scope.service.<%=argv.resourceName%>.delete(id);
|
|
68
61
|
}
|
|
62
|
+
|
|
63
|
+
@Web.post('bulk/delete', { summary: $locale('BulkDelete') })
|
|
64
|
+
@Api.body(z.null())
|
|
65
|
+
@Passport.systemAdmin()
|
|
66
|
+
async deleteBulk(@Arg.body() command: Dto<%=argv.resourceNameCapitalize%>DeleteBulk): Promise<void> {
|
|
67
|
+
await this.scope.service.<%=argv.resourceName%>.deleteBulk(command.ids);
|
|
68
|
+
}
|
|
69
69
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { TableIdentity } from 'table-identity';
|
|
2
2
|
import type { IQueryParams } from 'vona-module-a-orm';
|
|
3
|
+
import type { IRbacScopeAccess } from 'vona-module-a-rbac';
|
|
3
4
|
import type { IDecoratorControllerOptions } from 'vona-module-a-web';
|
|
4
5
|
|
|
5
6
|
import { BeanBase } from 'vona';
|
|
@@ -53,17 +54,29 @@ export class Controller<%=argv.resourceNameCapitalize%> extends BeanBase {
|
|
|
53
54
|
await this.scope.service.<%=argv.resourceName%>.update(id, <%=argv.resourceName%>);
|
|
54
55
|
}
|
|
55
56
|
|
|
56
|
-
@Web.post('bulk/delete', { summary: $locale('BulkDelete') })
|
|
57
|
-
@Api.body(z.null())
|
|
58
|
-
@Passport.rbac()
|
|
59
|
-
async deleteBulk(@Arg.body() command: Dto<%=argv.resourceNameCapitalize%>DeleteBulk): Promise<void> {
|
|
60
|
-
await this.scope.service.<%=argv.resourceName%>.deleteBulk(command.ids);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
57
|
@Web.delete(':id', { summary: $locale('<%=argv.resourceNameCapitalize%>Delete') })
|
|
64
58
|
@Api.body(z.null())
|
|
65
59
|
@Passport.rbac()
|
|
66
60
|
async delete(@Arg.param('id', v.tableIdentity()) id: TableIdentity): Promise<void> {
|
|
67
61
|
await this.scope.service.<%=argv.resourceName%>.delete(id);
|
|
68
62
|
}
|
|
63
|
+
|
|
64
|
+
@Web.post('bulk/delete', { summary: $locale('BulkDelete') })
|
|
65
|
+
@Api.body(z.null())
|
|
66
|
+
@Passport.rbac({ actionInherit: 'delete' })
|
|
67
|
+
async deleteBulk(
|
|
68
|
+
@Arg.body() command: Dto<%=argv.resourceNameCapitalize%>DeleteBulk,
|
|
69
|
+
@Arg.rbacScopeCurrent() rbacScopeCurrent: IRbacScopeAccess,
|
|
70
|
+
): Promise<void> {
|
|
71
|
+
const entries = await this.bean.rbacResourceBulk.entries(
|
|
72
|
+
command.ids,
|
|
73
|
+
async ids => {
|
|
74
|
+
return await this.scope.model.<%=argv.resourceName%>.select({
|
|
75
|
+
where: rbacScopeCurrent.where({ id: ids }),
|
|
76
|
+
});
|
|
77
|
+
},
|
|
78
|
+
rbacScopeCurrent,
|
|
79
|
+
);
|
|
80
|
+
await this.scope.service.<%=argv.resourceName%>.deleteBulk(entries.map(entry => entry.id));
|
|
81
|
+
}
|
|
69
82
|
}
|
package/vona/pnpm-lock.yaml
CHANGED
|
@@ -564,8 +564,8 @@ importers:
|
|
|
564
564
|
specifier: npm:@cabloy/zod@4.3.8
|
|
565
565
|
version: '@cabloy/zod@4.3.8'
|
|
566
566
|
zova:
|
|
567
|
-
specifier: ^5.1.
|
|
568
|
-
version: 5.1.
|
|
567
|
+
specifier: ^5.1.157
|
|
568
|
+
version: 5.1.157(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
|
|
569
569
|
zova-jsx:
|
|
570
570
|
specifier: ^1.1.88
|
|
571
571
|
version: 1.1.88(typescript@5.9.3)
|
|
@@ -579,8 +579,8 @@ importers:
|
|
|
579
579
|
specifier: ^5.1.26
|
|
580
580
|
version: 5.1.26
|
|
581
581
|
zova-module-a-command:
|
|
582
|
-
specifier: ^5.1.
|
|
583
|
-
version: 5.1.
|
|
582
|
+
specifier: ^5.1.35
|
|
583
|
+
version: 5.1.35
|
|
584
584
|
zova-module-a-form:
|
|
585
585
|
specifier: ^5.1.51
|
|
586
586
|
version: 5.1.51(vue@3.5.39(typescript@5.9.3))
|
|
@@ -594,8 +594,8 @@ importers:
|
|
|
594
594
|
specifier: ^5.1.36
|
|
595
595
|
version: 5.1.36(vue@3.5.39(typescript@5.9.3))
|
|
596
596
|
zova-module-a-openapi:
|
|
597
|
-
specifier: ^5.1.
|
|
598
|
-
version: 5.1.
|
|
597
|
+
specifier: ^5.1.53
|
|
598
|
+
version: 5.1.53
|
|
599
599
|
zova-module-a-pay:
|
|
600
600
|
specifier: ^5.0.7
|
|
601
601
|
version: 5.0.7
|
|
@@ -612,14 +612,14 @@ importers:
|
|
|
612
612
|
specifier: ^5.1.35
|
|
613
613
|
version: 5.1.35
|
|
614
614
|
zova-module-a-table:
|
|
615
|
-
specifier: ^5.1.
|
|
616
|
-
version: 5.1.
|
|
615
|
+
specifier: ^5.1.40
|
|
616
|
+
version: 5.1.40(vue@3.5.39(typescript@5.9.3))
|
|
617
617
|
zova-module-pay-mock:
|
|
618
618
|
specifier: ^5.0.5
|
|
619
619
|
version: 5.0.5
|
|
620
620
|
zova-module-rest-resource:
|
|
621
|
-
specifier: ^5.1.
|
|
622
|
-
version: 5.1.
|
|
621
|
+
specifier: ^5.1.51
|
|
622
|
+
version: 5.1.51
|
|
623
623
|
|
|
624
624
|
.zova-rest/cabloy-basic-web:
|
|
625
625
|
dependencies:
|
|
@@ -1619,7 +1619,7 @@ importers:
|
|
|
1619
1619
|
specifier: ^5.0.3
|
|
1620
1620
|
version: link:modules/a-markdown
|
|
1621
1621
|
vona-module-a-rbac:
|
|
1622
|
-
specifier: ^5.0.
|
|
1622
|
+
specifier: ^5.0.6
|
|
1623
1623
|
version: link:modules/a-rbac
|
|
1624
1624
|
vona-module-a-socket:
|
|
1625
1625
|
specifier: workspace:^
|
|
@@ -8983,6 +8983,9 @@ packages:
|
|
|
8983
8983
|
zova-module-a-command@5.1.34:
|
|
8984
8984
|
resolution: {integrity: sha512-kVXLKvLdQB7XwvnEuYsGClfFqf6z/1uw7QNRNYzxiyij1cvKj7f/j7u5Hg4YfN91bNYwGEJGxPcXcFoUY1DKqg==}
|
|
8985
8985
|
|
|
8986
|
+
zova-module-a-command@5.1.35:
|
|
8987
|
+
resolution: {integrity: sha512-Ckxfigexk8HEput1lBRpxwEAU2i9ocjaeilQoulEJ2QCRXrDJb1b+hvu95teR+omUdFNT4qGtCI0/oLm+jNVzg==}
|
|
8988
|
+
|
|
8986
8989
|
zova-module-a-fetch@5.1.25:
|
|
8987
8990
|
resolution: {integrity: sha512-kbMB/jIynN0dhivEZLLaY+ic9mU0rZJBeyjXwzAiWuOS330YsxipasxBZhACJD8s29RmLC9EQajI+vVLoBEveQ==}
|
|
8988
8991
|
|
|
@@ -9007,6 +9010,9 @@ packages:
|
|
|
9007
9010
|
zova-module-a-openapi@5.1.52:
|
|
9008
9011
|
resolution: {integrity: sha512-pUbyEI2tiJ2tEih/qFvfYYR/yqnWZnK0QqyCNfgkD2Nvn4EY+iyIHISLZhVtWDJbYMXcqfXlxvb8Ltvm+GD/PA==}
|
|
9009
9012
|
|
|
9013
|
+
zova-module-a-openapi@5.1.53:
|
|
9014
|
+
resolution: {integrity: sha512-vNCIbQGA9WeeC1BXsJPzdpuJANSrCZEwZq2uSSuugyw/CJ7JkJwGFvwYhEeU7YPcWd2+I0J7zNNbgOHlhnO0Xw==}
|
|
9015
|
+
|
|
9010
9016
|
zova-module-a-pay@5.0.7:
|
|
9011
9017
|
resolution: {integrity: sha512-LHIArspqUeT3aQ+b8AvxrkYOV9nFnfjTWoQ/zQNliQhy1EllooVFB+AhRY58rhmh4ru/xbem+4Wjuptl9FdU+Q==}
|
|
9012
9018
|
|
|
@@ -9034,6 +9040,9 @@ packages:
|
|
|
9034
9040
|
zova-module-a-table@5.1.39:
|
|
9035
9041
|
resolution: {integrity: sha512-MhYYlOIFJ32m61xtDCnIHfWf/g17g2HvEL7zRd5k1As7+or/9FPe9DbmFpHvjk7vp/Yba6oTqV0D5GbueJt/OA==}
|
|
9036
9042
|
|
|
9043
|
+
zova-module-a-table@5.1.40:
|
|
9044
|
+
resolution: {integrity: sha512-R/vVUMVYt6lEno45fMfwyy+luQz+l0e2er9IfvorSlZ55kgnZOZj5lXGUCiYYBPgPwxJz3p42hHr7HZZpVu9sQ==}
|
|
9045
|
+
|
|
9037
9046
|
zova-module-a-zod@5.1.37:
|
|
9038
9047
|
resolution: {integrity: sha512-rXHN9rKbum9w3gDSnC/pIusG2d2FGJOcIauf8jrbT96f+Olk4Q3iV3t2V92mxiLCh9kMvBJPfcOgJFW7pRB5Fw==}
|
|
9039
9048
|
|
|
@@ -9046,12 +9055,21 @@ packages:
|
|
|
9046
9055
|
zova-module-rest-resource@5.1.50:
|
|
9047
9056
|
resolution: {integrity: sha512-BZp4W9j4DhuQt9mk/jlquRFemzTBHe8saNtV/EUT6smAVj+7Li8AYkeaDUofKbssouqbOxHoFb0Qrlmd+1kZOw==}
|
|
9048
9057
|
|
|
9058
|
+
zova-module-rest-resource@5.1.51:
|
|
9059
|
+
resolution: {integrity: sha512-rZy8oaQvtcXmqepkE+OWsXt0MUbBuL+NdY099FuG1eYrtl/nB5WMyvmtFVF5d5NRaz6q+otysFuyo8Q93aHfwA==}
|
|
9060
|
+
|
|
9049
9061
|
zova-suite-a-zova@5.1.155:
|
|
9050
9062
|
resolution: {integrity: sha512-w4+mlwOJ3DF+Bl9N1hkZBbgNW0UouP3/Xaw8PtiNEpmmr/ScWj+/+l85RTr/q9F+Qw/hjDCWTLwy4GBukTiBag==}
|
|
9051
9063
|
|
|
9064
|
+
zova-suite-a-zova@5.1.156:
|
|
9065
|
+
resolution: {integrity: sha512-vL1y+uJz7jtE3VrnNWH3gEGcAz3dupQzk32+eaMa9RoXpUS/Q8StoM1oJKxrDLZ56NbgL6WXMpM2Rqzfoy2Vvw==}
|
|
9066
|
+
|
|
9052
9067
|
zova@5.1.156:
|
|
9053
9068
|
resolution: {integrity: sha512-LawJuQhiR+M+BdFkLYEz1wLz0zQa2IuZFAR0Vtq/dcNMX1Jus9g2iem/guNbavgeNP8aXRa+P4vCnaFynnWC/w==}
|
|
9054
9069
|
|
|
9070
|
+
zova@5.1.157:
|
|
9071
|
+
resolution: {integrity: sha512-MjRcmPJKeRywh6ay1CLPx8yiNJZ3AH1tl6hlUaWT2lxQ0CpcrpQD2MC9tXuqnY0yimUsJwmurhoZFezJRj4xvw==}
|
|
9072
|
+
|
|
9055
9073
|
zwitch@1.0.5:
|
|
9056
9074
|
resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==}
|
|
9057
9075
|
|
|
@@ -15383,6 +15401,8 @@ snapshots:
|
|
|
15383
15401
|
|
|
15384
15402
|
zova-module-a-command@5.1.34: {}
|
|
15385
15403
|
|
|
15404
|
+
zova-module-a-command@5.1.35: {}
|
|
15405
|
+
|
|
15386
15406
|
zova-module-a-fetch@5.1.25:
|
|
15387
15407
|
dependencies:
|
|
15388
15408
|
axios: 1.18.1
|
|
@@ -15426,6 +15446,12 @@ snapshots:
|
|
|
15426
15446
|
openapi3-ts: 4.6.0
|
|
15427
15447
|
typestyle: 2.4.0
|
|
15428
15448
|
|
|
15449
|
+
zova-module-a-openapi@5.1.53:
|
|
15450
|
+
dependencies:
|
|
15451
|
+
'@cabloy/json-schema-to-zod': 2.6.5
|
|
15452
|
+
openapi3-ts: 4.6.0
|
|
15453
|
+
typestyle: 2.4.0
|
|
15454
|
+
|
|
15429
15455
|
zova-module-a-pay@5.0.7: {}
|
|
15430
15456
|
|
|
15431
15457
|
zova-module-a-router@5.1.34: {}
|
|
@@ -15460,6 +15486,13 @@ snapshots:
|
|
|
15460
15486
|
transitivePeerDependencies:
|
|
15461
15487
|
- vue
|
|
15462
15488
|
|
|
15489
|
+
zova-module-a-table@5.1.40(vue@3.5.39(typescript@5.9.3)):
|
|
15490
|
+
dependencies:
|
|
15491
|
+
'@tanstack/table-core': 8.21.3
|
|
15492
|
+
'@tanstack/vue-table': 8.21.3(vue@3.5.39(typescript@5.9.3))
|
|
15493
|
+
transitivePeerDependencies:
|
|
15494
|
+
- vue
|
|
15495
|
+
|
|
15463
15496
|
zova-module-a-zod@5.1.37:
|
|
15464
15497
|
dependencies:
|
|
15465
15498
|
'@cabloy/zod-errors-custom': link:packages-utils/zod-errors-custom
|
|
@@ -15487,6 +15520,8 @@ snapshots:
|
|
|
15487
15520
|
|
|
15488
15521
|
zova-module-rest-resource@5.1.50: {}
|
|
15489
15522
|
|
|
15523
|
+
zova-module-rest-resource@5.1.51: {}
|
|
15524
|
+
|
|
15490
15525
|
zova-suite-a-zova@5.1.155(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3)):
|
|
15491
15526
|
dependencies:
|
|
15492
15527
|
zova-module-a-api: 5.1.22
|
|
@@ -15521,6 +15556,40 @@ snapshots:
|
|
|
15521
15556
|
- typescript
|
|
15522
15557
|
- vue
|
|
15523
15558
|
|
|
15559
|
+
zova-suite-a-zova@5.1.156(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3)):
|
|
15560
|
+
dependencies:
|
|
15561
|
+
zova-module-a-api: 5.1.22
|
|
15562
|
+
zova-module-a-app: 5.1.26
|
|
15563
|
+
zova-module-a-bean: 5.1.33
|
|
15564
|
+
zova-module-a-behavior: 5.1.26
|
|
15565
|
+
zova-module-a-behaviors: 5.1.22
|
|
15566
|
+
zova-module-a-boundary: 5.1.22
|
|
15567
|
+
zova-module-a-command: 5.1.35
|
|
15568
|
+
zova-module-a-fetch: 5.1.25
|
|
15569
|
+
zova-module-a-form: 5.1.51(vue@3.5.39(typescript@5.9.3))
|
|
15570
|
+
zova-module-a-icon: 5.1.27
|
|
15571
|
+
zova-module-a-interceptor: 5.1.31
|
|
15572
|
+
zova-module-a-logger: 5.1.28
|
|
15573
|
+
zova-module-a-meta: 5.1.22
|
|
15574
|
+
zova-module-a-model: 5.1.36(vue@3.5.39(typescript@5.9.3))
|
|
15575
|
+
zova-module-a-openapi: 5.1.53
|
|
15576
|
+
zova-module-a-router: 5.1.34
|
|
15577
|
+
zova-module-a-routerstack: 5.1.27
|
|
15578
|
+
zova-module-a-routertabs: 5.1.34
|
|
15579
|
+
zova-module-a-ssr: 5.1.38
|
|
15580
|
+
zova-module-a-ssrhmr: 5.1.23
|
|
15581
|
+
zova-module-a-ssrserver: 5.1.26
|
|
15582
|
+
zova-module-a-style: 5.1.35
|
|
15583
|
+
zova-module-a-table: 5.1.40(vue@3.5.39(typescript@5.9.3))
|
|
15584
|
+
zova-module-a-zod: 5.1.37
|
|
15585
|
+
zova-module-a-zova: 5.1.103(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
|
|
15586
|
+
transitivePeerDependencies:
|
|
15587
|
+
- '@vue/composition-api'
|
|
15588
|
+
- debug
|
|
15589
|
+
- supports-color
|
|
15590
|
+
- typescript
|
|
15591
|
+
- vue
|
|
15592
|
+
|
|
15524
15593
|
zova@5.1.156(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3)):
|
|
15525
15594
|
dependencies:
|
|
15526
15595
|
zova-core: 5.1.88(patch_hash=144450bd7a567a6067e5857c0cf4c780981b7e90bc48745c09e1696a9b6f1b97)(typescript@5.9.3)
|
|
@@ -15532,6 +15601,17 @@ snapshots:
|
|
|
15532
15601
|
- typescript
|
|
15533
15602
|
- vue
|
|
15534
15603
|
|
|
15604
|
+
zova@5.1.157(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3)):
|
|
15605
|
+
dependencies:
|
|
15606
|
+
zova-core: 5.1.88(patch_hash=144450bd7a567a6067e5857c0cf4c780981b7e90bc48745c09e1696a9b6f1b97)(typescript@5.9.3)
|
|
15607
|
+
zova-suite-a-zova: 5.1.156(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
|
|
15608
|
+
transitivePeerDependencies:
|
|
15609
|
+
- '@vue/composition-api'
|
|
15610
|
+
- debug
|
|
15611
|
+
- supports-color
|
|
15612
|
+
- typescript
|
|
15613
|
+
- vue
|
|
15614
|
+
|
|
15535
15615
|
zwitch@1.0.5: {}
|
|
15536
15616
|
|
|
15537
15617
|
zwitch@2.0.4: {}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zova-jsx",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.89",
|
|
4
4
|
"gitHead": "2c5c19284bab738e492856189acb6fad74b8a7b7",
|
|
5
5
|
"description": "Zova JSX",
|
|
6
6
|
"keywords": [
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"@cabloy/word-utils": "^2.1.14",
|
|
51
51
|
"typestyle": "^2.4.0",
|
|
52
52
|
"vue": "^3.5.38",
|
|
53
|
-
"zova-core": "^5.1.
|
|
53
|
+
"zova-core": "^5.1.89"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
56
|
"clean-package": "^2.2.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zova",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.158",
|
|
4
4
|
"gitHead": "2c5c19284bab738e492856189acb6fad74b8a7b7",
|
|
5
5
|
"description": "A vue3 framework with ioc",
|
|
6
6
|
"keywords": [
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"postpack": "clean-package restore"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"zova-core": "^5.1.
|
|
49
|
-
"zova-suite-a-zova": "^5.1.
|
|
48
|
+
"zova-core": "^5.1.89",
|
|
49
|
+
"zova-suite-a-zova": "^5.1.157"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"clean-package": "^2.2.0",
|
|
@@ -14,28 +14,34 @@ declare module 'vue' {
|
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
export interface IComponentIntrinsicAttributes {
|
|
17
|
-
class?: unknown;
|
|
18
|
-
style?: unknown;
|
|
17
|
+
'class'?: unknown;
|
|
18
|
+
'style'?: unknown;
|
|
19
19
|
// need not provide onClick/onXXX
|
|
20
20
|
// onClick?: (e: MouseEvent) => void;
|
|
21
|
-
nativeOnClick?: (e: MouseEvent) => void;
|
|
22
|
-
nativeOnDblclick?: (e: MouseEvent) => void;
|
|
23
|
-
nativeOnMouseenter?: (e: MouseEvent) => void;
|
|
24
|
-
nativeOnMouseleave?: (e: MouseEvent) => void;
|
|
25
|
-
nativeOnMouseover?: (e: MouseEvent) => void;
|
|
26
|
-
nativeOnMouseout?: (e: MouseEvent) => void;
|
|
27
|
-
nativeOnMousedown?: (e: MouseEvent) => void;
|
|
28
|
-
nativeOnMouseup?: (e: MouseEvent) => void;
|
|
29
|
-
nativeOnKeydown?: (e: KeyboardEvent) => void;
|
|
30
|
-
nativeOnKeyup?: (e: KeyboardEvent) => void;
|
|
31
|
-
nativeOnFocus?: (e: FocusEvent) => void;
|
|
32
|
-
nativeOnBlur?: (e: FocusEvent) => void;
|
|
33
|
-
nativeOnChange?: (e: Event) => void;
|
|
34
|
-
nativeOnInput?: (e: Event) => void;
|
|
35
|
-
nativeOnSubmit?: (e: Event) => void;
|
|
36
|
-
nativeOnScroll?: (e: Event) => void;
|
|
37
|
-
nativeOnWheel?: (e: WheelEvent) => void;
|
|
38
|
-
nativeOnContextmenu?: (e: MouseEvent) => void;
|
|
21
|
+
'nativeOnClick'?: (e: MouseEvent) => void;
|
|
22
|
+
'nativeOnDblclick'?: (e: MouseEvent) => void;
|
|
23
|
+
'nativeOnMouseenter'?: (e: MouseEvent) => void;
|
|
24
|
+
'nativeOnMouseleave'?: (e: MouseEvent) => void;
|
|
25
|
+
'nativeOnMouseover'?: (e: MouseEvent) => void;
|
|
26
|
+
'nativeOnMouseout'?: (e: MouseEvent) => void;
|
|
27
|
+
'nativeOnMousedown'?: (e: MouseEvent) => void;
|
|
28
|
+
'nativeOnMouseup'?: (e: MouseEvent) => void;
|
|
29
|
+
'nativeOnKeydown'?: (e: KeyboardEvent) => void;
|
|
30
|
+
'nativeOnKeyup'?: (e: KeyboardEvent) => void;
|
|
31
|
+
'nativeOnFocus'?: (e: FocusEvent) => void;
|
|
32
|
+
'nativeOnBlur'?: (e: FocusEvent) => void;
|
|
33
|
+
'nativeOnChange'?: (e: Event) => void;
|
|
34
|
+
'nativeOnInput'?: (e: Event) => void;
|
|
35
|
+
'nativeOnSubmit'?: (e: Event) => void;
|
|
36
|
+
'nativeOnScroll'?: (e: Event) => void;
|
|
37
|
+
'nativeOnWheel'?: (e: WheelEvent) => void;
|
|
38
|
+
'nativeOnContextmenu'?: (e: MouseEvent) => void;
|
|
39
|
+
'role'?: string;
|
|
40
|
+
'title'?: string;
|
|
41
|
+
'aria-atomic'?: boolean | 'true' | 'false';
|
|
42
|
+
'aria-describedby'?: string;
|
|
43
|
+
'aria-label'?: string;
|
|
44
|
+
'aria-live'?: 'off' | 'assertive' | 'polite';
|
|
39
45
|
}
|
|
40
46
|
|
|
41
47
|
declare module 'vue/jsx-runtime' {
|
package/zova/pnpm-lock.yaml
CHANGED
|
@@ -449,7 +449,7 @@ importers:
|
|
|
449
449
|
specifier: ^7.6.2
|
|
450
450
|
version: 7.8.5
|
|
451
451
|
zova-cli-set-front:
|
|
452
|
-
specifier: ^1.2.
|
|
452
|
+
specifier: ^1.2.105
|
|
453
453
|
version: link:../cli-set-front
|
|
454
454
|
devDependencies:
|
|
455
455
|
clean-package:
|
|
@@ -870,7 +870,7 @@ importers:
|
|
|
870
870
|
specifier: ^5.1.88
|
|
871
871
|
version: link:../zova-core
|
|
872
872
|
zova-suite-a-zova:
|
|
873
|
-
specifier: ^5.1.
|
|
873
|
+
specifier: ^5.1.156
|
|
874
874
|
version: link:../../src/suite-vendor/a-zova
|
|
875
875
|
devDependencies:
|
|
876
876
|
clean-package:
|
|
@@ -977,7 +977,7 @@ importers:
|
|
|
977
977
|
specifier: ^5.0.1
|
|
978
978
|
version: link:modules/a-rbac
|
|
979
979
|
zova-module-rest-resource:
|
|
980
|
-
specifier: ^5.1.
|
|
980
|
+
specifier: ^5.1.51
|
|
981
981
|
version: link:modules/rest-resource
|
|
982
982
|
|
|
983
983
|
src/suite-vendor/a-cabloy/modules/a-rbac:
|
|
@@ -1070,7 +1070,7 @@ importers:
|
|
|
1070
1070
|
specifier: ^5.1.22
|
|
1071
1071
|
version: link:modules/a-boundary
|
|
1072
1072
|
zova-module-a-command:
|
|
1073
|
-
specifier: ^5.1.
|
|
1073
|
+
specifier: ^5.1.35
|
|
1074
1074
|
version: link:modules/a-command
|
|
1075
1075
|
zova-module-a-fetch:
|
|
1076
1076
|
specifier: ^5.1.25
|
|
@@ -1094,7 +1094,7 @@ importers:
|
|
|
1094
1094
|
specifier: ^5.1.36
|
|
1095
1095
|
version: link:modules/a-model
|
|
1096
1096
|
zova-module-a-openapi:
|
|
1097
|
-
specifier: ^5.1.
|
|
1097
|
+
specifier: ^5.1.53
|
|
1098
1098
|
version: link:modules/a-openapi
|
|
1099
1099
|
zova-module-a-router:
|
|
1100
1100
|
specifier: ^5.1.34
|
|
@@ -1118,7 +1118,7 @@ importers:
|
|
|
1118
1118
|
specifier: ^5.1.35
|
|
1119
1119
|
version: link:modules/a-style
|
|
1120
1120
|
zova-module-a-table:
|
|
1121
|
-
specifier: ^5.1.
|
|
1121
|
+
specifier: ^5.1.40
|
|
1122
1122
|
version: link:modules/a-table
|
|
1123
1123
|
zova-module-a-zod:
|
|
1124
1124
|
specifier: ^5.1.37
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zova-module-a-zova",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.104",
|
|
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.89"
|
|
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.
|
|
3
|
+
"version": "5.1.157",
|
|
4
4
|
"gitHead": "2c5c19284bab738e492856189acb6fad74b8a7b7",
|
|
5
5
|
"description": "zova",
|
|
6
6
|
"license": "MIT",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"zova-module-a-style": "^5.1.35",
|
|
33
33
|
"zova-module-a-table": "^5.1.40",
|
|
34
34
|
"zova-module-a-zod": "^5.1.37",
|
|
35
|
-
"zova-module-a-zova": "^5.1.
|
|
35
|
+
"zova-module-a-zova": "^5.1.104"
|
|
36
36
|
},
|
|
37
37
|
"title": "a-zova"
|
|
38
38
|
}
|