@effect-app/infra 0.68.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/.cache/effect/095519d034161945a8d2616a506d3e7f35a9b3d868814f44c747429c60fc4e7f.hash +1 -1
- package/.cache/effect/1bfd92946b11da4292f2ed99dc0e322462b60559148f9524abc20e26f70779e1.hash +1 -1
- package/.cache/effect/49c1bd9ec26e6df78b994d8df0bfe21b119803fa4aa46349bf4679fd0f1e7cda.hash +1 -1
- package/.cache/effect/58d4ccde8bd2db7829706db5bebd01b99900ee83f0f6a8413b53d17cbd69f510.hash +1 -1
- package/.cache/effect/72a5a16a6b62b63cd71719c833091128207d7e6c823cb32293549b3dd58c451b.hash +1 -1
- package/.cache/effect/7a9c33db6aedaf00093a132c1d4e48e9d043cef05e932b8a37da24d44e224248.hash +1 -1
- package/.cache/effect/c67d971634d2dc8118b40452b61c9a51620c35809be4a89982476aa80701d852.hash +1 -1
- package/.cache/effect/f38adf43700dab905456a534a0690eaf882cff2cd576c731f23d6d14a3c3d659.hash +1 -1
- package/CHANGELOG.md +6 -0
- package/_cjs/services/Store/Disk.cjs +5 -4
- package/_cjs/services/Store/Disk.cjs.map +1 -1
- package/_src/services/Store/Disk.ts +9 -4
- package/dist/api/express/makeOpenApiSpecs.d.ts +1 -1
- package/dist/services/Store/Disk.d.ts.map +1 -1
- package/dist/services/Store/Disk.js +6 -5
- package/package.json +3 -3
- package/.cache/effect/134218688132dfbdea493cbe1f26e73449f2759121df35ddd5448346b59c9a8d.content +0 -25
- package/.cache/effect/134218688132dfbdea493cbe1f26e73449f2759121df35ddd5448346b59c9a8d.hash +0 -1
- package/.cache/effect/14eb9da4ca6d22162888c7fdb7f39ab772d2a2dc6625db6031ecdb32ac89158f.content +0 -87
- package/.cache/effect/14eb9da4ca6d22162888c7fdb7f39ab772d2a2dc6625db6031ecdb32ac89158f.hash +0 -1
- package/.cache/effect/8594f0f42afc0641b00e88998000cc47382a1d07da31f4a148f7976701ca22d5.content +0 -97
- package/.cache/effect/8594f0f42afc0641b00e88998000cc47382a1d07da31f4a148f7976701ca22d5.hash +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
303f340f76ffd50c75569aa3043bf124145e06cceb4057d9c4530ed31d07a728
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
2106804d7ed5f62d59b96efcf115903f0f9819d46ae439f0e1304f2d1b729287
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
0c3f90d28e483961c87493d6563be45e5a24323b6d777f037429c5c041113be2
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
30f1491bd7ed7b71a8f3b2d6d9d549cced916cd60721bf96085353b20d87b77f
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
84a172eae432ab308b0da7a1450443906102c34d10c90afdf2a73f756cf96a30
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
4e41249ba004a7c0dc89e9306f2fcedc66585f6a43cff02e094f0d73d723bf8d
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
0958fd132e2c918acec7e021223aec95701d820ac3efbcb7b6f5c96200d7c3ad
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
76ac514b63e950709a008303d53d3e9cc91c0bdb845dc16d2b78b8c751391d40
|
package/CHANGELOG.md
CHANGED
|
@@ -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, () =>
|
|
35
|
-
bulkSet: tsplus_module_2.flow(store.bulkSet, t => tsplus_module_1.tap(t, () =>
|
|
36
|
-
set: tsplus_module_2.flow(store.set, t => tsplus_module_1.tap(t, () =>
|
|
37
|
-
remove: tsplus_module_2.flow(store.remove, t => tsplus_module_1.tap(t, () =>
|
|
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","
|
|
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":";;;;;;;;;;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,MAAMiB,uBAAuB,GAAA5B,eAAA,CAAA6B,UAAA,CAAA7B,eAAA,CAAA8B,eAAA,CAAG9B,eAAA,CAAA+B,aAAA,CAAAJ,WAAW,EACzBK,GAAG,IAAKhC,eAAA,CAAAiC,IAAA,OAAOC,OAAO,CAACC,KAAK,CAACH,GAAG,CAAC,CAAC,CAAC,EAExC;IAEb,OAAO;MACL,GAAGf,KAAK;MACRmB,QAAQ,EAAEC,eAAA,CAAAC,IAAI,CACZrB,KAAK,CAACmB,QAAQ,EACbG,CAAC,IAAKvC,eAAA,CAAAwC,GAAA,CAAAD,CAAC,EAAK,MAAMX,uBAAuB,CAAC,CAC5C;MACDa,OAAO,EAAEJ,eAAA,CAAAC,IAAI,CACXrB,KAAK,CAACwB,OAAO,EACZF,CAAC,IAAKvC,eAAA,CAAAwC,GAAA,CAAAD,CAAC,EAAK,MAAMX,uBAAuB,CAAC,CAC5C;MACDnC,GAAG,EAAE4C,eAAA,CAAAC,IAAI,CACPrB,KAAK,CAACxB,GAAG,EACR8C,CAAC,IAAKvC,eAAA,CAAAwC,GAAA,CAAAD,CAAC,EAAK,MAAMX,uBAAuB,CAAC,CAC5C;MACDc,MAAM,EAAEL,eAAA,CAAAC,IAAI,CACVrB,KAAK,CAACyB,MAAM,EACXH,CAAC,IAAKvC,eAAA,CAAAwC,GAAA,CAAAD,CAAC,EAAK,MAAMX,uBAAuB,CAAC;KAEtB;EAC3B,CAAC,CAAC;AACJ;AAEA;;;;AAIM,SAAUe,aAAaA,CAAC;EAAEhD;AAAM,CAAiB,EAAEE,GAAW;EAClE,OAAOG,eAAA,CAAAiC,IAAA,CAAY,MAAK;IACtB,IAAI,CAACd,WAAE,CAACC,UAAU,CAACvB,GAAG,CAAC,EAAE;MACvBsB,WAAE,CAACyB,SAAS,CAAC/C,GAAG,CAAC;;IAEnB,OAAO;MACLgD,IAAI,EAAEA,CACJ/C,IAAY,EACZC,IAAyC,EACzC+C,MAAwB,KAExB9C,eAAA,CAAAC,GAAA,CAAW,WAAUC,CAAC;QACpB,MAAM6C,SAAS,GAAG/C,eAAA,CAAAwB,mBAAA,CAAqB,CAAC,CAAC;QACzC,MAAMwB,OAAO,GAAG,OAAO9C,CAAC,CAACR,gBAAgB,CAACC,MAAM,EAAE,SAAS,EAAEE,GAAG,EAAEC,IAAI,EAAEC,IAAI,CAAC,CAAC;QAC9E,MAAMkD,MAAM,GAAG,IAAIC,GAAG,CAAwB,CAAC,CAAC,SAAS,EAAEF,OAAO,CAAC,CAAC,CAAC;QACrE,MAAMG,QAAQ,GAAG,CAACL,MAAM,EAAEM,cAAc,GAAGpD,eAAA,CAAAqD,OAAA,CAAeL,OAAO,CAAC,GAAGhD,eAAA,CAAAqB,OAAA,CAAAiC,eAAA,CAAAxE,GAAA,CAAAyE,eAAO,GAAc3D,SAAS,IAAI;UACrG,MAAMqB,KAAK,GAAGgC,MAAM,CAACnE,GAAG,CAACc,SAAS,CAAC;UACnC,IAAIqB,KAAK,EAAE;YACT,OAAOjB,eAAA,CAAAqD,OAAA,CAAepC,KAAK,CAAC;;UAE9B,IAAI,CAAC6B,MAAM,CAACM,cAAe,CAACxD,SAAS,CAAC,EAAE;YACtC,MAAM,IAAI4D,KAAK,CAAC,aAAa5D,SAAS,eAAe,CAAC;;UAExD,OAAOmD,SAAS,CAACrB,WAAW,CAAC,CAAC,CAAC,CAC7B1B,eAAA,CAAAyD,OAAA,CAAe,MAAK;YAClB,MAAMC,QAAQ,GAAGT,MAAM,CAACnE,GAAG,CAACc,SAAS,CAAC;YACtC,IAAI8D,QAAQ,EAAE,OAAO1D,eAAA,CAAAiC,IAAA,OAAOyB,QAAQ,CAAC;YACrC,OAAO1D,eAAA,CAAAwC,GAAA,CAAA9C,gBAAgB,CAASC,MAAM,EAAEC,SAAS,EAAEC,GAAG,EAAEC,IAAI,EAAEC,IAAI,CAAC,EAAMkB,KAAK,IAC5EjB,eAAA,CAAAiC,IAAA,CAAY,MAAMgB,MAAM,CAACxD,GAAG,CAACG,SAAS,EAAEqB,KAAK,CAAC,CAAC,CAChD;UACH,CAAC,CAAC,CACH;QACH,CAAC,CAAC;QAEF,MAAM0C,CAAC,GAAkB;UACvBrC,GAAG,EAAEtB,eAAA,CAAAqB,OAAA,CAAA8B,QAAQ,EAAUS,CAAC,IAAKA,CAAC,CAACtC,GAAG,CAAC;UACnCuC,IAAI,EAAEA,CAAC,GAAGC,IAAI,KAAK9D,eAAA,CAAAqB,OAAA,CAAA8B,QAAQ,EAAUS,CAAC,IAAKA,CAAC,CAACC,IAAI,CAAC,GAAGC,IAAI,CAAC,CAAC;UAC3DC,MAAM,EAAEA,CAAC,GAAGD,IAAI,KAAK9D,eAAA,CAAAqB,OAAA,CAAA8B,QAAQ,EAAUS,CAAC,IAAKA,CAAC,CAACG,MAAM,CAAC,GAAGD,IAAI,CAAC,CAAC;UAC/DE,gBAAgB,EAAEA,CAAC,GAAGF,IAAI,KAAK9D,eAAA,CAAAqB,OAAA,CAAA8B,QAAQ,EAAUS,CAAC,IAAKA,CAAC,CAACI,gBAAgB,CAAC,GAAGF,IAAI,CAAC,CAAC;UACnFrE,GAAG,EAAEA,CAAC,GAAGqE,IAAI,KAAK9D,eAAA,CAAAqB,OAAA,CAAA8B,QAAQ,EAAUS,CAAC,IAAKA,CAAC,CAACnE,GAAG,CAAC,GAAGqE,IAAI,CAAC,CAAC;UACzD1B,QAAQ,EAAEA,CAAC,GAAG0B,IAAI,KAAK9D,eAAA,CAAAqB,OAAA,CAAA8B,QAAQ,EAAUS,CAAC,IAAKA,CAAC,CAACxB,QAAQ,CAAC,GAAG0B,IAAI,CAAC,CAAC;UACnErB,OAAO,EAAEA,CAAC,GAAGqB,IAAI,KAAK9D,eAAA,CAAAqB,OAAA,CAAA8B,QAAQ,EAAUS,CAAC,IAAKA,CAAC,CAACnB,OAAO,CAAC,GAAGqB,IAAI,CAAC,CAAC;UACjEpB,MAAM,EAAEA,CAAC,GAAGoB,IAAI,KAAK9D,eAAA,CAAAqB,OAAA,CAAA8B,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,EAAEjD,GAAW;EACtE,OAAOG,eAAA,CAAAkE,OAAA,CAAAlE,eAAA,CAAAqB,OAAA,CAAArB,eAAA,CAAA8C,MAAA,CAAAA,MAAM,GAEDc,CAAC,IAAKjB,aAAa,CAACiB,CAAC,EAAE/D,GAAG,CAAC,CAAC,EAC7BsE,mBAAU,CAAC;AACxB"}
|
|
@@ -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(() =>
|
|
50
|
+
(t) => t.tap(() => flushToDiskInBackground)
|
|
46
51
|
),
|
|
47
52
|
bulkSet: flow(
|
|
48
53
|
store.bulkSet,
|
|
49
|
-
(t) => t.tap(() =>
|
|
54
|
+
(t) => t.tap(() => flushToDiskInBackground)
|
|
50
55
|
),
|
|
51
56
|
set: flow(
|
|
52
57
|
store.set,
|
|
53
|
-
(t) => t.tap(() =>
|
|
58
|
+
(t) => t.tap(() => flushToDiskInBackground)
|
|
54
59
|
),
|
|
55
60
|
remove: flow(
|
|
56
61
|
store.remove,
|
|
57
|
-
(t) => t.tap(() =>
|
|
62
|
+
(t) => t.tap(() => flushToDiskInBackground)
|
|
58
63
|
)
|
|
59
64
|
} satisfies Store<PM, Id>
|
|
60
65
|
})
|
|
@@ -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<"
|
|
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 +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;
|
|
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, () =>
|
|
27
|
-
bulkSet: tsplus_module_2.flow(store.bulkSet, (t) => tsplus_module_1.tap(t, () =>
|
|
28
|
-
set: tsplus_module_2.flow(store.set, (t) => tsplus_module_1.tap(t, () =>
|
|
29
|
-
remove: tsplus_module_2.flow(store.remove, (t) => tsplus_module_1.tap(t, () =>
|
|
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,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvU3RvcmUvRGlzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxLQUFLLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUV6RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFFbkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUV6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRXpDLFNBQVMsZ0JBQWdCLENBQ3ZCLE1BQWMsRUFDZCxTQUFpQixFQUNqQixHQUFXLEVBQ1gsSUFBWSxFQUNaLElBQXlDO0lBRXpDLE9BQU8sb0JBQVcsUUFBUSxDQUFDLEVBQUMsQ0FBQztRQUMzQixNQUFNLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxPQUFPLENBQUE7UUFDbkcsTUFBTSxPQUFPLEdBQUc7WUFDZCxHQUFHLHdCQUFFLG9CQUFBLEVBQUU7aUJBQ0osWUFBWSxDQUFDLElBQUksQ0FBQyxFQUNkLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBUyxDQUFDLENBQzVCO1lBQ1IsTUFBTSxFQUFFLENBQUMsQ0FBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1NB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "0.68.
|
|
3
|
+
"version": "0.68.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -20,9 +20,9 @@
|
|
|
20
20
|
"pure-rand": "^6.0.2",
|
|
21
21
|
"redlock": "^4.2.0",
|
|
22
22
|
"@effect-app/prelude": "0.55.0",
|
|
23
|
-
"@effect-app/core": "0.54.0",
|
|
24
23
|
"@effect-app/infra-adapters": "0.47.0",
|
|
25
|
-
"@effect-app/schema": "0.48.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",
|
package/.cache/effect/134218688132dfbdea493cbe1f26e73449f2759121df35ddd5448346b59c9a8d.content
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import * as tsplus_module_1 from "@effect/io/Effect";
|
|
2
|
-
import { InvalidStateError } from "../../errors.js";
|
|
3
|
-
import { checkDuplicatePaths } from "./makeJsonSchema.js";
|
|
4
|
-
const path = { path: "/securities/:id/search/:id2", method: "get" };
|
|
5
|
-
const equalPaths = [
|
|
6
|
-
"/securities/:idt/search/:id2",
|
|
7
|
-
"/securities/:id/search/:id2t",
|
|
8
|
-
"/securities/:idt/search/:id2t"
|
|
9
|
-
]
|
|
10
|
-
.map((path) => ({ path, method: "get" }));
|
|
11
|
-
const differentPaths = [
|
|
12
|
-
"/securities/:id/search/",
|
|
13
|
-
"/securities/search/:id2",
|
|
14
|
-
"/securities/:id/:id2/search/:id3"
|
|
15
|
-
]
|
|
16
|
-
.map((path) => ({ path, method: "get" }))
|
|
17
|
-
.concat([
|
|
18
|
-
"/securities/:idt/search/:id2"
|
|
19
|
-
]
|
|
20
|
-
.map((path) => ({ path, method: "post" })));
|
|
21
|
-
test("works", () => {
|
|
22
|
-
expect(checkDuplicatePaths([path, ...differentPaths])).toStrictEqual(tsplus_module_1.succeed([path, ...differentPaths]));
|
|
23
|
-
equalPaths.forEach((p) => expect(checkDuplicatePaths([path, p])).toStrictEqual(tsplus_module_1.fail(new InvalidStateError(`Duplicate method ${p.method} for path ${p.path}`))));
|
|
24
|
-
});
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUpzb25TY2hlbWEudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvYXBpL2V4cHJlc3MvbWFrZUpzb25TY2hlbWEudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFFekQsTUFBTSxJQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFBO0FBRW5FLE1BQU0sVUFBVSxHQUFHO0lBQ2pCLDhCQUE4QjtJQUM5Qiw4QkFBOEI7SUFDOUIsK0JBQStCO0NBQ2hDO0tBQ0UsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFFM0MsTUFBTSxjQUFjLEdBR2Q7SUFDSix5QkFBeUI7SUFDekIseUJBQXlCO0lBQ3pCLGtDQUFrQztDQUNuQztLQUNFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztLQUN4QyxNQUFNLENBQUM7SUFDTiw4QkFBOEI7Q0FDL0I7S0FDRSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBRS9DLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO0lBQ2pCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsd0JBQWUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFL0csVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ3ZCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUNsRCxxQkFBWSxJQUFJLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLENBQUMsTUFBTSxhQUFhLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQ3RGLENBQ0YsQ0FBQTtBQUNILENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW52YWxpZFN0YXRlRXJyb3IgfSBmcm9tIFwiLi4vLi4vZXJyb3JzLmpzXCJcbmltcG9ydCB7IGNoZWNrRHVwbGljYXRlUGF0aHMgfSBmcm9tIFwiLi9tYWtlSnNvblNjaGVtYS5qc1wiXG5cbmNvbnN0IHBhdGggPSB7IHBhdGg6IFwiL3NlY3VyaXRpZXMvOmlkL3NlYXJjaC86aWQyXCIsIG1ldGhvZDogXCJnZXRcIiB9XG5cbmNvbnN0IGVxdWFsUGF0aHMgPSBbXG4gIFwiL3NlY3VyaXRpZXMvOmlkdC9zZWFyY2gvOmlkMlwiLFxuICBcIi9zZWN1cml0aWVzLzppZC9zZWFyY2gvOmlkMnRcIixcbiAgXCIvc2VjdXJpdGllcy86aWR0L3NlYXJjaC86aWQydFwiXG5dXG4gIC5tYXAoKHBhdGgpID0+ICh7IHBhdGgsIG1ldGhvZDogXCJnZXRcIiB9KSlcblxuY29uc3QgZGlmZmVyZW50UGF0aHM6IHtcbiAgcGF0aDogc3RyaW5nXG4gIG1ldGhvZDogc3RyaW5nXG59W10gPSBbXG4gIFwiL3NlY3VyaXRpZXMvOmlkL3NlYXJjaC9cIixcbiAgXCIvc2VjdXJpdGllcy9zZWFyY2gvOmlkMlwiLFxuICBcIi9zZWN1cml0aWVzLzppZC86aWQyL3NlYXJjaC86aWQzXCJcbl1cbiAgLm1hcCgocGF0aCkgPT4gKHsgcGF0aCwgbWV0aG9kOiBcImdldFwiIH0pKVxuICAuY29uY2F0KFtcbiAgICBcIi9zZWN1cml0aWVzLzppZHQvc2VhcmNoLzppZDJcIlxuICBdXG4gICAgLm1hcCgocGF0aCkgPT4gKHsgcGF0aCwgbWV0aG9kOiBcInBvc3RcIiB9KSkpXG5cbnRlc3QoXCJ3b3Jrc1wiLCAoKSA9PiB7XG4gIGV4cGVjdChjaGVja0R1cGxpY2F0ZVBhdGhzKFtwYXRoLCAuLi5kaWZmZXJlbnRQYXRoc10pKS50b1N0cmljdEVxdWFsKEVmZmVjdC5zdWNjZWVkKFtwYXRoLCAuLi5kaWZmZXJlbnRQYXRoc10pKVxuXG4gIGVxdWFsUGF0aHMuZm9yRWFjaCgocCkgPT5cbiAgICBleHBlY3QoY2hlY2tEdXBsaWNhdGVQYXRocyhbcGF0aCwgcF0pKS50b1N0cmljdEVxdWFsKFxuICAgICAgRWZmZWN0LmZhaWwobmV3IEludmFsaWRTdGF0ZUVycm9yKGBEdXBsaWNhdGUgbWV0aG9kICR7cC5tZXRob2R9IGZvciBwYXRoICR7cC5wYXRofWApKVxuICAgIClcbiAgKVxufSlcbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
eeeabf23eeed55cc19be92fad9db0ad57b0af0d181bde005fe3c6a7181ab452f
|
package/.cache/effect/14eb9da4ca6d22162888c7fdb7f39ab772d2a2dc6625db6031ecdb32ac89158f.content
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
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
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
5
|
-
import { InvalidStateError } from "../../errors.js";
|
|
6
|
-
import * as RS from "./schema/routing.js";
|
|
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
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Work in progress JSONSchema generator.
|
|
56
|
-
*/
|
|
57
|
-
export function makeJsonSchema(r) {
|
|
58
|
-
return tsplus_module_1.map(tsplus_module_1.flatMap(tsplus_module_3.ext_forEach(tsplus_module_2.fromIterable(r), RS.makeFromSchema), checkDuplicatePaths), (e) => {
|
|
59
|
-
const map = ({ method, path, responses, ...rest }) => ({
|
|
60
|
-
[method]: {
|
|
61
|
-
...rest,
|
|
62
|
-
responses: responses.reduce((prev, cur) => {
|
|
63
|
-
prev[cur.statusCode] = cur.type;
|
|
64
|
-
return prev;
|
|
65
|
-
}, {})
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
return e.reduce((prev, e) => {
|
|
69
|
-
const path = e.path.split("?")[0].replace(rx, (_a, b) => `{${b}}`);
|
|
70
|
-
prev[path] = {
|
|
71
|
-
...prev[path],
|
|
72
|
-
...map(e)
|
|
73
|
-
};
|
|
74
|
-
return prev;
|
|
75
|
-
}, {});
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
class Response {
|
|
79
|
-
statusCode;
|
|
80
|
-
type;
|
|
81
|
-
constructor(statusCode, type // string | JSONSchema | SubSchema
|
|
82
|
-
) {
|
|
83
|
-
this.statusCode = statusCode;
|
|
84
|
-
this.type = type;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUpzb25TY2hlbWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL2FwaS9leHByZXNzL21ha2VKc29uU2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVEQUF1RDtBQUV2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUNuRCxPQUFPLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBSXpDLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQTtBQUlwQixNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLEtBQW1CO0lBRW5CLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUtqQyxNQUFNLFdBQVcsR0FBZ0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFBO0lBQ2xELE1BQU0sS0FBSyxHQUFHLDRCQUE0QixDQUFBO0lBRTFDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFO1FBQ3hCLE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMzQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNiLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDTixDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQVc7WUFDaEQsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBRSxFQUFXLENBQ2pELENBQUE7UUFFSCxJQUFJLGFBQWEsR0FBMkIsV0FBVyxDQUFBO1FBQ3ZELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHO1lBQ25DLE1BQU0sS0FBSyxHQUFHLE9BQU8s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R0FBRyxDQUFDLENBQUE7WUFDbEUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHO2dCQUNYLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDYixHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQVE7YUFDakIsQ0FBQTtZQUNELE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQyxFQUNELEVBQTZELENBQzlELENBQUE7SUFDSCxDQUFDLENBQUMsQ0FBQTtBQUNOLENBQUM7QUFFRCxNQUFNLFFBQVE7SUFFTTtJQUNBO0lBRmxCLFlBQ2tCLFVBQWtCLEVBQ2xCLElBQVMsQ0FBQyxrQ0FBa0M7O1FBRDVDLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDbEIsU0FBSSxHQUFKLElBQUksQ0FBSztJQUN4QixDQUFDO0NBQ0wiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5cbmltcG9ydCB7IEludmFsaWRTdGF0ZUVycm9yIH0gZnJvbSBcIi4uLy4uL2Vycm9ycy5qc1wiXG5pbXBvcnQgKiBhcyBSUyBmcm9tIFwiLi9zY2hlbWEvcm91dGluZy5qc1wiXG5cbnR5cGUgTWV0aG9kcyA9IFwiR0VUXCIgfCBcIlBVVFwiIHwgXCJQT1NUXCIgfCBcIlBBVENIXCIgfCBcIkRFTEVURVwiXG5cbmNvbnN0IHJ4ID0gLzooXFx3KykvZ1xuXG50eXBlIF9BPEM+ID0gQyBleHRlbmRzIFJlYWRvbmx5QXJyYXk8aW5mZXIgQT4gPyBBIDogbmV2ZXJcblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrRHVwbGljYXRlUGF0aHM8VCBleHRlbmRzIHsgcGF0aDogc3RyaW5nOyBtZXRob2Q6IHN0cmluZyB9PihcbiAgcGF0aHM6IHJlYWRvbmx5IFRbXVxuKTogRWZmZWN0PG5ldmVyLCBJbnZhbGlkU3RhdGVFcnJvciwgcmVhZG9ubHkgVFtdPiB7XG4gIGNvbnN0IG1ldGhvZHMgPSBTeW1ib2woXCJtZXRob2RzXCIpXG4gIGludGVyZmFjZSBQYXRoTWV0aG9kcyB7XG4gICAgW2tleTogc3RyaW5nIHwgbnVtYmVyXTogdGhpcyB8IHVuZGVmaW5lZFxuICAgIFttZXRob2RzXTogc3RyaW5nW11cbiAgfVxuICBjb25zdCBwYXRoTWV0aG9kczogUGF0aE1ldGhvZHMgPSB7IFttZXRob2RzXTogW10gfVxuICBjb25zdCByZWdleCA9IC8oPzpefFxcLykoW14vOlxcbl0rKXw6KFxcdyspL2dcblxuICBmb3IgKGNvbnN0IHBhdGggb2YgcGF0aHMpIHtcbiAgICBjb25zdCBtYXRjaGVzID0gWy4uLnBhdGgucGF0aC5tYXRjaEFsbChyZWdleCldXG4gICAgICAubWFwKChtYXRjaCkgPT5cbiAgICAgICAgbWF0Y2hbMV1cbiAgICAgICAgICA/IHsgX3RhZzogXCJyZXNvdXJjZVwiLCB2YWx1ZTogbWF0Y2hbMV0gfSBhcyBjb25zdFxuICAgICAgICAgIDogeyBfdGFnOiBcInBhcmFtXCIsIHZhbHVlOiBtYXRjaFsyXSEgfSBhcyBjb25zdFxuICAgICAgKVxuXG4gICAgbGV0IHBhdGhOYXZpZ2F0b3I6IFBhdGhNZXRob2RzIHwgc3RyaW5nW10gPSBwYXRoTWV0aG9kc1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWF0Y2hlcy5sZW5ndGg7KSB7XG4gICAgICBjb25zdCBtYXRjaCA9IG1hdGNoZXNbaV0hXG4gICAgICBzd2l0Y2ggKG1hdGNoLl90YWcpIHtcbiAgICAgICAgY2FzZSBcInJlc291cmNlXCI6IHtcbiAgICAgICAgICBpZiAoIShtYXRjaC52YWx1ZSBpbiAocGF0aE5hdmlnYXRvcikpKSB7XG4gICAgICAgICAgICA7KHBhdGhOYXZpZ2F0b3IpW21hdGNoLnZhbHVlXSA9IHsgW21ldGhvZHNdOiBbXSB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHBhdGhOYXZpZ2F0b3IgPSAocGF0aE5hdmlnYXRvcilbbWF0Y2gudmFsdWVdIVxuICAgICAgICAgIGkrK1xuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcInBhcmFtXCI6IHtcbiAgICAgICAgICBsZXQgbnVtYmVyT2ZQYXJhbXMgPSAxXG4gICAgICAgICAgd2hpbGUgKGkgPCBtYXRjaGVzLmxlbmd0aCAmJiBtYXRjaGVzW2kgKyAxXT8uX3RhZyA9PT0gXCJwYXJhbVwiKSB7XG4gICAgICAgICAgICBudW1iZXJPZlBhcmFtcysrXG4gICAgICAgICAgICBpKytcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIShudW1iZXJPZlBhcmFtcyBpbiBwYXRoTmF2aWdhdG9yKSkge1xuICAgICAgICAgICAgOyhwYXRoTmF2aWdhdG9yKVtudW1iZXJPZlBhcmFtc10gPSB7IFttZXRob2RzXTogW10gfVxuICAgICAgICAgIH1cbiAgICAgICAgICBwYXRoTmF2aWdhdG9yID0gKHBhdGhOYXZpZ2F0b3IpW251bWJlck9mUGFyYW1zXSFcbiAgICAgICAgICBpKytcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBhdGhOYXZpZ2F0b3JbbWV0aG9kc10uaW5jbHVkZXMocGF0aC5tZXRob2QpKSB7XG4gICAgICAvLyB0aHJvdyBkdXBsaWNhdGUgcGF0aC1tZXRob2QgZXJyb3JcbiAgICAgIHJldHVybiBFZmZlY3QuZmFpbChuZXcgSW52YWxpZFN0YXRlRXJyb3IoYER1cGxpY2F0ZSBtZXRob2QgJHtwYXRoLm1ldGhvZH0gZm9yIHBhdGggJHtwYXRoLnBhdGh9YCkpXG4gICAgfVxuICAgIHBhdGhOYXZpZ2F0b3JbbWV0aG9kc10ucHVzaChwYXRoLm1ldGhvZClcbiAgfVxuXG4gIHJldHVybiBFZmZlY3Quc3VjY2VlZChwYXRocylcbn1cblxuLyoqXG4gKiBXb3JrIGluIHByb2dyZXNzIEpTT05TY2hlbWEgZ2VuZXJhdG9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFrZUpzb25TY2hlbWEocjogSXRlcmFibGU8UlMuUm91dGVEZXNjcmlwdG9yQW55Pikge1xuICByZXR1cm4gQ2h1bmtcbiAgICAuZnJvbUl0ZXJhYmxlKHIpXG4gICAgLmZvckVhY2hFZmZlY3QoUlMubWFrZUZyb21TY2hlbWEpXG4gICAgLmZsYXRNYXAoY2hlY2tEdXBsaWNhdGVQYXRocylcbiAgICAubWFwKChlKSA9PiB7XG4gICAgICBjb25zdCBtYXAgPSAoeyBtZXRob2QsIHBhdGgsIHJlc3BvbnNlcywgLi4ucmVzdCB9OiBfQTx0eXBlb2YgZT4pID0+ICh7XG4gICAgICAgIFttZXRob2RdOiB7XG4gICAgICAgICAgLi4ucmVzdCxcbiAgICAgICAgICByZXNwb25zZXM6IChyZXNwb25zZXMgYXMgQXJyYXk8YW55PikucmVkdWNlKFxuICAgICAgICAgICAgKHByZXYsIGN1cikgPT4ge1xuICAgICAgICAgICAgICBwcmV2W2N1ci5zdGF0dXNDb2RlXSA9IGN1ci50eXBlXG4gICAgICAgICAgICAgIHJldHVybiBwcmV2XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge30gYXMgUmVjb3JkPFJlc3BvbnNlW1wic3RhdHVzQ29kZVwiXSwgUmVzcG9uc2VbXCJ0eXBlXCJdPlxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIHJldHVybiBlLnJlZHVjZShcbiAgICAgICAgKHByZXYsIGUpID0+IHtcbiAgICAgICAgICBjb25zdCBwYXRoID0gZS5wYXRoLnNwbGl0KFwiP1wiKVswXS5yZXBsYWNlKHJ4LCAoX2EsIGIpID0+IGB7JHtifX1gKVxuICAgICAgICAgIHByZXZbcGF0aF0gPSB7XG4gICAgICAgICAgICAuLi5wcmV2W3BhdGhdLFxuICAgICAgICAgICAgLi4ubWFwKGUpIGFzIGFueVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcHJldlxuICAgICAgICB9LFxuICAgICAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8TWV0aG9kcywgUmV0dXJuVHlwZTx0eXBlb2YgbWFwPj4+XG4gICAgICApXG4gICAgfSlcbn1cblxuY2xhc3MgUmVzcG9uc2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3RhdHVzQ29kZTogbnVtYmVyLFxuICAgIHB1YmxpYyByZWFkb25seSB0eXBlOiBhbnkgLy8gc3RyaW5nIHwgSlNPTlNjaGVtYSB8IFN1YlNjaGVtYVxuICApIHt9XG59XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
8cc23346cd9bd1e663ddc1a53b36d0946bd5be2c5d457dd4fb342a3ea8f7e52e
|
package/.cache/effect/8594f0f42afc0641b00e88998000cc47382a1d07da31f4a148f7976701ca22d5.content
DELETED
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import * as tsplus_module_1 from "@effect-app/core/Option";
|
|
2
|
-
import * as tsplus_module_2 from "@effect/io/Effect";
|
|
3
|
-
import * as tsplus_module_3 from "@effect/data/Option";
|
|
4
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
5
|
-
import * as MO from "@effect-app/schema";
|
|
6
|
-
import { isObjectSchema } from "@effect-app/infra-adapters/Openapi/atlas-plutus";
|
|
7
|
-
import * as OpenApi from "@effect-app/infra-adapters/Openapi/index";
|
|
8
|
-
export function asRouteDescriptionAny(i) {
|
|
9
|
-
return i;
|
|
10
|
-
}
|
|
11
|
-
export function arrAsRouteDescriptionAny(arr) {
|
|
12
|
-
return arr.map(asRouteDescriptionAny);
|
|
13
|
-
}
|
|
14
|
-
export function makeRouteDescriptor(path, method, handler) {
|
|
15
|
-
return { path, method, handler, _tag: "Schema" };
|
|
16
|
-
}
|
|
17
|
-
export function makeFromSchema(e) {
|
|
18
|
-
const jsonSchema_ = OpenApi.for;
|
|
19
|
-
const jsonSchema = (r) => jsonSchema_(r);
|
|
20
|
-
const { Request: Req, Response: Res_, ResponseOpenApi } = e.handler;
|
|
21
|
-
const r = ResponseOpenApi ?? Res_;
|
|
22
|
-
const Res = r ? MO.extractSchema(r) : MO.Void;
|
|
23
|
-
// TODO EffectOption.fromNullable(Req.Headers).flatMapOpt(jsonSchema)
|
|
24
|
-
// TODO: use the path vs body etc serialisation also in the Client.
|
|
25
|
-
const makeReqQuerySchema = tsplus_module_2.flatMap(tsplus_module_2.sync(() => tsplus_module_3.fromNullable(Req.Query)), (_) => tsplus_module_3.match(_, () => tsplus_module_2.sync(() => tsplus_module_1.none), (_) => tsplus_module_2.map(jsonSchema(_), tsplus_module_3.some)));
|
|
26
|
-
const makeReqHeadersSchema = tsplus_module_2.flatMap(tsplus_module_2.sync(() => tsplus_module_3.fromNullable(Req.Headers)), (_) => tsplus_module_3.match(_, () => tsplus_module_2.sync(() => tsplus_module_1.none), (_) => tsplus_module_2.map(jsonSchema(_), tsplus_module_3.some)));
|
|
27
|
-
const makeReqCookieSchema = tsplus_module_2.flatMap(tsplus_module_2.sync(() => tsplus_module_3.fromNullable(Req.Cookie)), (_) => tsplus_module_3.match(_, () => tsplus_module_2.sync(() => tsplus_module_1.none), (_) => tsplus_module_2.map(jsonSchema(_), tsplus_module_3.some)));
|
|
28
|
-
const makeReqPathSchema = tsplus_module_2.flatMap(tsplus_module_2.sync(() => tsplus_module_3.fromNullable(Req.Path)), (_) => tsplus_module_3.match(_, () => tsplus_module_2.sync(() => tsplus_module_1.none), (_) => tsplus_module_2.map(jsonSchema(_), tsplus_module_3.some)));
|
|
29
|
-
const makeReqBodySchema = tsplus_module_2.flatMap(tsplus_module_2.sync(() => tsplus_module_3.fromNullable(Req.Body)), (_) => tsplus_module_3.match(_, () => tsplus_module_2.sync(() => tsplus_module_1.none), (_) => tsplus_module_2.map(jsonSchema(_), tsplus_module_3.some)));
|
|
30
|
-
// const makeReqSchema = schema(Req)
|
|
31
|
-
const makeResSchema = jsonSchema_(Res);
|
|
32
|
-
function makeParameters(inn) {
|
|
33
|
-
return (a) => {
|
|
34
|
-
return tsplus_module_3.getOrElse(tsplus_module_3.map(tsplus_module_3.flatMap(a, (o) => (isObjectSchema(o) ? tsplus_module_3.some(o) : tsplus_module_1.none)), (x) => {
|
|
35
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
36
|
-
return Object.keys(x.properties).map((p) => {
|
|
37
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
38
|
-
const schema = x.properties[p];
|
|
39
|
-
const required = Boolean(x.required?.includes(p));
|
|
40
|
-
return { name: p, in: inn, required, schema };
|
|
41
|
-
});
|
|
42
|
-
}), () => []);
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
return tsplus_module_2.map(tsplus_module_2.all({
|
|
46
|
-
req: jsonSchema(Req.Model),
|
|
47
|
-
reqQuery: makeReqQuerySchema,
|
|
48
|
-
reqHeaders: makeReqHeadersSchema,
|
|
49
|
-
reqBody: makeReqBodySchema,
|
|
50
|
-
reqPath: makeReqPathSchema,
|
|
51
|
-
reqCookie: makeReqCookieSchema,
|
|
52
|
-
res: makeResSchema
|
|
53
|
-
}), (_) => {
|
|
54
|
-
// console.log("$$$ REQ", _.req)
|
|
55
|
-
const isEmpty = !e.handler.Response || e.handler.Response === MO.Void;
|
|
56
|
-
return {
|
|
57
|
-
path: e.path,
|
|
58
|
-
method: e.method.toLowerCase(),
|
|
59
|
-
tags: e.info?.tags,
|
|
60
|
-
description: _.req?.description,
|
|
61
|
-
summary: _.req?.summary,
|
|
62
|
-
operationId: _.req?.title,
|
|
63
|
-
parameters: [
|
|
64
|
-
...makeParameters("path")(_.reqPath),
|
|
65
|
-
...makeParameters("query")(_.reqQuery),
|
|
66
|
-
...makeParameters("header")(_.reqHeaders),
|
|
67
|
-
...makeParameters("cookie")(_.reqCookie)
|
|
68
|
-
],
|
|
69
|
-
requestBody: tsplus_module_1.getOrUndefined(tsplus_module_3.map(_
|
|
70
|
-
.reqBody, (schema) => ({
|
|
71
|
-
content: { "application/json": { schema } }
|
|
72
|
-
}))),
|
|
73
|
-
responses: [
|
|
74
|
-
isEmpty
|
|
75
|
-
? new Response(204, { description: "Empty" })
|
|
76
|
-
: new Response(200, {
|
|
77
|
-
description: "OK",
|
|
78
|
-
content: { "application/json": { schema: _.res } }
|
|
79
|
-
}),
|
|
80
|
-
new Response(400, { description: "ValidationError" })
|
|
81
|
-
]
|
|
82
|
-
.concat(e.path.includes(":") && isEmpty
|
|
83
|
-
? [new Response(404, { description: "NotFoundError" })]
|
|
84
|
-
: [])
|
|
85
|
-
};
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
class Response {
|
|
89
|
-
statusCode;
|
|
90
|
-
type;
|
|
91
|
-
constructor(statusCode, type // string | JSONSchema | SubSchema
|
|
92
|
-
) {
|
|
93
|
-
this.statusCode = statusCode;
|
|
94
|
-
this.type = type;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL19zcmMvYXBpL2V4cHJlc3Mvc2NoZW1hL3JvdXRpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdURBQXVEO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFJeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlEQUFpRCxDQUFBO0FBQ2hGLE9BQU8sS0FBSyxPQUFPLE1BQU0sMENBQTBDLENBQUE7QUFHbkUsTUFBTSxVQUFVLHFCQUFxQixDQUErQixDQUFJO0lBQ3RFLE9BQU8sQ0FBdUIsQ0FBQTtBQUNoQyxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUN0QyxHQUFxQjtJQUVyQixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQTtBQUN2QyxDQUFDO0FBa0NELE1BQU0sVUFBVSxtQkFBbUIsQ0FZakMsSUFBWSxFQUNaLE1BQWMsRUFDZCxPQVVDO0lBRUQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBVzdDLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsQ0FBZ0U7SUFFaEUsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQTtJQUMvQixNQUFNLFVBQVUsR0FBRyxDQUFPLENBQWtCLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMvRCxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUE7SUFDbkUsTUFBTSxDQUFDLEdBQUcsZUFBZSxJQUFJLElBQUksQ0FBQTtJQUNqQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMs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eHBsaWNpdC1hbnkgKi9cbmltcG9ydCAqIGFzIE1PIGZyb20gXCJAZWZmZWN0LWFwcC9zY2hlbWFcIlxuaW1wb3J0IHR5cGUgeyBNZXRob2RzIH0gZnJvbSBcIkBlZmZlY3QtYXBwL3NjaGVtYVwiXG5cbmltcG9ydCB0eXBlIHsgSlNPTlNjaGVtYSwgUGFyYW1ldGVyTG9jYXRpb24sIFN1YlNjaGVtYSB9IGZyb20gXCJAZWZmZWN0LWFwcC9pbmZyYS1hZGFwdGVycy9PcGVuYXBpL2F0bGFzLXBsdXR1c1wiXG5pbXBvcnQgeyBpc09iamVjdFNjaGVtYSB9IGZyb20gXCJAZWZmZWN0LWFwcC9pbmZyYS1hZGFwdGVycy9PcGVuYXBpL2F0bGFzLXBsdXR1c1wiXG5pbXBvcnQgKiBhcyBPcGVuQXBpIGZyb20gXCJAZWZmZWN0LWFwcC9pbmZyYS1hZGFwdGVycy9PcGVuYXBpL2luZGV4XCJcbmltcG9ydCB0eXBlIHsgUmVxdWVzdEhhbmRsZXIsIFJlcXVlc3RIYW5kbGVyT3B0UmVzIH0gZnJvbSBcIi4vcmVxdWVzdEhhbmRsZXIuanNcIlxuXG5leHBvcnQgZnVuY3Rpb24gYXNSb3V0ZURlc2NyaXB0aW9uQW55PFIgZXh0ZW5kcyBSb3V0ZURlc2NyaXB0b3JBbnk+KGk6IFIpIHtcbiAgcmV0dXJuIGkgYXMgUm91dGVEZXNjcmlwdG9yQW55XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcnJBc1JvdXRlRGVzY3JpcHRpb25Bbnk8UiBleHRlbmRzIFJvdXRlRGVzY3JpcHRvckFueT4oXG4gIGFycjogUmVhZG9ubHlBcnJheTxSPlxuKSB7XG4gIHJldHVybiBhcnIubWFwKGFzUm91dGVEZXNjcmlwdGlvbkFueSlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSb3V0ZURlc2NyaXB0b3I8XG4gIFIsXG4gIFBhdGhBLFxuICBDb29raWVBLFxuICBRdWVyeUEsXG4gIEJvZHlBLFxuICBIZWFkZXJBLFxuICBSZXFBIGV4dGVuZHMgUGF0aEEgJiBRdWVyeUEgJiBCb2R5QSxcbiAgUmVzQSxcbiAgRXJyb3JzLFxuICBNRVRIT0QgZXh0ZW5kcyBNZXRob2RzID0gTWV0aG9kc1xuPiB7XG4gIHBhdGg6IHN0cmluZ1xuICBtZXRob2Q6IE1FVEhPRFxuICBoYW5kbGVyOiBSZXF1ZXN0SGFuZGxlcjxSLCBQYXRoQSwgQ29va2llQSwgUXVlcnlBLCBCb2R5QSwgSGVhZGVyQSwgUmVxQSwgUmVzQSwgRXJyb3JzPlxuICBpbmZvPzoge1xuICAgIHRhZ3M6IFJlYWRvbmx5QXJyYXk8c3RyaW5nPlxuICB9XG59XG5cbmV4cG9ydCB0eXBlIFJvdXRlRGVzY3JpcHRvckFueSA9IFJvdXRlRGVzY3JpcHRvcjxcbiAgYW55LFxuICBhbnksXG4gIGFueSxcbiAgYW55LFxuICBhbnksXG4gIGFueSxcbiAgYW55LFxuICBhbnksXG4gIGFueVxuPlxuXG5leHBvcnQgZnVuY3Rpb24gbWFrZVJvdXRlRGVzY3JpcHRvcjxcbiAgUixcbiAgUGF0aEEsXG4gIENvb2tpZUEsXG4gIFF1ZXJ5QSxcbiAgQm9keUEsXG4gIEhlYWRlckEsXG4gIFJlcUEgZXh0ZW5kcyBQYXRoQSAmIFF1ZXJ5QSAmIEJvZHlBLFxuICBSZXNBID0gdm9pZCxcbiAgRXJyb3JzID0gYW55LFxuICBNRVRIT0QgZXh0ZW5kcyBNZXRob2RzID0gTWV0aG9kc1xuPihcbiAgcGF0aDogc3RyaW5nLFxuICBtZXRob2Q6IE1FVEhPRCxcbiAgaGFuZGxlcjogUmVxdWVzdEhhbmRsZXJPcHRSZXM8XG4gICAgUixcbiAgICBQYXRoQSxcbiAgICBDb29raWVBLFxuICAgIFF1ZXJ5QSxcbiAgICBCb2R5QSxcbiAgICBIZWFkZXJBLFxuICAgIFJlcUEsXG4gICAgUmVzQSxcbiAgICBFcnJvcnNcbiAgPlxuKSB7XG4gIHJldHVybiB7IHBhdGgsIG1ldGhvZCwgaGFuZGxlciwgX3RhZzogXCJTY2hlbWFcIiB9IGFzIFJvdXRlRGVzY3JpcHRvcjxcbiAgICBSLFxuICAgIFBhdGhBLFxuICAgIENvb2tpZUEsXG4gICAgUXVlcnlBLFxuICAgIEJvZHlBLFxuICAgIEhlYWRlckEsXG4gICAgUmVxQSxcbiAgICBSZXNBLFxuICAgIEVycm9ycyxcbiAgICBNRVRIT0RcbiAgPlxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFrZUZyb21TY2hlbWE8UmVzQT4oXG4gIGU6IFJvdXRlRGVzY3JpcHRvcjxhbnksIGFueSwgYW55LCBhbnksIGFueSwgYW55LCBSZXNBLCBhbnksIGFueT5cbikge1xuICBjb25zdCBqc29uU2NoZW1hXyA9IE9wZW5BcGkuZm9yXG4gIGNvbnN0IGpzb25TY2hlbWEgPSA8RSwgQT4ocjogTU8uUmVxUmVzPEUsIEE+KSA9PiBqc29uU2NoZW1hXyhyKVxuICBjb25zdCB7IFJlcXVlc3Q6IFJlcSwgUmVzcG9uc2U6IFJlc18sIFJlc3BvbnNlT3BlbkFwaSB9ID0gZS5oYW5kbGVyXG4gIGNvbnN0IHIgPSBSZXNwb25zZU9wZW5BcGkgPz8gUmVzX1xuICBjb25zdCBSZXMgPSByID8gTU8uZXh0cmFjdFNjaGVtYShyKSA6IE1PLlZvaWRcbiAgLy8gVE9ETyBFZmZlY3RPcHRpb24uZnJvbU51bGxhYmxlKFJlcS5IZWFkZXJzKS5mbGF0TWFwT3B0KGpzb25TY2hlbWEpXG4gIC8vIFRPRE86IHVzZSB0aGUgcGF0aCB2cyBib2R5IGV0YyBzZXJpYWxpc2F0aW9uIGFsc28gaW4gdGhlIENsaWVudC5cbiAgY29uc3QgbWFrZVJlcVF1ZXJ5U2NoZW1hID0gRWZmZWN0KE9wdGlvbi5mcm9tTnVsbGFibGUoUmVxLlF1ZXJ5KSkuZmxhdE1hcCgoXykgPT5cbiAgICBfLm1hdGNoKFxuICAgICAgKCkgPT4gRWZmZWN0KE9wdGlvbi5ub25lKSxcbiAgICAgIChfKSA9PiBqc29uU2NoZW1hKF8pLm1hcChPcHRpb24uc29tZSlcbiAgICApXG4gIClcbiAgY29uc3QgbWFrZVJlcUhlYWRlcnNTY2hlbWEgPSBFZmZlY3QoT3B0aW9uLmZyb21OdWxsYWJsZShSZXEuSGVhZGVycykpLmZsYXRNYXAoKF8pID0+XG4gICAgXy5tYXRjaChcbiAgICAgICgpID0+IEVmZmVjdChPcHRpb24ubm9uZSksXG4gICAgICAoXykgPT4ganNvblNjaGVtYShfKS5tYXAoT3B0aW9uLnNvbWUpXG4gICAgKVxuICApXG4gIGNvbnN0IG1ha2VSZXFDb29raWVTY2hlbWEgPSBFZmZlY3QoT3B0aW9uLmZyb21OdWxsYWJsZShSZXEuQ29va2llKSkuZmxhdE1hcCgoXykgPT5cbiAgICBfLm1hdGNoKFxuICAgICAgKCkgPT4gRWZmZWN0KE9wdGlvbi5ub25lKSxcbiAgICAgIChfKSA9PiBqc29uU2NoZW1hKF8pLm1hcChPcHRpb24uc29tZSlcbiAgICApXG4gIClcbiAgY29uc3QgbWFrZVJlcVBhdGhTY2hlbWEgPSBFZmZlY3QoT3B0aW9uLmZyb21OdWxsYWJsZShSZXEuUGF0aCkpLmZsYXRNYXAoKF8pID0+XG4gICAgXy5tYXRjaChcbiAgICAgICgpID0+IEVmZmVjdChPcHRpb24ubm9uZSksXG4gICAgICAoXykgPT4ganNvblNjaGVtYShfKS5tYXAoT3B0aW9uLnNvbWUpXG4gICAgKVxuICApXG4gIGNvbnN0IG1ha2VSZXFCb2R5U2NoZW1hID0gRWZmZWN0KE9wdGlvbi5mcm9tTnVsbGFibGUoUmVxLkJvZHkpKS5mbGF0TWFwKChfKSA9PlxuICAgIF8ubWF0Y2goXG4gICAgICAoKSA9PiBFZmZlY3QoT3B0aW9uLm5vbmUpLFxuICAgICAgKF8pID0+IGpzb25TY2hlbWEoXykubWFwKE9wdGlvbi5zb21lKVxuICAgIClcbiAgKVxuICAvLyBjb25zdCBtYWtlUmVxU2NoZW1hID0gc2NoZW1hKFJlcSlcblxuICBjb25zdCBtYWtlUmVzU2NoZW1hID0ganNvblNjaGVtYV8oUmVzIGFzIGFueSlcblxuICBmdW5jdGlvbiBtYWtlUGFyYW1ldGVycyhpbm46IFBhcmFtZXRlckxvY2F0aW9uKSB7XG4gICAgcmV0dXJuIChhOiBPcHRpb248SlNPTlNjaGVtYSB8IFN1YlNjaGVtYT4pID0+IHtcbiAgICAgIHJldHVybiBhXG4gICAgICAgIC5mbGF0TWFwKChvKSA9PiAoaXNPYmplY3RTY2hlbWEobykgPyBPcHRpb24obykgOiBPcHRpb24ubm9uZSkpXG4gICAgICAgIC5tYXAoKHgpID0+IHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgICAgICAgIHJldHVybiBPYmplY3Qua2V5cyh4LnByb3BlcnRpZXMhKS5tYXAoKHApID0+IHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICAgICAgICBjb25zdCBzY2hlbWEgPSB4LnByb3BlcnRpZXMhW3BdXG4gICAgICAgICAgICBjb25zdCByZXF1aXJlZCA9IEJvb2xlYW4oeC5yZXF1aXJlZD8uaW5jbHVkZXMocCkpXG4gICAgICAgICAgICByZXR1cm4geyBuYW1lOiBwLCBpbjogaW5uLCByZXF1aXJlZCwgc2NoZW1hIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgICAuZ2V0T3JFbHNlKCgpID0+IFtdKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBFZmZlY3RcbiAgICAuYWxsKHtcbiAgICAgIHJlcToganNvblNjaGVtYShSZXEuTW9kZWwpLFxuICAgICAgcmVxUXVlcnk6IG1ha2VSZXFRdWVyeVNjaGVtYSxcbiAgICAgIHJlcUhlYWRlcnM6IG1ha2VSZXFIZWFkZXJzU2NoZW1hLFxuICAgICAgcmVxQm9keTogbWFrZVJlcUJvZHlTY2hlbWEsXG4gICAgICByZXFQYXRoOiBtYWtlUmVxUGF0aFNjaGVtYSxcbiAgICAgIHJlcUNvb2tpZTogbWFrZVJlcUNvb2tpZVNjaGVtYSxcbiAgICAgIHJlczogbWFrZVJlc1NjaGVtYVxuICAgIH0pXG4gICAgLm1hcCgoXykgPT4ge1xuICAgICAgLy8gY29uc29sZS5sb2coXCIkJCQgUkVRXCIsIF8ucmVxKVxuICAgICAgY29uc3QgaXNFbXB0eSA9ICFlLmhhbmRsZXIuUmVzcG9uc2UgfHwgZS5oYW5kbGVyLlJlc3BvbnNlID09PSBNTy5Wb2lkXG4gICAgICByZXR1cm4ge1xuICAgICAgICBwYXRoOiBlLnBhdGgsXG4gICAgICAgIG1ldGhvZDogZS5tZXRob2QudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgdGFnczogZS5pbmZvPy50YWdzLFxuICAgICAgICBkZXNjcmlwdGlvbjogXy5yZXE/LmRlc2NyaXB0aW9uLFxuICAgICAgICBzdW1tYXJ5OiBfLnJlcT8uc3VtbWFyeSxcbiAgICAgICAgb3BlcmF0aW9uSWQ6IF8ucmVxPy50aXRsZSxcbiAgICAgICAgcGFyYW1ldGVyczogW1xuICAgICAgICAgIC4uLm1ha2VQYXJhbWV0ZXJzKFwicGF0aFwiKShfLnJlcVBhdGgpLFxuICAgICAgICAgIC4uLm1ha2VQYXJhbWV0ZXJzKFwicXVlcnlcIikoXy5yZXFRdWVyeSksXG4gICAgICAgICAgLi4ubWFrZVBhcmFtZXRlcnMoXCJoZWFkZXJcIikoXy5yZXFIZWFkZXJzKSxcbiAgICAgICAgICAuLi5tYWtlUGFyYW1ldGVycyhcImNvb2tpZVwiKShfLnJlcUNvb2tpZSlcbiAgICAgICAgXSxcbiAgICAgICAgcmVxdWVzdEJvZHk6IF9cbiAgICAgICAgICAucmVxQm9keVxuICAgICAgICAgIC5tYXAoKHNjaGVtYSkgPT4gKHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IHsgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHsgc2NoZW1hIH0gfVxuICAgICAgICAgIH0pKVxuICAgICAgICAgIC52YWx1ZSxcbiAgICAgICAgcmVzcG9uc2VzOiBbXG4gICAgICAgICAgaXNFbXB0eVxuICAgICAgICAgICAgPyBuZXcgUmVzcG9uc2UoMjA0LCB7IGRlc2NyaXB0aW9uOiBcIkVtcHR5XCIgfSlcbiAgICAgICAgICAgIDogbmV3IFJlc3BvbnNlKDIwMCwge1xuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJPS1wiLFxuICAgICAgICAgICAgICBjb250ZW50OiB7IFwiYXBwbGljYXRpb24vanNvblwiOiB7IHNjaGVtYTogXy5yZXMgfSB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICBuZXcgUmVzcG9uc2UoNDAwLCB7IGRlc2NyaXB0aW9uOiBcIlZhbGlkYXRpb25FcnJvclwiIH0pXG4gICAgICAgIF1cbiAgICAgICAgICAuY29uY2F0KFxuICAgICAgICAgICAgZS5wYXRoLmluY2x1ZGVzKFwiOlwiKSAmJiBpc0VtcHR5XG4gICAgICAgICAgICAgID8gW25ldyBSZXNwb25zZSg0MDQsIHsgZGVzY3JpcHRpb246IFwiTm90Rm91bmRFcnJvclwiIH0pXVxuICAgICAgICAgICAgICA6IFtdXG4gICAgICAgICAgKVxuICAgICAgfVxuICAgIH0pXG59XG5cbmNsYXNzIFJlc3BvbnNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHN0YXR1c0NvZGU6IG51bWJlcixcbiAgICBwdWJsaWMgcmVhZG9ubHkgdHlwZTogYW55IC8vIHN0cmluZyB8IEpTT05TY2hlbWEgfCBTdWJTY2hlbWFcbiAgKSB7fVxufVxuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
afd0a6760e1c0bb81d8f009c93722e5100019cd98eaaba1b82175573756e27d7
|