cabloy 5.1.210 → 5.1.211

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 (42) hide show
  1. package/.cabloy-version +1 -1
  2. package/CHANGELOG.md +7 -0
  3. package/package.json +2 -1
  4. package/repo-agent-governance/managed-assets.json +6 -6
  5. package/repo-agent-governance/skills/cabloy-contract-loop/SKILL.md +14 -8
  6. package/repo-agent-governance/skills/cabloy-contract-loop/references/verification-checklist.md +4 -1
  7. package/repo-agent-governance/tests/governance.test.mjs +65 -0
  8. package/repo-docs/ai/playbook-contract-regeneration.md +2 -0
  9. package/repo-docs/frontend/openapi-sdk-guide.md +23 -4
  10. package/repo-docs/fullstack/contract-loop-playbook.md +8 -0
  11. package/repo-docs/fullstack/openapi-to-sdk.md +12 -6
  12. package/repo-docs/reference/repo-scripts.md +3 -0
  13. package/scripts/bootstrapAgentGovernance.mjs +18 -0
  14. package/scripts/generateOpenapiIsolated.test.ts +207 -0
  15. package/scripts/generateOpenapiIsolated.ts +91 -0
  16. package/scripts/runIsolatedTest.test.ts +90 -0
  17. package/scripts/runIsolatedTest.ts +157 -82
  18. package/scripts/upgrade.test.ts +113 -0
  19. package/scripts/upgrade.ts +32 -0
  20. package/vona/packages-cli/cli/package.json +1 -1
  21. package/vona/packages-cli/cli-set-api/package.json +1 -1
  22. package/vona/packages-vona/vona/package.json +1 -1
  23. package/vona/packages-vona/vona-core/package.json +1 -1
  24. package/vona/packages-vona/vona-core/src/lib/core/testClaim.test.ts +8 -1
  25. package/vona/packages-vona/vona-core/src/lib/core/testClaim.ts +2 -2
  26. package/vona/packages-vona/vona-mock/package.json +1 -1
  27. package/vona/src/suite-vendor/a-vona/modules/a-core/package.json +1 -1
  28. package/vona/src/suite-vendor/a-vona/package.json +1 -1
  29. package/zova/openapi.config.test.ts +29 -0
  30. package/zova/openapi.config.ts +13 -4
  31. package/zova/packages-cli/cli/package.json +2 -2
  32. package/zova/packages-cli/cli-set-front/cli/templates/openapi/config/boilerplate/project/openapi.config.ts +13 -4
  33. package/zova/packages-cli/cli-set-front/package.json +1 -1
  34. package/zova/packages-zova/zova/package.json +2 -2
  35. package/zova/src/suite/a-training/modules/training-student/src/.metadata/index.ts +7 -7
  36. package/zova/src/suite/a-training/modules/training-student/src/api/openapi/schemas.ts +12 -0
  37. package/zova/src/suite/a-training/modules/training-student/src/api/openapi/types.ts +173 -72
  38. package/zova/src/suite/a-training/modules/training-student/src/api/trainingStudent.ts +8 -1
  39. package/zova/src/suite-vendor/a-zova/modules/a-form/package.json +1 -1
  40. package/zova/src/suite-vendor/a-zova/modules/a-form/src/lib/schemaRefresh.ts +21 -12
  41. package/zova/src/suite-vendor/a-zova/modules/a-form/test/lib/schemaRefreshLifecycle.test.ts +112 -0
  42. package/zova/src/suite-vendor/a-zova/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona-cli",
3
- "version": "1.1.161",
3
+ "version": "1.1.162",
4
4
  "gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
5
5
  "description": "vona cli",
6
6
  "keywords": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona-cli-set-api",
3
- "version": "1.1.159",
3
+ "version": "1.1.160",
4
4
  "gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
5
5
  "description": "vona cli-set-api",
6
6
  "keywords": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona",
3
- "version": "5.1.107",
3
+ "version": "5.1.108",
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": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona-core",
3
- "version": "5.1.45",
3
+ "version": "5.1.46",
4
4
  "gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
5
5
  "description": "vona",
6
6
  "keywords": [
@@ -93,7 +93,13 @@ test('exclusive central claim has canonical immutable UTC creation time and priv
93
93
  assert.equal(lstatSync(claimPath).mode & 0o777, 0o600);
94
94
  assert.equal(lstatSync(path.dirname(claimPath)).mode & 0o777, 0o700);
95
95
  await assert.rejects(createTestClaim(f.projectPath, runId, 'unit', owner), { code: 'EEXIST' });
96
- await createTestClaim(f.projectPath, '20261013010203-deadbeef', 'e2e', owner);
96
+ const contractClaim = await createTestClaim(
97
+ f.projectPath,
98
+ '20261013010203-deadbeef',
99
+ 'contract',
100
+ owner,
101
+ );
102
+ assert.equal((await loadTestClaim(contractClaim.claimPath)).kind, 'contract');
97
103
  assert.deepEqual(
98
104
  manifest.locals.map(item => item.kind),
99
105
  ['generated', 'data'],
@@ -134,6 +140,7 @@ test('manifest validation rejects filename drift, secret snapshots and arbitrary
134
140
  try {
135
141
  const { manifest, claimPath } = await createTestClaim(f.projectPath, runId, 'unit', owner);
136
142
  assert.throws(() => validateTestClaim(manifest, `${claimPath}.other`));
143
+ assert.throws(() => validateTestClaim({ ...manifest, kind: 'unknown' }));
137
144
  assert.throws(() => validateTestClaim({ ...manifest, password: 'secret' }));
138
145
  assert.throws(() => validateTestClaim({ ...manifest, createdAt: '2026-10-14T01:02:03.000Z' }));
139
146
  assert.throws(() =>
@@ -16,7 +16,7 @@ import {
16
16
  export const TEST_CLAIM_URL_ENV = 'VONA_TEST_CLAIM_URL';
17
17
  export const TEST_CLAIM_TOKEN_ENV = 'VONA_TEST_CLAIM_TOKEN';
18
18
  export const TEST_CLAIM_DIRECTORY = '.vona-test-claim';
19
- export type TestClaimKind = 'unit' | 'cov' | 'e2e';
19
+ export type TestClaimKind = 'unit' | 'cov' | 'e2e' | 'contract';
20
20
  export type TestClaimEnv = Record<string, string | undefined>;
21
21
  export interface TestClaimOwner {
22
22
  pid: number;
@@ -237,7 +237,7 @@ export function validateTestClaim(value: unknown, claimPath?: string): TestClaim
237
237
  const p = getTestClaimPaths(m.projectPath, m.runId);
238
238
  if (claimPath && path.resolve(claimPath) !== p.claimPath)
239
239
  throw new Error('Test claim filename or checkout mismatch');
240
- oneOf(m.kind, ['unit', 'cov', 'e2e']);
240
+ oneOf(m.kind, ['unit', 'cov', 'e2e', 'contract']);
241
241
  keys(m.owner, ['pid', 'startTime', 'host']);
242
242
  integer(m.owner.pid, 1);
243
243
  text(m.owner.startTime);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona-mock",
3
- "version": "6.1.45",
3
+ "version": "6.1.46",
4
4
  "gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
5
5
  "description": "vona mock",
6
6
  "keywords": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona-module-a-core",
3
- "version": "5.1.59",
3
+ "version": "5.1.60",
4
4
  "gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
5
5
  "description": "",
6
6
  "keywords": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona-suite-a-vona",
3
- "version": "5.1.98",
3
+ "version": "5.1.99",
4
4
  "gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
5
5
  "description": "",
6
6
  "author": "",
@@ -0,0 +1,29 @@
1
+ import assert from 'node:assert/strict';
2
+ import { test } from 'node:test';
3
+
4
+ import { resolveOpenapiSource } from './openapi.config.ts';
5
+
6
+ test('prefers a complete non-empty OpenAPI source override', () => {
7
+ assert.equal(
8
+ resolveOpenapiSource('http://localhost:7102', ' https://example.test/openapi.json '),
9
+ 'https://example.test/openapi.json',
10
+ );
11
+ });
12
+
13
+ test('falls back to the API base URL for the default Swagger source', () => {
14
+ assert.equal(
15
+ resolveOpenapiSource(' http://localhost:7102/ ', ' '),
16
+ 'http://localhost:7102/swagger/json?version=V31',
17
+ );
18
+ });
19
+
20
+ test('allows an override without an API base URL', () => {
21
+ assert.equal(
22
+ resolveOpenapiSource(undefined, 'https://example.test/swagger.json'),
23
+ 'https://example.test/swagger.json',
24
+ );
25
+ });
26
+
27
+ test('requires an API base URL when no override is available', () => {
28
+ assert.throws(() => resolveOpenapiSource('', ''), /Missing API_BASE_URL/);
29
+ });
@@ -1,13 +1,22 @@
1
1
  import type { ZovaOpenapiConfig } from 'zova-openapi';
2
2
 
3
- export default function (): ZovaOpenapiConfig {
4
- const apiBaseURL = process.env.API_BASE_URL;
5
- if (!apiBaseURL) {
3
+ export function resolveOpenapiSource(
4
+ apiBaseURL = process.env.API_BASE_URL,
5
+ sourceOverride = process.env.OPENAPI_SOURCE_URL,
6
+ ) {
7
+ const override = sourceOverride?.trim();
8
+ if (override) return override;
9
+ const baseURL = apiBaseURL?.trim();
10
+ if (!baseURL) {
6
11
  throw new Error('Missing API_BASE_URL');
7
12
  }
13
+ return `${baseURL.replace(/\/$/, '')}/swagger/json?version=V31`;
14
+ }
15
+
16
+ export default function (): ZovaOpenapiConfig {
8
17
  return {
9
18
  default: {
10
- source: `${apiBaseURL.replace(/\/$/, '')}/swagger/json?version=V31`,
19
+ source: resolveOpenapiSource(),
11
20
  },
12
21
  modules: {},
13
22
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zova-cli",
3
- "version": "1.2.112",
3
+ "version": "1.2.113",
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.110"
47
+ "zova-cli-set-front": "^1.2.111"
48
48
  },
49
49
  "devDependencies": {
50
50
  "clean-package": "^2.2.0",
@@ -1,13 +1,22 @@
1
1
  import type { ZovaOpenapiConfig } from 'zova-openapi';
2
2
 
3
- export default function (): ZovaOpenapiConfig {
4
- const apiBaseURL = process.env.API_BASE_URL;
5
- if (!apiBaseURL) {
3
+ export function resolveOpenapiSource(
4
+ apiBaseURL = process.env.API_BASE_URL,
5
+ sourceOverride = process.env.OPENAPI_SOURCE_URL,
6
+ ) {
7
+ const override = sourceOverride?.trim();
8
+ if (override) return override;
9
+ const baseURL = apiBaseURL?.trim();
10
+ if (!baseURL) {
6
11
  throw new Error('Missing API_BASE_URL');
7
12
  }
13
+ return `${baseURL.replace(/\/$/, '')}/swagger/json?version=V31`;
14
+ }
15
+
16
+ export default function (): ZovaOpenapiConfig {
8
17
  return {
9
18
  default: {
10
- source: `${apiBaseURL.replace(/\/$/, '')}/swagger/json?version=V31`,
19
+ source: resolveOpenapiSource(),
11
20
  },
12
21
  modules: {},
13
22
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zova-cli-set-front",
3
- "version": "1.2.110",
3
+ "version": "1.2.111",
4
4
  "gitHead": "6f675a8cc46d596142c591c28a40cc4d82fcc6cc",
5
5
  "description": "zova cli-set-front",
6
6
  "keywords": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zova",
3
- "version": "5.1.169",
3
+ "version": "5.1.170",
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.168"
49
+ "zova-suite-a-zova": "^5.1.169"
50
50
  },
51
51
  "devDependencies": {
52
52
  "clean-package": "^2.2.0",
@@ -26,7 +26,7 @@ declare module 'zova-module-training-student' {
26
26
  }
27
27
  /** model: end */
28
28
  /** model: begin */
29
- import { ModelStudent } from '../model/student.js';
29
+ import type { ModelStudent } from '../model/student.js';
30
30
  import 'zova';
31
31
  declare module 'zova' {
32
32
  export interface IBeanRecordGeneral {
@@ -57,7 +57,7 @@ declare module 'zova-module-training-student' {
57
57
  }
58
58
  /** api: end */
59
59
  /** api: begin */
60
- import { ApiTrainingStudent } from '../api/trainingStudent.js';
60
+ import type { ApiTrainingStudent } from '../api/trainingStudent.js';
61
61
  export interface IModuleApi {
62
62
  'trainingStudent': ApiTrainingStudent;
63
63
  }
@@ -97,7 +97,7 @@ declare module 'zova-module-training-student' {
97
97
  }
98
98
  /** apiSchema: end */
99
99
  /** apiSchema: begin */
100
- import { ApiSchemaTrainingStudent } from '../apiSchema/trainingStudent.js';
100
+ import type { ApiSchemaTrainingStudent } from '../apiSchema/trainingStudent.js';
101
101
  export interface IModuleApiSchema {
102
102
  'trainingStudent': ApiSchemaTrainingStudent;
103
103
  }
@@ -128,7 +128,7 @@ declare module 'zova-module-training-student' {
128
128
  }
129
129
  /** controller: end */
130
130
  /** controller: begin */
131
- import { ControllerFormFieldLevel } from '../component/formFieldLevel/controller.jsx';
131
+ import type { ControllerFormFieldLevel } from '../component/formFieldLevel/controller.jsx';
132
132
  import 'zova';
133
133
  declare module 'zova' {
134
134
  export interface IBeanRecordLocal {
@@ -208,9 +208,9 @@ declare module 'zova-module-training-student' {
208
208
  }
209
209
  /** tableCell: end */
210
210
  /** tableCell: begin */
211
- import { TableCellActionDeleteForce } from '../bean/tableCell.actionDeleteForce.jsx';
212
- import { TableCellActionSummary } from '../bean/tableCell.actionSummary.jsx';
213
- import { TableCellLevel } from '../bean/tableCell.level.jsx';
211
+ import type { TableCellActionDeleteForce } from '../bean/tableCell.actionDeleteForce.jsx';
212
+ import type { TableCellActionSummary } from '../bean/tableCell.actionSummary.jsx';
213
+ import type { TableCellLevel } from '../bean/tableCell.level.jsx';
214
214
  import 'zova';
215
215
  declare module 'zova' {
216
216
  export interface IBeanRecordGeneral {
@@ -491,6 +491,18 @@ export type ApiSchemaBasicMetricsDtoMetricsQueue =
491
491
  components['schemas']['basic-metrics.dto.metricsQueue'];
492
492
  export type ApiSchemaBasicMetricsDtoMetricsQueuePartial =
493
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>;
494
506
  export type ApiSchemaAFileDtoFileUploadPolicyResponse =
495
507
  components['schemas']['a-file.dto.fileUploadPolicyResponse'];
496
508
  export type ApiSchemaAFileDtoFileUploadPolicyResponsePartial =
@@ -95,22 +95,6 @@ export interface paths {
95
95
  patch?: never;
96
96
  trace?: never;
97
97
  };
98
- '/api/auth/mock/authorize': {
99
- parameters: {
100
- query?: never;
101
- header?: never;
102
- path?: never;
103
- cookie?: never;
104
- };
105
- get: operations['AuthMock_authorize'];
106
- put?: never;
107
- post: operations['AuthMock_authorizePost'];
108
- delete?: never;
109
- options?: never;
110
- head?: never;
111
- patch?: never;
112
- trace?: never;
113
- };
114
98
  '/api/captcha/create': {
115
99
  parameters: {
116
100
  query?: never;
@@ -1303,8 +1287,10 @@ export interface paths {
1303
1287
  path?: never;
1304
1288
  cookie?: never;
1305
1289
  };
1290
+ /** List Students */
1306
1291
  get: operations['TrainingStudent_select'];
1307
1292
  put?: never;
1293
+ /** Create Student */
1308
1294
  post: operations['TrainingStudent_create'];
1309
1295
  delete?: never;
1310
1296
  options?: never;
@@ -1319,12 +1305,15 @@ export interface paths {
1319
1305
  path?: never;
1320
1306
  cookie?: never;
1321
1307
  };
1308
+ /** View Student */
1322
1309
  get: operations['TrainingStudent_view'];
1323
1310
  put?: never;
1324
1311
  post?: never;
1312
+ /** Delete Student */
1325
1313
  delete: operations['TrainingStudent_delete'];
1326
1314
  options?: never;
1327
1315
  head?: never;
1316
+ /** Update Student */
1328
1317
  patch: operations['TrainingStudent_update'];
1329
1318
  trace?: never;
1330
1319
  };
@@ -1335,6 +1324,7 @@ export interface paths {
1335
1324
  path?: never;
1336
1325
  cookie?: never;
1337
1326
  };
1327
+ /** View Student Summary */
1338
1328
  get: operations['TrainingStudent_summary'];
1339
1329
  put?: never;
1340
1330
  post?: never;
@@ -1353,7 +1343,7 @@ export interface paths {
1353
1343
  };
1354
1344
  get?: never;
1355
1345
  put?: never;
1356
- /** Bulk Delete */
1346
+ /** Bulk Delete Students */
1357
1347
  post: operations['TrainingStudent_deleteBulk'];
1358
1348
  delete?: never;
1359
1349
  options?: never;
@@ -1371,6 +1361,7 @@ export interface paths {
1371
1361
  get?: never;
1372
1362
  put?: never;
1373
1363
  post?: never;
1364
+ /** Permanently Delete Student */
1374
1365
  delete: operations['TrainingStudent_deleteForce'];
1375
1366
  options?: never;
1376
1367
  head?: never;
@@ -1393,6 +1384,54 @@ export interface paths {
1393
1384
  patch?: never;
1394
1385
  trace?: never;
1395
1386
  };
1387
+ '/api/layoutprofile/load': {
1388
+ parameters: {
1389
+ query?: never;
1390
+ header?: never;
1391
+ path?: never;
1392
+ cookie?: never;
1393
+ };
1394
+ get: operations['Layoutprofile_load'];
1395
+ put?: never;
1396
+ post?: never;
1397
+ delete?: never;
1398
+ options?: never;
1399
+ head?: never;
1400
+ patch?: never;
1401
+ trace?: never;
1402
+ };
1403
+ '/api/layoutprofile/save': {
1404
+ parameters: {
1405
+ query?: never;
1406
+ header?: never;
1407
+ path?: never;
1408
+ cookie?: never;
1409
+ };
1410
+ get?: never;
1411
+ put?: never;
1412
+ post: operations['Layoutprofile_save'];
1413
+ delete?: never;
1414
+ options?: never;
1415
+ head?: never;
1416
+ patch?: never;
1417
+ trace?: never;
1418
+ };
1419
+ '/api/layoutprofile/reset': {
1420
+ parameters: {
1421
+ query?: never;
1422
+ header?: never;
1423
+ path?: never;
1424
+ cookie?: never;
1425
+ };
1426
+ get?: never;
1427
+ put?: never;
1428
+ post?: never;
1429
+ delete: operations['Layoutprofile_reset'];
1430
+ options?: never;
1431
+ head?: never;
1432
+ patch?: never;
1433
+ trace?: never;
1434
+ };
1396
1435
  '/api/file/upload-policy': {
1397
1436
  parameters: {
1398
1437
  query?: never;
@@ -2625,6 +2664,7 @@ export interface components {
2625
2664
  };
2626
2665
  'home-user.dto.passport_2d063d28bc7243bed02ebd8bddf1212a93c6305b':
2627
2666
  | {
2667
+ instanceId: number | string | undefined;
2628
2668
  user: components['schemas']['home-user.dto.passportUser'];
2629
2669
  auth: components['schemas']['a-auth.dto.auth'];
2630
2670
  roles: components['schemas']['home-user.entity.role'][];
@@ -2699,6 +2739,7 @@ export interface components {
2699
2739
  jwt: components['schemas']['a-jwt.dto.jwtToken'];
2700
2740
  };
2701
2741
  'home-user.dto.passport': {
2742
+ instanceId: number | string | undefined;
2702
2743
  user: components['schemas']['home-user.dto.passportUser'];
2703
2744
  auth: components['schemas']['a-auth.dto.auth'];
2704
2745
  roles: components['schemas']['home-user.entity.role'][];
@@ -4713,6 +4754,41 @@ export interface components {
4713
4754
  | undefined;
4714
4755
  schedulers?: number | undefined;
4715
4756
  };
4757
+ 'a-layoutprofile.dto.layoutProfile_2d063d28bc7243bed02ebd8bddf1212a93c6305b':
4758
+ | {
4759
+ /** @enum {number} */
4760
+ version: 1;
4761
+ schemaFingerprint?: string | undefined;
4762
+ columns: {
4763
+ key: string;
4764
+ visible: true | false;
4765
+ width: 'auto' | number;
4766
+ }[];
4767
+ }
4768
+ | undefined;
4769
+ 'a-layoutprofile.dto.layoutProfile': {
4770
+ /** @enum {number} */
4771
+ version: 1;
4772
+ schemaFingerprint?: string | undefined;
4773
+ columns: {
4774
+ key: string;
4775
+ visible: true | false;
4776
+ width: 'auto' | number;
4777
+ }[];
4778
+ };
4779
+ 'a-layoutprofile.dto.layoutProfileSave': {
4780
+ layoutKey: string;
4781
+ profile: {
4782
+ /** @enum {number} */
4783
+ version: 1;
4784
+ schemaFingerprint?: string | undefined;
4785
+ columns: {
4786
+ key: string;
4787
+ visible: true | false;
4788
+ width: 'auto' | number;
4789
+ }[];
4790
+ };
4791
+ };
4716
4792
  'a-file.dto.fileUploadPolicyResponse': {
4717
4793
  fileScene: string;
4718
4794
  maxSize?: number | undefined;
@@ -5448,61 +5524,6 @@ export interface operations {
5448
5524
  };
5449
5525
  };
5450
5526
  };
5451
- AuthMock_authorize: {
5452
- parameters: {
5453
- query?: never;
5454
- header?: never;
5455
- path?: never;
5456
- cookie?: never;
5457
- };
5458
- requestBody?: never;
5459
- responses: {
5460
- 200: {
5461
- headers: {
5462
- [name: string]: unknown;
5463
- };
5464
- content: {
5465
- 'application/json': {
5466
- code: string;
5467
- message: string;
5468
- data?: unknown;
5469
- };
5470
- };
5471
- };
5472
- };
5473
- };
5474
- AuthMock_authorizePost: {
5475
- parameters: {
5476
- query: {
5477
- redirect_uri: string;
5478
- state: string;
5479
- };
5480
- header?: never;
5481
- path?: never;
5482
- cookie?: never;
5483
- };
5484
- requestBody: {
5485
- content: {
5486
- 'application/json': {
5487
- username: string;
5488
- };
5489
- };
5490
- };
5491
- responses: {
5492
- 200: {
5493
- headers: {
5494
- [name: string]: unknown;
5495
- };
5496
- content: {
5497
- 'application/json': {
5498
- code: string;
5499
- message: string;
5500
- data?: unknown;
5501
- };
5502
- };
5503
- };
5504
- };
5505
- };
5506
5527
  Captcha_create: {
5507
5528
  parameters: {
5508
5529
  query?: never;
@@ -8325,6 +8346,86 @@ export interface operations {
8325
8346
  };
8326
8347
  authToken: true;
8327
8348
  };
8349
+ Layoutprofile_load: {
8350
+ parameters: {
8351
+ query: {
8352
+ layoutKey: string;
8353
+ };
8354
+ header?: never;
8355
+ path?: never;
8356
+ cookie?: never;
8357
+ };
8358
+ requestBody?: never;
8359
+ responses: {
8360
+ 200: {
8361
+ headers: {
8362
+ [name: string]: unknown;
8363
+ };
8364
+ content: {
8365
+ 'application/json': {
8366
+ code: string;
8367
+ message: string;
8368
+ data?: components['schemas']['a-layoutprofile.dto.layoutProfile_2d063d28bc7243bed02ebd8bddf1212a93c6305b'];
8369
+ };
8370
+ };
8371
+ };
8372
+ };
8373
+ authToken: true;
8374
+ };
8375
+ Layoutprofile_save: {
8376
+ parameters: {
8377
+ query?: never;
8378
+ header?: never;
8379
+ path?: never;
8380
+ cookie?: never;
8381
+ };
8382
+ requestBody: {
8383
+ content: {
8384
+ 'application/json': components['schemas']['a-layoutprofile.dto.layoutProfileSave'];
8385
+ };
8386
+ };
8387
+ responses: {
8388
+ 200: {
8389
+ headers: {
8390
+ [name: string]: unknown;
8391
+ };
8392
+ content: {
8393
+ 'application/json': {
8394
+ code: string;
8395
+ message: string;
8396
+ data: components['schemas']['a-layoutprofile.dto.layoutProfile'];
8397
+ };
8398
+ };
8399
+ };
8400
+ };
8401
+ authToken: true;
8402
+ };
8403
+ Layoutprofile_reset: {
8404
+ parameters: {
8405
+ query: {
8406
+ layoutKey: string;
8407
+ };
8408
+ header?: never;
8409
+ path?: never;
8410
+ cookie?: never;
8411
+ };
8412
+ requestBody?: never;
8413
+ responses: {
8414
+ 200: {
8415
+ headers: {
8416
+ [name: string]: unknown;
8417
+ };
8418
+ content: {
8419
+ 'application/json': {
8420
+ code: string;
8421
+ message: string;
8422
+ data?: unknown;
8423
+ };
8424
+ };
8425
+ };
8426
+ };
8427
+ authToken: true;
8428
+ };
8328
8429
  File_getUploadPolicy: {
8329
8430
  parameters: {
8330
8431
  query?: never;