@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
|
@@ -107,7 +107,7 @@ function createContext() {
|
|
|
107
107
|
function hmSetRec(key, val) {
|
|
108
108
|
const enc = RedisSerializedDBRecord.Encoder(val);
|
|
109
109
|
return tsplus_module_1.flatMap(RED.client, client => tsplus_module_1.uninterruptible(tsplus_module_1.async(res => {
|
|
110
|
-
client.hmset(key, "version", enc.version, "timestamp", enc.timestamp, "data", enc.data, err => err ? res(tsplus_module_1.fail(new _shared.ConnectionException(err))) : res(
|
|
110
|
+
client.hmset(key, "version", enc.version, "timestamp", enc.timestamp, "data", enc.data, err => err ? res(tsplus_module_1.fail(new _shared.ConnectionException(err))) : res(tsplus_module_2.effectSync(() => void 0)));
|
|
111
111
|
})));
|
|
112
112
|
}
|
|
113
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redisdb.cjs","mappings":"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
|
|
1
|
+
{"version":3,"file":"redisdb.cjs","mappings":"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","names":["ttl","createContext","type","encode","decode","schemaVersion","makeIndexKey","getData","_","tsplus_module_1","JSON","stringify","find","simpledb","findByIndex","getIdx","save","store","lockRedisRecord","id","tsplus_module_2","hmgetAll","getKey","v","RedisSerializedDBRecord","Parser","MO","condemnFail","data","version","parse","e","ConnectionException","Error","toString","record","currentVersion","tsplus_module_3","cv","parseInt","hmSetRec","timestamp","Date","setIndex","getIndex","index","setIdx","lockIndex","lockRedisIdx","hget","getIdxKey","key","i","r","RED","hset","lockKey","getIdxLockKey","lock","err","CouldNotAquireDbLockException","release","unlock","l","getLockKey","doc","val","enc","Encoder","client","res","hmset","Model","prop","string","date"],"sourceRoot":"","sources":["../../../_src/services/simpledb/redisdb.ts"],"sourcesContent":[null]}
|
|
@@ -9,7 +9,8 @@ exports.getRecordName = getRecordName;
|
|
|
9
9
|
exports.makeMap = makeMap;
|
|
10
10
|
exports.makeSerialisedDBRecord = makeSerialisedDBRecord;
|
|
11
11
|
var tsplus_module_1 = _interopRequireWildcard(require("@fp-ts/core/Option"));
|
|
12
|
-
var tsplus_module_2 = _interopRequireWildcard(require("@effect/
|
|
12
|
+
var tsplus_module_2 = _interopRequireWildcard(require("@effect-app/core/Effect"));
|
|
13
|
+
var tsplus_module_3 = _interopRequireWildcard(require("@effect/io/Effect"));
|
|
13
14
|
var MO = _interopRequireWildcard(require("@effect-app/schema"));
|
|
14
15
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
15
16
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -68,9 +69,9 @@ function getRecordName(type, id) {
|
|
|
68
69
|
function makeMap() {
|
|
69
70
|
const map = new Map();
|
|
70
71
|
return {
|
|
71
|
-
find: k => tsplus_module_2.
|
|
72
|
+
find: k => tsplus_module_2.effectSync(() => tsplus_module_1.fromNullable(map.get(k))),
|
|
72
73
|
[Symbol.iterator]: () => map[Symbol.iterator](),
|
|
73
|
-
set: (k, v) =>
|
|
74
|
+
set: (k, v) => tsplus_module_3.sync(() => {
|
|
74
75
|
map.set(k, v);
|
|
75
76
|
})
|
|
76
77
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.cjs","mappings":"
|
|
1
|
+
{"version":3,"file":"shared.cjs","mappings":";;;;;;;;;;;;;AAAA;AAAwC;AAAA;AAGxC,MAAMA,SAAS;EACbC,YAAmBC,OAAe;IAAf,YAAO,GAAPA,OAAO;EAAW;;AAEjC,MAAOC,6BAA8B,SAAQH,SAAS;EAE1DC,YAAqBG,IAAY,EAAWC,EAAU,EAAWC,KAAY;IAC3E,KAAK,CAAC,2BAA2BF,IAAI,KAAKC,EAAE,EAAE,CAAC;IAD5B,SAAI,GAAJD,IAAI;IAAmB,OAAE,GAAFC,EAAE;IAAmB,UAAK,GAALC,KAAK;IAD7D,cAAS,GAAG,+BAA+B;EAGpD;;AACD;AAEK,MAAOC,uBAAwB,SAAQC,KAAK;EAEhDP,YAAqBG,IAAY,EAAWC,EAAU;IACpD,KAAK,CAAC,YAAYD,IAAI,IAAIC,EAAE,iBAAiB,CAAC;IAD3B,SAAI,GAAJD,IAAI;IAAmB,OAAE,GAAFC,EAAE;IADrC,cAAS,GAAG,yBAAyB;EAG9C;;AACD;AAEK,MAAOI,mBAAoB,SAAQD,KAAK;EAE5CP,YAAqBK,KAAY;IAC/B,KAAK,CAAC,4BAA4B,CAAC;IADhB,UAAK,GAALA,KAAK;IADjB,cAAS,GAAG,qBAAqB;EAG1C;;AACD;AAMK,MAAOI,kBAAmB,SAAQC,EAAE,CAACC,KAAK,EAAsB,CAAC;EACrEC,OAAO,EAAEF,EAAE,CAACG,IAAI,CAACH,EAAE,CAACI,MAAM,CAAC;EAC3BC,SAAS,EAAEL,EAAE,CAACG,IAAI,CAACH,EAAE,CAACM,IAAI,CAAC;EAC3BC,IAAI,EAAEP,EAAE,CAACG,IAAI,CAACH,EAAE,CAACI,MAAM;CACxB,CAAC;AAEF;AAAA;AACM,SAAUI,sBAAsB,CAACC,CAAY;EACjD,OAAOT,EAAE,CAACU,KAAK,CAAC;IACdR,OAAO,EAAEF,EAAE,CAACG,IAAI,CAACH,EAAE,CAACW,MAAM,CAAC;IAC3BN,SAAS,EAAEL,EAAE,CAACG,IAAI,CAACH,EAAE,CAACM,IAAI,CAAC;IAC3BC,IAAI,EAAEP,EAAE,CAACG,IAAI,CAACM,CAAC;GAChB,CAAC;AACJ;AAYM,SAAUG,YAAY,CAACnB,IAAY,EAAEC,EAAU;EACnD,OAAO,GAAGD,IAAI,QAAQC,EAAE,EAAE;AAC5B;AAEM,SAAUmB,aAAa,CAACpB,IAAY,EAAEC,EAAU;EACpD,OAAO,GAAGD,IAAI,MAAMC,EAAE,EAAE;AAC1B;AAEM,SAAUoB,OAAO;EACrB,MAAMC,GAAG,GAAG,IAAIC,GAAG,EAAW;EAC9B,OAAO;IACLC,IAAI,EAAGC,CAAO,IAAKC,iCAAOC,6BAAoBL,GAAG,CAACM,GAAG,CAACH,CAAC,CAAC,CAAC,CAAC;IAC1D,CAACI,MAAM,CAACC,QAAQ,GAAG,MAAMR,GAAG,CAACO,MAAM,CAACC,QAAQ,CAAC,EAAE;IAC/CC,GAAG,EAAE,CAACN,CAAO,EAAEO,CAAI,KACjBC,qBAAY,MAAK;MACfX,GAAG,CAACS,GAAG,CAACN,CAAC,EAAEO,CAAC,CAAC;IACf,CAAC;GACkB;AACzB","names":["BaseError","constructor","message","CouldNotAquireDbLockException","type","id","error","OptimisticLockException","Error","ConnectionException","SerializedDBRecord","MO","Model","version","prop","string","timestamp","date","data","makeSerialisedDBRecord","s","props","number","getIndexName","getRecordName","makeMap","map","Map","find","k","tsplus_module_2","tsplus_module_1","get","Symbol","iterator","set","v","tsplus_module_3"],"sourceRoot":"","sources":["../../../_src/services/simpledb/shared.ts"],"sourcesContent":[null]}
|
|
@@ -41,7 +41,7 @@ function makeLiveRecordCache() {
|
|
|
41
41
|
// module tag
|
|
42
42
|
const RecordCache = tsplus_module_2.Tag();
|
|
43
43
|
exports.RecordCache = RecordCache;
|
|
44
|
-
const LiveRecordCache = tsplus_module_1.toLayer(
|
|
44
|
+
const LiveRecordCache = tsplus_module_1.toLayer(tsplus_module_3.effectSync(() => makeLiveRecordCache()), RecordCache);
|
|
45
45
|
exports.LiveRecordCache = LiveRecordCache;
|
|
46
46
|
const getM = type => eff => tsplus_module_1.gen(function* ($) {
|
|
47
47
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simpledb.cjs","mappings":";;;;;;;;;;;;;;;AACA;AAA8D;AAAA;AAGxD,MAAOA,iBAAiB;EAE5BC,YAAqBC,OAAe,EAAWC,OAAiB;IAA3C,YAAO,GAAPD,OAAO;IAAmB,YAAO,GAAPC,OAAO;IAD7C,SAAI,GAAG,mBAAmB;EACgC;;AACpE;AAEK,SAAUC,mBAAmB;EACjC,MAAMC,CAAC,GAAG,IAAIC,GAAG,EAAsC;EACvD,OAAO;IACLC,GAAG,EAAMC,IAAY,IACnBC,
|
|
1
|
+
{"version":3,"file":"simpledb.cjs","mappings":"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","names":["InvalidStateError","constructor","message","details","makeLiveRecordCache","m","Map","get","type","tsplus_module_1","ex","nm","set","RecordCache","tsplus_module_2","LiveRecordCache","getM","eff","$","find","tryRead","decode","getCache","read","id","tsplus_module_3","data","version","err","r","c","existing","storeDirectly","save","record","x","cv","store","lock","_","tsplus_module_5","confirmVersionAndSave","OptimisticLockException"],"sourceRoot":"","sources":["../../../_src/services/simpledb/simpledb.ts"],"sourcesContent":[null]}
|
package/_src/api/codec.ts
CHANGED
|
@@ -14,7 +14,7 @@ export function makeCodec<
|
|
|
14
14
|
const decode = (e: Encoded, env?: ParserEnv) => parse(e, env)
|
|
15
15
|
const enc = Encoder.for(self)
|
|
16
16
|
|
|
17
|
-
const encode = (u: ParsedShape) => Effect(
|
|
17
|
+
const encode = (u: ParsedShape) => Effect(enc(u))
|
|
18
18
|
const encodeToMap = toMap(encode)
|
|
19
19
|
return [decode, encode, encodeToMap] as const
|
|
20
20
|
}
|
|
@@ -20,7 +20,7 @@ export function defaultBasicErrorHandler<R>(
|
|
|
20
20
|
r2
|
|
21
21
|
.tapErrorCause(cause => cause.isFailure() ? logRequestError(cause) : Effect.unit)
|
|
22
22
|
.catchTag("ValidationError", err =>
|
|
23
|
-
Effect(() => {
|
|
23
|
+
Effect.sync(() => {
|
|
24
24
|
res.status(400).send(err.errors)
|
|
25
25
|
}))
|
|
26
26
|
// final catch all; expecting never so that unhandled known errors will show up
|
|
@@ -50,27 +50,27 @@ export function defaultErrorHandler<R>(
|
|
|
50
50
|
r3
|
|
51
51
|
.tapErrorCause(cause => cause.isFailure() ? logRequestError(cause) : Effect.unit)
|
|
52
52
|
.catchTag("ValidationError", err =>
|
|
53
|
-
Effect(() => {
|
|
53
|
+
Effect.sync(() => {
|
|
54
54
|
res.status(400).send(err.errors)
|
|
55
55
|
}))
|
|
56
56
|
.catchTag("NotFoundError", err =>
|
|
57
|
-
Effect(() => {
|
|
57
|
+
Effect.sync(() => {
|
|
58
58
|
res.status(404).send(err)
|
|
59
59
|
}))
|
|
60
60
|
.catchTag("NotLoggedInError", err =>
|
|
61
|
-
Effect(() => {
|
|
61
|
+
Effect.sync(() => {
|
|
62
62
|
res.status(401).send(err)
|
|
63
63
|
}))
|
|
64
64
|
.catchTag("UnauthorizedError", err =>
|
|
65
|
-
Effect(() => {
|
|
65
|
+
Effect.sync(() => {
|
|
66
66
|
res.status(403).send(err)
|
|
67
67
|
}))
|
|
68
68
|
.catchTag("InvalidStateError", err =>
|
|
69
|
-
Effect(() => {
|
|
69
|
+
Effect.sync(() => {
|
|
70
70
|
res.status(422).send(err)
|
|
71
71
|
}))
|
|
72
72
|
.catchTag("OptimisticConcurrencyException", err =>
|
|
73
|
-
Effect(() => {
|
|
73
|
+
Effect.sync(() => {
|
|
74
74
|
// 412 or 409.. https://stackoverflow.com/questions/19122088/which-http-status-code-to-use-to-reject-a-put-due-to-optimistic-locking-failure
|
|
75
75
|
res.status(412).send(err)
|
|
76
76
|
}))
|
|
@@ -76,7 +76,7 @@ export function match<
|
|
|
76
76
|
h
|
|
77
77
|
)
|
|
78
78
|
).zipRight(
|
|
79
|
-
Effect(
|
|
79
|
+
Effect(makeRouteDescriptor(r.Request.path, r.Request.method, r))
|
|
80
80
|
)
|
|
81
81
|
}
|
|
82
82
|
|
|
@@ -163,31 +163,31 @@ export function handleRequest<
|
|
|
163
163
|
).flatMap(outp => respond(inp, res)(outp))
|
|
164
164
|
})
|
|
165
165
|
.catchTag("ValidationError", err =>
|
|
166
|
-
Effect(() => {
|
|
166
|
+
Effect.sync(() => {
|
|
167
167
|
res.status(400).send(err.errors)
|
|
168
168
|
}))
|
|
169
169
|
.catchTag("NotFoundError", err =>
|
|
170
|
-
Effect(() => {
|
|
170
|
+
Effect.sync(() => {
|
|
171
171
|
res.status(404).send(err)
|
|
172
172
|
}))
|
|
173
173
|
.catchTag("NotLoggedInError", err =>
|
|
174
|
-
Effect(() => {
|
|
174
|
+
Effect.sync(() => {
|
|
175
175
|
res.status(401).send(err)
|
|
176
176
|
}))
|
|
177
177
|
.catchTag("UnauthorizedError", err =>
|
|
178
|
-
Effect(() => {
|
|
178
|
+
Effect.sync(() => {
|
|
179
179
|
res.status(403).send(err)
|
|
180
180
|
}))
|
|
181
181
|
// final catch all; expecting never so that unhandled known errors will show up
|
|
182
182
|
.catchAll((err: never) =>
|
|
183
|
-
Effect(
|
|
183
|
+
Effect(
|
|
184
184
|
console.error(
|
|
185
185
|
"Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect",
|
|
186
186
|
err
|
|
187
187
|
)
|
|
188
188
|
).flatMap(Effect.die)
|
|
189
189
|
)
|
|
190
|
-
// .tapCause(() => Effect(
|
|
190
|
+
// .tapCause(() => Effect(res.status(500).send()))
|
|
191
191
|
}
|
|
192
192
|
|
|
193
193
|
// Additional convenience helpers
|
|
@@ -242,7 +242,7 @@ export function get<
|
|
|
242
242
|
r,
|
|
243
243
|
h
|
|
244
244
|
)
|
|
245
|
-
).zipRight(Effect(
|
|
245
|
+
).zipRight(Effect(makeRouteDescriptor(path, "GET", r)))
|
|
246
246
|
}
|
|
247
247
|
|
|
248
248
|
export function post<
|
|
@@ -295,7 +295,7 @@ export function post<
|
|
|
295
295
|
r,
|
|
296
296
|
h
|
|
297
297
|
)
|
|
298
|
-
).zipRight(Effect(
|
|
298
|
+
).zipRight(Effect(makeRouteDescriptor(path, "POST", r)))
|
|
299
299
|
}
|
|
300
300
|
|
|
301
301
|
export function put<
|
|
@@ -348,7 +348,7 @@ export function put<
|
|
|
348
348
|
r,
|
|
349
349
|
h
|
|
350
350
|
)
|
|
351
|
-
).zipRight(Effect(
|
|
351
|
+
).zipRight(Effect(makeRouteDescriptor(path, "PUT", r)))
|
|
352
352
|
}
|
|
353
353
|
|
|
354
354
|
export function patch<
|
|
@@ -401,7 +401,7 @@ export function patch<
|
|
|
401
401
|
r,
|
|
402
402
|
h
|
|
403
403
|
)
|
|
404
|
-
).zipRight(Effect(
|
|
404
|
+
).zipRight(Effect(makeRouteDescriptor(path, "PATCH", r)))
|
|
405
405
|
}
|
|
406
406
|
|
|
407
407
|
function del<
|
|
@@ -454,7 +454,7 @@ function del<
|
|
|
454
454
|
r,
|
|
455
455
|
h
|
|
456
456
|
)
|
|
457
|
-
).zipRight(Effect(
|
|
457
|
+
).zipRight(Effect(makeRouteDescriptor(path, "DELETE", r)))
|
|
458
458
|
}
|
|
459
459
|
|
|
460
460
|
export { del as delete }
|
|
@@ -183,7 +183,7 @@ export function respondSuccess<ReqA, A, E>(
|
|
|
183
183
|
return (req: ReqA, res: express.Response) =>
|
|
184
184
|
flow(encodeResponse(req), Effect.succeed, _ =>
|
|
185
185
|
_.flatMap(r =>
|
|
186
|
-
Effect(() => {
|
|
186
|
+
Effect.sync(() => {
|
|
187
187
|
r === undefined
|
|
188
188
|
? res.status(204).send()
|
|
189
189
|
: res.status(200).send(r === null ? JSON.stringify(null) : r)
|
package/_src/api/routing.ts
CHANGED
|
@@ -177,7 +177,7 @@ export function match<
|
|
|
177
177
|
makeMiddlewareContext
|
|
178
178
|
)
|
|
179
179
|
).zipRight(
|
|
180
|
-
Effect(
|
|
180
|
+
Effect(
|
|
181
181
|
makeRouteDescriptor(
|
|
182
182
|
requestHandler.Request.path,
|
|
183
183
|
requestHandler.Request.method,
|
|
@@ -191,9 +191,9 @@ export function respondSuccess<ReqA, A, E>(
|
|
|
191
191
|
encodeResponse: (req: ReqA) => Encode<A, E>
|
|
192
192
|
) {
|
|
193
193
|
return (req: ReqA, res: express.Response, a: A) =>
|
|
194
|
-
Effect(
|
|
194
|
+
Effect(encodeResponse(req)(a))
|
|
195
195
|
.flatMap(r =>
|
|
196
|
-
Effect(() => {
|
|
196
|
+
Effect.sync(() => {
|
|
197
197
|
r === undefined
|
|
198
198
|
? res.status(204).send()
|
|
199
199
|
: res.status(200)
|
|
@@ -247,7 +247,7 @@ export function makeRequestHandler<
|
|
|
247
247
|
const respond = respondSuccess(encodeResponse)
|
|
248
248
|
|
|
249
249
|
function getParams(req: express.Request) {
|
|
250
|
-
return Effect((
|
|
250
|
+
return Effect(({
|
|
251
251
|
path: req.params,
|
|
252
252
|
query: req.query,
|
|
253
253
|
body: req.body,
|
|
@@ -296,7 +296,7 @@ export function makeRequestHandler<
|
|
|
296
296
|
return (req: express.Request, res: express.Response) => {
|
|
297
297
|
return Debug.untraced(restore =>
|
|
298
298
|
Effect.struct({
|
|
299
|
-
requestContext: Effect(() => {
|
|
299
|
+
requestContext: Effect.sync(() => {
|
|
300
300
|
const requestContext = makeContext(req)
|
|
301
301
|
if (req.method === "GET") {
|
|
302
302
|
res.setHeader("Cache-Control", "no-store")
|
|
@@ -355,7 +355,7 @@ export function makeRequestHandler<
|
|
|
355
355
|
)
|
|
356
356
|
.tapErrorCause(cause =>
|
|
357
357
|
Effect.tuplePar(
|
|
358
|
-
Effect(
|
|
358
|
+
Effect(res.status(500).send()),
|
|
359
359
|
reportRequestError(cause, {
|
|
360
360
|
requestContext,
|
|
361
361
|
path: req.originalUrl,
|
|
@@ -385,7 +385,7 @@ export function makeRequestHandler<
|
|
|
385
385
|
}))
|
|
386
386
|
})
|
|
387
387
|
)
|
|
388
|
-
.tapErrorCause(cause => Effect(
|
|
388
|
+
.tapErrorCause(cause => Effect(console.error("Error occurred while reporting error", cause)))
|
|
389
389
|
)
|
|
390
390
|
.tap(() =>
|
|
391
391
|
RequestSettings.get.flatMap(s => {
|
|
@@ -5,7 +5,7 @@ import { Emailer } from "./service.js"
|
|
|
5
5
|
import type { EmailMsg, EmailMsgOptionalFrom, SendgridConfig } from "./service.js"
|
|
6
6
|
|
|
7
7
|
const makeLiveSendgrid = ({ apiKey, defaultFrom, realMail, subjectPrefix }: SendgridConfig) =>
|
|
8
|
-
Effect(() => {
|
|
8
|
+
Effect.sync(() => {
|
|
9
9
|
sgMail.setApiKey(apiKey.value)
|
|
10
10
|
|
|
11
11
|
return {
|
|
@@ -6,11 +6,11 @@ import { Operations } from "./service.js"
|
|
|
6
6
|
|
|
7
7
|
const reportAppError = reportError(cause => new RequestException(cause))
|
|
8
8
|
|
|
9
|
-
const make = Effect(() => {
|
|
9
|
+
const make = Effect.sync(() => {
|
|
10
10
|
const ops = new Map<OperationId, Operation>()
|
|
11
|
-
const makeOp = Effect(
|
|
11
|
+
const makeOp = Effect(OperationId.make())
|
|
12
12
|
|
|
13
|
-
const cleanup = Effect(() => {
|
|
13
|
+
const cleanup = Effect.sync(() => {
|
|
14
14
|
const before = new Date().subHours(1)
|
|
15
15
|
ops.entries()
|
|
16
16
|
.toChunk
|
|
@@ -23,16 +23,16 @@ const make = Effect(() => {
|
|
|
23
23
|
})
|
|
24
24
|
|
|
25
25
|
function addOp(id: OperationId) {
|
|
26
|
-
return Effect(() => {
|
|
26
|
+
return Effect.sync(() => {
|
|
27
27
|
ops.set(id, new Operation({ id }))
|
|
28
28
|
})
|
|
29
29
|
}
|
|
30
30
|
function findOp(id: OperationId) {
|
|
31
|
-
return Effect(
|
|
31
|
+
return Effect(Option.fromNullable(ops.get(id)))
|
|
32
32
|
}
|
|
33
33
|
function finishOp(id: OperationId, exit: Exit<unknown, unknown>) {
|
|
34
34
|
return findOp(id).flatMap(_ =>
|
|
35
|
-
Effect(() => {
|
|
35
|
+
Effect.sync(() => {
|
|
36
36
|
if (_.isNone()) {
|
|
37
37
|
throw new Error("Not found")
|
|
38
38
|
}
|
|
@@ -58,7 +58,7 @@ const make = Effect(() => {
|
|
|
58
58
|
}
|
|
59
59
|
function update(id: OperationId, progress: OperationProgress) {
|
|
60
60
|
return findOp(id).flatMap(_ =>
|
|
61
|
-
Effect(() => {
|
|
61
|
+
Effect.sync(() => {
|
|
62
62
|
if (_.isNone()) {
|
|
63
63
|
throw new Error("Not found")
|
|
64
64
|
}
|
|
@@ -32,7 +32,7 @@ export function makeMemQueue<DrainR, Evt, DrainEvt extends { id: StringId; _tag:
|
|
|
32
32
|
return yield* $(
|
|
33
33
|
messages.forEachEffect(m =>
|
|
34
34
|
// we JSON encode, because that is what the wire also does, and it reveals holes in e.g unknown encoders (Date->String)
|
|
35
|
-
Effect(
|
|
35
|
+
Effect(
|
|
36
36
|
JSON.stringify(
|
|
37
37
|
encoder({ body: m, meta: requestContext })
|
|
38
38
|
)
|
|
@@ -48,7 +48,7 @@ export function makeMemQueue<DrainR, Evt, DrainEvt extends { id: StringId; _tag:
|
|
|
48
48
|
const handleEvent = yield* $(makeHandleEvent)
|
|
49
49
|
const processMessage = (msg: string) =>
|
|
50
50
|
// we JSON parse, because that is what the wire also does, and it reveals holes in e.g unknown encoders (Date->String)
|
|
51
|
-
Effect(
|
|
51
|
+
Effect(JSON.parse(msg))
|
|
52
52
|
.flatMap(parseDrain)
|
|
53
53
|
.orDie
|
|
54
54
|
.flatMap(({ body, meta }) =>
|
|
@@ -185,7 +185,7 @@ export function makeCosmosStore({ prefix }: StorageConfig) {
|
|
|
185
185
|
}
|
|
186
186
|
|
|
187
187
|
const s: Store<PM, Id> = {
|
|
188
|
-
all: Effect((
|
|
188
|
+
all: Effect(({
|
|
189
189
|
query: `SELECT * FROM ${name} f WHERE f.id != @id`,
|
|
190
190
|
parameters: [{ name: "@id", value: importedMarkerId }]
|
|
191
191
|
}))
|
|
@@ -205,7 +205,7 @@ export function makeCosmosStore({ prefix }: StorageConfig) {
|
|
|
205
205
|
) =>
|
|
206
206
|
filter.keys
|
|
207
207
|
.forEachEffect(k =>
|
|
208
|
-
Effect(
|
|
208
|
+
Effect(buildFilterJoinSelectCosmosQuery(filter, k, name, cursor?.skip, cursor?.limit))
|
|
209
209
|
.tap(q => logQuery(q))
|
|
210
210
|
.flatMap(q =>
|
|
211
211
|
Effect.promise(() =>
|
|
@@ -240,7 +240,7 @@ export function makeCosmosStore({ prefix }: StorageConfig) {
|
|
|
240
240
|
// so we use multiple queries instead.
|
|
241
241
|
? filter.keys
|
|
242
242
|
.forEachEffect(k =>
|
|
243
|
-
Effect(
|
|
243
|
+
Effect(buildFindJoinCosmosQuery(filter, k, name, skip, limit))
|
|
244
244
|
.tap(q => logQuery(q))
|
|
245
245
|
.flatMap(q =>
|
|
246
246
|
Effect.promise(() =>
|
|
@@ -252,7 +252,7 @@ export function makeCosmosStore({ prefix }: StorageConfig) {
|
|
|
252
252
|
)
|
|
253
253
|
)
|
|
254
254
|
.map(_ => _.flatMap(_ => _))
|
|
255
|
-
: Effect(
|
|
255
|
+
: Effect(buildCosmosQuery(filter, name, importedMarkerId, skip, limit))
|
|
256
256
|
.tap(q => logQuery(q))
|
|
257
257
|
.flatMap(q =>
|
|
258
258
|
Effect.promise(() =>
|
|
@@ -12,7 +12,7 @@ import { StoreMaker } from "./service.js"
|
|
|
12
12
|
* and should therefore be as fast as the Memory Store.
|
|
13
13
|
*/
|
|
14
14
|
export function makeDiskStore({ prefix }: StorageConfig) {
|
|
15
|
-
return Effect(() => {
|
|
15
|
+
return Effect.sync(() => {
|
|
16
16
|
const dir = "./.data"
|
|
17
17
|
if (!fs.existsSync(dir)) {
|
|
18
18
|
fs.mkdirSync(dir)
|
|
@@ -91,7 +91,7 @@ export const StoreMaker: StoreMakerOps = Tag<StoreMaker>()
|
|
|
91
91
|
/**
|
|
92
92
|
* @tsplus static ContextMap.Ops Make
|
|
93
93
|
*/
|
|
94
|
-
export const makeMap = Effect(() => {
|
|
94
|
+
export const makeMap = Effect.sync(() => {
|
|
95
95
|
const etags = new Map<string, string>()
|
|
96
96
|
const getEtag = (id: string) => etags.get(id)
|
|
97
97
|
const setEtag = (id: string, eTag: string | undefined) => {
|
|
@@ -65,10 +65,10 @@ export function getRecordName(type: string, id: string) {
|
|
|
65
65
|
export function makeMap<TKey, T>() {
|
|
66
66
|
const map = new Map<TKey, T>()
|
|
67
67
|
return {
|
|
68
|
-
find: (k: TKey) => Effect(
|
|
68
|
+
find: (k: TKey) => Effect(Option.fromNullable(map.get(k))),
|
|
69
69
|
[Symbol.iterator]: () => map[Symbol.iterator](),
|
|
70
70
|
set: (k: TKey, v: T) =>
|
|
71
|
-
Effect(() => {
|
|
71
|
+
Effect.sync(() => {
|
|
72
72
|
map.set(k, v)
|
|
73
73
|
})
|
|
74
74
|
} as EffectMap<TKey, T>
|
|
@@ -11,7 +11,7 @@ export function makeLiveRecordCache() {
|
|
|
11
11
|
const m = new Map<string, EffectMap<string, unknown>>()
|
|
12
12
|
return {
|
|
13
13
|
get: <T>(type: string) =>
|
|
14
|
-
Effect(() => {
|
|
14
|
+
Effect.sync(() => {
|
|
15
15
|
const ex = m.get(type)
|
|
16
16
|
if (!ex) {
|
|
17
17
|
const nm = makeMap<string, unknown>()
|
package/dist/_ext/Array.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "@fp-ts/data/Chunk";
|
|
2
|
-
import * as tsplus_module_2 from "@effect-app/
|
|
3
|
-
import * as tsplus_module_3 from "@effect-app/prelude/_ext/misc";
|
|
2
|
+
import * as tsplus_module_2 from "@effect-app/prelude/_ext/misc";
|
|
4
3
|
import { inspect } from "util";
|
|
5
4
|
import { NotFoundError } from "../errors.js";
|
|
6
5
|
/**
|
|
@@ -11,7 +10,7 @@ import { NotFoundError } from "../errors.js";
|
|
|
11
10
|
* @tsplus fluent ReadonlyArray getFirstById
|
|
12
11
|
*/
|
|
13
12
|
export function getFirstById_(a, id, type) {
|
|
14
|
-
return
|
|
13
|
+
return tsplus_module_2.encaseMaybeInEffect_(tsplus_module_1.findFirst(tsplus_module_1.fromIterable(a), _ => _.id === id), () => new NotFoundError(type, id));
|
|
15
14
|
}
|
|
16
15
|
/**
|
|
17
16
|
* @tsplus fluent Object.Ops inspect
|
|
@@ -19,4 +18,4 @@ export function getFirstById_(a, id, type) {
|
|
|
19
18
|
export function RecordInspect(o, showHidden, depth, color) {
|
|
20
19
|
return inspect(o.subject, showHidden, depth, color);
|
|
21
20
|
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9fc3JjL19leHQvQXJyYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFNUM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsQ0FBYyxFQUNkLEVBQU0sRUFDTixJQUFVO0lBRVYsT0FBTyxxQ0FBQSwwQkFBQSw2QkFBbUIsQ0FBQyxDQUFDLEVBQ2YsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUNaLEdBQUcsRUFBRSxDQUFDLElBQUksYUFBYSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBQ3RELENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQzNCLENBQWdCLEVBQ2hCLFVBQWdDLEVBQ2hDLEtBQWlDLEVBQ2pDLEtBQTJCO0lBRTNCLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQTtBQUNyRCxDQUFDIn0=
|
package/dist/api/codec.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import * as tsplus_module_1 from "@effect/
|
|
2
|
-
import * as tsplus_module_2 from "@effect
|
|
1
|
+
import * as tsplus_module_1 from "@effect-app/core/Effect";
|
|
2
|
+
import * as tsplus_module_2 from "@effect/io/Effect";
|
|
3
|
+
import * as tsplus_module_3 from "@effect-app/core/_ext/Iterable";
|
|
3
4
|
import * as MO from "@effect-app/schema";
|
|
4
5
|
import { Encoder, Parser } from "@effect-app/schema";
|
|
5
6
|
export function makeCodec(self) {
|
|
@@ -7,11 +8,11 @@ export function makeCodec(self) {
|
|
|
7
8
|
// TODO: strict
|
|
8
9
|
const decode = (e, env) => parse(e, env);
|
|
9
10
|
const enc = Encoder.for(self);
|
|
10
|
-
const encode = (u) => tsplus_module_1.
|
|
11
|
+
const encode = (u) => tsplus_module_1.effectSync(() => enc(u));
|
|
11
12
|
const encodeToMap = toMap(encode);
|
|
12
13
|
return [decode, encode, encodeToMap];
|
|
13
14
|
}
|
|
14
15
|
function toMap(encode) {
|
|
15
|
-
return (a) =>
|
|
16
|
+
return (a) => tsplus_module_2.map(tsplus_module_3.ext_collectAll(a.map(task => tsplus_module_2.tuple(tsplus_module_1.effectSync(() => task.id), encode(task)))), _ => new Map(_));
|
|
16
17
|
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9fc3JjL2FwaS9jb2RlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxPQUFPLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFHcEQsTUFBTSxVQUFVLFNBQVMsQ0FNdkIsSUFBcUU7SUFDckUsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDN0MsZUFBZTtJQUNmLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBVSxFQUFFLEdBQWUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUM3RCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRTdCLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBYyxFQUFFLEVBQUUsQ0FBQyxpQ0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNqRCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDakMsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFVLENBQUE7QUFDL0MsQ0FBQztBQUVELFNBQVMsS0FBSyxDQUE4QixNQUF5QztJQUNuRixPQUFPLENBQUMsQ0FBbUIsRUFBRSxFQUFFLENBQzdCLG9CQUFBLCtCQUFBLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxzQkFBYSxpQ0FBTyxJQUFJLENBQUMsRUFBYSxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDdEQsRUFDUixDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDM0IsQ0FBQyJ9
|
|
@@ -33,4 +33,4 @@ export function defaultErrorHandler(req, res, _, r2) {
|
|
|
33
33
|
// final catch all; expecting never so that unhandled known errors will show up
|
|
34
34
|
, (err) => tsplus_module_1.flatMap(tsplus_module_1.map(tsplus_module_1.logError("Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect" + err), () => err), tsplus_module_1.die)));
|
|
35
35
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdEVycm9ySGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL19zcmMvYXBpL2RlZmF1bHRFcnJvckhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFVQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFFbEQsTUFBTSxVQUFVLHdCQUF3QixDQUN0QyxJQUFxQixFQUNyQixHQUFxQixFQUNyQixlQUErQixFQUMvQixFQUFvQztJQUVwQyxPQUFPLHlCQUFlLEdBQUcsRUFBRSxDQUN6Qix5QkFBQSx5QkFBQSw4QkFBQSxFQUFFLEVBQ2UsS0FBSyxDQUFDLEVBQUUsQ0FBQywwQkFBQSxLQUFLLENBQVksQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMscUJBQVksQ0FBQyxFQUN2RSxpQkFBaUIsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUNqQyxxQkFBWSxHQUFHLEVBQUU7UUFDZixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDTCwrRUFBK0U7TUFDckUsQ0FBQyxHQUFVLEVBQUUsRUFBRSxDQUN2Qix3QkFBQSxvQkFBQSx5QkFDRSxnR0FBZ0csR0FBRyxHQUFHLENBQ3ZHLEVBQ00sR0FBRyxFQUFFLENBQUMsR0FBYyxDQUFDLHNCQUNOLENBQ3ZCLENBQ0osQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLDZCQUE2Qiw2QkFDakMsMkJBQXFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxnQ0FBZ0MsQ0FBQyxFQURsRCxzQkFBZSxDQUNtQyxDQUFBO0FBRXhGLE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsR0FBb0IsRUFDcEIsR0FBcUIsRUFDckIsQ0FBaUIsRUFDakIsRUFBb0M7SUFFcEMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sS0FBSyxPQUFPO1FBQy9CLENBQUMsQ0FBQyxzQkFBQSxFQUFFLEVBQU8sNkJBQTZCLENBQUM7UUFDekMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUNOLE9BQU8seUJBQWUsR0FBRyxFQUFFLENBQ3pCLHlCQUFBLHlCQUFBLHlCQUFBLHlCQUFBLHlCQUFBLHlCQUFBLHlCQUFBLDhCQUFBLEVBQUUsRUFDZSxLQUFLLENBQUMsRUFBRSxDQUFDLDBCQUFBLEtBQUssQ0FBWSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxxQkFBWSxDQUFDLEVBQ3ZFLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQ2pDLHFCQUFZLEdBQUcsRUFBRTtRQUNmLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNsQyxDQUFDLENBQUMsQ0FBQyxFQUNLLGVBQWUsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUMvQixxQkFBWSxHQUFHLEVBQUU7UUFDZixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMzQixDQUFDLENBQUMsQ0FBQyxFQUNLLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQ2xDLHFCQUFZLEdBQUcsRUFBRTtRQUNmLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzNCLENBQUMsQ0FBQyxDQUFDLEVBQ0ssbUJBQW1CLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FDbkMscUJBQVksR0FBRyxFQUFFO1FBQ2YsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDM0IsQ0FBQyxDQUFDLENBQUMsRUFDSyxtQkFBbUIsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUNuQyxxQkFBWSxHQUFHLEVBQUU7UUFDZixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMzQixDQUFDLENBQUMsQ0FBQyxFQUNLLGdDQUFnQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQ2hELHFCQUFZLEdBQUcsRUFBRTtRQUNmLDRJQUE0STtRQUM1SSxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMzQixDQUFDLENBQUMsQ0FBQztJQUNMLCtFQUErRTtNQUNyRSxDQUFDLEdBQVUsRUFBRSxFQUFFLENBQ3ZCLHdCQUFBLG9CQUFBLHlCQUNFLGdHQUFnRyxHQUFHLEdBQUcsQ0FDdkcsRUFDTSxHQUFHLEVBQUUsQ0FBQyxHQUFjLENBQUMsc0JBQ04sQ0FDdkIsQ0FDSixDQUFBO0FBQ0gsQ0FBQyJ9
|