@sayren/store-sdk 0.20.0 → 0.22.0
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/dist/index.d.mts +1485 -24
- package/dist/index.mjs +974 -383
- package/package.json +1 -1
- package/src/client.ts +112 -0
- package/src/index.ts +1 -0
- package/src/schemas/order.ts +15 -0
- package/src/schemas/product.ts +234 -7
- package/src/schemas/promotion.ts +3 -1
- package/src/schemas/saved-option-set.ts +168 -0
- package/src/schemas/storefront-hosting.ts +487 -4
- package/src/schemas/webhook-event.ts +19 -1
package/dist/index.d.mts
CHANGED
|
@@ -921,8 +921,8 @@ export declare const oauthClientRegistrationRequestSchema: z.ZodObject<{
|
|
|
921
921
|
}>>;
|
|
922
922
|
redirect_uris: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
923
923
|
grant_types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
924
|
-
refresh_token: "refresh_token";
|
|
925
924
|
authorization_code: "authorization_code";
|
|
925
|
+
refresh_token: "refresh_token";
|
|
926
926
|
client_credentials: "client_credentials";
|
|
927
927
|
"urn:ietf:params:oauth:grant-type:token-exchange": "urn:ietf:params:oauth:grant-type:token-exchange";
|
|
928
928
|
}>>>;
|
|
@@ -1171,11 +1171,11 @@ export type ApiTokenCreateRequest = z.infer<typeof apiTokenCreateRequestSchema>;
|
|
|
1171
1171
|
//#endregion
|
|
1172
1172
|
//#region src/schemas/category.d.ts
|
|
1173
1173
|
export declare const categoryProductSortSchema: z.ZodEnum<{
|
|
1174
|
+
NAME: "NAME";
|
|
1174
1175
|
RECENT: "RECENT";
|
|
1175
1176
|
POPULAR: "POPULAR";
|
|
1176
1177
|
PRICE_LOW: "PRICE_LOW";
|
|
1177
1178
|
PRICE_HIGH: "PRICE_HIGH";
|
|
1178
|
-
NAME: "NAME";
|
|
1179
1179
|
}>;
|
|
1180
1180
|
export type CategoryProductSort = z.infer<typeof categoryProductSortSchema>;
|
|
1181
1181
|
export declare const categorySchema: z.ZodObject<{
|
|
@@ -1191,11 +1191,11 @@ export declare const categorySchema: z.ZodObject<{
|
|
|
1191
1191
|
showPc: z.ZodBoolean;
|
|
1192
1192
|
showMobile: z.ZodBoolean;
|
|
1193
1193
|
productSort: z.ZodEnum<{
|
|
1194
|
+
NAME: "NAME";
|
|
1194
1195
|
RECENT: "RECENT";
|
|
1195
1196
|
POPULAR: "POPULAR";
|
|
1196
1197
|
PRICE_LOW: "PRICE_LOW";
|
|
1197
1198
|
PRICE_HIGH: "PRICE_HIGH";
|
|
1198
|
-
NAME: "NAME";
|
|
1199
1199
|
}>;
|
|
1200
1200
|
metaTitle: z.ZodNullable<z.ZodString>;
|
|
1201
1201
|
metaDescription: z.ZodNullable<z.ZodString>;
|
|
@@ -1221,11 +1221,11 @@ export declare const categoryWithPathSchema: z.ZodObject<{
|
|
|
1221
1221
|
showPc: z.ZodBoolean;
|
|
1222
1222
|
showMobile: z.ZodBoolean;
|
|
1223
1223
|
productSort: z.ZodEnum<{
|
|
1224
|
+
NAME: "NAME";
|
|
1224
1225
|
RECENT: "RECENT";
|
|
1225
1226
|
POPULAR: "POPULAR";
|
|
1226
1227
|
PRICE_LOW: "PRICE_LOW";
|
|
1227
1228
|
PRICE_HIGH: "PRICE_HIGH";
|
|
1228
|
-
NAME: "NAME";
|
|
1229
1229
|
}>;
|
|
1230
1230
|
metaTitle: z.ZodNullable<z.ZodString>;
|
|
1231
1231
|
metaDescription: z.ZodNullable<z.ZodString>;
|
|
@@ -1246,11 +1246,11 @@ export declare const categoryWithPathSchema: z.ZodObject<{
|
|
|
1246
1246
|
showPc: z.ZodBoolean;
|
|
1247
1247
|
showMobile: z.ZodBoolean;
|
|
1248
1248
|
productSort: z.ZodEnum<{
|
|
1249
|
+
NAME: "NAME";
|
|
1249
1250
|
RECENT: "RECENT";
|
|
1250
1251
|
POPULAR: "POPULAR";
|
|
1251
1252
|
PRICE_LOW: "PRICE_LOW";
|
|
1252
1253
|
PRICE_HIGH: "PRICE_HIGH";
|
|
1253
|
-
NAME: "NAME";
|
|
1254
1254
|
}>;
|
|
1255
1255
|
metaTitle: z.ZodNullable<z.ZodString>;
|
|
1256
1256
|
metaDescription: z.ZodNullable<z.ZodString>;
|
|
@@ -1274,11 +1274,11 @@ export declare const categorySearchResultSchema: z.ZodObject<{
|
|
|
1274
1274
|
showPc: z.ZodBoolean;
|
|
1275
1275
|
showMobile: z.ZodBoolean;
|
|
1276
1276
|
productSort: z.ZodEnum<{
|
|
1277
|
+
NAME: "NAME";
|
|
1277
1278
|
RECENT: "RECENT";
|
|
1278
1279
|
POPULAR: "POPULAR";
|
|
1279
1280
|
PRICE_LOW: "PRICE_LOW";
|
|
1280
1281
|
PRICE_HIGH: "PRICE_HIGH";
|
|
1281
|
-
NAME: "NAME";
|
|
1282
1282
|
}>;
|
|
1283
1283
|
metaTitle: z.ZodNullable<z.ZodString>;
|
|
1284
1284
|
metaDescription: z.ZodNullable<z.ZodString>;
|
|
@@ -1299,11 +1299,11 @@ export declare const categorySearchResultSchema: z.ZodObject<{
|
|
|
1299
1299
|
showPc: z.ZodBoolean;
|
|
1300
1300
|
showMobile: z.ZodBoolean;
|
|
1301
1301
|
productSort: z.ZodEnum<{
|
|
1302
|
+
NAME: "NAME";
|
|
1302
1303
|
RECENT: "RECENT";
|
|
1303
1304
|
POPULAR: "POPULAR";
|
|
1304
1305
|
PRICE_LOW: "PRICE_LOW";
|
|
1305
1306
|
PRICE_HIGH: "PRICE_HIGH";
|
|
1306
|
-
NAME: "NAME";
|
|
1307
1307
|
}>;
|
|
1308
1308
|
metaTitle: z.ZodNullable<z.ZodString>;
|
|
1309
1309
|
metaDescription: z.ZodNullable<z.ZodString>;
|
|
@@ -1335,11 +1335,11 @@ export declare const categoryCreateRequestSchema: z.ZodObject<{
|
|
|
1335
1335
|
showPc: z.ZodOptional<z.ZodBoolean>;
|
|
1336
1336
|
showMobile: z.ZodOptional<z.ZodBoolean>;
|
|
1337
1337
|
productSort: z.ZodOptional<z.ZodEnum<{
|
|
1338
|
+
NAME: "NAME";
|
|
1338
1339
|
RECENT: "RECENT";
|
|
1339
1340
|
POPULAR: "POPULAR";
|
|
1340
1341
|
PRICE_LOW: "PRICE_LOW";
|
|
1341
1342
|
PRICE_HIGH: "PRICE_HIGH";
|
|
1342
|
-
NAME: "NAME";
|
|
1343
1343
|
}>>;
|
|
1344
1344
|
metaTitle: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1345
1345
|
metaDescription: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -1354,11 +1354,11 @@ export declare const categoryPatchRequestSchema: z.ZodObject<{
|
|
|
1354
1354
|
showPc: z.ZodOptional<z.ZodBoolean>;
|
|
1355
1355
|
showMobile: z.ZodOptional<z.ZodBoolean>;
|
|
1356
1356
|
productSort: z.ZodOptional<z.ZodEnum<{
|
|
1357
|
+
NAME: "NAME";
|
|
1357
1358
|
RECENT: "RECENT";
|
|
1358
1359
|
POPULAR: "POPULAR";
|
|
1359
1360
|
PRICE_LOW: "PRICE_LOW";
|
|
1360
1361
|
PRICE_HIGH: "PRICE_HIGH";
|
|
1361
|
-
NAME: "NAME";
|
|
1362
1362
|
}>>;
|
|
1363
1363
|
metaTitle: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1364
1364
|
metaDescription: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -3238,6 +3238,16 @@ export declare const orderItemSchema: z.ZodObject<{
|
|
|
3238
3238
|
productName: z.ZodString;
|
|
3239
3239
|
optionId: z.ZodNullable<z.ZodString>;
|
|
3240
3240
|
optionName: z.ZodNullable<z.ZodString>;
|
|
3241
|
+
optionSelections: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
3242
|
+
kind: z.ZodString;
|
|
3243
|
+
groupName: z.ZodString;
|
|
3244
|
+
valueName: z.ZodString;
|
|
3245
|
+
additionalPrice: z.ZodNumber;
|
|
3246
|
+
}, z.core.$strip>>>>;
|
|
3247
|
+
customInputs: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
3248
|
+
label: z.ZodString;
|
|
3249
|
+
value: z.ZodString;
|
|
3250
|
+
}, z.core.$strip>>>>;
|
|
3241
3251
|
sellerCode: z.ZodNullable<z.ZodString>;
|
|
3242
3252
|
fulfillmentSnapshot: z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
3243
3253
|
type: z.ZodLiteral<"SHIPPING">;
|
|
@@ -3387,6 +3397,16 @@ export declare const orderSchema: z.ZodObject<{
|
|
|
3387
3397
|
productName: z.ZodString;
|
|
3388
3398
|
optionId: z.ZodNullable<z.ZodString>;
|
|
3389
3399
|
optionName: z.ZodNullable<z.ZodString>;
|
|
3400
|
+
optionSelections: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
3401
|
+
kind: z.ZodString;
|
|
3402
|
+
groupName: z.ZodString;
|
|
3403
|
+
valueName: z.ZodString;
|
|
3404
|
+
additionalPrice: z.ZodNumber;
|
|
3405
|
+
}, z.core.$strip>>>>;
|
|
3406
|
+
customInputs: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
3407
|
+
label: z.ZodString;
|
|
3408
|
+
value: z.ZodString;
|
|
3409
|
+
}, z.core.$strip>>>>;
|
|
3390
3410
|
sellerCode: z.ZodNullable<z.ZodString>;
|
|
3391
3411
|
fulfillmentSnapshot: z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
3392
3412
|
type: z.ZodLiteral<"SHIPPING">;
|
|
@@ -3493,6 +3513,16 @@ export declare const orderItemPageSchema: z.ZodObject<{
|
|
|
3493
3513
|
productName: z.ZodString;
|
|
3494
3514
|
optionId: z.ZodNullable<z.ZodString>;
|
|
3495
3515
|
optionName: z.ZodNullable<z.ZodString>;
|
|
3516
|
+
optionSelections: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
3517
|
+
kind: z.ZodString;
|
|
3518
|
+
groupName: z.ZodString;
|
|
3519
|
+
valueName: z.ZodString;
|
|
3520
|
+
additionalPrice: z.ZodNumber;
|
|
3521
|
+
}, z.core.$strip>>>>;
|
|
3522
|
+
customInputs: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
3523
|
+
label: z.ZodString;
|
|
3524
|
+
value: z.ZodString;
|
|
3525
|
+
}, z.core.$strip>>>>;
|
|
3496
3526
|
sellerCode: z.ZodNullable<z.ZodString>;
|
|
3497
3527
|
fulfillmentSnapshot: z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
3498
3528
|
type: z.ZodLiteral<"SHIPPING">;
|
|
@@ -4851,8 +4881,124 @@ export declare const productVariantSchema: z.ZodObject<{
|
|
|
4851
4881
|
weightGram: z.ZodNullable<z.ZodNumber>;
|
|
4852
4882
|
sellerCode: z.ZodNullable<z.ZodString>;
|
|
4853
4883
|
usable: z.ZodBoolean;
|
|
4884
|
+
hasOrders: z.ZodOptional<z.ZodBoolean>;
|
|
4854
4885
|
}, z.core.$strip>;
|
|
4855
4886
|
export type ProductVariant = z.infer<typeof productVariantSchema>;
|
|
4887
|
+
/** 옵션 축(그룹) 최대 개수 — 스키마 상한의 단일 원천 */
|
|
4888
|
+
export declare const MAX_OPTION_GROUPS = 3;
|
|
4889
|
+
/** 축 하나가 가질 수 있는 값의 최대 개수 */
|
|
4890
|
+
export declare const MAX_VALUES_PER_GROUP = 100;
|
|
4891
|
+
/** 상품 하나가 가질 수 있는 variant(SKU) 최대 개수 */
|
|
4892
|
+
export declare const MAX_VARIANTS = 500;
|
|
4893
|
+
/** 추가 선택 옵션명 최대 개수 */
|
|
4894
|
+
export declare const MAX_ADDON_GROUPS = 5;
|
|
4895
|
+
/** 직접 입력 항목 최대 개수 */
|
|
4896
|
+
export declare const MAX_CUSTOM_INPUTS = 5;
|
|
4897
|
+
/** 직접 입력 항목 최대 글자 수의 상한 */
|
|
4898
|
+
export declare const MAX_CUSTOM_INPUT_LENGTH = 200;
|
|
4899
|
+
/** 조합 수가 이 값 이상이면 콘솔이 경고한다(상한은 `MAX_VARIANTS`) */
|
|
4900
|
+
export declare const VARIANT_COUNT_WARNING = 100;
|
|
4901
|
+
/**
|
|
4902
|
+
* 옵션 값 정렬 순서 — 등록순·가나다순·낮은 추가금순·높은 추가금순. 서버가 저장할 때 이 순서로 값의 `sortOrder`를 매긴다.
|
|
4903
|
+
* 추가금순은 추가 선택 값이면 값의 추가금, 조합 값이면 그 값이 든 조합 추가금의 최솟값으로 비교하고 같으면 등록순이다.
|
|
4904
|
+
*/
|
|
4905
|
+
export declare const optionSortSchema: z.ZodEnum<{
|
|
4906
|
+
REGISTERED: "REGISTERED";
|
|
4907
|
+
NAME: "NAME";
|
|
4908
|
+
PRICE_ASC: "PRICE_ASC";
|
|
4909
|
+
PRICE_DESC: "PRICE_DESC";
|
|
4910
|
+
}>;
|
|
4911
|
+
export type OptionSort = z.infer<typeof optionSortSchema>;
|
|
4912
|
+
/** 추가 선택 값 — 예: 옵션명 "선물 포장"의 값 "포장함"(+2,000원) */
|
|
4913
|
+
export declare const addonValueSchema: z.ZodObject<{
|
|
4914
|
+
valueId: z.ZodString;
|
|
4915
|
+
name: z.ZodString;
|
|
4916
|
+
sortOrder: z.ZodNumber;
|
|
4917
|
+
additionalPrice: z.ZodNumber;
|
|
4918
|
+
usable: z.ZodBoolean;
|
|
4919
|
+
}, z.core.$strip>;
|
|
4920
|
+
export type AddonValue = z.infer<typeof addonValueSchema>;
|
|
4921
|
+
/** 추가 선택 옵션명 */
|
|
4922
|
+
export declare const addonGroupSchema: z.ZodObject<{
|
|
4923
|
+
groupId: z.ZodString;
|
|
4924
|
+
name: z.ZodString;
|
|
4925
|
+
sortOrder: z.ZodNumber;
|
|
4926
|
+
required: z.ZodBoolean;
|
|
4927
|
+
values: z.ZodArray<z.ZodObject<{
|
|
4928
|
+
valueId: z.ZodString;
|
|
4929
|
+
name: z.ZodString;
|
|
4930
|
+
sortOrder: z.ZodNumber;
|
|
4931
|
+
additionalPrice: z.ZodNumber;
|
|
4932
|
+
usable: z.ZodBoolean;
|
|
4933
|
+
}, z.core.$strip>>;
|
|
4934
|
+
}, z.core.$strip>;
|
|
4935
|
+
export type AddonGroup = z.infer<typeof addonGroupSchema>;
|
|
4936
|
+
/** 직접 입력 항목 — 예: 각인 문구 */
|
|
4937
|
+
export declare const customInputSchema: z.ZodObject<{
|
|
4938
|
+
inputId: z.ZodString;
|
|
4939
|
+
label: z.ZodString;
|
|
4940
|
+
placeholder: z.ZodNullable<z.ZodString>;
|
|
4941
|
+
maxLength: z.ZodNumber;
|
|
4942
|
+
required: z.ZodBoolean;
|
|
4943
|
+
usable: z.ZodBoolean;
|
|
4944
|
+
sortOrder: z.ZodNumber;
|
|
4945
|
+
}, z.core.$strip>;
|
|
4946
|
+
export type CustomInput = z.infer<typeof customInputSchema>;
|
|
4947
|
+
/**
|
|
4948
|
+
* 직접 입력 항목명에 쓸 수 없는 개인정보성 단어 — 콘솔 검사와 서버 400(`CUSTOM_INPUT_LABEL_FORBIDDEN`)이 이 목록 하나를 쓴다.
|
|
4949
|
+
* 구매자 개인정보는 주문 정보로 받는다. 직접 입력 항목으로 받으면 보관·파기 규칙 밖에 남는다.
|
|
4950
|
+
*/
|
|
4951
|
+
export declare const CUSTOM_INPUT_FORBIDDEN_WORDS: readonly ["연락처", "전화", "휴대폰", "핸드폰", "폰번호", "메일", "주소", "주민", "생년월일", "생일", "실명", "계좌", "카드번호", "비밀번호", "여권", "통관", "phone", "mobile", "mail", "address"];
|
|
4952
|
+
/**
|
|
4953
|
+
* 직접 입력 항목명·입력 안내에 든 개인정보성 금지어. 없으면 null. 공백·기호·대소문자·전각을 무시한다.
|
|
4954
|
+
* 서버는 항목명과 입력 안내 둘 다 이 함수로 검사한다(안내에 「연락처를 적어 주십시오」라고 쓰는 우회를 막는다).
|
|
4955
|
+
*/
|
|
4956
|
+
export declare function customInputLabelForbiddenWord(label: string): string | null;
|
|
4957
|
+
export declare const addonValueRequestSchema: z.ZodObject<{
|
|
4958
|
+
valueId: z.ZodOptional<z.ZodString>;
|
|
4959
|
+
name: z.ZodString;
|
|
4960
|
+
additionalPrice: z.ZodDefault<z.ZodNumber>;
|
|
4961
|
+
usable: z.ZodDefault<z.ZodBoolean>;
|
|
4962
|
+
}, z.core.$strip>;
|
|
4963
|
+
export type AddonValueRequest = z.infer<typeof addonValueRequestSchema>;
|
|
4964
|
+
export declare const addonGroupRequestSchema: z.ZodObject<{
|
|
4965
|
+
groupId: z.ZodOptional<z.ZodString>;
|
|
4966
|
+
name: z.ZodString;
|
|
4967
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
4968
|
+
values: z.ZodArray<z.ZodObject<{
|
|
4969
|
+
valueId: z.ZodOptional<z.ZodString>;
|
|
4970
|
+
name: z.ZodString;
|
|
4971
|
+
additionalPrice: z.ZodDefault<z.ZodNumber>;
|
|
4972
|
+
usable: z.ZodDefault<z.ZodBoolean>;
|
|
4973
|
+
}, z.core.$strip>>;
|
|
4974
|
+
}, z.core.$strip>;
|
|
4975
|
+
export type AddonGroupRequest = z.infer<typeof addonGroupRequestSchema>;
|
|
4976
|
+
export declare const customInputRequestSchema: z.ZodObject<{
|
|
4977
|
+
inputId: z.ZodOptional<z.ZodString>;
|
|
4978
|
+
label: z.ZodString;
|
|
4979
|
+
placeholder: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
4980
|
+
maxLength: z.ZodNumber;
|
|
4981
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
4982
|
+
usable: z.ZodDefault<z.ZodBoolean>;
|
|
4983
|
+
}, z.core.$strip>;
|
|
4984
|
+
export type CustomInputRequest = z.infer<typeof customInputRequestSchema>;
|
|
4985
|
+
/**
|
|
4986
|
+
* 주문상품·장바구니·주문서 줄의 옵션 선택 스냅샷 한 칸 — 주문 시점 이름이다(상품을 고쳐도 바뀌지 않는다).
|
|
4987
|
+
* 조합 옵션은 옵션명마다 한 칸이고 추가금은 조합 단위라 0이다(조합 추가금은 단가에 들어 있다). 추가 선택은 값의 추가금이다.
|
|
4988
|
+
*/
|
|
4989
|
+
export declare const optionSelectionSchema: z.ZodObject<{
|
|
4990
|
+
kind: z.ZodString;
|
|
4991
|
+
groupName: z.ZodString;
|
|
4992
|
+
valueName: z.ZodString;
|
|
4993
|
+
additionalPrice: z.ZodNumber;
|
|
4994
|
+
}, z.core.$strip>;
|
|
4995
|
+
export type OptionSelection = z.infer<typeof optionSelectionSchema>;
|
|
4996
|
+
/** 구매자가 적은 직접 입력값 — 주문 시점 항목명과 값 */
|
|
4997
|
+
export declare const customInputValueSchema: z.ZodObject<{
|
|
4998
|
+
label: z.ZodString;
|
|
4999
|
+
value: z.ZodString;
|
|
5000
|
+
}, z.core.$strip>;
|
|
5001
|
+
export type CustomInputValue = z.infer<typeof customInputValueSchema>;
|
|
4856
5002
|
export declare const discountSchema: z.ZodObject<{
|
|
4857
5003
|
productId: z.ZodString;
|
|
4858
5004
|
discountType: z.ZodEnum<{
|
|
@@ -4911,7 +5057,36 @@ export declare const productSchema: z.ZodObject<{
|
|
|
4911
5057
|
weightGram: z.ZodNullable<z.ZodNumber>;
|
|
4912
5058
|
sellerCode: z.ZodNullable<z.ZodString>;
|
|
4913
5059
|
usable: z.ZodBoolean;
|
|
5060
|
+
hasOrders: z.ZodOptional<z.ZodBoolean>;
|
|
4914
5061
|
}, z.core.$strip>>;
|
|
5062
|
+
addonGroups: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
5063
|
+
groupId: z.ZodString;
|
|
5064
|
+
name: z.ZodString;
|
|
5065
|
+
sortOrder: z.ZodNumber;
|
|
5066
|
+
required: z.ZodBoolean;
|
|
5067
|
+
values: z.ZodArray<z.ZodObject<{
|
|
5068
|
+
valueId: z.ZodString;
|
|
5069
|
+
name: z.ZodString;
|
|
5070
|
+
sortOrder: z.ZodNumber;
|
|
5071
|
+
additionalPrice: z.ZodNumber;
|
|
5072
|
+
usable: z.ZodBoolean;
|
|
5073
|
+
}, z.core.$strip>>;
|
|
5074
|
+
}, z.core.$strip>>>>;
|
|
5075
|
+
customInputs: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
5076
|
+
inputId: z.ZodString;
|
|
5077
|
+
label: z.ZodString;
|
|
5078
|
+
placeholder: z.ZodNullable<z.ZodString>;
|
|
5079
|
+
maxLength: z.ZodNumber;
|
|
5080
|
+
required: z.ZodBoolean;
|
|
5081
|
+
usable: z.ZodBoolean;
|
|
5082
|
+
sortOrder: z.ZodNumber;
|
|
5083
|
+
}, z.core.$strip>>>>;
|
|
5084
|
+
optionSort: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
5085
|
+
REGISTERED: "REGISTERED";
|
|
5086
|
+
NAME: "NAME";
|
|
5087
|
+
PRICE_ASC: "PRICE_ASC";
|
|
5088
|
+
PRICE_DESC: "PRICE_DESC";
|
|
5089
|
+
}>>>;
|
|
4915
5090
|
fulfillment: z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
4916
5091
|
type: z.ZodLiteral<"SHIPPING">;
|
|
4917
5092
|
shipping: z.ZodObject<{
|
|
@@ -4982,12 +5157,6 @@ export interface ProductImageRejection {
|
|
|
4982
5157
|
* — 외부 이미지 CDN은 확장자 없는 키를 쓰는 경우가 흔하고, 주소만으로는 실제 형식을 알 수 없다.
|
|
4983
5158
|
*/
|
|
4984
5159
|
export declare function productImageRejection(url: string): ProductImageRejection | null;
|
|
4985
|
-
/** 옵션 축(그룹) 최대 개수 — 스키마 상한의 단일 원천 */
|
|
4986
|
-
export declare const MAX_OPTION_GROUPS = 3;
|
|
4987
|
-
/** 축 하나가 가질 수 있는 값의 최대 개수 */
|
|
4988
|
-
export declare const MAX_VALUES_PER_GROUP = 100;
|
|
4989
|
-
/** 상품 하나가 가질 수 있는 variant(SKU) 최대 개수 */
|
|
4990
|
-
export declare const MAX_VARIANTS = 500;
|
|
4991
5160
|
export declare const optionValueRequestSchema: z.ZodObject<{
|
|
4992
5161
|
valueId: z.ZodOptional<z.ZodString>;
|
|
4993
5162
|
name: z.ZodString;
|
|
@@ -5037,6 +5206,31 @@ export declare const optionModelRequestSchema: z.ZodObject<{
|
|
|
5037
5206
|
sellerCode: z.ZodOptional<z.ZodString>;
|
|
5038
5207
|
usable: z.ZodDefault<z.ZodBoolean>;
|
|
5039
5208
|
}, z.core.$strip>>;
|
|
5209
|
+
addonGroups: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
5210
|
+
groupId: z.ZodOptional<z.ZodString>;
|
|
5211
|
+
name: z.ZodString;
|
|
5212
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
5213
|
+
values: z.ZodArray<z.ZodObject<{
|
|
5214
|
+
valueId: z.ZodOptional<z.ZodString>;
|
|
5215
|
+
name: z.ZodString;
|
|
5216
|
+
additionalPrice: z.ZodDefault<z.ZodNumber>;
|
|
5217
|
+
usable: z.ZodDefault<z.ZodBoolean>;
|
|
5218
|
+
}, z.core.$strip>>;
|
|
5219
|
+
}, z.core.$strip>>>;
|
|
5220
|
+
customInputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
5221
|
+
inputId: z.ZodOptional<z.ZodString>;
|
|
5222
|
+
label: z.ZodString;
|
|
5223
|
+
placeholder: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
5224
|
+
maxLength: z.ZodNumber;
|
|
5225
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
5226
|
+
usable: z.ZodDefault<z.ZodBoolean>;
|
|
5227
|
+
}, z.core.$strip>>>;
|
|
5228
|
+
optionSort: z.ZodOptional<z.ZodEnum<{
|
|
5229
|
+
REGISTERED: "REGISTERED";
|
|
5230
|
+
NAME: "NAME";
|
|
5231
|
+
PRICE_ASC: "PRICE_ASC";
|
|
5232
|
+
PRICE_DESC: "PRICE_DESC";
|
|
5233
|
+
}>>;
|
|
5040
5234
|
}, z.core.$strip>;
|
|
5041
5235
|
export type OptionModelRequest = z.infer<typeof optionModelRequestSchema>;
|
|
5042
5236
|
/** GET /products/{productId}/options 응답 */
|
|
@@ -5063,7 +5257,36 @@ export declare const optionModelSchema: z.ZodObject<{
|
|
|
5063
5257
|
weightGram: z.ZodNullable<z.ZodNumber>;
|
|
5064
5258
|
sellerCode: z.ZodNullable<z.ZodString>;
|
|
5065
5259
|
usable: z.ZodBoolean;
|
|
5260
|
+
hasOrders: z.ZodOptional<z.ZodBoolean>;
|
|
5066
5261
|
}, z.core.$strip>>;
|
|
5262
|
+
addonGroups: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
5263
|
+
groupId: z.ZodString;
|
|
5264
|
+
name: z.ZodString;
|
|
5265
|
+
sortOrder: z.ZodNumber;
|
|
5266
|
+
required: z.ZodBoolean;
|
|
5267
|
+
values: z.ZodArray<z.ZodObject<{
|
|
5268
|
+
valueId: z.ZodString;
|
|
5269
|
+
name: z.ZodString;
|
|
5270
|
+
sortOrder: z.ZodNumber;
|
|
5271
|
+
additionalPrice: z.ZodNumber;
|
|
5272
|
+
usable: z.ZodBoolean;
|
|
5273
|
+
}, z.core.$strip>>;
|
|
5274
|
+
}, z.core.$strip>>>>;
|
|
5275
|
+
customInputs: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
5276
|
+
inputId: z.ZodString;
|
|
5277
|
+
label: z.ZodString;
|
|
5278
|
+
placeholder: z.ZodNullable<z.ZodString>;
|
|
5279
|
+
maxLength: z.ZodNumber;
|
|
5280
|
+
required: z.ZodBoolean;
|
|
5281
|
+
usable: z.ZodBoolean;
|
|
5282
|
+
sortOrder: z.ZodNumber;
|
|
5283
|
+
}, z.core.$strip>>>>;
|
|
5284
|
+
optionSort: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
5285
|
+
REGISTERED: "REGISTERED";
|
|
5286
|
+
NAME: "NAME";
|
|
5287
|
+
PRICE_ASC: "PRICE_ASC";
|
|
5288
|
+
PRICE_DESC: "PRICE_DESC";
|
|
5289
|
+
}>>>;
|
|
5067
5290
|
}, z.core.$strip>;
|
|
5068
5291
|
export type OptionModel = z.infer<typeof optionModelSchema>;
|
|
5069
5292
|
/**
|
|
@@ -5103,6 +5326,7 @@ export declare const productCreateRequestSchema: z.ZodObject<{
|
|
|
5103
5326
|
}, z.core.$strict>, z.ZodObject<{
|
|
5104
5327
|
type: z.ZodLiteral<"MANUAL">;
|
|
5105
5328
|
}, z.core.$strict>], "type">>;
|
|
5329
|
+
sourceOptionSetIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
5106
5330
|
optionGroups: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
5107
5331
|
groupId: z.ZodOptional<z.ZodString>;
|
|
5108
5332
|
name: z.ZodString;
|
|
@@ -5123,6 +5347,31 @@ export declare const productCreateRequestSchema: z.ZodObject<{
|
|
|
5123
5347
|
sellerCode: z.ZodOptional<z.ZodString>;
|
|
5124
5348
|
usable: z.ZodDefault<z.ZodBoolean>;
|
|
5125
5349
|
}, z.core.$strip>>;
|
|
5350
|
+
addonGroups: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
5351
|
+
groupId: z.ZodOptional<z.ZodString>;
|
|
5352
|
+
name: z.ZodString;
|
|
5353
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
5354
|
+
values: z.ZodArray<z.ZodObject<{
|
|
5355
|
+
valueId: z.ZodOptional<z.ZodString>;
|
|
5356
|
+
name: z.ZodString;
|
|
5357
|
+
additionalPrice: z.ZodDefault<z.ZodNumber>;
|
|
5358
|
+
usable: z.ZodDefault<z.ZodBoolean>;
|
|
5359
|
+
}, z.core.$strip>>;
|
|
5360
|
+
}, z.core.$strip>>>;
|
|
5361
|
+
customInputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
5362
|
+
inputId: z.ZodOptional<z.ZodString>;
|
|
5363
|
+
label: z.ZodString;
|
|
5364
|
+
placeholder: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
5365
|
+
maxLength: z.ZodNumber;
|
|
5366
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
5367
|
+
usable: z.ZodDefault<z.ZodBoolean>;
|
|
5368
|
+
}, z.core.$strip>>>;
|
|
5369
|
+
optionSort: z.ZodOptional<z.ZodEnum<{
|
|
5370
|
+
REGISTERED: "REGISTERED";
|
|
5371
|
+
NAME: "NAME";
|
|
5372
|
+
PRICE_ASC: "PRICE_ASC";
|
|
5373
|
+
PRICE_DESC: "PRICE_DESC";
|
|
5374
|
+
}>>;
|
|
5126
5375
|
name: z.ZodString;
|
|
5127
5376
|
categoryId: z.ZodString;
|
|
5128
5377
|
salePrice: z.ZodNumber;
|
|
@@ -5162,6 +5411,7 @@ export declare const productReplaceRequestSchema: z.ZodObject<{
|
|
|
5162
5411
|
}, z.core.$strict>, z.ZodObject<{
|
|
5163
5412
|
type: z.ZodLiteral<"MANUAL">;
|
|
5164
5413
|
}, z.core.$strict>], "type">>;
|
|
5414
|
+
sourceOptionSetIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
5165
5415
|
optionGroups: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
5166
5416
|
groupId: z.ZodOptional<z.ZodString>;
|
|
5167
5417
|
name: z.ZodString;
|
|
@@ -5182,6 +5432,31 @@ export declare const productReplaceRequestSchema: z.ZodObject<{
|
|
|
5182
5432
|
sellerCode: z.ZodOptional<z.ZodString>;
|
|
5183
5433
|
usable: z.ZodDefault<z.ZodBoolean>;
|
|
5184
5434
|
}, z.core.$strip>>;
|
|
5435
|
+
addonGroups: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
5436
|
+
groupId: z.ZodOptional<z.ZodString>;
|
|
5437
|
+
name: z.ZodString;
|
|
5438
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
5439
|
+
values: z.ZodArray<z.ZodObject<{
|
|
5440
|
+
valueId: z.ZodOptional<z.ZodString>;
|
|
5441
|
+
name: z.ZodString;
|
|
5442
|
+
additionalPrice: z.ZodDefault<z.ZodNumber>;
|
|
5443
|
+
usable: z.ZodDefault<z.ZodBoolean>;
|
|
5444
|
+
}, z.core.$strip>>;
|
|
5445
|
+
}, z.core.$strip>>>;
|
|
5446
|
+
customInputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
5447
|
+
inputId: z.ZodOptional<z.ZodString>;
|
|
5448
|
+
label: z.ZodString;
|
|
5449
|
+
placeholder: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
5450
|
+
maxLength: z.ZodNumber;
|
|
5451
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
5452
|
+
usable: z.ZodDefault<z.ZodBoolean>;
|
|
5453
|
+
}, z.core.$strip>>>;
|
|
5454
|
+
optionSort: z.ZodOptional<z.ZodEnum<{
|
|
5455
|
+
REGISTERED: "REGISTERED";
|
|
5456
|
+
NAME: "NAME";
|
|
5457
|
+
PRICE_ASC: "PRICE_ASC";
|
|
5458
|
+
PRICE_DESC: "PRICE_DESC";
|
|
5459
|
+
}>>;
|
|
5185
5460
|
name: z.ZodString;
|
|
5186
5461
|
categoryId: z.ZodString;
|
|
5187
5462
|
salePrice: z.ZodNumber;
|
|
@@ -5284,6 +5559,210 @@ export declare const discountRequestSchema: z.ZodObject<{
|
|
|
5284
5559
|
}, z.core.$strip>;
|
|
5285
5560
|
export type DiscountRequest = z.infer<typeof discountRequestSchema>;
|
|
5286
5561
|
//#endregion
|
|
5562
|
+
//#region src/schemas/saved-option-set.d.ts
|
|
5563
|
+
/**
|
|
5564
|
+
* 저장 옵션 (이슈 #59) — 자주 쓰는 옵션 구성을 이름 붙여 두고 상품 등록에서 불러온다.
|
|
5565
|
+
*
|
|
5566
|
+
* **불러오기는 복사다.** 저장 옵션을 고치거나 지워도 이미 불러온 상품의 옵션은 그대로다. 재고·SKU·사용 여부는 상품마다
|
|
5567
|
+
* 달라 저장하지 않는다. 추가금은 조합별이 아니라 **값별**로 둔다 — 조합 옵션으로 불러오면 조합 추가금은 고른 값 추가금의 합이다.
|
|
5568
|
+
*/
|
|
5569
|
+
/** 스토어당 저장 옵션 최대 개수 */
|
|
5570
|
+
export declare const MAX_SAVED_OPTION_SETS = 200;
|
|
5571
|
+
/** 저장 옵션 이름 최대 글자 수 */
|
|
5572
|
+
export declare const MAX_SAVED_OPTION_SET_NAME = 50;
|
|
5573
|
+
/** 옵션명 방식 — `combination`(조합: 값의 조합이 판매 단위가 된다)·`addon`(추가 선택: 재고 없이 추가금만) */
|
|
5574
|
+
export declare const optionGroupKindSchema: z.ZodEnum<{
|
|
5575
|
+
combination: "combination";
|
|
5576
|
+
addon: "addon";
|
|
5577
|
+
}>;
|
|
5578
|
+
export type OptionGroupKind = z.infer<typeof optionGroupKindSchema>;
|
|
5579
|
+
export declare const savedOptionValueSchema: z.ZodObject<{
|
|
5580
|
+
name: z.ZodString;
|
|
5581
|
+
additionalPrice: z.ZodNumber;
|
|
5582
|
+
}, z.core.$strip>;
|
|
5583
|
+
export declare const savedOptionGroupSchema: z.ZodObject<{
|
|
5584
|
+
name: z.ZodString;
|
|
5585
|
+
kind: z.ZodString;
|
|
5586
|
+
required: z.ZodBoolean;
|
|
5587
|
+
values: z.ZodArray<z.ZodObject<{
|
|
5588
|
+
name: z.ZodString;
|
|
5589
|
+
additionalPrice: z.ZodNumber;
|
|
5590
|
+
}, z.core.$strip>>;
|
|
5591
|
+
}, z.core.$strip>;
|
|
5592
|
+
export type SavedOptionGroup = z.infer<typeof savedOptionGroupSchema>;
|
|
5593
|
+
export declare const savedCustomInputSchema: z.ZodObject<{
|
|
5594
|
+
label: z.ZodString;
|
|
5595
|
+
placeholder: z.ZodNullable<z.ZodString>;
|
|
5596
|
+
maxLength: z.ZodNumber;
|
|
5597
|
+
required: z.ZodBoolean;
|
|
5598
|
+
}, z.core.$strip>;
|
|
5599
|
+
export type SavedCustomInput = z.infer<typeof savedCustomInputSchema>;
|
|
5600
|
+
export declare const savedOptionSetSchema: z.ZodObject<{
|
|
5601
|
+
optionSetId: z.ZodString;
|
|
5602
|
+
name: z.ZodString;
|
|
5603
|
+
optionSort: z.ZodEnum<{
|
|
5604
|
+
REGISTERED: "REGISTERED";
|
|
5605
|
+
NAME: "NAME";
|
|
5606
|
+
PRICE_ASC: "PRICE_ASC";
|
|
5607
|
+
PRICE_DESC: "PRICE_DESC";
|
|
5608
|
+
}>;
|
|
5609
|
+
groups: z.ZodArray<z.ZodObject<{
|
|
5610
|
+
name: z.ZodString;
|
|
5611
|
+
kind: z.ZodString;
|
|
5612
|
+
required: z.ZodBoolean;
|
|
5613
|
+
values: z.ZodArray<z.ZodObject<{
|
|
5614
|
+
name: z.ZodString;
|
|
5615
|
+
additionalPrice: z.ZodNumber;
|
|
5616
|
+
}, z.core.$strip>>;
|
|
5617
|
+
}, z.core.$strip>>;
|
|
5618
|
+
customInputs: z.ZodArray<z.ZodObject<{
|
|
5619
|
+
label: z.ZodString;
|
|
5620
|
+
placeholder: z.ZodNullable<z.ZodString>;
|
|
5621
|
+
maxLength: z.ZodNumber;
|
|
5622
|
+
required: z.ZodBoolean;
|
|
5623
|
+
}, z.core.$strip>>;
|
|
5624
|
+
importedProductCount: z.ZodNumber;
|
|
5625
|
+
createdAt: z.ZodString;
|
|
5626
|
+
updatedAt: z.ZodString;
|
|
5627
|
+
}, z.core.$strip>;
|
|
5628
|
+
export type SavedOptionSet = z.infer<typeof savedOptionSetSchema>;
|
|
5629
|
+
export declare const savedOptionValueRequestSchema: z.ZodObject<{
|
|
5630
|
+
name: z.ZodString;
|
|
5631
|
+
additionalPrice: z.ZodDefault<z.ZodNumber>;
|
|
5632
|
+
}, z.core.$strip>;
|
|
5633
|
+
export declare const savedOptionGroupRequestSchema: z.ZodObject<{
|
|
5634
|
+
name: z.ZodString;
|
|
5635
|
+
kind: z.ZodEnum<{
|
|
5636
|
+
combination: "combination";
|
|
5637
|
+
addon: "addon";
|
|
5638
|
+
}>;
|
|
5639
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
5640
|
+
values: z.ZodArray<z.ZodObject<{
|
|
5641
|
+
name: z.ZodString;
|
|
5642
|
+
additionalPrice: z.ZodDefault<z.ZodNumber>;
|
|
5643
|
+
}, z.core.$strip>>;
|
|
5644
|
+
}, z.core.$strip>;
|
|
5645
|
+
export type SavedOptionGroupRequest = z.infer<typeof savedOptionGroupRequestSchema>;
|
|
5646
|
+
export declare const savedCustomInputRequestSchema: z.ZodObject<{
|
|
5647
|
+
label: z.ZodString;
|
|
5648
|
+
placeholder: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
5649
|
+
maxLength: z.ZodNumber;
|
|
5650
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
5651
|
+
}, z.core.$strip>;
|
|
5652
|
+
/**
|
|
5653
|
+
* 저장 옵션 만들기·수정 본문. 조합 옵션명은 최대 `MAX_OPTION_GROUPS`개, 추가 선택은 최대 `MAX_ADDON_GROUPS`개이고
|
|
5654
|
+
* 옵션명과 직접 입력 항목이 모두 비면 400이다. 수정(PUT)은 통째로 바꾼다.
|
|
5655
|
+
*/
|
|
5656
|
+
export declare const savedOptionSetRequestSchema: z.ZodObject<{
|
|
5657
|
+
name: z.ZodString;
|
|
5658
|
+
optionSort: z.ZodDefault<z.ZodEnum<{
|
|
5659
|
+
REGISTERED: "REGISTERED";
|
|
5660
|
+
NAME: "NAME";
|
|
5661
|
+
PRICE_ASC: "PRICE_ASC";
|
|
5662
|
+
PRICE_DESC: "PRICE_DESC";
|
|
5663
|
+
}>>;
|
|
5664
|
+
groups: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
5665
|
+
name: z.ZodString;
|
|
5666
|
+
kind: z.ZodEnum<{
|
|
5667
|
+
combination: "combination";
|
|
5668
|
+
addon: "addon";
|
|
5669
|
+
}>;
|
|
5670
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
5671
|
+
values: z.ZodArray<z.ZodObject<{
|
|
5672
|
+
name: z.ZodString;
|
|
5673
|
+
additionalPrice: z.ZodDefault<z.ZodNumber>;
|
|
5674
|
+
}, z.core.$strip>>;
|
|
5675
|
+
}, z.core.$strip>>>;
|
|
5676
|
+
customInputs: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
5677
|
+
label: z.ZodString;
|
|
5678
|
+
placeholder: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
5679
|
+
maxLength: z.ZodNumber;
|
|
5680
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
5681
|
+
}, z.core.$strip>>>;
|
|
5682
|
+
}, z.core.$strip>;
|
|
5683
|
+
export type SavedOptionSetRequest = z.infer<typeof savedOptionSetRequestSchema>;
|
|
5684
|
+
export type SavedOptionSetRequestInput = z.input<typeof savedOptionSetRequestSchema>;
|
|
5685
|
+
/**
|
|
5686
|
+
* 상품에서 저장 (`POST /v1/saved-option-sets/from-product`) — 상품의 현재 옵션을 저장 옵션으로 만든다.
|
|
5687
|
+
*
|
|
5688
|
+
* 조합 추가금이 값별 추가금의 합으로 되돌려지면 값별로 저장하고, 조합마다 제각각이면 추가금을 빼고
|
|
5689
|
+
* 응답 `additionalPriceDropped: true`로 알린다. `replaceOptionSetId`를 주면 그 저장 옵션을 덮어쓴다(이름 중복의 덮어쓰기).
|
|
5690
|
+
*/
|
|
5691
|
+
export declare const savedOptionSetFromProductRequestSchema: z.ZodObject<{
|
|
5692
|
+
productId: z.ZodString;
|
|
5693
|
+
name: z.ZodString;
|
|
5694
|
+
includeOptions: z.ZodDefault<z.ZodBoolean>;
|
|
5695
|
+
includeCustomInputs: z.ZodDefault<z.ZodBoolean>;
|
|
5696
|
+
replaceOptionSetId: z.ZodOptional<z.ZodString>;
|
|
5697
|
+
}, z.core.$strip>;
|
|
5698
|
+
export type SavedOptionSetFromProductRequest = z.infer<typeof savedOptionSetFromProductRequestSchema>;
|
|
5699
|
+
export type SavedOptionSetFromProductRequestInput = z.input<typeof savedOptionSetFromProductRequestSchema>;
|
|
5700
|
+
export declare const savedOptionSetFromProductResultSchema: z.ZodObject<{
|
|
5701
|
+
optionSet: z.ZodObject<{
|
|
5702
|
+
optionSetId: z.ZodString;
|
|
5703
|
+
name: z.ZodString;
|
|
5704
|
+
optionSort: z.ZodEnum<{
|
|
5705
|
+
REGISTERED: "REGISTERED";
|
|
5706
|
+
NAME: "NAME";
|
|
5707
|
+
PRICE_ASC: "PRICE_ASC";
|
|
5708
|
+
PRICE_DESC: "PRICE_DESC";
|
|
5709
|
+
}>;
|
|
5710
|
+
groups: z.ZodArray<z.ZodObject<{
|
|
5711
|
+
name: z.ZodString;
|
|
5712
|
+
kind: z.ZodString;
|
|
5713
|
+
required: z.ZodBoolean;
|
|
5714
|
+
values: z.ZodArray<z.ZodObject<{
|
|
5715
|
+
name: z.ZodString;
|
|
5716
|
+
additionalPrice: z.ZodNumber;
|
|
5717
|
+
}, z.core.$strip>>;
|
|
5718
|
+
}, z.core.$strip>>;
|
|
5719
|
+
customInputs: z.ZodArray<z.ZodObject<{
|
|
5720
|
+
label: z.ZodString;
|
|
5721
|
+
placeholder: z.ZodNullable<z.ZodString>;
|
|
5722
|
+
maxLength: z.ZodNumber;
|
|
5723
|
+
required: z.ZodBoolean;
|
|
5724
|
+
}, z.core.$strip>>;
|
|
5725
|
+
importedProductCount: z.ZodNumber;
|
|
5726
|
+
createdAt: z.ZodString;
|
|
5727
|
+
updatedAt: z.ZodString;
|
|
5728
|
+
}, z.core.$strip>;
|
|
5729
|
+
additionalPriceDropped: z.ZodBoolean;
|
|
5730
|
+
}, z.core.$strip>;
|
|
5731
|
+
export type SavedOptionSetFromProductResult = z.infer<typeof savedOptionSetFromProductResultSchema>;
|
|
5732
|
+
/** 구성 필터 — 조합 옵션명·추가 선택 옵션명·직접 입력 항목을 가진 저장 옵션 */
|
|
5733
|
+
export declare const savedOptionSetCompositionSchema: z.ZodEnum<{
|
|
5734
|
+
combination: "combination";
|
|
5735
|
+
addon: "addon";
|
|
5736
|
+
customInput: "customInput";
|
|
5737
|
+
}>;
|
|
5738
|
+
export declare const savedOptionSetSortSchema: z.ZodEnum<{
|
|
5739
|
+
"updatedAt.desc": "updatedAt.desc";
|
|
5740
|
+
"name.asc": "name.asc";
|
|
5741
|
+
"importedProductCount.desc": "importedProductCount.desc";
|
|
5742
|
+
}>;
|
|
5743
|
+
export type SavedOptionSetSort = z.infer<typeof savedOptionSetSortSchema>;
|
|
5744
|
+
export interface SavedOptionSetListParams extends PageParams {
|
|
5745
|
+
keyword?: string;
|
|
5746
|
+
composition?: z.infer<typeof savedOptionSetCompositionSchema>;
|
|
5747
|
+
sort?: SavedOptionSetSort;
|
|
5748
|
+
}
|
|
5749
|
+
/** `GET /v1/saved-option-sets` 쿼리 — OpenAPI 문서용 형태(값은 쿼리 문자열) */
|
|
5750
|
+
export declare const savedOptionSetListQuerySchema: z.ZodObject<{
|
|
5751
|
+
page: z.ZodOptional<z.ZodString>;
|
|
5752
|
+
size: z.ZodOptional<z.ZodString>;
|
|
5753
|
+
keyword: z.ZodOptional<z.ZodString>;
|
|
5754
|
+
composition: z.ZodOptional<z.ZodEnum<{
|
|
5755
|
+
combination: "combination";
|
|
5756
|
+
addon: "addon";
|
|
5757
|
+
customInput: "customInput";
|
|
5758
|
+
}>>;
|
|
5759
|
+
sort: z.ZodOptional<z.ZodEnum<{
|
|
5760
|
+
"updatedAt.desc": "updatedAt.desc";
|
|
5761
|
+
"name.asc": "name.asc";
|
|
5762
|
+
"importedProductCount.desc": "importedProductCount.desc";
|
|
5763
|
+
}>>;
|
|
5764
|
+
}, z.core.$strip>;
|
|
5765
|
+
//#endregion
|
|
5287
5766
|
//#region src/schemas/store.d.ts
|
|
5288
5767
|
/**
|
|
5289
5768
|
* 스토어 코드 규칙 — 스토어프론트 API가 테넌트를 가르는 값이다(`X-Store-Code` 헤더).
|
|
@@ -5540,6 +6019,7 @@ export type SellerAddressRequest = z.infer<typeof sellerAddressRequestSchema>;
|
|
|
5540
6019
|
* - 409 `STOREFRONT_SITE_CREATE_LIMIT` — 사이트는 스토어당 30일에 3번까지 만든다
|
|
5541
6020
|
* - 409 `STOREFRONT_SITE_CHANGED` — 읽은 상태(`expected*`)와 현재 상태가 다르다. 다시 읽고 시도한다
|
|
5542
6021
|
* - 409 `STOREFRONT_SITE_NOT_ACTIVE` — 정지(`SUSPENDED`)된 사이트는 바꾸거나 끌 수 없다
|
|
6022
|
+
* - 409 `STORE_SUSPENDED` — 정지된 스토어에는 사이트를 만들 수 없다
|
|
5543
6023
|
* - 409 `STOREFRONT_VERSION_NOT_READY` — 빌드가 끝나지 않았거나 실패한 버전은 발행할 수 없다
|
|
5544
6024
|
* - 409 `STOREFRONT_NO_ROLLBACK_TARGET` — 되돌릴 이전 발행 버전이 없다
|
|
5545
6025
|
* - 400 `STOREFRONT_SLUG_CONFIRM_MISMATCH` — 호스팅 끄기 확인 입력이 현재 슬러그와 다르다
|
|
@@ -5561,6 +6041,16 @@ export type SellerAddressRequest = z.infer<typeof sellerAddressRequestSchema>;
|
|
|
5561
6041
|
* - 409 `STOREFRONT_BUILD_IN_PROGRESS` — 이 사이트에 끝나지 않은 빌드가 있다(사이트당 하나)
|
|
5562
6042
|
* - 404 `STOREFRONT_BUILD_NOT_FOUND`
|
|
5563
6043
|
* - 502 `STOREFRONT_SANDBOX_UNAVAILABLE` — 편집 Sandbox 호출이 실패했다. 잠시 뒤 다시 한다
|
|
6044
|
+
*
|
|
6045
|
+
* 소스 내려받기·올리기(#60, `/v1/storefront/site/source/**`, `sayren` CLI):
|
|
6046
|
+
* - 409 `SOURCE_CHANGED` — 작업 트리가 내려받은 뒤(`expectedBaseRef`) 바뀌었다(콘솔·AI 편집). `error.details.currentRef`
|
|
6047
|
+
* - 409 `EDIT_SESSION_OPEN` — 편집 환경이 열려 있다. `endEditSession: true`로 끄고 진행할 수 있다
|
|
6048
|
+
* - 409 `SOURCE_BLOBS_MISSING` — 올리지 않은 파일 내용이 있다(`error.details.hashes`). `POST source/blobs`로 올리고 다시 한다
|
|
6049
|
+
* - 409 `DEPENDENCY_REJECTED` — 쓸 수 없는 npm 의존성이다(`error.details.rejected: [{ name, version, reason, detail }]`)
|
|
6050
|
+
* - 413 `SOURCE_TOO_MANY_NEW_FILES` — 한 번에 새 내용이 800개를 넘는다(`error.details.max`). 나눠서 바꾼다
|
|
6051
|
+
* - 400 `DEPENDENCY_FILES_MISMATCH` — `packageJson`·`lockfile` 내용이 목록의 해시와 다르거나 빠졌다
|
|
6052
|
+
* - 400 `INVALID_SOURCE_REF` · `BLOB_HASH_MISMATCH` · `INVALID_FILE_PATH`(`.env*`·작업 트리 밖 경로)
|
|
6053
|
+
* - 404 `STOREFRONT_SOURCE_NOT_FOUND` — 그 스냅샷이 없다
|
|
5564
6054
|
*/
|
|
5565
6055
|
/**
|
|
5566
6056
|
* 슬러그 형식 — 스토어 코드와 같은 DNS 라벨 규칙(소문자·숫자·하이픈 3~30자, 하이픈으로 시작·끝 불가)에
|
|
@@ -5631,6 +6121,7 @@ export declare const storefrontVersionSchema: z.ZodObject<{
|
|
|
5631
6121
|
}>;
|
|
5632
6122
|
buildId: z.ZodNullable<z.ZodString>;
|
|
5633
6123
|
createdByType: z.ZodString;
|
|
6124
|
+
createdVia: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
5634
6125
|
createdAt: z.ZodString;
|
|
5635
6126
|
}, z.core.$strip>;
|
|
5636
6127
|
export type StorefrontVersion = z.infer<typeof storefrontVersionSchema>;
|
|
@@ -5685,6 +6176,15 @@ export declare const storefrontEditPreviewSchema: z.ZodObject<{
|
|
|
5685
6176
|
hostname: z.ZodNullable<z.ZodString>;
|
|
5686
6177
|
}, z.core.$strip>;
|
|
5687
6178
|
export type StorefrontEditPreview = z.infer<typeof storefrontEditPreviewSchema>;
|
|
6179
|
+
/**
|
|
6180
|
+
* 사이트 정지 — 운영 정책에 따라 플랫폼 운영자가 사이트를 정지한다. 정지 중에는 방문자에게 정지 안내가 보이고 발행·되돌리기·템플릿 변경·
|
|
6181
|
+
* 공개 전환·슬러그 변경·끄기·편집이 409 `STOREFRONT_SITE_NOT_ACTIVE`다. 셀러가 풀 수 없다(고객센터로 문의한다).
|
|
6182
|
+
*/
|
|
6183
|
+
export declare const storefrontSuspensionSchema: z.ZodObject<{
|
|
6184
|
+
reason: z.ZodNullable<z.ZodString>;
|
|
6185
|
+
suspendedAt: z.ZodNullable<z.ZodString>;
|
|
6186
|
+
}, z.core.$strip>;
|
|
6187
|
+
export type StorefrontSuspension = z.infer<typeof storefrontSuspensionSchema>;
|
|
5688
6188
|
export declare const storefrontSiteSchema: z.ZodObject<{
|
|
5689
6189
|
siteId: z.ZodString;
|
|
5690
6190
|
slug: z.ZodString;
|
|
@@ -5736,6 +6236,7 @@ export declare const storefrontSiteSchema: z.ZodObject<{
|
|
|
5736
6236
|
}>;
|
|
5737
6237
|
buildId: z.ZodNullable<z.ZodString>;
|
|
5738
6238
|
createdByType: z.ZodString;
|
|
6239
|
+
createdVia: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
5739
6240
|
createdAt: z.ZodString;
|
|
5740
6241
|
}, z.core.$strip>>;
|
|
5741
6242
|
provisioning: z.ZodObject<{
|
|
@@ -5751,6 +6252,10 @@ export declare const storefrontSiteSchema: z.ZodObject<{
|
|
|
5751
6252
|
hostname: z.ZodNullable<z.ZodString>;
|
|
5752
6253
|
}, z.core.$strip>;
|
|
5753
6254
|
slugChangesRemaining: z.ZodNumber;
|
|
6255
|
+
suspension: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
6256
|
+
reason: z.ZodNullable<z.ZodString>;
|
|
6257
|
+
suspendedAt: z.ZodNullable<z.ZodString>;
|
|
6258
|
+
}, z.core.$strip>>>;
|
|
5754
6259
|
createdAt: z.ZodString;
|
|
5755
6260
|
updatedAt: z.ZodString;
|
|
5756
6261
|
}, z.core.$strip>;
|
|
@@ -5811,6 +6316,7 @@ export declare const storefrontHostingSchema: z.ZodObject<{
|
|
|
5811
6316
|
}>;
|
|
5812
6317
|
buildId: z.ZodNullable<z.ZodString>;
|
|
5813
6318
|
createdByType: z.ZodString;
|
|
6319
|
+
createdVia: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
5814
6320
|
createdAt: z.ZodString;
|
|
5815
6321
|
}, z.core.$strip>>;
|
|
5816
6322
|
provisioning: z.ZodObject<{
|
|
@@ -5826,6 +6332,10 @@ export declare const storefrontHostingSchema: z.ZodObject<{
|
|
|
5826
6332
|
hostname: z.ZodNullable<z.ZodString>;
|
|
5827
6333
|
}, z.core.$strip>;
|
|
5828
6334
|
slugChangesRemaining: z.ZodNumber;
|
|
6335
|
+
suspension: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
6336
|
+
reason: z.ZodNullable<z.ZodString>;
|
|
6337
|
+
suspendedAt: z.ZodNullable<z.ZodString>;
|
|
6338
|
+
}, z.core.$strip>>>;
|
|
5829
6339
|
createdAt: z.ZodString;
|
|
5830
6340
|
updatedAt: z.ZodString;
|
|
5831
6341
|
}, z.core.$strip>>;
|
|
@@ -5904,6 +6414,146 @@ export declare const storefrontPreviewLinkSchema: z.ZodObject<{
|
|
|
5904
6414
|
expiresAt: z.ZodString;
|
|
5905
6415
|
}, z.core.$strip>;
|
|
5906
6416
|
export type StorefrontPreviewLink = z.infer<typeof storefrontPreviewLinkSchema>;
|
|
6417
|
+
/**
|
|
6418
|
+
* 연결할 수 없는 도메인 — 플랫폼이 쓰는 도메인과 그 하위(기본 주소는 슬러그로 바꾼다). 호스팅 도메인은 서버 설정이라
|
|
6419
|
+
* `storefrontCustomHostnameProblem`의 인자로 따로 받는다.
|
|
6420
|
+
*/
|
|
6421
|
+
export declare const STOREFRONT_PLATFORM_DOMAINS: readonly string[];
|
|
6422
|
+
/**
|
|
6423
|
+
* 공용 접미사 — 누구나 그 아래 이름을 받는 도메인이라 접미사 자체는 연결할 수 없다. Public Suffix List 전체가 아니라 자주 틀리는
|
|
6424
|
+
* 것만 둔다(여기 없는 접미사도 TXT 소유 확인을 통과할 수 없어 연결되지 않는다 — 이 목록은 추가 단계에서 빨리 알려 주는 안내다).
|
|
6425
|
+
*/
|
|
6426
|
+
export declare const STOREFRONT_PUBLIC_SUFFIXES: readonly string[];
|
|
6427
|
+
/** 스토어당 연결할 수 있는 도메인 수 기본값 — 요금제(#44) 전의 상한이다. 실제 값은 `GET …/domains`의 `limit` */
|
|
6428
|
+
export declare const STOREFRONT_CUSTOM_DOMAIN_LIMIT_DEFAULT = 2;
|
|
6429
|
+
/** DNS를 넣을 때까지 기다리는 기간(일) — 지나면 `FAILED`(`DNS_NOT_CONFIGURED`) */
|
|
6430
|
+
export declare const STOREFRONT_DOMAIN_DNS_WAIT_DAYS = 7;
|
|
6431
|
+
/** 연결된 도메인의 DNS가 이 서비스를 가리키지 않아도 연결을 유지하는 기간(일) — 지나면 서버가 해제한다 */
|
|
6432
|
+
export declare const STOREFRONT_DOMAIN_DNS_GRACE_DAYS = 7;
|
|
6433
|
+
/** 소유 확인 TXT 레코드의 이름 앞부분 — `_sayren-verify.{도메인}` */
|
|
6434
|
+
export declare const STOREFRONT_DOMAIN_TXT_LABEL = "_sayren-verify";
|
|
6435
|
+
/**
|
|
6436
|
+
* 도메인 정규화 — 앞뒤 공백·끝 점을 떼고 소문자로 바꾸며 국제화 도메인은 punycode(`xn--`)로 바꾼다. 스킴·경로·포트가 붙은 입력
|
|
6437
|
+
* (`https://www.a.com/`)은 호스트만 남기지 않고 그대로 두어 형식 검사에서 떨어진다(서버는 사용자가 적은 도메인만 받는다).
|
|
6438
|
+
* 변환할 수 없으면 입력을 소문자로만 바꿔 돌려준다(형식 검사가 거부한다).
|
|
6439
|
+
*/
|
|
6440
|
+
export declare function normalizeStorefrontHostname(input: string): string;
|
|
6441
|
+
export type StorefrontHostnameProblem = "FORMAT" | "IP_ADDRESS" | "SINGLE_LABEL" | "NON_PUBLIC_TLD" | "PLATFORM_DOMAIN" | "PUBLIC_SUFFIX" | "WILDCARD";
|
|
6442
|
+
/**
|
|
6443
|
+
* 연결할 수 있는 도메인인가(정규화한 값 기준). 문제가 없으면 null이다. 규칙: 253자 이하, 라벨 2개 이상, 라벨은 소문자·숫자·하이픈
|
|
6444
|
+
* 63자 이하(하이픈으로 시작·끝 불가), 최상위 도메인은 영문자이거나 punycode, IP 주소·와일드카드·공개 인터넷 밖 최상위 도메인·
|
|
6445
|
+
* 플랫폼 도메인과 그 하위·공용 접미사 자체는 안 된다. 제어·디스패치 Worker가 형식 규칙의 복제본을 들고 있다(api
|
|
6446
|
+
* `test/storefront-hosting-parity.spec.ts`가 대조한다).
|
|
6447
|
+
*/
|
|
6448
|
+
export declare function storefrontCustomHostnameProblem(hostname: string, hostingDomain?: string): StorefrontHostnameProblem | null;
|
|
6449
|
+
/** 소유 확인 TXT 레코드의 전체 이름 */
|
|
6450
|
+
export declare function storefrontDomainTxtNameOf(hostname: string): string;
|
|
6451
|
+
export declare const storefrontCustomDomainStatusSchema: z.ZodEnum<{
|
|
6452
|
+
ACTIVE: "ACTIVE";
|
|
6453
|
+
FAILED: "FAILED";
|
|
6454
|
+
PENDING_DNS: "PENDING_DNS";
|
|
6455
|
+
PENDING_VALIDATION: "PENDING_VALIDATION";
|
|
6456
|
+
}>;
|
|
6457
|
+
export type StorefrontCustomDomainStatus = z.infer<typeof storefrontCustomDomainStatusSchema>;
|
|
6458
|
+
export declare const storefrontDnsRecordSchema: z.ZodObject<{
|
|
6459
|
+
type: z.ZodEnum<{
|
|
6460
|
+
CNAME: "CNAME";
|
|
6461
|
+
TXT: "TXT";
|
|
6462
|
+
}>;
|
|
6463
|
+
name: z.ZodString;
|
|
6464
|
+
value: z.ZodString;
|
|
6465
|
+
purpose: z.ZodEnum<{
|
|
6466
|
+
ROUTING: "ROUTING";
|
|
6467
|
+
OWNERSHIP: "OWNERSHIP";
|
|
6468
|
+
}>;
|
|
6469
|
+
}, z.core.$strip>;
|
|
6470
|
+
export type StorefrontDnsRecord = z.infer<typeof storefrontDnsRecordSchema>;
|
|
6471
|
+
export declare const storefrontSiteDomainSchema: z.ZodObject<{
|
|
6472
|
+
domainId: z.ZodString;
|
|
6473
|
+
hostname: z.ZodString;
|
|
6474
|
+
kind: z.ZodEnum<{
|
|
6475
|
+
PLATFORM: "PLATFORM";
|
|
6476
|
+
CUSTOM: "CUSTOM";
|
|
6477
|
+
}>;
|
|
6478
|
+
status: z.ZodEnum<{
|
|
6479
|
+
ACTIVE: "ACTIVE";
|
|
6480
|
+
FAILED: "FAILED";
|
|
6481
|
+
PENDING_DNS: "PENDING_DNS";
|
|
6482
|
+
PENDING_VALIDATION: "PENDING_VALIDATION";
|
|
6483
|
+
}>;
|
|
6484
|
+
isPrimary: z.ZodBoolean;
|
|
6485
|
+
dnsRecords: z.ZodArray<z.ZodObject<{
|
|
6486
|
+
type: z.ZodEnum<{
|
|
6487
|
+
CNAME: "CNAME";
|
|
6488
|
+
TXT: "TXT";
|
|
6489
|
+
}>;
|
|
6490
|
+
name: z.ZodString;
|
|
6491
|
+
value: z.ZodString;
|
|
6492
|
+
purpose: z.ZodEnum<{
|
|
6493
|
+
ROUTING: "ROUTING";
|
|
6494
|
+
OWNERSHIP: "OWNERSHIP";
|
|
6495
|
+
}>;
|
|
6496
|
+
}, z.core.$strip>>;
|
|
6497
|
+
certificateStatus: z.ZodNullable<z.ZodEnum<{
|
|
6498
|
+
ACTIVE: "ACTIVE";
|
|
6499
|
+
PENDING: "PENDING";
|
|
6500
|
+
FAILED: "FAILED";
|
|
6501
|
+
}>>;
|
|
6502
|
+
failureCode: z.ZodNullable<z.ZodString>;
|
|
6503
|
+
verifiedAt: z.ZodNullable<z.ZodString>;
|
|
6504
|
+
activatedAt: z.ZodNullable<z.ZodString>;
|
|
6505
|
+
checkedAt: z.ZodNullable<z.ZodString>;
|
|
6506
|
+
createdAt: z.ZodString;
|
|
6507
|
+
}, z.core.$strip>;
|
|
6508
|
+
export type StorefrontSiteDomain = z.infer<typeof storefrontSiteDomainSchema>;
|
|
6509
|
+
/** `GET /v1/storefront/site/domains` — 사이트의 주소 목록(기본 주소 + 내 도메인)과 연결 설정 */
|
|
6510
|
+
export declare const storefrontSiteDomainsSchema: z.ZodObject<{
|
|
6511
|
+
enabled: z.ZodBoolean;
|
|
6512
|
+
limit: z.ZodNumber;
|
|
6513
|
+
target: z.ZodString;
|
|
6514
|
+
domains: z.ZodArray<z.ZodObject<{
|
|
6515
|
+
domainId: z.ZodString;
|
|
6516
|
+
hostname: z.ZodString;
|
|
6517
|
+
kind: z.ZodEnum<{
|
|
6518
|
+
PLATFORM: "PLATFORM";
|
|
6519
|
+
CUSTOM: "CUSTOM";
|
|
6520
|
+
}>;
|
|
6521
|
+
status: z.ZodEnum<{
|
|
6522
|
+
ACTIVE: "ACTIVE";
|
|
6523
|
+
FAILED: "FAILED";
|
|
6524
|
+
PENDING_DNS: "PENDING_DNS";
|
|
6525
|
+
PENDING_VALIDATION: "PENDING_VALIDATION";
|
|
6526
|
+
}>;
|
|
6527
|
+
isPrimary: z.ZodBoolean;
|
|
6528
|
+
dnsRecords: z.ZodArray<z.ZodObject<{
|
|
6529
|
+
type: z.ZodEnum<{
|
|
6530
|
+
CNAME: "CNAME";
|
|
6531
|
+
TXT: "TXT";
|
|
6532
|
+
}>;
|
|
6533
|
+
name: z.ZodString;
|
|
6534
|
+
value: z.ZodString;
|
|
6535
|
+
purpose: z.ZodEnum<{
|
|
6536
|
+
ROUTING: "ROUTING";
|
|
6537
|
+
OWNERSHIP: "OWNERSHIP";
|
|
6538
|
+
}>;
|
|
6539
|
+
}, z.core.$strip>>;
|
|
6540
|
+
certificateStatus: z.ZodNullable<z.ZodEnum<{
|
|
6541
|
+
ACTIVE: "ACTIVE";
|
|
6542
|
+
PENDING: "PENDING";
|
|
6543
|
+
FAILED: "FAILED";
|
|
6544
|
+
}>>;
|
|
6545
|
+
failureCode: z.ZodNullable<z.ZodString>;
|
|
6546
|
+
verifiedAt: z.ZodNullable<z.ZodString>;
|
|
6547
|
+
activatedAt: z.ZodNullable<z.ZodString>;
|
|
6548
|
+
checkedAt: z.ZodNullable<z.ZodString>;
|
|
6549
|
+
createdAt: z.ZodString;
|
|
6550
|
+
}, z.core.$strip>>;
|
|
6551
|
+
}, z.core.$strip>;
|
|
6552
|
+
export type StorefrontSiteDomains = z.infer<typeof storefrontSiteDomainsSchema>;
|
|
6553
|
+
export declare const addStorefrontDomainRequestSchema: z.ZodObject<{
|
|
6554
|
+
hostname: z.ZodString;
|
|
6555
|
+
}, z.core.$strip>;
|
|
6556
|
+
export type AddStorefrontDomainRequest = z.infer<typeof addStorefrontDomainRequestSchema>;
|
|
5907
6557
|
/** 플랫폼 전체 동시 편집 환경 상한 */
|
|
5908
6558
|
export declare const STOREFRONT_EDIT_CAPACITY = 20;
|
|
5909
6559
|
/** 활동이 없으면 편집 환경이 잠드는 시간(분). 작업 트리는 보존된다 */
|
|
@@ -6234,9 +6884,58 @@ export type StorefrontBuildStatus = z.infer<typeof storefrontBuildStatusSchema>;
|
|
|
6234
6884
|
export declare const STOREFRONT_BUILD_TERMINAL_STATUSES: readonly StorefrontBuildStatus[];
|
|
6235
6885
|
/**
|
|
6236
6886
|
* 빌드 단계 — 이 순서로 돈다. 첫 실패에서 멈추지만 규칙 검증(`VERIFY`)은 실패해도 타입 검사까지 이어서 해 한 번에 알려 준다.
|
|
6237
|
-
* `UPLOAD`는 사이트 버전 Worker 업로드다(성공하면 발행할 수 있다).
|
|
6887
|
+
* `UPLOAD`는 사이트 버전 Worker 업로드다(성공하면 발행할 수 있다). `DEPENDENCIES`는 빌드 시작 전 의존성 검사(거절 목록·보안 권고)다.
|
|
6888
|
+
* 값은 늘어날 수 있다.
|
|
6238
6889
|
*/
|
|
6239
|
-
export declare const STOREFRONT_BUILD_STAGES: readonly ["VERIFY", "RESTORE", "INSTALL", "TYPECHECK", "BUILD", "BUNDLE", "PACK", "UPLOAD"];
|
|
6890
|
+
export declare const STOREFRONT_BUILD_STAGES: readonly ["DEPENDENCIES", "VERIFY", "RESTORE", "INSTALL", "TYPECHECK", "BUILD", "BUNDLE", "PACK", "UPLOAD"];
|
|
6891
|
+
/**
|
|
6892
|
+
* 의존성 검사 결과 한 줄(#61) — 거절(`DEPENDENCY_REJECTED`의 `details.rejected`)·경고(빌드 `dependencies`, 소스 교체 `dependencyWarnings`)가
|
|
6893
|
+
* 같은 모양이다. 대상 패키지와 사유. 셀러가 고칠 수 있게 버전·권고 id·거절 사유를 싣는다.
|
|
6894
|
+
* `reason`: `DENYLISTED`(거절 목록) · `ADVISORY`(보안 권고) · `MALWARE`(악성 코드 권고, 패키지 전체) · `INSTALL_SCRIPT`(루트
|
|
6895
|
+
* package.json의 설치 훅은 거절, 의존성의 설치 스크립트는 경고) · `UNSUPPORTED_SOURCE`(레지스트리 밖 설치 경로) · `BUNDLED_DEPENDENCIES`(묶여
|
|
6896
|
+
* 오는 의존성, 경고) · `INVALID_MANIFEST`(package.json·잠금 파일 형식), 늘어날 수 있다.
|
|
6897
|
+
*/
|
|
6898
|
+
export declare const storefrontDependencyFindingSchema: z.ZodObject<{
|
|
6899
|
+
name: z.ZodString;
|
|
6900
|
+
version: z.ZodNullable<z.ZodString>;
|
|
6901
|
+
reason: z.ZodString;
|
|
6902
|
+
detail: z.ZodString;
|
|
6903
|
+
advisory: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
6904
|
+
id: z.ZodString;
|
|
6905
|
+
url: z.ZodNullable<z.ZodString>;
|
|
6906
|
+
severity: z.ZodString;
|
|
6907
|
+
title: z.ZodString;
|
|
6908
|
+
}, z.core.$strip>>>;
|
|
6909
|
+
}, z.core.$strip>;
|
|
6910
|
+
export type StorefrontDependencyFinding = z.infer<typeof storefrontDependencyFindingSchema>;
|
|
6911
|
+
export declare const storefrontBuildDependenciesSchema: z.ZodObject<{
|
|
6912
|
+
checkedPackages: z.ZodNumber;
|
|
6913
|
+
rejected: z.ZodArray<z.ZodObject<{
|
|
6914
|
+
name: z.ZodString;
|
|
6915
|
+
version: z.ZodNullable<z.ZodString>;
|
|
6916
|
+
reason: z.ZodString;
|
|
6917
|
+
detail: z.ZodString;
|
|
6918
|
+
advisory: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
6919
|
+
id: z.ZodString;
|
|
6920
|
+
url: z.ZodNullable<z.ZodString>;
|
|
6921
|
+
severity: z.ZodString;
|
|
6922
|
+
title: z.ZodString;
|
|
6923
|
+
}, z.core.$strip>>>;
|
|
6924
|
+
}, z.core.$strip>>;
|
|
6925
|
+
warnings: z.ZodArray<z.ZodObject<{
|
|
6926
|
+
name: z.ZodString;
|
|
6927
|
+
version: z.ZodNullable<z.ZodString>;
|
|
6928
|
+
reason: z.ZodString;
|
|
6929
|
+
detail: z.ZodString;
|
|
6930
|
+
advisory: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
6931
|
+
id: z.ZodString;
|
|
6932
|
+
url: z.ZodNullable<z.ZodString>;
|
|
6933
|
+
severity: z.ZodString;
|
|
6934
|
+
title: z.ZodString;
|
|
6935
|
+
}, z.core.$strip>>>;
|
|
6936
|
+
}, z.core.$strip>>;
|
|
6937
|
+
}, z.core.$strip>;
|
|
6938
|
+
export type StorefrontBuildDependencies = z.infer<typeof storefrontBuildDependenciesSchema>;
|
|
6240
6939
|
export declare const storefrontBuildSchema: z.ZodObject<{
|
|
6241
6940
|
buildId: z.ZodString;
|
|
6242
6941
|
versionId: z.ZodString;
|
|
@@ -6297,6 +6996,33 @@ export declare const storefrontBuildSchema: z.ZodObject<{
|
|
|
6297
6996
|
message: z.ZodString;
|
|
6298
6997
|
nextSteps: z.ZodArray<z.ZodString>;
|
|
6299
6998
|
}, z.core.$strip>>;
|
|
6999
|
+
dependencies: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
7000
|
+
checkedPackages: z.ZodNumber;
|
|
7001
|
+
rejected: z.ZodArray<z.ZodObject<{
|
|
7002
|
+
name: z.ZodString;
|
|
7003
|
+
version: z.ZodNullable<z.ZodString>;
|
|
7004
|
+
reason: z.ZodString;
|
|
7005
|
+
detail: z.ZodString;
|
|
7006
|
+
advisory: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
7007
|
+
id: z.ZodString;
|
|
7008
|
+
url: z.ZodNullable<z.ZodString>;
|
|
7009
|
+
severity: z.ZodString;
|
|
7010
|
+
title: z.ZodString;
|
|
7011
|
+
}, z.core.$strip>>>;
|
|
7012
|
+
}, z.core.$strip>>;
|
|
7013
|
+
warnings: z.ZodArray<z.ZodObject<{
|
|
7014
|
+
name: z.ZodString;
|
|
7015
|
+
version: z.ZodNullable<z.ZodString>;
|
|
7016
|
+
reason: z.ZodString;
|
|
7017
|
+
detail: z.ZodString;
|
|
7018
|
+
advisory: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
7019
|
+
id: z.ZodString;
|
|
7020
|
+
url: z.ZodNullable<z.ZodString>;
|
|
7021
|
+
severity: z.ZodString;
|
|
7022
|
+
title: z.ZodString;
|
|
7023
|
+
}, z.core.$strip>>>;
|
|
7024
|
+
}, z.core.$strip>>;
|
|
7025
|
+
}, z.core.$strip>>>;
|
|
6300
7026
|
queuedAt: z.ZodString;
|
|
6301
7027
|
startedAt: z.ZodNullable<z.ZodString>;
|
|
6302
7028
|
finishedAt: z.ZodNullable<z.ZodString>;
|
|
@@ -6312,6 +7038,7 @@ export declare const storefrontBuildListQuerySchema: z.ZodObject<{
|
|
|
6312
7038
|
*/
|
|
6313
7039
|
export declare const createStorefrontVersionRequestSchema: z.ZodObject<{
|
|
6314
7040
|
message: z.ZodOptional<z.ZodString>;
|
|
7041
|
+
expectedSourceRef: z.ZodOptional<z.ZodString>;
|
|
6315
7042
|
}, z.core.$strip>;
|
|
6316
7043
|
export type CreateStorefrontVersionRequest = z.infer<typeof createStorefrontVersionRequestSchema>;
|
|
6317
7044
|
/** 버전 만들기 응답 (201) — 버전은 `BUILDING`, 빌드는 `QUEUED`로 시작한다. 결과는 `GET builds/{buildId}`로 본다 */
|
|
@@ -6335,6 +7062,7 @@ export declare const storefrontVersionCreatedSchema: z.ZodObject<{
|
|
|
6335
7062
|
}>;
|
|
6336
7063
|
buildId: z.ZodNullable<z.ZodString>;
|
|
6337
7064
|
createdByType: z.ZodString;
|
|
7065
|
+
createdVia: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
6338
7066
|
createdAt: z.ZodString;
|
|
6339
7067
|
}, z.core.$strip>;
|
|
6340
7068
|
build: z.ZodObject<{
|
|
@@ -6397,6 +7125,33 @@ export declare const storefrontVersionCreatedSchema: z.ZodObject<{
|
|
|
6397
7125
|
message: z.ZodString;
|
|
6398
7126
|
nextSteps: z.ZodArray<z.ZodString>;
|
|
6399
7127
|
}, z.core.$strip>>;
|
|
7128
|
+
dependencies: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
7129
|
+
checkedPackages: z.ZodNumber;
|
|
7130
|
+
rejected: z.ZodArray<z.ZodObject<{
|
|
7131
|
+
name: z.ZodString;
|
|
7132
|
+
version: z.ZodNullable<z.ZodString>;
|
|
7133
|
+
reason: z.ZodString;
|
|
7134
|
+
detail: z.ZodString;
|
|
7135
|
+
advisory: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
7136
|
+
id: z.ZodString;
|
|
7137
|
+
url: z.ZodNullable<z.ZodString>;
|
|
7138
|
+
severity: z.ZodString;
|
|
7139
|
+
title: z.ZodString;
|
|
7140
|
+
}, z.core.$strip>>>;
|
|
7141
|
+
}, z.core.$strip>>;
|
|
7142
|
+
warnings: z.ZodArray<z.ZodObject<{
|
|
7143
|
+
name: z.ZodString;
|
|
7144
|
+
version: z.ZodNullable<z.ZodString>;
|
|
7145
|
+
reason: z.ZodString;
|
|
7146
|
+
detail: z.ZodString;
|
|
7147
|
+
advisory: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
7148
|
+
id: z.ZodString;
|
|
7149
|
+
url: z.ZodNullable<z.ZodString>;
|
|
7150
|
+
severity: z.ZodString;
|
|
7151
|
+
title: z.ZodString;
|
|
7152
|
+
}, z.core.$strip>>>;
|
|
7153
|
+
}, z.core.$strip>>;
|
|
7154
|
+
}, z.core.$strip>>>;
|
|
6400
7155
|
queuedAt: z.ZodString;
|
|
6401
7156
|
startedAt: z.ZodNullable<z.ZodString>;
|
|
6402
7157
|
finishedAt: z.ZodNullable<z.ZodString>;
|
|
@@ -6413,6 +7168,99 @@ export declare const createStorefrontEditPreviewLinkRequestSchema: z.ZodObject<{
|
|
|
6413
7168
|
path: z.ZodOptional<z.ZodString>;
|
|
6414
7169
|
}, z.core.$strip>;
|
|
6415
7170
|
export type CreateStorefrontEditPreviewLinkRequest = CreateStorefrontPreviewLinkRequest;
|
|
7171
|
+
/** 압축 파일 조각 하나의 최대 크기(바이트) */
|
|
7172
|
+
export declare const STOREFRONT_SOURCE_PART_BYTES: number;
|
|
7173
|
+
/** 내용 올리기 한 번의 최대 파일 수 */
|
|
7174
|
+
export declare const STOREFRONT_SOURCE_BLOB_BATCH_MAX = 200;
|
|
7175
|
+
/** 작업 트리 파일 수 상한 */
|
|
7176
|
+
export declare const STOREFRONT_WORKSPACE_MAX_FILES = 2000;
|
|
7177
|
+
/** 작업 트리 스냅샷 키 — `sources/{siteId}/{sha256}.tgz` */
|
|
7178
|
+
export declare const storefrontSourceRefSchema: z.ZodString;
|
|
7179
|
+
/** `GET /v1/storefront/site/source` — 지금 작업 트리(편집 환경이 떠 있으면 지금 내용을 고정한다) */
|
|
7180
|
+
export declare const storefrontSourceSchema: z.ZodObject<{
|
|
7181
|
+
siteId: z.ZodString;
|
|
7182
|
+
storeId: z.ZodString;
|
|
7183
|
+
storeCode: z.ZodString;
|
|
7184
|
+
sourceRef: z.ZodString;
|
|
7185
|
+
treeSha256: z.ZodString;
|
|
7186
|
+
files: z.ZodNumber;
|
|
7187
|
+
bytes: z.ZodNumber;
|
|
7188
|
+
archive: z.ZodObject<{
|
|
7189
|
+
format: z.ZodLiteral<"tar+gzip">;
|
|
7190
|
+
bytes: z.ZodNumber;
|
|
7191
|
+
sha256: z.ZodString;
|
|
7192
|
+
parts: z.ZodNumber;
|
|
7193
|
+
partBytes: z.ZodNumber;
|
|
7194
|
+
}, z.core.$strip>;
|
|
7195
|
+
editSessionOpen: z.ZodBoolean;
|
|
7196
|
+
}, z.core.$strip>;
|
|
7197
|
+
export type StorefrontSource = z.infer<typeof storefrontSourceSchema>;
|
|
7198
|
+
export declare const storefrontSourceArchiveQuerySchema: z.ZodObject<{
|
|
7199
|
+
sourceRef: z.ZodString;
|
|
7200
|
+
part: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
7201
|
+
}, z.core.$strip>;
|
|
7202
|
+
/** `GET /v1/storefront/site/source/archive` — 압축 파일 조각 */
|
|
7203
|
+
export declare const storefrontSourceArchivePartSchema: z.ZodObject<{
|
|
7204
|
+
sourceRef: z.ZodString;
|
|
7205
|
+
part: z.ZodNumber;
|
|
7206
|
+
parts: z.ZodNumber;
|
|
7207
|
+
offset: z.ZodNumber;
|
|
7208
|
+
bytes: z.ZodNumber;
|
|
7209
|
+
totalBytes: z.ZodNumber;
|
|
7210
|
+
content: z.ZodString;
|
|
7211
|
+
}, z.core.$strip>;
|
|
7212
|
+
export type StorefrontSourceArchivePart = z.infer<typeof storefrontSourceArchivePartSchema>;
|
|
7213
|
+
/** `POST /v1/storefront/site/source/blobs` — 파일 내용 올리기(해시 키, 다시 올려도 안전하다). 작업 트리는 바뀌지 않는다 */
|
|
7214
|
+
export declare const uploadStorefrontSourceBlobsRequestSchema: z.ZodObject<{
|
|
7215
|
+
blobs: z.ZodArray<z.ZodObject<{
|
|
7216
|
+
hash: z.ZodString;
|
|
7217
|
+
content: z.ZodString;
|
|
7218
|
+
}, z.core.$strip>>;
|
|
7219
|
+
}, z.core.$strip>;
|
|
7220
|
+
export type UploadStorefrontSourceBlobsRequest = z.infer<typeof uploadStorefrontSourceBlobsRequestSchema>;
|
|
7221
|
+
export declare const storefrontSourceBlobsResultSchema: z.ZodObject<{
|
|
7222
|
+
stored: z.ZodNumber;
|
|
7223
|
+
existing: z.ZodNumber;
|
|
7224
|
+
}, z.core.$strip>;
|
|
7225
|
+
export type StorefrontSourceBlobsResult = z.infer<typeof storefrontSourceBlobsResultSchema>;
|
|
7226
|
+
/**
|
|
7227
|
+
* `PUT /v1/storefront/site/source` — 작업 트리 전체를 이 목록으로 바꾼다(없는 경로는 지운다). 전부 아니면 전무다.
|
|
7228
|
+
* `package.json`·`pnpm-lock.yaml`도 바꿀 수 있고 의존성은 허용 목록 안이어야 한다. `.env*`·작업 트리 밖 경로는 받지 않는다.
|
|
7229
|
+
*/
|
|
7230
|
+
export declare const replaceStorefrontSourceRequestSchema: z.ZodObject<{
|
|
7231
|
+
expectedBaseRef: z.ZodOptional<z.ZodString>;
|
|
7232
|
+
files: z.ZodArray<z.ZodObject<{
|
|
7233
|
+
path: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
7234
|
+
hash: z.ZodString;
|
|
7235
|
+
size: z.ZodNumber;
|
|
7236
|
+
}, z.core.$strip>>;
|
|
7237
|
+
endEditSession: z.ZodOptional<z.ZodBoolean>;
|
|
7238
|
+
packageJson: z.ZodOptional<z.ZodString>;
|
|
7239
|
+
lockfile: z.ZodOptional<z.ZodString>;
|
|
7240
|
+
}, z.core.$strip>;
|
|
7241
|
+
export type ReplaceStorefrontSourceRequest = z.infer<typeof replaceStorefrontSourceRequestSchema>;
|
|
7242
|
+
export declare const storefrontSourceReplacedSchema: z.ZodObject<{
|
|
7243
|
+
sourceRef: z.ZodString;
|
|
7244
|
+
previousRef: z.ZodString;
|
|
7245
|
+
treeSha256: z.ZodString;
|
|
7246
|
+
files: z.ZodNumber;
|
|
7247
|
+
bytes: z.ZodNumber;
|
|
7248
|
+
changed: z.ZodBoolean;
|
|
7249
|
+
endedEditSession: z.ZodBoolean;
|
|
7250
|
+
dependencyWarnings: z.ZodArray<z.ZodObject<{
|
|
7251
|
+
name: z.ZodString;
|
|
7252
|
+
version: z.ZodNullable<z.ZodString>;
|
|
7253
|
+
reason: z.ZodString;
|
|
7254
|
+
detail: z.ZodString;
|
|
7255
|
+
advisory: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
7256
|
+
id: z.ZodString;
|
|
7257
|
+
url: z.ZodNullable<z.ZodString>;
|
|
7258
|
+
severity: z.ZodString;
|
|
7259
|
+
title: z.ZodString;
|
|
7260
|
+
}, z.core.$strip>>>;
|
|
7261
|
+
}, z.core.$strip>>;
|
|
7262
|
+
}, z.core.$strip>;
|
|
7263
|
+
export type StorefrontSourceReplaced = z.infer<typeof storefrontSourceReplacedSchema>;
|
|
6416
7264
|
//#endregion
|
|
6417
7265
|
//#region src/schemas/upload.d.ts
|
|
6418
7266
|
/**
|
|
@@ -6817,7 +7665,31 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
6817
7665
|
weightGram: number | null;
|
|
6818
7666
|
sellerCode: string | null;
|
|
6819
7667
|
usable: boolean;
|
|
7668
|
+
hasOrders?: boolean | undefined;
|
|
7669
|
+
}[];
|
|
7670
|
+
addonGroups: {
|
|
7671
|
+
groupId: string;
|
|
7672
|
+
name: string;
|
|
7673
|
+
sortOrder: number;
|
|
7674
|
+
required: boolean;
|
|
7675
|
+
values: {
|
|
7676
|
+
valueId: string;
|
|
7677
|
+
name: string;
|
|
7678
|
+
sortOrder: number;
|
|
7679
|
+
additionalPrice: number;
|
|
7680
|
+
usable: boolean;
|
|
7681
|
+
}[];
|
|
7682
|
+
}[];
|
|
7683
|
+
customInputs: {
|
|
7684
|
+
inputId: string;
|
|
7685
|
+
label: string;
|
|
7686
|
+
placeholder: string | null;
|
|
7687
|
+
maxLength: number;
|
|
7688
|
+
required: boolean;
|
|
7689
|
+
usable: boolean;
|
|
7690
|
+
sortOrder: number;
|
|
6820
7691
|
}[];
|
|
7692
|
+
optionSort: "REGISTERED" | "NAME" | "PRICE_ASC" | "PRICE_DESC";
|
|
6821
7693
|
fulfillment: UnknownFulfillment | {
|
|
6822
7694
|
type: "SHIPPING";
|
|
6823
7695
|
shipping: {
|
|
@@ -6889,7 +7761,31 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
6889
7761
|
weightGram: number | null;
|
|
6890
7762
|
sellerCode: string | null;
|
|
6891
7763
|
usable: boolean;
|
|
7764
|
+
hasOrders?: boolean | undefined;
|
|
7765
|
+
}[];
|
|
7766
|
+
addonGroups: {
|
|
7767
|
+
groupId: string;
|
|
7768
|
+
name: string;
|
|
7769
|
+
sortOrder: number;
|
|
7770
|
+
required: boolean;
|
|
7771
|
+
values: {
|
|
7772
|
+
valueId: string;
|
|
7773
|
+
name: string;
|
|
7774
|
+
sortOrder: number;
|
|
7775
|
+
additionalPrice: number;
|
|
7776
|
+
usable: boolean;
|
|
7777
|
+
}[];
|
|
7778
|
+
}[];
|
|
7779
|
+
customInputs: {
|
|
7780
|
+
inputId: string;
|
|
7781
|
+
label: string;
|
|
7782
|
+
placeholder: string | null;
|
|
7783
|
+
maxLength: number;
|
|
7784
|
+
required: boolean;
|
|
7785
|
+
usable: boolean;
|
|
7786
|
+
sortOrder: number;
|
|
6892
7787
|
}[];
|
|
7788
|
+
optionSort: "REGISTERED" | "NAME" | "PRICE_ASC" | "PRICE_DESC";
|
|
6893
7789
|
fulfillment: UnknownFulfillment | {
|
|
6894
7790
|
type: "SHIPPING";
|
|
6895
7791
|
shipping: {
|
|
@@ -6961,7 +7857,31 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
6961
7857
|
weightGram: number | null;
|
|
6962
7858
|
sellerCode: string | null;
|
|
6963
7859
|
usable: boolean;
|
|
7860
|
+
hasOrders?: boolean | undefined;
|
|
7861
|
+
}[];
|
|
7862
|
+
addonGroups: {
|
|
7863
|
+
groupId: string;
|
|
7864
|
+
name: string;
|
|
7865
|
+
sortOrder: number;
|
|
7866
|
+
required: boolean;
|
|
7867
|
+
values: {
|
|
7868
|
+
valueId: string;
|
|
7869
|
+
name: string;
|
|
7870
|
+
sortOrder: number;
|
|
7871
|
+
additionalPrice: number;
|
|
7872
|
+
usable: boolean;
|
|
7873
|
+
}[];
|
|
7874
|
+
}[];
|
|
7875
|
+
customInputs: {
|
|
7876
|
+
inputId: string;
|
|
7877
|
+
label: string;
|
|
7878
|
+
placeholder: string | null;
|
|
7879
|
+
maxLength: number;
|
|
7880
|
+
required: boolean;
|
|
7881
|
+
usable: boolean;
|
|
7882
|
+
sortOrder: number;
|
|
6964
7883
|
}[];
|
|
7884
|
+
optionSort: "REGISTERED" | "NAME" | "PRICE_ASC" | "PRICE_DESC";
|
|
6965
7885
|
fulfillment: UnknownFulfillment | {
|
|
6966
7886
|
type: "SHIPPING";
|
|
6967
7887
|
shipping: {
|
|
@@ -7037,7 +7957,31 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7037
7957
|
weightGram: number | null;
|
|
7038
7958
|
sellerCode: string | null;
|
|
7039
7959
|
usable: boolean;
|
|
7960
|
+
hasOrders?: boolean | undefined;
|
|
7961
|
+
}[];
|
|
7962
|
+
addonGroups: {
|
|
7963
|
+
groupId: string;
|
|
7964
|
+
name: string;
|
|
7965
|
+
sortOrder: number;
|
|
7966
|
+
required: boolean;
|
|
7967
|
+
values: {
|
|
7968
|
+
valueId: string;
|
|
7969
|
+
name: string;
|
|
7970
|
+
sortOrder: number;
|
|
7971
|
+
additionalPrice: number;
|
|
7972
|
+
usable: boolean;
|
|
7973
|
+
}[];
|
|
7974
|
+
}[];
|
|
7975
|
+
customInputs: {
|
|
7976
|
+
inputId: string;
|
|
7977
|
+
label: string;
|
|
7978
|
+
placeholder: string | null;
|
|
7979
|
+
maxLength: number;
|
|
7980
|
+
required: boolean;
|
|
7981
|
+
usable: boolean;
|
|
7982
|
+
sortOrder: number;
|
|
7040
7983
|
}[];
|
|
7984
|
+
optionSort: "REGISTERED" | "NAME" | "PRICE_ASC" | "PRICE_DESC";
|
|
7041
7985
|
}>;
|
|
7042
7986
|
/**
|
|
7043
7987
|
* 옵션 모델 전체 교체 — variants는 valueNames로 축 값을 지목한다.
|
|
@@ -7066,7 +8010,31 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7066
8010
|
weightGram: number | null;
|
|
7067
8011
|
sellerCode: string | null;
|
|
7068
8012
|
usable: boolean;
|
|
8013
|
+
hasOrders?: boolean | undefined;
|
|
8014
|
+
}[];
|
|
8015
|
+
addonGroups: {
|
|
8016
|
+
groupId: string;
|
|
8017
|
+
name: string;
|
|
8018
|
+
sortOrder: number;
|
|
8019
|
+
required: boolean;
|
|
8020
|
+
values: {
|
|
8021
|
+
valueId: string;
|
|
8022
|
+
name: string;
|
|
8023
|
+
sortOrder: number;
|
|
8024
|
+
additionalPrice: number;
|
|
8025
|
+
usable: boolean;
|
|
8026
|
+
}[];
|
|
8027
|
+
}[];
|
|
8028
|
+
customInputs: {
|
|
8029
|
+
inputId: string;
|
|
8030
|
+
label: string;
|
|
8031
|
+
placeholder: string | null;
|
|
8032
|
+
maxLength: number;
|
|
8033
|
+
required: boolean;
|
|
8034
|
+
usable: boolean;
|
|
8035
|
+
sortOrder: number;
|
|
7069
8036
|
}[];
|
|
8037
|
+
optionSort: "REGISTERED" | "NAME" | "PRICE_ASC" | "PRICE_DESC";
|
|
7070
8038
|
}>;
|
|
7071
8039
|
/** 재고 변경 — stockQuantity(절대값) 또는 adjustment(증감) 하나만 전달한다 */
|
|
7072
8040
|
updateVariantStock: (productId: string, variantId: string, body: VariantStockRequest) => Promise<{
|
|
@@ -7091,6 +8059,140 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7091
8059
|
}>;
|
|
7092
8060
|
removeDiscount: (productId: string) => Promise<void>;
|
|
7093
8061
|
};
|
|
8062
|
+
/**
|
|
8063
|
+
* 저장 옵션 (이슈 #59) — 자주 쓰는 옵션 구성. 불러오기는 복사라 저장 옵션을 고쳐도 불러온 상품은 바뀌지 않는다.
|
|
8064
|
+
* 권한은 상품과 같다(`product:r`·`product:rw`).
|
|
8065
|
+
*/
|
|
8066
|
+
savedOptionSets: {
|
|
8067
|
+
list: (params?: SavedOptionSetListParams) => Promise<{
|
|
8068
|
+
page: number;
|
|
8069
|
+
size: number;
|
|
8070
|
+
totalElements: number;
|
|
8071
|
+
totalPages: number;
|
|
8072
|
+
contents: {
|
|
8073
|
+
optionSetId: string;
|
|
8074
|
+
name: string;
|
|
8075
|
+
optionSort: "REGISTERED" | "NAME" | "PRICE_ASC" | "PRICE_DESC";
|
|
8076
|
+
groups: {
|
|
8077
|
+
name: string;
|
|
8078
|
+
kind: string;
|
|
8079
|
+
required: boolean;
|
|
8080
|
+
values: {
|
|
8081
|
+
name: string;
|
|
8082
|
+
additionalPrice: number;
|
|
8083
|
+
}[];
|
|
8084
|
+
}[];
|
|
8085
|
+
customInputs: {
|
|
8086
|
+
label: string;
|
|
8087
|
+
placeholder: string | null;
|
|
8088
|
+
maxLength: number;
|
|
8089
|
+
required: boolean;
|
|
8090
|
+
}[];
|
|
8091
|
+
importedProductCount: number;
|
|
8092
|
+
createdAt: string;
|
|
8093
|
+
updatedAt: string;
|
|
8094
|
+
}[];
|
|
8095
|
+
}>;
|
|
8096
|
+
get: (optionSetId: string) => Promise<{
|
|
8097
|
+
optionSetId: string;
|
|
8098
|
+
name: string;
|
|
8099
|
+
optionSort: "REGISTERED" | "NAME" | "PRICE_ASC" | "PRICE_DESC";
|
|
8100
|
+
groups: {
|
|
8101
|
+
name: string;
|
|
8102
|
+
kind: string;
|
|
8103
|
+
required: boolean;
|
|
8104
|
+
values: {
|
|
8105
|
+
name: string;
|
|
8106
|
+
additionalPrice: number;
|
|
8107
|
+
}[];
|
|
8108
|
+
}[];
|
|
8109
|
+
customInputs: {
|
|
8110
|
+
label: string;
|
|
8111
|
+
placeholder: string | null;
|
|
8112
|
+
maxLength: number;
|
|
8113
|
+
required: boolean;
|
|
8114
|
+
}[];
|
|
8115
|
+
importedProductCount: number;
|
|
8116
|
+
createdAt: string;
|
|
8117
|
+
updatedAt: string;
|
|
8118
|
+
}>;
|
|
8119
|
+
/** 이름이 겹치면 409 `OPTION_SET_NAME_TAKEN`, 스토어당 200개를 넘으면 409 `OPTION_SET_LIMIT_EXCEEDED` */
|
|
8120
|
+
create: (body: SavedOptionSetRequestInput) => Promise<{
|
|
8121
|
+
optionSetId: string;
|
|
8122
|
+
name: string;
|
|
8123
|
+
optionSort: "REGISTERED" | "NAME" | "PRICE_ASC" | "PRICE_DESC";
|
|
8124
|
+
groups: {
|
|
8125
|
+
name: string;
|
|
8126
|
+
kind: string;
|
|
8127
|
+
required: boolean;
|
|
8128
|
+
values: {
|
|
8129
|
+
name: string;
|
|
8130
|
+
additionalPrice: number;
|
|
8131
|
+
}[];
|
|
8132
|
+
}[];
|
|
8133
|
+
customInputs: {
|
|
8134
|
+
label: string;
|
|
8135
|
+
placeholder: string | null;
|
|
8136
|
+
maxLength: number;
|
|
8137
|
+
required: boolean;
|
|
8138
|
+
}[];
|
|
8139
|
+
importedProductCount: number;
|
|
8140
|
+
createdAt: string;
|
|
8141
|
+
updatedAt: string;
|
|
8142
|
+
}>;
|
|
8143
|
+
/** 통째로 바꾼다. 불러온 상품은 바뀌지 않는다 */
|
|
8144
|
+
update: (optionSetId: string, body: SavedOptionSetRequestInput) => Promise<{
|
|
8145
|
+
optionSetId: string;
|
|
8146
|
+
name: string;
|
|
8147
|
+
optionSort: "REGISTERED" | "NAME" | "PRICE_ASC" | "PRICE_DESC";
|
|
8148
|
+
groups: {
|
|
8149
|
+
name: string;
|
|
8150
|
+
kind: string;
|
|
8151
|
+
required: boolean;
|
|
8152
|
+
values: {
|
|
8153
|
+
name: string;
|
|
8154
|
+
additionalPrice: number;
|
|
8155
|
+
}[];
|
|
8156
|
+
}[];
|
|
8157
|
+
customInputs: {
|
|
8158
|
+
label: string;
|
|
8159
|
+
placeholder: string | null;
|
|
8160
|
+
maxLength: number;
|
|
8161
|
+
required: boolean;
|
|
8162
|
+
}[];
|
|
8163
|
+
importedProductCount: number;
|
|
8164
|
+
createdAt: string;
|
|
8165
|
+
updatedAt: string;
|
|
8166
|
+
}>;
|
|
8167
|
+
remove: (optionSetId: string) => Promise<void>;
|
|
8168
|
+
/** 상품의 현재 옵션을 저장 옵션으로 만든다(또는 `replaceOptionSetId`를 덮어쓴다) */
|
|
8169
|
+
saveFromProduct: (body: SavedOptionSetFromProductRequestInput) => Promise<{
|
|
8170
|
+
optionSet: {
|
|
8171
|
+
optionSetId: string;
|
|
8172
|
+
name: string;
|
|
8173
|
+
optionSort: "REGISTERED" | "NAME" | "PRICE_ASC" | "PRICE_DESC";
|
|
8174
|
+
groups: {
|
|
8175
|
+
name: string;
|
|
8176
|
+
kind: string;
|
|
8177
|
+
required: boolean;
|
|
8178
|
+
values: {
|
|
8179
|
+
name: string;
|
|
8180
|
+
additionalPrice: number;
|
|
8181
|
+
}[];
|
|
8182
|
+
}[];
|
|
8183
|
+
customInputs: {
|
|
8184
|
+
label: string;
|
|
8185
|
+
placeholder: string | null;
|
|
8186
|
+
maxLength: number;
|
|
8187
|
+
required: boolean;
|
|
8188
|
+
}[];
|
|
8189
|
+
importedProductCount: number;
|
|
8190
|
+
createdAt: string;
|
|
8191
|
+
updatedAt: string;
|
|
8192
|
+
};
|
|
8193
|
+
additionalPriceDropped: boolean;
|
|
8194
|
+
}>;
|
|
8195
|
+
};
|
|
7094
8196
|
categories: {
|
|
7095
8197
|
list: (params?: {
|
|
7096
8198
|
parentId?: string;
|
|
@@ -7107,7 +8209,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7107
8209
|
visible: boolean;
|
|
7108
8210
|
showPc: boolean;
|
|
7109
8211
|
showMobile: boolean;
|
|
7110
|
-
productSort: "
|
|
8212
|
+
productSort: "NAME" | "RECENT" | "POPULAR" | "PRICE_LOW" | "PRICE_HIGH";
|
|
7111
8213
|
metaTitle: string | null;
|
|
7112
8214
|
metaDescription: string | null;
|
|
7113
8215
|
metaKeywords: string | null;
|
|
@@ -7127,7 +8229,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7127
8229
|
visible: boolean;
|
|
7128
8230
|
showPc: boolean;
|
|
7129
8231
|
showMobile: boolean;
|
|
7130
|
-
productSort: "
|
|
8232
|
+
productSort: "NAME" | "RECENT" | "POPULAR" | "PRICE_LOW" | "PRICE_HIGH";
|
|
7131
8233
|
metaTitle: string | null;
|
|
7132
8234
|
metaDescription: string | null;
|
|
7133
8235
|
metaKeywords: string | null;
|
|
@@ -7146,7 +8248,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7146
8248
|
visible: boolean;
|
|
7147
8249
|
showPc: boolean;
|
|
7148
8250
|
showMobile: boolean;
|
|
7149
|
-
productSort: "
|
|
8251
|
+
productSort: "NAME" | "RECENT" | "POPULAR" | "PRICE_LOW" | "PRICE_HIGH";
|
|
7150
8252
|
metaTitle: string | null;
|
|
7151
8253
|
metaDescription: string | null;
|
|
7152
8254
|
metaKeywords: string | null;
|
|
@@ -7166,7 +8268,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7166
8268
|
visible: boolean;
|
|
7167
8269
|
showPc: boolean;
|
|
7168
8270
|
showMobile: boolean;
|
|
7169
|
-
productSort: "
|
|
8271
|
+
productSort: "NAME" | "RECENT" | "POPULAR" | "PRICE_LOW" | "PRICE_HIGH";
|
|
7170
8272
|
metaTitle: string | null;
|
|
7171
8273
|
metaDescription: string | null;
|
|
7172
8274
|
metaKeywords: string | null;
|
|
@@ -7185,7 +8287,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7185
8287
|
visible: boolean;
|
|
7186
8288
|
showPc: boolean;
|
|
7187
8289
|
showMobile: boolean;
|
|
7188
|
-
productSort: "
|
|
8290
|
+
productSort: "NAME" | "RECENT" | "POPULAR" | "PRICE_LOW" | "PRICE_HIGH";
|
|
7189
8291
|
metaTitle: string | null;
|
|
7190
8292
|
metaDescription: string | null;
|
|
7191
8293
|
metaKeywords: string | null;
|
|
@@ -7214,7 +8316,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7214
8316
|
visible: boolean;
|
|
7215
8317
|
showPc: boolean;
|
|
7216
8318
|
showMobile: boolean;
|
|
7217
|
-
productSort: "
|
|
8319
|
+
productSort: "NAME" | "RECENT" | "POPULAR" | "PRICE_LOW" | "PRICE_HIGH";
|
|
7218
8320
|
metaTitle: string | null;
|
|
7219
8321
|
metaDescription: string | null;
|
|
7220
8322
|
metaKeywords: string | null;
|
|
@@ -7233,7 +8335,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7233
8335
|
visible: boolean;
|
|
7234
8336
|
showPc: boolean;
|
|
7235
8337
|
showMobile: boolean;
|
|
7236
|
-
productSort: "
|
|
8338
|
+
productSort: "NAME" | "RECENT" | "POPULAR" | "PRICE_LOW" | "PRICE_HIGH";
|
|
7237
8339
|
metaTitle: string | null;
|
|
7238
8340
|
metaDescription: string | null;
|
|
7239
8341
|
metaKeywords: string | null;
|
|
@@ -7330,6 +8432,16 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7330
8432
|
productName: string;
|
|
7331
8433
|
optionId: string | null;
|
|
7332
8434
|
optionName: string | null;
|
|
8435
|
+
optionSelections: {
|
|
8436
|
+
kind: string;
|
|
8437
|
+
groupName: string;
|
|
8438
|
+
valueName: string;
|
|
8439
|
+
additionalPrice: number;
|
|
8440
|
+
}[];
|
|
8441
|
+
customInputs: {
|
|
8442
|
+
label: string;
|
|
8443
|
+
value: string;
|
|
8444
|
+
}[];
|
|
7333
8445
|
sellerCode: string | null;
|
|
7334
8446
|
fulfillmentSnapshot: UnknownFulfillment | {
|
|
7335
8447
|
type: "SHIPPING";
|
|
@@ -7405,6 +8517,16 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7405
8517
|
productName: string;
|
|
7406
8518
|
optionId: string | null;
|
|
7407
8519
|
optionName: string | null;
|
|
8520
|
+
optionSelections: {
|
|
8521
|
+
kind: string;
|
|
8522
|
+
groupName: string;
|
|
8523
|
+
valueName: string;
|
|
8524
|
+
additionalPrice: number;
|
|
8525
|
+
}[];
|
|
8526
|
+
customInputs: {
|
|
8527
|
+
label: string;
|
|
8528
|
+
value: string;
|
|
8529
|
+
}[];
|
|
7408
8530
|
sellerCode: string | null;
|
|
7409
8531
|
fulfillmentSnapshot: UnknownFulfillment | {
|
|
7410
8532
|
type: "SHIPPING";
|
|
@@ -7508,6 +8630,16 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7508
8630
|
productName: string;
|
|
7509
8631
|
optionId: string | null;
|
|
7510
8632
|
optionName: string | null;
|
|
8633
|
+
optionSelections: {
|
|
8634
|
+
kind: string;
|
|
8635
|
+
groupName: string;
|
|
8636
|
+
valueName: string;
|
|
8637
|
+
additionalPrice: number;
|
|
8638
|
+
}[];
|
|
8639
|
+
customInputs: {
|
|
8640
|
+
label: string;
|
|
8641
|
+
value: string;
|
|
8642
|
+
}[];
|
|
7511
8643
|
sellerCode: string | null;
|
|
7512
8644
|
fulfillmentSnapshot: UnknownFulfillment | {
|
|
7513
8645
|
type: "SHIPPING";
|
|
@@ -7566,6 +8698,16 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7566
8698
|
productName: string;
|
|
7567
8699
|
optionId: string | null;
|
|
7568
8700
|
optionName: string | null;
|
|
8701
|
+
optionSelections: {
|
|
8702
|
+
kind: string;
|
|
8703
|
+
groupName: string;
|
|
8704
|
+
valueName: string;
|
|
8705
|
+
additionalPrice: number;
|
|
8706
|
+
}[];
|
|
8707
|
+
customInputs: {
|
|
8708
|
+
label: string;
|
|
8709
|
+
value: string;
|
|
8710
|
+
}[];
|
|
7569
8711
|
sellerCode: string | null;
|
|
7570
8712
|
fulfillmentSnapshot: UnknownFulfillment | {
|
|
7571
8713
|
type: "SHIPPING";
|
|
@@ -10157,6 +11299,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10157
11299
|
buildId: string | null;
|
|
10158
11300
|
createdByType: string;
|
|
10159
11301
|
createdAt: string;
|
|
11302
|
+
createdVia?: string | null | undefined;
|
|
10160
11303
|
} | null;
|
|
10161
11304
|
provisioning: {
|
|
10162
11305
|
status: "PENDING" | "FAILED" | "SYNCED";
|
|
@@ -10169,6 +11312,10 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10169
11312
|
slugChangesRemaining: number;
|
|
10170
11313
|
createdAt: string;
|
|
10171
11314
|
updatedAt: string;
|
|
11315
|
+
suspension?: {
|
|
11316
|
+
reason: string | null;
|
|
11317
|
+
suspendedAt: string | null;
|
|
11318
|
+
} | null | undefined;
|
|
10172
11319
|
} | null;
|
|
10173
11320
|
}>;
|
|
10174
11321
|
/** `GET /v1/storefront/slug-availability?slug=` — 슬러그를 쓸 수 있는가 */
|
|
@@ -10207,6 +11354,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10207
11354
|
buildId: string | null;
|
|
10208
11355
|
createdByType: string;
|
|
10209
11356
|
createdAt: string;
|
|
11357
|
+
createdVia?: string | null | undefined;
|
|
10210
11358
|
} | null;
|
|
10211
11359
|
provisioning: {
|
|
10212
11360
|
status: "PENDING" | "FAILED" | "SYNCED";
|
|
@@ -10219,6 +11367,10 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10219
11367
|
slugChangesRemaining: number;
|
|
10220
11368
|
createdAt: string;
|
|
10221
11369
|
updatedAt: string;
|
|
11370
|
+
suspension?: {
|
|
11371
|
+
reason: string | null;
|
|
11372
|
+
suspendedAt: string | null;
|
|
11373
|
+
} | null | undefined;
|
|
10222
11374
|
}>;
|
|
10223
11375
|
/** `POST /v1/storefront/site/template` — 템플릿을 바꾼다. 새 버전을 만들고 기본으로 곧바로 발행한다 */
|
|
10224
11376
|
changeTemplate: (body: ChangeStorefrontTemplateRequest) => Promise<{
|
|
@@ -10250,6 +11402,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10250
11402
|
buildId: string | null;
|
|
10251
11403
|
createdByType: string;
|
|
10252
11404
|
createdAt: string;
|
|
11405
|
+
createdVia?: string | null | undefined;
|
|
10253
11406
|
} | null;
|
|
10254
11407
|
provisioning: {
|
|
10255
11408
|
status: "PENDING" | "FAILED" | "SYNCED";
|
|
@@ -10262,6 +11415,10 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10262
11415
|
slugChangesRemaining: number;
|
|
10263
11416
|
createdAt: string;
|
|
10264
11417
|
updatedAt: string;
|
|
11418
|
+
suspension?: {
|
|
11419
|
+
reason: string | null;
|
|
11420
|
+
suspendedAt: string | null;
|
|
11421
|
+
} | null | undefined;
|
|
10265
11422
|
}>;
|
|
10266
11423
|
/** `GET /v1/storefront/site/versions` — 버전 목록(최신 먼저) */
|
|
10267
11424
|
listVersions: () => Promise<{
|
|
@@ -10277,6 +11434,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10277
11434
|
buildId: string | null;
|
|
10278
11435
|
createdByType: string;
|
|
10279
11436
|
createdAt: string;
|
|
11437
|
+
createdVia?: string | null | undefined;
|
|
10280
11438
|
}[]>;
|
|
10281
11439
|
/** `POST /v1/storefront/site/versions/{versionId}/publish` — 그 버전을 발행한다(이미 발행돼 있으면 그대로 200) */
|
|
10282
11440
|
publish: (versionId: string, body?: PublishStorefrontVersionRequest) => Promise<{
|
|
@@ -10308,6 +11466,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10308
11466
|
buildId: string | null;
|
|
10309
11467
|
createdByType: string;
|
|
10310
11468
|
createdAt: string;
|
|
11469
|
+
createdVia?: string | null | undefined;
|
|
10311
11470
|
} | null;
|
|
10312
11471
|
provisioning: {
|
|
10313
11472
|
status: "PENDING" | "FAILED" | "SYNCED";
|
|
@@ -10320,6 +11479,10 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10320
11479
|
slugChangesRemaining: number;
|
|
10321
11480
|
createdAt: string;
|
|
10322
11481
|
updatedAt: string;
|
|
11482
|
+
suspension?: {
|
|
11483
|
+
reason: string | null;
|
|
11484
|
+
suspendedAt: string | null;
|
|
11485
|
+
} | null | undefined;
|
|
10323
11486
|
}>;
|
|
10324
11487
|
/** `POST /v1/storefront/site/rollback` — 이전 발행 버전으로 되돌린다(재빌드 없음) */
|
|
10325
11488
|
rollback: (body?: RollbackStorefrontRequest) => Promise<{
|
|
@@ -10351,6 +11514,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10351
11514
|
buildId: string | null;
|
|
10352
11515
|
createdByType: string;
|
|
10353
11516
|
createdAt: string;
|
|
11517
|
+
createdVia?: string | null | undefined;
|
|
10354
11518
|
} | null;
|
|
10355
11519
|
provisioning: {
|
|
10356
11520
|
status: "PENDING" | "FAILED" | "SYNCED";
|
|
@@ -10363,6 +11527,10 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10363
11527
|
slugChangesRemaining: number;
|
|
10364
11528
|
createdAt: string;
|
|
10365
11529
|
updatedAt: string;
|
|
11530
|
+
suspension?: {
|
|
11531
|
+
reason: string | null;
|
|
11532
|
+
suspendedAt: string | null;
|
|
11533
|
+
} | null | undefined;
|
|
10366
11534
|
}>;
|
|
10367
11535
|
/** `PUT /v1/storefront/site/slug` — 슬러그를 바꾼다. 옛 슬러그는 90일 보류되고 새 주소로 301한다 */
|
|
10368
11536
|
changeSlug: (body: ChangeStorefrontSlugRequest) => Promise<{
|
|
@@ -10394,6 +11562,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10394
11562
|
buildId: string | null;
|
|
10395
11563
|
createdByType: string;
|
|
10396
11564
|
createdAt: string;
|
|
11565
|
+
createdVia?: string | null | undefined;
|
|
10397
11566
|
} | null;
|
|
10398
11567
|
provisioning: {
|
|
10399
11568
|
status: "PENDING" | "FAILED" | "SYNCED";
|
|
@@ -10406,6 +11575,10 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10406
11575
|
slugChangesRemaining: number;
|
|
10407
11576
|
createdAt: string;
|
|
10408
11577
|
updatedAt: string;
|
|
11578
|
+
suspension?: {
|
|
11579
|
+
reason: string | null;
|
|
11580
|
+
suspendedAt: string | null;
|
|
11581
|
+
} | null | undefined;
|
|
10409
11582
|
}>;
|
|
10410
11583
|
/** `PUT /v1/storefront/site/visibility` — 오픈 준비 중 ↔ 공개 */
|
|
10411
11584
|
setVisibility: (body: SetStorefrontVisibilityRequest) => Promise<{
|
|
@@ -10437,6 +11610,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10437
11610
|
buildId: string | null;
|
|
10438
11611
|
createdByType: string;
|
|
10439
11612
|
createdAt: string;
|
|
11613
|
+
createdVia?: string | null | undefined;
|
|
10440
11614
|
} | null;
|
|
10441
11615
|
provisioning: {
|
|
10442
11616
|
status: "PENDING" | "FAILED" | "SYNCED";
|
|
@@ -10449,6 +11623,10 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10449
11623
|
slugChangesRemaining: number;
|
|
10450
11624
|
createdAt: string;
|
|
10451
11625
|
updatedAt: string;
|
|
11626
|
+
suspension?: {
|
|
11627
|
+
reason: string | null;
|
|
11628
|
+
suspendedAt: string | null;
|
|
11629
|
+
} | null | undefined;
|
|
10452
11630
|
}>;
|
|
10453
11631
|
/**
|
|
10454
11632
|
* `POST /v1/storefront/site/preview-link` — 오픈 준비 중인 사이트를 구성원이 볼 수 있는 5분짜리 링크.
|
|
@@ -10458,6 +11636,101 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10458
11636
|
url: string;
|
|
10459
11637
|
expiresAt: string;
|
|
10460
11638
|
}>;
|
|
11639
|
+
/** `GET /v1/storefront/site/domains` — 주소 목록(기본 주소 + 내 도메인)과 DNS 안내 */
|
|
11640
|
+
listDomains: () => Promise<{
|
|
11641
|
+
enabled: boolean;
|
|
11642
|
+
limit: number;
|
|
11643
|
+
target: string;
|
|
11644
|
+
domains: {
|
|
11645
|
+
domainId: string;
|
|
11646
|
+
hostname: string;
|
|
11647
|
+
kind: "PLATFORM" | "CUSTOM";
|
|
11648
|
+
status: "ACTIVE" | "FAILED" | "PENDING_DNS" | "PENDING_VALIDATION";
|
|
11649
|
+
isPrimary: boolean;
|
|
11650
|
+
dnsRecords: {
|
|
11651
|
+
type: "CNAME" | "TXT";
|
|
11652
|
+
name: string;
|
|
11653
|
+
value: string;
|
|
11654
|
+
purpose: "ROUTING" | "OWNERSHIP";
|
|
11655
|
+
}[];
|
|
11656
|
+
certificateStatus: "ACTIVE" | "PENDING" | "FAILED" | null;
|
|
11657
|
+
failureCode: string | null;
|
|
11658
|
+
verifiedAt: string | null;
|
|
11659
|
+
activatedAt: string | null;
|
|
11660
|
+
checkedAt: string | null;
|
|
11661
|
+
createdAt: string;
|
|
11662
|
+
}[];
|
|
11663
|
+
}>;
|
|
11664
|
+
/**
|
|
11665
|
+
* `POST /v1/storefront/site/domains` (201) — 내 도메인을 추가한다. 응답의 `dnsRecords`를 DNS에 넣으면 서버가 소유를 확인하고
|
|
11666
|
+
* 인증서를 발급한다
|
|
11667
|
+
*/
|
|
11668
|
+
addDomain: (body: AddStorefrontDomainRequest) => Promise<{
|
|
11669
|
+
domainId: string;
|
|
11670
|
+
hostname: string;
|
|
11671
|
+
kind: "PLATFORM" | "CUSTOM";
|
|
11672
|
+
status: "ACTIVE" | "FAILED" | "PENDING_DNS" | "PENDING_VALIDATION";
|
|
11673
|
+
isPrimary: boolean;
|
|
11674
|
+
dnsRecords: {
|
|
11675
|
+
type: "CNAME" | "TXT";
|
|
11676
|
+
name: string;
|
|
11677
|
+
value: string;
|
|
11678
|
+
purpose: "ROUTING" | "OWNERSHIP";
|
|
11679
|
+
}[];
|
|
11680
|
+
certificateStatus: "ACTIVE" | "PENDING" | "FAILED" | null;
|
|
11681
|
+
failureCode: string | null;
|
|
11682
|
+
verifiedAt: string | null;
|
|
11683
|
+
activatedAt: string | null;
|
|
11684
|
+
checkedAt: string | null;
|
|
11685
|
+
createdAt: string;
|
|
11686
|
+
}>;
|
|
11687
|
+
/** `POST /v1/storefront/site/domains/{domainId}/verify` — DNS를 곧바로 다시 확인한다(실패한 도메인은 처음부터 다시) */
|
|
11688
|
+
verifyDomain: (domainId: string) => Promise<{
|
|
11689
|
+
domainId: string;
|
|
11690
|
+
hostname: string;
|
|
11691
|
+
kind: "PLATFORM" | "CUSTOM";
|
|
11692
|
+
status: "ACTIVE" | "FAILED" | "PENDING_DNS" | "PENDING_VALIDATION";
|
|
11693
|
+
isPrimary: boolean;
|
|
11694
|
+
dnsRecords: {
|
|
11695
|
+
type: "CNAME" | "TXT";
|
|
11696
|
+
name: string;
|
|
11697
|
+
value: string;
|
|
11698
|
+
purpose: "ROUTING" | "OWNERSHIP";
|
|
11699
|
+
}[];
|
|
11700
|
+
certificateStatus: "ACTIVE" | "PENDING" | "FAILED" | null;
|
|
11701
|
+
failureCode: string | null;
|
|
11702
|
+
verifiedAt: string | null;
|
|
11703
|
+
activatedAt: string | null;
|
|
11704
|
+
checkedAt: string | null;
|
|
11705
|
+
createdAt: string;
|
|
11706
|
+
}>;
|
|
11707
|
+
/** `POST /v1/storefront/site/domains/{domainId}/primary` — 대표 주소로 지정한다. 다른 주소는 대표 주소로 301한다 */
|
|
11708
|
+
setPrimaryDomain: (domainId: string) => Promise<{
|
|
11709
|
+
enabled: boolean;
|
|
11710
|
+
limit: number;
|
|
11711
|
+
target: string;
|
|
11712
|
+
domains: {
|
|
11713
|
+
domainId: string;
|
|
11714
|
+
hostname: string;
|
|
11715
|
+
kind: "PLATFORM" | "CUSTOM";
|
|
11716
|
+
status: "ACTIVE" | "FAILED" | "PENDING_DNS" | "PENDING_VALIDATION";
|
|
11717
|
+
isPrimary: boolean;
|
|
11718
|
+
dnsRecords: {
|
|
11719
|
+
type: "CNAME" | "TXT";
|
|
11720
|
+
name: string;
|
|
11721
|
+
value: string;
|
|
11722
|
+
purpose: "ROUTING" | "OWNERSHIP";
|
|
11723
|
+
}[];
|
|
11724
|
+
certificateStatus: "ACTIVE" | "PENDING" | "FAILED" | null;
|
|
11725
|
+
failureCode: string | null;
|
|
11726
|
+
verifiedAt: string | null;
|
|
11727
|
+
activatedAt: string | null;
|
|
11728
|
+
checkedAt: string | null;
|
|
11729
|
+
createdAt: string;
|
|
11730
|
+
}[];
|
|
11731
|
+
}>;
|
|
11732
|
+
/** `DELETE /v1/storefront/site/domains/{domainId}` — 내 도메인 연결을 해제한다(곧바로 끊긴다) */
|
|
11733
|
+
removeDomain: (domainId: string) => Promise<void>;
|
|
10461
11734
|
/** `POST /v1/storefront/site/disable` — 호스팅을 끈다(사이트 `CLOSED`, 슬러그 90일 보류). 다시 만들 수 있다 */
|
|
10462
11735
|
disable: (body: DisableStorefrontHostingRequest) => Promise<{
|
|
10463
11736
|
siteId: string;
|
|
@@ -10488,6 +11761,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10488
11761
|
buildId: string | null;
|
|
10489
11762
|
createdByType: string;
|
|
10490
11763
|
createdAt: string;
|
|
11764
|
+
createdVia?: string | null | undefined;
|
|
10491
11765
|
} | null;
|
|
10492
11766
|
provisioning: {
|
|
10493
11767
|
status: "PENDING" | "FAILED" | "SYNCED";
|
|
@@ -10500,6 +11774,10 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10500
11774
|
slugChangesRemaining: number;
|
|
10501
11775
|
createdAt: string;
|
|
10502
11776
|
updatedAt: string;
|
|
11777
|
+
suspension?: {
|
|
11778
|
+
reason: string | null;
|
|
11779
|
+
suspendedAt: string | null;
|
|
11780
|
+
} | null | undefined;
|
|
10503
11781
|
}>;
|
|
10504
11782
|
/** `GET /v1/storefront/site/editing` — 편집 환경 상태(열린 환경·동시 상한·미리보기 인증서) */
|
|
10505
11783
|
getEditing: () => Promise<{
|
|
@@ -10721,6 +11999,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10721
11999
|
buildId: string | null;
|
|
10722
12000
|
createdByType: string;
|
|
10723
12001
|
createdAt: string;
|
|
12002
|
+
createdVia?: string | null | undefined;
|
|
10724
12003
|
};
|
|
10725
12004
|
build: {
|
|
10726
12005
|
buildId: string;
|
|
@@ -10771,6 +12050,33 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10771
12050
|
startedAt: string | null;
|
|
10772
12051
|
finishedAt: string | null;
|
|
10773
12052
|
durationMs: number | null;
|
|
12053
|
+
dependencies?: {
|
|
12054
|
+
checkedPackages: number;
|
|
12055
|
+
rejected: {
|
|
12056
|
+
name: string;
|
|
12057
|
+
version: string | null;
|
|
12058
|
+
reason: string;
|
|
12059
|
+
detail: string;
|
|
12060
|
+
advisory?: {
|
|
12061
|
+
id: string;
|
|
12062
|
+
url: string | null;
|
|
12063
|
+
severity: string;
|
|
12064
|
+
title: string;
|
|
12065
|
+
} | null | undefined;
|
|
12066
|
+
}[];
|
|
12067
|
+
warnings: {
|
|
12068
|
+
name: string;
|
|
12069
|
+
version: string | null;
|
|
12070
|
+
reason: string;
|
|
12071
|
+
detail: string;
|
|
12072
|
+
advisory?: {
|
|
12073
|
+
id: string;
|
|
12074
|
+
url: string | null;
|
|
12075
|
+
severity: string;
|
|
12076
|
+
title: string;
|
|
12077
|
+
} | null | undefined;
|
|
12078
|
+
}[];
|
|
12079
|
+
} | null | undefined;
|
|
10774
12080
|
};
|
|
10775
12081
|
}>;
|
|
10776
12082
|
/** `GET /v1/storefront/site/builds?limit=` — 빌드 목록(최신 먼저) */
|
|
@@ -10825,6 +12131,33 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10825
12131
|
startedAt: string | null;
|
|
10826
12132
|
finishedAt: string | null;
|
|
10827
12133
|
durationMs: number | null;
|
|
12134
|
+
dependencies?: {
|
|
12135
|
+
checkedPackages: number;
|
|
12136
|
+
rejected: {
|
|
12137
|
+
name: string;
|
|
12138
|
+
version: string | null;
|
|
12139
|
+
reason: string;
|
|
12140
|
+
detail: string;
|
|
12141
|
+
advisory?: {
|
|
12142
|
+
id: string;
|
|
12143
|
+
url: string | null;
|
|
12144
|
+
severity: string;
|
|
12145
|
+
title: string;
|
|
12146
|
+
} | null | undefined;
|
|
12147
|
+
}[];
|
|
12148
|
+
warnings: {
|
|
12149
|
+
name: string;
|
|
12150
|
+
version: string | null;
|
|
12151
|
+
reason: string;
|
|
12152
|
+
detail: string;
|
|
12153
|
+
advisory?: {
|
|
12154
|
+
id: string;
|
|
12155
|
+
url: string | null;
|
|
12156
|
+
severity: string;
|
|
12157
|
+
title: string;
|
|
12158
|
+
} | null | undefined;
|
|
12159
|
+
}[];
|
|
12160
|
+
} | null | undefined;
|
|
10828
12161
|
}[]>;
|
|
10829
12162
|
/** `GET /v1/storefront/site/builds/{buildId}` — 빌드 상태·실패 단계·로그 꼬리·규칙 결과 */
|
|
10830
12163
|
getBuild: (buildId: string) => Promise<{
|
|
@@ -10876,6 +12209,94 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10876
12209
|
startedAt: string | null;
|
|
10877
12210
|
finishedAt: string | null;
|
|
10878
12211
|
durationMs: number | null;
|
|
12212
|
+
dependencies?: {
|
|
12213
|
+
checkedPackages: number;
|
|
12214
|
+
rejected: {
|
|
12215
|
+
name: string;
|
|
12216
|
+
version: string | null;
|
|
12217
|
+
reason: string;
|
|
12218
|
+
detail: string;
|
|
12219
|
+
advisory?: {
|
|
12220
|
+
id: string;
|
|
12221
|
+
url: string | null;
|
|
12222
|
+
severity: string;
|
|
12223
|
+
title: string;
|
|
12224
|
+
} | null | undefined;
|
|
12225
|
+
}[];
|
|
12226
|
+
warnings: {
|
|
12227
|
+
name: string;
|
|
12228
|
+
version: string | null;
|
|
12229
|
+
reason: string;
|
|
12230
|
+
detail: string;
|
|
12231
|
+
advisory?: {
|
|
12232
|
+
id: string;
|
|
12233
|
+
url: string | null;
|
|
12234
|
+
severity: string;
|
|
12235
|
+
title: string;
|
|
12236
|
+
} | null | undefined;
|
|
12237
|
+
}[];
|
|
12238
|
+
} | null | undefined;
|
|
12239
|
+
}>;
|
|
12240
|
+
/** `GET /v1/storefront/site/source` — 지금 작업 트리를 고정하고 압축 파일(tar.gz) 크기·조각 수를 알린다 */
|
|
12241
|
+
getSource: () => Promise<{
|
|
12242
|
+
siteId: string;
|
|
12243
|
+
storeId: string;
|
|
12244
|
+
storeCode: string;
|
|
12245
|
+
sourceRef: string;
|
|
12246
|
+
treeSha256: string;
|
|
12247
|
+
files: number;
|
|
12248
|
+
bytes: number;
|
|
12249
|
+
archive: {
|
|
12250
|
+
format: "tar+gzip";
|
|
12251
|
+
bytes: number;
|
|
12252
|
+
sha256: string;
|
|
12253
|
+
parts: number;
|
|
12254
|
+
partBytes: number;
|
|
12255
|
+
};
|
|
12256
|
+
editSessionOpen: boolean;
|
|
12257
|
+
}>;
|
|
12258
|
+
/** `GET /v1/storefront/site/source/archive?sourceRef=&part=` — 압축 파일 조각(base64, 4MiB까지) */
|
|
12259
|
+
getSourceArchive: (params: {
|
|
12260
|
+
sourceRef: string;
|
|
12261
|
+
part?: number;
|
|
12262
|
+
}) => Promise<{
|
|
12263
|
+
sourceRef: string;
|
|
12264
|
+
part: number;
|
|
12265
|
+
parts: number;
|
|
12266
|
+
offset: number;
|
|
12267
|
+
bytes: number;
|
|
12268
|
+
totalBytes: number;
|
|
12269
|
+
content: string;
|
|
12270
|
+
}>;
|
|
12271
|
+
/** `POST /v1/storefront/site/source/blobs` — 파일 내용 올리기(해시 키). 작업 트리는 바뀌지 않는다 */
|
|
12272
|
+
uploadSourceBlobs: (body: UploadStorefrontSourceBlobsRequest) => Promise<{
|
|
12273
|
+
stored: number;
|
|
12274
|
+
existing: number;
|
|
12275
|
+
}>;
|
|
12276
|
+
/**
|
|
12277
|
+
* `PUT /v1/storefront/site/source` — 작업 트리 전체를 바꾼다. 409 `SOURCE_CHANGED`(내려받은 뒤 바뀜)·`EDIT_SESSION_OPEN`·
|
|
12278
|
+
* `SOURCE_BLOBS_MISSING`(`details.hashes`를 올리고 다시)
|
|
12279
|
+
*/
|
|
12280
|
+
replaceSource: (body: ReplaceStorefrontSourceRequest) => Promise<{
|
|
12281
|
+
sourceRef: string;
|
|
12282
|
+
previousRef: string;
|
|
12283
|
+
treeSha256: string;
|
|
12284
|
+
files: number;
|
|
12285
|
+
bytes: number;
|
|
12286
|
+
changed: boolean;
|
|
12287
|
+
endedEditSession: boolean;
|
|
12288
|
+
dependencyWarnings: {
|
|
12289
|
+
name: string;
|
|
12290
|
+
version: string | null;
|
|
12291
|
+
reason: string;
|
|
12292
|
+
detail: string;
|
|
12293
|
+
advisory?: {
|
|
12294
|
+
id: string;
|
|
12295
|
+
url: string | null;
|
|
12296
|
+
severity: string;
|
|
12297
|
+
title: string;
|
|
12298
|
+
} | null | undefined;
|
|
12299
|
+
}[];
|
|
10879
12300
|
}>;
|
|
10880
12301
|
};
|
|
10881
12302
|
store: {
|
|
@@ -11172,6 +12593,7 @@ export declare const couponRejectReasonSchema: z.ZodEnum<{
|
|
|
11172
12593
|
NO_ELIGIBLE_ITEMS: "NO_ELIGIBLE_ITEMS";
|
|
11173
12594
|
MIN_ORDER_AMOUNT: "MIN_ORDER_AMOUNT";
|
|
11174
12595
|
LINE_NOT_ELIGIBLE: "LINE_NOT_ELIGIBLE";
|
|
12596
|
+
LINE_AMBIGUOUS: "LINE_AMBIGUOUS";
|
|
11175
12597
|
NO_DISCOUNT: "NO_DISCOUNT";
|
|
11176
12598
|
}>;
|
|
11177
12599
|
export type CouponRejectReason = z.infer<typeof couponRejectReasonSchema>;
|
|
@@ -11841,6 +13263,19 @@ export declare const orderWebhookEventDataSchema: z.ZodObject<{
|
|
|
11841
13263
|
[x: string]: unknown;
|
|
11842
13264
|
type: string;
|
|
11843
13265
|
}>>]>>;
|
|
13266
|
+
itemOptions: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
13267
|
+
orderItemId: z.ZodString;
|
|
13268
|
+
optionSelections: z.ZodArray<z.ZodObject<{
|
|
13269
|
+
kind: z.ZodString;
|
|
13270
|
+
groupName: z.ZodString;
|
|
13271
|
+
valueName: z.ZodString;
|
|
13272
|
+
additionalPrice: z.ZodNumber;
|
|
13273
|
+
}, z.core.$strip>>;
|
|
13274
|
+
customInputs: z.ZodArray<z.ZodObject<{
|
|
13275
|
+
label: z.ZodString;
|
|
13276
|
+
value: z.ZodString;
|
|
13277
|
+
}, z.core.$strip>>;
|
|
13278
|
+
}, z.core.$strip>>>;
|
|
11844
13279
|
}, z.core.$strip>;
|
|
11845
13280
|
export type OrderWebhookEventData = z.infer<typeof orderWebhookEventDataSchema>;
|
|
11846
13281
|
/**
|
|
@@ -12004,6 +13439,19 @@ export declare const orderWebhookEventSchema: z.ZodObject<{
|
|
|
12004
13439
|
[x: string]: unknown;
|
|
12005
13440
|
type: string;
|
|
12006
13441
|
}>>]>>;
|
|
13442
|
+
itemOptions: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
13443
|
+
orderItemId: z.ZodString;
|
|
13444
|
+
optionSelections: z.ZodArray<z.ZodObject<{
|
|
13445
|
+
kind: z.ZodString;
|
|
13446
|
+
groupName: z.ZodString;
|
|
13447
|
+
valueName: z.ZodString;
|
|
13448
|
+
additionalPrice: z.ZodNumber;
|
|
13449
|
+
}, z.core.$strip>>;
|
|
13450
|
+
customInputs: z.ZodArray<z.ZodObject<{
|
|
13451
|
+
label: z.ZodString;
|
|
13452
|
+
value: z.ZodString;
|
|
13453
|
+
}, z.core.$strip>>;
|
|
13454
|
+
}, z.core.$strip>>>;
|
|
12007
13455
|
}, z.core.$strip>;
|
|
12008
13456
|
id: z.ZodString;
|
|
12009
13457
|
createdAt: z.ZodString;
|
|
@@ -12204,6 +13652,19 @@ export declare const webhookEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
12204
13652
|
[x: string]: unknown;
|
|
12205
13653
|
type: string;
|
|
12206
13654
|
}>>]>>;
|
|
13655
|
+
itemOptions: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
13656
|
+
orderItemId: z.ZodString;
|
|
13657
|
+
optionSelections: z.ZodArray<z.ZodObject<{
|
|
13658
|
+
kind: z.ZodString;
|
|
13659
|
+
groupName: z.ZodString;
|
|
13660
|
+
valueName: z.ZodString;
|
|
13661
|
+
additionalPrice: z.ZodNumber;
|
|
13662
|
+
}, z.core.$strip>>;
|
|
13663
|
+
customInputs: z.ZodArray<z.ZodObject<{
|
|
13664
|
+
label: z.ZodString;
|
|
13665
|
+
value: z.ZodString;
|
|
13666
|
+
}, z.core.$strip>>;
|
|
13667
|
+
}, z.core.$strip>>>;
|
|
12207
13668
|
}, z.core.$strip>;
|
|
12208
13669
|
id: z.ZodString;
|
|
12209
13670
|
createdAt: z.ZodString;
|