@sayren/store-sdk 0.68.0 → 0.69.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 +860 -1239
- package/dist/index.mjs +47 -187
- package/package.json +1 -1
- package/src/client.ts +0 -18
- package/src/index.ts +0 -1
- package/src/schemas/ai.ts +7 -0
- package/src/schemas/storefront-hosting.ts +11 -2
- package/src/schemas/subscription.ts +1 -103
- package/src/schemas/plans.ts +0 -105
package/src/schemas/plans.ts
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import * as z from "zod";
|
|
2
|
-
import { responsePlanCodeSchema } from "./subscription";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* 요금제 비교표 — `GET /v1/public/plans`(인증 없음). 요금제마다 가격과 기능 키 값을 준다. 값은 서버가 관리하고(사내 어드민 게시) 언제든
|
|
6
|
-
* 바뀔 수 있으니 코드에 요금제 수치를 두지 않는다. 상점 하나의 구독·사용량은 `subscription.ts`다
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
const limitOrContract = (description: string) =>
|
|
10
|
-
z.number().int().nullable().describe(`${description}. null이면 계약(엔터프라이즈)·한도 없음`);
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* 요금제 기능 키 값 — 요금제 비교표·상점 플랫폼 요금제 화면이 쓴다. 키는 서버 판정의 기능 키와 같다(추가만 한다 — 예외는 0.53에서 지운
|
|
14
|
-
* `limits.ai_credits_monthly`). 상위 요금제는 하위 요금제 기능을 모두 포함한다
|
|
15
|
-
*/
|
|
16
|
-
export const planEntitlementsSchema = z
|
|
17
|
-
.object({
|
|
18
|
-
"features.members": z
|
|
19
|
-
.boolean()
|
|
20
|
-
.describe("소유자 외 구성원(관리자·직원)의 초대와 상점 접근. false면 소유자만 쓴다"),
|
|
21
|
-
"features.admin_api": z
|
|
22
|
-
.boolean()
|
|
23
|
-
.describe(
|
|
24
|
-
"관리 API(개인 액세스 토큰·외부 앱 토큰 호출). 상점 플랫폼·CLI·MCP는 모든 요금제에서 쓴다",
|
|
25
|
-
),
|
|
26
|
-
"features.analytics": z.boolean().describe("애널리틱스 화면·조회 API"),
|
|
27
|
-
"features.ai_assistant": z
|
|
28
|
-
.boolean()
|
|
29
|
-
.optional()
|
|
30
|
-
.describe("AI 상점 도우미. false면 새 실행을 시작할 수 없다(403 `PLAN_FEATURE_REQUIRED`)"),
|
|
31
|
-
"limits.ai_reads_monthly": limitOrContract("MCP 읽기 월 한도"),
|
|
32
|
-
"limits.ai_actions_monthly": limitOrContract(
|
|
33
|
-
"MCP 쓰기(AI 작업) 월 한도 — 주문 처리는 막지 않는다",
|
|
34
|
-
),
|
|
35
|
-
"limits.custom_domains": limitOrContract("내 도메인 수"),
|
|
36
|
-
"limits.webhooks": limitOrContract("웹훅 구독 수(0이면 쓸 수 없다)"),
|
|
37
|
-
"limits.public_apps": limitOrContract("공개 앱(앱 스토어 게시 앱) 설치 수"),
|
|
38
|
-
"limits.private_apps": limitOrContract(
|
|
39
|
-
"비공개 앱(이 상점 전용 앱) 설치 수(0이면 설치할 수 없다)",
|
|
40
|
-
),
|
|
41
|
-
"limits.storefront_preview_hours_monthly": limitOrContract("편집 환경 시간(월, 시간)"),
|
|
42
|
-
"limits.storefront_build_minutes_monthly": limitOrContract("빌드 시간(월, 분)"),
|
|
43
|
-
"limits.storefront_requests_monthly": limitOrContract(
|
|
44
|
-
"스토어프론트 월 트래픽(요청 수) — 넘어도 막지 않고 안내만 한다",
|
|
45
|
-
),
|
|
46
|
-
"limits.admin_api_requests_monthly": limitOrContract(
|
|
47
|
-
"관리 API 월 요청 — 넘으면 속도만 낮춘다(주문 처리 제외)",
|
|
48
|
-
),
|
|
49
|
-
"rate_limit.admin_api": z
|
|
50
|
-
.number()
|
|
51
|
-
.nullable()
|
|
52
|
-
.describe("관리 API 분당 속도 배수(기본 분당 600 × 배수)"),
|
|
53
|
-
"storefront.cpu_ms": z.number().int().describe("스토어프론트 사이트 요청당 CPU 상한(ms)"),
|
|
54
|
-
"storefront.subrequests": z
|
|
55
|
-
.number()
|
|
56
|
-
.int()
|
|
57
|
-
.describe("스토어프론트 사이트 요청당 하위 요청 상한"),
|
|
58
|
-
"storefront.rate_limit_per_minute": z
|
|
59
|
-
.number()
|
|
60
|
-
.int()
|
|
61
|
-
.describe("스토어프론트 남용 방지 요청 속도 상한(사이트당 분당)"),
|
|
62
|
-
"seats.included": limitOrContract(
|
|
63
|
-
"포함 구성원 석 — 구성원은 모든 요금제에서 무료·무제한이라 null",
|
|
64
|
-
),
|
|
65
|
-
"retention.analytics_days": z.number().int().describe("애널리틱스 보관 일수"),
|
|
66
|
-
"retention.api_logs_days": limitOrContract("API 로그 보관 일수(0이면 API 로그 없음)"),
|
|
67
|
-
"retention.audit_days": limitOrContract("감사 로그 보관 일수"),
|
|
68
|
-
"support.tier": z
|
|
69
|
-
.union([z.enum(["COMMUNITY", "EMAIL", "EMAIL_PRIORITY", "DEDICATED", "SLA"]), z.string()])
|
|
70
|
-
.describe(
|
|
71
|
-
"지원 등급(`COMMUNITY`·`EMAIL`·`EMAIL_PRIORITY`·`DEDICATED`·`SLA`, 새 등급이 더해질 수 있다)",
|
|
72
|
-
),
|
|
73
|
-
})
|
|
74
|
-
.describe("요금제 기능 키 값");
|
|
75
|
-
export type PlanEntitlementValues = z.infer<typeof planEntitlementsSchema>;
|
|
76
|
-
|
|
77
|
-
/** 공개 요금제 한 줄 — `GET /v1/public/plans` */
|
|
78
|
-
export const publicPlanSchema = z.object({
|
|
79
|
-
code: responsePlanCodeSchema,
|
|
80
|
-
name: z.string().describe("표시 이름(Free·Pro·프리미엄·엔터프라이즈)"),
|
|
81
|
-
version: z.number().int().describe("요금제 버전 — 값이 바뀌면 새 버전이 게시된다"),
|
|
82
|
-
sort: z.number().int(),
|
|
83
|
-
purchasable: z
|
|
84
|
-
.boolean()
|
|
85
|
-
.describe("셀프 결제로 고를 수 있는가(Free·엔터프라이즈는 아니다 — 엔터프라이즈는 계약)"),
|
|
86
|
-
prices: z.object({
|
|
87
|
-
currency: z.literal("KRW"),
|
|
88
|
-
monthly: z.number().int().nullable().describe("월 가격(공급가, 부가세 별도)"),
|
|
89
|
-
startingAt: z.boolean().describe("「부터」 가격(엔터프라이즈 계약)"),
|
|
90
|
-
vatIncluded: z
|
|
91
|
-
.object({
|
|
92
|
-
monthly: z.number().int().nullable(),
|
|
93
|
-
})
|
|
94
|
-
.describe("표시 가격(부가세 포함) — 요금제 비교표는 이 값을 보인다"),
|
|
95
|
-
}),
|
|
96
|
-
entitlements: planEntitlementsSchema,
|
|
97
|
-
});
|
|
98
|
-
export type PublicPlan = z.infer<typeof publicPlanSchema>;
|
|
99
|
-
|
|
100
|
-
/** 요금제 비교표 — `GET /v1/public/plans`(인증 없음, 캐시 가능). 값은 서버가 관리하고 언제든 바뀔 수 있다 */
|
|
101
|
-
export const publicPlansSchema = z.object({
|
|
102
|
-
vatPercent: z.number().int().describe("부가세율(%)"),
|
|
103
|
-
plans: z.array(publicPlanSchema).describe("공개 요금제의 지금 버전 — 정렬 순"),
|
|
104
|
-
});
|
|
105
|
-
export type PublicPlans = z.infer<typeof publicPlansSchema>;
|