connectbase-client 4.3.0 → 4.4.1
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 +40 -0
- package/dist/connect-base.umd.js +4 -4
- package/dist/index.d.mts +27 -8
- package/dist/index.d.ts +27 -8
- package/dist/index.js +27 -4
- package/dist/index.mjs +27 -4
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -5713,16 +5713,30 @@ interface UpdatePublicKeyResponse {
|
|
|
5713
5713
|
/**
|
|
5714
5714
|
* Public Key 관리 API
|
|
5715
5715
|
*
|
|
5716
|
+
* 콘솔 JWT 또는 **service_role 함수**(`ctx.cbAdmin`)로 호출한다. 브라우저에서 Public Key(cb_pk_)
|
|
5717
|
+
* 단독으로는 호출할 수 없다 — 키가 자기 자신을 발급/수정하는 경로를 막는다.
|
|
5718
|
+
*
|
|
5719
|
+
* service_role 함수에서 쓰려면 함수 `management_scopes` 에 스코프를 opt-in 해야 한다:
|
|
5720
|
+
* `publickey:read`(목록 조회) / `publickey:manage`(생성·수정·삭제).
|
|
5721
|
+
*
|
|
5722
|
+
* `payment_mode` 로 키마다 결제 자격증명 모드를 고정할 수 있다 — QA 빌드에 `test` 키를 심으면
|
|
5723
|
+
* 앱 설정과 무관하게 그 키의 결제만 테스트로 처리된다(platform-issue 019f9961).
|
|
5724
|
+
*
|
|
5716
5725
|
* @example
|
|
5717
5726
|
* ```typescript
|
|
5718
5727
|
* // Public Key 목록 조회
|
|
5719
5728
|
* const keys = await cb.publicKey.getPublicKeys('app-id')
|
|
5720
5729
|
*
|
|
5721
|
-
* //
|
|
5722
|
-
* const newKey = await cb.publicKey.createPublicKey('app-id', {
|
|
5723
|
-
*
|
|
5730
|
+
* // QA 빌드용 테스트 결제 키 생성
|
|
5731
|
+
* const newKey = await cb.publicKey.createPublicKey('app-id', {
|
|
5732
|
+
* name: 'QA',
|
|
5733
|
+
* payment_mode: 'test',
|
|
5734
|
+
* })
|
|
5735
|
+
* console.log(newKey.key) // 전체 키 (이때만 볼 수 있음!)
|
|
5736
|
+
* console.log(newKey.payment_mode) // 'test' — 되읽어 검증
|
|
5724
5737
|
*
|
|
5725
|
-
* //
|
|
5738
|
+
* // 모드 변경 / 비활성화
|
|
5739
|
+
* await cb.publicKey.updatePublicKey('app-id', 'key-id', { payment_mode: 'live' })
|
|
5726
5740
|
* await cb.publicKey.updatePublicKey('app-id', 'key-id', { is_active: false })
|
|
5727
5741
|
*
|
|
5728
5742
|
* // Public Key 삭제
|
|
@@ -5732,8 +5746,9 @@ interface UpdatePublicKeyResponse {
|
|
|
5732
5746
|
declare class PublicKeyAPI {
|
|
5733
5747
|
private http;
|
|
5734
5748
|
constructor(http: HttpClient);
|
|
5749
|
+
private ensureServerAuth;
|
|
5735
5750
|
/**
|
|
5736
|
-
* 앱의 Public Key 목록을 조회합니다
|
|
5751
|
+
* 앱의 Public Key 목록을 조회합니다 (management_scope: `publickey:read`)
|
|
5737
5752
|
* @param appId 앱 ID
|
|
5738
5753
|
*/
|
|
5739
5754
|
getPublicKeys(appId: string): Promise<FetchPublicKeysResponse>;
|
|
@@ -5744,18 +5759,22 @@ declare class PublicKeyAPI {
|
|
|
5744
5759
|
* 안전한 곳에 저장하세요.
|
|
5745
5760
|
*
|
|
5746
5761
|
* @param appId 앱 ID
|
|
5747
|
-
* @param data 생성할 Public Key 정보
|
|
5762
|
+
* @param data 생성할 Public Key 정보 (`payment_mode` 로 결제 모드 고정 가능)
|
|
5763
|
+
*
|
|
5764
|
+
* (management_scope: `publickey:manage`)
|
|
5748
5765
|
*/
|
|
5749
5766
|
createPublicKey(appId: string, data: CreatePublicKeyRequest): Promise<CreatePublicKeyResponse>;
|
|
5750
5767
|
/**
|
|
5751
|
-
* Public Key 를 수정합니다 (이름 변경,
|
|
5768
|
+
* Public Key 를 수정합니다 (이름 변경, 활성화/비활성화, `payment_mode` 변경)
|
|
5769
|
+
*
|
|
5770
|
+
* (management_scope: `publickey:manage`)
|
|
5752
5771
|
* @param appId 앱 ID
|
|
5753
5772
|
* @param keyId Public Key ID
|
|
5754
5773
|
* @param data 수정할 정보
|
|
5755
5774
|
*/
|
|
5756
5775
|
updatePublicKey(appId: string, keyId: string, data: UpdatePublicKeyRequest): Promise<UpdatePublicKeyResponse>;
|
|
5757
5776
|
/**
|
|
5758
|
-
* Public Key 를 삭제합니다
|
|
5777
|
+
* Public Key 를 삭제합니다 (management_scope: `publickey:manage`)
|
|
5759
5778
|
* @param appId 앱 ID
|
|
5760
5779
|
* @param keyId Public Key ID
|
|
5761
5780
|
*/
|
package/dist/index.d.ts
CHANGED
|
@@ -5713,16 +5713,30 @@ interface UpdatePublicKeyResponse {
|
|
|
5713
5713
|
/**
|
|
5714
5714
|
* Public Key 관리 API
|
|
5715
5715
|
*
|
|
5716
|
+
* 콘솔 JWT 또는 **service_role 함수**(`ctx.cbAdmin`)로 호출한다. 브라우저에서 Public Key(cb_pk_)
|
|
5717
|
+
* 단독으로는 호출할 수 없다 — 키가 자기 자신을 발급/수정하는 경로를 막는다.
|
|
5718
|
+
*
|
|
5719
|
+
* service_role 함수에서 쓰려면 함수 `management_scopes` 에 스코프를 opt-in 해야 한다:
|
|
5720
|
+
* `publickey:read`(목록 조회) / `publickey:manage`(생성·수정·삭제).
|
|
5721
|
+
*
|
|
5722
|
+
* `payment_mode` 로 키마다 결제 자격증명 모드를 고정할 수 있다 — QA 빌드에 `test` 키를 심으면
|
|
5723
|
+
* 앱 설정과 무관하게 그 키의 결제만 테스트로 처리된다(platform-issue 019f9961).
|
|
5724
|
+
*
|
|
5716
5725
|
* @example
|
|
5717
5726
|
* ```typescript
|
|
5718
5727
|
* // Public Key 목록 조회
|
|
5719
5728
|
* const keys = await cb.publicKey.getPublicKeys('app-id')
|
|
5720
5729
|
*
|
|
5721
|
-
* //
|
|
5722
|
-
* const newKey = await cb.publicKey.createPublicKey('app-id', {
|
|
5723
|
-
*
|
|
5730
|
+
* // QA 빌드용 테스트 결제 키 생성
|
|
5731
|
+
* const newKey = await cb.publicKey.createPublicKey('app-id', {
|
|
5732
|
+
* name: 'QA',
|
|
5733
|
+
* payment_mode: 'test',
|
|
5734
|
+
* })
|
|
5735
|
+
* console.log(newKey.key) // 전체 키 (이때만 볼 수 있음!)
|
|
5736
|
+
* console.log(newKey.payment_mode) // 'test' — 되읽어 검증
|
|
5724
5737
|
*
|
|
5725
|
-
* //
|
|
5738
|
+
* // 모드 변경 / 비활성화
|
|
5739
|
+
* await cb.publicKey.updatePublicKey('app-id', 'key-id', { payment_mode: 'live' })
|
|
5726
5740
|
* await cb.publicKey.updatePublicKey('app-id', 'key-id', { is_active: false })
|
|
5727
5741
|
*
|
|
5728
5742
|
* // Public Key 삭제
|
|
@@ -5732,8 +5746,9 @@ interface UpdatePublicKeyResponse {
|
|
|
5732
5746
|
declare class PublicKeyAPI {
|
|
5733
5747
|
private http;
|
|
5734
5748
|
constructor(http: HttpClient);
|
|
5749
|
+
private ensureServerAuth;
|
|
5735
5750
|
/**
|
|
5736
|
-
* 앱의 Public Key 목록을 조회합니다
|
|
5751
|
+
* 앱의 Public Key 목록을 조회합니다 (management_scope: `publickey:read`)
|
|
5737
5752
|
* @param appId 앱 ID
|
|
5738
5753
|
*/
|
|
5739
5754
|
getPublicKeys(appId: string): Promise<FetchPublicKeysResponse>;
|
|
@@ -5744,18 +5759,22 @@ declare class PublicKeyAPI {
|
|
|
5744
5759
|
* 안전한 곳에 저장하세요.
|
|
5745
5760
|
*
|
|
5746
5761
|
* @param appId 앱 ID
|
|
5747
|
-
* @param data 생성할 Public Key 정보
|
|
5762
|
+
* @param data 생성할 Public Key 정보 (`payment_mode` 로 결제 모드 고정 가능)
|
|
5763
|
+
*
|
|
5764
|
+
* (management_scope: `publickey:manage`)
|
|
5748
5765
|
*/
|
|
5749
5766
|
createPublicKey(appId: string, data: CreatePublicKeyRequest): Promise<CreatePublicKeyResponse>;
|
|
5750
5767
|
/**
|
|
5751
|
-
* Public Key 를 수정합니다 (이름 변경,
|
|
5768
|
+
* Public Key 를 수정합니다 (이름 변경, 활성화/비활성화, `payment_mode` 변경)
|
|
5769
|
+
*
|
|
5770
|
+
* (management_scope: `publickey:manage`)
|
|
5752
5771
|
* @param appId 앱 ID
|
|
5753
5772
|
* @param keyId Public Key ID
|
|
5754
5773
|
* @param data 수정할 정보
|
|
5755
5774
|
*/
|
|
5756
5775
|
updatePublicKey(appId: string, keyId: string, data: UpdatePublicKeyRequest): Promise<UpdatePublicKeyResponse>;
|
|
5757
5776
|
/**
|
|
5758
|
-
* Public Key 를 삭제합니다
|
|
5777
|
+
* Public Key 를 삭제합니다 (management_scope: `publickey:manage`)
|
|
5759
5778
|
* @param appId 앱 ID
|
|
5760
5779
|
* @param keyId Public Key ID
|
|
5761
5780
|
*/
|
package/dist/index.js
CHANGED
|
@@ -6161,11 +6161,19 @@ var PublicKeyAPI = class {
|
|
|
6161
6161
|
constructor(http) {
|
|
6162
6162
|
this.http = http;
|
|
6163
6163
|
}
|
|
6164
|
+
ensureServerAuth(method) {
|
|
6165
|
+
if (this.http.hasPublicKey() && !this.http.hasJWT()) {
|
|
6166
|
+
throw new Error(
|
|
6167
|
+
`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.`
|
|
6168
|
+
);
|
|
6169
|
+
}
|
|
6170
|
+
}
|
|
6164
6171
|
/**
|
|
6165
|
-
* 앱의 Public Key 목록을 조회합니다
|
|
6172
|
+
* 앱의 Public Key 목록을 조회합니다 (management_scope: `publickey:read`)
|
|
6166
6173
|
* @param appId 앱 ID
|
|
6167
6174
|
*/
|
|
6168
6175
|
async getPublicKeys(appId) {
|
|
6176
|
+
this.ensureServerAuth("getPublicKeys");
|
|
6169
6177
|
return this.http.get(
|
|
6170
6178
|
`/v1/apps/${appId}/public-keys`
|
|
6171
6179
|
);
|
|
@@ -6177,32 +6185,39 @@ var PublicKeyAPI = class {
|
|
|
6177
6185
|
* 안전한 곳에 저장하세요.
|
|
6178
6186
|
*
|
|
6179
6187
|
* @param appId 앱 ID
|
|
6180
|
-
* @param data 생성할 Public Key 정보
|
|
6188
|
+
* @param data 생성할 Public Key 정보 (`payment_mode` 로 결제 모드 고정 가능)
|
|
6189
|
+
*
|
|
6190
|
+
* (management_scope: `publickey:manage`)
|
|
6181
6191
|
*/
|
|
6182
6192
|
async createPublicKey(appId, data) {
|
|
6193
|
+
this.ensureServerAuth("createPublicKey");
|
|
6183
6194
|
return this.http.post(
|
|
6184
6195
|
`/v1/apps/${appId}/public-keys`,
|
|
6185
6196
|
data
|
|
6186
6197
|
);
|
|
6187
6198
|
}
|
|
6188
6199
|
/**
|
|
6189
|
-
* Public Key 를 수정합니다 (이름 변경,
|
|
6200
|
+
* Public Key 를 수정합니다 (이름 변경, 활성화/비활성화, `payment_mode` 변경)
|
|
6201
|
+
*
|
|
6202
|
+
* (management_scope: `publickey:manage`)
|
|
6190
6203
|
* @param appId 앱 ID
|
|
6191
6204
|
* @param keyId Public Key ID
|
|
6192
6205
|
* @param data 수정할 정보
|
|
6193
6206
|
*/
|
|
6194
6207
|
async updatePublicKey(appId, keyId, data) {
|
|
6208
|
+
this.ensureServerAuth("updatePublicKey");
|
|
6195
6209
|
return this.http.patch(
|
|
6196
6210
|
`/v1/apps/${appId}/public-keys/${keyId}`,
|
|
6197
6211
|
data
|
|
6198
6212
|
);
|
|
6199
6213
|
}
|
|
6200
6214
|
/**
|
|
6201
|
-
* Public Key 를 삭제합니다
|
|
6215
|
+
* Public Key 를 삭제합니다 (management_scope: `publickey:manage`)
|
|
6202
6216
|
* @param appId 앱 ID
|
|
6203
6217
|
* @param keyId Public Key ID
|
|
6204
6218
|
*/
|
|
6205
6219
|
async deletePublicKey(appId, keyId) {
|
|
6220
|
+
this.ensureServerAuth("deletePublicKey");
|
|
6206
6221
|
await this.http.delete(`/v1/apps/${appId}/public-keys/${keyId}`);
|
|
6207
6222
|
}
|
|
6208
6223
|
};
|
|
@@ -10758,8 +10773,16 @@ function sanitizePathForBreadcrumb(rawUrl) {
|
|
|
10758
10773
|
}
|
|
10759
10774
|
|
|
10760
10775
|
// src/core/http.ts
|
|
10776
|
+
var COOKIE_BEARING_PUBLIC_PATHS = /* @__PURE__ */ new Set([
|
|
10777
|
+
"/v1/public/app-members/signup",
|
|
10778
|
+
"/v1/public/app-members/signin",
|
|
10779
|
+
"/v1/public/app-members/signout"
|
|
10780
|
+
]);
|
|
10761
10781
|
function fetchCredentialsForPath(url) {
|
|
10762
10782
|
const path = url.split("?")[0];
|
|
10783
|
+
if (COOKIE_BEARING_PUBLIC_PATHS.has(path)) {
|
|
10784
|
+
return "include";
|
|
10785
|
+
}
|
|
10763
10786
|
return path.startsWith("/v1/public/") ? "omit" : "include";
|
|
10764
10787
|
}
|
|
10765
10788
|
var TOKEN_STORAGE_KEY = "cb_auth_tokens";
|
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
|
};
|
|
@@ -10712,8 +10727,16 @@ function sanitizePathForBreadcrumb(rawUrl) {
|
|
|
10712
10727
|
}
|
|
10713
10728
|
|
|
10714
10729
|
// src/core/http.ts
|
|
10730
|
+
var COOKIE_BEARING_PUBLIC_PATHS = /* @__PURE__ */ new Set([
|
|
10731
|
+
"/v1/public/app-members/signup",
|
|
10732
|
+
"/v1/public/app-members/signin",
|
|
10733
|
+
"/v1/public/app-members/signout"
|
|
10734
|
+
]);
|
|
10715
10735
|
function fetchCredentialsForPath(url) {
|
|
10716
10736
|
const path = url.split("?")[0];
|
|
10737
|
+
if (COOKIE_BEARING_PUBLIC_PATHS.has(path)) {
|
|
10738
|
+
return "include";
|
|
10739
|
+
}
|
|
10717
10740
|
return path.startsWith("/v1/public/") ? "omit" : "include";
|
|
10718
10741
|
}
|
|
10719
10742
|
var TOKEN_STORAGE_KEY = "cb_auth_tokens";
|