connectbase-client 4.2.0 → 4.4.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/CHANGELOG.md +75 -0
- package/dist/connect-base.umd.js +3 -3
- package/dist/index.d.mts +182 -36
- package/dist/index.d.ts +182 -36
- package/dist/index.js +43 -13
- package/dist/index.mjs +43 -13
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -6115,11 +6115,19 @@ var PublicKeyAPI = class {
|
|
|
6115
6115
|
constructor(http) {
|
|
6116
6116
|
this.http = http;
|
|
6117
6117
|
}
|
|
6118
|
+
ensureServerAuth(method) {
|
|
6119
|
+
if (this.http.hasPublicKey() && !this.http.hasJWT()) {
|
|
6120
|
+
throw new Error(
|
|
6121
|
+
`cb.publicKey.${method}() \uB294 \uCF58\uC194 JWT \uB610\uB294 service_role(ctx.cbAdmin, management_scopes: ["publickey:read" | "publickey:manage"]) \uC778\uC99D\uC774 \uD544\uC694\uD569\uB2C8\uB2E4. Public Key(cb_pk_) \uB2E8\uB3C5 SDK \uC778\uC2A4\uD134\uC2A4\uB85C\uB294 \uD638\uCD9C\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4 \u2014 Functions \uD658\uACBD\uC5D0\uC11C \uC0AC\uC6A9\uD558\uC138\uC694.`
|
|
6122
|
+
);
|
|
6123
|
+
}
|
|
6124
|
+
}
|
|
6118
6125
|
/**
|
|
6119
|
-
* 앱의 Public Key 목록을 조회합니다
|
|
6126
|
+
* 앱의 Public Key 목록을 조회합니다 (management_scope: `publickey:read`)
|
|
6120
6127
|
* @param appId 앱 ID
|
|
6121
6128
|
*/
|
|
6122
6129
|
async getPublicKeys(appId) {
|
|
6130
|
+
this.ensureServerAuth("getPublicKeys");
|
|
6123
6131
|
return this.http.get(
|
|
6124
6132
|
`/v1/apps/${appId}/public-keys`
|
|
6125
6133
|
);
|
|
@@ -6131,32 +6139,39 @@ var PublicKeyAPI = class {
|
|
|
6131
6139
|
* 안전한 곳에 저장하세요.
|
|
6132
6140
|
*
|
|
6133
6141
|
* @param appId 앱 ID
|
|
6134
|
-
* @param data 생성할 Public Key 정보
|
|
6142
|
+
* @param data 생성할 Public Key 정보 (`payment_mode` 로 결제 모드 고정 가능)
|
|
6143
|
+
*
|
|
6144
|
+
* (management_scope: `publickey:manage`)
|
|
6135
6145
|
*/
|
|
6136
6146
|
async createPublicKey(appId, data) {
|
|
6147
|
+
this.ensureServerAuth("createPublicKey");
|
|
6137
6148
|
return this.http.post(
|
|
6138
6149
|
`/v1/apps/${appId}/public-keys`,
|
|
6139
6150
|
data
|
|
6140
6151
|
);
|
|
6141
6152
|
}
|
|
6142
6153
|
/**
|
|
6143
|
-
* Public Key 를 수정합니다 (이름 변경,
|
|
6154
|
+
* Public Key 를 수정합니다 (이름 변경, 활성화/비활성화, `payment_mode` 변경)
|
|
6155
|
+
*
|
|
6156
|
+
* (management_scope: `publickey:manage`)
|
|
6144
6157
|
* @param appId 앱 ID
|
|
6145
6158
|
* @param keyId Public Key ID
|
|
6146
6159
|
* @param data 수정할 정보
|
|
6147
6160
|
*/
|
|
6148
6161
|
async updatePublicKey(appId, keyId, data) {
|
|
6162
|
+
this.ensureServerAuth("updatePublicKey");
|
|
6149
6163
|
return this.http.patch(
|
|
6150
6164
|
`/v1/apps/${appId}/public-keys/${keyId}`,
|
|
6151
6165
|
data
|
|
6152
6166
|
);
|
|
6153
6167
|
}
|
|
6154
6168
|
/**
|
|
6155
|
-
* Public Key 를 삭제합니다
|
|
6169
|
+
* Public Key 를 삭제합니다 (management_scope: `publickey:manage`)
|
|
6156
6170
|
* @param appId 앱 ID
|
|
6157
6171
|
* @param keyId Public Key ID
|
|
6158
6172
|
*/
|
|
6159
6173
|
async deletePublicKey(appId, keyId) {
|
|
6174
|
+
this.ensureServerAuth("deletePublicKey");
|
|
6160
6175
|
await this.http.delete(`/v1/apps/${appId}/public-keys/${keyId}`);
|
|
6161
6176
|
}
|
|
6162
6177
|
};
|
|
@@ -8941,14 +8956,19 @@ var SubscriptionAPI = class {
|
|
|
8941
8956
|
);
|
|
8942
8957
|
}
|
|
8943
8958
|
/**
|
|
8944
|
-
* 요금제 스왑 (플랜 변경) — Paddle
|
|
8959
|
+
* 요금제 스왑 (플랜 변경) — MoR(Paddle · Dodo) 구독 전용
|
|
8945
8960
|
*
|
|
8946
|
-
* 하나의 구독을 유지한 채(id 동일) 다른 recurring price 로 갈아타고 남은 금액을
|
|
8947
|
-
* 즉시 정산합니다. 예) 혼자→가족 in-place 업그레이드 — 이미 낸 혼자 미사용분을
|
|
8948
|
-
* 첫 가족 청구에서 차감합니다. 즉시청구 차액의 결제 확정은 웹훅(SoT)으로
|
|
8961
|
+
* 하나의 구독을 유지한 채(id 동일) 다른 recurring price/product 로 갈아타고 남은 금액을 PG 의
|
|
8962
|
+
* proration 으로 즉시 정산합니다. 예) 혼자→가족 in-place 업그레이드 — 이미 낸 혼자 미사용분을
|
|
8963
|
+
* PG 가 자동 크레딧해 첫 가족 청구에서 차감합니다. 즉시청구 차액의 결제 확정은 웹훅(SoT)으로
|
|
8964
|
+
* 수렴합니다.
|
|
8949
8965
|
*
|
|
8950
8966
|
* `proration_mode` 미지정 시 `prorated_immediately`(업그레이드 기본)가 적용됩니다.
|
|
8951
|
-
*
|
|
8967
|
+
* 프로바이더가 지원하지 않는 정산 모드는 근사 대체 없이 400 `invalid_proration_mode` 입니다
|
|
8968
|
+
* (지원표는 {@link ProrationMode} 참조). 확정 전 정산액을 보여주려면 {@link previewChangePlan}
|
|
8969
|
+
* 을 먼저 호출하세요.
|
|
8970
|
+
*
|
|
8971
|
+
* toss/stripe/payapp/paypal 구독은 400 `plan_change_unsupported` 입니다.
|
|
8952
8972
|
*
|
|
8953
8973
|
* @param subscriptionId - 구독 ID
|
|
8954
8974
|
* @param data - 새 price + 정산 옵션
|
|
@@ -8957,7 +8977,7 @@ var SubscriptionAPI = class {
|
|
|
8957
8977
|
* @example
|
|
8958
8978
|
* ```typescript
|
|
8959
8979
|
* await client.subscription.changePlan(subscriptionId, {
|
|
8960
|
-
* provider_price_ref: 'pri_family_monthly',
|
|
8980
|
+
* provider_price_ref: 'pri_family_monthly', // Dodo 는 'pdt_*'
|
|
8961
8981
|
* plan_name: '가족 플랜',
|
|
8962
8982
|
* amount: 24900,
|
|
8963
8983
|
* proration_mode: 'prorated_immediately',
|
|
@@ -8972,12 +8992,20 @@ var SubscriptionAPI = class {
|
|
|
8972
8992
|
);
|
|
8973
8993
|
}
|
|
8974
8994
|
/**
|
|
8975
|
-
* 요금제 스왑 정산 미리보기 — 실제 적용 없이 청구/크레딧 금액만 계산 (Paddle
|
|
8995
|
+
* 요금제 스왑 정산 미리보기 — 실제 적용 없이 청구/크레딧 금액만 계산 (Paddle · Dodo)
|
|
8976
8996
|
*
|
|
8977
|
-
* 세금·기존 크레딧 잔액까지 반영된
|
|
8997
|
+
* 세금·기존 크레딧 잔액까지 반영된 PG 계산값을 반환하므로, 확정 화면에
|
|
8978
8998
|
* "지금 ₩X 청구, 이후 ₩Y/주기 (다음 청구일 …)" 를 그대로 노출하면 됩니다.
|
|
8979
8999
|
* 직접 차액을 계산하지 마세요 — 이 값이 권위입니다.
|
|
8980
9000
|
*
|
|
9001
|
+
* **금액은 반드시 짝이 되는 통화와 함께 표시하세요.** 즉시청구는 고객 표시통화
|
|
9002
|
+
* (`currency`), 정기 단가는 상품 통화(`recurring_currency`, 비면 `currency` 와 동일)입니다 —
|
|
9003
|
+
* MoR 의 adaptive currency 에서 둘이 다를 수 있습니다.
|
|
9004
|
+
*
|
|
9005
|
+
* 미리보기를 제공하지 않는 프로바이더는 400 `plan_change_preview_unsupported` 입니다.
|
|
9006
|
+
* 이는 **미리보기만** 없다는 뜻이며 {@link changePlan} 자체는 동작합니다
|
|
9007
|
+
* (요금제 변경 자체가 불가한 경우는 `plan_change_unsupported` 로 구분됩니다).
|
|
9008
|
+
*
|
|
8981
9009
|
* @param subscriptionId - 구독 ID
|
|
8982
9010
|
* @param data - 새 price + 정산 옵션 ({@link changePlan} 과 동일 body)
|
|
8983
9011
|
* @returns 정산 미리보기 (지금 청구/크레딧 · 새 정기 청구액 · 다음 청구일)
|
|
@@ -8987,7 +9015,9 @@ var SubscriptionAPI = class {
|
|
|
8987
9015
|
* const preview = await client.subscription.previewChangePlan(subscriptionId, {
|
|
8988
9016
|
* provider_price_ref: 'pri_family_monthly',
|
|
8989
9017
|
* })
|
|
8990
|
-
* //
|
|
9018
|
+
* // 통화를 함께 포맷한다 — 금액만 쓰면 다통화에서 거짓 금액이 된다
|
|
9019
|
+
* format(preview.immediate_charge_amount, preview.currency)
|
|
9020
|
+
* format(preview.recurring_amount, preview.recurring_currency ?? preview.currency)
|
|
8991
9021
|
* ```
|
|
8992
9022
|
*/
|
|
8993
9023
|
async previewChangePlan(subscriptionId, data) {
|