@konker.dev/middleware-fp 0.0.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/LICENSE +15 -0
- package/README.md +7 -0
- package/dist/contrib/aws-api-gateway-processor/index.d.ts +4 -0
- package/dist/contrib/aws-api-gateway-processor/index.js +55 -0
- package/dist/contrib/aws-api-gateway-processor/index.js.map +1 -0
- package/dist/contrib/aws-api-gateway-processor/index.test.d.ts +5 -0
- package/dist/contrib/aws-api-gateway-processor/index.test.js +108 -0
- package/dist/contrib/aws-api-gateway-processor/index.test.js.map +1 -0
- package/dist/contrib/aws-authorizer-processor/index.d.ts +5 -0
- package/dist/contrib/aws-authorizer-processor/index.js +39 -0
- package/dist/contrib/aws-authorizer-processor/index.js.map +1 -0
- package/dist/contrib/aws-authorizer-processor/index.test.d.ts +5 -0
- package/dist/contrib/aws-authorizer-processor/index.test.js +122 -0
- package/dist/contrib/aws-authorizer-processor/index.test.js.map +1 -0
- package/dist/contrib/base64BodyDecoder.d.ts +11 -0
- package/dist/contrib/base64BodyDecoder.js +35 -0
- package/dist/contrib/base64BodyDecoder.js.map +1 -0
- package/dist/contrib/base64BodyDecoder.test.d.ts +4 -0
- package/dist/contrib/base64BodyDecoder.test.js +74 -0
- package/dist/contrib/base64BodyDecoder.test.js.map +1 -0
- package/dist/contrib/bodyValidator.d.ts +10 -0
- package/dist/contrib/bodyValidator.js +35 -0
- package/dist/contrib/bodyValidator.js.map +1 -0
- package/dist/contrib/bodyValidator.test.d.ts +7 -0
- package/dist/contrib/bodyValidator.test.js +58 -0
- package/dist/contrib/bodyValidator.test.js.map +1 -0
- package/dist/contrib/cacheInMemory.d.ts +4 -0
- package/dist/contrib/cacheInMemory.js +47 -0
- package/dist/contrib/cacheInMemory.js.map +1 -0
- package/dist/contrib/cacheInMemory.test.d.ts +3 -0
- package/dist/contrib/cacheInMemory.test.js +44 -0
- package/dist/contrib/cacheInMemory.test.js.map +1 -0
- package/dist/contrib/cacheMomento.d.ts +6 -0
- package/dist/contrib/cacheMomento.js +43 -0
- package/dist/contrib/cacheMomento.js.map +1 -0
- package/dist/contrib/cacheMomento.test.d.ts +3 -0
- package/dist/contrib/cacheMomento.test.js +64 -0
- package/dist/contrib/cacheMomento.test.js.map +1 -0
- package/dist/contrib/dynamodbDocClientInit.d.ts +8 -0
- package/dist/contrib/dynamodbDocClientInit.js +67 -0
- package/dist/contrib/dynamodbDocClientInit.js.map +1 -0
- package/dist/contrib/dynamodbDocClientInit.test.d.ts +3 -0
- package/dist/contrib/dynamodbDocClientInit.test.js +52 -0
- package/dist/contrib/dynamodbDocClientInit.test.js.map +1 -0
- package/dist/contrib/envValidator.d.ts +7 -0
- package/dist/contrib/envValidator.js +45 -0
- package/dist/contrib/envValidator.js.map +1 -0
- package/dist/contrib/envValidator.test.d.ts +7 -0
- package/dist/contrib/envValidator.test.js +57 -0
- package/dist/contrib/envValidator.test.js.map +1 -0
- package/dist/contrib/headers-normalizer/index.d.ts +6 -0
- package/dist/contrib/headers-normalizer/index.js +34 -0
- package/dist/contrib/headers-normalizer/index.js.map +1 -0
- package/dist/contrib/headers-normalizer/index.test.d.ts +8 -0
- package/dist/contrib/headers-normalizer/index.test.js +72 -0
- package/dist/contrib/headers-normalizer/index.test.js.map +1 -0
- package/dist/contrib/headers-normalizer/lib.d.ts +8 -0
- package/dist/contrib/headers-normalizer/lib.js +79 -0
- package/dist/contrib/headers-normalizer/lib.js.map +1 -0
- package/dist/contrib/headers-normalizer/lib.test.d.ts +3 -0
- package/dist/contrib/headers-normalizer/lib.test.js +100 -0
- package/dist/contrib/headers-normalizer/lib.test.js.map +1 -0
- package/dist/contrib/headers-normalizer/types.d.ts +12 -0
- package/dist/contrib/headers-normalizer/types.js +3 -0
- package/dist/contrib/headers-normalizer/types.js.map +1 -0
- package/dist/contrib/headersValidator.d.ts +10 -0
- package/dist/contrib/headersValidator.js +35 -0
- package/dist/contrib/headersValidator.js.map +1 -0
- package/dist/contrib/headersValidator.test.d.ts +8 -0
- package/dist/contrib/headersValidator.test.js +60 -0
- package/dist/contrib/headersValidator.test.js.map +1 -0
- package/dist/contrib/helmetJsHeaders.d.ts +6 -0
- package/dist/contrib/helmetJsHeaders.js +61 -0
- package/dist/contrib/helmetJsHeaders.js.map +1 -0
- package/dist/contrib/helmetJsHeaders.test.d.ts +3 -0
- package/dist/contrib/helmetJsHeaders.test.js +47 -0
- package/dist/contrib/helmetJsHeaders.test.js.map +1 -0
- package/dist/contrib/identity.d.ts +2 -0
- package/dist/contrib/identity.js +6 -0
- package/dist/contrib/identity.js.map +1 -0
- package/dist/contrib/identity.test.d.ts +3 -0
- package/dist/contrib/identity.test.js +38 -0
- package/dist/contrib/identity.test.js.map +1 -0
- package/dist/contrib/index.d.ts +19 -0
- package/dist/contrib/index.js +46 -0
- package/dist/contrib/index.js.map +1 -0
- package/dist/contrib/jsonBodyParser.d.ts +9 -0
- package/dist/contrib/jsonBodyParser.js +45 -0
- package/dist/contrib/jsonBodyParser.js.map +1 -0
- package/dist/contrib/jsonBodyParser.test.d.ts +3 -0
- package/dist/contrib/jsonBodyParser.test.js +53 -0
- package/dist/contrib/jsonBodyParser.test.js.map +1 -0
- package/dist/contrib/momentoClientInit.d.ts +4 -0
- package/dist/contrib/momentoClientInit.js +33 -0
- package/dist/contrib/momentoClientInit.js.map +1 -0
- package/dist/contrib/momentoClientInit.test.d.ts +3 -0
- package/dist/contrib/momentoClientInit.test.js +48 -0
- package/dist/contrib/momentoClientInit.test.js.map +1 -0
- package/dist/contrib/path-token-authorizer/index.d.ts +11 -0
- package/dist/contrib/path-token-authorizer/index.js +39 -0
- package/dist/contrib/path-token-authorizer/index.js.map +1 -0
- package/dist/contrib/path-token-authorizer/index.test.d.ts +4 -0
- package/dist/contrib/path-token-authorizer/index.test.js +83 -0
- package/dist/contrib/path-token-authorizer/index.test.js.map +1 -0
- package/dist/contrib/pathParametersValidator.d.ts +10 -0
- package/dist/contrib/pathParametersValidator.js +35 -0
- package/dist/contrib/pathParametersValidator.js.map +1 -0
- package/dist/contrib/pathParametersValidator.test.d.ts +7 -0
- package/dist/contrib/pathParametersValidator.test.js +58 -0
- package/dist/contrib/pathParametersValidator.test.js.map +1 -0
- package/dist/contrib/queryStringValidator.d.ts +10 -0
- package/dist/contrib/queryStringValidator.js +35 -0
- package/dist/contrib/queryStringValidator.js.map +1 -0
- package/dist/contrib/queryStringValidator.test.d.ts +7 -0
- package/dist/contrib/queryStringValidator.test.js +58 -0
- package/dist/contrib/queryStringValidator.test.js.map +1 -0
- package/dist/contrib/requestResponseLogger.d.ts +2 -0
- package/dist/contrib/requestResponseLogger.js +33 -0
- package/dist/contrib/requestResponseLogger.js.map +1 -0
- package/dist/contrib/requestResponseLogger.test.d.ts +1 -0
- package/dist/contrib/requestResponseLogger.test.js +54 -0
- package/dist/contrib/requestResponseLogger.test.js.map +1 -0
- package/dist/contrib/trivial.d.ts +3 -0
- package/dist/contrib/trivial.js +43 -0
- package/dist/contrib/trivial.js.map +1 -0
- package/dist/contrib/trivial.test.d.ts +3 -0
- package/dist/contrib/trivial.test.js +38 -0
- package/dist/contrib/trivial.test.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/HttpApiError.d.ts +7 -0
- package/dist/lib/HttpApiError.js +9 -0
- package/dist/lib/HttpApiError.js.map +1 -0
- package/dist/lib/HttpApiError.test.d.ts +1 -0
- package/dist/lib/HttpApiError.test.js +169 -0
- package/dist/lib/HttpApiError.test.js.map +1 -0
- package/dist/lib/MiddlewareError.d.ts +7 -0
- package/dist/lib/MiddlewareError.js +9 -0
- package/dist/lib/MiddlewareError.js.map +1 -0
- package/dist/lib/MiddlewareError.test.d.ts +1 -0
- package/dist/lib/MiddlewareError.test.js +59 -0
- package/dist/lib/MiddlewareError.test.js.map +1 -0
- package/dist/lib/http.d.ts +27 -0
- package/dist/lib/http.js +51 -0
- package/dist/lib/http.js.map +1 -0
- package/dist/lib/http.test.d.ts +1 -0
- package/dist/lib/http.test.js +74 -0
- package/dist/lib/http.test.js.map +1 -0
- package/dist/test/test-common.d.ts +7 -0
- package/dist/test/test-common.js +52 -0
- package/dist/test/test-common.js.map +1 -0
- package/dist/test/unit/index.test.d.ts +1 -0
- package/dist/test/unit/index.test.js +124 -0
- package/dist/test/unit/index.test.js.map +1 -0
- package/package.json +87 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isMiddlewareError = exports.toMiddlewareError = exports.MiddlewareError = exports.ERROR_TAG = void 0;
|
|
4
|
+
const tiny_error_fp_1 = require("@konker.dev/tiny-error-fp");
|
|
5
|
+
exports.ERROR_TAG = 'MiddlewareError';
|
|
6
|
+
exports.MiddlewareError = (0, tiny_error_fp_1.TinyError)(exports.ERROR_TAG);
|
|
7
|
+
exports.toMiddlewareError = (0, tiny_error_fp_1.toTinyError)(exports.ERROR_TAG, exports.MiddlewareError);
|
|
8
|
+
exports.isMiddlewareError = (0, tiny_error_fp_1.isTinyError)(exports.ERROR_TAG);
|
|
9
|
+
//# sourceMappingURL=MiddlewareError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MiddlewareError.js","sourceRoot":"","sources":["../../src/lib/MiddlewareError.ts"],"names":[],"mappings":";;;AAAA,6DAAgF;AAEnE,QAAA,SAAS,GAAG,iBAA0B,CAAC;AAKvC,QAAA,eAAe,GAAG,IAAA,yBAAS,EAAY,iBAAS,CAAC,CAAC;AAClD,QAAA,iBAAiB,GAAG,IAAA,2BAAW,EAAY,iBAAS,EAAE,uBAAe,CAAC,CAAC;AACvE,QAAA,iBAAiB,GAAG,IAAA,2BAAW,EAAC,iBAAS,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,59 @@
|
|
|
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 unit = __importStar(require("./MiddlewareError"));
|
|
27
|
+
describe('error', () => {
|
|
28
|
+
describe('toMiddlewareError', () => {
|
|
29
|
+
it('should work as expected with an Error instance input', () => {
|
|
30
|
+
const error = new Error('BOOM!');
|
|
31
|
+
const actual = unit.toMiddlewareError(error);
|
|
32
|
+
expect(actual.toObject()).toStrictEqual({
|
|
33
|
+
_tag: unit.ERROR_TAG,
|
|
34
|
+
name: 'Error',
|
|
35
|
+
message: 'BOOM!',
|
|
36
|
+
statusCode: -1,
|
|
37
|
+
codeTag: 'GENERAL',
|
|
38
|
+
cause: error,
|
|
39
|
+
internal: true,
|
|
40
|
+
stack: expect.stringContaining('Error'),
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
it('should work as expected with a non-Error input', () => {
|
|
44
|
+
const error = 'BOOM!';
|
|
45
|
+
const actual = unit.toMiddlewareError(error);
|
|
46
|
+
expect(actual.toObject()).toStrictEqual({
|
|
47
|
+
_tag: unit.ERROR_TAG,
|
|
48
|
+
name: 'MiddlewareError',
|
|
49
|
+
message: 'BOOM!',
|
|
50
|
+
statusCode: -1,
|
|
51
|
+
codeTag: 'GENERAL',
|
|
52
|
+
cause: error,
|
|
53
|
+
internal: true,
|
|
54
|
+
stack: expect.stringContaining('Error'),
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
//# sourceMappingURL=MiddlewareError.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MiddlewareError.test.js","sourceRoot":"","sources":["../../src/lib/MiddlewareError.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wDAA0C;AAE1C,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,aAAa,CAAC;gBACtC,IAAI,EAAE,IAAI,CAAC,SAAS;gBACpB,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,CAAC,CAAC;gBACd,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC;aACxC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,KAAK,GAAG,OAAO,CAAC;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,aAAa,CAAC;gBACtC,IAAI,EAAE,IAAI,CAAC,SAAS;gBACpB,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,CAAC,CAAC;gBACd,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC;aACxC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as P from '@konker.dev/effect-ts-prelude';
|
|
2
|
+
export declare const UNKNOWN_STRING_EFFECT: <E, R>() => P.Effect.Effect<string, E, R>;
|
|
3
|
+
export declare const ResponseHeaders: P.Schema.Record$<typeof P.Schema.String, P.Schema.Union<[typeof P.Schema.String, typeof P.Schema.Number, typeof P.Schema.Boolean]>>;
|
|
4
|
+
export type ResponseHeaders = P.Schema.Schema.Type<typeof ResponseHeaders>;
|
|
5
|
+
export declare const OptionalResponseHeaders: P.Schema.Union<[P.Schema.Record$<typeof P.Schema.String, P.Schema.Union<[typeof P.Schema.String, typeof P.Schema.Number, typeof P.Schema.Boolean]>>, typeof P.Schema.Undefined]>;
|
|
6
|
+
export type OptionalResponseHeaders = P.Schema.Schema.Type<typeof OptionalResponseHeaders>;
|
|
7
|
+
export declare const BaseResponse: P.Schema.SchemaClass<{
|
|
8
|
+
readonly statusCode?: number | undefined;
|
|
9
|
+
readonly headers?: {
|
|
10
|
+
readonly [x: string]: string | number | boolean;
|
|
11
|
+
} | undefined;
|
|
12
|
+
readonly isBase64Encoded?: boolean | undefined;
|
|
13
|
+
readonly body?: unknown;
|
|
14
|
+
}, {
|
|
15
|
+
readonly statusCode?: number | undefined;
|
|
16
|
+
readonly headers?: {
|
|
17
|
+
readonly [x: string]: string | number | boolean;
|
|
18
|
+
} | undefined;
|
|
19
|
+
readonly isBase64Encoded?: boolean | undefined;
|
|
20
|
+
readonly body?: unknown;
|
|
21
|
+
}, never>;
|
|
22
|
+
export type BaseResponse = P.Schema.Schema.Type<typeof BaseResponse>;
|
|
23
|
+
export declare function DEFAULT_500_RESPONSE(): {
|
|
24
|
+
statusCode: number;
|
|
25
|
+
body: string;
|
|
26
|
+
};
|
|
27
|
+
export declare function CHAOS<T>(_: T): T;
|
package/dist/lib/http.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
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.BaseResponse = exports.OptionalResponseHeaders = exports.ResponseHeaders = exports.UNKNOWN_STRING_EFFECT = void 0;
|
|
27
|
+
exports.DEFAULT_500_RESPONSE = DEFAULT_500_RESPONSE;
|
|
28
|
+
exports.CHAOS = CHAOS;
|
|
29
|
+
const P = __importStar(require("@konker.dev/effect-ts-prelude"));
|
|
30
|
+
const UNKNOWN_STRING_EFFECT = () => P.Effect.succeed('UNKNOWN');
|
|
31
|
+
exports.UNKNOWN_STRING_EFFECT = UNKNOWN_STRING_EFFECT;
|
|
32
|
+
exports.ResponseHeaders = P.Schema.Record(P.Schema.String, P.Schema.Union(P.Schema.String, P.Schema.Number, P.Schema.Boolean));
|
|
33
|
+
exports.OptionalResponseHeaders = P.Schema.Union(exports.ResponseHeaders, P.Schema.Undefined);
|
|
34
|
+
exports.BaseResponse = P.Schema.partial(P.Schema.Struct({
|
|
35
|
+
statusCode: P.Schema.Number,
|
|
36
|
+
headers: exports.ResponseHeaders,
|
|
37
|
+
isBase64Encoded: P.Schema.Union(P.Schema.Boolean, P.Schema.Undefined),
|
|
38
|
+
body: P.Schema.Unknown,
|
|
39
|
+
}));
|
|
40
|
+
function DEFAULT_500_RESPONSE() {
|
|
41
|
+
return {
|
|
42
|
+
statusCode: 500,
|
|
43
|
+
body: '"InternalServerError"',
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
// eslint-disable-next-line fp/no-nil
|
|
47
|
+
function CHAOS(_) {
|
|
48
|
+
// eslint-disable-next-line fp/no-throw
|
|
49
|
+
throw new Error('BOOM');
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=http.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/lib/http.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,oDAKC;AAGD,sBAGC;AAlCD,iEAAmD;AAE5C,MAAM,qBAAqB,GAAG,GAAwC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAA/F,QAAA,qBAAqB,yBAA0E;AAE/F,QAAA,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAC5C,CAAC,CAAC,MAAM,CAAC,MAAM,EACf,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CACnE,CAAC;AAGW,QAAA,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAe,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAG9E,QAAA,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAC1C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IACd,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;IAC3B,OAAO,EAAE,uBAAe;IACxB,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;IACrE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO;CACvB,CAAC,CACH,CAAC;AAGF,SAAgB,oBAAoB;IAClC,OAAO;QACL,UAAU,EAAE,GAAG;QACf,IAAI,EAAE,uBAAuB;KAC9B,CAAC;AACJ,CAAC;AAED,qCAAqC;AACrC,SAAgB,KAAK,CAAI,CAAI;IAC3B,uCAAuC;IACvC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,74 @@
|
|
|
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 unit = __importStar(require("./http"));
|
|
29
|
+
describe('aws-api-gateway-processor/lib', () => {
|
|
30
|
+
describe('UNKNOWN_STRING_EFFECT', () => {
|
|
31
|
+
it('should work as expected', () => {
|
|
32
|
+
expect(P.Effect.runSync(unit.UNKNOWN_STRING_EFFECT())).toStrictEqual('UNKNOWN');
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
describe('ResponseHeaders', () => {
|
|
36
|
+
it('should work as expected', () => {
|
|
37
|
+
expect(P.pipe({ 'content-type': 'text/plain' }, P.Schema.decode(unit.ResponseHeaders))).toStrictEqual(P.Either.right({
|
|
38
|
+
'content-type': 'text/plain',
|
|
39
|
+
}));
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
describe('OptionalResponseHeaders', () => {
|
|
43
|
+
it('should work as expected', () => {
|
|
44
|
+
expect(P.pipe({ 'content-type': 'text/plain' }, P.Schema.decode(unit.OptionalResponseHeaders))).toStrictEqual(P.Either.right({
|
|
45
|
+
'content-type': 'text/plain',
|
|
46
|
+
}));
|
|
47
|
+
expect(P.pipe(undefined, P.Schema.decode(unit.OptionalResponseHeaders))).toStrictEqual(P.Either.right(undefined));
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
describe('BaseResponse', () => {
|
|
51
|
+
it('should work as expected', () => {
|
|
52
|
+
expect(P.pipe({ statusCode: 200, headers: { 'content-type': 'text/plain' }, isBase64Encoded: false, body: 'abc' }, P.Schema.decode(unit.BaseResponse))).toStrictEqual(P.Either.right({
|
|
53
|
+
statusCode: 200,
|
|
54
|
+
headers: { 'content-type': 'text/plain' },
|
|
55
|
+
isBase64Encoded: false,
|
|
56
|
+
body: 'abc',
|
|
57
|
+
}));
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
describe('DEFAULT_500_RESPONSE', () => {
|
|
61
|
+
it('should work as expected', () => {
|
|
62
|
+
expect(unit.DEFAULT_500_RESPONSE()).toStrictEqual({
|
|
63
|
+
statusCode: 500,
|
|
64
|
+
body: '"InternalServerError"',
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
describe('CHAOS', () => {
|
|
69
|
+
it('should work as expected', () => {
|
|
70
|
+
expect(() => unit.CHAOS('Tag')).toThrow('BOOM');
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
//# sourceMappingURL=http.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.test.js","sourceRoot":"","sources":["../../src/lib/http.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as P from '@konker.dev/effect-ts-prelude';
|
|
2
|
+
import type { BaseResponse } from '../lib/http';
|
|
3
|
+
export type TestDeps = any;
|
|
4
|
+
export declare const TestDeps: P.Context.Tag<any, any>;
|
|
5
|
+
export declare function echoCoreIn<I, E = never, R = never>(i: I): P.Effect.Effect<I, E, R>;
|
|
6
|
+
export declare const echoCoreInDeps: <I, E, R>(Deps: P.Context.Tag<R, R>) => (i: I) => P.Effect.Effect<unknown, E, R>;
|
|
7
|
+
export declare function http200CoreIn<I>(_i: I): P.Effect.Effect<BaseResponse>;
|
|
@@ -0,0 +1,52 @@
|
|
|
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.echoCoreInDeps = exports.TestDeps = void 0;
|
|
27
|
+
exports.echoCoreIn = echoCoreIn;
|
|
28
|
+
exports.http200CoreIn = http200CoreIn;
|
|
29
|
+
const P = __importStar(require("@konker.dev/effect-ts-prelude"));
|
|
30
|
+
exports.TestDeps = P.Context.GenericTag('Deps');
|
|
31
|
+
// TODO: type annotation comment
|
|
32
|
+
function echoCoreIn(i) {
|
|
33
|
+
return P.Effect.succeed(i);
|
|
34
|
+
}
|
|
35
|
+
// TODO: type annotation comment
|
|
36
|
+
const echoCoreInDeps = (Deps) => (i) => {
|
|
37
|
+
return P.pipe(Deps, P.Effect.map((deps) => ({
|
|
38
|
+
...i,
|
|
39
|
+
...deps,
|
|
40
|
+
})));
|
|
41
|
+
};
|
|
42
|
+
exports.echoCoreInDeps = echoCoreInDeps;
|
|
43
|
+
// TODO: type annotation comment
|
|
44
|
+
function http200CoreIn(_i) {
|
|
45
|
+
return P.Effect.succeed({
|
|
46
|
+
statusCode: 200,
|
|
47
|
+
headers: { QUX: 'qux_value' },
|
|
48
|
+
body: JSON.stringify({ result: 'OK' }),
|
|
49
|
+
isBase64Encoded: false,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=test-common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-common.js","sourceRoot":"","sources":["../../src/test/test-common.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,gCAEC;AAgBD,sCAOC;AAjCD,iEAAmD;AAKtC,QAAA,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAM,MAAM,CAAC,CAAC;AAE1D,gCAAgC;AAChC,SAAgB,UAAU,CAA0B,CAAI;IACtD,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,gCAAgC;AACzB,MAAM,cAAc,GACzB,CAAU,IAAyB,EAAE,EAAE,CACvC,CAAC,CAAI,EAAkC,EAAE;IACvC,OAAO,CAAC,CAAC,IAAI,CACX,IAAI,EACJ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACtB,GAAG,CAAC;QACJ,GAAG,IAAI;KACR,CAAC,CAAC,CACJ,CAAC;AACJ,CAAC,CAAC;AAVS,QAAA,cAAc,kBAUvB;AAEJ,gCAAgC;AAChC,SAAgB,aAAa,CAAI,EAAK;IACpC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QACtB,UAAU,EAAE,GAAG;QACf,OAAO,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE;QAC7B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACtC,eAAe,EAAE,KAAK;KACvB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,124 @@
|
|
|
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 aws_client_effect_dynamodb_1 = require("@konker.dev/aws-client-effect-dynamodb");
|
|
29
|
+
const test_1 = require("@konker.dev/momento-cache-client-effect/dist/lib/test");
|
|
30
|
+
const JsonHashCacheKeyResolver_1 = require("@konker.dev/tiny-cache-fp/dist/lib/CacheKeyResolver/JsonHashCacheKeyResolver");
|
|
31
|
+
const MomentoStringCacheJson_1 = require("@konker.dev/tiny-cache-fp/dist/momento/MomentoStringCacheJson");
|
|
32
|
+
const M = __importStar(require("../../contrib"));
|
|
33
|
+
const index_test_1 = require("../../contrib/path-token-authorizer/index.test");
|
|
34
|
+
const TestObject = P.Schema.Struct({
|
|
35
|
+
foo: P.Schema.String,
|
|
36
|
+
bar: P.Schema.Number,
|
|
37
|
+
baz: P.Schema.Boolean,
|
|
38
|
+
});
|
|
39
|
+
const Env = P.Schema.Struct({
|
|
40
|
+
MOMENTO_AUTH_TOKEN: P.Schema.String,
|
|
41
|
+
});
|
|
42
|
+
const Headers = P.Schema.Struct({
|
|
43
|
+
'content-type': P.Schema.String,
|
|
44
|
+
});
|
|
45
|
+
const PathParams = P.Schema.Struct({
|
|
46
|
+
id: P.Schema.String,
|
|
47
|
+
token: P.Schema.String,
|
|
48
|
+
});
|
|
49
|
+
const QueryParams = P.Schema.Struct({
|
|
50
|
+
q: P.Schema.String,
|
|
51
|
+
});
|
|
52
|
+
describe('unit tests', () => {
|
|
53
|
+
let oldEnv;
|
|
54
|
+
let __cache;
|
|
55
|
+
beforeAll(() => {
|
|
56
|
+
oldEnv = process.env;
|
|
57
|
+
process.env = {
|
|
58
|
+
MOMENTO_AUTH_TOKEN: 'TEST_MOMENTO_AUTH_TOKEN',
|
|
59
|
+
};
|
|
60
|
+
__cache = {};
|
|
61
|
+
});
|
|
62
|
+
afterAll(() => {
|
|
63
|
+
process.env = oldEnv;
|
|
64
|
+
});
|
|
65
|
+
it('should work as expected with the kitchen sink', async () => {
|
|
66
|
+
function echoCore(i) {
|
|
67
|
+
return P.Effect.succeed({
|
|
68
|
+
statusCode: 200,
|
|
69
|
+
headers: { 'content-type': 'application/json; charset=UTF-8' },
|
|
70
|
+
multiValueHeaders: {},
|
|
71
|
+
isBase64Encoded: false,
|
|
72
|
+
body: {
|
|
73
|
+
foo: i.validatedBody.foo.toUpperCase(),
|
|
74
|
+
bar: i.validatedBody.bar * 2,
|
|
75
|
+
baz: !i.validatedBody.baz,
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
const stack = P.pipe(echoCore, M.dynamodbDocClientInit.middleware({ region: 'eu-west-1' }), M.bodyValidator.middleware(TestObject), M.jsonBodyParser.middleware(), M.base64BodyDecoder.middleware(), M.headersValidator.middleware(Headers), M.headersNormalizer.middleware(), M.helmetJsHeaders.middleware(), M.queryStringValidator.middleware(QueryParams), M.pathTokenAuthorizer.middleware(), M.pathParametersValidator.middleware(PathParams), M.identity.middleware(), M.trivial.middleware(), M.awsApiGatewayProcessor.middleware(), M.requestResponseLogger.middleware(), M.cacheInMemory.middleware((0, JsonHashCacheKeyResolver_1.JsonHashCacheKeyResolver)()), M.cacheMomento.middleware((0, JsonHashCacheKeyResolver_1.JsonHashCacheKeyResolver)(), (0, MomentoStringCacheJson_1.MomentoStringCacheJson)()), M.momentoClientInit.middleware({}), M.envValidator.middleware(Env));
|
|
80
|
+
const actual1 = stack({
|
|
81
|
+
version: 'string',
|
|
82
|
+
routeKey: 'string',
|
|
83
|
+
rawPath: 'string',
|
|
84
|
+
rawQueryString: 'string',
|
|
85
|
+
// cookies?: [],
|
|
86
|
+
headers: { 'content-type': 'application/json; charset=UTF-8' },
|
|
87
|
+
queryStringParameters: {
|
|
88
|
+
q: 'wtf',
|
|
89
|
+
},
|
|
90
|
+
requestContext: {},
|
|
91
|
+
body: '{ "foo": "abc", "bar": 123, "baz": true }',
|
|
92
|
+
pathParameters: {
|
|
93
|
+
id: 'test-id',
|
|
94
|
+
token: 'test-secret-token',
|
|
95
|
+
},
|
|
96
|
+
isBase64Encoded: false,
|
|
97
|
+
// stageVariables?: {},
|
|
98
|
+
});
|
|
99
|
+
await expect(P.Effect.runPromise(P.pipe(actual1, (x) => x, aws_client_effect_dynamodb_1.defaultDynamoDBDocClientFactoryDeps, (x) => x, (0, test_1.mockMomentoClientFactoryDeps)(__cache), (x) => x, index_test_1.mockPathTokenAuthorizerDeps))).resolves.toStrictEqual({
|
|
100
|
+
statusCode: 200,
|
|
101
|
+
headers: {
|
|
102
|
+
'Content-Type': 'application/json; charset=UTF-8',
|
|
103
|
+
'Content-Security-Policy': "default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests",
|
|
104
|
+
'Cross-Origin-Embedder-Policy': 'require-corp',
|
|
105
|
+
'Cross-Origin-Opener-Policy': 'same-origin',
|
|
106
|
+
'Cross-Origin-Resource-Policy': 'same-origin',
|
|
107
|
+
'Origin-Agent-Cluster': '?1',
|
|
108
|
+
'Referrer-Policy': 'no-referrer',
|
|
109
|
+
'Strict-Transport-Security': 'max-age=15552000; includeSubDomains',
|
|
110
|
+
'X-Content-Type-Options': 'nosniff',
|
|
111
|
+
'X-DNS-Prefetch-Control': 'off',
|
|
112
|
+
'X-Download-Options': 'noopen',
|
|
113
|
+
'X-Frame-Options': 'SAMEORIGIN',
|
|
114
|
+
'X-Permitted-Cross-Domain-Policies': 'none',
|
|
115
|
+
'X-XSS-Protection': '0',
|
|
116
|
+
},
|
|
117
|
+
multiValueHeaders: {},
|
|
118
|
+
isBase64Encoded: false,
|
|
119
|
+
body: '{"foo":"ABC","bar":246,"baz":false}',
|
|
120
|
+
});
|
|
121
|
+
expect(__cache).toHaveProperty('default-cache_859c0c5a2456fe98ebba3ead703332dd');
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/test/unit/index.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@konker.dev/middleware-fp",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"author": "Konrad Markus <mail@konker.dev>",
|
|
5
|
+
"description": "Type safe middleware system based on Effect-ts",
|
|
6
|
+
"license": "ISC",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist/**/*",
|
|
9
|
+
"!dist/**/*.test.*"
|
|
10
|
+
],
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "https://github.com/konkerdotdev/middleware-fp"
|
|
14
|
+
},
|
|
15
|
+
"keywords": [
|
|
16
|
+
"middleware",
|
|
17
|
+
"node",
|
|
18
|
+
"typescript",
|
|
19
|
+
"functional-programming",
|
|
20
|
+
"effect-ts"
|
|
21
|
+
],
|
|
22
|
+
"peerDependencies": {
|
|
23
|
+
"@gomomento/sdk": "^1.95.0",
|
|
24
|
+
"@aws-sdk/client-dynamodb": "^3.635.0",
|
|
25
|
+
"@konker.dev/aws-client-effect-dynamodb": "^0.0.3",
|
|
26
|
+
"@konker.dev/momento-cache-client-effect": "^0.0.7",
|
|
27
|
+
"@konker.dev/tiny-auth-utils-fp": "^0.0.2",
|
|
28
|
+
"aws-lambda": "^1.0.7"
|
|
29
|
+
},
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"@effect/schema": "^0.68.26",
|
|
32
|
+
"@konker.dev/effect-ts-prelude": "^0.0.16",
|
|
33
|
+
"@konker.dev/tiny-cache-fp": "^0.0.5",
|
|
34
|
+
"@konker.dev/tiny-error-fp": "^0.0.7",
|
|
35
|
+
"effect": "^3.5.6",
|
|
36
|
+
"lesslog": "^0.2.7"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@effect/language-service": "^0.0.21",
|
|
40
|
+
"@types/aws-lambda": "^8.10.143",
|
|
41
|
+
"@types/jest": "^29.5.12",
|
|
42
|
+
"@types/node": "^20.14.11",
|
|
43
|
+
"@typescript-eslint/eslint-plugin": "^6.21.0",
|
|
44
|
+
"@typescript-eslint/parser": "^6.21.0",
|
|
45
|
+
"@typescript-eslint/typescript-estree": "^6.21.0",
|
|
46
|
+
"eslint": "^8.57.0",
|
|
47
|
+
"eslint-config-prettier": "^9.1.0",
|
|
48
|
+
"eslint-import-resolver-typescript": "^3.6.1",
|
|
49
|
+
"eslint-plugin-deprecation": "^2.0.0",
|
|
50
|
+
"eslint-plugin-fp": "^2.3.0",
|
|
51
|
+
"eslint-plugin-import": "^2.29.1",
|
|
52
|
+
"eslint-plugin-json": "^3.1.0",
|
|
53
|
+
"eslint-plugin-prettier": "^5.2.1",
|
|
54
|
+
"eslint-plugin-simple-import-sort": "^10.0.0",
|
|
55
|
+
"eslint-plugin-sort-destructure-keys": "^1.6.0",
|
|
56
|
+
"gulp": "^4.0.2",
|
|
57
|
+
"husky": "^8.0.3",
|
|
58
|
+
"jest": "^29.7.0",
|
|
59
|
+
"leasot": "^13.3.0",
|
|
60
|
+
"madge": "^6.1.0",
|
|
61
|
+
"npx": "^10.2.2",
|
|
62
|
+
"prettier": "^3.3.3",
|
|
63
|
+
"ts-jest": "^29.2.3",
|
|
64
|
+
"ts-node": "^10.9.2",
|
|
65
|
+
"type-coverage": "^2.29.1",
|
|
66
|
+
"typescript": "^5.5.4"
|
|
67
|
+
},
|
|
68
|
+
"staticFiles": [],
|
|
69
|
+
"scripts": {
|
|
70
|
+
"test": "jest --no-cache -w 4",
|
|
71
|
+
"clean": "rm -rf dist && rm -rf coverage && rm -f tsconfig.tsbuildinfo",
|
|
72
|
+
"typecheck": "tsc --noEmit",
|
|
73
|
+
"build": "pnpm run clean && tsc && gulp copy-static",
|
|
74
|
+
"type-coverage-check": "type-coverage --detail --at-least 99 --ignore-files **/*.test.ts --ignore-files src/test/*",
|
|
75
|
+
"circular-check": "madge --extensions ts --circular --no-color --no-spinner --warning --ts-config ./tsconfig.json src",
|
|
76
|
+
"eslint-check": "eslint --max-warnings=0 '**/*.{ts,js,json}'",
|
|
77
|
+
"fixme-check": "leasot --exit-nicely --skip-unsupported --ignore node_modules src",
|
|
78
|
+
"eslint-fix": "npx eslint --fix||true",
|
|
79
|
+
"prettier-check": "npx prettier --check --ignore-path .gitignore --ignore-path .prettierignore '**/*.{css,html,js,ts,json,md,yaml,yml}'",
|
|
80
|
+
"prettier-fix": "pnpm run prettier-check --write",
|
|
81
|
+
"lint-check": "pnpm run eslint-check && pnpm run prettier-check && pnpm run circular-check && pnpm run fixme-check",
|
|
82
|
+
"lint-fix": "pnpm run eslint-fix && pnpm run prettier-fix",
|
|
83
|
+
"pre-push": "pnpm run lint-check && pnpm run typecheck",
|
|
84
|
+
"ci": "pnpm run lint-check && pnpm run typecheck && pnpm run type-coverage-check && pnpm run test && pnpm run build && pnpm run fixme-check",
|
|
85
|
+
"cd": "pnpm run build && pnpm publish --access public"
|
|
86
|
+
}
|
|
87
|
+
}
|