@effect-app/infra 0.21.7 → 0.22.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/_cjs/_ext/Array.cjs +3 -2
  3. package/_cjs/_ext/Array.cjs.map +1 -1
  4. package/_cjs/api/codec.cjs +1 -1
  5. package/_cjs/api/codec.cjs.map +1 -1
  6. package/_cjs/api/defaultErrorHandler.cjs +18 -17
  7. package/_cjs/api/defaultErrorHandler.cjs.map +1 -1
  8. package/_cjs/api/express/makeJsonSchema.cjs +4 -4
  9. package/_cjs/api/express/makeJsonSchema.cjs.map +1 -1
  10. package/_cjs/api/express/makeOpenApiSpecs.cjs +2 -2
  11. package/_cjs/api/express/makeOpenApiSpecs.cjs.map +1 -1
  12. package/_cjs/api/express/schema/requestHandler.cjs +40 -40
  13. package/_cjs/api/express/schema/requestHandler.cjs.map +1 -1
  14. package/_cjs/api/express/schema/routing.cjs +15 -15
  15. package/_cjs/api/express/schema/routing.cjs.map +1 -1
  16. package/_cjs/api/reportError.cjs +2 -2
  17. package/_cjs/api/reportError.cjs.map +1 -1
  18. package/_cjs/api/routing.cjs +49 -49
  19. package/_cjs/api/routing.cjs.map +1 -1
  20. package/_cjs/api/setupRequest.cjs +2 -2
  21. package/_cjs/api/setupRequest.cjs.map +1 -1
  22. package/_cjs/api/writeDocs.cjs +6 -6
  23. package/_cjs/api/writeDocs.cjs.map +1 -1
  24. package/_cjs/errorReporter.cjs +4 -4
  25. package/_cjs/errorReporter.cjs.map +1 -1
  26. package/_cjs/instrument.cjs +1 -1
  27. package/_cjs/instrument.cjs.map +1 -1
  28. package/_cjs/rateLimit.cjs +4 -4
  29. package/_cjs/rateLimit.cjs.map +1 -1
  30. package/_cjs/services/Emailer/Sendgrid.cjs +8 -7
  31. package/_cjs/services/Emailer/Sendgrid.cjs.map +1 -1
  32. package/_cjs/services/Emailer/fake.cjs +5 -4
  33. package/_cjs/services/Emailer/fake.cjs.map +1 -1
  34. package/_cjs/services/Operations/live.cjs +8 -8
  35. package/_cjs/services/Operations/live.cjs.map +1 -1
  36. package/_cjs/services/Operations/service.cjs +3 -3
  37. package/_cjs/services/Operations/service.cjs.map +1 -1
  38. package/_cjs/services/QueueMaker/errors.cjs +3 -3
  39. package/_cjs/services/QueueMaker/errors.cjs.map +1 -1
  40. package/_cjs/services/QueueMaker/memQueue.cjs +11 -10
  41. package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
  42. package/_cjs/services/QueueMaker/sbqueue.cjs +5 -5
  43. package/_cjs/services/QueueMaker/sbqueue.cjs.map +1 -1
  44. package/_cjs/services/Repository.cjs +21 -21
  45. package/_cjs/services/Repository.cjs.map +1 -1
  46. package/_cjs/services/Store/Cosmos.cjs +38 -38
  47. package/_cjs/services/Store/Cosmos.cjs.map +1 -1
  48. package/_cjs/services/Store/Disk.cjs +10 -9
  49. package/_cjs/services/Store/Disk.cjs.map +1 -1
  50. package/_cjs/services/Store/Memory.cjs +12 -12
  51. package/_cjs/services/Store/Memory.cjs.map +1 -1
  52. package/_cjs/services/Store/Redis.cjs +15 -14
  53. package/_cjs/services/Store/Redis.cjs.map +1 -1
  54. package/_cjs/services/Store/index.cjs +4 -4
  55. package/_cjs/services/Store/index.cjs.map +1 -1
  56. package/_cjs/services/simpledb/cosmosdb.cjs +18 -18
  57. package/_cjs/services/simpledb/cosmosdb.cjs.map +1 -1
  58. package/_cjs/services/simpledb/diskdb.cjs +17 -17
  59. package/_cjs/services/simpledb/diskdb.cjs.map +1 -1
  60. package/_cjs/services/simpledb/memdb.cjs +8 -8
  61. package/_cjs/services/simpledb/memdb.cjs.map +1 -1
  62. package/_cjs/services/simpledb/mongodb.cjs +14 -14
  63. package/_cjs/services/simpledb/mongodb.cjs.map +1 -1
  64. package/_cjs/services/simpledb/redisdb.cjs +19 -19
  65. package/_cjs/services/simpledb/redisdb.cjs.map +1 -1
  66. package/_cjs/services/simpledb/simpledb.cjs +9 -9
  67. package/_cjs/services/simpledb/simpledb.cjs.map +1 -1
  68. package/dist/_ext/Array.js +4 -3
  69. package/dist/api/codec.js +2 -2
  70. package/dist/api/defaultErrorHandler.js +18 -18
  71. package/dist/api/express/makeJsonSchema.js +5 -5
  72. package/dist/api/express/makeOpenApiSpecs.js +2 -2
  73. package/dist/api/express/schema/requestHandler.js +36 -36
  74. package/dist/api/express/schema/routing.js +16 -16
  75. package/dist/api/reportError.js +4 -4
  76. package/dist/api/routing.js +58 -58
  77. package/dist/api/setupRequest.js +3 -3
  78. package/dist/api/writeDocs.js +7 -7
  79. package/dist/errorReporter.js +3 -3
  80. package/dist/instrument.js +2 -2
  81. package/dist/rateLimit.js +5 -5
  82. package/dist/services/Emailer/Sendgrid.js +9 -8
  83. package/dist/services/Emailer/fake.js +6 -5
  84. package/dist/services/Operations/live.js +9 -9
  85. package/dist/services/Operations/service.js +4 -4
  86. package/dist/services/QueueMaker/errors.js +4 -4
  87. package/dist/services/QueueMaker/memQueue.js +10 -10
  88. package/dist/services/QueueMaker/sbqueue.js +5 -5
  89. package/dist/services/Repository.js +15 -15
  90. package/dist/services/Store/Cosmos.js +40 -40
  91. package/dist/services/Store/Disk.js +12 -11
  92. package/dist/services/Store/Memory.js +14 -14
  93. package/dist/services/Store/Redis.js +16 -15
  94. package/dist/services/Store/index.js +5 -5
  95. package/dist/services/simpledb/cosmosdb.js +18 -18
  96. package/dist/services/simpledb/diskdb.js +14 -14
  97. package/dist/services/simpledb/memdb.js +9 -9
  98. package/dist/services/simpledb/mongodb.js +13 -13
  99. package/dist/services/simpledb/redisdb.js +16 -16
  100. package/dist/services/simpledb/simpledb.js +12 -12
  101. package/package.json +11 -11
@@ -11,25 +11,25 @@ class CosmosDbOperationError {
11
11
  this.message = message;
12
12
  }
13
13
  }
14
- const setup = (type, indexingPolicy) => tsplus_module_1.tap(Cosmos.db, db => tsplus_module_1.tryPromise(() => db.containers
14
+ const setup = (type, indexingPolicy) => tsplus_module_1.tap(db => tsplus_module_1.tryPromise(() => db.containers
15
15
  .create({ id: type, indexingPolicy })
16
- .catch(err => console.warn(err))));
16
+ .catch(err => console.warn(err))))(Cosmos.db);
17
17
  // TODO: Error if current indexingPolicy does not match
18
18
  // Effect.flatMap((db) => Effect.tryPromise(() => db.container(type).(indexes)))
19
19
  export function createContext() {
20
20
  return (type, encode, decode,
21
21
  // schemaVersion: string,
22
22
  indexes) => {
23
- return tsplus_module_1.map(setup(type, indexes), () => ({
23
+ return tsplus_module_1.map(() => ({
24
24
  find: simpledb.find(find, decode, type),
25
25
  findBy,
26
26
  save: simpledb.storeDirectly(store, type)
27
- }));
27
+ }))(setup(type, indexes));
28
28
  function find(id) {
29
- return tsplus_module_1.map(tsplus_module_1.map(tsplus_module_1.flatMap(Cosmos.db, db => tsplus_module_1.tryPromise(() => db.container(type).item(id).read())), i => tsplus_module_2.fromNullable(i.resource)), _ => tsplus_module_2.map(({ _etag, data }) => ({ version: _etag, data }))(_));
29
+ return tsplus_module_1.map(_ => tsplus_module_2.map(({ _etag, data }) => ({ version: _etag, data }))(_))(tsplus_module_1.map(i => tsplus_module_2.fromNullable(i.resource))(tsplus_module_1.flatMap(db => tsplus_module_1.tryPromise(() => db.container(type).item(id).read()))(Cosmos.db)));
30
30
  }
31
31
  function findBy(parameters) {
32
- return tsplus_module_1.map(tsplus_module_1.map(tsplus_module_1.flatMap(Cosmos.db, db => tsplus_module_1.tryPromise(() => db
32
+ return tsplus_module_1.map(_ => tsplus_module_2.map(_ => _.id)(_))(tsplus_module_1.map(x => tsplus_module_3.head(x.resources))(tsplus_module_1.flatMap(db => tsplus_module_1.tryPromise(() => db
33
33
  .container(type)
34
34
  .items.query({
35
35
  query: `
@@ -46,7 +46,7 @@ WHERE (
46
46
  value: parameters[p]
47
47
  }))
48
48
  })
49
- .fetchAll())), x => tsplus_module_3.head(x.resources)), _ => tsplus_module_2.map(_ => _.id)(_));
49
+ .fetchAll()))(Cosmos.db)));
50
50
  }
51
51
  function store(record, currentVersion) {
52
52
  return tsplus_module_1.gen(function* ($) {
@@ -57,7 +57,15 @@ WHERE (
57
57
  id: record.id,
58
58
  timestamp: new Date(),
59
59
  data
60
- })))), currentVersion => tsplus_module_1.flatMap(tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => db
60
+ })))), currentVersion => tsplus_module_1.flatMap(x => {
61
+ if (x.statusCode === 412) {
62
+ return tsplus_module_1.fail(new OptimisticLockException(type, record.id));
63
+ }
64
+ if (x.statusCode > 299 || x.statusCode < 200) {
65
+ return tsplus_module_1.die(new CosmosDbOperationError("not able to update record: " + x.statusCode));
66
+ }
67
+ return tsplus_module_4.unit;
68
+ })(tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => db
61
69
  .container(type)
62
70
  .item(record.id)
63
71
  .replace({
@@ -69,18 +77,10 @@ WHERE (
69
77
  type: "IfMatch",
70
78
  condition: currentVersion
71
79
  }
72
- }))), x => {
73
- if (x.statusCode === 412) {
74
- return tsplus_module_1.fail(new OptimisticLockException(type, record.id));
75
- }
76
- if (x.statusCode > 299 || x.statusCode < 200) {
77
- return tsplus_module_1.die(new CosmosDbOperationError("not able to update record: " + x.statusCode));
78
- }
79
- return tsplus_module_4.unit;
80
- }))(currentVersion));
80
+ })))))(currentVersion));
81
81
  return { version, data: record };
82
82
  });
83
83
  }
84
84
  };
85
85
  }
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29zbW9zZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL3NpbXBsZWRiL2Nvc21vc2RiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFFcEQsT0FBTyxLQUFLLE1BQU0sTUFBTSwwQ0FBMEMsQ0FBQTtBQUVsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDckQsT0FBTyxLQUFLLFFBQVEsTUFBTSxlQUFlLENBQUE7QUFHekMsTUFBTSxzQkFBc0I7SUFDMUIsWUFBcUIsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFBRyxDQUFDO0NBQ3pDO0FBRUQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUFZLEVBQUUsY0FBOEIsRUFBRSxFQUFFLENBQzdELG9CQUFBLE1BQU0sQ0FBQyxFQUFFLEVBQUssRUFBRSxDQUFDLEVBQUUsQ0FDakIsMkJBQWtCLEdBQUcsRUFBRSxDQUNyQixFQUFFLENBQUMsVUFBVTtLQUNWLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUM7S0FDcEMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUNuQyxDQUNGLENBQUE7QUFDSCx1REFBdUQ7QUFDdkQsZ0ZBQWdGO0FBQ2hGLE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sQ0FDTCxJQUFZLEVBQ1osTUFBaUQsRUFDakQsTUFBOEM7SUFDOUMseUJBQXlCO0lBQ3pCLE9BQXVCLEVBQ3ZCLEVBQUU7UUFDRixPQUFPLG9CQUFBLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNyQyxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQztZQUN2QyxNQUFNO1lBQ04sSUFBSSxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQztTQUMxQyxDQUFDLENBQUMsQ0FBQTtRQUVILFNBQVMsSUFBSSxDQUFDLEVBQVU7WUFDdEIsT0FBTyxvQkFBQSxvQkFBQSx3QkFBQSxNQUFNLENBQUMsRUFBRSxFQUNMLEVBQUUsQ0FBQyxFQUFFLENBQUMsMkJBQWtCLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBZ0IsQ0FBQyxDQUFDLEVBQ3BGLENBQUMsQ0FBQyxFQUFFLENBQUMsNkJBQW9CLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUV4QyxDQUFDLENBQUMsRUFBRSxDQUNGLG9CQUNFLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBdUIsQ0FBQSxFQURyRSxDQUFDLENBRUEsQ0FDSixDQUFBO1FBQ0wsQ0FBQztRQUVELFNBQVMsTUFBTSxDQUFDLFVBQWtDO1lBQ2hELE9BQU8sb0JBQUEsb0JBQUEsd0JBQUEsTUFBTSxDQUFDLEVBQUUsRUFDTCxFQUFFLENBQUMsRUFBRSxDQUNaLDJCQUFrQixHQUFHLEVBQUUsQ0FDckIsRUFBRTtpQkFDQyxTQUFTLENBQUMsSUFBSSxDQUFDO2lCQUNmLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQ1gsS0FBSyxFQUFFO2VBQ1IsSUFBSTtPQUNaLElBQUk7O0lBR08sV0FBVyxDQUFDLFVBQVUsQ0FBQztxQkFDcEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7cUJBQzFCLElBQUksQ0FBQyxPQUFPLENBQ2pCOztDQUVmO2dCQUNlLFVBQVUsRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDNUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFO29CQUNiLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFFO2lCQUN0QixDQUFDLENBQUM7YUFDSixDQUFDO2lCQUNELFFBQVEsRUFBRSxDQUNkLENBQ0YsRUFDSSxDQUFDLENBQUMsRUFBRSxzQkFBQyxDQUFDLENBQUMsU0FBUyxDQUFLLENBQUMsRUFDdEIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxvQkFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQWYsQ0FBQyxDQUFlLENBQUMsQ0FBQTtRQUMvQixDQUFDO1FBRUQsU0FBUyxLQUFLLENBQUMsTUFBUyxFQUFFLGNBQStCO1lBQ3ZELE9BQU8sb0JBQVcsUUFBUSxDQUFDLEVBQUMsQ0FBQztnQkFDM0IsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFBLENBQUMsb0NBQW9DO2dCQUU1RCxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFBO2dCQUM5QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7Z0JBRXJDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FDTixzQkFDRSxHQUFHLEVBQUUsOENBQ0gsMkJBQWtCLEdBQUcsRUFBRSxDQUNyQixFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7b0JBQzlCLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRTtvQkFDYixTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUU7b0JBQ3JCLElBQUk7aUJBQ0wsQ0FBQyxDQUNILEVBQWEsRUFDaEIsY0FBYyxDQUFDLEVBQUUsQ0FDZiw4Q0FBQSwyQkFBa0IsR0FBRyxFQUFFLENBQ3JCLEVBQUU7cUJBQ0MsU0FBUyxDQUFDLElBQUksQ0FBQztxQkFDZixJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztxQkFDZixPQUFPLENBQ047b0JBQ0UsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFO29CQUNiLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRTtvQkFDckIsSUFBSTtpQkFDTCxFQUNEO29CQUNFLGVBQWUsRUFBRTt3QkFDZixJQUFJLEVBQUUsU0FBUzt3QkFDZixTQUFTLEVBQUUsY0FBYztxQkFDMUI7aUJBQ0YsQ0FDRixDQUNKLEdBQWUsQ0FBQyxDQUFDLEVBQUU7b0JBQ2xCLElBQUksQ0FBQyxDQUFDLFVBQVUsS0FBSyxHQUFHLEVBQUU7d0JBQ3hCLE9BQU8scUJBQVksSUFBSSx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7cUJBQ2pFO29CQUNELElBQUksQ0FBQyxDQUFDLFVBQVUsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLFVBQVUsR0FBRyxHQUFHLEVBQUU7d0JBQzVDLE9BQU8sb0JBQ0wsSUFBSSxzQkFBc0IsQ0FDeEIsNkJBQTZCLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FDN0MsQ0FDRixDQUFBO3FCQUNGO29CQUNELDRCQUFrQjtnQkFDcEIsQ0FBQyxDQUFDLEVBdkNOLGNBQWMsQ0F3Q2IsQ0FDRixDQUFBO2dCQUNELE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBcUIsQ0FBQTtZQUNyRCxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUM7SUFDSCxDQUFDLENBQUE7QUFDSCxDQUFDIn0=
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29zbW9zZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL3NpbXBsZWRiL2Nvc21vc2RiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFFcEQsT0FBTyxLQUFLLE1BQU0sTUFBTSwwQ0FBMEMsQ0FBQTtBQUVsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDckQsT0FBTyxLQUFLLFFBQVEsTUFBTSxlQUFlLENBQUE7QUFHekMsTUFBTSxzQkFBc0I7SUFDMUIsWUFBcUIsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFBRyxDQUFDO0NBQ3pDO0FBRUQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUFZLEVBQUUsY0FBOEIsRUFBRSxFQUFFLENBQzdELG9CQUFjLEVBQUUsQ0FBQyxFQUFFLENBQ2pCLDJCQUFrQixHQUFHLEVBQUUsQ0FDckIsRUFBRSxDQUFDLFVBQVU7S0FDVixNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxDQUFDO0tBQ3BDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDbkMsRUFMSCxNQUFNLENBQUMsRUFBRSxDQU1SLENBQUE7QUFDSCx1REFBdUQ7QUFDdkQsZ0ZBQWdGO0FBQ2hGLE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sQ0FDTCxJQUFZLEVBQ1osTUFBaUQsRUFDakQsTUFBOEM7SUFDOUMseUJBQXlCO0lBQ3pCLE9BQXVCLEVBQ3ZCLEVBQUU7UUFDRixPQUFPLG9CQUF5QixHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3JDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDO1lBQ3ZDLE1BQU07WUFDTixJ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
@@ -23,13 +23,13 @@ export function createContext() {
23
23
  };
24
24
  function store(record, currentVersion) {
25
25
  const version = tsplus_module_1.getOrElse(() => "1")(tsplus_module_1.map(cv => (parseInt(cv) + 1).toString())(currentVersion));
26
- const getData = flow(encode, _ => 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 }))(_));
27
27
  const idx = makeIndexKey(record);
28
28
  return tsplus_module_1.isSome(currentVersion)
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]
29
+ ? tsplus_module_2.map(() => ({ version, data: record }))(tsplus_module_2.scoped(tsplus_module_2.zipRight(tsplus_module_2.orDie(tsplus_module_2.flatMap(x => x[record.id]
30
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 }));
31
+ : tsplus_module_2.zipRight(writeIndex(idx, { ...x, [idx.key]: record.id }))(tsplus_module_2.flatMap(serialised => fu.writeTextFile(getFilename(type, record.id), serialised))(getData(record))))(readIndex(idx))))(lockIndex(record))))
32
+ : tsplus_module_2.map(() => ({ version, data: record }))(tsplus_module_2.flatMap(serialised => fu.writeTextFile(getFilename(type, record.id), serialised))(getData(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) => tsplus_module_2.acquireRelease(tsplus_module_2.mapBoth(lockFile(getFilename(type, id)), err => new CouldNotAquireDbLockException(type, id, err), release => ({ release })), l => l.release);
47
+ return (id) => tsplus_module_2.acquireRelease(tsplus_module_2.mapBoth(err => new CouldNotAquireDbLockException(type, id, err), release => ({ release }))(lockFile(getFilename(type, id))), l => l.release);
48
48
  }
49
49
  function lockIndexOnDisk(type) {
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);
50
+ return (id) => tsplus_module_2.acquireRelease(tsplus_module_2.mapBoth(err => new CouldNotAquireDbLockException(type, id, err), release => ({ release }))(lockFile(getIdxName(type, id))), l => l.release);
51
51
  }
52
52
  function readFile(filePath) {
53
- return tsplus_module_2.catchAll(fu
54
- .readTextFile(filePath), err => tsplus_module_2.die(new ConnectionException(err)));
53
+ return tsplus_module_2.catchAll(err => tsplus_module_2.die(new ConnectionException(err)))(fu
54
+ .readTextFile(filePath));
55
55
  }
56
56
  function find(type) {
57
57
  return (id) => {
58
- return tsplus_module_2.map(tryRead(getFilename(type, id)), _ => tsplus_module_1.map(s => JSON.parse(s))(_));
58
+ return tsplus_module_2.map(_ => tsplus_module_1.map(s => JSON.parse(s))(_))(tryRead(getFilename(type, id)));
59
59
  };
60
60
  }
61
61
  function getIdx(index) {
62
- return tsplus_module_2.map(readIndex(index), idx => tsplus_module_1.fromNullable(idx[index.key]));
62
+ return tsplus_module_2.map(idx => tsplus_module_1.fromNullable(idx[index.key]))(readIndex(index));
63
63
  }
64
64
  function readIndex(index) {
65
- return tsplus_module_2.map(tryRead(getIdxName(type, index.doc)), _ => tsplus_module_1.match(() => ({}), x => JSON.parse(x))(_));
65
+ return tsplus_module_2.map(_ => tsplus_module_1.match(() => ({}), x => JSON.parse(x))(_))(tryRead(getIdxName(type, index.doc)));
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 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));
71
+ return tsplus_module_2.flatMap(exists => !exists ? tsplus_module_2.sync(() => tsplus_module_3.none) : tsplus_module_2.map(tsplus_module_1.some)(readFile(filePath)))(fu
72
+ .fileExists(filePath));
73
73
  }
74
74
  function getFilename(type, id) {
75
75
  return `${dir}/v${schemaVersion}.${getRecordName(type, id)}.json`;
@@ -93,4 +93,4 @@ export function initialise(dir) {
93
93
  }
94
94
  initialised = true;
95
95
  }
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlza2RiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vX3NyYy9zZXJ2aWNlcy9zaW1wbGVkYi9kaXNrZGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFDbkIsT0FBTyxLQUFLLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQTtBQUV0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDL0MsT0FBTyxLQUFLLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUV6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsNkJBQTZCLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUM3RyxPQUFPLEtBQUssUUFBUSxNQUFNLGVBQWUsQ0FBQTtBQUd6QyxNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLENBQ0wsSUFBWSxFQUNaLE1BQWlELEVBQ2pELE1BQThDLEVBQzlDLGFBQXFCLEVBQ3JCLFlBQTZCLEVBQzdCLEdBQUcsR0FBRyxXQUFXLEVBQ2pCLEVBQUU7UUFDRixVQUFVLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDZixNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUE7UUFDaEMsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQTtRQUNoRCxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMvQixFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUE7U0FDM0M7UUFFRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUM7WUFDN0MsV0FBVyxF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
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlza2RiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vX3NyYy9zZXJ2aWNlcy9zaW1wbGVkYi9kaXNrZGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFDbkIsT0FBTyxLQUFLLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQTtBQUV0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDL0MsT0FBTyxLQUFLLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUV6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsNkJBQTZCLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUM3RyxPQUFPLEtBQUssUUFBUSxNQUFNLGVBQWUsQ0FBQTtBQUd6QyxNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLENBQ0wsSUFBWSxFQUNaLE1BQWlELEVBQ2pELE1BQThDLEVBQzlDLGFBQXFCLEVBQ3JCLFlBQTZCLEVBQzdCLEdBQUcsR0FBRyxXQUFXLEVBQ2pCLEVBQUU7UUFDRixVQUFVLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDZixNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUE7UUFDaEMsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQTtRQUNoRCxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMvQixFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUE7U0FDM0M7UUFFRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUM7WUFDN0MsV0FBVyxF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
@@ -18,37 +18,37 @@ export function createContext() {
18
18
  save: simpledb.store(find, store, bogusLock, type)
19
19
  };
20
20
  function find(id) {
21
- return tsplus_module_3.mapOption(tsplus_module_3.flatMapOption(tsplus_module_2.map(storage
22
- .find(getRecordName(type, id)), _ => tsplus_module_1.map(s => JSON.parse(s))(_)), parseSDB), ({ data, version }) => ({
21
+ return tsplus_module_3.mapOption(tsplus_module_3.flatMapOption(tsplus_module_2.map(_ => tsplus_module_1.map(s => JSON.parse(s))(_))(storage
22
+ .find(getRecordName(type, id))), parseSDB), ({ data, version }) => ({
23
23
  data: JSON.parse(data),
24
24
  version
25
25
  }));
26
26
  }
27
27
  function findBy(keys, eq) {
28
28
  // Naive implementation, fine for in memory testing purposes.
29
- return tsplus_module_2.map(tsplus_module_2.gen(function* ($) {
29
+ return tsplus_module_2.map(tsplus_module_1.fromNullable)(tsplus_module_2.gen(function* ($) {
30
30
  for (const [, value] of storage) {
31
31
  const sdb_ = JSON.parse(value);
32
32
  const sdb = yield* $(parseSDB(sdb_));
33
33
  const cr = { data: JSON.parse(sdb.data), version: sdb.version };
34
- const r = yield* $(tsplus_module_2.exit(tsplus_module_2.flatMap(decode(cr.data), d => eq(keys, d)
34
+ const r = yield* $(tsplus_module_2.exit(tsplus_module_2.flatMap(d => eq(keys, d)
35
35
  ? tsplus_module_2.sync(() => d)
36
- : tsplus_module_2.fail("not equals"))));
36
+ : tsplus_module_2.fail("not equals"))(decode(cr.data))));
37
37
  if (tsplus_module_4.isSuccess(r)) {
38
38
  return r.value;
39
39
  }
40
40
  }
41
41
  return null;
42
- }), tsplus_module_1.fromNullable);
42
+ }));
43
43
  }
44
44
  function store(record, currentVersion) {
45
45
  const version = tsplus_module_1.getOrElse(() => "1")(tsplus_module_1.map(cv => (parseInt(cv) + 1).toString())(currentVersion));
46
- const getData = flow(encode, _ => tsplus_module_2.map(tsplus_module_2.map(_, JSON.stringify), data => JSON.stringify({ version, timestamp: new Date(), data })));
47
- return tsplus_module_2.map(tsplus_module_2.flatMap(getData(record), serialised => storage.set(getRecordName(type, record.id), serialised)), () => ({ version, data: record }));
46
+ const getData = flow(encode, _ => tsplus_module_2.map(data => JSON.stringify({ version, timestamp: new Date(), data }))(tsplus_module_2.map(JSON.stringify)(_)));
47
+ return tsplus_module_2.map(() => ({ version, data: record }))(tsplus_module_2.flatMap(serialised => storage.set(getRecordName(type, record.id), serialised))(getData(record)));
48
48
  }
49
49
  };
50
50
  }
51
51
  function bogusLock() {
52
52
  return tsplus_module_2.acquireRelease(tsplus_module_3.unit, () => tsplus_module_3.unit);
53
53
  }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL3NpbXBsZWRiL21lbWRiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDaEQsT0FBTyxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUd4QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUN4RSxPQUFPLEtBQUssUUFBUSxNQUFNLGVBQWUsQ0FBQTtBQUd6Qyw0REFBNEQ7QUFDNUQsMkJBQTJCO0FBQzNCLE1BQU0sT0FBTyxHQUFHLE9BQU8sRUFBa0IsQ0FBQTtBQUV6QyxNQUFNLFFBQVEsR0FBZ0MsRUFBRSxDQUFDLFdBQVcsQ0FBM0Msa0JBQWtCLENBQUMsTUFBTSxDQUFrQixDQUFBO0FBRTVELE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sQ0FDTCxJQUFZLEVBQ1osTUFBaUQsRUFDakQsTUFBOEMsRUFDOUMsRUFBRTtRQUNGLE9BQU87WUFDTCxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQztZQUN2QyxNQUFNO1lBQ04sSUFBSSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDO1NBQ25ELENBQUE7UUFFRCxTQUFTLElBQUksQ0FBQyxFQUFVO1lBQ3RCLE9BQU8sMEJBQUEsOEJBQUEsb0JBQUEsT0FBTztpQkFDWCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUN6QixDQUFDLENBQUMsRUFBRSxDQUFDLG9CQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBeEIsQ0FBQyxDQUF3QixD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
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL3NpbXBsZWRiL21lbWRiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDaEQsT0FBTyxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUd4QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUN4RSxPQUFPLEtBQUssUUFBUSxNQUFNLGVBQWUsQ0FBQTtBQUd6Qyw0REFBNEQ7QUFDNUQsMkJBQTJCO0FBQzNCLE1BQU0sT0FBTyxHQUFHLE9BQU8sRUFBa0IsQ0FBQTtBQUV6QyxNQUFNLFFBQVEsR0FBZ0MsRUFBRSxDQUFDLFdBQVcsQ0FBM0Msa0JBQWtCLENBQUMsTUFBTSxDQUFrQixDQUFBO0FBRTVELE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sQ0FDTCxJQUFZLEVBQ1osTUFBaUQsRUFDakQsTUFBOEMsRUFDOUMsRUFBRTtRQUNGLE9BQU87WUFDTCxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQztZQUN2QyxNQUFNO1lBQ04sSUFBSSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDO1NBQ25ELENBQUE7UUFFRCxTQUFTLElBQUksQ0FBQyxFQUFVO1lBQ3RCLE9BQU8sMEJBQUEsOEJBQUEsb0JBRUEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxvQkFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQXhCLENBQUMsQ0FBd0IsRUFGOUIsT0FBTztpQkFDWCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxD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
@@ -8,23 +8,23 @@ import * as simpledb from "./simpledb.js";
8
8
  // prev[cur] = 1
9
9
  // return prev
10
10
  // }, {} as Record<string, number>)
11
- 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)));
11
+ const setup = (type, indexes) => tsplus_module_1.flatMap(db => tsplus_module_1.tryPromise(() => db.collection(type).createIndexes(indexes)))(tsplus_module_1.tap(db => tsplus_module_1.tryPromise(() => db.createCollection(type).catch(err => console.warn(err))))(Mongo.db));
12
12
  export function createContext() {
13
13
  return (type, encode, decode,
14
14
  // schemaVersion: string,
15
15
  indexes) => {
16
- return tsplus_module_1.map(setup(type, indexes), () => ({
16
+ return tsplus_module_1.map(() => ({
17
17
  find: simpledb.find(find, decode, type),
18
18
  findBy,
19
19
  save: simpledb.storeDirectly(store, type)
20
- }));
20
+ }))(setup(type, indexes));
21
21
  function find(id) {
22
- return tsplus_module_3.mapOption(tsplus_module_1.map(tsplus_module_1.flatMap(Mongo.db, db => tsplus_module_1.tryPromise(() => db
22
+ return tsplus_module_3.mapOption(tsplus_module_1.map(tsplus_module_2.fromNullable)(tsplus_module_1.flatMap(db => tsplus_module_1.tryPromise(() => db
23
23
  .collection(type)
24
- .findOne({ _id: id }))), tsplus_module_2.fromNullable), ({ data, version }) => ({ version, data }));
24
+ .findOne({ _id: id })))(Mongo.db)), ({ data, version }) => ({ version, data }));
25
25
  }
26
26
  function findBy(keys) {
27
- return tsplus_module_3.mapOption(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);
27
+ return tsplus_module_3.mapOption(tsplus_module_1.map(tsplus_module_2.fromNullable)(tsplus_module_1.flatMap(db => tsplus_module_1.tryPromise(() => db.collection(type).findOne(keys, { projection: { _id: 1 } })))(Mongo.db)), ({ _id }) => _id);
28
28
  }
29
29
  function store(record, currentVersion) {
30
30
  return tsplus_module_1.gen(function* ($) {
@@ -35,19 +35,19 @@ export function createContext() {
35
35
  .collection(type)
36
36
  .insertOne({ _id: record.id, version, timestamp: new Date(), data }, {
37
37
  checkKeys: false // support for keys with `.` and `$`. NOTE: you can write them, read them, but NOT query for them.
38
- })))), currentVersion => tsplus_module_1.flatMap(tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => db.collection(type).replaceOne({ _id: record.id, version: currentVersion }, {
39
- version,
40
- timestamp: new Date(),
41
- data
42
- }, { upsert: false }))), x => {
38
+ })))), currentVersion => tsplus_module_1.flatMap(x => {
43
39
  if (!x.modifiedCount) {
44
40
  return tsplus_module_1.fail(new OptimisticLockException(type, record.id));
45
41
  }
46
42
  return tsplus_module_3.unit;
47
- }))(currentVersion));
43
+ })(tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => db.collection(type).replaceOne({ _id: record.id, version: currentVersion }, {
44
+ version,
45
+ timestamp: new Date(),
46
+ data
47
+ }, { upsert: false })))))(currentVersion));
48
48
  return { version, data: record };
49
49
  });
50
50
  }
51
51
  };
52
52
  }
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29kYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvc2ltcGxlZGIvbW9uZ29kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxPQUFPLEtBQUssS0FBSyxNQUFNLHlDQUF5QyxDQUFBO0FBRWhFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUNyRCxPQUFPLEtBQUssUUFBUSxNQUFNLGVBQWUsQ0FBQTtBQUd6Qyx3R0FBd0c7QUFDeEcsa0JBQWtCO0FBQ2xCLGdCQUFnQjtBQUNoQixtQ0FBbUM7QUFFbkMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUFZLEVBQUUsT0FBMkIsRUFBRSxFQUFFLENBQzFELHdCQUFBLG9CQUFBLEtBQUssQ0FBQyxFQUFFLEVBQ0QsRUFBRSxDQUFDLEVBQUUsQ0FBQywyQkFBa0IsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3JGLEVBQUUsQ0FBQyxFQUFFLENBQUMsMkJBQWtCLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUV2RixNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLENBQ0wsSUFBWSxFQUNaLE1BQWlELEVBQ2pELE1BQThDO0lBQzlDLHlCQUF5QjtJQUN6QixPQUEyQixFQUMzQixFQUFFO1FBQ0YsT0FBTyxvQkFBQSxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFLLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDckMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUM7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
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29kYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvc2ltcGxlZGIvbW9uZ29kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxPQUFPLEtBQUssS0FBSyxNQUFNLHlDQUF5QyxDQUFBO0FBRWhFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUNyRCxPQUFPLEtBQUssUUFBUSxNQUFNLGVBQWUsQ0FBQTtBQUd6Qyx3R0FBd0c7QUFDeEcsa0JBQWtCO0FBQ2xCLGdCQUFnQjtBQUNoQixtQ0FBbUM7QUFFbkMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUFZLEVBQUUsT0FBMkIsRUFBRSxFQUFFLENBQzFELHdCQUVXLEVBQUUsQ0FBQyxFQUFFLENBQUMsMkJBQWtCLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBRnBGLG9CQUNPLEVBQUUsQ0FBQyxFQUFFLENBQUMsMkJBQWtCLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFEL0YsS0FBSyxDQUFDLEVBQUUsQ0FDd0YsQ0FDWCxDQUFBO0FBRXZGLE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sQ0FDTCxJQUFZLEVBQ1osTUFBaUQsRUFDakQsTUFBOEM7SUFDOUMseUJBQXlCO0lBQ3pCLE9BQTJCLEVBQzNCLEVBQUU7UUFDRixPQUFPLG9CQUF5QixHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3JDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDO1lBQ3ZDLE1BQU07WUFDTixJQUFJLEVBQUUsUUFBUSxD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
@@ -10,31 +10,31 @@ import * as simpledb from "./simpledb.js";
10
10
  const ttl = 10 * 1000;
11
11
  export function createContext() {
12
12
  return (type, encode, decode, schemaVersion, makeIndexKey) => {
13
- const getData = flow(encode, _ => tsplus_module_1.map(_, JSON.stringify));
13
+ const getData = flow(encode, _ => tsplus_module_1.map(JSON.stringify)(_));
14
14
  return {
15
15
  find: simpledb.find(find, decode, type),
16
16
  findByIndex: getIdx,
17
17
  save: simpledb.store(find, store, lockRedisRecord, type)
18
18
  };
19
19
  function find(id) {
20
- return tsplus_module_1.orDie(tsplus_module_2.flatMapOption(RED.hmgetAll(getKey(id)), v => tsplus_module_1.mapError(tsplus_module_1.map(pipe(RedisSerializedDBRecord.Parser, MO.condemnFail)(v), ({ data, version }) => ({
20
+ return tsplus_module_1.orDie(tsplus_module_2.flatMapOption(RED.hmgetAll(getKey(id)), v => tsplus_module_1.mapError(e => new ConnectionException(new Error(e.toString())))(tsplus_module_1.map(({ data, version }) => ({
21
21
  data: JSON.parse(data),
22
22
  version
23
- })), e => new ConnectionException(new Error(e.toString())))));
23
+ }))(pipe(RedisSerializedDBRecord.Parser, MO.condemnFail)(v)))));
24
24
  }
25
25
  function store(record, currentVersion) {
26
26
  const version = tsplus_module_3.getOrElse(() => "1")(tsplus_module_3.map(cv => (parseInt(cv) + 1).toString())(currentVersion));
27
- 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(tsplus_module_2.zipRightOption(getIndex(record), tsplus_module_1.fail(() => new Error("Combination already exists, abort"))), getData(record))
28
- // TODO: instead use MULTI & EXEC to make it in one command?
29
- , data => hmSetRec(getKey(record.id), {
27
+ return tsplus_module_3.match(() => tsplus_module_1.scoped(tsplus_module_1.zipRight(tsplus_module_1.map(() => ({ version, data: record }))(tsplus_module_1.orDie(tsplus_module_1.zipRight(setIndex(record))(tsplus_module_1.flatMap(data => hmSetRec(getKey(record.id), {
30
28
  version,
31
29
  timestamp: new Date(),
32
30
  data
33
- })), setIndex(record))), () => ({ version, data: record })))), () => tsplus_module_1.map(tsplus_module_1.orDie(tsplus_module_1.flatMap(getData(record), data => hmSetRec(getKey(record.id), {
31
+ }))(tsplus_module_1.zipRight(getData(record))(tsplus_module_2.zipRightOption(getIndex(record), tsplus_module_1.fail(() => new Error("Combination already exists, abort"))))
32
+ // TODO: instead use MULTI & EXEC to make it in one command?
33
+ )))))(lockIndex(record))), () => tsplus_module_1.map(() => ({ version, data: record }))(tsplus_module_1.orDie(tsplus_module_1.flatMap(data => hmSetRec(getKey(record.id), {
34
34
  version,
35
35
  timestamp: new Date(),
36
36
  data
37
- }))), () => ({ version, data: record })))(currentVersion);
37
+ }))(getData(record)))))(currentVersion);
38
38
  }
39
39
  function getIndex(record) {
40
40
  const index = makeIndexKey(record);
@@ -49,7 +49,7 @@ export function createContext() {
49
49
  return lockRedisIdx(index);
50
50
  }
51
51
  function getIdx(index) {
52
- return tsplus_module_1.map(RED.hget(getIdxKey(index), index.key), _ => tsplus_module_3.map(i => i)(_));
52
+ return tsplus_module_1.map(_ => tsplus_module_3.map(i => i)(_))(RED.hget(getIdxKey(index), index.key));
53
53
  }
54
54
  function setIdx(index, r) {
55
55
  return RED.hset(getIdxKey(index), index.key, r.id);
@@ -57,20 +57,20 @@ export function createContext() {
57
57
  function lockRedisIdx(index) {
58
58
  const lockKey = getIdxLockKey(index);
59
59
  // acquire
60
- 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),
60
+ return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(err => new CouldNotAquireDbLockException(type, lockKey, err),
61
61
  // release
62
62
  lock => ({
63
63
  release: tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => lock.unlock()))
64
- })), l => l.release);
64
+ }))(tsplus_module_1.flatMap(lock => tsplus_module_1.tryPromise(() => lock.lock(lockKey, ttl)))(RED.lock)), l => l.release);
65
65
  }
66
66
  function lockRedisRecord(id) {
67
67
  // acquire
68
- 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),
68
+ return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(err => new CouldNotAquireDbLockException(type, id, err),
69
69
  // release
70
70
  lock => ({
71
71
  // TODO
72
72
  release: tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => lock.unlock()))
73
- })), l => l.release);
73
+ }))(tsplus_module_1.flatMap(lock => tsplus_module_1.tryPromise(() => lock.lock(getLockKey(id), ttl)))(RED.lock)), l => l.release);
74
74
  }
75
75
  function getKey(id) {
76
76
  return `v${schemaVersion}.${getRecordName(type, id)}`;
@@ -87,11 +87,11 @@ export function createContext() {
87
87
  };
88
88
  function hmSetRec(key, val) {
89
89
  const enc = RedisSerializedDBRecord.Encoder(val);
90
- return tsplus_module_1.flatMap(RED.client, client => tsplus_module_1.uninterruptible(tsplus_module_1.async(res => {
90
+ return tsplus_module_1.flatMap(client => tsplus_module_1.uninterruptible(tsplus_module_1.async(res => {
91
91
  client.hmset(key, "version", enc.version, "timestamp", enc.timestamp, "data", enc.data, err => err
92
92
  ? res(tsplus_module_1.fail(new ConnectionException(err)))
93
93
  : res(tsplus_module_1.sync(() => void 0)));
94
- })));
94
+ })))(RED.client);
95
95
  }
96
96
  }
97
97
  export class RedisSerializedDBRecord extends MO.Model()({
@@ -100,4 +100,4 @@ export class RedisSerializedDBRecord extends MO.Model()({
100
100
  data: MO.prop(MO.string)
101
101
  }) {
102
102
  }
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXNkYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvc2ltcGxlZGIvcmVkaXNkYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUN0RCxPQUFPLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBR3hDLE9BQU8sS0FBSyxHQUFHLE1BQU0seUNBQXlDLENBQUE7QUFFOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLDZCQUE2QixFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDN0csT0FBTyxLQUFLLFFBQVEsTUFBTSxlQUFlLENBQUE7QUFFekMsTUFBTSxHQUFHLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQTtBQUVyQixNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLENBQ0wsSUFBWSxFQUNaLE1BQWlELEVBQ2pELE1BQThDLEVBQzlDLGFBQXFCLEVBQ3JCLFlBQTZCLEVBQzdCLEVBQUU7UUFDRixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsb0JBQUEsQ0FBQyxFQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFBO1FBQ3hELE9BQU87WUFDTCxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQztZQUN2QyxXQUFXLEVBQUUsTUFBTTtZQUNuQixJQUFJLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUM7U0FDekQsQ0FBQTtRQUVELFNBQVMsSUFBSSxDQUFDLEVBQVU7WUFDdEIsNkJBQU8sOEJBQUEsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENB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
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXNkYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvc2ltcGxlZGIvcmVkaXNkYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUN0RCxPQUFPLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBR3hDLE9BQU8sS0FBSyxHQUFHLE1BQU0seUNBQXlDLENBQUE7QUFFOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLDZCQUE2QixFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDN0csT0FBTyxLQUFLLFFBQVEsTUFBTSxlQUFlLENBQUE7QUFFekMsTUFBTSxHQUFHLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQTtBQUVyQixNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLENBQ0wsSUFBWSxFQUNaLE1BQWlELEVBQ2pELE1BQThDLEVBQzlDLGFBQXFCLEVBQ3JCLFlBQTZCLEVBQzdCLEVBQUU7UUFDRixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsb0JBQU0sSUFBSSxDQUFDLFNBQVMsRUFBcEIsQ0FBQyxDQUFvQixDQUFDLENBQUE7UUFDeEQsT0FBTztZQUNMLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDO1lBQ3ZDLFdBQVcsRUFBRSxNQUFNO1lBQ25CLElBQUksRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLElBQUksQ0FBQztTQUN6RCxDQUFBO1FBRUQsU0FBUyxJQUFJLENBQUMsRUFBVTtZQUN0Qiw2QkFBTyw4QkFBQSxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMs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
@@ -27,30 +27,30 @@ export function makeLiveRecordCache() {
27
27
  }
28
28
  // module tag
29
29
  export const RecordCache = tsplus_module_2.Tag();
30
- export const LiveRecordCache = tsplus_module_1.toLayer(tsplus_module_1.sync(() => makeLiveRecordCache()), RecordCache);
30
+ export const LiveRecordCache = tsplus_module_3.toLayer(tsplus_module_1.sync(() => makeLiveRecordCache()), RecordCache);
31
31
  const getM = (type) => (eff) => tsplus_module_1.gen(function* ($) {
32
32
  const { get } = yield* $(tsplus_module_1.service(RecordCache));
33
- return yield* $(tsplus_module_1.flatMap(get(type), eff));
33
+ return yield* $(tsplus_module_1.flatMap(eff)(get(type)));
34
34
  });
35
35
  export function find(tryRead, decode, type) {
36
36
  const getCache = getM(type);
37
- const read = (id) => tsplus_module_3.mapOption(tsplus_module_3.tapOption(tsplus_module_3.flatMapOption(tryRead(id), ({ data, version }) => tsplus_module_1.mapBoth(decode(data), err => new InvalidStateError("DB serialisation Issue", err), data => ({ data, version }))), r => getCache(c => c.set(id, r))), r => r.data);
38
- return (id) => getCache(c => tsplus_module_1.orElse(tsplus_module_3.mapOption(c
39
- .find(id), existing => existing.data), () => read(id)));
37
+ const read = (id) => tsplus_module_3.mapOption(tsplus_module_3.tapOption(tsplus_module_3.flatMapOption(tryRead(id), ({ data, version }) => tsplus_module_1.mapBoth(err => new InvalidStateError("DB serialisation Issue", err), data => ({ data, version }))(decode(data))), r => getCache(c => c.set(id, r))), r => r.data);
38
+ return (id) => getCache(c => tsplus_module_1.orElse(() => read(id))(tsplus_module_3.mapOption(c
39
+ .find(id), existing => existing.data)));
40
40
  }
41
41
  export function storeDirectly(save, type) {
42
42
  const getCache = getM(type);
43
- return (record) => getCache(c => tsplus_module_1.map(tsplus_module_1.tap(tsplus_module_1.flatMap(tsplus_module_3.mapOption(c
44
- .find(record.id), x => x.version), cv => save(record, cv)), r => c.set(record.id, r)), r => r.data));
43
+ return (record) => getCache(c => tsplus_module_1.map(r => r.data)(tsplus_module_1.tap(r => c.set(record.id, r))(tsplus_module_1.flatMap(cv => save(record, cv))(tsplus_module_3.mapOption(c
44
+ .find(record.id), x => x.version)))));
45
45
  }
46
46
  export function store(tryRead, save, lock, type) {
47
47
  const getCache = getM(type);
48
- return (record) => getCache(c => tsplus_module_1.map(tsplus_module_1.tap(tsplus_module_1.flatMap(tsplus_module_3.mapOption(c
49
- .find(record.id), x => x.version), _ => tsplus_module_5.match(() => save(record, tsplus_module_4.none), confirmVersionAndSave(record))(_)), r => c.set(record.id, r)), r => r.data));
48
+ return (record) => getCache(c => tsplus_module_1.map(r => r.data)(tsplus_module_1.tap(r => c.set(record.id, r))(tsplus_module_1.flatMap(_ => tsplus_module_5.match(() => save(record, tsplus_module_4.none), confirmVersionAndSave(record))(_))(tsplus_module_3.mapOption(c
49
+ .find(record.id), x => x.version)))));
50
50
  function confirmVersionAndSave(record) {
51
- return (cv) => tsplus_module_1.scoped(tsplus_module_1.zipRight(lock(record.id), tsplus_module_1.zipRight(tsplus_module_1.tap(tsplus_module_1.flatMap(tryRead(record.id), _ => tsplus_module_5.match(() => tsplus_module_1.fail(new InvalidStateError("record is gone")), tsplus_module_1.succeed)(_)), ({ version }) => version !== cv
51
+ return (cv) => tsplus_module_1.scoped(tsplus_module_1.zipRight(tsplus_module_1.zipRight(save(record, tsplus_module_5.some(cv)))(tsplus_module_1.tap(({ version }) => version !== cv
52
52
  ? tsplus_module_1.fail(new OptimisticLockException(type, record.id))
53
- : tsplus_module_3.unit), save(record, tsplus_module_5.some(cv)))));
53
+ : tsplus_module_3.unit)(tsplus_module_1.flatMap(_ => tsplus_module_5.match(() => tsplus_module_1.fail(new InvalidStateError("record is gone")), tsplus_module_1.succeed)(_))(tryRead(record.id)))))(lock(record.id)));
54
54
  }
55
55
  }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL3NpbXBsZWRiL3NpbXBsZWRiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUc5RCxNQUFNLE9BQU8saUJBQWlCO0lBRTVCLFlBQXFCLE9BQWUsRUFBVyxPQUFpQjtRQUEzQyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQVcsWUFBTyxHQUFQLE9BQU8sQ0FBVTtRQUR2RCxTQUFJLEdBQUcsbUJBQW1CLENBQUE7SUFDZ0MsQ0FBQztDQUNyRTtBQUVELE1BQU0sVUFBVSxtQkFBbUI7SUFDakMsTUFBTSxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQXNDLENBQUE7SUFDdkQsT0FBTztRQUNMLEdBQUcsRUFBRSxDQUFJLElBQVksRUFBRSxFQUFFLENBQ3ZCLHFCQUFZLEdBQUcsRUFBRTtZQUNmLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDdEIsSUFBSSxDQUFDLEVBQUUsRUFBRTtnQkFDUCxNQUFNLEVBQUUsR0FBRyxPQUFPLEVBQW1CLENBQUE7Z0JBQ3JDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFBO2dCQUNmLE9BQU8sRUFBd0MsQ0FBQTthQUNoRDtZQUNELE9BQU8sRUFBd0MsQ0FBQTtRQUNqRCxDQUFDLENBQUM7S0FDTCxDQUFBO0FBQ0gsQ0FBQztBQUlELGFBQWE7QUFDYixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsZ0JBQUEsR0FBRyxFQUFlLENBQUE7QUFFN0MsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLHdCQUFBLDJCQUFPLG1CQUFtQixFQUFFLENBQUMsRUFBUyxXQUFXLENBQUMsQ0FBQTtBQUVqRixNQUFNLElBQUksR0FBRyxDQUFJLElBQVksRUFBRSxF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
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL3NpbXBsZWRiL3NpbXBsZWRiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUc5RCxNQUFNLE9BQU8saUJBQWlCO0lBRTVCLFlBQXFCLE9BQWUsRUFBVyxPQUFpQjtRQUEzQyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQVcsWUFBTyxHQUFQLE9BQU8sQ0FBVTtRQUR2RCxTQUFJLEdBQUcsbUJBQW1CLENBQUE7SUFDZ0MsQ0FBQztDQUNyRTtBQUVELE1BQU0sVUFBVSxtQkFBbUI7SUFDakMsTUFBTSxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQXNDLENBQUE7SUFDdkQsT0FBTztRQUNMLEdBQUcsRUFBRSxDQUFJLElBQVksRUFBRSxFQUFFLENBQ3ZCLHFCQUFZLEdBQUcsRUFBRTtZQUNmLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDdEIsSUFBSSxDQUFDLEVBQUUsRUFBRTtnQkFDUCxNQUFNLEVBQUUsR0FBRyxPQUFPLEVBQW1CLENBQUE7Z0JBQ3JDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFBO2dCQUNmLE9BQU8sRUFBd0MsQ0FBQTthQUNoRDtZQUNELE9BQU8sRUFBd0MsQ0FBQTtRQUNqRCxDQUFDLENBQUM7S0FDTCxDQUFBO0FBQ0gsQ0FBQztBQUlELGFBQWE7QUFDYixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsZ0JBQUEsR0FBRyxFQUFlLENBQUE7QUFFN0MsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLHdCQUFBLDJCQUFPLG1CQUFtQixFQUFFLENBQUMsRUFBUyxXQUFXLENBQUMsQ0FBQTtBQUVqRixNQUFNLElBQUksR0FBRyxDQUFJLElBQVksRUFBRSxF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
package/package.json CHANGED
@@ -1,29 +1,29 @@
1
1
  {
2
2
  "name": "@effect-app/infra",
3
- "version": "0.21.7",
3
+ "version": "0.22.1",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
7
7
  "@azure/cosmos": "^3.17.2",
8
- "@azure/service-bus": "^7.7.3",
9
- "@effect/io": "^0.1.10",
10
- "@fp-ts/core": "^0.1.1",
11
- "@effect/data": "^0.0.1",
8
+ "@azure/service-bus": "^7.8.0",
9
+ "@effect/io": "^0.1.11",
10
+ "@fp-ts/core": "^0.2.0",
11
+ "@effect/data": "^0.1.0",
12
12
  "@sendgrid/helpers": "^7.7.0",
13
13
  "@sendgrid/mail": "^7.7.0",
14
14
  "change-case": "^4.1.2",
15
15
  "cross-fetch": "^3.1.5",
16
16
  "faker": "^5.5.3",
17
- "fast-check": "^3.6.2",
17
+ "fast-check": "^3.6.3",
18
18
  "object-hash": "^3.0.0",
19
19
  "path-parser": "^6.1.0",
20
20
  "proper-lockfile": "^4.1.2",
21
21
  "pure-rand": "^6.0.0",
22
22
  "redlock": "^4.2.0",
23
- "@effect-app/prelude": "0.19.3",
24
- "@effect-app/core": "0.20.2",
25
- "@effect-app/infra-adapters": "0.18.3",
26
- "@effect-app/schema": "0.16.3"
23
+ "@effect-app/prelude": "0.20.1",
24
+ "@effect-app/core": "0.21.1",
25
+ "@effect-app/infra-adapters": "0.19.1",
26
+ "@effect-app/schema": "0.17.1"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@babel/cli": "^7.20.7",
@@ -38,7 +38,7 @@
38
38
  "express-jwt-authz": "^2.4.1",
39
39
  "jwks-rsa": "2.1.4",
40
40
  "jwt-decode": "^3.1.2",
41
- "mongodb": "5.0.0",
41
+ "mongodb": "5.0.1",
42
42
  "redis": "^3.1.2",
43
43
  "ts-node": "^10.9.1",
44
44
  "typescript": "https://cdn.jsdelivr.net/npm/@tsplus/installer@0.0.170/compiler/typescript.tgz",