@alanszp/jwt 20.4.5 → 20.5.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.
package/dist/JWTUser.js CHANGED
@@ -22,7 +22,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
22
22
  var _a, _JWTUser_rawToken, _JWTUser_permissionService;
23
23
  Object.defineProperty(exports, "__esModule", { value: true });
24
24
  exports.JWTUser = void 0;
25
- const BitmaskUtils_1 = require("./BitmaskUtils");
25
+ const bitmask_1 = require("@alanszp/bitmask");
26
26
  const PermissionNotFound_1 = require("./errors/PermissionNotFound");
27
27
  const PermissionServiceNotInstantiated_1 = require("./errors/PermissionServiceNotInstantiated");
28
28
  const NoPermissionError_1 = require("./errors/NoPermissionError");
@@ -157,9 +157,9 @@ class JWTUser {
157
157
  hasPermission(permissionCode) {
158
158
  return __awaiter(this, void 0, void 0, function* () {
159
159
  const definition = yield _a.getPermissionDefinition(permissionCode);
160
- const checkBitmask = BitmaskUtils_1.BitmaskUtils.encodeFromPosition(definition.position);
161
- const permissionsBitmask = BitmaskUtils_1.BitmaskUtils.decodeFromBase64(this.permissions);
162
- return BitmaskUtils_1.BitmaskUtils.checkBitmask(permissionsBitmask, checkBitmask);
160
+ const checkBitmask = bitmask_1.BitmaskUtils.encodeFromPosition(definition.position);
161
+ const permissionsBitmask = bitmask_1.BitmaskUtils.decodeFromBase64(this.permissions);
162
+ return bitmask_1.BitmaskUtils.checkBitmask(permissionsBitmask, checkBitmask);
163
163
  });
164
164
  }
165
165
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"JWTUser.js","sourceRoot":"","sources":["../src/JWTUser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JWTUser.js","sourceRoot":"","sources":["../src/JWTUser.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ export * from "./types";
2
2
  export * from "./JWTUser";
3
3
  export * from "./jwt";
4
4
  export * from "./PermissionService";
5
- export * from "./BitmaskUtils";
5
+ export * from "@alanszp/bitmask";
6
6
  export * from "./errors/NoPermissionError";
7
7
  export * from "./errors/PermissionNotFound";
8
8
  export * from "./errors/PermissionServiceNotInstantiated";
package/dist/index.js CHANGED
@@ -18,7 +18,7 @@ __exportStar(require("./types"), exports);
18
18
  __exportStar(require("./JWTUser"), exports);
19
19
  __exportStar(require("./jwt"), exports);
20
20
  __exportStar(require("./PermissionService"), exports);
21
- __exportStar(require("./BitmaskUtils"), exports);
21
+ __exportStar(require("@alanszp/bitmask"), exports);
22
22
  __exportStar(require("./errors/NoPermissionError"), exports);
23
23
  __exportStar(require("./errors/PermissionNotFound"), exports);
24
24
  __exportStar(require("./errors/PermissionServiceNotInstantiated"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,4CAA0B;AAC1B,wCAAsB;AACtB,sDAAoC;AACpC,iDAA+B;AAC/B,6DAA2C;AAC3C,8DAA4C;AAC5C,4EAA0D;AAC1D,yEAAuD;AACvD,sEAAoD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,4CAA0B;AAC1B,wCAAsB;AACtB,sDAAoC;AACpC,mDAAiC;AACjC,6DAA2C;AAC3C,8DAA4C;AAC5C,4EAA0D;AAC1D,yEAAuD;AACvD,sEAAoD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alanszp/jwt",
3
- "version": "20.4.5",
3
+ "version": "20.5.1",
4
4
  "description": "Alan's jwt validator & signer.",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -28,12 +28,13 @@
28
28
  "typescript": "^5.7.3"
29
29
  },
30
30
  "dependencies": {
31
- "@alanszp/axios-node": "^20.4.5",
32
- "@alanszp/core": "^20.4.5",
33
- "@alanszp/errors": "^20.4.5",
34
- "@alanszp/logger": "^20.4.5",
31
+ "@alanszp/axios-node": "^20.5.1",
32
+ "@alanszp/bitmask": "^20.5.1",
33
+ "@alanszp/core": "^20.5.1",
34
+ "@alanszp/errors": "^20.5.1",
35
+ "@alanszp/logger": "^20.5.1",
35
36
  "jose": "^5.2.2",
36
37
  "uuid": "^11.1.1"
37
38
  },
38
- "gitHead": "6c3e260b11074ac0d2e74d807129450eb6fa4dac"
39
+ "gitHead": "bb48e9642de6d7f02997b7a26c9fc6534e9889bd"
39
40
  }
@@ -1,63 +0,0 @@
1
- import { Permission } from "./types";
2
- /**
3
- * Bitmask utility class
4
- * - Use to handle binary numbers
5
- * - Support binary numbers larger than 32 bits (Node.js uses 32-bit numbers)
6
- */
7
- export declare class BitmaskUtils {
8
- /**
9
- * Encode a position into a binary number
10
- * @example Bitmask.encodeFromPosition(0) // 1 or 0b1
11
- * @example Bitmask.encodeFromPosition(1) // 2 or 0b10
12
- * @example Bitmask.encodeFromPosition(2) // 4 or 0b100
13
- * @example Bitmask.encodeFromPosition(3) // 8 or 0b1000
14
- */
15
- static encodeFromPosition(position: number): bigint;
16
- /**
17
- * Check if a bitmask has a specific bit set
18
- * @param bitmask - the bitmask to check
19
- * @param check - the bit to check (also a bitmask with only one bit set)
20
- * @example Bitmask.checkBitmask(0b1010, 0b1000) // true
21
- * @example Bitmask.checkBitmask(0b1010, 0b0100) // false
22
- */
23
- static checkBitmask(bitmask: bigint, check: bigint): boolean;
24
- /**
25
- * Combine multiple bitmasks into one
26
- * Uses the bitwise OR operator to combine the bitmasks
27
- * @param bitmasks - An array of bitmasks
28
- * @returns The combined bitmask
29
- * @example Bitmask.combineBitmasks([0b1000, 0b0100]) // 0b1100
30
- * @example Bitmask.combineBitmasks([0b1000, 0b0100, 0b0010]) // 0b1110
31
- */
32
- static combineBitmasks(bitmasks: bigint[]): bigint;
33
- /**
34
- * Decode a base64 encoded string into a binary number
35
- * @param base64 Base64 encoded bitmask (valid utf-8 string of a number)
36
- * @returns The decoded bitmask
37
- * @example Bitmask.decodeFromBase64("AQ==") // 1 or 0b1
38
- * @example Bitmask.decodeFromBase64("Ag==") // 2 or 0b10
39
- */
40
- static decodeFromBase64(base64: string): bigint;
41
- /**
42
- * Encode a binary number into a base64 string
43
- * @param bitmask The bitmask to encode
44
- * @returns The base64 encoded bitmask
45
- * @example Bitmask.encodeToBase64(1) // "AQ=="
46
- * @example Bitmask.encodeToBase64(2) // "Ag=="
47
- */
48
- static encodeToBase64(bitmask: bigint): string;
49
- /**
50
- * Similar to #encodeFromPosition but takes a Permission object and encodes it to
51
- * a binary number, based on the Permission.position property.
52
- */
53
- static encodePermission(permission: Permission): bigint;
54
- /**
55
- * Converts an array of Permissions to a binary number. Will combine all the permissions
56
- * bitmasks into one.
57
- */
58
- static encodePermissions(permissions: Permission[]): bigint;
59
- /**
60
- * Converts an array of Permissions to an encoded string ready to use in JWTUser.permission
61
- */
62
- static encodePermissionsToBase64(permissions: Permission[]): string;
63
- }
@@ -1,85 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BitmaskUtils = void 0;
4
- /**
5
- * Bitmask utility class
6
- * - Use to handle binary numbers
7
- * - Support binary numbers larger than 32 bits (Node.js uses 32-bit numbers)
8
- */
9
- class BitmaskUtils {
10
- /**
11
- * Encode a position into a binary number
12
- * @example Bitmask.encodeFromPosition(0) // 1 or 0b1
13
- * @example Bitmask.encodeFromPosition(1) // 2 or 0b10
14
- * @example Bitmask.encodeFromPosition(2) // 4 or 0b100
15
- * @example Bitmask.encodeFromPosition(3) // 8 or 0b1000
16
- */
17
- static encodeFromPosition(position) {
18
- return BigInt(1) << BigInt(position);
19
- }
20
- /**
21
- * Check if a bitmask has a specific bit set
22
- * @param bitmask - the bitmask to check
23
- * @param check - the bit to check (also a bitmask with only one bit set)
24
- * @example Bitmask.checkBitmask(0b1010, 0b1000) // true
25
- * @example Bitmask.checkBitmask(0b1010, 0b0100) // false
26
- */
27
- static checkBitmask(bitmask, check) {
28
- return (bitmask & check) === check;
29
- }
30
- /**
31
- * Combine multiple bitmasks into one
32
- * Uses the bitwise OR operator to combine the bitmasks
33
- * @param bitmasks - An array of bitmasks
34
- * @returns The combined bitmask
35
- * @example Bitmask.combineBitmasks([0b1000, 0b0100]) // 0b1100
36
- * @example Bitmask.combineBitmasks([0b1000, 0b0100, 0b0010]) // 0b1110
37
- */
38
- static combineBitmasks(bitmasks) {
39
- return bitmasks.reduce((acc, bitmask) => acc | bitmask, BigInt(0));
40
- }
41
- /**
42
- * Decode a base64 encoded string into a binary number
43
- * @param base64 Base64 encoded bitmask (valid utf-8 string of a number)
44
- * @returns The decoded bitmask
45
- * @example Bitmask.decodeFromBase64("AQ==") // 1 or 0b1
46
- * @example Bitmask.decodeFromBase64("Ag==") // 2 or 0b10
47
- */
48
- static decodeFromBase64(base64) {
49
- const string = Buffer.from(base64, "base64").toString("utf-8");
50
- return BigInt(string);
51
- }
52
- /**
53
- * Encode a binary number into a base64 string
54
- * @param bitmask The bitmask to encode
55
- * @returns The base64 encoded bitmask
56
- * @example Bitmask.encodeToBase64(1) // "AQ=="
57
- * @example Bitmask.encodeToBase64(2) // "Ag=="
58
- */
59
- static encodeToBase64(bitmask) {
60
- return Buffer.from(bitmask.toString()).toString("base64");
61
- }
62
- /**
63
- * Similar to #encodeFromPosition but takes a Permission object and encodes it to
64
- * a binary number, based on the Permission.position property.
65
- */
66
- static encodePermission(permission) {
67
- return BitmaskUtils.encodeFromPosition(permission.position);
68
- }
69
- /**
70
- * Converts an array of Permissions to a binary number. Will combine all the permissions
71
- * bitmasks into one.
72
- */
73
- static encodePermissions(permissions) {
74
- const bitmasks = permissions.map((p) => BitmaskUtils.encodePermission(p));
75
- return BitmaskUtils.combineBitmasks(bitmasks);
76
- }
77
- /**
78
- * Converts an array of Permissions to an encoded string ready to use in JWTUser.permission
79
- */
80
- static encodePermissionsToBase64(permissions) {
81
- return BitmaskUtils.encodeToBase64(this.encodePermissions(permissions));
82
- }
83
- }
84
- exports.BitmaskUtils = BitmaskUtils;
85
- //# sourceMappingURL=BitmaskUtils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BitmaskUtils.js","sourceRoot":"","sources":["../src/BitmaskUtils.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH,MAAa,YAAY;IACvB;;;;;;OAMG;IACI,MAAM,CAAC,kBAAkB,CAAC,QAAgB;QAC/C,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,YAAY,CAAC,OAAe,EAAE,KAAa;QACvD,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,KAAK,CAAC;IACrC,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,eAAe,CAAC,QAAkB;QAC9C,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,gBAAgB,CAAC,MAAc;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/D,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,cAAc,CAAC,OAAe;QAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,gBAAgB,CAAC,UAAsB;QACnD,OAAO,YAAY,CAAC,kBAAkB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,iBAAiB,CAAC,WAAyB;QACvD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,OAAO,YAAY,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,yBAAyB,CAAC,WAAyB;QAC/D,OAAO,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1E,CAAC;CACF;AAjFD,oCAiFC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,152 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const BitmaskUtils_1 = require("./BitmaskUtils");
4
- describe("BitmaskUtils", () => {
5
- describe("encodeFromPosition", () => {
6
- it.each([
7
- { position: 0, expected: BigInt(0b1) },
8
- { position: 1, expected: BigInt(0b10) },
9
- { position: 5, expected: BigInt(0b100000) },
10
- { position: 10, expected: BigInt(0b10000000000) },
11
- { position: 15, expected: BigInt(0b1000000000000000) },
12
- { position: 30, expected: BigInt(0b1000000000000000000000000000000) },
13
- {
14
- position: 31,
15
- expected: BigInt(0b10000000000000000000000000000000),
16
- },
17
- // 32 is the maximum position for a 32-bit number - Node.js uses 32-bit numbers (when using unsigned ints), we should support more than 32 bits
18
- {
19
- position: 32,
20
- expected: BigInt("0b100000000000000000000000000000000"),
21
- },
22
- {
23
- position: 50,
24
- expected: BigInt("0b100000000000000000000000000000000000000000000000000"),
25
- },
26
- {
27
- position: 100,
28
- expected: BigInt("0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"),
29
- },
30
- ])("Should encode a numeric position $position to a binary number", ({ position, expected }) => {
31
- const result = BitmaskUtils_1.BitmaskUtils.encodeFromPosition(position);
32
- expect(result).toStrictEqual(expected);
33
- });
34
- });
35
- describe("checkBitmask", () => {
36
- it.each([
37
- {
38
- bitmask: BigInt(0b1010),
39
- position: 3,
40
- expected: true,
41
- },
42
- {
43
- bitmask: BigInt(0b1010),
44
- position: 2,
45
- expected: false,
46
- },
47
- {
48
- bitmask: BigInt(0b1010),
49
- position: 1,
50
- expected: true,
51
- },
52
- {
53
- bitmask: BigInt(0b1010),
54
- position: 0,
55
- expected: false,
56
- },
57
- ])("Should check if a bitmask has a specific bit set in position $position", ({ bitmask, position, expected }) => {
58
- const check = BitmaskUtils_1.BitmaskUtils.encodeFromPosition(position);
59
- const result = BitmaskUtils_1.BitmaskUtils.checkBitmask(bitmask, check);
60
- expect(result).toStrictEqual(expected);
61
- });
62
- it("Should check if a bitmask has a specific bit set with big numbers", () => {
63
- const bitmask = BitmaskUtils_1.BitmaskUtils.encodeFromPosition(100);
64
- const result = BitmaskUtils_1.BitmaskUtils.checkBitmask(bitmask, bitmask);
65
- expect(result).toStrictEqual(true);
66
- });
67
- it("Should check if a bitmask has a specific bit set with enormous numbers", () => {
68
- const bitmask = BitmaskUtils_1.BitmaskUtils.encodeFromPosition(500);
69
- const result = BitmaskUtils_1.BitmaskUtils.checkBitmask(bitmask, bitmask);
70
- expect(result).toStrictEqual(true);
71
- });
72
- });
73
- describe("combineBitmasks", () => {
74
- it.each([
75
- {
76
- bitmasks: [BigInt(0b1000), BigInt(0b0100)],
77
- expected: BigInt(0b1100),
78
- },
79
- {
80
- bitmasks: [BigInt(0b1000), BigInt(0b0100), BigInt(0b0010)],
81
- expected: BigInt(0b1110),
82
- },
83
- {
84
- bitmasks: [
85
- BigInt(0b1000),
86
- BigInt(0b0100),
87
- BigInt(0b0010),
88
- BigInt(0b0001),
89
- ],
90
- expected: BigInt(0b1111),
91
- },
92
- {
93
- bitmasks: [
94
- BitmaskUtils_1.BitmaskUtils.encodeFromPosition(100),
95
- BitmaskUtils_1.BitmaskUtils.encodeFromPosition(200),
96
- BitmaskUtils_1.BitmaskUtils.encodeFromPosition(300),
97
- BitmaskUtils_1.BitmaskUtils.encodeFromPosition(400),
98
- ],
99
- expected: BitmaskUtils_1.BitmaskUtils.encodeFromPosition(100) |
100
- BitmaskUtils_1.BitmaskUtils.encodeFromPosition(200) |
101
- BitmaskUtils_1.BitmaskUtils.encodeFromPosition(300) |
102
- BitmaskUtils_1.BitmaskUtils.encodeFromPosition(400),
103
- },
104
- ])("Should combine multiple bitmasks into one", ({ bitmasks, expected }) => {
105
- const result = BitmaskUtils_1.BitmaskUtils.combineBitmasks(bitmasks);
106
- expect(result).toStrictEqual(expected);
107
- });
108
- });
109
- describe("decodeFromBase64", () => {
110
- it.each([
111
- { base64: "MA==", expected: BigInt(0b0) },
112
- { base64: "MQ==", expected: BigInt(0b1) },
113
- { base64: "Mg==", expected: BigInt(0b10) },
114
- { base64: "NjY3", expected: BigInt(0b1010011011) },
115
- {
116
- base64: "MTI2NzY1MDYwMDIyODIyOTQwMTQ5NjcwMzIwNTM3Ng==",
117
- expected: BitmaskUtils_1.BitmaskUtils.encodeFromPosition(100),
118
- },
119
- ])("Should decode a base64 encoded bitmask for $base64", ({ base64, expected }) => {
120
- const result = BitmaskUtils_1.BitmaskUtils.decodeFromBase64(base64);
121
- expect(result).toStrictEqual(expected);
122
- });
123
- });
124
- describe("encodeToBase64", () => {
125
- it.each([
126
- { bitmask: BigInt(0b0), expected: "MA==" },
127
- { bitmask: BigInt(0b1), expected: "MQ==" },
128
- { bitmask: BigInt(0b10), expected: "Mg==" },
129
- { bitmask: BigInt(0b1010011011), expected: "NjY3" },
130
- {
131
- bitmask: BitmaskUtils_1.BitmaskUtils.encodeFromPosition(100),
132
- expected: "MTI2NzY1MDYwMDIyODIyOTQwMTQ5NjcwMzIwNTM3Ng==",
133
- },
134
- ])("Should encode a bitmask to a base64 string for $bitmask", ({ bitmask, expected }) => {
135
- const result = BitmaskUtils_1.BitmaskUtils.encodeToBase64(bitmask);
136
- expect(result).toStrictEqual(expected);
137
- });
138
- it("Should encode and decode a bitmask from and to a base64 string", () => {
139
- const bitmask = BigInt(0b1010011011);
140
- const base64 = BitmaskUtils_1.BitmaskUtils.encodeToBase64(bitmask);
141
- const result = BitmaskUtils_1.BitmaskUtils.decodeFromBase64(base64);
142
- expect(result).toStrictEqual(bitmask);
143
- });
144
- it("Should encode and decode a bitmask from and to a base64 string with enormous numbers", () => {
145
- const bitmask = BitmaskUtils_1.BitmaskUtils.encodeFromPosition(500);
146
- const base64 = BitmaskUtils_1.BitmaskUtils.encodeToBase64(bitmask);
147
- const result = BitmaskUtils_1.BitmaskUtils.decodeFromBase64(base64);
148
- expect(result).toStrictEqual(bitmask);
149
- });
150
- });
151
- });
152
- //# sourceMappingURL=BitmaskUtils.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BitmaskUtils.test.js","sourceRoot":"","sources":["../src/BitmaskUtils.test.ts"],"names":[],"mappings":"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"}