@sayren/store-sdk 0.1.0 → 0.2.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.mjs CHANGED
@@ -146,6 +146,136 @@ function createHttp(options) {
146
146
  };
147
147
  }
148
148
  //#endregion
149
+ //#region src/schemas/analytics.ts
150
+ /**
151
+ * 방문 분석 조회 (관리 API `/v1/analytics/*`, 스코프 `analytics:r`).
152
+ *
153
+ * 스토어프런트가 `@sayren/storefront-sdk`로 수집한 이벤트를 서버가 날짜(Asia/Seoul)별로 집계한 값이다. 집계는 주기적으로
154
+ * 갱신되므로 오늘 값은 `lastComputedAt` 시점까지 반영돼 있다. 봇·자동화 브라우저의 세션은 모든 집계에서 빠진다.
155
+ */
156
+ const reportDate$1 = z.string().regex(/^\d{4}-\d{2}-\d{2}$/, "날짜 형식은 YYYY-MM-DD 입니다");
157
+ const includeTest = z.enum(["true", "false"]).optional().describe("테스트 결제(샌드박스 결제)로 만든 구매 포함 여부. 기본 `false`");
158
+ const analyticsRangeQuerySchema = z.object({
159
+ from: reportDate$1.describe("시작일 (YYYY-MM-DD, Asia/Seoul 기준, 포함)"),
160
+ to: reportDate$1.describe("종료일 (YYYY-MM-DD, 포함). from부터 최대 92일"),
161
+ includeTest
162
+ });
163
+ const rangeMeta = {
164
+ from: z.string(),
165
+ to: z.string(),
166
+ timezone: z.literal("Asia/Seoul"),
167
+ currency: z.literal("KRW"),
168
+ includeTest: z.boolean().describe("테스트 결제 구매를 포함했는가"),
169
+ lastComputedAt: z.string().nullable().describe("기간 안에서 가장 최근에 집계한 시각(ISO 8601). 집계된 날이 없으면 null")
170
+ };
171
+ /**
172
+ * 비율(0 이상). 단계가 세션 안에서 꼭 이어지지는 않아 1을 넘을 수 있다 — 예: 조회 없이 장바구니에서 바로 산 구매,
173
+ * 자정을 넘겨 다음 날 확정된 구매.
174
+ */
175
+ const rate = (description) => z.number().min(0).nullable().describe(description);
176
+ const analyticsTotalsSchema = z.object({
177
+ visitors: z.number().int().describe("방문자 수 — 날짜별 순방문자의 합. 여러 날 방문한 사람은 날마다 센다"),
178
+ sessions: z.number().int().describe("세션 수. 30분 동안 활동이 없거나 다른 캠페인으로 들어오면 새 세션"),
179
+ engagedSessions: z.number().int().describe("참여 세션 수 — 페이지뷰 2개 이상, 체류 10초 이상, 장바구니 담기·결제 시작·구매 중 하나"),
180
+ pageViews: z.number().int(),
181
+ engagementSeconds: z.number().int().describe("페이지가 화면에 보인 시간의 합(초). 페이지뷰 하나는 최대 30분, 세션은 세션 길이 + 30분까지 센다"),
182
+ productViews: z.number().int().describe("상품 조회 수"),
183
+ productViewSessions: z.number().int().describe("상품을 조회한 세션 수"),
184
+ addToCartSessions: z.number().int().describe("장바구니에 담은 세션 수"),
185
+ beginCheckoutSessions: z.number().int().describe("주문서를 연 세션 수"),
186
+ purchaseSessions: z.number().int().describe("구매한 세션 수"),
187
+ purchases: z.number().int().describe("구매(주문) 수"),
188
+ revenue: z.number().int().describe("구매 금액 합계 — 주문 결제 금액(배송비 포함). 이후 취소·환불은 빼지 않으므로 매출 리포트의 순매출과 다르다"),
189
+ engagementRate: rate("참여율 = 참여 세션 / 세션. 세션이 없으면 null"),
190
+ conversionRate: rate("전환율 = 구매 세션 / 세션. 세션이 없으면 null")
191
+ });
192
+ const analyticsFunnelStepSchema = z.object({
193
+ step: z.enum([
194
+ "SESSION",
195
+ "PRODUCT_VIEW",
196
+ "ADD_TO_CART",
197
+ "BEGIN_CHECKOUT",
198
+ "PURCHASE"
199
+ ]),
200
+ sessions: z.number().int(),
201
+ rateFromPrevious: rate("직전 단계 대비 비율. 첫 단계이거나 직전 단계가 0이면 null")
202
+ });
203
+ const analyticsOverviewSchema = z.object({
204
+ ...rangeMeta,
205
+ summary: analyticsTotalsSchema.describe("기간 합계"),
206
+ funnel: z.array(analyticsFunnelStepSchema).describe("세션 기준 구매 퍼널. 각 단계는 그 행동을 한 세션 수이고, 앞 단계를 거쳤는지는 따지지 않는다"),
207
+ rows: z.array(analyticsTotalsSchema.extend({ date: z.string().describe("일자 (YYYY-MM-DD)") })).describe("날짜별 값. 세션이 없는 날은 생략된다")
208
+ });
209
+ const analyticsProductSortSchema = z.enum([
210
+ "VIEWS",
211
+ "ADD_TO_CARTS",
212
+ "PURCHASES",
213
+ "REVENUE",
214
+ "IMPRESSIONS"
215
+ ]).describe("정렬 기준(내림차순). 기본 `VIEWS`");
216
+ const analyticsProductsQuerySchema = analyticsRangeQuerySchema.extend({
217
+ sort: analyticsProductSortSchema.optional(),
218
+ limit: z.coerce.number().int().min(1).max(100).optional().describe("최대 행 수. 기본 20, 최대 100")
219
+ });
220
+ const analyticsProductRowSchema = z.object({
221
+ productId: z.string(),
222
+ productName: z.string().nullable().describe("현재 상품명. 삭제된 상품이면 null"),
223
+ impressions: z.number().int().describe("목록 노출 수"),
224
+ views: z.number().int().describe("상세 조회 수"),
225
+ viewSessions: z.number().int().describe("상세를 조회한 세션 수"),
226
+ addToCarts: z.number().int().describe("장바구니 담기 수"),
227
+ purchases: z.number().int().describe("이 상품이 포함된 구매(주문) 수"),
228
+ quantity: z.number().int().describe("구매 수량"),
229
+ revenue: z.number().int().describe("이 상품의 구매 금액 — 주문 상품 금액(할인 반영, 배송비 제외) 합계. 이후 취소·환불은 빼지 않는다"),
230
+ purchaseRate: rate("구매율 = 구매 / 조회 세션. 조회 세션이 없으면 null")
231
+ });
232
+ const analyticsProductsSchema = z.object({
233
+ ...rangeMeta,
234
+ sort: analyticsProductSortSchema,
235
+ rows: z.array(analyticsProductRowSchema)
236
+ });
237
+ const analyticsChannelSchema = z.enum([
238
+ "DIRECT",
239
+ "ORGANIC_SEARCH",
240
+ "SOCIAL",
241
+ "PAID",
242
+ "EMAIL",
243
+ "CAMPAIGN",
244
+ "REFERRAL",
245
+ "UNKNOWN"
246
+ ]).describe("유입 채널 — 세션 첫 페이지뷰의 utm·리퍼러로 정한다. `PAID`(utm_medium이 cpc·ppc·paid·display 등), `EMAIL`(utm_medium email), `SOCIAL`(SNS 리퍼러·utm_source), `ORGANIC_SEARCH`(검색 엔진 리퍼러), `CAMPAIGN`(그 밖의 utm), `REFERRAL`(그 밖의 리퍼러), `DIRECT`(없음), `UNKNOWN`(페이지뷰 없이 서버 이벤트만 있는 세션)");
247
+ const analyticsSourceGroupBySchema = z.enum([
248
+ "CHANNEL",
249
+ "SOURCE",
250
+ "CAMPAIGN",
251
+ "DEVICE"
252
+ ]).describe("행 집계 기준. 기본 `CHANNEL`");
253
+ const analyticsSourcesQuerySchema = analyticsRangeQuerySchema.extend({ groupBy: analyticsSourceGroupBySchema.optional() });
254
+ const analyticsSourceRowSchema = z.object({
255
+ channel: analyticsChannelSchema.nullable().describe("groupBy=CHANNEL일 때만 값"),
256
+ source: z.string().nullable().describe("groupBy=SOURCE·CAMPAIGN일 때 값. utm_source, 없으면 리퍼러 호스트, 둘 다 없으면 `(direct)`"),
257
+ medium: z.string().nullable().describe("groupBy=SOURCE·CAMPAIGN일 때 값. utm_medium, 없으면 `referral`·`(none)`"),
258
+ campaign: z.string().nullable().describe("groupBy=CAMPAIGN일 때 값. utm_campaign, 없으면 `(not set)`"),
259
+ device: z.enum([
260
+ "desktop",
261
+ "mobile",
262
+ "tablet",
263
+ "unknown"
264
+ ]).nullable().describe("groupBy=DEVICE일 때만 값"),
265
+ sessions: z.number().int(),
266
+ visitors: z.number().int().describe("날짜별 순방문자의 합"),
267
+ engagedSessions: z.number().int(),
268
+ purchaseSessions: z.number().int(),
269
+ purchases: z.number().int(),
270
+ revenue: z.number().int(),
271
+ conversionRate: rate("전환율 = 구매 세션 / 세션")
272
+ });
273
+ const analyticsSourcesSchema = z.object({
274
+ ...rangeMeta,
275
+ groupBy: analyticsSourceGroupBySchema,
276
+ rows: z.array(analyticsSourceRowSchema).describe("세션 수 내림차순")
277
+ });
278
+ //#endregion
149
279
  //#region src/schemas/api-client.ts
150
280
  /**
151
281
  * 앱(OAuth 클라이언트) 관리 — `/v1/store/api-clients` (auth-spec 부록 B-13).
@@ -409,6 +539,72 @@ const categoryPatchRequestSchema = z.object({
409
539
  metaKeywords: z.string().max(200).nullable().optional()
410
540
  });
411
541
  const categoryDeleteStrategySchema = z.enum(["reparent", "cascade"]);
542
+ /**
543
+ * `GET /v1/categories` 쿼리 — OpenAPI 문서용 형태(값은 쿼리 문자열). 응답 형태가 쿼리로 갈린다:
544
+ * `q`가 있으면 검색 결과(`CategorySearchResult[]`), 아니면 `tree=true`일 때 트리(`CategoryTreeNode[]`),
545
+ * 둘 다 아니면 목록(`Category[]`)이다.
546
+ */
547
+ const categoryListQuerySchema = z.object({
548
+ parentId: z.string().optional().describe("이 카테고리의 직계 자식만. 생략하면 최상위 카테고리. `flat=true`면 무시"),
549
+ flat: z.enum(["true", "false"]).optional().describe("`true`면 전체 카테고리를 깊이·순서대로 평탄화"),
550
+ tree: z.enum(["true", "false"]).optional().describe("`true`면 최상위부터 `children`을 채운 트리(`CategoryTreeNode[]`)를 돌려준다"),
551
+ q: z.string().optional().describe("이름 검색(포함, 대소문자 무시). 주면 `fullPath`·`ancestors`가 붙은 검색 결과를 돌려준다")
552
+ });
553
+ /** `DELETE /v1/categories/{categoryId}` 쿼리 — OpenAPI 문서용 형태 */
554
+ const categoryDeleteQuerySchema = z.object({ strategy: categoryDeleteStrategySchema.optional().describe("하위 카테고리·연결 상품 처리 방식. 생략하면 둘 중 하나라도 있을 때 409 `CATEGORY_NOT_EMPTY`다. `reparent`는 직계 자식을 삭제할 카테고리의 부모로 옮기고, `cascade`는 서브트리를 삭제하고 연결 상품을 미분류로 둔다") });
555
+ //#endregion
556
+ //#region src/schemas/common.ts
557
+ const pageInfoSchema = z.object({
558
+ page: z.number().int(),
559
+ size: z.number().int(),
560
+ totalElements: z.number().int(),
561
+ totalPages: z.number().int()
562
+ });
563
+ function pageSchema(item) {
564
+ return pageInfoSchema.extend({ contents: z.array(item) });
565
+ }
566
+ /**
567
+ * 목록 쿼리의 `page`·`size` — OpenAPI 문서용 형태(값은 쿼리 문자열). 서버는 숫자가 아니거나 범위를 벗어난
568
+ * 값을 기본값·상한으로 보정한다.
569
+ */
570
+ function pageQueryShape(options = {}) {
571
+ const { defaultSize = 20, maxSize = 100 } = options;
572
+ return {
573
+ page: z.string().optional().describe("페이지 번호 (1부터, 기본 1)"),
574
+ size: z.string().optional().describe(`페이지 크기 (기본 ${defaultSize}, 최대 ${maxSize})`)
575
+ };
576
+ }
577
+ const bulkResultSchema = z.object({
578
+ succeeded: z.array(z.string()),
579
+ failed: z.array(z.object({
580
+ id: z.string().optional(),
581
+ productId: z.string().optional(),
582
+ orderItemId: z.string().optional(),
583
+ code: z.string(),
584
+ message: z.string()
585
+ }))
586
+ });
587
+ const orderItemStatusSchema = z.enum([
588
+ "PAYMENT_WAITING",
589
+ "PAID",
590
+ "CONFIRMED",
591
+ "DISPATCHED",
592
+ "DELIVERING",
593
+ "DELIVERED",
594
+ "PURCHASE_DECIDED",
595
+ "CANCELED"
596
+ ]);
597
+ const changeTypeSchema = z.enum([
598
+ "ORDER.PAID",
599
+ "ORDER.CONFIRMED",
600
+ "ORDER.DISPATCHED",
601
+ "ORDER.DELIVERED",
602
+ "ORDER.PURCHASE_DECIDED",
603
+ "CLAIM.CANCEL_REQUESTED",
604
+ "CLAIM.RETURN_REQUESTED",
605
+ "CLAIM.EXCHANGE_REQUESTED",
606
+ "ORDER.ADDRESS_CHANGE_REQUESTED"
607
+ ]);
412
608
  //#endregion
413
609
  //#region src/schemas/claim.ts
414
610
  const claimTypeSchema = z.enum([
@@ -460,6 +656,30 @@ const claimSchema = z.object({
460
656
  requestedAt: z.string(),
461
657
  completedAt: z.string().nullable()
462
658
  });
659
+ /** `GET /v1/claims` 쿼리 — OpenAPI 문서용 형태(값은 쿼리 문자열) */
660
+ const claimListQuerySchema = z.object({
661
+ type: claimTypeSchema.optional().describe("클레임 유형 필터"),
662
+ status: claimStatusSchema.optional().describe("클레임 상태 필터"),
663
+ orderItemId: z.string().optional().describe("주문상품 id 필터"),
664
+ requestedFrom: z.string().optional().describe("요청 시각 조회 시작 (ISO 8601, 포함)"),
665
+ requestedTo: z.string().optional().describe("요청 시각 조회 끝 (ISO 8601, 포함)"),
666
+ ...pageQueryShape()
667
+ });
668
+ /** `GET /v1/claims/{claimId}` 응답 — 클레임 + 상태 이력 */
669
+ const claimDetailSchema = claimSchema.extend({ histories: z.array(z.object({
670
+ status: claimStatusSchema,
671
+ actor: z.enum([
672
+ "BUYER",
673
+ "SELLER",
674
+ "SYSTEM"
675
+ ]),
676
+ occurredAt: z.string()
677
+ })).optional() });
678
+ /** `POST /v1/claims/{claimId}/hold` 응답 */
679
+ const claimHoldResultSchema = z.object({
680
+ claimId: z.string(),
681
+ holdExpiresAt: z.string()
682
+ });
463
683
  const rejectClaimRequestSchema = z.object({
464
684
  reason: z.enum([
465
685
  "USED_PRODUCT",
@@ -478,48 +698,6 @@ const approveClaimResultSchema = z.object({
478
698
  refundedAt: z.string()
479
699
  });
480
700
  //#endregion
481
- //#region src/schemas/common.ts
482
- const pageInfoSchema = z.object({
483
- page: z.number().int(),
484
- size: z.number().int(),
485
- totalElements: z.number().int(),
486
- totalPages: z.number().int()
487
- });
488
- function pageSchema(item) {
489
- return pageInfoSchema.extend({ contents: z.array(item) });
490
- }
491
- const bulkResultSchema = z.object({
492
- succeeded: z.array(z.string()),
493
- failed: z.array(z.object({
494
- id: z.string().optional(),
495
- productId: z.string().optional(),
496
- orderItemId: z.string().optional(),
497
- code: z.string(),
498
- message: z.string()
499
- }))
500
- });
501
- const orderItemStatusSchema = z.enum([
502
- "PAYMENT_WAITING",
503
- "PAID",
504
- "CONFIRMED",
505
- "DISPATCHED",
506
- "DELIVERING",
507
- "DELIVERED",
508
- "PURCHASE_DECIDED",
509
- "CANCELED"
510
- ]);
511
- const changeTypeSchema = z.enum([
512
- "ORDER.PAID",
513
- "ORDER.CONFIRMED",
514
- "ORDER.DISPATCHED",
515
- "ORDER.DELIVERED",
516
- "ORDER.PURCHASE_DECIDED",
517
- "CLAIM.CANCEL_REQUESTED",
518
- "CLAIM.RETURN_REQUESTED",
519
- "CLAIM.EXCHANGE_REQUESTED",
520
- "ORDER.ADDRESS_CHANGE_REQUESTED"
521
- ]);
522
- //#endregion
523
701
  //#region src/schemas/misc.ts
524
702
  const inquirySchema = z.object({
525
703
  inquiryId: z.string(),
@@ -567,6 +745,21 @@ const sellerCustomerInquirySchema = z.object({
567
745
  }).nullable(),
568
746
  createdAt: z.string()
569
747
  });
748
+ const answeredQuery = z.enum(["true", "false"]).optional().describe("답변 여부 필터. `true`면 답변된 문의만, `false`면 미답변만, 생략하면 전부");
749
+ /** `GET /v1/inquiries` 쿼리(상품 문의) — OpenAPI 문서용 형태(값은 쿼리 문자열). 최신순이다 */
750
+ const inquiryListQuerySchema = z.object({
751
+ answered: answeredQuery,
752
+ productId: z.string().optional().describe("상품 id 필터"),
753
+ from: z.string().optional().describe("작성 시각 조회 시작 (ISO 8601, 포함)"),
754
+ ...pageQueryShape()
755
+ });
756
+ /** `GET /v1/customer-inquiries` 쿼리(1:1 문의) — OpenAPI 문서용 형태(값은 쿼리 문자열). 최신순이다 */
757
+ const customerInquiryListQuerySchema = z.object({
758
+ answered: answeredQuery,
759
+ category: customerInquiryCategorySchema.optional().describe("문의 유형 필터"),
760
+ from: z.string().optional().describe("작성 시각 조회 시작 (ISO 8601, 포함)"),
761
+ ...pageQueryShape()
762
+ });
570
763
  const settlementStatusSchema = z.enum([
571
764
  "SCHEDULED",
572
765
  "PAID",
@@ -600,6 +793,20 @@ const settlementDetailSchema = z.object({
600
793
  settlementAmount: z.number().int(),
601
794
  purchaseDecidedAt: z.string().nullable()
602
795
  });
796
+ /** `GET /v1/settlements/{settlementId}` 응답 — 정산 요약 + 상세 내역(`size`건까지) */
797
+ const settlementWithDetailsSchema = settlementSummarySchema.extend({ details: z.array(settlementDetailSchema).optional() });
798
+ /** `GET /v1/settlements` 쿼리 — OpenAPI 문서용 형태(값은 쿼리 문자열). 정산일 최신순이다 */
799
+ const settlementListQuerySchema = z.object({
800
+ from: z.string().describe("정산일 조회 시작 (ISO 8601, 포함). 필수"),
801
+ to: z.string().optional().describe("정산일 조회 끝 (ISO 8601, 포함). 생략하면 from부터 31일. 기간은 최대 31일"),
802
+ status: settlementStatusSchema.optional().describe("정산 상태 필터"),
803
+ ...pageQueryShape()
804
+ });
805
+ /** `GET /v1/settlements/{settlementId}` 쿼리 — `size`는 돌려줄 상세 내역 건수다(`page`는 무시) */
806
+ const settlementDetailQuerySchema = z.object(pageQueryShape({
807
+ defaultSize: 100,
808
+ maxSize: 300
809
+ }));
603
810
  const eventTypeSchema = z.enum([
604
811
  "ORDER.PAID",
605
812
  "ORDER.CONFIRMED",
@@ -699,6 +906,33 @@ const reviewSchema = z.object({
699
906
  }).nullable(),
700
907
  createdAt: z.string()
701
908
  });
909
+ const reviewSortSchema = z.enum([
910
+ "createdAt.desc",
911
+ "createdAt.asc",
912
+ "rating.asc",
913
+ "rating.desc"
914
+ ]);
915
+ /** `GET /v1/reviews` 쿼리 — OpenAPI 문서용 형태(값은 쿼리 문자열) */
916
+ const reviewListQuerySchema = z.object({
917
+ productId: z.string().optional().describe("상품 id 필터"),
918
+ rating: z.enum([
919
+ "1",
920
+ "2",
921
+ "3",
922
+ "4",
923
+ "5"
924
+ ]).optional().describe("별점 필터 (일치)"),
925
+ replied: z.enum(["true", "false"]).optional().describe("답글 여부 필터. `true`면 답글 단 리뷰만, `false`면 답글 없는 리뷰만"),
926
+ hasImage: z.enum(["true", "false"]).optional().describe("`true`면 이미지가 있는 리뷰만"),
927
+ from: z.string().optional().describe("작성 시각 조회 시작 (ISO 8601, 포함)"),
928
+ sort: reviewSortSchema.optional().describe("정렬 (기본 createdAt.desc)"),
929
+ ...pageQueryShape()
930
+ });
931
+ /** `POST /v1/reviews/{reviewId}/report` 응답(202) — 신고 접수 */
932
+ const reviewReportResultSchema = z.object({
933
+ reviewId: z.string(),
934
+ status: z.literal("PENDING_REVIEW")
935
+ });
702
936
  //#endregion
703
937
  //#region src/schemas/order.ts
704
938
  const orderSummarySchema = z.object({
@@ -835,6 +1069,18 @@ const deliveryInfoSchema = z.object({
835
1069
  dispatchedAt: z.string(),
836
1070
  deliveredAt: z.string().nullable()
837
1071
  });
1072
+ /** `GET /v1/order-items/{orderItemId}/delivery` 응답 — 배송 정보 + 배송 추적 이벤트 */
1073
+ const deliveryStatusSchema = deliveryInfoSchema.extend({ trackingEvents: z.array(z.object({
1074
+ status: z.string(),
1075
+ location: z.string(),
1076
+ occurredAt: z.string()
1077
+ })).optional() });
1078
+ /** `PUT /v1/order-items/{orderItemId}/dispatch/tracking` 응답 — 바뀐 송장 */
1079
+ const trackingUpdateResultSchema = z.object({
1080
+ orderItemId: z.string(),
1081
+ carrierCode: z.string(),
1082
+ trackingNumber: z.string()
1083
+ });
838
1084
  const carrierSchema = z.object({
839
1085
  carrierCode: z.string(),
840
1086
  name: z.string(),
@@ -859,6 +1105,33 @@ const cancelBySellerRequestSchema = z.object({
859
1105
  ]),
860
1106
  detail: z.string().max(500).optional()
861
1107
  });
1108
+ /** `POST /v1/order-items/{orderItemId}/cancel` 응답 — 셀러 직권취소 환불 결과 */
1109
+ const cancelBySellerResultSchema = z.object({
1110
+ orderItemId: z.string(),
1111
+ refundAmount: z.number().int(),
1112
+ refundedAt: z.string()
1113
+ });
1114
+ /** `PUT /v1/order-items/{orderItemId}/memo` 응답 — 빈 문자열로 저장하면 메모가 지워져 `null`이다 */
1115
+ const orderItemMemoResultSchema = z.object({
1116
+ orderItemId: z.string(),
1117
+ sellerMemo: z.string().nullable()
1118
+ });
1119
+ /** `POST /v1/order-items/{orderItemId}/purchase-decision/request` 응답 */
1120
+ const purchaseDecisionRequestResultSchema = z.object({
1121
+ orderItemId: z.string(),
1122
+ requestedAt: z.string()
1123
+ });
1124
+ /** `POST /v1/order-items/{orderItemId}/purchase-decision/extend` 응답 — 연장은 최대 2회 */
1125
+ const purchaseDecisionExtendResultSchema = z.object({
1126
+ orderItemId: z.string(),
1127
+ autoDecisionDate: z.string(),
1128
+ extendCount: z.number().int().max(2)
1129
+ });
1130
+ /**
1131
+ * `GET /v1/orders/{orderId}/address-change-requests` 응답 — 배송지 변경 요청 플로우는 아직 제공하지 않아
1132
+ * 현재는 항상 빈 배열이다
1133
+ */
1134
+ const addressChangeRequestListSchema = z.array(z.record(z.string(), z.unknown())).describe("배송지 변경 요청 목록 (현재 항상 빈 배열)");
862
1135
  //#endregion
863
1136
  //#region src/schemas/payment.ts
864
1137
  /**
@@ -1340,6 +1613,28 @@ const productPatchRequestSchema = z.object({
1340
1613
  status: productStatusSchema.optional(),
1341
1614
  deliveryFee: z.number().int().optional()
1342
1615
  }).refine((value) => Object.values(value).some((v) => v !== void 0), { message: "최소 1개 필드가 필요합니다" });
1616
+ const productSortSchema = z.enum([
1617
+ "createdAt.desc",
1618
+ "createdAt.asc",
1619
+ "salePrice.asc",
1620
+ "salePrice.desc",
1621
+ "updatedAt.desc"
1622
+ ]);
1623
+ /** `GET /v1/products` 쿼리 — OpenAPI 문서용 형태(값은 쿼리 문자열) */
1624
+ const productListQuerySchema = z.object({
1625
+ status: productStatusSchema.optional().describe("판매 상태 필터"),
1626
+ categoryId: z.string().optional().describe("카테고리 필터 — 하위 카테고리의 상품도 포함"),
1627
+ keyword: z.string().optional().describe("상품명 검색 (포함)"),
1628
+ sellerCode: z.string().optional().describe("판매자 상품코드 — 이 코드가 붙은 variant를 가진 상품"),
1629
+ sort: productSortSchema.optional().describe("정렬 (기본 createdAt.desc)"),
1630
+ ...pageQueryShape()
1631
+ });
1632
+ /** `POST /v1/product-images` 응답 — 업로드된 이미지의 CDN 주소 */
1633
+ const productImageUploadResultSchema = z.object({ images: z.array(z.object({
1634
+ url: z.url(),
1635
+ width: z.number().int(),
1636
+ height: z.number().int()
1637
+ })) });
1343
1638
  const discountSchema = z.object({
1344
1639
  productId: z.string(),
1345
1640
  discountType: z.enum(["RATE", "AMOUNT"]),
@@ -1453,7 +1748,16 @@ const invitationSchema = z.object({
1453
1748
  expiresAt: z.string(),
1454
1749
  createdAt: z.string()
1455
1750
  });
1751
+ /** `GET /v1/store/invitations` 쿼리 — OpenAPI 문서용 형태 */
1752
+ const invitationListQuerySchema = z.object({ status: invitationSchema.shape.status.optional().describe("초대 상태 필터") });
1753
+ /** `PATCH /v1/store/members/{userId}` 응답 — 바뀐 역할 */
1754
+ const storeMemberRoleUpdatedSchema = z.object({
1755
+ userId: z.string(),
1756
+ role: z.enum(["ADMIN", "STAFF"])
1757
+ });
1456
1758
  const addressTypeSchema = z.enum(["SHIPPING", "RETURN"]);
1759
+ /** `GET /v1/seller-addresses` 쿼리 — OpenAPI 문서용 형태. 기본 주소 우선, 그다음 등록순이다 */
1760
+ const sellerAddressListQuerySchema = z.object({ type: addressTypeSchema.optional().describe("주소 유형 필터") });
1457
1761
  const sellerAddressSchema = z.object({
1458
1762
  addressId: z.string(),
1459
1763
  type: addressTypeSchema,
@@ -1681,21 +1985,13 @@ function createStoreClient(options) {
1681
1985
  }),
1682
1986
  hold: (orderItemId, body) => storeHttp.requestVoid("POST", path`/order-items/${orderItemId}/hold`, { body: holdOrderItemRequestSchema.parse(body) }),
1683
1987
  releaseHold: (orderItemId) => storeHttp.requestVoid("DELETE", path`/order-items/${orderItemId}/hold`),
1684
- cancelBySeller: (orderItemId, body, idempotencyKey) => storeHttp.request("POST", path`/order-items/${orderItemId}/cancel`, z.object({
1685
- orderItemId: z.string(),
1686
- refundAmount: z.number().int(),
1687
- refundedAt: z.string()
1688
- }), {
1988
+ cancelBySeller: (orderItemId, body, idempotencyKey) => storeHttp.request("POST", path`/order-items/${orderItemId}/cancel`, cancelBySellerResultSchema, {
1689
1989
  body: cancelBySellerRequestSchema.parse(body),
1690
1990
  headers: idempotency(idempotencyKey)
1691
1991
  }),
1692
1992
  updateMemo: (orderItemId, memo) => storeHttp.requestVoid("PUT", path`/order-items/${orderItemId}/memo`, { body: { memo } }),
1693
1993
  requestPurchaseDecision: (orderItemId) => storeHttp.requestVoid("POST", path`/order-items/${orderItemId}/purchase-decision/request`),
1694
- extendPurchaseDecision: (orderItemId) => storeHttp.request("POST", path`/order-items/${orderItemId}/purchase-decision/extend`, z.object({
1695
- orderItemId: z.string(),
1696
- autoDecisionDate: z.string(),
1697
- extendCount: z.number().int().max(2)
1698
- })),
1994
+ extendPurchaseDecision: (orderItemId) => storeHttp.request("POST", path`/order-items/${orderItemId}/purchase-decision/extend`, purchaseDecisionExtendResultSchema),
1699
1995
  dispatch: (orderItemId, body, idempotencyKey) => storeHttp.request("POST", path`/order-items/${orderItemId}/dispatch`, deliveryInfoSchema, {
1700
1996
  body: dispatchRequestSchema.parse(body),
1701
1997
  headers: idempotency(idempotencyKey)
@@ -1708,24 +2004,12 @@ function createStoreClient(options) {
1708
2004
  carrierCode,
1709
2005
  trackingNumber
1710
2006
  } }),
1711
- getDelivery: (orderItemId) => storeHttp.request("GET", path`/order-items/${orderItemId}/delivery`, deliveryInfoSchema.extend({ trackingEvents: z.array(z.object({
1712
- status: z.string(),
1713
- location: z.string(),
1714
- occurredAt: z.string()
1715
- })).optional() }))
2007
+ getDelivery: (orderItemId) => storeHttp.request("GET", path`/order-items/${orderItemId}/delivery`, deliveryStatusSchema)
1716
2008
  },
1717
2009
  carriers: { list: () => storeHttp.request("GET", "/carriers", z.array(carrierSchema)) },
1718
2010
  claims: {
1719
2011
  list: (params) => storeHttp.request("GET", "/claims", pageSchema(claimSchema), { query: params }),
1720
- get: (claimId) => storeHttp.request("GET", path`/claims/${claimId}`, claimSchema.extend({ histories: z.array(z.object({
1721
- status: claimStatusSchema,
1722
- actor: z.enum([
1723
- "BUYER",
1724
- "SELLER",
1725
- "SYSTEM"
1726
- ]),
1727
- occurredAt: z.string()
1728
- })).optional() })),
2012
+ get: (claimId) => storeHttp.request("GET", path`/claims/${claimId}`, claimDetailSchema),
1729
2013
  approve: (claimId, deductAmount, idempotencyKey) => storeHttp.request("POST", path`/claims/${claimId}/approve`, approveClaimResultSchema, {
1730
2014
  body: deductAmount !== void 0 ? { deductAmount } : {},
1731
2015
  headers: idempotency(idempotencyKey)
@@ -1737,10 +2021,7 @@ function createStoreClient(options) {
1737
2021
  carrierCode,
1738
2022
  trackingNumber
1739
2023
  } }),
1740
- hold: (claimId, reason) => storeHttp.request("POST", path`/claims/${claimId}/hold`, z.object({
1741
- claimId: z.string(),
1742
- holdExpiresAt: z.string()
1743
- }), { body: { reason } }),
2024
+ hold: (claimId, reason) => storeHttp.request("POST", path`/claims/${claimId}/hold`, claimHoldResultSchema, { body: { reason } }),
1744
2025
  releaseHold: (claimId) => storeHttp.requestVoid("DELETE", path`/claims/${claimId}/hold`)
1745
2026
  },
1746
2027
  inquiries: {
@@ -1763,7 +2044,7 @@ function createStoreClient(options) {
1763
2044
  /** @deprecated `salesReport.get`을 쓴다. 기존 정산 레코드 조회만 유지된다 */
1764
2045
  list: (params) => storeHttp.request("GET", "/settlements", pageSchema(settlementSummarySchema), { query: params }),
1765
2046
  /** @deprecated `salesReport.get`을 쓴다. 기존 정산 레코드 조회만 유지된다 */
1766
- get: (settlementId, params) => storeHttp.request("GET", path`/settlements/${settlementId}`, settlementSummarySchema.extend({ details: z.array(settlementDetailSchema).optional() }), { query: params })
2047
+ get: (settlementId, params) => storeHttp.request("GET", path`/settlements/${settlementId}`, settlementWithDetailsSchema, { query: params })
1767
2048
  },
1768
2049
  /**
1769
2050
  * 매출 리포트 (정산 API 대체) — 스코프 `settlement:r`. PG 승인 시각 기준 결제, PG 취소 완료 시각 기준
@@ -1776,6 +2057,19 @@ function createStoreClient(options) {
1776
2057
  * 400 `INVALID_PARAMETER`(없는 날짜·to<from), 400 `RANGE_TOO_WIDE`(기간 초과)
1777
2058
  */
1778
2059
  get: (params) => storeHttp.request("GET", "/sales-report", salesReportSchema, { query: salesReportQuerySchema.parse(params) }) },
2060
+ /**
2061
+ * 방문 분석 — 스코프 `analytics:r`. 스토어프런트가 `@sayren/storefront-sdk`로 수집한 이벤트를 Asia/Seoul 날짜별로
2062
+ * 집계한 값이다. 집계는 주기적으로 갱신되고 응답 `lastComputedAt`이 마지막 집계 시각이다. 봇 세션은 빠진다.
2063
+ * 기간은 양끝 포함 최대 92일이고, 테스트 결제 구매는 `includeTest: "true"`일 때만 포함한다.
2064
+ */
2065
+ analytics: {
2066
+ /** `GET /v1/analytics/overview` — 합계·세션 퍼널·날짜별 값 */
2067
+ overview: (params) => storeHttp.request("GET", "/analytics/overview", analyticsOverviewSchema, { query: analyticsRangeQuerySchema.parse(params) }),
2068
+ /** `GET /v1/analytics/products` — 상품별 노출·조회·장바구니·구매 */
2069
+ products: (params) => storeHttp.request("GET", "/analytics/products", analyticsProductsSchema, { query: analyticsProductsQuerySchema.parse(params) }),
2070
+ /** `GET /v1/analytics/sources` — 채널·소스·캠페인·기기별 세션과 구매 */
2071
+ sources: (params) => storeHttp.request("GET", "/analytics/sources", analyticsSourcesSchema, { query: analyticsSourcesQuerySchema.parse(params) })
2072
+ },
1779
2073
  /**
1780
2074
  * 결제 내역 — 스코프 `settlement:r`. 결제 건(세션) 단위이고 주문 목록과 다르다. 주문이 만들어지지 않은
1781
2075
  * 결제(카드 거절·결제창 이탈·승인 결과 확인 중)도 그대로 나온다.
@@ -2011,7 +2305,7 @@ async function exchangeStoreTokenViaOAuth(options) {
2011
2305
  * 서버 인가가 갈라지지 않는다.
2012
2306
  */
2013
2307
  const scopeAccessSchema = z.enum(["r", "rw"]).describe("접근 수준. `r`=읽기, `rw`=읽기+쓰기(r을 함의)");
2014
- /** 리소스별로 부여 가능한 접근 수준. settlement는 쓰기 API가 없어 `r`만 존재한다 */
2308
+ /** 리소스별로 부여 가능한 접근 수준. settlement·analytics는 쓰기 API가 없어 `r`만 존재한다 */
2015
2309
  const STORE_SCOPE_RESOURCES = {
2016
2310
  product: ["r", "rw"],
2017
2311
  category: ["r", "rw"],
@@ -2020,6 +2314,7 @@ const STORE_SCOPE_RESOURCES = {
2020
2314
  inquiry: ["r", "rw"],
2021
2315
  review: ["r", "rw"],
2022
2316
  settlement: ["r"],
2317
+ analytics: ["r"],
2023
2318
  webhook: ["r", "rw"],
2024
2319
  store: ["r", "rw"],
2025
2320
  member: ["r", "rw"]
@@ -2045,6 +2340,7 @@ const STORE_ROLE_SCOPES = {
2045
2340
  "inquiry:rw",
2046
2341
  "review:rw",
2047
2342
  "settlement:r",
2343
+ "analytics:r",
2048
2344
  "webhook:rw",
2049
2345
  "store:rw",
2050
2346
  "member:rw"
@@ -2056,6 +2352,7 @@ const STORE_ROLE_SCOPES = {
2056
2352
  "claim:rw",
2057
2353
  "inquiry:rw",
2058
2354
  "review:rw",
2355
+ "analytics:r",
2059
2356
  "webhook:rw",
2060
2357
  "store:rw",
2061
2358
  "member:rw"
@@ -2297,4 +2594,4 @@ function createStoreSession(options) {
2297
2594
  };
2298
2595
  }
2299
2596
  //#endregion
2300
- export { ApiError, MAX_OPTION_GROUPS, MAX_VALUES_PER_GROUP, MAX_VARIANTS, PAYMENT_ROUTING_EXCLUSION_CODES, PORTONE_CHANNEL_NAME_MAX_LENGTH, PORTONE_MAX_CHANNELS, PORTONE_MIN_CHANNELS, RESERVED_STORE_CODES, STORE_CODE_PATTERN, STORE_ROLE_SCOPES, STORE_SCOPE_RESOURCES, STORE_SESSION_KEYS, TOSS_WIDGET_CLIENT_KEY_PATTERN, TOSS_WIDGET_KEY_MESSAGE, TOSS_WIDGET_SECRET_KEY_PATTERN, VARIANT_STOCK_EXCLUSIVE_MESSAGE, WEBHOOK_DEFAULT_TOLERANCE_SEC, WEBHOOK_DELIVERY_ID_HEADER, WEBHOOK_EVENT_ID_HEADER, WEBHOOK_EVENT_TYPE_HEADER, WEBHOOK_HEADERS, WEBHOOK_SIGNATURE_HEADER, WEBHOOK_USER_AGENT, addressTypeSchema, apiClientListQuerySchema, apiClientSchema, apiClientSecretRotatedSchema, apiClientStatusSchema, apiClientTypeSchema, apiLogErrorSchema, apiLogListQuerySchema, apiLogPageSchema, apiLogPrincipalSchema, apiLogPrincipalTypeSchema, apiLogSchema, apiLogStatusFilterSchema, apiLogSummarySchema, apiTokenCreateRequestSchema, apiTokenCreatedSchema, apiTokenSchema, approveClaimResultSchema, buildAuthorizeUrl, buildQuery, bulkResultSchema, cancelBySellerRequestSchema, carrierSchema, categoryAttributeSchema, categoryCreateRequestSchema, categoryDeleteStrategySchema, categoryPatchRequestSchema, categoryProductSortSchema, categorySchema, categorySearchResultSchema, categoryTreeNodeSchema, categoryWithPathSchema, changeTypeSchema, claimReasonSchema, claimSchema, claimStatusSchema, claimTypeSchema, claimWebhookEventDataSchema, claimWebhookEventSchema, clientCredentialsTokenResponseSchema, createPkcePair, createStoreClient, createStoreSession, customerInquiryCategorySchema, deliveryInfoSchema, deliveryMethodSchema, deliveryTypeSchema, discountRequestSchema, discountSchema, dispatchRequestSchema, effectivePaymentRoutingModeSchema, eventTypeSchema, exchangeAuthorizationCode, exchangeStoreTokenViaOAuth, holdOrderItemRequestSchema, inquirySchema, inquiryWebhookEventDataSchema, inquiryWebhookEventSchema, invitationSchema, isReservedStoreCode, isStoreScope, liveGateConditionCodeSchema, liveGateConditionSchema, liveGateErrorDetailsSchema, liveGateSchema, maskedSecretSchema, myAccountSchema, myStoreSchema, oauthClientRegistrationRequestSchema, oauthClientRegistrationResponseSchema, oauthTokenResponseSchema, optionGroupRequestSchema, optionGroupSchema, optionModelRequestSchema, optionModelSchema, optionValueRequestSchema, optionValueSchema, orderItemListQuerySchema, orderItemPageSchema, orderItemSchema, orderItemStatusSchema, orderListQuerySchema, orderSchema, orderSummaryPageSchema, orderSummarySchema, orderWebhookEventDataSchema, orderWebhookEventSchema, pageInfoSchema, pageSchema, paymentAttemptRecordSchema, paymentAttemptStatusSchema, paymentCredentialSetSchema, paymentListQuerySchema, paymentProviderSchema, paymentProviderVerificationSchema, paymentRecordDetailSchema, paymentRecordPageSchema, paymentRecordSchema, paymentRecordStatusSchema, paymentRefundRecordSchema, paymentRoutingModeSchema, paymentSettingsSchema, pgEnvironmentSchema, pgPaymentMethodSchema, pgProviderSchema, pgVerificationResultSchema, portOneChannelSchema, portOneCredentialsInputSchema, productCreateRequestSchema, productOutOfStockWebhookEventDataSchema, productOutOfStockWebhookEventSchema, productPatchRequestSchema, productSchema, productStatusSchema, productSummarySchema, productVariantRequestSchema, productVariantSchema, refreshUserToken, rejectClaimRequestSchema, reviewSchema, reviewWebhookEventDataSchema, reviewWebhookEventSchema, salesReportGroupBySchema, salesReportQuerySchema, salesReportRowSchema, salesReportSchema, salesTotalsSchema, scopeAccessSchema, sellerAddressRequestSchema, sellerAddressSchema, sellerCustomerInquirySchema, settlementDetailSchema, settlementStatusSchema, settlementSummarySchema, shippingAddressSchema, storeCodeSchema, storeMemberSchema, storeRoleSchema, storeSchema, storeScopeResourceSchema, storeTokenResponseSchema, tossPaymentsCredentialsInputSchema, updatePaymentProviderRequestSchema, updatePaymentSettingsRequestSchema, uploadRequestSchema, uploadTicketSchema, upsertPortOneProviderRequestSchema, upsertTossPaymentsProviderRequestSchema, userTokenResponseSchema, variantStockRequestSchema, variantStockSchema, verifyPaymentProviderRequestSchema, webhookCreatedSchema, webhookDeliveryErrorCodeSchema, webhookDeliveryListQuerySchema, webhookDeliverySchema, webhookDeliveryStatusSchema, webhookEventSchema, webhookRedeliverFailedResultSchema, webhookRequestSchema, webhookSchema, webhookSecretRotatedSchema, webhookStatusSchema, webhookTestRequestSchema, webhookTestResultSchema };
2597
+ export { ApiError, MAX_OPTION_GROUPS, MAX_VALUES_PER_GROUP, MAX_VARIANTS, PAYMENT_ROUTING_EXCLUSION_CODES, PORTONE_CHANNEL_NAME_MAX_LENGTH, PORTONE_MAX_CHANNELS, PORTONE_MIN_CHANNELS, RESERVED_STORE_CODES, STORE_CODE_PATTERN, STORE_ROLE_SCOPES, STORE_SCOPE_RESOURCES, STORE_SESSION_KEYS, TOSS_WIDGET_CLIENT_KEY_PATTERN, TOSS_WIDGET_KEY_MESSAGE, TOSS_WIDGET_SECRET_KEY_PATTERN, VARIANT_STOCK_EXCLUSIVE_MESSAGE, WEBHOOK_DEFAULT_TOLERANCE_SEC, WEBHOOK_DELIVERY_ID_HEADER, WEBHOOK_EVENT_ID_HEADER, WEBHOOK_EVENT_TYPE_HEADER, WEBHOOK_HEADERS, WEBHOOK_SIGNATURE_HEADER, WEBHOOK_USER_AGENT, addressChangeRequestListSchema, addressTypeSchema, analyticsChannelSchema, analyticsFunnelStepSchema, analyticsOverviewSchema, analyticsProductRowSchema, analyticsProductSortSchema, analyticsProductsQuerySchema, analyticsProductsSchema, analyticsRangeQuerySchema, analyticsSourceGroupBySchema, analyticsSourceRowSchema, analyticsSourcesQuerySchema, analyticsSourcesSchema, analyticsTotalsSchema, apiClientListQuerySchema, apiClientSchema, apiClientSecretRotatedSchema, apiClientStatusSchema, apiClientTypeSchema, apiLogErrorSchema, apiLogListQuerySchema, apiLogPageSchema, apiLogPrincipalSchema, apiLogPrincipalTypeSchema, apiLogSchema, apiLogStatusFilterSchema, apiLogSummarySchema, apiTokenCreateRequestSchema, apiTokenCreatedSchema, apiTokenSchema, approveClaimResultSchema, buildAuthorizeUrl, buildQuery, bulkResultSchema, cancelBySellerRequestSchema, cancelBySellerResultSchema, carrierSchema, categoryAttributeSchema, categoryCreateRequestSchema, categoryDeleteQuerySchema, categoryDeleteStrategySchema, categoryListQuerySchema, categoryPatchRequestSchema, categoryProductSortSchema, categorySchema, categorySearchResultSchema, categoryTreeNodeSchema, categoryWithPathSchema, changeTypeSchema, claimDetailSchema, claimHoldResultSchema, claimListQuerySchema, claimReasonSchema, claimSchema, claimStatusSchema, claimTypeSchema, claimWebhookEventDataSchema, claimWebhookEventSchema, clientCredentialsTokenResponseSchema, createPkcePair, createStoreClient, createStoreSession, customerInquiryCategorySchema, customerInquiryListQuerySchema, deliveryInfoSchema, deliveryMethodSchema, deliveryStatusSchema, deliveryTypeSchema, discountRequestSchema, discountSchema, dispatchRequestSchema, effectivePaymentRoutingModeSchema, eventTypeSchema, exchangeAuthorizationCode, exchangeStoreTokenViaOAuth, holdOrderItemRequestSchema, inquiryListQuerySchema, inquirySchema, inquiryWebhookEventDataSchema, inquiryWebhookEventSchema, invitationListQuerySchema, invitationSchema, isReservedStoreCode, isStoreScope, liveGateConditionCodeSchema, liveGateConditionSchema, liveGateErrorDetailsSchema, liveGateSchema, maskedSecretSchema, myAccountSchema, myStoreSchema, oauthClientRegistrationRequestSchema, oauthClientRegistrationResponseSchema, oauthTokenResponseSchema, optionGroupRequestSchema, optionGroupSchema, optionModelRequestSchema, optionModelSchema, optionValueRequestSchema, optionValueSchema, orderItemListQuerySchema, orderItemMemoResultSchema, orderItemPageSchema, orderItemSchema, orderItemStatusSchema, orderListQuerySchema, orderSchema, orderSummaryPageSchema, orderSummarySchema, orderWebhookEventDataSchema, orderWebhookEventSchema, pageInfoSchema, pageQueryShape, pageSchema, paymentAttemptRecordSchema, paymentAttemptStatusSchema, paymentCredentialSetSchema, paymentListQuerySchema, paymentProviderSchema, paymentProviderVerificationSchema, paymentRecordDetailSchema, paymentRecordPageSchema, paymentRecordSchema, paymentRecordStatusSchema, paymentRefundRecordSchema, paymentRoutingModeSchema, paymentSettingsSchema, pgEnvironmentSchema, pgPaymentMethodSchema, pgProviderSchema, pgVerificationResultSchema, portOneChannelSchema, portOneCredentialsInputSchema, productCreateRequestSchema, productImageUploadResultSchema, productListQuerySchema, productOutOfStockWebhookEventDataSchema, productOutOfStockWebhookEventSchema, productPatchRequestSchema, productSchema, productSortSchema, productStatusSchema, productSummarySchema, productVariantRequestSchema, productVariantSchema, purchaseDecisionExtendResultSchema, purchaseDecisionRequestResultSchema, refreshUserToken, rejectClaimRequestSchema, reviewListQuerySchema, reviewReportResultSchema, reviewSchema, reviewSortSchema, reviewWebhookEventDataSchema, reviewWebhookEventSchema, salesReportGroupBySchema, salesReportQuerySchema, salesReportRowSchema, salesReportSchema, salesTotalsSchema, scopeAccessSchema, sellerAddressListQuerySchema, sellerAddressRequestSchema, sellerAddressSchema, sellerCustomerInquirySchema, settlementDetailQuerySchema, settlementDetailSchema, settlementListQuerySchema, settlementStatusSchema, settlementSummarySchema, settlementWithDetailsSchema, shippingAddressSchema, storeCodeSchema, storeMemberRoleUpdatedSchema, storeMemberSchema, storeRoleSchema, storeSchema, storeScopeResourceSchema, storeTokenResponseSchema, tossPaymentsCredentialsInputSchema, trackingUpdateResultSchema, updatePaymentProviderRequestSchema, updatePaymentSettingsRequestSchema, uploadRequestSchema, uploadTicketSchema, upsertPortOneProviderRequestSchema, upsertTossPaymentsProviderRequestSchema, userTokenResponseSchema, variantStockRequestSchema, variantStockSchema, verifyPaymentProviderRequestSchema, webhookCreatedSchema, webhookDeliveryErrorCodeSchema, webhookDeliveryListQuerySchema, webhookDeliverySchema, webhookDeliveryStatusSchema, webhookEventSchema, webhookRedeliverFailedResultSchema, webhookRequestSchema, webhookSchema, webhookSecretRotatedSchema, webhookStatusSchema, webhookTestRequestSchema, webhookTestResultSchema };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sayren/store-sdk",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "main": "./dist/index.mjs",
5
5
  "types": "./dist/index.d.mts",
6
6
  "exports": {
@@ -31,7 +31,7 @@
31
31
  "license": "UNLICENSED",
32
32
  "repository": {
33
33
  "type": "git",
34
- "url": "git+https://github.com/cochoio/shop.24.git"
34
+ "url": "git+https://github.com/avarcorp/sayren.git"
35
35
  },
36
36
  "files": [
37
37
  "dist",