@sayren/store-sdk 0.21.0 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts 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>;
@@ -6041,6 +6041,16 @@ export type SellerAddressRequest = z.infer<typeof sellerAddressRequestSchema>;
6041
6041
  * - 409 `STOREFRONT_BUILD_IN_PROGRESS` — 이 사이트에 끝나지 않은 빌드가 있다(사이트당 하나)
6042
6042
  * - 404 `STOREFRONT_BUILD_NOT_FOUND`
6043
6043
  * - 502 `STOREFRONT_SANDBOX_UNAVAILABLE` — 편집 Sandbox 호출이 실패했다. 잠시 뒤 다시 한다
6044
+ *
6045
+ * 소스 내려받기·올리기(#60, `/v1/storefront/site/source/**`, `sayren` CLI):
6046
+ * - 409 `SOURCE_CHANGED` — 작업 트리가 내려받은 뒤(`expectedBaseRef`) 바뀌었다(콘솔·AI 편집). `error.details.currentRef`
6047
+ * - 409 `EDIT_SESSION_OPEN` — 편집 환경이 열려 있다. `endEditSession: true`로 끄고 진행할 수 있다
6048
+ * - 409 `SOURCE_BLOBS_MISSING` — 올리지 않은 파일 내용이 있다(`error.details.hashes`). `POST source/blobs`로 올리고 다시 한다
6049
+ * - 409 `DEPENDENCY_REJECTED` — 쓸 수 없는 npm 의존성이다(`error.details.rejected: [{ name, version, reason, detail }]`)
6050
+ * - 413 `SOURCE_TOO_MANY_NEW_FILES` — 한 번에 새 내용이 800개를 넘는다(`error.details.max`). 나눠서 바꾼다
6051
+ * - 400 `DEPENDENCY_FILES_MISMATCH` — `packageJson`·`lockfile` 내용이 목록의 해시와 다르거나 빠졌다
6052
+ * - 400 `INVALID_SOURCE_REF` · `BLOB_HASH_MISMATCH` · `INVALID_FILE_PATH`(`.env*`·작업 트리 밖 경로)
6053
+ * - 404 `STOREFRONT_SOURCE_NOT_FOUND` — 그 스냅샷이 없다
6044
6054
  */
6045
6055
  /**
6046
6056
  * 슬러그 형식 — 스토어 코드와 같은 DNS 라벨 규칙(소문자·숫자·하이픈 3~30자, 하이픈으로 시작·끝 불가)에
@@ -6111,6 +6121,7 @@ export declare const storefrontVersionSchema: z.ZodObject<{
6111
6121
  }>;
6112
6122
  buildId: z.ZodNullable<z.ZodString>;
6113
6123
  createdByType: z.ZodString;
6124
+ createdVia: z.ZodOptional<z.ZodNullable<z.ZodString>>;
6114
6125
  createdAt: z.ZodString;
6115
6126
  }, z.core.$strip>;
6116
6127
  export type StorefrontVersion = z.infer<typeof storefrontVersionSchema>;
@@ -6225,6 +6236,7 @@ export declare const storefrontSiteSchema: z.ZodObject<{
6225
6236
  }>;
6226
6237
  buildId: z.ZodNullable<z.ZodString>;
6227
6238
  createdByType: z.ZodString;
6239
+ createdVia: z.ZodOptional<z.ZodNullable<z.ZodString>>;
6228
6240
  createdAt: z.ZodString;
6229
6241
  }, z.core.$strip>>;
6230
6242
  provisioning: z.ZodObject<{
@@ -6304,6 +6316,7 @@ export declare const storefrontHostingSchema: z.ZodObject<{
6304
6316
  }>;
6305
6317
  buildId: z.ZodNullable<z.ZodString>;
6306
6318
  createdByType: z.ZodString;
6319
+ createdVia: z.ZodOptional<z.ZodNullable<z.ZodString>>;
6307
6320
  createdAt: z.ZodString;
6308
6321
  }, z.core.$strip>>;
6309
6322
  provisioning: z.ZodObject<{
@@ -6401,6 +6414,146 @@ export declare const storefrontPreviewLinkSchema: z.ZodObject<{
6401
6414
  expiresAt: z.ZodString;
6402
6415
  }, z.core.$strip>;
6403
6416
  export type StorefrontPreviewLink = z.infer<typeof storefrontPreviewLinkSchema>;
6417
+ /**
6418
+ * 연결할 수 없는 도메인 — 플랫폼이 쓰는 도메인과 그 하위(기본 주소는 슬러그로 바꾼다). 호스팅 도메인은 서버 설정이라
6419
+ * `storefrontCustomHostnameProblem`의 인자로 따로 받는다.
6420
+ */
6421
+ export declare const STOREFRONT_PLATFORM_DOMAINS: readonly string[];
6422
+ /**
6423
+ * 공용 접미사 — 누구나 그 아래 이름을 받는 도메인이라 접미사 자체는 연결할 수 없다. Public Suffix List 전체가 아니라 자주 틀리는
6424
+ * 것만 둔다(여기 없는 접미사도 TXT 소유 확인을 통과할 수 없어 연결되지 않는다 — 이 목록은 추가 단계에서 빨리 알려 주는 안내다).
6425
+ */
6426
+ export declare const STOREFRONT_PUBLIC_SUFFIXES: readonly string[];
6427
+ /** 스토어당 연결할 수 있는 도메인 수 기본값 — 요금제(#44) 전의 상한이다. 실제 값은 `GET …/domains`의 `limit` */
6428
+ export declare const STOREFRONT_CUSTOM_DOMAIN_LIMIT_DEFAULT = 2;
6429
+ /** DNS를 넣을 때까지 기다리는 기간(일) — 지나면 `FAILED`(`DNS_NOT_CONFIGURED`) */
6430
+ export declare const STOREFRONT_DOMAIN_DNS_WAIT_DAYS = 7;
6431
+ /** 연결된 도메인의 DNS가 이 서비스를 가리키지 않아도 연결을 유지하는 기간(일) — 지나면 서버가 해제한다 */
6432
+ export declare const STOREFRONT_DOMAIN_DNS_GRACE_DAYS = 7;
6433
+ /** 소유 확인 TXT 레코드의 이름 앞부분 — `_sayren-verify.{도메인}` */
6434
+ export declare const STOREFRONT_DOMAIN_TXT_LABEL = "_sayren-verify";
6435
+ /**
6436
+ * 도메인 정규화 — 앞뒤 공백·끝 점을 떼고 소문자로 바꾸며 국제화 도메인은 punycode(`xn--`)로 바꾼다. 스킴·경로·포트가 붙은 입력
6437
+ * (`https://www.a.com/`)은 호스트만 남기지 않고 그대로 두어 형식 검사에서 떨어진다(서버는 사용자가 적은 도메인만 받는다).
6438
+ * 변환할 수 없으면 입력을 소문자로만 바꿔 돌려준다(형식 검사가 거부한다).
6439
+ */
6440
+ export declare function normalizeStorefrontHostname(input: string): string;
6441
+ export type StorefrontHostnameProblem = "FORMAT" | "IP_ADDRESS" | "SINGLE_LABEL" | "NON_PUBLIC_TLD" | "PLATFORM_DOMAIN" | "PUBLIC_SUFFIX" | "WILDCARD";
6442
+ /**
6443
+ * 연결할 수 있는 도메인인가(정규화한 값 기준). 문제가 없으면 null이다. 규칙: 253자 이하, 라벨 2개 이상, 라벨은 소문자·숫자·하이픈
6444
+ * 63자 이하(하이픈으로 시작·끝 불가), 최상위 도메인은 영문자이거나 punycode, IP 주소·와일드카드·공개 인터넷 밖 최상위 도메인·
6445
+ * 플랫폼 도메인과 그 하위·공용 접미사 자체는 안 된다. 제어·디스패치 Worker가 형식 규칙의 복제본을 들고 있다(api
6446
+ * `test/storefront-hosting-parity.spec.ts`가 대조한다).
6447
+ */
6448
+ export declare function storefrontCustomHostnameProblem(hostname: string, hostingDomain?: string): StorefrontHostnameProblem | null;
6449
+ /** 소유 확인 TXT 레코드의 전체 이름 */
6450
+ export declare function storefrontDomainTxtNameOf(hostname: string): string;
6451
+ export declare const storefrontCustomDomainStatusSchema: z.ZodEnum<{
6452
+ ACTIVE: "ACTIVE";
6453
+ FAILED: "FAILED";
6454
+ PENDING_DNS: "PENDING_DNS";
6455
+ PENDING_VALIDATION: "PENDING_VALIDATION";
6456
+ }>;
6457
+ export type StorefrontCustomDomainStatus = z.infer<typeof storefrontCustomDomainStatusSchema>;
6458
+ export declare const storefrontDnsRecordSchema: z.ZodObject<{
6459
+ type: z.ZodEnum<{
6460
+ CNAME: "CNAME";
6461
+ TXT: "TXT";
6462
+ }>;
6463
+ name: z.ZodString;
6464
+ value: z.ZodString;
6465
+ purpose: z.ZodEnum<{
6466
+ ROUTING: "ROUTING";
6467
+ OWNERSHIP: "OWNERSHIP";
6468
+ }>;
6469
+ }, z.core.$strip>;
6470
+ export type StorefrontDnsRecord = z.infer<typeof storefrontDnsRecordSchema>;
6471
+ export declare const storefrontSiteDomainSchema: z.ZodObject<{
6472
+ domainId: z.ZodString;
6473
+ hostname: z.ZodString;
6474
+ kind: z.ZodEnum<{
6475
+ PLATFORM: "PLATFORM";
6476
+ CUSTOM: "CUSTOM";
6477
+ }>;
6478
+ status: z.ZodEnum<{
6479
+ ACTIVE: "ACTIVE";
6480
+ FAILED: "FAILED";
6481
+ PENDING_DNS: "PENDING_DNS";
6482
+ PENDING_VALIDATION: "PENDING_VALIDATION";
6483
+ }>;
6484
+ isPrimary: z.ZodBoolean;
6485
+ dnsRecords: z.ZodArray<z.ZodObject<{
6486
+ type: z.ZodEnum<{
6487
+ CNAME: "CNAME";
6488
+ TXT: "TXT";
6489
+ }>;
6490
+ name: z.ZodString;
6491
+ value: z.ZodString;
6492
+ purpose: z.ZodEnum<{
6493
+ ROUTING: "ROUTING";
6494
+ OWNERSHIP: "OWNERSHIP";
6495
+ }>;
6496
+ }, z.core.$strip>>;
6497
+ certificateStatus: z.ZodNullable<z.ZodEnum<{
6498
+ ACTIVE: "ACTIVE";
6499
+ PENDING: "PENDING";
6500
+ FAILED: "FAILED";
6501
+ }>>;
6502
+ failureCode: z.ZodNullable<z.ZodString>;
6503
+ verifiedAt: z.ZodNullable<z.ZodString>;
6504
+ activatedAt: z.ZodNullable<z.ZodString>;
6505
+ checkedAt: z.ZodNullable<z.ZodString>;
6506
+ createdAt: z.ZodString;
6507
+ }, z.core.$strip>;
6508
+ export type StorefrontSiteDomain = z.infer<typeof storefrontSiteDomainSchema>;
6509
+ /** `GET /v1/storefront/site/domains` — 사이트의 주소 목록(기본 주소 + 내 도메인)과 연결 설정 */
6510
+ export declare const storefrontSiteDomainsSchema: z.ZodObject<{
6511
+ enabled: z.ZodBoolean;
6512
+ limit: z.ZodNumber;
6513
+ target: z.ZodString;
6514
+ domains: z.ZodArray<z.ZodObject<{
6515
+ domainId: z.ZodString;
6516
+ hostname: z.ZodString;
6517
+ kind: z.ZodEnum<{
6518
+ PLATFORM: "PLATFORM";
6519
+ CUSTOM: "CUSTOM";
6520
+ }>;
6521
+ status: z.ZodEnum<{
6522
+ ACTIVE: "ACTIVE";
6523
+ FAILED: "FAILED";
6524
+ PENDING_DNS: "PENDING_DNS";
6525
+ PENDING_VALIDATION: "PENDING_VALIDATION";
6526
+ }>;
6527
+ isPrimary: z.ZodBoolean;
6528
+ dnsRecords: z.ZodArray<z.ZodObject<{
6529
+ type: z.ZodEnum<{
6530
+ CNAME: "CNAME";
6531
+ TXT: "TXT";
6532
+ }>;
6533
+ name: z.ZodString;
6534
+ value: z.ZodString;
6535
+ purpose: z.ZodEnum<{
6536
+ ROUTING: "ROUTING";
6537
+ OWNERSHIP: "OWNERSHIP";
6538
+ }>;
6539
+ }, z.core.$strip>>;
6540
+ certificateStatus: z.ZodNullable<z.ZodEnum<{
6541
+ ACTIVE: "ACTIVE";
6542
+ PENDING: "PENDING";
6543
+ FAILED: "FAILED";
6544
+ }>>;
6545
+ failureCode: z.ZodNullable<z.ZodString>;
6546
+ verifiedAt: z.ZodNullable<z.ZodString>;
6547
+ activatedAt: z.ZodNullable<z.ZodString>;
6548
+ checkedAt: z.ZodNullable<z.ZodString>;
6549
+ createdAt: z.ZodString;
6550
+ }, z.core.$strip>>;
6551
+ }, z.core.$strip>;
6552
+ export type StorefrontSiteDomains = z.infer<typeof storefrontSiteDomainsSchema>;
6553
+ export declare const addStorefrontDomainRequestSchema: z.ZodObject<{
6554
+ hostname: z.ZodString;
6555
+ }, z.core.$strip>;
6556
+ export type AddStorefrontDomainRequest = z.infer<typeof addStorefrontDomainRequestSchema>;
6404
6557
  /** 플랫폼 전체 동시 편집 환경 상한 */
6405
6558
  export declare const STOREFRONT_EDIT_CAPACITY = 20;
6406
6559
  /** 활동이 없으면 편집 환경이 잠드는 시간(분). 작업 트리는 보존된다 */
@@ -6731,9 +6884,58 @@ export type StorefrontBuildStatus = z.infer<typeof storefrontBuildStatusSchema>;
6731
6884
  export declare const STOREFRONT_BUILD_TERMINAL_STATUSES: readonly StorefrontBuildStatus[];
6732
6885
  /**
6733
6886
  * 빌드 단계 — 이 순서로 돈다. 첫 실패에서 멈추지만 규칙 검증(`VERIFY`)은 실패해도 타입 검사까지 이어서 해 한 번에 알려 준다.
6734
- * `UPLOAD`는 사이트 버전 Worker 업로드다(성공하면 발행할 수 있다). 값은 늘어날 수 있다.
6887
+ * `UPLOAD`는 사이트 버전 Worker 업로드다(성공하면 발행할 수 있다). `DEPENDENCIES`는 빌드 시작 전 의존성 검사(거절 목록·보안 권고)다.
6888
+ * 값은 늘어날 수 있다.
6735
6889
  */
6736
- export declare const STOREFRONT_BUILD_STAGES: readonly ["VERIFY", "RESTORE", "INSTALL", "TYPECHECK", "BUILD", "BUNDLE", "PACK", "UPLOAD"];
6890
+ export declare const STOREFRONT_BUILD_STAGES: readonly ["DEPENDENCIES", "VERIFY", "RESTORE", "INSTALL", "TYPECHECK", "BUILD", "BUNDLE", "PACK", "UPLOAD"];
6891
+ /**
6892
+ * 의존성 검사 결과 한 줄(#61) — 거절(`DEPENDENCY_REJECTED`의 `details.rejected`)·경고(빌드 `dependencies`, 소스 교체 `dependencyWarnings`)가
6893
+ * 같은 모양이다. 대상 패키지와 사유. 셀러가 고칠 수 있게 버전·권고 id·거절 사유를 싣는다.
6894
+ * `reason`: `DENYLISTED`(거절 목록) · `ADVISORY`(보안 권고) · `MALWARE`(악성 코드 권고, 패키지 전체) · `INSTALL_SCRIPT`(루트
6895
+ * package.json의 설치 훅은 거절, 의존성의 설치 스크립트는 경고) · `UNSUPPORTED_SOURCE`(레지스트리 밖 설치 경로) · `BUNDLED_DEPENDENCIES`(묶여
6896
+ * 오는 의존성, 경고) · `INVALID_MANIFEST`(package.json·잠금 파일 형식), 늘어날 수 있다.
6897
+ */
6898
+ export declare const storefrontDependencyFindingSchema: z.ZodObject<{
6899
+ name: z.ZodString;
6900
+ version: z.ZodNullable<z.ZodString>;
6901
+ reason: z.ZodString;
6902
+ detail: z.ZodString;
6903
+ advisory: z.ZodOptional<z.ZodNullable<z.ZodObject<{
6904
+ id: z.ZodString;
6905
+ url: z.ZodNullable<z.ZodString>;
6906
+ severity: z.ZodString;
6907
+ title: z.ZodString;
6908
+ }, z.core.$strip>>>;
6909
+ }, z.core.$strip>;
6910
+ export type StorefrontDependencyFinding = z.infer<typeof storefrontDependencyFindingSchema>;
6911
+ export declare const storefrontBuildDependenciesSchema: z.ZodObject<{
6912
+ checkedPackages: z.ZodNumber;
6913
+ rejected: z.ZodArray<z.ZodObject<{
6914
+ name: z.ZodString;
6915
+ version: z.ZodNullable<z.ZodString>;
6916
+ reason: z.ZodString;
6917
+ detail: z.ZodString;
6918
+ advisory: z.ZodOptional<z.ZodNullable<z.ZodObject<{
6919
+ id: z.ZodString;
6920
+ url: z.ZodNullable<z.ZodString>;
6921
+ severity: z.ZodString;
6922
+ title: z.ZodString;
6923
+ }, z.core.$strip>>>;
6924
+ }, z.core.$strip>>;
6925
+ warnings: z.ZodArray<z.ZodObject<{
6926
+ name: z.ZodString;
6927
+ version: z.ZodNullable<z.ZodString>;
6928
+ reason: z.ZodString;
6929
+ detail: z.ZodString;
6930
+ advisory: z.ZodOptional<z.ZodNullable<z.ZodObject<{
6931
+ id: z.ZodString;
6932
+ url: z.ZodNullable<z.ZodString>;
6933
+ severity: z.ZodString;
6934
+ title: z.ZodString;
6935
+ }, z.core.$strip>>>;
6936
+ }, z.core.$strip>>;
6937
+ }, z.core.$strip>;
6938
+ export type StorefrontBuildDependencies = z.infer<typeof storefrontBuildDependenciesSchema>;
6737
6939
  export declare const storefrontBuildSchema: z.ZodObject<{
6738
6940
  buildId: z.ZodString;
6739
6941
  versionId: z.ZodString;
@@ -6794,6 +6996,33 @@ export declare const storefrontBuildSchema: z.ZodObject<{
6794
6996
  message: z.ZodString;
6795
6997
  nextSteps: z.ZodArray<z.ZodString>;
6796
6998
  }, z.core.$strip>>;
6999
+ dependencies: z.ZodOptional<z.ZodNullable<z.ZodObject<{
7000
+ checkedPackages: z.ZodNumber;
7001
+ rejected: z.ZodArray<z.ZodObject<{
7002
+ name: z.ZodString;
7003
+ version: z.ZodNullable<z.ZodString>;
7004
+ reason: z.ZodString;
7005
+ detail: z.ZodString;
7006
+ advisory: z.ZodOptional<z.ZodNullable<z.ZodObject<{
7007
+ id: z.ZodString;
7008
+ url: z.ZodNullable<z.ZodString>;
7009
+ severity: z.ZodString;
7010
+ title: z.ZodString;
7011
+ }, z.core.$strip>>>;
7012
+ }, z.core.$strip>>;
7013
+ warnings: z.ZodArray<z.ZodObject<{
7014
+ name: z.ZodString;
7015
+ version: z.ZodNullable<z.ZodString>;
7016
+ reason: z.ZodString;
7017
+ detail: z.ZodString;
7018
+ advisory: z.ZodOptional<z.ZodNullable<z.ZodObject<{
7019
+ id: z.ZodString;
7020
+ url: z.ZodNullable<z.ZodString>;
7021
+ severity: z.ZodString;
7022
+ title: z.ZodString;
7023
+ }, z.core.$strip>>>;
7024
+ }, z.core.$strip>>;
7025
+ }, z.core.$strip>>>;
6797
7026
  queuedAt: z.ZodString;
6798
7027
  startedAt: z.ZodNullable<z.ZodString>;
6799
7028
  finishedAt: z.ZodNullable<z.ZodString>;
@@ -6809,6 +7038,7 @@ export declare const storefrontBuildListQuerySchema: z.ZodObject<{
6809
7038
  */
6810
7039
  export declare const createStorefrontVersionRequestSchema: z.ZodObject<{
6811
7040
  message: z.ZodOptional<z.ZodString>;
7041
+ expectedSourceRef: z.ZodOptional<z.ZodString>;
6812
7042
  }, z.core.$strip>;
6813
7043
  export type CreateStorefrontVersionRequest = z.infer<typeof createStorefrontVersionRequestSchema>;
6814
7044
  /** 버전 만들기 응답 (201) — 버전은 `BUILDING`, 빌드는 `QUEUED`로 시작한다. 결과는 `GET builds/{buildId}`로 본다 */
@@ -6832,6 +7062,7 @@ export declare const storefrontVersionCreatedSchema: z.ZodObject<{
6832
7062
  }>;
6833
7063
  buildId: z.ZodNullable<z.ZodString>;
6834
7064
  createdByType: z.ZodString;
7065
+ createdVia: z.ZodOptional<z.ZodNullable<z.ZodString>>;
6835
7066
  createdAt: z.ZodString;
6836
7067
  }, z.core.$strip>;
6837
7068
  build: z.ZodObject<{
@@ -6894,6 +7125,33 @@ export declare const storefrontVersionCreatedSchema: z.ZodObject<{
6894
7125
  message: z.ZodString;
6895
7126
  nextSteps: z.ZodArray<z.ZodString>;
6896
7127
  }, z.core.$strip>>;
7128
+ dependencies: z.ZodOptional<z.ZodNullable<z.ZodObject<{
7129
+ checkedPackages: z.ZodNumber;
7130
+ rejected: z.ZodArray<z.ZodObject<{
7131
+ name: z.ZodString;
7132
+ version: z.ZodNullable<z.ZodString>;
7133
+ reason: z.ZodString;
7134
+ detail: z.ZodString;
7135
+ advisory: z.ZodOptional<z.ZodNullable<z.ZodObject<{
7136
+ id: z.ZodString;
7137
+ url: z.ZodNullable<z.ZodString>;
7138
+ severity: z.ZodString;
7139
+ title: z.ZodString;
7140
+ }, z.core.$strip>>>;
7141
+ }, z.core.$strip>>;
7142
+ warnings: z.ZodArray<z.ZodObject<{
7143
+ name: z.ZodString;
7144
+ version: z.ZodNullable<z.ZodString>;
7145
+ reason: z.ZodString;
7146
+ detail: z.ZodString;
7147
+ advisory: z.ZodOptional<z.ZodNullable<z.ZodObject<{
7148
+ id: z.ZodString;
7149
+ url: z.ZodNullable<z.ZodString>;
7150
+ severity: z.ZodString;
7151
+ title: z.ZodString;
7152
+ }, z.core.$strip>>>;
7153
+ }, z.core.$strip>>;
7154
+ }, z.core.$strip>>>;
6897
7155
  queuedAt: z.ZodString;
6898
7156
  startedAt: z.ZodNullable<z.ZodString>;
6899
7157
  finishedAt: z.ZodNullable<z.ZodString>;
@@ -6910,6 +7168,99 @@ export declare const createStorefrontEditPreviewLinkRequestSchema: z.ZodObject<{
6910
7168
  path: z.ZodOptional<z.ZodString>;
6911
7169
  }, z.core.$strip>;
6912
7170
  export type CreateStorefrontEditPreviewLinkRequest = CreateStorefrontPreviewLinkRequest;
7171
+ /** 압축 파일 조각 하나의 최대 크기(바이트) */
7172
+ export declare const STOREFRONT_SOURCE_PART_BYTES: number;
7173
+ /** 내용 올리기 한 번의 최대 파일 수 */
7174
+ export declare const STOREFRONT_SOURCE_BLOB_BATCH_MAX = 200;
7175
+ /** 작업 트리 파일 수 상한 */
7176
+ export declare const STOREFRONT_WORKSPACE_MAX_FILES = 2000;
7177
+ /** 작업 트리 스냅샷 키 — `sources/{siteId}/{sha256}.tgz` */
7178
+ export declare const storefrontSourceRefSchema: z.ZodString;
7179
+ /** `GET /v1/storefront/site/source` — 지금 작업 트리(편집 환경이 떠 있으면 지금 내용을 고정한다) */
7180
+ export declare const storefrontSourceSchema: z.ZodObject<{
7181
+ siteId: z.ZodString;
7182
+ storeId: z.ZodString;
7183
+ storeCode: z.ZodString;
7184
+ sourceRef: z.ZodString;
7185
+ treeSha256: z.ZodString;
7186
+ files: z.ZodNumber;
7187
+ bytes: z.ZodNumber;
7188
+ archive: z.ZodObject<{
7189
+ format: z.ZodLiteral<"tar+gzip">;
7190
+ bytes: z.ZodNumber;
7191
+ sha256: z.ZodString;
7192
+ parts: z.ZodNumber;
7193
+ partBytes: z.ZodNumber;
7194
+ }, z.core.$strip>;
7195
+ editSessionOpen: z.ZodBoolean;
7196
+ }, z.core.$strip>;
7197
+ export type StorefrontSource = z.infer<typeof storefrontSourceSchema>;
7198
+ export declare const storefrontSourceArchiveQuerySchema: z.ZodObject<{
7199
+ sourceRef: z.ZodString;
7200
+ part: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
7201
+ }, z.core.$strip>;
7202
+ /** `GET /v1/storefront/site/source/archive` — 압축 파일 조각 */
7203
+ export declare const storefrontSourceArchivePartSchema: z.ZodObject<{
7204
+ sourceRef: z.ZodString;
7205
+ part: z.ZodNumber;
7206
+ parts: z.ZodNumber;
7207
+ offset: z.ZodNumber;
7208
+ bytes: z.ZodNumber;
7209
+ totalBytes: z.ZodNumber;
7210
+ content: z.ZodString;
7211
+ }, z.core.$strip>;
7212
+ export type StorefrontSourceArchivePart = z.infer<typeof storefrontSourceArchivePartSchema>;
7213
+ /** `POST /v1/storefront/site/source/blobs` — 파일 내용 올리기(해시 키, 다시 올려도 안전하다). 작업 트리는 바뀌지 않는다 */
7214
+ export declare const uploadStorefrontSourceBlobsRequestSchema: z.ZodObject<{
7215
+ blobs: z.ZodArray<z.ZodObject<{
7216
+ hash: z.ZodString;
7217
+ content: z.ZodString;
7218
+ }, z.core.$strip>>;
7219
+ }, z.core.$strip>;
7220
+ export type UploadStorefrontSourceBlobsRequest = z.infer<typeof uploadStorefrontSourceBlobsRequestSchema>;
7221
+ export declare const storefrontSourceBlobsResultSchema: z.ZodObject<{
7222
+ stored: z.ZodNumber;
7223
+ existing: z.ZodNumber;
7224
+ }, z.core.$strip>;
7225
+ export type StorefrontSourceBlobsResult = z.infer<typeof storefrontSourceBlobsResultSchema>;
7226
+ /**
7227
+ * `PUT /v1/storefront/site/source` — 작업 트리 전체를 이 목록으로 바꾼다(없는 경로는 지운다). 전부 아니면 전무다.
7228
+ * `package.json`·`pnpm-lock.yaml`도 바꿀 수 있고 의존성은 허용 목록 안이어야 한다. `.env*`·작업 트리 밖 경로는 받지 않는다.
7229
+ */
7230
+ export declare const replaceStorefrontSourceRequestSchema: z.ZodObject<{
7231
+ expectedBaseRef: z.ZodOptional<z.ZodString>;
7232
+ files: z.ZodArray<z.ZodObject<{
7233
+ path: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
7234
+ hash: z.ZodString;
7235
+ size: z.ZodNumber;
7236
+ }, z.core.$strip>>;
7237
+ endEditSession: z.ZodOptional<z.ZodBoolean>;
7238
+ packageJson: z.ZodOptional<z.ZodString>;
7239
+ lockfile: z.ZodOptional<z.ZodString>;
7240
+ }, z.core.$strip>;
7241
+ export type ReplaceStorefrontSourceRequest = z.infer<typeof replaceStorefrontSourceRequestSchema>;
7242
+ export declare const storefrontSourceReplacedSchema: z.ZodObject<{
7243
+ sourceRef: z.ZodString;
7244
+ previousRef: z.ZodString;
7245
+ treeSha256: z.ZodString;
7246
+ files: z.ZodNumber;
7247
+ bytes: z.ZodNumber;
7248
+ changed: z.ZodBoolean;
7249
+ endedEditSession: z.ZodBoolean;
7250
+ dependencyWarnings: z.ZodArray<z.ZodObject<{
7251
+ name: z.ZodString;
7252
+ version: z.ZodNullable<z.ZodString>;
7253
+ reason: z.ZodString;
7254
+ detail: z.ZodString;
7255
+ advisory: z.ZodOptional<z.ZodNullable<z.ZodObject<{
7256
+ id: z.ZodString;
7257
+ url: z.ZodNullable<z.ZodString>;
7258
+ severity: z.ZodString;
7259
+ title: z.ZodString;
7260
+ }, z.core.$strip>>>;
7261
+ }, z.core.$strip>>;
7262
+ }, z.core.$strip>;
7263
+ export type StorefrontSourceReplaced = z.infer<typeof storefrontSourceReplacedSchema>;
6913
7264
  //#endregion
6914
7265
  //#region src/schemas/upload.d.ts
6915
7266
  /**
@@ -10948,6 +11299,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
10948
11299
  buildId: string | null;
10949
11300
  createdByType: string;
10950
11301
  createdAt: string;
11302
+ createdVia?: string | null | undefined;
10951
11303
  } | null;
10952
11304
  provisioning: {
10953
11305
  status: "PENDING" | "FAILED" | "SYNCED";
@@ -11002,6 +11354,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
11002
11354
  buildId: string | null;
11003
11355
  createdByType: string;
11004
11356
  createdAt: string;
11357
+ createdVia?: string | null | undefined;
11005
11358
  } | null;
11006
11359
  provisioning: {
11007
11360
  status: "PENDING" | "FAILED" | "SYNCED";
@@ -11049,6 +11402,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
11049
11402
  buildId: string | null;
11050
11403
  createdByType: string;
11051
11404
  createdAt: string;
11405
+ createdVia?: string | null | undefined;
11052
11406
  } | null;
11053
11407
  provisioning: {
11054
11408
  status: "PENDING" | "FAILED" | "SYNCED";
@@ -11080,6 +11434,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
11080
11434
  buildId: string | null;
11081
11435
  createdByType: string;
11082
11436
  createdAt: string;
11437
+ createdVia?: string | null | undefined;
11083
11438
  }[]>;
11084
11439
  /** `POST /v1/storefront/site/versions/{versionId}/publish` — 그 버전을 발행한다(이미 발행돼 있으면 그대로 200) */
11085
11440
  publish: (versionId: string, body?: PublishStorefrontVersionRequest) => Promise<{
@@ -11111,6 +11466,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
11111
11466
  buildId: string | null;
11112
11467
  createdByType: string;
11113
11468
  createdAt: string;
11469
+ createdVia?: string | null | undefined;
11114
11470
  } | null;
11115
11471
  provisioning: {
11116
11472
  status: "PENDING" | "FAILED" | "SYNCED";
@@ -11158,6 +11514,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
11158
11514
  buildId: string | null;
11159
11515
  createdByType: string;
11160
11516
  createdAt: string;
11517
+ createdVia?: string | null | undefined;
11161
11518
  } | null;
11162
11519
  provisioning: {
11163
11520
  status: "PENDING" | "FAILED" | "SYNCED";
@@ -11205,6 +11562,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
11205
11562
  buildId: string | null;
11206
11563
  createdByType: string;
11207
11564
  createdAt: string;
11565
+ createdVia?: string | null | undefined;
11208
11566
  } | null;
11209
11567
  provisioning: {
11210
11568
  status: "PENDING" | "FAILED" | "SYNCED";
@@ -11252,6 +11610,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
11252
11610
  buildId: string | null;
11253
11611
  createdByType: string;
11254
11612
  createdAt: string;
11613
+ createdVia?: string | null | undefined;
11255
11614
  } | null;
11256
11615
  provisioning: {
11257
11616
  status: "PENDING" | "FAILED" | "SYNCED";
@@ -11277,6 +11636,101 @@ export declare function createStoreClient(options: StoreClientOptions): {
11277
11636
  url: string;
11278
11637
  expiresAt: string;
11279
11638
  }>;
11639
+ /** `GET /v1/storefront/site/domains` — 주소 목록(기본 주소 + 내 도메인)과 DNS 안내 */
11640
+ listDomains: () => Promise<{
11641
+ enabled: boolean;
11642
+ limit: number;
11643
+ target: string;
11644
+ domains: {
11645
+ domainId: string;
11646
+ hostname: string;
11647
+ kind: "PLATFORM" | "CUSTOM";
11648
+ status: "ACTIVE" | "FAILED" | "PENDING_DNS" | "PENDING_VALIDATION";
11649
+ isPrimary: boolean;
11650
+ dnsRecords: {
11651
+ type: "CNAME" | "TXT";
11652
+ name: string;
11653
+ value: string;
11654
+ purpose: "ROUTING" | "OWNERSHIP";
11655
+ }[];
11656
+ certificateStatus: "ACTIVE" | "PENDING" | "FAILED" | null;
11657
+ failureCode: string | null;
11658
+ verifiedAt: string | null;
11659
+ activatedAt: string | null;
11660
+ checkedAt: string | null;
11661
+ createdAt: string;
11662
+ }[];
11663
+ }>;
11664
+ /**
11665
+ * `POST /v1/storefront/site/domains` (201) — 내 도메인을 추가한다. 응답의 `dnsRecords`를 DNS에 넣으면 서버가 소유를 확인하고
11666
+ * 인증서를 발급한다
11667
+ */
11668
+ addDomain: (body: AddStorefrontDomainRequest) => Promise<{
11669
+ domainId: string;
11670
+ hostname: string;
11671
+ kind: "PLATFORM" | "CUSTOM";
11672
+ status: "ACTIVE" | "FAILED" | "PENDING_DNS" | "PENDING_VALIDATION";
11673
+ isPrimary: boolean;
11674
+ dnsRecords: {
11675
+ type: "CNAME" | "TXT";
11676
+ name: string;
11677
+ value: string;
11678
+ purpose: "ROUTING" | "OWNERSHIP";
11679
+ }[];
11680
+ certificateStatus: "ACTIVE" | "PENDING" | "FAILED" | null;
11681
+ failureCode: string | null;
11682
+ verifiedAt: string | null;
11683
+ activatedAt: string | null;
11684
+ checkedAt: string | null;
11685
+ createdAt: string;
11686
+ }>;
11687
+ /** `POST /v1/storefront/site/domains/{domainId}/verify` — DNS를 곧바로 다시 확인한다(실패한 도메인은 처음부터 다시) */
11688
+ verifyDomain: (domainId: string) => Promise<{
11689
+ domainId: string;
11690
+ hostname: string;
11691
+ kind: "PLATFORM" | "CUSTOM";
11692
+ status: "ACTIVE" | "FAILED" | "PENDING_DNS" | "PENDING_VALIDATION";
11693
+ isPrimary: boolean;
11694
+ dnsRecords: {
11695
+ type: "CNAME" | "TXT";
11696
+ name: string;
11697
+ value: string;
11698
+ purpose: "ROUTING" | "OWNERSHIP";
11699
+ }[];
11700
+ certificateStatus: "ACTIVE" | "PENDING" | "FAILED" | null;
11701
+ failureCode: string | null;
11702
+ verifiedAt: string | null;
11703
+ activatedAt: string | null;
11704
+ checkedAt: string | null;
11705
+ createdAt: string;
11706
+ }>;
11707
+ /** `POST /v1/storefront/site/domains/{domainId}/primary` — 대표 주소로 지정한다. 다른 주소는 대표 주소로 301한다 */
11708
+ setPrimaryDomain: (domainId: string) => Promise<{
11709
+ enabled: boolean;
11710
+ limit: number;
11711
+ target: string;
11712
+ domains: {
11713
+ domainId: string;
11714
+ hostname: string;
11715
+ kind: "PLATFORM" | "CUSTOM";
11716
+ status: "ACTIVE" | "FAILED" | "PENDING_DNS" | "PENDING_VALIDATION";
11717
+ isPrimary: boolean;
11718
+ dnsRecords: {
11719
+ type: "CNAME" | "TXT";
11720
+ name: string;
11721
+ value: string;
11722
+ purpose: "ROUTING" | "OWNERSHIP";
11723
+ }[];
11724
+ certificateStatus: "ACTIVE" | "PENDING" | "FAILED" | null;
11725
+ failureCode: string | null;
11726
+ verifiedAt: string | null;
11727
+ activatedAt: string | null;
11728
+ checkedAt: string | null;
11729
+ createdAt: string;
11730
+ }[];
11731
+ }>;
11732
+ /** `DELETE /v1/storefront/site/domains/{domainId}` — 내 도메인 연결을 해제한다(곧바로 끊긴다) */
11733
+ removeDomain: (domainId: string) => Promise<void>;
11280
11734
  /** `POST /v1/storefront/site/disable` — 호스팅을 끈다(사이트 `CLOSED`, 슬러그 90일 보류). 다시 만들 수 있다 */
11281
11735
  disable: (body: DisableStorefrontHostingRequest) => Promise<{
11282
11736
  siteId: string;
@@ -11307,6 +11761,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
11307
11761
  buildId: string | null;
11308
11762
  createdByType: string;
11309
11763
  createdAt: string;
11764
+ createdVia?: string | null | undefined;
11310
11765
  } | null;
11311
11766
  provisioning: {
11312
11767
  status: "PENDING" | "FAILED" | "SYNCED";
@@ -11544,6 +11999,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
11544
11999
  buildId: string | null;
11545
12000
  createdByType: string;
11546
12001
  createdAt: string;
12002
+ createdVia?: string | null | undefined;
11547
12003
  };
11548
12004
  build: {
11549
12005
  buildId: string;
@@ -11594,6 +12050,33 @@ export declare function createStoreClient(options: StoreClientOptions): {
11594
12050
  startedAt: string | null;
11595
12051
  finishedAt: string | null;
11596
12052
  durationMs: number | null;
12053
+ dependencies?: {
12054
+ checkedPackages: number;
12055
+ rejected: {
12056
+ name: string;
12057
+ version: string | null;
12058
+ reason: string;
12059
+ detail: string;
12060
+ advisory?: {
12061
+ id: string;
12062
+ url: string | null;
12063
+ severity: string;
12064
+ title: string;
12065
+ } | null | undefined;
12066
+ }[];
12067
+ warnings: {
12068
+ name: string;
12069
+ version: string | null;
12070
+ reason: string;
12071
+ detail: string;
12072
+ advisory?: {
12073
+ id: string;
12074
+ url: string | null;
12075
+ severity: string;
12076
+ title: string;
12077
+ } | null | undefined;
12078
+ }[];
12079
+ } | null | undefined;
11597
12080
  };
11598
12081
  }>;
11599
12082
  /** `GET /v1/storefront/site/builds?limit=` — 빌드 목록(최신 먼저) */
@@ -11648,6 +12131,33 @@ export declare function createStoreClient(options: StoreClientOptions): {
11648
12131
  startedAt: string | null;
11649
12132
  finishedAt: string | null;
11650
12133
  durationMs: number | null;
12134
+ dependencies?: {
12135
+ checkedPackages: number;
12136
+ rejected: {
12137
+ name: string;
12138
+ version: string | null;
12139
+ reason: string;
12140
+ detail: string;
12141
+ advisory?: {
12142
+ id: string;
12143
+ url: string | null;
12144
+ severity: string;
12145
+ title: string;
12146
+ } | null | undefined;
12147
+ }[];
12148
+ warnings: {
12149
+ name: string;
12150
+ version: string | null;
12151
+ reason: string;
12152
+ detail: string;
12153
+ advisory?: {
12154
+ id: string;
12155
+ url: string | null;
12156
+ severity: string;
12157
+ title: string;
12158
+ } | null | undefined;
12159
+ }[];
12160
+ } | null | undefined;
11651
12161
  }[]>;
11652
12162
  /** `GET /v1/storefront/site/builds/{buildId}` — 빌드 상태·실패 단계·로그 꼬리·규칙 결과 */
11653
12163
  getBuild: (buildId: string) => Promise<{
@@ -11699,6 +12209,94 @@ export declare function createStoreClient(options: StoreClientOptions): {
11699
12209
  startedAt: string | null;
11700
12210
  finishedAt: string | null;
11701
12211
  durationMs: number | null;
12212
+ dependencies?: {
12213
+ checkedPackages: number;
12214
+ rejected: {
12215
+ name: string;
12216
+ version: string | null;
12217
+ reason: string;
12218
+ detail: string;
12219
+ advisory?: {
12220
+ id: string;
12221
+ url: string | null;
12222
+ severity: string;
12223
+ title: string;
12224
+ } | null | undefined;
12225
+ }[];
12226
+ warnings: {
12227
+ name: string;
12228
+ version: string | null;
12229
+ reason: string;
12230
+ detail: string;
12231
+ advisory?: {
12232
+ id: string;
12233
+ url: string | null;
12234
+ severity: string;
12235
+ title: string;
12236
+ } | null | undefined;
12237
+ }[];
12238
+ } | null | undefined;
12239
+ }>;
12240
+ /** `GET /v1/storefront/site/source` — 지금 작업 트리를 고정하고 압축 파일(tar.gz) 크기·조각 수를 알린다 */
12241
+ getSource: () => Promise<{
12242
+ siteId: string;
12243
+ storeId: string;
12244
+ storeCode: string;
12245
+ sourceRef: string;
12246
+ treeSha256: string;
12247
+ files: number;
12248
+ bytes: number;
12249
+ archive: {
12250
+ format: "tar+gzip";
12251
+ bytes: number;
12252
+ sha256: string;
12253
+ parts: number;
12254
+ partBytes: number;
12255
+ };
12256
+ editSessionOpen: boolean;
12257
+ }>;
12258
+ /** `GET /v1/storefront/site/source/archive?sourceRef=&part=` — 압축 파일 조각(base64, 4MiB까지) */
12259
+ getSourceArchive: (params: {
12260
+ sourceRef: string;
12261
+ part?: number;
12262
+ }) => Promise<{
12263
+ sourceRef: string;
12264
+ part: number;
12265
+ parts: number;
12266
+ offset: number;
12267
+ bytes: number;
12268
+ totalBytes: number;
12269
+ content: string;
12270
+ }>;
12271
+ /** `POST /v1/storefront/site/source/blobs` — 파일 내용 올리기(해시 키). 작업 트리는 바뀌지 않는다 */
12272
+ uploadSourceBlobs: (body: UploadStorefrontSourceBlobsRequest) => Promise<{
12273
+ stored: number;
12274
+ existing: number;
12275
+ }>;
12276
+ /**
12277
+ * `PUT /v1/storefront/site/source` — 작업 트리 전체를 바꾼다. 409 `SOURCE_CHANGED`(내려받은 뒤 바뀜)·`EDIT_SESSION_OPEN`·
12278
+ * `SOURCE_BLOBS_MISSING`(`details.hashes`를 올리고 다시)
12279
+ */
12280
+ replaceSource: (body: ReplaceStorefrontSourceRequest) => Promise<{
12281
+ sourceRef: string;
12282
+ previousRef: string;
12283
+ treeSha256: string;
12284
+ files: number;
12285
+ bytes: number;
12286
+ changed: boolean;
12287
+ endedEditSession: boolean;
12288
+ dependencyWarnings: {
12289
+ name: string;
12290
+ version: string | null;
12291
+ reason: string;
12292
+ detail: string;
12293
+ advisory?: {
12294
+ id: string;
12295
+ url: string | null;
12296
+ severity: string;
12297
+ title: string;
12298
+ } | null | undefined;
12299
+ }[];
11702
12300
  }>;
11703
12301
  };
11704
12302
  store: {