@effect-app/infra 0.85.0-next.4 → 0.85.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 +3 -36
- package/_cjs/_ext/Array.cjs +2 -3
- package/_cjs/_ext/Array.cjs.map +1 -1
- package/_cjs/api/defaultErrorHandler.cjs +10 -11
- package/_cjs/api/defaultErrorHandler.cjs.map +1 -1
- package/_cjs/api/express/makeJsonSchema.cjs +2 -3
- 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 +4 -6
- package/_cjs/api/express/makeOpenApiSpecs.cjs.map +1 -1
- package/_cjs/api/express/schema/routing.cjs +22 -23
- package/_cjs/api/express/schema/routing.cjs.map +1 -1
- package/_cjs/api/reportError.cjs +2 -2
- package/_cjs/api/setupRequest.cjs +4 -5
- package/_cjs/api/setupRequest.cjs.map +1 -1
- package/_cjs/api/writeDocs.cjs +4 -6
- package/_cjs/api/writeDocs.cjs.map +1 -1
- package/_cjs/errorReporter.cjs +11 -12
- package/_cjs/errorReporter.cjs.map +1 -1
- package/_cjs/errors.cjs +8 -8
- package/_cjs/errors.cjs.map +1 -1
- package/_cjs/instrument.cjs +1 -2
- package/_cjs/instrument.cjs.map +1 -1
- package/_cjs/logger/jsonLogger.cjs +10 -11
- 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 +7 -8
- package/_cjs/rateLimit.cjs.map +1 -1
- package/_cjs/services/Emailer/Sendgrid.cjs +12 -14
- package/_cjs/services/Emailer/Sendgrid.cjs.map +1 -1
- package/_cjs/services/Emailer/fake.cjs +4 -5
- package/_cjs/services/Emailer/fake.cjs.map +1 -1
- package/_cjs/services/Operations/live.cjs +29 -31
- package/_cjs/services/Operations/live.cjs.map +1 -1
- package/_cjs/services/Operations/service.cjs +5 -6
- package/_cjs/services/Operations/service.cjs.map +1 -1
- package/_cjs/services/QueueMaker/errors.cjs +6 -7
- package/_cjs/services/QueueMaker/errors.cjs.map +1 -1
- package/_cjs/services/QueueMaker/memQueue.cjs +17 -18
- package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
- package/_cjs/services/QueueMaker/sbqueue.cjs +15 -16
- package/_cjs/services/QueueMaker/sbqueue.cjs.map +1 -1
- package/_cjs/services/Repository.cjs +16 -17
- package/_cjs/services/Repository.cjs.map +1 -1
- package/_cjs/services/RepositoryBase.cjs +33 -35
- package/_cjs/services/RepositoryBase.cjs.map +1 -1
- package/_cjs/services/RequestContextContainer.cjs +20 -15
- package/_cjs/services/RequestContextContainer.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos.cjs +46 -49
- package/_cjs/services/Store/Cosmos.cjs.map +1 -1
- package/_cjs/services/Store/Disk.cjs +18 -19
- package/_cjs/services/Store/Disk.cjs.map +1 -1
- package/_cjs/services/Store/Memory.cjs +39 -43
- package/_cjs/services/Store/Memory.cjs.map +1 -1
- package/_cjs/services/Store/Redis.cjs +14 -16
- package/_cjs/services/Store/Redis.cjs.map +1 -1
- package/_cjs/services/Store/codeFilter.test.cjs +1 -1
- package/_cjs/services/Store/index.cjs +6 -7
- 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 +17 -19
- package/_cjs/services/simpledb/cosmosdb.cjs.map +1 -1
- package/_cjs/services/simpledb/diskdb.cjs +8 -9
- package/_cjs/services/simpledb/diskdb.cjs.map +1 -1
- package/_cjs/services/simpledb/memdb.cjs +9 -11
- package/_cjs/services/simpledb/memdb.cjs.map +1 -1
- package/_cjs/services/simpledb/mongodb.cjs +18 -20
- package/_cjs/services/simpledb/mongodb.cjs.map +1 -1
- package/_cjs/services/simpledb/redisdb.cjs +10 -11
- 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 +17 -18
- 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/routing.ts +59 -37
- package/_src/api/setupRequest.ts +11 -10
- 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 +6 -8
- package/_src/services/RequestContextContainer.ts +12 -7
- package/_src/services/Store/Cosmos.ts +12 -17
- 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 +4 -4
- package/dist/_ext/Array.d.ts +1 -1
- package/dist/_ext/Array.d.ts.map +1 -1
- package/dist/_ext/Array.js +3 -4
- 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 +11 -13
- 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 +3 -4
- package/dist/api/express/makeOpenApiSpecs.d.ts +1 -1
- package/dist/api/express/makeOpenApiSpecs.js +5 -7
- package/dist/api/express/schema/routing.d.ts +22 -7
- package/dist/api/express/schema/routing.d.ts.map +1 -1
- package/dist/api/express/schema/routing.js +23 -24
- 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/setupRequest.d.ts +2 -2
- package/dist/api/setupRequest.d.ts.map +1 -1
- package/dist/api/setupRequest.js +7 -7
- package/dist/api/writeDocs.d.ts +1 -1
- package/dist/api/writeDocs.d.ts.map +1 -1
- package/dist/api/writeDocs.js +5 -7
- package/dist/errorReporter.d.ts +3 -3
- package/dist/errorReporter.d.ts.map +1 -1
- package/dist/errorReporter.js +12 -13
- package/dist/errors.d.ts +7 -7
- package/dist/errors.js +9 -9
- package/dist/instrument.d.ts +1 -1
- package/dist/instrument.d.ts.map +1 -1
- package/dist/instrument.js +2 -3
- package/dist/logger/jsonLogger.d.ts +2 -2
- package/dist/logger/jsonLogger.d.ts.map +1 -1
- package/dist/logger/jsonLogger.js +11 -12
- 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 +3 -3
- package/dist/rateLimit.d.ts.map +1 -1
- package/dist/rateLimit.js +8 -9
- 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 +15 -17
- 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 +5 -6
- package/dist/services/Emailer/service.d.ts +3 -3
- 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 +37 -39
- package/dist/services/Operations/service.d.ts +8 -8
- package/dist/services/Operations/service.d.ts.map +1 -1
- package/dist/services/Operations/service.js +12 -13
- package/dist/services/QueueMaker/errors.d.ts +3 -3
- package/dist/services/QueueMaker/errors.d.ts.map +1 -1
- package/dist/services/QueueMaker/errors.js +6 -7
- package/dist/services/QueueMaker/memQueue.d.ts +3 -3
- package/dist/services/QueueMaker/memQueue.js +16 -17
- 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 +15 -16
- package/dist/services/Repository.d.ts +42 -42
- package/dist/services/Repository.d.ts.map +1 -1
- package/dist/services/Repository.js +17 -18
- package/dist/services/RepositoryBase.d.ts +12 -11
- package/dist/services/RepositoryBase.d.ts.map +1 -1
- package/dist/services/RepositoryBase.js +35 -37
- package/dist/services/RequestContextContainer.d.ts +14 -11
- package/dist/services/RequestContextContainer.d.ts.map +1 -1
- package/dist/services/RequestContextContainer.js +19 -18
- 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 +51 -54
- 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 +19 -20
- 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 +41 -45
- 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 +15 -17
- 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 +7 -8
- package/dist/services/Store/service.d.ts +8 -8
- 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 +2 -2
- 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.js +17 -19
- package/dist/services/simpledb/diskdb.d.ts +4 -4
- package/dist/services/simpledb/diskdb.js +9 -10
- package/dist/services/simpledb/memdb.d.ts +4 -4
- package/dist/services/simpledb/memdb.js +11 -13
- package/dist/services/simpledb/mongodb.d.ts +5 -5
- package/dist/services/simpledb/mongodb.js +14 -16
- package/dist/services/simpledb/redisdb.d.ts +4 -4
- package/dist/services/simpledb/redisdb.js +11 -12
- package/dist/services/simpledb/shared.d.ts +4 -4
- package/dist/services/simpledb/shared.js +6 -6
- package/dist/services/simpledb/simpledb.d.ts +6 -6
- package/dist/services/simpledb/simpledb.d.ts.map +1 -1
- package/dist/services/simpledb/simpledb.js +15 -16
- package/package.json +5 -25
- package/_cjs/api/express/schema/requestHandler.cjs +0 -172
- package/_cjs/api/express/schema/requestHandler.cjs.map +0 -1
- package/_cjs/api/routing.cjs +0 -278
- package/_cjs/api/routing.cjs.map +0 -1
- package/_src/api/express/schema/requestHandler.ts +0 -372
- package/_src/api/routing.ts +0 -660
- package/dist/api/express/schema/requestHandler.d.ts +0 -71
- package/dist/api/express/schema/requestHandler.d.ts.map +0 -1
- package/dist/api/express/schema/requestHandler.js +0 -140
- package/dist/api/routing.d.ts +0 -103
- package/dist/api/routing.d.ts.map +0 -1
- package/dist/api/routing.js +0 -265
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import * as tsplus_module_1 from "effect/
|
|
2
|
-
import * as tsplus_module_2 from "@effect-app/core/
|
|
3
|
-
import * as tsplus_module_3 from "effect/
|
|
4
|
-
import * as tsplus_module_4 from "effect/Effect";
|
|
1
|
+
import * as tsplus_module_1 from "effect/Effect";
|
|
2
|
+
import * as tsplus_module_2 from "@effect-app/core/Effect";
|
|
3
|
+
import * as tsplus_module_3 from "effect/Option";
|
|
5
4
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
6
5
|
import { flow, pipe } from "@effect-app/core/Function";
|
|
7
6
|
import { RedisClient } from "@effect-app/infra-adapters/redis-client";
|
|
@@ -26,7 +25,7 @@ export function createContext() {
|
|
|
26
25
|
function store(record, currentVersion) {
|
|
27
26
|
const version = tsplus_module_3.getOrElse(tsplus_module_3.map(currentVersion, (cv) => (parseInt(cv) + 1).toString()), () => "1");
|
|
28
27
|
return tsplus_module_3.match(currentVersion, {
|
|
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),
|
|
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), tsplus_module_1.fail(() => new Error("Combination already exists, abort"))), getData(record))
|
|
30
29
|
// TODO: instead use MULTI & EXEC to make it in one command?
|
|
31
30
|
, (data) => hmSetRec(getKey(record.id), {
|
|
32
31
|
version,
|
|
@@ -61,22 +60,22 @@ export function createContext() {
|
|
|
61
60
|
function lockRedisIdx(index) {
|
|
62
61
|
const lockKey = getIdxLockKey(index);
|
|
63
62
|
// acquire
|
|
64
|
-
return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(tsplus_module_1.flatMap(RedisClient, ({ lock }) =>
|
|
63
|
+
return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(tsplus_module_1.flatMap(RedisClient, ({ lock }) => tsplus_module_1.tryPromise(() => lock.lock(lockKey, ttl))), {
|
|
65
64
|
onFailure: (err) => new CouldNotAquireDbLockException(type, lockKey, err),
|
|
66
65
|
// release
|
|
67
66
|
onSuccess: (lock) => ({
|
|
68
|
-
release: tsplus_module_1.orDie(
|
|
67
|
+
release: tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => lock.unlock()))
|
|
69
68
|
})
|
|
70
69
|
}), (l) => l.release);
|
|
71
70
|
}
|
|
72
71
|
function lockRedisRecord(id) {
|
|
73
72
|
// acquire
|
|
74
|
-
return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(tsplus_module_1.flatMap(RedisClient, ({ lock }) =>
|
|
73
|
+
return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(tsplus_module_1.flatMap(RedisClient, ({ lock }) => tsplus_module_1.tryPromise(() => lock.lock(getLockKey(id), ttl))), {
|
|
75
74
|
onFailure: (err) => new CouldNotAquireDbLockException(type, id, err),
|
|
76
75
|
// release
|
|
77
76
|
onSuccess: (lock) => ({
|
|
78
77
|
// TODO
|
|
79
|
-
release: tsplus_module_1.orDie(
|
|
78
|
+
release: tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => lock.unlock()))
|
|
80
79
|
})
|
|
81
80
|
}), (l) => l.release);
|
|
82
81
|
}
|
|
@@ -95,10 +94,10 @@ export function createContext() {
|
|
|
95
94
|
};
|
|
96
95
|
function hmSetRec(key, val) {
|
|
97
96
|
const enc = RedisSerializedDBRecord.Encoder(val);
|
|
98
|
-
return tsplus_module_1.flatMap(RedisClient, ({ client }) => tsplus_module_1.uninterruptible(
|
|
97
|
+
return tsplus_module_1.flatMap(RedisClient, ({ client }) => tsplus_module_1.uninterruptible(tsplus_module_1.async((res) => {
|
|
99
98
|
client.hmset(key, "version", enc.version, "timestamp", enc.timestamp, "data", enc.data, (err) => err
|
|
100
99
|
? res(new ConnectionException(err))
|
|
101
|
-
: res(
|
|
100
|
+
: res(tsplus_module_1.sync(() => void 0)));
|
|
102
101
|
})));
|
|
103
102
|
}
|
|
104
103
|
}
|
|
@@ -108,4 +107,4 @@ export class RedisSerializedDBRecord extends MO.Model()({
|
|
|
108
107
|
data: MO.prop(MO.string)
|
|
109
108
|
}) {
|
|
110
109
|
}
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXNkYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvc2ltcGxlZGIvcmVkaXNkYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDckUsT0FBTyxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUd4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsNkJBQTZCLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUM3RyxPQUFPLEtBQUssUUFBUSxNQUFNLGVBQWUsQ0FBQTtBQUV6QyxNQUFNLEdBQUcsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFBO0FBRXJCLE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sQ0FDTCxJQUFZLEVBQ1osTUFBaUQsRUFDakQsTUFBOEMsRUFDOUMsYUFBcUIsRUFDckIsWUFBNkIsRUFDN0IsRUFBRTtRQUNGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLG9CQUFBLENBQUMsRUFBSyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQTtRQUMxRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUM7WUFDdkMsV0FBVyxFQUFFLE1BQU07WUFDbkIsSUFBSSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsSUFBSSxDQUFDO1NBQ3pELENBQUE7UUFFRCxTQUFTLElBQUksQ0FBQyxFQUFVO1lBQ3RCLDZCQUFPLDhCQUFBLHdCQUFBLFdBQVcsRUFDUCxDQUFDLENBQUMsRUFBRSxF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
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Data } from "effect/Data";
|
|
2
2
|
import { Effect } from "effect/Effect";
|
|
3
|
-
import { Option } from "effect/Option";
|
|
3
|
+
import { Option } from "@effect-app/core/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").Equal>, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" | keyof import("effect").Equal ? never : P]: A[P]; }) => import("effect/Data").YieldableError & {
|
|
6
|
+
declare const CouldNotAquireDbLockException_base: new <A extends Record<string, any>>(args: import("effect/Types").Equals<Omit<A, keyof import("effect/Equal").Equal>, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" | keyof import("effect/Equal").Equal ? never : P]: A[P]; }) => import("effect/Data").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").Equal>, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" | keyof import("effect").Equal ? never : P]: A[P]; }) => import("effect/Data").YieldableError & {
|
|
17
|
+
declare const OptimisticLockException_base: new <A extends Record<string, any>>(args: import("effect/Types").Equals<Omit<A, keyof import("effect/Equal").Equal>, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" | keyof import("effect/Equal").Equal ? never : P]: A[P]; }) => import("effect/Data").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").Equal>, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" | keyof import("effect").Equal ? never : P]: A[P]; }) => import("effect/Data").YieldableError & {
|
|
27
|
+
declare const ConnectionException_base: new <A extends Record<string, any>>(args: import("effect/Types").Equals<Omit<A, keyof import("effect/Equal").Equal>, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" | keyof import("effect/Equal").Equal ? never : P]: A[P]; }) => import("effect/Data").YieldableError & {
|
|
28
28
|
readonly _tag: "ConnectionException";
|
|
29
29
|
} & Readonly<A>;
|
|
30
30
|
export declare class ConnectionException extends ConnectionException_base<{
|
|
@@ -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.
|
|
5
|
+
export class CouldNotAquireDbLockException extends tsplus_module_1.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.
|
|
10
|
+
export class OptimisticLockException extends tsplus_module_1.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.
|
|
15
|
+
export class ConnectionException extends tsplus_module_1.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.
|
|
44
|
+
find: (k) => tsplus_module_3.sync(() => tsplus_module_2.fromNullable(map.get(k))),
|
|
45
45
|
[Symbol.iterator]: () => map[Symbol.iterator](),
|
|
46
|
-
set: (k, v) => tsplus_module_3.
|
|
46
|
+
set: (k, v) => tsplus_module_3.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vX3NyYy9zZXJ2aWNlcy9zaW1wbGVkYi9zaGFyZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUd4QyxNQUFNLE9BQU8sNkJBQ1gsU0FBUSw0QkFBaUIsK0JBQStCLENBQThEO0lBRXRILFlBQVksSUFBWSxFQUFFLEVBQVUsRUFBRSxLQUFZO1FBQ2hELEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSwyQkFBMkIsSUFBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUMvRSxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sdUJBQ1gsU0FBUSw0QkFBaUIseUJBQXlCLENBQWdEO0lBRWxHLFlBQVksSUFBWSxFQUFFLEVBQVU7UUFDbEMsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsWUFBWSxJQUFJLElBQUksRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUE7SUFDdkUsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLDRCQUFpQixxQkFBcUIsQ0FBb0M7SUFFakgsWUFBWSxLQUFZO1FBQ3RCLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsQ0FBQyxDQUFBO1FBRmhELGNBQVMsR0FBRyxxQkFBcUIsQ0FBQTtJQUcxQyxDQUFDO0NBQ0Y7QUFNRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsRUFBRSxDQUFDLEtBQUssRUFBc0IsQ0FBQztJQUNyRSxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQzNCLFNBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDM0IsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQztDQUN6QixDQUFDO0NBQUc7QUFFTCw0QkFBNEI7QUFDNUIsTUFBTSxVQUFVLHNCQUFzQixDQUFDLENBQVk7SUFDakQsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ2QsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQztRQUMzQixTQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQzNCLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztLQUNqQixDQUFDLENBQUE7QUFDSixDQUFDO0FBWUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxJQUFZLEVBQUUsRUFBVTtJQUNuRCxPQUFPLEdBQUcsSUFBSSxRQUFRLEVBQUUsRUFBRSxDQUFBO0FBQzVCLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLElBQVksRUFBRSxFQUFVO0lBQ3BELE9BQU8sR0FBRyxJQUFJLE1BQU0sRUFBRSxFQUFFLENBQUE7QUFDMUIsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPO0lBQ3JCLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFXLENBQUE7SUFDOUIsT0FBTztRQUNMLElBQUksRUFBRSxDQUFDLENBQU8sRUFBRSxFQUFFLENBQUMsMkJBQU8sNkJBQW9CLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRCxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQy9DLEdBQUcsRUFBRSxDQUFDLENBQU8sRUFBRSxDQUFJLEVBQUUsRUFBRSxDQUNyQixxQkFBWSxHQUFHLEVBQUU7WUFDZixHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUNmLENBQUMsQ0FBQztLQUNpQixDQUFBO0FBQ3pCLENBQUMifQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Effect } from "effect/Effect";
|
|
2
|
-
import { Option } from "effect/Option";
|
|
2
|
+
import { Option } from "@effect-app/core/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").Effect<never, never, EffectMap<string, CachedRecord<T>>>;
|
|
14
|
+
get: <T>(type: string) => import("effect/Effect").Effect<never, never, EffectMap<string, CachedRecord<T>>>;
|
|
15
15
|
};
|
|
16
16
|
export interface RecordCache extends ReturnType<typeof makeLiveRecordCache> {
|
|
17
17
|
}
|
|
18
18
|
export declare const RecordCache: import("effect/Context").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>;
|
|
19
|
+
export declare const LiveRecordCache: import("effect/Layer").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").Effect<RecordCache | R | RDecode, InvalidStateError | E, import("effect/Option").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").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").Effect<RecordCache | R | Exclude<R2, import("effect/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,wDAAqB,CAAA;AAE7C,eAAO,MAAM,eAAe,
|
|
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,wDAAqB,CAAA;AAE7C,eAAO,MAAM,eAAe,yDAAqD,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,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,yHAOnB;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,2DASlB;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,0JA6BlB"}
|
|
@@ -1,10 +1,9 @@
|
|
|
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/
|
|
4
|
-
import * as tsplus_module_4 from "effect/
|
|
5
|
-
import * as tsplus_module_5 from "@effect-app/core/
|
|
3
|
+
import * as tsplus_module_3 from "effect/Layer";
|
|
4
|
+
import * as tsplus_module_4 from "@effect-app/core/Effect";
|
|
5
|
+
import * as tsplus_module_5 from "@effect-app/core/Option";
|
|
6
6
|
import * as tsplus_module_6 from "effect/Option";
|
|
7
|
-
import * as tsplus_module_7 from "effect/impl/Option";
|
|
8
7
|
import { makeMap, OptimisticLockException } from "./shared.js";
|
|
9
8
|
export class InvalidStateError {
|
|
10
9
|
constructor(message, details) {
|
|
@@ -16,7 +15,7 @@ export class InvalidStateError {
|
|
|
16
15
|
export function makeLiveRecordCache() {
|
|
17
16
|
const m = new Map();
|
|
18
17
|
return {
|
|
19
|
-
get: (type) => tsplus_module_1.
|
|
18
|
+
get: (type) => tsplus_module_1.sync(() => {
|
|
20
19
|
const ex = m.get(type);
|
|
21
20
|
if (!ex) {
|
|
22
21
|
const nm = makeMap();
|
|
@@ -29,33 +28,33 @@ export function makeLiveRecordCache() {
|
|
|
29
28
|
}
|
|
30
29
|
// module tag
|
|
31
30
|
export const RecordCache = tsplus_module_2.Tag();
|
|
32
|
-
export const LiveRecordCache = tsplus_module_3.effect(RecordCache)(tsplus_module_1.
|
|
33
|
-
const getM = (type) => (eff) => tsplus_module_1.
|
|
31
|
+
export const LiveRecordCache = tsplus_module_3.effect(RecordCache)(tsplus_module_1.sync(() => makeLiveRecordCache()));
|
|
32
|
+
const getM = (type) => (eff) => tsplus_module_1.gen(function* ($) {
|
|
34
33
|
const { get } = yield* $(RecordCache);
|
|
35
|
-
return yield* $(
|
|
34
|
+
return yield* $(tsplus_module_1.flatMap(get(type), eff));
|
|
36
35
|
});
|
|
37
36
|
export function find(tryRead, decode, type) {
|
|
38
37
|
const getCache = getM(type);
|
|
39
|
-
const read = (id) =>
|
|
38
|
+
const read = (id) => tsplus_module_4.mapOption(tsplus_module_4.tapOption(tsplus_module_4.flatMapOption(tryRead(id), ({ data, version }) => tsplus_module_1.mapBoth(decode(data), {
|
|
40
39
|
onFailure: (err) => new InvalidStateError("DB serialisation Issue", err),
|
|
41
40
|
onSuccess: (data) => ({ data, version })
|
|
42
41
|
})), (r) => getCache((c) => c.set(id, r))), (r) => r.data);
|
|
43
|
-
return (id) => getCache((c) =>
|
|
42
|
+
return (id) => getCache((c) => tsplus_module_1.orElse(tsplus_module_4.mapOption(c
|
|
44
43
|
.find(id), (existing) => existing.data), () => read(id)));
|
|
45
44
|
}
|
|
46
45
|
export function storeDirectly(save, type) {
|
|
47
46
|
const getCache = getM(type);
|
|
48
|
-
return (record) => getCache((c) =>
|
|
47
|
+
return (record) => getCache((c) => tsplus_module_1.map(tsplus_module_1.tap(tsplus_module_1.flatMap(tsplus_module_4.mapOption(c
|
|
49
48
|
.find(record.id), (x) => x.version), (cv) => save(record, cv)), (r) => c.set(record.id, r)), (r) => r.data));
|
|
50
49
|
}
|
|
51
50
|
export function store(tryRead, save, lock, type) {
|
|
52
51
|
const getCache = getM(type);
|
|
53
|
-
return (record) => getCache((c) =>
|
|
54
|
-
.find(record.id), (x) => x.version), (_) =>
|
|
52
|
+
return (record) => getCache((c) => tsplus_module_1.map(tsplus_module_1.tap(tsplus_module_1.flatMap(tsplus_module_4.mapOption(c
|
|
53
|
+
.find(record.id), (x) => x.version), (_) => tsplus_module_6.match(_, { onNone: () => save(record, tsplus_module_5.none), onSome: confirmVersionAndSave(record) })), (r) => c.set(record.id, r)), (r) => r.data));
|
|
55
54
|
function confirmVersionAndSave(record) {
|
|
56
|
-
return (cv) =>
|
|
55
|
+
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_6.match(_, { onNone: () => tsplus_module_1.fail(new InvalidStateError("record is gone")), onSome: tsplus_module_1.succeed })), ({ version }) => version !== cv
|
|
57
56
|
? new OptimisticLockException(type, record.id)
|
|
58
|
-
: tsplus_module_1.
|
|
57
|
+
: tsplus_module_1.unit), save(record, tsplus_module_6.some(cv)))));
|
|
59
58
|
}
|
|
60
59
|
}
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL3NpbXBsZWRiL3NpbXBsZWRiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFHOUQsTUFBTSxPQUFPLGlCQUFpQjtJQUU1QixZQUFxQixPQUFlLEVBQVcsT0FBaUI7UUFBM0MsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUFXLFlBQU8sR0FBUCxPQUFPLENBQVU7UUFEdkQsU0FBSSxHQUFHLG1CQUFtQixDQUFBO0lBQ2dDLENBQUM7Q0FDckU7QUFFRCxNQUFNLFVBQVUsbUJBQW1CO0lBQ2pDLE1BQU0sQ0FBQyxHQUFHLElBQUksR0FBRyxFQUFzQyxDQUFBO0lBQ3ZELE9BQU87UUFDTCxHQUFHLEVBQUUsQ0FBSSxJQUFZLEVBQUUsRUFBRSxDQUN2QixxQkFBWSxHQUFHLEVBQUU7WUFDZixNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ3RCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDUixNQUFNLEVBQUUsR0FBRyxPQUFPLEVBQW1CLENBQUE7Z0JBQ3JDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFBO2dCQUNmLE9BQU8sRUFBd0MsQ0FBQTtZQUNqRCxDQUFDO1lBQ0QsT0FBTyxFQUF3QyxDQUFBO1FBQ2pELENBQUMsQ0FBQztLQUNMLENBQUE7QUFDSCxDQUFDO0FBSUQsYUFBYTtBQUNiLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxnQkFBQSxHQUFHLEVBQWUsQ0FBQTtBQUU3QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsdUJBQXNDLFdBQVcsRUFBakQsMkJBQU8sbUJBQW1CLEVBQUUsQ0FBQyxDQUFxQixDQUFBO0FBRWpGLE1BQU0sSUFBSSxHQUFHLENB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "0.85.0
|
|
3
|
+
"version": "0.85.0",
|
|
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/
|
|
24
|
-
"@effect-app/
|
|
21
|
+
"@effect-app/core": "0.68.0",
|
|
22
|
+
"@effect-app/prelude": "0.70.0",
|
|
23
|
+
"@effect-app/infra-adapters": "0.59.0",
|
|
24
|
+
"@effect-app/schema": "0.62.0"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@babel/cli": "^7.23.0",
|
|
@@ -171,16 +171,6 @@
|
|
|
171
171
|
"default": "./_cjs/api/express/schema/jwt.cjs"
|
|
172
172
|
}
|
|
173
173
|
},
|
|
174
|
-
"./api/express/schema/requestHandler": {
|
|
175
|
-
"import": {
|
|
176
|
-
"types": "./dist/api/express/schema/requestHandler.d.ts",
|
|
177
|
-
"default": "./dist/api/express/schema/requestHandler.js"
|
|
178
|
-
},
|
|
179
|
-
"require": {
|
|
180
|
-
"types": "./dist/api/express/schema/requestHandler.d.ts",
|
|
181
|
-
"default": "./_cjs/api/express/schema/requestHandler.cjs"
|
|
182
|
-
}
|
|
183
|
-
},
|
|
184
174
|
"./api/express/schema/routing": {
|
|
185
175
|
"import": {
|
|
186
176
|
"types": "./dist/api/express/schema/routing.d.ts",
|
|
@@ -201,16 +191,6 @@
|
|
|
201
191
|
"default": "./_cjs/api/reportError.cjs"
|
|
202
192
|
}
|
|
203
193
|
},
|
|
204
|
-
"./api/routing": {
|
|
205
|
-
"import": {
|
|
206
|
-
"types": "./dist/api/routing.d.ts",
|
|
207
|
-
"default": "./dist/api/routing.js"
|
|
208
|
-
},
|
|
209
|
-
"require": {
|
|
210
|
-
"types": "./dist/api/routing.d.ts",
|
|
211
|
-
"default": "./_cjs/api/routing.cjs"
|
|
212
|
-
}
|
|
213
|
-
},
|
|
214
194
|
"./api/setupRequest": {
|
|
215
195
|
"import": {
|
|
216
196
|
"types": "./dist/api/setupRequest.d.ts",
|
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.decodeErrors = decodeErrors;
|
|
7
|
-
exports.makeRequestParsers = makeRequestParsers;
|
|
8
|
-
exports.parseRequestParams = parseRequestParams;
|
|
9
|
-
exports.respondSuccess = respondSuccess;
|
|
10
|
-
var tsplus_module_1 = _interopRequireWildcard(require("effect/Effect"));
|
|
11
|
-
var tsplus_module_2 = _interopRequireWildcard(require("effect/impl/Exit"));
|
|
12
|
-
var tsplus_module_3 = _interopRequireWildcard(require("effect/impl/Cause"));
|
|
13
|
-
var tsplus_module_4 = _interopRequireWildcard(require("effect/impl/Effect"));
|
|
14
|
-
var tsplus_module_5 = _interopRequireWildcard(require("@effect-app/core/Function"));
|
|
15
|
-
var tsplus_module_6 = _interopRequireWildcard(require("effect/Option"));
|
|
16
|
-
var tsplus_module_7 = _interopRequireWildcard(require("effect/impl/Option"));
|
|
17
|
-
var tsplus_module_8 = _interopRequireWildcard(require("@effect-app/core/EffectX"));
|
|
18
|
-
var _schema = _interopRequireWildcard(require("@effect-app/schema"));
|
|
19
|
-
var MO = _schema;
|
|
20
|
-
var _errors = require("../../../errors.cjs");
|
|
21
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
22
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
23
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
24
|
-
/* eslint-disable @typescript-eslint/ban-types */
|
|
25
|
-
|
|
26
|
-
// function getErrorMessage(current: ContextEntry) {
|
|
27
|
-
// switch (current.type.name) {
|
|
28
|
-
// case "NonEmptyString":
|
|
29
|
-
// return "Must not be empty"
|
|
30
|
-
// }
|
|
31
|
-
// if (current.type.name?.startsWith("NonEmptyReadonlyArray<")) {
|
|
32
|
-
// return "Must not be empty"
|
|
33
|
-
// }
|
|
34
|
-
// return `Invalid value specified`
|
|
35
|
-
// }
|
|
36
|
-
function decodeErrors(x) {
|
|
37
|
-
return [x];
|
|
38
|
-
}
|
|
39
|
-
// const ValidationApplicative = Effect.getValidationApplicative(
|
|
40
|
-
// makeAssociative<ReadonlyArray<{ type: string; errors: ReturnType<typeof decodeErrors> }>>(
|
|
41
|
-
// (l, r) => l.concat(r)
|
|
42
|
-
// )
|
|
43
|
-
// )
|
|
44
|
-
// const structValidation = DSL.structF(ValidationApplicative)
|
|
45
|
-
function parseRequestParams(parsers) {
|
|
46
|
-
return ({
|
|
47
|
-
body,
|
|
48
|
-
cookies,
|
|
49
|
-
headers,
|
|
50
|
-
params,
|
|
51
|
-
query
|
|
52
|
-
}) => tsplus_module_4.flatMap(tsplus_module_1.Effect.all({
|
|
53
|
-
body: tsplus_module_4.flatMap(tsplus_module_4.exit(parsers.parseBody(body)), _ => tsplus_module_2.isFailure(_) && !tsplus_module_3.isFailure(_.cause) ? tsplus_module_1.Effect.failCauseSync(() => _.cause) : tsplus_module_1.Effect.sync(() => tsplus_module_2.isSuccess(_) ? {
|
|
54
|
-
_tag: "Success",
|
|
55
|
-
value: _.value
|
|
56
|
-
} : {
|
|
57
|
-
_tag: "Failure",
|
|
58
|
-
errors: tsplus_module_3.failures(_.cause)
|
|
59
|
-
})),
|
|
60
|
-
cookie: tsplus_module_4.flatMap(tsplus_module_4.exit(parsers.parseCookie(cookies)), _ => tsplus_module_2.isFailure(_) && !tsplus_module_3.isFailure(_.cause) ? tsplus_module_1.Effect.failCauseSync(() => _.cause) : tsplus_module_1.Effect.sync(() => tsplus_module_2.isSuccess(_) ? {
|
|
61
|
-
_tag: "Success",
|
|
62
|
-
value: _.value
|
|
63
|
-
} : {
|
|
64
|
-
_tag: "Failure",
|
|
65
|
-
errors: tsplus_module_3.failures(_.cause)
|
|
66
|
-
})),
|
|
67
|
-
headers: tsplus_module_4.flatMap(tsplus_module_4.exit(parsers.parseHeaders(headers)), _ => tsplus_module_2.isFailure(_) && !tsplus_module_3.isFailure(_.cause) ? tsplus_module_1.Effect.failCauseSync(() => _.cause) : tsplus_module_1.Effect.sync(() => tsplus_module_2.isSuccess(_) ? {
|
|
68
|
-
_tag: "Success",
|
|
69
|
-
value: _.value
|
|
70
|
-
} : {
|
|
71
|
-
_tag: "Failure",
|
|
72
|
-
errors: tsplus_module_3.failures(_.cause)
|
|
73
|
-
})),
|
|
74
|
-
query: tsplus_module_4.flatMap(tsplus_module_4.exit(parsers.parseQuery(query)), _ => tsplus_module_2.isFailure(_) && !tsplus_module_3.isFailure(_.cause) ? tsplus_module_1.Effect.failCauseSync(() => _.cause) : tsplus_module_1.Effect.sync(() => tsplus_module_2.isSuccess(_) ? {
|
|
75
|
-
_tag: "Success",
|
|
76
|
-
value: _.value
|
|
77
|
-
} : {
|
|
78
|
-
_tag: "Failure",
|
|
79
|
-
errors: tsplus_module_3.failures(_.cause)
|
|
80
|
-
})),
|
|
81
|
-
path: tsplus_module_4.flatMap(tsplus_module_4.exit(parsers.parsePath(params)), _ => tsplus_module_2.isFailure(_) && !tsplus_module_3.isFailure(_.cause) ? tsplus_module_1.Effect.failCauseSync(() => _.cause) : tsplus_module_1.Effect.sync(() => tsplus_module_2.isSuccess(_) ? {
|
|
82
|
-
_tag: "Success",
|
|
83
|
-
value: _.value
|
|
84
|
-
} : {
|
|
85
|
-
_tag: "Failure",
|
|
86
|
-
errors: tsplus_module_3.failures(_.cause)
|
|
87
|
-
}))
|
|
88
|
-
}), ({
|
|
89
|
-
body,
|
|
90
|
-
cookie,
|
|
91
|
-
headers,
|
|
92
|
-
path,
|
|
93
|
-
query
|
|
94
|
-
}) => {
|
|
95
|
-
const errors = [];
|
|
96
|
-
if (body._tag === "Failure") {
|
|
97
|
-
errors.push(makeError("body")(body.errors));
|
|
98
|
-
}
|
|
99
|
-
if (cookie._tag === "Failure") {
|
|
100
|
-
errors.push(makeError("cookie")(cookie.errors));
|
|
101
|
-
}
|
|
102
|
-
if (headers._tag === "Failure") {
|
|
103
|
-
errors.push(makeError("headers")(headers.errors));
|
|
104
|
-
}
|
|
105
|
-
if (path._tag === "Failure") {
|
|
106
|
-
errors.push(makeError("path")(path.errors));
|
|
107
|
-
}
|
|
108
|
-
if (query._tag === "Failure") {
|
|
109
|
-
errors.push(makeError("query")(query.errors));
|
|
110
|
-
}
|
|
111
|
-
if (errors.length) {
|
|
112
|
-
return new _errors.ValidationError({
|
|
113
|
-
errors
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
return tsplus_module_1.Effect.sync(() => ({
|
|
117
|
-
body: body.value,
|
|
118
|
-
cookie: cookie.value,
|
|
119
|
-
headers: headers.value,
|
|
120
|
-
path: path.value,
|
|
121
|
-
query: query.value
|
|
122
|
-
}));
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
// // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
126
|
-
// function mapErrors_<E, NE, NER extends Record<string, Effect<any, E, any>>>(
|
|
127
|
-
// t: NER, // TODO: enforce non empty
|
|
128
|
-
// mapErrors: (k: keyof NER) => (err: E) => NE
|
|
129
|
-
// ): {
|
|
130
|
-
// [K in keyof NER]: Effect<_R<NER[K]>, NE, Effect.Success<NER[K]>>
|
|
131
|
-
// } {
|
|
132
|
-
// return typedKeysOf(t).reduce(
|
|
133
|
-
// (prev, cur) => {
|
|
134
|
-
// prev[cur] = t[cur].mapError(mapErrors(cur))
|
|
135
|
-
// return prev
|
|
136
|
-
// },
|
|
137
|
-
// {} as {
|
|
138
|
-
// [K in keyof NER]: Effect<_R<NER[K]>, NE, Effect.Success<NER[K]>>
|
|
139
|
-
// }
|
|
140
|
-
// )
|
|
141
|
-
// }
|
|
142
|
-
function makeError(type) {
|
|
143
|
-
return e => [{
|
|
144
|
-
type,
|
|
145
|
-
errors: decodeErrors(e)
|
|
146
|
-
}];
|
|
147
|
-
}
|
|
148
|
-
function respondSuccess(encodeResponse) {
|
|
149
|
-
return (req, res) => tsplus_module_5.flow(encodeResponse(req), tsplus_module_1.Effect.succeed, _ => tsplus_module_4.flatMap(_, r => tsplus_module_1.Effect.sync(() => {
|
|
150
|
-
r === undefined ? res.status(204).send() : res.status(200).send(r === null ? JSON.stringify(null) : r);
|
|
151
|
-
})));
|
|
152
|
-
}
|
|
153
|
-
function makeRequestParsers(Request) {
|
|
154
|
-
const ph = tsplus_module_1.Effect.sync(() => tsplus_module_7.map(tsplus_module_7.map(tsplus_module_7.map(tsplus_module_6.Option.fromNullable(Request.Headers), s => s), _schema.Parser.for), MO.condemn));
|
|
155
|
-
const parseHeaders = u => tsplus_module_8.flatMapOption(ph, d => d(u));
|
|
156
|
-
const pq = tsplus_module_1.Effect.sync(() => tsplus_module_7.map(tsplus_module_7.map(tsplus_module_7.map(tsplus_module_6.Option.fromNullable(Request.Query), s => s), _schema.Parser.for), MO.condemn));
|
|
157
|
-
const parseQuery = u => tsplus_module_8.flatMapOption(pq, d => d(u));
|
|
158
|
-
const pb = tsplus_module_1.Effect.sync(() => tsplus_module_7.map(tsplus_module_7.map(tsplus_module_7.map(tsplus_module_6.Option.fromNullable(Request.Body), s => s), _schema.Parser.for), MO.condemn));
|
|
159
|
-
const parseBody = u => tsplus_module_8.flatMapOption(pb, d => d(u));
|
|
160
|
-
const pp = tsplus_module_1.Effect.sync(() => tsplus_module_7.map(tsplus_module_7.map(tsplus_module_7.map(tsplus_module_6.Option.fromNullable(Request.Path), s => s), _schema.Parser.for), MO.condemn));
|
|
161
|
-
const parsePath = u => tsplus_module_8.flatMapOption(pp, d => d(u));
|
|
162
|
-
const pc = tsplus_module_1.Effect.sync(() => tsplus_module_7.map(tsplus_module_7.map(tsplus_module_7.map(tsplus_module_6.Option.fromNullable(Request.Cookie), s => s), _schema.Parser.for), MO.condemn));
|
|
163
|
-
const parseCookie = u => tsplus_module_8.flatMapOption(pc, d => d(u));
|
|
164
|
-
return {
|
|
165
|
-
parseBody,
|
|
166
|
-
parseCookie,
|
|
167
|
-
parseHeaders,
|
|
168
|
-
parsePath,
|
|
169
|
-
parseQuery
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
//# sourceMappingURL=requestHandler.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"requestHandler.cjs","names":["_schema","_interopRequireWildcard","require","MO","_errors","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","decodeErrors","x","parseRequestParams","parsers","body","cookies","headers","params","query","tsplus_module_4","flatMap","tsplus_module_1","Effect","all","exit","parseBody","_","tsplus_module_2","isFailure","tsplus_module_3","cause","failCauseSync","sync","isSuccess","_tag","value","errors","failures","cookie","parseCookie","parseHeaders","parseQuery","path","parsePath","push","makeError","length","ValidationError","type","respondSuccess","encodeResponse","req","res","tsplus_module_5","flow","succeed","undefined","status","send","JSON","stringify","makeRequestParsers","Request","ph","tsplus_module_7","map","tsplus_module_6","Option","fromNullable","Headers","s","Parser","for","condemn","tsplus_module_8","flatMapOption","d","pq","Query","pb","Body","pp","Path","pc","Cookie"],"sources":["../../../../_src/api/express/schema/requestHandler.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;AAEA,IAAAA,OAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAwC,IAAAC,EAAA,GAAAH,OAAA;AAIxC,IAAAI,OAAA,GAAAF,OAAA;AAAoD,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAL,wBAAAK,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AANpD;AACA;;AA6CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACM,SAAUY,YAAYA,CAACC,CAAU;EACrC,OAAO,CAACA,CAAC,CAAC;AACZ;AAEA;AACA;AACA;AACA;AACA;AAEA;AACM,SAAUC,kBAAkBA,CAChCC,OAA+D;EAE/D,OAAO,CAAC;IAAEC,IAAI;IAAEC,OAAO;IAAEC,OAAO;IAAEC,MAAM;IAAEC;EAAK,CAAmB,KAChEC,eAAA,CAAAC,OAAA,CAAAC,eAAA,CAAAC,MAAM,CACHC,GAAG,CAAC;IACHT,IAAI,EAAEK,eAAA,CAAAC,OAAA,CAAAD,eAAA,CAAAK,IAAA,CAAAX,OAAO,CACVY,SAAS,CAACX,IAAI,CAAC,GAENY,CAAC,IACTC,eAAA,CAAAC,SAAA,CAAAF,CAAC,CAAY,IAAI,CAACG,eAAA,CAAAD,SAAA,CAAAF,CAAC,CAACI,KAAK,CAAY,GAChCT,eAAA,CAAAC,MAAM,CAACS,aAAa,CAAC,MAAML,CAAC,CAACI,KAAK,CAA2C,GAC9ET,eAAA,CAAAC,MAAM,CAACU,IAAI,CAAC,MACZL,eAAA,CAAAM,SAAA,CAAAP,CAAC,CAAY,GACT;MAAEQ,IAAI,EAAE,SAAkB;MAAEC,KAAK,EAAET,CAAC,CAACS;IAAK,CAAE,GAC5C;MAAED,IAAI,EAAE,SAAS;MAAEE,MAAM,EAAAP,eAAA,CAAAQ,QAAA,CAAEX,CAAC,CAACI,KAAK;IAAS,CAAE,CAClD,CACJ;IACHQ,MAAM,EAAEnB,eAAA,CAAAC,OAAA,CAAAD,eAAA,CAAAK,IAAA,CAAAX,OAAO,CACZ0B,WAAW,CAACxB,OAAO,CAAC,GAEXW,CAAC,IACTC,eAAA,CAAAC,SAAA,CAAAF,CAAC,CAAY,IAAI,CAACG,eAAA,CAAAD,SAAA,CAAAF,CAAC,CAACI,KAAK,CAAY,GAChCT,eAAA,CAAAC,MAAM,CAACS,aAAa,CAAC,MAAML,CAAC,CAACI,KAAK,CAA2C,GAC9ET,eAAA,CAAAC,MAAM,CAACU,IAAI,CAAC,MACZL,eAAA,CAAAM,SAAA,CAAAP,CAAC,CAAY,GACT;MAAEQ,IAAI,EAAE,SAAkB;MAAEC,KAAK,EAAET,CAAC,CAACS;IAAK,CAAE,GAC5C;MAAED,IAAI,EAAE,SAAS;MAAEE,MAAM,EAAAP,eAAA,CAAAQ,QAAA,CAAEX,CAAC,CAACI,KAAK;IAAS,CAAE,CAClD,CACJ;IACHd,OAAO,EAAEG,eAAA,CAAAC,OAAA,CAAAD,eAAA,CAAAK,IAAA,CAAAX,OAAO,CACb2B,YAAY,CAACxB,OAAO,CAAC,GAEZU,CAAC,IACTC,eAAA,CAAAC,SAAA,CAAAF,CAAC,CAAY,IAAI,CAACG,eAAA,CAAAD,SAAA,CAAAF,CAAC,CAACI,KAAK,CAAY,GAChCT,eAAA,CAAAC,MAAM,CAACS,aAAa,CAAC,MAAML,CAAC,CAACI,KAAK,CAA2C,GAC9ET,eAAA,CAAAC,MAAM,CAACU,IAAI,CAAC,MACZL,eAAA,CAAAM,SAAA,CAAAP,CAAC,CAAY,GACT;MAAEQ,IAAI,EAAE,SAAkB;MAAEC,KAAK,EAAET,CAAC,CAACS;IAAK,CAAE,GAC5C;MAAED,IAAI,EAAE,SAAS;MAAEE,MAAM,EAAAP,eAAA,CAAAQ,QAAA,CAAEX,CAAC,CAACI,KAAK;IAAS,CAAE,CAClD,CACJ;IACHZ,KAAK,EAAEC,eAAA,CAAAC,OAAA,CAAAD,eAAA,CAAAK,IAAA,CAAAX,OAAO,CACX4B,UAAU,CAACvB,KAAK,CAAC,GAERQ,CAAC,IACTC,eAAA,CAAAC,SAAA,CAAAF,CAAC,CAAY,IAAI,CAACG,eAAA,CAAAD,SAAA,CAAAF,CAAC,CAACI,KAAK,CAAY,GAChCT,eAAA,CAAAC,MAAM,CAACS,aAAa,CAAC,MAAML,CAAC,CAACI,KAAK,CAA2C,GAC9ET,eAAA,CAAAC,MAAM,CAACU,IAAI,CAAC,MACZL,eAAA,CAAAM,SAAA,CAAAP,CAAC,CAAY,GACT;MAAEQ,IAAI,EAAE,SAAkB;MAAEC,KAAK,EAAET,CAAC,CAACS;IAAK,CAAE,GAC5C;MAAED,IAAI,EAAE,SAAS;MAAEE,MAAM,EAAAP,eAAA,CAAAQ,QAAA,CAAEX,CAAC,CAACI,KAAK;IAAS,CAAE,CAClD,CACJ;IACHY,IAAI,EAAEvB,eAAA,CAAAC,OAAA,CAAAD,eAAA,CAAAK,IAAA,CAAAX,OAAO,CACV8B,SAAS,CAAC1B,MAAM,CAAC,GAERS,CAAC,IACTC,eAAA,CAAAC,SAAA,CAAAF,CAAC,CAAY,IAAI,CAACG,eAAA,CAAAD,SAAA,CAAAF,CAAC,CAACI,KAAK,CAAY,GAChCT,eAAA,CAAAC,MAAM,CAACS,aAAa,CAAC,MAAML,CAAC,CAACI,KAAK,CAA2C,GAC9ET,eAAA,CAAAC,MAAM,CAACU,IAAI,CAAC,MACZL,eAAA,CAAAM,SAAA,CAAAP,CAAC,CAAY,GACT;MAAEQ,IAAI,EAAE,SAAkB;MAAEC,KAAK,EAAET,CAAC,CAACS;IAAK,CAAE,GAC5C;MAAED,IAAI,EAAE,SAAS;MAAEE,MAAM,EAAAP,eAAA,CAAAQ,QAAA,CAAEX,CAAC,CAACI,KAAK;IAAS,CAAE,CAClD;GAER,CAAC,EACO,CAAC;IAAEhB,IAAI;IAAEwB,MAAM;IAAEtB,OAAO;IAAE0B,IAAI;IAAExB;EAAK,CAAE,KAAI;IAClD,MAAMkB,MAAM,GAAc,EAAE;IAC5B,IAAItB,IAAI,CAACoB,IAAI,KAAK,SAAS,EAAE;MAC3BE,MAAM,CAACQ,IAAI,CAACC,SAAS,CAAC,MAAM,CAAC,CAAC/B,IAAI,CAACsB,MAAM,CAAC,CAAC;IAC7C;IACA,IAAIE,MAAM,CAACJ,IAAI,KAAK,SAAS,EAAE;MAC7BE,MAAM,CAACQ,IAAI,CAACC,SAAS,CAAC,QAAQ,CAAC,CAACP,MAAM,CAACF,MAAM,CAAC,CAAC;IACjD;IACA,IAAIpB,OAAO,CAACkB,IAAI,KAAK,SAAS,EAAE;MAC9BE,MAAM,CAACQ,IAAI,CAACC,SAAS,CAAC,SAAS,CAAC,CAAC7B,OAAO,CAACoB,MAAM,CAAC,CAAC;IACnD;IACA,IAAIM,IAAI,CAACR,IAAI,KAAK,SAAS,EAAE;MAC3BE,MAAM,CAACQ,IAAI,CAACC,SAAS,CAAC,MAAM,CAAC,CAACH,IAAI,CAACN,MAAM,CAAC,CAAC;IAC7C;IACA,IAAIlB,KAAK,CAACgB,IAAI,KAAK,SAAS,EAAE;MAC5BE,MAAM,CAACQ,IAAI,CAACC,SAAS,CAAC,OAAO,CAAC,CAAC3B,KAAK,CAACkB,MAAM,CAAC,CAAC;IAC/C;IACA,IAAIA,MAAM,CAACU,MAAM,EAAE;MACjB,OAAO,IAAIC,uBAAe,CAAC;QAAEX;MAAM,CAAE,CAAC;IACxC;IACA,OAAOf,eAAA,CAAAC,MAAM,CAACU,IAAI,CAAC,OAAO;MACxBlB,IAAI,EAAEA,IAAI,CAACqB,KAAM;MACjBG,MAAM,EAAEA,MAAM,CAACH,KAAM;MACrBnB,OAAO,EAAEA,OAAO,CAACmB,KAAM;MACvBO,IAAI,EAAEA,IAAI,CAACP,KAAM;MACjBjB,KAAK,EAAEA,KAAK,CAACiB;KACd,CAAC,CAAC;EACL,CAAC,CAAC;AACR;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,SAASU,SAASA,CAACG,IAAY;EAC7B,OAAQ1D,CAAU,IAAK,CAAC;IAAE0D,IAAI;IAAEZ,MAAM,EAAE1B,YAAY,CAACpB,CAAC;EAAC,CAAE,CAAC;AAC5D;AAEM,SAAU2D,cAAcA,CAC5BC,cAA2C;EAE3C,OAAO,CAACC,GAAS,EAAEC,GAAqB,KACtCC,eAAA,CAAAC,IAAI,CAACJ,cAAc,CAACC,GAAG,CAAC,EAAE9B,eAAA,CAAAC,MAAM,CAACiC,OAAO,EAAG7B,CAAC,IAC1CP,eAAA,CAAAC,OAAA,CAAAM,CAAC,EAAUlC,CAAC,IACV6B,eAAA,CAAAC,MAAM,CAACU,IAAI,CAAC,MAAK;IACfxC,CAAC,KAAKgE,SAAS,GACXJ,GAAG,CAACK,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,EAAE,GACtBN,GAAG,CAACK,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAClE,CAAC,KAAK,IAAI,GAAGmE,IAAI,CAACC,SAAS,CAAC,IAAI,CAAC,GAAGpE,CAAC,CAAC;EACjE,CAAC,CAAC,CACH,CAAC;AACR;AAwFM,SAAUqE,kBAAkBA,CAWhCC,OAUY;EAEZ,MAAMC,EAAE,GAAG1C,eAAA,CAAAC,MAAM,CAACU,IAAI,CAAC,MACrBgC,eAAA,CAAAC,GAAA,CAAAD,eAAA,CAAAC,GAAA,CAAAD,eAAA,CAAAC,GAAA,CAAAC,eAAA,CAAAC,MAAM,CACHC,YAAY,CAACN,OAAO,CAACO,OAAO,CAAC,EACxBC,CAAC,IAAKA,CAAC,CAAC,EACTC,cAAM,CAACC,GAAG,CAAC,EACXrF,EAAE,CAACsF,OAAO,CAAC,CACnB;EACD,MAAMjC,YAAY,GAAIpC,CAAU,IAAKsE,eAAA,CAAAC,aAAA,CAAAZ,EAAE,EAAaa,CAAC,IAAKA,CAAC,CAACxE,CAAC,CAAC,CAAC;EAE/D,MAAMyE,EAAE,GAAGxD,eAAA,CAAAC,MAAM,CAACU,IAAI,CAAC,MACrBgC,eAAA,CAAAC,GAAA,CAAAD,eAAA,CAAAC,GAAA,CAAAD,eAAA,CAAAC,GAAA,CAAAC,eAAA,CAAAC,MAAM,CACHC,YAAY,CAACN,OAAO,CAACgB,KAAK,CAAC,EACtBR,CAAC,IAAKA,CAAC,CAAC,EACTC,cAAM,CAACC,GAAG,CAAC,EACXrF,EAAE,CAACsF,OAAO,CAAC,CACnB;EACD,MAAMhC,UAAU,GAAIrC,CAAU,IAAKsE,eAAA,CAAAC,aAAA,CAAAE,EAAE,EAAaD,CAAC,IAAKA,CAAC,CAACxE,CAAC,CAAC,CAAC;EAE7D,MAAM2E,EAAE,GAAG1D,eAAA,CAAAC,MAAM,CAACU,IAAI,CAAC,MACrBgC,eAAA,CAAAC,GAAA,CAAAD,eAAA,CAAAC,GAAA,CAAAD,eAAA,CAAAC,GAAA,CAAAC,eAAA,CAAAC,MAAM,CACHC,YAAY,CAACN,OAAO,CAACkB,IAAI,CAAC,EACrBV,CAAC,IAAKA,CAAC,CAAC,EACTC,cAAM,CAACC,GAAG,CAAC,EACXrF,EAAE,CAACsF,OAAO,CAAC,CACnB;EACD,MAAMhD,SAAS,GAAIrB,CAAU,IAAKsE,eAAA,CAAAC,aAAA,CAAAI,EAAE,EAAaH,CAAC,IAAKA,CAAC,CAACxE,CAAC,CAAC,CAAC;EAE5D,MAAM6E,EAAE,GAAG5D,eAAA,CAAAC,MAAM,CAACU,IAAI,CAAC,MACrBgC,eAAA,CAAAC,GAAA,CAAAD,eAAA,CAAAC,GAAA,CAAAD,eAAA,CAAAC,GAAA,CAAAC,eAAA,CAAAC,MAAM,CACHC,YAAY,CAACN,OAAO,CAACoB,IAAI,CAAC,EACrBZ,CAAC,IAAKA,CAAC,CAAC,EACTC,cAAM,CAACC,GAAG,CAAC,EACXrF,EAAE,CAACsF,OAAO,CAAC,CACnB;EACD,MAAM9B,SAAS,GAAIvC,CAAU,IAAKsE,eAAA,CAAAC,aAAA,CAAAM,EAAE,EAAaL,CAAC,IAAKA,CAAC,CAACxE,CAAC,CAAC,CAAC;EAE5D,MAAM+E,EAAE,GAAG9D,eAAA,CAAAC,MAAM,CAACU,IAAI,CAAC,MACrBgC,eAAA,CAAAC,GAAA,CAAAD,eAAA,CAAAC,GAAA,CAAAD,eAAA,CAAAC,GAAA,CAAAC,eAAA,CAAAC,MAAM,CACHC,YAAY,CAACN,OAAO,CAACsB,MAAM,CAAC,EACvBd,CAAC,IAAKA,CAAC,CAAC,EACTC,cAAM,CAACC,GAAG,CAAC,EACXrF,EAAE,CAACsF,OAAO,CAAC,CACnB;EACD,MAAMlC,WAAW,GAAInC,CAAU,IAAKsE,eAAA,CAAAC,aAAA,CAAAQ,EAAE,EAAaP,CAAC,IAAKA,CAAC,CAACxE,CAAC,CAAC,CAAC;EAE9D,OAAO;IACLqB,SAAS;IACTc,WAAW;IACXC,YAAY;IACZG,SAAS;IACTF;GACD;AACH"}
|