@sayren/store-sdk 0.12.0 → 0.13.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
@@ -182,20 +182,20 @@ export declare const analyticsProductsSchema: z.ZodObject<{
182
182
  }, z.core.$strip>;
183
183
  export type AnalyticsProducts = z.infer<typeof analyticsProductsSchema>;
184
184
  export declare const analyticsChannelSchema: z.ZodEnum<{
185
- PAID: "PAID";
186
185
  DIRECT: "DIRECT";
187
- CAMPAIGN: "CAMPAIGN";
188
186
  ORGANIC_SEARCH: "ORGANIC_SEARCH";
189
187
  SOCIAL: "SOCIAL";
188
+ PAID: "PAID";
190
189
  EMAIL: "EMAIL";
190
+ CAMPAIGN: "CAMPAIGN";
191
191
  REFERRAL: "REFERRAL";
192
192
  UNKNOWN: "UNKNOWN";
193
193
  }>;
194
194
  export type AnalyticsChannel = z.infer<typeof analyticsChannelSchema>;
195
195
  export declare const analyticsSourceGroupBySchema: z.ZodEnum<{
196
+ CAMPAIGN: "CAMPAIGN";
196
197
  CHANNEL: "CHANNEL";
197
198
  SOURCE: "SOURCE";
198
- CAMPAIGN: "CAMPAIGN";
199
199
  DEVICE: "DEVICE";
200
200
  }>;
201
201
  export type AnalyticsSourceGroupBy = z.infer<typeof analyticsSourceGroupBySchema>;
@@ -207,21 +207,21 @@ export declare const analyticsSourcesQuerySchema: z.ZodObject<{
207
207
  false: "false";
208
208
  }>>;
209
209
  groupBy: z.ZodOptional<z.ZodEnum<{
210
+ CAMPAIGN: "CAMPAIGN";
210
211
  CHANNEL: "CHANNEL";
211
212
  SOURCE: "SOURCE";
212
- CAMPAIGN: "CAMPAIGN";
213
213
  DEVICE: "DEVICE";
214
214
  }>>;
215
215
  }, z.core.$strip>;
216
216
  export type AnalyticsSourcesParams = z.infer<typeof analyticsSourcesQuerySchema>;
217
217
  export declare const analyticsSourceRowSchema: z.ZodObject<{
218
218
  channel: z.ZodNullable<z.ZodEnum<{
219
- PAID: "PAID";
220
219
  DIRECT: "DIRECT";
221
- CAMPAIGN: "CAMPAIGN";
222
220
  ORGANIC_SEARCH: "ORGANIC_SEARCH";
223
221
  SOCIAL: "SOCIAL";
222
+ PAID: "PAID";
224
223
  EMAIL: "EMAIL";
224
+ CAMPAIGN: "CAMPAIGN";
225
225
  REFERRAL: "REFERRAL";
226
226
  UNKNOWN: "UNKNOWN";
227
227
  }>>;
@@ -245,19 +245,19 @@ export declare const analyticsSourceRowSchema: z.ZodObject<{
245
245
  export type AnalyticsSourceRow = z.infer<typeof analyticsSourceRowSchema>;
246
246
  export declare const analyticsSourcesSchema: z.ZodObject<{
247
247
  groupBy: z.ZodEnum<{
248
+ CAMPAIGN: "CAMPAIGN";
248
249
  CHANNEL: "CHANNEL";
249
250
  SOURCE: "SOURCE";
250
- CAMPAIGN: "CAMPAIGN";
251
251
  DEVICE: "DEVICE";
252
252
  }>;
253
253
  rows: z.ZodArray<z.ZodObject<{
254
254
  channel: z.ZodNullable<z.ZodEnum<{
255
- PAID: "PAID";
256
255
  DIRECT: "DIRECT";
257
- CAMPAIGN: "CAMPAIGN";
258
256
  ORGANIC_SEARCH: "ORGANIC_SEARCH";
259
257
  SOCIAL: "SOCIAL";
258
+ PAID: "PAID";
260
259
  EMAIL: "EMAIL";
260
+ CAMPAIGN: "CAMPAIGN";
261
261
  REFERRAL: "REFERRAL";
262
262
  UNKNOWN: "UNKNOWN";
263
263
  }>>;
@@ -408,12 +408,12 @@ export declare const analyticsSearchSchema: z.ZodObject<{
408
408
  }, z.core.$strip>;
409
409
  export type AnalyticsSearch = z.infer<typeof analyticsSearchSchema>;
410
410
  export declare const analyticsCheckoutOutcomeSchema: z.ZodEnum<{
411
- OTHER: "OTHER";
412
411
  COMPLETED: "COMPLETED";
413
412
  NOT_OPENED: "NOT_OPENED";
414
413
  USER_CANCELED: "USER_CANCELED";
415
414
  DECLINED: "DECLINED";
416
415
  PREPARE_FAILURE: "PREPARE_FAILURE";
416
+ OTHER: "OTHER";
417
417
  IN_PROGRESS: "IN_PROGRESS";
418
418
  }>;
419
419
  export type AnalyticsCheckoutOutcome = z.infer<typeof analyticsCheckoutOutcomeSchema>;
@@ -421,12 +421,12 @@ export declare const analyticsCheckoutSchema: z.ZodObject<{
421
421
  sessions: z.ZodNumber;
422
422
  outcomes: z.ZodArray<z.ZodObject<{
423
423
  outcome: z.ZodEnum<{
424
- OTHER: "OTHER";
425
424
  COMPLETED: "COMPLETED";
426
425
  NOT_OPENED: "NOT_OPENED";
427
426
  USER_CANCELED: "USER_CANCELED";
428
427
  DECLINED: "DECLINED";
429
428
  PREPARE_FAILURE: "PREPARE_FAILURE";
429
+ OTHER: "OTHER";
430
430
  IN_PROGRESS: "IN_PROGRESS";
431
431
  }>;
432
432
  sessions: z.ZodNumber;
@@ -522,8 +522,8 @@ export declare const oauthClientRegistrationRequestSchema: z.ZodObject<{
522
522
  }>>;
523
523
  redirect_uris: z.ZodOptional<z.ZodArray<z.ZodString>>;
524
524
  grant_types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
525
- authorization_code: "authorization_code";
526
525
  refresh_token: "refresh_token";
526
+ authorization_code: "authorization_code";
527
527
  client_credentials: "client_credentials";
528
528
  "urn:ietf:params:oauth:grant-type:token-exchange": "urn:ietf:params:oauth:grant-type:token-exchange";
529
529
  }>>>;
@@ -1051,11 +1051,11 @@ export declare const changeTypeSchema: z.ZodEnum<{
1051
1051
  "ORDER.DISPATCHED": "ORDER.DISPATCHED";
1052
1052
  "ORDER.DELIVERED": "ORDER.DELIVERED";
1053
1053
  "ORDER.PURCHASE_DECIDED": "ORDER.PURCHASE_DECIDED";
1054
- "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
1055
1054
  "CLAIM.CANCEL_REQUESTED": "CLAIM.CANCEL_REQUESTED";
1056
1055
  "CLAIM.RETURN_REQUESTED": "CLAIM.RETURN_REQUESTED";
1057
1056
  "CLAIM.EXCHANGE_REQUESTED": "CLAIM.EXCHANGE_REQUESTED";
1058
1057
  "CLAIM.COMPLETED": "CLAIM.COMPLETED";
1058
+ "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
1059
1059
  }>;
1060
1060
  export type ChangeType = z.infer<typeof changeTypeSchema>;
1061
1061
  //#endregion
@@ -1067,6 +1067,7 @@ export declare const claimTypeSchema: z.ZodEnum<{
1067
1067
  }>;
1068
1068
  export type ClaimType = z.infer<typeof claimTypeSchema>;
1069
1069
  export declare const claimStatusSchema: z.ZodEnum<{
1070
+ COMPLETED: "COMPLETED";
1070
1071
  REQUESTED: "REQUESTED";
1071
1072
  HELD: "HELD";
1072
1073
  COLLECTING: "COLLECTING";
@@ -1074,7 +1075,6 @@ export declare const claimStatusSchema: z.ZodEnum<{
1074
1075
  REDELIVERING: "REDELIVERING";
1075
1076
  APPROVED: "APPROVED";
1076
1077
  REJECTED: "REJECTED";
1077
- COMPLETED: "COMPLETED";
1078
1078
  WITHDRAWN: "WITHDRAWN";
1079
1079
  }>;
1080
1080
  export type ClaimStatus = z.infer<typeof claimStatusSchema>;
@@ -1111,6 +1111,7 @@ export declare const claimSchema: z.ZodObject<{
1111
1111
  CANCEL: "CANCEL";
1112
1112
  }>;
1113
1113
  status: z.ZodEnum<{
1114
+ COMPLETED: "COMPLETED";
1114
1115
  REQUESTED: "REQUESTED";
1115
1116
  HELD: "HELD";
1116
1117
  COLLECTING: "COLLECTING";
@@ -1118,7 +1119,6 @@ export declare const claimSchema: z.ZodObject<{
1118
1119
  REDELIVERING: "REDELIVERING";
1119
1120
  APPROVED: "APPROVED";
1120
1121
  REJECTED: "REJECTED";
1121
- COMPLETED: "COMPLETED";
1122
1122
  WITHDRAWN: "WITHDRAWN";
1123
1123
  }>;
1124
1124
  orderId: z.ZodString;
@@ -1198,6 +1198,7 @@ export declare const claimDetailSchema: z.ZodObject<{
1198
1198
  CANCEL: "CANCEL";
1199
1199
  }>;
1200
1200
  status: z.ZodEnum<{
1201
+ COMPLETED: "COMPLETED";
1201
1202
  REQUESTED: "REQUESTED";
1202
1203
  HELD: "HELD";
1203
1204
  COLLECTING: "COLLECTING";
@@ -1205,7 +1206,6 @@ export declare const claimDetailSchema: z.ZodObject<{
1205
1206
  REDELIVERING: "REDELIVERING";
1206
1207
  APPROVED: "APPROVED";
1207
1208
  REJECTED: "REJECTED";
1208
- COMPLETED: "COMPLETED";
1209
1209
  WITHDRAWN: "WITHDRAWN";
1210
1210
  }>;
1211
1211
  orderId: z.ZodString;
@@ -1254,6 +1254,7 @@ export declare const claimDetailSchema: z.ZodObject<{
1254
1254
  }, z.core.$strip>>;
1255
1255
  histories: z.ZodOptional<z.ZodArray<z.ZodObject<{
1256
1256
  status: z.ZodEnum<{
1257
+ COMPLETED: "COMPLETED";
1257
1258
  REQUESTED: "REQUESTED";
1258
1259
  HELD: "HELD";
1259
1260
  COLLECTING: "COLLECTING";
@@ -1261,7 +1262,6 @@ export declare const claimDetailSchema: z.ZodObject<{
1261
1262
  REDELIVERING: "REDELIVERING";
1262
1263
  APPROVED: "APPROVED";
1263
1264
  REJECTED: "REJECTED";
1264
- COMPLETED: "COMPLETED";
1265
1265
  WITHDRAWN: "WITHDRAWN";
1266
1266
  }>;
1267
1267
  actor: z.ZodEnum<{
@@ -1592,10 +1592,10 @@ export type CustomerOrder = z.infer<typeof customerOrderSchema>;
1592
1592
  /** `POST /v1/customers/{id}/withdraw` 본문 */
1593
1593
  export declare const withdrawCustomerRequestSchema: z.ZodObject<{
1594
1594
  reason: z.ZodEnum<{
1595
+ OTHER: "OTHER";
1595
1596
  BUYER_REQUEST: "BUYER_REQUEST";
1596
1597
  DORMANT: "DORMANT";
1597
1598
  ABUSE: "ABUSE";
1598
- OTHER: "OTHER";
1599
1599
  }>;
1600
1600
  memo: z.ZodOptional<z.ZodString>;
1601
1601
  }, z.core.$strip>;
@@ -1869,11 +1869,11 @@ export declare const eventTypeSchema: z.ZodEnum<{
1869
1869
  "ORDER.DISPATCHED": "ORDER.DISPATCHED";
1870
1870
  "ORDER.DELIVERED": "ORDER.DELIVERED";
1871
1871
  "ORDER.PURCHASE_DECIDED": "ORDER.PURCHASE_DECIDED";
1872
- "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
1873
1872
  "CLAIM.CANCEL_REQUESTED": "CLAIM.CANCEL_REQUESTED";
1874
1873
  "CLAIM.RETURN_REQUESTED": "CLAIM.RETURN_REQUESTED";
1875
1874
  "CLAIM.EXCHANGE_REQUESTED": "CLAIM.EXCHANGE_REQUESTED";
1876
1875
  "CLAIM.COMPLETED": "CLAIM.COMPLETED";
1876
+ "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
1877
1877
  "INQUIRY.CREATED": "INQUIRY.CREATED";
1878
1878
  "REVIEW.CREATED": "REVIEW.CREATED";
1879
1879
  "PRODUCT.OUT_OF_STOCK": "PRODUCT.OUT_OF_STOCK";
@@ -1893,11 +1893,11 @@ export declare const webhookSchema: z.ZodObject<{
1893
1893
  "ORDER.DISPATCHED": "ORDER.DISPATCHED";
1894
1894
  "ORDER.DELIVERED": "ORDER.DELIVERED";
1895
1895
  "ORDER.PURCHASE_DECIDED": "ORDER.PURCHASE_DECIDED";
1896
- "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
1897
1896
  "CLAIM.CANCEL_REQUESTED": "CLAIM.CANCEL_REQUESTED";
1898
1897
  "CLAIM.RETURN_REQUESTED": "CLAIM.RETURN_REQUESTED";
1899
1898
  "CLAIM.EXCHANGE_REQUESTED": "CLAIM.EXCHANGE_REQUESTED";
1900
1899
  "CLAIM.COMPLETED": "CLAIM.COMPLETED";
1900
+ "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
1901
1901
  "INQUIRY.CREATED": "INQUIRY.CREATED";
1902
1902
  "REVIEW.CREATED": "REVIEW.CREATED";
1903
1903
  "PRODUCT.OUT_OF_STOCK": "PRODUCT.OUT_OF_STOCK";
@@ -1921,11 +1921,11 @@ export declare const webhookCreatedSchema: z.ZodObject<{
1921
1921
  "ORDER.DISPATCHED": "ORDER.DISPATCHED";
1922
1922
  "ORDER.DELIVERED": "ORDER.DELIVERED";
1923
1923
  "ORDER.PURCHASE_DECIDED": "ORDER.PURCHASE_DECIDED";
1924
- "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
1925
1924
  "CLAIM.CANCEL_REQUESTED": "CLAIM.CANCEL_REQUESTED";
1926
1925
  "CLAIM.RETURN_REQUESTED": "CLAIM.RETURN_REQUESTED";
1927
1926
  "CLAIM.EXCHANGE_REQUESTED": "CLAIM.EXCHANGE_REQUESTED";
1928
1927
  "CLAIM.COMPLETED": "CLAIM.COMPLETED";
1928
+ "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
1929
1929
  "INQUIRY.CREATED": "INQUIRY.CREATED";
1930
1930
  "REVIEW.CREATED": "REVIEW.CREATED";
1931
1931
  "PRODUCT.OUT_OF_STOCK": "PRODUCT.OUT_OF_STOCK";
@@ -1999,11 +1999,11 @@ export declare const webhookDeliverySchema: z.ZodObject<{
1999
1999
  "ORDER.DISPATCHED": "ORDER.DISPATCHED";
2000
2000
  "ORDER.DELIVERED": "ORDER.DELIVERED";
2001
2001
  "ORDER.PURCHASE_DECIDED": "ORDER.PURCHASE_DECIDED";
2002
- "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
2003
2002
  "CLAIM.CANCEL_REQUESTED": "CLAIM.CANCEL_REQUESTED";
2004
2003
  "CLAIM.RETURN_REQUESTED": "CLAIM.RETURN_REQUESTED";
2005
2004
  "CLAIM.EXCHANGE_REQUESTED": "CLAIM.EXCHANGE_REQUESTED";
2006
2005
  "CLAIM.COMPLETED": "CLAIM.COMPLETED";
2006
+ "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
2007
2007
  "INQUIRY.CREATED": "INQUIRY.CREATED";
2008
2008
  "REVIEW.CREATED": "REVIEW.CREATED";
2009
2009
  "PRODUCT.OUT_OF_STOCK": "PRODUCT.OUT_OF_STOCK";
@@ -2050,11 +2050,11 @@ export declare const webhookDeliveryDetailSchema: z.ZodObject<{
2050
2050
  "ORDER.DISPATCHED": "ORDER.DISPATCHED";
2051
2051
  "ORDER.DELIVERED": "ORDER.DELIVERED";
2052
2052
  "ORDER.PURCHASE_DECIDED": "ORDER.PURCHASE_DECIDED";
2053
- "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
2054
2053
  "CLAIM.CANCEL_REQUESTED": "CLAIM.CANCEL_REQUESTED";
2055
2054
  "CLAIM.RETURN_REQUESTED": "CLAIM.RETURN_REQUESTED";
2056
2055
  "CLAIM.EXCHANGE_REQUESTED": "CLAIM.EXCHANGE_REQUESTED";
2057
2056
  "CLAIM.COMPLETED": "CLAIM.COMPLETED";
2057
+ "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
2058
2058
  "INQUIRY.CREATED": "INQUIRY.CREATED";
2059
2059
  "REVIEW.CREATED": "REVIEW.CREATED";
2060
2060
  "PRODUCT.OUT_OF_STOCK": "PRODUCT.OUT_OF_STOCK";
@@ -2110,11 +2110,11 @@ export declare const webhookDeliveryListQuerySchema: z.ZodObject<{
2110
2110
  "ORDER.DISPATCHED": "ORDER.DISPATCHED";
2111
2111
  "ORDER.DELIVERED": "ORDER.DELIVERED";
2112
2112
  "ORDER.PURCHASE_DECIDED": "ORDER.PURCHASE_DECIDED";
2113
- "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
2114
2113
  "CLAIM.CANCEL_REQUESTED": "CLAIM.CANCEL_REQUESTED";
2115
2114
  "CLAIM.RETURN_REQUESTED": "CLAIM.RETURN_REQUESTED";
2116
2115
  "CLAIM.EXCHANGE_REQUESTED": "CLAIM.EXCHANGE_REQUESTED";
2117
2116
  "CLAIM.COMPLETED": "CLAIM.COMPLETED";
2117
+ "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
2118
2118
  "INQUIRY.CREATED": "INQUIRY.CREATED";
2119
2119
  "REVIEW.CREATED": "REVIEW.CREATED";
2120
2120
  "PRODUCT.OUT_OF_STOCK": "PRODUCT.OUT_OF_STOCK";
@@ -2135,11 +2135,11 @@ export declare const webhookTestRequestSchema: z.ZodObject<{
2135
2135
  "ORDER.DISPATCHED": "ORDER.DISPATCHED";
2136
2136
  "ORDER.DELIVERED": "ORDER.DELIVERED";
2137
2137
  "ORDER.PURCHASE_DECIDED": "ORDER.PURCHASE_DECIDED";
2138
- "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
2139
2138
  "CLAIM.CANCEL_REQUESTED": "CLAIM.CANCEL_REQUESTED";
2140
2139
  "CLAIM.RETURN_REQUESTED": "CLAIM.RETURN_REQUESTED";
2141
2140
  "CLAIM.EXCHANGE_REQUESTED": "CLAIM.EXCHANGE_REQUESTED";
2142
2141
  "CLAIM.COMPLETED": "CLAIM.COMPLETED";
2142
+ "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
2143
2143
  "INQUIRY.CREATED": "INQUIRY.CREATED";
2144
2144
  "REVIEW.CREATED": "REVIEW.CREATED";
2145
2145
  "PRODUCT.OUT_OF_STOCK": "PRODUCT.OUT_OF_STOCK";
@@ -2174,11 +2174,11 @@ export declare const webhookRequestSchema: z.ZodObject<{
2174
2174
  "ORDER.DISPATCHED": "ORDER.DISPATCHED";
2175
2175
  "ORDER.DELIVERED": "ORDER.DELIVERED";
2176
2176
  "ORDER.PURCHASE_DECIDED": "ORDER.PURCHASE_DECIDED";
2177
- "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
2178
2177
  "CLAIM.CANCEL_REQUESTED": "CLAIM.CANCEL_REQUESTED";
2179
2178
  "CLAIM.RETURN_REQUESTED": "CLAIM.RETURN_REQUESTED";
2180
2179
  "CLAIM.EXCHANGE_REQUESTED": "CLAIM.EXCHANGE_REQUESTED";
2181
2180
  "CLAIM.COMPLETED": "CLAIM.COMPLETED";
2181
+ "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
2182
2182
  "INQUIRY.CREATED": "INQUIRY.CREATED";
2183
2183
  "REVIEW.CREATED": "REVIEW.CREATED";
2184
2184
  "PRODUCT.OUT_OF_STOCK": "PRODUCT.OUT_OF_STOCK";
@@ -2327,11 +2327,11 @@ export declare const orderItemSchema: z.ZodObject<{
2327
2327
  "ORDER.DISPATCHED": "ORDER.DISPATCHED";
2328
2328
  "ORDER.DELIVERED": "ORDER.DELIVERED";
2329
2329
  "ORDER.PURCHASE_DECIDED": "ORDER.PURCHASE_DECIDED";
2330
- "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
2331
2330
  "CLAIM.CANCEL_REQUESTED": "CLAIM.CANCEL_REQUESTED";
2332
2331
  "CLAIM.RETURN_REQUESTED": "CLAIM.RETURN_REQUESTED";
2333
2332
  "CLAIM.EXCHANGE_REQUESTED": "CLAIM.EXCHANGE_REQUESTED";
2334
2333
  "CLAIM.COMPLETED": "CLAIM.COMPLETED";
2334
+ "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
2335
2335
  }>;
2336
2336
  testPayment: z.ZodBoolean;
2337
2337
  }, z.core.$strip>;
@@ -2436,11 +2436,11 @@ export declare const orderSchema: z.ZodObject<{
2436
2436
  "ORDER.DISPATCHED": "ORDER.DISPATCHED";
2437
2437
  "ORDER.DELIVERED": "ORDER.DELIVERED";
2438
2438
  "ORDER.PURCHASE_DECIDED": "ORDER.PURCHASE_DECIDED";
2439
- "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
2440
2439
  "CLAIM.CANCEL_REQUESTED": "CLAIM.CANCEL_REQUESTED";
2441
2440
  "CLAIM.RETURN_REQUESTED": "CLAIM.RETURN_REQUESTED";
2442
2441
  "CLAIM.EXCHANGE_REQUESTED": "CLAIM.EXCHANGE_REQUESTED";
2443
2442
  "CLAIM.COMPLETED": "CLAIM.COMPLETED";
2443
+ "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
2444
2444
  }>;
2445
2445
  testPayment: z.ZodBoolean;
2446
2446
  }, z.core.$strip>>;
@@ -2521,11 +2521,11 @@ export declare const orderItemPageSchema: z.ZodObject<{
2521
2521
  "ORDER.DISPATCHED": "ORDER.DISPATCHED";
2522
2522
  "ORDER.DELIVERED": "ORDER.DELIVERED";
2523
2523
  "ORDER.PURCHASE_DECIDED": "ORDER.PURCHASE_DECIDED";
2524
- "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
2525
2524
  "CLAIM.CANCEL_REQUESTED": "CLAIM.CANCEL_REQUESTED";
2526
2525
  "CLAIM.RETURN_REQUESTED": "CLAIM.RETURN_REQUESTED";
2527
2526
  "CLAIM.EXCHANGE_REQUESTED": "CLAIM.EXCHANGE_REQUESTED";
2528
2527
  "CLAIM.COMPLETED": "CLAIM.COMPLETED";
2528
+ "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
2529
2529
  }>;
2530
2530
  testPayment: z.ZodBoolean;
2531
2531
  }, z.core.$strip>>;
@@ -2572,11 +2572,11 @@ export declare const orderItemListQuerySchema: z.ZodObject<{
2572
2572
  "ORDER.DISPATCHED": "ORDER.DISPATCHED";
2573
2573
  "ORDER.DELIVERED": "ORDER.DELIVERED";
2574
2574
  "ORDER.PURCHASE_DECIDED": "ORDER.PURCHASE_DECIDED";
2575
- "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
2576
2575
  "CLAIM.CANCEL_REQUESTED": "CLAIM.CANCEL_REQUESTED";
2577
2576
  "CLAIM.RETURN_REQUESTED": "CLAIM.RETURN_REQUESTED";
2578
2577
  "CLAIM.EXCHANGE_REQUESTED": "CLAIM.EXCHANGE_REQUESTED";
2579
2578
  "CLAIM.COMPLETED": "CLAIM.COMPLETED";
2579
+ "ORDER.ADDRESS_CHANGE_REQUESTED": "ORDER.ADDRESS_CHANGE_REQUESTED";
2580
2580
  }>>;
2581
2581
  testPayment: z.ZodOptional<z.ZodEnum<{
2582
2582
  true: "true";
@@ -2599,16 +2599,16 @@ export interface OrderItemListParams extends PageParams {
2599
2599
  testPayment?: "true" | "false";
2600
2600
  }
2601
2601
  export declare const deliveryMethodSchema: z.ZodEnum<{
2602
- COURIER: "COURIER";
2603
2602
  DIRECT: "DIRECT";
2603
+ COURIER: "COURIER";
2604
2604
  QUICK: "QUICK";
2605
2605
  NOTHING: "NOTHING";
2606
2606
  }>;
2607
2607
  export type DeliveryMethod = z.infer<typeof deliveryMethodSchema>;
2608
2608
  export declare const dispatchRequestSchema: z.ZodObject<{
2609
2609
  deliveryMethod: z.ZodEnum<{
2610
- COURIER: "COURIER";
2611
2610
  DIRECT: "DIRECT";
2611
+ COURIER: "COURIER";
2612
2612
  QUICK: "QUICK";
2613
2613
  NOTHING: "NOTHING";
2614
2614
  }>;
@@ -2620,8 +2620,8 @@ export type DispatchRequest = z.infer<typeof dispatchRequestSchema>;
2620
2620
  export declare const deliveryInfoSchema: z.ZodObject<{
2621
2621
  orderItemId: z.ZodString;
2622
2622
  deliveryMethod: z.ZodEnum<{
2623
- COURIER: "COURIER";
2624
2623
  DIRECT: "DIRECT";
2624
+ COURIER: "COURIER";
2625
2625
  QUICK: "QUICK";
2626
2626
  NOTHING: "NOTHING";
2627
2627
  }>;
@@ -2647,8 +2647,8 @@ export declare const trackingStageResponseSchema: z.ZodString;
2647
2647
  export declare const deliveryStatusSchema: z.ZodObject<{
2648
2648
  orderItemId: z.ZodString;
2649
2649
  deliveryMethod: z.ZodEnum<{
2650
- COURIER: "COURIER";
2651
2650
  DIRECT: "DIRECT";
2651
+ COURIER: "COURIER";
2652
2652
  QUICK: "QUICK";
2653
2653
  NOTHING: "NOTHING";
2654
2654
  }>;
@@ -3756,15 +3756,15 @@ export interface PaymentListParams extends PageParams {
3756
3756
  //#endregion
3757
3757
  //#region src/schemas/product.d.ts
3758
3758
  export declare const productStatusSchema: z.ZodEnum<{
3759
- SALE: "SALE";
3760
3759
  SUSPENDED: "SUSPENDED";
3761
- OUT_OF_STOCK: "OUT_OF_STOCK";
3762
3760
  CLOSED: "CLOSED";
3761
+ SALE: "SALE";
3762
+ OUT_OF_STOCK: "OUT_OF_STOCK";
3763
3763
  }>;
3764
3764
  export type ProductStatus = z.infer<typeof productStatusSchema>;
3765
3765
  export declare const deliveryTypeSchema: z.ZodEnum<{
3766
- FREE: "FREE";
3767
3766
  PAID: "PAID";
3767
+ FREE: "FREE";
3768
3768
  CONDITIONAL_FREE: "CONDITIONAL_FREE";
3769
3769
  }>;
3770
3770
  export type DeliveryType = z.infer<typeof deliveryTypeSchema>;
@@ -3772,10 +3772,10 @@ export declare const productSummarySchema: z.ZodObject<{
3772
3772
  productId: z.ZodString;
3773
3773
  name: z.ZodString;
3774
3774
  status: z.ZodEnum<{
3775
- SALE: "SALE";
3776
3775
  SUSPENDED: "SUSPENDED";
3777
- OUT_OF_STOCK: "OUT_OF_STOCK";
3778
3776
  CLOSED: "CLOSED";
3777
+ SALE: "SALE";
3778
+ OUT_OF_STOCK: "OUT_OF_STOCK";
3779
3779
  }>;
3780
3780
  salePrice: z.ZodNumber;
3781
3781
  discountedPrice: z.ZodNullable<z.ZodNumber>;
@@ -3827,10 +3827,10 @@ export declare const productSchema: z.ZodObject<{
3827
3827
  productId: z.ZodString;
3828
3828
  name: z.ZodString;
3829
3829
  status: z.ZodEnum<{
3830
- SALE: "SALE";
3831
3830
  SUSPENDED: "SUSPENDED";
3832
- OUT_OF_STOCK: "OUT_OF_STOCK";
3833
3831
  CLOSED: "CLOSED";
3832
+ SALE: "SALE";
3833
+ OUT_OF_STOCK: "OUT_OF_STOCK";
3834
3834
  }>;
3835
3835
  salePrice: z.ZodNumber;
3836
3836
  discountedPrice: z.ZodNullable<z.ZodNumber>;
@@ -3871,8 +3871,8 @@ export declare const productSchema: z.ZodObject<{
3871
3871
  usable: z.ZodBoolean;
3872
3872
  }, z.core.$strip>>;
3873
3873
  deliveryType: z.ZodOptional<z.ZodEnum<{
3874
- FREE: "FREE";
3875
3874
  PAID: "PAID";
3875
+ FREE: "FREE";
3876
3876
  CONDITIONAL_FREE: "CONDITIONAL_FREE";
3877
3877
  }>>;
3878
3878
  deliveryFee: z.ZodOptional<z.ZodNumber>;
@@ -4035,8 +4035,8 @@ export declare const productCreateRequestSchema: z.ZodObject<{
4035
4035
  value: z.ZodString;
4036
4036
  }, z.core.$strip>>>;
4037
4037
  deliveryType: z.ZodDefault<z.ZodEnum<{
4038
- FREE: "FREE";
4039
4038
  PAID: "PAID";
4039
+ FREE: "FREE";
4040
4040
  CONDITIONAL_FREE: "CONDITIONAL_FREE";
4041
4041
  }>>;
4042
4042
  deliveryFee: z.ZodOptional<z.ZodNumber>;
@@ -4078,10 +4078,10 @@ export declare const productPatchRequestSchema: z.ZodObject<{
4078
4078
  name: z.ZodOptional<z.ZodString>;
4079
4079
  salePrice: z.ZodOptional<z.ZodNumber>;
4080
4080
  status: z.ZodOptional<z.ZodEnum<{
4081
- SALE: "SALE";
4082
4081
  SUSPENDED: "SUSPENDED";
4083
- OUT_OF_STOCK: "OUT_OF_STOCK";
4084
4082
  CLOSED: "CLOSED";
4083
+ SALE: "SALE";
4084
+ OUT_OF_STOCK: "OUT_OF_STOCK";
4085
4085
  }>>;
4086
4086
  deliveryFee: z.ZodOptional<z.ZodNumber>;
4087
4087
  shippingAddressId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -4108,10 +4108,10 @@ export declare const productListQuerySchema: z.ZodObject<{
4108
4108
  page: z.ZodOptional<z.ZodString>;
4109
4109
  size: z.ZodOptional<z.ZodString>;
4110
4110
  status: z.ZodOptional<z.ZodEnum<{
4111
- SALE: "SALE";
4112
4111
  SUSPENDED: "SUSPENDED";
4113
- OUT_OF_STOCK: "OUT_OF_STOCK";
4114
4112
  CLOSED: "CLOSED";
4113
+ SALE: "SALE";
4114
+ OUT_OF_STOCK: "OUT_OF_STOCK";
4115
4115
  }>>;
4116
4116
  categoryId: z.ZodOptional<z.ZodString>;
4117
4117
  keyword: z.ZodOptional<z.ZodString>;
@@ -4270,8 +4270,8 @@ export declare const invitationSchema: z.ZodObject<{
4270
4270
  STAFF: "STAFF";
4271
4271
  }>;
4272
4272
  status: z.ZodEnum<{
4273
- PENDING: "PENDING";
4274
4273
  CANCELED: "CANCELED";
4274
+ PENDING: "PENDING";
4275
4275
  ACCEPTED: "ACCEPTED";
4276
4276
  EXPIRED: "EXPIRED";
4277
4277
  }>;
@@ -4283,8 +4283,8 @@ export type Invitation = z.infer<typeof invitationSchema>;
4283
4283
  /** `GET /v1/store/invitations` 쿼리 — OpenAPI 문서용 형태 */
4284
4284
  export declare const invitationListQuerySchema: z.ZodObject<{
4285
4285
  status: z.ZodOptional<z.ZodEnum<{
4286
- PENDING: "PENDING";
4287
4286
  CANCELED: "CANCELED";
4287
+ PENDING: "PENDING";
4288
4288
  ACCEPTED: "ACCEPTED";
4289
4289
  EXPIRED: "EXPIRED";
4290
4290
  }>>;
@@ -4696,7 +4696,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
4696
4696
  contents: {
4697
4697
  productId: string;
4698
4698
  name: string;
4699
- status: "SALE" | "SUSPENDED" | "OUT_OF_STOCK" | "CLOSED";
4699
+ status: "SUSPENDED" | "CLOSED" | "SALE" | "OUT_OF_STOCK";
4700
4700
  salePrice: number;
4701
4701
  discountedPrice: number | null;
4702
4702
  stockQuantity: number;
@@ -4709,7 +4709,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
4709
4709
  get: (productId: string) => Promise<{
4710
4710
  productId: string;
4711
4711
  name: string;
4712
- status: "SALE" | "SUSPENDED" | "OUT_OF_STOCK" | "CLOSED";
4712
+ status: "SUSPENDED" | "CLOSED" | "SALE" | "OUT_OF_STOCK";
4713
4713
  salePrice: number;
4714
4714
  discountedPrice: number | null;
4715
4715
  stockQuantity: number;
@@ -4748,7 +4748,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
4748
4748
  attributeId: string;
4749
4749
  value: string;
4750
4750
  }[] | undefined;
4751
- deliveryType?: "FREE" | "PAID" | "CONDITIONAL_FREE" | undefined;
4751
+ deliveryType?: "PAID" | "FREE" | "CONDITIONAL_FREE" | undefined;
4752
4752
  deliveryFee?: number | undefined;
4753
4753
  conditionalFreeAmount?: number | null | undefined;
4754
4754
  returnFee?: number | undefined;
@@ -4767,7 +4767,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
4767
4767
  create: (body: ProductCreateRequest, idempotencyKey?: string) => Promise<{
4768
4768
  productId: string;
4769
4769
  name: string;
4770
- status: "SALE" | "SUSPENDED" | "OUT_OF_STOCK" | "CLOSED";
4770
+ status: "SUSPENDED" | "CLOSED" | "SALE" | "OUT_OF_STOCK";
4771
4771
  salePrice: number;
4772
4772
  discountedPrice: number | null;
4773
4773
  stockQuantity: number;
@@ -4806,7 +4806,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
4806
4806
  attributeId: string;
4807
4807
  value: string;
4808
4808
  }[] | undefined;
4809
- deliveryType?: "FREE" | "PAID" | "CONDITIONAL_FREE" | undefined;
4809
+ deliveryType?: "PAID" | "FREE" | "CONDITIONAL_FREE" | undefined;
4810
4810
  deliveryFee?: number | undefined;
4811
4811
  conditionalFreeAmount?: number | null | undefined;
4812
4812
  returnFee?: number | undefined;
@@ -4825,7 +4825,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
4825
4825
  update: (productId: string, body: ProductCreateRequest) => Promise<{
4826
4826
  productId: string;
4827
4827
  name: string;
4828
- status: "SALE" | "SUSPENDED" | "OUT_OF_STOCK" | "CLOSED";
4828
+ status: "SUSPENDED" | "CLOSED" | "SALE" | "OUT_OF_STOCK";
4829
4829
  salePrice: number;
4830
4830
  discountedPrice: number | null;
4831
4831
  stockQuantity: number;
@@ -4864,7 +4864,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
4864
4864
  attributeId: string;
4865
4865
  value: string;
4866
4866
  }[] | undefined;
4867
- deliveryType?: "FREE" | "PAID" | "CONDITIONAL_FREE" | undefined;
4867
+ deliveryType?: "PAID" | "FREE" | "CONDITIONAL_FREE" | undefined;
4868
4868
  deliveryFee?: number | undefined;
4869
4869
  conditionalFreeAmount?: number | null | undefined;
4870
4870
  returnFee?: number | undefined;
@@ -5214,7 +5214,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
5214
5214
  sellerMemo: string | null;
5215
5215
  orderedAt: string;
5216
5216
  lastChangedAt: string;
5217
- lastChangedType: "ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED";
5217
+ lastChangedType: "ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "ORDER.ADDRESS_CHANGE_REQUESTED";
5218
5218
  testPayment: boolean;
5219
5219
  }[];
5220
5220
  }>;
@@ -5273,7 +5273,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
5273
5273
  sellerMemo: string | null;
5274
5274
  orderedAt: string;
5275
5275
  lastChangedAt: string;
5276
- lastChangedType: "ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED";
5276
+ lastChangedType: "ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "ORDER.ADDRESS_CHANGE_REQUESTED";
5277
5277
  testPayment: boolean;
5278
5278
  }[];
5279
5279
  }>;
@@ -5308,7 +5308,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
5308
5308
  }>;
5309
5309
  dispatch: (orderItemId: string, body: DispatchRequest, idempotencyKey?: string) => Promise<{
5310
5310
  orderItemId: string;
5311
- deliveryMethod: "COURIER" | "DIRECT" | "QUICK" | "NOTHING";
5311
+ deliveryMethod: "DIRECT" | "COURIER" | "QUICK" | "NOTHING";
5312
5312
  carrierCode: string | null;
5313
5313
  carrierName: string | null;
5314
5314
  trackingNumber: string | null;
@@ -5358,7 +5358,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
5358
5358
  sellerMemo: string | null;
5359
5359
  orderedAt: string;
5360
5360
  lastChangedAt: string;
5361
- lastChangedType: "ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED";
5361
+ lastChangedType: "ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "ORDER.ADDRESS_CHANGE_REQUESTED";
5362
5362
  testPayment: boolean;
5363
5363
  }>;
5364
5364
  /** 배송완료 일괄 처리 — 항목별 부분 성공이다 */
@@ -5374,7 +5374,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
5374
5374
  }>;
5375
5375
  getDelivery: (orderItemId: string) => Promise<{
5376
5376
  orderItemId: string;
5377
- deliveryMethod: "COURIER" | "DIRECT" | "QUICK" | "NOTHING";
5377
+ deliveryMethod: "DIRECT" | "COURIER" | "QUICK" | "NOTHING";
5378
5378
  carrierCode: string | null;
5379
5379
  carrierName: string | null;
5380
5380
  trackingNumber: string | null;
@@ -5412,7 +5412,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
5412
5412
  contents: {
5413
5413
  claimId: string;
5414
5414
  type: "RETURN" | "EXCHANGE" | "CANCEL";
5415
- status: "REQUESTED" | "HELD" | "COLLECTING" | "COLLECTED" | "REDELIVERING" | "APPROVED" | "REJECTED" | "COMPLETED" | "WITHDRAWN";
5415
+ status: "COMPLETED" | "REQUESTED" | "HELD" | "COLLECTING" | "COLLECTED" | "REDELIVERING" | "APPROVED" | "REJECTED" | "WITHDRAWN";
5416
5416
  orderId: string;
5417
5417
  orderItemId: string;
5418
5418
  productName: string;
@@ -5449,7 +5449,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
5449
5449
  get: (claimId: string) => Promise<{
5450
5450
  claimId: string;
5451
5451
  type: "RETURN" | "EXCHANGE" | "CANCEL";
5452
- status: "REQUESTED" | "HELD" | "COLLECTING" | "COLLECTED" | "REDELIVERING" | "APPROVED" | "REJECTED" | "COMPLETED" | "WITHDRAWN";
5452
+ status: "COMPLETED" | "REQUESTED" | "HELD" | "COLLECTING" | "COLLECTED" | "REDELIVERING" | "APPROVED" | "REJECTED" | "WITHDRAWN";
5453
5453
  orderId: string;
5454
5454
  orderItemId: string;
5455
5455
  productName: string;
@@ -5482,7 +5482,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
5482
5482
  address2: string | null;
5483
5483
  } | null;
5484
5484
  histories?: {
5485
- status: "REQUESTED" | "HELD" | "COLLECTING" | "COLLECTED" | "REDELIVERING" | "APPROVED" | "REJECTED" | "COMPLETED" | "WITHDRAWN";
5485
+ status: "COMPLETED" | "REQUESTED" | "HELD" | "COLLECTING" | "COLLECTED" | "REDELIVERING" | "APPROVED" | "REJECTED" | "WITHDRAWN";
5486
5486
  actor: "BUYER" | "SELLER" | "SYSTEM";
5487
5487
  occurredAt: string;
5488
5488
  }[] | undefined;
@@ -5512,7 +5512,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
5512
5512
  completeExchange: (claimId: string) => Promise<{
5513
5513
  claimId: string;
5514
5514
  type: "RETURN" | "EXCHANGE" | "CANCEL";
5515
- status: "REQUESTED" | "HELD" | "COLLECTING" | "COLLECTED" | "REDELIVERING" | "APPROVED" | "REJECTED" | "COMPLETED" | "WITHDRAWN";
5515
+ status: "COMPLETED" | "REQUESTED" | "HELD" | "COLLECTING" | "COLLECTED" | "REDELIVERING" | "APPROVED" | "REJECTED" | "WITHDRAWN";
5516
5516
  orderId: string;
5517
5517
  orderItemId: string;
5518
5518
  productName: string;
@@ -6025,9 +6025,9 @@ export declare function createStoreClient(options: StoreClientOptions): {
6025
6025
  }>;
6026
6026
  /** `GET /v1/analytics/sources` — 채널·소스·캠페인·기기별 세션과 구매 */
6027
6027
  sources: (params: AnalyticsSourcesParams) => Promise<{
6028
- groupBy: "CHANNEL" | "SOURCE" | "CAMPAIGN" | "DEVICE";
6028
+ groupBy: "CAMPAIGN" | "CHANNEL" | "SOURCE" | "DEVICE";
6029
6029
  rows: {
6030
- channel: "PAID" | "DIRECT" | "CAMPAIGN" | "ORGANIC_SEARCH" | "SOCIAL" | "EMAIL" | "REFERRAL" | "UNKNOWN" | null;
6030
+ channel: "DIRECT" | "ORGANIC_SEARCH" | "SOCIAL" | "PAID" | "EMAIL" | "CAMPAIGN" | "REFERRAL" | "UNKNOWN" | null;
6031
6031
  source: string | null;
6032
6032
  medium: string | null;
6033
6033
  campaign: string | null;
@@ -6132,7 +6132,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
6132
6132
  checkout: (params: AnalyticsRangeParams) => Promise<{
6133
6133
  sessions: number;
6134
6134
  outcomes: {
6135
- outcome: "OTHER" | "COMPLETED" | "NOT_OPENED" | "USER_CANCELED" | "DECLINED" | "PREPARE_FAILURE" | "IN_PROGRESS";
6135
+ outcome: "COMPLETED" | "NOT_OPENED" | "USER_CANCELED" | "DECLINED" | "PREPARE_FAILURE" | "OTHER" | "IN_PROGRESS";
6136
6136
  sessions: number;
6137
6137
  }[];
6138
6138
  from: string;
@@ -6981,7 +6981,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
6981
6981
  list: () => Promise<{
6982
6982
  webhookId: string;
6983
6983
  url: string;
6984
- eventTypes: ("ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK")[];
6984
+ eventTypes: ("ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK")[];
6985
6985
  status: "ACTIVE" | "SUSPENDED";
6986
6986
  secretPrefix: string;
6987
6987
  suspendedAt: string | null;
@@ -6991,7 +6991,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
6991
6991
  create: (body: WebhookRequest) => Promise<{
6992
6992
  webhookId: string;
6993
6993
  url: string;
6994
- eventTypes: ("ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK")[];
6994
+ eventTypes: ("ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK")[];
6995
6995
  status: "ACTIVE" | "SUSPENDED";
6996
6996
  secretPrefix: string;
6997
6997
  suspendedAt: string | null;
@@ -7001,7 +7001,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
7001
7001
  get: (webhookId: string) => Promise<{
7002
7002
  webhookId: string;
7003
7003
  url: string;
7004
- eventTypes: ("ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK")[];
7004
+ eventTypes: ("ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK")[];
7005
7005
  status: "ACTIVE" | "SUSPENDED";
7006
7006
  secretPrefix: string;
7007
7007
  suspendedAt: string | null;
@@ -7011,7 +7011,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
7011
7011
  update: (webhookId: string, body: WebhookRequest) => Promise<{
7012
7012
  webhookId: string;
7013
7013
  url: string;
7014
- eventTypes: ("ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK")[];
7014
+ eventTypes: ("ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK")[];
7015
7015
  status: "ACTIVE" | "SUSPENDED";
7016
7016
  secretPrefix: string;
7017
7017
  suspendedAt: string | null;
@@ -7026,7 +7026,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
7026
7026
  resume: (webhookId: string) => Promise<{
7027
7027
  webhookId: string;
7028
7028
  url: string;
7029
- eventTypes: ("ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK")[];
7029
+ eventTypes: ("ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK")[];
7030
7030
  status: "ACTIVE" | "SUSPENDED";
7031
7031
  secretPrefix: string;
7032
7032
  suspendedAt: string | null;
@@ -7036,7 +7036,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
7036
7036
  listDeliveries: (webhookId: string, params?: WebhookDeliveryListParams) => Promise<{
7037
7037
  deliveryId: string;
7038
7038
  eventId: string;
7039
- eventType: "ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK";
7039
+ eventType: "ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK";
7040
7040
  url: string;
7041
7041
  status: "PENDING" | "PENDING_RETRY" | "SUCCESS" | "FAILED";
7042
7042
  responseStatusCode: number | null;
@@ -7063,7 +7063,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
7063
7063
  getDelivery: (webhookId: string, deliveryId: string) => Promise<{
7064
7064
  deliveryId: string;
7065
7065
  eventId: string;
7066
- eventType: "ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK";
7066
+ eventType: "ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK";
7067
7067
  url: string;
7068
7068
  status: "PENDING" | "PENDING_RETRY" | "SUCCESS" | "FAILED";
7069
7069
  responseStatusCode: number | null;
@@ -7098,7 +7098,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
7098
7098
  redeliver: (webhookId: string, deliveryId: string) => Promise<{
7099
7099
  deliveryId: string;
7100
7100
  eventId: string;
7101
- eventType: "ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK";
7101
+ eventType: "ORDER.PAID" | "ORDER.CONFIRMED" | "ORDER.DISPATCHED" | "ORDER.DELIVERED" | "ORDER.PURCHASE_DECIDED" | "CLAIM.CANCEL_REQUESTED" | "CLAIM.RETURN_REQUESTED" | "CLAIM.EXCHANGE_REQUESTED" | "CLAIM.COMPLETED" | "ORDER.ADDRESS_CHANGE_REQUESTED" | "INQUIRY.CREATED" | "REVIEW.CREATED" | "PRODUCT.OUT_OF_STOCK";
7102
7102
  url: string;
7103
7103
  status: "PENDING" | "PENDING_RETRY" | "SUCCESS" | "FAILED";
7104
7104
  responseStatusCode: number | null;
@@ -7327,7 +7327,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
7327
7327
  invitationId: string;
7328
7328
  email: string;
7329
7329
  role: "ADMIN" | "STAFF";
7330
- status: "PENDING" | "CANCELED" | "ACCEPTED" | "EXPIRED";
7330
+ status: "CANCELED" | "PENDING" | "ACCEPTED" | "EXPIRED";
7331
7331
  invitedBy: string;
7332
7332
  expiresAt: string;
7333
7333
  createdAt: string;
@@ -7710,6 +7710,56 @@ export interface DeliveryQuoteInput {
7710
7710
  */
7711
7711
  export declare function quoteDelivery(input: DeliveryQuoteInput): DeliveryQuote;
7712
7712
  //#endregion
7713
+ //#region src/schemas/telemetry.d.ts
7714
+ /**
7715
+ * MCP 도구 호출 계측 (`POST /v1/telemetry/mcp`, 이슈 #34).
7716
+ *
7717
+ * `@sayren/mcp`가 `verify_storefront` 같은 도구를 돌린 뒤 결과 요약을 보낸다. 목적은 하나다 —
7718
+ * AI가 만든 스토어프론트가 **처음에** 규칙을 통과하는지, 통과하지 못하면 어떤 규칙에서 막히는지를
7719
+ * 세는 것이다. 그 숫자가 규칙과 안내를 고치는 근거가 된다.
7720
+ *
7721
+ * **보내지 않는 것**: 파일 경로·소스 코드·위반 상세(`detail`)·토큰·사람 식별자. 규칙 id와 개수뿐이다.
7722
+ * 테넌트는 요청 토큰이 정한다(본문에 스토어 id가 없다). 옵트아웃은 클라이언트의 `SAYREN_TELEMETRY=0`이다.
7723
+ *
7724
+ * 알 수 없는 키는 저장하지 않고 버린다(`.strict()`를 쓰지 않는다) — 새 버전 클라이언트가 필드를
7725
+ * 하나 더 실었다고 계측 전체가 400으로 날아가면 그 버전의 숫자가 통째로 빈다.
7726
+ */
7727
+ /** 규칙 하나의 검사 결과. `ruleId`는 늘어나므로 enum이 아니라 형식만 좁힌다 */
7728
+ export declare const mcpRuleResultSchema: z.ZodObject<{
7729
+ ruleId: z.ZodString;
7730
+ status: z.ZodEnum<{
7731
+ pass: "pass";
7732
+ violation: "violation";
7733
+ }>;
7734
+ count: z.ZodNumber;
7735
+ }, z.core.$strip>;
7736
+ export type McpRuleResult = z.infer<typeof mcpRuleResultSchema>;
7737
+ /**
7738
+ * 한 번에 실을 수 있는 규칙 결과 수 — 규칙 수(현재 16개)의 두 배까지다.
7739
+ *
7740
+ * 규칙 수 수준으로 좁게 둔다. 이 배열이 그대로 `mcp_tool_events.results` jsonb가 되므로 상한이
7741
+ * 넉넉하면 한 행의 크기가 그만큼 커지고, 집계가 그 jsonb를 펼친다.
7742
+ */
7743
+ export declare const MCP_TELEMETRY_MAX_RESULTS = 32;
7744
+ export declare const mcpToolEventSchema: z.ZodObject<{
7745
+ tool: z.ZodString;
7746
+ clientVersion: z.ZodOptional<z.ZodString>;
7747
+ sessionId: z.ZodString;
7748
+ attempt: z.ZodNumber;
7749
+ durationMs: z.ZodOptional<z.ZodNumber>;
7750
+ ok: z.ZodBoolean;
7751
+ checkedFiles: z.ZodNumber;
7752
+ results: z.ZodArray<z.ZodObject<{
7753
+ ruleId: z.ZodString;
7754
+ status: z.ZodEnum<{
7755
+ pass: "pass";
7756
+ violation: "violation";
7757
+ }>;
7758
+ count: z.ZodNumber;
7759
+ }, z.core.$strip>>;
7760
+ }, z.core.$strip>;
7761
+ export type McpToolEvent = z.infer<typeof mcpToolEventSchema>;
7762
+ //#endregion
7713
7763
  //#region src/schemas/webhook-event.d.ts
7714
7764
  export declare const orderWebhookEventDataSchema: z.ZodObject<{
7715
7765
  orderId: z.ZodString;
@@ -7736,6 +7786,7 @@ export declare const claimWebhookEventDataSchema: z.ZodObject<{
7736
7786
  CANCEL: "CANCEL";
7737
7787
  }>;
7738
7788
  status: z.ZodEnum<{
7789
+ COMPLETED: "COMPLETED";
7739
7790
  REQUESTED: "REQUESTED";
7740
7791
  HELD: "HELD";
7741
7792
  COLLECTING: "COLLECTING";
@@ -7743,7 +7794,6 @@ export declare const claimWebhookEventDataSchema: z.ZodObject<{
7743
7794
  REDELIVERING: "REDELIVERING";
7744
7795
  APPROVED: "APPROVED";
7745
7796
  REJECTED: "REJECTED";
7746
- COMPLETED: "COMPLETED";
7747
7797
  WITHDRAWN: "WITHDRAWN";
7748
7798
  }>;
7749
7799
  quantity: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
@@ -7814,6 +7864,7 @@ export declare const claimWebhookEventSchema: z.ZodObject<{
7814
7864
  CANCEL: "CANCEL";
7815
7865
  }>;
7816
7866
  status: z.ZodEnum<{
7867
+ COMPLETED: "COMPLETED";
7817
7868
  REQUESTED: "REQUESTED";
7818
7869
  HELD: "HELD";
7819
7870
  COLLECTING: "COLLECTING";
@@ -7821,7 +7872,6 @@ export declare const claimWebhookEventSchema: z.ZodObject<{
7821
7872
  REDELIVERING: "REDELIVERING";
7822
7873
  APPROVED: "APPROVED";
7823
7874
  REJECTED: "REJECTED";
7824
- COMPLETED: "COMPLETED";
7825
7875
  WITHDRAWN: "WITHDRAWN";
7826
7876
  }>;
7827
7877
  quantity: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
@@ -7910,6 +7960,7 @@ export declare const webhookEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
7910
7960
  CANCEL: "CANCEL";
7911
7961
  }>;
7912
7962
  status: z.ZodEnum<{
7963
+ COMPLETED: "COMPLETED";
7913
7964
  REQUESTED: "REQUESTED";
7914
7965
  HELD: "HELD";
7915
7966
  COLLECTING: "COLLECTING";
@@ -7917,7 +7968,6 @@ export declare const webhookEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
7917
7968
  REDELIVERING: "REDELIVERING";
7918
7969
  APPROVED: "APPROVED";
7919
7970
  REJECTED: "REJECTED";
7920
- COMPLETED: "COMPLETED";
7921
7971
  WITHDRAWN: "WITHDRAWN";
7922
7972
  }>;
7923
7973
  quantity: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
package/dist/index.mjs CHANGED
@@ -3668,6 +3668,44 @@ const STORE_ROLE_SCOPES = {
3668
3668
  ]
3669
3669
  };
3670
3670
  //#endregion
3671
+ //#region src/schemas/telemetry.ts
3672
+ /**
3673
+ * MCP 도구 호출 계측 (`POST /v1/telemetry/mcp`, 이슈 #34).
3674
+ *
3675
+ * `@sayren/mcp`가 `verify_storefront` 같은 도구를 돌린 뒤 결과 요약을 보낸다. 목적은 하나다 —
3676
+ * AI가 만든 스토어프론트가 **처음에** 규칙을 통과하는지, 통과하지 못하면 어떤 규칙에서 막히는지를
3677
+ * 세는 것이다. 그 숫자가 규칙과 안내를 고치는 근거가 된다.
3678
+ *
3679
+ * **보내지 않는 것**: 파일 경로·소스 코드·위반 상세(`detail`)·토큰·사람 식별자. 규칙 id와 개수뿐이다.
3680
+ * 테넌트는 요청 토큰이 정한다(본문에 스토어 id가 없다). 옵트아웃은 클라이언트의 `SAYREN_TELEMETRY=0`이다.
3681
+ *
3682
+ * 알 수 없는 키는 저장하지 않고 버린다(`.strict()`를 쓰지 않는다) — 새 버전 클라이언트가 필드를
3683
+ * 하나 더 실었다고 계측 전체가 400으로 날아가면 그 버전의 숫자가 통째로 빈다.
3684
+ */
3685
+ /** 규칙 하나의 검사 결과. `ruleId`는 늘어나므로 enum이 아니라 형식만 좁힌다 */
3686
+ const mcpRuleResultSchema = z.object({
3687
+ ruleId: z.string().min(1).max(64).regex(/^[a-z0-9][a-z0-9-]*$/, "규칙 id는 소문자·숫자·하이픈입니다").describe("검사한 규칙 id (예: `payment-popup-prepare`)"),
3688
+ status: z.enum(["pass", "violation"]).describe("통과했는가"),
3689
+ count: z.number().int().min(0).max(1e4).describe("이 규칙으로 잡힌 위반 수. 통과면 0")
3690
+ });
3691
+ /**
3692
+ * 한 번에 실을 수 있는 규칙 결과 수 — 규칙 수(현재 16개)의 두 배까지다.
3693
+ *
3694
+ * 규칙 수 수준으로 좁게 둔다. 이 배열이 그대로 `mcp_tool_events.results` jsonb가 되므로 상한이
3695
+ * 넉넉하면 한 행의 크기가 그만큼 커지고, 집계가 그 jsonb를 펼친다.
3696
+ */
3697
+ const MCP_TELEMETRY_MAX_RESULTS = 32;
3698
+ const mcpToolEventSchema = z.object({
3699
+ tool: z.string().regex(/^[a-z][a-z0-9_]{0,39}$/, "도구 이름 형식이 올바르지 않습니다").describe("도구 이름 (예: `verify_storefront`). CLI가 부른 검사는 `create`"),
3700
+ clientVersion: z.string().max(40).regex(/^[\w.+-]+$/, "버전 형식이 올바르지 않습니다").optional().describe("`@sayren/mcp` 버전. 버전별로 첫 통과율이 나아졌는지 본다"),
3701
+ sessionId: z.string().min(8).max(64).regex(/^[A-Za-z0-9_-]+$/, "세션 id 형식이 올바르지 않습니다").describe("클라이언트 프로세스당 랜덤 값. 사람·기기를 식별하지 않는다"),
3702
+ attempt: z.number().int().min(1).max(1e3).describe("이 세션 안에서 같은 도구를 부른 순번(1부터)"),
3703
+ durationMs: z.number().int().min(0).max(36e5).optional().describe("도구 실행 시간(ms)"),
3704
+ ok: z.boolean().describe("위반이 없었는가"),
3705
+ checkedFiles: z.number().int().min(0).max(1e5).describe("검사한 소스 파일 수"),
3706
+ results: z.array(mcpRuleResultSchema).max(32).refine((results) => new Set(results.map((result) => result.ruleId)).size === results.length, { message: "같은 규칙 id를 두 번 실을 수 없습니다" }).describe("규칙별 통과·위반. 규칙 id는 중복될 수 없고 파일 경로와 위반 상세는 싣지 않는다")
3707
+ });
3708
+ //#endregion
3671
3709
  //#region src/schemas/webhook-event.ts
3672
3710
  const envelopeFields = {
3673
3711
  id: z.string().describe("이벤트 ID (`evt_…`, 테스트 전송은 `evt_test_…`). 중복 제거 키"),
@@ -3900,4 +3938,4 @@ function createStoreSession(options) {
3900
3938
  };
3901
3939
  }
3902
3940
  //#endregion
3903
- export { ApiError, CASH_RECEIPT_STATUS_VALUES, MAX_ANALYTICS_ALLOWED_ORIGINS, MAX_AUTO_TRANSITION_DAYS, MAX_OPTION_GROUPS, MAX_PRODUCT_IMAGES, MAX_VALUES_PER_GROUP, MAX_VARIANTS, PAYMENT_ROUTING_EXCLUSION_CODES, PORTONE_CHANNEL_NAME_MAX_LENGTH, PORTONE_MAX_CHANNELS, PORTONE_MIN_CHANNELS, REFUND_POLICY_DEFAULTS, REMOTE_AREA_ZIP_RANGES, RESERVED_STORE_CODES, SHIPPING_POLICY_DEFAULTS, 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, UPLOAD_PURPOSE_LIMITS, VARIANT_STOCK_EXCLUSIVE_MESSAGE, WEBHOOK_DEFAULT_TOLERANCE_SEC, WEBHOOK_DELIVERY_ID_HEADER, WEBHOOK_EVENT_ID_HEADER, WEBHOOK_EVENT_TYPE_HEADER, WEBHOOK_FAILURE_REASONS, WEBHOOK_HEADERS, WEBHOOK_PAYLOAD_EXCERPT_MAX_BYTES, WEBHOOK_RESOURCE_TYPES, WEBHOOK_SIGNATURE_HEADER, WEBHOOK_USER_AGENT, addressChangeRequestListSchema, addressTypeSchema, analyticsChannelSchema, analyticsCheckoutOutcomeSchema, analyticsCheckoutSchema, analyticsDeviceRowSchema, analyticsDevicesSchema, analyticsFunnelStepSchema, analyticsOriginSchema, analyticsOverviewSchema, analyticsPagesQuerySchema, analyticsPagesSchema, analyticsProductRowSchema, analyticsProductSortSchema, analyticsProductsQuerySchema, analyticsProductsSchema, analyticsRangeQuerySchema, analyticsRealtimeSchema, analyticsSearchQuerySchema, analyticsSearchSchema, 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, cashReceiptSchema, categoryAttributeSchema, categoryCreateRequestSchema, categoryDeleteQuerySchema, categoryDeleteStrategySchema, categoryListQuerySchema, categoryPatchRequestSchema, categoryProductSortSchema, categorySchema, categorySearchResultSchema, categoryTreeNodeSchema, categoryWithPathSchema, changeTypeSchema, claimDetailSchema, claimHoldResultSchema, claimListQuerySchema, claimReasonSchema, claimReturnAddressSchema, claimSchema, claimStatusSchema, claimTypeSchema, claimWebhookEventDataSchema, claimWebhookEventSchema, clientCredentialsTokenResponseSchema, consentActionSchema, consentKindSchema, consentSourceSchema, createPkcePair, createStoreClient, createStoreSession, customerAddressSchema, customerConsentListQuerySchema, customerConsentSchema, customerConsentStateSchema, customerConsentsSchema, customerDetailSchema, customerInquiryCategorySchema, customerInquiryListQuerySchema, customerListQuerySchema, customerOrderSchema, customerSortSchema, customerStatsSchema, customerSummarySchema, customerWithdrawalBlockedDetailsSchema, deliveryBundleKeyOf, deliveryFeeWaiverSchema, deliveryInfoSchema, deliveryMethodSchema, deliveryStatusSchema, deliveryTypeSchema, discountRequestSchema, discountSchema, dispatchRequestSchema, easyPayProviderResponseSchema, easyPayProviderSchema, eventTypeSchema, exchangeAuthorizationCode, exchangeStoreTokenViaOAuth, holdOrderItemRequestSchema, inquiryListQuerySchema, inquirySchema, inquiryWebhookEventDataSchema, inquiryWebhookEventSchema, invitationListQuerySchema, invitationSchema, isReservedStoreCode, isStoreScope, isWebOrigin, liveGateConditionCodeSchema, liveGateConditionSchema, liveGateErrorDetailsSchema, liveGateSchema, loginProviderSchema, loginProviderStatusSchema, loginProviderTestSchema, loginSettingsSchema, 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, paymentSettingsSchema, pgEnvironmentSchema, pgPaymentMethodSchema, pgProviderSchema, pgVerificationResultSchema, policyDocumentUrlSchema, policyVersionSchema, portOneChannelSchema, portOneCredentialsInputSchema, productCreateRequestSchema, productImageRejection, productImageUrlSchema, productListQuerySchema, productOutOfStockWebhookEventDataSchema, productOutOfStockWebhookEventSchema, productPatchRequestSchema, productRefundPolicyOverride, productSchema, productSortSchema, productStatusSchema, productSummarySchema, productVariantRequestSchema, productVariantSchema, proratedRefundBase, purchaseDecisionExtendResultSchema, purchaseDecisionRequestResultSchema, quoteDelivery, refreshUserToken, refundPolicyPatchSchema, refundPolicySchema, rejectClaimRequestSchema, remoteAreaLabelOf, remoteAreaOf, remoteAreaSchema, remoteSurchargeOf, resolveRefundPolicy, resolveShippingPolicy, reviewListQuerySchema, reviewReportResultSchema, reviewSchema, reviewSortSchema, reviewWebhookEventDataSchema, reviewWebhookEventSchema, salesReportGroupBySchema, salesReportQuerySchema, salesReportRowSchema, salesReportSchema, salesTotalsSchema, saveLoginProviderRequestSchema, scopeAccessSchema, sellerAddressListQuerySchema, sellerAddressRequestSchema, sellerAddressSchema, sellerCustomerInquirySchema, settlementDetailQuerySchema, settlementDetailSchema, settlementListQuerySchema, settlementStatusSchema, settlementSummarySchema, settlementWithDetailsSchema, shippingAddressSchema, shippingPolicyPatchSchema, shippingPolicySchema, storeCodeSchema, storeMemberRoleUpdatedSchema, storeMemberSchema, storeRoleSchema, storeSchema, storeScopeResourceSchema, storeTokenResponseSchema, tossPaymentsCredentialsInputSchema, trackingStageResponseSchema, trackingUpdateResultSchema, updateLoginProviderRequestSchema, updateLoginSettingsRequestSchema, updatePaymentProviderRequestSchema, updatePaymentSettingsRequestSchema, updateStoreRequestSchema, uploadExtensionOf, uploadPurposeSchema, uploadRejection, uploadRequestSchema, uploadTicketSchema, upsertPortOneProviderRequestSchema, upsertTossPaymentsProviderRequestSchema, userTokenResponseSchema, variantStockRequestSchema, variantStockSchema, verifyPaymentProviderRequestSchema, webhookCreatedSchema, webhookDeliveryDetailSchema, webhookDeliveryErrorCodeSchema, webhookDeliveryListQuerySchema, webhookDeliveryResourceSchema, webhookDeliverySchema, webhookDeliveryStatusSchema, webhookEventSchema, webhookFailureReasonSchema, webhookRedeliverFailedResultSchema, webhookRequestHeaderSchema, webhookRequestSchema, webhookResourceTypeSchema, webhookSchema, webhookSecretRotatedSchema, webhookStatusSchema, webhookTestRequestSchema, webhookTestResultSchema, withdrawCustomerRequestSchema };
3941
+ export { ApiError, CASH_RECEIPT_STATUS_VALUES, MAX_ANALYTICS_ALLOWED_ORIGINS, MAX_AUTO_TRANSITION_DAYS, MAX_OPTION_GROUPS, MAX_PRODUCT_IMAGES, MAX_VALUES_PER_GROUP, MAX_VARIANTS, MCP_TELEMETRY_MAX_RESULTS, PAYMENT_ROUTING_EXCLUSION_CODES, PORTONE_CHANNEL_NAME_MAX_LENGTH, PORTONE_MAX_CHANNELS, PORTONE_MIN_CHANNELS, REFUND_POLICY_DEFAULTS, REMOTE_AREA_ZIP_RANGES, RESERVED_STORE_CODES, SHIPPING_POLICY_DEFAULTS, 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, UPLOAD_PURPOSE_LIMITS, VARIANT_STOCK_EXCLUSIVE_MESSAGE, WEBHOOK_DEFAULT_TOLERANCE_SEC, WEBHOOK_DELIVERY_ID_HEADER, WEBHOOK_EVENT_ID_HEADER, WEBHOOK_EVENT_TYPE_HEADER, WEBHOOK_FAILURE_REASONS, WEBHOOK_HEADERS, WEBHOOK_PAYLOAD_EXCERPT_MAX_BYTES, WEBHOOK_RESOURCE_TYPES, WEBHOOK_SIGNATURE_HEADER, WEBHOOK_USER_AGENT, addressChangeRequestListSchema, addressTypeSchema, analyticsChannelSchema, analyticsCheckoutOutcomeSchema, analyticsCheckoutSchema, analyticsDeviceRowSchema, analyticsDevicesSchema, analyticsFunnelStepSchema, analyticsOriginSchema, analyticsOverviewSchema, analyticsPagesQuerySchema, analyticsPagesSchema, analyticsProductRowSchema, analyticsProductSortSchema, analyticsProductsQuerySchema, analyticsProductsSchema, analyticsRangeQuerySchema, analyticsRealtimeSchema, analyticsSearchQuerySchema, analyticsSearchSchema, 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, cashReceiptSchema, categoryAttributeSchema, categoryCreateRequestSchema, categoryDeleteQuerySchema, categoryDeleteStrategySchema, categoryListQuerySchema, categoryPatchRequestSchema, categoryProductSortSchema, categorySchema, categorySearchResultSchema, categoryTreeNodeSchema, categoryWithPathSchema, changeTypeSchema, claimDetailSchema, claimHoldResultSchema, claimListQuerySchema, claimReasonSchema, claimReturnAddressSchema, claimSchema, claimStatusSchema, claimTypeSchema, claimWebhookEventDataSchema, claimWebhookEventSchema, clientCredentialsTokenResponseSchema, consentActionSchema, consentKindSchema, consentSourceSchema, createPkcePair, createStoreClient, createStoreSession, customerAddressSchema, customerConsentListQuerySchema, customerConsentSchema, customerConsentStateSchema, customerConsentsSchema, customerDetailSchema, customerInquiryCategorySchema, customerInquiryListQuerySchema, customerListQuerySchema, customerOrderSchema, customerSortSchema, customerStatsSchema, customerSummarySchema, customerWithdrawalBlockedDetailsSchema, deliveryBundleKeyOf, deliveryFeeWaiverSchema, deliveryInfoSchema, deliveryMethodSchema, deliveryStatusSchema, deliveryTypeSchema, discountRequestSchema, discountSchema, dispatchRequestSchema, easyPayProviderResponseSchema, easyPayProviderSchema, eventTypeSchema, exchangeAuthorizationCode, exchangeStoreTokenViaOAuth, holdOrderItemRequestSchema, inquiryListQuerySchema, inquirySchema, inquiryWebhookEventDataSchema, inquiryWebhookEventSchema, invitationListQuerySchema, invitationSchema, isReservedStoreCode, isStoreScope, isWebOrigin, liveGateConditionCodeSchema, liveGateConditionSchema, liveGateErrorDetailsSchema, liveGateSchema, loginProviderSchema, loginProviderStatusSchema, loginProviderTestSchema, loginSettingsSchema, maskedSecretSchema, mcpRuleResultSchema, mcpToolEventSchema, 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, paymentSettingsSchema, pgEnvironmentSchema, pgPaymentMethodSchema, pgProviderSchema, pgVerificationResultSchema, policyDocumentUrlSchema, policyVersionSchema, portOneChannelSchema, portOneCredentialsInputSchema, productCreateRequestSchema, productImageRejection, productImageUrlSchema, productListQuerySchema, productOutOfStockWebhookEventDataSchema, productOutOfStockWebhookEventSchema, productPatchRequestSchema, productRefundPolicyOverride, productSchema, productSortSchema, productStatusSchema, productSummarySchema, productVariantRequestSchema, productVariantSchema, proratedRefundBase, purchaseDecisionExtendResultSchema, purchaseDecisionRequestResultSchema, quoteDelivery, refreshUserToken, refundPolicyPatchSchema, refundPolicySchema, rejectClaimRequestSchema, remoteAreaLabelOf, remoteAreaOf, remoteAreaSchema, remoteSurchargeOf, resolveRefundPolicy, resolveShippingPolicy, reviewListQuerySchema, reviewReportResultSchema, reviewSchema, reviewSortSchema, reviewWebhookEventDataSchema, reviewWebhookEventSchema, salesReportGroupBySchema, salesReportQuerySchema, salesReportRowSchema, salesReportSchema, salesTotalsSchema, saveLoginProviderRequestSchema, scopeAccessSchema, sellerAddressListQuerySchema, sellerAddressRequestSchema, sellerAddressSchema, sellerCustomerInquirySchema, settlementDetailQuerySchema, settlementDetailSchema, settlementListQuerySchema, settlementStatusSchema, settlementSummarySchema, settlementWithDetailsSchema, shippingAddressSchema, shippingPolicyPatchSchema, shippingPolicySchema, storeCodeSchema, storeMemberRoleUpdatedSchema, storeMemberSchema, storeRoleSchema, storeSchema, storeScopeResourceSchema, storeTokenResponseSchema, tossPaymentsCredentialsInputSchema, trackingStageResponseSchema, trackingUpdateResultSchema, updateLoginProviderRequestSchema, updateLoginSettingsRequestSchema, updatePaymentProviderRequestSchema, updatePaymentSettingsRequestSchema, updateStoreRequestSchema, uploadExtensionOf, uploadPurposeSchema, uploadRejection, uploadRequestSchema, uploadTicketSchema, upsertPortOneProviderRequestSchema, upsertTossPaymentsProviderRequestSchema, userTokenResponseSchema, variantStockRequestSchema, variantStockSchema, verifyPaymentProviderRequestSchema, webhookCreatedSchema, webhookDeliveryDetailSchema, webhookDeliveryErrorCodeSchema, webhookDeliveryListQuerySchema, webhookDeliveryResourceSchema, webhookDeliverySchema, webhookDeliveryStatusSchema, webhookEventSchema, webhookFailureReasonSchema, webhookRedeliverFailedResultSchema, webhookRequestHeaderSchema, webhookRequestSchema, webhookResourceTypeSchema, webhookSchema, webhookSecretRotatedSchema, webhookStatusSchema, webhookTestRequestSchema, webhookTestResultSchema, withdrawCustomerRequestSchema };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sayren/store-sdk",
3
- "version": "0.12.0",
3
+ "version": "0.13.0",
4
4
  "main": "./dist/index.mjs",
5
5
  "types": "./dist/index.d.mts",
6
6
  "exports": {
package/src/index.ts CHANGED
@@ -28,6 +28,7 @@ export * from "./schemas/refund-policy";
28
28
  export * from "./schemas/scope";
29
29
  export * from "./schemas/shipping-policy";
30
30
  export * from "./schemas/store";
31
+ export * from "./schemas/telemetry";
31
32
  export * from "./schemas/upload";
32
33
  export * from "./schemas/webhook-event";
33
34
  export {
@@ -0,0 +1,74 @@
1
+ import { z } from "zod";
2
+
3
+ /**
4
+ * MCP 도구 호출 계측 (`POST /v1/telemetry/mcp`, 이슈 #34).
5
+ *
6
+ * `@sayren/mcp`가 `verify_storefront` 같은 도구를 돌린 뒤 결과 요약을 보낸다. 목적은 하나다 —
7
+ * AI가 만든 스토어프론트가 **처음에** 규칙을 통과하는지, 통과하지 못하면 어떤 규칙에서 막히는지를
8
+ * 세는 것이다. 그 숫자가 규칙과 안내를 고치는 근거가 된다.
9
+ *
10
+ * **보내지 않는 것**: 파일 경로·소스 코드·위반 상세(`detail`)·토큰·사람 식별자. 규칙 id와 개수뿐이다.
11
+ * 테넌트는 요청 토큰이 정한다(본문에 스토어 id가 없다). 옵트아웃은 클라이언트의 `SAYREN_TELEMETRY=0`이다.
12
+ *
13
+ * 알 수 없는 키는 저장하지 않고 버린다(`.strict()`를 쓰지 않는다) — 새 버전 클라이언트가 필드를
14
+ * 하나 더 실었다고 계측 전체가 400으로 날아가면 그 버전의 숫자가 통째로 빈다.
15
+ */
16
+
17
+ /** 규칙 하나의 검사 결과. `ruleId`는 늘어나므로 enum이 아니라 형식만 좁힌다 */
18
+ export const mcpRuleResultSchema = z.object({
19
+ ruleId: z
20
+ .string()
21
+ .min(1)
22
+ .max(64)
23
+ .regex(/^[a-z0-9][a-z0-9-]*$/, "규칙 id는 소문자·숫자·하이픈입니다")
24
+ .describe("검사한 규칙 id (예: `payment-popup-prepare`)"),
25
+ status: z.enum(["pass", "violation"]).describe("통과했는가"),
26
+ count: z.number().int().min(0).max(10_000).describe("이 규칙으로 잡힌 위반 수. 통과면 0"),
27
+ });
28
+ export type McpRuleResult = z.infer<typeof mcpRuleResultSchema>;
29
+
30
+ /**
31
+ * 한 번에 실을 수 있는 규칙 결과 수 — 규칙 수(현재 16개)의 두 배까지다.
32
+ *
33
+ * 규칙 수 수준으로 좁게 둔다. 이 배열이 그대로 `mcp_tool_events.results` jsonb가 되므로 상한이
34
+ * 넉넉하면 한 행의 크기가 그만큼 커지고, 집계가 그 jsonb를 펼친다.
35
+ */
36
+ export const MCP_TELEMETRY_MAX_RESULTS = 32;
37
+
38
+ export const mcpToolEventSchema = z.object({
39
+ tool: z
40
+ .string()
41
+ .regex(/^[a-z][a-z0-9_]{0,39}$/, "도구 이름 형식이 올바르지 않습니다")
42
+ .describe("도구 이름 (예: `verify_storefront`). CLI가 부른 검사는 `create`"),
43
+ clientVersion: z
44
+ .string()
45
+ .max(40)
46
+ .regex(/^[\w.+-]+$/, "버전 형식이 올바르지 않습니다")
47
+ .optional()
48
+ .describe("`@sayren/mcp` 버전. 버전별로 첫 통과율이 나아졌는지 본다"),
49
+ sessionId: z
50
+ .string()
51
+ .min(8)
52
+ .max(64)
53
+ .regex(/^[A-Za-z0-9_-]+$/, "세션 id 형식이 올바르지 않습니다")
54
+ .describe("클라이언트 프로세스당 랜덤 값. 사람·기기를 식별하지 않는다"),
55
+ attempt: z
56
+ .number()
57
+ .int()
58
+ .min(1)
59
+ .max(1_000)
60
+ .describe("이 세션 안에서 같은 도구를 부른 순번(1부터)"),
61
+ durationMs: z.number().int().min(0).max(3_600_000).optional().describe("도구 실행 시간(ms)"),
62
+ ok: z.boolean().describe("위반이 없었는가"),
63
+ checkedFiles: z.number().int().min(0).max(100_000).describe("검사한 소스 파일 수"),
64
+ results: z
65
+ .array(mcpRuleResultSchema)
66
+ .max(MCP_TELEMETRY_MAX_RESULTS)
67
+ // 규칙 하나당 한 줄이다. 같은 id를 여러 줄로 실으면 집계가 한 스토어의 한 규칙을 몇 번 세야
68
+ // 하는지 정할 수 없고, 상한만큼 같은 규칙을 반복해 보내는 것이 저장을 부풀리는 길이 된다.
69
+ .refine((results) => new Set(results.map((result) => result.ruleId)).size === results.length, {
70
+ message: "같은 규칙 id를 두 번 실을 수 없습니다",
71
+ })
72
+ .describe("규칙별 통과·위반. 규칙 id는 중복될 수 없고 파일 경로와 위반 상세는 싣지 않는다"),
73
+ });
74
+ export type McpToolEvent = z.infer<typeof mcpToolEventSchema>;