@effect-app/infra 0.198.2 → 0.199.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/_cjs/RequestContext.cjs +14 -9
- package/_cjs/RequestContext.cjs.map +1 -1
- package/_cjs/_ext/Array.cjs +3 -7
- package/_cjs/_ext/Array.cjs.map +1 -1
- package/_cjs/api/reportError.cjs +3 -6
- package/_cjs/api/reportError.cjs.map +1 -1
- package/_cjs/api/routing/base.cjs +27 -61
- package/_cjs/api/routing/base.cjs.map +1 -1
- package/_cjs/api/routing/defaultErrorHandler.cjs +14 -21
- package/_cjs/api/routing/defaultErrorHandler.cjs.map +1 -1
- package/_cjs/api/routing/makeRequestHandler.cjs +44 -51
- package/_cjs/api/routing/makeRequestHandler.cjs.map +1 -1
- package/_cjs/api/routing/match.cjs +6 -13
- package/_cjs/api/routing/match.cjs.map +1 -1
- package/_cjs/api/{express → routing}/schema/jwt.cjs +3 -4
- package/_cjs/api/routing/schema/jwt.cjs.map +1 -0
- package/_cjs/api/routing/schema/routing.cjs +136 -0
- package/_cjs/api/routing/schema/routing.cjs.map +1 -0
- package/_cjs/api/setupRequest.cjs +16 -22
- package/_cjs/api/setupRequest.cjs.map +1 -1
- package/_cjs/errorReporter.cjs +16 -17
- package/_cjs/errorReporter.cjs.map +1 -1
- package/_cjs/errors.cjs +2 -4
- package/_cjs/errors.cjs.map +1 -1
- package/_cjs/filter/types/path/index.cjs +0 -2
- package/_cjs/filter/types/path/index.cjs.map +1 -1
- package/_cjs/filter.cjs +35 -0
- package/_cjs/filter.cjs.map +1 -1
- package/_cjs/logger/jsonLogger.cjs +9 -15
- package/_cjs/logger/jsonLogger.cjs.map +1 -1
- package/_cjs/logger/logFmtLogger.cjs +7 -11
- package/_cjs/logger/logFmtLogger.cjs.map +1 -1
- package/_cjs/logger/shared.cjs +6 -8
- package/_cjs/logger/shared.cjs.map +1 -1
- package/_cjs/rateLimit.cjs +9 -12
- package/_cjs/rateLimit.cjs.map +1 -1
- package/_cjs/services/Emailer/Sendgrid.cjs +9 -16
- package/_cjs/services/Emailer/Sendgrid.cjs.map +1 -1
- package/_cjs/services/Emailer/fake.cjs +5 -8
- package/_cjs/services/Emailer/fake.cjs.map +1 -1
- package/_cjs/services/Emailer/service.cjs +2 -4
- package/_cjs/services/Emailer/service.cjs.map +1 -1
- package/_cjs/services/Operations/live.cjs +29 -42
- package/_cjs/services/Operations/live.cjs.map +1 -1
- package/_cjs/services/Operations/service.cjs +15 -15
- package/_cjs/services/Operations/service.cjs.map +1 -1
- package/_cjs/services/QueueMaker/errors.cjs +8 -12
- package/_cjs/services/QueueMaker/errors.cjs.map +1 -1
- package/_cjs/services/QueueMaker/memQueue.cjs +27 -33
- package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
- package/_cjs/services/QueueMaker/sbqueue.cjs +31 -40
- package/_cjs/services/QueueMaker/sbqueue.cjs.map +1 -1
- package/_cjs/services/QueueMaker/service.cjs +7 -9
- package/_cjs/services/QueueMaker/service.cjs.map +1 -1
- package/_cjs/services/Repository/dsl.cjs +11 -14
- package/_cjs/services/Repository/dsl.cjs.map +1 -1
- package/_cjs/services/Repository/ext.cjs +62 -71
- package/_cjs/services/Repository/ext.cjs.map +1 -1
- package/_cjs/services/RepositoryBase.cjs +171 -169
- package/_cjs/services/RepositoryBase.cjs.map +1 -1
- package/_cjs/services/RequestContextContainer.cjs +17 -23
- package/_cjs/services/RequestContextContainer.cjs.map +1 -1
- package/_cjs/services/Store/ContextMapContainer.cjs +10 -16
- package/_cjs/services/Store/ContextMapContainer.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos/query.cjs +5 -9
- package/_cjs/services/Store/Cosmos/query.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos.cjs +58 -68
- package/_cjs/services/Store/Cosmos.cjs.map +1 -1
- package/_cjs/services/Store/Disk.cjs +34 -36
- package/_cjs/services/Store/Disk.cjs.map +1 -1
- package/_cjs/services/Store/Memory.cjs +55 -65
- package/_cjs/services/Store/Memory.cjs.map +1 -1
- package/_cjs/services/Store/codeFilter.cjs +2 -4
- package/_cjs/services/Store/codeFilter.cjs.map +1 -1
- package/_cjs/services/Store/codeFilter.test.cjs +13 -12
- package/_cjs/services/Store/codeFilter.test.cjs.map +1 -1
- package/_cjs/services/Store/filterApi/query.cjs +2 -4
- package/_cjs/services/Store/filterApi/query.cjs.map +1 -1
- package/_cjs/services/Store/index.cjs +6 -9
- package/_cjs/services/Store/index.cjs.map +1 -1
- package/_cjs/services/Store/service.cjs +5 -7
- package/_cjs/services/Store/service.cjs.map +1 -1
- package/_cjs/services/Store/utils.cjs +16 -20
- package/_cjs/services/Store/utils.cjs.map +1 -1
- package/_cjs/services/query.cjs +4 -1
- package/_cjs/services/query.cjs.map +1 -1
- package/_cjs/test.arbs.cjs +3 -4
- package/_cjs/test.arbs.cjs.map +1 -1
- package/dist/RequestContext.d.ts +20 -20
- package/dist/RequestContext.d.ts.map +1 -1
- package/dist/RequestContext.js +15 -8
- package/dist/_ext/Array.d.ts +2 -3
- package/dist/_ext/Array.d.ts.map +1 -1
- package/dist/_ext/Array.js +5 -5
- package/dist/api/reportError.d.ts +5 -5
- package/dist/api/reportError.d.ts.map +1 -1
- package/dist/api/reportError.js +6 -6
- package/dist/api/routing/base.d.ts +11 -15
- package/dist/api/routing/base.d.ts.map +1 -1
- package/dist/api/routing/base.js +48 -67
- package/dist/api/routing/defaultErrorHandler.d.ts +4 -6
- package/dist/api/routing/defaultErrorHandler.d.ts.map +1 -1
- package/dist/api/routing/defaultErrorHandler.js +26 -28
- package/dist/api/routing/makeRequestHandler.d.ts +6 -7
- package/dist/api/routing/makeRequestHandler.d.ts.map +1 -1
- package/dist/api/routing/makeRequestHandler.js +69 -59
- package/dist/api/routing/match.d.ts +7 -8
- package/dist/api/routing/match.d.ts.map +1 -1
- package/dist/api/routing/match.js +7 -11
- package/dist/api/routing/schema/jwt.d.ts +4 -0
- package/dist/api/routing/schema/jwt.d.ts.map +1 -0
- package/dist/api/routing/schema/jwt.js +11 -0
- package/dist/api/{express → routing}/schema/routing.d.ts +2 -2
- package/dist/api/routing/schema/routing.d.ts.map +1 -0
- package/dist/api/routing/schema/routing.js +123 -0
- package/dist/api/routing.js +3 -1
- package/dist/api/setupRequest.d.ts +3 -5
- package/dist/api/setupRequest.d.ts.map +1 -1
- package/dist/api/setupRequest.js +20 -24
- package/dist/errorReporter.d.ts +4 -4
- package/dist/errorReporter.d.ts.map +1 -1
- package/dist/errorReporter.js +20 -17
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +3 -3
- package/dist/filter/types/path/index.d.ts +2 -2
- package/dist/filter/types/path/index.d.ts.map +1 -1
- package/dist/filter/types/path/index.js +2 -3
- package/dist/filter/types.js +2 -1
- package/dist/filter.d.ts.map +1 -1
- package/dist/filter.js +36 -1
- package/dist/logger/jsonLogger.d.ts +2 -1
- package/dist/logger/jsonLogger.d.ts.map +1 -1
- package/dist/logger/jsonLogger.js +9 -13
- package/dist/logger/logFmtLogger.d.ts +2 -1
- package/dist/logger/logFmtLogger.d.ts.map +1 -1
- package/dist/logger/logFmtLogger.js +9 -11
- package/dist/logger/shared.d.ts +2 -1
- package/dist/logger/shared.d.ts.map +1 -1
- package/dist/logger/shared.js +7 -9
- package/dist/rateLimit.d.ts +7 -10
- package/dist/rateLimit.d.ts.map +1 -1
- package/dist/rateLimit.js +17 -16
- package/dist/services/Emailer/Sendgrid.d.ts +1 -2
- package/dist/services/Emailer/Sendgrid.d.ts.map +1 -1
- package/dist/services/Emailer/Sendgrid.js +16 -20
- package/dist/services/Emailer/fake.d.ts +2 -2
- package/dist/services/Emailer/fake.d.ts.map +1 -1
- package/dist/services/Emailer/fake.js +10 -8
- package/dist/services/Emailer/service.d.ts +7 -10
- package/dist/services/Emailer/service.d.ts.map +1 -1
- package/dist/services/Emailer/service.js +3 -3
- package/dist/services/Operations/live.d.ts +2 -3
- package/dist/services/Operations/live.d.ts.map +1 -1
- package/dist/services/Operations/live.js +44 -51
- package/dist/services/Operations/service.d.ts +14 -19
- package/dist/services/Operations/service.d.ts.map +1 -1
- package/dist/services/Operations/service.js +23 -28
- package/dist/services/QueueMaker/errors.d.ts +5 -7
- package/dist/services/QueueMaker/errors.d.ts.map +1 -1
- package/dist/services/QueueMaker/errors.js +11 -11
- package/dist/services/QueueMaker/memQueue.d.ts +6 -9
- package/dist/services/QueueMaker/memQueue.d.ts.map +1 -1
- package/dist/services/QueueMaker/memQueue.js +37 -39
- package/dist/services/QueueMaker/sbqueue.d.ts +6 -9
- package/dist/services/QueueMaker/sbqueue.d.ts.map +1 -1
- package/dist/services/QueueMaker/sbqueue.js +41 -39
- package/dist/services/QueueMaker/service.d.ts +2 -4
- package/dist/services/QueueMaker/service.d.ts.map +1 -1
- package/dist/services/QueueMaker/service.js +8 -8
- package/dist/services/Repository/dsl.d.ts +8 -10
- package/dist/services/Repository/dsl.d.ts.map +1 -1
- package/dist/services/Repository/dsl.js +12 -13
- package/dist/services/Repository/ext.d.ts +34 -62
- package/dist/services/Repository/ext.d.ts.map +1 -1
- package/dist/services/Repository/ext.js +59 -70
- package/dist/services/RepositoryBase.d.ts +41 -47
- package/dist/services/RepositoryBase.d.ts.map +1 -1
- package/dist/services/RepositoryBase.js +182 -194
- package/dist/services/RequestContextContainer.d.ts +13 -21
- package/dist/services/RequestContextContainer.d.ts.map +1 -1
- package/dist/services/RequestContextContainer.js +21 -25
- package/dist/services/Store/ContextMapContainer.d.ts +11 -18
- package/dist/services/Store/ContextMapContainer.d.ts.map +1 -1
- package/dist/services/Store/ContextMapContainer.js +17 -18
- package/dist/services/Store/Cosmos/query.d.ts +3 -2
- package/dist/services/Store/Cosmos/query.d.ts.map +1 -1
- package/dist/services/Store/Cosmos/query.js +10 -11
- package/dist/services/Store/Cosmos.d.ts +2 -3
- package/dist/services/Store/Cosmos.d.ts.map +1 -1
- package/dist/services/Store/Cosmos.js +107 -90
- package/dist/services/Store/Disk.d.ts +4 -4
- package/dist/services/Store/Disk.d.ts.map +1 -1
- package/dist/services/Store/Disk.js +54 -50
- package/dist/services/Store/Memory.d.ts +6 -8
- package/dist/services/Store/Memory.d.ts.map +1 -1
- package/dist/services/Store/Memory.js +93 -89
- package/dist/services/Store/codeFilter.d.ts.map +1 -1
- package/dist/services/Store/codeFilter.js +3 -3
- package/dist/services/Store/codeFilter.test.d.ts.map +1 -1
- package/dist/services/Store/filterApi/query.d.ts +1 -1
- package/dist/services/Store/filterApi/query.d.ts.map +1 -1
- package/dist/services/Store/filterApi/query.js +3 -3
- package/dist/services/Store/index.d.ts +1 -2
- package/dist/services/Store/index.d.ts.map +1 -1
- package/dist/services/Store/index.js +7 -8
- package/dist/services/Store/service.d.ts +20 -23
- package/dist/services/Store/service.d.ts.map +1 -1
- package/dist/services/Store/service.js +6 -6
- package/dist/services/Store/utils.d.ts +3 -3
- package/dist/services/Store/utils.d.ts.map +1 -1
- package/dist/services/Store/utils.js +26 -28
- package/dist/services/query.d.ts +6 -6
- package/dist/services/query.d.ts.map +1 -1
- package/dist/services/query.js +5 -3
- package/dist/test.arbs.d.ts +0 -2
- package/dist/test.arbs.d.ts.map +1 -1
- package/dist/test.arbs.js +3 -4
- package/package.json +28 -168
- package/src/RequestContext.ts +1 -0
- package/src/_ext/Array.ts +5 -2
- package/src/api/reportError.ts +14 -10
- package/src/api/routing/base.ts +77 -110
- package/src/api/routing/defaultErrorHandler.ts +64 -54
- package/src/api/routing/makeRequestHandler.ts +165 -135
- package/src/api/routing/match.ts +14 -8
- package/src/api/{express → routing}/schema/jwt.ts +6 -5
- package/src/api/{express → routing}/schema/routing.ts +2 -1
- package/src/api/setupRequest.ts +30 -24
- package/src/errorReporter.ts +12 -11
- package/src/errors.ts +1 -0
- package/src/filter/types/path/index.ts +2 -2
- package/src/logger/jsonLogger.ts +6 -5
- package/src/logger/logFmtLogger.ts +4 -5
- package/src/logger/shared.ts +4 -3
- package/src/rateLimit.ts +37 -34
- package/src/services/Emailer/Sendgrid.ts +12 -10
- package/src/services/Emailer/fake.ts +7 -4
- package/src/services/Emailer/service.ts +4 -1
- package/src/services/Operations/live.ts +66 -59
- package/src/services/Operations/service.ts +41 -34
- package/src/services/QueueMaker/errors.ts +15 -11
- package/src/services/QueueMaker/memQueue.ts +59 -40
- package/src/services/QueueMaker/sbqueue.ts +54 -33
- package/src/services/QueueMaker/service.ts +7 -6
- package/src/services/Repository/dsl.ts +12 -8
- package/src/services/Repository/ext.ts +52 -44
- package/src/services/RepositoryBase.ts +278 -240
- package/src/services/RequestContextContainer.ts +30 -18
- package/src/services/Store/ContextMapContainer.ts +26 -13
- package/src/services/Store/Cosmos/query.ts +17 -11
- package/src/services/Store/Cosmos.ts +209 -168
- package/src/services/Store/Disk.ts +69 -53
- package/src/services/Store/Memory.ts +138 -97
- package/src/services/Store/{Redis.ts → Redis.ts.bak} +7 -5
- package/src/services/Store/codeFilter.test.ts +61 -36
- package/src/services/Store/codeFilter.ts +1 -0
- package/src/services/Store/filterApi/query.ts +1 -0
- package/src/services/Store/index.ts +7 -6
- package/src/services/Store/service.ts +4 -1
- package/src/services/Store/utils.ts +25 -23
- package/src/services/query.ts +3 -2
- package/src/services/simpledb/{cosmosdb.ts → cosmosdb.ts.bak} +1 -0
- package/src/services/simpledb/{diskdb.ts → diskdb.ts.bak} +2 -1
- package/src/services/simpledb/{memdb.ts → memdb.ts.bak} +3 -2
- package/src/services/simpledb/{mongodb.ts → mongodb.ts.bak} +1 -0
- package/src/services/simpledb/{redisdb.ts → redisdb.ts.bak} +17 -14
- package/src/services/simpledb/{shared.ts → shared.ts.bak} +2 -1
- package/src/services/simpledb/{simpledb.ts → simpledb.ts.bak} +6 -2
- package/tsconfig.json +4 -21
- package/tsconfig.json.bak +0 -4
- package/_cjs/_global.cjs +0 -6
- package/_cjs/_global.cjs.map +0 -1
- package/_cjs/_global.ext.cjs +0 -5
- package/_cjs/_global.ext.cjs.map +0 -1
- package/_cjs/_global.schema.cjs +0 -5
- package/_cjs/_global.schema.cjs.map +0 -1
- package/_cjs/api/defaultErrorHandler.cjs +0 -37
- package/_cjs/api/defaultErrorHandler.cjs.map +0 -1
- package/_cjs/api/express/schema/jwt.cjs.map +0 -1
- package/_cjs/api/express/schema/routing.cjs +0 -23
- package/_cjs/api/express/schema/routing.cjs.map +0 -1
- package/_cjs/api/http.cjs +0 -42
- package/_cjs/api/http.cjs.map +0 -1
- package/_cjs/services/Store/Redis.cjs +0 -73
- package/_cjs/services/Store/Redis.cjs.map +0 -1
- package/_cjs/services/simpledb/cosmosdb.cjs +0 -109
- package/_cjs/services/simpledb/cosmosdb.cjs.map +0 -1
- package/_cjs/services/simpledb/diskdb.cjs +0 -125
- package/_cjs/services/simpledb/diskdb.cjs.map +0 -1
- package/_cjs/services/simpledb/index.cjs +0 -38
- package/_cjs/services/simpledb/index.cjs.map +0 -1
- package/_cjs/services/simpledb/memdb.cjs +0 -72
- package/_cjs/services/simpledb/memdb.cjs.map +0 -1
- package/_cjs/services/simpledb/mongodb.cjs +0 -99
- package/_cjs/services/simpledb/mongodb.cjs.map +0 -1
- package/_cjs/services/simpledb/redisdb.cjs +0 -135
- package/_cjs/services/simpledb/redisdb.cjs.map +0 -1
- package/_cjs/services/simpledb/shared.cjs +0 -79
- package/_cjs/services/simpledb/shared.cjs.map +0 -1
- package/_cjs/services/simpledb/simpledb.cjs +0 -85
- package/_cjs/services/simpledb/simpledb.cjs.map +0 -1
- package/dist/_global.d.ts +0 -10
- package/dist/_global.d.ts.map +0 -1
- package/dist/_global.ext.d.ts +0 -34
- package/dist/_global.ext.d.ts.map +0 -1
- package/dist/_global.ext.js +0 -6
- package/dist/_global.js +0 -12
- package/dist/_global.schema.d.ts +0 -6
- package/dist/_global.schema.d.ts.map +0 -1
- package/dist/_global.schema.js +0 -9
- package/dist/api/defaultErrorHandler.d.ts +0 -6
- package/dist/api/defaultErrorHandler.d.ts.map +0 -1
- package/dist/api/defaultErrorHandler.js +0 -34
- package/dist/api/express/schema/jwt.d.ts +0 -6
- package/dist/api/express/schema/jwt.d.ts.map +0 -1
- package/dist/api/express/schema/jwt.js +0 -11
- package/dist/api/express/schema/routing.d.ts.map +0 -1
- package/dist/api/express/schema/routing.js +0 -10
- package/dist/api/http.d.ts +0 -16
- package/dist/api/http.d.ts.map +0 -1
- package/dist/api/http.js +0 -12
- package/dist/services/Store/Redis.d.ts +0 -6
- package/dist/services/Store/Redis.d.ts.map +0 -1
- package/dist/services/Store/Redis.js +0 -76
- package/dist/services/simpledb/cosmosdb.d.ts +0 -14
- package/dist/services/simpledb/cosmosdb.d.ts.map +0 -1
- package/dist/services/simpledb/cosmosdb.js +0 -103
- package/dist/services/simpledb/diskdb.d.ts +0 -12
- package/dist/services/simpledb/diskdb.d.ts.map +0 -1
- package/dist/services/simpledb/diskdb.js +0 -109
- package/dist/services/simpledb/index.d.ts +0 -7
- package/dist/services/simpledb/index.d.ts.map +0 -1
- package/dist/services/simpledb/index.js +0 -7
- package/dist/services/simpledb/memdb.d.ts +0 -11
- package/dist/services/simpledb/memdb.d.ts.map +0 -1
- package/dist/services/simpledb/memdb.js +0 -58
- package/dist/services/simpledb/mongodb.d.ts +0 -13
- package/dist/services/simpledb/mongodb.d.ts.map +0 -1
- package/dist/services/simpledb/mongodb.js +0 -68
- package/dist/services/simpledb/redisdb.d.ts +0 -35
- package/dist/services/simpledb/redisdb.d.ts.map +0 -1
- package/dist/services/simpledb/redisdb.js +0 -126
- package/dist/services/simpledb/shared.d.ts +0 -87
- package/dist/services/simpledb/shared.d.ts.map +0 -1
- package/dist/services/simpledb/shared.js +0 -52
- package/dist/services/simpledb/simpledb.d.ts +0 -23
- package/dist/services/simpledb/simpledb.d.ts.map +0 -1
- package/dist/services/simpledb/simpledb.js +0 -69
- package/src/_global.ext.ts +0 -36
- package/src/_global.schema.ts +0 -10
- package/src/_global.ts +0 -14
- package/src/api/defaultErrorHandler.ts +0 -59
- package/src/api/express/makeJsonSchema.test.ts.bak +0 -76
- package/src/api/express/makeJsonSchema.ts.bak +0 -166
- package/src/api/express/makeOpenApiSpecs.ts.bak +0 -62
- package/src/api/http.ts +0 -26
- package/tsplus.config.json +0 -9
- /package/src/services/simpledb/{index.ts → index.ts.bak} +0 -0
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.createContext = createContext;
|
|
7
|
-
var tsplus_module_1 = _interopRequireWildcard(require("effect/Effect"));
|
|
8
|
-
var tsplus_module_2 = _interopRequireWildcard(require("effect/Option"));
|
|
9
|
-
var tsplus_module_3 = _interopRequireWildcard(require("@effect-app/core/Effect"));
|
|
10
|
-
var _mongoClient = require("@effect-app/infra-adapters/mongo-client");
|
|
11
|
-
var _shared = require("./shared.cjs");
|
|
12
|
-
var simpledb = _interopRequireWildcard(require("./simpledb.cjs"));
|
|
13
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
14
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
15
|
-
// const makeFromIndexKeys = (indexKeys: string[], unique: boolean) => indexKeys.reduce((prev, cur) => {
|
|
16
|
-
// prev[cur] = 1
|
|
17
|
-
// return prev
|
|
18
|
-
// }, {} as Record<string, number>)
|
|
19
|
-
const setup = (type, indexes) => _mongoClient.MongoClient.tap(({
|
|
20
|
-
db
|
|
21
|
-
}) => tsplus_module_1.tryPromise(() => db.createCollection(type).catch(err => console.warn(err)))).flatMap(({
|
|
22
|
-
db
|
|
23
|
-
}) => tsplus_module_1.tryPromise(() => db.collection(type).createIndexes(indexes)));
|
|
24
|
-
function createContext() {
|
|
25
|
-
return (type, encode, decode,
|
|
26
|
-
// schemaVersion: string,
|
|
27
|
-
indexes) => {
|
|
28
|
-
return setup(type, indexes).map(() => ({
|
|
29
|
-
find: simpledb.find(find, decode, type),
|
|
30
|
-
findBy,
|
|
31
|
-
save: simpledb.storeDirectly(store, type)
|
|
32
|
-
}));
|
|
33
|
-
function find(id) {
|
|
34
|
-
return tsplus_module_3.mapOption(_mongoClient.MongoClient.flatMap(({
|
|
35
|
-
db
|
|
36
|
-
}) => tsplus_module_1.tryPromise(() => db.collection(type).findOne({
|
|
37
|
-
_id: {
|
|
38
|
-
equals: id
|
|
39
|
-
}
|
|
40
|
-
}))).map(tsplus_module_2.fromNullable), ({
|
|
41
|
-
data,
|
|
42
|
-
version
|
|
43
|
-
}) => ({
|
|
44
|
-
version,
|
|
45
|
-
data
|
|
46
|
-
}));
|
|
47
|
-
}
|
|
48
|
-
function findBy(keys) {
|
|
49
|
-
return tsplus_module_3.mapOption(_mongoClient.MongoClient.flatMap(({
|
|
50
|
-
db
|
|
51
|
-
}) => tsplus_module_1.tryPromise(() => db.collection(type).findOne(keys, {
|
|
52
|
-
projection: {
|
|
53
|
-
_id: 1
|
|
54
|
-
}
|
|
55
|
-
}))).map(tsplus_module_2.fromNullable), ({
|
|
56
|
-
_id
|
|
57
|
-
}) => _id);
|
|
58
|
-
}
|
|
59
|
-
function store(record, currentVersion) {
|
|
60
|
-
return tsplus_module_1.gen(function* ($) {
|
|
61
|
-
const version = currentVersion.map(cv => (parseInt(cv) + 1).toString()).getOrElse(() => "1");
|
|
62
|
-
const {
|
|
63
|
-
db
|
|
64
|
-
} = yield* $(_mongoClient.MongoClient);
|
|
65
|
-
const data = yield* $(encode(record));
|
|
66
|
-
yield* $(tsplus_module_2.match(currentVersion, {
|
|
67
|
-
onNone: () => tsplus_module_1.tryPromise(() => db.collection(type).insertOne({
|
|
68
|
-
_id: record.id,
|
|
69
|
-
version,
|
|
70
|
-
timestamp: new Date(),
|
|
71
|
-
data
|
|
72
|
-
}, {
|
|
73
|
-
checkKeys: false // support for keys with `.` and `$`. NOTE: you can write them, read them, but NOT query for them.
|
|
74
|
-
})).asUnit.orDie,
|
|
75
|
-
onSome: currentVersion => tsplus_module_1.tryPromise(() => db.collection(type).replaceOne({
|
|
76
|
-
_id: record.id,
|
|
77
|
-
version: currentVersion
|
|
78
|
-
}, {
|
|
79
|
-
version,
|
|
80
|
-
timestamp: new Date(),
|
|
81
|
-
data
|
|
82
|
-
}, {
|
|
83
|
-
upsert: false
|
|
84
|
-
})).orDie.flatMap(x => {
|
|
85
|
-
if (!x.modifiedCount) {
|
|
86
|
-
return new _shared.OptimisticLockException(type, record.id);
|
|
87
|
-
}
|
|
88
|
-
return tsplus_module_1.unit;
|
|
89
|
-
})
|
|
90
|
-
}));
|
|
91
|
-
return {
|
|
92
|
-
version,
|
|
93
|
-
data: record
|
|
94
|
-
};
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
//# sourceMappingURL=mongodb.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mongodb.cjs","names":["_mongoClient","require","_shared","simpledb","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","setup","type","indexes","MongoClient","tap","db","tsplus_module_1","tryPromise","createCollection","catch","err","console","warn","flatMap","collection","createIndexes","createContext","encode","decode","map","find","findBy","save","storeDirectly","store","id","tsplus_module_3","mapOption","findOne","_id","equals","tsplus_module_2","fromNullable","data","version","keys","projection","record","currentVersion","gen","$","cv","parseInt","toString","getOrElse","match","onNone","insertOne","timestamp","Date","checkKeys","asUnit","orDie","onSome","replaceOne","upsert","x","modifiedCount","OptimisticLockException","unit"],"sources":["../../../src/services/simpledb/mongodb.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.RedisSerializedDBRecord = void 0;
|
|
7
|
-
exports.createContext = createContext;
|
|
8
|
-
var tsplus_module_1 = _interopRequireWildcard(require("@effect/schema/Schema"));
|
|
9
|
-
var tsplus_module_2 = _interopRequireWildcard(require("effect/Effect"));
|
|
10
|
-
var tsplus_module_3 = _interopRequireWildcard(require("@effect-app/core/Effect"));
|
|
11
|
-
var tsplus_module_4 = _interopRequireWildcard(require("effect/Option"));
|
|
12
|
-
var tsplus_module_5 = _interopRequireWildcard(require("@effect/schema/Parser"));
|
|
13
|
-
var _Function = require("@effect-app/core/Function");
|
|
14
|
-
var _redisClient = require("@effect-app/infra-adapters/redis-client");
|
|
15
|
-
var S = _interopRequireWildcard(require("effect-app/schema"));
|
|
16
|
-
var _shared = require("./shared.cjs");
|
|
17
|
-
var simpledb = _interopRequireWildcard(require("./simpledb.cjs"));
|
|
18
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
19
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
20
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
21
|
-
|
|
22
|
-
const ttl = 10 * 1000;
|
|
23
|
-
function createContext() {
|
|
24
|
-
return (type, encode, decode, schemaVersion, makeIndexKey) => {
|
|
25
|
-
const getData = (0, _Function.flow)(encode, _ => _.map(JSON.stringify));
|
|
26
|
-
return {
|
|
27
|
-
find: simpledb.find(find, decode, type),
|
|
28
|
-
findByIndex: getIdx,
|
|
29
|
-
save: simpledb.store(find, store, lockRedisRecord, type)
|
|
30
|
-
};
|
|
31
|
-
function find(id) {
|
|
32
|
-
return tsplus_module_3.flatMapOption(_redisClient.RedisClient.flatMap(_ => _.hmgetAll(getKey(id))), v => tsplus_module_2.mapError(tsplus_module_1.decodeUnknown(RedisSerializedDBRecord)(v).map(({
|
|
33
|
-
data,
|
|
34
|
-
version
|
|
35
|
-
}) => ({
|
|
36
|
-
data: JSON.parse(data),
|
|
37
|
-
version
|
|
38
|
-
})), e => new _shared.ConnectionException(new Error(e.toString())))).orDie;
|
|
39
|
-
}
|
|
40
|
-
function store(record, currentVersion) {
|
|
41
|
-
const version = currentVersion.map(cv => (parseInt(cv) + 1).toString()).getOrElse(() => "1");
|
|
42
|
-
return tsplus_module_4.match(currentVersion, {
|
|
43
|
-
onNone: () => tsplus_module_2.scoped(tsplus_module_2.zipRight(lockIndex(record), tsplus_module_2.zipRight(tsplus_module_2.zipRight(tsplus_module_3.zipRightOption(getIndex(record), tsplus_module_2.fail(() => new Error("Combination already exists, abort"))), getData(record))
|
|
44
|
-
// TODO: instead use MULTI & EXEC to make it in one command?
|
|
45
|
-
.flatMap(data => hmSetRec(getKey(record.id), new RedisSerializedDBRecord({
|
|
46
|
-
version,
|
|
47
|
-
timestamp: new Date(),
|
|
48
|
-
data
|
|
49
|
-
}))), setIndex(record)).orDie.map(() => ({
|
|
50
|
-
version,
|
|
51
|
-
data: record
|
|
52
|
-
})))),
|
|
53
|
-
onSome: () => getData(record).flatMap(data => hmSetRec(getKey(record.id), new RedisSerializedDBRecord({
|
|
54
|
-
version,
|
|
55
|
-
timestamp: new Date(),
|
|
56
|
-
data
|
|
57
|
-
}))).orDie.map(() => ({
|
|
58
|
-
version,
|
|
59
|
-
data: record
|
|
60
|
-
}))
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
function getIndex(record) {
|
|
64
|
-
const index = makeIndexKey(record);
|
|
65
|
-
return getIdx(index);
|
|
66
|
-
}
|
|
67
|
-
function setIndex(record) {
|
|
68
|
-
const index = makeIndexKey(record);
|
|
69
|
-
return setIdx(index, record);
|
|
70
|
-
}
|
|
71
|
-
function lockIndex(record) {
|
|
72
|
-
const index = makeIndexKey(record);
|
|
73
|
-
return lockRedisIdx(index);
|
|
74
|
-
}
|
|
75
|
-
function getIdx(index) {
|
|
76
|
-
return _redisClient.RedisClient.flatMap(_ => _.hget(getIdxKey(index), index.key).map(_ => _.map(i => i)));
|
|
77
|
-
}
|
|
78
|
-
function setIdx(index, r) {
|
|
79
|
-
return _redisClient.RedisClient.flatMap(_ => _.hset(getIdxKey(index), index.key, r.id));
|
|
80
|
-
}
|
|
81
|
-
function lockRedisIdx(index) {
|
|
82
|
-
const lockKey = getIdxLockKey(index);
|
|
83
|
-
// acquire
|
|
84
|
-
return tsplus_module_2.acquireRelease(tsplus_module_2.mapBoth(_redisClient.RedisClient.flatMap(({
|
|
85
|
-
lock
|
|
86
|
-
}) => tsplus_module_2.tryPromise(() => lock.lock(lockKey, ttl))), {
|
|
87
|
-
onFailure: err => new _shared.CouldNotAquireDbLockException(type, lockKey, err),
|
|
88
|
-
// release
|
|
89
|
-
onSuccess: lock => ({
|
|
90
|
-
release: tsplus_module_2.tryPromise(() => lock.unlock()).orDie
|
|
91
|
-
})
|
|
92
|
-
}), l => l.release);
|
|
93
|
-
}
|
|
94
|
-
function lockRedisRecord(id) {
|
|
95
|
-
// acquire
|
|
96
|
-
return tsplus_module_2.acquireRelease(tsplus_module_2.mapBoth(_redisClient.RedisClient.flatMap(({
|
|
97
|
-
lock
|
|
98
|
-
}) => tsplus_module_2.tryPromise(() => lock.lock(getLockKey(id), ttl))), {
|
|
99
|
-
onFailure: err => new _shared.CouldNotAquireDbLockException(type, id, err),
|
|
100
|
-
// release
|
|
101
|
-
onSuccess: lock => ({
|
|
102
|
-
// TODO
|
|
103
|
-
release: tsplus_module_2.tryPromise(() => lock.unlock()).orDie
|
|
104
|
-
})
|
|
105
|
-
}), l => l.release);
|
|
106
|
-
}
|
|
107
|
-
function getKey(id) {
|
|
108
|
-
return `v${schemaVersion}.${(0, _shared.getRecordName)(type, id)}`;
|
|
109
|
-
}
|
|
110
|
-
function getLockKey(id) {
|
|
111
|
-
return `v${schemaVersion}.locks.${(0, _shared.getRecordName)(type, id)}`;
|
|
112
|
-
}
|
|
113
|
-
function getIdxKey(index) {
|
|
114
|
-
return `v${schemaVersion}.${(0, _shared.getIndexName)(type, index.doc)}`;
|
|
115
|
-
}
|
|
116
|
-
function getIdxLockKey(index) {
|
|
117
|
-
return `v${schemaVersion}.locks.${(0, _shared.getIndexName)(type, index.doc)}_${index.key}`;
|
|
118
|
-
}
|
|
119
|
-
};
|
|
120
|
-
function hmSetRec(key, val) {
|
|
121
|
-
const enc = tsplus_module_5.encodeSync(RedisSerializedDBRecord)(val);
|
|
122
|
-
return _redisClient.RedisClient.flatMap(({
|
|
123
|
-
client
|
|
124
|
-
}) => tsplus_module_2.uninterruptible(tsplus_module_2.async(res => {
|
|
125
|
-
client.hmset(key, "version", enc.version, "timestamp", enc.timestamp, "data", enc.data, err => err ? res(new _shared.ConnectionException(err)) : res(tsplus_module_2.sync(() => void 0)));
|
|
126
|
-
})));
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
class RedisSerializedDBRecord extends S.Class()({
|
|
130
|
-
version: S.string,
|
|
131
|
-
timestamp: S.Date,
|
|
132
|
-
data: S.string
|
|
133
|
-
}) {}
|
|
134
|
-
exports.RedisSerializedDBRecord = RedisSerializedDBRecord;
|
|
135
|
-
//# sourceMappingURL=redisdb.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"redisdb.cjs","names":["_Function","require","_redisClient","S","_interopRequireWildcard","_shared","simpledb","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ttl","createContext","type","encode","decode","schemaVersion","makeIndexKey","getData","flow","_","map","JSON","stringify","find","findByIndex","getIdx","save","store","lockRedisRecord","id","tsplus_module_3","flatMapOption","RedisClient","flatMap","hmgetAll","getKey","v","tsplus_module_2","mapError","tsplus_module_1","decodeUnknown","RedisSerializedDBRecord","data","version","parse","ConnectionException","Error","toString","orDie","record","currentVersion","cv","parseInt","getOrElse","tsplus_module_4","match","onNone","scoped","zipRight","lockIndex","zipRightOption","getIndex","fail","hmSetRec","timestamp","Date","setIndex","onSome","index","setIdx","lockRedisIdx","hget","getIdxKey","key","hset","lockKey","getIdxLockKey","acquireRelease","mapBoth","lock","tryPromise","onFailure","err","CouldNotAquireDbLockException","onSuccess","release","unlock","l","getLockKey","getRecordName","getIndexName","doc","val","enc","tsplus_module_5","encodeSync","client","uninterruptible","async","res","hmset","sync","Class","string","exports"],"sources":["../../../src/services/simpledb/redisdb.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.SerializedDBRecord = exports.OptimisticLockException = exports.CouldNotAquireDbLockException = exports.ConnectionException = void 0;
|
|
7
|
-
exports.getIndexName = getIndexName;
|
|
8
|
-
exports.getRecordName = getRecordName;
|
|
9
|
-
exports.makeMap = makeMap;
|
|
10
|
-
exports.makeSerialisedDBRecord = makeSerialisedDBRecord;
|
|
11
|
-
var tsplus_module_1 = _interopRequireWildcard(require("effect"));
|
|
12
|
-
var tsplus_module_2 = _interopRequireWildcard(require("effect/Option"));
|
|
13
|
-
var tsplus_module_3 = _interopRequireWildcard(require("effect/Effect"));
|
|
14
|
-
var S = _interopRequireWildcard(require("effect-app/schema"));
|
|
15
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
16
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
17
|
-
class CouldNotAquireDbLockException extends tsplus_module_1.Data.TaggedError("CouldNotAquireDbLockException") {
|
|
18
|
-
constructor(type, id, error) {
|
|
19
|
-
super({
|
|
20
|
-
type,
|
|
21
|
-
id,
|
|
22
|
-
error,
|
|
23
|
-
message: `Couldn't lock db record ${type}: ${id}`
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
exports.CouldNotAquireDbLockException = CouldNotAquireDbLockException;
|
|
28
|
-
class OptimisticLockException extends tsplus_module_1.Data.TaggedError("OptimisticLockException") {
|
|
29
|
-
constructor(type, id) {
|
|
30
|
-
super({
|
|
31
|
-
type,
|
|
32
|
-
id,
|
|
33
|
-
message: `Existing ${type} ${id} record changed`
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
exports.OptimisticLockException = OptimisticLockException;
|
|
38
|
-
class ConnectionException extends tsplus_module_1.Data.TaggedError("ConnectionException") {
|
|
39
|
-
_errorTag = "ConnectionException";
|
|
40
|
-
constructor(cause) {
|
|
41
|
-
super({
|
|
42
|
-
cause,
|
|
43
|
-
message: "A connection error ocurred"
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
exports.ConnectionException = ConnectionException;
|
|
48
|
-
class SerializedDBRecord extends S.Class()({
|
|
49
|
-
version: S.string,
|
|
50
|
-
timestamp: S.Date,
|
|
51
|
-
data: S.string
|
|
52
|
-
}) {}
|
|
53
|
-
// unknown -> string -> SDB?
|
|
54
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
55
|
-
exports.SerializedDBRecord = SerializedDBRecord;
|
|
56
|
-
function makeSerialisedDBRecord(s) {
|
|
57
|
-
return S.struct({
|
|
58
|
-
version: S.number,
|
|
59
|
-
timestamp: S.Date,
|
|
60
|
-
data: s
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
function getIndexName(type, id) {
|
|
64
|
-
return `${type}-idx_${id}`;
|
|
65
|
-
}
|
|
66
|
-
function getRecordName(type, id) {
|
|
67
|
-
return `${type}-r_${id}`;
|
|
68
|
-
}
|
|
69
|
-
function makeMap() {
|
|
70
|
-
const map = new Map();
|
|
71
|
-
return {
|
|
72
|
-
find: k => tsplus_module_3.sync(() => tsplus_module_2.fromNullable(map.get(k))),
|
|
73
|
-
[Symbol.iterator]: () => map[Symbol.iterator](),
|
|
74
|
-
set: (k, v) => tsplus_module_3.sync(() => {
|
|
75
|
-
map.set(k, v);
|
|
76
|
-
})
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
//# sourceMappingURL=shared.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shared.cjs","names":["S","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","CouldNotAquireDbLockException","tsplus_module_1","Data","TaggedError","constructor","type","id","error","message","exports","OptimisticLockException","ConnectionException","_errorTag","cause","SerializedDBRecord","Class","version","string","timestamp","Date","data","makeSerialisedDBRecord","s","struct","number","getIndexName","getRecordName","makeMap","map","Map","find","k","tsplus_module_3","sync","tsplus_module_2","fromNullable","Symbol","iterator","v"],"sources":["../../../src/services/simpledb/shared.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.RecordCache = exports.LiveRecordCache = exports.InvalidStateError = void 0;
|
|
7
|
-
exports.find = find;
|
|
8
|
-
exports.makeLiveRecordCache = makeLiveRecordCache;
|
|
9
|
-
exports.store = store;
|
|
10
|
-
exports.storeDirectly = storeDirectly;
|
|
11
|
-
var tsplus_module_1 = _interopRequireWildcard(require("effect/Effect"));
|
|
12
|
-
var tsplus_module_2 = _interopRequireWildcard(require("effect/Context"));
|
|
13
|
-
var tsplus_module_3 = _interopRequireWildcard(require("effect/Layer"));
|
|
14
|
-
var tsplus_module_4 = _interopRequireWildcard(require("@effect-app/core/Effect"));
|
|
15
|
-
var tsplus_module_5 = _interopRequireWildcard(require("effect/Option"));
|
|
16
|
-
var _shared = require("./shared.cjs");
|
|
17
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
18
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
19
|
-
class InvalidStateError {
|
|
20
|
-
message;
|
|
21
|
-
details;
|
|
22
|
-
_tag = "InvalidStateError";
|
|
23
|
-
constructor(message, details) {
|
|
24
|
-
this.message = message;
|
|
25
|
-
this.details = details;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
exports.InvalidStateError = InvalidStateError;
|
|
29
|
-
function makeLiveRecordCache() {
|
|
30
|
-
const m = new Map();
|
|
31
|
-
return {
|
|
32
|
-
get: type => tsplus_module_1.sync(() => {
|
|
33
|
-
const ex = m.get(type);
|
|
34
|
-
if (!ex) {
|
|
35
|
-
const nm = (0, _shared.makeMap)();
|
|
36
|
-
m.set(type, nm);
|
|
37
|
-
return nm;
|
|
38
|
-
}
|
|
39
|
-
return ex;
|
|
40
|
-
})
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
// module tag
|
|
44
|
-
const RecordCache = exports.RecordCache = tsplus_module_2.GenericTag("@services/RecordCache");
|
|
45
|
-
const LiveRecordCache = exports.LiveRecordCache = tsplus_module_3.effect(RecordCache)(tsplus_module_1.sync(() => makeLiveRecordCache()));
|
|
46
|
-
const getM = type => eff => tsplus_module_1.gen(function* ($) {
|
|
47
|
-
const {
|
|
48
|
-
get
|
|
49
|
-
} = yield* $(RecordCache);
|
|
50
|
-
return yield* $(get(type).flatMap(eff));
|
|
51
|
-
});
|
|
52
|
-
function find(tryRead, decode, type) {
|
|
53
|
-
const getCache = getM(type);
|
|
54
|
-
const read = id => tsplus_module_4.mapOption(tsplus_module_4.tapOption(tsplus_module_4.flatMapOption(tryRead(id), ({
|
|
55
|
-
data,
|
|
56
|
-
version
|
|
57
|
-
}) => tsplus_module_1.mapBoth(decode(data), {
|
|
58
|
-
onFailure: err => new InvalidStateError("DB serialisation Issue", err),
|
|
59
|
-
onSuccess: data => ({
|
|
60
|
-
data,
|
|
61
|
-
version
|
|
62
|
-
})
|
|
63
|
-
})), r => getCache(c => c.set(id, r))), r => r.data);
|
|
64
|
-
return id => getCache(c => tsplus_module_1.orElse(tsplus_module_4.mapOption(c.find(id), existing => existing.data), () => read(id)));
|
|
65
|
-
}
|
|
66
|
-
function storeDirectly(save, type) {
|
|
67
|
-
const getCache = getM(type);
|
|
68
|
-
return record => getCache(c => tsplus_module_4.mapOption(c.find(record.id), x => x.version).flatMap(cv => save(record, cv)).tap(r => c.set(record.id, r)).map(r => r.data));
|
|
69
|
-
}
|
|
70
|
-
function store(tryRead, save, lock, type) {
|
|
71
|
-
const getCache = getM(type);
|
|
72
|
-
return record => getCache(c => tsplus_module_4.mapOption(c.find(record.id), x => x.version).flatMap(_ => tsplus_module_5.match(_, {
|
|
73
|
-
onNone: () => save(record, tsplus_module_5.none()),
|
|
74
|
-
onSome: confirmVersionAndSave(record)
|
|
75
|
-
})).tap(r => c.set(record.id, r)).map(r => r.data));
|
|
76
|
-
function confirmVersionAndSave(record) {
|
|
77
|
-
return cv => tsplus_module_1.scoped(tsplus_module_1.zipRight(lock(record.id), tsplus_module_1.zipRight(tryRead(record.id).flatMap(_ => tsplus_module_5.match(_, {
|
|
78
|
-
onNone: () => tsplus_module_1.fail(new InvalidStateError("record is gone")),
|
|
79
|
-
onSome: tsplus_module_1.succeed
|
|
80
|
-
})).tap(({
|
|
81
|
-
version
|
|
82
|
-
}) => version !== cv ? new _shared.OptimisticLockException(type, record.id) : tsplus_module_1.unit), save(record, tsplus_module_5.some(cv)))));
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
//# sourceMappingURL=simpledb.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"simpledb.cjs","names":["_shared","require","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","InvalidStateError","message","details","_tag","constructor","exports","makeLiveRecordCache","m","Map","type","tsplus_module_1","sync","ex","nm","makeMap","RecordCache","tsplus_module_2","GenericTag","LiveRecordCache","tsplus_module_3","effect","getM","eff","gen","$","flatMap","find","tryRead","decode","getCache","read","id","tsplus_module_4","mapOption","tapOption","flatMapOption","data","version","mapBoth","onFailure","err","onSuccess","c","orElse","existing","storeDirectly","save","record","x","cv","tap","map","store","lock","_","tsplus_module_5","match","onNone","none","onSome","confirmVersionAndSave","scoped","zipRight","fail","succeed","OptimisticLockException","unit","some"],"sources":["../../../src/services/simpledb/simpledb.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAA8D,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAI,wBAAAJ,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAM,OAAA,EAAAN,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAI,GAAA,CAAAP,CAAA,UAAAG,CAAA,CAAAK,GAAA,CAAAR,CAAA,OAAAS,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAf,CAAA,oBAAAe,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAlB,CAAA,EAAAe,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAd,CAAA,EAAAe,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAf,CAAA,CAAAe,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAN,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAiB,GAAA,CAAApB,CAAA,EAAAS,CAAA,GAAAA,CAAA;AAGxD,MAAOY,iBAAiB;EAEPC,OAAA;EAA0BC,OAAA;EADtCC,IAAI,GAAG,mBAAmB;EACnCC,YAAqBH,OAAe,EAAWC,OAAiB;IAA3C,KAAAD,OAAO,GAAPA,OAAO;IAAmB,KAAAC,OAAO,GAAPA,OAAO;EAAa;;AACpEG,OAAA,CAAAL,iBAAA,GAAAA,iBAAA;AAEK,SAAUM,mBAAmBA,CAAA;EACjC,MAAMC,CAAC,GAAG,IAAIC,GAAG,EAAsC;EACvD,OAAO;IACLrB,GAAG,EAAMsB,IAAY,IACnBC,eAAA,CAAAC,IAAA,CAAY,MAAK;MACf,MAAMC,EAAE,GAAGL,CAAC,CAACpB,GAAG,CAACsB,IAAI,CAAC;MACtB,IAAI,CAACG,EAAE,EAAE;QACP,MAAMC,EAAE,GAAG,IAAAC,eAAO,GAAmB;QACrCP,CAAC,CAACR,GAAG,CAACU,IAAI,EAAEI,EAAE,CAAC;QACf,OAAOA,EAAwC;MACjD;MACA,OAAOD,EAAwC;IACjD,CAAC;GACJ;AACH;AAIA;AACO,MAAMG,WAAW,GAAAV,OAAA,CAAAU,WAAA,GAAGC,eAAA,CAAAC,UAAU,CAAc,uBAAuB,CAAC;AAEpE,MAAMC,eAAe,GAAAb,OAAA,CAAAa,eAAA,GAAGC,eAAA,CAAAC,MAAA,CAAiDL,WAAW,EAA5DL,eAAA,CAAAC,IAAA,CAAY,MAAML,mBAAmB,EAAE,CAAC,CAAqB;AAE5F,MAAMe,IAAI,GAAOZ,IAAY,IAAea,GAA+D,IACzGZ,eAAA,CAAAa,GAAA,CAAW,WAAUC,CAAC;EACpB,MAAM;IAAErC;EAAG,CAAE,GAAG,OAAOqC,CAAC,CAACT,WAAW,CAAC;EACrC,OAAO,OAAOS,CAAC,CAACrC,GAAG,CAAIsB,IAAI,CAAC,CAACgB,OAAO,CAACH,GAAG,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEE,SAAUI,IAAIA,CAClBC,OAA+D,EAC/DC,MAA8C,EAC9CnB,IAAY;EAEZ,MAAMoB,QAAQ,GAAGR,IAAI,CAAIZ,IAAI,CAAC;EAC9B,MAAMqB,IAAI,GAAIC,EAAU,IACtBC,eAAA,CAAAC,SAAA,CAAAD,eAAA,CAAAE,SAAA,CAAAF,eAAA,CAAAG,aAAA,CAAAR,OAAO,CAACI,EAAE,CAAC,EACG,CAAC;IAAEK,IAAI;IAAEC;EAAO,CAAE,KAC5B3B,eAAA,CAAA4B,OAAA,CAAAV,MAAM,CAACQ,IAAI,CAAC,EAAS;IACnBG,SAAS,EAAGC,GAAG,IAAK,IAAIxC,iBAAiB,CAAC,wBAAwB,EAAEwC,GAAG,CAAC;IACxEC,SAAS,EAAGL,IAAI,KAAM;MAAEA,IAAI;MAAEC;IAAO,CAAE;GACxC,CAAC,CACH,EACQxD,CAAC,IAAKgD,QAAQ,CAAEa,CAAC,IAAKA,CAAC,CAAC3C,GAAG,CAACgC,EAAE,EAAElD,CAAC,CAAC,CAAC,CAAC,EACpCA,CAAC,IAAKA,CAAC,CAACuD,IAAI,CAAC;EAE1B,OAAQL,EAAU,IAChBF,QAAQ,CAAEa,CAAC,IACThC,eAAA,CAAAiC,MAAA,CAAAX,eAAA,CAAAC,SAAA,CAAAS,CAAC,CACEhB,IAAI,CAACK,EAAE,CAAC,EACAa,QAAQ,IAAKA,QAAQ,CAACR,IAAI,CAAC,EAC5B,MAAMN,IAAI,CAACC,EAAE,CAAC,CAAC,CAC1B;AACL;AAEM,SAAUc,aAAaA,CAC3BC,IAAuE,EACvErC,IAAY;EAEZ,MAAMoB,QAAQ,GAAGR,IAAI,CAAIZ,IAAI,CAAC;EAC9B,OAAQsC,MAAS,IACflB,QAAQ,CAAEa,CAAC,IACTV,eAAA,CAAAC,SAAA,CAAAS,CAAC,CACEhB,IAAI,CAACqB,MAAM,CAAChB,EAAE,CAAC,EACPiB,CAAC,IAAKA,CAAC,CAACX,OAAO,CAAC,CACxBZ,OAAO,CAAEwB,EAAE,IAAKH,IAAI,CAACC,MAAM,EAAEE,EAAE,CAAC,CAAC,CACjCC,GAAG,CAAErE,CAAC,IAAK6D,CAAC,CAAC3C,GAAG,CAACgD,MAAM,CAAChB,EAAE,EAAElD,CAAC,CAAC,CAAC,CAC/BsE,GAAG,CAAEtE,CAAC,IAAKA,CAAC,CAACuD,IAAI,CAAC,CACtB;AACL;AAEM,SAAUgB,KAAKA,CACnBzB,OAA+D,EAC/DmB,IAAuE,EACvEO,IAAqD,EACrD5C,IAAY;EAEZ,MAAMoB,QAAQ,GAAGR,IAAI,CAAIZ,IAAI,CAAC;EAC9B,OAAQsC,MAAS,IACflB,QAAQ,CAAEa,CAAC,IACTV,eAAA,CAAAC,SAAA,CAAAS,CAAC,CACEhB,IAAI,CAACqB,MAAM,CAAChB,EAAE,CAAC,EACPiB,CAAC,IAAKA,CAAC,CAACX,OAAO,CAAC,CACxBZ,OAAO,CAAE6B,CAAC,IAAKC,eAAA,CAAAC,KAAA,CAAAF,CAAC,EAAO;IAAEG,MAAM,EAAEA,CAAA,KAAMX,IAAI,CAACC,MAAM,EAAEQ,eAAA,CAAAG,IAAA,EAAa,CAAC;IAAEC,MAAM,EAAEC,qBAAqB,CAACb,MAAM;EAAC,CAAE,CAAC,CAAC,CAC7GG,GAAG,CAAErE,CAAC,IAAK6D,CAAC,CAAC3C,GAAG,CAACgD,MAAM,CAAChB,EAAE,EAAElD,CAAC,CAAC,CAAC,CAC/BsE,GAAG,CAAEtE,CAAC,IAAKA,CAAC,CAACuD,IAAI,CAAC,CACtB;EAEH,SAASwB,qBAAqBA,CAACb,MAAS;IACtC,OAAQE,EAAW,IAAIvC,eAAA,CAAAmD,MAAA,CACrBnD,eAAA,CAAAoD,QAAA,CAAAT,IAAI,CAACN,MAAM,CAAChB,EAAE,CAAC,EAEXrB,eAAA,CAAAoD,QAAA,CAAAnC,OAAO,CAACoB,MAAM,CAAChB,EAAE,CAAC,CACfN,OAAO,CAAE6B,CAAC,IACTC,eAAA,CAAAC,KAAA,CAAAF,CAAC,EACC;MAAEG,MAAM,EAAEA,CAAA,KAAM/C,eAAA,CAAAqD,IAAA,CAAY,IAAI/D,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;MAAE2D,MAAM,EAAAjD,eAAA,CAAAsD;IAAgB,CAAE,CAC/F,CACF,CACAd,GAAG,CAAC,CAAC;MAAEb;IAAO,CAAE,KACfA,OAAO,KAAKY,EAAE,GACV,IAAIgB,+BAAuB,CAACxD,IAAI,EAAEsC,MAAM,CAAChB,EAAE,CAAC,GAC7CrB,eAAA,CAAAwD,IAAY,CAChB,EACSpB,IAAI,CAACC,MAAM,EAAEQ,eAAA,CAAAY,IAAA,CAAYlB,EAAE,CAAC,CAAC,CAAC,CAC3C,CACM;EACb;AACF"}
|
package/dist/_global.d.ts
DELETED
package/dist/_global.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_global.d.ts","sourceRoot":"","sources":["../src/_global.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,OAAO,oBAAoB,CAAA;AAE3B;;GAEG;AACH,OAAO,oCAAoC,CAAA;AAE3C,OAAO,kBAAkB,CAAA"}
|
package/dist/_global.ext.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @tsplus global
|
|
3
|
-
*/
|
|
4
|
-
import type {} from "@effect-app/infra/services/Emailer/fake";
|
|
5
|
-
/**
|
|
6
|
-
* @tsplus global
|
|
7
|
-
*/
|
|
8
|
-
import type {} from "@effect-app/infra/services/Emailer/Sendgrid";
|
|
9
|
-
/**
|
|
10
|
-
* @tsplus global
|
|
11
|
-
*/
|
|
12
|
-
import type {} from "@effect-app/infra/services/Operations/live";
|
|
13
|
-
/**
|
|
14
|
-
* @tsplus global
|
|
15
|
-
*/
|
|
16
|
-
import type {} from "@effect-app/infra/services/QueueMaker/errors";
|
|
17
|
-
/**
|
|
18
|
-
* @tsplus global
|
|
19
|
-
*/
|
|
20
|
-
import type {} from "@effect-app/infra/_ext/Array";
|
|
21
|
-
/**
|
|
22
|
-
* @tsplus global
|
|
23
|
-
*/
|
|
24
|
-
import type {} from "@effect-app/infra/rateLimit";
|
|
25
|
-
/**
|
|
26
|
-
* @tsplus global
|
|
27
|
-
*/
|
|
28
|
-
import type {} from "@effect-app/infra/api/setupRequest";
|
|
29
|
-
/**
|
|
30
|
-
* @tsplus global
|
|
31
|
-
*/
|
|
32
|
-
import {} from "@effect-app/infra/api/reportError";
|
|
33
|
-
import "@effect-app/infra/test.arbs";
|
|
34
|
-
//# sourceMappingURL=_global.ext.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_global.ext.d.ts","sourceRoot":"","sources":["../src/_global.ext.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,yCAAyC,CAAA;AAC7D;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,6CAA6C,CAAA;AACjE;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,4CAA4C,CAAA;AAChE;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,8CAA8C,CAAA;AAGlE;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAClD;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,6BAA6B,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,oCAAoC,CAAA;AAExD;;GAEG;AACH,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAlBlD,OAAO,6BAA6B,CAAA"}
|
package/dist/_global.ext.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import "@effect-app/infra/test.arbs";
|
|
2
|
-
/**
|
|
3
|
-
* @tsplus global
|
|
4
|
-
*/
|
|
5
|
-
import "@effect-app/infra/api/reportError";
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2dsb2JhbC5leHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvX2dsb2JhbC5leHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUJBLE9BQU8sNkJBQTZCLENBQUE7QUFlcEM7O0dBRUc7QUFDSCxPQUFlLG1DQUFtQyxDQUFBIn0=
|
package/dist/_global.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/* eslint-disable import/no-duplicates */
|
|
2
|
-
/* eslint-disable unused-imports/no-unused-imports */
|
|
3
|
-
/**
|
|
4
|
-
* @tsplus global
|
|
5
|
-
*/
|
|
6
|
-
import "effect-app/_global";
|
|
7
|
-
/**
|
|
8
|
-
* @tsplus global
|
|
9
|
-
*/
|
|
10
|
-
import "@effect-app/infra-adapters/_global";
|
|
11
|
-
import "./_global.ext.js";
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2dsb2JhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9fZ2xvYmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlDQUF5QztBQUN6QyxxREFBcUQ7QUFFckQ7O0dBRUc7QUFDSCxPQUFPLG9CQUFvQixDQUFBO0FBRTNCOztHQUVHO0FBQ0gsT0FBTyxvQ0FBb0MsQ0FBQTtBQUUzQyxPQUFPLGtCQUFrQixDQUFBIn0=
|
package/dist/_global.schema.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_global.schema.d.ts","sourceRoot":"","sources":["../src/_global.schema.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAEtE,OAAO,2BAA2B,CAAA"}
|
package/dist/_global.schema.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/* eslint-disable import/no-duplicates */
|
|
2
|
-
/* eslint-disable unused-imports/no-unused-imports */
|
|
3
|
-
// Required for tsplus with project references in vscode..
|
|
4
|
-
/**
|
|
5
|
-
* @tsplus global
|
|
6
|
-
*/
|
|
7
|
-
import "effect-app/schema";
|
|
8
|
-
import "effect-app/_global.schema";
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2dsb2JhbC5zY2hlbWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvX2dsb2JhbC5zY2hlbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseUNBQXlDO0FBQ3pDLHFEQUFxRDtBQUNyRCwwREFBMEQ7QUFFMUQ7O0dBRUc7QUFDSCxPQUFtRCxtQkFBbUIsQ0FBQTtBQUV0RSxPQUFPLDJCQUEyQixDQUFBIn0=
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { Effect } from "effect/Effect";
|
|
2
|
-
import type { SupportedErrors, ValidationError } from "effect-app/client/errors";
|
|
3
|
-
import type express from "express";
|
|
4
|
-
export declare function defaultBasicErrorHandler<R>(_req: express.Request, res: express.Response, r2: Effect<void, ValidationError, R>): import("effect/Effect").Effect<void | express.Response<any, Record<string, any>>, never, R>;
|
|
5
|
-
export declare function defaultErrorHandler<R>(req: express.Request, res: express.Response, r2: Effect<void, SupportedErrors, R>): import("effect/Effect").Effect<void | express.Response<any, Record<string, any>>, never, R>;
|
|
6
|
-
//# sourceMappingURL=defaultErrorHandler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"defaultErrorHandler.d.ts","sourceRoot":"","sources":["../../src/api/defaultErrorHandler.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAChF,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAKlC,wBAAgB,wBAAwB,CAAC,CAAC,EACxC,IAAI,EAAE,OAAO,CAAC,OAAO,EACrB,GAAG,EAAE,OAAO,CAAC,QAAQ,EACrB,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,+FAerC;AAKD,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,GAAG,EAAE,OAAO,CAAC,OAAO,EACpB,GAAG,EAAE,OAAO,CAAC,QAAQ,EACrB,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,+FA0BrC"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import * as tsplus_module_1 from "effect/Effect";
|
|
2
|
-
import * as tsplus_module_2 from "effect/Cause";
|
|
3
|
-
import * as tsplus_module_3 from "effect/Schedule";
|
|
4
|
-
import { logError } from "../errorReporter.js";
|
|
5
|
-
const logRequestError = logError("Request");
|
|
6
|
-
export function defaultBasicErrorHandler(_req, res, r2) {
|
|
7
|
-
const sendError = (code) => (body) => tsplus_module_1.sync(() => res.status(code).send(body));
|
|
8
|
-
return tsplus_module_1.catchAll(tsplus_module_1.catchTag(tsplus_module_1.tapErrorCause(r2, (cause) => tsplus_module_2.isFailure(cause) ? logRequestError(cause) : tsplus_module_1.unit), "ValidationError", (err) => sendError(400)(err.errors))
|
|
9
|
-
// final catch all; expecting never so that unhandled known errors will show up
|
|
10
|
-
, (err) => tsplus_module_1.logError("Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect" + err)
|
|
11
|
-
.map(() => err)
|
|
12
|
-
.flatMap(tsplus_module_1.die));
|
|
13
|
-
}
|
|
14
|
-
const optimisticConcurrencySchedule = tsplus_module_3.once && tsplus_module_3.recurWhile((a) => a._tag === "OptimisticConcurrencyException");
|
|
15
|
-
export function defaultErrorHandler(req, res, r2) {
|
|
16
|
-
const r3 = req.method === "PATCH"
|
|
17
|
-
? tsplus_module_1.retry(r2, optimisticConcurrencySchedule)
|
|
18
|
-
: r2;
|
|
19
|
-
const sendError = (code) => (body) => tsplus_module_1.sync(() => res.status(code).send(body));
|
|
20
|
-
return tsplus_module_1.catchAll(tsplus_module_1.catchTags(tsplus_module_1.tapErrorCause(r3, (cause) => tsplus_module_2.isFailure(cause) ? logRequestError(cause) : tsplus_module_1.unit), {
|
|
21
|
-
"ValidationError": (err) => sendError(400)(err.errors),
|
|
22
|
-
"NotFoundError": sendError(404),
|
|
23
|
-
"NotLoggedInError": sendError(401),
|
|
24
|
-
"UnauthorizedError": sendError(403),
|
|
25
|
-
"InvalidStateError": sendError(422),
|
|
26
|
-
// 412 or 409.. https://stackoverflow.com/questions/19122088/which-http-status-code-to-use-to-reject-a-put-due-to-optimistic-locking-failure
|
|
27
|
-
"OptimisticConcurrencyException": sendError(412)
|
|
28
|
-
})
|
|
29
|
-
// final catch all; expecting never so that unhandled known errors will show up
|
|
30
|
-
, (err) => tsplus_module_1.logError("Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect" + err)
|
|
31
|
-
.map(() => err)
|
|
32
|
-
.flatMap(tsplus_module_1.die));
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdEVycm9ySGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvZGVmYXVsdEVycm9ySGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFFOUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0FBRTNDLE1BQU0sVUFBVSx3QkFBd0IsQ0FDdEMsSUFBcUIsRUFDckIsR0FBcUIsRUFDckIsRUFBb0M7SUFFcEMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBYSxFQUFFLEVBQUUsQ0FBQyxxQkFBWSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ3JHLE9BQU8seUJBQUEseUJBQUEsOEJBQUEsRUFBRSxFQUNRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQywwQkFBQSxLQUFLLENBQVksQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMscUJBQVksQ0FBQyxFQUN6RSxpQkFBaUIsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqRSwrRUFBK0U7TUFDckUsQ0FBQyxHQUFVLEVBQUUsRUFBRSxDQUN2Qix5QkFFSSxnR0FBZ0csR0FBRyxHQUFHLENBQ3ZHO1NBQ0EsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQWMsQ0FBQztTQUN6QixPQUFPLHFCQUFZLENBQ3ZCLENBQUE7QUFDTCxDQUFDO0FBRUQsTUFBTSw2QkFBNkIsR0FBRyx3QkFDakMsMkJBQXFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLGdDQUFnQyxDQUFDLENBQUE7QUFFN0YsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxHQUFvQixFQUNwQixHQUFxQixFQUNyQixFQUFvQztJQUVwQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxLQUFLLE9BQU87UUFDL0IsQ0FBQyxDQUFDLHNCQUFBLEVBQUUsRUFBTyw2QkFBNkIsQ0FBQztRQUN6QyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ04sTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBYSxFQUFFLEVBQUUsQ0FBQyxxQkFBWSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ3JHLE9BQU8seUJBQUEsMEJBQUEsOEJBQUEsRUFBRSxFQUNRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQywwQkFBQSxLQUFLLENBQVksQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMscUJBQVksQ0FBQyxFQUN4RTtRQUNULGlCQUFpQixFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUN0RCxlQUFlLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQztRQUMvQixrQkFBa0IsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDO1FBQ2xDLG1CQUFtQixFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUM7UUFDbkMsbUJBQW1CLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQztRQUNuQyw0SUFBNEk7UUFDNUksZ0NBQWdDLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQztLQUNqRCxDQUFDO0lBQ0YsK0VBQStFO01BQ3JFLENBQUMsR0FBVSxFQUFFLEVBQUUsQ0FDdkIseUJBRUksZ0dBQWdHLEdBQUcsR0FBRyxDQUN2RztTQUNBLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFjLENBQUM7U0FDekIsT0FBTyxxQkFBWSxDQUN2QixDQUFBO0FBQ0wsQ0FBQyJ9
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { Schema } from "effect-app/schema";
|
|
2
|
-
import { Effect } from "effect/Effect";
|
|
3
|
-
import * as S from "effect-app/schema";
|
|
4
|
-
import { type JwtDecodeOptions } from "jwt-decode";
|
|
5
|
-
export declare const parseJwt: <R, I, A>(schema: Schema<A, I, R>, options?: JwtDecodeOptions | undefined) => Schema<A, string, R>;
|
|
6
|
-
//# sourceMappingURL=jwt.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../../../src/api/express/schema/jwt.ts"],"names":[],"mappings":";;AAIA,OAAO,KAAK,CAAC,MAAM,mBAAmB,CAAA;AACtC,OAAO,EAAa,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE7D,eAAO,MAAM,QAAQ,oBACX,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,YACb,gBAAgB,GAAG,SAAS,KACrC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAciB,CAAA"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import * as tsplus_module_1 from "@effect/schema/Schema";
|
|
2
|
-
import * as S from "effect-app/schema";
|
|
3
|
-
import { jwtDecode } from "jwt-decode";
|
|
4
|
-
export const parseJwt = (schema, options) => tsplus_module_1.compose(S
|
|
5
|
-
.transformOrFail(S.string, S.unknown, (s, __, ast) => S.ParseResult.try({
|
|
6
|
-
try: () => jwtDecode(s, options),
|
|
7
|
-
catch: (e) => S.ParseResult.type(ast, s, e?.message)
|
|
8
|
-
}), (_) => {
|
|
9
|
-
throw new Error("not implemented");
|
|
10
|
-
}), schema, { strict: false });
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwaS9leHByZXNzL3NjaGVtYS9qd3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUlBLE9BQU8sS0FBSyxDQUFDLE1BQU0sbUJBQW1CLENBQUE7QUFDdEMsT0FBTyxFQUFFLFNBQVMsRUFBeUIsTUFBTSxZQUFZLENBQUE7QUFFN0QsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQ3RCLE1BQXVCLEVBQ3ZCLE9BQXNDLEVBQ2hCLEVBQUUsQ0FDeEIsd0JBQUEsQ0FBQztLQUNFLGVBQWUsQ0FDZCxDQUFDLENBQUMsTUFBTSxFQUNSLENBQUMsQ0FBQyxPQUFPLEVBQ1QsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQ2IsQUFaSSxDQUFDLENBWUwsV0FBVyxDQUFDLEdBQUcsQ0FBQztJQUNkLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUNoQyxLQUFLLEVBQUUsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLEFBZGpCLENBQUMsQ0FjZ0IsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUM7Q0FDeEQsQ0FBQyxFQUNKLENBQUMsQ0FBQyxFQUE4QixFQUFFO0lBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtBQUNwQyxDQUFDLENBQ0YsRUFDUSxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQSJ9
|