@effect-app/infra 0.83.12 → 0.84.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/_cjs/_ext/Array.cjs +3 -2
- package/_cjs/_ext/Array.cjs.map +1 -1
- package/_cjs/api/defaultErrorHandler.cjs +11 -10
- package/_cjs/api/defaultErrorHandler.cjs.map +1 -1
- package/_cjs/api/express/makeJsonSchema.cjs +3 -2
- package/_cjs/api/express/makeJsonSchema.cjs.map +1 -1
- package/_cjs/api/express/makeJsonSchema.test.cjs +2 -2
- package/_cjs/api/express/makeJsonSchema.test.cjs.map +1 -1
- package/_cjs/api/express/makeOpenApiSpecs.cjs +6 -4
- package/_cjs/api/express/makeOpenApiSpecs.cjs.map +1 -1
- package/_cjs/api/express/schema/requestHandler.cjs +25 -23
- package/_cjs/api/express/schema/requestHandler.cjs.map +1 -1
- package/_cjs/api/express/schema/routing.cjs +22 -20
- package/_cjs/api/express/schema/routing.cjs.map +1 -1
- package/_cjs/api/reportError.cjs +2 -2
- package/_cjs/api/routing.cjs +56 -53
- package/_cjs/api/routing.cjs.map +1 -1
- package/_cjs/api/setupRequest.cjs +3 -2
- package/_cjs/api/setupRequest.cjs.map +1 -1
- package/_cjs/api/writeDocs.cjs +6 -4
- package/_cjs/api/writeDocs.cjs.map +1 -1
- package/_cjs/errorReporter.cjs +12 -11
- package/_cjs/errorReporter.cjs.map +1 -1
- package/_cjs/errors.cjs +8 -8
- package/_cjs/errors.cjs.map +1 -1
- package/_cjs/instrument.cjs +2 -1
- package/_cjs/instrument.cjs.map +1 -1
- package/_cjs/logger/jsonLogger.cjs +11 -10
- package/_cjs/logger/jsonLogger.cjs.map +1 -1
- package/_cjs/logger/logFmtLogger.cjs +5 -5
- package/_cjs/logger/logFmtLogger.cjs.map +1 -1
- package/_cjs/logger/shared.cjs +4 -4
- package/_cjs/logger/shared.cjs.map +1 -1
- package/_cjs/rateLimit.cjs +8 -7
- package/_cjs/rateLimit.cjs.map +1 -1
- package/_cjs/services/Emailer/Sendgrid.cjs +14 -12
- package/_cjs/services/Emailer/Sendgrid.cjs.map +1 -1
- package/_cjs/services/Emailer/fake.cjs +5 -4
- package/_cjs/services/Emailer/fake.cjs.map +1 -1
- package/_cjs/services/Operations/live.cjs +31 -29
- package/_cjs/services/Operations/live.cjs.map +1 -1
- package/_cjs/services/Operations/service.cjs +6 -5
- package/_cjs/services/Operations/service.cjs.map +1 -1
- package/_cjs/services/QueueMaker/errors.cjs +7 -6
- package/_cjs/services/QueueMaker/errors.cjs.map +1 -1
- package/_cjs/services/QueueMaker/memQueue.cjs +18 -17
- package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
- package/_cjs/services/QueueMaker/sbqueue.cjs +16 -15
- package/_cjs/services/QueueMaker/sbqueue.cjs.map +1 -1
- package/_cjs/services/Repository.cjs +17 -16
- package/_cjs/services/Repository.cjs.map +1 -1
- package/_cjs/services/RepositoryBase.cjs +35 -33
- package/_cjs/services/RepositoryBase.cjs.map +1 -1
- package/_cjs/services/RequestContextContainer.cjs +12 -10
- package/_cjs/services/RequestContextContainer.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos.cjs +49 -46
- package/_cjs/services/Store/Cosmos.cjs.map +1 -1
- package/_cjs/services/Store/Disk.cjs +19 -18
- package/_cjs/services/Store/Disk.cjs.map +1 -1
- package/_cjs/services/Store/Memory.cjs +43 -39
- package/_cjs/services/Store/Memory.cjs.map +1 -1
- package/_cjs/services/Store/Redis.cjs +16 -14
- package/_cjs/services/Store/Redis.cjs.map +1 -1
- package/_cjs/services/Store/codeFilter.test.cjs +1 -1
- package/_cjs/services/Store/index.cjs +7 -6
- package/_cjs/services/Store/index.cjs.map +1 -1
- package/_cjs/services/Store/service.cjs +1 -1
- package/_cjs/services/Store/service.cjs.map +1 -1
- package/_cjs/services/Store/utils.cjs +13 -13
- package/_cjs/services/Store/utils.cjs.map +1 -1
- package/_cjs/services/simpledb/cosmosdb.cjs +19 -17
- package/_cjs/services/simpledb/cosmosdb.cjs.map +1 -1
- package/_cjs/services/simpledb/diskdb.cjs +9 -8
- package/_cjs/services/simpledb/diskdb.cjs.map +1 -1
- package/_cjs/services/simpledb/memdb.cjs +11 -9
- package/_cjs/services/simpledb/memdb.cjs.map +1 -1
- package/_cjs/services/simpledb/mongodb.cjs +20 -18
- package/_cjs/services/simpledb/mongodb.cjs.map +1 -1
- package/_cjs/services/simpledb/redisdb.cjs +11 -10
- package/_cjs/services/simpledb/redisdb.cjs.map +1 -1
- package/_cjs/services/simpledb/shared.cjs +5 -5
- package/_cjs/services/simpledb/shared.cjs.map +1 -1
- package/_cjs/services/simpledb/simpledb.cjs +18 -17
- package/_cjs/services/simpledb/simpledb.cjs.map +1 -1
- package/_src/api/authorization.jwt.ts +1 -1
- package/_src/api/defaultErrorHandler.ts +2 -2
- package/_src/api/express/routing.ts.bak +8 -8
- package/_src/api/express/schema/requestHandler.ts +12 -12
- package/_src/api/express/schema/routing.ts +11 -11
- package/_src/api/routing.ts +14 -13
- package/_src/errorReporter.ts +1 -1
- package/_src/services/Emailer/Sendgrid.ts +1 -1
- package/_src/services/Operations/live.ts +5 -5
- package/_src/services/QueueMaker/errors.ts +1 -1
- package/_src/services/QueueMaker/memQueue.ts +2 -2
- package/_src/services/QueueMaker/sbqueue.ts +1 -1
- package/_src/services/Repository.ts +9 -9
- package/_src/services/RepositoryBase.ts +8 -6
- package/_src/services/RequestContextContainer.ts +1 -1
- package/_src/services/Store/Cosmos.ts +17 -12
- package/_src/services/Store/Disk.ts +4 -4
- package/_src/services/Store/Memory.ts +4 -4
- package/_src/services/Store/Redis.ts +1 -1
- package/_src/services/Store/index.test.ts.bak +5 -5
- package/_src/services/Store/index.ts +1 -1
- package/_src/services/Store/utils.ts +16 -16
- package/_src/services/simpledb/diskdb.ts +1 -1
- package/_src/services/simpledb/memdb.ts +1 -1
- package/_src/services/simpledb/redisdb.ts +1 -1
- package/_src/services/simpledb/shared.ts +1 -1
- package/_src/services/simpledb/simpledb.ts +3 -3
- package/dist/RequestContext.d.ts +20 -20
- package/dist/_ext/Array.d.ts +1 -1
- package/dist/_ext/Array.d.ts.map +1 -1
- package/dist/_ext/Array.js +4 -3
- package/dist/api/codec.d.ts +1 -1
- package/dist/api/codec.d.ts.map +1 -1
- package/dist/api/defaultErrorHandler.d.ts +2 -2
- package/dist/api/defaultErrorHandler.d.ts.map +1 -1
- package/dist/api/defaultErrorHandler.js +13 -11
- package/dist/api/express/makeJsonSchema.d.ts +2 -2
- package/dist/api/express/makeJsonSchema.d.ts.map +1 -1
- package/dist/api/express/makeJsonSchema.js +4 -3
- package/dist/api/express/makeOpenApiSpecs.d.ts +1 -1
- package/dist/api/express/makeOpenApiSpecs.js +7 -5
- package/dist/api/express/schema/requestHandler.d.ts +8 -8
- package/dist/api/express/schema/requestHandler.d.ts.map +1 -1
- package/dist/api/express/schema/requestHandler.js +36 -34
- package/dist/api/express/schema/routing.d.ts +2 -2
- package/dist/api/express/schema/routing.js +23 -21
- package/dist/api/reportError.d.ts +5 -5
- package/dist/api/reportError.d.ts.map +1 -1
- package/dist/api/reportError.js +2 -2
- package/dist/api/routing.d.ts +6 -6
- package/dist/api/routing.d.ts.map +1 -1
- package/dist/api/routing.js +60 -57
- package/dist/api/setupRequest.d.ts +2 -2
- package/dist/api/setupRequest.d.ts.map +1 -1
- package/dist/api/setupRequest.js +4 -3
- package/dist/api/writeDocs.d.ts +1 -1
- package/dist/api/writeDocs.d.ts.map +1 -1
- package/dist/api/writeDocs.js +7 -5
- package/dist/errorReporter.d.ts +3 -3
- package/dist/errorReporter.d.ts.map +1 -1
- package/dist/errorReporter.js +13 -12
- package/dist/errors.d.ts +7 -7
- package/dist/errors.js +9 -9
- package/dist/filter.d.ts.map +1 -1
- package/dist/instrument.d.ts +1 -1
- package/dist/instrument.d.ts.map +1 -1
- package/dist/instrument.js +3 -2
- package/dist/logger/jsonLogger.d.ts +2 -2
- package/dist/logger/jsonLogger.d.ts.map +1 -1
- package/dist/logger/jsonLogger.js +12 -11
- package/dist/logger/logFmtLogger.d.ts +2 -2
- package/dist/logger/logFmtLogger.d.ts.map +1 -1
- package/dist/logger/logFmtLogger.js +6 -6
- package/dist/logger/shared.d.ts +1 -1
- package/dist/logger/shared.d.ts.map +1 -1
- package/dist/logger/shared.js +5 -5
- package/dist/rateLimit.d.ts +4 -4
- package/dist/rateLimit.d.ts.map +1 -1
- package/dist/rateLimit.js +9 -8
- package/dist/services/Emailer/Sendgrid.d.ts +1 -1
- package/dist/services/Emailer/Sendgrid.d.ts.map +1 -1
- package/dist/services/Emailer/Sendgrid.js +17 -15
- package/dist/services/Emailer/fake.d.ts +1 -1
- package/dist/services/Emailer/fake.d.ts.map +1 -1
- package/dist/services/Emailer/fake.js +6 -5
- package/dist/services/Emailer/service.d.ts +4 -4
- package/dist/services/Operations/live.d.ts +1 -1
- package/dist/services/Operations/live.d.ts.map +1 -1
- package/dist/services/Operations/live.js +39 -37
- package/dist/services/Operations/service.d.ts +9 -9
- package/dist/services/Operations/service.d.ts.map +1 -1
- package/dist/services/Operations/service.js +13 -12
- package/dist/services/QueueMaker/errors.d.ts +5 -5
- package/dist/services/QueueMaker/errors.d.ts.map +1 -1
- package/dist/services/QueueMaker/errors.js +7 -6
- package/dist/services/QueueMaker/memQueue.d.ts +3 -3
- package/dist/services/QueueMaker/memQueue.js +17 -16
- package/dist/services/QueueMaker/sbqueue.d.ts +4 -4
- package/dist/services/QueueMaker/sbqueue.d.ts.map +1 -1
- package/dist/services/QueueMaker/sbqueue.js +16 -15
- package/dist/services/Repository.d.ts +32 -32
- package/dist/services/Repository.d.ts.map +1 -1
- package/dist/services/Repository.js +18 -17
- package/dist/services/RepositoryBase.d.ts +32 -83
- package/dist/services/RepositoryBase.d.ts.map +1 -1
- package/dist/services/RepositoryBase.js +37 -35
- package/dist/services/RequestContextContainer.d.ts +9 -9
- package/dist/services/RequestContextContainer.d.ts.map +1 -1
- package/dist/services/RequestContextContainer.js +15 -13
- package/dist/services/Store/Cosmos.d.ts +3 -3
- package/dist/services/Store/Cosmos.d.ts.map +1 -1
- package/dist/services/Store/Cosmos.js +54 -51
- package/dist/services/Store/Disk.d.ts +3 -3
- package/dist/services/Store/Disk.d.ts.map +1 -1
- package/dist/services/Store/Disk.js +20 -19
- package/dist/services/Store/Memory.d.ts +5 -5
- package/dist/services/Store/Memory.d.ts.map +1 -1
- package/dist/services/Store/Memory.js +45 -41
- package/dist/services/Store/Redis.d.ts +3 -3
- package/dist/services/Store/Redis.d.ts.map +1 -1
- package/dist/services/Store/Redis.js +17 -15
- package/dist/services/Store/index.d.ts +1 -1
- package/dist/services/Store/index.d.ts.map +1 -1
- package/dist/services/Store/index.js +8 -7
- package/dist/services/Store/service.d.ts +10 -10
- package/dist/services/Store/service.d.ts.map +1 -1
- package/dist/services/Store/service.js +2 -2
- package/dist/services/Store/utils.d.ts +3 -3
- package/dist/services/Store/utils.d.ts.map +1 -1
- package/dist/services/Store/utils.js +21 -21
- package/dist/services/simpledb/cosmosdb.d.ts +5 -5
- package/dist/services/simpledb/cosmosdb.d.ts.map +1 -1
- package/dist/services/simpledb/cosmosdb.js +19 -17
- package/dist/services/simpledb/diskdb.d.ts +5 -5
- package/dist/services/simpledb/diskdb.d.ts.map +1 -1
- package/dist/services/simpledb/diskdb.js +10 -9
- package/dist/services/simpledb/memdb.d.ts +5 -5
- package/dist/services/simpledb/memdb.d.ts.map +1 -1
- package/dist/services/simpledb/memdb.js +13 -11
- package/dist/services/simpledb/mongodb.d.ts +5 -5
- package/dist/services/simpledb/mongodb.d.ts.map +1 -1
- package/dist/services/simpledb/mongodb.js +16 -14
- package/dist/services/simpledb/redisdb.d.ts +11 -11
- package/dist/services/simpledb/redisdb.d.ts.map +1 -1
- package/dist/services/simpledb/redisdb.js +12 -11
- package/dist/services/simpledb/shared.d.ts +13 -13
- package/dist/services/simpledb/shared.js +6 -6
- package/dist/services/simpledb/simpledb.d.ts +7 -7
- package/dist/services/simpledb/simpledb.d.ts.map +1 -1
- package/dist/services/simpledb/simpledb.js +16 -15
- package/package.json +5 -5
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "effect/Effect";
|
|
2
|
-
import * as tsplus_module_2 from "effect/
|
|
3
|
-
import * as tsplus_module_3 from "
|
|
2
|
+
import * as tsplus_module_2 from "effect/Effect.impl";
|
|
3
|
+
import * as tsplus_module_3 from "effect/Option";
|
|
4
|
+
import * as tsplus_module_4 from "@effect-app/core/EffectX";
|
|
5
|
+
import * as tsplus_module_5 from "effect/Option.impl";
|
|
4
6
|
import { MongoClient } from "@effect-app/infra-adapters/mongo-client";
|
|
5
7
|
import { OptimisticLockException } from "./shared.js";
|
|
6
8
|
import * as simpledb from "./simpledb.js";
|
|
@@ -8,36 +10,36 @@ import * as simpledb from "./simpledb.js";
|
|
|
8
10
|
// prev[cur] = 1
|
|
9
11
|
// return prev
|
|
10
12
|
// }, {} as Record<string, number>)
|
|
11
|
-
const setup = (type, indexes) =>
|
|
13
|
+
const setup = (type, indexes) => tsplus_module_2.flatMap(tsplus_module_2.tap(MongoClient, ({ db }) => tsplus_module_1.Effect.tryPromise(() => db.createCollection(type).catch((err) => console.warn(err)))), ({ db }) => tsplus_module_1.Effect.tryPromise(() => db.collection(type).createIndexes(indexes)));
|
|
12
14
|
export function createContext() {
|
|
13
15
|
return (type, encode, decode,
|
|
14
16
|
// schemaVersion: string,
|
|
15
17
|
indexes) => {
|
|
16
|
-
return
|
|
18
|
+
return tsplus_module_2.map(setup(type, indexes), () => ({
|
|
17
19
|
find: simpledb.find(find, decode, type),
|
|
18
20
|
findBy,
|
|
19
21
|
save: simpledb.storeDirectly(store, type)
|
|
20
22
|
}));
|
|
21
23
|
function find(id) {
|
|
22
|
-
return
|
|
24
|
+
return tsplus_module_4.mapOption(tsplus_module_2.map(tsplus_module_2.flatMap(MongoClient, ({ db }) => tsplus_module_1.Effect.tryPromise(() => db
|
|
23
25
|
.collection(type)
|
|
24
|
-
.findOne({ _id: { equals: id } }))),
|
|
26
|
+
.findOne({ _id: { equals: id } }))), tsplus_module_3.Option.fromNullable), ({ data, version }) => ({ version, data }));
|
|
25
27
|
}
|
|
26
28
|
function findBy(keys) {
|
|
27
|
-
return
|
|
29
|
+
return tsplus_module_4.mapOption(tsplus_module_2.map(tsplus_module_2.flatMap(MongoClient, ({ db }) => tsplus_module_1.Effect.tryPromise(() => db.collection(type).findOne(keys, { projection: { _id: 1 } }))), tsplus_module_3.Option.fromNullable), ({ _id }) => _id);
|
|
28
30
|
}
|
|
29
31
|
function store(record, currentVersion) {
|
|
30
|
-
return tsplus_module_1.gen(function* ($) {
|
|
31
|
-
const version =
|
|
32
|
+
return tsplus_module_1.Effect.gen(function* ($) {
|
|
33
|
+
const version = tsplus_module_5.getOrElse(tsplus_module_5.map(currentVersion, (cv) => (parseInt(cv) + 1).toString()), () => "1");
|
|
32
34
|
const { db } = yield* $(MongoClient);
|
|
33
35
|
const data = yield* $(encode(record));
|
|
34
|
-
yield* $(
|
|
35
|
-
onNone: () =>
|
|
36
|
+
yield* $(tsplus_module_5.match(currentVersion, {
|
|
37
|
+
onNone: () => tsplus_module_2.orDie(tsplus_module_2.asUnit(tsplus_module_1.Effect.tryPromise(() => db
|
|
36
38
|
.collection(type)
|
|
37
39
|
.insertOne({ _id: record.id, version, timestamp: new Date(), data }, {
|
|
38
40
|
checkKeys: false // support for keys with `.` and `$`. NOTE: you can write them, read them, but NOT query for them.
|
|
39
41
|
})))),
|
|
40
|
-
onSome: (currentVersion) =>
|
|
42
|
+
onSome: (currentVersion) => tsplus_module_2.flatMap(tsplus_module_2.orDie(tsplus_module_1.Effect.tryPromise(() => db.collection(type).replaceOne({ _id: record.id, version: currentVersion }, {
|
|
41
43
|
version,
|
|
42
44
|
timestamp: new Date(),
|
|
43
45
|
data
|
|
@@ -45,7 +47,7 @@ export function createContext() {
|
|
|
45
47
|
if (!x.modifiedCount) {
|
|
46
48
|
return new OptimisticLockException(type, record.id);
|
|
47
49
|
}
|
|
48
|
-
return tsplus_module_1.unit;
|
|
50
|
+
return tsplus_module_1.Effect.unit;
|
|
49
51
|
})
|
|
50
52
|
}));
|
|
51
53
|
return { version, data: record };
|
|
@@ -53,4 +55,4 @@ export function createContext() {
|
|
|
53
55
|
}
|
|
54
56
|
};
|
|
55
57
|
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29kYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvc2ltcGxlZGIvbW9uZ29kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUdyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDckQsT0FBTyxLQUFLLFFBQVEsTUFBTSxlQUFlLENBQUE7QUFHekMsd0dBQXdHO0FBQ3hHLGtCQUFrQjtBQUNsQixnQkFBZ0I7QUFDaEIsbUNBQW1DO0FBRW5DLE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBWSxFQUFFLE9BQTJCLEVBQUUsRUFBRSxDQUMxRCx3QkFBQSxvQkFBQSxXQUFXLEVBQ0osQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxnQkFBQSxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQzdGLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsZ0JBQUEsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFFN0YsTUFBTSxVQUFVLGFBQWE7SUFDM0IsT0FBTyxDQUNMLElBQVksRUFDWixNQUFpRCxFQUNqRCxNQUE4QztJQUM5Qyx5QkFBeUI7SUFDekIsT0FBMkIsRUFDM0IsRUFBRTtRQUNGLE9BQU8sb0JBQUEsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBSyxHQUFHLEVBQUUsQ0FBQyxD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
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { Effect } from "effect/Effect";
|
|
2
|
-
import { Option } from "
|
|
2
|
+
import { Option } from "effect/Option";
|
|
3
3
|
import { RedisClient } from "@effect-app/infra-adapters/redis-client";
|
|
4
4
|
import * as MO from "@effect-app/schema";
|
|
5
5
|
import type { DBRecord, Index } from "./shared.js";
|
|
6
6
|
import { CouldNotAquireDbLockException } from "./shared.js";
|
|
7
7
|
import * as simpledb from "./simpledb.js";
|
|
8
|
-
export declare function createContext<TKey extends string, EA, A extends DBRecord<TKey>>(): <REncode, RDecode, EDecode>(type: string, encode: (record: A) =>
|
|
9
|
-
find: (id: string) => import("effect
|
|
10
|
-
findByIndex: (index: Index) => import("effect
|
|
11
|
-
save: (record: A) => import("effect
|
|
8
|
+
export declare function createContext<TKey extends string, EA, A extends DBRecord<TKey>>(): <REncode, RDecode, EDecode>(type: string, encode: (record: A) => Effect<REncode, never, EA>, decode: (d: EA) => Effect<RDecode, EDecode, A>, schemaVersion: string, makeIndexKey: (r: A) => Index) => {
|
|
9
|
+
find: (id: string) => import("effect").Effect<RedisClient | simpledb.RecordCache | RDecode, simpledb.InvalidStateError, import("effect").Option<A>>;
|
|
10
|
+
findByIndex: (index: Index) => import("effect").Effect<RedisClient, import("@effect-app/infra-adapters/redis-client").ConnectionException, import("effect").Option<TKey>>;
|
|
11
|
+
save: (record: A) => import("effect").Effect<RedisClient | simpledb.RecordCache | REncode, CouldNotAquireDbLockException | import("./shared.js").OptimisticLockException | simpledb.InvalidStateError, A>;
|
|
12
12
|
};
|
|
13
13
|
declare const RedisSerializedDBRecord_base: MO.Model<RedisSerializedDBRecord, MO.SchemaProperties<MO.ToProps<{
|
|
14
|
-
version: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("effect/Option").None<any>, import("effect/Option").None<any>>;
|
|
15
|
-
timestamp: MO.Property<MO.SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("effect/Option").None<any>, import("effect/Option").None<any>>;
|
|
16
|
-
data: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("effect/Option").None<any>, import("effect/Option").None<any>>;
|
|
14
|
+
version: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("effect/Option.impl").None<any>, import("effect/Option.impl").None<any>>;
|
|
15
|
+
timestamp: MO.Property<MO.SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("effect/Option.impl").None<any>, import("effect/Option.impl").None<any>>;
|
|
16
|
+
data: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("effect/Option.impl").None<any>, import("effect/Option.impl").None<any>>;
|
|
17
17
|
}>>> & MO.PropsExtensions<MO.ToProps<{
|
|
18
|
-
version: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("effect/Option").None<any>, import("effect/Option").None<any>>;
|
|
19
|
-
timestamp: MO.Property<MO.SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("effect/Option").None<any>, import("effect/Option").None<any>>;
|
|
20
|
-
data: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("effect/Option").None<any>, import("effect/Option").None<any>>;
|
|
18
|
+
version: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("effect/Option.impl").None<any>, import("effect/Option.impl").None<any>>;
|
|
19
|
+
timestamp: MO.Property<MO.SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("effect/Option.impl").None<any>, import("effect/Option.impl").None<any>>;
|
|
20
|
+
data: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("effect/Option.impl").None<any>, import("effect/Option.impl").None<any>>;
|
|
21
21
|
}>>;
|
|
22
22
|
export declare class RedisSerializedDBRecord extends RedisSerializedDBRecord_base {
|
|
23
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redisdb.d.ts","sourceRoot":"","sources":["../../../_src/services/simpledb/redisdb.ts"],"names":[],"mappings":";;AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAA;AACrE,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAExC,OAAO,KAAK,EAAgB,QAAQ,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,EAAuB,6BAA6B,EAA+B,MAAM,aAAa,CAAA;AAC7G,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAIzC,wBAAgB,aAAa,CAAC,IAAI,SAAS,MAAM,EAAE,EAAE,EAAE,CAAC,SAAS,QAAQ,CAAC,IAAI,CAAC,uCAErE,MAAM,mBACK,CAAC,
|
|
1
|
+
{"version":3,"file":"redisdb.d.ts","sourceRoot":"","sources":["../../../_src/services/simpledb/redisdb.ts"],"names":[],"mappings":";;AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAA;AACrE,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAExC,OAAO,KAAK,EAAgB,QAAQ,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,EAAuB,6BAA6B,EAA+B,MAAM,aAAa,CAAA;AAC7G,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAIzC,wBAAgB,aAAa,CAAC,IAAI,SAAS,MAAM,EAAE,EAAE,EAAE,CAAC,SAAS,QAAQ,CAAC,IAAI,CAAC,uCAErE,MAAM,mBACK,CAAC,KAAK,OAAO,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,cACrC,EAAE,KAAK,OAAO,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,iBAC/B,MAAM,oBACH,CAAC,KAAK,KAAK;;yBAkFN,KAAK;;EAwF/B;;;;;;;;;;AAED,qBAAa,uBAAwB,SAAQ,4BAI3C;CAAG"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import * as tsplus_module_1 from "effect/Effect";
|
|
2
|
-
import * as tsplus_module_2 from "@effect-app/core/
|
|
3
|
-
import * as tsplus_module_3 from "effect/Option";
|
|
1
|
+
import * as tsplus_module_1 from "effect/Effect.impl";
|
|
2
|
+
import * as tsplus_module_2 from "@effect-app/core/EffectX";
|
|
3
|
+
import * as tsplus_module_3 from "effect/Option.impl";
|
|
4
|
+
import * as tsplus_module_4 from "effect/Effect";
|
|
4
5
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
5
6
|
import { flow, pipe } from "@effect-app/core/Function";
|
|
6
7
|
import { RedisClient } from "@effect-app/infra-adapters/redis-client";
|
|
@@ -25,7 +26,7 @@ export function createContext() {
|
|
|
25
26
|
function store(record, currentVersion) {
|
|
26
27
|
const version = tsplus_module_3.getOrElse(tsplus_module_3.map(currentVersion, (cv) => (parseInt(cv) + 1).toString()), () => "1");
|
|
27
28
|
return tsplus_module_3.match(currentVersion, {
|
|
28
|
-
onNone: () => 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(tsplus_module_2.zipRightOption(getIndex(record),
|
|
29
|
+
onNone: () => 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(tsplus_module_2.zipRightOption(getIndex(record), tsplus_module_4.Effect.fail(() => new Error("Combination already exists, abort"))), getData(record))
|
|
29
30
|
// TODO: instead use MULTI & EXEC to make it in one command?
|
|
30
31
|
, (data) => hmSetRec(getKey(record.id), {
|
|
31
32
|
version,
|
|
@@ -60,22 +61,22 @@ export function createContext() {
|
|
|
60
61
|
function lockRedisIdx(index) {
|
|
61
62
|
const lockKey = getIdxLockKey(index);
|
|
62
63
|
// acquire
|
|
63
|
-
return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(tsplus_module_1.flatMap(RedisClient, ({ lock }) =>
|
|
64
|
+
return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(tsplus_module_1.flatMap(RedisClient, ({ lock }) => tsplus_module_4.Effect.tryPromise(() => lock.lock(lockKey, ttl))), {
|
|
64
65
|
onFailure: (err) => new CouldNotAquireDbLockException(type, lockKey, err),
|
|
65
66
|
// release
|
|
66
67
|
onSuccess: (lock) => ({
|
|
67
|
-
release: tsplus_module_1.orDie(
|
|
68
|
+
release: tsplus_module_1.orDie(tsplus_module_4.Effect.tryPromise(() => lock.unlock()))
|
|
68
69
|
})
|
|
69
70
|
}), (l) => l.release);
|
|
70
71
|
}
|
|
71
72
|
function lockRedisRecord(id) {
|
|
72
73
|
// acquire
|
|
73
|
-
return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(tsplus_module_1.flatMap(RedisClient, ({ lock }) =>
|
|
74
|
+
return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(tsplus_module_1.flatMap(RedisClient, ({ lock }) => tsplus_module_4.Effect.tryPromise(() => lock.lock(getLockKey(id), ttl))), {
|
|
74
75
|
onFailure: (err) => new CouldNotAquireDbLockException(type, id, err),
|
|
75
76
|
// release
|
|
76
77
|
onSuccess: (lock) => ({
|
|
77
78
|
// TODO
|
|
78
|
-
release: tsplus_module_1.orDie(
|
|
79
|
+
release: tsplus_module_1.orDie(tsplus_module_4.Effect.tryPromise(() => lock.unlock()))
|
|
79
80
|
})
|
|
80
81
|
}), (l) => l.release);
|
|
81
82
|
}
|
|
@@ -94,10 +95,10 @@ export function createContext() {
|
|
|
94
95
|
};
|
|
95
96
|
function hmSetRec(key, val) {
|
|
96
97
|
const enc = RedisSerializedDBRecord.Encoder(val);
|
|
97
|
-
return tsplus_module_1.flatMap(RedisClient, ({ client }) => tsplus_module_1.uninterruptible(
|
|
98
|
+
return tsplus_module_1.flatMap(RedisClient, ({ client }) => tsplus_module_1.uninterruptible(tsplus_module_4.Effect.async((res) => {
|
|
98
99
|
client.hmset(key, "version", enc.version, "timestamp", enc.timestamp, "data", enc.data, (err) => err
|
|
99
100
|
? res(new ConnectionException(err))
|
|
100
|
-
: res(
|
|
101
|
+
: res(tsplus_module_4.Effect.sync(() => void 0)));
|
|
101
102
|
})));
|
|
102
103
|
}
|
|
103
104
|
}
|
|
@@ -107,4 +108,4 @@ export class RedisSerializedDBRecord extends MO.Model()({
|
|
|
107
108
|
data: MO.prop(MO.string)
|
|
108
109
|
}) {
|
|
109
110
|
}
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXNkYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvc2ltcGxlZGIvcmVkaXNkYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsdURBQXVEO0FBRXZELE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQ3JFLE9BQU8sS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFHeEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLDZCQUE2QixFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDN0csT0FBTyxLQUFLLFFBQVEsTUFBTSxlQUFlLENBQUE7QUFFekMsTUFBTSxHQUFHLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQTtBQUVyQixNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLENBQ0wsSUFBWSxFQUNaLE1BQWlELEVBQ2pELE1BQThDLEVBQzlDLGFBQXFCLEVBQ3JCLFlBQTZCLEVBQzdCLEVBQUU7UUFDRixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxvQkFBQSxDQUFDLEVBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUE7UUFDMUQsT0FBTztZQUNMLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDO1lBQ3ZDLFdBQVcsRUFBRSxNQUFNO1lBQ25CLElBQUksRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLElBQUksQ0FBQztTQUN6RCxDQUFBO1FBRUQsU0FBUyxJQUFJLENBQUMsRUFBVTtZQUN0Qiw2QkFBTyw4QkFBQSx3QkFBQSxXQUFXLEVBQ1AsQ0FBQyxDQUFDLEVBQUUs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QzdELENBQUM7UUFFRCxTQUFTLFNBQVMsQ0FBQyxLQUFZO1lBQzdCLE9BQU8sSUFBSSxhQUFhLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQTtRQUM3RCxDQUFDO1FBQ0QsU0FBUyxhQUFhLENBQUMsS0FBWTtZQUNqQyxPQUFPLElBQUksYUFBYSxVQUFVLFlBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQTtRQUNoRixDQUFDO0lBQ0gsQ0FBQyxDQUFBO0lBRUQsU0FBUyxRQUFRLENBQUMsR0FBVyxFQUFFLEdBQTRCO1FBQ3pELE1BQU0sR0FBRyxHQUFHLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNoRCxPQUFPLHdCQUFBLFdBQVcsRUFBUyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxpQ0FDeEMsZ0JBQUEsTUFBTSxDQUNILEtBQUssQ0FBbUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUMvQyxNQUFNLENBQUMsS0FBSyxDQUNWLEdBQUcsRUFDSCxTQUFTLEVBQ1QsR0FBRyxDQUFDLE9BQU8sRUFDWCxXQUFXLEVBQ1gsR0FBRyxDQUFDLFNBQVMsRUFDYixNQUFNLEVBQ04sR0FBRyxDQUFDLElBQUksRUFDUixDQUFDLEdBQUcsRUFBRSxFQUFFLENBQ04sR0FBRztnQkFDRCxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ25DLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ3JDLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FDYyxDQUNuQixDQUFBO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsRUFBRSxDQUFDLEtBQUssRUFBMkIsQ0FBQztJQUMvRSxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQzNCLFNBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDM0IsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQztDQUN6QixDQUFDO0NBQUcifQ==
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Data } from "effect/Data";
|
|
2
2
|
import { Effect } from "effect/Effect";
|
|
3
|
-
import { Option } from "
|
|
3
|
+
import { Option } from "effect/Option";
|
|
4
4
|
import * as MO from "@effect-app/schema";
|
|
5
5
|
import type { SchemaAny } from "@effect-app/schema";
|
|
6
|
-
declare const CouldNotAquireDbLockException_base: new <A extends Record<string, any>>(args: import("effect/Types").Equals<Omit<A, keyof import("effect
|
|
6
|
+
declare const CouldNotAquireDbLockException_base: new <A extends Record<string, any>>(args: import("effect/Types.impl").Equals<Omit<A, keyof import("effect").Equal>, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" | keyof import("effect").Equal ? never : P]: A[P]; }) => import("effect/Data.impl").YieldableError & {
|
|
7
7
|
readonly _tag: "CouldNotAquireDbLockException";
|
|
8
8
|
} & Readonly<A>;
|
|
9
9
|
export declare class CouldNotAquireDbLockException extends CouldNotAquireDbLockException_base<{
|
|
@@ -14,7 +14,7 @@ export declare class CouldNotAquireDbLockException extends CouldNotAquireDbLockE
|
|
|
14
14
|
}> {
|
|
15
15
|
constructor(type: string, id: string, error: Error);
|
|
16
16
|
}
|
|
17
|
-
declare const OptimisticLockException_base: new <A extends Record<string, any>>(args: import("effect/Types").Equals<Omit<A, keyof import("effect
|
|
17
|
+
declare const OptimisticLockException_base: new <A extends Record<string, any>>(args: import("effect/Types.impl").Equals<Omit<A, keyof import("effect").Equal>, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" | keyof import("effect").Equal ? never : P]: A[P]; }) => import("effect/Data.impl").YieldableError & {
|
|
18
18
|
readonly _tag: "OptimisticLockException";
|
|
19
19
|
} & Readonly<A>;
|
|
20
20
|
export declare class OptimisticLockException extends OptimisticLockException_base<{
|
|
@@ -24,7 +24,7 @@ export declare class OptimisticLockException extends OptimisticLockException_bas
|
|
|
24
24
|
}> {
|
|
25
25
|
constructor(type: string, id: string);
|
|
26
26
|
}
|
|
27
|
-
declare const ConnectionException_base: new <A extends Record<string, any>>(args: import("effect/Types").Equals<Omit<A, keyof import("effect
|
|
27
|
+
declare const ConnectionException_base: new <A extends Record<string, any>>(args: import("effect/Types.impl").Equals<Omit<A, keyof import("effect").Equal>, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" | keyof import("effect").Equal ? never : P]: A[P]; }) => import("effect/Data.impl").YieldableError & {
|
|
28
28
|
readonly _tag: "ConnectionException";
|
|
29
29
|
} & Readonly<A>;
|
|
30
30
|
export declare class ConnectionException extends ConnectionException_base<{
|
|
@@ -38,20 +38,20 @@ export interface DBRecord<TKey extends string> {
|
|
|
38
38
|
id: TKey;
|
|
39
39
|
}
|
|
40
40
|
declare const SerializedDBRecord_base: MO.Model<SerializedDBRecord, MO.SchemaProperties<MO.ToProps<{
|
|
41
|
-
version: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("effect/Option").None<any>, import("effect/Option").None<any>>;
|
|
42
|
-
timestamp: MO.Property<MO.SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("effect/Option").None<any>, import("effect/Option").None<any>>;
|
|
43
|
-
data: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("effect/Option").None<any>, import("effect/Option").None<any>>;
|
|
41
|
+
version: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("effect/Option.impl").None<any>, import("effect/Option.impl").None<any>>;
|
|
42
|
+
timestamp: MO.Property<MO.SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("effect/Option.impl").None<any>, import("effect/Option.impl").None<any>>;
|
|
43
|
+
data: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("effect/Option.impl").None<any>, import("effect/Option.impl").None<any>>;
|
|
44
44
|
}>>> & MO.PropsExtensions<MO.ToProps<{
|
|
45
|
-
version: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("effect/Option").None<any>, import("effect/Option").None<any>>;
|
|
46
|
-
timestamp: MO.Property<MO.SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("effect/Option").None<any>, import("effect/Option").None<any>>;
|
|
47
|
-
data: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("effect/Option").None<any>, import("effect/Option").None<any>>;
|
|
45
|
+
version: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("effect/Option.impl").None<any>, import("effect/Option.impl").None<any>>;
|
|
46
|
+
timestamp: MO.Property<MO.SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("effect/Option.impl").None<any>, import("effect/Option.impl").None<any>>;
|
|
47
|
+
data: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("effect/Option.impl").None<any>, import("effect/Option.impl").None<any>>;
|
|
48
48
|
}>>;
|
|
49
49
|
export declare class SerializedDBRecord extends SerializedDBRecord_base {
|
|
50
50
|
}
|
|
51
51
|
export declare function makeSerialisedDBRecord(s: SchemaAny): MO.SchemaProperties<MO.ToProps<{
|
|
52
|
-
version: MO.Property<MO.SchemaDefaultSchema<unknown, number, number, number, {}>, "required", import("effect/Option").None<any>, import("effect/Option").None<any>>;
|
|
53
|
-
timestamp: MO.Property<MO.SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("effect/Option").None<any>, import("effect/Option").None<any>>;
|
|
54
|
-
data: MO.Property<MO.SchemaAny, "required", import("effect/Option").None<any>, import("effect/Option").None<any>>;
|
|
52
|
+
version: MO.Property<MO.SchemaDefaultSchema<unknown, number, number, number, {}>, "required", import("effect/Option.impl").None<any>, import("effect/Option.impl").None<any>>;
|
|
53
|
+
timestamp: MO.Property<MO.SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("effect/Option.impl").None<any>, import("effect/Option.impl").None<any>>;
|
|
54
|
+
data: MO.Property<MO.SchemaAny, "required", import("effect/Option.impl").None<any>, import("effect/Option.impl").None<any>>;
|
|
55
55
|
}>>;
|
|
56
56
|
export interface CachedRecord<T> {
|
|
57
57
|
version: string;
|
|
@@ -2,17 +2,17 @@ import * as tsplus_module_1 from "effect/Data";
|
|
|
2
2
|
import * as tsplus_module_2 from "effect/Option";
|
|
3
3
|
import * as tsplus_module_3 from "effect/Effect";
|
|
4
4
|
import * as MO from "@effect-app/schema";
|
|
5
|
-
export class CouldNotAquireDbLockException extends tsplus_module_1.TaggedError("CouldNotAquireDbLockException") {
|
|
5
|
+
export class CouldNotAquireDbLockException extends tsplus_module_1.Data.TaggedError("CouldNotAquireDbLockException") {
|
|
6
6
|
constructor(type, id, error) {
|
|
7
7
|
super({ type, id, error, message: `Couldn't lock db record ${type}: ${id}` });
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
|
-
export class OptimisticLockException extends tsplus_module_1.TaggedError("OptimisticLockException") {
|
|
10
|
+
export class OptimisticLockException extends tsplus_module_1.Data.TaggedError("OptimisticLockException") {
|
|
11
11
|
constructor(type, id) {
|
|
12
12
|
super({ type, id, message: `Existing ${type} ${id} record changed` });
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
export class ConnectionException extends tsplus_module_1.TaggedError("ConnectionException") {
|
|
15
|
+
export class ConnectionException extends tsplus_module_1.Data.TaggedError("ConnectionException") {
|
|
16
16
|
constructor(cause) {
|
|
17
17
|
super({ cause, message: "A connection error ocurred" });
|
|
18
18
|
this._errorTag = "ConnectionException";
|
|
@@ -41,11 +41,11 @@ export function getRecordName(type, id) {
|
|
|
41
41
|
export function makeMap() {
|
|
42
42
|
const map = new Map();
|
|
43
43
|
return {
|
|
44
|
-
find: (k) => tsplus_module_3.sync(() => tsplus_module_2.fromNullable(map.get(k))),
|
|
44
|
+
find: (k) => tsplus_module_3.Effect.sync(() => tsplus_module_2.Option.fromNullable(map.get(k))),
|
|
45
45
|
[Symbol.iterator]: () => map[Symbol.iterator](),
|
|
46
|
-
set: (k, v) => tsplus_module_3.sync(() => {
|
|
46
|
+
set: (k, v) => tsplus_module_3.Effect.sync(() => {
|
|
47
47
|
map.set(k, v);
|
|
48
48
|
})
|
|
49
49
|
};
|
|
50
50
|
}
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vX3NyYy9zZXJ2aWNlcy9zaW1wbGVkYi9zaGFyZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUd4QyxNQUFNLE9BQU8sNkJBQ1gsU0FBUSxnQkFBQSxJQUFJLENBQUMsV0FBVyxDQUFDLCtCQUErQixDQUE4RDtJQUV0SCxZQUFZLElBQVksRUFBRSxFQUFVLEVBQUUsS0FBWTtRQUNoRCxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsMkJBQTJCLElBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDL0UsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLHVCQUNYLFNBQVEsZ0JBQUEsSUFBSSxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsQ0FBZ0Q7SUFFbEcsWUFBWSxJQUFZLEVBQUUsRUFBVTtRQUNsQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxZQUFZLElBQUksSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQTtJQUN2RSxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZ0JBQUEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBb0M7SUFFakgsWUFBWSxLQUFZO1FBQ3RCLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsQ0FBQyxDQUFBO1FBRmhELGNBQVMsR0FBRyxxQkFBcUIsQ0FBQTtJQUcxQyxDQUFDO0NBQ0Y7QUFNRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsRUFBRSxDQUFDLEtBQUssRUFBc0IsQ0FBQztJQUNyRSxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQzNCLFNBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDM0IsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQztDQUN6QixDQUFDO0NBQUc7QUFFTCw0QkFBNEI7QUFDNUIsTUFBTSxVQUFVLHNCQUFzQixDQUFDLENBQVk7SUFDakQsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ2QsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQztRQUMzQixTQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQzNCLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztLQUNqQixDQUFDLENBQUE7QUFDSixDQUFDO0FBWUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxJQUFZLEVBQUUsRUFBVTtJQUNuRCxPQUFPLEdBQUcsSUFBSSxRQUFRLEVBQUUsRUFBRSxDQUFBO0FBQzVCLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLElBQVksRUFBRSxFQUFVO0lBQ3BELE9BQU8sR0FBRyxJQUFJLE1BQU0sRUFBRSxFQUFFLENBQUE7QUFDMUIsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPO0lBQ3JCLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFXLENBQUE7SUFDOUIsT0FBTztRQUNMLElBQUksRUFBRSxDQUFDLENBQU8sRUFBRSxFQUFFLENBQUMsZ0JBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBQSxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQy9DLEdBQUcsRUFBRSxDQUFDLENBQU8sRUFBRSxDQUFJLEVBQUUsRUFBRSxDQUNyQixnQkFBQSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNmLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ2YsQ0FBQyxDQUFDO0tBQ2lCLENBQUE7QUFDekIsQ0FBQyJ9
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Effect } from "effect/Effect";
|
|
2
|
-
import { Option } from "
|
|
2
|
+
import { Option } from "effect/Option";
|
|
3
3
|
import { Scope } from "effect/Scope";
|
|
4
4
|
import type { CachedRecord, DBRecord, EffectMap } from "./shared.js";
|
|
5
5
|
import { OptimisticLockException } from "./shared.js";
|
|
@@ -11,13 +11,13 @@ export declare class InvalidStateError {
|
|
|
11
11
|
constructor(message: string, details?: unknown);
|
|
12
12
|
}
|
|
13
13
|
export declare function makeLiveRecordCache(): {
|
|
14
|
-
get: <T>(type: string) => import("effect
|
|
14
|
+
get: <T>(type: string) => import("effect").Effect<never, never, EffectMap<string, CachedRecord<T>>>;
|
|
15
15
|
};
|
|
16
16
|
export interface RecordCache extends ReturnType<typeof makeLiveRecordCache> {
|
|
17
17
|
}
|
|
18
|
-
export declare const RecordCache: import("effect/Context").Tag<RecordCache, RecordCache>;
|
|
19
|
-
export declare const LiveRecordCache: import("effect
|
|
20
|
-
export declare function find<R, RDecode, EDecode, E, EA, A>(tryRead: (id: string) => Effect<R, E, Option<CachedRecord<EA>>>, decode: (d: EA) => Effect<RDecode, EDecode, A>, type: string): (id: string) => import("effect
|
|
21
|
-
export declare function storeDirectly<R, E, TKey extends string, A extends DBRecord<TKey>>(save: (r: A, version: Option<Version>) => Effect<R, E, CachedRecord<A>>, type: string): (record: A) => import("effect
|
|
22
|
-
export declare function store<R, E, R2, E2, TKey extends string, EA, A extends DBRecord<TKey>>(tryRead: (id: string) => Effect<R, E, Option<CachedRecord<EA>>>, save: (r: A, version: Option<Version>) => Effect<R, E, CachedRecord<A>>, lock: (id: string) => Effect<R2 | Scope, E2, unknown>, type: string): (record: A) => import("effect
|
|
18
|
+
export declare const RecordCache: import("effect/Context.impl").Tag<RecordCache, RecordCache>;
|
|
19
|
+
export declare const LiveRecordCache: import("effect").Layer<never, never, RecordCache>;
|
|
20
|
+
export declare function find<R, RDecode, EDecode, E, EA, A>(tryRead: (id: string) => Effect<R, E, Option<CachedRecord<EA>>>, decode: (d: EA) => Effect<RDecode, EDecode, A>, type: string): (id: string) => import("effect").Effect<RecordCache | R | RDecode, InvalidStateError | E, import("effect").Option<A>>;
|
|
21
|
+
export declare function storeDirectly<R, E, TKey extends string, A extends DBRecord<TKey>>(save: (r: A, version: Option<Version>) => Effect<R, E, CachedRecord<A>>, type: string): (record: A) => import("effect").Effect<RecordCache | R, E, A>;
|
|
22
|
+
export declare function store<R, E, R2, E2, TKey extends string, EA, A extends DBRecord<TKey>>(tryRead: (id: string) => Effect<R, E, Option<CachedRecord<EA>>>, save: (r: A, version: Option<Version>) => Effect<R, E, CachedRecord<A>>, lock: (id: string) => Effect<R2 | Scope, E2, unknown>, type: string): (record: A) => import("effect").Effect<RecordCache | R | Exclude<R2, import("effect").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,
|
|
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,6DAAqB,CAAA;AAE7C,eAAO,MAAM,eAAe,mDAAgE,CAAA;AAQ5F,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,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAC/D,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,EAC9C,IAAI,EAAE,MAAM,QAcA,MAAM,2GAOnB;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,MAAM,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,EACvE,IAAI,EAAE,MAAM,YAGI,CAAC,oDASlB;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,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAC/D,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,EACvE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,EACrD,IAAI,EAAE,MAAM,YAGI,CAAC,6IA6BlB"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "effect/Effect";
|
|
2
2
|
import * as tsplus_module_2 from "effect/Context";
|
|
3
|
-
import * as tsplus_module_3 from "effect/Layer";
|
|
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/Layer.impl";
|
|
4
|
+
import * as tsplus_module_4 from "effect/Effect.impl";
|
|
5
|
+
import * as tsplus_module_5 from "@effect-app/core/EffectX";
|
|
6
6
|
import * as tsplus_module_6 from "effect/Option";
|
|
7
|
+
import * as tsplus_module_7 from "effect/Option.impl";
|
|
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) => tsplus_module_1.sync(() => {
|
|
19
|
+
get: (type) => tsplus_module_1.Effect.sync(() => {
|
|
19
20
|
const ex = m.get(type);
|
|
20
21
|
if (!ex) {
|
|
21
22
|
const nm = makeMap();
|
|
@@ -28,33 +29,33 @@ export function makeLiveRecordCache() {
|
|
|
28
29
|
}
|
|
29
30
|
// module tag
|
|
30
31
|
export const RecordCache = tsplus_module_2.Tag();
|
|
31
|
-
export const LiveRecordCache = tsplus_module_3.effect(RecordCache)(tsplus_module_1.sync(() => makeLiveRecordCache()));
|
|
32
|
-
const getM = (type) => (eff) => tsplus_module_1.gen(function* ($) {
|
|
32
|
+
export const LiveRecordCache = tsplus_module_3.effect(RecordCache)(tsplus_module_1.Effect.sync(() => makeLiveRecordCache()));
|
|
33
|
+
const getM = (type) => (eff) => tsplus_module_1.Effect.gen(function* ($) {
|
|
33
34
|
const { get } = yield* $(RecordCache);
|
|
34
|
-
return yield* $(
|
|
35
|
+
return yield* $(tsplus_module_4.flatMap(get(type), eff));
|
|
35
36
|
});
|
|
36
37
|
export function find(tryRead, decode, type) {
|
|
37
38
|
const getCache = getM(type);
|
|
38
|
-
const read = (id) =>
|
|
39
|
+
const read = (id) => tsplus_module_5.mapOption(tsplus_module_5.tapOption(tsplus_module_5.flatMapOption(tryRead(id), ({ data, version }) => tsplus_module_4.mapBoth(decode(data), {
|
|
39
40
|
onFailure: (err) => new InvalidStateError("DB serialisation Issue", err),
|
|
40
41
|
onSuccess: (data) => ({ data, version })
|
|
41
42
|
})), (r) => getCache((c) => c.set(id, r))), (r) => r.data);
|
|
42
|
-
return (id) => getCache((c) =>
|
|
43
|
+
return (id) => getCache((c) => tsplus_module_4.orElse(tsplus_module_5.mapOption(c
|
|
43
44
|
.find(id), (existing) => existing.data), () => read(id)));
|
|
44
45
|
}
|
|
45
46
|
export function storeDirectly(save, type) {
|
|
46
47
|
const getCache = getM(type);
|
|
47
|
-
return (record) => getCache((c) =>
|
|
48
|
+
return (record) => getCache((c) => tsplus_module_4.map(tsplus_module_4.tap(tsplus_module_4.flatMap(tsplus_module_5.mapOption(c
|
|
48
49
|
.find(record.id), (x) => x.version), (cv) => save(record, cv)), (r) => c.set(record.id, r)), (r) => r.data));
|
|
49
50
|
}
|
|
50
51
|
export function store(tryRead, save, lock, type) {
|
|
51
52
|
const getCache = getM(type);
|
|
52
|
-
return (record) => getCache((c) =>
|
|
53
|
-
.find(record.id), (x) => x.version), (_) =>
|
|
53
|
+
return (record) => getCache((c) => tsplus_module_4.map(tsplus_module_4.tap(tsplus_module_4.flatMap(tsplus_module_5.mapOption(c
|
|
54
|
+
.find(record.id), (x) => x.version), (_) => tsplus_module_7.match(_, { onNone: () => save(record, tsplus_module_6.Option.none()), onSome: confirmVersionAndSave(record) })), (r) => c.set(record.id, r)), (r) => r.data));
|
|
54
55
|
function confirmVersionAndSave(record) {
|
|
55
|
-
return (cv) =>
|
|
56
|
+
return (cv) => tsplus_module_4.scoped(tsplus_module_4.zipRight(lock(record.id), tsplus_module_4.zipRight(tsplus_module_4.tap(tsplus_module_4.flatMap(tryRead(record.id), (_) => tsplus_module_7.match(_, { onNone: () => tsplus_module_1.Effect.fail(new InvalidStateError("record is gone")), onSome: tsplus_module_1.Effect.succeed })), ({ version }) => version !== cv
|
|
56
57
|
? new OptimisticLockException(type, record.id)
|
|
57
|
-
: tsplus_module_1.unit), save(record, tsplus_module_6.some(cv)))));
|
|
58
|
+
: tsplus_module_1.Effect.unit), save(record, tsplus_module_6.Option.some(cv)))));
|
|
58
59
|
}
|
|
59
60
|
}
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL3NpbXBsZWRiL3NpbXBsZWRiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRzlELE1BQU0sT0FBTyxpQkFBaUI7SUFFNUIsWUFBcUIsT0FBZSxFQUFXLE9BQWlCO1FBQTNDLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFBVyxZQUFPLEdBQVAsT0FBTyxDQUFVO1FBRHZELFNBQUksR0FBRyxtQkFBbUIsQ0FBQTtJQUNnQyxDQUFDO0NBQ3JFO0FBRUQsTUFBTSxVQUFVLG1CQUFtQjtJQUNqQyxNQUFNLENBQUMsR0FBRyxJQUFJLEdBQUcsRUFBc0MsQ0FBQTtJQUN2RCxPQUFPO1FBQ0wsR0FBRyxFQUFFLENBQUksSUFBWSxFQUFFLEVBQUUsQ0FDdkIsZ0JBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDZixNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ3RCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDUixNQUFNLEVBQUUsR0FBRyxPQUFPLEVBQW1CLENBQUE7Z0JBQ3JDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFBO2dCQUNmLE9BQU8sRUFBd0MsQ0FBQTtZQUNqRCxDQUFDO1lBQ0QsT0FBTyxFQUF3QyxDQUFBO1FBQ2pELENBQUMsQ0FBQztLQUNMLENBQUE7QUFDSCxDQUFDO0FBSUQsYUFBYTtBQUNiLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxnQkFBQSxHQUFHLEVBQWUsQ0FBQTtBQUU3QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsdUJBQWlELFdBQVcsRUFBNUQsZ0JBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUs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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.84.0-next.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -18,10 +18,10 @@
|
|
|
18
18
|
"proper-lockfile": "^4.1.2",
|
|
19
19
|
"pure-rand": "6.0.4",
|
|
20
20
|
"redlock": "^4.2.0",
|
|
21
|
-
"@effect-app/core": "0.
|
|
22
|
-
"@effect-app/
|
|
23
|
-
"@effect-app/prelude": "0.
|
|
24
|
-
"@effect-app/
|
|
21
|
+
"@effect-app/core": "0.68.0-next.1",
|
|
22
|
+
"@effect-app/infra-adapters": "0.59.0-next.1",
|
|
23
|
+
"@effect-app/prelude": "0.70.0-next.1",
|
|
24
|
+
"@effect-app/schema": "0.62.0-next.1"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@babel/cli": "^7.23.0",
|