@sayren/store-sdk 0.18.0 → 0.19.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 +704 -25
- package/dist/index.mjs +228 -4
- package/package.json +1 -1
- package/src/client.ts +96 -0
- package/src/index.ts +1 -0
- package/src/schemas/scope.ts +3 -0
- package/src/schemas/storefront-hosting.ts +283 -0
package/dist/index.d.mts
CHANGED
|
@@ -165,8 +165,8 @@ export declare const auditLogPageSchema: z.ZodObject<{
|
|
|
165
165
|
}, z.core.$strip>;
|
|
166
166
|
export type AuditLogPage = z.infer<typeof auditLogPageSchema>;
|
|
167
167
|
export declare const agentPolicyDecisionSchema: z.ZodEnum<{
|
|
168
|
-
APPROVAL_REQUIRED: "APPROVAL_REQUIRED";
|
|
169
168
|
DENIED: "DENIED";
|
|
169
|
+
APPROVAL_REQUIRED: "APPROVAL_REQUIRED";
|
|
170
170
|
ALLOW: "ALLOW";
|
|
171
171
|
}>;
|
|
172
172
|
export type AgentPolicyDecision = z.infer<typeof agentPolicyDecisionSchema>;
|
|
@@ -190,8 +190,8 @@ export type WritePreview = z.infer<typeof writePreviewSchema>;
|
|
|
190
190
|
export declare const writeDryRunResultSchema: z.ZodObject<{
|
|
191
191
|
dryRun: z.ZodLiteral<true>;
|
|
192
192
|
decision: z.ZodEnum<{
|
|
193
|
-
APPROVAL_REQUIRED: "APPROVAL_REQUIRED";
|
|
194
193
|
DENIED: "DENIED";
|
|
194
|
+
APPROVAL_REQUIRED: "APPROVAL_REQUIRED";
|
|
195
195
|
ALLOW: "ALLOW";
|
|
196
196
|
}>;
|
|
197
197
|
reason: z.ZodNullable<z.ZodString>;
|
|
@@ -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
|
}>>>;
|
|
@@ -1073,9 +1073,9 @@ export type ApiLogSummary = z.infer<typeof apiLogSummarySchema>;
|
|
|
1073
1073
|
//#endregion
|
|
1074
1074
|
//#region src/schemas/auth.d.ts
|
|
1075
1075
|
export declare const storeRoleSchema: z.ZodEnum<{
|
|
1076
|
-
OWNER: "OWNER";
|
|
1077
1076
|
ADMIN: "ADMIN";
|
|
1078
1077
|
STAFF: "STAFF";
|
|
1078
|
+
OWNER: "OWNER";
|
|
1079
1079
|
}>;
|
|
1080
1080
|
export type StoreRole = z.infer<typeof storeRoleSchema>;
|
|
1081
1081
|
export declare const userTokenResponseSchema: z.ZodObject<{
|
|
@@ -1099,9 +1099,9 @@ export declare const storeTokenResponseSchema: z.ZodObject<{
|
|
|
1099
1099
|
expires_in: z.ZodNumber;
|
|
1100
1100
|
storeId: z.ZodString;
|
|
1101
1101
|
role: z.ZodEnum<{
|
|
1102
|
-
OWNER: "OWNER";
|
|
1103
1102
|
ADMIN: "ADMIN";
|
|
1104
1103
|
STAFF: "STAFF";
|
|
1104
|
+
OWNER: "OWNER";
|
|
1105
1105
|
}>;
|
|
1106
1106
|
scopes: z.ZodArray<z.ZodString>;
|
|
1107
1107
|
}, z.core.$strip>;
|
|
@@ -1111,9 +1111,9 @@ export declare const myStoreSchema: z.ZodObject<{
|
|
|
1111
1111
|
storeName: z.ZodString;
|
|
1112
1112
|
storeCode: z.ZodString;
|
|
1113
1113
|
role: z.ZodEnum<{
|
|
1114
|
-
OWNER: "OWNER";
|
|
1115
1114
|
ADMIN: "ADMIN";
|
|
1116
1115
|
STAFF: "STAFF";
|
|
1116
|
+
OWNER: "OWNER";
|
|
1117
1117
|
}>;
|
|
1118
1118
|
status: z.ZodEnum<{
|
|
1119
1119
|
ACTIVE: "ACTIVE";
|
|
@@ -5322,20 +5322,20 @@ export interface PaymentListParams extends PageParams {
|
|
|
5322
5322
|
//#endregion
|
|
5323
5323
|
//#region src/schemas/product.d.ts
|
|
5324
5324
|
export declare const productStatusSchema: z.ZodEnum<{
|
|
5325
|
-
SUSPENDED: "SUSPENDED";
|
|
5326
|
-
CLOSED: "CLOSED";
|
|
5327
5325
|
SALE: "SALE";
|
|
5326
|
+
SUSPENDED: "SUSPENDED";
|
|
5328
5327
|
OUT_OF_STOCK: "OUT_OF_STOCK";
|
|
5328
|
+
CLOSED: "CLOSED";
|
|
5329
5329
|
}>;
|
|
5330
5330
|
export type ProductStatus = z.infer<typeof productStatusSchema>;
|
|
5331
5331
|
export declare const productSummarySchema: z.ZodObject<{
|
|
5332
5332
|
productId: z.ZodString;
|
|
5333
5333
|
name: z.ZodString;
|
|
5334
5334
|
status: z.ZodEnum<{
|
|
5335
|
-
SUSPENDED: "SUSPENDED";
|
|
5336
|
-
CLOSED: "CLOSED";
|
|
5337
5335
|
SALE: "SALE";
|
|
5336
|
+
SUSPENDED: "SUSPENDED";
|
|
5338
5337
|
OUT_OF_STOCK: "OUT_OF_STOCK";
|
|
5338
|
+
CLOSED: "CLOSED";
|
|
5339
5339
|
}>;
|
|
5340
5340
|
salePrice: z.ZodNumber;
|
|
5341
5341
|
discountedPrice: z.ZodNullable<z.ZodNumber>;
|
|
@@ -5402,10 +5402,10 @@ export declare const productSchema: z.ZodObject<{
|
|
|
5402
5402
|
productId: z.ZodString;
|
|
5403
5403
|
name: z.ZodString;
|
|
5404
5404
|
status: z.ZodEnum<{
|
|
5405
|
-
SUSPENDED: "SUSPENDED";
|
|
5406
|
-
CLOSED: "CLOSED";
|
|
5407
5405
|
SALE: "SALE";
|
|
5406
|
+
SUSPENDED: "SUSPENDED";
|
|
5408
5407
|
OUT_OF_STOCK: "OUT_OF_STOCK";
|
|
5408
|
+
CLOSED: "CLOSED";
|
|
5409
5409
|
}>;
|
|
5410
5410
|
salePrice: z.ZodNumber;
|
|
5411
5411
|
discountedPrice: z.ZodNullable<z.ZodNumber>;
|
|
@@ -5824,10 +5824,10 @@ export declare const productPatchRequestSchema: z.ZodObject<{
|
|
|
5824
5824
|
name: z.ZodOptional<z.ZodString>;
|
|
5825
5825
|
salePrice: z.ZodOptional<z.ZodNumber>;
|
|
5826
5826
|
status: z.ZodOptional<z.ZodEnum<{
|
|
5827
|
-
SUSPENDED: "SUSPENDED";
|
|
5828
|
-
CLOSED: "CLOSED";
|
|
5829
5827
|
SALE: "SALE";
|
|
5828
|
+
SUSPENDED: "SUSPENDED";
|
|
5830
5829
|
OUT_OF_STOCK: "OUT_OF_STOCK";
|
|
5830
|
+
CLOSED: "CLOSED";
|
|
5831
5831
|
}>>;
|
|
5832
5832
|
fulfillment: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
5833
5833
|
type: z.ZodLiteral<"SHIPPING">;
|
|
@@ -5902,10 +5902,10 @@ export declare const productListQuerySchema: z.ZodObject<{
|
|
|
5902
5902
|
page: z.ZodOptional<z.ZodString>;
|
|
5903
5903
|
size: z.ZodOptional<z.ZodString>;
|
|
5904
5904
|
status: z.ZodOptional<z.ZodEnum<{
|
|
5905
|
-
SUSPENDED: "SUSPENDED";
|
|
5906
|
-
CLOSED: "CLOSED";
|
|
5907
5905
|
SALE: "SALE";
|
|
5906
|
+
SUSPENDED: "SUSPENDED";
|
|
5908
5907
|
OUT_OF_STOCK: "OUT_OF_STOCK";
|
|
5908
|
+
CLOSED: "CLOSED";
|
|
5909
5909
|
}>>;
|
|
5910
5910
|
categoryId: z.ZodOptional<z.ZodString>;
|
|
5911
5911
|
keyword: z.ZodOptional<z.ZodString>;
|
|
@@ -6042,9 +6042,9 @@ export declare const storeMemberSchema: z.ZodObject<{
|
|
|
6042
6042
|
name: z.ZodString;
|
|
6043
6043
|
email: z.ZodEmail;
|
|
6044
6044
|
role: z.ZodEnum<{
|
|
6045
|
-
OWNER: "OWNER";
|
|
6046
6045
|
ADMIN: "ADMIN";
|
|
6047
6046
|
STAFF: "STAFF";
|
|
6047
|
+
OWNER: "OWNER";
|
|
6048
6048
|
}>;
|
|
6049
6049
|
joinedAt: z.ZodString;
|
|
6050
6050
|
lastActiveAt: z.ZodNullable<z.ZodString>;
|
|
@@ -6174,6 +6174,331 @@ export declare const sellerAddressRequestSchema: z.ZodObject<{
|
|
|
6174
6174
|
}, z.core.$strip>;
|
|
6175
6175
|
export type SellerAddressRequest = z.infer<typeof sellerAddressRequestSchema>;
|
|
6176
6176
|
//#endregion
|
|
6177
|
+
//#region src/schemas/storefront-hosting.d.ts
|
|
6178
|
+
/**
|
|
6179
|
+
* 스토어프론트 호스팅 (이슈 #53, M1: 템플릿 발행) — 관리 API `/v1/storefront/**`의 계약이다.
|
|
6180
|
+
*
|
|
6181
|
+
* 셀러는 템플릿을 골라 사이트를 만들고 `{slug}.{호스팅 도메인}` 주소를 받는다. 발행은 버전 단위이고,
|
|
6182
|
+
* 되돌리기는 이전 버전을 다시 발행하는 것이다(재빌드 없음). 상태의 원천은 api DB이고 Cloudflare 쪽 반영
|
|
6183
|
+
* (라우팅 표·사이트 Worker)은 커밋 뒤 비동기다 — 반영 상태는 `provisioning`으로 본다.
|
|
6184
|
+
*
|
|
6185
|
+
* 스코프는 조회 `storefront:r`, 쓰기 `storefront:rw`(역할 OWNER·ADMIN)다. 에이전트(MCP)의 발행·되돌리기·템플릿 변경·
|
|
6186
|
+
* 공개 전환·슬러그 변경·호스팅 끄기는 승인(`APPROVAL_REQUIRED`)이다 — 구매자가 보는 화면을 바꾸는 쓰기다.
|
|
6187
|
+
*
|
|
6188
|
+
* 오류 코드:
|
|
6189
|
+
* - 403 `STOREFRONT_HOSTING_DISABLED` — 플랫폼 스위치가 꺼져 새 사이트를 만들 수 없다
|
|
6190
|
+
* - 404 `STOREFRONT_SITE_NOT_FOUND` · `STOREFRONT_TEMPLATE_NOT_FOUND` · `STOREFRONT_VERSION_NOT_FOUND`
|
|
6191
|
+
* - 409 `STOREFRONT_SITE_EXISTS` — 이미 사이트가 있다(스토어당 1개)
|
|
6192
|
+
* - 409 `STOREFRONT_SLUG_TAKEN` — 다른 사이트가 쓰거나 보류 중인 슬러그다
|
|
6193
|
+
* - 409 `STOREFRONT_SLUG_CHANGE_LIMIT` — 슬러그는 스토어당 30일에 3번까지 바꾼다
|
|
6194
|
+
* - 409 `STOREFRONT_SITE_CREATE_LIMIT` — 사이트는 스토어당 30일에 3번까지 만든다
|
|
6195
|
+
* - 409 `STOREFRONT_SITE_CHANGED` — 읽은 상태(`expected*`)와 현재 상태가 다르다. 다시 읽고 시도한다
|
|
6196
|
+
* - 409 `STOREFRONT_SITE_NOT_ACTIVE` — 정지(`SUSPENDED`)된 사이트는 바꾸거나 끌 수 없다
|
|
6197
|
+
* - 409 `STOREFRONT_VERSION_NOT_READY` — 빌드가 끝나지 않았거나 실패한 버전은 발행할 수 없다
|
|
6198
|
+
* - 409 `STOREFRONT_NO_ROLLBACK_TARGET` — 되돌릴 이전 발행 버전이 없다
|
|
6199
|
+
* - 400 `STOREFRONT_SLUG_CONFIRM_MISMATCH` — 호스팅 끄기 확인 입력이 현재 슬러그와 다르다
|
|
6200
|
+
* - 503 `STOREFRONT_PREVIEW_NOT_CONFIGURED` — 미리보기 서명 키가 설정되지 않았다
|
|
6201
|
+
*/
|
|
6202
|
+
/**
|
|
6203
|
+
* 슬러그 형식 — 스토어 코드와 같은 DNS 라벨 규칙(소문자·숫자·하이픈 3~30자, 하이픈으로 시작·끝 불가)에
|
|
6204
|
+
* 연속 하이픈 금지를 더한다. `--`는 버전 미리보기 주소(`v3--{slug}`)와 punycode(`xn--`)가 쓰는 구분자다.
|
|
6205
|
+
*/
|
|
6206
|
+
export declare const STOREFRONT_SLUG_PATTERN: RegExp;
|
|
6207
|
+
/** 호스팅 도메인에서 플랫폼이 쓰거나 쓸 이름 — 스토어 코드 예약어에 호스팅 전용 이름을 더한다 */
|
|
6208
|
+
export declare const RESERVED_STOREFRONT_SLUGS: readonly string[];
|
|
6209
|
+
export declare function isReservedStorefrontSlug(slug: string): boolean;
|
|
6210
|
+
export declare const storefrontSlugSchema: z.ZodString;
|
|
6211
|
+
/** 바꾼 슬러그를 다른 사이트가 가져가지 못하게 막는 기간(일). 보류 동안 옛 주소는 새 주소로 301한다 */
|
|
6212
|
+
export declare const STOREFRONT_SLUG_HOLD_DAYS = 90;
|
|
6213
|
+
/** 슬러그 변경 한도 — 이 기간(일) 안에 */
|
|
6214
|
+
export declare const STOREFRONT_SLUG_CHANGE_WINDOW_DAYS = 30;
|
|
6215
|
+
/** 슬러그 변경 한도 — 횟수(스토어 단위. 끄고 다시 만들어도 이어서 센다) */
|
|
6216
|
+
export declare const STOREFRONT_SLUG_CHANGE_LIMIT = 3;
|
|
6217
|
+
/** 사이트 만들기 한도 — 같은 창(30일) 안의 횟수(스토어 단위). 끄고 만들기를 되풀이해 이름을 묶어 두지 못하게 한다 */
|
|
6218
|
+
export declare const STOREFRONT_SITE_CREATE_LIMIT = 3;
|
|
6219
|
+
export declare const storefrontTemplateSchema: z.ZodObject<{
|
|
6220
|
+
templateId: z.ZodString;
|
|
6221
|
+
name: z.ZodString;
|
|
6222
|
+
industry: z.ZodString;
|
|
6223
|
+
description: z.ZodString;
|
|
6224
|
+
thumbnailUrl: z.ZodNullable<z.ZodString>;
|
|
6225
|
+
version: z.ZodString;
|
|
6226
|
+
isDefault: z.ZodBoolean;
|
|
6227
|
+
}, z.core.$strip>;
|
|
6228
|
+
export type StorefrontTemplate = z.infer<typeof storefrontTemplateSchema>;
|
|
6229
|
+
/**
|
|
6230
|
+
* 버전 상태 — M1은 템플릿 빌드 산출물을 그대로 쓰므로 만들 때 곧바로 `READY`다. `BUILDING`·`FAILED`는
|
|
6231
|
+
* 셀러 편집 빌드(M2)가 쓴다. 발행 여부는 상태가 아니라 사이트의 발행 포인터가 원천이다(`published`).
|
|
6232
|
+
*/
|
|
6233
|
+
export declare const storefrontVersionStatusSchema: z.ZodEnum<{
|
|
6234
|
+
FAILED: "FAILED";
|
|
6235
|
+
BUILDING: "BUILDING";
|
|
6236
|
+
READY: "READY";
|
|
6237
|
+
}>;
|
|
6238
|
+
export type StorefrontVersionStatus = z.infer<typeof storefrontVersionStatusSchema>;
|
|
6239
|
+
export declare const storefrontVersionSchema: z.ZodObject<{
|
|
6240
|
+
versionId: z.ZodString;
|
|
6241
|
+
number: z.ZodNumber;
|
|
6242
|
+
templateId: z.ZodString;
|
|
6243
|
+
templateVersion: z.ZodString;
|
|
6244
|
+
status: z.ZodEnum<{
|
|
6245
|
+
FAILED: "FAILED";
|
|
6246
|
+
BUILDING: "BUILDING";
|
|
6247
|
+
READY: "READY";
|
|
6248
|
+
}>;
|
|
6249
|
+
published: z.ZodBoolean;
|
|
6250
|
+
publishedAt: z.ZodNullable<z.ZodString>;
|
|
6251
|
+
message: z.ZodNullable<z.ZodString>;
|
|
6252
|
+
createdByType: z.ZodString;
|
|
6253
|
+
createdAt: z.ZodString;
|
|
6254
|
+
}, z.core.$strip>;
|
|
6255
|
+
export type StorefrontVersion = z.infer<typeof storefrontVersionSchema>;
|
|
6256
|
+
export declare const storefrontSiteStatusSchema: z.ZodEnum<{
|
|
6257
|
+
ACTIVE: "ACTIVE";
|
|
6258
|
+
SUSPENDED: "SUSPENDED";
|
|
6259
|
+
CLOSED: "CLOSED";
|
|
6260
|
+
}>;
|
|
6261
|
+
export type StorefrontSiteStatus = z.infer<typeof storefrontSiteStatusSchema>;
|
|
6262
|
+
export declare const storefrontVisibilitySchema: z.ZodEnum<{
|
|
6263
|
+
COMING_SOON: "COMING_SOON";
|
|
6264
|
+
PUBLIC: "PUBLIC";
|
|
6265
|
+
}>;
|
|
6266
|
+
export type StorefrontVisibility = z.infer<typeof storefrontVisibilitySchema>;
|
|
6267
|
+
export declare const storefrontSourceModeSchema: z.ZodEnum<{
|
|
6268
|
+
CUSTOM: "CUSTOM";
|
|
6269
|
+
MANAGED: "MANAGED";
|
|
6270
|
+
}>;
|
|
6271
|
+
export declare const storefrontDomainSchema: z.ZodObject<{
|
|
6272
|
+
hostname: z.ZodString;
|
|
6273
|
+
kind: z.ZodEnum<{
|
|
6274
|
+
PLATFORM: "PLATFORM";
|
|
6275
|
+
CUSTOM: "CUSTOM";
|
|
6276
|
+
}>;
|
|
6277
|
+
status: z.ZodEnum<{
|
|
6278
|
+
ACTIVE: "ACTIVE";
|
|
6279
|
+
HELD: "HELD";
|
|
6280
|
+
}>;
|
|
6281
|
+
isPrimary: z.ZodBoolean;
|
|
6282
|
+
holdUntil: z.ZodNullable<z.ZodString>;
|
|
6283
|
+
}, z.core.$strip>;
|
|
6284
|
+
export type StorefrontDomain = z.infer<typeof storefrontDomainSchema>;
|
|
6285
|
+
/**
|
|
6286
|
+
* 호스팅 반영 상태 — 발행·슬러그·공개 전환은 DB에 먼저 확정되고 Cloudflare 반영은 커밋 뒤에 한다.
|
|
6287
|
+
* `PENDING`이면 반영 중이거나 재시도 대기다(잡이 다시 한다). 반영 뒤에도 라우팅 전파에 최대 1분이 걸린다.
|
|
6288
|
+
*/
|
|
6289
|
+
export declare const storefrontProvisioningSchema: z.ZodObject<{
|
|
6290
|
+
status: z.ZodEnum<{
|
|
6291
|
+
PENDING: "PENDING";
|
|
6292
|
+
FAILED: "FAILED";
|
|
6293
|
+
SYNCED: "SYNCED";
|
|
6294
|
+
}>;
|
|
6295
|
+
lastErrorCode: z.ZodNullable<z.ZodString>;
|
|
6296
|
+
syncedAt: z.ZodNullable<z.ZodString>;
|
|
6297
|
+
}, z.core.$strip>;
|
|
6298
|
+
export type StorefrontProvisioning = z.infer<typeof storefrontProvisioningSchema>;
|
|
6299
|
+
export declare const storefrontSiteSchema: z.ZodObject<{
|
|
6300
|
+
siteId: z.ZodString;
|
|
6301
|
+
slug: z.ZodString;
|
|
6302
|
+
hostname: z.ZodString;
|
|
6303
|
+
url: z.ZodString;
|
|
6304
|
+
domains: z.ZodArray<z.ZodObject<{
|
|
6305
|
+
hostname: z.ZodString;
|
|
6306
|
+
kind: z.ZodEnum<{
|
|
6307
|
+
PLATFORM: "PLATFORM";
|
|
6308
|
+
CUSTOM: "CUSTOM";
|
|
6309
|
+
}>;
|
|
6310
|
+
status: z.ZodEnum<{
|
|
6311
|
+
ACTIVE: "ACTIVE";
|
|
6312
|
+
HELD: "HELD";
|
|
6313
|
+
}>;
|
|
6314
|
+
isPrimary: z.ZodBoolean;
|
|
6315
|
+
holdUntil: z.ZodNullable<z.ZodString>;
|
|
6316
|
+
}, z.core.$strip>>;
|
|
6317
|
+
templateId: z.ZodString;
|
|
6318
|
+
sourceMode: z.ZodEnum<{
|
|
6319
|
+
CUSTOM: "CUSTOM";
|
|
6320
|
+
MANAGED: "MANAGED";
|
|
6321
|
+
}>;
|
|
6322
|
+
status: z.ZodEnum<{
|
|
6323
|
+
ACTIVE: "ACTIVE";
|
|
6324
|
+
SUSPENDED: "SUSPENDED";
|
|
6325
|
+
CLOSED: "CLOSED";
|
|
6326
|
+
}>;
|
|
6327
|
+
visibility: z.ZodEnum<{
|
|
6328
|
+
COMING_SOON: "COMING_SOON";
|
|
6329
|
+
PUBLIC: "PUBLIC";
|
|
6330
|
+
}>;
|
|
6331
|
+
publishedVersion: z.ZodNullable<z.ZodObject<{
|
|
6332
|
+
versionId: z.ZodString;
|
|
6333
|
+
number: z.ZodNumber;
|
|
6334
|
+
templateId: z.ZodString;
|
|
6335
|
+
templateVersion: z.ZodString;
|
|
6336
|
+
status: z.ZodEnum<{
|
|
6337
|
+
FAILED: "FAILED";
|
|
6338
|
+
BUILDING: "BUILDING";
|
|
6339
|
+
READY: "READY";
|
|
6340
|
+
}>;
|
|
6341
|
+
published: z.ZodBoolean;
|
|
6342
|
+
publishedAt: z.ZodNullable<z.ZodString>;
|
|
6343
|
+
message: z.ZodNullable<z.ZodString>;
|
|
6344
|
+
createdByType: z.ZodString;
|
|
6345
|
+
createdAt: z.ZodString;
|
|
6346
|
+
}, z.core.$strip>>;
|
|
6347
|
+
provisioning: z.ZodObject<{
|
|
6348
|
+
status: z.ZodEnum<{
|
|
6349
|
+
PENDING: "PENDING";
|
|
6350
|
+
FAILED: "FAILED";
|
|
6351
|
+
SYNCED: "SYNCED";
|
|
6352
|
+
}>;
|
|
6353
|
+
lastErrorCode: z.ZodNullable<z.ZodString>;
|
|
6354
|
+
syncedAt: z.ZodNullable<z.ZodString>;
|
|
6355
|
+
}, z.core.$strip>;
|
|
6356
|
+
slugChangesRemaining: z.ZodNumber;
|
|
6357
|
+
createdAt: z.ZodString;
|
|
6358
|
+
updatedAt: z.ZodString;
|
|
6359
|
+
}, z.core.$strip>;
|
|
6360
|
+
export type StorefrontSite = z.infer<typeof storefrontSiteSchema>;
|
|
6361
|
+
/** `GET /v1/storefront/site` — 스위치 상태와 현재 사이트(없으면 null. 끈 사이트는 싣지 않는다) */
|
|
6362
|
+
export declare const storefrontHostingSchema: z.ZodObject<{
|
|
6363
|
+
enabled: z.ZodBoolean;
|
|
6364
|
+
domain: z.ZodString;
|
|
6365
|
+
site: z.ZodNullable<z.ZodObject<{
|
|
6366
|
+
siteId: z.ZodString;
|
|
6367
|
+
slug: z.ZodString;
|
|
6368
|
+
hostname: z.ZodString;
|
|
6369
|
+
url: z.ZodString;
|
|
6370
|
+
domains: z.ZodArray<z.ZodObject<{
|
|
6371
|
+
hostname: z.ZodString;
|
|
6372
|
+
kind: z.ZodEnum<{
|
|
6373
|
+
PLATFORM: "PLATFORM";
|
|
6374
|
+
CUSTOM: "CUSTOM";
|
|
6375
|
+
}>;
|
|
6376
|
+
status: z.ZodEnum<{
|
|
6377
|
+
ACTIVE: "ACTIVE";
|
|
6378
|
+
HELD: "HELD";
|
|
6379
|
+
}>;
|
|
6380
|
+
isPrimary: z.ZodBoolean;
|
|
6381
|
+
holdUntil: z.ZodNullable<z.ZodString>;
|
|
6382
|
+
}, z.core.$strip>>;
|
|
6383
|
+
templateId: z.ZodString;
|
|
6384
|
+
sourceMode: z.ZodEnum<{
|
|
6385
|
+
CUSTOM: "CUSTOM";
|
|
6386
|
+
MANAGED: "MANAGED";
|
|
6387
|
+
}>;
|
|
6388
|
+
status: z.ZodEnum<{
|
|
6389
|
+
ACTIVE: "ACTIVE";
|
|
6390
|
+
SUSPENDED: "SUSPENDED";
|
|
6391
|
+
CLOSED: "CLOSED";
|
|
6392
|
+
}>;
|
|
6393
|
+
visibility: z.ZodEnum<{
|
|
6394
|
+
COMING_SOON: "COMING_SOON";
|
|
6395
|
+
PUBLIC: "PUBLIC";
|
|
6396
|
+
}>;
|
|
6397
|
+
publishedVersion: z.ZodNullable<z.ZodObject<{
|
|
6398
|
+
versionId: z.ZodString;
|
|
6399
|
+
number: z.ZodNumber;
|
|
6400
|
+
templateId: z.ZodString;
|
|
6401
|
+
templateVersion: z.ZodString;
|
|
6402
|
+
status: z.ZodEnum<{
|
|
6403
|
+
FAILED: "FAILED";
|
|
6404
|
+
BUILDING: "BUILDING";
|
|
6405
|
+
READY: "READY";
|
|
6406
|
+
}>;
|
|
6407
|
+
published: z.ZodBoolean;
|
|
6408
|
+
publishedAt: z.ZodNullable<z.ZodString>;
|
|
6409
|
+
message: z.ZodNullable<z.ZodString>;
|
|
6410
|
+
createdByType: z.ZodString;
|
|
6411
|
+
createdAt: z.ZodString;
|
|
6412
|
+
}, z.core.$strip>>;
|
|
6413
|
+
provisioning: z.ZodObject<{
|
|
6414
|
+
status: z.ZodEnum<{
|
|
6415
|
+
PENDING: "PENDING";
|
|
6416
|
+
FAILED: "FAILED";
|
|
6417
|
+
SYNCED: "SYNCED";
|
|
6418
|
+
}>;
|
|
6419
|
+
lastErrorCode: z.ZodNullable<z.ZodString>;
|
|
6420
|
+
syncedAt: z.ZodNullable<z.ZodString>;
|
|
6421
|
+
}, z.core.$strip>;
|
|
6422
|
+
slugChangesRemaining: z.ZodNumber;
|
|
6423
|
+
createdAt: z.ZodString;
|
|
6424
|
+
updatedAt: z.ZodString;
|
|
6425
|
+
}, z.core.$strip>>;
|
|
6426
|
+
}, z.core.$strip>;
|
|
6427
|
+
export type StorefrontHosting = z.infer<typeof storefrontHostingSchema>;
|
|
6428
|
+
export declare const storefrontSlugAvailabilitySchema: z.ZodObject<{
|
|
6429
|
+
slug: z.ZodString;
|
|
6430
|
+
available: z.ZodBoolean;
|
|
6431
|
+
reason: z.ZodNullable<z.ZodEnum<{
|
|
6432
|
+
RESERVED: "RESERVED";
|
|
6433
|
+
INVALID: "INVALID";
|
|
6434
|
+
TAKEN: "TAKEN";
|
|
6435
|
+
CURRENT: "CURRENT";
|
|
6436
|
+
}>>;
|
|
6437
|
+
}, z.core.$strip>;
|
|
6438
|
+
export type StorefrontSlugAvailability = z.infer<typeof storefrontSlugAvailabilitySchema>;
|
|
6439
|
+
export declare const createStorefrontSiteRequestSchema: z.ZodObject<{
|
|
6440
|
+
templateId: z.ZodString;
|
|
6441
|
+
slug: z.ZodOptional<z.ZodString>;
|
|
6442
|
+
}, z.core.$strip>;
|
|
6443
|
+
export type CreateStorefrontSiteRequest = z.infer<typeof createStorefrontSiteRequestSchema>;
|
|
6444
|
+
export declare const changeStorefrontTemplateRequestSchema: z.ZodObject<{
|
|
6445
|
+
templateId: z.ZodString;
|
|
6446
|
+
publish: z.ZodOptional<z.ZodBoolean>;
|
|
6447
|
+
message: z.ZodOptional<z.ZodString>;
|
|
6448
|
+
}, z.core.$strip>;
|
|
6449
|
+
export type ChangeStorefrontTemplateRequest = z.infer<typeof changeStorefrontTemplateRequestSchema>;
|
|
6450
|
+
/**
|
|
6451
|
+
* 발행·되돌리기 — 발행은 사이트의 발행 포인터를 바꾸는 조건부 쓰기다. `expectedPublishedVersionId`를 주면
|
|
6452
|
+
* 지금 발행 버전이 그 값일 때만 바꾼다(화면을 본 뒤 다른 사람이 바꿨으면 409 `STOREFRONT_SITE_CHANGED`).
|
|
6453
|
+
* 이미 그 버전이 발행돼 있으면 아무것도 바꾸지 않고 200이다(같은 요청의 재실행이 안전하다).
|
|
6454
|
+
*/
|
|
6455
|
+
export declare const publishStorefrontVersionRequestSchema: z.ZodObject<{
|
|
6456
|
+
expectedPublishedVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
6457
|
+
}, z.core.$strip>;
|
|
6458
|
+
export type PublishStorefrontVersionRequest = z.infer<typeof publishStorefrontVersionRequestSchema>;
|
|
6459
|
+
export declare const rollbackStorefrontRequestSchema: z.ZodObject<{
|
|
6460
|
+
versionId: z.ZodOptional<z.ZodString>;
|
|
6461
|
+
expectedPublishedVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
6462
|
+
}, z.core.$strip>;
|
|
6463
|
+
export type RollbackStorefrontRequest = z.infer<typeof rollbackStorefrontRequestSchema>;
|
|
6464
|
+
export declare const changeStorefrontSlugRequestSchema: z.ZodObject<{
|
|
6465
|
+
slug: z.ZodString;
|
|
6466
|
+
}, z.core.$strip>;
|
|
6467
|
+
export type ChangeStorefrontSlugRequest = z.infer<typeof changeStorefrontSlugRequestSchema>;
|
|
6468
|
+
export declare const setStorefrontVisibilityRequestSchema: z.ZodObject<{
|
|
6469
|
+
visibility: z.ZodEnum<{
|
|
6470
|
+
COMING_SOON: "COMING_SOON";
|
|
6471
|
+
PUBLIC: "PUBLIC";
|
|
6472
|
+
}>;
|
|
6473
|
+
expectedVisibility: z.ZodOptional<z.ZodEnum<{
|
|
6474
|
+
COMING_SOON: "COMING_SOON";
|
|
6475
|
+
PUBLIC: "PUBLIC";
|
|
6476
|
+
}>>;
|
|
6477
|
+
}, z.core.$strip>;
|
|
6478
|
+
export type SetStorefrontVisibilityRequest = z.infer<typeof setStorefrontVisibilityRequestSchema>;
|
|
6479
|
+
/** 호스팅 끄기 — 사이트를 닫고(`CLOSED`) 슬러그를 보류한다. 확인 입력은 현재 슬러그다 */
|
|
6480
|
+
export declare const disableStorefrontHostingRequestSchema: z.ZodObject<{
|
|
6481
|
+
confirmSlug: z.ZodString;
|
|
6482
|
+
}, z.core.$strip>;
|
|
6483
|
+
export type DisableStorefrontHostingRequest = z.infer<typeof disableStorefrontHostingRequestSchema>;
|
|
6484
|
+
export declare const storefrontSlugAvailabilityQuerySchema: z.ZodObject<{
|
|
6485
|
+
slug: z.ZodString;
|
|
6486
|
+
}, z.core.$strip>;
|
|
6487
|
+
/**
|
|
6488
|
+
* 오픈 준비 중 미리보기 링크 — 콘솔에서 로그인한 OWNER·ADMIN만 받는다(PAT·에이전트 불가). 링크는 5분 안에 한 번 열면
|
|
6489
|
+
* 그 브라우저에 12시간짜리 미리보기 쿠키가 생기고 오픈 준비 중인 사이트의 실제 화면을 본다. 링크를 남에게 넘기면 그 사람도
|
|
6490
|
+
* 볼 수 있으므로 공유하지 않는다.
|
|
6491
|
+
*/
|
|
6492
|
+
export declare const createStorefrontPreviewLinkRequestSchema: z.ZodObject<{
|
|
6493
|
+
path: z.ZodOptional<z.ZodString>;
|
|
6494
|
+
}, z.core.$strip>;
|
|
6495
|
+
export type CreateStorefrontPreviewLinkRequest = z.infer<typeof createStorefrontPreviewLinkRequestSchema>;
|
|
6496
|
+
export declare const storefrontPreviewLinkSchema: z.ZodObject<{
|
|
6497
|
+
url: z.ZodString;
|
|
6498
|
+
expiresAt: z.ZodString;
|
|
6499
|
+
}, z.core.$strip>;
|
|
6500
|
+
export type StorefrontPreviewLink = z.infer<typeof storefrontPreviewLinkSchema>;
|
|
6501
|
+
//#endregion
|
|
6177
6502
|
//#region src/schemas/upload.d.ts
|
|
6178
6503
|
/**
|
|
6179
6504
|
* 업로드 용도. 허용 확장자와 크기 상한이 용도별로 다르다.
|
|
@@ -6382,7 +6707,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
6382
6707
|
storeId: string;
|
|
6383
6708
|
storeName: string;
|
|
6384
6709
|
storeCode: string;
|
|
6385
|
-
role: "
|
|
6710
|
+
role: "ADMIN" | "STAFF" | "OWNER";
|
|
6386
6711
|
status: "ACTIVE" | "SUSPENDED" | "CLOSED";
|
|
6387
6712
|
}[]>;
|
|
6388
6713
|
/** RFC 7009 — token을 폐기한다 (public client는 client_id만 동반) */
|
|
@@ -6542,7 +6867,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
6542
6867
|
contents: {
|
|
6543
6868
|
productId: string;
|
|
6544
6869
|
name: string;
|
|
6545
|
-
status: "
|
|
6870
|
+
status: "SALE" | "SUSPENDED" | "OUT_OF_STOCK" | "CLOSED";
|
|
6546
6871
|
salePrice: number;
|
|
6547
6872
|
discountedPrice: number | null;
|
|
6548
6873
|
stockQuantity: number;
|
|
@@ -6558,7 +6883,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
6558
6883
|
get: (productId: string) => Promise<{
|
|
6559
6884
|
productId: string;
|
|
6560
6885
|
name: string;
|
|
6561
|
-
status: "
|
|
6886
|
+
status: "SALE" | "SUSPENDED" | "OUT_OF_STOCK" | "CLOSED";
|
|
6562
6887
|
salePrice: number;
|
|
6563
6888
|
discountedPrice: number | null;
|
|
6564
6889
|
stockQuantity: number;
|
|
@@ -6652,7 +6977,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
6652
6977
|
create: (body: ProductCreateRequestInput, idempotencyKey?: string) => Promise<{
|
|
6653
6978
|
productId: string;
|
|
6654
6979
|
name: string;
|
|
6655
|
-
status: "
|
|
6980
|
+
status: "SALE" | "SUSPENDED" | "OUT_OF_STOCK" | "CLOSED";
|
|
6656
6981
|
salePrice: number;
|
|
6657
6982
|
discountedPrice: number | null;
|
|
6658
6983
|
stockQuantity: number;
|
|
@@ -6746,7 +7071,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
6746
7071
|
update: (productId: string, body: ProductReplaceRequestInput) => Promise<{
|
|
6747
7072
|
productId: string;
|
|
6748
7073
|
name: string;
|
|
6749
|
-
status: "
|
|
7074
|
+
status: "SALE" | "SUSPENDED" | "OUT_OF_STOCK" | "CLOSED";
|
|
6750
7075
|
salePrice: number;
|
|
6751
7076
|
discountedPrice: number | null;
|
|
6752
7077
|
stockQuantity: number;
|
|
@@ -10231,6 +10556,358 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10231
10556
|
remove: (addressId: string) => Promise<void>;
|
|
10232
10557
|
setDefault: (addressId: string) => Promise<void>;
|
|
10233
10558
|
};
|
|
10559
|
+
/**
|
|
10560
|
+
* 스토어프론트 호스팅 (이슈 #53) — 조회 `storefront:r`, 쓰기 `storefront:rw`(OWNER·ADMIN).
|
|
10561
|
+
* 쓰기 응답은 바뀐 사이트다. Cloudflare 반영은 커밋 뒤라 `provisioning.status`가 잠시 `PENDING`일 수 있다.
|
|
10562
|
+
* 에이전트 토큰의 발행·되돌리기·템플릿 변경·공개 전환·슬러그 변경·끄기는 승인 대기(`ApprovalPendingError`)다.
|
|
10563
|
+
*/
|
|
10564
|
+
storefront: {
|
|
10565
|
+
/** `GET /v1/storefront/templates` — 템플릿 카탈로그 */
|
|
10566
|
+
listTemplates: () => Promise<{
|
|
10567
|
+
templateId: string;
|
|
10568
|
+
name: string;
|
|
10569
|
+
industry: string;
|
|
10570
|
+
description: string;
|
|
10571
|
+
thumbnailUrl: string | null;
|
|
10572
|
+
version: string;
|
|
10573
|
+
isDefault: boolean;
|
|
10574
|
+
}[]>;
|
|
10575
|
+
/** `GET /v1/storefront/site` — 스위치 상태와 현재 사이트(없으면 `site: null`) */
|
|
10576
|
+
get: () => Promise<{
|
|
10577
|
+
enabled: boolean;
|
|
10578
|
+
domain: string;
|
|
10579
|
+
site: {
|
|
10580
|
+
siteId: string;
|
|
10581
|
+
slug: string;
|
|
10582
|
+
hostname: string;
|
|
10583
|
+
url: string;
|
|
10584
|
+
domains: {
|
|
10585
|
+
hostname: string;
|
|
10586
|
+
kind: "PLATFORM" | "CUSTOM";
|
|
10587
|
+
status: "ACTIVE" | "HELD";
|
|
10588
|
+
isPrimary: boolean;
|
|
10589
|
+
holdUntil: string | null;
|
|
10590
|
+
}[];
|
|
10591
|
+
templateId: string;
|
|
10592
|
+
sourceMode: "CUSTOM" | "MANAGED";
|
|
10593
|
+
status: "ACTIVE" | "SUSPENDED" | "CLOSED";
|
|
10594
|
+
visibility: "COMING_SOON" | "PUBLIC";
|
|
10595
|
+
publishedVersion: {
|
|
10596
|
+
versionId: string;
|
|
10597
|
+
number: number;
|
|
10598
|
+
templateId: string;
|
|
10599
|
+
templateVersion: string;
|
|
10600
|
+
status: "FAILED" | "BUILDING" | "READY";
|
|
10601
|
+
published: boolean;
|
|
10602
|
+
publishedAt: string | null;
|
|
10603
|
+
message: string | null;
|
|
10604
|
+
createdByType: string;
|
|
10605
|
+
createdAt: string;
|
|
10606
|
+
} | null;
|
|
10607
|
+
provisioning: {
|
|
10608
|
+
status: "PENDING" | "FAILED" | "SYNCED";
|
|
10609
|
+
lastErrorCode: string | null;
|
|
10610
|
+
syncedAt: string | null;
|
|
10611
|
+
};
|
|
10612
|
+
slugChangesRemaining: number;
|
|
10613
|
+
createdAt: string;
|
|
10614
|
+
updatedAt: string;
|
|
10615
|
+
} | null;
|
|
10616
|
+
}>;
|
|
10617
|
+
/** `GET /v1/storefront/slug-availability?slug=` — 슬러그를 쓸 수 있는가 */
|
|
10618
|
+
checkSlug: (slug: string) => Promise<{
|
|
10619
|
+
slug: string;
|
|
10620
|
+
available: boolean;
|
|
10621
|
+
reason: "RESERVED" | "INVALID" | "TAKEN" | "CURRENT" | null;
|
|
10622
|
+
}>;
|
|
10623
|
+
/** `POST /v1/storefront/site` (201) — 템플릿으로 사이트를 만들고 v1을 발행한다. 공개 상태는 오픈 준비 중이다 */
|
|
10624
|
+
create: (body: CreateStorefrontSiteRequest) => Promise<{
|
|
10625
|
+
siteId: string;
|
|
10626
|
+
slug: string;
|
|
10627
|
+
hostname: string;
|
|
10628
|
+
url: string;
|
|
10629
|
+
domains: {
|
|
10630
|
+
hostname: string;
|
|
10631
|
+
kind: "PLATFORM" | "CUSTOM";
|
|
10632
|
+
status: "ACTIVE" | "HELD";
|
|
10633
|
+
isPrimary: boolean;
|
|
10634
|
+
holdUntil: string | null;
|
|
10635
|
+
}[];
|
|
10636
|
+
templateId: string;
|
|
10637
|
+
sourceMode: "CUSTOM" | "MANAGED";
|
|
10638
|
+
status: "ACTIVE" | "SUSPENDED" | "CLOSED";
|
|
10639
|
+
visibility: "COMING_SOON" | "PUBLIC";
|
|
10640
|
+
publishedVersion: {
|
|
10641
|
+
versionId: string;
|
|
10642
|
+
number: number;
|
|
10643
|
+
templateId: string;
|
|
10644
|
+
templateVersion: string;
|
|
10645
|
+
status: "FAILED" | "BUILDING" | "READY";
|
|
10646
|
+
published: boolean;
|
|
10647
|
+
publishedAt: string | null;
|
|
10648
|
+
message: string | null;
|
|
10649
|
+
createdByType: string;
|
|
10650
|
+
createdAt: string;
|
|
10651
|
+
} | null;
|
|
10652
|
+
provisioning: {
|
|
10653
|
+
status: "PENDING" | "FAILED" | "SYNCED";
|
|
10654
|
+
lastErrorCode: string | null;
|
|
10655
|
+
syncedAt: string | null;
|
|
10656
|
+
};
|
|
10657
|
+
slugChangesRemaining: number;
|
|
10658
|
+
createdAt: string;
|
|
10659
|
+
updatedAt: string;
|
|
10660
|
+
}>;
|
|
10661
|
+
/** `POST /v1/storefront/site/template` — 템플릿을 바꾼다. 새 버전을 만들고 기본으로 곧바로 발행한다 */
|
|
10662
|
+
changeTemplate: (body: ChangeStorefrontTemplateRequest) => Promise<{
|
|
10663
|
+
siteId: string;
|
|
10664
|
+
slug: string;
|
|
10665
|
+
hostname: string;
|
|
10666
|
+
url: string;
|
|
10667
|
+
domains: {
|
|
10668
|
+
hostname: string;
|
|
10669
|
+
kind: "PLATFORM" | "CUSTOM";
|
|
10670
|
+
status: "ACTIVE" | "HELD";
|
|
10671
|
+
isPrimary: boolean;
|
|
10672
|
+
holdUntil: string | null;
|
|
10673
|
+
}[];
|
|
10674
|
+
templateId: string;
|
|
10675
|
+
sourceMode: "CUSTOM" | "MANAGED";
|
|
10676
|
+
status: "ACTIVE" | "SUSPENDED" | "CLOSED";
|
|
10677
|
+
visibility: "COMING_SOON" | "PUBLIC";
|
|
10678
|
+
publishedVersion: {
|
|
10679
|
+
versionId: string;
|
|
10680
|
+
number: number;
|
|
10681
|
+
templateId: string;
|
|
10682
|
+
templateVersion: string;
|
|
10683
|
+
status: "FAILED" | "BUILDING" | "READY";
|
|
10684
|
+
published: boolean;
|
|
10685
|
+
publishedAt: string | null;
|
|
10686
|
+
message: string | null;
|
|
10687
|
+
createdByType: string;
|
|
10688
|
+
createdAt: string;
|
|
10689
|
+
} | null;
|
|
10690
|
+
provisioning: {
|
|
10691
|
+
status: "PENDING" | "FAILED" | "SYNCED";
|
|
10692
|
+
lastErrorCode: string | null;
|
|
10693
|
+
syncedAt: string | null;
|
|
10694
|
+
};
|
|
10695
|
+
slugChangesRemaining: number;
|
|
10696
|
+
createdAt: string;
|
|
10697
|
+
updatedAt: string;
|
|
10698
|
+
}>;
|
|
10699
|
+
/** `GET /v1/storefront/site/versions` — 버전 목록(최신 먼저) */
|
|
10700
|
+
listVersions: () => Promise<{
|
|
10701
|
+
versionId: string;
|
|
10702
|
+
number: number;
|
|
10703
|
+
templateId: string;
|
|
10704
|
+
templateVersion: string;
|
|
10705
|
+
status: "FAILED" | "BUILDING" | "READY";
|
|
10706
|
+
published: boolean;
|
|
10707
|
+
publishedAt: string | null;
|
|
10708
|
+
message: string | null;
|
|
10709
|
+
createdByType: string;
|
|
10710
|
+
createdAt: string;
|
|
10711
|
+
}[]>;
|
|
10712
|
+
/** `POST /v1/storefront/site/versions/{versionId}/publish` — 그 버전을 발행한다(이미 발행돼 있으면 그대로 200) */
|
|
10713
|
+
publish: (versionId: string, body?: PublishStorefrontVersionRequest) => Promise<{
|
|
10714
|
+
siteId: string;
|
|
10715
|
+
slug: string;
|
|
10716
|
+
hostname: string;
|
|
10717
|
+
url: string;
|
|
10718
|
+
domains: {
|
|
10719
|
+
hostname: string;
|
|
10720
|
+
kind: "PLATFORM" | "CUSTOM";
|
|
10721
|
+
status: "ACTIVE" | "HELD";
|
|
10722
|
+
isPrimary: boolean;
|
|
10723
|
+
holdUntil: string | null;
|
|
10724
|
+
}[];
|
|
10725
|
+
templateId: string;
|
|
10726
|
+
sourceMode: "CUSTOM" | "MANAGED";
|
|
10727
|
+
status: "ACTIVE" | "SUSPENDED" | "CLOSED";
|
|
10728
|
+
visibility: "COMING_SOON" | "PUBLIC";
|
|
10729
|
+
publishedVersion: {
|
|
10730
|
+
versionId: string;
|
|
10731
|
+
number: number;
|
|
10732
|
+
templateId: string;
|
|
10733
|
+
templateVersion: string;
|
|
10734
|
+
status: "FAILED" | "BUILDING" | "READY";
|
|
10735
|
+
published: boolean;
|
|
10736
|
+
publishedAt: string | null;
|
|
10737
|
+
message: string | null;
|
|
10738
|
+
createdByType: string;
|
|
10739
|
+
createdAt: string;
|
|
10740
|
+
} | null;
|
|
10741
|
+
provisioning: {
|
|
10742
|
+
status: "PENDING" | "FAILED" | "SYNCED";
|
|
10743
|
+
lastErrorCode: string | null;
|
|
10744
|
+
syncedAt: string | null;
|
|
10745
|
+
};
|
|
10746
|
+
slugChangesRemaining: number;
|
|
10747
|
+
createdAt: string;
|
|
10748
|
+
updatedAt: string;
|
|
10749
|
+
}>;
|
|
10750
|
+
/** `POST /v1/storefront/site/rollback` — 이전 발행 버전으로 되돌린다(재빌드 없음) */
|
|
10751
|
+
rollback: (body?: RollbackStorefrontRequest) => Promise<{
|
|
10752
|
+
siteId: string;
|
|
10753
|
+
slug: string;
|
|
10754
|
+
hostname: string;
|
|
10755
|
+
url: string;
|
|
10756
|
+
domains: {
|
|
10757
|
+
hostname: string;
|
|
10758
|
+
kind: "PLATFORM" | "CUSTOM";
|
|
10759
|
+
status: "ACTIVE" | "HELD";
|
|
10760
|
+
isPrimary: boolean;
|
|
10761
|
+
holdUntil: string | null;
|
|
10762
|
+
}[];
|
|
10763
|
+
templateId: string;
|
|
10764
|
+
sourceMode: "CUSTOM" | "MANAGED";
|
|
10765
|
+
status: "ACTIVE" | "SUSPENDED" | "CLOSED";
|
|
10766
|
+
visibility: "COMING_SOON" | "PUBLIC";
|
|
10767
|
+
publishedVersion: {
|
|
10768
|
+
versionId: string;
|
|
10769
|
+
number: number;
|
|
10770
|
+
templateId: string;
|
|
10771
|
+
templateVersion: string;
|
|
10772
|
+
status: "FAILED" | "BUILDING" | "READY";
|
|
10773
|
+
published: boolean;
|
|
10774
|
+
publishedAt: string | null;
|
|
10775
|
+
message: string | null;
|
|
10776
|
+
createdByType: string;
|
|
10777
|
+
createdAt: string;
|
|
10778
|
+
} | null;
|
|
10779
|
+
provisioning: {
|
|
10780
|
+
status: "PENDING" | "FAILED" | "SYNCED";
|
|
10781
|
+
lastErrorCode: string | null;
|
|
10782
|
+
syncedAt: string | null;
|
|
10783
|
+
};
|
|
10784
|
+
slugChangesRemaining: number;
|
|
10785
|
+
createdAt: string;
|
|
10786
|
+
updatedAt: string;
|
|
10787
|
+
}>;
|
|
10788
|
+
/** `PUT /v1/storefront/site/slug` — 슬러그를 바꾼다. 옛 슬러그는 90일 보류되고 새 주소로 301한다 */
|
|
10789
|
+
changeSlug: (body: ChangeStorefrontSlugRequest) => Promise<{
|
|
10790
|
+
siteId: string;
|
|
10791
|
+
slug: string;
|
|
10792
|
+
hostname: string;
|
|
10793
|
+
url: string;
|
|
10794
|
+
domains: {
|
|
10795
|
+
hostname: string;
|
|
10796
|
+
kind: "PLATFORM" | "CUSTOM";
|
|
10797
|
+
status: "ACTIVE" | "HELD";
|
|
10798
|
+
isPrimary: boolean;
|
|
10799
|
+
holdUntil: string | null;
|
|
10800
|
+
}[];
|
|
10801
|
+
templateId: string;
|
|
10802
|
+
sourceMode: "CUSTOM" | "MANAGED";
|
|
10803
|
+
status: "ACTIVE" | "SUSPENDED" | "CLOSED";
|
|
10804
|
+
visibility: "COMING_SOON" | "PUBLIC";
|
|
10805
|
+
publishedVersion: {
|
|
10806
|
+
versionId: string;
|
|
10807
|
+
number: number;
|
|
10808
|
+
templateId: string;
|
|
10809
|
+
templateVersion: string;
|
|
10810
|
+
status: "FAILED" | "BUILDING" | "READY";
|
|
10811
|
+
published: boolean;
|
|
10812
|
+
publishedAt: string | null;
|
|
10813
|
+
message: string | null;
|
|
10814
|
+
createdByType: string;
|
|
10815
|
+
createdAt: string;
|
|
10816
|
+
} | null;
|
|
10817
|
+
provisioning: {
|
|
10818
|
+
status: "PENDING" | "FAILED" | "SYNCED";
|
|
10819
|
+
lastErrorCode: string | null;
|
|
10820
|
+
syncedAt: string | null;
|
|
10821
|
+
};
|
|
10822
|
+
slugChangesRemaining: number;
|
|
10823
|
+
createdAt: string;
|
|
10824
|
+
updatedAt: string;
|
|
10825
|
+
}>;
|
|
10826
|
+
/** `PUT /v1/storefront/site/visibility` — 오픈 준비 중 ↔ 공개 */
|
|
10827
|
+
setVisibility: (body: SetStorefrontVisibilityRequest) => Promise<{
|
|
10828
|
+
siteId: string;
|
|
10829
|
+
slug: string;
|
|
10830
|
+
hostname: string;
|
|
10831
|
+
url: string;
|
|
10832
|
+
domains: {
|
|
10833
|
+
hostname: string;
|
|
10834
|
+
kind: "PLATFORM" | "CUSTOM";
|
|
10835
|
+
status: "ACTIVE" | "HELD";
|
|
10836
|
+
isPrimary: boolean;
|
|
10837
|
+
holdUntil: string | null;
|
|
10838
|
+
}[];
|
|
10839
|
+
templateId: string;
|
|
10840
|
+
sourceMode: "CUSTOM" | "MANAGED";
|
|
10841
|
+
status: "ACTIVE" | "SUSPENDED" | "CLOSED";
|
|
10842
|
+
visibility: "COMING_SOON" | "PUBLIC";
|
|
10843
|
+
publishedVersion: {
|
|
10844
|
+
versionId: string;
|
|
10845
|
+
number: number;
|
|
10846
|
+
templateId: string;
|
|
10847
|
+
templateVersion: string;
|
|
10848
|
+
status: "FAILED" | "BUILDING" | "READY";
|
|
10849
|
+
published: boolean;
|
|
10850
|
+
publishedAt: string | null;
|
|
10851
|
+
message: string | null;
|
|
10852
|
+
createdByType: string;
|
|
10853
|
+
createdAt: string;
|
|
10854
|
+
} | null;
|
|
10855
|
+
provisioning: {
|
|
10856
|
+
status: "PENDING" | "FAILED" | "SYNCED";
|
|
10857
|
+
lastErrorCode: string | null;
|
|
10858
|
+
syncedAt: string | null;
|
|
10859
|
+
};
|
|
10860
|
+
slugChangesRemaining: number;
|
|
10861
|
+
createdAt: string;
|
|
10862
|
+
updatedAt: string;
|
|
10863
|
+
}>;
|
|
10864
|
+
/**
|
|
10865
|
+
* `POST /v1/storefront/site/preview-link` — 오픈 준비 중인 사이트를 구성원이 볼 수 있는 5분짜리 링크.
|
|
10866
|
+
* 콘솔에서 로그인한 OWNER·ADMIN만 받는다
|
|
10867
|
+
*/
|
|
10868
|
+
createPreviewLink: (body?: CreateStorefrontPreviewLinkRequest) => Promise<{
|
|
10869
|
+
url: string;
|
|
10870
|
+
expiresAt: string;
|
|
10871
|
+
}>;
|
|
10872
|
+
/** `POST /v1/storefront/site/disable` — 호스팅을 끈다(사이트 `CLOSED`, 슬러그 90일 보류). 다시 만들 수 있다 */
|
|
10873
|
+
disable: (body: DisableStorefrontHostingRequest) => Promise<{
|
|
10874
|
+
siteId: string;
|
|
10875
|
+
slug: string;
|
|
10876
|
+
hostname: string;
|
|
10877
|
+
url: string;
|
|
10878
|
+
domains: {
|
|
10879
|
+
hostname: string;
|
|
10880
|
+
kind: "PLATFORM" | "CUSTOM";
|
|
10881
|
+
status: "ACTIVE" | "HELD";
|
|
10882
|
+
isPrimary: boolean;
|
|
10883
|
+
holdUntil: string | null;
|
|
10884
|
+
}[];
|
|
10885
|
+
templateId: string;
|
|
10886
|
+
sourceMode: "CUSTOM" | "MANAGED";
|
|
10887
|
+
status: "ACTIVE" | "SUSPENDED" | "CLOSED";
|
|
10888
|
+
visibility: "COMING_SOON" | "PUBLIC";
|
|
10889
|
+
publishedVersion: {
|
|
10890
|
+
versionId: string;
|
|
10891
|
+
number: number;
|
|
10892
|
+
templateId: string;
|
|
10893
|
+
templateVersion: string;
|
|
10894
|
+
status: "FAILED" | "BUILDING" | "READY";
|
|
10895
|
+
published: boolean;
|
|
10896
|
+
publishedAt: string | null;
|
|
10897
|
+
message: string | null;
|
|
10898
|
+
createdByType: string;
|
|
10899
|
+
createdAt: string;
|
|
10900
|
+
} | null;
|
|
10901
|
+
provisioning: {
|
|
10902
|
+
status: "PENDING" | "FAILED" | "SYNCED";
|
|
10903
|
+
lastErrorCode: string | null;
|
|
10904
|
+
syncedAt: string | null;
|
|
10905
|
+
};
|
|
10906
|
+
slugChangesRemaining: number;
|
|
10907
|
+
createdAt: string;
|
|
10908
|
+
updatedAt: string;
|
|
10909
|
+
}>;
|
|
10910
|
+
};
|
|
10234
10911
|
store: {
|
|
10235
10912
|
get: () => Promise<{
|
|
10236
10913
|
storeId: string;
|
|
@@ -10318,7 +10995,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10318
10995
|
userId: string;
|
|
10319
10996
|
name: string;
|
|
10320
10997
|
email: string;
|
|
10321
|
-
role: "
|
|
10998
|
+
role: "ADMIN" | "STAFF" | "OWNER";
|
|
10322
10999
|
joinedAt: string;
|
|
10323
11000
|
lastActiveAt: string | null;
|
|
10324
11001
|
}[]>;
|
|
@@ -10880,6 +11557,7 @@ export declare const STORE_SCOPE_RESOURCES: {
|
|
|
10880
11557
|
readonly customer: readonly ["r", "rw"];
|
|
10881
11558
|
readonly audit: readonly ["r"];
|
|
10882
11559
|
readonly promotion: readonly ["r", "rw"];
|
|
11560
|
+
readonly storefront: readonly ["r", "rw"];
|
|
10883
11561
|
};
|
|
10884
11562
|
export type StoreScopeResource = keyof typeof STORE_SCOPE_RESOURCES;
|
|
10885
11563
|
export declare const storeScopeResourceSchema: z.ZodEnum<{
|
|
@@ -10897,6 +11575,7 @@ export declare const storeScopeResourceSchema: z.ZodEnum<{
|
|
|
10897
11575
|
customer: "customer";
|
|
10898
11576
|
audit: "audit";
|
|
10899
11577
|
promotion: "promotion";
|
|
11578
|
+
storefront: "storefront";
|
|
10900
11579
|
}>;
|
|
10901
11580
|
/** 카탈로그상 존재하는 스코프 문자열인가 (예: `settlement:rw`는 false) */
|
|
10902
11581
|
export declare function isStoreScope(scope: string): boolean;
|
|
@@ -10906,8 +11585,8 @@ export declare function isStoreScope(scope: string): boolean;
|
|
|
10906
11585
|
* 발급 시 지정한 스코프만 갖는다(발급자 보유 스코프 이내).
|
|
10907
11586
|
*/
|
|
10908
11587
|
export declare const STORE_ROLE_SCOPES: {
|
|
10909
|
-
readonly OWNER: readonly ["product:rw", "category:rw", "order:rw", "claim:rw", "inquiry:rw", "review:rw", "settlement:r", "analytics:r", "webhook:rw", "store:rw", "member:rw", "customer:rw", "audit:r", "promotion:rw"];
|
|
10910
|
-
readonly ADMIN: readonly ["product:rw", "category:rw", "order:rw", "claim:rw", "inquiry:rw", "review:rw", "analytics:r", "webhook:rw", "store:rw", "member:rw", "customer:rw", "audit:r", "promotion:rw"];
|
|
11588
|
+
readonly OWNER: readonly ["product:rw", "category:rw", "order:rw", "claim:rw", "inquiry:rw", "review:rw", "settlement:r", "analytics:r", "webhook:rw", "store:rw", "member:rw", "customer:rw", "audit:r", "promotion:rw", "storefront:rw"];
|
|
11589
|
+
readonly ADMIN: readonly ["product:rw", "category:rw", "order:rw", "claim:rw", "inquiry:rw", "review:rw", "analytics:r", "webhook:rw", "store:rw", "member:rw", "customer:rw", "audit:r", "promotion:rw", "storefront:rw"];
|
|
10911
11590
|
readonly STAFF: readonly ["product:rw", "category:rw", "order:rw", "claim:rw", "inquiry:rw", "review:rw", "customer:r", "promotion:r"];
|
|
10912
11591
|
};
|
|
10913
11592
|
//#endregion
|