@frontegg/entitlements-javascript-commons 1.1.2 → 1.1.3-alpha.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.
@@ -5,7 +5,7 @@ const types_1 = require("../types");
5
5
  const utils_1 = require("../utils");
6
6
  const evaluators_1 = require("./evaluators");
7
7
  function evaluateIsEntitledToFeature(featureKey, userEntitlementsContext, attributes = {}) {
8
- if (!userEntitlementsContext) {
8
+ if (!userEntitlementsContext || !featureKey || !(userEntitlementsContext === null || userEntitlementsContext === void 0 ? void 0 : userEntitlementsContext.features)) {
9
9
  return { isEntitled: false, justification: types_1.NotEntitledJustification.MISSING_FEATURE };
10
10
  }
11
11
  const entitlementResults = [];
@@ -1 +1 @@
1
- {"version":3,"file":"is-entitled-to-feature.evaluator.js","sourceRoot":"","sources":["../../../src/user-entitlements/is-entitled-to-feature/is-entitled-to-feature.evaluator.ts"],"names":[],"mappings":";;;AAAA,oCAA4G;AAC5G,oCAAqD;AACrD,6CAAuD;AACvD,SAAgB,2BAA2B,CACzC,UAAkB,EAClB,uBAAiD,EACjD,aAAyB,EAAE;IAE3B,IAAI,CAAC,uBAAuB,EAAE;QAC5B,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,gCAAwB,CAAC,eAAe,EAAE,CAAC;KACvF;IAED,MAAM,kBAAkB,GAAwB,EAAE,CAAC;IACnD,KAAK,MAAM,SAAS,IAAI,IAAA,oCAAuB,GAAE,EAAE;QACjD,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,uBAAuB,EAAE,UAAU,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,IAAA,sBAAc,EAAC,kBAAkB,CAAC,EAAE;YACvC,MAAM;SACP;KACF;IAED,OAAO,IAAA,iBAAS,EAAC,kBAAkB,CAAC,CAAC;AACvC,CAAC;AAlBD,kEAkBC"}
1
+ {"version":3,"file":"is-entitled-to-feature.evaluator.js","sourceRoot":"","sources":["../../../src/user-entitlements/is-entitled-to-feature/is-entitled-to-feature.evaluator.ts"],"names":[],"mappings":";;;AAAA,oCAA4G;AAC5G,oCAAqD;AACrD,6CAAuD;AAEvD,SAAgB,2BAA2B,CACzC,UAAkB,EAClB,uBAAiD,EACjD,aAAyB,EAAE;IAE3B,IAAI,CAAC,uBAAuB,IAAI,CAAC,UAAU,IAAI,CAAC,CAAA,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,QAAQ,CAAA,EAAE;QACjF,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,gCAAwB,CAAC,eAAe,EAAE,CAAC;KACvF;IAED,MAAM,kBAAkB,GAAwB,EAAE,CAAC;IACnD,KAAK,MAAM,SAAS,IAAI,IAAA,oCAAuB,GAAE,EAAE;QACjD,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,uBAAuB,EAAE,UAAU,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,IAAA,sBAAc,EAAC,kBAAkB,CAAC,EAAE;YACvC,MAAM;SACP;KACF;IAED,OAAO,IAAA,iBAAS,EAAC,kBAAkB,CAAC,CAAC;AACvC,CAAC;AAlBD,kEAkBC"}
@@ -6,7 +6,7 @@ const types_1 = require("../types");
6
6
  const utils_1 = require("../utils");
7
7
  const permissions_utils_1 = require("../utils/permissions.utils");
8
8
  function evaluateIsEntitledToPermissions(permissionKey, userEntitlementsContext, attributes) {
9
- if (!userEntitlementsContext) {
9
+ if (!userEntitlementsContext || !(userEntitlementsContext === null || userEntitlementsContext === void 0 ? void 0 : userEntitlementsContext.permissions) || !permissionKey) {
10
10
  return { isEntitled: false, justification: types_1.NotEntitledJustification.MISSING_PERMISSION };
11
11
  }
12
12
  const hasPermission = (0, permissions_utils_1.checkPermission)(userEntitlementsContext.permissions, permissionKey);
@@ -28,6 +28,9 @@ function evaluateIsEntitledToPermissions(permissionKey, userEntitlementsContext,
28
28
  }
29
29
  exports.evaluateIsEntitledToPermissions = evaluateIsEntitledToPermissions;
30
30
  function getLinkedFeatures(permissionKey, userEntitlementsContext) {
31
+ if (!permissionKey || !(userEntitlementsContext === null || userEntitlementsContext === void 0 ? void 0 : userEntitlementsContext.features)) {
32
+ return [];
33
+ }
31
34
  return Object.keys(userEntitlementsContext.features).filter((featureKey) => userEntitlementsContext.features[featureKey].linkedPermissions.includes(permissionKey));
32
35
  }
33
36
  //# sourceMappingURL=is-entitled-to-permission.evaluator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"is-entitled-to-permission.evaluator.js","sourceRoot":"","sources":["../../../src/user-entitlements/is-entitled-to-permission/is-entitled-to-permission.evaluator.ts"],"names":[],"mappings":";;;AAAA,iHAAyG;AACzG,oCAA4G;AAC5G,oCAAqD;AACrD,kEAA6D;AAE7D,SAAgB,+BAA+B,CAC7C,aAAqB,EACrB,uBAAiD,EACjD,UAAuB;IAEvB,IAAI,CAAC,uBAAuB,EAAE;QAC5B,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,gCAAwB,CAAC,kBAAkB,EAAE,CAAC;KAC1F;IAED,MAAM,aAAa,GAAG,IAAA,mCAAe,EAAC,uBAAuB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC1F,IAAI,CAAC,aAAa,EAAE;QAClB,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,gCAAwB,CAAC,kBAAkB,EAAE,CAAC;KAC1F;IAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;IAEjF,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;QAC1B,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;KAC7B;IAED,MAAM,kBAAkB,GAAwB,EAAE,CAAC;IACnD,KAAK,MAAM,UAAU,IAAI,cAAc,EAAE;QACvC,kBAAkB,CAAC,IAAI,CAAC,IAAA,8DAA2B,EAAC,UAAU,EAAE,uBAAuB,EAAE,UAAU,CAAC,CAAC,CAAC;QAEtG,IAAI,CAAC,IAAA,sBAAc,EAAC,kBAAkB,CAAC,EAAE;YACvC,MAAM;SACP;KACF;IAED,OAAO,IAAA,iBAAS,EAAC,kBAAkB,CAAC,CAAC;AACvC,CAAC;AA9BD,0EA8BC;AAED,SAAS,iBAAiB,CAAC,aAAqB,EAAE,uBAAgD;IAChG,OAAO,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CACzE,uBAAuB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,CACvF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"is-entitled-to-permission.evaluator.js","sourceRoot":"","sources":["../../../src/user-entitlements/is-entitled-to-permission/is-entitled-to-permission.evaluator.ts"],"names":[],"mappings":";;;AAAA,iHAAyG;AACzG,oCAA4G;AAC5G,oCAAqD;AACrD,kEAA6D;AAE7D,SAAgB,+BAA+B,CAC7C,aAAqB,EACrB,uBAAiD,EACjD,UAAuB;IAEvB,IAAI,CAAC,uBAAuB,IAAI,CAAC,CAAA,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,WAAW,CAAA,IAAI,CAAC,aAAa,EAAE;QACvF,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,gCAAwB,CAAC,kBAAkB,EAAE,CAAC;KAC1F;IAED,MAAM,aAAa,GAAG,IAAA,mCAAe,EAAC,uBAAuB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC1F,IAAI,CAAC,aAAa,EAAE;QAClB,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,gCAAwB,CAAC,kBAAkB,EAAE,CAAC;KAC1F;IAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;IAEjF,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;QAC1B,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;KAC7B;IAED,MAAM,kBAAkB,GAAwB,EAAE,CAAC;IACnD,KAAK,MAAM,UAAU,IAAI,cAAc,EAAE;QACvC,kBAAkB,CAAC,IAAI,CAAC,IAAA,8DAA2B,EAAC,UAAU,EAAE,uBAAuB,EAAE,UAAU,CAAC,CAAC,CAAC;QAEtG,IAAI,CAAC,IAAA,sBAAc,EAAC,kBAAkB,CAAC,EAAE;YACvC,MAAM;SACP;KACF;IAED,OAAO,IAAA,iBAAS,EAAC,kBAAkB,CAAC,CAAC;AACvC,CAAC;AA9BD,0EA8BC;AAED,SAAS,iBAAiB,CAAC,aAAqB,EAAE,uBAAgD;IAChG,IAAG,CAAC,aAAa,IAAI,CAAC,CAAA,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,QAAQ,CAAA,EAAE;QACvD,OAAO,EAAE,CAAC;KACX;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CACzE,uBAAuB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,CACvF,CAAC;AACJ,CAAC"}
@@ -2,6 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createPermissionCheckRegex = exports.checkPermission = void 0;
4
4
  function checkPermission(permissions, requiredPermission) {
5
+ if (!permissions || !requiredPermission) {
6
+ return false;
7
+ }
8
+ ;
5
9
  return Object.keys(permissions).some((permissionKey) => createPermissionCheckRegex(permissionKey).test(requiredPermission));
6
10
  }
7
11
  exports.checkPermission = checkPermission;
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.utils.js","sourceRoot":"","sources":["../../../src/user-entitlements/utils/permissions.utils.ts"],"names":[],"mappings":";;;AACA,SAAgB,eAAe,CAAC,WAAwB,EAAE,kBAA0B;IAClF,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE,CACrD,0BAA0B,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CACnE,CAAC;AACJ,CAAC;AAJD,0CAIC;AAED,SAAgB,0BAA0B,CAAC,aAAqB;IAC9D,OAAO,IAAI,MAAM,CAAC,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;AAChG,CAAC;AAFD,gEAEC"}
1
+ {"version":3,"file":"permissions.utils.js","sourceRoot":"","sources":["../../../src/user-entitlements/utils/permissions.utils.ts"],"names":[],"mappings":";;;AACA,SAAgB,eAAe,CAAC,WAAwB,EAAE,kBAA0B;IAClF,IAAI,CAAC,WAAW,IAAI,CAAC,kBAAkB,EAAE;QACvC,OAAO,KAAK,CAAC;KACd;IAAA,CAAC;IAEF,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE,CACrD,0BAA0B,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CACnE,CAAC;AACJ,CAAC;AARD,0CAQC;AAED,SAAgB,0BAA0B,CAAC,aAAqB;IAC9D,OAAO,IAAI,MAAM,CAAC,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;AAChG,CAAC;AAFD,gEAEC"}
package/docs/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
- ## [1.1.2](https://github.com/frontegg/entitlements-javascript-commons/compare/v-1.1.1...v-1.1.2) (2024-01-25)
1
+ ## [1.1.3-alpha.1](https://github.com/frontegg/entitlements-javascript-commons/compare/v-1.1.2...v-1.1.3-alpha.1) (2025-02-20)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **condition:** prevent undefined fail in evaluateIsEntitledToFeature ([a529f3d](https://github.com/frontegg/entitlements-javascript-commons/commit/a529f3d5afcef2c92a3516e159f6444c62a93c58))
7
+ * **condition:** prevent undefined fail in evaluateIsEntitledToFeature ([4597859](https://github.com/frontegg/entitlements-javascript-commons/commit/459785989f2c97b96ae8dbb63257cace9df658ef))
2
8
 
9
+ ## [1.1.2-alpha.2](https://github.com/frontegg/entitlements-javascript-commons/compare/v-1.1.2-alpha.1...v-1.1.2-alpha.2) (2025-02-20)
10
+
11
+ ### Bug Fixes
12
+
13
+ * **condition:** prevent undefined fail in evaluateIsEntitledToFeature ([a529f3d](https://github.com/frontegg/entitlements-javascript-commons/commit/a529f3d5afcef2c92a3516e159f6444c62a93c58))
14
+
15
+ ## [1.1.2](https://github.com/frontegg/entitlements-javascript-commons/compare/v-1.1.1...v-1.1.2) (2024-01-25)
3
16
 
4
17
  ### Bug Fixes
5
18
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frontegg/entitlements-javascript-commons",
3
- "version": "1.1.2",
3
+ "version": "1.1.3-alpha.1",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,12 +1,13 @@
1
1
  import { EntitlementResult, NotEntitledJustification, UserEntitlementsContext, Attributes } from '../types';
2
2
  import { getResult, shouldContinue } from '../utils';
3
3
  import { getIsEntitledEvaluators } from './evaluators';
4
+
4
5
  export function evaluateIsEntitledToFeature(
5
6
  featureKey: string,
6
7
  userEntitlementsContext?: UserEntitlementsContext,
7
8
  attributes: Attributes = {},
8
9
  ): EntitlementResult {
9
- if (!userEntitlementsContext) {
10
+ if (!userEntitlementsContext || !featureKey || !userEntitlementsContext?.features) {
10
11
  return { isEntitled: false, justification: NotEntitledJustification.MISSING_FEATURE };
11
12
  }
12
13
 
@@ -19,4 +20,4 @@ export function evaluateIsEntitledToFeature(
19
20
  }
20
21
 
21
22
  return getResult(entitlementResults);
22
- }
23
+ }
@@ -8,7 +8,7 @@ export function evaluateIsEntitledToPermissions(
8
8
  userEntitlementsContext?: UserEntitlementsContext,
9
9
  attributes?: Attributes,
10
10
  ): EntitlementResult {
11
- if (!userEntitlementsContext) {
11
+ if (!userEntitlementsContext || !userEntitlementsContext?.permissions || !permissionKey) {
12
12
  return { isEntitled: false, justification: NotEntitledJustification.MISSING_PERMISSION };
13
13
  }
14
14
 
@@ -36,7 +36,10 @@ export function evaluateIsEntitledToPermissions(
36
36
  }
37
37
 
38
38
  function getLinkedFeatures(permissionKey: string, userEntitlementsContext: UserEntitlementsContext): string[] {
39
+ if(!permissionKey || !userEntitlementsContext?.features) {
40
+ return [];
41
+ }
39
42
  return Object.keys(userEntitlementsContext.features).filter((featureKey) =>
40
43
  userEntitlementsContext.features[featureKey].linkedPermissions.includes(permissionKey),
41
44
  );
42
- }
45
+ }
@@ -1,5 +1,9 @@
1
1
  import { Permissions } from '../types';
2
2
  export function checkPermission(permissions: Permissions, requiredPermission: string): boolean {
3
+ if (!permissions || !requiredPermission) {
4
+ return false;
5
+ };
6
+
3
7
  return Object.keys(permissions).some((permissionKey) =>
4
8
  createPermissionCheckRegex(permissionKey).test(requiredPermission),
5
9
  );
@@ -7,4 +11,4 @@ export function checkPermission(permissions: Permissions, requiredPermission: st
7
11
 
8
12
  export function createPermissionCheckRegex(permissionKey: string): RegExp {
9
13
  return new RegExp('^' + permissionKey.replace(/\./g, '\\.').replace(/\*/g, '.*') + '$', 'gs');
10
- }
14
+ }