@blimu/nestjs 1.1.0 → 1.1.3

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 (80) hide show
  1. package/dist/__tests__/example.test.cjs +17135 -0
  2. package/dist/__tests__/example.test.cjs.map +1 -0
  3. package/dist/__tests__/example.test.d.cts +2 -0
  4. package/dist/__tests__/example.test.d.ts +2 -0
  5. package/dist/__tests__/example.test.mjs +17134 -0
  6. package/dist/__tests__/example.test.mjs.map +1 -0
  7. package/dist/config/blimu.config.cjs +31 -0
  8. package/dist/config/blimu.config.cjs.map +1 -0
  9. package/dist/config/blimu.config.d.cts +11 -0
  10. package/dist/config/blimu.config.d.ts +8 -6
  11. package/dist/config/blimu.config.mjs +6 -0
  12. package/dist/config/blimu.config.mjs.map +1 -0
  13. package/dist/decorators/entitlement.decorator.cjs +178 -0
  14. package/dist/decorators/entitlement.decorator.cjs.map +1 -0
  15. package/dist/decorators/entitlement.decorator.d.cts +9 -0
  16. package/dist/decorators/entitlement.decorator.d.ts +9 -4
  17. package/dist/decorators/entitlement.decorator.mjs +161 -0
  18. package/dist/decorators/entitlement.decorator.mjs.map +1 -0
  19. package/dist/exceptions/blimu-forbidden.exception.cjs +86 -0
  20. package/dist/exceptions/blimu-forbidden.exception.cjs.map +1 -0
  21. package/dist/exceptions/blimu-forbidden.exception.d.cts +14 -0
  22. package/dist/exceptions/blimu-forbidden.exception.d.ts +6 -4
  23. package/dist/exceptions/blimu-forbidden.exception.mjs +61 -0
  24. package/dist/exceptions/blimu-forbidden.exception.mjs.map +1 -0
  25. package/dist/guards/entitlement.guard.cjs +174 -0
  26. package/dist/guards/entitlement.guard.cjs.map +1 -0
  27. package/dist/guards/entitlement.guard.d.cts +24 -0
  28. package/dist/guards/entitlement.guard.d.ts +12 -12
  29. package/dist/guards/entitlement.guard.mjs +154 -0
  30. package/dist/guards/entitlement.guard.mjs.map +1 -0
  31. package/dist/index.cjs +445 -0
  32. package/dist/index.cjs.map +1 -0
  33. package/dist/index.d.cts +9 -0
  34. package/dist/index.d.ts +9 -7
  35. package/dist/index.mjs +420 -0
  36. package/dist/index.mjs.map +1 -0
  37. package/dist/modules/blimu.module.cjs +413 -0
  38. package/dist/modules/blimu.module.cjs.map +1 -0
  39. package/dist/modules/blimu.module.d.cts +14 -0
  40. package/dist/modules/blimu.module.d.ts +11 -8
  41. package/dist/modules/blimu.module.mjs +398 -0
  42. package/dist/modules/blimu.module.mjs.map +1 -0
  43. package/dist/services/index.cjs +93 -0
  44. package/dist/services/index.cjs.map +1 -0
  45. package/dist/services/index.d.cts +2 -0
  46. package/dist/services/index.d.ts +2 -2
  47. package/dist/services/index.mjs +69 -0
  48. package/dist/services/index.mjs.map +1 -0
  49. package/dist/services/jwk.service.cjs +91 -0
  50. package/dist/services/jwk.service.cjs.map +1 -0
  51. package/dist/services/jwk.service.d.cts +12 -0
  52. package/dist/services/jwk.service.d.ts +5 -3
  53. package/dist/services/jwk.service.mjs +69 -0
  54. package/dist/services/jwk.service.mjs.map +1 -0
  55. package/package.json +37 -16
  56. package/dist/config/blimu.config.d.ts.map +0 -1
  57. package/dist/config/blimu.config.js +0 -5
  58. package/dist/config/blimu.config.js.map +0 -1
  59. package/dist/decorators/entitlement.decorator.d.ts.map +0 -1
  60. package/dist/decorators/entitlement.decorator.js +0 -10
  61. package/dist/decorators/entitlement.decorator.js.map +0 -1
  62. package/dist/exceptions/blimu-forbidden.exception.d.ts.map +0 -1
  63. package/dist/exceptions/blimu-forbidden.exception.js +0 -38
  64. package/dist/exceptions/blimu-forbidden.exception.js.map +0 -1
  65. package/dist/guards/entitlement.guard.d.ts.map +0 -1
  66. package/dist/guards/entitlement.guard.js +0 -82
  67. package/dist/guards/entitlement.guard.js.map +0 -1
  68. package/dist/index.d.ts.map +0 -1
  69. package/dist/index.js +0 -23
  70. package/dist/index.js.map +0 -1
  71. package/dist/modules/blimu.module.d.ts.map +0 -1
  72. package/dist/modules/blimu.module.js +0 -91
  73. package/dist/modules/blimu.module.js.map +0 -1
  74. package/dist/services/index.d.ts.map +0 -1
  75. package/dist/services/index.js +0 -18
  76. package/dist/services/index.js.map +0 -1
  77. package/dist/services/jwk.service.d.ts.map +0 -1
  78. package/dist/services/jwk.service.js +0 -59
  79. package/dist/services/jwk.service.js.map +0 -1
  80. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var __decorateClass = (decorators, target, key, kind) => {
20
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
21
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
22
+ if (decorator = decorators[i])
23
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
24
+ if (kind && result) __defProp(target, key, result);
25
+ return result;
26
+ };
27
+ var __decorateParam = (index, decorator) => (target, key) => decorator(target, key, index);
28
+
29
+ // src/services/jwk.service.ts
30
+ var jwk_service_exports = {};
31
+ __export(jwk_service_exports, {
32
+ JWKService: () => JWKService
33
+ });
34
+ module.exports = __toCommonJS(jwk_service_exports);
35
+ var import_common = require("@nestjs/common");
36
+ var import_backend = require("@blimu/backend");
37
+
38
+ // src/config/blimu.config.ts
39
+ var BLIMU_CONFIG = /* @__PURE__ */ Symbol("BLIMU_CONFIG");
40
+
41
+ // src/services/jwk.service.ts
42
+ var JWKService = class {
43
+ constructor(config) {
44
+ this.config = config;
45
+ this.tokenVerifier = new import_backend.TokenVerifier({
46
+ runtimeApiUrl: this.config.baseURL
47
+ });
48
+ }
49
+ logger = new import_common.Logger(JWKService.name);
50
+ tokenVerifier;
51
+ /**
52
+ * Verify JWT token using JWKs from runtime-api
53
+ */
54
+ async verifyToken(token) {
55
+ try {
56
+ this.logger.debug(
57
+ `\u{1F50D} Verifying token. Runtime API URL: ${this.config.baseURL}, API Key prefix: ${this.config.apiKey?.substring(0, 10)}...`
58
+ );
59
+ const result = await this.tokenVerifier.verifyToken({
60
+ secretKey: this.config.apiKey,
61
+ token,
62
+ runtimeApiUrl: this.config.baseURL
63
+ });
64
+ this.logger.debug(`\u2705 Token verified successfully`);
65
+ return result;
66
+ } catch (error) {
67
+ const errorMessage = error instanceof Error ? error.message : String(error);
68
+ this.logger.error(`\u274C Token verification failed: ${errorMessage}`);
69
+ if (error instanceof Error && error.stack) {
70
+ this.logger.error(`Stack trace: ${error.stack}`);
71
+ }
72
+ throw error;
73
+ }
74
+ }
75
+ /**
76
+ * Clear cache (useful for testing or key rotation)
77
+ */
78
+ clearCache() {
79
+ this.tokenVerifier.clearCache(this.config.apiKey);
80
+ this.logger.debug("JWK cache cleared");
81
+ }
82
+ };
83
+ JWKService = __decorateClass([
84
+ (0, import_common.Injectable)(),
85
+ __decorateParam(0, (0, import_common.Inject)(BLIMU_CONFIG))
86
+ ], JWKService);
87
+ // Annotate the CommonJS export names for ESM import in node:
88
+ 0 && (module.exports = {
89
+ JWKService
90
+ });
91
+ //# sourceMappingURL=jwk.service.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/services/jwk.service.ts","../../src/config/blimu.config.ts"],"sourcesContent":["import { Inject, Injectable, Logger } from '@nestjs/common';\nimport { TokenVerifier } from '@blimu/backend';\nimport { BLIMU_CONFIG, type BlimuConfig } from '../config/blimu.config';\n\n@Injectable()\nexport class JWKService {\n private readonly logger = new Logger(JWKService.name);\n private readonly tokenVerifier: TokenVerifier;\n\n constructor(@Inject(BLIMU_CONFIG) private readonly config: BlimuConfig) {\n this.tokenVerifier = new TokenVerifier({\n runtimeApiUrl: this.config.baseURL,\n });\n }\n\n /**\n * Verify JWT token using JWKs from runtime-api\n */\n async verifyToken<T = unknown>(token: string): Promise<T> {\n try {\n this.logger.debug(\n `🔍 Verifying token. Runtime API URL: ${this.config.baseURL}, API Key prefix: ${this.config.apiKey?.substring(0, 10)}...`,\n );\n\n const result = await this.tokenVerifier.verifyToken<T>({\n secretKey: this.config.apiKey,\n token,\n runtimeApiUrl: this.config.baseURL,\n });\n\n this.logger.debug(`✅ Token verified successfully`);\n return result;\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n this.logger.error(`❌ Token verification failed: ${errorMessage}`);\n if (error instanceof Error && error.stack) {\n this.logger.error(`Stack trace: ${error.stack}`);\n }\n throw error;\n }\n }\n\n /**\n * Clear cache (useful for testing or key rotation)\n */\n clearCache(): void {\n this.tokenVerifier.clearCache(this.config.apiKey);\n this.logger.debug('JWK cache cleared');\n }\n}\n","/**\n * Configuration interface for Blimu NestJS integration\n */\nexport interface BlimuConfig<TRequest = unknown> {\n global?: boolean | undefined;\n /**\n * The API secret key for authenticating with Blimu Runtime API\n */\n apiKey: string;\n\n /**\n * The base URL for the Blimu Runtime API\n * @default 'https://api.blimu.dev'\n */\n baseURL?: string | undefined;\n\n /**\n * Environment ID for the Blimu environment\n * This will be used in future versions for environment-specific configurations\n */\n environmentId?: string | undefined;\n\n /**\n * Request timeout in milliseconds\n * @default 30000\n */\n timeoutMs?: number | undefined;\n\n /**\n * Function to extract user ID from the request\n *\n * This function is called by the EntitlementGuard to determine which user\n * to check entitlements for. It should return the user ID as a string.\n *\n * @param request - The incoming HTTP request\n * @returns The user ID as a string, or a Promise that resolves to the user ID\n *\n * @example\n * ```typescript\n * // Extract from JWT token in Authorization header\n * getUserId: (req) => {\n * const token = req.headers.authorization?.replace('Bearer ', '');\n * const decoded = jwt.verify(token, secret);\n * return decoded.sub;\n * }\n *\n * // Extract from request.user (common with Passport.js)\n * getUserId: (req) => req.user?.id\n *\n * // Extract from custom header\n * getUserId: (req) => req.headers['x-user-id']\n * ```\n */\n getUserId: (request: TRequest) => string | Promise<string>;\n}\n\n/**\n * Injection token for Blimu configuration\n */\nexport const BLIMU_CONFIG = Symbol('BLIMU_CONFIG');\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2C;AAC3C,qBAA8B;;;AC0DvB,IAAM,eAAe,uBAAO,cAAc;;;ADtD1C,IAAM,aAAN,MAAiB;AAAA,EAItB,YAAmD,QAAqB;AAArB;AACjD,SAAK,gBAAgB,IAAI,6BAAc;AAAA,MACrC,eAAe,KAAK,OAAO;AAAA,IAC7B,CAAC;AAAA,EACH;AAAA,EAPiB,SAAS,IAAI,qBAAO,WAAW,IAAI;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA,EAWjB,MAAM,YAAyB,OAA2B;AACxD,QAAI;AACF,WAAK,OAAO;AAAA,QACV,+CAAwC,KAAK,OAAO,OAAO,qBAAqB,KAAK,OAAO,QAAQ,UAAU,GAAG,EAAE,CAAC;AAAA,MACtH;AAEA,YAAM,SAAS,MAAM,KAAK,cAAc,YAAe;AAAA,QACrD,WAAW,KAAK,OAAO;AAAA,QACvB;AAAA,QACA,eAAe,KAAK,OAAO;AAAA,MAC7B,CAAC;AAED,WAAK,OAAO,MAAM,oCAA+B;AACjD,aAAO;AAAA,IACT,SAAS,OAAO;AACd,YAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAC1E,WAAK,OAAO,MAAM,qCAAgC,YAAY,EAAE;AAChE,UAAI,iBAAiB,SAAS,MAAM,OAAO;AACzC,aAAK,OAAO,MAAM,gBAAgB,MAAM,KAAK,EAAE;AAAA,MACjD;AACA,YAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,aAAmB;AACjB,SAAK,cAAc,WAAW,KAAK,OAAO,MAAM;AAChD,SAAK,OAAO,MAAM,mBAAmB;AAAA,EACvC;AACF;AA5Ca,aAAN;AAAA,MADN,0BAAW;AAAA,EAKG,6CAAO,YAAY;AAAA,GAJrB;","names":[]}
@@ -0,0 +1,12 @@
1
+ import { BlimuConfig } from '../config/blimu.config.cjs';
2
+
3
+ declare class JWKService {
4
+ private readonly config;
5
+ private readonly logger;
6
+ private readonly tokenVerifier;
7
+ constructor(config: BlimuConfig);
8
+ verifyToken<T = unknown>(token: string): Promise<T>;
9
+ clearCache(): void;
10
+ }
11
+
12
+ export { JWKService };
@@ -1,5 +1,6 @@
1
- import { BlimuConfig } from '../config/blimu.config';
2
- export declare class JWKService {
1
+ import { BlimuConfig } from '../config/blimu.config.js';
2
+
3
+ declare class JWKService {
3
4
  private readonly config;
4
5
  private readonly logger;
5
6
  private readonly tokenVerifier;
@@ -7,4 +8,5 @@ export declare class JWKService {
7
8
  verifyToken<T = unknown>(token: string): Promise<T>;
8
9
  clearCache(): void;
9
10
  }
10
- //# sourceMappingURL=jwk.service.d.ts.map
11
+
12
+ export { JWKService };
@@ -0,0 +1,69 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __decorateClass = (decorators, target, key, kind) => {
4
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
5
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
6
+ if (decorator = decorators[i])
7
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8
+ if (kind && result) __defProp(target, key, result);
9
+ return result;
10
+ };
11
+ var __decorateParam = (index, decorator) => (target, key) => decorator(target, key, index);
12
+
13
+ // src/services/jwk.service.ts
14
+ import { Inject, Injectable, Logger } from "@nestjs/common";
15
+ import { TokenVerifier } from "@blimu/backend";
16
+
17
+ // src/config/blimu.config.ts
18
+ var BLIMU_CONFIG = /* @__PURE__ */ Symbol("BLIMU_CONFIG");
19
+
20
+ // src/services/jwk.service.ts
21
+ var JWKService = class {
22
+ constructor(config) {
23
+ this.config = config;
24
+ this.tokenVerifier = new TokenVerifier({
25
+ runtimeApiUrl: this.config.baseURL
26
+ });
27
+ }
28
+ logger = new Logger(JWKService.name);
29
+ tokenVerifier;
30
+ /**
31
+ * Verify JWT token using JWKs from runtime-api
32
+ */
33
+ async verifyToken(token) {
34
+ try {
35
+ this.logger.debug(
36
+ `\u{1F50D} Verifying token. Runtime API URL: ${this.config.baseURL}, API Key prefix: ${this.config.apiKey?.substring(0, 10)}...`
37
+ );
38
+ const result = await this.tokenVerifier.verifyToken({
39
+ secretKey: this.config.apiKey,
40
+ token,
41
+ runtimeApiUrl: this.config.baseURL
42
+ });
43
+ this.logger.debug(`\u2705 Token verified successfully`);
44
+ return result;
45
+ } catch (error) {
46
+ const errorMessage = error instanceof Error ? error.message : String(error);
47
+ this.logger.error(`\u274C Token verification failed: ${errorMessage}`);
48
+ if (error instanceof Error && error.stack) {
49
+ this.logger.error(`Stack trace: ${error.stack}`);
50
+ }
51
+ throw error;
52
+ }
53
+ }
54
+ /**
55
+ * Clear cache (useful for testing or key rotation)
56
+ */
57
+ clearCache() {
58
+ this.tokenVerifier.clearCache(this.config.apiKey);
59
+ this.logger.debug("JWK cache cleared");
60
+ }
61
+ };
62
+ JWKService = __decorateClass([
63
+ Injectable(),
64
+ __decorateParam(0, Inject(BLIMU_CONFIG))
65
+ ], JWKService);
66
+ export {
67
+ JWKService
68
+ };
69
+ //# sourceMappingURL=jwk.service.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/services/jwk.service.ts","../../src/config/blimu.config.ts"],"sourcesContent":["import { Inject, Injectable, Logger } from '@nestjs/common';\nimport { TokenVerifier } from '@blimu/backend';\nimport { BLIMU_CONFIG, type BlimuConfig } from '../config/blimu.config';\n\n@Injectable()\nexport class JWKService {\n private readonly logger = new Logger(JWKService.name);\n private readonly tokenVerifier: TokenVerifier;\n\n constructor(@Inject(BLIMU_CONFIG) private readonly config: BlimuConfig) {\n this.tokenVerifier = new TokenVerifier({\n runtimeApiUrl: this.config.baseURL,\n });\n }\n\n /**\n * Verify JWT token using JWKs from runtime-api\n */\n async verifyToken<T = unknown>(token: string): Promise<T> {\n try {\n this.logger.debug(\n `🔍 Verifying token. Runtime API URL: ${this.config.baseURL}, API Key prefix: ${this.config.apiKey?.substring(0, 10)}...`,\n );\n\n const result = await this.tokenVerifier.verifyToken<T>({\n secretKey: this.config.apiKey,\n token,\n runtimeApiUrl: this.config.baseURL,\n });\n\n this.logger.debug(`✅ Token verified successfully`);\n return result;\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n this.logger.error(`❌ Token verification failed: ${errorMessage}`);\n if (error instanceof Error && error.stack) {\n this.logger.error(`Stack trace: ${error.stack}`);\n }\n throw error;\n }\n }\n\n /**\n * Clear cache (useful for testing or key rotation)\n */\n clearCache(): void {\n this.tokenVerifier.clearCache(this.config.apiKey);\n this.logger.debug('JWK cache cleared');\n }\n}\n","/**\n * Configuration interface for Blimu NestJS integration\n */\nexport interface BlimuConfig<TRequest = unknown> {\n global?: boolean | undefined;\n /**\n * The API secret key for authenticating with Blimu Runtime API\n */\n apiKey: string;\n\n /**\n * The base URL for the Blimu Runtime API\n * @default 'https://api.blimu.dev'\n */\n baseURL?: string | undefined;\n\n /**\n * Environment ID for the Blimu environment\n * This will be used in future versions for environment-specific configurations\n */\n environmentId?: string | undefined;\n\n /**\n * Request timeout in milliseconds\n * @default 30000\n */\n timeoutMs?: number | undefined;\n\n /**\n * Function to extract user ID from the request\n *\n * This function is called by the EntitlementGuard to determine which user\n * to check entitlements for. It should return the user ID as a string.\n *\n * @param request - The incoming HTTP request\n * @returns The user ID as a string, or a Promise that resolves to the user ID\n *\n * @example\n * ```typescript\n * // Extract from JWT token in Authorization header\n * getUserId: (req) => {\n * const token = req.headers.authorization?.replace('Bearer ', '');\n * const decoded = jwt.verify(token, secret);\n * return decoded.sub;\n * }\n *\n * // Extract from request.user (common with Passport.js)\n * getUserId: (req) => req.user?.id\n *\n * // Extract from custom header\n * getUserId: (req) => req.headers['x-user-id']\n * ```\n */\n getUserId: (request: TRequest) => string | Promise<string>;\n}\n\n/**\n * Injection token for Blimu configuration\n */\nexport const BLIMU_CONFIG = Symbol('BLIMU_CONFIG');\n"],"mappings":";;;;;;;;;;;;;AAAA,SAAS,QAAQ,YAAY,cAAc;AAC3C,SAAS,qBAAqB;;;AC0DvB,IAAM,eAAe,uBAAO,cAAc;;;ADtD1C,IAAM,aAAN,MAAiB;AAAA,EAItB,YAAmD,QAAqB;AAArB;AACjD,SAAK,gBAAgB,IAAI,cAAc;AAAA,MACrC,eAAe,KAAK,OAAO;AAAA,IAC7B,CAAC;AAAA,EACH;AAAA,EAPiB,SAAS,IAAI,OAAO,WAAW,IAAI;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA,EAWjB,MAAM,YAAyB,OAA2B;AACxD,QAAI;AACF,WAAK,OAAO;AAAA,QACV,+CAAwC,KAAK,OAAO,OAAO,qBAAqB,KAAK,OAAO,QAAQ,UAAU,GAAG,EAAE,CAAC;AAAA,MACtH;AAEA,YAAM,SAAS,MAAM,KAAK,cAAc,YAAe;AAAA,QACrD,WAAW,KAAK,OAAO;AAAA,QACvB;AAAA,QACA,eAAe,KAAK,OAAO;AAAA,MAC7B,CAAC;AAED,WAAK,OAAO,MAAM,oCAA+B;AACjD,aAAO;AAAA,IACT,SAAS,OAAO;AACd,YAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAC1E,WAAK,OAAO,MAAM,qCAAgC,YAAY,EAAE;AAChE,UAAI,iBAAiB,SAAS,MAAM,OAAO;AACzC,aAAK,OAAO,MAAM,gBAAgB,MAAM,KAAK,EAAE;AAAA,MACjD;AACA,YAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,aAAmB;AACjB,SAAK,cAAc,WAAW,KAAK,OAAO,MAAM;AAChD,SAAK,OAAO,MAAM,mBAAmB;AAAA,EACvC;AACF;AA5Ca,aAAN;AAAA,EADN,WAAW;AAAA,EAKG,0BAAO,YAAY;AAAA,GAJrB;","names":[]}
package/package.json CHANGED
@@ -4,16 +4,22 @@
4
4
  "type": "git",
5
5
  "url": "https://github.com/blimu-dev/blimu-ts"
6
6
  },
7
- "version": "1.1.0",
7
+ "version": "1.1.3",
8
8
  "description": "NestJS integration library for Blimu authorization and entitlement system",
9
- "main": "dist/index.js",
9
+ "type": "module",
10
+ "main": "dist/index.cjs",
11
+ "module": "dist/index.mjs",
10
12
  "types": "dist/index.d.ts",
11
13
  "files": [
12
14
  "dist"
13
15
  ],
14
16
  "scripts": {
15
- "build": "tsc -p tsconfig.json",
16
- "clean": "rm -rf dist"
17
+ "d:build": "npm run build && npm run typecheck",
18
+ "build": "tsup",
19
+ "typecheck": "tsc -p tsconfig.json --noEmit",
20
+ "clean": "rm -rf dist",
21
+ "test": "vitest run",
22
+ "test:watch": "vitest"
17
23
  },
18
24
  "keywords": [
19
25
  "nestjs",
@@ -24,27 +30,42 @@
24
30
  "access-control"
25
31
  ],
26
32
  "peerDependencies": {
27
- "@blimu/backend": ">=1.1.0",
33
+ "@blimu/backend": ">=1.1.3",
28
34
  "@nestjs/common": ">=10.0.0",
29
35
  "@nestjs/core": ">=10.0.0",
30
36
  "reflect-metadata": ">=0.1.13",
31
37
  "rxjs": ">=7.0.0"
32
38
  },
33
39
  "dependencies": {
34
- "@blimu/backend": "1.1.0",
35
- "@blimu/types": "1.1.0"
40
+ "@blimu/backend": "1.1.3",
41
+ "@blimu/types": "1.1.3"
36
42
  },
37
43
  "devDependencies": {
38
- "@nestjs/common": "^11.1.11",
39
- "@nestjs/core": "^11.1.11",
40
- "@types/node": "^25.0.3",
44
+ "@nestjs/common": "^11.1.12",
45
+ "@nestjs/core": "^11.1.12",
46
+ "@types/node": "^25.0.9",
41
47
  "reflect-metadata": "^0.2.2",
42
48
  "rxjs": "^7.8.2",
43
- "typescript": "^5.9.3"
49
+ "tsup": "^8.5.1",
50
+ "typescript": "^5.9.3",
51
+ "vitest": "^4.0.17"
44
52
  },
45
- "packageManager": "yarn@3.8.7",
46
- "volta": {
47
- "node": "24.1.0",
48
- "yarn": "3.8.7"
49
- }
53
+ "packageManager": "yarn@4.12.0",
54
+ "exports": {
55
+ ".": {
56
+ "types": "./dist/index.d.ts",
57
+ "import": "./dist/index.mjs",
58
+ "require": "./dist/index.cjs",
59
+ "default": "./dist/index.cjs"
60
+ },
61
+ "./package.json": "./package.json"
62
+ },
63
+ "sideEffects": false,
64
+ "publishConfig": {
65
+ "access": "public"
66
+ },
67
+ "engines": {
68
+ "node": ">=18.0.0"
69
+ },
70
+ "license": "MIT"
50
71
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"blimu.config.d.ts","sourceRoot":"","sources":["../../src/config/blimu.config.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW,CAAC,QAAQ,GAAG,GAAG;IAIzC,MAAM,EAAE,MAAM,CAAC;IAMf,OAAO,CAAC,EAAE,MAAM,CAAC;IAMjB,aAAa,CAAC,EAAE,MAAM,CAAC;IAMvB,SAAS,CAAC,EAAE,MAAM,CAAC;IA2BnB,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5D;AAKD,eAAO,MAAM,YAAY,eAAyB,CAAC"}
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BLIMU_CONFIG = void 0;
4
- exports.BLIMU_CONFIG = Symbol('BLIMU_CONFIG');
5
- //# sourceMappingURL=blimu.config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"blimu.config.js","sourceRoot":"","sources":["../../src/config/blimu.config.ts"],"names":[],"mappings":";;;AA0Da,QAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"entitlement.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/entitlement.decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,eAAe,EAChB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AA0FpD,eAAO,MAAM,WAAW,GAAI,QAAQ,GAAG,GAAG,EACxC,gBAAgB,eAAe,EAC/B,oBAAoB,CAAC,OAAO,EAAE,QAAQ,KAAK,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,gJAMtF,CAAC"}
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Entitlement = void 0;
4
- const common_1 = require("@nestjs/common");
5
- const entitlement_guard_1 = require("../guards/entitlement.guard");
6
- const Entitlement = (entitlementKey, getEntitlementInfo) => {
7
- return (0, common_1.applyDecorators)((0, entitlement_guard_1.SetEntitlementMetadata)(entitlementKey, getEntitlementInfo), (0, common_1.UseGuards)(entitlement_guard_1.EntitlementGuard));
8
- };
9
- exports.Entitlement = Entitlement;
10
- //# sourceMappingURL=entitlement.decorator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entitlement.decorator.js","sourceRoot":"","sources":["../../src/decorators/entitlement.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA4D;AAC5D,mEAIqC;AA2F9B,MAAM,WAAW,GAAG,CACzB,cAA+B,EAC/B,kBAAqF,EACrF,EAAE;IACF,OAAO,IAAA,wBAAe,EACpB,IAAA,0CAAsB,EAAW,cAAc,EAAE,kBAAkB,CAAC,EACpE,IAAA,kBAAS,EAAC,oCAAgB,CAAC,CAC5B,CAAC;AACJ,CAAC,CAAC;AARW,QAAA,WAAW,eAQtB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"blimu-forbidden.exception.d.ts","sourceRoot":"","sources":["../../src/exceptions/blimu-forbidden.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAQpD,qBAAa,uBAAwB,SAAQ,kBAAkB;IAI7D,SAAgB,iBAAiB,EAAE,MAAM,CAAC,sBAAsB,CAAC;IAKjE,SAAgB,cAAc,EAAE,eAAe,CAAC;IAKhD,SAAgB,UAAU,EAAE,MAAM,CAAC;IAKnC,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAG7B,iBAAiB,EAAE,MAAM,CAAC,sBAAsB,EAChD,cAAc,EAAE,eAAe,EAC/B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM;IAsBhB,OAAO,CAAC,MAAM,CAAC,YAAY;CA4B5B"}
@@ -1,38 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BlimuForbiddenException = void 0;
4
- const common_1 = require("@nestjs/common");
5
- class BlimuForbiddenException extends common_1.ForbiddenException {
6
- constructor(entitlementResult, entitlementKey, resourceId, userId) {
7
- const message = BlimuForbiddenException.buildMessage(entitlementResult, entitlementKey);
8
- super({
9
- message,
10
- entitlementResult,
11
- entitlementKey,
12
- resourceId,
13
- userId,
14
- });
15
- this.entitlementResult = entitlementResult;
16
- this.entitlementKey = entitlementKey;
17
- this.resourceId = resourceId;
18
- this.userId = userId;
19
- }
20
- static buildMessage(result, entitlementKey) {
21
- const reasons = [];
22
- if (result.roles && !result.roles.allowed) {
23
- reasons.push(`Insufficient roles. Required: ${result.roles.allowedRoles?.join(', ') || 'unknown'}. User has: ${result.roles.userRoles?.join(', ') || 'none'}.`);
24
- }
25
- if (result.plans && !result.plans.allowed) {
26
- reasons.push(`Plan restriction. Required plans: ${result.plans.allowedPlans?.join(', ') || 'unknown'}. Current plan: ${result.plans.plan || 'none'}.`);
27
- }
28
- if (result.limit && !result.limit.allowed) {
29
- reasons.push(`Usage limit exceeded. ${result.limit.reason || 'Limit has been reached'}.`);
30
- }
31
- if (reasons.length === 0) {
32
- return `Access denied for entitlement: ${entitlementKey}`;
33
- }
34
- return `Access denied for entitlement "${entitlementKey}": ${reasons.join(' ')}`;
35
- }
36
- }
37
- exports.BlimuForbiddenException = BlimuForbiddenException;
38
- //# sourceMappingURL=blimu-forbidden.exception.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"blimu-forbidden.exception.js","sourceRoot":"","sources":["../../src/exceptions/blimu-forbidden.exception.ts"],"names":[],"mappings":";;;AAAA,2CAAoD;AAUpD,MAAa,uBAAwB,SAAQ,2BAAkB;IAqB7D,YACE,iBAAgD,EAChD,cAA+B,EAC/B,UAAkB,EAClB,MAAc;QAGd,MAAM,OAAO,GAAG,uBAAuB,CAAC,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;QAExF,KAAK,CAAC;YACJ,OAAO;YACP,iBAAiB;YACjB,cAAc;YACd,UAAU;YACV,MAAM;SACP,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAKO,MAAM,CAAC,YAAY,CACzB,MAAqC,EACrC,cAA+B;QAE/B,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YAC1C,OAAO,CAAC,IAAI,CACV,iCAAiC,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,eAAe,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,GAAG,CAClJ,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YAC1C,OAAO,CAAC,IAAI,CACV,qCAAqC,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,mBAAmB,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM,GAAG,CACzI,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YAC1C,OAAO,CAAC,IAAI,CAAC,yBAAyB,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,wBAAwB,GAAG,CAAC,CAAC;QAC5F,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,kCAAkC,cAAc,EAAE,CAAC;QAC5D,CAAC;QAED,OAAO,kCAAkC,cAAc,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACnF,CAAC;CACF;AA3ED,0DA2EC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"entitlement.guard.d.ts","sourceRoot":"","sources":["../../src/guards/entitlement.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAKjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAI1D,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAC7C,eAAO,MAAM,wBAAwB,eAAwB,CAAC;AAK9D,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAKD,MAAM,WAAW,mBAAmB,CAAC,QAAQ,GAAG,GAAG;IACjD,cAAc,EAAE,eAAe,CAAC;IAChC,kBAAkB,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CACvF;AAMD,eAAO,MAAM,sBAAsB,GAAI,QAAQ,GAAG,GAAG,EACnD,gBAAgB,MAAM,EACtB,oBAAoB,CAAC,OAAO,EAAE,QAAQ,KAAK,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,8EAKlD,CAAC;AAWtC,qBACa,gBAAgB,CAAC,QAAQ,GAAG,GAAG,CAAE,YAAW,WAAW;IAEhE,OAAO,CAAC,QAAQ,CAAC,SAAS;IAE1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAJP,SAAS,EAAE,SAAS,EAEpB,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,EAE7B,OAAO,EAAE,KAAK;IAG3B,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;CA4D/D"}
@@ -1,82 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.EntitlementGuard = exports.SetEntitlementMetadata = exports.ENTITLEMENT_METADATA_KEY = exports.ENTITLEMENT_KEY = void 0;
16
- const common_1 = require("@nestjs/common");
17
- const core_1 = require("@nestjs/core");
18
- const backend_1 = require("@blimu/backend");
19
- const blimu_config_1 = require("../config/blimu.config");
20
- const blimu_forbidden_exception_1 = require("../exceptions/blimu-forbidden.exception");
21
- exports.ENTITLEMENT_KEY = 'entitlement';
22
- exports.ENTITLEMENT_METADATA_KEY = Symbol('entitlement');
23
- const SetEntitlementMetadata = (entitlementKey, getEntitlementInfo) => (0, common_1.SetMetadata)(exports.ENTITLEMENT_METADATA_KEY, {
24
- entitlementKey,
25
- getEntitlementInfo,
26
- });
27
- exports.SetEntitlementMetadata = SetEntitlementMetadata;
28
- let EntitlementGuard = class EntitlementGuard {
29
- constructor(reflector, config, runtime) {
30
- this.reflector = reflector;
31
- this.config = config;
32
- this.runtime = runtime;
33
- }
34
- async canActivate(context) {
35
- const request = context.switchToHttp().getRequest();
36
- const metadata = this.reflector.get(exports.ENTITLEMENT_METADATA_KEY, context.getHandler());
37
- if (!metadata) {
38
- return true;
39
- }
40
- let userId;
41
- try {
42
- userId = await this.config.getUserId(request);
43
- }
44
- catch (error) {
45
- throw new common_1.ForbiddenException('Failed to extract user ID from request');
46
- }
47
- if (!userId) {
48
- throw new common_1.ForbiddenException('User ID is required for entitlement check');
49
- }
50
- const entitlementInfo = await metadata.getEntitlementInfo(request);
51
- if (!entitlementInfo || !entitlementInfo.resourceId) {
52
- throw new common_1.ForbiddenException('Resource ID is required for entitlement check');
53
- }
54
- try {
55
- const result = await this.runtime.entitlements.checkEntitlement({
56
- userId,
57
- entitlement: metadata.entitlementKey,
58
- resourceId: entitlementInfo.resourceId,
59
- amount: entitlementInfo.amount,
60
- });
61
- if (!result.allowed) {
62
- throw new blimu_forbidden_exception_1.BlimuForbiddenException(result, metadata.entitlementKey, entitlementInfo.resourceId, userId);
63
- }
64
- return true;
65
- }
66
- catch (error) {
67
- if (error instanceof blimu_forbidden_exception_1.BlimuForbiddenException || error instanceof common_1.ForbiddenException) {
68
- throw error;
69
- }
70
- console.error('Entitlement check failed:', error);
71
- throw new common_1.ForbiddenException('Failed to verify entitlements');
72
- }
73
- }
74
- };
75
- exports.EntitlementGuard = EntitlementGuard;
76
- exports.EntitlementGuard = EntitlementGuard = __decorate([
77
- (0, common_1.Injectable)(),
78
- __param(1, (0, common_1.Inject)(blimu_config_1.BLIMU_CONFIG)),
79
- __param(2, (0, common_1.Inject)(backend_1.Blimu)),
80
- __metadata("design:paramtypes", [core_1.Reflector, Object, backend_1.Blimu])
81
- ], EntitlementGuard);
82
- //# sourceMappingURL=entitlement.guard.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entitlement.guard.js","sourceRoot":"","sources":["../../src/guards/entitlement.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAOwB;AACxB,uCAAyC;AACzC,4CAAuC;AAGvC,yDAAsD;AACtD,uFAAkF;AAErE,QAAA,eAAe,GAAG,aAAa,CAAC;AAChC,QAAA,wBAAwB,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAsBvD,MAAM,sBAAsB,GAAG,CACpC,cAAsB,EACtB,kBAAqF,EACrF,EAAE,CACF,IAAA,oBAAW,EAAC,gCAAwB,EAAE;IACpC,cAAc;IACd,kBAAkB;CACc,CAAC,CAAC;AAPzB,QAAA,sBAAsB,0BAOG;AAY/B,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,YACmB,SAAoB,EAEpB,MAA6B,EAE7B,OAAc;QAJd,cAAS,GAAT,SAAS,CAAW;QAEpB,WAAM,GAAN,MAAM,CAAuB;QAE7B,YAAO,GAAP,OAAO,CAAO;IAC9B,CAAC;IAEJ,KAAK,CAAC,WAAW,CAAC,OAAyB;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAY,CAAC;QAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CACjC,gCAAwB,EACxB,OAAO,CAAC,UAAU,EAAE,CACrB,CAAC;QAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;YAEd,OAAO,IAAI,CAAC;QACd,CAAC;QAGD,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,2BAAkB,CAAC,wCAAwC,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,2BAAkB,CAAC,2CAA2C,CAAC,CAAC;QAC5E,CAAC;QAGD,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAEnE,IAAI,CAAC,eAAe,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;YACpD,MAAM,IAAI,2BAAkB,CAAC,+CAA+C,CAAC,CAAC;QAChF,CAAC;QAED,IAAI,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC;gBAC9D,MAAM;gBACN,WAAW,EAAE,QAAQ,CAAC,cAAc;gBACpC,UAAU,EAAE,eAAe,CAAC,UAAU;gBACtC,MAAM,EAAE,eAAe,CAAC,MAAM;aAC/B,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,mDAAuB,CAC/B,MAAM,EACN,QAAQ,CAAC,cAAc,EACvB,eAAe,CAAC,UAAU,EAC1B,MAAM,CACP,CAAC;YACJ,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,mDAAuB,IAAI,KAAK,YAAY,2BAAkB,EAAE,CAAC;gBACpF,MAAM,KAAK,CAAC;YACd,CAAC;YAGD,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YAClD,MAAM,IAAI,2BAAkB,CAAC,+BAA+B,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;CACF,CAAA;AArEY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;IAIR,WAAA,IAAA,eAAM,EAAC,2BAAY,CAAC,CAAA;IAEpB,WAAA,IAAA,eAAM,EAAC,eAAK,CAAC,CAAA;qCAHc,gBAAS,UAIX,eAAK;GANtB,gBAAgB,CAqE5B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,wBAAwB,CAAC;AAGvC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,4BAA4B,CAAC;AAG3C,cAAc,oCAAoC,CAAC;AAGnD,cAAc,wCAAwC,CAAC;AAGvD,cAAc,YAAY,CAAC"}
package/dist/index.js DELETED
@@ -1,23 +0,0 @@
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
- __exportStar(require("./modules/blimu.module"), exports);
18
- __exportStar(require("./config/blimu.config"), exports);
19
- __exportStar(require("./guards/entitlement.guard"), exports);
20
- __exportStar(require("./decorators/entitlement.decorator"), exports);
21
- __exportStar(require("./exceptions/blimu-forbidden.exception"), exports);
22
- __exportStar(require("./services"), exports);
23
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,yDAAuC;AAGvC,wDAAsC;AAGtC,6DAA2C;AAG3C,qEAAmD;AAGnD,yEAAuD;AAGvD,6CAA2B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"blimu.module.d.ts","sourceRoot":"","sources":["../../src/modules/blimu.module.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAEb,IAAI,EACJ,gBAAgB,EAChB,cAAc,EACd,yBAAyB,EAC1B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAW1D,qBACa,WAAW;IA0CtB,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,aAAa;IA2G5E,MAAM,CAAC,YAAY,CAAC,QAAQ,GAAG,GAAG,EAAE,OAAO,EAAE;QAC3C,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC3F,MAAM,CAAC,EAAE,KAAK,CAAC,cAAc,GAAG,yBAAyB,CAAC,CAAC;QAC3D,OAAO,CAAC,EAAE,KAAK,CACb,IAAI,CAAC,OAAO,CAAC,GAAG,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,gBAAgB,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAC/F,CAAC;KACH,GAAG,aAAa;CAyClB"}
@@ -1,91 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var BlimuModule_1;
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.BlimuModule = void 0;
11
- const common_1 = require("@nestjs/common");
12
- const core_1 = require("@nestjs/core");
13
- const entitlement_guard_1 = require("../guards/entitlement.guard");
14
- const blimu_config_1 = require("../config/blimu.config");
15
- const backend_1 = require("@blimu/backend");
16
- const jwk_service_1 = require("../services/jwk.service");
17
- let BlimuModule = BlimuModule_1 = class BlimuModule {
18
- static forRoot(config) {
19
- return {
20
- module: BlimuModule_1,
21
- global: true,
22
- providers: [
23
- core_1.Reflector,
24
- entitlement_guard_1.EntitlementGuard,
25
- jwk_service_1.JWKService,
26
- {
27
- provide: blimu_config_1.BLIMU_CONFIG,
28
- useValue: {
29
- apiKey: config.apiKey,
30
- baseURL: config.baseURL || 'https://api.blimu.dev',
31
- environmentId: config.environmentId,
32
- timeoutMs: config.timeoutMs ?? 30000,
33
- getUserId: config.getUserId,
34
- },
35
- },
36
- {
37
- provide: backend_1.Blimu,
38
- useFactory: (config) => new backend_1.Blimu({
39
- apiKey: config.apiKey,
40
- baseURL: config.baseURL || 'https://api.blimu.dev',
41
- timeoutMs: config.timeoutMs ?? 30000,
42
- }),
43
- inject: [blimu_config_1.BLIMU_CONFIG],
44
- },
45
- ],
46
- exports: [core_1.Reflector, entitlement_guard_1.EntitlementGuard, backend_1.Blimu, blimu_config_1.BLIMU_CONFIG, jwk_service_1.JWKService],
47
- };
48
- }
49
- static forRootAsync(options) {
50
- const additionalImports = options.imports || [];
51
- return {
52
- module: BlimuModule_1,
53
- global: true,
54
- imports: [...additionalImports],
55
- providers: [
56
- core_1.Reflector,
57
- entitlement_guard_1.EntitlementGuard,
58
- jwk_service_1.JWKService,
59
- {
60
- provide: blimu_config_1.BLIMU_CONFIG,
61
- useFactory: async (...args) => {
62
- const config = await options.useFactory(...args);
63
- return {
64
- apiKey: config.apiKey,
65
- baseURL: config.baseURL || 'https://api.blimu.dev',
66
- environmentId: config.environmentId,
67
- timeoutMs: config.timeoutMs ?? 30000,
68
- getUserId: config.getUserId,
69
- };
70
- },
71
- inject: options.inject,
72
- },
73
- {
74
- provide: backend_1.Blimu,
75
- useFactory: (config) => new backend_1.Blimu({
76
- apiKey: config.apiKey,
77
- baseURL: config.baseURL || 'https://api.blimu.dev',
78
- timeoutMs: config.timeoutMs ?? 30000,
79
- }),
80
- inject: [blimu_config_1.BLIMU_CONFIG],
81
- },
82
- ],
83
- exports: [core_1.Reflector, entitlement_guard_1.EntitlementGuard, backend_1.Blimu, blimu_config_1.BLIMU_CONFIG, jwk_service_1.JWKService],
84
- };
85
- }
86
- };
87
- exports.BlimuModule = BlimuModule;
88
- exports.BlimuModule = BlimuModule = BlimuModule_1 = __decorate([
89
- (0, common_1.Module)({})
90
- ], BlimuModule);
91
- //# sourceMappingURL=blimu.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"blimu.module.js","sourceRoot":"","sources":["../../src/modules/blimu.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAOwB;AACxB,uCAAyC;AACzC,mEAA+D;AAE/D,yDAAsD;AACtD,4CAAuC;AACvC,yDAAqD;AAS9C,IAAM,WAAW,mBAAjB,MAAM,WAAW;IA0CtB,MAAM,CAAC,OAAO,CAAiB,MAA6B;QAC1D,OAAO;YACL,MAAM,EAAE,aAAW;YACnB,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE;gBACT,gBAAS;gBACT,oCAAgB;gBAChB,wBAAU;gBACV;oBACE,OAAO,EAAE,2BAAY;oBACrB,QAAQ,EAAE;wBACR,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,uBAAuB;wBAClD,aAAa,EAAE,MAAM,CAAC,aAAa;wBACnC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,KAAK;wBACpC,SAAS,EAAE,MAAM,CAAC,SAAS;qBAC5B;iBACF;gBACD;oBACE,OAAO,EAAE,eAAK;oBACd,UAAU,EAAE,CAAC,MAAmB,EAAE,EAAE,CAClC,IAAI,eAAK,CAAC;wBACR,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,uBAAuB;wBAClD,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,KAAK;qBACrC,CAAC;oBACJ,MAAM,EAAE,CAAC,2BAAY,CAAC;iBACvB;aACF;YACD,OAAO,EAAE,CAAC,gBAAS,EAAE,oCAAgB,EAAE,eAAK,EAAE,2BAAY,EAAE,wBAAU,CAAC;SACxE,CAAC;IACJ,CAAC;IA4ED,MAAM,CAAC,YAAY,CAAiB,OAMnC;QACC,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QAEhD,OAAO;YACL,MAAM,EAAE,aAAW;YACnB,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,CAAC,GAAG,iBAAiB,CAE7B;YACD,SAAS,EAAE;gBACT,gBAAS;gBACT,oCAAgB;gBAChB,wBAAU;gBACV;oBACE,OAAO,EAAE,2BAAY;oBACrB,UAAU,EAAE,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;wBACvC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;wBACjD,OAAO;4BACL,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,uBAAuB;4BAClD,aAAa,EAAE,MAAM,CAAC,aAAa;4BACnC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,KAAK;4BACpC,SAAS,EAAE,MAAM,CAAC,SAAS;yBAC5B,CAAC;oBACJ,CAAC;oBACD,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB;gBACD;oBACE,OAAO,EAAE,eAAK;oBACd,UAAU,EAAE,CAAC,MAAmB,EAAE,EAAE,CAClC,IAAI,eAAK,CAAC;wBACR,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,uBAAuB;wBAClD,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,KAAK;qBACrC,CAAC;oBACJ,MAAM,EAAE,CAAC,2BAAY,CAAC;iBACvB;aACF;YACD,OAAO,EAAE,CAAC,gBAAS,EAAE,oCAAgB,EAAE,eAAK,EAAE,2BAAY,EAAE,wBAAU,CAAC;SACxE,CAAC;IACJ,CAAC;CACF,CAAA;AApMY,kCAAW;sBAAX,WAAW;IADvB,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,WAAW,CAoMvB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -1,18 +0,0 @@
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
- __exportStar(require("./jwk.service"), exports);
18
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"jwk.service.d.ts","sourceRoot":"","sources":["../../src/services/jwk.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAEnE,qBACa,UAAU;IAIa,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;IACtD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;gBAEK,MAAM,EAAE,WAAW;IAShE,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IA2BzD,UAAU,IAAI,IAAI;CAInB"}