@sayren/store-sdk 0.35.0 → 0.37.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 CHANGED
@@ -165,9 +165,9 @@ 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";
168
169
  DENIED: "DENIED";
169
170
  ALLOW: "ALLOW";
170
- APPROVAL_REQUIRED: "APPROVAL_REQUIRED";
171
171
  }>;
172
172
  export type AgentPolicyDecision = z.infer<typeof agentPolicyDecisionSchema>;
173
173
  export declare const writePreviewSchema: z.ZodObject<{
@@ -191,9 +191,9 @@ export type WritePreview = z.infer<typeof writePreviewSchema>;
191
191
  export declare const writeDryRunResultSchema: z.ZodObject<{
192
192
  dryRun: z.ZodLiteral<true>;
193
193
  decision: z.ZodEnum<{
194
+ APPROVAL_REQUIRED: "APPROVAL_REQUIRED";
194
195
  DENIED: "DENIED";
195
196
  ALLOW: "ALLOW";
196
- APPROVAL_REQUIRED: "APPROVAL_REQUIRED";
197
197
  }>;
198
198
  reason: z.ZodNullable<z.ZodString>;
199
199
  preview: z.ZodObject<{
@@ -495,10 +495,10 @@ export type AiRun = z.infer<typeof aiRunSchema>;
495
495
  * AI가 지금 하는 일의 종류 — 도구 이름·operationId·파일 경로로 서버가 정한다(상점 만들기 진행 화면이 아이콘·문구를 고른다). 정하지 못한 도구는 없다
496
496
  */
497
497
  export declare const aiActivitySchema: z.ZodEnum<{
498
- check: "check";
499
498
  code: "code";
500
- version: "version";
501
499
  status: "status";
500
+ check: "check";
501
+ version: "version";
502
502
  shipping: "shipping";
503
503
  category: "category";
504
504
  brief: "brief";
@@ -721,16 +721,16 @@ export declare const aiMessagePartSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
721
721
  name: z.ZodString;
722
722
  label: z.ZodString;
723
723
  status: z.ZodEnum<{
724
- error: "error";
725
724
  unknown: "unknown";
725
+ error: "error";
726
726
  ok: "ok";
727
727
  }>;
728
728
  summary: z.ZodNullable<z.ZodString>;
729
729
  activity: z.ZodOptional<z.ZodEnum<{
730
- check: "check";
731
730
  code: "code";
732
- version: "version";
733
731
  status: "status";
732
+ check: "check";
733
+ version: "version";
734
734
  shipping: "shipping";
735
735
  category: "category";
736
736
  brief: "brief";
@@ -873,16 +873,16 @@ export declare const aiMessageSchema: z.ZodObject<{
873
873
  name: z.ZodString;
874
874
  label: z.ZodString;
875
875
  status: z.ZodEnum<{
876
- error: "error";
877
876
  unknown: "unknown";
877
+ error: "error";
878
878
  ok: "ok";
879
879
  }>;
880
880
  summary: z.ZodNullable<z.ZodString>;
881
881
  activity: z.ZodOptional<z.ZodEnum<{
882
- check: "check";
883
882
  code: "code";
884
- version: "version";
885
883
  status: "status";
884
+ check: "check";
885
+ version: "version";
886
886
  shipping: "shipping";
887
887
  category: "category";
888
888
  brief: "brief";
@@ -1040,16 +1040,16 @@ export declare const aiConversationSchema: z.ZodObject<{
1040
1040
  name: z.ZodString;
1041
1041
  label: z.ZodString;
1042
1042
  status: z.ZodEnum<{
1043
- error: "error";
1044
1043
  unknown: "unknown";
1044
+ error: "error";
1045
1045
  ok: "ok";
1046
1046
  }>;
1047
1047
  summary: z.ZodNullable<z.ZodString>;
1048
1048
  activity: z.ZodOptional<z.ZodEnum<{
1049
- check: "check";
1050
1049
  code: "code";
1051
- version: "version";
1052
1050
  status: "status";
1051
+ check: "check";
1052
+ version: "version";
1053
1053
  shipping: "shipping";
1054
1054
  category: "category";
1055
1055
  brief: "brief";
@@ -1311,6 +1311,7 @@ export declare const aiFocusAreaSchema: z.ZodEnum<{
1311
1311
  addresses: "addresses";
1312
1312
  orders: "orders";
1313
1313
  webhooks: "webhooks";
1314
+ members: "members";
1314
1315
  categories: "categories";
1315
1316
  collections: "collections";
1316
1317
  option_sets: "option_sets";
@@ -1323,7 +1324,6 @@ export declare const aiFocusAreaSchema: z.ZodEnum<{
1323
1324
  store_settings: "store_settings";
1324
1325
  payments: "payments";
1325
1326
  login: "login";
1326
- members: "members";
1327
1327
  order_flows: "order_flows";
1328
1328
  storefront: "storefront";
1329
1329
  }>;
@@ -1335,6 +1335,7 @@ export declare const aiFocusSchema: z.ZodObject<{
1335
1335
  addresses: "addresses";
1336
1336
  orders: "orders";
1337
1337
  webhooks: "webhooks";
1338
+ members: "members";
1338
1339
  categories: "categories";
1339
1340
  collections: "collections";
1340
1341
  option_sets: "option_sets";
@@ -1347,7 +1348,6 @@ export declare const aiFocusSchema: z.ZodObject<{
1347
1348
  store_settings: "store_settings";
1348
1349
  payments: "payments";
1349
1350
  login: "login";
1350
- members: "members";
1351
1351
  order_flows: "order_flows";
1352
1352
  storefront: "storefront";
1353
1353
  }>;
@@ -1518,6 +1518,7 @@ export declare const aiStreamEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1518
1518
  addresses: "addresses";
1519
1519
  orders: "orders";
1520
1520
  webhooks: "webhooks";
1521
+ members: "members";
1521
1522
  categories: "categories";
1522
1523
  collections: "collections";
1523
1524
  option_sets: "option_sets";
@@ -1530,17 +1531,16 @@ export declare const aiStreamEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1530
1531
  store_settings: "store_settings";
1531
1532
  payments: "payments";
1532
1533
  login: "login";
1533
- members: "members";
1534
1534
  order_flows: "order_flows";
1535
1535
  storefront: "storefront";
1536
1536
  }>;
1537
1537
  id: z.ZodOptional<z.ZodString>;
1538
1538
  }, z.core.$strip>>;
1539
1539
  activity: z.ZodOptional<z.ZodEnum<{
1540
- check: "check";
1541
1540
  code: "code";
1542
- version: "version";
1543
1541
  status: "status";
1542
+ check: "check";
1543
+ version: "version";
1544
1544
  shipping: "shipping";
1545
1545
  category: "category";
1546
1546
  brief: "brief";
@@ -1576,8 +1576,8 @@ export declare const aiStreamEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1576
1576
  messageId: z.ZodString;
1577
1577
  toolCallId: z.ZodString;
1578
1578
  status: z.ZodEnum<{
1579
- error: "error";
1580
1579
  unknown: "unknown";
1580
+ error: "error";
1581
1581
  ok: "ok";
1582
1582
  }>;
1583
1583
  summary: z.ZodNullable<z.ZodString>;
@@ -1640,16 +1640,16 @@ export declare const aiStreamEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1640
1640
  name: z.ZodString;
1641
1641
  label: z.ZodString;
1642
1642
  status: z.ZodEnum<{
1643
- error: "error";
1644
1643
  unknown: "unknown";
1644
+ error: "error";
1645
1645
  ok: "ok";
1646
1646
  }>;
1647
1647
  summary: z.ZodNullable<z.ZodString>;
1648
1648
  activity: z.ZodOptional<z.ZodEnum<{
1649
- check: "check";
1650
1649
  code: "code";
1651
- version: "version";
1652
1650
  status: "status";
1651
+ check: "check";
1652
+ version: "version";
1653
1653
  shipping: "shipping";
1654
1654
  category: "category";
1655
1655
  brief: "brief";
@@ -1850,6 +1850,7 @@ export declare const aiStreamRecordSchema: z.ZodObject<{
1850
1850
  addresses: "addresses";
1851
1851
  orders: "orders";
1852
1852
  webhooks: "webhooks";
1853
+ members: "members";
1853
1854
  categories: "categories";
1854
1855
  collections: "collections";
1855
1856
  option_sets: "option_sets";
@@ -1862,17 +1863,16 @@ export declare const aiStreamRecordSchema: z.ZodObject<{
1862
1863
  store_settings: "store_settings";
1863
1864
  payments: "payments";
1864
1865
  login: "login";
1865
- members: "members";
1866
1866
  order_flows: "order_flows";
1867
1867
  storefront: "storefront";
1868
1868
  }>;
1869
1869
  id: z.ZodOptional<z.ZodString>;
1870
1870
  }, z.core.$strip>>;
1871
1871
  activity: z.ZodOptional<z.ZodEnum<{
1872
- check: "check";
1873
1872
  code: "code";
1874
- version: "version";
1875
1873
  status: "status";
1874
+ check: "check";
1875
+ version: "version";
1876
1876
  shipping: "shipping";
1877
1877
  category: "category";
1878
1878
  brief: "brief";
@@ -1908,8 +1908,8 @@ export declare const aiStreamRecordSchema: z.ZodObject<{
1908
1908
  messageId: z.ZodString;
1909
1909
  toolCallId: z.ZodString;
1910
1910
  status: z.ZodEnum<{
1911
- error: "error";
1912
1911
  unknown: "unknown";
1912
+ error: "error";
1913
1913
  ok: "ok";
1914
1914
  }>;
1915
1915
  summary: z.ZodNullable<z.ZodString>;
@@ -1972,16 +1972,16 @@ export declare const aiStreamRecordSchema: z.ZodObject<{
1972
1972
  name: z.ZodString;
1973
1973
  label: z.ZodString;
1974
1974
  status: z.ZodEnum<{
1975
- error: "error";
1976
1975
  unknown: "unknown";
1976
+ error: "error";
1977
1977
  ok: "ok";
1978
1978
  }>;
1979
1979
  summary: z.ZodNullable<z.ZodString>;
1980
1980
  activity: z.ZodOptional<z.ZodEnum<{
1981
- check: "check";
1982
1981
  code: "code";
1983
- version: "version";
1984
1982
  status: "status";
1983
+ check: "check";
1984
+ version: "version";
1985
1985
  shipping: "shipping";
1986
1986
  category: "category";
1987
1987
  brief: "brief";
@@ -6449,6 +6449,27 @@ export declare const collectionPreviewSchema: z.ZodObject<{
6449
6449
  salesComputedAt: z.ZodDefault<z.ZodNullable<z.ZodString>>;
6450
6450
  }, z.core.$strip>;
6451
6451
  export type CollectionPreview = z.infer<typeof collectionPreviewSchema>;
6452
+ /**
6453
+ * 컬렉션 번역 (이슈 #134) — 언어 하나의 제목·설명·SEO. 컬렉션 필드는 상점 기본 언어 값이고 번역 레코드가 언어별 값이다.
6454
+ * 비운 칸(null)은 스토어프론트가 기본 언어 값으로 대체한다(칸 단위 대체).
6455
+ */
6456
+ export declare const collectionLocalizationSchema: z.ZodObject<{
6457
+ locale: z.ZodString;
6458
+ title: z.ZodNullable<z.ZodString>;
6459
+ description: z.ZodNullable<z.ZodString>;
6460
+ metaTitle: z.ZodNullable<z.ZodString>;
6461
+ metaDescription: z.ZodNullable<z.ZodString>;
6462
+ updatedAt: z.ZodString;
6463
+ }, z.core.$strip>;
6464
+ export type CollectionLocalization = z.infer<typeof collectionLocalizationSchema>;
6465
+ /** `PUT /v1/collections/{collectionId}/localizations/{locale}` 본문 — 레코드 전체를 바꾼다. 빠진 칸은 null(기본 언어 값으로 대체)이다 */
6466
+ export declare const collectionLocalizationRequestSchema: z.ZodObject<{
6467
+ title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
6468
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
6469
+ metaTitle: z.ZodOptional<z.ZodNullable<z.ZodString>>;
6470
+ metaDescription: z.ZodOptional<z.ZodNullable<z.ZodString>>;
6471
+ }, z.core.$strict>;
6472
+ export type CollectionLocalizationRequest = z.infer<typeof collectionLocalizationRequestSchema>;
6452
6473
  //#endregion
6453
6474
  //#region src/schemas/commerce-flow.d.ts
6454
6475
  /**
@@ -11392,6 +11413,10 @@ export declare const productSummarySchema: z.ZodObject<{
11392
11413
  }, z.core.$strip>;
11393
11414
  updatedAt: z.ZodString;
11394
11415
  sample: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
11416
+ localizations: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
11417
+ locale: z.ZodString;
11418
+ needsTranslation: z.ZodBoolean;
11419
+ }, z.core.$strip>>>>;
11395
11420
  }, z.core.$strip>;
11396
11421
  export type ProductSummary = z.infer<typeof productSummarySchema>;
11397
11422
  /** 옵션 축(그룹)이 가지는 값 하나 — 예: 축 "색상"의 값 "블랙" */
@@ -11637,9 +11662,6 @@ export declare const discountSchema: z.ZodObject<{
11637
11662
  }, z.core.$strip>;
11638
11663
  export type Discount = z.infer<typeof discountSchema>;
11639
11664
  export declare const productSchema: z.ZodObject<{
11640
- productId: z.ZodString;
11641
- productNo: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
11642
- name: z.ZodString;
11643
11665
  status: z.ZodEnum<{
11644
11666
  SALE: "SALE";
11645
11667
  SUSPENDED: "SUSPENDED";
@@ -11647,10 +11669,13 @@ export declare const productSchema: z.ZodObject<{
11647
11669
  CLOSED: "CLOSED";
11648
11670
  }>;
11649
11671
  salePrice: z.ZodNumber;
11650
- discountedPrice: z.ZodNullable<z.ZodNumber>;
11672
+ name: z.ZodString;
11651
11673
  stockQuantity: z.ZodNumber;
11652
11674
  categoryId: z.ZodNullable<z.ZodString>;
11675
+ productId: z.ZodString;
11653
11676
  thumbnailUrl: z.ZodOptional<z.ZodURL>;
11677
+ productNo: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
11678
+ discountedPrice: z.ZodNullable<z.ZodNumber>;
11654
11679
  hasOptions: z.ZodBoolean;
11655
11680
  updatedAt: z.ZodString;
11656
11681
  sample: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
@@ -12697,9 +12722,9 @@ export type ProductPatchRequest = z.infer<typeof productPatchRequestSchema>;
12697
12722
  export declare const productSortSchema: z.ZodEnum<{
12698
12723
  "createdAt.desc": "createdAt.desc";
12699
12724
  "createdAt.asc": "createdAt.asc";
12725
+ "updatedAt.desc": "updatedAt.desc";
12700
12726
  "salePrice.asc": "salePrice.asc";
12701
12727
  "salePrice.desc": "salePrice.desc";
12702
- "updatedAt.desc": "updatedAt.desc";
12703
12728
  }>;
12704
12729
  export type ProductSort = z.infer<typeof productSortSchema>;
12705
12730
  export interface ProductListParams extends PageParams {
@@ -12728,9 +12753,9 @@ export declare const productListQuerySchema: z.ZodObject<{
12728
12753
  sort: z.ZodOptional<z.ZodEnum<{
12729
12754
  "createdAt.desc": "createdAt.desc";
12730
12755
  "createdAt.asc": "createdAt.asc";
12756
+ "updatedAt.desc": "updatedAt.desc";
12731
12757
  "salePrice.asc": "salePrice.asc";
12732
12758
  "salePrice.desc": "salePrice.desc";
12733
- "updatedAt.desc": "updatedAt.desc";
12734
12759
  }>>;
12735
12760
  }, z.core.$strip>;
12736
12761
  export declare const discountRequestSchema: z.ZodObject<{
@@ -12884,10 +12909,29 @@ export declare const infoSectionRequestSchema: z.ZodObject<{
12884
12909
  }, z.core.$strip>;
12885
12910
  export type InfoSectionRequest = z.infer<typeof infoSectionRequestSchema>;
12886
12911
  export type InfoSectionRequestInput = z.input<typeof infoSectionRequestSchema>;
12912
+ /**
12913
+ * 안내 섹션 번역 (이슈 #134) — 언어 하나의 제목·본문. 섹션 필드는 상점 기본 언어 값이다. 비운 칸(null)은 스토어프론트가 기본 언어 값으로 대체한다.
12914
+ * 섹션을 연결한 모든 상품이 같은 번역을 보인다.
12915
+ */
12916
+ export declare const infoSectionLocalizationSchema: z.ZodObject<{
12917
+ locale: z.ZodString;
12918
+ title: z.ZodNullable<z.ZodString>;
12919
+ body: z.ZodNullable<z.ZodString>;
12920
+ bodyJson: z.ZodNullable<z.ZodString>;
12921
+ updatedAt: z.ZodString;
12922
+ }, z.core.$strip>;
12923
+ export type InfoSectionLocalization = z.infer<typeof infoSectionLocalizationSchema>;
12924
+ /** `PUT /v1/info-sections/{infoSectionId}/localizations/{locale}` 본문 — 레코드 전체를 바꾼다. 빠진 칸은 null이다 */
12925
+ export declare const infoSectionLocalizationRequestSchema: z.ZodObject<{
12926
+ title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
12927
+ body: z.ZodOptional<z.ZodNullable<z.ZodString>>;
12928
+ bodyJson: z.ZodOptional<z.ZodNullable<z.ZodString>>;
12929
+ }, z.core.$strict>;
12930
+ export type InfoSectionLocalizationRequest = z.infer<typeof infoSectionLocalizationRequestSchema>;
12887
12931
  //#endregion
12888
12932
  //#region src/schemas/product-localization.d.ts
12889
12933
  /**
12890
- * 조회 응답 — 지금 상품의 옵션명·값·직접 입력 항목을 모두 싣고 번역하지 않은 칸은 null이다.
12934
+ * 조회 응답 — 지금 상품의 옵션명·값·직접 입력 항목, 셀러가 적은 고시 칸을 모두 싣고 번역하지 않은 칸은 null이다.
12891
12935
  * `optionGroups`는 조합 옵션, `addonGroups`는 추가 선택이다(상품 응답과 같은 구분)
12892
12936
  */
12893
12937
  export declare const productLocalizationSchema: z.ZodObject<{
@@ -12917,6 +12961,11 @@ export declare const productLocalizationSchema: z.ZodObject<{
12917
12961
  label: z.ZodNullable<z.ZodString>;
12918
12962
  placeholder: z.ZodNullable<z.ZodString>;
12919
12963
  }, z.core.$strip>>;
12964
+ notice: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
12965
+ key: z.ZodString;
12966
+ label: z.ZodString;
12967
+ value: z.ZodNullable<z.ZodString>;
12968
+ }, z.core.$strip>>>>;
12920
12969
  updatedAt: z.ZodString;
12921
12970
  }, z.core.$strip>;
12922
12971
  export type ProductLocalization = z.infer<typeof productLocalizationSchema>;
@@ -12951,8 +13000,22 @@ export declare const productLocalizationRequestSchema: z.ZodObject<{
12951
13000
  label: z.ZodOptional<z.ZodNullable<z.ZodString>>;
12952
13001
  placeholder: z.ZodOptional<z.ZodNullable<z.ZodString>>;
12953
13002
  }, z.core.$strict>>>;
13003
+ notice: z.ZodOptional<z.ZodArray<z.ZodObject<{
13004
+ key: z.ZodString;
13005
+ value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
13006
+ }, z.core.$strict>>>;
12954
13007
  }, z.core.$strict>;
12955
13008
  export type ProductLocalizationRequest = z.infer<typeof productLocalizationRequestSchema>;
13009
+ /**
13010
+ * 번역할 칸이 비었는가(이슈 #134, 2026-10-18 결정: 완성도 대신 「번역 필요」 표시만) — 상품명, 기본 언어에 본문이 있는 상세설명,
13011
+ * 옵션명·값·직접 입력 항목명, 셀러가 적은 고시 칸. 이미지·입력 안내는 기본 언어 값을 그대로 써도 되는 칸이라 세지 않는다.
13012
+ * 상점 플랫폼(상품 수정·목록)과 관리 목록 응답이 같은 함수다
13013
+ */
13014
+ export declare function productLocalizationNeedsTranslation(localization: Pick<ProductLocalization, "name" | "description" | "optionGroups" | "addonGroups" | "customInputs"> & {
13015
+ notice?: ProductLocalization["notice"];
13016
+ }, base: {
13017
+ description?: string | null;
13018
+ }): boolean;
12956
13019
  //#endregion
12957
13020
  //#region src/schemas/saved-option-set.d.ts
12958
13021
  /**
@@ -13186,6 +13249,49 @@ export declare const savedOptionSetListQuerySchema: z.ZodObject<{
13186
13249
  "importedProductCount.desc": "importedProductCount.desc";
13187
13250
  }>>;
13188
13251
  }, z.core.$strip>;
13252
+ /**
13253
+ * 저장 옵션 번역 (이슈 #134) — 저장 옵션에는 id가 없어 **기본 언어 이름이 키**다(`baseName`·`baseLabel`).
13254
+ * 상품이 불러올 때 상품 번역으로 함께 복사하고(상품 저장 트랜잭션), 그 뒤로는 상품 번역이 원천이다 — 저장 옵션 번역을 고쳐도
13255
+ * 이미 불러온 상품은 그대로다. 기본 언어 이름을 바꾸면 그 이름의 번역은 읽지 않는다.
13256
+ */
13257
+ export declare const savedOptionSetLocalizationSchema: z.ZodObject<{
13258
+ locale: z.ZodString;
13259
+ groups: z.ZodArray<z.ZodObject<{
13260
+ baseName: z.ZodString;
13261
+ name: z.ZodNullable<z.ZodString>;
13262
+ values: z.ZodArray<z.ZodObject<{
13263
+ baseName: z.ZodString;
13264
+ name: z.ZodNullable<z.ZodString>;
13265
+ }, z.core.$strip>>;
13266
+ }, z.core.$strip>>;
13267
+ customInputs: z.ZodArray<z.ZodObject<{
13268
+ baseLabel: z.ZodString;
13269
+ label: z.ZodNullable<z.ZodString>;
13270
+ placeholder: z.ZodNullable<z.ZodString>;
13271
+ }, z.core.$strip>>;
13272
+ updatedAt: z.ZodString;
13273
+ }, z.core.$strip>;
13274
+ export type SavedOptionSetLocalization = z.infer<typeof savedOptionSetLocalizationSchema>;
13275
+ /**
13276
+ * `PUT /v1/saved-option-sets/{optionSetId}/localizations/{locale}` 본문 — 레코드 전체를 바꾼다. 번역할 이름만 보낸다.
13277
+ * 저장 옵션에 없는 기본 언어 이름은 400 `OPTION_SET_LOCALIZATION_TARGET_NOT_FOUND`, 번역 이름 중복은 상품과 같은 규칙으로 400 `INVALID_OPTION_MODEL`이다
13278
+ */
13279
+ export declare const savedOptionSetLocalizationRequestSchema: z.ZodObject<{
13280
+ groups: z.ZodOptional<z.ZodArray<z.ZodObject<{
13281
+ baseName: z.ZodString;
13282
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
13283
+ values: z.ZodOptional<z.ZodArray<z.ZodObject<{
13284
+ baseName: z.ZodString;
13285
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
13286
+ }, z.core.$strict>>>;
13287
+ }, z.core.$strict>>>;
13288
+ customInputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
13289
+ baseLabel: z.ZodString;
13290
+ label: z.ZodOptional<z.ZodNullable<z.ZodString>>;
13291
+ placeholder: z.ZodOptional<z.ZodNullable<z.ZodString>>;
13292
+ }, z.core.$strict>>>;
13293
+ }, z.core.$strict>;
13294
+ export type SavedOptionSetLocalizationRequest = z.infer<typeof savedOptionSetLocalizationRequestSchema>;
13189
13295
  //#endregion
13190
13296
  //#region src/schemas/stay.d.ts
13191
13297
  /**
@@ -13674,7 +13780,8 @@ export type SellerAddressRequest = z.infer<typeof sellerAddressRequestSchema>;
13674
13780
  * - 502 `STOREFRONT_SANDBOX_UNAVAILABLE` — 편집 Sandbox 호출이 실패했다. 잠시 뒤 다시 한다
13675
13781
  *
13676
13782
  * 소스 내려받기·올리기(#60, `/v1/storefront/site/source/**`, `sayren` CLI):
13677
- * - 409 `SOURCE_CHANGED` — 작업 트리가 내려받은 뒤(`expectedBaseRef`) 바뀌었다(상점 플랫폼·AI 편집). `error.details.currentRef`
13783
+ * - 409 `SOURCE_CHANGED` — 작업 트리가 내려받은 뒤(`expectedBaseRef`) 바뀌었고 같은 파일을 서로 다르게 고쳤다(상점 플랫폼·AI 편집). 겹치지 않으면 서버가
13784
+ * 3-way 병합한다(응답 `merged`). `error.details.currentRef`·`conflicts`(충돌 파일)
13678
13785
  * - 409 `EDIT_SESSION_OPEN` — 편집 환경이 열려 있다. `endEditSession: true`로 끄고 진행할 수 있다
13679
13786
  * - 409 `SOURCE_BLOBS_MISSING` — 올리지 않은 파일 내용이 있다(`error.details.hashes`). `POST source/blobs`로 올리고 다시 한다
13680
13787
  * - 409 `DEPENDENCY_REJECTED` — 쓸 수 없는 npm 의존성이다(`error.details.rejected: [{ name, version, reason, detail }]`)
@@ -13800,6 +13907,8 @@ export declare const storefrontVersionSchema: z.ZodObject<{
13800
13907
  buildId: z.ZodNullable<z.ZodString>;
13801
13908
  createdByType: z.ZodString;
13802
13909
  createdVia: z.ZodOptional<z.ZodNullable<z.ZodString>>;
13910
+ gitRef: z.ZodOptional<z.ZodNullable<z.ZodString>>;
13911
+ commitSha: z.ZodOptional<z.ZodNullable<z.ZodString>>;
13803
13912
  createdAt: z.ZodString;
13804
13913
  previewable: z.ZodOptional<z.ZodBoolean>;
13805
13914
  }, z.core.$strip>;
@@ -13873,6 +13982,7 @@ export declare const storefrontSiteSnapshotSchema: z.ZodObject<{
13873
13982
  export type StorefrontSiteSnapshot = z.infer<typeof storefrontSiteSnapshotSchema>;
13874
13983
  export declare const storefrontSiteSchema: z.ZodObject<{
13875
13984
  siteId: z.ZodString;
13985
+ deployWithoutApproval: z.ZodOptional<z.ZodBoolean>;
13876
13986
  slug: z.ZodString;
13877
13987
  hostname: z.ZodString;
13878
13988
  url: z.ZodString;
@@ -13923,6 +14033,8 @@ export declare const storefrontSiteSchema: z.ZodObject<{
13923
14033
  buildId: z.ZodNullable<z.ZodString>;
13924
14034
  createdByType: z.ZodString;
13925
14035
  createdVia: z.ZodOptional<z.ZodNullable<z.ZodString>>;
14036
+ gitRef: z.ZodOptional<z.ZodNullable<z.ZodString>>;
14037
+ commitSha: z.ZodOptional<z.ZodNullable<z.ZodString>>;
13926
14038
  createdAt: z.ZodString;
13927
14039
  previewable: z.ZodOptional<z.ZodBoolean>;
13928
14040
  }, z.core.$strip>>;
@@ -13959,6 +14071,7 @@ export declare const storefrontHostingSchema: z.ZodObject<{
13959
14071
  editingEnabled: z.ZodBoolean;
13960
14072
  site: z.ZodNullable<z.ZodObject<{
13961
14073
  siteId: z.ZodString;
14074
+ deployWithoutApproval: z.ZodOptional<z.ZodBoolean>;
13962
14075
  slug: z.ZodString;
13963
14076
  hostname: z.ZodString;
13964
14077
  url: z.ZodString;
@@ -14009,6 +14122,8 @@ export declare const storefrontHostingSchema: z.ZodObject<{
14009
14122
  buildId: z.ZodNullable<z.ZodString>;
14010
14123
  createdByType: z.ZodString;
14011
14124
  createdVia: z.ZodOptional<z.ZodNullable<z.ZodString>>;
14125
+ gitRef: z.ZodOptional<z.ZodNullable<z.ZodString>>;
14126
+ commitSha: z.ZodOptional<z.ZodNullable<z.ZodString>>;
14012
14127
  createdAt: z.ZodString;
14013
14128
  previewable: z.ZodOptional<z.ZodBoolean>;
14014
14129
  }, z.core.$strip>>;
@@ -14856,6 +14971,8 @@ export declare const storefrontVersionCreatedSchema: z.ZodObject<{
14856
14971
  buildId: z.ZodNullable<z.ZodString>;
14857
14972
  createdByType: z.ZodString;
14858
14973
  createdVia: z.ZodOptional<z.ZodNullable<z.ZodString>>;
14974
+ gitRef: z.ZodOptional<z.ZodNullable<z.ZodString>>;
14975
+ commitSha: z.ZodOptional<z.ZodNullable<z.ZodString>>;
14859
14976
  createdAt: z.ZodString;
14860
14977
  previewable: z.ZodOptional<z.ZodBoolean>;
14861
14978
  }, z.core.$strip>;
@@ -15040,6 +15157,8 @@ export declare const storefrontSourceReplacedSchema: z.ZodObject<{
15040
15157
  files: z.ZodNumber;
15041
15158
  bytes: z.ZodNumber;
15042
15159
  changed: z.ZodBoolean;
15160
+ merged: z.ZodOptional<z.ZodBoolean>;
15161
+ uploadedRef: z.ZodOptional<z.ZodString>;
15043
15162
  endedEditSession: z.ZodBoolean;
15044
15163
  dependencyWarnings: z.ZodArray<z.ZodObject<{
15045
15164
  name: z.ZodString;
@@ -15055,6 +15174,62 @@ export declare const storefrontSourceReplacedSchema: z.ZodObject<{
15055
15174
  }, z.core.$strip>>;
15056
15175
  }, z.core.$strip>;
15057
15176
  export type StorefrontSourceReplaced = z.infer<typeof storefrontSourceReplacedSchema>;
15177
+ /**
15178
+ * `GET /v1/storefront/site/git` — 사이트의 Git 원천. 발행한 소스는 GitHub 저장소 main에 있다(사내 저장소 또는 셀러가 연결한 저장소).
15179
+ * 연결 전이면 필드가 null이다
15180
+ */
15181
+ export declare const storefrontGitStatusSchema: z.ZodObject<{
15182
+ provider: z.ZodNullable<z.ZodEnum<{
15183
+ GITHUB: "GITHUB";
15184
+ }>>;
15185
+ owner: z.ZodNullable<z.ZodEnum<{
15186
+ SELLER: "SELLER";
15187
+ SAYREN: "SAYREN";
15188
+ }>>;
15189
+ repository: z.ZodNullable<z.ZodString>;
15190
+ productionBranch: z.ZodNullable<z.ZodString>;
15191
+ rootDirectory: z.ZodNullable<z.ZodString>;
15192
+ connectedAt: z.ZodNullable<z.ZodString>;
15193
+ headCommitSha: z.ZodNullable<z.ZodString>;
15194
+ mainChanged: z.ZodBoolean;
15195
+ autoPromotePaused: z.ZodBoolean;
15196
+ publishPending: z.ZodBoolean;
15197
+ publishErrorCode: z.ZodNullable<z.ZodString>;
15198
+ archivedWorkRef: z.ZodNullable<z.ZodString>;
15199
+ }, z.core.$strip>;
15200
+ export type StorefrontGitStatus = z.infer<typeof storefrontGitStatusSchema>;
15201
+ export declare const storefrontGitRepositorySchema: z.ZodObject<{
15202
+ repoId: z.ZodNumber;
15203
+ fullName: z.ZodString;
15204
+ defaultBranch: z.ZodString;
15205
+ }, z.core.$strip>;
15206
+ export type StorefrontGitRepository = z.infer<typeof storefrontGitRepositorySchema>;
15207
+ /** `POST /v1/storefront/site/git/installations` — GitHub App 설치 화면에서 돌아온 값(`installation_id`·`code`) */
15208
+ export declare const linkStorefrontGitInstallationRequestSchema: z.ZodObject<{
15209
+ installationId: z.ZodNumber;
15210
+ code: z.ZodString;
15211
+ state: z.ZodString;
15212
+ }, z.core.$strip>;
15213
+ /** `POST /v1/storefront/site/git/installations/state` — GitHub 설치 화면에 싣는 1회용 state(이 상점·사용자, 10분) */
15214
+ export declare const storefrontGitConnectStateSchema: z.ZodObject<{
15215
+ state: z.ZodString;
15216
+ expiresAt: z.ZodString;
15217
+ }, z.core.$strip>;
15218
+ export type StorefrontGitConnectState = z.infer<typeof storefrontGitConnectStateSchema>;
15219
+ export type LinkStorefrontGitInstallationRequest = z.infer<typeof linkStorefrontGitInstallationRequestSchema>;
15220
+ /** `POST /v1/storefront/site/git/connect` */
15221
+ export declare const connectStorefrontGitRequestSchema: z.ZodObject<{
15222
+ installationId: z.ZodNumber;
15223
+ repoId: z.ZodNumber;
15224
+ productionBranch: z.ZodOptional<z.ZodString>;
15225
+ rootDirectory: z.ZodOptional<z.ZodString>;
15226
+ }, z.core.$strip>;
15227
+ export type ConnectStorefrontGitRequest = z.infer<typeof connectStorefrontGitRequestSchema>;
15228
+ /** `PUT /v1/storefront/site/deploy-approval` — 승인 없이 배포(#138) */
15229
+ export declare const setStorefrontDeployApprovalRequestSchema: z.ZodObject<{
15230
+ deployWithoutApproval: z.ZodBoolean;
15231
+ }, z.core.$strip>;
15232
+ export type SetStorefrontDeployApprovalRequest = z.infer<typeof setStorefrontDeployApprovalRequestSchema>;
15058
15233
  //#endregion
15059
15234
  //#region src/schemas/upload.d.ts
15060
15235
  /**
@@ -15347,18 +15522,22 @@ export declare function createStoreClient(options: StoreClientOptions): {
15347
15522
  };
15348
15523
  updatedAt: string;
15349
15524
  sample: boolean;
15525
+ localizations: {
15526
+ locale: string;
15527
+ needsTranslation: boolean;
15528
+ }[];
15350
15529
  thumbnailUrl?: string | undefined;
15351
15530
  }[];
15352
15531
  }>;
15353
15532
  get: (productId: string) => Promise<{
15354
- productId: string;
15355
- productNo: number | null;
15356
- name: string;
15357
15533
  status: "SALE" | "SUSPENDED" | "OUT_OF_STOCK" | "CLOSED";
15358
15534
  salePrice: number;
15359
- discountedPrice: number | null;
15535
+ name: string;
15360
15536
  stockQuantity: number;
15361
15537
  categoryId: string | null;
15538
+ productId: string;
15539
+ productNo: number | null;
15540
+ discountedPrice: number | null;
15362
15541
  hasOptions: boolean;
15363
15542
  updatedAt: string;
15364
15543
  sample: boolean;
@@ -15500,14 +15679,14 @@ export declare function createStoreClient(options: StoreClientOptions): {
15500
15679
  createdAt?: string | undefined;
15501
15680
  }>;
15502
15681
  create: (body: ProductCreateRequestInput, idempotencyKey?: string) => Promise<{
15503
- productId: string;
15504
- productNo: number | null;
15505
- name: string;
15506
15682
  status: "SALE" | "SUSPENDED" | "OUT_OF_STOCK" | "CLOSED";
15507
15683
  salePrice: number;
15508
- discountedPrice: number | null;
15684
+ name: string;
15509
15685
  stockQuantity: number;
15510
15686
  categoryId: string | null;
15687
+ productId: string;
15688
+ productNo: number | null;
15689
+ discountedPrice: number | null;
15511
15690
  hasOptions: boolean;
15512
15691
  updatedAt: string;
15513
15692
  sample: boolean;
@@ -15649,14 +15828,14 @@ export declare function createStoreClient(options: StoreClientOptions): {
15649
15828
  createdAt?: string | undefined;
15650
15829
  }>;
15651
15830
  update: (productId: string, body: ProductReplaceRequestInput) => Promise<{
15652
- productId: string;
15653
- productNo: number | null;
15654
- name: string;
15655
15831
  status: "SALE" | "SUSPENDED" | "OUT_OF_STOCK" | "CLOSED";
15656
15832
  salePrice: number;
15657
- discountedPrice: number | null;
15833
+ name: string;
15658
15834
  stockQuantity: number;
15659
15835
  categoryId: string | null;
15836
+ productId: string;
15837
+ productNo: number | null;
15838
+ discountedPrice: number | null;
15660
15839
  hasOptions: boolean;
15661
15840
  updatedAt: string;
15662
15841
  sample: boolean;
@@ -15828,6 +16007,11 @@ export declare function createStoreClient(options: StoreClientOptions): {
15828
16007
  label: string | null;
15829
16008
  placeholder: string | null;
15830
16009
  }[];
16010
+ notice: {
16011
+ key: string;
16012
+ label: string;
16013
+ value: string | null;
16014
+ }[];
15831
16015
  updatedAt: string;
15832
16016
  }[]>;
15833
16017
  put: (productId: string, locale: string, body: ProductLocalizationRequest) => Promise<{
@@ -15857,6 +16041,11 @@ export declare function createStoreClient(options: StoreClientOptions): {
15857
16041
  label: string | null;
15858
16042
  placeholder: string | null;
15859
16043
  }[];
16044
+ notice: {
16045
+ key: string;
16046
+ label: string;
16047
+ value: string | null;
16048
+ }[];
15860
16049
  updatedAt: string;
15861
16050
  }>;
15862
16051
  remove: (productId: string, locale: string) => Promise<void>;
@@ -16182,6 +16371,44 @@ export declare function createStoreClient(options: StoreClientOptions): {
16182
16371
  };
16183
16372
  additionalPriceDropped: boolean;
16184
16373
  }>;
16374
+ /** 번역(이슈 #134) — 기본 언어 이름이 키다. 불러올 때 상품 번역으로 복사한다 */
16375
+ localizations: {
16376
+ list: (optionSetId: string) => Promise<{
16377
+ locale: string;
16378
+ groups: {
16379
+ baseName: string;
16380
+ name: string | null;
16381
+ values: {
16382
+ baseName: string;
16383
+ name: string | null;
16384
+ }[];
16385
+ }[];
16386
+ customInputs: {
16387
+ baseLabel: string;
16388
+ label: string | null;
16389
+ placeholder: string | null;
16390
+ }[];
16391
+ updatedAt: string;
16392
+ }[]>;
16393
+ put: (optionSetId: string, locale: string, body: SavedOptionSetLocalizationRequest) => Promise<{
16394
+ locale: string;
16395
+ groups: {
16396
+ baseName: string;
16397
+ name: string | null;
16398
+ values: {
16399
+ baseName: string;
16400
+ name: string | null;
16401
+ }[];
16402
+ }[];
16403
+ customInputs: {
16404
+ baseLabel: string;
16405
+ label: string | null;
16406
+ placeholder: string | null;
16407
+ }[];
16408
+ updatedAt: string;
16409
+ }>;
16410
+ remove: (optionSetId: string, locale: string) => Promise<void>;
16411
+ };
16185
16412
  };
16186
16413
  /**
16187
16414
  * 상품정보제공 고시 품목군(이슈 #135) — 플랫폼 코드 표. 현재 버전만 싣는다. 권한은 상품 조회(`product:r`)다
@@ -16260,6 +16487,24 @@ export declare function createStoreClient(options: StoreClientOptions): {
16260
16487
  updatedAt: string;
16261
16488
  }>;
16262
16489
  remove: (infoSectionId: string) => Promise<void>;
16490
+ /** 번역(이슈 #134) — 언어별 제목·본문 */
16491
+ localizations: {
16492
+ list: (infoSectionId: string) => Promise<{
16493
+ locale: string;
16494
+ title: string | null;
16495
+ body: string | null;
16496
+ bodyJson: string | null;
16497
+ updatedAt: string;
16498
+ }[]>;
16499
+ put: (infoSectionId: string, locale: string, body: InfoSectionLocalizationRequest) => Promise<{
16500
+ locale: string;
16501
+ title: string | null;
16502
+ body: string | null;
16503
+ bodyJson: string | null;
16504
+ updatedAt: string;
16505
+ }>;
16506
+ remove: (infoSectionId: string, locale: string) => Promise<void>;
16507
+ };
16263
16508
  };
16264
16509
  /**
16265
16510
  * 컬렉션 (이슈 #83) — 상품을 어디에 보여 줄지 정하는 묶음(다대다). 권한은 카테고리와 같다(`category:r`·`category:rw`).
@@ -16569,6 +16814,26 @@ export declare function createStoreClient(options: StoreClientOptions): {
16569
16814
  }[];
16570
16815
  salesComputedAt: string | null;
16571
16816
  }>;
16817
+ /** 번역(이슈 #134) — 언어별 제목·설명·SEO */
16818
+ localizations: {
16819
+ list: (collectionId: string) => Promise<{
16820
+ locale: string;
16821
+ title: string | null;
16822
+ description: string | null;
16823
+ metaTitle: string | null;
16824
+ metaDescription: string | null;
16825
+ updatedAt: string;
16826
+ }[]>;
16827
+ put: (collectionId: string, locale: string, body: CollectionLocalizationRequest) => Promise<{
16828
+ locale: string;
16829
+ title: string | null;
16830
+ description: string | null;
16831
+ metaTitle: string | null;
16832
+ metaDescription: string | null;
16833
+ updatedAt: string;
16834
+ }>;
16835
+ remove: (collectionId: string, locale: string) => Promise<void>;
16836
+ };
16572
16837
  };
16573
16838
  categories: {
16574
16839
  list: (params?: {
@@ -22285,9 +22550,9 @@ export declare function createStoreClient(options: StoreClientOptions): {
22285
22550
  toolCallId: string;
22286
22551
  name: string;
22287
22552
  label: string;
22288
- status: "error" | "unknown" | "ok";
22553
+ status: "unknown" | "error" | "ok";
22289
22554
  summary: string | null;
22290
- activity?: "check" | "code" | "version" | "status" | "shipping" | "category" | "brief" | "files" | "preview" | "template" | "site" | "info" | "upload" | "design" | "product" | "verify" | undefined;
22555
+ activity?: "code" | "status" | "check" | "version" | "shipping" | "category" | "brief" | "files" | "preview" | "template" | "site" | "info" | "upload" | "design" | "product" | "verify" | undefined;
22291
22556
  target?: string | undefined;
22292
22557
  changes?: {
22293
22558
  path: string;
@@ -22511,6 +22776,8 @@ export declare function createStoreClient(options: StoreClientOptions): {
22511
22776
  createdByType: string;
22512
22777
  createdAt: string;
22513
22778
  createdVia?: string | null | undefined;
22779
+ gitRef?: string | null | undefined;
22780
+ commitSha?: string | null | undefined;
22514
22781
  previewable?: boolean | undefined;
22515
22782
  } | null;
22516
22783
  provisioning: {
@@ -22524,6 +22791,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
22524
22791
  slugChangesRemaining: number;
22525
22792
  createdAt: string;
22526
22793
  updatedAt: string;
22794
+ deployWithoutApproval?: boolean | undefined;
22527
22795
  suspension?: {
22528
22796
  reason: string | null;
22529
22797
  suspendedAt: string | null;
@@ -22575,6 +22843,8 @@ export declare function createStoreClient(options: StoreClientOptions): {
22575
22843
  createdByType: string;
22576
22844
  createdAt: string;
22577
22845
  createdVia?: string | null | undefined;
22846
+ gitRef?: string | null | undefined;
22847
+ commitSha?: string | null | undefined;
22578
22848
  previewable?: boolean | undefined;
22579
22849
  } | null;
22580
22850
  provisioning: {
@@ -22588,6 +22858,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
22588
22858
  slugChangesRemaining: number;
22589
22859
  createdAt: string;
22590
22860
  updatedAt: string;
22861
+ deployWithoutApproval?: boolean | undefined;
22591
22862
  suspension?: {
22592
22863
  reason: string | null;
22593
22864
  suspendedAt: string | null;
@@ -22677,6 +22948,8 @@ export declare function createStoreClient(options: StoreClientOptions): {
22677
22948
  createdByType: string;
22678
22949
  createdAt: string;
22679
22950
  createdVia?: string | null | undefined;
22951
+ gitRef?: string | null | undefined;
22952
+ commitSha?: string | null | undefined;
22680
22953
  previewable?: boolean | undefined;
22681
22954
  } | null;
22682
22955
  provisioning: {
@@ -22690,6 +22963,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
22690
22963
  slugChangesRemaining: number;
22691
22964
  createdAt: string;
22692
22965
  updatedAt: string;
22966
+ deployWithoutApproval?: boolean | undefined;
22693
22967
  suspension?: {
22694
22968
  reason: string | null;
22695
22969
  suspendedAt: string | null;
@@ -22715,6 +22989,8 @@ export declare function createStoreClient(options: StoreClientOptions): {
22715
22989
  createdByType: string;
22716
22990
  createdAt: string;
22717
22991
  createdVia?: string | null | undefined;
22992
+ gitRef?: string | null | undefined;
22993
+ commitSha?: string | null | undefined;
22718
22994
  previewable?: boolean | undefined;
22719
22995
  }[]>;
22720
22996
  /** `POST /v1/storefront/site/versions/{versionId}/publish` — 그 버전을 발행한다(이미 발행돼 있으면 그대로 200) */
@@ -22748,6 +23024,8 @@ export declare function createStoreClient(options: StoreClientOptions): {
22748
23024
  createdByType: string;
22749
23025
  createdAt: string;
22750
23026
  createdVia?: string | null | undefined;
23027
+ gitRef?: string | null | undefined;
23028
+ commitSha?: string | null | undefined;
22751
23029
  previewable?: boolean | undefined;
22752
23030
  } | null;
22753
23031
  provisioning: {
@@ -22761,6 +23039,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
22761
23039
  slugChangesRemaining: number;
22762
23040
  createdAt: string;
22763
23041
  updatedAt: string;
23042
+ deployWithoutApproval?: boolean | undefined;
22764
23043
  suspension?: {
22765
23044
  reason: string | null;
22766
23045
  suspendedAt: string | null;
@@ -22802,6 +23081,8 @@ export declare function createStoreClient(options: StoreClientOptions): {
22802
23081
  createdByType: string;
22803
23082
  createdAt: string;
22804
23083
  createdVia?: string | null | undefined;
23084
+ gitRef?: string | null | undefined;
23085
+ commitSha?: string | null | undefined;
22805
23086
  previewable?: boolean | undefined;
22806
23087
  } | null;
22807
23088
  provisioning: {
@@ -22815,6 +23096,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
22815
23096
  slugChangesRemaining: number;
22816
23097
  createdAt: string;
22817
23098
  updatedAt: string;
23099
+ deployWithoutApproval?: boolean | undefined;
22818
23100
  suspension?: {
22819
23101
  reason: string | null;
22820
23102
  suspendedAt: string | null;
@@ -22856,6 +23138,8 @@ export declare function createStoreClient(options: StoreClientOptions): {
22856
23138
  createdByType: string;
22857
23139
  createdAt: string;
22858
23140
  createdVia?: string | null | undefined;
23141
+ gitRef?: string | null | undefined;
23142
+ commitSha?: string | null | undefined;
22859
23143
  previewable?: boolean | undefined;
22860
23144
  } | null;
22861
23145
  provisioning: {
@@ -22869,6 +23153,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
22869
23153
  slugChangesRemaining: number;
22870
23154
  createdAt: string;
22871
23155
  updatedAt: string;
23156
+ deployWithoutApproval?: boolean | undefined;
22872
23157
  suspension?: {
22873
23158
  reason: string | null;
22874
23159
  suspendedAt: string | null;
@@ -22910,6 +23195,8 @@ export declare function createStoreClient(options: StoreClientOptions): {
22910
23195
  createdByType: string;
22911
23196
  createdAt: string;
22912
23197
  createdVia?: string | null | undefined;
23198
+ gitRef?: string | null | undefined;
23199
+ commitSha?: string | null | undefined;
22913
23200
  previewable?: boolean | undefined;
22914
23201
  } | null;
22915
23202
  provisioning: {
@@ -22923,6 +23210,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
22923
23210
  slugChangesRemaining: number;
22924
23211
  createdAt: string;
22925
23212
  updatedAt: string;
23213
+ deployWithoutApproval?: boolean | undefined;
22926
23214
  suspension?: {
22927
23215
  reason: string | null;
22928
23216
  suspendedAt: string | null;
@@ -23112,6 +23400,8 @@ export declare function createStoreClient(options: StoreClientOptions): {
23112
23400
  createdByType: string;
23113
23401
  createdAt: string;
23114
23402
  createdVia?: string | null | undefined;
23403
+ gitRef?: string | null | undefined;
23404
+ commitSha?: string | null | undefined;
23115
23405
  previewable?: boolean | undefined;
23116
23406
  } | null;
23117
23407
  provisioning: {
@@ -23125,6 +23415,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
23125
23415
  slugChangesRemaining: number;
23126
23416
  createdAt: string;
23127
23417
  updatedAt: string;
23418
+ deployWithoutApproval?: boolean | undefined;
23128
23419
  suspension?: {
23129
23420
  reason: string | null;
23130
23421
  suspendedAt: string | null;
@@ -23357,6 +23648,8 @@ export declare function createStoreClient(options: StoreClientOptions): {
23357
23648
  createdByType: string;
23358
23649
  createdAt: string;
23359
23650
  createdVia?: string | null | undefined;
23651
+ gitRef?: string | null | undefined;
23652
+ commitSha?: string | null | undefined;
23360
23653
  previewable?: boolean | undefined;
23361
23654
  };
23362
23655
  build: {
@@ -23655,46 +23948,171 @@ export declare function createStoreClient(options: StoreClientOptions): {
23655
23948
  title: string;
23656
23949
  } | null | undefined;
23657
23950
  }[];
23951
+ merged?: boolean | undefined;
23952
+ uploadedRef?: string | undefined;
23658
23953
  }>;
23659
- };
23660
- subscription: {
23661
- /**
23662
- * `GET /v1/store/subscription` — 스코프 `store:r`. 현재 요금제·상태·사용량 기간·한도·이번 기간 사용량.
23663
- * 결제 수단·청구 금액은 싣지 않는다. 요금제 변경은 상점 플랫폼에서만 한다
23664
- */
23665
- get: () => Promise<{
23666
- plan: {
23667
- code: string;
23668
- name: string;
23669
- };
23670
- status: "ACTIVE" | "CANCELED" | "INCOMPLETE" | "PAST_DUE";
23671
- interval: "MONTH" | null;
23672
- cancelAtPeriodEnd: boolean;
23673
- period: {
23674
- start: string;
23675
- end: string;
23676
- };
23677
- limits: {
23678
- liveOrdersMonthly: number | null;
23679
- seatsIncluded: number | null;
23680
- aiActionsMonthly: number | null;
23681
- aiReadsMonthly: number | null;
23682
- customDomains: number | null;
23683
- webhooks: number | null;
23684
- socialProviders: number | null;
23685
- emailsMonthly: number | null;
23686
- storefrontRequestsMonthly: number | null;
23687
- apiLogRetentionDays: number | null;
23688
- auditLogRetentionDays: number | null;
23689
- storefrontPreviewHoursMonthly: number | null;
23954
+ /** `PUT /v1/storefront/site/deploy-approval` — 승인 없이 배포(상점 플랫폼 OWNER·ADMIN 전용) */
23955
+ setDeployApproval: (body: SetStorefrontDeployApprovalRequest) => Promise<{
23956
+ siteId: string;
23957
+ slug: string;
23958
+ hostname: string;
23959
+ url: string;
23960
+ domains: {
23961
+ hostname: string;
23962
+ kind: "PLATFORM" | "CUSTOM";
23963
+ status: "ACTIVE" | "HELD";
23964
+ isPrimary: boolean;
23965
+ holdUntil: string | null;
23966
+ }[];
23967
+ templateId: string;
23968
+ sourceMode: "CUSTOM" | "MANAGED";
23969
+ status: "SUSPENDED" | "CLOSED" | "ACTIVE";
23970
+ visibility: "COMING_SOON" | "PUBLIC";
23971
+ publishedVersion: {
23972
+ versionId: string;
23973
+ number: number;
23974
+ templateId: string;
23975
+ templateVersion: string;
23976
+ status: "FAILED" | "BUILDING" | "READY";
23977
+ published: boolean;
23978
+ publishedAt: string | null;
23979
+ message: string | null;
23980
+ source: "TEMPLATE" | "EDIT";
23981
+ buildId: string | null;
23982
+ createdByType: string;
23983
+ createdAt: string;
23984
+ createdVia?: string | null | undefined;
23985
+ gitRef?: string | null | undefined;
23986
+ commitSha?: string | null | undefined;
23987
+ previewable?: boolean | undefined;
23988
+ } | null;
23989
+ provisioning: {
23990
+ status: "PENDING" | "FAILED" | "SYNCED";
23991
+ lastErrorCode: string | null;
23992
+ syncedAt: string | null;
23993
+ };
23994
+ editPreview: {
23995
+ hostname: string | null;
23996
+ };
23997
+ slugChangesRemaining: number;
23998
+ createdAt: string;
23999
+ updatedAt: string;
24000
+ deployWithoutApproval?: boolean | undefined;
24001
+ suspension?: {
24002
+ reason: string | null;
24003
+ suspendedAt: string | null;
24004
+ } | null | undefined;
24005
+ snapshot?: {
24006
+ url: string;
24007
+ versionId: string | null;
24008
+ capturedAt: string | null;
24009
+ } | null | undefined;
24010
+ }>;
24011
+ /** `GET /v1/storefront/site/git` — Git 원천(발행 소스를 둔 저장소)과 상태(#138) */
24012
+ getGit: () => Promise<{
24013
+ provider: "GITHUB" | null;
24014
+ owner: "SELLER" | "SAYREN" | null;
24015
+ repository: string | null;
24016
+ productionBranch: string | null;
24017
+ rootDirectory: string | null;
24018
+ connectedAt: string | null;
24019
+ headCommitSha: string | null;
24020
+ mainChanged: boolean;
24021
+ autoPromotePaused: boolean;
24022
+ publishPending: boolean;
24023
+ publishErrorCode: string | null;
24024
+ archivedWorkRef: string | null;
24025
+ }>;
24026
+ /** `POST /v1/storefront/site/git/installations/state` — GitHub 설치 화면에 싣는 1회용 state(상점 플랫폼 전용) */
24027
+ createGitConnectState: () => Promise<{
24028
+ state: string;
24029
+ expiresAt: string;
24030
+ }>;
24031
+ /** `POST /v1/storefront/site/git/installations` — GitHub App 설치 확인(상점 플랫폼 전용) → 그 설치의 저장소 */
24032
+ linkGitInstallation: (body: LinkStorefrontGitInstallationRequest) => Promise<{
24033
+ repoId: number;
24034
+ fullName: string;
24035
+ defaultBranch: string;
24036
+ }[]>;
24037
+ /** `GET /v1/storefront/site/git/installations/{installationId}/repositories` — 확인한 설치의 저장소(상점 플랫폼 전용) */
24038
+ listGitRepositories: (installationId: number) => Promise<{
24039
+ repoId: number;
24040
+ fullName: string;
24041
+ defaultBranch: string;
24042
+ }[]>;
24043
+ /** `POST /v1/storefront/site/git/connect` — 셀러 GitHub 저장소 연결(상점 플랫폼 전용) */
24044
+ connectGit: (body: ConnectStorefrontGitRequest) => Promise<{
24045
+ provider: "GITHUB" | null;
24046
+ owner: "SELLER" | "SAYREN" | null;
24047
+ repository: string | null;
24048
+ productionBranch: string | null;
24049
+ rootDirectory: string | null;
24050
+ connectedAt: string | null;
24051
+ headCommitSha: string | null;
24052
+ mainChanged: boolean;
24053
+ autoPromotePaused: boolean;
24054
+ publishPending: boolean;
24055
+ publishErrorCode: string | null;
24056
+ archivedWorkRef: string | null;
24057
+ }>;
24058
+ /** `POST /v1/storefront/site/git/disconnect` — 연결 해제(sayren 저장소로 되돌림, 상점 플랫폼 전용) */
24059
+ disconnectGit: () => Promise<{
24060
+ provider: "GITHUB" | null;
24061
+ owner: "SELLER" | "SAYREN" | null;
24062
+ repository: string | null;
24063
+ productionBranch: string | null;
24064
+ rootDirectory: string | null;
24065
+ connectedAt: string | null;
24066
+ headCommitSha: string | null;
24067
+ mainChanged: boolean;
24068
+ autoPromotePaused: boolean;
24069
+ publishPending: boolean;
24070
+ publishErrorCode: string | null;
24071
+ archivedWorkRef: string | null;
24072
+ }>;
24073
+ };
24074
+ subscription: {
24075
+ /**
24076
+ * `GET /v1/store/subscription` — 스코프 `store:r`. 현재 요금제·상태·사용량 기간·한도·이번 기간 사용량.
24077
+ * 결제 수단·청구 금액은 싣지 않는다. 요금제 변경은 상점 플랫폼에서만 한다
24078
+ */
24079
+ get: () => Promise<{
24080
+ plan: {
24081
+ code: string;
24082
+ name: string;
24083
+ };
24084
+ status: "ACTIVE" | "CANCELED" | "INCOMPLETE" | "PAST_DUE";
24085
+ interval: "MONTH" | null;
24086
+ cancelAtPeriodEnd: boolean;
24087
+ period: {
24088
+ start: string;
24089
+ end: string;
24090
+ };
24091
+ limits: {
24092
+ liveOrdersMonthly: number | null;
24093
+ seatsIncluded: number | null;
24094
+ aiActionsMonthly: number | null;
24095
+ aiReadsMonthly: number | null;
24096
+ customDomains: number | null;
24097
+ webhooks: number | null;
24098
+ socialProviders: number | null;
24099
+ emailsMonthly: number | null;
24100
+ storefrontRequestsMonthly: number | null;
24101
+ apiLogRetentionDays: number | null;
24102
+ auditLogRetentionDays: number | null;
24103
+ storefrontPreviewHoursMonthly: number | null;
23690
24104
  storefrontBuildMinutesMonthly: number | null;
23691
24105
  adminApiRequestsMonthly: number | null;
24106
+ publicApps?: number | null | undefined;
24107
+ privateApps?: number | null | undefined;
24108
+ aiCreditsMonthly?: number | null | undefined;
23692
24109
  };
23693
24110
  features: {
23694
24111
  adminApi: boolean;
23695
24112
  analytics: boolean;
23696
24113
  storeClone: boolean;
23697
24114
  removeBadge: boolean;
24115
+ members?: boolean | undefined;
23698
24116
  };
23699
24117
  usage: {
23700
24118
  liveOrders: number;
@@ -23708,6 +24126,8 @@ export declare function createStoreClient(options: StoreClientOptions): {
23708
24126
  seats: number;
23709
24127
  customDomains: number;
23710
24128
  webhooks: number;
24129
+ publicApps?: number | undefined;
24130
+ privateApps?: number | undefined;
23711
24131
  };
23712
24132
  aiActions: {
23713
24133
  limit: number | null;
@@ -23720,6 +24140,16 @@ export declare function createStoreClient(options: StoreClientOptions): {
23720
24140
  resetsAt: string;
23721
24141
  };
23722
24142
  salesFeePercent: 0;
24143
+ aiCredits?: {
24144
+ monthly: number | null;
24145
+ granted: number;
24146
+ used: number;
24147
+ remaining: number | null;
24148
+ resetsAt: string;
24149
+ monthlyUsed?: number | undefined;
24150
+ purchased?: number | undefined;
24151
+ complimentary?: number | undefined;
24152
+ } | undefined;
23723
24153
  }>;
23724
24154
  };
23725
24155
  plans: {
@@ -23744,12 +24174,16 @@ export declare function createStoreClient(options: StoreClientOptions): {
23744
24174
  };
23745
24175
  };
23746
24176
  entitlements: {
24177
+ "features.members": boolean;
23747
24178
  "features.admin_api": boolean;
23748
24179
  "features.analytics": boolean;
23749
24180
  "limits.ai_reads_monthly": number | null;
23750
24181
  "limits.ai_actions_monthly": number | null;
23751
24182
  "limits.custom_domains": number | null;
23752
24183
  "limits.webhooks": number | null;
24184
+ "limits.public_apps": number | null;
24185
+ "limits.private_apps": number | null;
24186
+ "limits.ai_credits_monthly": number | null;
23753
24187
  "limits.storefront_preview_hours_monthly": number | null;
23754
24188
  "limits.storefront_build_minutes_monthly": number | null;
23755
24189
  "limits.storefront_requests_monthly": number | null;
@@ -24468,6 +24902,159 @@ export declare function normalizeLocale(value: string | null | undefined): strin
24468
24902
  export declare const DEFAULT_STORE_LOCALE = "ko";
24469
24903
  export declare const localeCodeSchema: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
24470
24904
  //#endregion
24905
+ //#region src/schemas/plans.d.ts
24906
+ /**
24907
+ * 요금제 기능 키 값 — 요금제 비교표·상점 플랫폼 요금제 화면이 쓴다. 키는 서버 판정의 기능 키와 같다(추가만 한다). 상위 요금제는 하위 요금제
24908
+ * 기능을 모두 포함한다
24909
+ */
24910
+ export declare const planEntitlementsSchema: z.ZodObject<{
24911
+ "features.members": z.ZodBoolean;
24912
+ "features.admin_api": z.ZodBoolean;
24913
+ "features.analytics": z.ZodBoolean;
24914
+ "limits.ai_reads_monthly": z.ZodNullable<z.ZodNumber>;
24915
+ "limits.ai_actions_monthly": z.ZodNullable<z.ZodNumber>;
24916
+ "limits.custom_domains": z.ZodNullable<z.ZodNumber>;
24917
+ "limits.webhooks": z.ZodNullable<z.ZodNumber>;
24918
+ "limits.public_apps": z.ZodNullable<z.ZodNumber>;
24919
+ "limits.private_apps": z.ZodNullable<z.ZodNumber>;
24920
+ "limits.ai_credits_monthly": z.ZodNullable<z.ZodNumber>;
24921
+ "limits.storefront_preview_hours_monthly": z.ZodNullable<z.ZodNumber>;
24922
+ "limits.storefront_build_minutes_monthly": z.ZodNullable<z.ZodNumber>;
24923
+ "limits.storefront_requests_monthly": z.ZodNullable<z.ZodNumber>;
24924
+ "limits.admin_api_requests_monthly": z.ZodNullable<z.ZodNumber>;
24925
+ "rate_limit.admin_api": z.ZodNullable<z.ZodNumber>;
24926
+ "storefront.cpu_ms": z.ZodNumber;
24927
+ "storefront.subrequests": z.ZodNumber;
24928
+ "storefront.rate_limit_per_minute": z.ZodNumber;
24929
+ "seats.included": z.ZodNullable<z.ZodNumber>;
24930
+ "retention.analytics_days": z.ZodNumber;
24931
+ "retention.api_logs_days": z.ZodNullable<z.ZodNumber>;
24932
+ "retention.audit_days": z.ZodNullable<z.ZodNumber>;
24933
+ "support.tier": z.ZodUnion<readonly [z.ZodEnum<{
24934
+ EMAIL: "EMAIL";
24935
+ COMMUNITY: "COMMUNITY";
24936
+ EMAIL_PRIORITY: "EMAIL_PRIORITY";
24937
+ DEDICATED: "DEDICATED";
24938
+ SLA: "SLA";
24939
+ }>, z.ZodString]>;
24940
+ }, z.core.$strip>;
24941
+ export type PlanEntitlementValues = z.infer<typeof planEntitlementsSchema>;
24942
+ /** 공개 요금제 한 줄 — `GET /v1/public/plans` */
24943
+ export declare const publicPlanSchema: z.ZodObject<{
24944
+ code: z.ZodUnion<readonly [z.ZodEnum<{
24945
+ FREE: "FREE";
24946
+ BASIC: "BASIC";
24947
+ BETA: "BETA";
24948
+ PRO: "PRO";
24949
+ BUSINESS: "BUSINESS";
24950
+ ENTERPRISE: "ENTERPRISE";
24951
+ PREMIUM: "PREMIUM";
24952
+ }>, z.ZodString]>;
24953
+ name: z.ZodString;
24954
+ version: z.ZodNumber;
24955
+ sort: z.ZodNumber;
24956
+ purchasable: z.ZodBoolean;
24957
+ prices: z.ZodObject<{
24958
+ currency: z.ZodLiteral<"KRW">;
24959
+ monthly: z.ZodNullable<z.ZodNumber>;
24960
+ startingAt: z.ZodBoolean;
24961
+ vatIncluded: z.ZodObject<{
24962
+ monthly: z.ZodNullable<z.ZodNumber>;
24963
+ }, z.core.$strip>;
24964
+ }, z.core.$strip>;
24965
+ entitlements: z.ZodObject<{
24966
+ "features.members": z.ZodBoolean;
24967
+ "features.admin_api": z.ZodBoolean;
24968
+ "features.analytics": z.ZodBoolean;
24969
+ "limits.ai_reads_monthly": z.ZodNullable<z.ZodNumber>;
24970
+ "limits.ai_actions_monthly": z.ZodNullable<z.ZodNumber>;
24971
+ "limits.custom_domains": z.ZodNullable<z.ZodNumber>;
24972
+ "limits.webhooks": z.ZodNullable<z.ZodNumber>;
24973
+ "limits.public_apps": z.ZodNullable<z.ZodNumber>;
24974
+ "limits.private_apps": z.ZodNullable<z.ZodNumber>;
24975
+ "limits.ai_credits_monthly": z.ZodNullable<z.ZodNumber>;
24976
+ "limits.storefront_preview_hours_monthly": z.ZodNullable<z.ZodNumber>;
24977
+ "limits.storefront_build_minutes_monthly": z.ZodNullable<z.ZodNumber>;
24978
+ "limits.storefront_requests_monthly": z.ZodNullable<z.ZodNumber>;
24979
+ "limits.admin_api_requests_monthly": z.ZodNullable<z.ZodNumber>;
24980
+ "rate_limit.admin_api": z.ZodNullable<z.ZodNumber>;
24981
+ "storefront.cpu_ms": z.ZodNumber;
24982
+ "storefront.subrequests": z.ZodNumber;
24983
+ "storefront.rate_limit_per_minute": z.ZodNumber;
24984
+ "seats.included": z.ZodNullable<z.ZodNumber>;
24985
+ "retention.analytics_days": z.ZodNumber;
24986
+ "retention.api_logs_days": z.ZodNullable<z.ZodNumber>;
24987
+ "retention.audit_days": z.ZodNullable<z.ZodNumber>;
24988
+ "support.tier": z.ZodUnion<readonly [z.ZodEnum<{
24989
+ EMAIL: "EMAIL";
24990
+ COMMUNITY: "COMMUNITY";
24991
+ EMAIL_PRIORITY: "EMAIL_PRIORITY";
24992
+ DEDICATED: "DEDICATED";
24993
+ SLA: "SLA";
24994
+ }>, z.ZodString]>;
24995
+ }, z.core.$strip>;
24996
+ }, z.core.$strip>;
24997
+ export type PublicPlan = z.infer<typeof publicPlanSchema>;
24998
+ /** 요금제 비교표 — `GET /v1/public/plans`(인증 없음, 캐시 가능). 값은 서버가 관리하고 언제든 바뀔 수 있다 */
24999
+ export declare const publicPlansSchema: z.ZodObject<{
25000
+ vatPercent: z.ZodNumber;
25001
+ plans: z.ZodArray<z.ZodObject<{
25002
+ code: z.ZodUnion<readonly [z.ZodEnum<{
25003
+ FREE: "FREE";
25004
+ BASIC: "BASIC";
25005
+ BETA: "BETA";
25006
+ PRO: "PRO";
25007
+ BUSINESS: "BUSINESS";
25008
+ ENTERPRISE: "ENTERPRISE";
25009
+ PREMIUM: "PREMIUM";
25010
+ }>, z.ZodString]>;
25011
+ name: z.ZodString;
25012
+ version: z.ZodNumber;
25013
+ sort: z.ZodNumber;
25014
+ purchasable: z.ZodBoolean;
25015
+ prices: z.ZodObject<{
25016
+ currency: z.ZodLiteral<"KRW">;
25017
+ monthly: z.ZodNullable<z.ZodNumber>;
25018
+ startingAt: z.ZodBoolean;
25019
+ vatIncluded: z.ZodObject<{
25020
+ monthly: z.ZodNullable<z.ZodNumber>;
25021
+ }, z.core.$strip>;
25022
+ }, z.core.$strip>;
25023
+ entitlements: z.ZodObject<{
25024
+ "features.members": z.ZodBoolean;
25025
+ "features.admin_api": z.ZodBoolean;
25026
+ "features.analytics": z.ZodBoolean;
25027
+ "limits.ai_reads_monthly": z.ZodNullable<z.ZodNumber>;
25028
+ "limits.ai_actions_monthly": z.ZodNullable<z.ZodNumber>;
25029
+ "limits.custom_domains": z.ZodNullable<z.ZodNumber>;
25030
+ "limits.webhooks": z.ZodNullable<z.ZodNumber>;
25031
+ "limits.public_apps": z.ZodNullable<z.ZodNumber>;
25032
+ "limits.private_apps": z.ZodNullable<z.ZodNumber>;
25033
+ "limits.ai_credits_monthly": z.ZodNullable<z.ZodNumber>;
25034
+ "limits.storefront_preview_hours_monthly": z.ZodNullable<z.ZodNumber>;
25035
+ "limits.storefront_build_minutes_monthly": z.ZodNullable<z.ZodNumber>;
25036
+ "limits.storefront_requests_monthly": z.ZodNullable<z.ZodNumber>;
25037
+ "limits.admin_api_requests_monthly": z.ZodNullable<z.ZodNumber>;
25038
+ "rate_limit.admin_api": z.ZodNullable<z.ZodNumber>;
25039
+ "storefront.cpu_ms": z.ZodNumber;
25040
+ "storefront.subrequests": z.ZodNumber;
25041
+ "storefront.rate_limit_per_minute": z.ZodNumber;
25042
+ "seats.included": z.ZodNullable<z.ZodNumber>;
25043
+ "retention.analytics_days": z.ZodNumber;
25044
+ "retention.api_logs_days": z.ZodNullable<z.ZodNumber>;
25045
+ "retention.audit_days": z.ZodNullable<z.ZodNumber>;
25046
+ "support.tier": z.ZodUnion<readonly [z.ZodEnum<{
25047
+ EMAIL: "EMAIL";
25048
+ COMMUNITY: "COMMUNITY";
25049
+ EMAIL_PRIORITY: "EMAIL_PRIORITY";
25050
+ DEDICATED: "DEDICATED";
25051
+ SLA: "SLA";
25052
+ }>, z.ZodString]>;
25053
+ }, z.core.$strip>;
25054
+ }, z.core.$strip>>;
25055
+ }, z.core.$strip>;
25056
+ export type PublicPlans = z.infer<typeof publicPlansSchema>;
25057
+ //#endregion
24471
25058
  //#region src/schemas/promotion.d.ts
24472
25059
  /** 쿠폰 종류 */
24473
25060
  export declare const couponKindSchema: z.ZodEnum<{
@@ -25606,6 +26193,9 @@ export declare const subscriptionLimitsSchema: z.ZodObject<{
25606
26193
  storefrontPreviewHoursMonthly: z.ZodNullable<z.ZodNumber>;
25607
26194
  storefrontBuildMinutesMonthly: z.ZodNullable<z.ZodNumber>;
25608
26195
  adminApiRequestsMonthly: z.ZodNullable<z.ZodNumber>;
26196
+ publicApps: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
26197
+ privateApps: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
26198
+ aiCreditsMonthly: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
25609
26199
  }, z.core.$strip>;
25610
26200
  export type SubscriptionLimits = z.infer<typeof subscriptionLimitsSchema>;
25611
26201
  export declare const subscriptionUsageSchema: z.ZodObject<{
@@ -25620,6 +26210,8 @@ export declare const subscriptionUsageSchema: z.ZodObject<{
25620
26210
  seats: z.ZodNumber;
25621
26211
  customDomains: z.ZodNumber;
25622
26212
  webhooks: z.ZodNumber;
26213
+ publicApps: z.ZodOptional<z.ZodNumber>;
26214
+ privateApps: z.ZodOptional<z.ZodNumber>;
25623
26215
  }, z.core.$strip>;
25624
26216
  export type SubscriptionUsage = z.infer<typeof subscriptionUsageSchema>;
25625
26217
  export declare const storeSubscriptionSchema: z.ZodObject<{
@@ -25664,10 +26256,14 @@ export declare const storeSubscriptionSchema: z.ZodObject<{
25664
26256
  storefrontPreviewHoursMonthly: z.ZodNullable<z.ZodNumber>;
25665
26257
  storefrontBuildMinutesMonthly: z.ZodNullable<z.ZodNumber>;
25666
26258
  adminApiRequestsMonthly: z.ZodNullable<z.ZodNumber>;
26259
+ publicApps: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
26260
+ privateApps: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
26261
+ aiCreditsMonthly: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
25667
26262
  }, z.core.$strip>;
25668
26263
  features: z.ZodObject<{
25669
26264
  adminApi: z.ZodBoolean;
25670
26265
  analytics: z.ZodBoolean;
26266
+ members: z.ZodOptional<z.ZodBoolean>;
25671
26267
  storeClone: z.ZodBoolean;
25672
26268
  removeBadge: z.ZodBoolean;
25673
26269
  }, z.core.$strip>;
@@ -25683,6 +26279,8 @@ export declare const storeSubscriptionSchema: z.ZodObject<{
25683
26279
  seats: z.ZodNumber;
25684
26280
  customDomains: z.ZodNumber;
25685
26281
  webhooks: z.ZodNumber;
26282
+ publicApps: z.ZodOptional<z.ZodNumber>;
26283
+ privateApps: z.ZodOptional<z.ZodNumber>;
25686
26284
  }, z.core.$strip>;
25687
26285
  aiActions: z.ZodObject<{
25688
26286
  limit: z.ZodNullable<z.ZodNumber>;
@@ -25694,6 +26292,16 @@ export declare const storeSubscriptionSchema: z.ZodObject<{
25694
26292
  used: z.ZodNumber;
25695
26293
  resetsAt: z.ZodString;
25696
26294
  }, z.core.$strip>;
26295
+ aiCredits: z.ZodOptional<z.ZodObject<{
26296
+ monthly: z.ZodNullable<z.ZodNumber>;
26297
+ granted: z.ZodNumber;
26298
+ used: z.ZodNumber;
26299
+ monthlyUsed: z.ZodOptional<z.ZodNumber>;
26300
+ purchased: z.ZodOptional<z.ZodNumber>;
26301
+ complimentary: z.ZodOptional<z.ZodNumber>;
26302
+ remaining: z.ZodNullable<z.ZodNumber>;
26303
+ resetsAt: z.ZodString;
26304
+ }, z.core.$strip>>;
25697
26305
  salesFeePercent: z.ZodLiteral<0>;
25698
26306
  }, z.core.$strip>;
25699
26307
  export type StoreSubscription = z.infer<typeof storeSubscriptionSchema>;
@@ -25720,145 +26328,6 @@ export declare const planErrorDetailsSchema: z.ZodObject<{
25720
26328
  reason: z.ZodOptional<z.ZodString>;
25721
26329
  }, z.core.$loose>;
25722
26330
  export type PlanErrorDetails = z.infer<typeof planErrorDetailsSchema>;
25723
- /**
25724
- * 요금제 기능 키 값 — 요금제 비교표·상점 플랫폼 요금제 화면이 쓴다. 키는 서버 판정의 기능 키와 같다(추가만 한다). 상위 요금제는 하위 요금제
25725
- * 기능을 모두 포함한다
25726
- */
25727
- export declare const planEntitlementsSchema: z.ZodObject<{
25728
- "features.admin_api": z.ZodBoolean;
25729
- "features.analytics": z.ZodBoolean;
25730
- "limits.ai_reads_monthly": z.ZodNullable<z.ZodNumber>;
25731
- "limits.ai_actions_monthly": z.ZodNullable<z.ZodNumber>;
25732
- "limits.custom_domains": z.ZodNullable<z.ZodNumber>;
25733
- "limits.webhooks": z.ZodNullable<z.ZodNumber>;
25734
- "limits.storefront_preview_hours_monthly": z.ZodNullable<z.ZodNumber>;
25735
- "limits.storefront_build_minutes_monthly": z.ZodNullable<z.ZodNumber>;
25736
- "limits.storefront_requests_monthly": z.ZodNullable<z.ZodNumber>;
25737
- "limits.admin_api_requests_monthly": z.ZodNullable<z.ZodNumber>;
25738
- "rate_limit.admin_api": z.ZodNullable<z.ZodNumber>;
25739
- "storefront.cpu_ms": z.ZodNumber;
25740
- "storefront.subrequests": z.ZodNumber;
25741
- "storefront.rate_limit_per_minute": z.ZodNumber;
25742
- "seats.included": z.ZodNullable<z.ZodNumber>;
25743
- "retention.analytics_days": z.ZodNumber;
25744
- "retention.api_logs_days": z.ZodNullable<z.ZodNumber>;
25745
- "retention.audit_days": z.ZodNullable<z.ZodNumber>;
25746
- "support.tier": z.ZodUnion<readonly [z.ZodEnum<{
25747
- EMAIL: "EMAIL";
25748
- COMMUNITY: "COMMUNITY";
25749
- EMAIL_PRIORITY: "EMAIL_PRIORITY";
25750
- DEDICATED: "DEDICATED";
25751
- SLA: "SLA";
25752
- }>, z.ZodString]>;
25753
- }, z.core.$strip>;
25754
- export type PlanEntitlementValues = z.infer<typeof planEntitlementsSchema>;
25755
- /** 공개 요금제 한 줄 — `GET /v1/public/plans` */
25756
- export declare const publicPlanSchema: z.ZodObject<{
25757
- code: z.ZodUnion<readonly [z.ZodEnum<{
25758
- FREE: "FREE";
25759
- BASIC: "BASIC";
25760
- BETA: "BETA";
25761
- PRO: "PRO";
25762
- BUSINESS: "BUSINESS";
25763
- ENTERPRISE: "ENTERPRISE";
25764
- PREMIUM: "PREMIUM";
25765
- }>, z.ZodString]>;
25766
- name: z.ZodString;
25767
- version: z.ZodNumber;
25768
- sort: z.ZodNumber;
25769
- purchasable: z.ZodBoolean;
25770
- prices: z.ZodObject<{
25771
- currency: z.ZodLiteral<"KRW">;
25772
- monthly: z.ZodNullable<z.ZodNumber>;
25773
- startingAt: z.ZodBoolean;
25774
- vatIncluded: z.ZodObject<{
25775
- monthly: z.ZodNullable<z.ZodNumber>;
25776
- }, z.core.$strip>;
25777
- }, z.core.$strip>;
25778
- entitlements: z.ZodObject<{
25779
- "features.admin_api": z.ZodBoolean;
25780
- "features.analytics": z.ZodBoolean;
25781
- "limits.ai_reads_monthly": z.ZodNullable<z.ZodNumber>;
25782
- "limits.ai_actions_monthly": z.ZodNullable<z.ZodNumber>;
25783
- "limits.custom_domains": z.ZodNullable<z.ZodNumber>;
25784
- "limits.webhooks": z.ZodNullable<z.ZodNumber>;
25785
- "limits.storefront_preview_hours_monthly": z.ZodNullable<z.ZodNumber>;
25786
- "limits.storefront_build_minutes_monthly": z.ZodNullable<z.ZodNumber>;
25787
- "limits.storefront_requests_monthly": z.ZodNullable<z.ZodNumber>;
25788
- "limits.admin_api_requests_monthly": z.ZodNullable<z.ZodNumber>;
25789
- "rate_limit.admin_api": z.ZodNullable<z.ZodNumber>;
25790
- "storefront.cpu_ms": z.ZodNumber;
25791
- "storefront.subrequests": z.ZodNumber;
25792
- "storefront.rate_limit_per_minute": z.ZodNumber;
25793
- "seats.included": z.ZodNullable<z.ZodNumber>;
25794
- "retention.analytics_days": z.ZodNumber;
25795
- "retention.api_logs_days": z.ZodNullable<z.ZodNumber>;
25796
- "retention.audit_days": z.ZodNullable<z.ZodNumber>;
25797
- "support.tier": z.ZodUnion<readonly [z.ZodEnum<{
25798
- EMAIL: "EMAIL";
25799
- COMMUNITY: "COMMUNITY";
25800
- EMAIL_PRIORITY: "EMAIL_PRIORITY";
25801
- DEDICATED: "DEDICATED";
25802
- SLA: "SLA";
25803
- }>, z.ZodString]>;
25804
- }, z.core.$strip>;
25805
- }, z.core.$strip>;
25806
- export type PublicPlan = z.infer<typeof publicPlanSchema>;
25807
- /** 요금제 비교표 — `GET /v1/public/plans`(인증 없음, 캐시 가능). 값은 서버가 관리하고 언제든 바뀔 수 있다 */
25808
- export declare const publicPlansSchema: z.ZodObject<{
25809
- vatPercent: z.ZodNumber;
25810
- plans: z.ZodArray<z.ZodObject<{
25811
- code: z.ZodUnion<readonly [z.ZodEnum<{
25812
- FREE: "FREE";
25813
- BASIC: "BASIC";
25814
- BETA: "BETA";
25815
- PRO: "PRO";
25816
- BUSINESS: "BUSINESS";
25817
- ENTERPRISE: "ENTERPRISE";
25818
- PREMIUM: "PREMIUM";
25819
- }>, z.ZodString]>;
25820
- name: z.ZodString;
25821
- version: z.ZodNumber;
25822
- sort: z.ZodNumber;
25823
- purchasable: z.ZodBoolean;
25824
- prices: z.ZodObject<{
25825
- currency: z.ZodLiteral<"KRW">;
25826
- monthly: z.ZodNullable<z.ZodNumber>;
25827
- startingAt: z.ZodBoolean;
25828
- vatIncluded: z.ZodObject<{
25829
- monthly: z.ZodNullable<z.ZodNumber>;
25830
- }, z.core.$strip>;
25831
- }, z.core.$strip>;
25832
- entitlements: z.ZodObject<{
25833
- "features.admin_api": z.ZodBoolean;
25834
- "features.analytics": z.ZodBoolean;
25835
- "limits.ai_reads_monthly": z.ZodNullable<z.ZodNumber>;
25836
- "limits.ai_actions_monthly": z.ZodNullable<z.ZodNumber>;
25837
- "limits.custom_domains": z.ZodNullable<z.ZodNumber>;
25838
- "limits.webhooks": z.ZodNullable<z.ZodNumber>;
25839
- "limits.storefront_preview_hours_monthly": z.ZodNullable<z.ZodNumber>;
25840
- "limits.storefront_build_minutes_monthly": z.ZodNullable<z.ZodNumber>;
25841
- "limits.storefront_requests_monthly": z.ZodNullable<z.ZodNumber>;
25842
- "limits.admin_api_requests_monthly": z.ZodNullable<z.ZodNumber>;
25843
- "rate_limit.admin_api": z.ZodNullable<z.ZodNumber>;
25844
- "storefront.cpu_ms": z.ZodNumber;
25845
- "storefront.subrequests": z.ZodNumber;
25846
- "storefront.rate_limit_per_minute": z.ZodNumber;
25847
- "seats.included": z.ZodNullable<z.ZodNumber>;
25848
- "retention.analytics_days": z.ZodNumber;
25849
- "retention.api_logs_days": z.ZodNullable<z.ZodNumber>;
25850
- "retention.audit_days": z.ZodNullable<z.ZodNumber>;
25851
- "support.tier": z.ZodUnion<readonly [z.ZodEnum<{
25852
- EMAIL: "EMAIL";
25853
- COMMUNITY: "COMMUNITY";
25854
- EMAIL_PRIORITY: "EMAIL_PRIORITY";
25855
- DEDICATED: "DEDICATED";
25856
- SLA: "SLA";
25857
- }>, z.ZodString]>;
25858
- }, z.core.$strip>;
25859
- }, z.core.$strip>>;
25860
- }, z.core.$strip>;
25861
- export type PublicPlans = z.infer<typeof publicPlansSchema>;
25862
26331
  //#endregion
25863
26332
  //#region src/schemas/telemetry.d.ts
25864
26333
  /**