cabloy 5.1.114 → 5.1.116
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/.github/workflows/vona-test-mysql.yml +6 -10
- package/.github/workflows/vona-test-pg.yml +6 -10
- package/CHANGELOG.md +20 -0
- package/cabloy-docs/backend/orm-mutation-guide.md +36 -10
- package/cabloy-docs/backend/orm-select-guide.md +15 -10
- package/package.json +1 -1
- package/vona/packages-vona/vona/package.json +1 -1
- package/vona/pnpm-lock.yaml +37 -37
- package/vona/pnpm-workspace.yaml +1 -1
- package/vona/src/suite/a-commerce/modules/commerce-catalog/test/sku.test.ts +1 -1
- package/vona/src/suite/a-commerce/modules/commerce-member/test/addressOwnership.test.ts +4 -1
- package/vona/src/suite/a-commerce/modules/commerce-promotion/src/dto/couponIssue.tsx +1 -1
- package/vona/src/suite/a-commerce/modules/commerce-promotion/src/service/coupon.ts +4 -1
- package/vona/src/suite/a-commerce/modules/commerce-promotion/test/couponReservation.test.ts +85 -2
- package/vona/src/suite/a-commerce/modules/commerce-trade/src/service/cart.ts +14 -0
- package/vona/src/suite/a-commerce/modules/commerce-trade/src/service/order.ts +42 -2
- package/vona/src/suite/a-commerce/modules/commerce-trade/src/service/stockBalance.ts +4 -3
- package/vona/src/suite/a-commerce/modules/commerce-trade/test/cartOwnership.test.ts +160 -80
- package/vona/src/suite/a-commerce/modules/commerce-trade/test/checkoutReservation.test.ts +255 -1
- package/vona/src/suite/a-commerce/modules/commerce-trade/test/checkoutTransaction.test.ts +208 -0
- package/vona/src/suite/a-commerce/modules/commerce-trade/test/orderSnapshot.test.ts +28 -4
- package/vona/src/suite/a-commerce/modules/commerce-trade/test/reservationExpiry.test.ts +90 -8
- package/vona/src/suite/a-commerce/modules/commerce-trade/test/stockBalance.test.ts +15 -1
- package/vona/src/suite/a-commerce/modules/commerce-trade/test/stockReservation.test.ts +20 -2
- package/vona/src/suite/a-commerce/modules/commerce-trade/test/testLock.ts +11 -0
- package/vona/src/suite-vendor/a-vona/modules/a-orm/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/bean.model/bean.model_crud_inner.ts +3 -0
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/bean.model/bean.model_utils.ts +1 -1
- package/vona/src/suite-vendor/a-vona/package.json +1 -1
- package/zova/pnpm-lock.yaml +31 -31
- package/zova/src/suite/a-commerce/modules/commerce-promotion/src/api/openapi/schemas.ts +40 -32
- package/zova/src/suite/a-commerce/modules/commerce-promotion/src/api/openapi/types.ts +638 -633
- /package/vona/patches/{zova-core@5.1.78.patch → zova-core@5.1.79.patch} +0 -0
|
@@ -1,31 +1,36 @@
|
|
|
1
1
|
import assert from 'node:assert';
|
|
2
2
|
import { randomUUID } from 'node:crypto';
|
|
3
|
-
import { describe, it } from 'node:test';
|
|
3
|
+
import { after, before, describe, it } from 'node:test';
|
|
4
4
|
import { app } from 'vona-mock';
|
|
5
5
|
|
|
6
|
+
import { acquireTestLock } from './testLock.ts';
|
|
7
|
+
|
|
6
8
|
interface IFixture {
|
|
7
9
|
categoryId?: number;
|
|
8
10
|
productId?: number;
|
|
9
11
|
skuId?: number;
|
|
10
12
|
balanceId?: number;
|
|
13
|
+
userId?: number;
|
|
14
|
+
couponTemplateId?: number;
|
|
15
|
+
couponGrantId?: number;
|
|
11
16
|
cartId?: number;
|
|
12
17
|
addressId?: number;
|
|
13
18
|
orderId?: number;
|
|
14
19
|
orderLineId?: number;
|
|
15
20
|
reservationId?: number;
|
|
16
21
|
paymentAttemptId?: number;
|
|
17
|
-
orderAuditIds?: number[];
|
|
18
22
|
}
|
|
19
23
|
|
|
20
24
|
async function cleanup(fixture: IFixture) {
|
|
21
25
|
const trade = app.scope('commerce-trade');
|
|
22
26
|
const payment = app.scope('commerce-payment');
|
|
27
|
+
const promotion = app.scope('commerce-promotion');
|
|
23
28
|
const member = app.scope('commerce-member');
|
|
24
29
|
const catalog = app.scope('commerce-catalog');
|
|
25
|
-
if (fixture.paymentAttemptId !== undefined)
|
|
26
|
-
await payment.model.paymentAttempt.delete({ id: fixture.paymentAttemptId });
|
|
27
30
|
if (fixture.orderId !== undefined)
|
|
28
31
|
await trade.model.orderAudit.delete({ orderId: fixture.orderId });
|
|
32
|
+
if (fixture.paymentAttemptId !== undefined)
|
|
33
|
+
await payment.model.paymentAttempt.delete({ id: fixture.paymentAttemptId });
|
|
29
34
|
if (fixture.skuId !== undefined) await trade.model.stockAudit.delete({ skuId: fixture.skuId });
|
|
30
35
|
if (fixture.reservationId !== undefined)
|
|
31
36
|
await trade.model.stockReservation.delete({ id: fixture.reservationId });
|
|
@@ -36,6 +41,17 @@ async function cleanup(fixture: IFixture) {
|
|
|
36
41
|
await trade.model.cartItem.delete({ cartId: fixture.cartId });
|
|
37
42
|
await trade.model.cart.delete({ id: fixture.cartId });
|
|
38
43
|
}
|
|
44
|
+
if (fixture.addressId !== undefined) await member.model.address.delete({ id: fixture.addressId });
|
|
45
|
+
if (fixture.couponGrantId !== undefined) {
|
|
46
|
+
await promotion.model.couponAudit.delete({ couponGrantId: fixture.couponGrantId });
|
|
47
|
+
await promotion.model.couponGrant.delete({ id: fixture.couponGrantId });
|
|
48
|
+
}
|
|
49
|
+
if (fixture.couponTemplateId !== undefined)
|
|
50
|
+
await promotion.model.couponTemplate.delete({ id: fixture.couponTemplateId });
|
|
51
|
+
if (fixture.userId !== undefined) {
|
|
52
|
+
await app.scope('home-user').model.roleUser.delete({ userId: fixture.userId });
|
|
53
|
+
await app.bean.user.removeById(fixture.userId);
|
|
54
|
+
}
|
|
39
55
|
if (fixture.balanceId !== undefined)
|
|
40
56
|
await trade.model.stockBalance.delete({ id: fixture.balanceId });
|
|
41
57
|
if (fixture.skuId !== undefined) await catalog.model.sku.delete({ id: fixture.skuId });
|
|
@@ -43,16 +59,28 @@ async function cleanup(fixture: IFixture) {
|
|
|
43
59
|
await catalog.model.product.delete({ id: fixture.productId });
|
|
44
60
|
if (fixture.categoryId !== undefined)
|
|
45
61
|
await catalog.model.category.delete({ id: fixture.categoryId });
|
|
46
|
-
if (fixture.addressId !== undefined) await member.model.address.delete({ id: fixture.addressId });
|
|
47
62
|
}
|
|
48
63
|
|
|
49
|
-
describe('reservationExpiry.test.ts', { concurrency: false }, () => {
|
|
64
|
+
describe('reservationExpiry.test.ts', { concurrency: false, sequential: true }, () => {
|
|
65
|
+
let releaseTestLock: (() => void) | undefined;
|
|
66
|
+
|
|
67
|
+
before(async () => {
|
|
68
|
+
releaseTestLock = await acquireTestLock();
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
after(() => {
|
|
72
|
+
releaseTestLock?.();
|
|
73
|
+
});
|
|
74
|
+
|
|
50
75
|
it('expires an unpaid order and releases its reservation exactly once', async () => {
|
|
51
76
|
await app.bean.executor.mockCtx(async () => {
|
|
52
77
|
const fixture: IFixture = {};
|
|
53
78
|
const suffix = randomUUID().slice(0, 12);
|
|
54
79
|
try {
|
|
55
|
-
|
|
80
|
+
const customerName = `expiry-customer-${suffix}`;
|
|
81
|
+
const customer = await app.bean.user.register({ name: customerName }, true);
|
|
82
|
+
fixture.userId = customer.id as number;
|
|
83
|
+
await app.bean.passport.signinMock(customerName as any);
|
|
56
84
|
const userId = app.bean.passport.currentUser!.id;
|
|
57
85
|
fixture.categoryId = await app.bean.executor.performAction(
|
|
58
86
|
'post',
|
|
@@ -88,6 +116,27 @@ describe('reservationExpiry.test.ts', { concurrency: false }, () => {
|
|
|
88
116
|
correlationId: `expiry-stock-${suffix}`,
|
|
89
117
|
});
|
|
90
118
|
fixture.balanceId = balance.id as number;
|
|
119
|
+
fixture.couponTemplateId = (
|
|
120
|
+
await app.scope('commerce-promotion').model.couponTemplate.insert({
|
|
121
|
+
name: `expiry-coupon-${suffix}`,
|
|
122
|
+
state: 'active',
|
|
123
|
+
currency: 'USD',
|
|
124
|
+
discountCents: 500,
|
|
125
|
+
minSpendCents: 800,
|
|
126
|
+
validFrom: new Date(Date.now() - 1_000),
|
|
127
|
+
validUntil: new Date(Date.now() + 60_000),
|
|
128
|
+
issuedCount: 0,
|
|
129
|
+
redeemedCount: 0,
|
|
130
|
+
})
|
|
131
|
+
).id as number;
|
|
132
|
+
fixture.couponGrantId = (
|
|
133
|
+
await app.scope('commerce-promotion').service.coupon.issue({
|
|
134
|
+
templateId: fixture.couponTemplateId,
|
|
135
|
+
userId,
|
|
136
|
+
correlationId: `expiry-coupon-${suffix}`,
|
|
137
|
+
reason: 'expiry fixture',
|
|
138
|
+
})
|
|
139
|
+
).id as number;
|
|
91
140
|
fixture.addressId = await app.bean.executor.performAction(
|
|
92
141
|
'post',
|
|
93
142
|
'/commerce/member/address',
|
|
@@ -112,6 +161,7 @@ describe('reservationExpiry.test.ts', { concurrency: false }, () => {
|
|
|
112
161
|
});
|
|
113
162
|
const created = await app.scope('commerce-trade').service.order.checkout({
|
|
114
163
|
addressId: fixture.addressId,
|
|
164
|
+
couponGrantId: fixture.couponGrantId,
|
|
115
165
|
correlationId: `expiry-${suffix}`,
|
|
116
166
|
});
|
|
117
167
|
fixture.orderId = created.orderId as number;
|
|
@@ -125,7 +175,7 @@ describe('reservationExpiry.test.ts', { concurrency: false }, () => {
|
|
|
125
175
|
.model.stockReservation.get({ orderLineId: line?.id });
|
|
126
176
|
fixture.reservationId = reservation?.id as number;
|
|
127
177
|
await app.scope('commerce-trade').model.order.updateById(created.orderId, {
|
|
128
|
-
reservationExpiresAt: new Date(Date.now() -
|
|
178
|
+
reservationExpiresAt: new Date(Date.now() - 1_000),
|
|
129
179
|
});
|
|
130
180
|
|
|
131
181
|
assert.equal(
|
|
@@ -138,10 +188,42 @@ describe('reservationExpiry.test.ts', { concurrency: false }, () => {
|
|
|
138
188
|
);
|
|
139
189
|
const order = await app.scope('commerce-trade').model.order.getById(created.orderId);
|
|
140
190
|
assert.equal(order?.state, 'expired');
|
|
191
|
+
const grant = await app
|
|
192
|
+
.scope('commerce-promotion')
|
|
193
|
+
.model.couponGrant.getById(fixture.couponGrantId!);
|
|
194
|
+
assert.equal(grant?.state, 'available');
|
|
195
|
+
assert.equal(grant?.reservationOrderId, undefined);
|
|
196
|
+
assert.equal(grant?.reservationCorrelationId, undefined);
|
|
197
|
+
assert.equal(grant?.reservedAt, undefined);
|
|
198
|
+
const couponAudits = await app.scope('commerce-promotion').model.couponAudit.select({
|
|
199
|
+
where: { couponGrantId: fixture.couponGrantId },
|
|
200
|
+
orders: [['id', 'asc']],
|
|
201
|
+
});
|
|
202
|
+
assert.deepEqual(
|
|
203
|
+
couponAudits.map(item => item.operation),
|
|
204
|
+
['issue', 'reserve', 'release'],
|
|
205
|
+
);
|
|
206
|
+
assert.equal(couponAudits.filter(item => item.operation === 'release').length, 1);
|
|
141
207
|
const released = await app
|
|
142
208
|
.scope('commerce-trade')
|
|
143
209
|
.model.stockReservation.getById(reservation!.id);
|
|
144
210
|
assert.equal(released?.state, 'released');
|
|
211
|
+
const releasedBalance = await app
|
|
212
|
+
.scope('commerce-trade')
|
|
213
|
+
.model.stockBalance.getById(fixture.balanceId!);
|
|
214
|
+
assert.deepEqual(
|
|
215
|
+
[releasedBalance?.onHand, releasedBalance?.reserved, releasedBalance?.available],
|
|
216
|
+
[1, 0, 1],
|
|
217
|
+
);
|
|
218
|
+
const stockAudits = await app.scope('commerce-trade').model.stockAudit.select({
|
|
219
|
+
where: { skuId: fixture.skuId },
|
|
220
|
+
orders: [['id', 'asc']],
|
|
221
|
+
});
|
|
222
|
+
assert.deepEqual(
|
|
223
|
+
stockAudits.map(item => item.operation),
|
|
224
|
+
['adjust', 'reserve', 'release'],
|
|
225
|
+
);
|
|
226
|
+
assert.equal(stockAudits.filter(item => item.operation === 'release').length, 1);
|
|
145
227
|
const attempt = await app
|
|
146
228
|
.scope('commerce-payment')
|
|
147
229
|
.model.paymentAttempt.getById(created.paymentAttemptId);
|
|
@@ -3,9 +3,11 @@ import type { DtoStockAdjust, EntityStockBalance } from 'vona-module-commerce-tr
|
|
|
3
3
|
import { catchError } from '@cabloy/utils';
|
|
4
4
|
import assert from 'node:assert';
|
|
5
5
|
import { randomUUID } from 'node:crypto';
|
|
6
|
-
import { describe, it } from 'node:test';
|
|
6
|
+
import { after, before, describe, it } from 'node:test';
|
|
7
7
|
import { app } from 'vona-mock';
|
|
8
8
|
|
|
9
|
+
import { acquireTestLock } from './testLock.ts';
|
|
10
|
+
|
|
9
11
|
const actionPath = '/commerce/trade/stockBalance/adjustStock';
|
|
10
12
|
|
|
11
13
|
interface IStockFixture {
|
|
@@ -80,6 +82,16 @@ async function adjustStock(stockAdjust: DtoStockAdjust): Promise<EntityStockBala
|
|
|
80
82
|
}
|
|
81
83
|
|
|
82
84
|
describe('stockBalance.test.ts', { concurrency: false }, () => {
|
|
85
|
+
let releaseTestLock: (() => void) | undefined;
|
|
86
|
+
|
|
87
|
+
before(async () => {
|
|
88
|
+
releaseTestLock = await acquireTestLock();
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
after(() => {
|
|
92
|
+
releaseTestLock?.();
|
|
93
|
+
});
|
|
94
|
+
|
|
83
95
|
it('action:stockBalance:adjustStock appends an audit with server-scoped balance', async () => {
|
|
84
96
|
await app.bean.executor.mockCtx(async () => {
|
|
85
97
|
let fixture: IStockFixture | undefined;
|
|
@@ -103,6 +115,7 @@ describe('stockBalance.test.ts', { concurrency: false }, () => {
|
|
|
103
115
|
|
|
104
116
|
const audits = await app.scope('commerce-trade').model.stockAudit.select({
|
|
105
117
|
where: { skuId: fixture.skuId },
|
|
118
|
+
orders: [['id', 'asc']],
|
|
106
119
|
});
|
|
107
120
|
assert.equal(audits.length, 2);
|
|
108
121
|
assert.deepEqual(
|
|
@@ -141,6 +154,7 @@ describe('stockBalance.test.ts', { concurrency: false }, () => {
|
|
|
141
154
|
const [_, err] = await catchError(() =>
|
|
142
155
|
adjustStock(stockAdjust(fixture.skuId, -3, `${fixture.skuId}-reject`)),
|
|
143
156
|
);
|
|
157
|
+
assert.equal(err?.code, 409);
|
|
144
158
|
assert.match(err?.message ?? '', /negative/);
|
|
145
159
|
|
|
146
160
|
const unchanged = await app.scope('commerce-trade').model.stockBalance.getById(balance.id);
|
|
@@ -3,9 +3,11 @@ import type { EntityStockReservation } from 'vona-module-commerce-trade';
|
|
|
3
3
|
import { catchError } from '@cabloy/utils';
|
|
4
4
|
import assert from 'node:assert';
|
|
5
5
|
import { randomUUID } from 'node:crypto';
|
|
6
|
-
import { describe, it } from 'node:test';
|
|
6
|
+
import { after, before, describe, it } from 'node:test';
|
|
7
7
|
import { app } from 'vona-mock';
|
|
8
8
|
|
|
9
|
+
import { acquireTestLock } from './testLock.ts';
|
|
10
|
+
|
|
9
11
|
interface IStockFixture {
|
|
10
12
|
categoryId: number;
|
|
11
13
|
productId: number;
|
|
@@ -95,7 +97,10 @@ async function assertReservationRejected(skuId: number, suffix: string, expected
|
|
|
95
97
|
const balance = await app.scope('commerce-trade').model.stockBalance.get({ skuId });
|
|
96
98
|
assert.deepEqual([balance?.onHand, balance?.reserved, balance?.available], [3, 0, 3]);
|
|
97
99
|
assert.equal(await app.scope('commerce-trade').model.stockReservation.get({ skuId }), undefined);
|
|
98
|
-
const audits = await app.scope('commerce-trade').model.stockAudit.select({
|
|
100
|
+
const audits = await app.scope('commerce-trade').model.stockAudit.select({
|
|
101
|
+
where: { skuId },
|
|
102
|
+
orders: [['id', 'asc']],
|
|
103
|
+
});
|
|
99
104
|
assert.deepEqual(
|
|
100
105
|
audits.map(audit => audit.operation),
|
|
101
106
|
['adjust'],
|
|
@@ -103,6 +108,16 @@ async function assertReservationRejected(skuId: number, suffix: string, expected
|
|
|
103
108
|
}
|
|
104
109
|
|
|
105
110
|
describe('stockReservation.test.ts', { concurrency: false }, () => {
|
|
111
|
+
let releaseTestLock: (() => void) | undefined;
|
|
112
|
+
|
|
113
|
+
before(async () => {
|
|
114
|
+
releaseTestLock = await acquireTestLock();
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
after(() => {
|
|
118
|
+
releaseTestLock?.();
|
|
119
|
+
});
|
|
120
|
+
|
|
106
121
|
it('reserves and consumes stock exactly once with traceable audits', async () => {
|
|
107
122
|
await app.bean.executor.mockCtx(async () => {
|
|
108
123
|
const fixtures: IStockFixturePartial[] = [];
|
|
@@ -149,6 +164,7 @@ describe('stockReservation.test.ts', { concurrency: false }, () => {
|
|
|
149
164
|
);
|
|
150
165
|
const audits = await app.scope('commerce-trade').model.stockAudit.select({
|
|
151
166
|
where: { skuId: fixture.skuId },
|
|
167
|
+
orders: [['id', 'asc']],
|
|
152
168
|
});
|
|
153
169
|
assert.deepEqual(
|
|
154
170
|
audits.map(audit => audit.operation),
|
|
@@ -240,6 +256,7 @@ describe('stockReservation.test.ts', { concurrency: false }, () => {
|
|
|
240
256
|
assert.deepEqual([balance?.onHand, balance?.reserved, balance?.available], [3, 0, 3]);
|
|
241
257
|
const audits = await app.scope('commerce-trade').model.stockAudit.select({
|
|
242
258
|
where: { skuId: fixture.skuId },
|
|
259
|
+
orders: [['id', 'asc']],
|
|
243
260
|
});
|
|
244
261
|
assert.equal(audits.length, 6);
|
|
245
262
|
assert.deepEqual(
|
|
@@ -368,6 +385,7 @@ describe('stockReservation.test.ts', { concurrency: false }, () => {
|
|
|
368
385
|
});
|
|
369
386
|
const audits = await app.scope('commerce-trade').model.stockAudit.select({
|
|
370
387
|
where: { skuId: fixture.skuId },
|
|
388
|
+
orders: [['id', 'asc']],
|
|
371
389
|
});
|
|
372
390
|
assert.equal(reservations.length, 1);
|
|
373
391
|
assert.deepEqual(
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
let pending = Promise.resolve();
|
|
2
|
+
|
|
3
|
+
export async function acquireTestLock(): Promise<() => void> {
|
|
4
|
+
const previous = pending;
|
|
5
|
+
let release: () => void;
|
|
6
|
+
pending = new Promise<void>(resolve => {
|
|
7
|
+
release = resolve;
|
|
8
|
+
});
|
|
9
|
+
await previous;
|
|
10
|
+
return release!;
|
|
11
|
+
}
|
package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/bean.model/bean.model_crud_inner.ts
CHANGED
|
@@ -253,6 +253,9 @@ export class BeanModelCrudInner<TRecord extends {}> extends BeanModelView<TRecor
|
|
|
253
253
|
if (!table) return this.scopeOrm.error.ShouldSpecifyTable.throw();
|
|
254
254
|
// data
|
|
255
255
|
[data] = await this.prepareData(table, data);
|
|
256
|
+
for (const key in data) {
|
|
257
|
+
if (data[key] === undefined) data[key] = null as never;
|
|
258
|
+
}
|
|
256
259
|
// where
|
|
257
260
|
const where = Object.assign({}, options?.where);
|
|
258
261
|
// id
|
|
@@ -49,7 +49,7 @@ export class BeanModelUtils<TRecord extends {}> extends BeanModelMeta<TRecord> {
|
|
|
49
49
|
if (Object.prototype.hasOwnProperty.call(item, columnName)) {
|
|
50
50
|
let value = item[columnName];
|
|
51
51
|
dataOriginal[columnName] = value;
|
|
52
|
-
if (column.type === 'json' && value
|
|
52
|
+
if (column.type === 'json' && !isNil(value)) {
|
|
53
53
|
value = JSON.stringify(value);
|
|
54
54
|
}
|
|
55
55
|
data[columnName] = value;
|
package/zova/pnpm-lock.yaml
CHANGED
|
@@ -22,8 +22,8 @@ importers:
|
|
|
22
22
|
.:
|
|
23
23
|
dependencies:
|
|
24
24
|
'@cabloy/compose':
|
|
25
|
-
specifier: ^2.1.
|
|
26
|
-
version: 2.1.
|
|
25
|
+
specifier: ^2.1.9
|
|
26
|
+
version: 2.1.9
|
|
27
27
|
'@cabloy/deps':
|
|
28
28
|
specifier: ^1.1.8
|
|
29
29
|
version: 1.1.8
|
|
@@ -77,7 +77,7 @@ importers:
|
|
|
77
77
|
version: 10.5.2(postcss@8.5.15)
|
|
78
78
|
axios:
|
|
79
79
|
specifier: ^1.18.1
|
|
80
|
-
version: 1.18.1
|
|
80
|
+
version: 1.18.1
|
|
81
81
|
compression:
|
|
82
82
|
specifier: ^1.8.1
|
|
83
83
|
version: 1.8.1
|
|
@@ -136,7 +136,7 @@ importers:
|
|
|
136
136
|
specifier: workspace:^
|
|
137
137
|
version: link:packages-zova/zova
|
|
138
138
|
zova-jsx:
|
|
139
|
-
specifier: ^1.1.
|
|
139
|
+
specifier: ^1.1.79
|
|
140
140
|
version: link:packages-utils/zova-jsx
|
|
141
141
|
zova-module-a-api:
|
|
142
142
|
specifier: workspace:^
|
|
@@ -339,7 +339,7 @@ importers:
|
|
|
339
339
|
devDependencies:
|
|
340
340
|
'@cabloy/cli':
|
|
341
341
|
specifier: ^3.1.28
|
|
342
|
-
version: 3.1.28(
|
|
342
|
+
version: 3.1.28(vue@3.5.38(typescript@5.9.3))
|
|
343
343
|
'@cabloy/lint':
|
|
344
344
|
specifier: ^5.1.27
|
|
345
345
|
version: 5.1.30(@typescript-eslint/eslint-plugin@8.62.1(@typescript-eslint/parser@8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@5.9.3))(eslint@10.6.0(jiti@2.7.0))(typescript@5.9.3))(@typescript-eslint/rule-tester@8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@5.9.3))(@typescript-eslint/typescript-estree@8.62.1(typescript@5.9.3))(@typescript-eslint/utils@8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@5.9.3))(eslint@10.6.0(jiti@2.7.0))(oxfmt@0.45.0)(oxlint@1.72.0)(supports-color@10.2.2)(typescript@5.9.3)(vue-eslint-parser@10.4.1(eslint@10.6.0(jiti@2.7.0)))
|
|
@@ -414,7 +414,7 @@ importers:
|
|
|
414
414
|
dependencies:
|
|
415
415
|
'@cabloy/cli':
|
|
416
416
|
specifier: ^3.1.28
|
|
417
|
-
version: 3.1.28(
|
|
417
|
+
version: 3.1.28(vue@3.5.38(typescript@5.9.3))
|
|
418
418
|
'@cabloy/process-helper':
|
|
419
419
|
specifier: ^3.1.8
|
|
420
420
|
version: 3.1.8
|
|
@@ -448,7 +448,7 @@ importers:
|
|
|
448
448
|
version: 7.29.7(@babel/core@7.29.7)
|
|
449
449
|
'@cabloy/cli':
|
|
450
450
|
specifier: ^3.1.28
|
|
451
|
-
version: 3.1.28(
|
|
451
|
+
version: 3.1.28(vue@3.5.38(typescript@5.9.3))
|
|
452
452
|
'@cabloy/extend':
|
|
453
453
|
specifier: ^3.2.8
|
|
454
454
|
version: 3.2.8
|
|
@@ -687,8 +687,8 @@ importers:
|
|
|
687
687
|
packages-utils/zova-jsx:
|
|
688
688
|
dependencies:
|
|
689
689
|
'@cabloy/compose':
|
|
690
|
-
specifier: ^2.1.
|
|
691
|
-
version: 2.1.
|
|
690
|
+
specifier: ^2.1.9
|
|
691
|
+
version: 2.1.9
|
|
692
692
|
'@cabloy/utils':
|
|
693
693
|
specifier: ^2.1.26
|
|
694
694
|
version: 2.1.26
|
|
@@ -702,7 +702,7 @@ importers:
|
|
|
702
702
|
specifier: ^3.5.38
|
|
703
703
|
version: 3.5.38(typescript@5.9.3)
|
|
704
704
|
zova-core:
|
|
705
|
-
specifier: ^5.1.
|
|
705
|
+
specifier: ^5.1.79
|
|
706
706
|
version: link:../../packages-zova/zova-core
|
|
707
707
|
devDependencies:
|
|
708
708
|
clean-package:
|
|
@@ -843,10 +843,10 @@ importers:
|
|
|
843
843
|
packages-zova/zova:
|
|
844
844
|
dependencies:
|
|
845
845
|
zova-core:
|
|
846
|
-
specifier: ^5.1.
|
|
846
|
+
specifier: ^5.1.79
|
|
847
847
|
version: link:../zova-core
|
|
848
848
|
zova-suite-a-zova:
|
|
849
|
-
specifier: ^5.1.
|
|
849
|
+
specifier: ^5.1.139
|
|
850
850
|
version: link:../../src/suite-vendor/a-zova
|
|
851
851
|
devDependencies:
|
|
852
852
|
clean-package:
|
|
@@ -859,8 +859,8 @@ importers:
|
|
|
859
859
|
packages-zova/zova-core:
|
|
860
860
|
dependencies:
|
|
861
861
|
'@cabloy/compose':
|
|
862
|
-
specifier: ^2.1.
|
|
863
|
-
version: 2.1.
|
|
862
|
+
specifier: ^2.1.9
|
|
863
|
+
version: 2.1.9
|
|
864
864
|
'@cabloy/extend':
|
|
865
865
|
specifier: ^3.2.8
|
|
866
866
|
version: 3.2.8
|
|
@@ -1031,7 +1031,7 @@ importers:
|
|
|
1031
1031
|
specifier: ^5.1.36
|
|
1032
1032
|
version: link:modules/a-zod
|
|
1033
1033
|
zova-module-a-zova:
|
|
1034
|
-
specifier: ^5.1.
|
|
1034
|
+
specifier: ^5.1.94
|
|
1035
1035
|
version: link:modules/a-zova
|
|
1036
1036
|
|
|
1037
1037
|
src/suite-vendor/a-zova/modules/a-api:
|
|
@@ -1105,7 +1105,7 @@ importers:
|
|
|
1105
1105
|
dependencies:
|
|
1106
1106
|
axios:
|
|
1107
1107
|
specifier: ^1.18.1
|
|
1108
|
-
version: 1.18.1
|
|
1108
|
+
version: 1.18.1
|
|
1109
1109
|
devDependencies:
|
|
1110
1110
|
clean-package:
|
|
1111
1111
|
specifier: ^2.2.0
|
|
@@ -1346,8 +1346,8 @@ importers:
|
|
|
1346
1346
|
src/suite-vendor/a-zova/modules/a-zova:
|
|
1347
1347
|
dependencies:
|
|
1348
1348
|
'@cabloy/compose':
|
|
1349
|
-
specifier: ^2.1.
|
|
1350
|
-
version: 2.1.
|
|
1349
|
+
specifier: ^2.1.9
|
|
1350
|
+
version: 2.1.9
|
|
1351
1351
|
'@cabloy/deps':
|
|
1352
1352
|
specifier: ^1.1.8
|
|
1353
1353
|
version: 1.1.8
|
|
@@ -1373,12 +1373,12 @@ importers:
|
|
|
1373
1373
|
specifier: ^3.7.2
|
|
1374
1374
|
version: 3.7.2
|
|
1375
1375
|
zova-jsx:
|
|
1376
|
-
specifier: ^1.1.
|
|
1376
|
+
specifier: ^1.1.79
|
|
1377
1377
|
version: link:../../../../../packages-utils/zova-jsx
|
|
1378
1378
|
devDependencies:
|
|
1379
1379
|
'@cabloy/cli':
|
|
1380
1380
|
specifier: ^3.1.28
|
|
1381
|
-
version: 3.1.28(
|
|
1381
|
+
version: 3.1.28(vue@3.5.38(typescript@5.9.3))
|
|
1382
1382
|
'@types/luxon':
|
|
1383
1383
|
specifier: ^3.7.1
|
|
1384
1384
|
version: 3.7.2
|
|
@@ -2112,8 +2112,8 @@ packages:
|
|
|
2112
2112
|
'@cabloy/cli@3.1.28':
|
|
2113
2113
|
resolution: {integrity: sha512-wZO0cZsi6UbQ4tQt3uIPmBr6GA0xbF0EMHSsqoe2NHtGZFsEQPU9Vb0uAyGjo7GXUtM5nR/9cTs5BCz6ehtfdA==}
|
|
2114
2114
|
|
|
2115
|
-
'@cabloy/compose@2.1.
|
|
2116
|
-
resolution: {integrity: sha512-
|
|
2115
|
+
'@cabloy/compose@2.1.9':
|
|
2116
|
+
resolution: {integrity: sha512-b+EB7EDQz7dDdrvFEmRIpGpW0jvDEmYGChSbKx0wzki6AGCj0z3lNm4qnkgM5+CTQIKBU2FmvDcQjU5r6Cj6SA==}
|
|
2117
2117
|
|
|
2118
2118
|
'@cabloy/deps@1.1.8':
|
|
2119
2119
|
resolution: {integrity: sha512-CWaVGSwPI5qLSuRF+WmB+1CwbRe9+PR+nkUmKc9/Dj7sB75qPXLTYACn23T/jIylbDbWCL82LoOa455Vgseyeg==}
|
|
@@ -8351,7 +8351,7 @@ snapshots:
|
|
|
8351
8351
|
|
|
8352
8352
|
'@bufbuild/protobuf@2.12.1': {}
|
|
8353
8353
|
|
|
8354
|
-
'@cabloy/cli@3.1.28(
|
|
8354
|
+
'@cabloy/cli@3.1.28(vue@3.5.38(typescript@5.9.3))':
|
|
8355
8355
|
dependencies:
|
|
8356
8356
|
'@babel/parser': 7.29.7
|
|
8357
8357
|
'@cabloy/module-glob': 5.3.17
|
|
@@ -8360,7 +8360,7 @@ snapshots:
|
|
|
8360
8360
|
'@cabloy/utils': 2.1.26
|
|
8361
8361
|
'@cabloy/word-utils': link:packages-utils/word-utils
|
|
8362
8362
|
'@npmcli/config': 10.11.0
|
|
8363
|
-
'@zhennann/common-bin': 4.0.1
|
|
8363
|
+
'@zhennann/common-bin': 4.0.1
|
|
8364
8364
|
'@zhennann/ejs': 3.0.1
|
|
8365
8365
|
boxen: 4.2.0
|
|
8366
8366
|
chalk: 3.0.0
|
|
@@ -8379,7 +8379,7 @@ snapshots:
|
|
|
8379
8379
|
- supports-color
|
|
8380
8380
|
- vue
|
|
8381
8381
|
|
|
8382
|
-
'@cabloy/compose@2.1.
|
|
8382
|
+
'@cabloy/compose@2.1.9': {}
|
|
8383
8383
|
|
|
8384
8384
|
'@cabloy/deps@1.1.8': {}
|
|
8385
8385
|
|
|
@@ -10386,7 +10386,7 @@ snapshots:
|
|
|
10386
10386
|
|
|
10387
10387
|
'@vue/shared@3.5.13': {}
|
|
10388
10388
|
|
|
10389
|
-
'@zhennann/common-bin@4.0.1
|
|
10389
|
+
'@zhennann/common-bin@4.0.1':
|
|
10390
10390
|
dependencies:
|
|
10391
10391
|
chalk: 4.1.2
|
|
10392
10392
|
change-case: 4.1.2
|
|
@@ -10420,7 +10420,7 @@ snapshots:
|
|
|
10420
10420
|
|
|
10421
10421
|
acorn@8.17.0: {}
|
|
10422
10422
|
|
|
10423
|
-
agent-base@6.0.2
|
|
10423
|
+
agent-base@6.0.2:
|
|
10424
10424
|
dependencies:
|
|
10425
10425
|
debug: 4.4.3(supports-color@10.2.2)
|
|
10426
10426
|
transitivePeerDependencies:
|
|
@@ -10532,11 +10532,11 @@ snapshots:
|
|
|
10532
10532
|
dependencies:
|
|
10533
10533
|
possible-typed-array-names: 1.1.0
|
|
10534
10534
|
|
|
10535
|
-
axios@1.18.1
|
|
10535
|
+
axios@1.18.1:
|
|
10536
10536
|
dependencies:
|
|
10537
10537
|
follow-redirects: 1.16.0
|
|
10538
10538
|
form-data: 4.0.6
|
|
10539
|
-
https-proxy-agent: 5.0.1
|
|
10539
|
+
https-proxy-agent: 5.0.1
|
|
10540
10540
|
proxy-from-env: 2.1.0
|
|
10541
10541
|
transitivePeerDependencies:
|
|
10542
10542
|
- debug
|
|
@@ -11958,9 +11958,9 @@ snapshots:
|
|
|
11958
11958
|
statuses: 2.0.2
|
|
11959
11959
|
toidentifier: 1.0.1
|
|
11960
11960
|
|
|
11961
|
-
https-proxy-agent@5.0.1
|
|
11961
|
+
https-proxy-agent@5.0.1:
|
|
11962
11962
|
dependencies:
|
|
11963
|
-
agent-base: 6.0.2
|
|
11963
|
+
agent-base: 6.0.2
|
|
11964
11964
|
debug: 4.4.3(supports-color@10.2.2)
|
|
11965
11965
|
transitivePeerDependencies:
|
|
11966
11966
|
- supports-color
|
|
@@ -28,6 +28,38 @@ export type ApiSchemaCommerceMemberDtoAddressUpdate =
|
|
|
28
28
|
components['schemas']['commerce-member.dto.addressUpdate'];
|
|
29
29
|
export type ApiSchemaCommerceMemberDtoAddressUpdatePartial =
|
|
30
30
|
Partial<ApiSchemaCommerceMemberDtoAddressUpdate>;
|
|
31
|
+
export type ApiSchemaHomeUserDtoPassport_2d063d28bc7243bed02ebd8bddf1212a93c6305b =
|
|
32
|
+
components['schemas']['home-user.dto.passport_2d063d28bc7243bed02ebd8bddf1212a93c6305b'];
|
|
33
|
+
export type ApiSchemaHomeUserDtoPassport_2d063d28bc7243bed02ebd8bddf1212a93c6305bPartial =
|
|
34
|
+
Partial<ApiSchemaHomeUserDtoPassport_2d063d28bc7243bed02ebd8bddf1212a93c6305b>;
|
|
35
|
+
export type ApiSchemaHomeUserEntityUser = components['schemas']['home-user.entity.user'];
|
|
36
|
+
export type ApiSchemaHomeUserEntityUserPartial = Partial<ApiSchemaHomeUserEntityUser>;
|
|
37
|
+
export type ApiSchemaAAuthDtoAuth = components['schemas']['a-auth.dto.auth'];
|
|
38
|
+
export type ApiSchemaAAuthDtoAuthPartial = Partial<ApiSchemaAAuthDtoAuth>;
|
|
39
|
+
export type ApiSchemaHomeUserEntityRole = components['schemas']['home-user.entity.role'];
|
|
40
|
+
export type ApiSchemaHomeUserEntityRolePartial = Partial<ApiSchemaHomeUserEntityRole>;
|
|
41
|
+
export type ApiSchemaHomeUserDtoPassportJwt = components['schemas']['home-user.dto.passportJwt'];
|
|
42
|
+
export type ApiSchemaHomeUserDtoPassportJwtPartial = Partial<ApiSchemaHomeUserDtoPassportJwt>;
|
|
43
|
+
export type ApiSchemaHomeUserDtoPassport = components['schemas']['home-user.dto.passport'];
|
|
44
|
+
export type ApiSchemaHomeUserDtoPassportPartial = Partial<ApiSchemaHomeUserDtoPassport>;
|
|
45
|
+
export type ApiSchemaAJwtDtoJwtToken = components['schemas']['a-jwt.dto.jwtToken'];
|
|
46
|
+
export type ApiSchemaAJwtDtoJwtTokenPartial = Partial<ApiSchemaAJwtDtoJwtToken>;
|
|
47
|
+
export type ApiSchemaHomeUserDtoRegister = components['schemas']['home-user.dto.register'];
|
|
48
|
+
export type ApiSchemaHomeUserDtoRegisterPartial = Partial<ApiSchemaHomeUserDtoRegister>;
|
|
49
|
+
export type ApiSchemaACaptchaDtoCaptchaVerify_67c39cad0735f2460ecc6bef838440b07c4dcfa9 =
|
|
50
|
+
components['schemas']['a-captcha.dto.captchaVerify_67c39cad0735f2460ecc6bef838440b07c4dcfa9'];
|
|
51
|
+
export type ApiSchemaACaptchaDtoCaptchaVerify_67c39cad0735f2460ecc6bef838440b07c4dcfa9Partial =
|
|
52
|
+
Partial<ApiSchemaACaptchaDtoCaptchaVerify_67c39cad0735f2460ecc6bef838440b07c4dcfa9>;
|
|
53
|
+
export type ApiSchemaHomeUserDtoLogin = components['schemas']['home-user.dto.login'];
|
|
54
|
+
export type ApiSchemaHomeUserDtoLoginPartial = Partial<ApiSchemaHomeUserDtoLogin>;
|
|
55
|
+
export type ApiSchemaACaptchaDtoCaptchaVerify_67c39cad0735f2460ecc6bef838440b07c4dcfa9_f73253d699f0fd90b98fded80a123a0a180dbca2_144c29cc01b745c0021a6682766a475fe639fb8f_626802c24df1498cec99aab0854fedf90c9b6dd3_9aa4df25b9311e645e1c9dfbe6b7ece6398da661 =
|
|
56
|
+
components['schemas']['a-captcha.dto.captchaVerify_67c39cad0735f2460ecc6bef838440b07c4dcfa9_f73253d699f0fd90b98fded80a123a0a180dbca2_144c29cc01b745c0021a6682766a475fe639fb8f_626802c24df1498cec99aab0854fedf90c9b6dd3_9aa4df25b9311e645e1c9dfbe6b7ece6398da661'];
|
|
57
|
+
export type ApiSchemaACaptchaDtoCaptchaVerify_67c39cad0735f2460ecc6bef838440b07c4dcfa9_f73253d699f0fd90b98fded80a123a0a180dbca2_144c29cc01b745c0021a6682766a475fe639fb8f_626802c24df1498cec99aab0854fedf90c9b6dd3_9aa4df25b9311e645e1c9dfbe6b7ece6398da661Partial =
|
|
58
|
+
Partial<ApiSchemaACaptchaDtoCaptchaVerify_67c39cad0735f2460ecc6bef838440b07c4dcfa9_f73253d699f0fd90b98fded80a123a0a180dbca2_144c29cc01b745c0021a6682766a475fe639fb8f_626802c24df1498cec99aab0854fedf90c9b6dd3_9aa4df25b9311e645e1c9dfbe6b7ece6398da661>;
|
|
59
|
+
export type ApiSchemaCommerceSiteadminDtoOperatorContext =
|
|
60
|
+
components['schemas']['commerce-siteadmin.dto.operatorContext'];
|
|
61
|
+
export type ApiSchemaCommerceSiteadminDtoOperatorContextPartial =
|
|
62
|
+
Partial<ApiSchemaCommerceSiteadminDtoOperatorContext>;
|
|
31
63
|
export type ApiSchemaCommercePromotionDtoCouponMineItem =
|
|
32
64
|
components['schemas']['commerce-promotion.dto.couponMineItem'];
|
|
33
65
|
export type ApiSchemaCommercePromotionDtoCouponMineItemPartial =
|
|
@@ -70,6 +102,14 @@ export type ApiSchemaCommerceTradeDtoCartUpdateItem =
|
|
|
70
102
|
components['schemas']['commerce-trade.dto.cartUpdateItem'];
|
|
71
103
|
export type ApiSchemaCommerceTradeDtoCartUpdateItemPartial =
|
|
72
104
|
Partial<ApiSchemaCommerceTradeDtoCartUpdateItem>;
|
|
105
|
+
export type ApiSchemaCommerceTradeDtoCheckoutResult =
|
|
106
|
+
components['schemas']['commerce-trade.dto.checkoutResult'];
|
|
107
|
+
export type ApiSchemaCommerceTradeDtoCheckoutResultPartial =
|
|
108
|
+
Partial<ApiSchemaCommerceTradeDtoCheckoutResult>;
|
|
109
|
+
export type ApiSchemaCommerceTradeDtoCheckoutCreate =
|
|
110
|
+
components['schemas']['commerce-trade.dto.checkoutCreate'];
|
|
111
|
+
export type ApiSchemaCommerceTradeDtoCheckoutCreatePartial =
|
|
112
|
+
Partial<ApiSchemaCommerceTradeDtoCheckoutCreate>;
|
|
73
113
|
export type ApiSchemaCommerceTradeDtoStockAuditSelectRes =
|
|
74
114
|
components['schemas']['commerce-trade.dto.stockAuditSelectRes'];
|
|
75
115
|
export type ApiSchemaCommerceTradeDtoStockAuditSelectResPartial =
|
|
@@ -182,38 +222,6 @@ export type ApiSchemaCommerceCatalogDtoSkuUpdate =
|
|
|
182
222
|
components['schemas']['commerce-catalog.dto.skuUpdate'];
|
|
183
223
|
export type ApiSchemaCommerceCatalogDtoSkuUpdatePartial =
|
|
184
224
|
Partial<ApiSchemaCommerceCatalogDtoSkuUpdate>;
|
|
185
|
-
export type ApiSchemaHomeUserDtoPassport_2d063d28bc7243bed02ebd8bddf1212a93c6305b =
|
|
186
|
-
components['schemas']['home-user.dto.passport_2d063d28bc7243bed02ebd8bddf1212a93c6305b'];
|
|
187
|
-
export type ApiSchemaHomeUserDtoPassport_2d063d28bc7243bed02ebd8bddf1212a93c6305bPartial =
|
|
188
|
-
Partial<ApiSchemaHomeUserDtoPassport_2d063d28bc7243bed02ebd8bddf1212a93c6305b>;
|
|
189
|
-
export type ApiSchemaHomeUserEntityUser = components['schemas']['home-user.entity.user'];
|
|
190
|
-
export type ApiSchemaHomeUserEntityUserPartial = Partial<ApiSchemaHomeUserEntityUser>;
|
|
191
|
-
export type ApiSchemaAAuthDtoAuth = components['schemas']['a-auth.dto.auth'];
|
|
192
|
-
export type ApiSchemaAAuthDtoAuthPartial = Partial<ApiSchemaAAuthDtoAuth>;
|
|
193
|
-
export type ApiSchemaHomeUserEntityRole = components['schemas']['home-user.entity.role'];
|
|
194
|
-
export type ApiSchemaHomeUserEntityRolePartial = Partial<ApiSchemaHomeUserEntityRole>;
|
|
195
|
-
export type ApiSchemaHomeUserDtoPassportJwt = components['schemas']['home-user.dto.passportJwt'];
|
|
196
|
-
export type ApiSchemaHomeUserDtoPassportJwtPartial = Partial<ApiSchemaHomeUserDtoPassportJwt>;
|
|
197
|
-
export type ApiSchemaHomeUserDtoPassport = components['schemas']['home-user.dto.passport'];
|
|
198
|
-
export type ApiSchemaHomeUserDtoPassportPartial = Partial<ApiSchemaHomeUserDtoPassport>;
|
|
199
|
-
export type ApiSchemaAJwtDtoJwtToken = components['schemas']['a-jwt.dto.jwtToken'];
|
|
200
|
-
export type ApiSchemaAJwtDtoJwtTokenPartial = Partial<ApiSchemaAJwtDtoJwtToken>;
|
|
201
|
-
export type ApiSchemaHomeUserDtoRegister = components['schemas']['home-user.dto.register'];
|
|
202
|
-
export type ApiSchemaHomeUserDtoRegisterPartial = Partial<ApiSchemaHomeUserDtoRegister>;
|
|
203
|
-
export type ApiSchemaACaptchaDtoCaptchaVerify_67c39cad0735f2460ecc6bef838440b07c4dcfa9 =
|
|
204
|
-
components['schemas']['a-captcha.dto.captchaVerify_67c39cad0735f2460ecc6bef838440b07c4dcfa9'];
|
|
205
|
-
export type ApiSchemaACaptchaDtoCaptchaVerify_67c39cad0735f2460ecc6bef838440b07c4dcfa9Partial =
|
|
206
|
-
Partial<ApiSchemaACaptchaDtoCaptchaVerify_67c39cad0735f2460ecc6bef838440b07c4dcfa9>;
|
|
207
|
-
export type ApiSchemaHomeUserDtoLogin = components['schemas']['home-user.dto.login'];
|
|
208
|
-
export type ApiSchemaHomeUserDtoLoginPartial = Partial<ApiSchemaHomeUserDtoLogin>;
|
|
209
|
-
export type ApiSchemaACaptchaDtoCaptchaVerify_67c39cad0735f2460ecc6bef838440b07c4dcfa9_f73253d699f0fd90b98fded80a123a0a180dbca2_144c29cc01b745c0021a6682766a475fe639fb8f_626802c24df1498cec99aab0854fedf90c9b6dd3_9aa4df25b9311e645e1c9dfbe6b7ece6398da661 =
|
|
210
|
-
components['schemas']['a-captcha.dto.captchaVerify_67c39cad0735f2460ecc6bef838440b07c4dcfa9_f73253d699f0fd90b98fded80a123a0a180dbca2_144c29cc01b745c0021a6682766a475fe639fb8f_626802c24df1498cec99aab0854fedf90c9b6dd3_9aa4df25b9311e645e1c9dfbe6b7ece6398da661'];
|
|
211
|
-
export type ApiSchemaACaptchaDtoCaptchaVerify_67c39cad0735f2460ecc6bef838440b07c4dcfa9_f73253d699f0fd90b98fded80a123a0a180dbca2_144c29cc01b745c0021a6682766a475fe639fb8f_626802c24df1498cec99aab0854fedf90c9b6dd3_9aa4df25b9311e645e1c9dfbe6b7ece6398da661Partial =
|
|
212
|
-
Partial<ApiSchemaACaptchaDtoCaptchaVerify_67c39cad0735f2460ecc6bef838440b07c4dcfa9_f73253d699f0fd90b98fded80a123a0a180dbca2_144c29cc01b745c0021a6682766a475fe639fb8f_626802c24df1498cec99aab0854fedf90c9b6dd3_9aa4df25b9311e645e1c9dfbe6b7ece6398da661>;
|
|
213
|
-
export type ApiSchemaCommerceSiteadminDtoOperatorContext =
|
|
214
|
-
components['schemas']['commerce-siteadmin.dto.operatorContext'];
|
|
215
|
-
export type ApiSchemaCommerceSiteadminDtoOperatorContextPartial =
|
|
216
|
-
Partial<ApiSchemaCommerceSiteadminDtoOperatorContext>;
|
|
217
225
|
export type ApiSchemaAMenuDtoMenus = components['schemas']['a-menu.dto.menus'];
|
|
218
226
|
export type ApiSchemaAMenuDtoMenusPartial = Partial<ApiSchemaAMenuDtoMenus>;
|
|
219
227
|
export type ApiSchemaAMenuDtoMenuItem = components['schemas']['a-menu.dto.menuItem'];
|