@nest-boot/crypt 7.0.1 → 7.1.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 (35) hide show
  1. package/dist/crypt-module-options.interface.d.ts +7 -0
  2. package/dist/crypt.module-definition.d.ts +1 -7
  3. package/dist/crypt.module-definition.js +1 -8
  4. package/dist/crypt.module-definition.js.map +1 -1
  5. package/dist/crypt.module.d.ts +38 -1
  6. package/dist/crypt.module.js +74 -1
  7. package/dist/crypt.module.js.map +1 -1
  8. package/dist/crypt.module.spec.d.ts +1 -0
  9. package/dist/crypt.module.spec.js +73 -0
  10. package/dist/crypt.module.spec.js.map +1 -0
  11. package/dist/crypt.service.d.ts +77 -6
  12. package/dist/crypt.service.js +101 -84
  13. package/dist/crypt.service.js.map +1 -1
  14. package/dist/crypt.service.spec.js +77 -38
  15. package/dist/crypt.service.spec.js.map +1 -1
  16. package/dist/index.d.ts +2 -0
  17. package/dist/index.js +2 -0
  18. package/dist/index.js.map +1 -1
  19. package/dist/tsconfig.build.tsbuildinfo +1 -1
  20. package/dist/utils/derive-key.d.ts +7 -0
  21. package/dist/utils/derive-key.js +22 -0
  22. package/dist/utils/derive-key.js.map +1 -0
  23. package/dist/utils/estimate-entropy.d.ts +8 -0
  24. package/dist/utils/estimate-entropy.js +17 -0
  25. package/dist/utils/estimate-entropy.js.map +1 -0
  26. package/dist/utils/estimate-entropy.spec.d.ts +1 -0
  27. package/dist/utils/estimate-entropy.spec.js +17 -0
  28. package/dist/utils/estimate-entropy.spec.js.map +1 -0
  29. package/dist/utils/is-jwe.d.ts +14 -0
  30. package/dist/utils/is-jwe.js +38 -0
  31. package/dist/utils/is-jwe.js.map +1 -0
  32. package/dist/utils/is-jwe.spec.d.ts +1 -0
  33. package/dist/utils/is-jwe.spec.js +50 -0
  34. package/dist/utils/is-jwe.spec.js.map +1 -0
  35. package/package.json +13 -6
@@ -2,49 +2,88 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const testing_1 = require("@nestjs/testing");
4
4
  const _1 = require(".");
5
+ const TEST_SECRET = "myTestSecretThatIsAtLeast32Chars!";
5
6
  describe("CryptService", () => {
6
- const globalSecret = "myGlobalSecret";
7
- let cryptService;
8
- beforeEach(async () => {
9
- const moduleRef = await testing_1.Test.createTestingModule({
10
- imports: [_1.CryptModule.register({ secret: globalSecret })],
11
- }).compile();
12
- cryptService = moduleRef.get(_1.CryptService);
13
- });
14
- describe("encrypt", () => {
15
- it("should encrypt the value", async () => {
16
- const value = "Hello, World!";
17
- const secret = "mySecret";
18
- const encryptedValue = await cryptService.encrypt(value, secret);
19
- expect(encryptedValue).toBeDefined();
20
- expect(encryptedValue).not.toEqual(value);
21
- });
22
- it("should encrypt the value using the global secret", async () => {
23
- const value = "Hello, World!";
24
- const encryptedValue = await cryptService.encrypt(value);
25
- expect(encryptedValue).toBeDefined();
26
- expect(encryptedValue).not.toEqual(value);
7
+ describe("instance methods (via CryptModule.register)", () => {
8
+ let cryptService;
9
+ beforeEach(async () => {
10
+ const moduleRef = await testing_1.Test.createTestingModule({
11
+ imports: [_1.CryptModule.register({ secret: TEST_SECRET })],
12
+ }).compile();
13
+ cryptService = moduleRef.get(_1.CryptService);
14
+ });
15
+ describe("encrypt", () => {
16
+ it("should encrypt the value", async () => {
17
+ const value = "Hello, World!";
18
+ const encryptedValue = await cryptService.encrypt(value);
19
+ expect(encryptedValue).toBeDefined();
20
+ expect(encryptedValue).not.toEqual(value);
21
+ });
22
+ it("should return JWE compact serialization format", async () => {
23
+ const value = "Hello, World!";
24
+ const encryptedValue = await cryptService.encrypt(value);
25
+ // JWE compact serialization has 5 parts separated by dots
26
+ expect(encryptedValue.split(".")).toHaveLength(5);
27
+ });
28
+ });
29
+ describe("decrypt", () => {
30
+ it("should decrypt the encrypted value", async () => {
31
+ const value = "Hello, World!";
32
+ const encryptedValue = await cryptService.encrypt(value);
33
+ const decryptedValue = await cryptService.decrypt(encryptedValue);
34
+ expect(decryptedValue).toBeDefined();
35
+ expect(decryptedValue).toEqual(value);
36
+ });
37
+ it("should throw error for invalid JWE", async () => {
38
+ await expect(cryptService.decrypt("invalid-jwe")).rejects.toThrow();
39
+ });
27
40
  });
28
41
  });
29
- describe("decrypt", () => {
30
- it("should decrypt the encrypted value", async () => {
31
- const value = "Hello, World!";
32
- const secret = "mySecret";
33
- const encryptedValue = await cryptService.encrypt(value, secret);
34
- const decryptedValue = await cryptService.decrypt(encryptedValue, secret);
35
- expect(decryptedValue).toBeDefined();
36
- expect(decryptedValue).toEqual(value);
37
- });
38
- it("should decrypt the encrypted value using the global secret", async () => {
39
- const value = "Hello, World!";
40
- const encryptedValue = await cryptService.encrypt(value);
41
- const decryptedValue = await cryptService.decrypt(encryptedValue);
42
- expect(decryptedValue).toBeDefined();
43
- expect(decryptedValue).toEqual(value);
42
+ describe("static methods", () => {
43
+ beforeEach(() => {
44
+ // Reset static instance before each test
45
+ _1.CryptService._instance =
46
+ undefined;
47
+ });
48
+ describe("instance getter", () => {
49
+ it("should throw error when not initialized", () => {
50
+ expect(() => _1.CryptService.instance).toThrow("CryptService not initialized");
51
+ });
52
+ it("should return instance after initialization", () => {
53
+ _1.CryptService.init(TEST_SECRET);
54
+ expect(_1.CryptService.instance).toBeInstanceOf(_1.CryptService);
55
+ });
56
+ });
57
+ describe("init", () => {
58
+ it("should initialize with secret", () => {
59
+ _1.CryptService.init(TEST_SECRET);
60
+ expect(_1.CryptService.instance).toBeDefined();
61
+ });
62
+ });
63
+ describe("encrypt (static)", () => {
64
+ it("should encrypt using static method", async () => {
65
+ _1.CryptService.init(TEST_SECRET);
66
+ const value = "Hello, World!";
67
+ const encrypted = await _1.CryptService.encrypt(value);
68
+ expect(encrypted).toBeDefined();
69
+ expect(encrypted).not.toEqual(value);
70
+ });
71
+ });
72
+ describe("decrypt (static)", () => {
73
+ it("should decrypt using static method", async () => {
74
+ _1.CryptService.init(TEST_SECRET);
75
+ const value = "Hello, World!";
76
+ const encrypted = await _1.CryptService.encrypt(value);
77
+ const decrypted = await _1.CryptService.decrypt(encrypted);
78
+ expect(decrypted).toEqual(value);
79
+ });
44
80
  });
45
81
  });
46
- afterEach(async () => {
47
- // Clean up any resources used by the CryptService
82
+ describe("constructor", () => {
83
+ it("should create instance with secret", () => {
84
+ const service = new _1.CryptService(TEST_SECRET);
85
+ expect(service).toBeDefined();
86
+ });
48
87
  });
49
88
  });
50
89
  //# sourceMappingURL=crypt.service.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"crypt.service.spec.js","sourceRoot":"","sources":["../src/crypt.service.spec.ts"],"names":[],"mappings":";;AAAA,6CAAuC;AAEvC,wBAA8C;AAE9C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,MAAM,YAAY,GAAG,gBAAgB,CAAC;IACtC,IAAI,YAA0B,CAAC;IAE/B,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,SAAS,GAAG,MAAM,cAAI,CAAC,mBAAmB,CAAC;YAC/C,OAAO,EAAE,CAAC,cAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;SAC1D,CAAC,CAAC,OAAO,EAAE,CAAC;QAEb,YAAY,GAAG,SAAS,CAAC,GAAG,CAAe,eAAY,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;YACxC,MAAM,KAAK,GAAG,eAAe,CAAC;YAC9B,MAAM,MAAM,GAAG,UAAU,CAAC;YAE1B,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAEjE,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,KAAK,GAAG,eAAe,CAAC;YAE9B,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEzD,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAClD,MAAM,KAAK,GAAG,eAAe,CAAC;YAC9B,MAAM,MAAM,GAAG,UAAU,CAAC;YAE1B,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACjE,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YAE1E,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YAC1E,MAAM,KAAK,GAAG,eAAe,CAAC;YAE9B,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACzD,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAElE,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,kDAAkD;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"crypt.service.spec.js","sourceRoot":"","sources":["../src/crypt.service.spec.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,4 @@
1
1
  export * from "./crypt.module";
2
2
  export * from "./crypt.service";
3
+ export * from "./crypt-module-options.interface";
4
+ export * from "./utils/is-jwe";
package/dist/index.js CHANGED
@@ -16,4 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./crypt.module"), exports);
18
18
  __exportStar(require("./crypt.service"), exports);
19
+ __exportStar(require("./crypt-module-options.interface"), exports);
20
+ __exportStar(require("./utils/is-jwe"), exports);
19
21
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,kDAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,kDAAgC;AAChC,mEAAiD;AACjD,iDAA+B"}