@effect-app/infra 0.19.0 → 0.20.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.
- package/CHANGELOG.md +25 -0
- package/_cjs/_ext/Array.cjs +2 -3
- package/_cjs/_ext/Array.cjs.map +1 -1
- package/_cjs/api/codec.cjs +5 -4
- package/_cjs/api/codec.cjs.map +1 -1
- package/_cjs/api/defaultErrorHandler.cjs.map +1 -1
- package/_cjs/api/express/schema/requestHandler.cjs +27 -27
- package/_cjs/api/express/schema/requestHandler.cjs.map +1 -1
- package/_cjs/api/express/schema/routing.cjs +8 -7
- package/_cjs/api/express/schema/routing.cjs.map +1 -1
- package/_cjs/api/routing.cjs +28 -28
- package/_cjs/api/routing.cjs.map +1 -1
- package/_cjs/errorReporter.cjs +2 -1
- package/_cjs/errorReporter.cjs.map +1 -1
- package/_cjs/filter/{types/index.cjs → types.cjs} +5 -16
- package/_cjs/filter/types.cjs.map +1 -0
- package/_cjs/services/Emailer/Sendgrid.cjs +7 -6
- package/_cjs/services/Emailer/Sendgrid.cjs.map +1 -1
- package/_cjs/services/Operations/live.cjs +25 -25
- package/_cjs/services/Operations/live.cjs.map +1 -1
- package/_cjs/services/QueueMaker/errors.cjs +6 -6
- package/_cjs/services/QueueMaker/errors.cjs.map +1 -1
- package/_cjs/services/QueueMaker/memQueue.cjs +19 -19
- package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
- package/_cjs/services/QueueMaker/sbqueue.cjs +10 -9
- package/_cjs/services/QueueMaker/sbqueue.cjs.map +1 -1
- package/_cjs/services/Repository.cjs +15 -15
- package/_cjs/services/Repository.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos.cjs +15 -15
- package/_cjs/services/Store/Cosmos.cjs.map +1 -1
- package/_cjs/services/Store/Disk.cjs +7 -6
- package/_cjs/services/Store/Disk.cjs.map +1 -1
- package/_cjs/services/Store/Memory.cjs +16 -15
- package/_cjs/services/Store/Memory.cjs.map +1 -1
- package/_cjs/services/Store/Redis.cjs +8 -7
- package/_cjs/services/Store/Redis.cjs.map +1 -1
- package/_cjs/services/Store/index.cjs +6 -6
- package/_cjs/services/Store/index.cjs.map +1 -1
- package/_cjs/services/Store/service.cjs.map +1 -1
- package/_cjs/services/simpledb/diskdb.cjs +2 -1
- package/_cjs/services/simpledb/diskdb.cjs.map +1 -1
- package/_cjs/services/simpledb/memdb.cjs +1 -1
- package/_cjs/services/simpledb/memdb.cjs.map +1 -1
- package/_cjs/services/simpledb/redisdb.cjs +1 -1
- package/_cjs/services/simpledb/redisdb.cjs.map +1 -1
- package/_cjs/services/simpledb/shared.cjs +4 -3
- package/_cjs/services/simpledb/shared.cjs.map +1 -1
- package/_cjs/services/simpledb/simpledb.cjs +1 -1
- package/_cjs/services/simpledb/simpledb.cjs.map +1 -1
- package/_src/api/codec.ts +1 -1
- package/_src/api/defaultErrorHandler.ts +7 -7
- package/_src/api/express/routing.ts.bak +12 -12
- package/_src/api/express/schema/requestHandler.ts +1 -1
- package/_src/api/routing.ts +7 -7
- package/_src/filter/types.ts +6 -0
- package/_src/services/Emailer/Sendgrid.ts +1 -1
- package/_src/services/Operations/live.ts +7 -7
- package/_src/services/QueueMaker/memQueue.ts +2 -2
- package/_src/services/Store/Cosmos.ts +4 -4
- package/_src/services/Store/Disk.ts +1 -1
- package/_src/services/Store/service.ts +1 -1
- package/_src/services/simpledb/shared.ts +2 -2
- package/_src/services/simpledb/simpledb.ts +1 -1
- package/dist/_ext/Array.js +3 -4
- package/dist/api/codec.js +6 -5
- package/dist/api/defaultErrorHandler.js +1 -1
- package/dist/api/express/schema/requestHandler.js +33 -33
- package/dist/api/express/schema/routing.js +9 -8
- package/dist/api/routing.js +29 -29
- package/dist/errorReporter.js +3 -2
- package/dist/filter/types.d.ts +5 -0
- package/dist/filter/types.d.ts.map +1 -0
- package/dist/filter/types.js +6 -0
- package/dist/services/Emailer/Sendgrid.d.ts +12 -0
- package/dist/services/Emailer/Sendgrid.d.ts.map +1 -1
- package/dist/services/Emailer/Sendgrid.js +8 -7
- package/dist/services/Operations/live.js +31 -31
- package/dist/services/QueueMaker/errors.js +7 -7
- package/dist/services/QueueMaker/memQueue.js +18 -18
- package/dist/services/QueueMaker/sbqueue.js +10 -9
- package/dist/services/Repository.js +16 -16
- package/dist/services/Store/Cosmos.js +12 -12
- package/dist/services/Store/Disk.js +8 -7
- package/dist/services/Store/Memory.js +18 -17
- package/dist/services/Store/Redis.js +9 -8
- package/dist/services/Store/index.js +7 -7
- package/dist/services/Store/service.js +1 -1
- package/dist/services/simpledb/diskdb.js +3 -2
- package/dist/services/simpledb/memdb.js +2 -2
- package/dist/services/simpledb/redisdb.js +2 -2
- package/dist/services/simpledb/shared.js +5 -4
- package/dist/services/simpledb/simpledb.js +2 -2
- package/package.json +20 -20
- package/_cjs/filter/types/index.cjs.map +0 -1
- package/_src/filter/types/index.ts +0 -5
- package/dist/filter/types/index.d.ts +0 -6
- package/dist/filter/types/index.d.ts.map +0 -1
- package/dist/filter/types/index.js +0 -6
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "@effect/io/Effect";
|
|
2
|
-
import * as tsplus_module_2 from "@effect/
|
|
3
|
-
import * as tsplus_module_3 from "@effect/io/
|
|
4
|
-
import * as tsplus_module_4 from "@effect
|
|
5
|
-
import * as tsplus_module_5 from "@
|
|
6
|
-
import * as tsplus_module_6 from "@
|
|
2
|
+
import * as tsplus_module_2 from "@effect-app/core/Effect";
|
|
3
|
+
import * as tsplus_module_3 from "@effect/io/Exit";
|
|
4
|
+
import * as tsplus_module_4 from "@effect/io/Cause";
|
|
5
|
+
import * as tsplus_module_5 from "@effect-app/core/Function";
|
|
6
|
+
import * as tsplus_module_6 from "@fp-ts/core/Option";
|
|
7
7
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
8
8
|
/* eslint-disable @typescript-eslint/ban-types */
|
|
9
9
|
import * as MO from "@effect-app/schema";
|
|
@@ -31,35 +31,35 @@ export function decodeErrors(x) {
|
|
|
31
31
|
export function parseRequestParams(parsers) {
|
|
32
32
|
return ({ body, cookies, headers, params, query }) => tsplus_module_1.flatMap(tsplus_module_1.struct({
|
|
33
33
|
body: tsplus_module_1.flatMap(tsplus_module_1.exit(parsers
|
|
34
|
-
.parseBody(body)), _ =>
|
|
34
|
+
.parseBody(body)), _ => tsplus_module_3.isFailure(_) && !tsplus_module_4.isFailure(_.cause)
|
|
35
35
|
? tsplus_module_1.failCauseSync(() => _.cause)
|
|
36
|
-
:
|
|
36
|
+
: tsplus_module_2.effectSync(() => tsplus_module_3.isSuccess(_)
|
|
37
37
|
? { _tag: "Success", value: _.value }
|
|
38
|
-
: { _tag: "Failure", errors:
|
|
38
|
+
: { _tag: "Failure", errors: tsplus_module_4.failures(_.cause) })),
|
|
39
39
|
cookie: tsplus_module_1.flatMap(tsplus_module_1.exit(parsers
|
|
40
|
-
.parseCookie(cookies)), _ =>
|
|
40
|
+
.parseCookie(cookies)), _ => tsplus_module_3.isFailure(_) && !tsplus_module_4.isFailure(_.cause)
|
|
41
41
|
? tsplus_module_1.failCauseSync(() => _.cause)
|
|
42
|
-
:
|
|
42
|
+
: tsplus_module_2.effectSync(() => tsplus_module_3.isSuccess(_)
|
|
43
43
|
? { _tag: "Success", value: _.value }
|
|
44
|
-
: { _tag: "Failure", errors:
|
|
44
|
+
: { _tag: "Failure", errors: tsplus_module_4.failures(_.cause) })),
|
|
45
45
|
headers: tsplus_module_1.flatMap(tsplus_module_1.exit(parsers
|
|
46
|
-
.parseHeaders(headers)), _ =>
|
|
46
|
+
.parseHeaders(headers)), _ => tsplus_module_3.isFailure(_) && !tsplus_module_4.isFailure(_.cause)
|
|
47
47
|
? tsplus_module_1.failCauseSync(() => _.cause)
|
|
48
|
-
:
|
|
48
|
+
: tsplus_module_2.effectSync(() => tsplus_module_3.isSuccess(_)
|
|
49
49
|
? { _tag: "Success", value: _.value }
|
|
50
|
-
: { _tag: "Failure", errors:
|
|
50
|
+
: { _tag: "Failure", errors: tsplus_module_4.failures(_.cause) })),
|
|
51
51
|
query: tsplus_module_1.flatMap(tsplus_module_1.exit(parsers
|
|
52
|
-
.parseQuery(query)), _ =>
|
|
52
|
+
.parseQuery(query)), _ => tsplus_module_3.isFailure(_) && !tsplus_module_4.isFailure(_.cause)
|
|
53
53
|
? tsplus_module_1.failCauseSync(() => _.cause)
|
|
54
|
-
:
|
|
54
|
+
: tsplus_module_2.effectSync(() => tsplus_module_3.isSuccess(_)
|
|
55
55
|
? { _tag: "Success", value: _.value }
|
|
56
|
-
: { _tag: "Failure", errors:
|
|
56
|
+
: { _tag: "Failure", errors: tsplus_module_4.failures(_.cause) })),
|
|
57
57
|
path: tsplus_module_1.flatMap(tsplus_module_1.exit(parsers
|
|
58
|
-
.parsePath(params)), _ =>
|
|
58
|
+
.parsePath(params)), _ => tsplus_module_3.isFailure(_) && !tsplus_module_4.isFailure(_.cause)
|
|
59
59
|
? tsplus_module_1.failCauseSync(() => _.cause)
|
|
60
|
-
:
|
|
60
|
+
: tsplus_module_2.effectSync(() => tsplus_module_3.isSuccess(_)
|
|
61
61
|
? { _tag: "Success", value: _.value }
|
|
62
|
-
: { _tag: "Failure", errors:
|
|
62
|
+
: { _tag: "Failure", errors: tsplus_module_4.failures(_.cause) }))
|
|
63
63
|
}), ({ body, cookie, headers, path, query }) => {
|
|
64
64
|
const errors = [];
|
|
65
65
|
if (body._tag === "Failure") {
|
|
@@ -80,7 +80,7 @@ export function parseRequestParams(parsers) {
|
|
|
80
80
|
if (errors.length) {
|
|
81
81
|
return tsplus_module_1.fail(new ValidationError(errors));
|
|
82
82
|
}
|
|
83
|
-
return
|
|
83
|
+
return tsplus_module_2.effectSync(() => ({
|
|
84
84
|
body: body.value,
|
|
85
85
|
cookie: cookie.value,
|
|
86
86
|
headers: headers.value,
|
|
@@ -110,23 +110,23 @@ function makeError(type) {
|
|
|
110
110
|
return (e) => [{ type, errors: decodeErrors(e) }];
|
|
111
111
|
}
|
|
112
112
|
export function respondSuccess(encodeResponse) {
|
|
113
|
-
return (req, res) =>
|
|
113
|
+
return (req, res) => tsplus_module_5.flow(encodeResponse(req), tsplus_module_1.succeed, _ => tsplus_module_1.flatMap(_, r => tsplus_module_1.sync(() => {
|
|
114
114
|
r === undefined
|
|
115
115
|
? res.status(204).send()
|
|
116
116
|
: res.status(200).send(r === null ? JSON.stringify(null) : r);
|
|
117
117
|
})));
|
|
118
118
|
}
|
|
119
119
|
export function makeRequestParsers(Request) {
|
|
120
|
-
const ph =
|
|
121
|
-
const parseHeaders = (u) =>
|
|
122
|
-
const pq =
|
|
123
|
-
const parseQuery = (u) =>
|
|
124
|
-
const pb =
|
|
125
|
-
const parseBody = (u) =>
|
|
126
|
-
const pp =
|
|
127
|
-
const parsePath = (u) =>
|
|
128
|
-
const pc =
|
|
129
|
-
const parseCookie = (u) =>
|
|
120
|
+
const ph = tsplus_module_2.effectSync(() => tsplus_module_6.map(MO.condemn)(tsplus_module_6.map(Parser.for)(tsplus_module_6.map(s => s)(tsplus_module_6.fromNullable(Request.Headers)))));
|
|
121
|
+
const parseHeaders = (u) => tsplus_module_2.flatMapOption(ph, d => d(u));
|
|
122
|
+
const pq = tsplus_module_2.effectSync(() => tsplus_module_6.map(MO.condemn)(tsplus_module_6.map(Parser.for)(tsplus_module_6.map(s => s)(tsplus_module_6.fromNullable(Request.Query)))));
|
|
123
|
+
const parseQuery = (u) => tsplus_module_2.flatMapOption(pq, d => d(u));
|
|
124
|
+
const pb = tsplus_module_2.effectSync(() => tsplus_module_6.map(MO.condemn)(tsplus_module_6.map(Parser.for)(tsplus_module_6.map(s => s)(tsplus_module_6.fromNullable(Request.Body)))));
|
|
125
|
+
const parseBody = (u) => tsplus_module_2.flatMapOption(pb, d => d(u));
|
|
126
|
+
const pp = tsplus_module_2.effectSync(() => tsplus_module_6.map(MO.condemn)(tsplus_module_6.map(Parser.for)(tsplus_module_6.map(s => s)(tsplus_module_6.fromNullable(Request.Path)))));
|
|
127
|
+
const parsePath = (u) => tsplus_module_2.flatMapOption(pp, d => d(u));
|
|
128
|
+
const pc = tsplus_module_2.effectSync(() => tsplus_module_6.map(MO.condemn)(tsplus_module_6.map(Parser.for)(tsplus_module_6.map(s => s)(tsplus_module_6.fromNullable(Request.Cookie)))));
|
|
129
|
+
const parseCookie = (u) => tsplus_module_2.flatMapOption(pc, d => d(u));
|
|
130
130
|
return {
|
|
131
131
|
parseBody,
|
|
132
132
|
parseCookie,
|
|
@@ -135,4 +135,4 @@ export function makeRequestParsers(Request) {
|
|
|
135
135
|
parseQuery
|
|
136
136
|
};
|
|
137
137
|
}
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdEhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9fc3JjL2FwaS9leHByZXNzL3NjaGVtYS9yZXF1ZXN0SGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx1REFBdUQ7QUFDdkQsaURBQWlEO0FBQ2pELE9BQU8sS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFeEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQXdDcEQsb0RBQW9EO0FBQ3BELGlDQUFpQztBQUNqQyw2QkFBNkI7QUFDN0IsbUNBQW1DO0FBQ25DLE1BQU07QUFDTixtRUFBbUU7QUFDbkUsaUNBQWlDO0FBQ2pDLE1BQU07QUFDTixxQ0FBcUM7QUFDckMsSUFBSTtBQUNKLE1BQU0sVUFBVSxZQUFZLENBQUMsQ0FBVTtJQUNyQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDWixDQUFDO0FBRUQsaUVBQWlFO0FBQ2pFLCtGQUErRjtBQUMvRiw0QkFBNEI7QUFDNUIsTUFBTTtBQUNOLElBQUk7QUFFSiw4REFBOEQ7QUFDOUQsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxPQUErRDtJQUUvRCxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFtQixFQUFFLEVBQUUsQ0FDcEUsd0JBQUEsdUJBQWM7UUFDWixJQUFJLEVBQUUsNkNBQUEsT0FBTzthQUNWLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FDRixDQUFDLENBQUMsRUFBRSxDQUNoQiwwQkFBQSxDQUFDLENBQVksSUFBSSxDQUFDLDBCQUFBLENBQUMsQ0FBQyxLQUFLLENBQVk7WUFDbkMsQ0FBQyxDQUFFLDhCQUFxQixHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUEyQztZQUNoRixDQUFD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
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "@effect-app/core/Option";
|
|
2
|
-
import * as tsplus_module_2 from "@effect/
|
|
2
|
+
import * as tsplus_module_2 from "@effect-app/core/Effect";
|
|
3
3
|
import * as tsplus_module_3 from "@fp-ts/core/Option";
|
|
4
|
+
import * as tsplus_module_4 from "@effect/io/Effect";
|
|
4
5
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
5
6
|
import * as MO from "@effect-app/schema";
|
|
6
7
|
import { isObjectSchema } from "@effect-app/infra-adapters/Openapi/atlas-plutus";
|
|
@@ -22,11 +23,11 @@ export function makeFromSchema(e) {
|
|
|
22
23
|
const Res = r ? MO.extractSchema(r) : MO.Void;
|
|
23
24
|
// TODO EffectOption.fromNullable(Req.Headers).flatMapOpt(jsonSchema)
|
|
24
25
|
// TODO: use the path vs body etc serialisation also in the Client.
|
|
25
|
-
const makeReqQuerySchema =
|
|
26
|
-
const makeReqHeadersSchema =
|
|
27
|
-
const makeReqCookieSchema =
|
|
28
|
-
const makeReqPathSchema =
|
|
29
|
-
const makeReqBodySchema =
|
|
26
|
+
const makeReqQuerySchema = tsplus_module_4.flatMap(tsplus_module_2.effectSync(() => tsplus_module_3.fromNullable(Req.Query)), _ => tsplus_module_3.match(() => tsplus_module_2.effectSync(() => tsplus_module_1.none), _ => tsplus_module_4.map(jsonSchema(_), tsplus_module_3.some))(_));
|
|
27
|
+
const makeReqHeadersSchema = tsplus_module_4.flatMap(tsplus_module_2.effectSync(() => tsplus_module_3.fromNullable(Req.Headers)), _ => tsplus_module_3.match(() => tsplus_module_2.effectSync(() => tsplus_module_1.none), _ => tsplus_module_4.map(jsonSchema(_), tsplus_module_3.some))(_));
|
|
28
|
+
const makeReqCookieSchema = tsplus_module_4.flatMap(tsplus_module_2.effectSync(() => tsplus_module_3.fromNullable(Req.Cookie)), _ => tsplus_module_3.match(() => tsplus_module_2.effectSync(() => tsplus_module_1.none), _ => tsplus_module_4.map(jsonSchema(_), tsplus_module_3.some))(_));
|
|
29
|
+
const makeReqPathSchema = tsplus_module_4.flatMap(tsplus_module_2.effectSync(() => tsplus_module_3.fromNullable(Req.Path)), _ => tsplus_module_3.match(() => tsplus_module_2.effectSync(() => tsplus_module_1.none), _ => tsplus_module_4.map(jsonSchema(_), tsplus_module_3.some))(_));
|
|
30
|
+
const makeReqBodySchema = tsplus_module_4.flatMap(tsplus_module_2.effectSync(() => tsplus_module_3.fromNullable(Req.Body)), _ => tsplus_module_3.match(() => tsplus_module_2.effectSync(() => tsplus_module_1.none), _ => tsplus_module_4.map(jsonSchema(_), tsplus_module_3.some))(_));
|
|
30
31
|
// const makeReqSchema = schema(Req)
|
|
31
32
|
const makeResSchema = jsonSchema_(Res);
|
|
32
33
|
function makeParameters(inn) {
|
|
@@ -42,7 +43,7 @@ export function makeFromSchema(e) {
|
|
|
42
43
|
})(tsplus_module_3.flatMap(o => (isObjectSchema(o) ? tsplus_module_3.some(o) : tsplus_module_1.none))(a)));
|
|
43
44
|
};
|
|
44
45
|
}
|
|
45
|
-
return
|
|
46
|
+
return tsplus_module_4.map(tsplus_module_4.struct({
|
|
46
47
|
req: jsonSchema(Req.Model),
|
|
47
48
|
reqQuery: makeReqQuerySchema,
|
|
48
49
|
reqHeaders: makeReqHeadersSchema,
|
|
@@ -90,4 +91,4 @@ class Response {
|
|
|
90
91
|
this.type = type;
|
|
91
92
|
}
|
|
92
93
|
}
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL19zcmMvYXBpL2V4cHJlc3Mvc2NoZW1hL3JvdXRpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBSXhDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpREFBaUQsQ0FBQTtBQUNoRixPQUFPLEtBQUssT0FBTyxNQUFNLDBDQUEwQyxDQUFBO0FBR25FLE1BQU0sVUFBVSxxQkFBcUIsQ0FBK0IsQ0FBSTtJQUN0RSxPQUFPLENBQXVCLENBQUE7QUFDaEMsQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FDdEMsR0FBcUI7SUFFckIsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUE7QUFDdkMsQ0FBQztBQWtDRCxNQUFNLFVBQVUsbUJBQW1CLENBWWpDLElBQVksRUFDWixNQUFjLEVBQ2QsT0FVQztJQUVELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQVc3QyxDQUFBO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQzVCLENBQWdFO0lBRWhFLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUE7SUFDL0IsTUFBTSxVQUFVLEdBQUcsQ0FBTyxDQUFrQixFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDL0QsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFBO0lBQ25FLE1BQU0sQ0FBQyxHQUFHLGVBQWUsSUFBSSxJQUFJLENBQUE7SUFDakMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFD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
|
package/dist/api/routing.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "@effect/io/FiberRef";
|
|
2
2
|
import * as tsplus_module_2 from "@fp-ts/core/Option";
|
|
3
|
-
import * as tsplus_module_3 from "@effect/
|
|
4
|
-
import * as tsplus_module_4 from "@effect
|
|
3
|
+
import * as tsplus_module_3 from "@effect-app/core/Effect";
|
|
4
|
+
import * as tsplus_module_4 from "@effect/io/Effect";
|
|
5
5
|
import * as tsplus_module_5 from "@effect-app/prelude/_ext/Schema.ext";
|
|
6
6
|
import * as tsplus_module_6 from "@effect-app/infra/RequestContext";
|
|
7
7
|
import * as tsplus_module_7 from "@effect-app/prelude/utils";
|
|
@@ -24,16 +24,16 @@ export const RequestSettings = tsplus_module_1.unsafeMake({
|
|
|
24
24
|
verbose: false
|
|
25
25
|
});
|
|
26
26
|
export function makeRequestParsers(Request) {
|
|
27
|
-
const ph = tsplus_module_3.
|
|
28
|
-
const parseHeaders = (u) =>
|
|
29
|
-
const pq = tsplus_module_3.
|
|
30
|
-
const parseQuery = (u) =>
|
|
31
|
-
const pb = tsplus_module_3.
|
|
32
|
-
const parseBody = (u) =>
|
|
33
|
-
const pp = tsplus_module_3.
|
|
34
|
-
const parsePath = (u) =>
|
|
35
|
-
const pc = tsplus_module_3.
|
|
36
|
-
const parseCookie = (u) =>
|
|
27
|
+
const ph = tsplus_module_3.effectSync(() => tsplus_module_2.map(MO.condemnFail)(tsplus_module_2.map(MO.Parser.for)(tsplus_module_2.map(s => s)(tsplus_module_2.fromNullable(Request.Headers)))));
|
|
28
|
+
const parseHeaders = (u) => tsplus_module_3.flatMapOption(ph, d => d(u));
|
|
29
|
+
const pq = tsplus_module_3.effectSync(() => tsplus_module_2.map(MO.condemnFail)(tsplus_module_2.map(MO.Parser.for)(tsplus_module_2.map(s => s)(tsplus_module_2.fromNullable(Request.Query)))));
|
|
30
|
+
const parseQuery = (u) => tsplus_module_3.flatMapOption(pq, d => d(u));
|
|
31
|
+
const pb = tsplus_module_3.effectSync(() => tsplus_module_2.map(MO.condemnFail)(tsplus_module_2.map(MO.Parser.for)(tsplus_module_2.map(s => s)(tsplus_module_2.fromNullable(Request.Body)))));
|
|
32
|
+
const parseBody = (u) => tsplus_module_3.flatMapOption(pb, d => d(u));
|
|
33
|
+
const pp = tsplus_module_3.effectSync(() => tsplus_module_2.map(MO.condemnFail)(tsplus_module_2.map(MO.Parser.for)(tsplus_module_2.map(s => s)(tsplus_module_2.fromNullable(Request.Path)))));
|
|
34
|
+
const parsePath = (u) => tsplus_module_3.flatMapOption(pp, d => d(u));
|
|
35
|
+
const pc = tsplus_module_3.effectSync(() => tsplus_module_2.map(MO.condemnFail)(tsplus_module_2.map(MO.Parser.for)(tsplus_module_2.map(s => s)(tsplus_module_2.fromNullable(Request.Cookie)))));
|
|
36
|
+
const parseCookie = (u) => tsplus_module_3.flatMapOption(pc, d => d(u));
|
|
37
37
|
return {
|
|
38
38
|
parseBody,
|
|
39
39
|
parseCookie,
|
|
@@ -49,10 +49,10 @@ export function match(requestHandler, errorHandler, middleware) {
|
|
|
49
49
|
requestHandler = handler;
|
|
50
50
|
makeMiddlewareContext = makeContext;
|
|
51
51
|
}
|
|
52
|
-
return
|
|
52
|
+
return tsplus_module_4.zipRight(Ex.match(requestHandler.Request.method.toLowerCase())(requestHandler.Request.path.split("?")[0], makeRequestHandler(requestHandler, errorHandler, makeMiddlewareContext)), tsplus_module_3.effectSync(() => makeRouteDescriptor(requestHandler.Request.path, requestHandler.Request.method, requestHandler)));
|
|
53
53
|
}
|
|
54
54
|
export function respondSuccess(encodeResponse) {
|
|
55
|
-
return (req, res, a) =>
|
|
55
|
+
return (req, res, a) => tsplus_module_4.flatMap(tsplus_module_3.effectSync(() => encodeResponse(req)(a)), r => tsplus_module_4.sync(() => {
|
|
56
56
|
r === undefined
|
|
57
57
|
? res.status(204).send()
|
|
58
58
|
: res.status(200)
|
|
@@ -70,7 +70,7 @@ export function makeRequestHandler(handler, errorHandler, makeMiddlewareContext)
|
|
|
70
70
|
const parseRequest = parseRequestParams(requestParsers);
|
|
71
71
|
const respond = respondSuccess(encodeResponse);
|
|
72
72
|
function getParams(req) {
|
|
73
|
-
return tsplus_module_3.
|
|
73
|
+
return tsplus_module_3.effectSync(() => ({
|
|
74
74
|
path: req.params,
|
|
75
75
|
query: req.query,
|
|
76
76
|
body: req.body,
|
|
@@ -110,8 +110,8 @@ export function makeRequestHandler(handler, errorHandler, makeMiddlewareContext)
|
|
|
110
110
|
return requestContext;
|
|
111
111
|
}
|
|
112
112
|
return (req, res) => {
|
|
113
|
-
return tsplus_module_11.untraced(restore =>
|
|
114
|
-
requestContext:
|
|
113
|
+
return tsplus_module_11.untraced(restore => tsplus_module_4.flatMap(tsplus_module_4.struct({
|
|
114
|
+
requestContext: tsplus_module_4.sync(() => {
|
|
115
115
|
const requestContext = makeContext(req);
|
|
116
116
|
if (req.method === "GET") {
|
|
117
117
|
res.setHeader("Cache-Control", "no-store");
|
|
@@ -120,7 +120,7 @@ export function makeRequestHandler(handler, errorHandler, makeMiddlewareContext)
|
|
|
120
120
|
return requestContext;
|
|
121
121
|
}),
|
|
122
122
|
pars: getParams(req)
|
|
123
|
-
}), ({ pars, requestContext }) => tsplus_module_10.setupRequest(
|
|
123
|
+
}), ({ pars, requestContext }) => tsplus_module_10.setupRequest(tsplus_module_4.provideService(tsplus_module_4.tap(tsplus_module_4.tapErrorCause(tsplus_module_4.zipRight(tsplus_module_4.flatMap(tsplus_module_1.get(RequestSettings), s => tsplus_module_8.logAnnotates({
|
|
124
124
|
method: req.method,
|
|
125
125
|
path: req.originalUrl,
|
|
126
126
|
...s.verbose
|
|
@@ -132,28 +132,28 @@ export function makeRequestHandler(handler, errorHandler, makeMiddlewareContext)
|
|
|
132
132
|
reqHeaders: tsplus_module_7.RecordPretty(tsplus_module_7.object$(pars.headers))
|
|
133
133
|
} :
|
|
134
134
|
undefined
|
|
135
|
-
})(
|
|
136
|
-
const handleRequest =
|
|
135
|
+
})(tsplus_module_4.logInfo("Incoming request"))), tsplus_module_4.suspendSucceed(() => {
|
|
136
|
+
const handleRequest = tsplus_module_4.flatMap(tsplus_module_4.map(parseRequest(req), ({ body, path, query }) => {
|
|
137
137
|
const hn = {
|
|
138
138
|
...tsplus_module_9.getOrUndefined(body),
|
|
139
139
|
...tsplus_module_9.getOrUndefined(query),
|
|
140
140
|
...tsplus_module_9.getOrUndefined(path)
|
|
141
141
|
};
|
|
142
142
|
return hn;
|
|
143
|
-
}), parsedReq =>
|
|
143
|
+
}), parsedReq => tsplus_module_4.flatMap(restore(() => handle(parsedReq))(), r => respond(parsedReq, res, r)));
|
|
144
144
|
// Commands should not be interruptable.
|
|
145
|
-
const r = req.method !== "GET" ?
|
|
145
|
+
const r = req.method !== "GET" ? tsplus_module_4.uninterruptible(handleRequest) : handleRequest; // .instrument("Performance.RequestResponse")
|
|
146
146
|
// the first log entry should be of the request start.
|
|
147
147
|
const r2 = makeMiddlewareContext
|
|
148
|
-
?
|
|
148
|
+
? tsplus_module_3.provideSomeContextEffect(makeMiddlewareContext(req, res, requestContext))(r)
|
|
149
149
|
// PR is not relevant here
|
|
150
150
|
: r;
|
|
151
151
|
return errorHandler(req, res, requestContext, r2);
|
|
152
|
-
})), cause =>
|
|
152
|
+
})), cause => tsplus_module_4.tapErrorCause(tsplus_module_4.tuplePar(tsplus_module_3.effectSync(() => res.status(500).send()), reportRequestError(cause, {
|
|
153
153
|
requestContext,
|
|
154
154
|
path: req.originalUrl,
|
|
155
155
|
method: req.method
|
|
156
|
-
}),
|
|
156
|
+
}), tsplus_module_4.suspendSucceed(() => {
|
|
157
157
|
const headers = res.getHeaders();
|
|
158
158
|
return tsplus_module_8.logAnnotates({
|
|
159
159
|
method: req.method,
|
|
@@ -168,8 +168,8 @@ export function makeRequestHandler(handler, errorHandler, makeMiddlewareContext)
|
|
|
168
168
|
prev[key] = value && typeof value === "string" ? snipString(value) : value;
|
|
169
169
|
return prev;
|
|
170
170
|
}, {})))
|
|
171
|
-
})(
|
|
172
|
-
})), cause => tsplus_module_3.
|
|
171
|
+
})(tsplus_module_4.logErrorCauseMessage("Finished request", cause));
|
|
172
|
+
})), cause => tsplus_module_3.effectSync(() => console.error("Error occurred while reporting error", cause)))), () => tsplus_module_4.flatMap(tsplus_module_1.get(RequestSettings), s => {
|
|
173
173
|
const headers = res.getHeaders();
|
|
174
174
|
return tsplus_module_8.logAnnotates({
|
|
175
175
|
method: req.method,
|
|
@@ -180,7 +180,7 @@ export function makeRequestHandler(handler, errorHandler, makeMiddlewareContext)
|
|
|
180
180
|
resHeaders: tsplus_module_7.RecordPretty(tsplus_module_7.object$(headers))
|
|
181
181
|
} :
|
|
182
182
|
undefined
|
|
183
|
-
})(
|
|
183
|
+
})(tsplus_module_4.logInfo("Finished request"));
|
|
184
184
|
})), tsplus_module_6.tag, requestContext) // otherwise external error reporter breaks.
|
|
185
185
|
, requestContext)));
|
|
186
186
|
};
|
|
@@ -244,4 +244,4 @@ export function matchResource(mod) {
|
|
|
244
244
|
return handler;
|
|
245
245
|
};
|
|
246
246
|
}
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL19zcmMvYXBpL3JvdXRpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxLQUFLLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUd4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQ3ZFLE9BQU8sS0FBSyxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDaEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBR2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFaEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUE7QUFFdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUV0QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsMkJBQW9CO0lBQ2pELE9BQU8sRUFBRSxLQUFLO0NBQ2YsQ0FBQyxDQUFBO0FBRUYsTUFBTSxVQUFVLGtCQUFrQixDQVdoQyxPQVVZO0lBRVosTUFBTSxFQUFFLEdBQUcsMkJBQ1Qsb0JBR08sRUFBRSxDQUFDLFdBQVcsRUFIckIsb0JBRU8sQUE1Q0MsRUFBRSxDQTRDSCxNQUFNLENBQUMsR0FBRyxFQUZqQixvQkFDTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFEYiw2QkFBb0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUN0QixDQUNJLENBQ0ksQ0FDdkIsQ0FBQTtJQUNELE1BQU0sWUFBWSxHQUFHLENBQUMs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
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL19zcmMvYXBpL3JvdXRpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxLQUFLLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUd4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQ3ZFLE9BQU8sS0FBSyxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDaEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBR2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFaEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUE7QUFFdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUV0QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsMkJBQW9CO0lBQ2pELE9BQU8sRUFBRSxLQUFLO0NBQ2YsQ0FBQyxDQUFBO0FBRUYsTUFBTSxVQUFVLGtCQUFrQixDQVdoQyxPQVVZO0lBRVosTUFBTSxFQUFFLEdBQUcsaUNBQ1Qsb0JBR08sRUFBRSxDQUFDLFdBQVcsRUFIckIsb0JBRU8sQUE1Q0MsRUFBRSxDQTRDSCxNQUFNLENBQUMsR0FBRyxFQUZqQixvQkFDTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFEYiw2QkFBb0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUN0QixDQUNJLENBQ0ksQ0FDdkIsQ0FBQTtJQUNELE1BQU0sWUFBWSxHQUFHLENBQUMs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
|
package/dist/errorReporter.js
CHANGED
|
@@ -2,6 +2,7 @@ import * as tsplus_module_1 from "@effect/io/Cause";
|
|
|
2
2
|
import * as tsplus_module_2 from "@effect-app/prelude/utils";
|
|
3
3
|
import * as tsplus_module_3 from "@effect/io/Effect";
|
|
4
4
|
import * as tsplus_module_4 from "@effect/io/Debug";
|
|
5
|
+
import * as tsplus_module_5 from "@effect-app/core/Effect";
|
|
5
6
|
import * as Sentry from "@sentry/node";
|
|
6
7
|
export function reportError(makeError) {
|
|
7
8
|
return (cause, context) => tsplus_module_4.untraced(() => tsplus_module_3.gen(function* ($) {
|
|
@@ -39,6 +40,6 @@ export function reportMessage(message) {
|
|
|
39
40
|
console.warn(message);
|
|
40
41
|
}
|
|
41
42
|
export function reportMessageM(message) {
|
|
42
|
-
return
|
|
43
|
+
return tsplus_module_5.effectSync(() => reportMessage(message));
|
|
43
44
|
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JSZXBvcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL19zcmMvZXJyb3JSZXBvcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sS0FBSyxNQUFNLE1BQU0sY0FBYyxDQUFBO0FBR3RDLE1BQU0sVUFBVSxXQUFXLENBQ3pCLFNBQWtDO0lBRWxDLE9BQU8sQ0FBQyxLQUFlLEVBQUUsT0FBaUMsRUFBRSxFQUFFLENBQzVELHlCQUFlLEdBQUcsRUFBRSxDQUNsQixvQkFBVyxRQUFRLENBQUMsRUFBQyxDQUFDO1FBQ3BCLElBQUksOEJBQUEsS0FBSyxDQUFnQixFQUFFO1lBQ3pCLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyx5QkFBZ0IsZUFBZSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsc0RBQUMsT0FBTyxHQUFXLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDL0UsT0FBTTtTQUNQO1FBQ0QsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzlCLE1BQU0sTUFBTSxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQTtRQUNqRCxZQUFZLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBQzNCLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FDTiwwREFBQSxLQUFLLEdBQ0gsUUFBUSxFQUNSLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQ2pGLENBQ0YsQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUNILENBQUE7QUFDTCxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsS0FBYyxFQUFFLE1BQStCO0lBQ25FLE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ2hDLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDdkIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQTtBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FDdEIsU0FBa0M7SUFFbEMsT0FBTyxDQUFDLEtBQWUsRUFBRSxPQUFpQyxFQUFFLEVBQUUsQ0FDNUQseUJBQWUsR0FBRyxFQUFFLENBQ2xCLG9CQUFXLFFBQVEsQ0FBQyxFQUFDLENBQUM7UUFDcEIsSUFBSSw4QkFBQSxLQUFLLENBQWdCLEVBQUU7WUFDekIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLHlCQUFnQixlQUFlLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxzREFBQyxPQUFPLEdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUMvRSxPQUFNO1NBQ1A7UUFDRCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDOUIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUNOLDREQUFBLEtBQUssR0FDSCxRQUFRLEVBQ1IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FDakYsQ0FDRixDQUFBO0lBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsS0FBYztJQUM3QyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDOUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUN0QixDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxPQUFlO0lBQzNDLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUE7SUFFOUIsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtBQUN2QixDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxPQUFlO0lBQzVDLE9BQU8saUNBQU8sYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7QUFDdkMsQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../_src/filter/types.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// codegen:start {preset: barrel, include: ./types/*.ts}
|
|
2
|
+
export * from "./types/errors.js";
|
|
3
|
+
export * from "./types/fields.js";
|
|
4
|
+
export * from "./types/utils.js";
|
|
5
|
+
export * from "./types/validator.js";
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9fc3JjL2ZpbHRlci90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3REFBd0Q7QUFDeEQsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxjQUFjLG1CQUFtQixDQUFBO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUE7QUFDaEMsY0FBYyxzQkFBc0IsQ0FBQSJ9
|
|
@@ -14,6 +14,9 @@ export declare function renderMessage(forceFake: boolean): (msg: EmailMsg) => {
|
|
|
14
14
|
to: EmailData | EmailData[] | undefined;
|
|
15
15
|
cc: EmailData | EmailData[] | undefined;
|
|
16
16
|
bcc: EmailData | EmailData[] | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* @hidden
|
|
19
|
+
*/
|
|
17
20
|
from: EmailData;
|
|
18
21
|
replyTo?: EmailData | undefined;
|
|
19
22
|
sendAt?: number | undefined;
|
|
@@ -54,6 +57,9 @@ export declare function renderMessage(forceFake: boolean): (msg: EmailMsg) => {
|
|
|
54
57
|
to: EmailData | EmailData[] | undefined;
|
|
55
58
|
cc: EmailData | EmailData[] | undefined;
|
|
56
59
|
bcc: EmailData | EmailData[] | undefined;
|
|
60
|
+
/**
|
|
61
|
+
* @hidden
|
|
62
|
+
*/
|
|
57
63
|
from: EmailData;
|
|
58
64
|
replyTo?: EmailData | undefined;
|
|
59
65
|
sendAt?: number | undefined;
|
|
@@ -94,6 +100,9 @@ export declare function renderMessage(forceFake: boolean): (msg: EmailMsg) => {
|
|
|
94
100
|
to: EmailData | EmailData[] | undefined;
|
|
95
101
|
cc: EmailData | EmailData[] | undefined;
|
|
96
102
|
bcc: EmailData | EmailData[] | undefined;
|
|
103
|
+
/**
|
|
104
|
+
* @hidden
|
|
105
|
+
*/
|
|
97
106
|
from: EmailData;
|
|
98
107
|
replyTo?: EmailData | undefined;
|
|
99
108
|
sendAt?: number | undefined;
|
|
@@ -134,6 +143,9 @@ export declare function renderMessage(forceFake: boolean): (msg: EmailMsg) => {
|
|
|
134
143
|
to: EmailData | EmailData[] | undefined;
|
|
135
144
|
cc: EmailData | EmailData[] | undefined;
|
|
136
145
|
bcc: EmailData | EmailData[] | undefined;
|
|
146
|
+
/**
|
|
147
|
+
* @hidden
|
|
148
|
+
*/
|
|
137
149
|
from: EmailData;
|
|
138
150
|
replyTo?: EmailData | undefined;
|
|
139
151
|
sendAt?: number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sendgrid.d.ts","sourceRoot":"","sources":["../../../_src/services/Emailer/Sendgrid.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4CAA4C,CAAA;AAG3E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,EAAE,QAAQ,EAAwB,cAAc,EAAE,MAAM,cAAc,CAAA;;;;;AAgDlF,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,mGAI1D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,OAAO,SAUpC,QAAQ
|
|
1
|
+
{"version":3,"file":"Sendgrid.d.ts","sourceRoot":"","sources":["../../../_src/services/Emailer/Sendgrid.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4CAA4C,CAAA;AAG3E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,EAAE,QAAQ,EAAwB,cAAc,EAAE,MAAM,cAAc,CAAA;;;;;AAgDlF,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,mGAI1D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,OAAO,SAUpC,QAAQ;;;;IAQpB;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAFH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAFH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAFH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAJF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,SAAS,WAO1C"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "@effect/io/Config/Secret";
|
|
2
2
|
import * as tsplus_module_2 from "@effect/io/Effect";
|
|
3
|
-
import * as tsplus_module_3 from "@
|
|
4
|
-
import * as tsplus_module_4 from "@
|
|
5
|
-
import * as tsplus_module_5 from "@effect-app/core/
|
|
3
|
+
import * as tsplus_module_3 from "@effect-app/core/Effect";
|
|
4
|
+
import * as tsplus_module_4 from "@fp-ts/core/typeclass/Equivalence";
|
|
5
|
+
import * as tsplus_module_5 from "@effect-app/core/_ext/ord.ext";
|
|
6
|
+
import * as tsplus_module_6 from "@effect-app/core/Array";
|
|
6
7
|
import sgMail from "@sendgrid/mail";
|
|
7
8
|
import { inspect } from "util";
|
|
8
9
|
import { Emailer } from "./service.js";
|
|
@@ -18,7 +19,7 @@ const makeLiveSendgrid = ({ apiKey, defaultFrom, realMail, subjectPrefix }) => t
|
|
|
18
19
|
yield* $(tsplus_module_2.logAnnotate(tsplus_module_2.logDebug("Sending email"), "msg", inspect(renderedMsg, false, 5)));
|
|
19
20
|
const ret = yield* $(tsplus_module_2.async(cb => void sgMail.send(renderedMsg, false, (err, result) => err ?
|
|
20
21
|
cb(tsplus_module_2.fail(err)) :
|
|
21
|
-
cb(
|
|
22
|
+
cb(tsplus_module_3.effectSync(() => result)))));
|
|
22
23
|
// const event = {
|
|
23
24
|
// name: "EmailSent",
|
|
24
25
|
// properties: {
|
|
@@ -74,12 +75,12 @@ function renderFake(addr, makeId) {
|
|
|
74
75
|
email: `test+${makeId()}@nomizz.com`
|
|
75
76
|
};
|
|
76
77
|
}
|
|
77
|
-
const eq =
|
|
78
|
+
const eq = tsplus_module_4.contramap((to) => typeof to === "string" ? to.toLowerCase() : to.email.toLowerCase())(tsplus_module_4.string);
|
|
78
79
|
// TODO: should just not add any already added email address
|
|
79
80
|
// https://stackoverflow.com/a/53603076/11595834
|
|
80
81
|
function renderFakeIfTest(addr, makeId) {
|
|
81
82
|
return Array.isArray(addr)
|
|
82
|
-
?
|
|
83
|
+
? tsplus_module_6.iterableToArray(tsplus_module_5.uniqArray(eq)(addr
|
|
83
84
|
.map(x => (isTestAddress(x) ? renderFake(x, makeId) : x)))) : isTestAddress(addr)
|
|
84
85
|
? renderFake(addr, makeId)
|
|
85
86
|
: addr;
|
|
@@ -93,4 +94,4 @@ function renderMailData(md) {
|
|
|
93
94
|
}
|
|
94
95
|
return md.email;
|
|
95
96
|
}
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VuZGdyaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL0VtYWlsZXIvU2VuZGdyaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsT0FBTyxNQUFNLE1BQU0sZ0JBQWdCLENBQUE7QUFDbkMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUM5QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBR3RDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBa0IsRUFBRSxFQUFFLENBQzVGLHFCQUFZLEdBQUcsRUFBRTtJQUNmLE1BQU0sQ0FBQyxTQUFTLHVCQUFDLE1BQU0sRUFBTyxDQUFBO0lBRTlCLE9BQU87UUFDTCxRQUFRLENBQUMsSUFBMEI7WUFDakMsT0FBTyxvQkFBVyxRQUFRLENBQUMsRUFBQyxDQUFDO2dCQUMzQixNQUFNLEdBQUcsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLFdBQVcsRUFBRSxDQUFBO2dCQUN2RCxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQTtnQkFFdkMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2dCQUNoQyxNQUFNLFdBQVcsR0FBRyxFQUFFLEdBQUcsWUFBWSxFQUFFLE9BQU8sRUFBRSxHQUFHLGFBQWEsR0FBRyxZQUFZLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQTtnQkFDM0YsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLDRCQUFBLHlCQUFnQixlQUFlLENBQUMsRUFBYSxLQUFLLEVBQUUsT0FBTyxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUU3RixNQUFNLEdBQUcsR0FBRyxLQUFL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
|