@effect-app/infra 0.13.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/_cjs/api/codec.cjs +2 -4
  3. package/_cjs/api/codec.cjs.map +1 -1
  4. package/_cjs/api/defaultErrorHandler.cjs +18 -21
  5. package/_cjs/api/defaultErrorHandler.cjs.map +1 -1
  6. package/_cjs/api/express/makeJsonSchema.cjs +4 -4
  7. package/_cjs/api/express/makeJsonSchema.cjs.map +1 -1
  8. package/_cjs/api/express/makeOpenApiSpecs.cjs +5 -7
  9. package/_cjs/api/express/makeOpenApiSpecs.cjs.map +1 -1
  10. package/_cjs/api/express/schema/requestHandler.cjs +49 -49
  11. package/_cjs/api/express/schema/requestHandler.cjs.map +1 -1
  12. package/_cjs/api/express/schema/routing.cjs +22 -22
  13. package/_cjs/api/express/schema/routing.cjs.map +1 -1
  14. package/_cjs/api/reportError.cjs +6 -17
  15. package/_cjs/api/reportError.cjs.map +1 -1
  16. package/_cjs/api/routing.cjs +63 -63
  17. package/_cjs/api/routing.cjs.map +1 -1
  18. package/_cjs/api/setupRequest.cjs +2 -4
  19. package/_cjs/api/setupRequest.cjs.map +1 -1
  20. package/_cjs/api/writeDocs.cjs +6 -8
  21. package/_cjs/api/writeDocs.cjs.map +1 -1
  22. package/_cjs/errorReporter.cjs +11 -13
  23. package/_cjs/errorReporter.cjs.map +1 -1
  24. package/_cjs/errors.cjs +1 -1
  25. package/_cjs/errors.cjs.map +1 -1
  26. package/_cjs/instrument.cjs +1 -3
  27. package/_cjs/instrument.cjs.map +1 -1
  28. package/_cjs/rateLimit.cjs +6 -8
  29. package/_cjs/rateLimit.cjs.map +1 -1
  30. package/_cjs/services/Emailer/Sendgrid.cjs +12 -18
  31. package/_cjs/services/Emailer/Sendgrid.cjs.map +1 -1
  32. package/_cjs/services/Emailer/fake.cjs +4 -7
  33. package/_cjs/services/Emailer/fake.cjs.map +1 -1
  34. package/_cjs/services/Operations/live.cjs +23 -26
  35. package/_cjs/services/Operations/live.cjs.map +1 -1
  36. package/_cjs/services/Operations/service.cjs +3 -5
  37. package/_cjs/services/Operations/service.cjs.map +1 -1
  38. package/_cjs/services/Repository.cjs +28 -28
  39. package/_cjs/services/Repository.cjs.map +1 -1
  40. package/_cjs/services/Store/Cosmos.cjs +56 -56
  41. package/_cjs/services/Store/Cosmos.cjs.map +1 -1
  42. package/_cjs/services/Store/Disk.cjs +15 -16
  43. package/_cjs/services/Store/Disk.cjs.map +1 -1
  44. package/_cjs/services/Store/Memory.cjs +14 -16
  45. package/_cjs/services/Store/Memory.cjs.map +1 -1
  46. package/_cjs/services/Store/Redis.cjs +22 -23
  47. package/_cjs/services/Store/Redis.cjs.map +1 -1
  48. package/_cjs/services/Store/codeFilter.test.cjs +1 -1
  49. package/_cjs/services/Store/index.cjs +7 -7
  50. package/_cjs/services/Store/index.cjs.map +1 -1
  51. package/_cjs/services/Store/service.cjs +2 -4
  52. package/_cjs/services/Store/service.cjs.map +1 -1
  53. package/_cjs/services/Store/utils.cjs +16 -17
  54. package/_cjs/services/Store/utils.cjs.map +1 -1
  55. package/_cjs/services/simpledb/cosmosdb.cjs +23 -25
  56. package/_cjs/services/simpledb/cosmosdb.cjs.map +1 -1
  57. package/_cjs/services/simpledb/diskdb.cjs +20 -21
  58. package/_cjs/services/simpledb/diskdb.cjs.map +1 -1
  59. package/_cjs/services/simpledb/memdb.cjs +10 -10
  60. package/_cjs/services/simpledb/memdb.cjs.map +1 -1
  61. package/_cjs/services/simpledb/mongodb.cjs +18 -18
  62. package/_cjs/services/simpledb/mongodb.cjs.map +1 -1
  63. package/_cjs/services/simpledb/redisdb.cjs +23 -23
  64. package/_cjs/services/simpledb/redisdb.cjs.map +1 -1
  65. package/_cjs/services/simpledb/shared.cjs +4 -6
  66. package/_cjs/services/simpledb/shared.cjs.map +1 -1
  67. package/_cjs/services/simpledb/simpledb.cjs +15 -14
  68. package/_cjs/services/simpledb/simpledb.cjs.map +1 -1
  69. package/_src/errors.ts +1 -1
  70. package/_src/services/simpledb/memdb.ts +1 -1
  71. package/dist/RequestContext.d.ts +12 -12
  72. package/dist/api/codec.js +3 -5
  73. package/dist/api/defaultErrorHandler.js +20 -21
  74. package/dist/api/express/makeJsonSchema.js +3 -5
  75. package/dist/api/express/makeOpenApiSpecs.js +5 -7
  76. package/dist/api/express/schema/requestHandler.d.ts +5 -5
  77. package/dist/api/express/schema/requestHandler.js +45 -45
  78. package/dist/api/express/schema/routing.js +21 -23
  79. package/dist/api/reportError.js +6 -18
  80. package/dist/api/routing.js +60 -60
  81. package/dist/api/setupRequest.js +3 -5
  82. package/dist/api/writeDocs.js +7 -9
  83. package/dist/errorReporter.js +10 -12
  84. package/dist/errors.js +2 -2
  85. package/dist/instrument.js +2 -4
  86. package/dist/rateLimit.js +7 -9
  87. package/dist/services/Emailer/Sendgrid.js +15 -22
  88. package/dist/services/Emailer/fake.js +5 -8
  89. package/dist/services/Emailer/service.d.ts +1 -1
  90. package/dist/services/Operations/live.js +24 -27
  91. package/dist/services/Operations/service.js +4 -6
  92. package/dist/services/Repository.d.ts +4 -4
  93. package/dist/services/Repository.js +22 -22
  94. package/dist/services/Store/Cosmos.d.ts +1 -1
  95. package/dist/services/Store/Cosmos.js +61 -61
  96. package/dist/services/Store/Disk.js +16 -19
  97. package/dist/services/Store/Memory.d.ts +1 -1
  98. package/dist/services/Store/Memory.js +16 -18
  99. package/dist/services/Store/Redis.d.ts +1 -1
  100. package/dist/services/Store/Redis.js +21 -24
  101. package/dist/services/Store/index.js +6 -8
  102. package/dist/services/Store/service.d.ts +1 -1
  103. package/dist/services/Store/service.js +3 -5
  104. package/dist/services/Store/utils.d.ts +2 -2
  105. package/dist/services/Store/utils.js +18 -19
  106. package/dist/services/simpledb/cosmosdb.d.ts +2 -2
  107. package/dist/services/simpledb/cosmosdb.js +23 -25
  108. package/dist/services/simpledb/diskdb.d.ts +2 -2
  109. package/dist/services/simpledb/diskdb.js +18 -18
  110. package/dist/services/simpledb/memdb.d.ts +3 -3
  111. package/dist/services/simpledb/memdb.js +12 -11
  112. package/dist/services/simpledb/mongodb.d.ts +2 -2
  113. package/dist/services/simpledb/mongodb.js +18 -18
  114. package/dist/services/simpledb/redisdb.d.ts +8 -8
  115. package/dist/services/simpledb/redisdb.js +21 -21
  116. package/dist/services/simpledb/shared.d.ts +9 -9
  117. package/dist/services/simpledb/shared.js +5 -7
  118. package/dist/services/simpledb/simpledb.d.ts +1 -1
  119. package/dist/services/simpledb/simpledb.js +19 -17
  120. package/package.json +11 -11
@@ -1,7 +1,6 @@
1
- import * as tracer_1 from "@effect/io/Debug";
2
- const fileName_1 = "packages/infra/_src/services/simpledb/diskdb.ts";
3
- import * as tsplus_module_1 from "@fp-ts/data/Option";
1
+ import * as tsplus_module_1 from "@fp-ts/core/Option";
4
2
  import * as tsplus_module_2 from "@effect/io/Effect";
3
+ import * as tsplus_module_3 from "@effect-app/core/Option";
5
4
  import { flow, pipe } from "@effect-app/core/Function";
6
5
  import fs from "fs";
7
6
  import * as PLF from "proper-lockfile";
@@ -24,12 +23,13 @@ export function createContext() {
24
23
  };
25
24
  function store(record, currentVersion) {
26
25
  const version = tsplus_module_1.getOrElse(() => "1")(tsplus_module_1.map(cv => (parseInt(cv) + 1).toString())(currentVersion));
27
- const getData = flow(encode, _ => tracer_1.withCallTrace(fileName_1 + ":40:16")(tsplus_module_2.map(data => pretty({ version, timestamp: new Date(), data })))(_));
26
+ const getData = flow(encode, _ => tsplus_module_2.map(_, data => pretty({ version, timestamp: new Date(), data })));
28
27
  const idx = makeIndexKey(record);
29
28
  return tsplus_module_1.isSome(currentVersion)
30
- ? tracer_1.withCallTrace(fileName_1 + ":55:19")(tsplus_module_2.map(() => ({ version, data: record })))(tsplus_module_2.scoped(tracer_1.withCallTrace(fileName_1 + ":46:12")(tsplus_module_2.zipRight(tsplus_module_2.orDie(tracer_1.withCallTrace(fileName_1 + ":47:28")(tsplus_module_2.flatMap(x => x[record.id]
31
- ? tracer_1.withCallTrace(fileName_1 + ":49:26")(tsplus_module_2.fail(() => new Error("Combination already exists, abort"))) : tracer_1.withCallTrace(fileName_1 + ":52:20")(tsplus_module_2.zipRight(writeIndex(idx, { ...x, [idx.key]: record.id })))(tracer_1.withCallTrace(fileName_1 + ":51:20")(tsplus_module_2.flatMap(serialised => fu.writeTextFile(getFilename(type, record.id), serialised)))(getData(record)))))(readIndex(idx)))))(lockIndex(record))))
32
- : tracer_1.withCallTrace(fileName_1 + ":58:12")(tsplus_module_2.map(() => ({ version, data: record })))(tracer_1.withCallTrace(fileName_1 + ":57:12")(tsplus_module_2.flatMap(serialised => fu.writeTextFile(getFilename(type, record.id), serialised)))(getData(record)));
29
+ ? tsplus_module_2.map(tsplus_module_2.scoped(tsplus_module_2.zipRight(lockIndex(record), tsplus_module_2.orDie(tsplus_module_2.flatMap(readIndex(idx), x => x[record.id]
30
+ ? tsplus_module_2.fail(() => new Error("Combination already exists, abort"))
31
+ : tsplus_module_2.zipRight(tsplus_module_2.flatMap(getData(record), serialised => fu.writeTextFile(getFilename(type, record.id), serialised)), writeIndex(idx, { ...x, [idx.key]: record.id })))))), () => ({ version, data: record }))
32
+ : tsplus_module_2.map(tsplus_module_2.flatMap(getData(record), serialised => fu.writeTextFile(getFilename(type, record.id), serialised)), () => ({ version, data: record }));
33
33
  }
34
34
  function lockIndex(record) {
35
35
  const index = makeIndexKey(record);
@@ -44,32 +44,32 @@ export function createContext() {
44
44
  return lockIndexOnDisk(type)(lockKey);
45
45
  }
46
46
  function lockRecordOnDisk(type) {
47
- return (id) => tracer_1.withCallTrace(fileName_1 + ":80:11")(tsplus_module_2.acquireRelease(tracer_1.withCallTrace(fileName_1 + ":77:41")(tsplus_module_2.mapBoth(err => new CouldNotAquireDbLockException(type, id, err), release => ({ release })))(lockFile(getFilename(type, id))), l => l.release));
47
+ return (id) => tsplus_module_2.acquireRelease(tsplus_module_2.mapBoth(lockFile(getFilename(type, id)), err => new CouldNotAquireDbLockException(type, id, err), release => ({ release })), l => l.release);
48
48
  }
49
49
  function lockIndexOnDisk(type) {
50
- return (id) => tracer_1.withCallTrace(fileName_1 + ":90:11")(tsplus_module_2.acquireRelease(tracer_1.withCallTrace(fileName_1 + ":87:40")(tsplus_module_2.mapBoth(err => new CouldNotAquireDbLockException(type, id, err), release => ({ release })))(lockFile(getIdxName(type, id))), l => l.release));
50
+ return (id) => tsplus_module_2.acquireRelease(tsplus_module_2.mapBoth(lockFile(getIdxName(type, id)), err => new CouldNotAquireDbLockException(type, id, err), release => ({ release })), l => l.release);
51
51
  }
52
52
  function readFile(filePath) {
53
- return tracer_1.withCallTrace(fileName_1 + ":98:10")(tsplus_module_2.catchAll(err => tracer_1.withCallTrace(fileName_1 + ":98:33")(tsplus_module_2.die(new ConnectionException(err)))))(fu
54
- .readTextFile(filePath));
53
+ return tsplus_module_2.catchAll(fu
54
+ .readTextFile(filePath), err => tsplus_module_2.die(new ConnectionException(err)));
55
55
  }
56
56
  function find(type) {
57
57
  return (id) => {
58
- return tracer_1.withCallTrace(fileName_1 + ":103:47")(tsplus_module_2.map(_ => tsplus_module_1.map(s => JSON.parse(s))(_)))(tryRead(getFilename(type, id)));
58
+ return tsplus_module_2.map(tryRead(getFilename(type, id)), _ => tsplus_module_1.map(s => JSON.parse(s))(_));
59
59
  };
60
60
  }
61
61
  function getIdx(index) {
62
- return tracer_1.withCallTrace(fileName_1 + ":110:31")(tsplus_module_2.map(idx => tsplus_module_1.fromNullable(idx[index.key])))(readIndex(index));
62
+ return tsplus_module_2.map(readIndex(index), idx => tsplus_module_1.fromNullable(idx[index.key]));
63
63
  }
64
64
  function readIndex(index) {
65
- return tracer_1.withCallTrace(fileName_1 + ":114:51")(tsplus_module_2.map(_ => tsplus_module_1.match(() => ({}), x => JSON.parse(x))(_)))(tryRead(getIdxName(type, index.doc)));
65
+ return tsplus_module_2.map(tryRead(getIdxName(type, index.doc)), _ => tsplus_module_1.match(() => ({}), x => JSON.parse(x))(_));
66
66
  }
67
67
  function writeIndex(index, content) {
68
68
  return pipe(JSON.stringify(content), serialised => fu.writeTextFile(getIdxName(type, index.doc), serialised));
69
69
  }
70
70
  function tryRead(filePath) {
71
- return tracer_1.withCallTrace(fileName_1 + ":130:10")(tsplus_module_2.flatMap(exists => !exists ? tracer_1.withCallTrace(fileName_1 + ":130:38")(tsplus_module_2.sync(() => tsplus_module_1.none)) : tracer_1.withCallTrace(fileName_1 + ":130:76")(tsplus_module_2.map(tsplus_module_1.some))(readFile(filePath))))(fu
72
- .fileExists(filePath));
71
+ return tsplus_module_2.flatMap(fu
72
+ .fileExists(filePath), exists => !exists ? tsplus_module_2.sync(() => tsplus_module_3.none) : tsplus_module_2.map(readFile(filePath), tsplus_module_1.some));
73
73
  }
74
74
  function getFilename(type, id) {
75
75
  return `${dir}/v${schemaVersion}.${getRecordName(type, id)}.json`;
@@ -80,7 +80,7 @@ export function createContext() {
80
80
  };
81
81
  }
82
82
  function lockFile(fileName) {
83
- return tracer_1.withCallTrace(fileName_1 + ":144:17")(tsplus_module_2.tryPromise(() => PLF.lock(fileName).then(flow(tsplus_module_2.tryPromise, _ => tsplus_module_2.orDie(_)))));
83
+ return tsplus_module_2.tryPromise(() => PLF.lock(fileName).then(flow(tsplus_module_2.tryPromise, _ => tsplus_module_2.orDie(_))));
84
84
  }
85
85
  // TODO: ugh.
86
86
  let initialised = false;
@@ -93,4 +93,4 @@ export function initialise(dir) {
93
93
  }
94
94
  initialised = true;
95
95
  }
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlza2RiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vX3NyYy9zZXJ2aWNlcy9zaW1wbGVkYi9kaXNrZGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDdEQsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFBO0FBQ25CLE9BQU8sS0FBSyxHQUFHLE1BQU0saUJBQWlCLENBQUE7QUFFdEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQy9DLE9BQU8sS0FBSyxFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFFekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLDZCQUE2QixFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDN0csT0FBTyxLQUFLLFFBQVEsTUFBTSxlQUFlLENBQUE7QUFHekMsTUFBTSxVQUFVLGFBQWE7SUFDM0IsT0FBTyxDQUNMLElBQVksRUFDWixNQUFpRCxFQUNqRCxNQUE4QyxFQUM5QyxhQUFxQixFQUNyQixZQUE2QixFQUM3QixHQUFHLEdBQUcsV0FBVyxFQUNqQixFQUFFO1FBQ0YsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2YsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFBO1FBQ2hDLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUE7UUFDaEQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDL0IsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1NBQzNDO1FBRUQsT0FBTztZQUNMLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDO1lBQzdDLFdBQVcs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
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlza2RiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vX3NyYy9zZXJ2aWNlcy9zaW1wbGVkYi9kaXNrZGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFDbkIsT0FBTyxLQUFLLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQTtBQUV0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDL0MsT0FBTyxLQUFLLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUV6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsNkJBQTZCLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUM3RyxPQUFPLEtBQUssUUFBUSxNQUFNLGVBQWUsQ0FBQTtBQUd6QyxNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLENBQ0wsSUFBWSxFQUNaLE1BQWlELEVBQ2pELE1BQThDLEVBQzlDLGFBQXFCLEVBQ3JCLFlBQTZCLEVBQzdCLEdBQUcsR0FBRyxXQUFXLEVBQ2pCLEVBQUU7UUFDRixVQUFVLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDZixNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUE7UUFDaEMsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQTtRQUNoRCxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMvQixFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUE7U0FDM0M7UUFFRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUM7WUFDN0MsV0FBVyxF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
@@ -1,12 +1,12 @@
1
1
  import { Effect } from "@effect/io/Effect";
2
- import { Equivalence } from "@fp-ts/data/Equivalence";
2
+ import { Equivalence } from "@fp-ts/core/typeclass/Equivalence";
3
3
  import { Opt } from "@effect-app/core/Option";
4
4
  import * as MO from "@effect-app/schema";
5
5
  import type { DBRecord } from "./shared.js";
6
6
  import * as simpledb from "./simpledb.js";
7
7
  export declare function createContext<TKey extends string, EA, A extends DBRecord<TKey>>(): <REncode, RDecode, EDecode>(type: string, encode: (record: A) => import("@effect/io/Effect").Effect<REncode, never, EA>, decode: (d: EA) => import("@effect/io/Effect").Effect<RDecode, EDecode, A>) => {
8
- find: (id: string) => import("@effect/io/Effect").Effect<simpledb.RecordCache | RDecode, MO.CondemnException | simpledb.InvalidStateError, import("@fp-ts/data/Option").Option<A>>;
9
- findBy: <V extends Partial<A>>(keys: V, eq: import("@fp-ts/data/Equivalence").Equivalence<V>) => import("@effect/io/Effect").Effect<RDecode, MO.CondemnException, import("@fp-ts/data/Option").Option<A & {}>>;
8
+ find: (id: string) => import("@effect/io/Effect").Effect<simpledb.RecordCache | RDecode, MO.CondemnException | simpledb.InvalidStateError, import("@fp-ts/core/Option").Option<A>>;
9
+ findBy: <V extends Partial<A>>(keys: V, eq: import("@fp-ts/core/typeclass/Equivalence").Equivalence<V>) => import("@effect/io/Effect").Effect<RDecode, MO.CondemnException, import("@fp-ts/core/Option").Option<A & {}>>;
10
10
  save: (record: A) => import("@effect/io/Effect").Effect<simpledb.RecordCache | REncode, MO.CondemnException | import("./shared.js").OptimisticLockException | simpledb.InvalidStateError, A>;
11
11
  };
12
12
  //# sourceMappingURL=memdb.d.ts.map
@@ -1,6 +1,6 @@
1
1
  import * as tracer_1 from "@effect/io/Debug";
2
2
  const fileName_1 = "packages/infra/_src/services/simpledb/memdb.ts";
3
- import * as tsplus_module_1 from "@fp-ts/data/Option";
3
+ import * as tsplus_module_1 from "@fp-ts/core/Option";
4
4
  import * as tsplus_module_2 from "@effect/io/Effect";
5
5
  import * as tsplus_module_3 from "@effect-app/core/Effect";
6
6
  import * as tsplus_module_4 from "@effect/io/Exit";
@@ -20,36 +20,37 @@ export function createContext() {
20
20
  save: simpledb.store(find, store, bogusLock, type)
21
21
  };
22
22
  function find(id) {
23
- return tracer_1.withCallTrace(fileName_1 + ":32:10")(tsplus_module_3.mapOpt(tracer_1.withCallTrace(fileName_1 + ":31:10")(tsplus_module_3.flatMapOpt(tracer_1.withCallTrace(fileName_1 + ":30:10")(tsplus_module_2.map(_ => tsplus_module_1.map(s => JSON.parse(s))(_)))(storage
24
- .find(getRecordName(type, id))), parseSDB)), ({ data, version }) => ({
23
+ return tracer_1.withCallTrace(fileName_1 + ":32:10")(tsplus_module_3.mapOpt(tracer_1.withCallTrace(fileName_1 + ":31:10")(tsplus_module_3.flatMapOpt(tsplus_module_2.map(storage
24
+ .find(getRecordName(type, id)), _ => tsplus_module_1.map(s => JSON.parse(s))(_)), parseSDB)), ({ data, version }) => ({
25
25
  data: JSON.parse(data),
26
26
  version
27
27
  })));
28
28
  }
29
29
  function findBy(keys, eq) {
30
30
  // Naive implementation, fine for in memory testing purposes.
31
- return tracer_1.withCallTrace(fileName_1 + ":57:10")(tsplus_module_2.map(tsplus_module_1.fromNullable))(tracer_1.withCallTrace(fileName_1 + ":40:21")(tsplus_module_2.gen(function* ($) {
31
+ return tsplus_module_2.map(tsplus_module_2.gen(function* ($) {
32
32
  for (const [, value] of storage) {
33
33
  const sdb_ = JSON.parse(value);
34
34
  const sdb = yield* $(parseSDB(sdb_));
35
35
  const cr = { data: JSON.parse(sdb.data), version: sdb.version };
36
- const r = yield* $(tsplus_module_2.exit(tracer_1.withCallTrace(fileName_1 + ":46:29")(tsplus_module_2.flatMap(d => eq(d)(keys)
37
- ? tracer_1.withCallTrace(fileName_1 + ":48:19")(tsplus_module_2.sync(() => d)) : tracer_1.withCallTrace(fileName_1 + ":49:26")(tsplus_module_2.fail("not equals"))))(decode(cr.data))));
36
+ const r = yield* $(tsplus_module_2.exit(tsplus_module_2.flatMap(decode(cr.data), d => eq(keys, d)
37
+ ? tsplus_module_2.sync(() => d)
38
+ : tsplus_module_2.fail("not equals"))));
38
39
  if (tsplus_module_4.isSuccess(r)) {
39
40
  return r.value;
40
41
  }
41
42
  }
42
43
  return null;
43
- })));
44
+ }), tsplus_module_1.fromNullable);
44
45
  }
45
46
  function store(record, currentVersion) {
46
47
  const version = tsplus_module_1.getOrElse(() => "1")(tsplus_module_1.map(cv => (parseInt(cv) + 1).toString())(currentVersion));
47
- const getData = flow(encode, _ => tracer_1.withCallTrace(fileName_1 + ":67:36")(tsplus_module_2.map(data => JSON.stringify({ version, timestamp: new Date(), data })))(tracer_1.withCallTrace(fileName_1 + ":67:16")(tsplus_module_2.map(JSON.stringify))(_)));
48
- return tracer_1.withCallTrace(fileName_1 + ":71:10")(tsplus_module_2.map(() => ({ version, data: record })))(tracer_1.withCallTrace(fileName_1 + ":70:10")(tsplus_module_2.flatMap(serialised => storage.set(getRecordName(type, record.id), serialised)))(getData(record)));
48
+ const getData = flow(encode, _ => tsplus_module_2.map(tsplus_module_2.map(_, JSON.stringify), data => JSON.stringify({ version, timestamp: new Date(), data })));
49
+ return tsplus_module_2.map(tsplus_module_2.flatMap(getData(record), serialised => storage.set(getRecordName(type, record.id), serialised)), () => ({ version, data: record }));
49
50
  }
50
51
  };
51
52
  }
52
53
  function bogusLock() {
53
- return tracer_1.withCallTrace(fileName_1 + ":77:22")(tsplus_module_2.acquireRelease(tsplus_module_3.unit, () => tsplus_module_3.unit));
54
+ return tsplus_module_2.acquireRelease(tsplus_module_3.unit, () => tsplus_module_3.unit);
54
55
  }
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL3NpbXBsZWRiL21lbWRiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUNoRCxPQUFPLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBR3hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3hFLE9BQU8sS0FBSyxRQUFRLE1BQU0sZUFBZSxDQUFBO0FBR3pDLDREQUE0RDtBQUM1RCwyQkFBMkI7QUFDM0IsTUFBTSxPQUFPLEdBQUcsT0FBTyxFQUFrQixDQUFBO0FBRXpDLE1BQU0sUUFBUSxHQUFnQyxFQUFFLENBQUMsV0FBVyxDQUEzQyxrQkFBa0IsQ0FBQyxNQUFNLENBQWtCLENBQUE7QUFFNUQsTUFBTSxVQUFVLGFBQWE7SUFDM0IsT0FBTyxDQUNMLElBQVksRUFDWixNQUFpRCxFQUNqRCxNQUE4QyxFQUM5QyxFQUFFO1FBQ0YsT0FBTztZQUNMLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDO1lBQ3ZDLE1BQU07WUFDTixJQUFJLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUM7U0FDbkQsQ0FBQTtRQUVELFNBQVMsSUFBSSxDQUFDLEVBQVU7WUFDdEIscURBQU8scUVBQUEsMkJBQUEsa0VBRUEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxvQkFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQXhCLENBQUMsQ0FBd0IsR0FGOUIsT0FBTztpQkFDWCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FB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
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL3NpbXBsZWRiL21lbWRiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUNoRCxPQUFPLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBR3hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3hFLE9BQU8sS0FBSyxRQUFRLE1BQU0sZUFBZSxDQUFBO0FBR3pDLDREQUE0RDtBQUM1RCwyQkFBMkI7QUFDM0IsTUFBTSxPQUFPLEdBQUcsT0FBTyxFQUFrQixDQUFBO0FBRXpDLE1BQU0sUUFBUSxHQUFnQyxFQUFFLENBQUMsV0FBVyxDQUEzQyxrQkFBa0IsQ0FBQyxNQUFNLENBQWtCLENBQUE7QUFFNUQsTUFBTSxVQUFVLGFBQWE7SUFDM0IsT0FBTyxDQUNMLElBQVksRUFDWixNQUFpRCxFQUNqRCxNQUE4QyxFQUM5QyxFQUFFO1FBQ0YsT0FBTztZQUNMLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDO1lBQ3ZDLE1BQU07WUFDTixJQUFJLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUM7U0FDbkQsQ0FBQTtRQUVELFNBQVMsSUFBSSxDQUFDLEVBQVU7WUFDdEIscURBQU8scUVBQUEsMkJBQUEsb0JBQUEsT0FBTztpQkFDWCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUN6QixDQUFDLENBQUMsRUFBRSxDQUFDLG9CQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBeEIsQ0FBQyxDQUF3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
@@ -6,8 +6,8 @@ import type { DBRecord } from "./shared.js";
6
6
  import { OptimisticLockException } from "./shared.js";
7
7
  import * as simpledb from "./simpledb.js";
8
8
  export declare function createContext<TKey extends string, EA, A extends DBRecord<TKey>>(): <REncode, RDecode, EDecode>(type: string, encode: (record: A) => import("@effect/io/Effect").Effect<REncode, never, EA>, decode: (d: EA) => import("@effect/io/Effect").Effect<RDecode, EDecode, A>, indexes: IndexDescription[]) => import("@effect/io/Effect").Effect<Mongo.MongoClient, unknown, {
9
- find: (id: string) => import("@effect/io/Effect").Effect<simpledb.RecordCache | RDecode | Mongo.MongoClient, unknown, import("@fp-ts/data/Option").Option<A>>;
10
- findBy: (keys: Record<string, string>) => import("@effect/io/Effect").Effect<Mongo.MongoClient, unknown, import("@fp-ts/data/Option").Option<TKey>>;
9
+ find: (id: string) => import("@effect/io/Effect").Effect<simpledb.RecordCache | RDecode | Mongo.MongoClient, unknown, import("@fp-ts/core/Option").Option<A>>;
10
+ findBy: (keys: Record<string, string>) => import("@effect/io/Effect").Effect<Mongo.MongoClient, unknown, import("@fp-ts/core/Option").Option<TKey>>;
11
11
  save: (record: A) => import("@effect/io/Effect").Effect<simpledb.RecordCache | REncode | Mongo.MongoClient, OptimisticLockException, A>;
12
12
  }>;
13
13
  //# sourceMappingURL=mongodb.d.ts.map
@@ -1,7 +1,7 @@
1
1
  import * as tracer_1 from "@effect/io/Debug";
2
2
  const fileName_1 = "packages/infra/_src/services/simpledb/mongodb.ts";
3
3
  import * as tsplus_module_1 from "@effect/io/Effect";
4
- import * as tsplus_module_2 from "@fp-ts/data/Option";
4
+ import * as tsplus_module_2 from "@fp-ts/core/Option";
5
5
  import * as tsplus_module_3 from "@effect-app/core/Effect";
6
6
  import * as Mongo from "@effect-app/infra-adapters/mongo-client";
7
7
  import { OptimisticLockException } from "./shared.js";
@@ -10,46 +10,46 @@ import * as simpledb from "./simpledb.js";
10
10
  // prev[cur] = 1
11
11
  // return prev
12
12
  // }, {} as Record<string, number>)
13
- const setup = (type, indexes) => tracer_1.withCallTrace(fileName_1 + ":17:6")(tsplus_module_1.flatMap(db => tracer_1.withCallTrace(fileName_1 + ":17:27")(tsplus_module_1.tryPromise(() => db.collection(type).createIndexes(indexes)))))(tracer_1.withCallTrace(fileName_1 + ":16:6")(tsplus_module_1.tap(db => tracer_1.withCallTrace(fileName_1 + ":16:23")(tsplus_module_1.tryPromise(() => db.createCollection(type).catch(err => console.warn(err))))))(Mongo.db));
13
+ const setup = (type, indexes) => tsplus_module_1.flatMap(tsplus_module_1.tap(Mongo.db, db => tsplus_module_1.tryPromise(() => db.createCollection(type).catch(err => console.warn(err)))), db => tsplus_module_1.tryPromise(() => db.collection(type).createIndexes(indexes)));
14
14
  export function createContext() {
15
15
  return (type, encode, decode,
16
16
  // schemaVersion: string,
17
17
  indexes) => {
18
- return tracer_1.withCallTrace(fileName_1 + ":27:33")(tsplus_module_1.map(() => ({
18
+ return tsplus_module_1.map(setup(type, indexes), () => ({
19
19
  find: simpledb.find(find, decode, type),
20
20
  findBy,
21
21
  save: simpledb.storeDirectly(store, type)
22
- })))(setup(type, indexes));
22
+ }));
23
23
  function find(id) {
24
- return tracer_1.withCallTrace(fileName_1 + ":43:10")(tsplus_module_3.mapOpt(tracer_1.withCallTrace(fileName_1 + ":42:10")(tsplus_module_1.map(tsplus_module_2.fromNullable))(tracer_1.withCallTrace(fileName_1 + ":35:10")(tsplus_module_1.flatMap(db => tracer_1.withCallTrace(fileName_1 + ":36:18")(tsplus_module_1.tryPromise(() => db
24
+ return tracer_1.withCallTrace(fileName_1 + ":43:10")(tsplus_module_3.mapOpt(tsplus_module_1.map(tsplus_module_1.flatMap(Mongo.db, db => tsplus_module_1.tryPromise(() => db
25
25
  .collection(type)
26
- .findOne({ _id: id })))))(Mongo.db)), ({ data, version }) => ({ version, data })));
26
+ .findOne({ _id: id }))), tsplus_module_2.fromNullable), ({ data, version }) => ({ version, data })));
27
27
  }
28
28
  function findBy(keys) {
29
- return tracer_1.withCallTrace(fileName_1 + ":52:10")(tsplus_module_3.mapOpt(tracer_1.withCallTrace(fileName_1 + ":51:10")(tsplus_module_1.map(tsplus_module_2.fromNullable))(tracer_1.withCallTrace(fileName_1 + ":48:10")(tsplus_module_1.flatMap(db => tracer_1.withCallTrace(fileName_1 + ":49:18")(tsplus_module_1.tryPromise(() => db.collection(type).findOne(keys, { projection: { _id: 1 } })))))(Mongo.db)), ({ _id }) => _id));
29
+ return tracer_1.withCallTrace(fileName_1 + ":52:10")(tsplus_module_3.mapOpt(tsplus_module_1.map(tsplus_module_1.flatMap(Mongo.db, db => tsplus_module_1.tryPromise(() => db.collection(type).findOne(keys, { projection: { _id: 1 } }))), tsplus_module_2.fromNullable), ({ _id }) => _id));
30
30
  }
31
31
  function store(record, currentVersion) {
32
- return tracer_1.withCallTrace(fileName_1 + ":56:21")(tsplus_module_1.gen(function* ($) {
32
+ return tsplus_module_1.gen(function* ($) {
33
33
  const version = tsplus_module_2.getOrElse(() => "1")(tsplus_module_2.map(cv => (parseInt(cv) + 1).toString())(currentVersion));
34
34
  const db = yield* $(Mongo.db);
35
35
  const data = yield* $(encode(record));
36
- yield* $(tsplus_module_2.match(() => tsplus_module_1.orDie(tsplus_module_1.asUnit(tracer_1.withCallTrace(fileName_1 + ":66:22")(tsplus_module_1.tryPromise(() => db
36
+ yield* $(tsplus_module_2.match(() => tsplus_module_1.orDie(tsplus_module_1.asUnit(tsplus_module_1.tryPromise(() => db
37
37
  .collection(type)
38
38
  .insertOne({ _id: record.id, version, timestamp: new Date(), data }, {
39
39
  checkKeys: false // support for keys with `.` and `$`. NOTE: you can write them, read them, but NOT query for them.
40
- }))))), currentVersion => tracer_1.withCallTrace(fileName_1 + ":87:23")(tsplus_module_1.flatMap(x => {
41
- if (!x.modifiedCount) {
42
- return tracer_1.withCallTrace(fileName_1 + ":89:33")(tsplus_module_1.fail(new OptimisticLockException(type, record.id)));
43
- }
44
- return tsplus_module_3.unit;
45
- }))(tsplus_module_1.orDie(tracer_1.withCallTrace(fileName_1 + ":77:22")(tsplus_module_1.tryPromise(() => db.collection(type).replaceOne({ _id: record.id, version: currentVersion }, {
40
+ })))), currentVersion => tsplus_module_1.flatMap(tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => db.collection(type).replaceOne({ _id: record.id, version: currentVersion }, {
46
41
  version,
47
42
  timestamp: new Date(),
48
43
  data
49
- }, { upsert: false }))))))(currentVersion));
44
+ }, { upsert: false }))), x => {
45
+ if (!x.modifiedCount) {
46
+ return tsplus_module_1.fail(new OptimisticLockException(type, record.id));
47
+ }
48
+ return tsplus_module_3.unit;
49
+ }))(currentVersion));
50
50
  return { version, data: record };
51
- }));
51
+ });
52
52
  }
53
53
  };
54
54
  }
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29kYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvc2ltcGxlZGIvbW9uZ29kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLE9BQU8sS0FBSyxLQUFLLE1BQU0seUNBQXlDLENBQUE7QUFFaEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3JELE9BQU8sS0FBSyxRQUFRLE1BQU0sZUFBZSxDQUFBO0FBR3pDLHdHQUF3RztBQUN4RyxrQkFBa0I7QUFDbEIsZ0JBQWdCO0FBQ2hCLG1DQUFtQztBQUVuQyxNQUFNLEtBQUssR0FBRyxDQUFDLElBQVksRUFBRSxPQUEyQixFQUFFLEVBQUUsQ0FDMUQscUVBRVcsRUFBRSxDQUFDLEVBQUUsK0NBQUMsMkJBQWtCLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUEsR0FGcEYsaUVBQ08sRUFBRSxDQUFDLEVBQUUsK0NBQUMsMkJBQWtCLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQSxHQUQvRixLQUFLLENBQUMsRUFBRSxDQUN3RixDQUNYLENBQUE7QUFFdkYsTUFBTSxVQUFVLGFBQWE7SUFDM0IsT0FBTyxDQUNMLElBQVksRUFDWixNQUFpRCxFQUNqRCxNQUE4QztJQUM5Qyx5QkFBeUI7SUFDekIsT0FBMkIsRUFDM0IsRUFBRTtRQUNGLE9BQU8sa0VBQXlCLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDckMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUM7WUFDdkMsTUFBTTtZQUNOLElB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
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29kYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvc2ltcGxlZGIvbW9uZ29kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLE9BQU8sS0FBSyxLQUFLLE1BQU0seUNBQXlDLENBQUE7QUFFaEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3JELE9BQU8sS0FBSyxRQUFRLE1BQU0sZUFBZSxDQUFBO0FBR3pDLHdHQUF3RztBQUN4RyxrQkFBa0I7QUFDbEIsZ0JBQWdCO0FBQ2hCLG1DQUFtQztBQUVuQyxNQUFNLEtBQUssR0FBRyxDQUFDLElBQVksRUFBRSxPQUEyQixFQUFFLEVBQUUsQ0FDMUQsd0JBQUEsb0JBQUEsS0FBSyxDQUFDLEVBQUUsRUFDRCxFQUFFLENBQUMsRUFBRSxDQUFDLDJCQUFrQixHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDckYsRUFBRSxDQUFDLEVBQUUsQ0FBQywyQkFBa0IsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBRXZGLE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sQ0FDTCxJQUFZLEVBQ1osTUFBaUQsRUFDakQsTUFBOEM7SUFDOUMseUJBQXlCO0lBQ3pCLE9BQTJCLEVBQzNCLEVBQUU7UUFDRixPQUFPLG9CQUFBLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNyQyxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FB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
@@ -6,18 +6,18 @@ import type { DBRecord, Index } from "./shared.js";
6
6
  import { CouldNotAquireDbLockException } from "./shared.js";
7
7
  import * as simpledb from "./simpledb.js";
8
8
  export declare function createContext<TKey extends string, EA, A extends DBRecord<TKey>>(): <REncode, RDecode, EDecode>(type: string, encode: (record: A) => import("@effect/io/Effect").Effect<REncode, never, EA>, decode: (d: EA) => import("@effect/io/Effect").Effect<RDecode, EDecode, A>, schemaVersion: string, makeIndexKey: (r: A) => Index) => {
9
- find: (id: string) => import("@effect/io/Effect").Effect<RED.RedisClient | simpledb.RecordCache | RDecode, simpledb.InvalidStateError, import("@fp-ts/data/Option").Option<A>>;
10
- findByIndex: (index: Index) => import("@effect/io/Effect").Effect<RED.RedisClient, RED.ConnectionException, import("@fp-ts/data/Option").Option<TKey>>;
9
+ find: (id: string) => import("@effect/io/Effect").Effect<RED.RedisClient | simpledb.RecordCache | RDecode, simpledb.InvalidStateError, import("@fp-ts/core/Option").Option<A>>;
10
+ findByIndex: (index: Index) => import("@effect/io/Effect").Effect<RED.RedisClient, RED.ConnectionException, import("@fp-ts/core/Option").Option<TKey>>;
11
11
  save: (record: A) => import("@effect/io/Effect").Effect<RED.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<{
14
- version: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("@fp-ts/data/Option").None, import("@fp-ts/data/Option").None>;
15
- timestamp: MO.Property<MO.SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("@fp-ts/data/Option").None, import("@fp-ts/data/Option").None>;
16
- data: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("@fp-ts/data/Option").None, import("@fp-ts/data/Option").None>;
14
+ version: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
15
+ timestamp: MO.Property<MO.SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
16
+ data: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
17
17
  }>> & MO.PropsExtensions<{
18
- version: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("@fp-ts/data/Option").None, import("@fp-ts/data/Option").None>;
19
- timestamp: MO.Property<MO.SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("@fp-ts/data/Option").None, import("@fp-ts/data/Option").None>;
20
- data: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("@fp-ts/data/Option").None, import("@fp-ts/data/Option").None>;
18
+ version: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
19
+ timestamp: MO.Property<MO.SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
20
+ data: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
21
21
  }>;
22
22
  export declare class RedisSerializedDBRecord extends RedisSerializedDBRecord_base {
23
23
  }
@@ -2,7 +2,7 @@ import * as tracer_1 from "@effect/io/Debug";
2
2
  const fileName_1 = "packages/infra/_src/services/simpledb/redisdb.ts";
3
3
  import * as tsplus_module_1 from "@effect/io/Effect";
4
4
  import * as tsplus_module_2 from "@effect-app/core/Effect";
5
- import * as tsplus_module_3 from "@fp-ts/data/Option";
5
+ import * as tsplus_module_3 from "@fp-ts/core/Option";
6
6
  /* eslint-disable @typescript-eslint/no-explicit-any */
7
7
  import { flow, pipe } from "@effect-app/core/Function";
8
8
  import * as MO from "@effect-app/schema";
@@ -12,31 +12,31 @@ import * as simpledb from "./simpledb.js";
12
12
  const ttl = 10 * 1000;
13
13
  export function createContext() {
14
14
  return (type, encode, decode, schemaVersion, makeIndexKey) => {
15
- const getData = flow(encode, _ => tracer_1.withCallTrace(fileName_1 + ":22:41")(tsplus_module_1.map(JSON.stringify))(_));
15
+ const getData = flow(encode, _ => tsplus_module_1.map(_, JSON.stringify));
16
16
  return {
17
17
  find: simpledb.find(find, decode, type),
18
18
  findByIndex: getIdx,
19
19
  save: simpledb.store(find, store, lockRedisRecord, type)
20
20
  };
21
21
  function find(id) {
22
- return tsplus_module_1.orDie(tracer_1.withCallTrace(fileName_1 + ":30:39")(tsplus_module_2.flatMapOpt(RED.hmgetAll(getKey(id)), v => tracer_1.withCallTrace(fileName_1 + ":39:12")(tsplus_module_1.mapError(e => new ConnectionException(new Error(e.toString()))))(tracer_1.withCallTrace(fileName_1 + ":35:12")(tsplus_module_1.map(({ data, version }) => ({
22
+ return tsplus_module_1.orDie(tracer_1.withCallTrace(fileName_1 + ":30:39")(tsplus_module_2.flatMapOpt(RED.hmgetAll(getKey(id)), v => tsplus_module_1.mapError(tsplus_module_1.map(pipe(RedisSerializedDBRecord.Parser, MO.condemnFail)(v), ({ data, version }) => ({
23
23
  data: JSON.parse(data),
24
24
  version
25
- })))(pipe(RedisSerializedDBRecord.Parser, MO.condemnFail)(v))))));
25
+ })), e => new ConnectionException(new Error(e.toString()))))));
26
26
  }
27
27
  function store(record, currentVersion) {
28
28
  const version = tsplus_module_3.getOrElse(() => "1")(tsplus_module_3.map(cv => (parseInt(cv) + 1).toString())(currentVersion));
29
- return tsplus_module_3.match(() => tsplus_module_1.scoped(tracer_1.withCallTrace(fileName_1 + ":48:29")(tsplus_module_1.zipRight(tracer_1.withCallTrace(fileName_1 + ":63:22")(tsplus_module_1.map(() => ({ version, data: record })))(tsplus_module_1.orDie(tracer_1.withCallTrace(fileName_1 + ":62:16")(tsplus_module_1.zipRight(setIndex(record)))(tracer_1.withCallTrace(fileName_1 + ":55:16")(tsplus_module_1.flatMap(data => hmSetRec(getKey(record.id), {
29
+ return tsplus_module_3.match(() => tsplus_module_1.scoped(tsplus_module_1.zipRight(lockIndex(record), tsplus_module_1.map(tsplus_module_1.orDie(tsplus_module_1.zipRight(tsplus_module_1.flatMap(tsplus_module_1.zipRight(tracer_1.withCallTrace(fileName_1 + ":50:16")(tsplus_module_2.zipRightOpt(getIndex(record), tsplus_module_1.fail(() => new Error("Combination already exists, abort")))), getData(record))
30
+ // TODO: instead use MULTI & EXEC to make it in one command?
31
+ , data => hmSetRec(getKey(record.id), {
30
32
  version,
31
33
  timestamp: new Date(),
32
34
  data
33
- })))(tracer_1.withCallTrace(fileName_1 + ":53:16")(tsplus_module_1.zipRight(getData(record)))(tracer_1.withCallTrace(fileName_1 + ":50:16")(tsplus_module_2.zipRightOpt(getIndex(record), tracer_1.withCallTrace(fileName_1 + ":51:24")(tsplus_module_1.fail(() => new Error("Combination already exists, abort"))))))
34
- // TODO: instead use MULTI & EXEC to make it in one command?
35
- ))))))(lockIndex(record))), () => tracer_1.withCallTrace(fileName_1 + ":74:20")(tsplus_module_1.map(() => ({ version, data: record })))(tsplus_module_1.orDie(tracer_1.withCallTrace(fileName_1 + ":67:14")(tsplus_module_1.flatMap(data => hmSetRec(getKey(record.id), {
35
+ })), setIndex(record))), () => ({ version, data: record })))), () => tsplus_module_1.map(tsplus_module_1.orDie(tsplus_module_1.flatMap(getData(record), data => hmSetRec(getKey(record.id), {
36
36
  version,
37
37
  timestamp: new Date(),
38
38
  data
39
- })))(getData(record)))))(currentVersion);
39
+ }))), () => ({ version, data: record })))(currentVersion);
40
40
  }
41
41
  function getIndex(record) {
42
42
  const index = makeIndexKey(record);
@@ -51,7 +51,7 @@ export function createContext() {
51
51
  return lockRedisIdx(index);
52
52
  }
53
53
  function getIdx(index) {
54
- return tracer_1.withCallTrace(fileName_1 + ":94:52")(tsplus_module_1.map(_ => tsplus_module_3.map(i => i)(_)))(RED.hget(getIdxKey(index), index.key));
54
+ return tsplus_module_1.map(RED.hget(getIdxKey(index), index.key), _ => tsplus_module_3.map(i => i)(_));
55
55
  }
56
56
  function setIdx(index, r) {
57
57
  return RED.hset(getIdxKey(index), index.key, r.id);
@@ -59,20 +59,20 @@ export function createContext() {
59
59
  function lockRedisIdx(index) {
60
60
  const lockKey = getIdxLockKey(index);
61
61
  // acquire
62
- return tracer_1.withCallTrace(fileName_1 + ":113:11")(tsplus_module_1.acquireRelease(tracer_1.withCallTrace(fileName_1 + ":106:10")(tsplus_module_1.mapBoth(err => new CouldNotAquireDbLockException(type, lockKey, err),
62
+ return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(tsplus_module_1.flatMap(RED.lock, lock => tsplus_module_1.tryPromise(() => lock.lock(lockKey, ttl))), err => new CouldNotAquireDbLockException(type, lockKey, err),
63
63
  // release
64
64
  lock => ({
65
- release: tsplus_module_1.orDie(tracer_1.withCallTrace(fileName_1 + ":110:29")(tsplus_module_1.tryPromise(() => lock.unlock())))
66
- })))(tracer_1.withCallTrace(fileName_1 + ":105:10")(tsplus_module_1.flatMap(lock => tracer_1.withCallTrace(fileName_1 + ":105:33")(tsplus_module_1.tryPromise(() => lock.lock(lockKey, ttl)))))(RED.lock)), l => l.release));
65
+ release: tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => lock.unlock()))
66
+ })), l => l.release);
67
67
  }
68
68
  function lockRedisRecord(id) {
69
69
  // acquire
70
- return tracer_1.withCallTrace(fileName_1 + ":134:11")(tsplus_module_1.acquireRelease(tracer_1.withCallTrace(fileName_1 + ":126:10")(tsplus_module_1.mapBoth(err => new CouldNotAquireDbLockException(type, id, err),
70
+ return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(tsplus_module_1.flatMap(RED.lock, lock => tsplus_module_1.tryPromise(() => lock.lock(getLockKey(id), ttl))), err => new CouldNotAquireDbLockException(type, id, err),
71
71
  // release
72
72
  lock => ({
73
73
  // TODO
74
- release: tsplus_module_1.orDie(tracer_1.withCallTrace(fileName_1 + ":131:29")(tsplus_module_1.tryPromise(() => lock.unlock())))
75
- })))(tracer_1.withCallTrace(fileName_1 + ":121:10")(tsplus_module_1.flatMap(lock => tracer_1.withCallTrace(fileName_1 + ":122:18")(tsplus_module_1.tryPromise(() => lock.lock(getLockKey(id), ttl)))))(RED.lock)), l => l.release));
74
+ release: tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => lock.unlock()))
75
+ })), l => l.release);
76
76
  }
77
77
  function getKey(id) {
78
78
  return `v${schemaVersion}.${getRecordName(type, id)}`;
@@ -89,11 +89,11 @@ export function createContext() {
89
89
  };
90
90
  function hmSetRec(key, val) {
91
91
  const enc = RedisSerializedDBRecord.Encoder(val);
92
- return tracer_1.withCallTrace(fileName_1 + ":157:23")(tsplus_module_1.flatMap(client => tsplus_module_1.uninterruptible(tracer_1.withCallTrace(fileName_1 + ":159:16")(tsplus_module_1.async(res => {
92
+ return tsplus_module_1.flatMap(RED.client, client => tsplus_module_1.uninterruptible(tsplus_module_1.async(res => {
93
93
  client.hmset(key, "version", enc.version, "timestamp", enc.timestamp, "data", enc.data, err => err
94
- ? res(tracer_1.withCallTrace(fileName_1 + ":170:30")(tsplus_module_1.fail(new ConnectionException(err))))
95
- : res(tracer_1.withCallTrace(fileName_1 + ":171:23")(tsplus_module_1.sync(() => void 0))));
96
- })))))(RED.client);
94
+ ? res(tsplus_module_1.fail(new ConnectionException(err)))
95
+ : res(tsplus_module_1.sync(() => void 0)));
96
+ })));
97
97
  }
98
98
  }
99
99
  export class RedisSerializedDBRecord extends MO.Model()({
@@ -102,4 +102,4 @@ export class RedisSerializedDBRecord extends MO.Model()({
102
102
  data: MO.prop(MO.string)
103
103
  }) {
104
104
  }
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXNkYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvc2ltcGxlZGIvcmVkaXNkYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHVEQUF1RDtBQUV2RCxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ3RELE9BQU8sS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFHeEMsT0FBTyxLQUFLLEdBQUcsTUFBTSx5Q0FBeUMsQ0FBQTtBQUU5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsNkJBQTZCLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUM3RyxPQUFPLEtBQUssUUFBUSxNQUFNLGVBQWUsQ0FBQTtBQUV6QyxNQUFNLEdBQUcsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFBO0FBRXJCLE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sQ0FDTCxJQUFZLEVBQ1osTUFBaUQsRUFDakQsTUFBOEMsRUFDOUMsYUFBcUIsRUFDckIsWUFBNkIsRUFDN0IsRUFBRTtRQUNGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxrRUFBTSxJQUFJLENBQUMsU0FBUyxHQUFwQixDQUFDLENBQW9CLENBQUMsQ0FBQTtRQUN4RCxPQUFPO1lBQ0wsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUM7WUFDdkMsV0FBVyxFQUFFLE1BQU07WUFDbkIsSUFBSSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsSUFBSSxDQUFDO1NBQ3pELENBQUE7UUFFRCxTQUFTLElBQUksQ0FBQyxFQUFVO1lBQ3RCLDJFQUFPLDJCQUFBLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FB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
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXNkYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvc2ltcGxlZGIvcmVkaXNkYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHVEQUF1RDtBQUV2RCxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ3RELE9BQU8sS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFHeEMsT0FBTyxLQUFLLEdBQUcsTUFBTSx5Q0FBeUMsQ0FBQTtBQUU5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsNkJBQTZCLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUM3RyxPQUFPLEtBQUssUUFBUSxNQUFNLGVBQWUsQ0FBQTtBQUV6QyxNQUFNLEdBQUcsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFBO0FBRXJCLE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sQ0FDTCxJQUFZLEVBQ1osTUFBaUQsRUFDakQsTUFBOEMsRUFDOUMsYUFBcUIsRUFDckIsWUFBNkIsRUFDN0IsRUFBRTtRQUNGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxvQkFBQSxDQUFDLEVBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUE7UUFDeEQsT0FBTztZQUNMLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDO1lBQ3ZDLFdBQVcsRUFBRSxNQUFNO1lBQ25CLElBQUksRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLElBQUksQ0FBQztTQUN6RCxDQUFBO1FBRUQsU0FBUyxJQUFJLENBQUMsRUFBVTtZQUN0QiwyRUFBTywyQkFBQSxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFZLENBQUMsQ0FBQyxFQUFFLENBQzdDLHlCQUFBLG9CQUFBLElBQUksQ0FDRix1QkFBdUIsQ0FBQyxNQUFNLEVBQzlCLEVBQUUsQ0FBQyxXQUFXLENBQ2YsQ0FBQyxDQUFDLENBQUMsRUFDRyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQixJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQU87Z0JBQzVCLE9BQU87YUFDUixDQUFDLENBQUMsRUFDTyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksbUJBQW1CLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUNuRSxHQUFNO1FBQ1QsQ0FBQztRQUNELFNBQVMsS0FBSyxDQUFDLE1BQVMsRUFBRSxjQUEyQjtZQUNuRCxNQUFNLE9BQU8sR0FBRywwQkFFSCxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBRk4sb0JBQ1QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFEMUIsY0FBYyxDQUNhLENBQ3BCLENBQUE7WUFDdkIsT0FBTyxzQkFDTCxHQUFHLEVBQUUsd0JBQ0gseUJBQUEsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUNmLDBDQUFBLHlCQUFBLHdCQUFBLHVFQUFBLDRCQUFBLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFFWixxQkFBWSxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDLENBQ2xFLEdBQ1MsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzFCLDREQUE0RDtjQUNuRCxJQUFJLENBQUMsRUFBRSxDQUNkLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUMxQixPQUFPO2dCQUNQLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRTtnQkFDckIsSUFBSTthQUNMLENBQUMsQ0FDSCxFQUNTLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUNoQixHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQXNCLENBQUEsQ0FBQyxDQUNuRSxDQUFPLEVBQ1YsR0FBRyxFQUFFLENBQ0gsMENBQUEsd0JBQUEsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUNKLElBQUksQ0FBQyxFQUFFLENBQ2QsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUU7Z0JBQzFCLE9BQU87Z0JBQ1AsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFO2dCQUNyQixJQUFJO2FBQ0wsQ0FBQyxDQUNILEdBQ1UsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFzQixDQUFBLENBQUMsRUE1Qi9ELGNBQWMsQ0E2QnBCLENBQUE7UUFDSCxDQUFDO1FBRUQsU0FBUyxRQUFRLENBQUMsTUFBUztZQUN6QixNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDbEMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDdEIsQ0FBQztRQUVELFNBQVMsUUFBUSxDQUFDLE1BQVM7WUFDekIsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQ2xDLE9BQU8sTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUM5QixDQUFDO1FBRUQsU0FBUyxTQUFTLENBQUMsTUFBUztZQUMxQixNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDbEMsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDNUIsQ0FBQztRQUVELFNBQVMsTUFBTSxDQUFDLEtBQVk7WUFDMUIsT0FBTyxvQkFBQSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxvQkFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQVMsRUFBcEIsQ0FBQyxDQUFvQixDQUFDLENBQUE7UUFDOUUsQ0FBQztRQUVELFNBQVMsTUFBTSxDQUFDLEtBQVksRUFBRSxDQUFJO1lBQ2hDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDcEQsQ0FBQztRQUVELFNBQVMsWUFBWSxDQUFDLEtBQVk7WUFDaEMsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ3BDLFVBQVU7WUFDVixPQUFPLCtCQUFBLHdCQUFBLHdCQUFBLEdBQUcsQ0FBQyxJQUFJLEVBQ0osSUFBSSxDQUFDLEVBQUUsQ0FBQywyQkFBa0IsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUE2QixDQUFDLENBQUMsRUFFNUYsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLDZCQUE2QixDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBWSxDQUFDO1lBQ3JFLFVBQVU7WUFDVixJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ1AsT0FBTyx3QkFBRSwyQkFBa0IsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBOEIsQ0FBQyxDQUNuRTthQUNULENBQUMsQ0FDSCxFQUNDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDZixDQUFBO1FBQ0wsQ0FBQztRQUVELFNBQVMsZUFBZSxDQUFDLEVBQVU7WUFDakMsVUFBVTtZQUNWLE9BQU8sK0JBQUEsd0JBQUEsd0JBQUEsR0FBRyxDQUFDLElBQUksRUFDSixJQUFJLENBQUMsRUFBRSxDQUNkLDJCQUNFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBNkIsQ0FDakUsQ0FDRixFQUVDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSw2QkFBNkIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQVksQ0FBQztZQUNoRSxVQUFVO1lBQ1YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNQLE9BQU87Z0JBQ1AsT0FBTyx3QkFBRSwyQkFBa0IsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBOEIsQ0FBQyxDQUNuRTthQUNULENBQUMsQ0FDSCxFQUNDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDZixDQUFBO1FBQ0wsQ0FBQztRQUVELFNBQVMsTUFBTSxDQUFDLEVBQVU7WUFDeEIsT0FBTyxJQUFJLGFBQWEsSUFBSSxhQUFhLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUE7UUFDdkQsQ0FBQztRQUVELFNBQVMsVUFBVSxDQUFDLEVBQVU7WUFDNUIsT0FBTyxJQUFJLGFBQWEsVUFBVSxhQUFhLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUE7UUFDN0QsQ0FBQztRQUVELFNBQVMsU0FBUyxDQUFDLEtBQVk7WUFDN0IsT0FBTyxJQUFJLGFBQWEsSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFBO1FBQzdELENBQUM7UUFDRCxTQUFTLGFBQWEsQ0FBQyxLQUFZO1lBQ2pDLE9BQU8sSUFBSSxhQUFhLFVBQVUsWUFBWSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBQ2hGLENBQUM7SUFDSCxDQUFDLENBQUE7SUFFRCxTQUFTLFFBQVEsQ0FBQyxHQUFXLEVBQUUsR0FBNEI7UUFDekQsTUFBTSxHQUFHLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2hELE9BQU8sd0JBQUEsR0FBRyxDQUFDLE1BQU0sRUFDZixNQUFNLENBQUMsRUFBRSxpQ0FDUCxzQkFBK0MsR0FBRyxDQUFDLEVBQUU7WUFDbkQsTUFBTSxDQUFDLEtBQUssQ0FDVixHQUFHLEVBQ0gsU0FBUyxFQUNULEdBQUcsQ0FBQyxPQUFPLEVBQ1gsV0FBVyxFQUNYLEdBQUcsQ0FBQyxTQUFTLEVBQ2IsTUFBTSxFQUNOLEdBQUcsQ0FBQyxJQUFJLEVBQ1IsR0FBRyxDQUFDLEVBQUUsQ0FDSixHQUFHO2dCQUNELENBQUMsQ0FBQyxHQUFHLENBQUMscUJBQVksSUFBSSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNoRCxDQUFDLENBQUMsR0FBRyxDQUFDLDJCQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FDMUIsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFnQixDQUNyQixDQUFBO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsRUFBRSxDQUFDLEtBQUssRUFBMkIsQ0FBQztJQUMvRSxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQzNCLFNBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDM0IsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQztDQUN6QixDQUFDO0NBQUcifQ==
@@ -28,20 +28,20 @@ export interface DBRecord<TKey extends string> {
28
28
  id: TKey;
29
29
  }
30
30
  declare const SerializedDBRecord_base: MO.Model<SerializedDBRecord, MO.SchemaProperties<{
31
- version: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("@fp-ts/data/Option").None, import("@fp-ts/data/Option").None>;
32
- timestamp: MO.Property<MO.SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("@fp-ts/data/Option").None, import("@fp-ts/data/Option").None>;
33
- data: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("@fp-ts/data/Option").None, import("@fp-ts/data/Option").None>;
31
+ version: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
32
+ timestamp: MO.Property<MO.SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
33
+ data: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
34
34
  }>> & MO.PropsExtensions<{
35
- version: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("@fp-ts/data/Option").None, import("@fp-ts/data/Option").None>;
36
- timestamp: MO.Property<MO.SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("@fp-ts/data/Option").None, import("@fp-ts/data/Option").None>;
37
- data: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("@fp-ts/data/Option").None, import("@fp-ts/data/Option").None>;
35
+ version: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
36
+ timestamp: MO.Property<MO.SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
37
+ data: MO.Property<MO.SchemaDefaultSchema<unknown, string, string, string, {}>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
38
38
  }>;
39
39
  export declare class SerializedDBRecord extends SerializedDBRecord_base {
40
40
  }
41
41
  export declare function makeSerialisedDBRecord(s: SchemaAny): MO.SchemaProperties<{
42
- version: MO.Property<MO.SchemaDefaultSchema<unknown, number, number, number, {}>, "required", import("@fp-ts/data/Option").None, import("@fp-ts/data/Option").None>;
43
- timestamp: MO.Property<MO.SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("@fp-ts/data/Option").None, import("@fp-ts/data/Option").None>;
44
- data: MO.Property<MO.SchemaAny, "required", import("@fp-ts/data/Option").None, import("@fp-ts/data/Option").None>;
42
+ version: MO.Property<MO.SchemaDefaultSchema<unknown, number, number, number, {}>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
43
+ timestamp: MO.Property<MO.SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
44
+ data: MO.Property<MO.SchemaAny, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
45
45
  }>;
46
46
  export interface CachedRecord<T> {
47
47
  version: string;
@@ -1,6 +1,4 @@
1
- import * as tracer_1 from "@effect/io/Debug";
2
- const fileName_1 = "packages/infra/_src/services/simpledb/shared.ts";
3
- import * as tsplus_module_1 from "@fp-ts/data/Option";
1
+ import * as tsplus_module_1 from "@fp-ts/core/Option";
4
2
  import * as tsplus_module_2 from "@effect/io/Effect";
5
3
  import * as MO from "@effect-app/schema";
6
4
  class BaseError {
@@ -55,11 +53,11 @@ export function getRecordName(type, id) {
55
53
  export function makeMap() {
56
54
  const map = new Map();
57
55
  return {
58
- find: (k) => tracer_1.withCallTrace(fileName_1 + ":68:24")(tsplus_module_2.sync(() => tsplus_module_1.fromNullable(map.get(k)))),
56
+ find: (k) => tsplus_module_2.sync(() => tsplus_module_1.fromNullable(map.get(k))),
59
57
  [Symbol.iterator]: () => map[Symbol.iterator](),
60
- set: (k, v) => tracer_1.withCallTrace(fileName_1 + ":71:7")(tsplus_module_2.sync(() => {
58
+ set: (k, v) => tsplus_module_2.sync(() => {
61
59
  map.set(k, v);
62
- }))
60
+ })
63
61
  };
64
62
  }
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vX3NyYy9zZXJ2aWNlcy9zaW1wbGVkYi9zaGFyZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFHeEMsTUFBTSxTQUFTO0lBQ2IsWUFBbUIsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFBRyxDQUFDO0NBQ3ZDO0FBQ0QsTUFBTSxPQUFPLDZCQUE4QixTQUFRLFNBQVM7SUFFMUQsWUFBcUIsSUFBWSxFQUFXLEVBQVUsRUFBVyxLQUFZO1FBQzNFLEtBQUssQ0FBQywyQkFBMkIsSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFENUIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUFXLE9BQUUsR0FBRixFQUFFLENBQVE7UUFBVyxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBRHBFLGNBQVMsR0FBRywrQkFBK0IsQ0FBQTtJQUdwRCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsS0FBSztJQUVoRCxZQUFxQixJQUFZLEVBQVcsRUFBVTtRQUNwRCxLQUFLLENBQUMsWUFBWSxJQUFJLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxDQUFBO1FBRDNCLFNBQUksR0FBSixJQUFJLENBQVE7UUFBVyxPQUFFLEdBQUYsRUFBRSxDQUFRO1FBRDdDLGNBQVMsR0FBRyx5QkFBeUIsQ0FBQTtJQUc5QyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsS0FBSztJQUU1QyxZQUFxQixLQUFZO1FBQy9CLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFBO1FBRGhCLFVBQUssR0FBTCxLQUFLLENBQU87UUFEeEIsY0FBUyxHQUFHLHFCQUFxQixDQUFBO0lBRzFDLENBQUM7Q0FDRjtBQU1ELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxFQUFFLENBQUMsS0FBSyxFQUFzQixDQUFDO0lBQ3JFLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUM7SUFDM0IsU0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztJQUMzQixJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO0NBQ3pCLENBQUM7Q0FBRztBQUVMLDRCQUE0QjtBQUM1QixNQUFNLFVBQVUsc0JBQXNCLENBQUMsQ0FBWTtJQUNqRCxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDZCxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQzNCLFNBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0tBQ2pCLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFZRCxNQUFNLFVBQVUsWUFBWSxDQUFDLElBQVksRUFBRSxFQUFVO0lBQ25ELE9BQU8sR0FBRyxJQUFJLFFBQVEsRUFBRSxFQUFFLENBQUE7QUFDNUIsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsSUFBWSxFQUFFLEVBQVU7SUFDcEQsT0FBTyxHQUFHLElBQUksTUFBTSxFQUFFLEVBQUUsQ0FBQTtBQUMxQixDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU87SUFDckIsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQVcsQ0FBQTtJQUM5QixPQUFPO1FBQ0wsSUFBSSxFQUFFLENBQUMsQ0FBTyxFQUFFLEVBQUUsK0NBQUMscUJBQU8sR0FBRyxFQUFFLENBQUMsNkJBQWlCLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzdELENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDL0MsR0FBRyxFQUFFLENBQUMsQ0FBTyxFQUFFLENBQUksRUFBRSxFQUFFLDhDQUNyQixxQkFBTyxHQUFHLEVBQUU7WUFDVixHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUNmLENBQUMsQ0FBQyxDQUFBO0tBQ2lCLENBQUE7QUFDekIsQ0FBQyJ9
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vX3NyYy9zZXJ2aWNlcy9zaW1wbGVkYi9zaGFyZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBR3hDLE1BQU0sU0FBUztJQUNiLFlBQW1CLE9BQWU7UUFBZixZQUFPLEdBQVAsT0FBTyxDQUFRO0lBQUcsQ0FBQztDQUN2QztBQUNELE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxTQUFTO0lBRTFELFlBQXFCLElBQVksRUFBVyxFQUFVLEVBQVcsS0FBWTtRQUMzRSxLQUFLLENBQUMsMkJBQTJCLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRDVCLFNBQUksR0FBSixJQUFJLENBQVE7UUFBVyxPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQVcsVUFBSyxHQUFMLEtBQUssQ0FBTztRQURwRSxjQUFTLEdBQUcsK0JBQStCLENBQUE7SUFHcEQsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLHVCQUF3QixTQUFRLEtBQUs7SUFFaEQsWUFBcUIsSUFBWSxFQUFXLEVBQVU7UUFDcEQsS0FBSyxDQUFDLFlBQVksSUFBSSxJQUFJLEVBQUUsaUJBQWlCLENBQUMsQ0FBQTtRQUQzQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQVcsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUQ3QyxjQUFTLEdBQUcseUJBQXlCLENBQUE7SUFHOUMsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLEtBQUs7SUFFNUMsWUFBcUIsS0FBWTtRQUMvQixLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQTtRQURoQixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBRHhCLGNBQVMsR0FBRyxxQkFBcUIsQ0FBQTtJQUcxQyxDQUFDO0NBQ0Y7QUFNRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsRUFBRSxDQUFDLEtBQUssRUFBc0IsQ0FBQztJQUNyRSxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQzNCLFNBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDM0IsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQztDQUN6QixDQUFDO0NBQUc7QUFFTCw0QkFBNEI7QUFDNUIsTUFBTSxVQUFVLHNCQUFzQixDQUFDLENBQVk7SUFDakQsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ2QsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQztRQUMzQixTQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQzNCLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztLQUNqQixDQUFDLENBQUE7QUFDSixDQUFDO0FBWUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxJQUFZLEVBQUUsRUFBVTtJQUNuRCxPQUFPLEdBQUcsSUFBSSxRQUFRLEVBQUUsRUFBRSxDQUFBO0FBQzVCLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLElBQVksRUFBRSxFQUFVO0lBQ3BELE9BQU8sR0FBRyxJQUFJLE1BQU0sRUFBRSxFQUFFLENBQUE7QUFDMUIsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPO0lBQ3JCLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFXLENBQUE7SUFDOUIsT0FBTztRQUNMLElBQUksRUFBRSxDQUFDLENBQU8sRUFBRSxFQUFFLENBQUMscUJBQU8sR0FBRyxFQUFFLENBQUMsNkJBQWlCLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RCxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQy9DLEdBQUcsRUFBRSxDQUFDLENBQU8sRUFBRSxDQUFJLEVBQUUsRUFBRSxDQUNyQixxQkFBTyxHQUFHLEVBQUU7WUFDVixHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUNmLENBQUMsQ0FBQztLQUNpQixDQUFBO0FBQ3pCLENBQUMifQ==
@@ -17,7 +17,7 @@ export interface RecordCache extends ReturnType<typeof makeLiveRecordCache> {
17
17
  }
18
18
  export declare const RecordCache: import("@fp-ts/data/Context").Tag<RecordCache>;
19
19
  export declare const LiveRecordCache: import("@effect/io/Layer").Layer<never, never, RecordCache>;
20
- export declare function find<R, RDecode, EDecode, E, EA, A>(tryRead: (id: string) => Effect<R, E, Opt<CachedRecord<EA>>>, decode: (d: EA) => Effect<RDecode, EDecode, A>, type: string): (id: string) => import("@effect/io/Effect").Effect<RecordCache | R | RDecode, InvalidStateError | E, import("@fp-ts/data/Option").Option<A>>;
20
+ export declare function find<R, RDecode, EDecode, E, EA, A>(tryRead: (id: string) => Effect<R, E, Opt<CachedRecord<EA>>>, decode: (d: EA) => Effect<RDecode, EDecode, A>, type: string): (id: string) => import("@effect/io/Effect").Effect<RecordCache | R | RDecode, InvalidStateError | E, import("@fp-ts/core/Option").Option<A>>;
21
21
  export declare function storeDirectly<R, E, TKey extends string, A extends DBRecord<TKey>>(save: (r: A, version: Opt<Version>) => Effect<R, E, CachedRecord<A>>, type: string): (record: A) => import("@effect/io/Effect").Effect<RecordCache | R, E, A>;
22
22
  export declare function store<R, E, R2, E2, TKey extends string, EA, A extends DBRecord<TKey>>(tryRead: (id: string) => Effect<R, E, Opt<CachedRecord<EA>>>, save: (r: A, version: Opt<Version>) => Effect<R, E, CachedRecord<A>>, lock: (id: string) => Effect<R2 | Scope, E2, unknown>, type: string): (record: A) => import("@effect/io/Effect").Effect<RecordCache | R | Exclude<R2, import("@effect/io/Scope").Scope>, OptimisticLockException | InvalidStateError | E | E2, A>;
23
23
  //# sourceMappingURL=simpledb.d.ts.map