@designbasekorea/figma-license-core 0.1.0 → 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 +75 -12
- package/dist/designbaseAccountAuth.d.ts +65 -0
- package/dist/designbaseAccountAuth.d.ts.map +1 -0
- package/dist/fetchLicenseTransport.d.ts +8 -0
- package/dist/fetchLicenseTransport.d.ts.map +1 -1
- package/dist/figmaStatusManager.d.ts +13 -0
- package/dist/figmaStatusManager.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +826 -59
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +829 -58
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +829 -58
- package/dist/index.umd.js.map +1 -1
- package/dist/licenseCore.d.ts +16 -5
- package/dist/licenseCore.d.ts.map +1 -1
- package/dist/licenseErrorMapper.d.ts.map +1 -1
- package/dist/types.d.ts +74 -0
- package/dist/types.d.ts.map +1 -1
- package/docs/PLUGIN_INTEGRATION_KO.md +331 -0
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
# @designbasekorea/figma-license-core
|
|
2
2
|
|
|
3
|
-
Figma 플러그인의 라이선스
|
|
3
|
+
Figma 플러그인의 라이선스 상태/사용량 정책/기능 제한을 공통으로 처리하는 패키지입니다.
|
|
4
4
|
|
|
5
|
-
## 핵심
|
|
5
|
+
## 핵심 기능
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
- `
|
|
9
|
-
- `
|
|
10
|
-
-
|
|
7
|
+
- 라이선스 상태 판별
|
|
8
|
+
- `hasLicenseKey`: 라이선스 키가 저장되어 있는지
|
|
9
|
+
- `isLicenseRegistered`: 실제 유효 등록(PAID + key) 상태인지
|
|
10
|
+
- 티어별 사용량 정책
|
|
11
|
+
- 일간 리셋 (`daily`), 주간 리셋 (`weekly`), 월간 리셋 (`monthly`), 리셋 없음 (`none`)
|
|
12
|
+
- `limit: number | 'unlimited'`
|
|
13
|
+
- 티어별 기능 제한
|
|
14
|
+
- `allow`/`deny` 기반 기능 접근 제어
|
|
15
|
+
- Figma 메시지 연동
|
|
16
|
+
- 기본: `initialize`, `verify-license`, `deactivate-license`
|
|
17
|
+
- 추가: `check-feature-access`, `consume-usage`
|
|
11
18
|
|
|
12
19
|
## 빠른 시작
|
|
13
20
|
|
|
@@ -16,12 +23,26 @@ import { createFigmaLicenseStatusManager } from '@designbasekorea/figma-license-
|
|
|
16
23
|
|
|
17
24
|
const statusManager = createFigmaLicenseStatusManager({
|
|
18
25
|
config: {
|
|
19
|
-
productId: '
|
|
26
|
+
productId: 'korean-dummy-plugin',
|
|
20
27
|
endpoint: 'https://api.example.com/license/verify',
|
|
21
28
|
deactivateEndpoint: 'https://api.example.com/license/deactivate',
|
|
22
|
-
instanceName: figma.root?.name || '
|
|
23
|
-
|
|
24
|
-
|
|
29
|
+
instanceName: figma.root?.name || 'korean-dummy-plugin',
|
|
30
|
+
storagePrefix: 'korean-dummy-plugin-license',
|
|
31
|
+
policy: {
|
|
32
|
+
defaultTier: 'FREE',
|
|
33
|
+
freeTier: 'FREE',
|
|
34
|
+
paidTier: 'PRO',
|
|
35
|
+
usageByTier: {
|
|
36
|
+
FREE: { limit: 10, reset: 'daily' },
|
|
37
|
+
PRO: { limit: 20, reset: 'monthly' },
|
|
38
|
+
ENTERPRISE: { limit: 'unlimited', reset: 'none' },
|
|
39
|
+
},
|
|
40
|
+
featuresByTier: {
|
|
41
|
+
FREE: { deny: ['bulk_apply', 'advanced_batch'] },
|
|
42
|
+
PRO: { deny: [] },
|
|
43
|
+
ENTERPRISE: { defaultAllowed: true },
|
|
44
|
+
},
|
|
45
|
+
},
|
|
25
46
|
},
|
|
26
47
|
});
|
|
27
48
|
|
|
@@ -34,21 +55,51 @@ statusManager.bindToOnMessage(async (msg) => {
|
|
|
34
55
|
await statusManager.initialize();
|
|
35
56
|
```
|
|
36
57
|
|
|
37
|
-
##
|
|
58
|
+
## 메시지 계약
|
|
38
59
|
|
|
39
60
|
### UI -> Main
|
|
40
61
|
|
|
41
62
|
- `initialize`
|
|
42
63
|
- `verify-license` (`licenseKey` 포함)
|
|
43
64
|
- `deactivate-license`
|
|
65
|
+
- `check-feature-access` (`featureKey` 선택)
|
|
66
|
+
- `consume-usage` (`amount`, `featureKey` 선택)
|
|
67
|
+
|
|
68
|
+
`amount`가 남은 수량보다 크면 소비되지 않습니다. 마지막 1회를 소비한 응답도
|
|
69
|
+
`success: true`, `remaining: 0`으로 반환되므로 실행 성공 여부와 다음 차단 상태를 혼동하지 않습니다.
|
|
70
|
+
|
|
71
|
+
## 플러그인 공통 사용 규칙
|
|
72
|
+
|
|
73
|
+
모든 플러그인은 기능 실행 직전에 같은 순서를 사용합니다.
|
|
74
|
+
|
|
75
|
+
```ts
|
|
76
|
+
const access = await statusManager.canUseFeature('bulk_apply', 1);
|
|
77
|
+
if (!access.allowed) {
|
|
78
|
+
// access.reason === 'FEATURE_NOT_ALLOWED' 또는 'USAGE_LIMIT_REACHED'
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const result = await statusManager.consumeUsage(1, 'bulk_apply');
|
|
83
|
+
if (!result.consumed) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
await runBulkApply();
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
UI 메시지를 사용하는 경우에는 `check-feature-access`로 미리 확인한 뒤
|
|
91
|
+
`consume-usage`를 실행 직전에 전송합니다. 서버에서 최종 권한을 판정하는 제품은
|
|
92
|
+
동일한 feature key를 서버와 코어 설정에 사용해야 합니다.
|
|
44
93
|
|
|
45
94
|
### Main -> UI
|
|
46
95
|
|
|
47
96
|
- `update-plugin-status`
|
|
48
97
|
- `license-verification-result`
|
|
49
98
|
- `license-deactivation-result`
|
|
99
|
+
- `feature-access-result`
|
|
100
|
+
- `usage-consume-result`
|
|
50
101
|
|
|
51
|
-
|
|
102
|
+
## 에러 코드
|
|
52
103
|
|
|
53
104
|
- `ACTIVATION_LIMIT_REACHED`
|
|
54
105
|
- `INVALID_LICENSE`
|
|
@@ -57,3 +108,15 @@ await statusManager.initialize();
|
|
|
57
108
|
- `STORAGE_ERROR`
|
|
58
109
|
- `SERVER_ERROR`
|
|
59
110
|
- `UNKNOWN_ERROR`
|
|
111
|
+
|
|
112
|
+
## 운영 권장사항
|
|
113
|
+
|
|
114
|
+
- 운영 배포에서는 `masterCode`를 사용하지 마세요.
|
|
115
|
+
- 최종 권한 판정은 서버 검증 결과 기준으로 처리하세요.
|
|
116
|
+
- 클라이언트 상태(`paymentStatus`, `usageCount`)는 변조 가능하다고 가정하세요.
|
|
117
|
+
- 모든 플러그인의 리셋 단위·무료 한도·차단 기능은 `policy`에서만 선언하고,
|
|
118
|
+
플러그인별 임의 카운터를 추가하지 마세요.
|
|
119
|
+
|
|
120
|
+
## 문서
|
|
121
|
+
|
|
122
|
+
- 상세 적용 가이드: `docs/PLUGIN_INTEGRATION_KO.md`
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { DeactivateLicensePayload, DeactivateLicenseResult, LicenseStorageAdapter, LicenseTransport, VerifyLicensePayload, VerifyLicenseResult } from './types';
|
|
2
|
+
export interface DesignbaseAccountAuthStartPayload {
|
|
3
|
+
pluginCode: string;
|
|
4
|
+
deviceId: string;
|
|
5
|
+
returnUrl?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface DesignbaseAccountAuthStartResult {
|
|
8
|
+
sessionId: string;
|
|
9
|
+
pollToken: string;
|
|
10
|
+
authUrl: string;
|
|
11
|
+
expiresIn: number;
|
|
12
|
+
pollInterval: number;
|
|
13
|
+
raw: unknown;
|
|
14
|
+
}
|
|
15
|
+
export interface DesignbaseAccountAuthPollResult {
|
|
16
|
+
status: string;
|
|
17
|
+
allowed: boolean;
|
|
18
|
+
pluginCode: string;
|
|
19
|
+
productId?: string;
|
|
20
|
+
planTier?: string;
|
|
21
|
+
licenseKey?: string;
|
|
22
|
+
accessToken?: string;
|
|
23
|
+
refreshToken?: string;
|
|
24
|
+
expiresIn?: number;
|
|
25
|
+
message?: string;
|
|
26
|
+
actions?: Record<string, string>;
|
|
27
|
+
raw: unknown;
|
|
28
|
+
}
|
|
29
|
+
export interface DesignbaseAccountAuthConfig {
|
|
30
|
+
baseUrl: string;
|
|
31
|
+
startPath?: string;
|
|
32
|
+
pollPath?: string;
|
|
33
|
+
statusPath?: string;
|
|
34
|
+
deactivatePath?: string;
|
|
35
|
+
fetchFn?: typeof fetch;
|
|
36
|
+
timeoutMs?: number;
|
|
37
|
+
storage?: LicenseStorageAdapter;
|
|
38
|
+
storagePrefix?: string;
|
|
39
|
+
}
|
|
40
|
+
export declare class DesignbaseAccountAuthClient {
|
|
41
|
+
private readonly config;
|
|
42
|
+
private readonly fetchFn;
|
|
43
|
+
constructor(config: DesignbaseAccountAuthConfig);
|
|
44
|
+
start(payload: DesignbaseAccountAuthStartPayload): Promise<DesignbaseAccountAuthStartResult>;
|
|
45
|
+
poll(sessionId: string, pollToken: string): Promise<DesignbaseAccountAuthPollResult>;
|
|
46
|
+
saveTokens(result: DesignbaseAccountAuthPollResult): Promise<void>;
|
|
47
|
+
getAccessToken(): Promise<string>;
|
|
48
|
+
private postJson;
|
|
49
|
+
}
|
|
50
|
+
export interface DesignbaseAccountLicenseTransportConfig extends DesignbaseAccountAuthConfig {
|
|
51
|
+
getAccessToken?: () => Promise<string> | string;
|
|
52
|
+
}
|
|
53
|
+
export declare class DesignbaseAccountLicenseTransport implements LicenseTransport {
|
|
54
|
+
private readonly config;
|
|
55
|
+
private readonly client;
|
|
56
|
+
private readonly fetchFn;
|
|
57
|
+
constructor(config: DesignbaseAccountLicenseTransportConfig);
|
|
58
|
+
verify(payload: VerifyLicensePayload): Promise<VerifyLicenseResult>;
|
|
59
|
+
validate(payload: VerifyLicensePayload): Promise<VerifyLicenseResult>;
|
|
60
|
+
deactivate(payload: DeactivateLicensePayload): Promise<DeactivateLicenseResult>;
|
|
61
|
+
private resolveAccessToken;
|
|
62
|
+
private getJson;
|
|
63
|
+
private postJson;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=designbaseAccountAuth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"designbaseAccountAuth.d.ts","sourceRoot":"","sources":["../src/designbaseAccountAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AA0CjB,MAAM,WAAW,iCAAiC;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gCAAgC;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,+BAA+B;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,2BAA2B;IAG1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;gBAEV,MAAM,EAAE,2BAA2B;IAQ1D,KAAK,CAAC,OAAO,EAAE,iCAAiC,GAAG,OAAO,CAAC,gCAAgC,CAAC;IAoB5F,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,+BAA+B,CAAC;IA8BpF,UAAU,CAAC,MAAM,EAAE,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC;IAalE,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;YAUzB,QAAQ;CA2BvB;AAED,MAAM,WAAW,uCAAwC,SAAQ,2BAA2B;IAC1F,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;CACjD;AAED,qBAAa,iCAAkC,YAAW,gBAAgB;IAI5D,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;gBAEV,MAAM,EAAE,uCAAuC;IAKtE,MAAM,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAInE,QAAQ,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA8BrE,UAAU,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC;YAwBvE,kBAAkB;YASlB,OAAO;YAgBP,QAAQ;CAiBvB"}
|
|
@@ -3,20 +3,28 @@ export declare function defaultNormalizeVerifyResponse(raw: unknown): VerifyLice
|
|
|
3
3
|
export declare function defaultNormalizeDeactivateResponse(raw: unknown): DeactivateLicenseResult;
|
|
4
4
|
export interface FetchLicenseTransportConfig {
|
|
5
5
|
verifyUrl: string;
|
|
6
|
+
validateUrl?: string;
|
|
6
7
|
deactivateUrl?: string;
|
|
7
8
|
headers?: Record<string, string>;
|
|
8
9
|
timeoutMs?: number;
|
|
9
10
|
fetchFn?: typeof fetch;
|
|
10
11
|
buildVerifyBody?: (payload: VerifyLicensePayload) => unknown;
|
|
12
|
+
buildValidateBody?: (payload: VerifyLicensePayload) => unknown;
|
|
11
13
|
buildDeactivateBody?: (payload: DeactivateLicensePayload) => unknown;
|
|
12
14
|
normalizeVerifyResponse?: (raw: unknown) => VerifyLicenseResult;
|
|
13
15
|
normalizeDeactivateResponse?: (raw: unknown) => DeactivateLicenseResult;
|
|
14
16
|
}
|
|
17
|
+
export declare class LicenseTransportHttpError extends Error {
|
|
18
|
+
readonly status: number;
|
|
19
|
+
readonly body: unknown;
|
|
20
|
+
constructor(status: number, body: unknown, message: string);
|
|
21
|
+
}
|
|
15
22
|
export declare class FetchLicenseTransport implements LicenseTransport {
|
|
16
23
|
private readonly config;
|
|
17
24
|
private readonly fetchFn;
|
|
18
25
|
constructor(config: FetchLicenseTransportConfig);
|
|
19
26
|
verify(payload: VerifyLicensePayload): Promise<VerifyLicenseResult>;
|
|
27
|
+
validate(payload: VerifyLicensePayload): Promise<VerifyLicenseResult>;
|
|
20
28
|
deactivate(payload: DeactivateLicensePayload): Promise<DeactivateLicenseResult>;
|
|
21
29
|
private postJson;
|
|
22
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchLicenseTransport.d.ts","sourceRoot":"","sources":["../src/fetchLicenseTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"fetchLicenseTransport.d.ts","sourceRoot":"","sources":["../src/fetchLicenseTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAqEjB,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,OAAO,GAAG,mBAAmB,CAmEhF;AAED,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,OAAO,GAAG,uBAAuB,CAexF;AAED,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC;IAC7D,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC;IAC/D,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,OAAO,CAAC;IACrE,uBAAuB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,mBAAmB,CAAC;IAChE,2BAA2B,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,uBAAuB,CAAC;CACzE;AAED,qBAAa,yBAA0B,SAAQ,KAAK;aAEhC,MAAM,EAAE,MAAM;aACd,IAAI,EAAE,OAAO;gBADb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EAC7B,OAAO,EAAE,MAAM;CAKlB;AAED,qBAAa,qBAAsB,YAAW,gBAAgB;IAGhD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;gBAEV,MAAM,EAAE,2BAA2B;IAQ1D,MAAM,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAUnE,QAAQ,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAYrE,UAAU,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC;YAevE,QAAQ;CA4CvB"}
|
|
@@ -32,6 +32,7 @@ export declare class FigmaNotifierAdapter implements LicenseNotifierAdapter {
|
|
|
32
32
|
timeout?: number;
|
|
33
33
|
}): void;
|
|
34
34
|
}
|
|
35
|
+
export declare const DEFAULT_LICENSE_MESSAGE_TYPES: Required<LicenseManagerMessageTypes>;
|
|
35
36
|
export interface FigmaLicenseStatusManagerOptions {
|
|
36
37
|
figma: FigmaApiLike;
|
|
37
38
|
core: LicenseCore;
|
|
@@ -46,13 +47,25 @@ export declare class FigmaLicenseStatusManager {
|
|
|
46
47
|
private readonly options;
|
|
47
48
|
private readonly messageTypes;
|
|
48
49
|
private readonly notifier?;
|
|
50
|
+
private initializationPromise?;
|
|
49
51
|
constructor(options: FigmaLicenseStatusManagerOptions);
|
|
50
52
|
initialize(): Promise<void>;
|
|
51
53
|
handleMessage(pluginMessage: unknown): Promise<boolean>;
|
|
52
54
|
bindToOnMessage(fallbackHandler?: (pluginMessage: unknown) => void | Promise<void>): void;
|
|
55
|
+
/**
|
|
56
|
+
* Check a feature from main code using the same policy as the UI messages.
|
|
57
|
+
* This is the preferred guard for operations handled entirely in main.
|
|
58
|
+
*/
|
|
59
|
+
canUseFeature(featureKey?: string, amount?: number): Promise<import("./types").UsageAccessResult>;
|
|
60
|
+
/**
|
|
61
|
+
* Consume usage from main code and publish the refreshed status to the UI.
|
|
62
|
+
*/
|
|
63
|
+
consumeUsage(amount?: number, featureKey?: string): Promise<import("./types").UsageConsumptionResult>;
|
|
53
64
|
private handleVerifyLicense;
|
|
54
65
|
private handleDeactivateLicense;
|
|
55
66
|
private postStatusUpdate;
|
|
67
|
+
private handleCheckFeatureAccess;
|
|
68
|
+
private handleConsumeUsage;
|
|
56
69
|
private postMessage;
|
|
57
70
|
private notifyError;
|
|
58
71
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"figmaStatusManager.d.ts","sourceRoot":"","sources":["../src/figmaStatusManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAA2B,MAAM,eAAe,CAAC;AACrE,OAAO,EACL,aAAa,EAEb,0BAA0B,EAC1B,sBAAsB,EAEtB,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,WAAW,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACpC,SAAS,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,sBAAsB,CAAC;IACtC,EAAE,EAAE,WAAW,CAAC;IAChB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACrF;AAED,qBAAa,mBAAoB,YAAW,qBAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,YAAY;IAE1C,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAKrD,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAQzC;AAED,qBAAa,oBAAqB,YAAW,sBAAsB;IACrD,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,YAAY;IAEhD,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAK/E;
|
|
1
|
+
{"version":3,"file":"figmaStatusManager.d.ts","sourceRoot":"","sources":["../src/figmaStatusManager.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC"}
|