cabloy 5.1.207 → 5.1.209
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/CHANGELOG.md +13 -0
- package/README.md +1 -0
- package/package.json +1 -1
- package/repo-agent-governance/managed-assets.json +9 -9
- package/repo-agent-governance/policies/repository.md +1 -1
- package/repo-agent-governance/skills/cabloy-workflow/SKILL.md +4 -2
- package/repo-agent-governance/skills/cabloy-workflow/evals/evals.json +13 -1
- package/repo-docs/backend/unit-testing.md +1 -1
- package/repo-docs/frontend/form-guide.md +17 -1
- package/repo-docs/frontend/model-architecture.md +4 -0
- package/repo-docs/frontend/model-state-guide.md +23 -2
- package/repo-docs/frontend/resource-entry-page-deep-dive.md +119 -0
- package/repo-docs/frontend/scripts.md +3 -3
- package/repo-docs/frontend/zova-form-under-the-hood.md +5 -0
- package/repo-docs/fullstack/parallel-worktree-environment.md +3 -3
- package/repo-docs/fullstack/quickstart.md +11 -1
- package/repo-docs/reference/repo-scripts.md +19 -5
- package/repo-e2e/specs/cabloy-basic.spec.ts +1577 -0
- package/vona/packages-vona/vona/package.json +1 -1
- package/vona/src/suite/a-home/modules/home-user/src/controller/passport.ts +1 -0
- package/vona/src/suite/a-home/modules/home-user/src/dto/passport.ts +4 -0
- package/vona/src/suite/a-home/modules/home-user/test/passport.test.ts +172 -0
- package/vona/src/suite/a-home/modules/home-user/test/role.test.ts +1 -0
- package/vona/src/suite-vendor/a-cabloy/modules/a-rbac/package.json +1 -1
- package/vona/src/suite-vendor/a-cabloy/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-openapi/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-openapi/src/types/rest.ts +1 -0
- package/vona/src/suite-vendor/a-vona/modules/a-permission/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/package.json +1 -1
- package/zova/packages-cli/cli/package.json +2 -2
- package/zova/packages-cli/cli-set-front/cli/templates/rest/render.ts +2 -0
- package/zova/packages-cli/cli-set-front/cli/templates/rest/rest.ts +9 -0
- package/zova/packages-cli/cli-set-front/package.json +1 -1
- package/zova/packages-zova/zova/package.json +2 -2
- package/zova/src/suite/a-home/modules/home-api/src/.metadata/index.ts +17 -17
- package/zova/src/suite/a-home/modules/home-api/src/api/openapi/schemas.ts +68 -52
- package/zova/src/suite/a-home/modules/home-api/src/api/openapi/types.ts +524 -343
- package/zova/src/suite/a-home/modules/home-passport/src/model/passport.ts +45 -11
- package/zova/src/suite/a-home/modules/home-passport/test/lib/persistenceIdentity.test.ts +229 -0
- package/zova/src/suite/cabloy-basic/modules/basic-pageentry/package.json +9 -1
- package/zova/src/suite/cabloy-basic/modules/basic-pageentry/src/.metadata/index.ts +81 -5
- package/zova/src/suite/cabloy-basic/modules/basic-pageentry/src/bean/bean.draftCoordinator.ts +158 -0
- package/zova/src/suite/cabloy-basic/modules/basic-pageentry/src/component/blockForm/controller.tsx +11 -3
- package/zova/src/suite/cabloy-basic/modules/basic-pageentry/src/component/blockPageEntry/controller.tsx +438 -8
- package/zova/src/suite/cabloy-basic/modules/basic-pageentry/src/config/config.ts +11 -0
- package/zova/src/suite/cabloy-basic/modules/basic-pageentry/src/config/locale/en-us.ts +9 -0
- package/zova/src/suite/cabloy-basic/modules/basic-pageentry/src/config/locale/zh-cn.ts +9 -0
- package/zova/src/suite/cabloy-basic/modules/basic-pageentry/src/lib/draftSchema.ts +649 -0
- package/zova/src/suite/cabloy-basic/modules/basic-pageentry/src/model/draft.ts +59 -0
- package/zova/src/suite/cabloy-basic/modules/basic-pageentry/src/monkey.ts +11 -0
- package/zova/src/suite/cabloy-basic/modules/basic-pageentry/src/types/draft.ts +49 -0
- package/zova/src/suite/cabloy-basic/modules/basic-pageentry/test/lib/draftDate.test.ts +262 -0
- package/zova/src/suite/cabloy-basic/modules/basic-pageentry/test/lib/draftLifecycle.test.ts +1073 -0
- package/zova/src/suite/cabloy-basic/modules/basic-pageentry/test/lib/draftLoader.mjs +13 -0
- package/zova/src/suite/cabloy-basic/modules/basic-pageentry/test/lib/draftModel.test.ts +572 -0
- package/zova/src/suite/cabloy-basic/modules/basic-pageentry/test/lib/draftSchema.test.ts +427 -0
- package/zova/src/suite/cabloy-basic/modules/basic-pageentry/test/lib/draftSchemaSafety.test.ts +200 -0
- package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/package.json +1 -1
- package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/src/page/entry/controller.tsx +6 -1
- package/zova/src/suite-vendor/a-cabloy/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-form/package.json +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-form/src/component/form/controller.tsx +86 -1
- package/zova/src/suite-vendor/a-zova/modules/a-form/src/component/formField/controller.tsx +88 -13
- package/zova/src/suite-vendor/a-zova/modules/a-form/src/lib/schemaRefresh.ts +751 -0
- package/zova/src/suite-vendor/a-zova/modules/a-form/test/lib/schemaRefresh.test.ts +637 -0
- package/zova/src/suite-vendor/a-zova/modules/a-form/test/lib/schemaRefreshLifecycle.test.ts +994 -0
- 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/bean/bean.model/bean.model.persister.ts +331 -87
- package/zova/src/suite-vendor/a-zova/modules/a-model/src/bean/bean.model/bean.model.query.ts +11 -6
- package/zova/src/suite-vendor/a-zova/modules/a-model/src/bean/bean.model/bean.model.useQuery.ts +3 -1
- package/zova/src/suite-vendor/a-zova/modules/a-model/src/bean/bean.model/bean.model.useState.ts +17 -1
- package/zova/src/suite-vendor/a-zova/modules/a-model/src/lib/index.ts +1 -0
- package/zova/src/suite-vendor/a-zova/modules/a-model/src/lib/modelPersistence.ts +204 -0
- package/zova/src/suite-vendor/a-zova/modules/a-model/src/lib/persistenceQueue.ts +50 -0
- package/zova/src/suite-vendor/a-zova/modules/a-model/src/monkey.ts +5 -0
- package/zova/src/suite-vendor/a-zova/modules/a-model/src/service/storage.ts +47 -2
- package/zova/src/suite-vendor/a-zova/modules/a-model/src/types/query.ts +3 -0
- package/zova/src/suite-vendor/a-zova/modules/a-model/test/lib/modelLoader.mjs +34 -0
- package/zova/src/suite-vendor/a-zova/modules/a-model/test/lib/modelPersistence.test.ts +727 -0
- package/zova/src/suite-vendor/a-zova/modules/a-model/test/lib/persistenceQueue.test.ts +137 -0
- package/zova/src/suite-vendor/a-zova/modules/a-model/test/lib/persistenceTransition.test.ts +129 -0
- 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 +7 -5
- package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/rest.ts +2 -0
- package/zova/src/suite-vendor/a-zova/modules/a-router/package.json +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-router/src/bean/bean.router.ts +14 -0
- package/zova/src/suite-vendor/a-zova/modules/a-router/src/lib/routeDiscard.ts +26 -0
- package/zova/src/suite-vendor/a-zova/modules/a-router/src/service/routerGuards.ts +6 -3
- package/zova/src/suite-vendor/a-zova/modules/a-router/src/types/index.ts +1 -0
- package/zova/src/suite-vendor/a-zova/modules/a-router/src/types/routeDiscard.ts +24 -0
- package/zova/src/suite-vendor/a-zova/modules/a-router/test/lib/routeDiscard.test.ts +105 -0
- package/zova/src/suite-vendor/a-zova/modules/a-routertabs/package.json +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-routertabs/src/model/tabs.ts +202 -30
- package/zova/src/suite-vendor/a-zova/modules/a-routertabs/test/lib/tabs.test.ts +524 -0
- package/zova/src/suite-vendor/a-zova/modules/a-routertabs/test/lib/tabsLoader.mjs +35 -0
- package/zova/src/suite-vendor/a-zova/package.json +6 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vona",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.107",
|
|
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": [
|
|
@@ -153,6 +153,7 @@ export class ControllerPassport extends BeanBase {
|
|
|
153
153
|
const user = passport?.user as (EntityUser & IUser) | undefined;
|
|
154
154
|
if (!passport || !passport.auth || !user) return;
|
|
155
155
|
return {
|
|
156
|
+
instanceId: this.ctx.instance?.id ?? null,
|
|
156
157
|
user: {
|
|
157
158
|
id: user.id,
|
|
158
159
|
name: user.name,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { TableIdentity } from 'table-identity';
|
|
1
2
|
import type { IDecoratorDtoOptions } from 'vona-module-a-web';
|
|
2
3
|
|
|
3
4
|
import { DtoAuth } from 'vona-module-a-auth';
|
|
@@ -11,6 +12,9 @@ export interface IDtoOptionsPassport extends IDecoratorDtoOptions {}
|
|
|
11
12
|
|
|
12
13
|
@Dto<IDtoOptionsPassport>()
|
|
13
14
|
export class DtoPassport {
|
|
15
|
+
@Api.field(v.nullable(), v.tableIdentity())
|
|
16
|
+
instanceId: TableIdentity | null;
|
|
17
|
+
|
|
14
18
|
@Api.field()
|
|
15
19
|
user: DtoPassportUser;
|
|
16
20
|
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import type { SchemaObject } from 'openapi3-ts/oas31';
|
|
2
|
+
import type { IPassport } from 'vona-module-a-user';
|
|
3
|
+
|
|
4
|
+
import assert from 'node:assert';
|
|
5
|
+
import { describe, it, mock } from 'node:test';
|
|
6
|
+
import { app } from 'vona-mock';
|
|
7
|
+
|
|
8
|
+
import { ControllerPassport } from '../src/controller/passport.ts';
|
|
9
|
+
|
|
10
|
+
function createPassport(): IPassport {
|
|
11
|
+
return {
|
|
12
|
+
user: {
|
|
13
|
+
id: 'passport-response-user',
|
|
14
|
+
name: 'Passport response fixture',
|
|
15
|
+
activated: true,
|
|
16
|
+
accountStatus: 'active',
|
|
17
|
+
instanceId: 'untrusted-user-instance',
|
|
18
|
+
},
|
|
19
|
+
auth: { id: 'passport-response-auth', instanceId: 'untrusted-auth-instance' },
|
|
20
|
+
roles: [],
|
|
21
|
+
} as IPassport;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const jwt = {
|
|
25
|
+
accessToken: 'passport-response-access',
|
|
26
|
+
refreshToken: 'passport-response-refresh',
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
describe('passport.test.ts', { concurrency: false }, () => {
|
|
30
|
+
it('current returns the authoritative request instance, not persisted passport identities', async () => {
|
|
31
|
+
await app.bean.executor.mockCtx(async () => {
|
|
32
|
+
const passport = createPassport();
|
|
33
|
+
app.ctx.state.passport = passport;
|
|
34
|
+
const instanceId = app.ctx.instance.id;
|
|
35
|
+
assert.notEqual(instanceId, undefined);
|
|
36
|
+
|
|
37
|
+
const result = await app.bean._getBean(ControllerPassport).current();
|
|
38
|
+
assert.ok(result);
|
|
39
|
+
assert.equal(result.instanceId, instanceId);
|
|
40
|
+
assert.equal(result.user.id, passport.user!.id);
|
|
41
|
+
assert.equal(result.auth, passport.auth);
|
|
42
|
+
assert.equal(result.roles, passport.roles);
|
|
43
|
+
assert.equal('instanceId' in result.user, false);
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
it('current returns explicit null when the request has no instance', async () => {
|
|
48
|
+
await app.bean.executor.mockCtx(
|
|
49
|
+
async () => {
|
|
50
|
+
app.ctx.state.passport = createPassport();
|
|
51
|
+
assert.equal(app.ctx.instance, undefined);
|
|
52
|
+
const result = await app.bean._getBean(ControllerPassport).current();
|
|
53
|
+
assert.ok(result);
|
|
54
|
+
assert.equal(result.instanceId, null);
|
|
55
|
+
assert.ok(Object.hasOwn(result, 'instanceId'));
|
|
56
|
+
},
|
|
57
|
+
{ instanceName: null },
|
|
58
|
+
);
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
it('current preserves the absent-passport and incomplete-passport behavior', async () => {
|
|
62
|
+
await app.bean.executor.mockCtx(async () => {
|
|
63
|
+
const controller = app.bean._getBean(ControllerPassport);
|
|
64
|
+
for (const passport of [undefined, {}, { user: createPassport().user }, { auth: jwt }]) {
|
|
65
|
+
app.ctx.state.passport = passport as IPassport | undefined;
|
|
66
|
+
assert.equal(await controller.current(), undefined);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
it('every Passport/JWT response uses the same authoritative instance projection', async () => {
|
|
72
|
+
for (const instanceName of ['', null] as const) {
|
|
73
|
+
await app.bean.executor.mockCtx(
|
|
74
|
+
async () => {
|
|
75
|
+
app.ctx.state.passport = createPassport();
|
|
76
|
+
const controller = app.bean._getBean(ControllerPassport);
|
|
77
|
+
const authenticate = mock.method(app.bean.auth, 'authenticate', async () => jwt);
|
|
78
|
+
const fromOauthCode = mock.method(
|
|
79
|
+
app.bean.passport,
|
|
80
|
+
'createAuthTokenFromOauthCode',
|
|
81
|
+
async () => jwt,
|
|
82
|
+
);
|
|
83
|
+
try {
|
|
84
|
+
const login = { username: 'response-user', password: 'response-password', captcha: {} };
|
|
85
|
+
const responses = [
|
|
86
|
+
await controller.login(login as Parameters<ControllerPassport['login']>[0]),
|
|
87
|
+
await controller.register({
|
|
88
|
+
...login,
|
|
89
|
+
email: 'response@example.com',
|
|
90
|
+
passwordConfirm: login.password,
|
|
91
|
+
consumerUrl: 'http://localhost/account/activation',
|
|
92
|
+
} as Parameters<ControllerPassport['register']>[0]),
|
|
93
|
+
await controller.associate('auth-simple', 'simple', 'default'),
|
|
94
|
+
await controller.migrate('auth-simple', 'simple', 'default'),
|
|
95
|
+
await controller.createPassportJwtFromOauthCode('response-code'),
|
|
96
|
+
];
|
|
97
|
+
for (const response of responses) {
|
|
98
|
+
assert.equal(response.passport.instanceId, app.ctx.instance?.id ?? null);
|
|
99
|
+
assert.ok(Object.hasOwn(response.passport, 'instanceId'));
|
|
100
|
+
assert.equal(response.passport.user.id, 'passport-response-user');
|
|
101
|
+
assert.equal(response.jwt, jwt);
|
|
102
|
+
}
|
|
103
|
+
assert.equal(authenticate.mock.callCount(), 4);
|
|
104
|
+
assert.equal(fromOauthCode.mock.callCount(), 1);
|
|
105
|
+
} finally {
|
|
106
|
+
fromOauthCode.mock.restore();
|
|
107
|
+
authenticate.mock.restore();
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
{ instanceName },
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
it('OpenAPI exposes a required nullable table identity on current and every Passport/JWT response', async () => {
|
|
116
|
+
await app.bean.executor.mockCtx(async () => {
|
|
117
|
+
const actions = [
|
|
118
|
+
['current', 'get'],
|
|
119
|
+
['register', 'post'],
|
|
120
|
+
['login', 'post'],
|
|
121
|
+
['associate', 'get'],
|
|
122
|
+
['migrate', 'get'],
|
|
123
|
+
['createPassportJwtFromOauthCode', 'post'],
|
|
124
|
+
] as const;
|
|
125
|
+
for (const [action, method] of actions) {
|
|
126
|
+
const doc = await app.bean.openapi.generateJsonOfControllerAction(
|
|
127
|
+
ControllerPassport,
|
|
128
|
+
action,
|
|
129
|
+
'V31',
|
|
130
|
+
);
|
|
131
|
+
const resolve = (schema: SchemaObject): SchemaObject => {
|
|
132
|
+
if (!schema.$ref) return schema;
|
|
133
|
+
const resolved =
|
|
134
|
+
doc.components?.schemas?.[schema.$ref.replace('#/components/schemas/', '')];
|
|
135
|
+
assert.ok(resolved);
|
|
136
|
+
return resolve(resolved as SchemaObject);
|
|
137
|
+
};
|
|
138
|
+
const operation = Object.values(doc.paths ?? {}).find(item => item?.[method])?.[method];
|
|
139
|
+
assert.ok(operation);
|
|
140
|
+
const response = operation.responses?.['200'];
|
|
141
|
+
assert.ok(response && 'content' in response);
|
|
142
|
+
const body = resolve(response.content?.['application/json']?.schema as SchemaObject);
|
|
143
|
+
assert.ok(body.properties?.data);
|
|
144
|
+
const data = resolve(body.properties.data as SchemaObject);
|
|
145
|
+
const passport =
|
|
146
|
+
action === 'current' ? data : resolve(data.properties?.passport as SchemaObject);
|
|
147
|
+
assert.ok(passport.required?.includes('instanceId'));
|
|
148
|
+
const instanceId = resolve(passport.properties?.instanceId as SchemaObject);
|
|
149
|
+
const user = resolve(passport.properties?.user as SchemaObject);
|
|
150
|
+
const userId = resolve(user.properties?.id as SchemaObject);
|
|
151
|
+
const types = (schema: SchemaObject): string[] => {
|
|
152
|
+
if (schema.anyOf)
|
|
153
|
+
return schema.anyOf.flatMap(item => types(resolve(item as SchemaObject)));
|
|
154
|
+
return Array.isArray(schema.type) ? schema.type : schema.type ? [schema.type] : [];
|
|
155
|
+
};
|
|
156
|
+
const instanceTypes = types(instanceId);
|
|
157
|
+
assert.ok(instanceTypes.includes('null'));
|
|
158
|
+
assert.deepEqual(
|
|
159
|
+
instanceTypes.filter(type => type !== 'null').sort(),
|
|
160
|
+
types(userId).sort(),
|
|
161
|
+
);
|
|
162
|
+
assert.equal(user.properties?.instanceId, undefined);
|
|
163
|
+
if (operation.requestBody && 'content' in operation.requestBody) {
|
|
164
|
+
const request = resolve(
|
|
165
|
+
operation.requestBody.content['application/json'].schema as SchemaObject,
|
|
166
|
+
);
|
|
167
|
+
assert.equal(request.properties?.instanceId, undefined);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
});
|
|
@@ -23,6 +23,7 @@ describe('role.test.ts', { concurrency: false }, () => {
|
|
|
23
23
|
|
|
24
24
|
await app.bean.passport.signinMock();
|
|
25
25
|
const passport = await app.bean.executor.performAction('get', '/home/user/passport/current');
|
|
26
|
+
assert.equal(passport.instanceId, app.ctx.instance.id);
|
|
26
27
|
const passportRegisteredUser = passport.roles.find(
|
|
27
28
|
(role: any) => role.name === 'registeredUser',
|
|
28
29
|
);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vona-suite-a-cabloy",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.62",
|
|
4
4
|
"gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
|
|
5
5
|
"description": "",
|
|
6
6
|
"author": "",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"vona-module-a-cabloy": "workspace:^",
|
|
11
11
|
"vona-module-a-layoutprofile": "^5.0.2",
|
|
12
12
|
"vona-module-a-markdown": "^5.0.3",
|
|
13
|
-
"vona-module-a-rbac": "^5.0.
|
|
13
|
+
"vona-module-a-rbac": "^5.0.11",
|
|
14
14
|
"vona-module-a-socket": "workspace:^",
|
|
15
15
|
"vona-module-a-ssr": "workspace:^",
|
|
16
16
|
"vona-module-a-ssrhmr": "workspace:^"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zova-cli",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.112",
|
|
4
4
|
"gitHead": "6f675a8cc46d596142c591c28a40cc4d82fcc6cc",
|
|
5
5
|
"description": "zova cli",
|
|
6
6
|
"keywords": [
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"@cabloy/process-helper": "^3.1.8",
|
|
45
45
|
"fs-extra": "^11.3.5",
|
|
46
46
|
"semver": "^7.6.2",
|
|
47
|
-
"zova-cli-set-front": "^1.2.
|
|
47
|
+
"zova-cli-set-front": "^1.2.110"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"clean-package": "^2.2.0",
|
|
@@ -19,6 +19,7 @@ import {
|
|
|
19
19
|
import {
|
|
20
20
|
schemaRenderColumn,
|
|
21
21
|
schemaRenderDisableNotifyChanged,
|
|
22
|
+
schemaRenderDraft,
|
|
22
23
|
schemaRenderFieldSource,
|
|
23
24
|
schemaRenderLayout,
|
|
24
25
|
schemaRenderOnEffect,
|
|
@@ -32,6 +33,7 @@ export const ZovaRender = {
|
|
|
32
33
|
layout: schemaRenderLayout,
|
|
33
34
|
visible: schemaRenderVisible,
|
|
34
35
|
readonly: schemaRenderReadonly,
|
|
36
|
+
draft: schemaRenderDraft,
|
|
35
37
|
order: schemaRenderOrder,
|
|
36
38
|
disableNotifyChanged: schemaRenderDisableNotifyChanged,
|
|
37
39
|
onEffect: schemaRenderOnEffect,
|
|
@@ -41,6 +41,15 @@ export function schemaRenderReadonly<T extends z.ZodType>(
|
|
|
41
41
|
};
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
+
export function schemaRenderDraft<T extends z.ZodType>(
|
|
45
|
+
enabled: boolean = true,
|
|
46
|
+
scene?: TypeFormSchemaScene,
|
|
47
|
+
) {
|
|
48
|
+
return function (schema: T): T {
|
|
49
|
+
return _generalSchemaRest(schema, { draft: enabled }, scene);
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
|
|
44
53
|
export function schemaRenderDisableNotifyChanged<T extends z.ZodType>(
|
|
45
54
|
disableNotifyChanged: boolean = true,
|
|
46
55
|
scene?: TypeSchemaScene,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zova",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.168",
|
|
4
4
|
"gitHead": "2c5c19284bab738e492856189acb6fad74b8a7b7",
|
|
5
5
|
"description": "A vue3 framework with ioc",
|
|
6
6
|
"keywords": [
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"zova-core": "^5.1.92",
|
|
49
|
-
"zova-suite-a-zova": "^5.1.
|
|
49
|
+
"zova-suite-a-zova": "^5.1.167"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"clean-package": "^2.2.0",
|
|
@@ -106,14 +106,14 @@ declare module 'zova-module-home-api' {
|
|
|
106
106
|
}
|
|
107
107
|
/** api: end */
|
|
108
108
|
/** api: begin */
|
|
109
|
-
import { ApiCaptcha } from '../api/captcha.js';
|
|
110
|
-
import { ApiHome } from '../api/home.js';
|
|
111
|
-
import { ApiHomeBaseMenu } from '../api/homeBaseMenu.js';
|
|
112
|
-
import { ApiHomeBasePermission } from '../api/homeBasePermission.js';
|
|
113
|
-
import { ApiHomeBaseSiteCatalog } from '../api/homeBaseSiteCatalog.js';
|
|
114
|
-
import { ApiHomeUserAccount } from '../api/homeUserAccount.js';
|
|
115
|
-
import { ApiHomeUserPassport } from '../api/homeUserPassport.js';
|
|
116
|
-
import { ApiTestSsrToolOne } from '../api/testSsrToolOne.js';
|
|
109
|
+
import type { ApiCaptcha } from '../api/captcha.js';
|
|
110
|
+
import type { ApiHome } from '../api/home.js';
|
|
111
|
+
import type { ApiHomeBaseMenu } from '../api/homeBaseMenu.js';
|
|
112
|
+
import type { ApiHomeBasePermission } from '../api/homeBasePermission.js';
|
|
113
|
+
import type { ApiHomeBaseSiteCatalog } from '../api/homeBaseSiteCatalog.js';
|
|
114
|
+
import type { ApiHomeUserAccount } from '../api/homeUserAccount.js';
|
|
115
|
+
import type { ApiHomeUserPassport } from '../api/homeUserPassport.js';
|
|
116
|
+
import type { ApiTestSsrToolOne } from '../api/testSsrToolOne.js';
|
|
117
117
|
export interface IModuleApi {
|
|
118
118
|
'captcha': ApiCaptcha;
|
|
119
119
|
'home': ApiHome;
|
|
@@ -251,14 +251,14 @@ declare module 'zova-module-home-api' {
|
|
|
251
251
|
}
|
|
252
252
|
/** apiSchema: end */
|
|
253
253
|
/** apiSchema: begin */
|
|
254
|
-
import { ApiSchemaCaptcha } from '../apiSchema/captcha.js';
|
|
255
|
-
import { ApiSchemaHome } from '../apiSchema/home.js';
|
|
256
|
-
import { ApiSchemaHomeBaseMenu } from '../apiSchema/homeBaseMenu.js';
|
|
257
|
-
import { ApiSchemaHomeBasePermission } from '../apiSchema/homeBasePermission.js';
|
|
258
|
-
import { ApiSchemaHomeBaseSiteCatalog } from '../apiSchema/homeBaseSiteCatalog.js';
|
|
259
|
-
import { ApiSchemaHomeUserAccount } from '../apiSchema/homeUserAccount.js';
|
|
260
|
-
import { ApiSchemaHomeUserPassport } from '../apiSchema/homeUserPassport.js';
|
|
261
|
-
import { ApiSchemaTestSsrToolOne } from '../apiSchema/testSsrToolOne.js';
|
|
254
|
+
import type { ApiSchemaCaptcha } from '../apiSchema/captcha.js';
|
|
255
|
+
import type { ApiSchemaHome } from '../apiSchema/home.js';
|
|
256
|
+
import type { ApiSchemaHomeBaseMenu } from '../apiSchema/homeBaseMenu.js';
|
|
257
|
+
import type { ApiSchemaHomeBasePermission } from '../apiSchema/homeBasePermission.js';
|
|
258
|
+
import type { ApiSchemaHomeBaseSiteCatalog } from '../apiSchema/homeBaseSiteCatalog.js';
|
|
259
|
+
import type { ApiSchemaHomeUserAccount } from '../apiSchema/homeUserAccount.js';
|
|
260
|
+
import type { ApiSchemaHomeUserPassport } from '../apiSchema/homeUserPassport.js';
|
|
261
|
+
import type { ApiSchemaTestSsrToolOne } from '../apiSchema/testSsrToolOne.js';
|
|
262
262
|
export interface IModuleApiSchema {
|
|
263
263
|
'captcha': ApiSchemaCaptcha;
|
|
264
264
|
'home': ApiSchemaHome;
|
|
@@ -313,7 +313,7 @@ declare module 'zova-module-home-api' {
|
|
|
313
313
|
}
|
|
314
314
|
/** service: end */
|
|
315
315
|
/** service: begin */
|
|
316
|
-
import { ServiceJwtAdapter } from '../service/jwtAdapter.js';
|
|
316
|
+
import type { ServiceJwtAdapter } from '../service/jwtAdapter.js';
|
|
317
317
|
import 'zova';
|
|
318
318
|
declare module 'zova' {
|
|
319
319
|
export interface IBeanRecordGeneral {
|
|
@@ -6,6 +6,42 @@ export type ApiSchemaTestVonaDtoUserCreate = components['schemas']['test-vona.dt
|
|
|
6
6
|
export type ApiSchemaTestVonaDtoUserCreatePartial = Partial<ApiSchemaTestVonaDtoUserCreate>;
|
|
7
7
|
export type ApiSchemaTestVonaEntityProduct = components['schemas']['test-vona.entity.product'];
|
|
8
8
|
export type ApiSchemaTestVonaEntityProductPartial = Partial<ApiSchemaTestVonaEntityProduct>;
|
|
9
|
+
export type ApiSchemaAImageDtoImageUploadPolicyResponse =
|
|
10
|
+
components['schemas']['a-image.dto.imageUploadPolicyResponse'];
|
|
11
|
+
export type ApiSchemaAImageDtoImageUploadPolicyResponsePartial =
|
|
12
|
+
Partial<ApiSchemaAImageDtoImageUploadPolicyResponse>;
|
|
13
|
+
export type ApiSchemaAImageDtoImageUploadPolicyRequest =
|
|
14
|
+
components['schemas']['a-image.dto.imageUploadPolicyRequest'];
|
|
15
|
+
export type ApiSchemaAImageDtoImageUploadPolicyRequestPartial =
|
|
16
|
+
Partial<ApiSchemaAImageDtoImageUploadPolicyRequest>;
|
|
17
|
+
export type ApiSchemaAImageDtoImageUploadResponse =
|
|
18
|
+
components['schemas']['a-image.dto.imageUploadResponse'];
|
|
19
|
+
export type ApiSchemaAImageDtoImageUploadResponsePartial =
|
|
20
|
+
Partial<ApiSchemaAImageDtoImageUploadResponse>;
|
|
21
|
+
export type ApiSchemaAImageDtoImageDirectUploadResponse =
|
|
22
|
+
components['schemas']['a-image.dto.imageDirectUploadResponse'];
|
|
23
|
+
export type ApiSchemaAImageDtoImageDirectUploadResponsePartial =
|
|
24
|
+
Partial<ApiSchemaAImageDtoImageDirectUploadResponse>;
|
|
25
|
+
export type ApiSchemaAImageDtoImageDirectUploadRequest =
|
|
26
|
+
components['schemas']['a-image.dto.imageDirectUploadRequest'];
|
|
27
|
+
export type ApiSchemaAImageDtoImageDirectUploadRequestPartial =
|
|
28
|
+
Partial<ApiSchemaAImageDtoImageDirectUploadRequest>;
|
|
29
|
+
export type ApiSchemaAImageDtoImageDirectUploadFinalizeResponse =
|
|
30
|
+
components['schemas']['a-image.dto.imageDirectUploadFinalizeResponse'];
|
|
31
|
+
export type ApiSchemaAImageDtoImageDirectUploadFinalizeResponsePartial =
|
|
32
|
+
Partial<ApiSchemaAImageDtoImageDirectUploadFinalizeResponse>;
|
|
33
|
+
export type ApiSchemaAImageDtoImageDirectUploadFinalizeRequest =
|
|
34
|
+
components['schemas']['a-image.dto.imageDirectUploadFinalizeRequest'];
|
|
35
|
+
export type ApiSchemaAImageDtoImageDirectUploadFinalizeRequestPartial =
|
|
36
|
+
Partial<ApiSchemaAImageDtoImageDirectUploadFinalizeRequest>;
|
|
37
|
+
export type ApiSchemaAImageDtoImageUploadUrlRequest =
|
|
38
|
+
components['schemas']['a-image.dto.imageUploadUrlRequest'];
|
|
39
|
+
export type ApiSchemaAImageDtoImageUploadUrlRequestPartial =
|
|
40
|
+
Partial<ApiSchemaAImageDtoImageUploadUrlRequest>;
|
|
41
|
+
export type ApiSchemaAImageDtoImageTransformOptions_2d063d28bc7243bed02ebd8bddf1212a93c6305b =
|
|
42
|
+
components['schemas']['a-image.dto.imageTransformOptions_2d063d28bc7243bed02ebd8bddf1212a93c6305b'];
|
|
43
|
+
export type ApiSchemaAImageDtoImageTransformOptions_2d063d28bc7243bed02ebd8bddf1212a93c6305bPartial =
|
|
44
|
+
Partial<ApiSchemaAImageDtoImageTransformOptions_2d063d28bc7243bed02ebd8bddf1212a93c6305b>;
|
|
9
45
|
export type ApiSchemaACaptchaDtoCaptchaData = components['schemas']['a-captcha.dto.captchaData'];
|
|
10
46
|
export type ApiSchemaACaptchaDtoCaptchaDataPartial = Partial<ApiSchemaACaptchaDtoCaptchaData>;
|
|
11
47
|
export type ApiSchemaAPayDtoPaymentSessionView =
|
|
@@ -43,42 +79,6 @@ export type ApiSchemaCommerceMemberDtoAddressView_2d063d28bc7243bed02ebd8bddf121
|
|
|
43
79
|
components['schemas']['commerce-member.dto.addressView_2d063d28bc7243bed02ebd8bddf1212a93c6305b_425dbecccd52e19e24888f99e1b1670233afa875'];
|
|
44
80
|
export type ApiSchemaCommerceMemberDtoAddressView_2d063d28bc7243bed02ebd8bddf1212a93c6305b_425dbecccd52e19e24888f99e1b1670233afa875Partial =
|
|
45
81
|
Partial<ApiSchemaCommerceMemberDtoAddressView_2d063d28bc7243bed02ebd8bddf1212a93c6305b_425dbecccd52e19e24888f99e1b1670233afa875>;
|
|
46
|
-
export type ApiSchemaAImageDtoImageUploadPolicyResponse =
|
|
47
|
-
components['schemas']['a-image.dto.imageUploadPolicyResponse'];
|
|
48
|
-
export type ApiSchemaAImageDtoImageUploadPolicyResponsePartial =
|
|
49
|
-
Partial<ApiSchemaAImageDtoImageUploadPolicyResponse>;
|
|
50
|
-
export type ApiSchemaAImageDtoImageUploadPolicyRequest =
|
|
51
|
-
components['schemas']['a-image.dto.imageUploadPolicyRequest'];
|
|
52
|
-
export type ApiSchemaAImageDtoImageUploadPolicyRequestPartial =
|
|
53
|
-
Partial<ApiSchemaAImageDtoImageUploadPolicyRequest>;
|
|
54
|
-
export type ApiSchemaAImageDtoImageUploadResponse =
|
|
55
|
-
components['schemas']['a-image.dto.imageUploadResponse'];
|
|
56
|
-
export type ApiSchemaAImageDtoImageUploadResponsePartial =
|
|
57
|
-
Partial<ApiSchemaAImageDtoImageUploadResponse>;
|
|
58
|
-
export type ApiSchemaAImageDtoImageDirectUploadResponse =
|
|
59
|
-
components['schemas']['a-image.dto.imageDirectUploadResponse'];
|
|
60
|
-
export type ApiSchemaAImageDtoImageDirectUploadResponsePartial =
|
|
61
|
-
Partial<ApiSchemaAImageDtoImageDirectUploadResponse>;
|
|
62
|
-
export type ApiSchemaAImageDtoImageDirectUploadRequest =
|
|
63
|
-
components['schemas']['a-image.dto.imageDirectUploadRequest'];
|
|
64
|
-
export type ApiSchemaAImageDtoImageDirectUploadRequestPartial =
|
|
65
|
-
Partial<ApiSchemaAImageDtoImageDirectUploadRequest>;
|
|
66
|
-
export type ApiSchemaAImageDtoImageDirectUploadFinalizeResponse =
|
|
67
|
-
components['schemas']['a-image.dto.imageDirectUploadFinalizeResponse'];
|
|
68
|
-
export type ApiSchemaAImageDtoImageDirectUploadFinalizeResponsePartial =
|
|
69
|
-
Partial<ApiSchemaAImageDtoImageDirectUploadFinalizeResponse>;
|
|
70
|
-
export type ApiSchemaAImageDtoImageDirectUploadFinalizeRequest =
|
|
71
|
-
components['schemas']['a-image.dto.imageDirectUploadFinalizeRequest'];
|
|
72
|
-
export type ApiSchemaAImageDtoImageDirectUploadFinalizeRequestPartial =
|
|
73
|
-
Partial<ApiSchemaAImageDtoImageDirectUploadFinalizeRequest>;
|
|
74
|
-
export type ApiSchemaAImageDtoImageUploadUrlRequest =
|
|
75
|
-
components['schemas']['a-image.dto.imageUploadUrlRequest'];
|
|
76
|
-
export type ApiSchemaAImageDtoImageUploadUrlRequestPartial =
|
|
77
|
-
Partial<ApiSchemaAImageDtoImageUploadUrlRequest>;
|
|
78
|
-
export type ApiSchemaAImageDtoImageTransformOptions_2d063d28bc7243bed02ebd8bddf1212a93c6305b =
|
|
79
|
-
components['schemas']['a-image.dto.imageTransformOptions_2d063d28bc7243bed02ebd8bddf1212a93c6305b'];
|
|
80
|
-
export type ApiSchemaAImageDtoImageTransformOptions_2d063d28bc7243bed02ebd8bddf1212a93c6305bPartial =
|
|
81
|
-
Partial<ApiSchemaAImageDtoImageTransformOptions_2d063d28bc7243bed02ebd8bddf1212a93c6305b>;
|
|
82
82
|
export type ApiSchemaHomeUserDtoAccountCurrent =
|
|
83
83
|
components['schemas']['home-user.dto.accountCurrent'];
|
|
84
84
|
export type ApiSchemaHomeUserDtoAccountCurrentPartial = Partial<ApiSchemaHomeUserDtoAccountCurrent>;
|
|
@@ -302,10 +302,10 @@ export type ApiSchemaCommerceTradeEntityStockBalance =
|
|
|
302
302
|
components['schemas']['commerce-trade.entity.stockBalance'];
|
|
303
303
|
export type ApiSchemaCommerceTradeEntityStockBalancePartial =
|
|
304
304
|
Partial<ApiSchemaCommerceTradeEntityStockBalance>;
|
|
305
|
-
export type
|
|
306
|
-
components['schemas']['commerce-trade.dto.
|
|
307
|
-
export type
|
|
308
|
-
Partial<
|
|
305
|
+
export type ApiSchemaCommerceTradeDtoStockAdjust_6a7c2f0bb21a25da3048650f263577ae4467750e =
|
|
306
|
+
components['schemas']['commerce-trade.dto.stockAdjust_6a7c2f0bb21a25da3048650f263577ae4467750e'];
|
|
307
|
+
export type ApiSchemaCommerceTradeDtoStockAdjust_6a7c2f0bb21a25da3048650f263577ae4467750ePartial =
|
|
308
|
+
Partial<ApiSchemaCommerceTradeDtoStockAdjust_6a7c2f0bb21a25da3048650f263577ae4467750e>;
|
|
309
309
|
export type ApiSchemaCommerceTradeDtoStockBalanceSelectRes =
|
|
310
310
|
components['schemas']['commerce-trade.dto.stockBalanceSelectRes'];
|
|
311
311
|
export type ApiSchemaCommerceTradeDtoStockBalanceSelectResPartial =
|
|
@@ -366,10 +366,10 @@ export type ApiSchemaCommerceCatalogDtoProductPublicDetail_2d063d28bc7243bed02eb
|
|
|
366
366
|
components['schemas']['commerce-catalog.dto.productPublicDetail_2d063d28bc7243bed02ebd8bddf1212a93c6305b'];
|
|
367
367
|
export type ApiSchemaCommerceCatalogDtoProductPublicDetail_2d063d28bc7243bed02ebd8bddf1212a93c6305bPartial =
|
|
368
368
|
Partial<ApiSchemaCommerceCatalogDtoProductPublicDetail_2d063d28bc7243bed02ebd8bddf1212a93c6305b>;
|
|
369
|
-
export type
|
|
370
|
-
components['schemas']['commerce-catalog.dto.
|
|
371
|
-
export type
|
|
372
|
-
Partial<
|
|
369
|
+
export type ApiSchemaCommerceCatalogDtoProductView_2d063d28bc7243bed02ebd8bddf1212a93c6305b_a2f92cabb46b0630848b50414c0d4c60efb47a57 =
|
|
370
|
+
components['schemas']['commerce-catalog.dto.productView_2d063d28bc7243bed02ebd8bddf1212a93c6305b_a2f92cabb46b0630848b50414c0d4c60efb47a57'];
|
|
371
|
+
export type ApiSchemaCommerceCatalogDtoProductView_2d063d28bc7243bed02ebd8bddf1212a93c6305b_a2f92cabb46b0630848b50414c0d4c60efb47a57Partial =
|
|
372
|
+
Partial<ApiSchemaCommerceCatalogDtoProductView_2d063d28bc7243bed02ebd8bddf1212a93c6305b_a2f92cabb46b0630848b50414c0d4c60efb47a57>;
|
|
373
373
|
export type ApiSchemaCommerceCatalogDtoProductUpdate =
|
|
374
374
|
components['schemas']['commerce-catalog.dto.productUpdate'];
|
|
375
375
|
export type ApiSchemaCommerceCatalogDtoProductUpdatePartial =
|
|
@@ -435,10 +435,10 @@ export type ApiSchemaAImageDtoImageView = components['schemas']['a-image.dto.ima
|
|
|
435
435
|
export type ApiSchemaAImageDtoImageViewPartial = Partial<ApiSchemaAImageDtoImageView>;
|
|
436
436
|
export type ApiSchemaAFileDtoFileView = components['schemas']['a-file.dto.fileView'];
|
|
437
437
|
export type ApiSchemaAFileDtoFileViewPartial = Partial<ApiSchemaAFileDtoFileView>;
|
|
438
|
-
export type
|
|
439
|
-
components['schemas']['training-record.dto.
|
|
440
|
-
export type
|
|
441
|
-
Partial<
|
|
438
|
+
export type ApiSchemaTrainingRecordDtoRecordView_2d063d28bc7243bed02ebd8bddf1212a93c6305b_7d715789d9643740a04e8a6c0f6fb951884bc347 =
|
|
439
|
+
components['schemas']['training-record.dto.recordView_2d063d28bc7243bed02ebd8bddf1212a93c6305b_7d715789d9643740a04e8a6c0f6fb951884bc347'];
|
|
440
|
+
export type ApiSchemaTrainingRecordDtoRecordView_2d063d28bc7243bed02ebd8bddf1212a93c6305b_7d715789d9643740a04e8a6c0f6fb951884bc347Partial =
|
|
441
|
+
Partial<ApiSchemaTrainingRecordDtoRecordView_2d063d28bc7243bed02ebd8bddf1212a93c6305b_7d715789d9643740a04e8a6c0f6fb951884bc347>;
|
|
442
442
|
export type ApiSchemaTrainingRecordDtoRecordUpdate =
|
|
443
443
|
components['schemas']['training-record.dto.recordUpdate'];
|
|
444
444
|
export type ApiSchemaTrainingRecordDtoRecordUpdatePartial =
|
|
@@ -463,10 +463,10 @@ export type ApiSchemaAImageDtoImageView_a83c3e638bca4b30ec8675860cdc52d66f6a16d1
|
|
|
463
463
|
components['schemas']['a-image.dto.imageView_a83c3e638bca4b30ec8675860cdc52d66f6a16d1_2d063d28bc7243bed02ebd8bddf1212a93c6305b_efb37794d7c03c65122279f90d79919f009c34e5_1816ff740d81c738ec055c7038bbd93beb9405a7_537cd6552a384183a9457fb6a920bbae337277f6'];
|
|
464
464
|
export type ApiSchemaAImageDtoImageView_a83c3e638bca4b30ec8675860cdc52d66f6a16d1_2d063d28bc7243bed02ebd8bddf1212a93c6305b_efb37794d7c03c65122279f90d79919f009c34e5_1816ff740d81c738ec055c7038bbd93beb9405a7_537cd6552a384183a9457fb6a920bbae337277f6Partial =
|
|
465
465
|
Partial<ApiSchemaAImageDtoImageView_a83c3e638bca4b30ec8675860cdc52d66f6a16d1_2d063d28bc7243bed02ebd8bddf1212a93c6305b_efb37794d7c03c65122279f90d79919f009c34e5_1816ff740d81c738ec055c7038bbd93beb9405a7_537cd6552a384183a9457fb6a920bbae337277f6>;
|
|
466
|
-
export type
|
|
467
|
-
components['schemas']['training-student.dto.
|
|
468
|
-
export type
|
|
469
|
-
Partial<
|
|
466
|
+
export type ApiSchemaTrainingStudentDtoStudentView_2d063d28bc7243bed02ebd8bddf1212a93c6305b_4826fc678e47603ec467782ddb0d02463792cd60 =
|
|
467
|
+
components['schemas']['training-student.dto.studentView_2d063d28bc7243bed02ebd8bddf1212a93c6305b_4826fc678e47603ec467782ddb0d02463792cd60'];
|
|
468
|
+
export type ApiSchemaTrainingStudentDtoStudentView_2d063d28bc7243bed02ebd8bddf1212a93c6305b_4826fc678e47603ec467782ddb0d02463792cd60Partial =
|
|
469
|
+
Partial<ApiSchemaTrainingStudentDtoStudentView_2d063d28bc7243bed02ebd8bddf1212a93c6305b_4826fc678e47603ec467782ddb0d02463792cd60>;
|
|
470
470
|
export type ApiSchemaTrainingStudentDtoStudentUpdate =
|
|
471
471
|
components['schemas']['training-student.dto.studentUpdate'];
|
|
472
472
|
export type ApiSchemaTrainingStudentDtoStudentUpdatePartial =
|
|
@@ -475,6 +475,10 @@ export type ApiSchemaTrainingStudentDtoStudentSummary_2d063d28bc7243bed02ebd8bdd
|
|
|
475
475
|
components['schemas']['training-student.dto.studentSummary_2d063d28bc7243bed02ebd8bddf1212a93c6305b'];
|
|
476
476
|
export type ApiSchemaTrainingStudentDtoStudentSummary_2d063d28bc7243bed02ebd8bddf1212a93c6305bPartial =
|
|
477
477
|
Partial<ApiSchemaTrainingStudentDtoStudentSummary_2d063d28bc7243bed02ebd8bddf1212a93c6305b>;
|
|
478
|
+
export type ApiSchemaTrainingStudentDtoStudentDeleteBulk =
|
|
479
|
+
components['schemas']['training-student.dto.studentDeleteBulk'];
|
|
480
|
+
export type ApiSchemaTrainingStudentDtoStudentDeleteBulkPartial =
|
|
481
|
+
Partial<ApiSchemaTrainingStudentDtoStudentDeleteBulk>;
|
|
478
482
|
export type ApiSchemaBasicMetricsDtoMetricsSnapshot =
|
|
479
483
|
components['schemas']['basic-metrics.dto.metricsSnapshot'];
|
|
480
484
|
export type ApiSchemaBasicMetricsDtoMetricsSnapshotPartial =
|
|
@@ -487,6 +491,18 @@ export type ApiSchemaBasicMetricsDtoMetricsQueue =
|
|
|
487
491
|
components['schemas']['basic-metrics.dto.metricsQueue'];
|
|
488
492
|
export type ApiSchemaBasicMetricsDtoMetricsQueuePartial =
|
|
489
493
|
Partial<ApiSchemaBasicMetricsDtoMetricsQueue>;
|
|
494
|
+
export type ApiSchemaALayoutprofileDtoLayoutProfile_2d063d28bc7243bed02ebd8bddf1212a93c6305b =
|
|
495
|
+
components['schemas']['a-layoutprofile.dto.layoutProfile_2d063d28bc7243bed02ebd8bddf1212a93c6305b'];
|
|
496
|
+
export type ApiSchemaALayoutprofileDtoLayoutProfile_2d063d28bc7243bed02ebd8bddf1212a93c6305bPartial =
|
|
497
|
+
Partial<ApiSchemaALayoutprofileDtoLayoutProfile_2d063d28bc7243bed02ebd8bddf1212a93c6305b>;
|
|
498
|
+
export type ApiSchemaALayoutprofileDtoLayoutProfile =
|
|
499
|
+
components['schemas']['a-layoutprofile.dto.layoutProfile'];
|
|
500
|
+
export type ApiSchemaALayoutprofileDtoLayoutProfilePartial =
|
|
501
|
+
Partial<ApiSchemaALayoutprofileDtoLayoutProfile>;
|
|
502
|
+
export type ApiSchemaALayoutprofileDtoLayoutProfileSave =
|
|
503
|
+
components['schemas']['a-layoutprofile.dto.layoutProfileSave'];
|
|
504
|
+
export type ApiSchemaALayoutprofileDtoLayoutProfileSavePartial =
|
|
505
|
+
Partial<ApiSchemaALayoutprofileDtoLayoutProfileSave>;
|
|
490
506
|
export type ApiSchemaAFileDtoFileUploadPolicyResponse =
|
|
491
507
|
components['schemas']['a-file.dto.fileUploadPolicyResponse'];
|
|
492
508
|
export type ApiSchemaAFileDtoFileUploadPolicyResponsePartial =
|