@designbasekorea/figma-license-core 0.2.1 → 0.3.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/README.md +29 -1
- package/dist/figmaStatusManager.d.ts +10 -2
- package/dist/figmaStatusManager.d.ts.map +1 -1
- package/dist/index.esm.js +91 -39
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +91 -38
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +91 -38
- package/dist/index.umd.js.map +1 -1
- package/dist/licenseCore.d.ts +6 -8
- package/dist/licenseCore.d.ts.map +1 -1
- package/dist/types.d.ts +11 -1
- package/dist/types.d.ts.map +1 -1
- package/docs/PLUGIN_INTEGRATION_KO.md +21 -5
- package/package.json +3 -3
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
- 키가 있는지 (`hasLicenseKey`)
|
|
9
9
|
- 실제 유효 등록인지 (`isLicenseRegistered`)
|
|
10
10
|
- 유료/무료 티어별 사용 범위 통일
|
|
11
|
-
- 일일 N회, 월간 N회, 무제한
|
|
11
|
+
- 일일 N회, 주간 N회, 월간 N회, 무제한
|
|
12
12
|
- 티어별 기능 제한 통일
|
|
13
13
|
- 예: 무료는 무제한 사용 가능하지만 일부 기능 차단
|
|
14
14
|
|
|
@@ -211,7 +211,7 @@ import { PageLicense } from '@designbasekorea/figma-ui';
|
|
|
211
211
|
- `planTier`
|
|
212
212
|
- `remainingUsage`
|
|
213
213
|
- `usageUsed`
|
|
214
|
-
- `usageReset` (`none`/`daily`/`monthly`)
|
|
214
|
+
- `usageReset` (`none`/`daily`/`weekly`/`monthly`)
|
|
215
215
|
- `usageReason` (`USAGE_LIMIT_REACHED`/`FEATURE_NOT_ALLOWED`)
|
|
216
216
|
- `licenseStatus`
|
|
217
217
|
- `licenseSource`
|
|
@@ -223,6 +223,7 @@ import { PageLicense } from '@designbasekorea/figma-ui';
|
|
|
223
223
|
UI 예시:
|
|
224
224
|
|
|
225
225
|
- FREE + daily + 10회 정책: "오늘 남은 횟수 6/10"
|
|
226
|
+
- FREE + weekly + 30회 정책: "이번 주 남은 횟수 18/30"
|
|
226
227
|
- PRO + monthly + 20회 정책: "이번 달 남은 횟수 12/20"
|
|
227
228
|
- FREE + unlimited + feature deny: "사용 횟수 제한 없음, 고급 기능 잠김"
|
|
228
229
|
|
|
@@ -241,7 +242,9 @@ parent.postMessage({ pluginMessage: { type: 'check-feature-access', featureKey:
|
|
|
241
242
|
|
|
242
243
|
## 5) 사용량 소모 처리
|
|
243
244
|
|
|
244
|
-
기능
|
|
245
|
+
기능 실행 전 접근 가능 여부를 확인하고, 실제 작업을 시작하기 직전에 사용량을 소모합니다.
|
|
246
|
+
`amount`가 남은 수량보다 크면 코어가 소비하지 않습니다. 소비된 시도는 작업이
|
|
247
|
+
외부 API 오류로 실패하더라도 재시도로 한도를 우회하지 못하도록 사용량에 포함됩니다.
|
|
245
248
|
|
|
246
249
|
```ts
|
|
247
250
|
parent.postMessage({ pluginMessage: { type: 'consume-usage', amount: 1, featureKey: 'bulk_apply' } }, '*');
|
|
@@ -249,7 +252,7 @@ parent.postMessage({ pluginMessage: { type: 'consume-usage', amount: 1, featureK
|
|
|
249
252
|
|
|
250
253
|
응답: `usage-consume-result`
|
|
251
254
|
|
|
252
|
-
- `success`가 `true`면 소모
|
|
255
|
+
- `success`가 `true`면 소모 완료. 마지막 1회 소비도 `success: true`, `remaining: 0`입니다.
|
|
253
256
|
- `success`가 `false`면 차단 상태
|
|
254
257
|
|
|
255
258
|
## 6) 정책 샘플
|
|
@@ -267,6 +270,16 @@ policy: {
|
|
|
267
270
|
}
|
|
268
271
|
```
|
|
269
272
|
|
|
273
|
+
### A-1. 무료 주 30회
|
|
274
|
+
|
|
275
|
+
```ts
|
|
276
|
+
policy: {
|
|
277
|
+
usageByTier: {
|
|
278
|
+
FREE: { limit: 30, reset: 'weekly' },
|
|
279
|
+
},
|
|
280
|
+
}
|
|
281
|
+
```
|
|
282
|
+
|
|
270
283
|
### B. 무료 무제한 + 일부 기능 제한
|
|
271
284
|
|
|
272
285
|
```ts
|
|
@@ -297,7 +310,8 @@ policy: {
|
|
|
297
310
|
## 7) 기존 controller.ts 마이그레이션 팁
|
|
298
311
|
|
|
299
312
|
- 기존 `StatusManager` 인터페이스를 즉시 제거하지 말고, 1차로 호환 어댑터를 두세요.
|
|
300
|
-
- `decrementUsageCount`는 내부적으로 `
|
|
313
|
+
- `decrementUsageCount`는 내부적으로 `consumeUsage` 또는 `consume-usage`로 연결하세요.
|
|
314
|
+
기존 `incrementUsage`는 호환용 저수준 API로만 남기고 새 기능에서는 사용하지 마세요.
|
|
301
315
|
- UI에서 `usageCount`만 보던 경우, 앞으로는 `remainingUsage` + `usageReset` 조합으로 표기하세요.
|
|
302
316
|
|
|
303
317
|
## 8) 운영 체크리스트
|
|
@@ -313,3 +327,5 @@ policy: {
|
|
|
313
327
|
- 라이브러리 변경은 Changeset으로 `figma-license-core`와 `figma-ui` 버전을 함께 올린 뒤 패키지를 배포합니다.
|
|
314
328
|
- 플러그인은 테스트 단계에서 새 버전을 정확히 고정하고, Face Dummy에서 활성·만료·철회·요청 제한·네트워크 실패를 확인한 다음 다른 플러그인으로 확장합니다.
|
|
315
329
|
- 운영 플러그인에 `masterCode`를 넣지 않고, WordPress 서버를 권한의 최종 원천으로 유지합니다.
|
|
330
|
+
- 무료 한도와 차단 기능은 각 플러그인의 임의 상태 관리자가 아니라 `figma-license-core`의
|
|
331
|
+
`policy.usageByTier`와 `policy.featuresByTier`에서 선언합니다.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@designbasekorea/figma-license-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Figma plugin license core and status manager for reusable license workflows",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.esm.js",
|
|
@@ -21,12 +21,12 @@
|
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@rollup/plugin-commonjs": "^25.0.4",
|
|
23
23
|
"@rollup/plugin-node-resolve": "^15.2.1",
|
|
24
|
-
"@rollup/plugin-typescript": "^
|
|
24
|
+
"@rollup/plugin-typescript": "^12.3.0",
|
|
25
25
|
"@types/jest": "^29.5.5",
|
|
26
26
|
"jest": "^29.6.4",
|
|
27
27
|
"jest-environment-jsdom": "^29.6.4",
|
|
28
28
|
"rimraf": "^5.0.1",
|
|
29
|
-
"rollup": "^
|
|
29
|
+
"rollup": "^4.63.1",
|
|
30
30
|
"typescript": "^5.2.2"
|
|
31
31
|
},
|
|
32
32
|
"publishConfig": {
|