@licenseseat/js 0.1.0 → 0.2.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.
@@ -0,0 +1,309 @@
1
+ /**
2
+ * Get or create the shared singleton instance
3
+ * @param {import('./types.js').LicenseSeatConfig} [config] - Configuration (only used on first call)
4
+ * @returns {LicenseSeatSDK} The shared instance
5
+ */
6
+ export function getSharedInstance(config?: import("./types.js").LicenseSeatConfig): LicenseSeatSDK;
7
+ /**
8
+ * Configure the shared singleton instance
9
+ * @param {import('./types.js').LicenseSeatConfig} config - Configuration options
10
+ * @param {boolean} [force=false] - Force reconfiguration even if already configured
11
+ * @returns {LicenseSeatSDK} The configured shared instance
12
+ */
13
+ export function configure(config: import("./types.js").LicenseSeatConfig, force?: boolean): LicenseSeatSDK;
14
+ /**
15
+ * Reset the shared singleton instance
16
+ * @returns {void}
17
+ */
18
+ export function resetSharedInstance(): void;
19
+ /**
20
+ * LicenseSeat SDK Main Class
21
+ *
22
+ * Provides license activation, validation, and entitlement checking
23
+ * for client-side JavaScript applications.
24
+ *
25
+ * @example
26
+ * ```js
27
+ * const sdk = new LicenseSeatSDK({
28
+ * apiKey: 'your-api-key',
29
+ * debug: true
30
+ * });
31
+ *
32
+ * // Activate a license
33
+ * await sdk.activate('LICENSE-KEY-HERE');
34
+ *
35
+ * // Check entitlements
36
+ * if (sdk.hasEntitlement('pro-features')) {
37
+ * // Enable pro features
38
+ * }
39
+ * ```
40
+ */
41
+ export class LicenseSeatSDK {
42
+ /**
43
+ * Create a new LicenseSeat SDK instance
44
+ * @param {import('./types.js').LicenseSeatConfig} [config={}] - Configuration options
45
+ */
46
+ constructor(config?: import("./types.js").LicenseSeatConfig);
47
+ /**
48
+ * SDK configuration
49
+ * @type {import('./types.js').LicenseSeatConfig}
50
+ */
51
+ config: import("./types.js").LicenseSeatConfig;
52
+ /**
53
+ * Event listeners map
54
+ * @type {Object<string, import('./types.js').EventCallback[]>}
55
+ * @private
56
+ */
57
+ private eventListeners;
58
+ /**
59
+ * Auto-validation timer ID
60
+ * @type {number|null}
61
+ * @private
62
+ */
63
+ private validationTimer;
64
+ /**
65
+ * License cache manager
66
+ * @type {LicenseCache}
67
+ * @private
68
+ */
69
+ private cache;
70
+ /**
71
+ * Current online status
72
+ * @type {boolean}
73
+ * @private
74
+ */
75
+ private online;
76
+ /**
77
+ * Current license key being auto-validated
78
+ * @type {string|null}
79
+ * @private
80
+ */
81
+ private currentAutoLicenseKey;
82
+ /**
83
+ * Connectivity polling timer ID
84
+ * @type {number|null}
85
+ * @private
86
+ */
87
+ private connectivityTimer;
88
+ /**
89
+ * Offline license refresh timer ID
90
+ * @type {number|null}
91
+ * @private
92
+ */
93
+ private offlineRefreshTimer;
94
+ /**
95
+ * Last offline validation result (to avoid duplicate emits)
96
+ * @type {import('./types.js').ValidationResult|null}
97
+ * @private
98
+ */
99
+ private lastOfflineValidation;
100
+ /**
101
+ * Flag to prevent concurrent syncOfflineAssets calls
102
+ * @type {boolean}
103
+ * @private
104
+ */
105
+ private syncingOfflineAssets;
106
+ /**
107
+ * Flag indicating if SDK has been destroyed
108
+ * @type {boolean}
109
+ * @private
110
+ */
111
+ private destroyed;
112
+ /**
113
+ * Initialize the SDK
114
+ * Loads cached license and starts auto-validation if configured.
115
+ * Called automatically unless autoInitialize is set to false.
116
+ * @returns {void}
117
+ */
118
+ initialize(): void;
119
+ /**
120
+ * Activate a license
121
+ * @param {string} licenseKey - The license key to activate
122
+ * @param {import('./types.js').ActivationOptions} [options={}] - Activation options
123
+ * @returns {Promise<import('./types.js').CachedLicense>} Activation result with cached license data
124
+ * @throws {APIError} When the API request fails
125
+ */
126
+ activate(licenseKey: string, options?: import("./types.js").ActivationOptions): Promise<import("./types.js").CachedLicense>;
127
+ /**
128
+ * Deactivate the current license
129
+ * @returns {Promise<Object>} Deactivation result from the API
130
+ * @throws {LicenseError} When no active license is found
131
+ * @throws {APIError} When the API request fails
132
+ */
133
+ deactivate(): Promise<any>;
134
+ /**
135
+ * Validate a license
136
+ * @param {string} licenseKey - License key to validate
137
+ * @param {import('./types.js').ValidationOptions} [options={}] - Validation options
138
+ * @returns {Promise<import('./types.js').ValidationResult>} Validation result
139
+ * @throws {APIError} When the API request fails and offline fallback is not available
140
+ */
141
+ validateLicense(licenseKey: string, options?: import("./types.js").ValidationOptions): Promise<import("./types.js").ValidationResult>;
142
+ /**
143
+ * Check if a specific entitlement is active (detailed version)
144
+ * @param {string} entitlementKey - The entitlement key to check
145
+ * @returns {import('./types.js').EntitlementCheckResult} Entitlement status with details
146
+ */
147
+ checkEntitlement(entitlementKey: string): import("./types.js").EntitlementCheckResult;
148
+ /**
149
+ * Check if a specific entitlement is active (simple boolean version)
150
+ * This is a convenience method that returns a simple boolean.
151
+ * Use checkEntitlement() for detailed status information.
152
+ * @param {string} entitlementKey - The entitlement key to check
153
+ * @returns {boolean} True if the entitlement is active, false otherwise
154
+ */
155
+ hasEntitlement(entitlementKey: string): boolean;
156
+ /**
157
+ * Get offline license data from the server
158
+ * @returns {Promise<import('./types.js').SignedOfflineLicense>} Signed offline license data
159
+ * @throws {LicenseError} When no active license is found
160
+ * @throws {APIError} When the API request fails
161
+ */
162
+ getOfflineLicense(): Promise<import("./types.js").SignedOfflineLicense>;
163
+ /**
164
+ * Fetch a public key from the server by key ID
165
+ * @param {string} keyId - The Key ID (kid) for which to fetch the public key
166
+ * @returns {Promise<string>} Base64-encoded public key
167
+ * @throws {Error} When keyId is not provided or the key is not found
168
+ */
169
+ getPublicKey(keyId: string): Promise<string>;
170
+ /**
171
+ * Verify a signed offline license client-side using Ed25519
172
+ * @param {import('./types.js').SignedOfflineLicense} signedLicenseData - The signed license data
173
+ * @param {string} publicKeyB64 - Base64-encoded public Ed25519 key
174
+ * @returns {Promise<boolean>} True if verification is successful
175
+ * @throws {CryptoError} When crypto library is not available
176
+ * @throws {Error} When inputs are invalid
177
+ */
178
+ verifyOfflineLicense(signedLicenseData: import("./types.js").SignedOfflineLicense, publicKeyB64: string): Promise<boolean>;
179
+ /**
180
+ * Get current license status
181
+ * @returns {import('./types.js').LicenseStatus} Current license status
182
+ */
183
+ getStatus(): import("./types.js").LicenseStatus;
184
+ /**
185
+ * Test server authentication
186
+ * Useful for verifying API key/session is valid.
187
+ * @returns {Promise<Object>} Result from the server
188
+ * @throws {Error} When API key is not configured
189
+ * @throws {APIError} When authentication fails
190
+ */
191
+ testAuth(): Promise<any>;
192
+ /**
193
+ * Clear all data and reset SDK state
194
+ * @returns {void}
195
+ */
196
+ reset(): void;
197
+ /**
198
+ * Destroy the SDK instance and release all resources
199
+ * Call this when you no longer need the SDK to prevent memory leaks.
200
+ * After calling destroy(), the SDK instance should not be used.
201
+ * @returns {void}
202
+ */
203
+ destroy(): void;
204
+ /**
205
+ * Subscribe to an event
206
+ * @param {string} event - Event name
207
+ * @param {import('./types.js').EventCallback} callback - Event handler
208
+ * @returns {import('./types.js').EventUnsubscribe} Unsubscribe function
209
+ */
210
+ on(event: string, callback: import("./types.js").EventCallback): import("./types.js").EventUnsubscribe;
211
+ /**
212
+ * Unsubscribe from an event
213
+ * @param {string} event - Event name
214
+ * @param {import('./types.js').EventCallback} callback - Event handler to remove
215
+ * @returns {void}
216
+ */
217
+ off(event: string, callback: import("./types.js").EventCallback): void;
218
+ /**
219
+ * Emit an event
220
+ * @param {string} event - Event name
221
+ * @param {*} data - Event data
222
+ * @returns {void}
223
+ * @private
224
+ */
225
+ private emit;
226
+ /**
227
+ * Start automatic license validation
228
+ * @param {string} licenseKey - License key to validate
229
+ * @returns {void}
230
+ * @private
231
+ */
232
+ private startAutoValidation;
233
+ /**
234
+ * Stop automatic validation
235
+ * @returns {void}
236
+ * @private
237
+ */
238
+ private stopAutoValidation;
239
+ /**
240
+ * Start connectivity polling (when offline)
241
+ * @returns {void}
242
+ * @private
243
+ */
244
+ private startConnectivityPolling;
245
+ /**
246
+ * Stop connectivity polling
247
+ * @returns {void}
248
+ * @private
249
+ */
250
+ private stopConnectivityPolling;
251
+ /**
252
+ * Fetch and cache offline license and public key
253
+ * Uses a lock to prevent concurrent calls from causing race conditions
254
+ * @returns {Promise<void>}
255
+ * @private
256
+ */
257
+ private syncOfflineAssets;
258
+ /**
259
+ * Schedule periodic offline license refresh
260
+ * @returns {void}
261
+ * @private
262
+ */
263
+ private scheduleOfflineRefresh;
264
+ /**
265
+ * Verify cached offline license
266
+ * @returns {Promise<import('./types.js').ValidationResult>}
267
+ * @private
268
+ */
269
+ private verifyCachedOffline;
270
+ /**
271
+ * Quick offline verification using only local data (no network)
272
+ * Performs signature verification plus basic validity checks (expiry, license key match)
273
+ * @returns {Promise<import('./types.js').ValidationResult|null>}
274
+ * @private
275
+ */
276
+ private quickVerifyCachedOfflineLocal;
277
+ /**
278
+ * Make an API call with retry logic
279
+ * @param {string} endpoint - API endpoint (will be appended to apiBaseUrl)
280
+ * @param {Object} [options={}] - Fetch options
281
+ * @param {string} [options.method="GET"] - HTTP method
282
+ * @param {Object} [options.body] - Request body (will be JSON-stringified)
283
+ * @param {Object} [options.headers] - Additional headers
284
+ * @returns {Promise<Object>} API response data
285
+ * @throws {APIError} When the request fails after all retries
286
+ * @private
287
+ */
288
+ private apiCall;
289
+ /**
290
+ * Determine if an error should be retried
291
+ * @param {Error} error - The error to check
292
+ * @returns {boolean} True if the error should trigger a retry
293
+ * @private
294
+ */
295
+ private shouldRetryError;
296
+ /**
297
+ * Get CSRF token from meta tag
298
+ * @returns {string} CSRF token or empty string
299
+ */
300
+ getCsrfToken(): string;
301
+ /**
302
+ * Log a message (if debug mode is enabled)
303
+ * @param {...*} args - Arguments to log
304
+ * @returns {void}
305
+ * @private
306
+ */
307
+ private log;
308
+ }
309
+ //# sourceMappingURL=LicenseSeat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LicenseSeat.d.ts","sourceRoot":"","sources":["../../src/LicenseSeat.js"],"names":[],"mappings":"AAwrCA;;;;GAIG;AACH,2CAHW,OAAO,YAAY,EAAE,iBAAiB,GACpC,cAAc,CAO1B;AAED;;;;;GAKG;AACH,kCAJW,OAAO,YAAY,EAAE,iBAAiB,UACtC,OAAO,GACL,cAAc,CAW1B;AAED;;;GAGG;AACH,uCAFa,IAAI,CAOhB;AAxqCD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH;IACE;;;OAGG;IACH,qBAFW,OAAO,YAAY,EAAE,iBAAiB,EA+FhD;IA5FC;;;OAGG;IACH,QAFU,OAAO,YAAY,EAAE,iBAAiB,CAK/C;IAED;;;;OAIG;IACH,uBAAwB;IAExB;;;;OAIG;IACH,wBAA2B;IAE3B;;;;OAIG;IACH,cAAwD;IAExD;;;;OAIG;IACH,eAAkB;IAElB;;;;OAIG;IACH,8BAAiC;IAEjC;;;;OAIG;IACH,0BAA6B;IAE7B;;;;OAIG;IACH,4BAA+B;IAE/B;;;;OAIG;IACH,8BAAiC;IAEjC;;;;OAIG;IACH,6BAAiC;IAEjC;;;;OAIG;IACH,kBAAsB;IAiBxB;;;;;OAKG;IACH,cAFa,IAAI,CAkDhB;IAED;;;;;;OAMG;IACH,qBALW,MAAM,YACN,OAAO,YAAY,EAAE,iBAAiB,GACpC,OAAO,CAAC,OAAO,YAAY,EAAE,aAAa,CAAC,CA4CvD;IAED;;;;;OAKG;IACH,cAJa,OAAO,KAAQ,CA+B3B;IAED;;;;;;OAMG;IACH,4BALW,MAAM,YACN,OAAO,YAAY,EAAE,iBAAiB,GACpC,OAAO,CAAC,OAAO,YAAY,EAAE,gBAAgB,CAAC,CAyF1D;IAED;;;;OAIG;IACH,iCAHW,MAAM,GACJ,OAAO,YAAY,EAAE,sBAAsB,CA6BvD;IAED;;;;;;OAMG;IACH,+BAHW,MAAM,GACJ,OAAO,CAInB;IAED;;;;;OAKG;IACH,qBAJa,OAAO,CAAC,OAAO,YAAY,EAAE,oBAAoB,CAAC,CAmC9D;IAED;;;;;OAKG;IACH,oBAJW,MAAM,GACJ,OAAO,CAAC,MAAM,CAAC,CAwB3B;IAED;;;;;;;OAOG;IACH,wCANW,OAAO,YAAY,EAAE,oBAAoB,gBACzC,MAAM,GACJ,OAAO,CAAC,OAAO,CAAC,CAuD5B;IAED;;;OAGG;IACH,aAFa,OAAO,YAAY,EAAE,aAAa,CA6C9C;IAED;;;;;;OAMG;IACH,YAJa,OAAO,KAAQ,CAoB3B;IAED;;;OAGG;IACH,SAFa,IAAI,CAahB;IAED;;;;;OAKG;IACH,WAFa,IAAI,CAehB;IAMD;;;;;OAKG;IACH,UAJW,MAAM,YACN,OAAO,YAAY,EAAE,aAAa,GAChC,OAAO,YAAY,EAAE,gBAAgB,CAQjD;IAED;;;;;OAKG;IACH,WAJW,MAAM,YACN,OAAO,YAAY,EAAE,aAAa,GAChC,IAAI,CAQhB;IAED;;;;;;OAMG;IACH,aAWC;IAMD;;;;;OAKG;IACH,4BAqBC;IAED;;;;OAIG;IACH,2BAMC;IAED;;;;OAIG;IACH,iCA4BC;IAED;;;;OAIG;IACH,gCAKC;IAMD;;;;;OAKG;IACH,0BAwCC;IAED;;;;OAIG;IACH,+BAMC;IAED;;;;OAIG;IACH,4BA0EC;IAED;;;;;OAKG;IACH,sCA+CC;IAMD;;;;;;;;;;OAUG;IACH,gBAiFC;IAED;;;;;OAKG;IACH,yBAsBC;IAMD;;;OAGG;IACH,gBAFa,MAAM,CAIlB;IAED;;;;;OAKG;IACH,YAIC;CACF"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * LicenseSeat SDK Cache Manager
3
+ * Handles persistent storage of license data, offline licenses, and public keys.
4
+ * @module cache
5
+ */
6
+ /**
7
+ * License Cache Manager
8
+ * Manages persistent storage of license data using localStorage.
9
+ */
10
+ export class LicenseCache {
11
+ /**
12
+ * Create a LicenseCache instance
13
+ * @param {string} [prefix="licenseseat_"] - Prefix for all localStorage keys
14
+ */
15
+ constructor(prefix?: string);
16
+ /** @type {string} */
17
+ prefix: string;
18
+ /** @type {string} */
19
+ publicKeyCacheKey: string;
20
+ /**
21
+ * Get the cached license data
22
+ * @returns {import('./types.js').CachedLicense|null} Cached license or null if not found
23
+ */
24
+ getLicense(): import("./types.js").CachedLicense | null;
25
+ /**
26
+ * Store license data in cache
27
+ * @param {import('./types.js').CachedLicense} data - License data to cache
28
+ * @returns {void}
29
+ */
30
+ setLicense(data: import("./types.js").CachedLicense): void;
31
+ /**
32
+ * Update the validation data for the cached license
33
+ * @param {import('./types.js').ValidationResult} validationData - Validation result to store
34
+ * @returns {void}
35
+ */
36
+ updateValidation(validationData: import("./types.js").ValidationResult): void;
37
+ /**
38
+ * Get the device identifier from the cached license
39
+ * @returns {string|null} Device identifier or null if not found
40
+ */
41
+ getDeviceId(): string | null;
42
+ /**
43
+ * Clear the cached license data
44
+ * @returns {void}
45
+ */
46
+ clearLicense(): void;
47
+ /**
48
+ * Get the cached offline license
49
+ * @returns {import('./types.js').SignedOfflineLicense|null} Offline license or null if not found
50
+ */
51
+ getOfflineLicense(): import("./types.js").SignedOfflineLicense | null;
52
+ /**
53
+ * Store offline license data in cache
54
+ * @param {import('./types.js').SignedOfflineLicense} data - Signed offline license to cache
55
+ * @returns {void}
56
+ */
57
+ setOfflineLicense(data: import("./types.js").SignedOfflineLicense): void;
58
+ /**
59
+ * Clear the cached offline license
60
+ * @returns {void}
61
+ */
62
+ clearOfflineLicense(): void;
63
+ /**
64
+ * Get a cached public key by key ID
65
+ * @param {string} keyId - The key ID to look up
66
+ * @returns {string|null} Base64-encoded public key or null if not found
67
+ */
68
+ getPublicKey(keyId: string): string | null;
69
+ /**
70
+ * Store a public key in cache
71
+ * @param {string} keyId - The key ID
72
+ * @param {string} publicKeyB64 - Base64-encoded public key
73
+ * @returns {void}
74
+ */
75
+ setPublicKey(keyId: string, publicKeyB64: string): void;
76
+ /**
77
+ * Clear all LicenseSeat SDK data for this prefix
78
+ * @returns {void}
79
+ */
80
+ clear(): void;
81
+ /**
82
+ * Get the last seen timestamp (for clock tamper detection)
83
+ * @returns {number|null} Unix timestamp in milliseconds or null if not set
84
+ */
85
+ getLastSeenTimestamp(): number | null;
86
+ /**
87
+ * Store the last seen timestamp
88
+ * @param {number} ts - Unix timestamp in milliseconds
89
+ * @returns {void}
90
+ */
91
+ setLastSeenTimestamp(ts: number): void;
92
+ }
93
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/cache.js"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH;IACE;;;OAGG;IACH,qBAFW,MAAM,EAOhB;IAJC,qBAAqB;IACrB,QADW,MAAM,CACG;IACpB,qBAAqB;IACrB,mBADW,MAAM,CACmC;IAGtD;;;OAGG;IACH,cAFa,OAAO,YAAY,EAAE,aAAa,GAAC,IAAI,CAUnD;IAED;;;;OAIG;IACH,iBAHW,OAAO,YAAY,EAAE,aAAa,GAChC,IAAI,CAQhB;IAED;;;;OAIG;IACH,iCAHW,OAAO,YAAY,EAAE,gBAAgB,GACnC,IAAI,CAShB;IAED;;;OAGG;IACH,eAFa,MAAM,GAAC,IAAI,CAKvB;IAED;;;OAGG;IACH,gBAFa,IAAI,CAIhB;IAED;;;OAGG;IACH,qBAFa,OAAO,YAAY,EAAE,oBAAoB,GAAC,IAAI,CAU1D;IAED;;;;OAIG;IACH,wBAHW,OAAO,YAAY,EAAE,oBAAoB,GACvC,IAAI,CAWhB;IAED;;;OAGG;IACH,uBAFa,IAAI,CAIhB;IAED;;;;OAIG;IACH,oBAHW,MAAM,GACJ,MAAM,GAAC,IAAI,CAYvB;IAED;;;;;OAKG;IACH,oBAJW,MAAM,gBACN,MAAM,GACJ,IAAI,CAYhB;IAED;;;OAGG;IACH,SAFa,IAAI,CAUhB;IAED;;;OAGG;IACH,wBAFa,MAAM,GAAC,IAAI,CAKvB;IAED;;;;OAIG;IACH,yBAHW,MAAM,GACJ,IAAI,CAQhB;CACF"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * LicenseSeat SDK Error Classes
3
+ * @module errors
4
+ */
5
+ /**
6
+ * Custom API Error class for HTTP request failures
7
+ * @extends Error
8
+ */
9
+ export class APIError extends Error {
10
+ /**
11
+ * Create an APIError
12
+ * @param {string} message - Error message
13
+ * @param {number} status - HTTP status code (0 for network failures)
14
+ * @param {import('./types.js').APIErrorData} [data] - Additional error data from the API response
15
+ */
16
+ constructor(message: string, status: number, data?: import("./types.js").APIErrorData);
17
+ /** @type {number} */
18
+ status: number;
19
+ /** @type {import('./types.js').APIErrorData|undefined} */
20
+ data: import("./types.js").APIErrorData | undefined;
21
+ }
22
+ /**
23
+ * Error thrown when SDK operations are attempted without proper configuration
24
+ * @extends Error
25
+ */
26
+ export class ConfigurationError extends Error {
27
+ /**
28
+ * Create a ConfigurationError
29
+ * @param {string} message - Error message
30
+ */
31
+ constructor(message: string);
32
+ }
33
+ /**
34
+ * Error thrown when license operations fail
35
+ * @extends Error
36
+ */
37
+ export class LicenseError extends Error {
38
+ /**
39
+ * Create a LicenseError
40
+ * @param {string} message - Error message
41
+ * @param {string} [code] - Machine-readable error code
42
+ */
43
+ constructor(message: string, code?: string);
44
+ /** @type {string|undefined} */
45
+ code: string | undefined;
46
+ }
47
+ /**
48
+ * Error thrown when cryptographic operations fail
49
+ * @extends Error
50
+ */
51
+ export class CryptoError extends Error {
52
+ /**
53
+ * Create a CryptoError
54
+ * @param {string} message - Error message
55
+ */
56
+ constructor(message: string);
57
+ }
58
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.js"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH;IACE;;;;;OAKG;IACH,qBAJW,MAAM,UACN,MAAM,SACN,OAAO,YAAY,EAAE,YAAY,EAU3C;IAJC,qBAAqB;IACrB,QADW,MAAM,CACG;IACpB,0DAA0D;IAC1D,MADW,OAAO,YAAY,EAAE,YAAY,GAAC,SAAS,CACtC;CAEnB;AAED;;;GAGG;AACH;IACE;;;OAGG;IACH,qBAFW,MAAM,EAMhB;CACF;AAED;;;GAGG;AACH;IACE;;;;OAIG;IACH,qBAHW,MAAM,SACN,MAAM,EAQhB;IAFC,+BAA+B;IAC/B,MADW,MAAM,GAAC,SAAS,CACX;CAEnB;AAED;;;GAGG;AACH;IACE;;;OAGG;IACH,qBAFW,MAAM,EAMhB;CACF"}
@@ -0,0 +1,7 @@
1
+ export { LicenseCache } from "./cache.js";
2
+ export default LicenseSeatSDK;
3
+ import { LicenseSeatSDK } from "./LicenseSeat.js";
4
+ export { LicenseSeatSDK, getSharedInstance, configure, resetSharedInstance } from "./LicenseSeat.js";
5
+ export { APIError, ConfigurationError, LicenseError, CryptoError } from "./errors.js";
6
+ export { parseActiveEntitlements, constantTimeEqual, canonicalJsonStringify, base64UrlDecode, generateDeviceId, getCsrfToken } from "./utils.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.js"],"names":[],"mappings":";;+BA4D+B,kBAAkB"}