@effect-app/infra 2.32.2 → 2.34.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 +22 -0
- package/package.json +174 -632
- package/_cjs/CUPS.cjs +0 -120
- package/_cjs/CUPS.cjs.map +0 -1
- package/_cjs/Emailer/Sendgrid.cjs +0 -109
- package/_cjs/Emailer/Sendgrid.cjs.map +0 -1
- package/_cjs/Emailer/fake.cjs +0 -17
- package/_cjs/Emailer/fake.cjs.map +0 -1
- package/_cjs/Emailer/service.cjs +0 -12
- package/_cjs/Emailer/service.cjs.map +0 -1
- package/_cjs/Emailer.cjs +0 -17
- package/_cjs/Emailer.cjs.map +0 -1
- package/_cjs/MainFiberSet.cjs +0 -61
- package/_cjs/MainFiberSet.cjs.map +0 -1
- package/_cjs/Model/Repository/ext.cjs +0 -68
- package/_cjs/Model/Repository/ext.cjs.map +0 -1
- package/_cjs/Model/Repository/internal/internal.cjs +0 -245
- package/_cjs/Model/Repository/internal/internal.cjs.map +0 -1
- package/_cjs/Model/Repository/legacy.cjs +0 -6
- package/_cjs/Model/Repository/legacy.cjs.map +0 -1
- package/_cjs/Model/Repository/makeRepo.cjs +0 -34
- package/_cjs/Model/Repository/makeRepo.cjs.map +0 -1
- package/_cjs/Model/Repository/service.cjs +0 -6
- package/_cjs/Model/Repository/service.cjs.map +0 -1
- package/_cjs/Model/Repository.cjs +0 -52
- package/_cjs/Model/Repository.cjs.map +0 -1
- package/_cjs/Model/dsl.cjs +0 -54
- package/_cjs/Model/dsl.cjs.map +0 -1
- package/_cjs/Model/filter/filterApi.cjs +0 -6
- package/_cjs/Model/filter/filterApi.cjs.map +0 -1
- package/_cjs/Model/filter/types/errors.cjs +0 -6
- package/_cjs/Model/filter/types/errors.cjs.map +0 -1
- package/_cjs/Model/filter/types/fields.cjs +0 -6
- package/_cjs/Model/filter/types/fields.cjs.map +0 -1
- package/_cjs/Model/filter/types/path/common.cjs +0 -6
- package/_cjs/Model/filter/types/path/common.cjs.map +0 -1
- package/_cjs/Model/filter/types/path/eager.cjs +0 -37
- package/_cjs/Model/filter/types/path/eager.cjs.map +0 -1
- package/_cjs/Model/filter/types/path/index.cjs +0 -6
- package/_cjs/Model/filter/types/path/index.cjs.map +0 -1
- package/_cjs/Model/filter/types/utils.cjs +0 -6
- package/_cjs/Model/filter/types/utils.cjs.map +0 -1
- package/_cjs/Model/filter/types/validator.cjs +0 -6
- package/_cjs/Model/filter/types/validator.cjs.map +0 -1
- package/_cjs/Model/filter/types.cjs +0 -50
- package/_cjs/Model/filter/types.cjs.map +0 -1
- package/_cjs/Model/query/dsl.cjs +0 -133
- package/_cjs/Model/query/dsl.cjs.map +0 -1
- package/_cjs/Model/query/new-kid-interpreter.cjs +0 -162
- package/_cjs/Model/query/new-kid-interpreter.cjs.map +0 -1
- package/_cjs/Model/query.cjs +0 -28
- package/_cjs/Model/query.cjs.map +0 -1
- package/_cjs/Model.cjs +0 -34
- package/_cjs/Model.cjs.map +0 -1
- package/_cjs/Operations.cjs +0 -105
- package/_cjs/Operations.cjs.map +0 -1
- package/_cjs/OperationsRepo.cjs +0 -21
- package/_cjs/OperationsRepo.cjs.map +0 -1
- package/_cjs/QueueMaker/SQLQueue.cjs +0 -149
- package/_cjs/QueueMaker/SQLQueue.cjs.map +0 -1
- package/_cjs/QueueMaker/errors.cjs +0 -29
- package/_cjs/QueueMaker/errors.cjs.map +0 -1
- package/_cjs/QueueMaker/memQueue.cjs +0 -90
- package/_cjs/QueueMaker/memQueue.cjs.map +0 -1
- package/_cjs/QueueMaker/sbqueue.cjs +0 -107
- package/_cjs/QueueMaker/sbqueue.cjs.map +0 -1
- package/_cjs/QueueMaker/service.cjs +0 -10
- package/_cjs/QueueMaker/service.cjs.map +0 -1
- package/_cjs/RequestContext.cjs +0 -54
- package/_cjs/RequestContext.cjs.map +0 -1
- package/_cjs/RequestFiberSet.cjs +0 -85
- package/_cjs/RequestFiberSet.cjs.map +0 -1
- package/_cjs/Store/ContextMapContainer.cjs +0 -19
- package/_cjs/Store/ContextMapContainer.cjs.map +0 -1
- package/_cjs/Store/Cosmos/query.cjs +0 -170
- package/_cjs/Store/Cosmos/query.cjs.map +0 -1
- package/_cjs/Store/Cosmos.cjs +0 -302
- package/_cjs/Store/Cosmos.cjs.map +0 -1
- package/_cjs/Store/Disk.cjs +0 -118
- package/_cjs/Store/Disk.cjs.map +0 -1
- package/_cjs/Store/Memory.cjs +0 -174
- package/_cjs/Store/Memory.cjs.map +0 -1
- package/_cjs/Store/codeFilter.cjs +0 -128
- package/_cjs/Store/codeFilter.cjs.map +0 -1
- package/_cjs/Store/index.cjs +0 -46
- package/_cjs/Store/index.cjs.map +0 -1
- package/_cjs/Store/service.cjs +0 -73
- package/_cjs/Store/service.cjs.map +0 -1
- package/_cjs/Store/utils.cjs +0 -70
- package/_cjs/Store/utils.cjs.map +0 -1
- package/_cjs/Store.cjs +0 -17
- package/_cjs/Store.cjs.map +0 -1
- package/_cjs/adapters/SQL/Model.cjs +0 -501
- package/_cjs/adapters/SQL/Model.cjs.map +0 -1
- package/_cjs/adapters/SQL.cjs +0 -11
- package/_cjs/adapters/SQL.cjs.map +0 -1
- package/_cjs/adapters/ServiceBus.cjs +0 -76
- package/_cjs/adapters/ServiceBus.cjs.map +0 -1
- package/_cjs/adapters/cosmos-client.cjs +0 -18
- package/_cjs/adapters/cosmos-client.cjs.map +0 -1
- package/_cjs/adapters/index.cjs +0 -6
- package/_cjs/adapters/index.cjs.map +0 -1
- package/_cjs/adapters/logger.cjs +0 -9
- package/_cjs/adapters/logger.cjs.map +0 -1
- package/_cjs/adapters/memQueue.cjs +0 -27
- package/_cjs/adapters/memQueue.cjs.map +0 -1
- package/_cjs/adapters/mongo-client.cjs +0 -20
- package/_cjs/adapters/mongo-client.cjs.map +0 -1
- package/_cjs/adapters/redis-client.cjs +0 -83
- package/_cjs/adapters/redis-client.cjs.map +0 -1
- package/_cjs/api/codec.cjs +0 -13
- package/_cjs/api/codec.cjs.map +0 -1
- package/_cjs/api/internal/RequestContextMiddleware.cjs +0 -41
- package/_cjs/api/internal/RequestContextMiddleware.cjs.map +0 -1
- package/_cjs/api/internal/auth.cjs +0 -58
- package/_cjs/api/internal/auth.cjs.map +0 -1
- package/_cjs/api/internal/events.cjs +0 -34
- package/_cjs/api/internal/events.cjs.map +0 -1
- package/_cjs/api/internal/health.cjs +0 -13
- package/_cjs/api/internal/health.cjs.map +0 -1
- package/_cjs/api/internal/middlewares.cjs +0 -197
- package/_cjs/api/internal/middlewares.cjs.map +0 -1
- package/_cjs/api/middlewares.cjs +0 -115
- package/_cjs/api/middlewares.cjs.map +0 -1
- package/_cjs/api/reportError.cjs +0 -29
- package/_cjs/api/reportError.cjs.map +0 -1
- package/_cjs/api/routing/DynamicMiddleware.cjs +0 -19
- package/_cjs/api/routing/DynamicMiddleware.cjs.map +0 -1
- package/_cjs/api/routing/schema/jwt.cjs +0 -21
- package/_cjs/api/routing/schema/jwt.cjs.map +0 -1
- package/_cjs/api/routing/utils.cjs +0 -53
- package/_cjs/api/routing/utils.cjs.map +0 -1
- package/_cjs/api/routing.cjs +0 -228
- package/_cjs/api/routing.cjs.map +0 -1
- package/_cjs/api/routing.legacy.cjs +0 -191
- package/_cjs/api/routing.legacy.cjs.map +0 -1
- package/_cjs/api/routing.legacy2.cjs +0 -210
- package/_cjs/api/routing.legacy2.cjs.map +0 -1
- package/_cjs/api/routing.legacy3.cjs +0 -214
- package/_cjs/api/routing.legacy3.cjs.map +0 -1
- package/_cjs/api/setupRequest.cjs +0 -58
- package/_cjs/api/setupRequest.cjs.map +0 -1
- package/_cjs/api/util.cjs +0 -17
- package/_cjs/api/util.cjs.map +0 -1
- package/_cjs/arbs.cjs +0 -25
- package/_cjs/arbs.cjs.map +0 -1
- package/_cjs/errorReporter.cjs +0 -74
- package/_cjs/errorReporter.cjs.map +0 -1
- package/_cjs/errors.cjs +0 -17
- package/_cjs/errors.cjs.map +0 -1
- package/_cjs/fileUtil.cjs +0 -48
- package/_cjs/fileUtil.cjs.map +0 -1
- package/_cjs/index.cjs +0 -11
- package/_cjs/index.cjs.map +0 -1
- package/_cjs/logger/jsonLogger.cjs +0 -43
- package/_cjs/logger/jsonLogger.cjs.map +0 -1
- package/_cjs/logger/logFmtLogger.cjs +0 -25
- package/_cjs/logger/logFmtLogger.cjs.map +0 -1
- package/_cjs/logger/shared.cjs +0 -30
- package/_cjs/logger/shared.cjs.map +0 -1
- package/_cjs/logger.cjs +0 -9
- package/_cjs/logger.cjs.map +0 -1
- package/_cjs/rateLimit.cjs +0 -76
- package/_cjs/rateLimit.cjs.map +0 -1
- package/_cjs/test.cjs +0 -77
- package/_cjs/test.cjs.map +0 -1
- package/_cjs/vitest.cjs +0 -28
- package/_cjs/vitest.cjs.map +0 -1
package/_cjs/adapters/index.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":[],"sources":["../../src/adapters/index.ts"],"sourcesContent":[null],"mappings":"","ignoreList":[]}
|
package/_cjs/adapters/logger.cjs
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.InfraLogger = void 0;
|
|
7
|
-
var _logger = require("effect-app/utils/logger");
|
|
8
|
-
const InfraLogger = exports.InfraLogger = (0, _logger.makeLog)("@effect-app/infra", "info");
|
|
9
|
-
//# sourceMappingURL=logger.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.cjs","names":["_logger","require","InfraLogger","exports","makeLog"],"sources":["../../src/adapters/logger.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEO,MAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,IAAAE,eAAO,EAAC,mBAAmB,EAAE,MAAM,CAAC","ignoreList":[]}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.MemQueue = void 0;
|
|
7
|
-
var _effectApp = require("effect-app");
|
|
8
|
-
var Q = _interopRequireWildcard(require("effect/Queue"));
|
|
9
|
-
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); }
|
|
10
|
-
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 && {}.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; }
|
|
11
|
-
const make = _effectApp.Effect.gen(function* () {
|
|
12
|
-
const store = yield* _effectApp.Effect.sync(() => new Map());
|
|
13
|
-
return {
|
|
14
|
-
getOrCreateQueue: k => _effectApp.Effect.gen(function* () {
|
|
15
|
-
const q = store.get(k);
|
|
16
|
-
if (q) return q;
|
|
17
|
-
const newQ = yield* Q.unbounded();
|
|
18
|
-
store.set(k, newQ);
|
|
19
|
-
return newQ;
|
|
20
|
-
})
|
|
21
|
-
};
|
|
22
|
-
});
|
|
23
|
-
class MemQueue extends _effectApp.Context.TagMakeId("effect-app/MemQueue", make)() {
|
|
24
|
-
static Live = this.toLayer();
|
|
25
|
-
}
|
|
26
|
-
exports.MemQueue = MemQueue;
|
|
27
|
-
//# sourceMappingURL=memQueue.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memQueue.cjs","names":["_effectApp","require","Q","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","make","Effect","gen","store","sync","Map","getOrCreateQueue","k","q","newQ","unbounded","MemQueue","Context","TagMakeId","Live","toLayer"],"sources":["../../src/adapters/memQueue.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,CAAA,GAAAC,uBAAA,CAAAF,OAAA;AAAiC,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAF,wBAAAE,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAEjC,MAAMW,IAAI,GAAGC,iBAAM,CAChBC,GAAG,CAAC,aAAS;EACZ,MAAMC,KAAK,GAAG,OAAOF,iBAAM,CAACG,IAAI,CAAC,MAAM,IAAIC,GAAG,EAA+B,CAAC;EAE9E,OAAO;IACLC,gBAAgB,EAAGC,CAAS,IAC1BN,iBAAM,CAACC,GAAG,CAAC,aAAS;MAClB,MAAMM,CAAC,GAAGL,KAAK,CAACf,GAAG,CAACmB,CAAC,CAAC;MACtB,IAAIC,CAAC,EAAE,OAAOA,CAAC;MACf,MAAMC,IAAI,GAAG,OAAO/B,CAAC,CAACgC,SAAS,EAAU;MACzCP,KAAK,CAACJ,GAAG,CAACQ,CAAC,EAAEE,IAAI,CAAC;MAClB,OAAOA,IAAI;IACb,CAAC;GACJ;AACH,CAAC,CAAC;AAEE,MAAOE,QAAS,SAAQC,kBAAO,CAACC,SAAS,CAAC,qBAAqB,EAAEb,IAAI,CAAC,EAAY;EACtF,OAAgBc,IAAI,GAAG,IAAI,CAACC,OAAO,EAAE","ignoreList":[]}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.MongoClientLive = exports.MongoClient = void 0;
|
|
7
|
-
var _effectApp = require("effect-app");
|
|
8
|
-
var _mongodb = require("mongodb");
|
|
9
|
-
// TODO: we should probably share a single client...
|
|
10
|
-
const withClient = url => _effectApp.Effect.acquireRelease(_effectApp.Effect.promise(() => {
|
|
11
|
-
const client = new _mongodb.MongoClient(url);
|
|
12
|
-
return client.connect();
|
|
13
|
-
}), cl => _effectApp.Effect.promise(() => cl.close()).pipe(_effectApp.Effect.uninterruptible, _effectApp.Effect.orDie));
|
|
14
|
-
const makeMongoClient = (url, dbName) => _effectApp.Effect.map(withClient(url), x => ({
|
|
15
|
-
db: x.db(dbName)
|
|
16
|
-
}));
|
|
17
|
-
const MongoClient = exports.MongoClient = _effectApp.Context.GenericTag("@services/MongoClient");
|
|
18
|
-
const MongoClientLive = (mongoUrl, dbName) => _effectApp.Layer.scoped(MongoClient, makeMongoClient(mongoUrl, dbName));
|
|
19
|
-
exports.MongoClientLive = MongoClientLive;
|
|
20
|
-
//# sourceMappingURL=mongo-client.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mongo-client.cjs","names":["_effectApp","require","_mongodb","withClient","url","Effect","acquireRelease","promise","client","MongoClient_","connect","cl","close","pipe","uninterruptible","orDie","makeMongoClient","dbName","map","x","db","MongoClient","exports","Context","GenericTag","MongoClientLive","mongoUrl","Layer","scoped"],"sources":["../../src/adapters/mongo-client.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAEA;AAEA,MAAME,UAAU,GAAIC,GAAW,IAC7BC,iBAAM,CAACC,cAAc,CACnBD,iBAAM,CACHE,OAAO,CAAC,MAAK;EACZ,MAAMC,MAAM,GAAG,IAAIC,oBAAY,CAACL,GAAG,CAAC;EACpC,OAAOI,MAAM,CAACE,OAAO,EAAE;AACzB,CAAC,CAAC,EACHC,EAAE,IAAKN,iBAAM,CAACE,OAAO,CAAC,MAAMI,EAAE,CAACC,KAAK,EAAE,CAAC,CAACC,IAAI,CAACR,iBAAM,CAACS,eAAe,EAAET,iBAAM,CAACU,KAAK,CAAC,CACpF;AAEH,MAAMC,eAAe,GAAGA,CAACZ,GAAW,EAAEa,MAAe,KAAKZ,iBAAM,CAACa,GAAG,CAACf,UAAU,CAACC,GAAG,CAAC,EAAGe,CAAC,KAAM;EAAEC,EAAE,EAAED,CAAC,CAACC,EAAE,CAACH,MAAM;AAAC,CAAE,CAAC,CAAC;AAI7G,MAAMI,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAGE,kBAAO,CAACC,UAAU,CAAc,uBAAuB,CAAC;AAE5E,MAAMC,eAAe,GAAGA,CAACC,QAAgB,EAAET,MAAe,KAC/DU,gBAAK,CAACC,MAAM,CAACP,WAAW,EAAEL,eAAe,CAACU,QAAQ,EAAET,MAAM,CAAC,CAAC;AAAAK,OAAA,CAAAG,eAAA,GAAAA,eAAA","ignoreList":[]}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.makeRedisClient = exports.RedisClientLayer = exports.RedisClient = exports.ConnectionException = void 0;
|
|
7
|
-
var _effectApp = require("effect-app");
|
|
8
|
-
var _redlock = _interopRequireDefault(require("redlock"));
|
|
9
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
-
class ConnectionException extends _effectApp.Data.TaggedError("ConnectionException") {
|
|
11
|
-
constructor(cause) {
|
|
12
|
-
super({
|
|
13
|
-
message: "A connection error ocurred",
|
|
14
|
-
cause
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
exports.ConnectionException = ConnectionException;
|
|
19
|
-
const makeRedisClient = makeClient => _effectApp.Effect.acquireRelease(_effectApp.Effect.sync(() => {
|
|
20
|
-
const client = createClient(makeClient);
|
|
21
|
-
const lock = new _redlock.default([client]);
|
|
22
|
-
function get(key) {
|
|
23
|
-
return _effectApp.Effect.async(res => {
|
|
24
|
-
client.get(key, (err, v) => err ? res(new ConnectionException(err)) : res(_effectApp.Effect.sync(() => _effectApp.Option.fromNullable(v))));
|
|
25
|
-
}).pipe(_effectApp.Effect.uninterruptible);
|
|
26
|
-
}
|
|
27
|
-
function set(key, val) {
|
|
28
|
-
return _effectApp.Effect.async(res => {
|
|
29
|
-
client.set(key, val, err => err ? res(new ConnectionException(err)) : res(_effectApp.Effect.sync(() => void 0)));
|
|
30
|
-
}).pipe(_effectApp.Effect.uninterruptible);
|
|
31
|
-
}
|
|
32
|
-
function hset(key, field, value) {
|
|
33
|
-
return _effectApp.Effect.async(res => {
|
|
34
|
-
client.hset(key, field, value, err => err ? res(new ConnectionException(err)) : res(_effectApp.Effect.sync(() => void 0)));
|
|
35
|
-
}).pipe(_effectApp.Effect.uninterruptible);
|
|
36
|
-
}
|
|
37
|
-
function hget(key, field) {
|
|
38
|
-
return _effectApp.Effect.async(res => {
|
|
39
|
-
client.hget(key, field, (err, v) => err ? res(new ConnectionException(err)) : res(_effectApp.Effect.sync(() => _effectApp.Option.fromNullable(v))));
|
|
40
|
-
}).pipe(_effectApp.Effect.uninterruptible);
|
|
41
|
-
}
|
|
42
|
-
function hmgetAll(key) {
|
|
43
|
-
return _effectApp.Effect.async(res => {
|
|
44
|
-
client.hgetall(key, (err, v) => err ? res(new ConnectionException(err)) : res(_effectApp.Effect.sync(() => _effectApp.Option.fromNullable(v))));
|
|
45
|
-
}).pipe(_effectApp.Effect.uninterruptible);
|
|
46
|
-
}
|
|
47
|
-
return {
|
|
48
|
-
client,
|
|
49
|
-
lock,
|
|
50
|
-
get,
|
|
51
|
-
hget,
|
|
52
|
-
hset,
|
|
53
|
-
hmgetAll,
|
|
54
|
-
set
|
|
55
|
-
};
|
|
56
|
-
}), cl => _effectApp.Effect.async(res => {
|
|
57
|
-
cl.client.quit(err => res(err ? _effectApp.Effect.fail(err) : _effectApp.Effect.void));
|
|
58
|
-
}).pipe(_effectApp.Effect.uninterruptible, _effectApp.Effect.orDie));
|
|
59
|
-
exports.makeRedisClient = makeRedisClient;
|
|
60
|
-
const RedisClient = exports.RedisClient = _effectApp.Context.GenericTag("@services/RedisClient");
|
|
61
|
-
const RedisClientLayer = storageUrl => _effectApp.Layer.scoped(RedisClient, makeRedisClient(makeRedis(storageUrl)));
|
|
62
|
-
exports.RedisClientLayer = RedisClientLayer;
|
|
63
|
-
function createClient(makeClient) {
|
|
64
|
-
const client = makeClient();
|
|
65
|
-
client.on("error", error => {
|
|
66
|
-
console.error(error);
|
|
67
|
-
});
|
|
68
|
-
return client;
|
|
69
|
-
}
|
|
70
|
-
function makeRedis(storageUrl) {
|
|
71
|
-
const url = new URL(storageUrl);
|
|
72
|
-
const hostname = url.hostname;
|
|
73
|
-
const password = url.password;
|
|
74
|
-
return () => createClient(storageUrl === "redis://" ? {
|
|
75
|
-
host: hostname,
|
|
76
|
-
port: 6380,
|
|
77
|
-
auth_pass: password,
|
|
78
|
-
tls: {
|
|
79
|
-
servername: hostname
|
|
80
|
-
}
|
|
81
|
-
} : storageUrl);
|
|
82
|
-
}
|
|
83
|
-
//# sourceMappingURL=redis-client.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"redis-client.cjs","names":["_effectApp","require","_redlock","_interopRequireDefault","e","__esModule","default","ConnectionException","Data","TaggedError","constructor","cause","message","exports","makeRedisClient","makeClient","Effect","acquireRelease","sync","client","createClient","lock","Redlock","get","key","async","res","err","v","Option","fromNullable","pipe","uninterruptible","set","val","hset","field","value","hget","hmgetAll","hgetall","cl","quit","fail","void","orDie","RedisClient","Context","GenericTag","RedisClientLayer","storageUrl","Layer","scoped","makeRedis","on","error","console","url","URL","hostname","password","host","port","auth_pass","tls","servername"],"sources":["../../src/adapters/redis-client.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/_cjs/api/codec.cjs
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.makeCodec = makeCodec;
|
|
7
|
-
var S = _interopRequireWildcard(require("effect-app/Schema"));
|
|
8
|
-
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); }
|
|
9
|
-
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 && {}.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; }
|
|
10
|
-
function makeCodec(self) {
|
|
11
|
-
return [S.decodeSync(self), S.encodeSync(self)];
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=codec.cjs.map
|
package/_cjs/api/codec.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codec.cjs","names":["S","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","makeCodec","self","decodeSync","encodeSync"],"sources":["../../src/api/codec.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,CAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAsC,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,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAEhC,SAAUW,SAASA,CAIvBC,IAAwB;EACxB,OAAO,CAACxB,CAAC,CAACyB,UAAU,CAACD,IAAI,CAAC,EAAExB,CAAC,CAAC0B,UAAU,CAACF,IAAI,CAAC,CAAU;AAC1D","ignoreList":[]}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.RequestContextMiddleware = void 0;
|
|
7
|
-
var _effectApp = require("effect-app");
|
|
8
|
-
var _http = require("effect-app/http");
|
|
9
|
-
var _Schema = require("effect-app/Schema");
|
|
10
|
-
var _RequestContext = require("../../RequestContext.cjs");
|
|
11
|
-
var _setupRequest = require("../setupRequest.cjs");
|
|
12
|
-
const RequestContextMiddleware = (defaultLocale = "en") => _http.HttpMiddleware.make(app => _effectApp.Effect.gen(function* () {
|
|
13
|
-
const req = yield* _http.HttpServerRequest.HttpServerRequest;
|
|
14
|
-
const currentSpan = yield* _effectApp.Effect.currentSpan.pipe(_effectApp.Effect.orDie);
|
|
15
|
-
const supported = _RequestContext.Locale.literals;
|
|
16
|
-
const desiredLocale = req.headers["x-locale"];
|
|
17
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-explicit-any
|
|
18
|
-
const locale = desiredLocale && supported.includes(desiredLocale) ? desiredLocale : defaultLocale;
|
|
19
|
-
const ns = req.headers["x-store-id"];
|
|
20
|
-
const namespace = (0, _Schema.NonEmptyString255)(ns && (Array.isArray(ns) ? ns[0] : ns) || "primary");
|
|
21
|
-
const deviceId = req.headers["x-fe-device-id"];
|
|
22
|
-
const requestContext = new _RequestContext.RequestContext({
|
|
23
|
-
span: {
|
|
24
|
-
traceId: currentSpan.traceId,
|
|
25
|
-
spanId: currentSpan.spanId,
|
|
26
|
-
sampled: currentSpan.sampled
|
|
27
|
-
},
|
|
28
|
-
name: (0, _Schema.NonEmptyString255)(req.originalUrl),
|
|
29
|
-
// set more detailed elsewhere
|
|
30
|
-
locale,
|
|
31
|
-
namespace,
|
|
32
|
-
sourceId: deviceId ? (0, _Schema.NonEmptyString255)(deviceId) : undefined
|
|
33
|
-
});
|
|
34
|
-
const res = yield* (0, _setupRequest.setupRequestContext)(app, requestContext);
|
|
35
|
-
// TODO: how to set also on errors?
|
|
36
|
-
return _http.HttpServerResponse.setHeaders(res, {
|
|
37
|
-
"Content-Language": requestContext.locale
|
|
38
|
-
});
|
|
39
|
-
}));
|
|
40
|
-
exports.RequestContextMiddleware = RequestContextMiddleware;
|
|
41
|
-
//# sourceMappingURL=RequestContextMiddleware.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RequestContextMiddleware.cjs","names":["_effectApp","require","_http","_Schema","_RequestContext","_setupRequest","RequestContextMiddleware","defaultLocale","HttpMiddleware","make","app","Effect","gen","req","HttpServerRequest","currentSpan","pipe","orDie","supported","Locale","literals","desiredLocale","headers","locale","includes","ns","namespace","NonEmptyString255","Array","isArray","deviceId","requestContext","RequestContext","span","traceId","spanId","sampled","name","originalUrl","sourceId","undefined","res","setupRequestContext","HttpServerResponse","setHeaders","exports"],"sources":["../../../src/api/internal/RequestContextMiddleware.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AAEO,MAAMK,wBAAwB,GAAGA,CAACC,aAAA,GAAwB,IAAI,KACnEC,oBAAc,CAACC,IAAI,CAAEC,GAAG,IACtBC,iBAAM,CAACC,GAAG,CAAC,aAAS;EAClB,MAAMC,GAAG,GAAG,OAAOC,uBAAiB,CAACA,iBAAiB;EAEtD,MAAMC,WAAW,GAAG,OAAOJ,iBAAM,CAACI,WAAW,CAACC,IAAI,CAACL,iBAAM,CAACM,KAAK,CAAC;EAChE,MAAMC,SAAS,GAAGC,sBAAM,CAACC,QAAQ;EACjC,MAAMC,aAAa,GAAGR,GAAG,CAACS,OAAO,CAAC,UAAU,CAAC;EAC7C;EACA,MAAMC,MAAM,GAAGF,aAAa,IAAIH,SAAS,CAACM,QAAQ,CAACH,aAAoB,CAAC,GACnEA,aAA0C,GAC3Cd,aAAa;EAEjB,MAAMkB,EAAE,GAAGZ,GAAG,CAACS,OAAO,CAAC,YAAY,CAAC;EACpC,MAAMI,SAAS,GAAG,IAAAC,yBAAiB,EAAEF,EAAE,KAAKG,KAAK,CAACC,OAAO,CAACJ,EAAE,CAAC,GAAGA,EAAE,CAAC,CAAC,CAAC,GAAGA,EAAE,CAAC,IAAK,SAAS,CAAC;EAC1F,MAAMK,QAAQ,GAAGjB,GAAG,CAACS,OAAO,CAAC,gBAAgB,CAAC;EAE9C,MAAMS,cAAc,GAAG,IAAIC,8BAAc,CAAC;IACxCC,IAAI,EAAE;MACJC,OAAO,EAAEnB,WAAW,CAACmB,OAAO;MAC5BC,MAAM,EAAEpB,WAAW,CAACoB,MAAM;MAC1BC,OAAO,EAAErB,WAAW,CAACqB;KACtB;IACDC,IAAI,EAAE,IAAAV,yBAAiB,EAACd,GAAG,CAACyB,WAAW,CAAC;IAAE;IAC1Cf,MAAM;IACNG,SAAS;IACTa,QAAQ,EAAET,QAAQ,GAAG,IAAAH,yBAAiB,EAACG,QAAQ,CAAC,GAAGU;GACpD,CAAC;EACF,MAAMC,GAAG,GAAG,OAAO,IAAAC,iCAAmB,EAAChC,GAAG,EAAEqB,cAAc,CAAC;EAE3D;EACA,OAAOY,wBAAkB,CAACC,UAAU,CAACH,GAAG,EAAE;IACxC,kBAAkB,EAAEV,cAAc,CAACR;GACpC,CAAC;AACJ,CAAC,CAAC,CACH;AAAAsB,OAAA,CAAAvC,wBAAA,GAAAA,wBAAA","ignoreList":[]}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.checkJwt = exports.checkJWTI = exports.JWTError = void 0;
|
|
7
|
-
var _effectApp = require("effect-app");
|
|
8
|
-
var _http = require("effect-app/http");
|
|
9
|
-
var _expressOauth2JwtBearer = require("express-oauth2-jwt-bearer");
|
|
10
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
11
|
-
/* eslint-disable unused-imports/no-unused-vars */
|
|
12
|
-
|
|
13
|
-
const checkJWTI = config => {
|
|
14
|
-
const mw = (0, _expressOauth2JwtBearer.auth)(config);
|
|
15
|
-
return _effectApp.Effect.gen(function* () {
|
|
16
|
-
const req = yield* _http.HttpServerRequest.HttpServerRequest;
|
|
17
|
-
return yield* _effectApp.Effect.async(cb => {
|
|
18
|
-
const next = err => {
|
|
19
|
-
if (!err) return cb(_effectApp.Effect.void);
|
|
20
|
-
if (err instanceof _expressOauth2JwtBearer.InsufficientScopeError || err instanceof _expressOauth2JwtBearer.InvalidRequestError || err instanceof _expressOauth2JwtBearer.InvalidTokenError || err instanceof _expressOauth2JwtBearer.UnauthorizedError) {
|
|
21
|
-
return cb(_effectApp.Effect.fail(err));
|
|
22
|
-
}
|
|
23
|
-
return _effectApp.Effect.die(err);
|
|
24
|
-
};
|
|
25
|
-
const r = {
|
|
26
|
-
headers: req.headers,
|
|
27
|
-
query: {},
|
|
28
|
-
body: {},
|
|
29
|
-
is: () => false
|
|
30
|
-
}; // is("urlencoded")
|
|
31
|
-
try {
|
|
32
|
-
mw(r, {}, next);
|
|
33
|
-
} catch (e) {
|
|
34
|
-
return cb(_effectApp.Effect.die(e));
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
};
|
|
39
|
-
exports.checkJWTI = checkJWTI;
|
|
40
|
-
const checkJwt = config => {
|
|
41
|
-
const check = checkJWTI(config);
|
|
42
|
-
return _http.HttpMiddleware.make(app => _effectApp.Effect.gen(function* () {
|
|
43
|
-
const response = yield* check.pipe(_effectApp.Effect.catchAll(e => _effectApp.Effect.succeed(_http.HttpServerResponse.unsafeJson({
|
|
44
|
-
message: e.message
|
|
45
|
-
}, {
|
|
46
|
-
status: e.status,
|
|
47
|
-
headers: _http.HttpHeaders.fromInput(e.headers)
|
|
48
|
-
}))));
|
|
49
|
-
if (response) {
|
|
50
|
-
return response;
|
|
51
|
-
}
|
|
52
|
-
return yield* app;
|
|
53
|
-
}));
|
|
54
|
-
};
|
|
55
|
-
exports.checkJwt = checkJwt;
|
|
56
|
-
class JWTError extends _effectApp.Data.TaggedClass("JWTError") {}
|
|
57
|
-
exports.JWTError = JWTError;
|
|
58
|
-
//# sourceMappingURL=auth.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.cjs","names":["_effectApp","require","_http","_expressOauth2JwtBearer","checkJWTI","config","mw","auth","Effect","gen","req","HttpServerRequest","async","cb","next","err","void","InsufficientScopeError","InvalidRequestError","InvalidTokenError","UnauthorizedError","fail","die","r","headers","query","body","is","e","exports","checkJwt","check","HttpMiddleware","make","app","response","pipe","catchAll","succeed","HttpServerResponse","unsafeJson","message","status","HttpHeaders","fromInput","JWTError","Data","TaggedClass"],"sources":["../../../src/api/internal/auth.ts"],"sourcesContent":[null],"mappings":";;;;;;AAEA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,uBAAA,GAAAF,OAAA;AAJA;AACA;;AAgBO,MAAMG,SAAS,GAAIC,MAAc,IAAI;EAC1C,MAAMC,EAAE,GAAG,IAAAC,4BAAI,EAACF,MAAM,CAAC;EACvB,OAAOG,iBAAM,CAACC,GAAG,CAAC,aAAS;IACzB,MAAMC,GAAG,GAAG,OAAOC,uBAAiB,CAACA,iBAAiB;IAEtD,OAAO,OAAOH,iBAAM,CAACI,KAAK,CAIvBC,EAAE,IAAI;MACL,MAAMC,IAAI,GAAIC,GAAa,IAAI;QAC7B,IAAI,CAACA,GAAG,EAAE,OAAOF,EAAE,CAACL,iBAAM,CAACQ,IAAI,CAAC;QAChC,IACED,GAAG,YAAYE,8CAAsB,IAClCF,GAAG,YAAYG,2CAAmB,IAClCH,GAAG,YAAYI,yCAAiB,IAChCJ,GAAG,YAAYK,yCAAiB,EACnC;UACA,OAAOP,EAAE,CAACL,iBAAM,CAACa,IAAI,CAACN,GAAG,CAAC,CAAC;QAC7B;QACA,OAAOP,iBAAM,CAACc,GAAG,CAACP,GAAG,CAAC;MACxB,CAAC;MACD,MAAMQ,CAAC,GAAG;QAAEC,OAAO,EAAEd,GAAG,CAACc,OAAO;QAAEC,KAAK,EAAE,EAAE;QAAEC,IAAI,EAAE,EAAE;QAAEC,EAAE,EAAEA,CAAA,KAAM;MAAK,CAAE,EAAC;MACzE,IAAI;QACFrB,EAAE,CAACiB,CAAQ,EAAE,EAAS,EAAET,IAAI,CAAC;MAC/B,CAAC,CAAC,OAAOc,CAAC,EAAE;QACV,OAAOf,EAAE,CAACL,iBAAM,CAACc,GAAG,CAACM,CAAC,CAAC,CAAC;MAC1B;IACF,CAAC,CACF;EACH,CAAC,CAAC;AACJ,CAAC;AAAAC,OAAA,CAAAzB,SAAA,GAAAA,SAAA;AAEM,MAAM0B,QAAQ,GAAIzB,MAAc,IAAI;EACzC,MAAM0B,KAAK,GAAG3B,SAAS,CAACC,MAAM,CAAC;EAC/B,OAAO2B,oBAAc,CAACC,IAAI,CAAEC,GAAG,IAC7B1B,iBAAM,CAACC,GAAG,CAAC,aAAS;IAClB,MAAM0B,QAAQ,GAAG,OAAOJ,KAAK,CAACK,IAAI,CAAC5B,iBAAM,CAAC6B,QAAQ,CAAET,CAAC,IACnDpB,iBAAM,CAAC8B,OAAO,CACZC,wBAAkB,CAACC,UAAU,CAAC;MAAEC,OAAO,EAAEb,CAAC,CAACa;IAAO,CAAE,EAAE;MACpDC,MAAM,EAAEd,CAAC,CAACc,MAAM;MAChBlB,OAAO,EAAEmB,iBAAW,CAACC,SAAS,CAAChB,CAAC,CAACJ,OAAO;KACzC,CAAC,CACH,CACF,CAAC;IACF,IAAIW,QAAQ,EAAE;MACZ,OAAOA,QAAQ;IACjB;IACA,OAAO,OAAOD,GAAG;EACnB,CAAC,CAAC,CACH;AACH,CAAC;AAAAL,OAAA,CAAAC,QAAA,GAAAA,QAAA;AAEK,MAAOe,QAAS,SAAQC,eAAI,CAACC,WAAW,CAAC,UAAU,CAMvD;AAAGlB,OAAA,CAAAgB,QAAA,GAAAA,QAAA","ignoreList":[]}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.makeSSE = void 0;
|
|
7
|
-
var _effectApp = require("effect-app");
|
|
8
|
-
var _http = require("effect-app/http");
|
|
9
|
-
var _errorReporter = require("../../errorReporter.cjs");
|
|
10
|
-
var _logger = require("../../logger.cjs");
|
|
11
|
-
var _setupRequest = require("../setupRequest.cjs");
|
|
12
|
-
// Tell the client to retry every 10 seconds if connectivity is lost
|
|
13
|
-
const setRetry = _effectApp.Stream.succeed("retry: 10000");
|
|
14
|
-
const keepAlive = _effectApp.Stream.repeat(_effectApp.Effect.succeed(":keep-alive"), _effectApp.Schedule.fixed(_effectApp.Duration.seconds(15)));
|
|
15
|
-
const makeSSE = schema => events => _effectApp.Effect.gen(function* () {
|
|
16
|
-
yield* _logger.InfraLogger.logInfo("$ start listening to events");
|
|
17
|
-
const enc = new TextEncoder();
|
|
18
|
-
const encode = _effectApp.S.encode(schema);
|
|
19
|
-
const eventStream = _effectApp.Stream.flatMap(events, _ => encode(_.evt).pipe(_effectApp.Effect.andThen(evt => `id: ${_.evt.id}\ndata: ${JSON.stringify(evt)}`)));
|
|
20
|
-
const stream = (0, _effectApp.pipe)(setRetry, _effectApp.Stream.merge(keepAlive), _effectApp.Stream.merge(eventStream), _effectApp.Stream.map(_ => enc.encode(_ + "\n\n")));
|
|
21
|
-
const ctx = yield* _effectApp.Effect.context();
|
|
22
|
-
const res = _http.HttpServerResponse.stream(stream.pipe(_effectApp.Stream.tapErrorCause((0, _errorReporter.reportError)("Request")), _effectApp.Stream.provideContext(ctx)), {
|
|
23
|
-
contentType: "text/event-stream",
|
|
24
|
-
headers: _http.HttpHeaders.fromInput({
|
|
25
|
-
"content-type": "text/event-stream",
|
|
26
|
-
"cache-control": "no-cache",
|
|
27
|
-
"x-accel-buffering": "no",
|
|
28
|
-
"connection": "keep-alive" // if (req.httpVersion !== "2.0")
|
|
29
|
-
})
|
|
30
|
-
});
|
|
31
|
-
return res;
|
|
32
|
-
}).pipe(_effectApp.Effect.tapErrorCause((0, _errorReporter.reportError)("Request")), (0, _setupRequest.setupRequestContextFromCurrent)("events"));
|
|
33
|
-
exports.makeSSE = makeSSE;
|
|
34
|
-
//# sourceMappingURL=events.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"events.cjs","names":["_effectApp","require","_http","_errorReporter","_logger","_setupRequest","setRetry","Stream","succeed","keepAlive","repeat","Effect","Schedule","fixed","Duration","seconds","makeSSE","schema","events","gen","InfraLogger","logInfo","enc","TextEncoder","encode","S","eventStream","flatMap","_","evt","pipe","andThen","id","JSON","stringify","stream","merge","map","ctx","context","res","HttpServerResponse","tapErrorCause","reportError","provideContext","contentType","headers","HttpHeaders","fromInput","setupRequestContextFromCurrent","exports"],"sources":["../../../src/api/internal/events.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AAEA;AACA,MAAMK,QAAQ,GAAGC,iBAAM,CAACC,OAAO,CAAC,cAAc,CAAC;AAC/C,MAAMC,SAAS,GAAGF,iBAAM,CAACG,MAAM,CAACC,iBAAM,CAACH,OAAO,CAAC,aAAa,CAAC,EAAEI,mBAAQ,CAACC,KAAK,CAACC,mBAAQ,CAACC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAE7F,MAAMC,OAAO,GAClBC,MAA2B,IAEtBC,MAA0D,IAC/DP,iBAAM,CACHQ,GAAG,CAAC,aAAS;EACZ,OAAOC,mBAAW,CAACC,OAAO,CAAC,6BAA6B,CAAC;EAEzD,MAAMC,GAAG,GAAG,IAAIC,WAAW,EAAE;EAE7B,MAAMC,MAAM,GAAGC,YAAC,CAACD,MAAM,CAACP,MAAM,CAAC;EAE/B,MAAMS,WAAW,GAAGnB,iBAAM,CAACoB,OAAO,CAChCT,MAAM,EACLU,CAAC,IACAJ,MAAM,CAACI,CAAC,CAACC,GAAG,CAAC,CACVC,IAAI,CAACnB,iBAAM,CAACoB,OAAO,CAAEF,GAAG,IAAK,OAAOD,CAAC,CAACC,GAAG,CAACG,EAAE,WAAWC,IAAI,CAACC,SAAS,CAACL,GAAG,CAAC,EAAE,CAAC,CAAC,CACpF;EAED,MAAMM,MAAM,GAAG,IAAAL,eAAI,EACjBxB,QAAQ,EACRC,iBAAM,CAAC6B,KAAK,CAAC3B,SAAS,CAAC,EACvBF,iBAAM,CAAC6B,KAAK,CAACV,WAAW,CAAC,EACzBnB,iBAAM,CAAC8B,GAAG,CAAET,CAAC,IAAKN,GAAG,CAACE,MAAM,CAACI,CAAC,GAAG,MAAM,CAAC,CAAC,CAC1C;EAED,MAAMU,GAAG,GAAG,OAAO3B,iBAAM,CAAC4B,OAAO,EAAU;EAC3C,MAAMC,GAAG,GAAGC,wBAAkB,CAACN,MAAM,CACnCA,MAAM,CACHL,IAAI,CACHvB,iBAAM,CAACmC,aAAa,CAAC,IAAAC,0BAAW,EAAC,SAAS,CAAC,CAAC,EAC5CpC,iBAAM,CAACqC,cAAc,CAACN,GAAG,CAAC,CAC3B,EACH;IACEO,WAAW,EAAE,mBAAmB;IAChCC,OAAO,EAAEC,iBAAW,CAACC,SAAS,CAAC;MAC7B,cAAc,EAAE,mBAAmB;MACnC,eAAe,EAAE,UAAU;MAC3B,mBAAmB,EAAE,IAAI;MACzB,YAAY,EAAE,YAAY,CAAC;KAC5B;GACF,CACF;EACD,OAAOR,GAAG;AACZ,CAAC,CAAC,CACDV,IAAI,CAACnB,iBAAM,CAAC+B,aAAa,CAAC,IAAAC,0BAAW,EAAC,SAAS,CAAC,CAAC,EAAE,IAAAM,4CAA8B,EAAC,QAAQ,CAAC,CAAC;AAAAC,OAAA,CAAAlC,OAAA,GAAAA,OAAA","ignoreList":[]}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.serverHealth = serverHealth;
|
|
7
|
-
var _http = require("effect-app/http");
|
|
8
|
-
function serverHealth(version) {
|
|
9
|
-
return _http.HttpServerResponse.unsafeJson({
|
|
10
|
-
version
|
|
11
|
-
}).pipe(_http.HttpMiddleware.withLoggerDisabled);
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=health.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"health.cjs","names":["_http","require","serverHealth","version","HttpServerResponse","unsafeJson","pipe","HttpMiddleware","withLoggerDisabled"],"sources":["../../../src/api/internal/health.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEM,SAAUC,YAAYA,CAACC,OAAe;EAC1C,OAAOC,wBAAkB,CAACC,UAAU,CAAC;IAAEF;EAAO,CAAE,CAAC,CAACG,IAAI,CAACC,oBAAc,CAACC,kBAAkB,CAAC;AAC3F","ignoreList":[]}
|
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.uuidLogAnnotation = exports.toServerResponse = exports.errorLog = exports.endpointCallsMetric = exports.cors = exports.basicAuth = exports.accessLog = void 0;
|
|
7
|
-
var crypto = _interopRequireWildcard(require("crypto"));
|
|
8
|
-
var _errors = require("@effect-app/infra/errors");
|
|
9
|
-
var Middleware = _interopRequireWildcard(require("@effect/platform/HttpMiddleware"));
|
|
10
|
-
var HttpServerRequest = _interopRequireWildcard(require("@effect/platform/HttpServerRequest"));
|
|
11
|
-
var ServerResponse = _interopRequireWildcard(require("@effect/platform/HttpServerResponse"));
|
|
12
|
-
var _effectApp = require("effect-app");
|
|
13
|
-
var _http = require("effect-app/http");
|
|
14
|
-
var _utils = require("effect-app/utils");
|
|
15
|
-
var Either = _interopRequireWildcard(require("effect/Either"));
|
|
16
|
-
var FiberRef = _interopRequireWildcard(require("effect/FiberRef"));
|
|
17
|
-
var _Function = require("effect/Function");
|
|
18
|
-
var HashMap = _interopRequireWildcard(require("effect/HashMap"));
|
|
19
|
-
var Metric = _interopRequireWildcard(require("effect/Metric"));
|
|
20
|
-
var _logger = require("../../logger.cjs");
|
|
21
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
22
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
23
|
-
/**
|
|
24
|
-
* Mechanism for extendning behaviour of all handlers on the server.
|
|
25
|
-
*
|
|
26
|
-
* @since 1.0.0
|
|
27
|
-
*/
|
|
28
|
-
|
|
29
|
-
const accessLog = (level = "Info") => Middleware.make(app => (0, _Function.pipe)(HttpServerRequest.HttpServerRequest, _effectApp.Effect.flatMap(request => _effectApp.Effect[`log${level}`](`${request.method} ${request.url}`)), _effectApp.Effect.flatMap(() => app)));
|
|
30
|
-
exports.accessLog = accessLog;
|
|
31
|
-
const uuidLogAnnotation = (logAnnotationKey = "requestId") => Middleware.make(app => (0, _Function.pipe)(_effectApp.Effect.sync(() => crypto.randomUUID()), _effectApp.Effect.flatMap(uuid => FiberRef.update(FiberRef.currentLogAnnotations, HashMap.set(logAnnotationKey, uuid))), _effectApp.Effect.flatMap(() => app)));
|
|
32
|
-
exports.uuidLogAnnotation = uuidLogAnnotation;
|
|
33
|
-
const endpointCallsMetric = () => {
|
|
34
|
-
const endpointCalledCounter = Metric.counter("server.endpoint_calls");
|
|
35
|
-
return Middleware.make(app => _effectApp.Effect.gen(function* (_) {
|
|
36
|
-
const request = yield* _(HttpServerRequest.HttpServerRequest);
|
|
37
|
-
yield* _(Metric.increment(endpointCalledCounter), _effectApp.Effect.tagMetrics("path", request.url));
|
|
38
|
-
return yield* _(app);
|
|
39
|
-
}));
|
|
40
|
-
};
|
|
41
|
-
exports.endpointCallsMetric = endpointCallsMetric;
|
|
42
|
-
const errorLog = exports.errorLog = Middleware.make(app => _effectApp.Effect.gen(function* (_) {
|
|
43
|
-
const request = yield* _(HttpServerRequest.HttpServerRequest);
|
|
44
|
-
const response = yield* _(app);
|
|
45
|
-
if (response.status >= 400 && response.status < 500) {
|
|
46
|
-
yield* _(_logger.InfraLogger.logWarning(`${request.method.toUpperCase()} ${request.url} client error ${response.status}`));
|
|
47
|
-
} else if (response.status >= 500) {
|
|
48
|
-
yield* _(_logger.InfraLogger.logError(`${request.method.toUpperCase()} ${request.url} server error ${response.status}`));
|
|
49
|
-
}
|
|
50
|
-
return response;
|
|
51
|
-
}));
|
|
52
|
-
const toServerResponse = err => _http.HttpServerResponse.empty().pipe(_http.HttpServerResponse.setStatus(401), _http.HttpServerResponse.setBody(_http.HttpBody.unsafeJson({
|
|
53
|
-
message: err.message
|
|
54
|
-
})));
|
|
55
|
-
exports.toServerResponse = toServerResponse;
|
|
56
|
-
const basicAuth = (checkCredentials, options) => Middleware.make(app => _effectApp.Effect.gen(function* (_) {
|
|
57
|
-
const headerName = options?.headerName ?? "Authorization";
|
|
58
|
-
const skippedPaths = options?.skipPaths ?? [];
|
|
59
|
-
const request = yield* _(HttpServerRequest.HttpServerRequest);
|
|
60
|
-
if (skippedPaths.includes(request.url)) {
|
|
61
|
-
return yield* _(app);
|
|
62
|
-
}
|
|
63
|
-
const authHeader = request.headers[headerName.toLowerCase()];
|
|
64
|
-
if (authHeader === undefined) {
|
|
65
|
-
return toServerResponse(new _errors.NotLoggedInError(`Expected header ${headerName}`));
|
|
66
|
-
}
|
|
67
|
-
const authorizationParts = authHeader.split(" ");
|
|
68
|
-
if (authorizationParts.length !== 2) {
|
|
69
|
-
return toServerResponse(new _errors.NotLoggedInError("Incorrect auhorization scheme. Expected \"Basic <credentials>\""));
|
|
70
|
-
}
|
|
71
|
-
if (authorizationParts[0] !== "Basic") {
|
|
72
|
-
return toServerResponse(new _errors.NotLoggedInError(`Incorrect auhorization type. Expected "Basic", got "${authorizationParts[0]}"`));
|
|
73
|
-
}
|
|
74
|
-
const credentialsBuffer = Buffer.from(authorizationParts[1], "base64");
|
|
75
|
-
const credentialsText = credentialsBuffer.toString("utf-8");
|
|
76
|
-
const credentialsParts = credentialsText.split(":");
|
|
77
|
-
if (credentialsParts.length !== 2) {
|
|
78
|
-
return toServerResponse(new _errors.NotLoggedInError("Incorrect basic auth credentials format. Expected base64 encoded \"<user>:<pass>\"."));
|
|
79
|
-
}
|
|
80
|
-
const check = yield* _(checkCredentials({
|
|
81
|
-
user: credentialsParts[0],
|
|
82
|
-
password: credentialsParts[1]
|
|
83
|
-
}), _effectApp.Effect.either);
|
|
84
|
-
if (Either.isLeft(check)) {
|
|
85
|
-
return toServerResponse(check.left);
|
|
86
|
-
}
|
|
87
|
-
return yield* _(app);
|
|
88
|
-
}));
|
|
89
|
-
exports.basicAuth = basicAuth;
|
|
90
|
-
const cors = _options => {
|
|
91
|
-
const DEFAULTS = {
|
|
92
|
-
allowedOrigins: ["*"],
|
|
93
|
-
allowedMethods: ["GET", "HEAD", "PUT", "PATCH", "POST", "DELETE"],
|
|
94
|
-
allowedHeaders: [],
|
|
95
|
-
exposedHeaders: [],
|
|
96
|
-
credentials: false
|
|
97
|
-
};
|
|
98
|
-
const options = {
|
|
99
|
-
...DEFAULTS,
|
|
100
|
-
..._options
|
|
101
|
-
};
|
|
102
|
-
const isAllowedOrigin = origin => {
|
|
103
|
-
return options.allowedOrigins.includes(origin);
|
|
104
|
-
};
|
|
105
|
-
const allowOrigin = originHeader => {
|
|
106
|
-
if (options.allowedOrigins.length === 0) {
|
|
107
|
-
return {
|
|
108
|
-
"Access-Control-Allow-Origin": "*"
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
if (options.allowedOrigins.length === 1) {
|
|
112
|
-
return {
|
|
113
|
-
"Access-Control-Allow-Origin": options.allowedOrigins[0],
|
|
114
|
-
Vary: "Origin"
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
if (isAllowedOrigin(originHeader)) {
|
|
118
|
-
return {
|
|
119
|
-
"Access-Control-Allow-Origin": originHeader,
|
|
120
|
-
Vary: "Origin"
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
return undefined;
|
|
124
|
-
};
|
|
125
|
-
const allowMethods = (() => {
|
|
126
|
-
if (options.allowedMethods.length > 0) {
|
|
127
|
-
return {
|
|
128
|
-
"Access-Control-Allow-Methods": options.allowedMethods.join(", ")
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
return undefined;
|
|
132
|
-
})();
|
|
133
|
-
const allowCredentials = (() => {
|
|
134
|
-
if (options.credentials) {
|
|
135
|
-
return {
|
|
136
|
-
"Access-Control-Allow-Credentials": "true"
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
return undefined;
|
|
140
|
-
})();
|
|
141
|
-
const allowHeaders = accessControlRequestHeaders => {
|
|
142
|
-
if (options.allowedHeaders.length === 0 && accessControlRequestHeaders) {
|
|
143
|
-
return {
|
|
144
|
-
Vary: "Access-Control-Request-Headers",
|
|
145
|
-
"Access-Control-Allow-Headers": accessControlRequestHeaders
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
if (options.allowedHeaders) {
|
|
149
|
-
return {
|
|
150
|
-
"Access-Control-Allow-Headers": options.allowedHeaders.join(",")
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
return undefined;
|
|
154
|
-
};
|
|
155
|
-
const exposeHeaders = (() => {
|
|
156
|
-
if (options.exposedHeaders.length > 0) {
|
|
157
|
-
return {
|
|
158
|
-
"Access-Control-Expose-Headers": options.exposedHeaders.join(",")
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
return undefined;
|
|
162
|
-
})();
|
|
163
|
-
const maxAge = (() => {
|
|
164
|
-
if (options.maxAge) {
|
|
165
|
-
return {
|
|
166
|
-
"Access-Control-Max-Age": options.maxAge.toString()
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
return undefined;
|
|
170
|
-
})();
|
|
171
|
-
return Middleware.make(app => _effectApp.Effect.gen(function* (_) {
|
|
172
|
-
const request = yield* _(HttpServerRequest.HttpServerRequest);
|
|
173
|
-
const origin = request.headers["origin"];
|
|
174
|
-
const accessControlRequestHeaders = request.headers["access-control-request-headers"];
|
|
175
|
-
let corsHeaders = {
|
|
176
|
-
...allowOrigin(origin ?? ""),
|
|
177
|
-
...allowCredentials,
|
|
178
|
-
...exposeHeaders
|
|
179
|
-
};
|
|
180
|
-
if (request.method === "OPTIONS") {
|
|
181
|
-
corsHeaders = {
|
|
182
|
-
...corsHeaders,
|
|
183
|
-
...allowMethods,
|
|
184
|
-
...allowHeaders(accessControlRequestHeaders),
|
|
185
|
-
...maxAge
|
|
186
|
-
};
|
|
187
|
-
return ServerResponse.empty({
|
|
188
|
-
status: 204,
|
|
189
|
-
headers: _http.HttpHeaders.fromInput((0, _utils.dropUndefined)(corsHeaders))
|
|
190
|
-
});
|
|
191
|
-
}
|
|
192
|
-
const response = yield* _(app);
|
|
193
|
-
return response.pipe(ServerResponse.setHeaders((0, _utils.dropUndefined)(corsHeaders)));
|
|
194
|
-
}));
|
|
195
|
-
};
|
|
196
|
-
exports.cors = cors;
|
|
197
|
-
//# sourceMappingURL=middlewares.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"middlewares.cjs","names":["crypto","_interopRequireWildcard","require","_errors","Middleware","HttpServerRequest","ServerResponse","_effectApp","_http","_utils","Either","FiberRef","_Function","HashMap","Metric","_logger","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","accessLog","level","make","app","pipe","Effect","flatMap","request","method","url","exports","uuidLogAnnotation","logAnnotationKey","sync","randomUUID","uuid","update","currentLogAnnotations","endpointCallsMetric","endpointCalledCounter","counter","gen","_","increment","tagMetrics","errorLog","response","status","InfraLogger","logWarning","toUpperCase","logError","toServerResponse","err","HttpServerResponse","empty","setStatus","setBody","HttpBody","unsafeJson","message","basicAuth","checkCredentials","options","headerName","skippedPaths","skipPaths","includes","authHeader","headers","toLowerCase","undefined","NotLoggedInError","authorizationParts","split","length","credentialsBuffer","Buffer","from","credentialsText","toString","credentialsParts","check","user","password","either","isLeft","left","cors","_options","DEFAULTS","allowedOrigins","allowedMethods","allowedHeaders","exposedHeaders","credentials","isAllowedOrigin","origin","allowOrigin","originHeader","Vary","allowMethods","join","allowCredentials","allowHeaders","accessControlRequestHeaders","exposeHeaders","maxAge","corsHeaders","HttpHeaders","fromInput","dropUndefined","setHeaders"],"sources":["../../../src/api/internal/middlewares.ts"],"sourcesContent":[null],"mappings":";;;;;;AAKA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAH,uBAAA,CAAAC,OAAA;AACA,IAAAG,iBAAA,GAAAJ,uBAAA,CAAAC,OAAA;AACA,IAAAI,cAAA,GAAAL,uBAAA,CAAAC,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AACA,IAAAM,KAAA,GAAAN,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,MAAA,GAAAT,uBAAA,CAAAC,OAAA;AACA,IAAAS,QAAA,GAAAV,uBAAA,CAAAC,OAAA;AACA,IAAAU,SAAA,GAAAV,OAAA;AACA,IAAAW,OAAA,GAAAZ,uBAAA,CAAAC,OAAA;AACA,IAAAY,MAAA,GAAAb,uBAAA,CAAAC,OAAA;AACA,IAAAa,OAAA,GAAAb,OAAA;AAA6C,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,SAAAhB,wBAAAgB,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAnB7C;;;;;;AAsBO,MAAMW,SAAS,GAAGA,CAACC,KAAA,GAAsC,MAAM,KACpEjC,UAAU,CAACkC,IAAI,CAAEC,GAAG,IAClB,IAAAC,cAAI,EACFnC,iBAAiB,CAACA,iBAAiB,EACnCoC,iBAAM,CAACC,OAAO,CAAEC,OAAO,IAAKF,iBAAM,CAAC,MAAMJ,KAAK,EAAE,CAAC,CAAC,GAAGM,OAAO,CAACC,MAAM,IAAID,OAAO,CAACE,GAAG,EAAE,CAAC,CAAC,EACtFJ,iBAAM,CAACC,OAAO,CAAC,MAAMH,GAAG,CAAC,CAC1B,CACF;AAAAO,OAAA,CAAAV,SAAA,GAAAA,SAAA;AAEI,MAAMW,iBAAiB,GAAGA,CAACC,gBAAgB,GAAG,WAAW,KAC9D5C,UAAU,CAACkC,IAAI,CAAEC,GAAG,IAClB,IAAAC,cAAI,EACFC,iBAAM,CAACQ,IAAI,CAAC,MAAMjD,MAAM,CAACkD,UAAU,EAAE,CAAC,EACtCT,iBAAM,CAACC,OAAO,CAAES,IAAI,IAClBxC,QAAQ,CAACyC,MAAM,CACbzC,QAAQ,CAAC0C,qBAAqB,EAC9BxC,OAAO,CAACsB,GAAG,CAAkBa,gBAAgB,EAAEG,IAAI,CAAC,CACrD,CACF,EACDV,iBAAM,CAACC,OAAO,CAAC,MAAMH,GAAG,CAAC,CAC1B,CACF;AAAAO,OAAA,CAAAC,iBAAA,GAAAA,iBAAA;AAEI,MAAMO,mBAAmB,GAAGA,CAAA,KAAK;EACtC,MAAMC,qBAAqB,GAAGzC,MAAM,CAAC0C,OAAO,CAAC,uBAAuB,CAAC;EAErE,OAAOpD,UAAU,CAACkC,IAAI,CAAEC,GAAG,IACzBE,iBAAM,CAACgB,GAAG,CAAC,WAAUC,CAAC;IACpB,MAAMf,OAAO,GAAG,OAAOe,CAAC,CAACrD,iBAAiB,CAACA,iBAAiB,CAAC;IAE7D,OAAOqD,CAAC,CACN5C,MAAM,CAAC6C,SAAS,CAACJ,qBAAqB,CAAC,EACvCd,iBAAM,CAACmB,UAAU,CAAC,MAAM,EAAEjB,OAAO,CAACE,GAAG,CAAC,CACvC;IAED,OAAO,OAAOa,CAAC,CAACnB,GAAG,CAAC;EACtB,CAAC,CAAC,CACH;AACH,CAAC;AAAAO,OAAA,CAAAQ,mBAAA,GAAAA,mBAAA;AAEM,MAAMO,QAAQ,GAAAf,OAAA,CAAAe,QAAA,GAAGzD,UAAU,CAACkC,IAAI,CAAEC,GAAG,IAC1CE,iBAAM,CAACgB,GAAG,CAAC,WAAUC,CAAC;EACpB,MAAMf,OAAO,GAAG,OAAOe,CAAC,CAACrD,iBAAiB,CAACA,iBAAiB,CAAC;EAE7D,MAAMyD,QAAQ,GAAG,OAAOJ,CAAC,CAACnB,GAAG,CAAC;EAE9B,IAAIuB,QAAQ,CAACC,MAAM,IAAI,GAAG,IAAID,QAAQ,CAACC,MAAM,GAAG,GAAG,EAAE;IACnD,OAAOL,CAAC,CACNM,mBAAW,CAACC,UAAU,CACpB,GAAGtB,OAAO,CAACC,MAAM,CAACsB,WAAW,EAAE,IAAIvB,OAAO,CAACE,GAAG,iBAAiBiB,QAAQ,CAACC,MAAM,EAAE,CACjF,CACF;EACH,CAAC,MAAM,IAAID,QAAQ,CAACC,MAAM,IAAI,GAAG,EAAE;IACjC,OAAOL,CAAC,CACNM,mBAAW,CAACG,QAAQ,CAClB,GAAGxB,OAAO,CAACC,MAAM,CAACsB,WAAW,EAAE,IAAIvB,OAAO,CAACE,GAAG,iBAAiBiB,QAAQ,CAACC,MAAM,EAAE,CACjF,CACF;EACH;EAEA,OAAOD,QAAQ;AACjB,CAAC,CAAC,CACH;AAEM,MAAMM,gBAAgB,GAAIC,GAAqB,IACpDC,wBAAkB,CAACC,KAAK,EAAE,CAAC/B,IAAI,CAC7B8B,wBAAkB,CAACE,SAAS,CAAC,GAAG,CAAC,EACjCF,wBAAkB,CAACG,OAAO,CAACC,cAAQ,CAACC,UAAU,CAAC;EAAEC,OAAO,EAAEP,GAAG,CAACO;AAAO,CAAE,CAAC,CAAC,CAC1E;AAAA9B,OAAA,CAAAsB,gBAAA,GAAAA,gBAAA;AAEI,MAAMS,SAAS,GAAGA,CACvBC,gBAEmC,EACnCC,OAGE,KAEF3E,UAAU,CAACkC,IAAI,CAAEC,GAAG,IAClBE,iBAAM,CAACgB,GAAG,CAAC,WAAUC,CAAC;EACpB,MAAMsB,UAAU,GAAGD,OAAO,EAAEC,UAAU,IAAI,eAAe;EACzD,MAAMC,YAAY,GAAGF,OAAO,EAAEG,SAAS,IAAI,EAAE;EAC7C,MAAMvC,OAAO,GAAG,OAAOe,CAAC,CAACrD,iBAAiB,CAACA,iBAAiB,CAAC;EAE7D,IAAI4E,YAAY,CAACE,QAAQ,CAACxC,OAAO,CAACE,GAAG,CAAC,EAAE;IACtC,OAAO,OAAOa,CAAC,CAACnB,GAAG,CAAC;EACtB;EAEA,MAAM6C,UAAU,GAAGzC,OAAO,CAAC0C,OAAO,CAACL,UAAU,CAACM,WAAW,EAAE,CAAC;EAE5D,IAAIF,UAAU,KAAKG,SAAS,EAAE;IAC5B,OAAOnB,gBAAgB,CACrB,IAAIoB,wBAAgB,CAClB,mBAAmBR,UAAU,EAAE,CAChC,CACF;EACH;EAEA,MAAMS,kBAAkB,GAAGL,UAAU,CAACM,KAAK,CAAC,GAAG,CAAC;EAEhD,IAAID,kBAAkB,CAACE,MAAM,KAAK,CAAC,EAAE;IACnC,OAAOvB,gBAAgB,CACrB,IAAIoB,wBAAgB,CAClB,iEAAiE,CAClE,CACF;EACH;EAEA,IAAIC,kBAAkB,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;IACrC,OAAOrB,gBAAgB,CACrB,IAAIoB,wBAAgB,CAClB,uDAAuDC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAChF,CACF;EACH;EAEA,MAAMG,iBAAiB,GAAGC,MAAM,CAACC,IAAI,CAACL,kBAAkB,CAAC,CAAC,CAAE,EAAE,QAAQ,CAAC;EACvE,MAAMM,eAAe,GAAGH,iBAAiB,CAACI,QAAQ,CAAC,OAAO,CAAC;EAC3D,MAAMC,gBAAgB,GAAGF,eAAe,CAACL,KAAK,CAAC,GAAG,CAAC;EAEnD,IAAIO,gBAAgB,CAACN,MAAM,KAAK,CAAC,EAAE;IACjC,OAAOvB,gBAAgB,CACrB,IAAIoB,wBAAgB,CAClB,qFAAqF,CACtF,CACF;EACH;EAEA,MAAMU,KAAK,GAAG,OAAOxC,CAAC,CACpBoB,gBAAgB,CAAC;IACfqB,IAAI,EAAEF,gBAAgB,CAAC,CAAC,CAAC;IACzBG,QAAQ,EAAEH,gBAAgB,CAAC,CAAC;GAC7B,CAAC,EACFxD,iBAAM,CAAC4D,MAAM,CACd;EAED,IAAI3F,MAAM,CAAC4F,MAAM,CAACJ,KAAK,CAAC,EAAE;IACxB,OAAO9B,gBAAgB,CAAC8B,KAAK,CAACK,IAAI,CAAC;EACrC;EAEA,OAAO,OAAO7C,CAAC,CAACnB,GAAG,CAAC;AACtB,CAAC,CAAC,CACH;AAAAO,OAAA,CAAA+B,SAAA,GAAAA,SAAA;AAEI,MAAM2B,IAAI,GAAIC,QAA2C,IAAI;EAClE,MAAMC,QAAQ,GAAG;IACfC,cAAc,EAAE,CAAC,GAAG,CAAC;IACrBC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC;IACjEC,cAAc,EAAE,EAAE;IAClBC,cAAc,EAAE,EAAE;IAClBC,WAAW,EAAE;GACL;EAEV,MAAMhC,OAAO,GAAG;IAAE,GAAG2B,QAAQ;IAAE,GAAGD;EAAQ,CAAE;EAE5C,MAAMO,eAAe,GAAIC,MAAc,IAAI;IACzC,OAAOlC,OAAO,CAAC4B,cAAc,CAACxB,QAAQ,CAAC8B,MAAM,CAAC;EAChD,CAAC;EAED,MAAMC,WAAW,GAAIC,YAAoB,IAAI;IAC3C,IAAIpC,OAAO,CAAC4B,cAAc,CAAChB,MAAM,KAAK,CAAC,EAAE;MACvC,OAAO;QAAE,6BAA6B,EAAE;MAAG,CAAE;IAC/C;IAEA,IAAIZ,OAAO,CAAC4B,cAAc,CAAChB,MAAM,KAAK,CAAC,EAAE;MACvC,OAAO;QACL,6BAA6B,EAAEZ,OAAO,CAAC4B,cAAc,CAAC,CAAC,CAAC;QACxDS,IAAI,EAAE;OACP;IACH;IAEA,IAAIJ,eAAe,CAACG,YAAY,CAAC,EAAE;MACjC,OAAO;QACL,6BAA6B,EAAEA,YAAY;QAC3CC,IAAI,EAAE;OACP;IACH;IAEA,OAAO7B,SAAS;EAClB,CAAC;EAED,MAAM8B,YAAY,GAAG,CAAC,MAAK;IACzB,IAAItC,OAAO,CAAC6B,cAAc,CAACjB,MAAM,GAAG,CAAC,EAAE;MACrC,OAAO;QACL,8BAA8B,EAAEZ,OAAO,CAAC6B,cAAc,CAACU,IAAI,CAAC,IAAI;OACjE;IACH;IAEA,OAAO/B,SAAS;EAClB,CAAC,EAAC,CAAE;EAEJ,MAAMgC,gBAAgB,GAAG,CAAC,MAAK;IAC7B,IAAIxC,OAAO,CAACgC,WAAW,EAAE;MACvB,OAAO;QAAE,kCAAkC,EAAE;MAAM,CAAE;IACvD;IAEA,OAAOxB,SAAS;EAClB,CAAC,EAAC,CAAE;EAEJ,MAAMiC,YAAY,GAAIC,2BAA+C,IAAI;IACvE,IAAI1C,OAAO,CAAC8B,cAAc,CAAClB,MAAM,KAAK,CAAC,IAAI8B,2BAA2B,EAAE;MACtE,OAAO;QACLL,IAAI,EAAE,gCAAgC;QACtC,8BAA8B,EAAEK;OACjC;IACH;IAEA,IAAI1C,OAAO,CAAC8B,cAAc,EAAE;MAC1B,OAAO;QACL,8BAA8B,EAAE9B,OAAO,CAAC8B,cAAc,CAACS,IAAI,CAAC,GAAG;OAChE;IACH;IAEA,OAAO/B,SAAS;EAClB,CAAC;EAED,MAAMmC,aAAa,GAAG,CAAC,MAAK;IAC1B,IAAI3C,OAAO,CAAC+B,cAAc,CAACnB,MAAM,GAAG,CAAC,EAAE;MACrC,OAAO;QACL,+BAA+B,EAAEZ,OAAO,CAAC+B,cAAc,CAACQ,IAAI,CAAC,GAAG;OACjE;IACH;IAEA,OAAO/B,SAAS;EAClB,CAAC,EAAC,CAAE;EAEJ,MAAMoC,MAAM,GAAG,CAAC,MAAK;IACnB,IAAI5C,OAAO,CAAC4C,MAAM,EAAE;MAClB,OAAO;QAAE,wBAAwB,EAAE5C,OAAO,CAAC4C,MAAM,CAAC3B,QAAQ;MAAE,CAAE;IAChE;IAEA,OAAOT,SAAS;EAClB,CAAC,EAAC,CAAE;EAEJ,OAAOnF,UAAU,CAACkC,IAAI,CAAEC,GAAG,IACzBE,iBAAM,CAACgB,GAAG,CAAC,WAAUC,CAAC;IACpB,MAAMf,OAAO,GAAG,OAAOe,CAAC,CAACrD,iBAAiB,CAACA,iBAAiB,CAAC;IAE7D,MAAM4G,MAAM,GAAGtE,OAAO,CAAC0C,OAAO,CAAC,QAAQ,CAAC;IACxC,MAAMoC,2BAA2B,GAAG9E,OAAO,CAAC0C,OAAO,CAAC,gCAAgC,CAAC;IAErF,IAAIuC,WAAW,GAAG;MAChB,GAAGV,WAAW,CAACD,MAAM,IAAI,EAAE,CAAC;MAC5B,GAAGM,gBAAgB;MACnB,GAAGG;KACJ;IAED,IAAI/E,OAAO,CAACC,MAAM,KAAK,SAAS,EAAE;MAChCgF,WAAW,GAAG;QACZ,GAAGA,WAAW;QACd,GAAGP,YAAY;QACf,GAAGG,YAAY,CAACC,2BAA2B,CAAC;QAC5C,GAAGE;OACJ;MAED,OAAOrH,cAAc,CAACiE,KAAK,CAAC;QAAER,MAAM,EAAE,GAAG;QAAEsB,OAAO,EAAEwC,iBAAW,CAACC,SAAS,CAAC,IAAAC,oBAAa,EAACH,WAAW,CAAC;MAAC,CAAE,CAAC;IAC1G;IAEA,MAAM9D,QAAQ,GAAG,OAAOJ,CAAC,CAACnB,GAAG,CAAC;IAE9B,OAAOuB,QAAQ,CAACtB,IAAI,CAAClC,cAAc,CAAC0H,UAAU,CAAC,IAAAD,oBAAa,EAACH,WAAW,CAAC,CAAC,CAAC;EAC7E,CAAC,CAAC,CACH;AACH,CAAC;AAAA9E,OAAA,CAAA0D,IAAA,GAAAA,IAAA","ignoreList":[]}
|