@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.
Files changed (168) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/package.json +174 -632
  3. package/_cjs/CUPS.cjs +0 -120
  4. package/_cjs/CUPS.cjs.map +0 -1
  5. package/_cjs/Emailer/Sendgrid.cjs +0 -109
  6. package/_cjs/Emailer/Sendgrid.cjs.map +0 -1
  7. package/_cjs/Emailer/fake.cjs +0 -17
  8. package/_cjs/Emailer/fake.cjs.map +0 -1
  9. package/_cjs/Emailer/service.cjs +0 -12
  10. package/_cjs/Emailer/service.cjs.map +0 -1
  11. package/_cjs/Emailer.cjs +0 -17
  12. package/_cjs/Emailer.cjs.map +0 -1
  13. package/_cjs/MainFiberSet.cjs +0 -61
  14. package/_cjs/MainFiberSet.cjs.map +0 -1
  15. package/_cjs/Model/Repository/ext.cjs +0 -68
  16. package/_cjs/Model/Repository/ext.cjs.map +0 -1
  17. package/_cjs/Model/Repository/internal/internal.cjs +0 -245
  18. package/_cjs/Model/Repository/internal/internal.cjs.map +0 -1
  19. package/_cjs/Model/Repository/legacy.cjs +0 -6
  20. package/_cjs/Model/Repository/legacy.cjs.map +0 -1
  21. package/_cjs/Model/Repository/makeRepo.cjs +0 -34
  22. package/_cjs/Model/Repository/makeRepo.cjs.map +0 -1
  23. package/_cjs/Model/Repository/service.cjs +0 -6
  24. package/_cjs/Model/Repository/service.cjs.map +0 -1
  25. package/_cjs/Model/Repository.cjs +0 -52
  26. package/_cjs/Model/Repository.cjs.map +0 -1
  27. package/_cjs/Model/dsl.cjs +0 -54
  28. package/_cjs/Model/dsl.cjs.map +0 -1
  29. package/_cjs/Model/filter/filterApi.cjs +0 -6
  30. package/_cjs/Model/filter/filterApi.cjs.map +0 -1
  31. package/_cjs/Model/filter/types/errors.cjs +0 -6
  32. package/_cjs/Model/filter/types/errors.cjs.map +0 -1
  33. package/_cjs/Model/filter/types/fields.cjs +0 -6
  34. package/_cjs/Model/filter/types/fields.cjs.map +0 -1
  35. package/_cjs/Model/filter/types/path/common.cjs +0 -6
  36. package/_cjs/Model/filter/types/path/common.cjs.map +0 -1
  37. package/_cjs/Model/filter/types/path/eager.cjs +0 -37
  38. package/_cjs/Model/filter/types/path/eager.cjs.map +0 -1
  39. package/_cjs/Model/filter/types/path/index.cjs +0 -6
  40. package/_cjs/Model/filter/types/path/index.cjs.map +0 -1
  41. package/_cjs/Model/filter/types/utils.cjs +0 -6
  42. package/_cjs/Model/filter/types/utils.cjs.map +0 -1
  43. package/_cjs/Model/filter/types/validator.cjs +0 -6
  44. package/_cjs/Model/filter/types/validator.cjs.map +0 -1
  45. package/_cjs/Model/filter/types.cjs +0 -50
  46. package/_cjs/Model/filter/types.cjs.map +0 -1
  47. package/_cjs/Model/query/dsl.cjs +0 -133
  48. package/_cjs/Model/query/dsl.cjs.map +0 -1
  49. package/_cjs/Model/query/new-kid-interpreter.cjs +0 -162
  50. package/_cjs/Model/query/new-kid-interpreter.cjs.map +0 -1
  51. package/_cjs/Model/query.cjs +0 -28
  52. package/_cjs/Model/query.cjs.map +0 -1
  53. package/_cjs/Model.cjs +0 -34
  54. package/_cjs/Model.cjs.map +0 -1
  55. package/_cjs/Operations.cjs +0 -105
  56. package/_cjs/Operations.cjs.map +0 -1
  57. package/_cjs/OperationsRepo.cjs +0 -21
  58. package/_cjs/OperationsRepo.cjs.map +0 -1
  59. package/_cjs/QueueMaker/SQLQueue.cjs +0 -149
  60. package/_cjs/QueueMaker/SQLQueue.cjs.map +0 -1
  61. package/_cjs/QueueMaker/errors.cjs +0 -29
  62. package/_cjs/QueueMaker/errors.cjs.map +0 -1
  63. package/_cjs/QueueMaker/memQueue.cjs +0 -90
  64. package/_cjs/QueueMaker/memQueue.cjs.map +0 -1
  65. package/_cjs/QueueMaker/sbqueue.cjs +0 -107
  66. package/_cjs/QueueMaker/sbqueue.cjs.map +0 -1
  67. package/_cjs/QueueMaker/service.cjs +0 -10
  68. package/_cjs/QueueMaker/service.cjs.map +0 -1
  69. package/_cjs/RequestContext.cjs +0 -54
  70. package/_cjs/RequestContext.cjs.map +0 -1
  71. package/_cjs/RequestFiberSet.cjs +0 -85
  72. package/_cjs/RequestFiberSet.cjs.map +0 -1
  73. package/_cjs/Store/ContextMapContainer.cjs +0 -19
  74. package/_cjs/Store/ContextMapContainer.cjs.map +0 -1
  75. package/_cjs/Store/Cosmos/query.cjs +0 -170
  76. package/_cjs/Store/Cosmos/query.cjs.map +0 -1
  77. package/_cjs/Store/Cosmos.cjs +0 -302
  78. package/_cjs/Store/Cosmos.cjs.map +0 -1
  79. package/_cjs/Store/Disk.cjs +0 -118
  80. package/_cjs/Store/Disk.cjs.map +0 -1
  81. package/_cjs/Store/Memory.cjs +0 -174
  82. package/_cjs/Store/Memory.cjs.map +0 -1
  83. package/_cjs/Store/codeFilter.cjs +0 -128
  84. package/_cjs/Store/codeFilter.cjs.map +0 -1
  85. package/_cjs/Store/index.cjs +0 -46
  86. package/_cjs/Store/index.cjs.map +0 -1
  87. package/_cjs/Store/service.cjs +0 -73
  88. package/_cjs/Store/service.cjs.map +0 -1
  89. package/_cjs/Store/utils.cjs +0 -70
  90. package/_cjs/Store/utils.cjs.map +0 -1
  91. package/_cjs/Store.cjs +0 -17
  92. package/_cjs/Store.cjs.map +0 -1
  93. package/_cjs/adapters/SQL/Model.cjs +0 -501
  94. package/_cjs/adapters/SQL/Model.cjs.map +0 -1
  95. package/_cjs/adapters/SQL.cjs +0 -11
  96. package/_cjs/adapters/SQL.cjs.map +0 -1
  97. package/_cjs/adapters/ServiceBus.cjs +0 -76
  98. package/_cjs/adapters/ServiceBus.cjs.map +0 -1
  99. package/_cjs/adapters/cosmos-client.cjs +0 -18
  100. package/_cjs/adapters/cosmos-client.cjs.map +0 -1
  101. package/_cjs/adapters/index.cjs +0 -6
  102. package/_cjs/adapters/index.cjs.map +0 -1
  103. package/_cjs/adapters/logger.cjs +0 -9
  104. package/_cjs/adapters/logger.cjs.map +0 -1
  105. package/_cjs/adapters/memQueue.cjs +0 -27
  106. package/_cjs/adapters/memQueue.cjs.map +0 -1
  107. package/_cjs/adapters/mongo-client.cjs +0 -20
  108. package/_cjs/adapters/mongo-client.cjs.map +0 -1
  109. package/_cjs/adapters/redis-client.cjs +0 -83
  110. package/_cjs/adapters/redis-client.cjs.map +0 -1
  111. package/_cjs/api/codec.cjs +0 -13
  112. package/_cjs/api/codec.cjs.map +0 -1
  113. package/_cjs/api/internal/RequestContextMiddleware.cjs +0 -41
  114. package/_cjs/api/internal/RequestContextMiddleware.cjs.map +0 -1
  115. package/_cjs/api/internal/auth.cjs +0 -58
  116. package/_cjs/api/internal/auth.cjs.map +0 -1
  117. package/_cjs/api/internal/events.cjs +0 -34
  118. package/_cjs/api/internal/events.cjs.map +0 -1
  119. package/_cjs/api/internal/health.cjs +0 -13
  120. package/_cjs/api/internal/health.cjs.map +0 -1
  121. package/_cjs/api/internal/middlewares.cjs +0 -197
  122. package/_cjs/api/internal/middlewares.cjs.map +0 -1
  123. package/_cjs/api/middlewares.cjs +0 -115
  124. package/_cjs/api/middlewares.cjs.map +0 -1
  125. package/_cjs/api/reportError.cjs +0 -29
  126. package/_cjs/api/reportError.cjs.map +0 -1
  127. package/_cjs/api/routing/DynamicMiddleware.cjs +0 -19
  128. package/_cjs/api/routing/DynamicMiddleware.cjs.map +0 -1
  129. package/_cjs/api/routing/schema/jwt.cjs +0 -21
  130. package/_cjs/api/routing/schema/jwt.cjs.map +0 -1
  131. package/_cjs/api/routing/utils.cjs +0 -53
  132. package/_cjs/api/routing/utils.cjs.map +0 -1
  133. package/_cjs/api/routing.cjs +0 -228
  134. package/_cjs/api/routing.cjs.map +0 -1
  135. package/_cjs/api/routing.legacy.cjs +0 -191
  136. package/_cjs/api/routing.legacy.cjs.map +0 -1
  137. package/_cjs/api/routing.legacy2.cjs +0 -210
  138. package/_cjs/api/routing.legacy2.cjs.map +0 -1
  139. package/_cjs/api/routing.legacy3.cjs +0 -214
  140. package/_cjs/api/routing.legacy3.cjs.map +0 -1
  141. package/_cjs/api/setupRequest.cjs +0 -58
  142. package/_cjs/api/setupRequest.cjs.map +0 -1
  143. package/_cjs/api/util.cjs +0 -17
  144. package/_cjs/api/util.cjs.map +0 -1
  145. package/_cjs/arbs.cjs +0 -25
  146. package/_cjs/arbs.cjs.map +0 -1
  147. package/_cjs/errorReporter.cjs +0 -74
  148. package/_cjs/errorReporter.cjs.map +0 -1
  149. package/_cjs/errors.cjs +0 -17
  150. package/_cjs/errors.cjs.map +0 -1
  151. package/_cjs/fileUtil.cjs +0 -48
  152. package/_cjs/fileUtil.cjs.map +0 -1
  153. package/_cjs/index.cjs +0 -11
  154. package/_cjs/index.cjs.map +0 -1
  155. package/_cjs/logger/jsonLogger.cjs +0 -43
  156. package/_cjs/logger/jsonLogger.cjs.map +0 -1
  157. package/_cjs/logger/logFmtLogger.cjs +0 -25
  158. package/_cjs/logger/logFmtLogger.cjs.map +0 -1
  159. package/_cjs/logger/shared.cjs +0 -30
  160. package/_cjs/logger/shared.cjs.map +0 -1
  161. package/_cjs/logger.cjs +0 -9
  162. package/_cjs/logger.cjs.map +0 -1
  163. package/_cjs/rateLimit.cjs +0 -76
  164. package/_cjs/rateLimit.cjs.map +0 -1
  165. package/_cjs/test.cjs +0 -77
  166. package/_cjs/test.cjs.map +0 -1
  167. package/_cjs/vitest.cjs +0 -28
  168. package/_cjs/vitest.cjs.map +0 -1
@@ -1,6 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","names":[],"sources":["../../src/adapters/index.ts"],"sourcesContent":[null],"mappings":"","ignoreList":[]}
@@ -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":[]}
@@ -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
@@ -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":"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","ignoreList":[]}