@licensechain/nodejs-sdk 1.0.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.
Files changed (67) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +500 -0
  3. package/dist/api-client.d.ts +13 -0
  4. package/dist/api-client.d.ts.map +1 -0
  5. package/dist/api-client.js +52 -0
  6. package/dist/api-client.js.map +1 -0
  7. package/dist/client.d.ts +24 -0
  8. package/dist/client.d.ts.map +1 -0
  9. package/dist/client.js +60 -0
  10. package/dist/client.js.map +1 -0
  11. package/dist/configuration.d.ts +26 -0
  12. package/dist/configuration.d.ts.map +1 -0
  13. package/dist/configuration.js +63 -0
  14. package/dist/configuration.js.map +1 -0
  15. package/dist/exceptions.d.ts +46 -0
  16. package/dist/exceptions.d.ts.map +1 -0
  17. package/dist/exceptions.js +105 -0
  18. package/dist/exceptions.js.map +1 -0
  19. package/dist/http-core.d.ts +36 -0
  20. package/dist/http-core.d.ts.map +1 -0
  21. package/dist/http-core.js +119 -0
  22. package/dist/http-core.js.map +1 -0
  23. package/dist/index.d.ts +15 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +53 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/license-assertion.d.ts +15 -0
  28. package/dist/license-assertion.d.ts.map +1 -0
  29. package/dist/license-assertion.js +59 -0
  30. package/dist/license-assertion.js.map +1 -0
  31. package/dist/license-validator.d.ts +53 -0
  32. package/dist/license-validator.d.ts.map +1 -0
  33. package/dist/license-validator.js +208 -0
  34. package/dist/license-validator.js.map +1 -0
  35. package/dist/services/license-service.d.ts +55 -0
  36. package/dist/services/license-service.d.ts.map +1 -0
  37. package/dist/services/license-service.js +85 -0
  38. package/dist/services/license-service.js.map +1 -0
  39. package/dist/services/product-service.d.ts +48 -0
  40. package/dist/services/product-service.d.ts.map +1 -0
  41. package/dist/services/product-service.js +53 -0
  42. package/dist/services/product-service.js.map +1 -0
  43. package/dist/services/user-service.d.ts +43 -0
  44. package/dist/services/user-service.d.ts.map +1 -0
  45. package/dist/services/user-service.js +58 -0
  46. package/dist/services/user-service.js.map +1 -0
  47. package/dist/services/webhook-service.d.ts +37 -0
  48. package/dist/services/webhook-service.d.ts.map +1 -0
  49. package/dist/services/webhook-service.js +57 -0
  50. package/dist/services/webhook-service.js.map +1 -0
  51. package/dist/types.d.ts +197 -0
  52. package/dist/types.d.ts.map +1 -0
  53. package/dist/types.js +6 -0
  54. package/dist/types.js.map +1 -0
  55. package/dist/utils.d.ts +54 -0
  56. package/dist/utils.d.ts.map +1 -0
  57. package/dist/utils.js +396 -0
  58. package/dist/utils.js.map +1 -0
  59. package/dist/webhook-handler.d.ts +40 -0
  60. package/dist/webhook-handler.d.ts.map +1 -0
  61. package/dist/webhook-handler.js +160 -0
  62. package/dist/webhook-handler.js.map +1 -0
  63. package/dist/webhook-verifier.d.ts +41 -0
  64. package/dist/webhook-verifier.d.ts.map +1 -0
  65. package/dist/webhook-verifier.js +153 -0
  66. package/dist/webhook-verifier.js.map +1 -0
  67. package/package.json +71 -0
@@ -0,0 +1,26 @@
1
+ export interface ConfigurationOptions {
2
+ apiKey: string;
3
+ baseUrl?: string;
4
+ timeout?: number;
5
+ retries?: number;
6
+ }
7
+ export declare class Configuration {
8
+ private apiKey;
9
+ private baseUrl;
10
+ private timeout;
11
+ private retries;
12
+ constructor(options: ConfigurationOptions);
13
+ getApiKey(): string;
14
+ getBaseUrl(): string;
15
+ getTimeout(): number;
16
+ getRetries(): number;
17
+ isValid(): boolean;
18
+ setApiKey(apiKey: string): this;
19
+ setBaseUrl(baseUrl: string): this;
20
+ setTimeout(timeout: number): this;
21
+ setRetries(retries: number): this;
22
+ toObject(): ConfigurationOptions;
23
+ static fromObject(config: ConfigurationOptions): Configuration;
24
+ static fromEnvironment(): Configuration;
25
+ }
26
+ //# sourceMappingURL=configuration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../src/configuration.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,oBAAoB;IAOzC,SAAS,IAAI,MAAM;IAInB,UAAU,IAAI,MAAM;IAIpB,UAAU,IAAI,MAAM;IAIpB,UAAU,IAAI,MAAM;IAIpB,OAAO,IAAI,OAAO;IAIlB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK/B,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKjC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKjC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKjC,QAAQ,IAAI,oBAAoB;IAShC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,oBAAoB,GAAG,aAAa;IAI9D,MAAM,CAAC,eAAe,IAAI,aAAa;CAQxC"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Configuration = void 0;
4
+ class Configuration {
5
+ constructor(options) {
6
+ this.apiKey = options.apiKey;
7
+ this.baseUrl = options.baseUrl || 'https://api.licensechain.app/v1';
8
+ this.timeout = options.timeout || 30000; // 30 seconds
9
+ this.retries = options.retries || 3;
10
+ }
11
+ getApiKey() {
12
+ return this.apiKey;
13
+ }
14
+ getBaseUrl() {
15
+ return this.baseUrl;
16
+ }
17
+ getTimeout() {
18
+ return this.timeout;
19
+ }
20
+ getRetries() {
21
+ return this.retries;
22
+ }
23
+ isValid() {
24
+ return !!this.apiKey && this.apiKey.length > 0;
25
+ }
26
+ setApiKey(apiKey) {
27
+ this.apiKey = apiKey;
28
+ return this;
29
+ }
30
+ setBaseUrl(baseUrl) {
31
+ this.baseUrl = baseUrl;
32
+ return this;
33
+ }
34
+ setTimeout(timeout) {
35
+ this.timeout = timeout;
36
+ return this;
37
+ }
38
+ setRetries(retries) {
39
+ this.retries = retries;
40
+ return this;
41
+ }
42
+ toObject() {
43
+ return {
44
+ apiKey: this.apiKey,
45
+ baseUrl: this.baseUrl,
46
+ timeout: this.timeout,
47
+ retries: this.retries
48
+ };
49
+ }
50
+ static fromObject(config) {
51
+ return new Configuration(config);
52
+ }
53
+ static fromEnvironment() {
54
+ return new Configuration({
55
+ apiKey: process.env.LICENSECHAIN_API_KEY || '',
56
+ baseUrl: process.env.LICENSECHAIN_BASE_URL || 'https://api.licensechain.app/v1',
57
+ timeout: parseInt(process.env.LICENSECHAIN_TIMEOUT || '30000'),
58
+ retries: parseInt(process.env.LICENSECHAIN_RETRIES || '3')
59
+ });
60
+ }
61
+ }
62
+ exports.Configuration = Configuration;
63
+ //# sourceMappingURL=configuration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../src/configuration.ts"],"names":[],"mappings":";;;AAOA,MAAa,aAAa;IAMxB,YAAY,OAA6B;QACvC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,iCAAiC,CAAC;QACpE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,aAAa;QACtD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,OAAO;QACL,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACjD,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CAAC,OAAe;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CAAC,OAAe;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CAAC,OAAe;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ;QACN,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAA4B;QAC5C,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,eAAe;QACpB,OAAO,IAAI,aAAa,CAAC;YACvB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE;YAC9C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,iCAAiC;YAC/E,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,CAAC;YAC9D,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,GAAG,CAAC;SAC3D,CAAC,CAAC;IACL,CAAC;CACF;AA1ED,sCA0EC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * LicenseChain Node.js SDK Exceptions
3
+ */
4
+ export declare class LicenseChainException extends Error {
5
+ readonly code: string;
6
+ readonly statusCode: number;
7
+ constructor(message: string, code?: string, statusCode?: number);
8
+ }
9
+ export declare class AuthenticationException extends LicenseChainException {
10
+ constructor(message?: string);
11
+ }
12
+ export declare class ValidationException extends LicenseChainException {
13
+ constructor(message?: string);
14
+ }
15
+ export declare class NotFoundException extends LicenseChainException {
16
+ constructor(message?: string);
17
+ }
18
+ export declare class RateLimitException extends LicenseChainException {
19
+ readonly retryAfter: number;
20
+ constructor(message?: string, retryAfter?: number);
21
+ }
22
+ export declare class ServerException extends LicenseChainException {
23
+ constructor(message?: string);
24
+ }
25
+ export declare class NetworkException extends LicenseChainException {
26
+ constructor(message?: string);
27
+ }
28
+ export declare class LicenseExpiredException extends LicenseChainException {
29
+ constructor(message?: string);
30
+ }
31
+ export declare class LicenseSuspendedException extends LicenseChainException {
32
+ constructor(message?: string);
33
+ }
34
+ export declare class HardwareLimitExceededException extends LicenseChainException {
35
+ constructor(message?: string);
36
+ }
37
+ export declare class ValidationLimitExceededException extends LicenseChainException {
38
+ constructor(message?: string);
39
+ }
40
+ export declare class WebhookVerificationException extends LicenseChainException {
41
+ constructor(message?: string);
42
+ }
43
+ export declare class ConfigurationException extends LicenseChainException {
44
+ constructor(message?: string);
45
+ }
46
+ //# sourceMappingURL=exceptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exceptions.d.ts","sourceRoot":"","sources":["../src/exceptions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,UAAU,EAAE,MAAM,CAAC;gBAEvB,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAA8B,EAAE,UAAU,GAAE,MAAY;CAW5F;AAED,qBAAa,uBAAwB,SAAQ,qBAAqB;gBACpD,OAAO,GAAE,MAAgC;CAItD;AAED,qBAAa,mBAAoB,SAAQ,qBAAqB;gBAChD,OAAO,GAAE,MAA4B;CAIlD;AAED,qBAAa,iBAAkB,SAAQ,qBAAqB;gBAC9C,OAAO,GAAE,MAA6B;CAInD;AAED,qBAAa,kBAAmB,SAAQ,qBAAqB;IAC3D,SAAgB,UAAU,EAAE,MAAM,CAAC;gBAEvB,OAAO,GAAE,MAA8B,EAAE,UAAU,GAAE,MAAW;CAK7E;AAED,qBAAa,eAAgB,SAAQ,qBAAqB;gBAC5C,OAAO,GAAE,MAAuB;CAI7C;AAED,qBAAa,gBAAiB,SAAQ,qBAAqB;gBAC7C,OAAO,GAAE,MAAwB;CAI9C;AAED,qBAAa,uBAAwB,SAAQ,qBAAqB;gBACpD,OAAO,GAAE,MAA8B;CAIpD;AAED,qBAAa,yBAA0B,SAAQ,qBAAqB;gBACtD,OAAO,GAAE,MAAqC;CAI3D;AAED,qBAAa,8BAA+B,SAAQ,qBAAqB;gBAC3D,OAAO,GAAE,MAAkC;CAIxD;AAED,qBAAa,gCAAiC,SAAQ,qBAAqB;gBAC7D,OAAO,GAAE,MAAoC;CAI1D;AAED,qBAAa,4BAA6B,SAAQ,qBAAqB;gBACzD,OAAO,GAAE,MAAgD;CAItE;AAED,qBAAa,sBAAuB,SAAQ,qBAAqB;gBACnD,OAAO,GAAE,MAA8B;CAIpD"}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ /**
3
+ * LicenseChain Node.js SDK Exceptions
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ConfigurationException = exports.WebhookVerificationException = exports.ValidationLimitExceededException = exports.HardwareLimitExceededException = exports.LicenseSuspendedException = exports.LicenseExpiredException = exports.NetworkException = exports.ServerException = exports.RateLimitException = exports.NotFoundException = exports.ValidationException = exports.AuthenticationException = exports.LicenseChainException = void 0;
7
+ class LicenseChainException extends Error {
8
+ constructor(message, code = 'LICENSE_CHAIN_ERROR', statusCode = 500) {
9
+ super(message);
10
+ this.name = 'LicenseChainException';
11
+ this.code = code;
12
+ this.statusCode = statusCode;
13
+ // Maintains proper stack trace for where our error was thrown
14
+ if (Error.captureStackTrace) {
15
+ Error.captureStackTrace(this, LicenseChainException);
16
+ }
17
+ }
18
+ }
19
+ exports.LicenseChainException = LicenseChainException;
20
+ class AuthenticationException extends LicenseChainException {
21
+ constructor(message = 'Authentication failed') {
22
+ super(message, 'AUTHENTICATION_ERROR', 401);
23
+ this.name = 'AuthenticationException';
24
+ }
25
+ }
26
+ exports.AuthenticationException = AuthenticationException;
27
+ class ValidationException extends LicenseChainException {
28
+ constructor(message = 'Validation failed') {
29
+ super(message, 'VALIDATION_ERROR', 400);
30
+ this.name = 'ValidationException';
31
+ }
32
+ }
33
+ exports.ValidationException = ValidationException;
34
+ class NotFoundException extends LicenseChainException {
35
+ constructor(message = 'Resource not found') {
36
+ super(message, 'NOT_FOUND_ERROR', 404);
37
+ this.name = 'NotFoundException';
38
+ }
39
+ }
40
+ exports.NotFoundException = NotFoundException;
41
+ class RateLimitException extends LicenseChainException {
42
+ constructor(message = 'Rate limit exceeded', retryAfter = 60) {
43
+ super(message, 'RATE_LIMIT_ERROR', 429);
44
+ this.name = 'RateLimitException';
45
+ this.retryAfter = retryAfter;
46
+ }
47
+ }
48
+ exports.RateLimitException = RateLimitException;
49
+ class ServerException extends LicenseChainException {
50
+ constructor(message = 'Server error') {
51
+ super(message, 'SERVER_ERROR', 500);
52
+ this.name = 'ServerException';
53
+ }
54
+ }
55
+ exports.ServerException = ServerException;
56
+ class NetworkException extends LicenseChainException {
57
+ constructor(message = 'Network error') {
58
+ super(message, 'NETWORK_ERROR', 0);
59
+ this.name = 'NetworkException';
60
+ }
61
+ }
62
+ exports.NetworkException = NetworkException;
63
+ class LicenseExpiredException extends LicenseChainException {
64
+ constructor(message = 'License has expired') {
65
+ super(message, 'LICENSE_EXPIRED_ERROR', 410);
66
+ this.name = 'LicenseExpiredException';
67
+ }
68
+ }
69
+ exports.LicenseExpiredException = LicenseExpiredException;
70
+ class LicenseSuspendedException extends LicenseChainException {
71
+ constructor(message = 'License has been suspended') {
72
+ super(message, 'LICENSE_SUSPENDED_ERROR', 403);
73
+ this.name = 'LicenseSuspendedException';
74
+ }
75
+ }
76
+ exports.LicenseSuspendedException = LicenseSuspendedException;
77
+ class HardwareLimitExceededException extends LicenseChainException {
78
+ constructor(message = 'Hardware limit exceeded') {
79
+ super(message, 'HARDWARE_LIMIT_EXCEEDED_ERROR', 403);
80
+ this.name = 'HardwareLimitExceededException';
81
+ }
82
+ }
83
+ exports.HardwareLimitExceededException = HardwareLimitExceededException;
84
+ class ValidationLimitExceededException extends LicenseChainException {
85
+ constructor(message = 'Validation limit exceeded') {
86
+ super(message, 'VALIDATION_LIMIT_EXCEEDED_ERROR', 403);
87
+ this.name = 'ValidationLimitExceededException';
88
+ }
89
+ }
90
+ exports.ValidationLimitExceededException = ValidationLimitExceededException;
91
+ class WebhookVerificationException extends LicenseChainException {
92
+ constructor(message = 'Webhook signature verification failed') {
93
+ super(message, 'WEBHOOK_VERIFICATION_ERROR', 400);
94
+ this.name = 'WebhookVerificationException';
95
+ }
96
+ }
97
+ exports.WebhookVerificationException = WebhookVerificationException;
98
+ class ConfigurationException extends LicenseChainException {
99
+ constructor(message = 'Configuration error') {
100
+ super(message, 'CONFIGURATION_ERROR', 500);
101
+ this.name = 'ConfigurationException';
102
+ }
103
+ }
104
+ exports.ConfigurationException = ConfigurationException;
105
+ //# sourceMappingURL=exceptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../src/exceptions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ export type HttpExceptionFactory = {
2
+ authentication: (message: string) => Error;
3
+ network: (message: string) => Error;
4
+ notFound: (message: string) => Error;
5
+ rateLimit: (message: string) => Error;
6
+ server: (message: string) => Error;
7
+ validation: (message: string) => Error;
8
+ };
9
+ export type HttpRuntime = {
10
+ apiKey: string;
11
+ baseUrl: string;
12
+ deserialize: (text: string) => any;
13
+ exceptions: HttpExceptionFactory;
14
+ platform: string;
15
+ retries: number;
16
+ retryWithBackoff: <T>(fn: () => Promise<T>, maxRetries: number) => Promise<T>;
17
+ serialize: (value: any) => string;
18
+ timeout: number;
19
+ userAgent: string;
20
+ };
21
+ export declare class LicenseChainHttpCore {
22
+ private readonly runtime;
23
+ private readonly baseUrl;
24
+ constructor(runtime: HttpRuntime);
25
+ get<T = any>(endpoint: string, params?: Record<string, any>): Promise<T>;
26
+ post<T = any>(endpoint: string, data?: any): Promise<T>;
27
+ put<T = any>(endpoint: string, data?: any): Promise<T>;
28
+ patch<T = any>(endpoint: string, data?: any): Promise<T>;
29
+ delete<T = any>(endpoint: string, data?: any): Promise<T>;
30
+ private makeRequest;
31
+ private buildUrl;
32
+ private buildRequestOptions;
33
+ private sendRequest;
34
+ private handleHttpError;
35
+ }
36
+ //# sourceMappingURL=http-core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-core.d.ts","sourceRoot":"","sources":["../src/http-core.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IACjC,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC;IAC3C,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC;IACpC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC;IACrC,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC;IACtC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC;IACnC,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,CAAC;IACnC,UAAU,EAAE,oBAAoB,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9E,SAAS,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,MAAM,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,qBAAa,oBAAoB;IAGnB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAEJ,OAAO,EAAE,WAAW;IAI3C,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAIxE,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;IAIvD,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;IAItD,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;IAIxD,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;YAIjD,WAAW;IAczB,OAAO,CAAC,QAAQ;IAuBhB,OAAO,CAAC,mBAAmB;YAmBb,WAAW;IAkCzB,OAAO,CAAC,eAAe;CAoBxB"}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LicenseChainHttpCore = void 0;
4
+ class LicenseChainHttpCore {
5
+ constructor(runtime) {
6
+ this.runtime = runtime;
7
+ this.baseUrl = runtime.baseUrl.replace(/\/$/, '');
8
+ }
9
+ async get(endpoint, params) {
10
+ return this.makeRequest('GET', endpoint, undefined, params);
11
+ }
12
+ async post(endpoint, data) {
13
+ return this.makeRequest('POST', endpoint, data);
14
+ }
15
+ async put(endpoint, data) {
16
+ return this.makeRequest('PUT', endpoint, data);
17
+ }
18
+ async patch(endpoint, data) {
19
+ return this.makeRequest('PATCH', endpoint, data);
20
+ }
21
+ async delete(endpoint, data) {
22
+ return this.makeRequest('DELETE', endpoint, data);
23
+ }
24
+ async makeRequest(method, endpoint, data, params) {
25
+ const url = this.buildUrl(endpoint, params);
26
+ const requestOptions = this.buildRequestOptions(method, data);
27
+ return this.runtime.retryWithBackoff(async () => {
28
+ return this.sendRequest(url, requestOptions);
29
+ }, this.runtime.retries);
30
+ }
31
+ buildUrl(endpoint, params) {
32
+ const baseHasV1 = this.baseUrl.endsWith('/v1');
33
+ const normalizedEndpoint = endpoint.startsWith('/v1/')
34
+ ? (baseHasV1 ? endpoint.slice(3) : endpoint)
35
+ : endpoint.startsWith('/')
36
+ ? (baseHasV1 ? endpoint : `/v1${endpoint}`)
37
+ : (baseHasV1 ? `/${endpoint}` : `/v1/${endpoint}`);
38
+ let url = `${this.baseUrl}${normalizedEndpoint}`;
39
+ if (params && Object.keys(params).length > 0) {
40
+ const searchParams = new URLSearchParams();
41
+ for (const [key, value] of Object.entries(params)) {
42
+ if (value !== undefined && value !== null) {
43
+ searchParams.append(key, String(value));
44
+ }
45
+ }
46
+ url += `?${searchParams.toString()}`;
47
+ }
48
+ return url;
49
+ }
50
+ buildRequestOptions(method, data) {
51
+ const options = {
52
+ method,
53
+ headers: {
54
+ Authorization: `Bearer ${this.runtime.apiKey}`,
55
+ 'Content-Type': 'application/json',
56
+ 'User-Agent': this.runtime.userAgent,
57
+ 'X-API-Version': '1.0',
58
+ 'X-Platform': this.runtime.platform,
59
+ },
60
+ };
61
+ if (data !== undefined) {
62
+ options.body = this.runtime.serialize(data);
63
+ }
64
+ return options;
65
+ }
66
+ async sendRequest(url, options) {
67
+ try {
68
+ const response = await fetch(url, {
69
+ ...options,
70
+ signal: AbortSignal.timeout(this.runtime.timeout),
71
+ });
72
+ if (response.ok) {
73
+ const text = await response.text();
74
+ return text ? this.runtime.deserialize(text) : {};
75
+ }
76
+ const errorText = await response.text();
77
+ let errorMessage = 'Unknown error';
78
+ try {
79
+ const errorData = this.runtime.deserialize(errorText);
80
+ errorMessage = errorData.error || errorData.message || errorMessage;
81
+ }
82
+ catch {
83
+ errorMessage = errorText || errorMessage;
84
+ }
85
+ this.handleHttpError(response.status, errorMessage);
86
+ }
87
+ catch (error) {
88
+ if (error instanceof Error) {
89
+ if (error.name === 'AbortError') {
90
+ throw this.runtime.exceptions.network('Request timeout');
91
+ }
92
+ throw this.runtime.exceptions.network(error.message);
93
+ }
94
+ throw error;
95
+ }
96
+ }
97
+ handleHttpError(statusCode, message) {
98
+ switch (statusCode) {
99
+ case 400:
100
+ throw this.runtime.exceptions.validation(`Bad Request: ${message}`);
101
+ case 401:
102
+ case 403:
103
+ throw this.runtime.exceptions.authentication(`Unauthorized: ${message}`);
104
+ case 404:
105
+ throw this.runtime.exceptions.notFound(`Not Found: ${message}`);
106
+ case 429:
107
+ throw this.runtime.exceptions.rateLimit(`Rate Limited: ${message}`);
108
+ case 500:
109
+ case 502:
110
+ case 503:
111
+ case 504:
112
+ throw this.runtime.exceptions.server(`Server Error: ${message}`);
113
+ default:
114
+ throw this.runtime.exceptions.server(`Unexpected response: ${statusCode} ${message}`);
115
+ }
116
+ }
117
+ }
118
+ exports.LicenseChainHttpCore = LicenseChainHttpCore;
119
+ //# sourceMappingURL=http-core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-core.js","sourceRoot":"","sources":["../src/http-core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export { LicenseChainClient } from './client';
2
+ export type { Configuration, ConfigurationOptions } from './configuration';
3
+ export { ApiClient } from './api-client';
4
+ export { LicenseService } from './services/license-service';
5
+ export { UserService } from './services/user-service';
6
+ export { ProductService } from './services/product-service';
7
+ export { WebhookService } from './services/webhook-service';
8
+ export { WebhookHandler, WebhookEvents, createOutgoingWebhookSignature, verifyIncomingWebhookSignature } from './webhook-handler';
9
+ export { LicenseValidator } from './license-validator';
10
+ export { LICENSE_TOKEN_USE_CLAIM, verifyLicenseAssertionJwt, type VerifyLicenseAssertionOptions, } from './license-assertion';
11
+ export * from './types';
12
+ export * from './exceptions';
13
+ export * from './utils';
14
+ export { LicenseChainClient as default } from './client';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,8BAA8B,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AAGlI,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,KAAK,6BAA6B,GACnC,MAAM,qBAAqB,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,kBAAkB,IAAI,OAAO,EAAE,MAAM,UAAU,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.default = exports.verifyLicenseAssertionJwt = exports.LICENSE_TOKEN_USE_CLAIM = exports.LicenseValidator = exports.verifyIncomingWebhookSignature = exports.createOutgoingWebhookSignature = exports.WebhookEvents = exports.WebhookHandler = exports.WebhookService = exports.ProductService = exports.UserService = exports.LicenseService = exports.ApiClient = exports.LicenseChainClient = void 0;
18
+ // Main exports
19
+ var client_1 = require("./client");
20
+ Object.defineProperty(exports, "LicenseChainClient", { enumerable: true, get: function () { return client_1.LicenseChainClient; } });
21
+ var api_client_1 = require("./api-client");
22
+ Object.defineProperty(exports, "ApiClient", { enumerable: true, get: function () { return api_client_1.ApiClient; } });
23
+ // Services
24
+ var license_service_1 = require("./services/license-service");
25
+ Object.defineProperty(exports, "LicenseService", { enumerable: true, get: function () { return license_service_1.LicenseService; } });
26
+ var user_service_1 = require("./services/user-service");
27
+ Object.defineProperty(exports, "UserService", { enumerable: true, get: function () { return user_service_1.UserService; } });
28
+ var product_service_1 = require("./services/product-service");
29
+ Object.defineProperty(exports, "ProductService", { enumerable: true, get: function () { return product_service_1.ProductService; } });
30
+ var webhook_service_1 = require("./services/webhook-service");
31
+ Object.defineProperty(exports, "WebhookService", { enumerable: true, get: function () { return webhook_service_1.WebhookService; } });
32
+ // Webhook handling
33
+ var webhook_handler_1 = require("./webhook-handler");
34
+ Object.defineProperty(exports, "WebhookHandler", { enumerable: true, get: function () { return webhook_handler_1.WebhookHandler; } });
35
+ Object.defineProperty(exports, "WebhookEvents", { enumerable: true, get: function () { return webhook_handler_1.WebhookEvents; } });
36
+ Object.defineProperty(exports, "createOutgoingWebhookSignature", { enumerable: true, get: function () { return webhook_handler_1.createOutgoingWebhookSignature; } });
37
+ Object.defineProperty(exports, "verifyIncomingWebhookSignature", { enumerable: true, get: function () { return webhook_handler_1.verifyIncomingWebhookSignature; } });
38
+ // License validation
39
+ var license_validator_1 = require("./license-validator");
40
+ Object.defineProperty(exports, "LicenseValidator", { enumerable: true, get: function () { return license_validator_1.LicenseValidator; } });
41
+ var license_assertion_1 = require("./license-assertion");
42
+ Object.defineProperty(exports, "LICENSE_TOKEN_USE_CLAIM", { enumerable: true, get: function () { return license_assertion_1.LICENSE_TOKEN_USE_CLAIM; } });
43
+ Object.defineProperty(exports, "verifyLicenseAssertionJwt", { enumerable: true, get: function () { return license_assertion_1.verifyLicenseAssertionJwt; } });
44
+ // Types
45
+ __exportStar(require("./types"), exports);
46
+ // Exceptions
47
+ __exportStar(require("./exceptions"), exports);
48
+ // Utilities
49
+ __exportStar(require("./utils"), exports);
50
+ // Default export
51
+ var client_2 = require("./client");
52
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return client_2.LicenseChainClient; } });
53
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,eAAe;AACf,mCAA8C;AAArC,4GAAA,kBAAkB,OAAA;AAE3B,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAElB,WAAW;AACX,8DAA4D;AAAnD,iHAAA,cAAc,OAAA;AACvB,wDAAsD;AAA7C,2GAAA,WAAW,OAAA;AACpB,8DAA4D;AAAnD,iHAAA,cAAc,OAAA;AACvB,8DAA4D;AAAnD,iHAAA,cAAc,OAAA;AAEvB,mBAAmB;AACnB,qDAAkI;AAAzH,iHAAA,cAAc,OAAA;AAAE,gHAAA,aAAa,OAAA;AAAE,iIAAA,8BAA8B,OAAA;AAAE,iIAAA,8BAA8B,OAAA;AAEtG,qBAAqB;AACrB,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AACzB,yDAI6B;AAH3B,4HAAA,uBAAuB,OAAA;AACvB,8HAAA,yBAAyB,OAAA;AAI3B,QAAQ;AACR,0CAAwB;AAExB,aAAa;AACb,+CAA6B;AAE7B,YAAY;AACZ,0CAAwB;AAExB,iBAAiB;AACjB,mCAAyD;AAAhD,iGAAA,kBAAkB,OAAW"}
@@ -0,0 +1,15 @@
1
+ import * as jose from 'jose';
2
+ /** Must match Core API `LICENSE_TOKEN_USE_CLAIM`. */
3
+ export declare const LICENSE_TOKEN_USE_CLAIM = "licensechain_license_v1";
4
+ export type VerifyLicenseAssertionOptions = {
5
+ /** When set, payload `aud` must equal this Dashboard app id. */
6
+ expectedAppId?: string;
7
+ /** When set, passed to JWT issuer verification. */
8
+ issuer?: string;
9
+ };
10
+ /**
11
+ * Verify a `license_token` from POST /v1/licenses/verify using the JWKS URL
12
+ * from the same response (`license_jwks_uri`) or `GET /v1/licenses/jwks`.
13
+ */
14
+ export declare function verifyLicenseAssertionJwt(token: string, jwksUrl: string, options?: VerifyLicenseAssertionOptions): Promise<jose.JWTPayload>;
15
+ //# sourceMappingURL=license-assertion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"license-assertion.d.ts","sourceRoot":"","sources":["../src/license-assertion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,qDAAqD;AACrD,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AAEjE,MAAM,MAAM,6BAA6B,GAAG;IAC1C,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,6BAA6B,GACtC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAa1B"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.LICENSE_TOKEN_USE_CLAIM = void 0;
37
+ exports.verifyLicenseAssertionJwt = verifyLicenseAssertionJwt;
38
+ const jose = __importStar(require("jose"));
39
+ /** Must match Core API `LICENSE_TOKEN_USE_CLAIM`. */
40
+ exports.LICENSE_TOKEN_USE_CLAIM = 'licensechain_license_v1';
41
+ /**
42
+ * Verify a `license_token` from POST /v1/licenses/verify using the JWKS URL
43
+ * from the same response (`license_jwks_uri`) or `GET /v1/licenses/jwks`.
44
+ */
45
+ async function verifyLicenseAssertionJwt(token, jwksUrl, options) {
46
+ const JWKS = jose.createRemoteJWKSet(new URL(jwksUrl));
47
+ const { payload } = await jose.jwtVerify(token, JWKS, {
48
+ algorithms: ['RS256'],
49
+ ...(options?.issuer ? { issuer: options.issuer } : {}),
50
+ });
51
+ if (payload.token_use !== exports.LICENSE_TOKEN_USE_CLAIM) {
52
+ throw new Error(`Invalid license token: expected token_use "${exports.LICENSE_TOKEN_USE_CLAIM}"`);
53
+ }
54
+ if (options?.expectedAppId != null && options.expectedAppId !== '' && payload.aud !== options.expectedAppId) {
55
+ throw new Error('Invalid license token: aud does not match expected app id');
56
+ }
57
+ return payload;
58
+ }
59
+ //# sourceMappingURL=license-assertion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"license-assertion.js","sourceRoot":"","sources":["../src/license-assertion.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,8DAiBC;AAjCD,2CAA6B;AAE7B,qDAAqD;AACxC,QAAA,uBAAuB,GAAG,yBAAyB,CAAC;AASjE;;;GAGG;AACI,KAAK,UAAU,yBAAyB,CAC7C,KAAa,EACb,OAAe,EACf,OAAuC;IAEvC,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE;QACpD,UAAU,EAAE,CAAC,OAAO,CAAC;QACrB,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvD,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,SAAS,KAAK,+BAAuB,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,8CAA8C,+BAAuB,GAAG,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,OAAO,EAAE,aAAa,IAAI,IAAI,IAAI,OAAO,CAAC,aAAa,KAAK,EAAE,IAAI,OAAO,CAAC,GAAG,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC;QAC5G,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}