@effect-app/infra 0.67.0 → 0.68.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # @effect-app/infra
2
2
 
3
+ ## 0.68.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Flush should be uninterruptible
8
+
9
+ ## 0.68.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 4856c46c: add duplicated paths detection
14
+ - update packages
15
+
16
+ ### Patch Changes
17
+
18
+ - Updated dependencies
19
+ - @effect-app/core@0.54.0
20
+ - @effect-app/infra-adapters@0.47.0
21
+ - @effect-app/prelude@0.55.0
22
+ - @effect-app/schema@0.48.0
23
+
3
24
  ## 0.67.0
4
25
 
5
26
  ### Minor Changes
@@ -3,21 +3,80 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.checkDuplicatePaths = checkDuplicatePaths;
6
7
  exports.makeJsonSchema = makeJsonSchema;
7
- var tsplus_module_1 = _interopRequireWildcard(require("@effect/data/Chunk"));
8
- var tsplus_module_2 = _interopRequireWildcard(require("@effect-app/core/_ext/Iterable"));
9
- var tsplus_module_3 = _interopRequireWildcard(require("@effect/io/Effect"));
8
+ var tsplus_module_1 = _interopRequireWildcard(require("@effect/io/Effect"));
9
+ var tsplus_module_2 = _interopRequireWildcard(require("@effect/data/Chunk"));
10
+ var tsplus_module_3 = _interopRequireWildcard(require("@effect-app/core/_ext/Iterable"));
11
+ var _errors = require("../../errors.cjs");
10
12
  var RS = _interopRequireWildcard(require("./schema/routing.cjs"));
11
13
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
12
14
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
13
15
  /* eslint-disable @typescript-eslint/no-explicit-any */
14
16
 
15
17
  const rx = /:(\w+)/g;
18
+ function checkDuplicatePaths(paths) {
19
+ const methods = Symbol("methods");
20
+ const pathMethods = {
21
+ [methods]: []
22
+ };
23
+ const regex = /(?:^|\/)([^/:\n]+)|:(\w+)/g;
24
+ for (const path of paths) {
25
+ const matches = [...path.path.matchAll(regex)].map(match => match[1] ? {
26
+ _tag: "resource",
27
+ value: match[1]
28
+ } : {
29
+ _tag: "param",
30
+ value: match[2]
31
+ });
32
+ let pathNavigator = pathMethods;
33
+ for (let i = 0; i < matches.length;) {
34
+ const match = matches[i];
35
+ switch (match._tag) {
36
+ case "resource":
37
+ {
38
+ if (!(match.value in pathNavigator)) {
39
+ ;
40
+ pathNavigator[match.value] = {
41
+ [methods]: []
42
+ };
43
+ }
44
+ pathNavigator = pathNavigator[match.value];
45
+ i++;
46
+ break;
47
+ }
48
+ case "param":
49
+ {
50
+ let numberOfParams = 1;
51
+ while (i < matches.length && matches[i + 1]?._tag === "param") {
52
+ numberOfParams++;
53
+ i++;
54
+ }
55
+ if (!(numberOfParams in pathNavigator)) {
56
+ ;
57
+ pathNavigator[numberOfParams] = {
58
+ [methods]: []
59
+ };
60
+ }
61
+ pathNavigator = pathNavigator[numberOfParams];
62
+ i++;
63
+ break;
64
+ }
65
+ }
66
+ }
67
+ if (pathNavigator[methods].includes(path.method)) {
68
+ // throw duplicate path-method error
69
+ return tsplus_module_1.fail(new _errors.InvalidStateError(`Duplicate method ${path.method} for path ${path.path}`));
70
+ }
71
+ pathNavigator[methods].push(path.method);
72
+ }
73
+ return tsplus_module_1.succeed(paths);
74
+ }
16
75
  /**
17
76
  * Work in progress JSONSchema generator.
18
77
  */
19
78
  function makeJsonSchema(r) {
20
- return tsplus_module_3.map(tsplus_module_2.ext_forEach(tsplus_module_1.fromIterable(r), RS.makeFromSchema), e => {
79
+ return tsplus_module_1.map(tsplus_module_1.flatMap(tsplus_module_3.ext_forEach(tsplus_module_2.fromIterable(r), RS.makeFromSchema), checkDuplicatePaths), e => {
21
80
  const map = ({
22
81
  method,
23
82
  path,
@@ -1 +1 @@
1
- {"version":3,"file":"makeJsonSchema.cjs","names":["RS","_interopRequireWildcard","require","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","rx","makeJsonSchema","r","tsplus_module_3","map","tsplus_module_2","ext_forEach","tsplus_module_1","fromIterable","makeFromSchema","e","method","path","responses","rest","reduce","prev","cur","statusCode","type","split","replace","_a","b","Response","constructor"],"sources":["../../../_src/api/express/makeJsonSchema.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;AAEA,IAAAA,EAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAyC,SAAAC,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAH,wBAAAO,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAFzC;;AAMA,MAAMW,EAAE,GAAG,SAAS;AAIpB;;;AAGM,SAAUC,cAAcA,CAACC,CAAkC;EAC/D,OAAOC,eAAA,CAAAC,GAAA,CAAAC,eAAA,CAAAC,WAAA,CAAAC,eAAA,CAAAC,YAAA,CACSN,CAAC,CAAC,EACD3B,EAAE,CAACkC,cAAc,CAAC,EAC3BC,CAAC,IAAI;IACT,MAAMN,GAAG,GAAGA,CAAC;MAAEO,MAAM;MAAEC,IAAI;MAAEC,SAAS;MAAE,GAAGC;IAAI,CAAgB,MAAM;MACnE,CAACH,MAAM,GAAG;QACR,GAAGG,IAAI;QACPD,SAAS,EAAGA,SAAwB,CAACE,MAAM,CACzC,CAACC,IAAI,EAAEC,GAAG,KAAI;UACZD,IAAI,CAACC,GAAG,CAACC,UAAU,CAAC,GAAGD,GAAG,CAACE,IAAI;UAC/B,OAAOH,IAAI;QACb,CAAC,EACD,EAAsD;;KAG3D,CAAC;IACF,OAAON,CAAC,CAACK,MAAM,CACb,CAACC,IAAI,EAAEN,CAAC,KAAI;MACV,MAAME,IAAI,GAAGF,CAAC,CAACE,IAAI,CAACQ,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO,CAACrB,EAAE,EAAE,CAACsB,EAAE,EAAEC,CAAC,KAAK,IAAIA,CAAC,GAAG,CAAC;MAClEP,IAAI,CAACJ,IAAI,CAAC,GAAG;QACX,GAAGI,IAAI,CAACJ,IAAI,CAAC;QACb,GAAGR,GAAG,CAACM,CAAC;OACT;MACD,OAAOM,IAAI;IACb,CAAC,EACD,EAA6D,CAC9D;EACH,CAAC,CAAC;AACN;AAEA,MAAMQ,QAAQ;EACZC,YACkBP,UAAkB,EAClBC,IAAS,CAAC;EAAA,E;IADV,KAAAD,UAAU,GAAVA,UAAU;IACV,KAAAC,IAAI,GAAJA,IAAI;EACnB"}
1
+ {"version":3,"file":"makeJsonSchema.cjs","names":["_errors","require","RS","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","rx","checkDuplicatePaths","paths","methods","Symbol","pathMethods","regex","path","matches","matchAll","map","match","_tag","value","pathNavigator","i","length","numberOfParams","includes","method","tsplus_module_1","fail","InvalidStateError","push","succeed","makeJsonSchema","r","flatMap","tsplus_module_3","ext_forEach","tsplus_module_2","fromIterable","makeFromSchema","e","responses","rest","reduce","prev","cur","statusCode","type","split","replace","_a","b","Response","constructor"],"sources":["../../../_src/api/express/makeJsonSchema.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ var tsplus_module_1 = _interopRequireWildcard(require("@effect/io/Effect"));
4
+ var _errors = require("../../errors.cjs");
5
+ var _makeJsonSchema = require("./makeJsonSchema.cjs");
6
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
7
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
8
+ const path = {
9
+ path: "/securities/:id/search/:id2",
10
+ method: "get"
11
+ };
12
+ const equalPaths = ["/securities/:idt/search/:id2", "/securities/:id/search/:id2t", "/securities/:idt/search/:id2t"].map(path => ({
13
+ path,
14
+ method: "get"
15
+ }));
16
+ const differentPaths = ["/securities/:id/search/", "/securities/search/:id2", "/securities/:id/:id2/search/:id3"].map(path => ({
17
+ path,
18
+ method: "get"
19
+ })).concat(["/securities/:idt/search/:id2"].map(path => ({
20
+ path,
21
+ method: "post"
22
+ })));
23
+ test("works", () => {
24
+ expect((0, _makeJsonSchema.checkDuplicatePaths)([path, ...differentPaths])).toStrictEqual(tsplus_module_1.succeed([path, ...differentPaths]));
25
+ equalPaths.forEach(p => expect((0, _makeJsonSchema.checkDuplicatePaths)([path, p])).toStrictEqual(tsplus_module_1.fail(new _errors.InvalidStateError(`Duplicate method ${p.method} for path ${p.path}`))));
26
+ });
27
+ //# sourceMappingURL=makeJsonSchema.test.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makeJsonSchema.test.cjs","names":["_errors","require","_makeJsonSchema","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_interopRequireWildcard","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","path","method","equalPaths","map","differentPaths","concat","test","expect","checkDuplicatePaths","toStrictEqual","tsplus_module_1","succeed","forEach","p","fail","InvalidStateError"],"sources":["../../../_src/api/express/makeJsonSchema.test.ts"],"sourcesContent":[null],"mappings":";;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAAyD,SAAAE,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAI,wBAAAC,GAAA,EAAAL,WAAA,SAAAA,WAAA,IAAAK,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAT,wBAAA,CAAAC,WAAA,OAAAQ,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAEzD,MAAMW,IAAI,GAAG;EAAEA,IAAI,EAAE,6BAA6B;EAAEC,MAAM,EAAE;AAAK,CAAE;AAEnE,MAAMC,UAAU,GAAG,CACjB,8BAA8B,EAC9B,8BAA8B,EAC9B,+BAA+B,CAChC,CACEC,GAAG,CAAEH,IAAI,KAAM;EAAEA,IAAI;EAAEC,MAAM,EAAE;AAAK,CAAE,CAAC,CAAC;AAE3C,MAAMG,cAAc,GAGd,CACJ,yBAAyB,EACzB,yBAAyB,EACzB,kCAAkC,CACnC,CACED,GAAG,CAAEH,IAAI,KAAM;EAAEA,IAAI;EAAEC,MAAM,EAAE;AAAK,CAAE,CAAC,CAAC,CACxCI,MAAM,CAAC,CACN,8BAA8B,CAC/B,CACEF,GAAG,CAAEH,IAAI,KAAM;EAAEA,IAAI;EAAEC,MAAM,EAAE;AAAM,CAAE,CAAC,CAAC,CAAC;AAE/CK,IAAI,CAAC,OAAO,EAAE,MAAK;EACjBC,MAAM,CAAC,IAAAC,mCAAmB,EAAC,CAACR,IAAI,EAAE,GAAGI,cAAc,CAAC,CAAC,CAAC,CAACK,aAAa,CAACC,eAAA,CAAAC,OAAA,CAAe,CAACX,IAAI,EAAE,GAAGI,cAAc,CAAC,CAAC,CAAC;EAE/GF,UAAU,CAACU,OAAO,CAAEC,CAAC,IACnBN,MAAM,CAAC,IAAAC,mCAAmB,EAAC,CAACR,IAAI,EAAEa,CAAC,CAAC,CAAC,CAAC,CAACJ,aAAa,CAClDC,eAAA,CAAAI,IAAA,CAAY,IAAIC,yBAAiB,CAAC,oBAAoBF,CAAC,CAACZ,MAAM,aAAaY,CAAC,CAACb,IAAI,EAAE,CAAC,CAAC,CACtF,CACF;AACH,CAAC,CAAC"}
@@ -29,12 +29,13 @@ function makeDiskStoreInt(prefix, namespace, dir, name, seed) {
29
29
  const sem = tsplus_module_1.unsafeMakeSemaphore(1);
30
30
  const withPermit = sem.withPermits(1);
31
31
  const flushToDisk = withPermit(tsplus_module_1.flatMap(store.all, fsStore.setRaw));
32
+ const flushToDiskInBackground = tsplus_module_1.forkDaemon(tsplus_module_1.uninterruptible(tsplus_module_1.tapErrorCause(flushToDisk, err => tsplus_module_1.sync(() => console.error(err)))));
32
33
  return {
33
34
  ...store,
34
- batchSet: tsplus_module_2.flow(store.batchSet, t => tsplus_module_1.tap(t, () => tsplus_module_1.forkDaemon(tsplus_module_1.tapErrorCause(flushToDisk, err => tsplus_module_1.sync(() => console.error(err)))))),
35
- bulkSet: tsplus_module_2.flow(store.bulkSet, t => tsplus_module_1.tap(t, () => tsplus_module_1.forkDaemon(tsplus_module_1.tapErrorCause(flushToDisk, err => tsplus_module_1.sync(() => console.error(err)))))),
36
- set: tsplus_module_2.flow(store.set, t => tsplus_module_1.tap(t, () => tsplus_module_1.forkDaemon(tsplus_module_1.tapErrorCause(flushToDisk, err => tsplus_module_1.sync(() => console.error(err)))))),
37
- remove: tsplus_module_2.flow(store.remove, t => tsplus_module_1.tap(t, () => tsplus_module_1.forkDaemon(tsplus_module_1.tapErrorCause(flushToDisk, err => tsplus_module_1.sync(() => console.error(err))))))
35
+ batchSet: tsplus_module_2.flow(store.batchSet, t => tsplus_module_1.tap(t, () => flushToDiskInBackground)),
36
+ bulkSet: tsplus_module_2.flow(store.bulkSet, t => tsplus_module_1.tap(t, () => flushToDiskInBackground)),
37
+ set: tsplus_module_2.flow(store.set, t => tsplus_module_1.tap(t, () => flushToDiskInBackground)),
38
+ remove: tsplus_module_2.flow(store.remove, t => tsplus_module_1.tap(t, () => flushToDiskInBackground))
38
39
  };
39
40
  });
40
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Disk.cjs","names":["fu","_interopRequireWildcard","require","_fs","_interopRequireDefault","_Memory","_service","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","makeDiskStoreInt","prefix","namespace","dir","name","seed","tsplus_module_1","gen","$","file","fsStore","orDie","map","readTextFile","x","JSON","parse","setRaw","v","stringify","undefined","json","writeTextFile","store","makeMemoryStoreInt","fs","existsSync","flatMap","all","sem","unsafeMakeSemaphore","withPermit","withPermits","flushToDisk","batchSet","tsplus_module_2","flow","t","tap","forkDaemon","tapErrorCause","err","sync","console","error","bulkSet","remove","makeDiskStore","mkdirSync","make","config","storesSem","primary","stores","Map","getStore","allowNamespace","succeed","tsplus_module_3","storeId","Error","suspend","existing","s","_","find","args","filter","filterJoinSelect","DiskStoreLive","toLayer","StoreMaker"],"sources":["../../../_src/services/Store/Disk.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;AACA,IAAAA,EAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,GAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,OAAA,GAAAH,OAAA;AAEA,IAAAI,QAAA,GAAAJ,OAAA;AAAyC,SAAAE,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAV,wBAAAM,GAAA,EAAAI,WAAA,SAAAA,WAAA,IAAAJ,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAQ,KAAA,GAAAL,wBAAA,CAAAC,WAAA,OAAAI,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAT,GAAA,YAAAQ,KAAA,CAAAE,GAAA,CAAAV,GAAA,SAAAW,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAhB,GAAA,QAAAgB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAnB,GAAA,EAAAgB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAf,GAAA,EAAAgB,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAhB,GAAA,CAAAgB,GAAA,SAAAL,MAAA,CAAAT,OAAA,GAAAF,GAAA,MAAAQ,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAArB,GAAA,EAAAW,MAAA,YAAAA,MAAA;AAPzC;;AASA,SAASW,gBAAgBA,CACvBC,MAAc,EACdC,SAAiB,EACjBC,GAAW,EACXC,IAAY,EACZC,IAAyC;EAEzC,OAAOC,eAAA,CAAAC,GAAA,CAAW,WAAUC,CAAC;IAC3B,MAAMC,IAAI,GAAGN,GAAG,GAAG,GAAG,GAAGF,MAAM,GAAGG,IAAI,IAAIF,SAAS,KAAK,SAAS,GAAG,EAAE,GAAG,GAAG,GAAGA,SAAS,CAAC,GAAG,OAAO;IACnG,MAAMQ,OAAO,GAAG;MACdtB,GAAG,EAAAkB,eAAA,CAAAK,KAAA,CAAEL,eAAA,CAAAM,GAAA,CAAAzC,EAAE,CACJ0C,YAAY,CAACJ,IAAI,CAAC,EACbK,CAAC,IAAKC,IAAI,CAACC,KAAK,CAACF,CAAC,CAAS,CAAC,CAC5B;MACRG,MAAM,EAAGC,CAAe,IAAKH,IAAI,CAACI,SAAS,CAAC,CAAC,GAAGD,CAAC,CAAC,EAAEE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAEC,IAAI,IAAKlD,EAAE,CAACmD,aAAa,CAACb,IAAI,EAAEY,IAAI,CAAC;KAC/G;IAED,MAAME,KAAK,GAAG,OAAOf,CAAC,CACpB,IAAAgB,0BAAkB,EAChBpB,IAAI,EACJ,CAACqB,WAAE,CAACC,UAAU,CAACjB,IAAI,CAAC,GAChBJ,IAAI,GACJK,OAAO,CAACtB,GAAG,CAChB,CACF;IAED,OAAOoB,CAAC,CAACF,eAAA,CAAAqB,OAAA,CAAAJ,KAAK,CAACK,GAAG,EAASlB,OAAO,CAACO,MAAM,CAAC,CAAC;IAE3C,MAAMY,GAAG,GAAGvB,eAAA,CAAAwB,mBAAA,CAAqB,CAAC,CAAC;IACnC,MAAMC,UAAU,GAAGF,GAAG,CAACG,WAAW,CAAC,CAAC,CAAC;IACrC,MAAMC,WAAW,GAA2CF,UAAU,CAAlDzB,eAAA,CAAAqB,OAAA,CAAAJ,KAAK,CAACK,GAAG,EAASlB,OAAO,CAACO,MAAM,CAAC,CAAkB;IACvE,OAAO;MACL,GAAGM,KAAK;MACRW,QAAQ,EAAEC,eAAA,CAAAC,IAAI,CACZb,KAAK,CAACW,QAAQ,EACbG,CAAC,IAAK/B,eAAA,CAAAgC,GAAA,CAAAD,CAAC,EAAK,MAAK/B,eAAA,CAAAiC,UAAA,CAACjC,eAAA,CAAAkC,aAAA,CAAAP,WAAW,EAAgBQ,GAAG,IAAKnC,eAAA,CAAAoC,IAAA,OAAOC,OAAO,CAACC,KAAK,CAACH,GAAG,CAAC,CAAC,CAAC,CAAW,CAAC,CAC9F;MACDI,OAAO,EAAEV,eAAA,CAAAC,IAAI,CACXb,KAAK,CAACsB,OAAO,EACZR,CAAC,IAAK/B,eAAA,CAAAgC,GAAA,CAAAD,CAAC,EAAK,MAAK/B,eAAA,CAAAiC,UAAA,CAACjC,eAAA,CAAAkC,aAAA,CAAAP,WAAW,EAAgBQ,GAAG,IAAKnC,eAAA,CAAAoC,IAAA,OAAOC,OAAO,CAACC,KAAK,CAACH,GAAG,CAAC,CAAC,CAAC,CAAW,CAAC,CAC9F;MACD1C,GAAG,EAAEoC,eAAA,CAAAC,IAAI,CACPb,KAAK,CAACxB,GAAG,EACRsC,CAAC,IAAK/B,eAAA,CAAAgC,GAAA,CAAAD,CAAC,EAAK,MAAK/B,eAAA,CAAAiC,UAAA,CAACjC,eAAA,CAAAkC,aAAA,CAAAP,WAAW,EAAgBQ,GAAG,IAAKnC,eAAA,CAAAoC,IAAA,OAAOC,OAAO,CAACC,KAAK,CAACH,GAAG,CAAC,CAAC,CAAC,CAAW,CAAC,CAC9F;MACDK,MAAM,EAAEX,eAAA,CAAAC,IAAI,CACVb,KAAK,CAACuB,MAAM,EACXT,CAAC,IAAK/B,eAAA,CAAAgC,GAAA,CAAAD,CAAC,EAAK,MAAK/B,eAAA,CAAAiC,UAAA,CAACjC,eAAA,CAAAkC,aAAA,CAAAP,WAAW,EAAgBQ,GAAG,IAAKnC,eAAA,CAAAoC,IAAA,OAAOC,OAAO,CAACC,KAAK,CAACH,GAAG,CAAC,CAAC,CAAC,CAAW,CAAC;KAExE;EAC3B,CAAC,CAAC;AACJ;AAEA;;;;AAIM,SAAUM,aAAaA,CAAC;EAAE9C;AAAM,CAAiB,EAAEE,GAAW;EAClE,OAAOG,eAAA,CAAAoC,IAAA,CAAY,MAAK;IACtB,IAAI,CAACjB,WAAE,CAACC,UAAU,CAACvB,GAAG,CAAC,EAAE;MACvBsB,WAAE,CAACuB,SAAS,CAAC7C,GAAG,CAAC;;IAEnB,OAAO;MACL8C,IAAI,EAAEA,CACJ7C,IAAY,EACZC,IAAyC,EACzC6C,MAAwB,KAExB5C,eAAA,CAAAC,GAAA,CAAW,WAAUC,CAAC;QACpB,MAAM2C,SAAS,GAAG7C,eAAA,CAAAwB,mBAAA,CAAqB,CAAC,CAAC;QACzC,MAAMsB,OAAO,GAAG,OAAO5C,CAAC,CAACR,gBAAgB,CAACC,MAAM,EAAE,SAAS,EAAEE,GAAG,EAAEC,IAAI,EAAEC,IAAI,CAAC,CAAC;QAC9E,MAAMgD,MAAM,GAAG,IAAIC,GAAG,CAAwB,CAAC,CAAC,SAAS,EAAEF,OAAO,CAAC,CAAC,CAAC;QACrE,MAAMG,QAAQ,GAAG,CAACL,MAAM,EAAEM,cAAc,GAAGlD,eAAA,CAAAmD,OAAA,CAAeL,OAAO,CAAC,GAAG9C,eAAA,CAAAqB,OAAA,CAAA+B,eAAA,CAAAtE,GAAA,CAAAuE,eAAO,GAAczD,SAAS,IAAI;UACrG,MAAMqB,KAAK,GAAG8B,MAAM,CAACjE,GAAG,CAACc,SAAS,CAAC;UACnC,IAAIqB,KAAK,EAAE;YACT,OAAOjB,eAAA,CAAAmD,OAAA,CAAelC,KAAK,CAAC;;UAE9B,IAAI,CAAC2B,MAAM,CAACM,cAAe,CAACtD,SAAS,CAAC,EAAE;YACtC,MAAM,IAAI0D,KAAK,CAAC,aAAa1D,SAAS,eAAe,CAAC;;UAExD,OAAOiD,SAAS,CAACnB,WAAW,CAAC,CAAC,CAAC,CAC7B1B,eAAA,CAAAuD,OAAA,CAAe,MAAK;YAClB,MAAMC,QAAQ,GAAGT,MAAM,CAACjE,GAAG,CAACc,SAAS,CAAC;YACtC,IAAI4D,QAAQ,EAAE,OAAOxD,eAAA,CAAAoC,IAAA,OAAOoB,QAAQ,CAAC;YACrC,OAAOxD,eAAA,CAAAgC,GAAA,CAAAtC,gBAAgB,CAASC,MAAM,EAAEC,SAAS,EAAEC,GAAG,EAAEC,IAAI,EAAEC,IAAI,CAAC,EAAMkB,KAAK,IAC5EjB,eAAA,CAAAoC,IAAA,CAAY,MAAMW,MAAM,CAACtD,GAAG,CAACG,SAAS,EAAEqB,KAAK,CAAC,CAAC,CAChD;UACH,CAAC,CAAC,CACH;QACH,CAAC,CAAC;QAEF,MAAMwC,CAAC,GAAkB;UACvBnC,GAAG,EAAEtB,eAAA,CAAAqB,OAAA,CAAA4B,QAAQ,EAAUS,CAAC,IAAKA,CAAC,CAACpC,GAAG,CAAC;UACnCqC,IAAI,EAAEA,CAAC,GAAGC,IAAI,KAAK5D,eAAA,CAAAqB,OAAA,CAAA4B,QAAQ,EAAUS,CAAC,IAAKA,CAAC,CAACC,IAAI,CAAC,GAAGC,IAAI,CAAC,CAAC;UAC3DC,MAAM,EAAEA,CAAC,GAAGD,IAAI,KAAK5D,eAAA,CAAAqB,OAAA,CAAA4B,QAAQ,EAAUS,CAAC,IAAKA,CAAC,CAACG,MAAM,CAAC,GAAGD,IAAI,CAAC,CAAC;UAC/DE,gBAAgB,EAAEA,CAAC,GAAGF,IAAI,KAAK5D,eAAA,CAAAqB,OAAA,CAAA4B,QAAQ,EAAUS,CAAC,IAAKA,CAAC,CAACI,gBAAgB,CAAC,GAAGF,IAAI,CAAC,CAAC;UACnFnE,GAAG,EAAEA,CAAC,GAAGmE,IAAI,KAAK5D,eAAA,CAAAqB,OAAA,CAAA4B,QAAQ,EAAUS,CAAC,IAAKA,CAAC,CAACjE,GAAG,CAAC,GAAGmE,IAAI,CAAC,CAAC;UACzDhC,QAAQ,EAAEA,CAAC,GAAGgC,IAAI,KAAK5D,eAAA,CAAAqB,OAAA,CAAA4B,QAAQ,EAAUS,CAAC,IAAKA,CAAC,CAAC9B,QAAQ,CAAC,GAAGgC,IAAI,CAAC,CAAC;UACnErB,OAAO,EAAEA,CAAC,GAAGqB,IAAI,KAAK5D,eAAA,CAAAqB,OAAA,CAAA4B,QAAQ,EAAUS,CAAC,IAAKA,CAAC,CAACnB,OAAO,CAAC,GAAGqB,IAAI,CAAC,CAAC;UACjEpB,MAAM,EAAEA,CAAC,GAAGoB,IAAI,KAAK5D,eAAA,CAAAqB,OAAA,CAAA4B,QAAQ,EAAUS,CAAC,IAAKA,CAAC,CAAClB,MAAM,CAAC,GAAGoB,IAAI,CAAC;SAC/D;QACD,OAAOH,CAAC;MACV,CAAC;KACJ;EACH,CAAC,CAAC;AACJ;AAEM,SAAUM,aAAaA,CAACnB,MAA6B,EAAE/C,GAAW;EACtE,OAAOG,eAAA,CAAAgE,OAAA,CAAAhE,eAAA,CAAAqB,OAAA,CAAArB,eAAA,CAAA4C,MAAA,CAAAA,MAAM,GAEDc,CAAC,IAAKjB,aAAa,CAACiB,CAAC,EAAE7D,GAAG,CAAC,CAAC,EAC7BoE,mBAAU,CAAC;AACxB"}
1
+ {"version":3,"file":"Disk.cjs","names":["fu","_interopRequireWildcard","require","_fs","_interopRequireDefault","_Memory","_service","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","makeDiskStoreInt","prefix","namespace","dir","name","seed","tsplus_module_1","gen","$","file","fsStore","orDie","map","readTextFile","x","JSON","parse","setRaw","v","stringify","undefined","json","writeTextFile","store","makeMemoryStoreInt","fs","existsSync","flatMap","all","sem","unsafeMakeSemaphore","withPermit","withPermits","flushToDisk","flushToDiskInBackground","forkDaemon","uninterruptible","tapErrorCause","err","sync","console","error","batchSet","tsplus_module_2","flow","t","tap","bulkSet","remove","makeDiskStore","mkdirSync","make","config","storesSem","primary","stores","Map","getStore","allowNamespace","succeed","tsplus_module_3","storeId","Error","suspend","existing","s","_","find","args","filter","filterJoinSelect","DiskStoreLive","toLayer","StoreMaker"],"sources":["../../../_src/services/Store/Disk.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { InvalidStateError } from "../../errors.js"
2
+ import { checkDuplicatePaths } from "./makeJsonSchema.js"
3
+
4
+ const path = { path: "/securities/:id/search/:id2", method: "get" }
5
+
6
+ const equalPaths = [
7
+ "/securities/:idt/search/:id2",
8
+ "/securities/:id/search/:id2t",
9
+ "/securities/:idt/search/:id2t"
10
+ ]
11
+ .map((path) => ({ path, method: "get" }))
12
+
13
+ const differentPaths: {
14
+ path: string
15
+ method: string
16
+ }[] = [
17
+ "/securities/:id/search/",
18
+ "/securities/search/:id2",
19
+ "/securities/:id/:id2/search/:id3"
20
+ ]
21
+ .map((path) => ({ path, method: "get" }))
22
+ .concat([
23
+ "/securities/:idt/search/:id2"
24
+ ]
25
+ .map((path) => ({ path, method: "post" })))
26
+
27
+ test("works", () => {
28
+ expect(checkDuplicatePaths([path, ...differentPaths])).toStrictEqual(Effect.succeed([path, ...differentPaths]))
29
+
30
+ equalPaths.forEach((p) =>
31
+ expect(checkDuplicatePaths([path, p])).toStrictEqual(
32
+ Effect.fail(new InvalidStateError(`Duplicate method ${p.method} for path ${p.path}`))
33
+ )
34
+ )
35
+ })
@@ -1,5 +1,6 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
 
3
+ import { InvalidStateError } from "../../errors.js"
3
4
  import * as RS from "./schema/routing.js"
4
5
 
5
6
  type Methods = "GET" | "PUT" | "POST" | "PATCH" | "DELETE"
@@ -8,6 +9,64 @@ const rx = /:(\w+)/g
8
9
 
9
10
  type _A<C> = C extends ReadonlyArray<infer A> ? A : never
10
11
 
12
+ export function checkDuplicatePaths<T extends { path: string; method: string }>(
13
+ paths: readonly T[]
14
+ ): Effect<never, InvalidStateError, readonly T[]> {
15
+ const methods = Symbol("methods")
16
+ interface PathMethods {
17
+ [key: string | number]: this | undefined
18
+ [methods]: string[]
19
+ }
20
+ const pathMethods: PathMethods = { [methods]: [] }
21
+ const regex = /(?:^|\/)([^/:\n]+)|:(\w+)/g
22
+
23
+ for (const path of paths) {
24
+ const matches = [...path.path.matchAll(regex)]
25
+ .map((match) =>
26
+ match[1]
27
+ ? { _tag: "resource", value: match[1] } as const
28
+ : { _tag: "param", value: match[2]! } as const
29
+ )
30
+
31
+ let pathNavigator: PathMethods | string[] = pathMethods
32
+ for (let i = 0; i < matches.length;) {
33
+ const match = matches[i]!
34
+ switch (match._tag) {
35
+ case "resource": {
36
+ if (!(match.value in (pathNavigator))) {
37
+ ;(pathNavigator)[match.value] = { [methods]: [] }
38
+ }
39
+ pathNavigator = (pathNavigator)[match.value]!
40
+ i++
41
+ break
42
+ }
43
+ case "param": {
44
+ let numberOfParams = 1
45
+ while (i < matches.length && matches[i + 1]?._tag === "param") {
46
+ numberOfParams++
47
+ i++
48
+ }
49
+
50
+ if (!(numberOfParams in pathNavigator)) {
51
+ ;(pathNavigator)[numberOfParams] = { [methods]: [] }
52
+ }
53
+ pathNavigator = (pathNavigator)[numberOfParams]!
54
+ i++
55
+ break
56
+ }
57
+ }
58
+ }
59
+
60
+ if (pathNavigator[methods].includes(path.method)) {
61
+ // throw duplicate path-method error
62
+ return Effect.fail(new InvalidStateError(`Duplicate method ${path.method} for path ${path.path}`))
63
+ }
64
+ pathNavigator[methods].push(path.method)
65
+ }
66
+
67
+ return Effect.succeed(paths)
68
+ }
69
+
11
70
  /**
12
71
  * Work in progress JSONSchema generator.
13
72
  */
@@ -15,6 +74,7 @@ export function makeJsonSchema(r: Iterable<RS.RouteDescriptorAny>) {
15
74
  return Chunk
16
75
  .fromIterable(r)
17
76
  .forEachEffect(RS.makeFromSchema)
77
+ .flatMap(checkDuplicatePaths)
18
78
  .map((e) => {
19
79
  const map = ({ method, path, responses, ...rest }: _A<typeof e>) => ({
20
80
  [method]: {
@@ -38,23 +38,28 @@ function makeDiskStoreInt<Id extends string, PM extends PersistenceModelType<Id>
38
38
  const sem = Semaphore.unsafeMake(1)
39
39
  const withPermit = sem.withPermits(1)
40
40
  const flushToDisk = store.all.flatMap(fsStore.setRaw).apply(withPermit)
41
+ const flushToDiskInBackground = flushToDisk
42
+ .tapErrorCause((err) => Effect(console.error(err)))
43
+ .uninterruptible
44
+ .forkDaemon
45
+
41
46
  return {
42
47
  ...store,
43
48
  batchSet: flow(
44
49
  store.batchSet,
45
- (t) => t.tap(() => flushToDisk.tapErrorCause((err) => Effect(console.error(err))).forkDaemon)
50
+ (t) => t.tap(() => flushToDiskInBackground)
46
51
  ),
47
52
  bulkSet: flow(
48
53
  store.bulkSet,
49
- (t) => t.tap(() => flushToDisk.tapErrorCause((err) => Effect(console.error(err))).forkDaemon)
54
+ (t) => t.tap(() => flushToDiskInBackground)
50
55
  ),
51
56
  set: flow(
52
57
  store.set,
53
- (t) => t.tap(() => flushToDisk.tapErrorCause((err) => Effect(console.error(err))).forkDaemon)
58
+ (t) => t.tap(() => flushToDiskInBackground)
54
59
  ),
55
60
  remove: flow(
56
61
  store.remove,
57
- (t) => t.tap(() => flushToDisk.tapErrorCause((err) => Effect(console.error(err))).forkDaemon)
62
+ (t) => t.tap(() => flushToDiskInBackground)
58
63
  )
59
64
  } satisfies Store<PM, Id>
60
65
  })
@@ -1,9 +1,15 @@
1
+ import { Effect } from "@effect/io/Effect";
2
+ import { InvalidStateError } from "../../errors.js";
1
3
  import * as RS from "./schema/routing.js";
2
4
  type Methods = "GET" | "PUT" | "POST" | "PATCH" | "DELETE";
5
+ export declare function checkDuplicatePaths<T extends {
6
+ path: string;
7
+ method: string;
8
+ }>(paths: readonly T[]): Effect<never, InvalidStateError, readonly T[]>;
3
9
  /**
4
10
  * Work in progress JSONSchema generator.
5
11
  */
6
- export declare function makeJsonSchema(r: Iterable<RS.RouteDescriptorAny>): import("@effect/io/Effect").Effect<never, never, Record<string, Record<Methods, {
12
+ export declare function makeJsonSchema(r: Iterable<RS.RouteDescriptorAny>): import("@effect/io/Effect").Effect<never, InvalidStateError, Record<string, Record<Methods, {
7
13
  [x: string]: {
8
14
  responses: any;
9
15
  tags: readonly string[] | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"makeJsonSchema.d.ts","sourceRoot":"","sources":["../../../_src/api/express/makeJsonSchema.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAEzC,KAAK,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAA;AAM1D;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,kBAAkB,CAAC;;;;;;;;;;;;;;;;;;;;;KA6BhE"}
1
+ {"version":3,"file":"makeJsonSchema.d.ts","sourceRoot":"","sources":["../../../_src/api/express/makeJsonSchema.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAEzC,KAAK,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAA;AAM1D,wBAAgB,mBAAmB,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC5E,KAAK,EAAE,SAAS,CAAC,EAAE,GAClB,MAAM,CAAC,KAAK,EAAE,iBAAiB,EAAE,SAAS,CAAC,EAAE,CAAC,CAsDhD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,kBAAkB,CAAC;;;;;;;;;;;;;;;;;;;;;KA8BhE"}
@@ -1,14 +1,61 @@
1
- import * as tsplus_module_1 from "@effect/data/Chunk";
2
- import * as tsplus_module_2 from "@effect-app/core/_ext/Iterable";
3
- import * as tsplus_module_3 from "@effect/io/Effect";
1
+ import * as tsplus_module_1 from "@effect/io/Effect";
2
+ import * as tsplus_module_2 from "@effect/data/Chunk";
3
+ import * as tsplus_module_3 from "@effect-app/core/_ext/Iterable";
4
4
  /* eslint-disable @typescript-eslint/no-explicit-any */
5
+ import { InvalidStateError } from "../../errors.js";
5
6
  import * as RS from "./schema/routing.js";
6
7
  const rx = /:(\w+)/g;
8
+ export function checkDuplicatePaths(paths) {
9
+ const methods = Symbol("methods");
10
+ const pathMethods = { [methods]: [] };
11
+ const regex = /(?:^|\/)([^/:\n]+)|:(\w+)/g;
12
+ for (const path of paths) {
13
+ const matches = [...path.path.matchAll(regex)]
14
+ .map((match) => match[1]
15
+ ? { _tag: "resource", value: match[1] }
16
+ : { _tag: "param", value: match[2] });
17
+ let pathNavigator = pathMethods;
18
+ for (let i = 0; i < matches.length;) {
19
+ const match = matches[i];
20
+ switch (match._tag) {
21
+ case "resource": {
22
+ if (!(match.value in (pathNavigator))) {
23
+ ;
24
+ (pathNavigator)[match.value] = { [methods]: [] };
25
+ }
26
+ pathNavigator = (pathNavigator)[match.value];
27
+ i++;
28
+ break;
29
+ }
30
+ case "param": {
31
+ let numberOfParams = 1;
32
+ while (i < matches.length && matches[i + 1]?._tag === "param") {
33
+ numberOfParams++;
34
+ i++;
35
+ }
36
+ if (!(numberOfParams in pathNavigator)) {
37
+ ;
38
+ (pathNavigator)[numberOfParams] = { [methods]: [] };
39
+ }
40
+ pathNavigator = (pathNavigator)[numberOfParams];
41
+ i++;
42
+ break;
43
+ }
44
+ }
45
+ }
46
+ if (pathNavigator[methods].includes(path.method)) {
47
+ // throw duplicate path-method error
48
+ return tsplus_module_1.fail(new InvalidStateError(`Duplicate method ${path.method} for path ${path.path}`));
49
+ }
50
+ pathNavigator[methods].push(path.method);
51
+ }
52
+ return tsplus_module_1.succeed(paths);
53
+ }
7
54
  /**
8
55
  * Work in progress JSONSchema generator.
9
56
  */
10
57
  export function makeJsonSchema(r) {
11
- return tsplus_module_3.map(tsplus_module_2.ext_forEach(tsplus_module_1.fromIterable(r), RS.makeFromSchema), (e) => {
58
+ return tsplus_module_1.map(tsplus_module_1.flatMap(tsplus_module_3.ext_forEach(tsplus_module_2.fromIterable(r), RS.makeFromSchema), checkDuplicatePaths), (e) => {
12
59
  const map = ({ method, path, responses, ...rest }) => ({
13
60
  [method]: {
14
61
  ...rest,
@@ -35,4 +82,4 @@ class Response {
35
82
  this.type = type;
36
83
  }
37
84
  }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUpzb25TY2hlbWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL2FwaS9leHByZXNzL21ha2VKc29uU2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVEQUF1RDtBQUV2RCxPQUFPLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBSXpDLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQTtBQUlwQjs7R0FFRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsQ0FBa0M7SUFDL0QsT0FBTyxvQkFBQSw0QkFBQSw2QkFDUyxDQUFDLENBQUMsRUFDRCxFQUFFLENBQUMsY0FBYyxDQUFDLEVBQzVCLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDVCxNQUFNLEdBQUcsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLEVBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbkUsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDUixHQUFHLElBQUk7Z0JBQ1AsU0FBUyxFQUFHLFNBQXdCLENBQUMsTUFBTSxDQUN6QyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRTtvQkFDWixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUE7b0JBQy9CLE9BQU8sSUFBSSxDQUFBO2dCQUNiLENBQUMsRUFDRCxFQUFzRCxDQUN2RDthQUNGO1NBQ0YsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUNiLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ1YsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUNsRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUc7Z0JBQ1gsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUNiLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBUTthQUNqQixDQUFBO1lBQ0QsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDLEVBQ0QsRUFBNkQsQ0FDOUQsQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUFBO0FBQ04sQ0FBQztBQUVELE1BQU0sUUFBUTtJQUNaLFlBQ2tCLFVBQWtCLEVBQ2xCLElBQVMsQ0FBQyxrQ0FBa0M7O1FBRDVDLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDbEIsU0FBSSxHQUFKLElBQUksQ0FBSztJQUN4QixDQUFDO0NBQ0wifQ==
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUpzb25TY2hlbWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL2FwaS9leHByZXNzL21ha2VKc29uU2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVEQUF1RDtBQUV2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUNuRCxPQUFPLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBSXpDLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQTtBQUlwQixNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLEtBQW1CO0lBRW5CLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUtqQyxNQUFNLFdBQVcsR0FBZ0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFBO0lBQ2xELE1BQU0sS0FBSyxHQUFHLDRCQUE0QixDQUFBO0lBRTFDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFO1FBQ3hCLE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMzQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNiLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDTixDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQVc7WUFDaEQsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBRSxFQUFXLENBQ2pELENBQUE7UUFFSCxJQUFJLGFBQWEsR0FBMkIsV0FBVyxDQUFBO1FBQ3ZELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHO1lBQ25DLE1BQU0sS0FBSyxHQUFHLE9BQU8s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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makeJsonSchema.test.d.ts","sourceRoot":"","sources":["../../../_src/api/express/makeJsonSchema.test.ts"],"names":[],"mappings":""}
@@ -1,6 +1,6 @@
1
1
  import type * as Plutus from "@effect-app/infra-adapters/Openapi/atlas-plutus";
2
2
  import type { RouteDescriptorAny } from "./schema/routing.js";
3
- export declare function makeOpenApiSpecs(rdescs: Iterable<RouteDescriptorAny>, info: Plutus.Info): import("@effect/io/Effect").Effect<never, never, {
3
+ export declare function makeOpenApiSpecs(rdescs: Iterable<RouteDescriptorAny>, info: Plutus.Info): import("@effect/io/Effect").Effect<never, import("../../errors.js").InvalidStateError, {
4
4
  openapi: string;
5
5
  info: {
6
6
  title: string;
@@ -18,7 +18,7 @@ export declare function makeOpenApiSpecs(rdescs: Iterable<RouteDescriptorAny>, i
18
18
  version: string;
19
19
  };
20
20
  tags: never[];
21
- paths: Record<string, Record<"GET" | "POST" | "PUT" | "PATCH" | "DELETE", {
21
+ paths: Record<string, Record<"GET" | "PUT" | "POST" | "PATCH" | "DELETE", {
22
22
  [x: string]: {
23
23
  responses: any;
24
24
  tags: readonly string[] | undefined;
@@ -1,3 +1,3 @@
1
1
  import type { RouteDescriptorAny } from "./express/schema/routing.js";
2
- export declare function writeOpenapiDocs(rdescs: Record<string, Record<string, RouteDescriptorAny>>): import("@effect/io/Effect").Effect<never, never, void>;
2
+ export declare function writeOpenapiDocs(rdescs: Record<string, Record<string, RouteDescriptorAny>>): import("@effect/io/Effect").Effect<never, import("../errors.js").InvalidStateError, void>;
3
3
  //# sourceMappingURL=writeDocs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"writeDocs.d.ts","sourceRoot":"","sources":["../../_src/api/writeDocs.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAErE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,0DAmB1F"}
1
+ {"version":3,"file":"writeDocs.d.ts","sourceRoot":"","sources":["../../_src/api/writeDocs.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAErE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,6FAmB1F"}
@@ -1 +1 @@
1
- {"version":3,"file":"Disk.d.ts","sourceRoot":"","sources":["../../../_src/services/Store/Disk.ts"],"names":[],"mappings":";;AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAuDzC;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM;yEAOtD,MAAM;GAyCnB;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,MAAM,sGAKvE"}
1
+ {"version":3,"file":"Disk.d.ts","sourceRoot":"","sources":["../../../_src/services/Store/Disk.ts"],"names":[],"mappings":";;AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AA4DzC;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM;yEAOtD,MAAM;GAyCnB;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,MAAM,sGAKvE"}
@@ -21,12 +21,13 @@ function makeDiskStoreInt(prefix, namespace, dir, name, seed) {
21
21
  const sem = tsplus_module_1.unsafeMakeSemaphore(1);
22
22
  const withPermit = sem.withPermits(1);
23
23
  const flushToDisk = withPermit(tsplus_module_1.flatMap(store.all, fsStore.setRaw));
24
+ const flushToDiskInBackground = tsplus_module_1.forkDaemon(tsplus_module_1.uninterruptible(tsplus_module_1.tapErrorCause(flushToDisk, (err) => tsplus_module_1.sync(() => console.error(err)))));
24
25
  return {
25
26
  ...store,
26
- batchSet: tsplus_module_2.flow(store.batchSet, (t) => tsplus_module_1.tap(t, () => tsplus_module_1.forkDaemon(tsplus_module_1.tapErrorCause(flushToDisk, (err) => tsplus_module_1.sync(() => console.error(err)))))),
27
- bulkSet: tsplus_module_2.flow(store.bulkSet, (t) => tsplus_module_1.tap(t, () => tsplus_module_1.forkDaemon(tsplus_module_1.tapErrorCause(flushToDisk, (err) => tsplus_module_1.sync(() => console.error(err)))))),
28
- set: tsplus_module_2.flow(store.set, (t) => tsplus_module_1.tap(t, () => tsplus_module_1.forkDaemon(tsplus_module_1.tapErrorCause(flushToDisk, (err) => tsplus_module_1.sync(() => console.error(err)))))),
29
- remove: tsplus_module_2.flow(store.remove, (t) => tsplus_module_1.tap(t, () => tsplus_module_1.forkDaemon(tsplus_module_1.tapErrorCause(flushToDisk, (err) => tsplus_module_1.sync(() => console.error(err))))))
27
+ batchSet: tsplus_module_2.flow(store.batchSet, (t) => tsplus_module_1.tap(t, () => flushToDiskInBackground)),
28
+ bulkSet: tsplus_module_2.flow(store.bulkSet, (t) => tsplus_module_1.tap(t, () => flushToDiskInBackground)),
29
+ set: tsplus_module_2.flow(store.set, (t) => tsplus_module_1.tap(t, () => flushToDiskInBackground)),
30
+ remove: tsplus_module_2.flow(store.remove, (t) => tsplus_module_1.tap(t, () => flushToDiskInBackground))
30
31
  };
31
32
  });
32
33
  }
@@ -77,4 +78,4 @@ export function makeDiskStore({ prefix }, dir) {
77
78
  export function DiskStoreLive(config, dir) {
78
79
  return tsplus_module_1.toLayer(tsplus_module_1.flatMap(tsplus_module_1.config(config), (_) => makeDiskStore(_, dir)), StoreMaker);
79
80
  }
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvU3RvcmUvRGlzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxLQUFLLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUV6RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFFbkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUV6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRXpDLFNBQVMsZ0JBQWdCLENBQ3ZCLE1BQWMsRUFDZCxTQUFpQixFQUNqQixHQUFXLEVBQ1gsSUFBWSxFQUNaLElBQXlDO0lBRXpDLE9BQU8sb0JBQVcsUUFBUSxDQUFDLEVBQUMsQ0FBQztRQUMzQixNQUFNLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxPQUFPLENBQUE7UUFDbkcsTUFBTSxPQUFPLEdBQUc7WUFDZCxHQUFHLHdCQUFFLG9CQUFBLEVBQUU7aUJBQ0osWUFBWSxDQUFDLElBQUksQ0FBQyxFQUNkLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBUyxDQUFDLENBQzVCO1lBQ1IsTUFBTSxFQUFFLENBQUMsQ0FBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ2hILENBQUE7UUFFRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ3BCLGtCQUFrQixDQUNoQixJQUFJLEVBQ0osQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNsQixDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUNoQixDQUNGLENBQUE7UUFFRCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsd0JBQUEsS0FBSyxDQUFDLEdBQUcsRUFBUyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtRQUUzQyxNQUFNLEdBQUcsR0FBRyxvQ0FBcUIsQ0FBQyxDQUFDLENBQUE7UUFDbkMsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNyQyxNQUFNLFdBQVcsR0FBMkMsVUFBVSxDQUFsRCx3QkFBQSxLQUFLLENBQUMsR0FBRyxFQUFTLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBa0IsQ0FBQTtRQUN2RSxPQUFPO1lBQ0wsR0FBRyxLQUFLO1lBQ1IsUUFBUSxFQUFFLGdCQUFBLElBQUksQ0FDWixLQUFLLENBQUMsUUFBUSxFQUNkLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxvQkFBQSxDQUFDLEVBQUssR0FBRyxFQUFFLDRCQUFDLDhCQUFBLFdBQVcsRUFBZSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsMkJBQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQVcsQ0FBQyxDQUM5RjtZQUNELE9BQU8sRUFBRSxnQkFBQSxJQUFJLENBQ1gsS0FBSyxDQUFDLE9BQU8sRUFDYixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsb0JBQUEsQ0FBQyxFQUFLLEdBQUcsRUFBRSw0QkFBQyw4QkFBQSxXQUFXLEVBQWUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLDJCQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFXLENBQUMsQ0FDOUY7WUFDRCxHQUFHLEVBQUUsZ0JBQUEsSUFBSSxDQUNQLEtBQUssQ0FBQyxHQUFHLEVBQ1QsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLG9CQUFBLENBQUMsRUFBSyxHQUFHLEVBQUUsNEJBQUMsOEJBQUEsV0FBVyxFQUFlLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQywyQkFBTyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBVyxDQUFDLENBQzlGO1lBQ0QsTUFBTSxFQUFFLGdCQUFBLElBQUksQ0FDVixLQUFLLENBQUMsTUFBTSxFQUNaLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxvQkFBQSxDQUFDLEVBQUssR0FBRyxFQUFFLDRCQUFDLDhCQUFBLFdBQVcsRUFBZSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsMkJBQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQVcsQ0FBQyxDQUM5RjtTQUNzQixDQUFBO0lBQzNCLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsRUFBRSxNQUFNLEVBQWlCLEVBQUUsR0FBVztJQUNsRSxPQUFPLHFCQUFZLEdBQUcsRUFBRTtRQUN0QixJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN2QixFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ2xCO1FBQ0QsT0FBTztZQUNMLElBQUksRUFBRSxDQUNKLElBQVksRUFDWixJQUF5QyxFQUN6QyxNQUF3QixFQUN4QixFQUFFLENBQ0Ysb0JBQVcsUUFBUSxDQUFDLEVBQUMsQ0FBQztnQkFDcEIsTUFBTSxTQUFTLEdBQUcsb0NBQXFCLENBQUMsQ0FBQyxDQUFBO2dCQUN6QyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUE7Z0JBQzlFLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxDQUF3QixDQUFDLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFDckUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyx3QkFBZSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsNENBQUEsT0FBTyxHQUFhLENBQUMsU0FBUyxFQUFFLEVBQUU7b0JBQ3JHLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUE7b0JBQ25DLElBQUksS0FBSyxFQUFFO3dCQUNULE9BQU8sd0JBQWUsS0FBSyxDQUFDLENBQUE7cUJBQzdCO29CQUNELElBQUksQ0FBQyxNQUFNLENBQUMsY0FBZSxDQUFDLFNBQVMsQ0FBQyxFQUFFO3dCQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsU0FBUyxlQUFlLENBQUMsQ0FBQTtxQkFDdkQ7b0JBQ0QsT0FBTyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUM3Qix3QkFBZSxHQUFHLEVBQUU7d0JBQ2xCLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUE7d0JBQ3RDLElBQUksUUFBUTs0QkFBRSxPQUFPLDJCQUFPLFFBQVEsQ0FBQyxDQUFBO3dCQUNyQyxPQUFPLG9CQUFBLGdCQUFnQixDQUFTLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ2hGLHFCQUFZLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQ2hELENBQUE7b0JBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtnQkFDSCxDQUFDLENBQUMsQ0FBQTtnQkFFRixNQUFNLENBQUMsR0FBa0I7b0JBQ3ZCLEdBQUcsRUFBRSx3QkFBQSxRQUFRLEVBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7b0JBQ25DLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyx3QkFBQSxRQUFRLEVBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztvQkFDM0QsTUFBTSxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLHdCQUFBLFFBQVEsRUFBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO29CQUMvRCxnQkFBZ0IsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyx3QkFBQSxRQUFRLEVBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO29CQUNuRixHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsd0JBQUEsUUFBUSxFQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7b0JBQ3pELFFBQVEsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyx3QkFBQSxRQUFRLEVBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztvQkFDbkUsT0FBTyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLHdCQUFBLFFBQVEsRUFBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO29CQUNqRSxNQUFNLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsd0JBQUEsUUFBUSxFQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7aUJBQ2hFLENBQUE7Z0JBQ0QsT0FBTyxDQUFDLENBQUE7WUFDVixDQUFDLENBQUM7U0FDTCxDQUFBO0lBQ0gsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxNQUE2QixFQUFFLEdBQVc7SUFDdEUsT0FBTyx3QkFBQSwrQ0FBQSxNQUFNLEdBRUYsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFDN0IsVUFBVSxDQUFDLENBQUE7QUFDeEIsQ0FBQyJ9
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvU3RvcmUvRGlzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxLQUFLLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUV6RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFFbkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUV6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRXpDLFNBQVMsZ0JBQWdCLENBQ3ZCLE1BQWMsRUFDZCxTQUFpQixFQUNqQixHQUFXLEVBQ1gsSUFBWSxFQUNaLElBQXlDO0lBRXpDLE9BQU8sb0JBQVcsUUFBUSxDQUFDLEVBQUMsQ0FBQztRQUMzQixNQUFNLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxPQUFPLENBQUE7UUFDbkcsTUFBTSxPQUFPLEdBQUc7WUFDZCxHQUFHLHdCQUFFLG9CQUFBLEVBQUU7aUJBQ0osWUFBWSxDQUFDLElBQUksQ0FBQyxFQUNkLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBUyxDQUFDLENBQzVCO1lBQ1IsTUFBTSxFQUFFLENBQUMsQ0FBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1NB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
package/package.json CHANGED
@@ -1,34 +1,34 @@
1
1
  {
2
2
  "name": "@effect-app/infra",
3
- "version": "0.67.0",
3
+ "version": "0.68.1",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
7
7
  "@azure/cosmos": "^3.17.3",
8
8
  "@azure/service-bus": "^7.9.0",
9
9
  "@effect/data": "^0.12.2",
10
- "@effect/io": "^0.25.9",
10
+ "@effect/io": "^0.25.12",
11
11
  "@sendgrid/helpers": "^7.7.0",
12
12
  "@sendgrid/mail": "^7.7.0",
13
13
  "change-case": "^4.1.2",
14
- "cross-fetch": "^3.1.5",
14
+ "cross-fetch": "^3.1.6",
15
15
  "faker": "^5.5.3",
16
- "fast-check": "^3.8.1",
16
+ "fast-check": "^3.9.0",
17
17
  "object-hash": "^3.0.0",
18
18
  "path-parser": "^6.1.0",
19
19
  "proper-lockfile": "^4.1.2",
20
20
  "pure-rand": "^6.0.2",
21
21
  "redlock": "^4.2.0",
22
- "@effect-app/prelude": "0.54.0",
23
- "@effect-app/infra-adapters": "0.46.3",
24
- "@effect-app/schema": "0.47.1",
25
- "@effect-app/core": "0.53.1"
22
+ "@effect-app/prelude": "0.55.0",
23
+ "@effect-app/infra-adapters": "0.47.0",
24
+ "@effect-app/schema": "0.48.0",
25
+ "@effect-app/core": "0.54.0"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@babel/cli": "^7.21.5",
29
- "@sentry/node": "^7.51.0",
29
+ "@sentry/node": "^7.52.1",
30
30
  "@types/express": "^4.17.17",
31
- "@types/node": "~20.1.0",
31
+ "@types/node": "~20.2.1",
32
32
  "@types/proper-lockfile": "^4.1.2",
33
33
  "@types/redis": "^2.8.32",
34
34
  "@types/redlock": "^4.0.4",
@@ -37,11 +37,11 @@
37
37
  "express-jwt-authz": "^2.4.1",
38
38
  "jwks-rsa": "2.1.4",
39
39
  "jwt-decode": "^3.1.2",
40
- "mongodb": "5.4.0",
40
+ "mongodb": "5.5.0",
41
41
  "redis": "^3.1.2",
42
42
  "ts-node": "^10.9.1",
43
43
  "typescript": "https://cdn.jsdelivr.net/npm/@tsplus/installer@0.0.176/compiler/typescript.tgz",
44
- "vitest": "^0.31.0",
44
+ "vitest": "^0.31.1",
45
45
  "@effect-app/compiler": "0.26.0"
46
46
  },
47
47
  "typesVersions": {