@effect-app/infra 0.12.6 → 0.14.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 +20 -0
- package/_cjs/api/codec.cjs +2 -4
- package/_cjs/api/codec.cjs.map +1 -1
- package/_cjs/api/defaultErrorHandler.cjs +18 -21
- package/_cjs/api/defaultErrorHandler.cjs.map +1 -1
- package/_cjs/api/express/makeJsonSchema.cjs +4 -4
- package/_cjs/api/express/makeJsonSchema.cjs.map +1 -1
- package/_cjs/api/express/makeOpenApiSpecs.cjs +5 -7
- package/_cjs/api/express/makeOpenApiSpecs.cjs.map +1 -1
- package/_cjs/api/express/schema/requestHandler.cjs +49 -49
- package/_cjs/api/express/schema/requestHandler.cjs.map +1 -1
- package/_cjs/api/express/schema/routing.cjs +22 -22
- package/_cjs/api/express/schema/routing.cjs.map +1 -1
- package/_cjs/api/reportError.cjs +6 -17
- package/_cjs/api/reportError.cjs.map +1 -1
- package/_cjs/api/routing.cjs +63 -63
- package/_cjs/api/routing.cjs.map +1 -1
- package/_cjs/api/setupRequest.cjs +2 -4
- package/_cjs/api/setupRequest.cjs.map +1 -1
- package/_cjs/api/writeDocs.cjs +6 -8
- package/_cjs/api/writeDocs.cjs.map +1 -1
- package/_cjs/errorReporter.cjs +11 -13
- package/_cjs/errorReporter.cjs.map +1 -1
- package/_cjs/errors.cjs +1 -1
- package/_cjs/errors.cjs.map +1 -1
- package/_cjs/filter.cjs.map +1 -1
- package/_cjs/instrument.cjs +1 -3
- package/_cjs/instrument.cjs.map +1 -1
- package/_cjs/rateLimit.cjs +6 -8
- package/_cjs/rateLimit.cjs.map +1 -1
- package/_cjs/services/Emailer/Sendgrid.cjs +12 -18
- package/_cjs/services/Emailer/Sendgrid.cjs.map +1 -1
- package/_cjs/services/Emailer/fake.cjs +4 -7
- package/_cjs/services/Emailer/fake.cjs.map +1 -1
- package/_cjs/services/Operations/live.cjs +23 -26
- package/_cjs/services/Operations/live.cjs.map +1 -1
- package/_cjs/services/Operations/service.cjs +3 -5
- package/_cjs/services/Operations/service.cjs.map +1 -1
- package/_cjs/services/Repository.cjs +44 -29
- package/_cjs/services/Repository.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos.cjs +56 -60
- package/_cjs/services/Store/Cosmos.cjs.map +1 -1
- package/_cjs/services/Store/Disk.cjs +15 -16
- package/_cjs/services/Store/Disk.cjs.map +1 -1
- package/_cjs/services/Store/Memory.cjs +14 -16
- package/_cjs/services/Store/Memory.cjs.map +1 -1
- package/_cjs/services/Store/Redis.cjs +22 -23
- package/_cjs/services/Store/Redis.cjs.map +1 -1
- package/_cjs/services/Store/codeFilter.test.cjs +1 -1
- package/_cjs/services/Store/codeFilter.test.cjs.map +1 -1
- package/_cjs/services/Store/index.cjs +7 -7
- package/_cjs/services/Store/index.cjs.map +1 -1
- package/_cjs/services/Store/service.cjs +2 -4
- package/_cjs/services/Store/service.cjs.map +1 -1
- package/_cjs/services/Store/utils.cjs +16 -17
- package/_cjs/services/Store/utils.cjs.map +1 -1
- package/_cjs/services/simpledb/cosmosdb.cjs +23 -25
- package/_cjs/services/simpledb/cosmosdb.cjs.map +1 -1
- package/_cjs/services/simpledb/diskdb.cjs +20 -21
- package/_cjs/services/simpledb/diskdb.cjs.map +1 -1
- package/_cjs/services/simpledb/memdb.cjs +10 -10
- package/_cjs/services/simpledb/memdb.cjs.map +1 -1
- package/_cjs/services/simpledb/mongodb.cjs +18 -18
- package/_cjs/services/simpledb/mongodb.cjs.map +1 -1
- package/_cjs/services/simpledb/redisdb.cjs +23 -23
- package/_cjs/services/simpledb/redisdb.cjs.map +1 -1
- package/_cjs/services/simpledb/shared.cjs +4 -6
- package/_cjs/services/simpledb/shared.cjs.map +1 -1
- package/_cjs/services/simpledb/simpledb.cjs +16 -15
- package/_cjs/services/simpledb/simpledb.cjs.map +1 -1
- package/_src/api/defaultErrorHandler.ts +3 -5
- package/_src/api/routing.ts +12 -13
- package/_src/errors.ts +1 -1
- package/_src/filter/types/path/common.ts +9 -9
- package/_src/filter/types/path/eager.ts +12 -12
- package/_src/filter/types/utils.ts +1 -1
- package/_src/filter.ts +7 -11
- package/_src/services/Repository.ts +111 -50
- package/_src/services/Store/Cosmos.ts +14 -14
- package/_src/services/Store/codeFilter.test.ts +37 -30
- package/_src/services/Store/utils.ts +34 -34
- package/_src/services/simpledb/memdb.ts +1 -1
- package/_src/services/simpledb/simpledb.ts +5 -6
- package/dist/RequestContext.d.ts +12 -12
- package/dist/api/codec.js +3 -5
- package/dist/api/defaultErrorHandler.d.ts.map +1 -1
- package/dist/api/defaultErrorHandler.js +22 -23
- package/dist/api/express/makeJsonSchema.js +3 -5
- package/dist/api/express/makeOpenApiSpecs.js +5 -7
- package/dist/api/express/schema/requestHandler.d.ts +5 -5
- package/dist/api/express/schema/requestHandler.js +45 -45
- package/dist/api/express/schema/routing.js +21 -23
- package/dist/api/reportError.js +6 -18
- package/dist/api/routing.d.ts.map +1 -1
- package/dist/api/routing.js +60 -60
- package/dist/api/setupRequest.js +3 -5
- package/dist/api/writeDocs.js +7 -9
- package/dist/errorReporter.js +10 -12
- package/dist/errors.js +2 -2
- package/dist/filter/types/path/common.d.ts.map +1 -1
- package/dist/filter/types/path/eager.d.ts.map +1 -1
- package/dist/filter/types/utils.d.ts.map +1 -1
- package/dist/filter.d.ts.map +1 -1
- package/dist/filter.js +2 -2
- package/dist/instrument.js +2 -4
- package/dist/rateLimit.js +7 -9
- package/dist/services/Emailer/Sendgrid.js +15 -22
- package/dist/services/Emailer/fake.js +5 -8
- package/dist/services/Emailer/service.d.ts +1 -1
- package/dist/services/Operations/live.js +24 -27
- package/dist/services/Operations/service.js +4 -6
- package/dist/services/Repository.d.ts +26 -8
- package/dist/services/Repository.d.ts.map +1 -1
- package/dist/services/Repository.js +41 -25
- package/dist/services/Store/Cosmos.d.ts +1 -1
- package/dist/services/Store/Cosmos.js +66 -68
- package/dist/services/Store/Disk.js +16 -19
- package/dist/services/Store/Memory.d.ts +1 -1
- package/dist/services/Store/Memory.js +16 -18
- package/dist/services/Store/Redis.d.ts +1 -1
- package/dist/services/Store/Redis.js +21 -24
- package/dist/services/Store/codeFilter.test.d.ts.map +1 -1
- package/dist/services/Store/index.js +6 -8
- package/dist/services/Store/service.d.ts +1 -1
- package/dist/services/Store/service.js +3 -5
- package/dist/services/Store/utils.d.ts +2 -2
- package/dist/services/Store/utils.d.ts.map +1 -1
- package/dist/services/Store/utils.js +45 -46
- package/dist/services/simpledb/cosmosdb.d.ts +2 -2
- package/dist/services/simpledb/cosmosdb.js +23 -25
- package/dist/services/simpledb/diskdb.d.ts +2 -2
- package/dist/services/simpledb/diskdb.js +18 -18
- package/dist/services/simpledb/memdb.d.ts +3 -3
- package/dist/services/simpledb/memdb.js +12 -11
- package/dist/services/simpledb/mongodb.d.ts +2 -2
- package/dist/services/simpledb/mongodb.js +18 -18
- package/dist/services/simpledb/redisdb.d.ts +8 -8
- package/dist/services/simpledb/redisdb.js +21 -21
- package/dist/services/simpledb/shared.d.ts +9 -9
- package/dist/services/simpledb/shared.js +5 -7
- package/dist/services/simpledb/simpledb.d.ts +1 -1
- package/dist/services/simpledb/simpledb.d.ts.map +1 -1
- package/dist/services/simpledb/simpledb.js +19 -17
- package/package.json +11 -11
- package/.jest-cache/haste-map-369fa5ca2164cc35b19159bd76147276-e7a7ff05756c055cb63be97ba8537525-314902b6271c341511f7398a50469024 +0 -0
- package/.jest-cache/haste-map-369fa5ca2164cc35b19159bd76147276-e7a7ff05756c055cb63be97ba8537525-3f072cc7afa09b6adaead0527ab9df83 +0 -0
- package/.jest-cache/haste-map-369fa5ca2164cc35b19159bd76147276-e7a7ff05756c055cb63be97ba8537525-74c3c295c110fc861b6a4c673afc3e24 +0 -0
- package/.jest-cache/haste-map-369fa5ca2164cc35b19159bd76147276-e7a7ff05756c055cb63be97ba8537525-bf6dae8cb9ea9740ceb39aefaf12716c +0 -0
- package/.jest-cache/haste-map-369fa5ca2164cc35b19159bd76147276-e7a7ff05756c055cb63be97ba8537525-cf9d1486029526079a5f68f2041dea02 +0 -0
- package/.jest-cache/haste-map-4ca41cc04e60c616a19cbb483cbf487b-e2f1f4b6d87214e3c49442fed31f310c-b4710ed9fb3d0757c4bf23045c585670 +0 -0
- package/.jest-cache/haste-map-4ca41cc04e60c616a19cbb483cbf487b-e2f1f4b6d87214e3c49442fed31f310c-ee17e5395bb1b7b36a4e2e22a6ae1449 +0 -0
- package/.jest-cache/haste-map-7dc16d7fae8c072843ed1c69eae73100-a8a4225b317477b49bca31f54559afb3-c16136699bb7f463be85273162b447c3 +0 -0
- package/.jest-cache/haste-map-9aa1e395a82e108eb49698982c574272-e2f1f4b6d87214e3c49442fed31f310c-f7435f46fc41ac5a13d06a49cae9a650 +0 -0
- package/.jest-cache/haste-map-9d206b45d610536c9ec65eec263c6964-a8a4225b317477b49bca31f54559afb3-3510506a330b44f1ae629033aac8fbb3 +0 -0
- package/.jest-cache/haste-map-a00ab30d0d656f9d3990958a54b9ccfd-87603b0fc921b26b622a5859b4c92bed-17b550b450b18840c25861aa6e835f0c +0 -0
- package/.jest-cache/haste-map-a00ab30d0d656f9d3990958a54b9ccfd-87603b0fc921b26b622a5859b4c92bed-4dc31290b1efc98335eb4c89167d75c3 +0 -0
- package/.jest-cache/haste-map-ab843cb0ffbadfd0deea4adb182c7ecd-87603b0fc921b26b622a5859b4c92bed-997106edf4bbc31567a378146180e45e +0 -0
- package/.jest-cache/haste-map-ab843cb0ffbadfd0deea4adb182c7ecd-87603b0fc921b26b622a5859b4c92bed-f0cd25414f9ed16c446940ca3aa23c1b +0 -0
- package/.jest-cache/haste-map-cf17f2edf0e949eebfdfca561816457c-e7a7ff05756c055cb63be97ba8537525-2cac07d09e6384e2d37c49714edad0ba +0 -0
- package/.jest-cache/haste-map-cf17f2edf0e949eebfdfca561816457c-e7a7ff05756c055cb63be97ba8537525-d7967c2976c5feac7161c964f0aa442f +0 -0
- package/.jest-cache/haste-map-fb1a173276d25bbff02f815600059283-938122bdc1c8836874b6585d7acb2e99-f705929cca05ce95ceaa6d520b560ce8 +0 -0
|
@@ -2,7 +2,7 @@ import * as tracer_1 from "@effect/io/Debug";
|
|
|
2
2
|
const fileName_1 = "packages/infra/_src/services/simpledb/redisdb.ts";
|
|
3
3
|
import * as tsplus_module_1 from "@effect/io/Effect";
|
|
4
4
|
import * as tsplus_module_2 from "@effect-app/core/Effect";
|
|
5
|
-
import * as tsplus_module_3 from "@fp-ts/
|
|
5
|
+
import * as tsplus_module_3 from "@fp-ts/core/Option";
|
|
6
6
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
7
7
|
import { flow, pipe } from "@effect-app/core/Function";
|
|
8
8
|
import * as MO from "@effect-app/schema";
|
|
@@ -12,31 +12,31 @@ import * as simpledb from "./simpledb.js";
|
|
|
12
12
|
const ttl = 10 * 1000;
|
|
13
13
|
export function createContext() {
|
|
14
14
|
return (type, encode, decode, schemaVersion, makeIndexKey) => {
|
|
15
|
-
const getData = flow(encode, _ =>
|
|
15
|
+
const getData = flow(encode, _ => tsplus_module_1.map(_, JSON.stringify));
|
|
16
16
|
return {
|
|
17
17
|
find: simpledb.find(find, decode, type),
|
|
18
18
|
findByIndex: getIdx,
|
|
19
19
|
save: simpledb.store(find, store, lockRedisRecord, type)
|
|
20
20
|
};
|
|
21
21
|
function find(id) {
|
|
22
|
-
return tsplus_module_1.orDie(tracer_1.withCallTrace(fileName_1 + ":30:39")(tsplus_module_2.flatMapOpt(RED.hmgetAll(getKey(id)), v =>
|
|
22
|
+
return tsplus_module_1.orDie(tracer_1.withCallTrace(fileName_1 + ":30:39")(tsplus_module_2.flatMapOpt(RED.hmgetAll(getKey(id)), v => tsplus_module_1.mapError(tsplus_module_1.map(pipe(RedisSerializedDBRecord.Parser, MO.condemnFail)(v), ({ data, version }) => ({
|
|
23
23
|
data: JSON.parse(data),
|
|
24
24
|
version
|
|
25
|
-
}))
|
|
25
|
+
})), e => new ConnectionException(new Error(e.toString()))))));
|
|
26
26
|
}
|
|
27
27
|
function store(record, currentVersion) {
|
|
28
28
|
const version = tsplus_module_3.getOrElse(() => "1")(tsplus_module_3.map(cv => (parseInt(cv) + 1).toString())(currentVersion));
|
|
29
|
-
return tsplus_module_3.match(() => tsplus_module_1.scoped(
|
|
29
|
+
return tsplus_module_3.match(() => tsplus_module_1.scoped(tsplus_module_1.zipRight(lockIndex(record), tsplus_module_1.map(tsplus_module_1.orDie(tsplus_module_1.zipRight(tsplus_module_1.flatMap(tsplus_module_1.zipRight(tracer_1.withCallTrace(fileName_1 + ":50:16")(tsplus_module_2.zipRightOpt(getIndex(record), tsplus_module_1.fail(() => new Error("Combination already exists, abort")))), getData(record))
|
|
30
|
+
// TODO: instead use MULTI & EXEC to make it in one command?
|
|
31
|
+
, data => hmSetRec(getKey(record.id), {
|
|
30
32
|
version,
|
|
31
33
|
timestamp: new Date(),
|
|
32
34
|
data
|
|
33
|
-
}))
|
|
34
|
-
// TODO: instead use MULTI & EXEC to make it in one command?
|
|
35
|
-
))))))(lockIndex(record))), () => tracer_1.withCallTrace(fileName_1 + ":74:20")(tsplus_module_1.map(() => ({ version, data: record })))(tsplus_module_1.orDie(tracer_1.withCallTrace(fileName_1 + ":67:14")(tsplus_module_1.flatMap(data => hmSetRec(getKey(record.id), {
|
|
35
|
+
})), setIndex(record))), () => ({ version, data: record })))), () => tsplus_module_1.map(tsplus_module_1.orDie(tsplus_module_1.flatMap(getData(record), data => hmSetRec(getKey(record.id), {
|
|
36
36
|
version,
|
|
37
37
|
timestamp: new Date(),
|
|
38
38
|
data
|
|
39
|
-
})))(
|
|
39
|
+
}))), () => ({ version, data: record })))(currentVersion);
|
|
40
40
|
}
|
|
41
41
|
function getIndex(record) {
|
|
42
42
|
const index = makeIndexKey(record);
|
|
@@ -51,7 +51,7 @@ export function createContext() {
|
|
|
51
51
|
return lockRedisIdx(index);
|
|
52
52
|
}
|
|
53
53
|
function getIdx(index) {
|
|
54
|
-
return
|
|
54
|
+
return tsplus_module_1.map(RED.hget(getIdxKey(index), index.key), _ => tsplus_module_3.map(i => i)(_));
|
|
55
55
|
}
|
|
56
56
|
function setIdx(index, r) {
|
|
57
57
|
return RED.hset(getIdxKey(index), index.key, r.id);
|
|
@@ -59,20 +59,20 @@ export function createContext() {
|
|
|
59
59
|
function lockRedisIdx(index) {
|
|
60
60
|
const lockKey = getIdxLockKey(index);
|
|
61
61
|
// acquire
|
|
62
|
-
return
|
|
62
|
+
return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(tsplus_module_1.flatMap(RED.lock, lock => tsplus_module_1.tryPromise(() => lock.lock(lockKey, ttl))), err => new CouldNotAquireDbLockException(type, lockKey, err),
|
|
63
63
|
// release
|
|
64
64
|
lock => ({
|
|
65
|
-
release: tsplus_module_1.orDie(
|
|
66
|
-
}))
|
|
65
|
+
release: tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => lock.unlock()))
|
|
66
|
+
})), l => l.release);
|
|
67
67
|
}
|
|
68
68
|
function lockRedisRecord(id) {
|
|
69
69
|
// acquire
|
|
70
|
-
return
|
|
70
|
+
return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(tsplus_module_1.flatMap(RED.lock, lock => tsplus_module_1.tryPromise(() => lock.lock(getLockKey(id), ttl))), err => new CouldNotAquireDbLockException(type, id, err),
|
|
71
71
|
// release
|
|
72
72
|
lock => ({
|
|
73
73
|
// TODO
|
|
74
|
-
release: tsplus_module_1.orDie(
|
|
75
|
-
}))
|
|
74
|
+
release: tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => lock.unlock()))
|
|
75
|
+
})), l => l.release);
|
|
76
76
|
}
|
|
77
77
|
function getKey(id) {
|
|
78
78
|
return `v${schemaVersion}.${getRecordName(type, id)}`;
|
|
@@ -89,11 +89,11 @@ export function createContext() {
|
|
|
89
89
|
};
|
|
90
90
|
function hmSetRec(key, val) {
|
|
91
91
|
const enc = RedisSerializedDBRecord.Encoder(val);
|
|
92
|
-
return
|
|
92
|
+
return tsplus_module_1.flatMap(RED.client, client => tsplus_module_1.uninterruptible(tsplus_module_1.async(res => {
|
|
93
93
|
client.hmset(key, "version", enc.version, "timestamp", enc.timestamp, "data", enc.data, err => err
|
|
94
|
-
? res(
|
|
95
|
-
: res(
|
|
96
|
-
})))
|
|
94
|
+
? res(tsplus_module_1.fail(new ConnectionException(err)))
|
|
95
|
+
: res(tsplus_module_1.sync(() => void 0)));
|
|
96
|
+
})));
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
export class RedisSerializedDBRecord extends MO.Model()({
|
|
@@ -102,4 +102,4 @@ export class RedisSerializedDBRecord extends MO.Model()({
|
|
|
102
102
|
data: MO.prop(MO.string)
|
|
103
103
|
}) {
|
|
104
104
|
}
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXNkYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvc2ltcGxlZGIvcmVkaXNkYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHVEQUF1RDtBQUV2RCxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ3RELE9BQU8sS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFHeEMsT0FBTyxLQUFLLEdBQUcsTUFBTSx5Q0FBeUMsQ0FBQTtBQUU5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsNkJBQTZCLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUM3RyxPQUFPLEtBQUssUUFBUSxNQUFNLGVBQWUsQ0FBQTtBQUV6QyxNQUFNLEdBQUcsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFBO0FBRXJCLE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sQ0FDTCxJQUFZLEVBQ1osTUFBaUQsRUFDakQsTUFBOEMsRUFDOUMsYUFBcUIsRUFDckIsWUFBNkIsRUFDN0IsRUFBRTtRQUNGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxvQkFBQSxDQUFDLEVBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUE7UUFDeEQsT0FBTztZQUNMLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDO1lBQ3ZDLFdBQVcsRUFBRSxNQUFNO1lBQ25CLElBQUksRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLElBQUksQ0FBQztTQUN6RCxDQUFBO1FBRUQsU0FBUyxJQUFJLENBQUMsRUFBVTtZQUN0QiwyRUFBTywyQkFBQSxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMs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
|
|
@@ -28,20 +28,20 @@ export interface DBRecord<TKey extends string> {
|
|
|
28
28
|
id: TKey;
|
|
29
29
|
}
|
|
30
30
|
declare const SerializedDBRecord_base: MO.Model<SerializedDBRecord, MO.SchemaProperties<{
|
|
31
|
-
version: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("@fp-ts/
|
|
32
|
-
timestamp: MO.Property<MO.SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("@fp-ts/
|
|
33
|
-
data: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("@fp-ts/
|
|
31
|
+
version: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
|
|
32
|
+
timestamp: MO.Property<MO.SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
|
|
33
|
+
data: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
|
|
34
34
|
}>> & MO.PropsExtensions<{
|
|
35
|
-
version: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("@fp-ts/
|
|
36
|
-
timestamp: MO.Property<MO.SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("@fp-ts/
|
|
37
|
-
data: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("@fp-ts/
|
|
35
|
+
version: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
|
|
36
|
+
timestamp: MO.Property<MO.SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
|
|
37
|
+
data: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
|
|
38
38
|
}>;
|
|
39
39
|
export declare class SerializedDBRecord extends SerializedDBRecord_base {
|
|
40
40
|
}
|
|
41
41
|
export declare function makeSerialisedDBRecord(s: SchemaAny): MO.SchemaProperties<{
|
|
42
|
-
version: MO.Property<MO.SchemaDefaultSchema<unknown, number, number, number, {}>, "required", import("@fp-ts/
|
|
43
|
-
timestamp: MO.Property<MO.SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("@fp-ts/
|
|
44
|
-
data: MO.Property<MO.SchemaAny, "required", import("@fp-ts/
|
|
42
|
+
version: MO.Property<MO.SchemaDefaultSchema<unknown, number, number, number, {}>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
|
|
43
|
+
timestamp: MO.Property<MO.SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
|
|
44
|
+
data: MO.Property<MO.SchemaAny, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
|
|
45
45
|
}>;
|
|
46
46
|
export interface CachedRecord<T> {
|
|
47
47
|
version: string;
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
const fileName_1 = "packages/infra/_src/services/simpledb/shared.ts";
|
|
3
|
-
import * as tsplus_module_1 from "@fp-ts/data/Option";
|
|
1
|
+
import * as tsplus_module_1 from "@fp-ts/core/Option";
|
|
4
2
|
import * as tsplus_module_2 from "@effect/io/Effect";
|
|
5
3
|
import * as MO from "@effect-app/schema";
|
|
6
4
|
class BaseError {
|
|
@@ -55,11 +53,11 @@ export function getRecordName(type, id) {
|
|
|
55
53
|
export function makeMap() {
|
|
56
54
|
const map = new Map();
|
|
57
55
|
return {
|
|
58
|
-
find: (k) =>
|
|
56
|
+
find: (k) => tsplus_module_2.sync(() => tsplus_module_1.fromNullable(map.get(k))),
|
|
59
57
|
[Symbol.iterator]: () => map[Symbol.iterator](),
|
|
60
|
-
set: (k, v) =>
|
|
58
|
+
set: (k, v) => tsplus_module_2.sync(() => {
|
|
61
59
|
map.set(k, v);
|
|
62
|
-
})
|
|
60
|
+
})
|
|
63
61
|
};
|
|
64
62
|
}
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vX3NyYy9zZXJ2aWNlcy9zaW1wbGVkYi9zaGFyZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBR3hDLE1BQU0sU0FBUztJQUNiLFlBQW1CLE9BQWU7UUFBZixZQUFPLEdBQVAsT0FBTyxDQUFRO0lBQUcsQ0FBQztDQUN2QztBQUNELE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxTQUFTO0lBRTFELFlBQXFCLElBQVksRUFBVyxFQUFVLEVBQVcsS0FBWTtRQUMzRSxLQUFLLENBQUMsMkJBQTJCLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRDVCLFNBQUksR0FBSixJQUFJLENBQVE7UUFBVyxPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQVcsVUFBSyxHQUFMLEtBQUssQ0FBTztRQURwRSxjQUFTLEdBQUcsK0JBQStCLENBQUE7SUFHcEQsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLHVCQUF3QixTQUFRLEtBQUs7SUFFaEQsWUFBcUIsSUFBWSxFQUFXLEVBQVU7UUFDcEQsS0FBSyxDQUFDLFlBQVksSUFBSSxJQUFJLEVBQUUsaUJBQWlCLENBQUMsQ0FBQTtRQUQzQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQVcsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUQ3QyxjQUFTLEdBQUcseUJBQXlCLENBQUE7SUFHOUMsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLEtBQUs7SUFFNUMsWUFBcUIsS0FBWTtRQUMvQixLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQTtRQURoQixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBRHhCLGNBQVMsR0FBRyxxQkFBcUIsQ0FBQTtJQUcxQyxDQUFDO0NBQ0Y7QUFNRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsRUFBRSxDQUFDLEtBQUssRUFBc0IsQ0FBQztJQUNyRSxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQzNCLFNBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDM0IsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQztDQUN6QixDQUFDO0NBQUc7QUFFTCw0QkFBNEI7QUFDNUIsTUFBTSxVQUFVLHNCQUFzQixDQUFDLENBQVk7SUFDakQsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ2QsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQztRQUMzQixTQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQzNCLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztLQUNqQixDQUFDLENBQUE7QUFDSixDQUFDO0FBWUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxJQUFZLEVBQUUsRUFBVTtJQUNuRCxPQUFPLEdBQUcsSUFBSSxRQUFRLEVBQUUsRUFBRSxDQUFBO0FBQzVCLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLElBQVksRUFBRSxFQUFVO0lBQ3BELE9BQU8sR0FBRyxJQUFJLE1BQU0sRUFBRSxFQUFFLENBQUE7QUFDMUIsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPO0lBQ3JCLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFXLENBQUE7SUFDOUIsT0FBTztRQUNMLElBQUksRUFBRSxDQUFDLENBQU8sRUFBRSxFQUFFLENBQUMscUJBQU8sR0FBRyxFQUFFLENBQUMsNkJBQWlCLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RCxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQy9DLEdBQUcsRUFBRSxDQUFDLENBQU8sRUFBRSxDQUFJLEVBQUUsRUFBRSxDQUNyQixxQkFBTyxHQUFHLEVBQUU7WUFDVixHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUNmLENBQUMsQ0FBQztLQUNpQixDQUFBO0FBQ3pCLENBQUMifQ==
|
|
@@ -17,7 +17,7 @@ export interface RecordCache extends ReturnType<typeof makeLiveRecordCache> {
|
|
|
17
17
|
}
|
|
18
18
|
export declare const RecordCache: import("@fp-ts/data/Context").Tag<RecordCache>;
|
|
19
19
|
export declare const LiveRecordCache: import("@effect/io/Layer").Layer<never, never, RecordCache>;
|
|
20
|
-
export declare function find<R, RDecode, EDecode, E, EA, A>(tryRead: (id: string) => Effect<R, E, Opt<CachedRecord<EA>>>, decode: (d: EA) => Effect<RDecode, EDecode, A>, type: string): (id: string) => import("@effect/io/Effect").Effect<RecordCache | R | RDecode, InvalidStateError | E, import("@fp-ts/
|
|
20
|
+
export declare function find<R, RDecode, EDecode, E, EA, A>(tryRead: (id: string) => Effect<R, E, Opt<CachedRecord<EA>>>, decode: (d: EA) => Effect<RDecode, EDecode, A>, type: string): (id: string) => import("@effect/io/Effect").Effect<RecordCache | R | RDecode, InvalidStateError | E, import("@fp-ts/core/Option").Option<A>>;
|
|
21
21
|
export declare function storeDirectly<R, E, TKey extends string, A extends DBRecord<TKey>>(save: (r: A, version: Opt<Version>) => Effect<R, E, CachedRecord<A>>, type: string): (record: A) => import("@effect/io/Effect").Effect<RecordCache | R, E, A>;
|
|
22
22
|
export declare function store<R, E, R2, E2, TKey extends string, EA, A extends DBRecord<TKey>>(tryRead: (id: string) => Effect<R, E, Opt<CachedRecord<EA>>>, save: (r: A, version: Opt<Version>) => Effect<R, E, CachedRecord<A>>, lock: (id: string) => Effect<R2 | Scope, E2, unknown>, type: string): (record: A) => import("@effect/io/Effect").Effect<RecordCache | R | Exclude<R2, import("@effect/io/Scope").Scope>, OptimisticLockException | InvalidStateError | E | E2, A>;
|
|
23
23
|
//# sourceMappingURL=simpledb.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simpledb.d.ts","sourceRoot":"","sources":["../../../_src/services/simpledb/simpledb.ts"],"names":[],"mappings":";;;AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACpE,OAAO,EAAW,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAE9D,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAC5B,qBAAa,iBAAiB;IAEhB,QAAQ,CAAC,OAAO,EAAE,MAAM;IAAE,QAAQ,CAAC,OAAO,CAAC;IADvD,QAAQ,CAAC,IAAI,uBAAsB;gBACd,OAAO,EAAE,MAAM,EAAW,OAAO,CAAC,SAAS;CACjE;AAED,wBAAgB,mBAAmB;mBAGhB,MAAM;EAWxB;AAED,MAAM,WAAW,WAAY,SAAQ,UAAU,CAAC,OAAO,mBAAmB,CAAC;CAAG;AAG9E,eAAO,MAAM,WAAW,gDAAqB,CAAA;AAE7C,eAAO,MAAM,eAAe,6DAAqD,CAAA;
|
|
1
|
+
{"version":3,"file":"simpledb.d.ts","sourceRoot":"","sources":["../../../_src/services/simpledb/simpledb.ts"],"names":[],"mappings":";;;AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACpE,OAAO,EAAW,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAE9D,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAC5B,qBAAa,iBAAiB;IAEhB,QAAQ,CAAC,OAAO,EAAE,MAAM;IAAE,QAAQ,CAAC,OAAO,CAAC;IADvD,QAAQ,CAAC,IAAI,uBAAsB;gBACd,OAAO,EAAE,MAAM,EAAW,OAAO,CAAC,SAAS;CACjE;AAED,wBAAgB,mBAAmB;mBAGhB,MAAM;EAWxB;AAED,MAAM,WAAW,WAAY,SAAQ,UAAU,CAAC,OAAO,mBAAmB,CAAC;CAAG;AAG9E,eAAO,MAAM,WAAW,gDAAqB,CAAA;AAE7C,eAAO,MAAM,eAAe,6DAAqD,CAAA;AAQjF,wBAAgB,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAChD,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAC5D,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,EAC9C,IAAI,EAAE,MAAM,QAcA,MAAM,kIAOnB;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,SAAS,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,IAAI,CAAC,EAC/E,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,EACpE,IAAI,EAAE,MAAM,YAGI,CAAC,+DASlB;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,SAAS,MAAM,EAAE,EAAE,EAAE,CAAC,SAAS,QAAQ,CAAC,IAAI,CAAC,EACnF,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAC5D,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,EACpE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,EACrD,IAAI,EAAE,MAAM,YAGI,CAAC,kKA4BlB"}
|
|
@@ -3,7 +3,8 @@ const fileName_1 = "packages/infra/_src/services/simpledb/simpledb.ts";
|
|
|
3
3
|
import * as tsplus_module_1 from "@effect/io/Effect";
|
|
4
4
|
import * as tsplus_module_2 from "@fp-ts/data/Context";
|
|
5
5
|
import * as tsplus_module_3 from "@effect-app/core/Effect";
|
|
6
|
-
import * as tsplus_module_4 from "@
|
|
6
|
+
import * as tsplus_module_4 from "@effect-app/core/Option";
|
|
7
|
+
import * as tsplus_module_5 from "@fp-ts/core/Option";
|
|
7
8
|
import { makeMap, OptimisticLockException } from "./shared.js";
|
|
8
9
|
export class InvalidStateError {
|
|
9
10
|
constructor(message, details) {
|
|
@@ -15,7 +16,7 @@ export class InvalidStateError {
|
|
|
15
16
|
export function makeLiveRecordCache() {
|
|
16
17
|
const m = new Map();
|
|
17
18
|
return {
|
|
18
|
-
get: (type) =>
|
|
19
|
+
get: (type) => tsplus_module_1.sync(() => {
|
|
19
20
|
const ex = m.get(type);
|
|
20
21
|
if (!ex) {
|
|
21
22
|
const nm = makeMap();
|
|
@@ -23,34 +24,35 @@ export function makeLiveRecordCache() {
|
|
|
23
24
|
return nm;
|
|
24
25
|
}
|
|
25
26
|
return ex;
|
|
26
|
-
})
|
|
27
|
+
})
|
|
27
28
|
};
|
|
28
29
|
}
|
|
29
30
|
// module tag
|
|
30
31
|
export const RecordCache = tsplus_module_2.Tag();
|
|
31
|
-
export const LiveRecordCache =
|
|
32
|
-
const getM = (type) => (eff) =>
|
|
32
|
+
export const LiveRecordCache = tsplus_module_1.toLayer(tsplus_module_1.sync(() => makeLiveRecordCache()), RecordCache);
|
|
33
|
+
const getM = (type) => (eff) => tsplus_module_1.gen(function* ($) {
|
|
33
34
|
const { get } = yield* $(tsplus_module_1.service(RecordCache));
|
|
34
|
-
return yield* $(
|
|
35
|
-
})
|
|
35
|
+
return yield* $(tsplus_module_1.flatMap(get(type), eff));
|
|
36
|
+
});
|
|
36
37
|
export function find(tryRead, decode, type) {
|
|
37
38
|
const getCache = getM(type);
|
|
38
|
-
const read = (id) => tracer_1.withCallTrace(fileName_1 + ":
|
|
39
|
-
return (id) => getCache(c =>
|
|
40
|
-
.find(id), existing => existing.data))));
|
|
39
|
+
const read = (id) => tracer_1.withCallTrace(fileName_1 + ":54:8")(tsplus_module_3.mapOpt(tracer_1.withCallTrace(fileName_1 + ":53:8")(tsplus_module_3.tapOpt(tracer_1.withCallTrace(fileName_1 + ":47:8")(tsplus_module_3.flatMapOpt(tryRead(id), ({ data, version }) => tsplus_module_1.mapBoth(decode(data), err => new InvalidStateError("DB serialisation Issue", err), data => ({ data, version })))), r => getCache(c => c.set(id, r)))), r => r.data));
|
|
40
|
+
return (id) => getCache(c => tsplus_module_1.orElse(tracer_1.withCallTrace(fileName_1 + ":60:10")(tsplus_module_3.mapOpt(c
|
|
41
|
+
.find(id), existing => existing.data)), () => read(id)));
|
|
41
42
|
}
|
|
42
43
|
export function storeDirectly(save, type) {
|
|
43
44
|
const getCache = getM(type);
|
|
44
|
-
return (record) => getCache(c =>
|
|
45
|
-
.find(record.id), x => x.version))))));
|
|
45
|
+
return (record) => getCache(c => tsplus_module_1.map(tsplus_module_1.tap(tsplus_module_1.flatMap(tracer_1.withCallTrace(fileName_1 + ":74:10")(tsplus_module_3.mapOpt(c
|
|
46
|
+
.find(record.id), x => x.version)), cv => save(record, cv)), r => c.set(record.id, r)), r => r.data));
|
|
46
47
|
}
|
|
47
48
|
export function store(tryRead, save, lock, type) {
|
|
48
49
|
const getCache = getM(type);
|
|
49
|
-
return (record) => getCache(c =>
|
|
50
|
-
.find(record.id), x => x.version))))));
|
|
50
|
+
return (record) => getCache(c => tsplus_module_1.map(tsplus_module_1.tap(tsplus_module_1.flatMap(tracer_1.withCallTrace(fileName_1 + ":92:10")(tsplus_module_3.mapOpt(c
|
|
51
|
+
.find(record.id), x => x.version)), _ => tsplus_module_5.match(() => save(record, tsplus_module_4.none), confirmVersionAndSave(record))(_)), r => c.set(record.id, r)), r => r.data));
|
|
51
52
|
function confirmVersionAndSave(record) {
|
|
52
|
-
return (cv) => tsplus_module_1.scoped(
|
|
53
|
-
?
|
|
53
|
+
return (cv) => tsplus_module_1.scoped(tsplus_module_1.zipRight(lock(record.id), tsplus_module_1.zipRight(tsplus_module_1.tap(tsplus_module_1.flatMap(tryRead(record.id), _ => tsplus_module_5.match(() => tsplus_module_1.fail(new InvalidStateError("record is gone")), tsplus_module_1.succeed)(_)), ({ version }) => version !== cv
|
|
54
|
+
? tsplus_module_1.fail(new OptimisticLockException(type, record.id))
|
|
55
|
+
: tsplus_module_3.unit), save(record, tsplus_module_5.some(cv)))));
|
|
54
56
|
}
|
|
55
57
|
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL3NpbXBsZWRiL3NpbXBsZWRiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRzlELE1BQU0sT0FBTyxpQkFBaUI7SUFFNUIsWUFBcUIsT0FBZSxFQUFXLE9BQWlCO1FBQTNDLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFBVyxZQUFPLEdBQVAsT0FBTyxDQUFVO1FBRHZELFNBQUksR0FBRyxtQkFBbUIsQ0FBQTtJQUNnQyxDQUFDO0NBQ3JFO0FBRUQsTUFBTSxVQUFVLG1CQUFtQjtJQUNqQyxNQUFNLENBQUMsR0FBRyxJQUFJLEdBQUcsRUFBc0MsQ0FBQTtJQUN2RCxPQUFPO1FBQ0wsR0FBRyxFQUFFLENBQUksSUFBWSxFQUFFLEVBQUUsQ0FDdkIscUJBQU8sR0FBRyxFQUFFO1lBQ1YsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUN0QixJQUFJLENBQUMsRUFBRSxFQUFFO2dCQUNQLE1BQU0sRUFBRSxHQUFHLE9BQU8sRUFBbUIsQ0FBQTtnQkFDckMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUE7Z0JBQ2YsT0FBTyxFQUF3QyxDQUFBO2FBQ2hEO1lBQ0QsT0FBTyxFQUF3QyxDQUFBO1FBQ2pELENBQUMsQ0FBQztLQUNMLENBQUE7QUFDSCxDQUFDO0FBSUQsYUFBYTtBQUNiLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxnQkFBQSxHQUFHLEVBQWUsQ0FBQTtBQUU3QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsd0JBQUEsMkJBQU8sbUJBQW1CLEVBQUUsQ0FBQyxFQUFTLFdBQVcsQ0FBQyxDQUFBO0FBRWpGLE1BQU0sSUFBSSxHQUFHLENBQUksSUFBWSxFQUFF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
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@azure/cosmos": "^3.17.2",
|
|
8
|
-
"@effect/io": "^0.0
|
|
9
|
-
"@fp-ts/core": "^0.
|
|
10
|
-
"@fp-ts/data": "^0.0
|
|
8
|
+
"@effect/io": "^0.1.0",
|
|
9
|
+
"@fp-ts/core": "^0.1.1",
|
|
10
|
+
"@fp-ts/data": "^0.1.0",
|
|
11
11
|
"@sendgrid/helpers": "^7.7.0",
|
|
12
12
|
"@sendgrid/mail": "^7.7.0",
|
|
13
13
|
"change-case": "^4.1.2",
|
|
@@ -19,15 +19,15 @@
|
|
|
19
19
|
"proper-lockfile": "^4.1.2",
|
|
20
20
|
"pure-rand": "^6.0.0",
|
|
21
21
|
"redlock": "^4.2.0",
|
|
22
|
-
"@effect-app/prelude": "0.
|
|
23
|
-
"@effect-app/core": "0.
|
|
24
|
-
"@effect-app/infra-adapters": "0.
|
|
25
|
-
"@effect-app/schema": "0.
|
|
22
|
+
"@effect-app/prelude": "0.12.0",
|
|
23
|
+
"@effect-app/core": "0.12.0",
|
|
24
|
+
"@effect-app/infra-adapters": "0.12.0",
|
|
25
|
+
"@effect-app/schema": "0.12.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@babel/cli": "^7.20.7",
|
|
29
|
-
"@sentry/node": "^7.
|
|
30
|
-
"@types/express": "^4.17.
|
|
29
|
+
"@sentry/node": "^7.34.0",
|
|
30
|
+
"@types/express": "^4.17.16",
|
|
31
31
|
"@types/node": "~18.11.18",
|
|
32
32
|
"@types/proper-lockfile": "^4.1.2",
|
|
33
33
|
"@types/redis": "^2.8.32",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"redis": "^3.1.2",
|
|
42
42
|
"ts-node": "^10.9.1",
|
|
43
43
|
"typescript": "https://cdn.jsdelivr.net/npm/@tsplus/installer@0.0.164/compiler/typescript.tgz",
|
|
44
|
-
"vitest": "^0.
|
|
44
|
+
"vitest": "^0.28.2",
|
|
45
45
|
"@effect-app/compiler": "0.7.2"
|
|
46
46
|
},
|
|
47
47
|
"typesVersions": {
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|