@konker.dev/middleware-fp 0.0.16 → 0.0.19
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/contrib/basicAuthAuthenticator.d.ts +11 -0
- package/dist/contrib/basicAuthAuthenticator.js +43 -0
- package/dist/contrib/basicAuthAuthenticator.js.map +1 -0
- package/dist/contrib/basicAuthAuthenticator.test.d.ts +4 -0
- package/dist/contrib/basicAuthAuthenticator.test.js +86 -0
- package/dist/contrib/basicAuthAuthenticator.test.js.map +1 -0
- package/dist/contrib/basicAuthDecoder.d.ts +6 -0
- package/dist/contrib/basicAuthDecoder.js +39 -0
- package/dist/contrib/basicAuthDecoder.js.map +1 -0
- package/dist/contrib/basicAuthDecoder.test.d.ts +1 -0
- package/dist/contrib/basicAuthDecoder.test.js +68 -0
- package/dist/contrib/basicAuthDecoder.test.js.map +1 -0
- package/dist/contrib/headerSignatureAuthorizer/index.test.js +1 -2
- package/dist/contrib/headerSignatureAuthorizer/index.test.js.map +1 -1
- package/dist/contrib/headersNormalizer/types.d.ts +3 -0
- package/dist/contrib/index.d.ts +5 -0
- package/dist/contrib/index.js +6 -1
- package/dist/contrib/index.js.map +1 -1
- package/dist/contrib/jwtAuthenticator.d.ts +9 -0
- package/dist/contrib/jwtAuthenticator.js +44 -0
- package/dist/contrib/jwtAuthenticator.js.map +1 -0
- package/dist/contrib/jwtAuthenticator.test.d.ts +4 -0
- package/dist/contrib/jwtAuthenticator.test.js +83 -0
- package/dist/contrib/jwtAuthenticator.test.js.map +1 -0
- package/dist/contrib/jwtAuthenticatorRsa.d.ts +9 -0
- package/dist/contrib/jwtAuthenticatorRsa.js +44 -0
- package/dist/contrib/jwtAuthenticatorRsa.js.map +1 -0
- package/dist/contrib/jwtAuthenticatorRsa.test.d.ts +4 -0
- package/dist/contrib/jwtAuthenticatorRsa.test.js +84 -0
- package/dist/contrib/jwtAuthenticatorRsa.test.js.map +1 -0
- package/dist/contrib/jwtDecoder.d.ts +6 -0
- package/dist/contrib/jwtDecoder.js +40 -0
- package/dist/contrib/jwtDecoder.js.map +1 -0
- package/dist/contrib/jwtDecoder.test.d.ts +1 -0
- package/dist/contrib/jwtDecoder.test.js +77 -0
- package/dist/contrib/jwtDecoder.test.js.map +1 -0
- package/dist/contrib/{pathTokenAuthorizer/index.d.ts → pathTokenAuthorizer.d.ts} +2 -2
- package/dist/contrib/{pathTokenAuthorizer/index.js → pathTokenAuthorizer.js} +2 -2
- package/dist/contrib/pathTokenAuthorizer.js.map +1 -0
- package/dist/contrib/{pathTokenAuthorizer/index.test.d.ts → pathTokenAuthorizer.test.d.ts} +1 -1
- package/dist/contrib/{pathTokenAuthorizer/index.test.js → pathTokenAuthorizer.test.js} +4 -5
- package/dist/contrib/pathTokenAuthorizer.test.js.map +1 -0
- package/dist/test/unit/auth-1.test.js +2 -2
- package/dist/test/unit/auth-1.test.js.map +1 -1
- package/dist/test/unit/auth-2.test.js +2 -2
- package/dist/test/unit/auth-2.test.js.map +1 -1
- package/dist/test/unit/basic-1.test.js +3 -3
- package/dist/test/unit/basic-1.test.js.map +1 -1
- package/dist/test/unit/basic-2.test.d.ts +1 -0
- package/dist/test/unit/basic-2.test.js +102 -0
- package/dist/test/unit/basic-2.test.js.map +1 -0
- package/dist/test/unit/basic-3.test.d.ts +1 -0
- package/dist/test/unit/basic-3.test.js +98 -0
- package/dist/test/unit/basic-3.test.js.map +1 -0
- package/dist/test/unit/kitchen-sink.test.js +18 -8
- package/dist/test/unit/kitchen-sink.test.js.map +1 -1
- package/package.json +2 -2
- package/dist/contrib/pathTokenAuthorizer/index.js.map +0 -1
- package/dist/contrib/pathTokenAuthorizer/index.test.js.map +0 -1
|
@@ -0,0 +1,84 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.mockJwtAuthenticatorRsaDeps = exports.JWT_AUTHENTICATOR_RSA_TEST_DEPS = void 0;
|
|
27
|
+
const P = __importStar(require("@konker.dev/effect-ts-prelude"));
|
|
28
|
+
const jwt_1 = require("@konker.dev/tiny-auth-utils-fp/dist/test/fixtures/jwt");
|
|
29
|
+
const test_jwt_rsa_keys_1 = require("@konker.dev/tiny-auth-utils-fp/dist/test/fixtures/test-jwt-rsa-keys");
|
|
30
|
+
const test_jwt_tokens_rsa_1 = require("@konker.dev/tiny-auth-utils-fp/dist/test/fixtures/test-jwt-tokens-rsa");
|
|
31
|
+
const test_common_1 = require("../test/test-common");
|
|
32
|
+
const unit = __importStar(require("./jwtAuthenticatorRsa"));
|
|
33
|
+
exports.JWT_AUTHENTICATOR_RSA_TEST_DEPS = unit.JwtAuthenticatorRsaDeps.of({
|
|
34
|
+
rsaPublicKey: test_jwt_rsa_keys_1.TEST_RSA_KEY_PUBLIC,
|
|
35
|
+
issuer: 'test-iss',
|
|
36
|
+
});
|
|
37
|
+
exports.mockJwtAuthenticatorRsaDeps = P.Effect.provideService(unit.JwtAuthenticatorRsaDeps, exports.JWT_AUTHENTICATOR_RSA_TEST_DEPS);
|
|
38
|
+
const VALID_JWT_RSA_VALUE = `Bearer ${test_jwt_tokens_rsa_1.TEST_TOKEN_RSA}`;
|
|
39
|
+
const INVALID_JWT_RSA_VALUE = 'Bearer Banana';
|
|
40
|
+
const TEST_IN_1 = {
|
|
41
|
+
headers: {
|
|
42
|
+
authorization: VALID_JWT_RSA_VALUE,
|
|
43
|
+
},
|
|
44
|
+
isBase64Encoded: false,
|
|
45
|
+
body: {},
|
|
46
|
+
};
|
|
47
|
+
const TEST_IN_2 = {
|
|
48
|
+
headers: {
|
|
49
|
+
authorization: INVALID_JWT_RSA_VALUE,
|
|
50
|
+
},
|
|
51
|
+
isBase64Encoded: false,
|
|
52
|
+
body: {},
|
|
53
|
+
};
|
|
54
|
+
describe('middleware/jwt-authenticator-rsa', () => {
|
|
55
|
+
let errorSpy;
|
|
56
|
+
beforeEach(() => {
|
|
57
|
+
jest.spyOn(Date, 'now').mockReturnValue(jwt_1.TEST_JWT_NOW_MS);
|
|
58
|
+
jest.spyOn(P.Effect, 'logDebug').mockReturnValue(P.Effect.succeed(undefined));
|
|
59
|
+
errorSpy = jest.spyOn(P.Effect, 'logError').mockReturnValue(P.Effect.succeed(undefined));
|
|
60
|
+
});
|
|
61
|
+
afterEach(() => {
|
|
62
|
+
jest.restoreAllMocks();
|
|
63
|
+
});
|
|
64
|
+
test('it should work as expected in an success case', async () => {
|
|
65
|
+
const egHandler = P.pipe(test_common_1.echoCoreIn, unit.middleware());
|
|
66
|
+
const result = await P.pipe(egHandler(TEST_IN_1), exports.mockJwtAuthenticatorRsaDeps, P.Effect.runPromise);
|
|
67
|
+
expect(result).toStrictEqual({
|
|
68
|
+
headers: {
|
|
69
|
+
authorization: VALID_JWT_RSA_VALUE,
|
|
70
|
+
},
|
|
71
|
+
body: {},
|
|
72
|
+
isBase64Encoded: false,
|
|
73
|
+
userId: 'test-sub',
|
|
74
|
+
});
|
|
75
|
+
expect(errorSpy).toHaveBeenCalledTimes(0);
|
|
76
|
+
});
|
|
77
|
+
test('it should work as expected in an error case', async () => {
|
|
78
|
+
const egHandler = P.pipe(test_common_1.echoCoreIn, unit.middleware());
|
|
79
|
+
const result = P.pipe(egHandler(TEST_IN_2), exports.mockJwtAuthenticatorRsaDeps, P.Effect.runPromise);
|
|
80
|
+
await expect(() => result).rejects.toThrow('Invalid JWT RSA credentials');
|
|
81
|
+
expect(errorSpy).toHaveBeenCalledTimes(1);
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
//# sourceMappingURL=jwtAuthenticatorRsa.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwtAuthenticatorRsa.test.js","sourceRoot":"","sources":["../../src/contrib/jwtAuthenticatorRsa.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { APIGatewayProxyEventV2 } from 'aws-lambda';
|
|
2
|
+
import type { Handler } from '../index';
|
|
3
|
+
import { HttpApiError } from '../lib/HttpApiError';
|
|
4
|
+
import type { WithNormalizedInputHeaders, WithUserId } from './headersNormalizer/types';
|
|
5
|
+
export type { WithUserId } from './headersNormalizer/types';
|
|
6
|
+
export declare const middleware: () => <I extends APIGatewayProxyEventV2, O, E, R>(wrapped: Handler<I & WithUserId, O, E, R>) => Handler<I & WithNormalizedInputHeaders, O, E | HttpApiError, R>;
|
|
@@ -0,0 +1,40 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.middleware = void 0;
|
|
27
|
+
const P = __importStar(require("@konker.dev/effect-ts-prelude"));
|
|
28
|
+
const helpers_1 = require("@konker.dev/tiny-auth-utils-fp/dist/helpers");
|
|
29
|
+
const jwt_1 = require("@konker.dev/tiny-auth-utils-fp/dist/jwt");
|
|
30
|
+
const HttpApiError_1 = require("../lib/HttpApiError");
|
|
31
|
+
const TAG = 'jwtDecoder';
|
|
32
|
+
// --------------------------------------------------------------------------
|
|
33
|
+
const middleware = () => (wrapped) => (i) => {
|
|
34
|
+
return P.pipe(P.Effect.Do, P.Effect.tap(P.Effect.logDebug(`[${TAG}] IN`)), P.Effect.bind('authToken', () => (0, helpers_1.extractBearerToken)(i.headers['authorization'])), P.Effect.bind('decoded', ({ authToken }) => (0, jwt_1.jwtDecodeToken)(authToken)), P.Effect.map(({ decoded }) => ({
|
|
35
|
+
...i,
|
|
36
|
+
userId: decoded.sub,
|
|
37
|
+
})), P.Effect.mapError((e) => (0, HttpApiError_1.HttpApiError)('UnauthorizedError', `Invalid JWT credentials: ${e.message}`, 401, TAG, e)), P.Effect.tapError((_) => P.Effect.logError(`UnauthorizedError: Invalid JWT credentials: ${i.headers}`)), P.Effect.flatMap(wrapped), P.Effect.tap(P.Effect.logDebug(`[${TAG}] OUT`)));
|
|
38
|
+
};
|
|
39
|
+
exports.middleware = middleware;
|
|
40
|
+
//# sourceMappingURL=jwtDecoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwtDecoder.js","sourceRoot":"","sources":["../../src/contrib/jwtDecoder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAmD;AAEnD,yEAAiF;AACjF,iEAAyE;AAIzE,sDAAmD;AAGnD,MAAM,GAAG,GAAG,YAAY,CAAC;AAKzB,6EAA6E;AAEtE,MAAM,UAAU,GACrB,GAAG,EAAE,CACL,CACE,OAAyC,EACwB,EAAE,CACrE,CAAC,CAAiC,EAAE,EAAE;IACpC,OAAO,CAAC,CAAC,IAAI,CACX,CAAC,CAAC,MAAM,CAAC,EAAE,EACX,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,EAC9C,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAA,4BAAkB,EAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAChF,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC,EACtE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7B,GAAG,CAAC;QACJ,MAAM,EAAE,OAAO,CAAC,GAAG;KACpB,CAAC,CAAC,EACH,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,2BAAY,EAAC,mBAAmB,EAAE,4BAA4B,CAAC,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EACjH,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,+CAA+C,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,EACvG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EACzB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAChD,CAAC;AACJ,CAAC,CAAC;AApBS,QAAA,UAAU,cAoBnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,77 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
const P = __importStar(require("@konker.dev/effect-ts-prelude"));
|
|
27
|
+
const jwt_1 = require("@konker.dev/tiny-auth-utils-fp/dist/test/fixtures/jwt");
|
|
28
|
+
const test_jwt_tokens_1 = require("@konker.dev/tiny-auth-utils-fp/dist/test/fixtures/test-jwt-tokens");
|
|
29
|
+
const test_common_1 = require("../test/test-common");
|
|
30
|
+
const unit = __importStar(require("./jwtDecoder"));
|
|
31
|
+
const VALID_JWT_VALUE = `Bearer ${test_jwt_tokens_1.TEST_TOKEN}`;
|
|
32
|
+
const INVALID_JWT_VALUE = 'Bearer Banana';
|
|
33
|
+
const TEST_IN_1 = {
|
|
34
|
+
headers: {
|
|
35
|
+
authorization: VALID_JWT_VALUE,
|
|
36
|
+
},
|
|
37
|
+
isBase64Encoded: false,
|
|
38
|
+
body: {},
|
|
39
|
+
};
|
|
40
|
+
const TEST_IN_2 = {
|
|
41
|
+
headers: {
|
|
42
|
+
authorization: INVALID_JWT_VALUE,
|
|
43
|
+
},
|
|
44
|
+
isBase64Encoded: false,
|
|
45
|
+
body: {},
|
|
46
|
+
};
|
|
47
|
+
describe('middleware/jwt-decoder', () => {
|
|
48
|
+
let errorSpy;
|
|
49
|
+
beforeEach(() => {
|
|
50
|
+
jest.spyOn(Date, 'now').mockReturnValue(jwt_1.TEST_JWT_NOW_MS);
|
|
51
|
+
jest.spyOn(P.Effect, 'logDebug').mockReturnValue(P.Effect.succeed(undefined));
|
|
52
|
+
errorSpy = jest.spyOn(P.Effect, 'logError').mockReturnValue(P.Effect.succeed(undefined));
|
|
53
|
+
});
|
|
54
|
+
afterEach(() => {
|
|
55
|
+
jest.restoreAllMocks();
|
|
56
|
+
});
|
|
57
|
+
test('it should work as expected in an success case', async () => {
|
|
58
|
+
const egHandler = P.pipe(test_common_1.echoCoreIn, unit.middleware());
|
|
59
|
+
const result = await P.pipe(egHandler(TEST_IN_1), P.Effect.runPromise);
|
|
60
|
+
expect(result).toStrictEqual({
|
|
61
|
+
headers: {
|
|
62
|
+
authorization: VALID_JWT_VALUE,
|
|
63
|
+
},
|
|
64
|
+
body: {},
|
|
65
|
+
isBase64Encoded: false,
|
|
66
|
+
userId: 'test-sub',
|
|
67
|
+
});
|
|
68
|
+
expect(errorSpy).toHaveBeenCalledTimes(0);
|
|
69
|
+
});
|
|
70
|
+
test('it should work as expected in an error case', async () => {
|
|
71
|
+
const egHandler = P.pipe(test_common_1.echoCoreIn, unit.middleware());
|
|
72
|
+
const result = P.pipe(egHandler(TEST_IN_2), P.Effect.runPromise);
|
|
73
|
+
await expect(() => result).rejects.toThrow('Invalid JWT credentials');
|
|
74
|
+
expect(errorSpy).toHaveBeenCalledTimes(1);
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
//# sourceMappingURL=jwtDecoder.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwtDecoder.test.js","sourceRoot":"","sources":["../../src/contrib/jwtDecoder.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAmD;AAEnD,+EAAwF;AACxF,uGAA+F;AAG/F,qDAAiD;AAEjD,mDAAqC;AAErC,MAAM,eAAe,GAAG,UAAU,4BAAU,EAAE,CAAC;AAC/C,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAE1C,MAAM,SAAS,GAAG;IAChB,OAAO,EAAE;QACP,aAAa,EAAE,eAAe;KAC/B;IACD,eAAe,EAAE,KAAK;IACtB,IAAI,EAAE,EAAE;CACyD,CAAC;AAEpE,MAAM,SAAS,GAAG;IAChB,OAAO,EAAE;QACP,aAAa,EAAE,iBAAiB;KACjC;IACD,eAAe,EAAE,KAAK;IACtB,IAAI,EAAE,EAAE;CACyD,CAAC;AAEpE,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,IAAI,QAA0B,CAAC;IAE/B,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,eAAe,CAAC,qBAAe,CAAC,CAAC;QACzD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAC9E,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,wBAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEvE,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YAC3B,OAAO,EAAE;gBACP,aAAa,EAAE,eAAe;aAC/B;YACD,IAAI,EAAE,EAAE;YACR,eAAe,EAAE,KAAK;YACtB,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,wBAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEjE,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QACtE,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as P from '@konker.dev/effect-ts-prelude';
|
|
2
2
|
import type { APIGatewayProxyEventV2 } from 'aws-lambda';
|
|
3
|
-
import type { Handler } from '
|
|
4
|
-
import { HttpApiError } from '
|
|
3
|
+
import type { Handler } from '../index';
|
|
4
|
+
import { HttpApiError } from '../lib/HttpApiError';
|
|
5
5
|
export type PathTokenAuthorizerDeps = {
|
|
6
6
|
readonly secretTokenEnvName: string;
|
|
7
7
|
readonly pathParamName: string;
|
|
@@ -25,7 +25,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.middleware = exports.PathTokenAuthorizerDeps = void 0;
|
|
27
27
|
const P = __importStar(require("@konker.dev/effect-ts-prelude"));
|
|
28
|
-
const HttpApiError_1 = require("
|
|
28
|
+
const HttpApiError_1 = require("../lib/HttpApiError");
|
|
29
29
|
const TAG = 'pathTokenAuthorizer';
|
|
30
30
|
exports.PathTokenAuthorizerDeps = P.Context.GenericTag('PathTokenAuthorizerDeps');
|
|
31
31
|
// --------------------------------------------------------------------------
|
|
@@ -36,4 +36,4 @@ const middleware = () => (wrapped) => (i) => {
|
|
|
36
36
|
})), P.Effect.flatMap(wrapped), P.Effect.tap(P.Effect.logDebug(`[${TAG}] OUT`)));
|
|
37
37
|
};
|
|
38
38
|
exports.middleware = middleware;
|
|
39
|
-
//# sourceMappingURL=
|
|
39
|
+
//# sourceMappingURL=pathTokenAuthorizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pathTokenAuthorizer.js","sourceRoot":"","sources":["../../src/contrib/pathTokenAuthorizer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAmD;AAKnD,sDAAmD;AAEnD,MAAM,GAAG,GAAG,qBAAqB,CAAC;AAOrB,QAAA,uBAAuB,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAA0B,yBAAyB,CAAC,CAAC;AAEhH,6EAA6E;AACtE,MAAM,UAAU,GACrB,GAAG,EAAE,CACL,CACE,OAA4B,EACkC,EAAE,CAClE,CAAC,CAAI,EAAE,EAAE;IACP,OAAO,CAAC,CAAC,IAAI,CACX,+BAAuB,EACvB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,EAC9C,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,aAAa,EAAE,kBAAkB,EAAE,EAAE,EAAE,CACzD,CAAC,CAAC,MAAM,CAAC,EAAE,CACT,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAC1G;QACE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACjC,OAAO,EAAE,GAAG,EAAE,CACZ,CAAC,CAAC,IAAI,CACJ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAA,2BAAY,EAAC,mBAAmB,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC,EACtE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAC,CACpE;KACJ,CACF,CACF,EACD,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EACzB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAChD,CAAC;AACJ,CAAC,CAAC;AAzBS,QAAA,UAAU,cAyBnB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as P from '@konker.dev/effect-ts-prelude';
|
|
2
|
-
import * as unit from './
|
|
2
|
+
import * as unit from './pathTokenAuthorizer';
|
|
3
3
|
export declare const CORRECT_TEST_PATH_TOKEN_VALUE = "test-token-value";
|
|
4
4
|
export declare const INCORRECT_TEST_PATH_TOKEN_VALUE = "wrong-token-value";
|
|
5
5
|
export declare const TEST_SECRET_TOKEN_ENV_NAME = "test-secret-token-env-name";
|
|
@@ -25,9 +25,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.mockPathTokenAuthorizerDeps = exports.PATH_TOKEN_AUTHORIZER_TEST_DEPS = exports.TEST_SECRET_TOKEN_ENV_NAME = exports.INCORRECT_TEST_PATH_TOKEN_VALUE = exports.CORRECT_TEST_PATH_TOKEN_VALUE = void 0;
|
|
27
27
|
const P = __importStar(require("@konker.dev/effect-ts-prelude"));
|
|
28
|
-
const test_common_1 = require("
|
|
29
|
-
const unit = __importStar(require("./
|
|
30
|
-
const index_1 = require("./index");
|
|
28
|
+
const test_common_1 = require("../test/test-common");
|
|
29
|
+
const unit = __importStar(require("./pathTokenAuthorizer"));
|
|
31
30
|
exports.CORRECT_TEST_PATH_TOKEN_VALUE = 'test-token-value';
|
|
32
31
|
exports.INCORRECT_TEST_PATH_TOKEN_VALUE = 'wrong-token-value';
|
|
33
32
|
exports.TEST_SECRET_TOKEN_ENV_NAME = 'test-secret-token-env-name';
|
|
@@ -35,7 +34,7 @@ exports.PATH_TOKEN_AUTHORIZER_TEST_DEPS = unit.PathTokenAuthorizerDeps.of({
|
|
|
35
34
|
secretTokenEnvName: exports.TEST_SECRET_TOKEN_ENV_NAME,
|
|
36
35
|
pathParamName: 'pathToken',
|
|
37
36
|
});
|
|
38
|
-
exports.mockPathTokenAuthorizerDeps = P.Effect.provideService(
|
|
37
|
+
exports.mockPathTokenAuthorizerDeps = P.Effect.provideService(unit.PathTokenAuthorizerDeps, exports.PATH_TOKEN_AUTHORIZER_TEST_DEPS);
|
|
39
38
|
const TEST_IN_1 = {
|
|
40
39
|
headers: {},
|
|
41
40
|
isBase64Encoded: false,
|
|
@@ -89,4 +88,4 @@ describe('middleware/path-token-authorizer', () => {
|
|
|
89
88
|
expect(errorSpy).toHaveBeenCalledTimes(1);
|
|
90
89
|
});
|
|
91
90
|
});
|
|
92
|
-
//# sourceMappingURL=
|
|
91
|
+
//# sourceMappingURL=pathTokenAuthorizer.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pathTokenAuthorizer.test.js","sourceRoot":"","sources":["../../src/contrib/pathTokenAuthorizer.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
29
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
30
30
|
const P = __importStar(require("@konker.dev/effect-ts-prelude"));
|
|
31
31
|
const M = __importStar(require("../../contrib"));
|
|
32
|
-
const
|
|
32
|
+
const pathTokenAuthorizer_test_1 = require("../../contrib/pathTokenAuthorizer.test");
|
|
33
33
|
const APIGatewayRequestAuthorizerEventV2_1_json_1 = __importDefault(require("../fixtures/APIGatewayRequestAuthorizerEventV2-1.json"));
|
|
34
34
|
const Env = P.Schema.Struct({
|
|
35
35
|
MOMENTO_AUTH_TOKEN: P.Schema.String,
|
|
@@ -43,7 +43,7 @@ describe('auth test 1', () => {
|
|
|
43
43
|
oldEnv = process.env;
|
|
44
44
|
process.env = {
|
|
45
45
|
MOMENTO_AUTH_TOKEN: 'TEST_MOMENTO_AUTH_TOKEN',
|
|
46
|
-
[
|
|
46
|
+
[pathTokenAuthorizer_test_1.TEST_SECRET_TOKEN_ENV_NAME]: pathTokenAuthorizer_test_1.CORRECT_TEST_PATH_TOKEN_VALUE,
|
|
47
47
|
};
|
|
48
48
|
});
|
|
49
49
|
afterAll(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-1.test.js","sourceRoot":"","sources":["../../../src/test/unit/auth-1.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAAyD;AACzD,iEAAmD;AAInD,iDAAmC;AACnC,
|
|
1
|
+
{"version":3,"file":"auth-1.test.js","sourceRoot":"","sources":["../../../src/test/unit/auth-1.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAAyD;AACzD,iEAAmD;AAInD,iDAAmC;AACnC,qFAAmH;AAEnH,sIAA0E;AAE1E,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAC1B,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;CACpC,CAAC,CAAC;AAGH,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;CACzB,CAAC,CAAC;AAOH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,IAAI,MAAyB,CAAC;IAE9B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QACrB,OAAO,CAAC,GAAG,GAAG;YACZ,kBAAkB,EAAE,yBAAyB;YAC7C,CAAC,qDAA0B,CAAC,EAAE,wDAA6B;SAC5D,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,GAAG,EAAE;QACZ,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,SAAS,QAAQ,CAAC,EAAa;YAC7B,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;gBACtB,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAClB,QAAQ,EACR,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,EACtC,CAAC,CAAC,iBAAiB,CAAC,UAAU,EAAE,EAChC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,EAC9B,CAAC,CAAC,4BAA4B,CAAC,UAAU,EAAE,EAC3C,CAAC,CAAC,qBAAqB,CAAC,UAAU,EAAE,CACrC,CAAC;QAEF,MAAM,OAAO,GAAG,KAAK,CAAC,mDAA2C,CAAC,CAAC;QAEnE,MAAM,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;YAChE,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -29,7 +29,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
29
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
30
30
|
const P = __importStar(require("@konker.dev/effect-ts-prelude"));
|
|
31
31
|
const M = __importStar(require("../../contrib"));
|
|
32
|
-
const
|
|
32
|
+
const pathTokenAuthorizer_test_1 = require("../../contrib/pathTokenAuthorizer.test");
|
|
33
33
|
const APIGatewayRequestAuthorizerEventV2_1_json_1 = __importDefault(require("../fixtures/APIGatewayRequestAuthorizerEventV2-1.json"));
|
|
34
34
|
const Env = P.Schema.Struct({
|
|
35
35
|
MOMENTO_AUTH_TOKEN: P.Schema.String,
|
|
@@ -43,7 +43,7 @@ describe('auth test 2', () => {
|
|
|
43
43
|
oldEnv = process.env;
|
|
44
44
|
process.env = {
|
|
45
45
|
MOMENTO_AUTH_TOKEN: 'TEST_MOMENTO_AUTH_TOKEN',
|
|
46
|
-
[
|
|
46
|
+
[pathTokenAuthorizer_test_1.TEST_SECRET_TOKEN_ENV_NAME]: pathTokenAuthorizer_test_1.CORRECT_TEST_PATH_TOKEN_VALUE,
|
|
47
47
|
};
|
|
48
48
|
});
|
|
49
49
|
afterAll(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-2.test.js","sourceRoot":"","sources":["../../../src/test/unit/auth-2.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAAyD;AACzD,iEAAmD;AAInD,iDAAmC;AACnC,
|
|
1
|
+
{"version":3,"file":"auth-2.test.js","sourceRoot":"","sources":["../../../src/test/unit/auth-2.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAAyD;AACzD,iEAAmD;AAInD,iDAAmC;AACnC,qFAAmH;AACnH,sIAA0E;AAE1E,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAC1B,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;CACpC,CAAC,CAAC;AAGH,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;CACzB,CAAC,CAAC;AAOH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,IAAI,MAAyB,CAAC;IAE9B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QACrB,OAAO,CAAC,GAAG,GAAG;YACZ,kBAAkB,EAAE,yBAAyB;YAC7C,CAAC,qDAA0B,CAAC,EAAE,wDAA6B;SAC5D,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,GAAG,EAAE;QACZ,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,SAAS,QAAQ,CAAC,EAAa;YAC7B,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAClB,QAAQ,EACR,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,EACtC,CAAC,CAAC,iBAAiB,CAAC,UAAU,EAAE,EAChC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,EAC9B,CAAC,CAAC,yBAAyB,CAAC,UAAU,EAAE,EACxC,CAAC,CAAC,qBAAqB,CAAC,UAAU,EAAE,CACrC,CAAC;QAEF,MAAM,OAAO,GAAG,KAAK,CAAC,mDAA2C,CAAC,CAAC;QAEnE,MAAM,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;YAChE,OAAO,EAAE;gBACP,WAAW,EAAE,MAAM;aACpB;YACD,cAAc,EAAE;gBACd,SAAS,EAAE;oBACT;wBACE,MAAM,EAAE,oBAAoB;wBAC5B,MAAM,EAAE,MAAM;wBACd,QAAQ,EAAE,GAAG;qBACd;iBACF;gBACD,OAAO,EAAE,YAAY;aACtB;YACD,WAAW,EAAE,MAAM;SACpB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -26,7 +26,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
26
26
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
27
27
|
const P = __importStar(require("@konker.dev/effect-ts-prelude"));
|
|
28
28
|
const M = __importStar(require("../../contrib"));
|
|
29
|
-
const
|
|
29
|
+
const pathTokenAuthorizer_test_1 = require("../../contrib/pathTokenAuthorizer.test");
|
|
30
30
|
const Env = P.Schema.Struct({
|
|
31
31
|
MOMENTO_AUTH_TOKEN: P.Schema.String,
|
|
32
32
|
});
|
|
@@ -39,7 +39,7 @@ describe('basic test 1', () => {
|
|
|
39
39
|
oldEnv = process.env;
|
|
40
40
|
process.env = {
|
|
41
41
|
MOMENTO_AUTH_TOKEN: 'TEST_MOMENTO_AUTH_TOKEN',
|
|
42
|
-
[
|
|
42
|
+
[pathTokenAuthorizer_test_1.TEST_SECRET_TOKEN_ENV_NAME]: pathTokenAuthorizer_test_1.CORRECT_TEST_PATH_TOKEN_VALUE,
|
|
43
43
|
};
|
|
44
44
|
});
|
|
45
45
|
afterAll(() => {
|
|
@@ -73,7 +73,7 @@ describe('basic test 1', () => {
|
|
|
73
73
|
body: '{ "foo": "abc", "bar": 123, "baz": true }',
|
|
74
74
|
pathParameters: {
|
|
75
75
|
id: 'test-id',
|
|
76
|
-
pathToken:
|
|
76
|
+
pathToken: pathTokenAuthorizer_test_1.CORRECT_TEST_PATH_TOKEN_VALUE,
|
|
77
77
|
},
|
|
78
78
|
isBase64Encoded: false,
|
|
79
79
|
// stageVariables?: {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic-1.test.js","sourceRoot":"","sources":["../../../src/test/unit/basic-1.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAAyD;AACzD,iEAAmD;AAInD,iDAAmC;AACnC,
|
|
1
|
+
{"version":3,"file":"basic-1.test.js","sourceRoot":"","sources":["../../../src/test/unit/basic-1.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAAyD;AACzD,iEAAmD;AAInD,iDAAmC;AACnC,qFAAmH;AAGnH,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAC1B,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;CACpC,CAAC,CAAC;AAGH,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAC9B,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;CAChC,CAAC,CAAC;AAOH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAI,MAAyB,CAAC;IAE9B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QACrB,OAAO,CAAC,GAAG,GAAG;YACZ,kBAAkB,EAAE,yBAAyB;YAC7C,CAAC,qDAA0B,CAAC,EAAE,wDAA6B;SAC5D,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,GAAG,EAAE;QACZ,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,SAAS,QAAQ,CAAC,CAAY;YAC5B,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;gBACtB,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,EAAE,cAAc,EAAE,iCAAiC,EAAE;gBAC9D,iBAAiB,EAAE,EAAE;gBACrB,eAAe,EAAE,KAAK;gBACtB,IAAI,EAAE;oBACJ,GAAG,EAAE,CAAC,CAAC,YAAY,CAAC,kBAAkB;oBACtC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE;iBAC3C;aACF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAClB,QAAQ,EACR,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,EACtC,CAAC,CAAC,iBAAiB,CAAC,UAAU,EAAE,EAChC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,EAC9B,CAAC,CAAC,sBAAsB,CAAC,UAAU,EAAE,EACrC,CAAC,CAAC,qBAAqB,CAAC,UAAU,EAAE,CACrC,CAAC;QAEF,MAAM,OAAO,GAAG,KAAK,CAAC;YACpB,OAAO,EAAE,QAAQ;YACjB,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,QAAQ;YACjB,cAAc,EAAE,QAAQ;YACxB,gBAAgB;YAChB,OAAO,EAAE,EAAE,cAAc,EAAE,iCAAiC,EAAE;YAC9D,qBAAqB,EAAE;gBACrB,CAAC,EAAE,KAAK;aACT;YACD,cAAc,EAAE,EAAS;YACzB,IAAI,EAAE,2CAA2C;YACjD,cAAc,EAAE;gBACd,EAAE,EAAE,SAAS;gBACb,SAAS,EAAE,wDAA6B;aACzC;YACD,eAAe,EAAE,KAAK;YACtB,uBAAuB;SACxB,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;YAChE,IAAI,EAAE,yEAAyE;YAC/E,OAAO,EAAE;gBACP,cAAc,EAAE,iCAAiC;aAClD;YACD,eAAe,EAAE,KAAK;YACtB,iBAAiB,EAAE,EAAE;YACrB,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,102 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
27
|
+
const P = __importStar(require("@konker.dev/effect-ts-prelude"));
|
|
28
|
+
const jwt_1 = require("@konker.dev/tiny-auth-utils-fp/dist/test/fixtures/jwt");
|
|
29
|
+
const test_jwt_tokens_rsa_1 = require("@konker.dev/tiny-auth-utils-fp/dist/test/fixtures/test-jwt-tokens-rsa");
|
|
30
|
+
const M = __importStar(require("../../contrib"));
|
|
31
|
+
const jwtAuthenticatorRsa_test_1 = require("../../contrib/jwtAuthenticatorRsa.test");
|
|
32
|
+
const pathTokenAuthorizer_test_1 = require("../../contrib/pathTokenAuthorizer.test");
|
|
33
|
+
const Env = P.Schema.Struct({
|
|
34
|
+
MOMENTO_AUTH_TOKEN: P.Schema.String,
|
|
35
|
+
});
|
|
36
|
+
const Headers = P.Schema.Struct({
|
|
37
|
+
'content-type': P.Schema.String,
|
|
38
|
+
authorization: P.Schema.String,
|
|
39
|
+
});
|
|
40
|
+
describe('basic test 2', () => {
|
|
41
|
+
let oldEnv;
|
|
42
|
+
beforeAll(() => {
|
|
43
|
+
oldEnv = process.env;
|
|
44
|
+
process.env = {
|
|
45
|
+
MOMENTO_AUTH_TOKEN: 'TEST_MOMENTO_AUTH_TOKEN',
|
|
46
|
+
[pathTokenAuthorizer_test_1.TEST_SECRET_TOKEN_ENV_NAME]: pathTokenAuthorizer_test_1.CORRECT_TEST_PATH_TOKEN_VALUE,
|
|
47
|
+
};
|
|
48
|
+
jest.spyOn(Date, 'now').mockReturnValue(jwt_1.TEST_JWT_NOW_MS);
|
|
49
|
+
});
|
|
50
|
+
afterAll(() => {
|
|
51
|
+
jest.restoreAllMocks();
|
|
52
|
+
process.env = oldEnv;
|
|
53
|
+
});
|
|
54
|
+
it('should work as expected', async () => {
|
|
55
|
+
function echoCore(i) {
|
|
56
|
+
return P.Effect.succeed({
|
|
57
|
+
statusCode: 200,
|
|
58
|
+
headers: { 'content-type': 'application/json; charset=UTF-8' },
|
|
59
|
+
multiValueHeaders: {},
|
|
60
|
+
isBase64Encoded: false,
|
|
61
|
+
body: {
|
|
62
|
+
foo: i.validatedEnv.MOMENTO_AUTH_TOKEN,
|
|
63
|
+
h: i.headers['content-type'].toUpperCase(),
|
|
64
|
+
u: i.userId,
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
const stack = P.pipe(echoCore, M.jwtAuthenticatorRsa.middleware(), M.headersValidator.middleware(Headers), M.headersNormalizer.middleware(), M.envValidator.middleware(Env), M.awsApiGatewayProcessor.middleware(), M.requestResponseLogger.middleware());
|
|
69
|
+
const actual1 = stack({
|
|
70
|
+
version: 'string',
|
|
71
|
+
routeKey: 'string',
|
|
72
|
+
rawPath: 'string',
|
|
73
|
+
rawQueryString: 'string',
|
|
74
|
+
// cookies?: [],
|
|
75
|
+
headers: {
|
|
76
|
+
'content-type': 'application/json; charset=UTF-8',
|
|
77
|
+
authorization: `Bearer ${test_jwt_tokens_rsa_1.TEST_TOKEN_RSA}`,
|
|
78
|
+
},
|
|
79
|
+
queryStringParameters: {
|
|
80
|
+
q: 'wtf',
|
|
81
|
+
},
|
|
82
|
+
requestContext: {},
|
|
83
|
+
body: '{ "foo": "abc", "bar": 123, "baz": true }',
|
|
84
|
+
pathParameters: {
|
|
85
|
+
id: 'test-id',
|
|
86
|
+
pathToken: pathTokenAuthorizer_test_1.CORRECT_TEST_PATH_TOKEN_VALUE,
|
|
87
|
+
},
|
|
88
|
+
isBase64Encoded: false,
|
|
89
|
+
// stageVariables?: {},
|
|
90
|
+
});
|
|
91
|
+
await expect(P.Effect.runPromise(P.pipe(actual1, jwtAuthenticatorRsa_test_1.mockJwtAuthenticatorRsaDeps))).resolves.toStrictEqual({
|
|
92
|
+
body: '{"foo":"TEST_MOMENTO_AUTH_TOKEN","h":"APPLICATION/JSON; CHARSET=UTF-8","u":"test-sub"}',
|
|
93
|
+
headers: {
|
|
94
|
+
'Content-Type': 'application/json; charset=UTF-8',
|
|
95
|
+
},
|
|
96
|
+
isBase64Encoded: false,
|
|
97
|
+
multiValueHeaders: {},
|
|
98
|
+
statusCode: 200,
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
//# sourceMappingURL=basic-2.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basic-2.test.js","sourceRoot":"","sources":["../../../src/test/unit/basic-2.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,98 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
27
|
+
const P = __importStar(require("@konker.dev/effect-ts-prelude"));
|
|
28
|
+
const test_jwt_tokens_1 = require("@konker.dev/tiny-auth-utils-fp/dist/test/fixtures/test-jwt-tokens");
|
|
29
|
+
const M = __importStar(require("../../contrib"));
|
|
30
|
+
const pathTokenAuthorizer_test_1 = require("../../contrib/pathTokenAuthorizer.test");
|
|
31
|
+
const Env = P.Schema.Struct({
|
|
32
|
+
MOMENTO_AUTH_TOKEN: P.Schema.String,
|
|
33
|
+
});
|
|
34
|
+
const Headers = P.Schema.Struct({
|
|
35
|
+
'content-type': P.Schema.String,
|
|
36
|
+
authorization: P.Schema.String,
|
|
37
|
+
});
|
|
38
|
+
describe('basic test 3', () => {
|
|
39
|
+
let oldEnv;
|
|
40
|
+
beforeAll(() => {
|
|
41
|
+
oldEnv = process.env;
|
|
42
|
+
process.env = {
|
|
43
|
+
MOMENTO_AUTH_TOKEN: 'TEST_MOMENTO_AUTH_TOKEN',
|
|
44
|
+
[pathTokenAuthorizer_test_1.TEST_SECRET_TOKEN_ENV_NAME]: pathTokenAuthorizer_test_1.CORRECT_TEST_PATH_TOKEN_VALUE,
|
|
45
|
+
};
|
|
46
|
+
});
|
|
47
|
+
afterAll(() => {
|
|
48
|
+
process.env = oldEnv;
|
|
49
|
+
});
|
|
50
|
+
it('should work as expected', async () => {
|
|
51
|
+
function echoCore(i) {
|
|
52
|
+
return P.Effect.succeed({
|
|
53
|
+
statusCode: 200,
|
|
54
|
+
headers: { 'content-type': 'application/json; charset=UTF-8' },
|
|
55
|
+
multiValueHeaders: {},
|
|
56
|
+
isBase64Encoded: false,
|
|
57
|
+
body: {
|
|
58
|
+
foo: i.validatedEnv.MOMENTO_AUTH_TOKEN,
|
|
59
|
+
h: i.headers['content-type'].toUpperCase(),
|
|
60
|
+
u: i.userId,
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
const stack = P.pipe(echoCore, M.jwtDecoder.middleware(), M.headersValidator.middleware(Headers), M.headersNormalizer.middleware(), M.envValidator.middleware(Env), M.awsApiGatewayProcessor.middleware(), M.requestResponseLogger.middleware());
|
|
65
|
+
const actual1 = stack({
|
|
66
|
+
version: 'string',
|
|
67
|
+
routeKey: 'string',
|
|
68
|
+
rawPath: 'string',
|
|
69
|
+
rawQueryString: 'string',
|
|
70
|
+
// cookies?: [],
|
|
71
|
+
headers: {
|
|
72
|
+
'content-type': 'application/json; charset=UTF-8',
|
|
73
|
+
authorization: `Bearer ${test_jwt_tokens_1.TEST_TOKEN}`,
|
|
74
|
+
},
|
|
75
|
+
queryStringParameters: {
|
|
76
|
+
q: 'wtf',
|
|
77
|
+
},
|
|
78
|
+
requestContext: {},
|
|
79
|
+
body: '{ "foo": "abc", "bar": 123, "baz": true }',
|
|
80
|
+
pathParameters: {
|
|
81
|
+
id: 'test-id',
|
|
82
|
+
pathToken: pathTokenAuthorizer_test_1.CORRECT_TEST_PATH_TOKEN_VALUE,
|
|
83
|
+
},
|
|
84
|
+
isBase64Encoded: false,
|
|
85
|
+
// stageVariables?: {},
|
|
86
|
+
});
|
|
87
|
+
await expect(P.Effect.runPromise(P.pipe(actual1))).resolves.toStrictEqual({
|
|
88
|
+
body: '{"foo":"TEST_MOMENTO_AUTH_TOKEN","h":"APPLICATION/JSON; CHARSET=UTF-8","u":"test-sub"}',
|
|
89
|
+
headers: {
|
|
90
|
+
'Content-Type': 'application/json; charset=UTF-8',
|
|
91
|
+
},
|
|
92
|
+
isBase64Encoded: false,
|
|
93
|
+
multiValueHeaders: {},
|
|
94
|
+
statusCode: 200,
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
//# sourceMappingURL=basic-3.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basic-3.test.js","sourceRoot":"","sources":["../../../src/test/unit/basic-3.test.ts"],"names":[],"mappings":"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"}
|