@volontariapp/auth 3.2.8 → 3.2.10-snap-cc308f8

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/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.2.10
4
+
5
+ ### Patch Changes
6
+
7
+ - internal token decorator
8
+
9
+ ## 3.2.9
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies []:
14
+ - @volontariapp/shared@0.5.3
15
+
3
16
  ## 3.2.8
4
17
 
5
18
  ### Patch Changes
@@ -0,0 +1,2 @@
1
+ export declare const InternalToken: (...dataOrPipes: unknown[]) => ParameterDecorator;
2
+ //# sourceMappingURL=internal-token.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-token.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/internal-token.decorator.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa,mDAYzB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { createParamDecorator } from '@nestjs/common';
2
+ export const InternalToken = createParamDecorator((_data, ctx) => {
3
+ if (ctx.getType() === 'rpc') {
4
+ const rpcContext = ctx.switchToRpc().getContext();
5
+ const tokens = rpcContext.get('x-internal-token');
6
+ if (tokens.length > 0) {
7
+ const token = tokens[0];
8
+ return typeof token === 'string' ? token : undefined;
9
+ }
10
+ }
11
+ return undefined;
12
+ });
13
+ //# sourceMappingURL=internal-token.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-token.decorator.js","sourceRoot":"","sources":["../../src/decorators/internal-token.decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGtD,MAAM,CAAC,MAAM,aAAa,GAAG,oBAAoB,CAC/C,CAAC,KAAc,EAAE,GAAqB,EAAsB,EAAE;IAC5D,IAAI,GAAG,CAAC,OAAO,EAAE,KAAK,KAAK,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,UAAU,EAAY,CAAC;QAC5D,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAClD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACvD,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CACF,CAAC"}
package/dist/index.d.ts CHANGED
@@ -15,5 +15,6 @@ export * from './decorators/current-user.decorator.js';
15
15
  export * from './decorators/roles.decorator.js';
16
16
  export * from './decorators/public.decorator.js';
17
17
  export * from './decorators/refresh-token.decorator.js';
18
+ export * from './decorators/internal-token.decorator.js';
18
19
  export * from './interceptors/grpc-internal.interceptor.js';
19
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAClE,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,kBAAkB,CAAC;AACjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0CAA0C,CAAC;AACzD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,cAAc,6CAA6C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAClE,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,kBAAkB,CAAC;AACjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0CAA0C,CAAC;AACzD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,cAAc,0CAA0C,CAAC;AACzD,cAAc,6CAA6C,CAAC"}
package/dist/index.js CHANGED
@@ -14,5 +14,6 @@ export * from './decorators/current-user.decorator.js';
14
14
  export * from './decorators/roles.decorator.js';
15
15
  export * from './decorators/public.decorator.js';
16
16
  export * from './decorators/refresh-token.decorator.js';
17
+ export * from './decorators/internal-token.decorator.js';
17
18
  export * from './interceptors/grpc-internal.interceptor.js';
18
19
  //# 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,OAAO,kBAAkB,CAAC;AAE1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,kBAAkB,CAAC;AACjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0CAA0C,CAAC;AACzD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,cAAc,6CAA6C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,kBAAkB,CAAC;AACjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0CAA0C,CAAC;AACzD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,cAAc,0CAA0C,CAAC;AACzD,cAAc,6CAA6C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=internal-token.decorator.unit.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-token.decorator.unit.spec.d.ts","sourceRoot":"","sources":["../../../src/test/unit/internal-token.decorator.unit.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,95 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ 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;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ import { ROUTE_ARGS_METADATA } from '@nestjs/common/constants.js';
14
+ import { InternalToken } from '../../decorators/internal-token.decorator.js';
15
+ import { describe, expect, it, jest } from '@jest/globals';
16
+ describe('InternalToken Decorator', () => {
17
+ function getParamDecoratorFactory(decorator) {
18
+ class Test {
19
+ test(value) {
20
+ return value;
21
+ }
22
+ }
23
+ __decorate([
24
+ __param(0, decorator()),
25
+ __metadata("design:type", Function),
26
+ __metadata("design:paramtypes", [Object]),
27
+ __metadata("design:returntype", void 0)
28
+ ], Test.prototype, "test", null);
29
+ const args = Reflect.getMetadata(ROUTE_ARGS_METADATA, Test, 'test');
30
+ const key = Object.keys(args)[0];
31
+ if (!key) {
32
+ throw new Error('No args found');
33
+ }
34
+ return args[key].factory;
35
+ }
36
+ const factory = getParamDecoratorFactory(InternalToken);
37
+ it('should return undefined if context type is not rpc', () => {
38
+ const mockContext = {
39
+ getType: jest.fn().mockReturnValue('http'),
40
+ };
41
+ const getTypeSpy = jest.spyOn(mockContext, 'getType');
42
+ const result = factory(null, mockContext);
43
+ expect(result).toBeUndefined();
44
+ expect(getTypeSpy).toHaveBeenCalled();
45
+ });
46
+ it('should return undefined if x-internal-token is missing', () => {
47
+ const mockMetadata = {
48
+ get: jest.fn().mockReturnValue([]),
49
+ };
50
+ const mockRpcArgumentsHost = {
51
+ getContext: jest.fn().mockReturnValue(mockMetadata),
52
+ };
53
+ const mockContext = {
54
+ getType: jest.fn().mockReturnValue('rpc'),
55
+ switchToRpc: jest.fn().mockReturnValue(mockRpcArgumentsHost),
56
+ };
57
+ const getTypeSpy = jest.spyOn(mockContext, 'getType');
58
+ const switchToRpcSpy = jest.spyOn(mockContext, 'switchToRpc');
59
+ const getContextSpy = jest.spyOn(mockRpcArgumentsHost, 'getContext');
60
+ const result = factory(null, mockContext);
61
+ expect(result).toBeUndefined();
62
+ expect(getTypeSpy).toHaveBeenCalled();
63
+ expect(switchToRpcSpy).toHaveBeenCalled();
64
+ expect(getContextSpy).toHaveBeenCalled();
65
+ });
66
+ it('should return the token string when present', () => {
67
+ const tokenStr = 'my-internal-token';
68
+ const mockMetadata = {
69
+ get: jest.fn().mockImplementation((key) => {
70
+ if (key === 'x-internal-token') {
71
+ return [tokenStr];
72
+ }
73
+ return [];
74
+ }),
75
+ };
76
+ const mockRpcArgumentsHost = {
77
+ getContext: jest.fn().mockReturnValue(mockMetadata),
78
+ };
79
+ const mockContext = {
80
+ getType: jest.fn().mockReturnValue('rpc'),
81
+ switchToRpc: jest.fn().mockReturnValue(mockRpcArgumentsHost),
82
+ };
83
+ const getTypeSpy = jest.spyOn(mockContext, 'getType');
84
+ const switchToRpcSpy = jest.spyOn(mockContext, 'switchToRpc');
85
+ const getContextSpy = jest.spyOn(mockRpcArgumentsHost, 'getContext');
86
+ const getSpy = jest.spyOn(mockMetadata, 'get');
87
+ const result = factory(null, mockContext);
88
+ expect(result).toBe(tokenStr);
89
+ expect(getTypeSpy).toHaveBeenCalled();
90
+ expect(switchToRpcSpy).toHaveBeenCalled();
91
+ expect(getContextSpy).toHaveBeenCalled();
92
+ expect(getSpy).toHaveBeenCalledWith('x-internal-token');
93
+ });
94
+ });
95
+ //# sourceMappingURL=internal-token.decorator.unit.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-token.decorator.unit.spec.js","sourceRoot":"","sources":["../../../src/test/unit/internal-token.decorator.unit.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volontariapp/auth",
3
- "version": "3.2.8",
3
+ "version": "3.2.10-snap-cc308f8",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "provenance": true
@@ -38,7 +38,7 @@
38
38
  "@volontariapp/errors": "0.5.2",
39
39
  "@volontariapp/errors-nest": "0.11.2",
40
40
  "@volontariapp/logger": "0.2.5",
41
- "@volontariapp/shared": "0.5.2",
41
+ "@volontariapp/shared": "0.5.3",
42
42
  "jose": "^6.2.2",
43
43
  "reflect-metadata": "^0.2.2",
44
44
  "rxjs": "^7.8.1"