@effect-app/infra 0.24.2 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/_cjs/_ext/Array.cjs +2 -3
  3. package/_cjs/_ext/Array.cjs.map +1 -1
  4. package/_cjs/api/codec.cjs +1 -1
  5. package/_cjs/api/codec.cjs.map +1 -1
  6. package/_cjs/api/defaultErrorHandler.cjs +17 -18
  7. package/_cjs/api/defaultErrorHandler.cjs.map +1 -1
  8. package/_cjs/api/express/makeJsonSchema.cjs +4 -4
  9. package/_cjs/api/express/makeJsonSchema.cjs.map +1 -1
  10. package/_cjs/api/express/makeOpenApiSpecs.cjs +2 -2
  11. package/_cjs/api/express/makeOpenApiSpecs.cjs.map +1 -1
  12. package/_cjs/api/express/schema/requestHandler.cjs +45 -45
  13. package/_cjs/api/express/schema/requestHandler.cjs.map +1 -1
  14. package/_cjs/api/express/schema/routing.cjs +19 -19
  15. package/_cjs/api/express/schema/routing.cjs.map +1 -1
  16. package/_cjs/api/reportError.cjs +2 -2
  17. package/_cjs/api/reportError.cjs.map +1 -1
  18. package/_cjs/api/routing.cjs +54 -54
  19. package/_cjs/api/routing.cjs.map +1 -1
  20. package/_cjs/api/setupRequest.cjs +2 -2
  21. package/_cjs/api/setupRequest.cjs.map +1 -1
  22. package/_cjs/api/writeDocs.cjs +6 -6
  23. package/_cjs/api/writeDocs.cjs.map +1 -1
  24. package/_cjs/errorReporter.cjs +4 -4
  25. package/_cjs/errorReporter.cjs.map +1 -1
  26. package/_cjs/instrument.cjs +1 -1
  27. package/_cjs/instrument.cjs.map +1 -1
  28. package/_cjs/rateLimit.cjs +8 -8
  29. package/_cjs/rateLimit.cjs.map +1 -1
  30. package/_cjs/services/Emailer/Sendgrid.cjs +7 -8
  31. package/_cjs/services/Emailer/Sendgrid.cjs.map +1 -1
  32. package/_cjs/services/Emailer/fake.cjs +4 -5
  33. package/_cjs/services/Emailer/fake.cjs.map +1 -1
  34. package/_cjs/services/Operations/live.cjs +10 -10
  35. package/_cjs/services/Operations/live.cjs.map +1 -1
  36. package/_cjs/services/Operations/service.cjs +3 -3
  37. package/_cjs/services/Operations/service.cjs.map +1 -1
  38. package/_cjs/services/QueueMaker/errors.cjs +3 -3
  39. package/_cjs/services/QueueMaker/errors.cjs.map +1 -1
  40. package/_cjs/services/QueueMaker/memQueue.cjs +10 -11
  41. package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
  42. package/_cjs/services/QueueMaker/sbqueue.cjs +5 -5
  43. package/_cjs/services/QueueMaker/sbqueue.cjs.map +1 -1
  44. package/_cjs/services/Repository.cjs +21 -21
  45. package/_cjs/services/Repository.cjs.map +1 -1
  46. package/_cjs/services/Store/Cosmos.cjs +45 -45
  47. package/_cjs/services/Store/Cosmos.cjs.map +1 -1
  48. package/_cjs/services/Store/Disk.cjs +23 -24
  49. package/_cjs/services/Store/Disk.cjs.map +1 -1
  50. package/_cjs/services/Store/Memory.cjs +28 -28
  51. package/_cjs/services/Store/Memory.cjs.map +1 -1
  52. package/_cjs/services/Store/Redis.cjs +16 -17
  53. package/_cjs/services/Store/Redis.cjs.map +1 -1
  54. package/_cjs/services/Store/codeFilter.test.cjs +5 -5
  55. package/_cjs/services/Store/codeFilter.test.cjs.map +1 -1
  56. package/_cjs/services/Store/index.cjs +4 -4
  57. package/_cjs/services/Store/index.cjs.map +1 -1
  58. package/_cjs/services/Store/utils.cjs +4 -4
  59. package/_cjs/services/Store/utils.cjs.map +1 -1
  60. package/_cjs/services/simpledb/cosmosdb.cjs +19 -19
  61. package/_cjs/services/simpledb/cosmosdb.cjs.map +1 -1
  62. package/_cjs/services/simpledb/diskdb.cjs +18 -18
  63. package/_cjs/services/simpledb/diskdb.cjs.map +1 -1
  64. package/_cjs/services/simpledb/memdb.cjs +9 -9
  65. package/_cjs/services/simpledb/memdb.cjs.map +1 -1
  66. package/_cjs/services/simpledb/mongodb.cjs +16 -16
  67. package/_cjs/services/simpledb/mongodb.cjs.map +1 -1
  68. package/_cjs/services/simpledb/redisdb.cjs +20 -20
  69. package/_cjs/services/simpledb/redisdb.cjs.map +1 -1
  70. package/_cjs/services/simpledb/simpledb.cjs +9 -9
  71. package/_cjs/services/simpledb/simpledb.cjs.map +1 -1
  72. package/_src/RequestContext.ts +2 -2
  73. package/_src/rateLimit.ts +4 -4
  74. package/_src/services/Store/Cosmos.ts +3 -3
  75. package/_src/services/Store/Disk.ts +5 -5
  76. package/_src/services/Store/Memory.ts +5 -5
  77. package/_src/services/Store/Redis.ts +2 -2
  78. package/_src/services/Store/service.ts +1 -1
  79. package/dist/RequestContext.d.ts +2 -2
  80. package/dist/_ext/Array.js +3 -4
  81. package/dist/api/codec.js +2 -2
  82. package/dist/api/defaultErrorHandler.js +18 -18
  83. package/dist/api/express/makeJsonSchema.js +5 -5
  84. package/dist/api/express/makeOpenApiSpecs.js +2 -2
  85. package/dist/api/express/schema/requestHandler.js +41 -41
  86. package/dist/api/express/schema/routing.js +20 -20
  87. package/dist/api/reportError.js +4 -4
  88. package/dist/api/routing.js +63 -63
  89. package/dist/api/setupRequest.js +3 -3
  90. package/dist/api/writeDocs.js +7 -7
  91. package/dist/errorReporter.js +3 -3
  92. package/dist/instrument.js +2 -2
  93. package/dist/rateLimit.d.ts +3 -3
  94. package/dist/rateLimit.js +9 -9
  95. package/dist/services/Emailer/Sendgrid.js +8 -9
  96. package/dist/services/Emailer/fake.js +5 -6
  97. package/dist/services/Operations/live.js +12 -12
  98. package/dist/services/Operations/service.js +4 -4
  99. package/dist/services/QueueMaker/errors.js +4 -4
  100. package/dist/services/QueueMaker/memQueue.js +10 -10
  101. package/dist/services/QueueMaker/sbqueue.js +5 -5
  102. package/dist/services/Repository.d.ts +14 -14
  103. package/dist/services/Repository.js +15 -15
  104. package/dist/services/Store/Cosmos.d.ts +1 -1
  105. package/dist/services/Store/Cosmos.js +47 -47
  106. package/dist/services/Store/Disk.d.ts +1 -1
  107. package/dist/services/Store/Disk.js +26 -27
  108. package/dist/services/Store/Memory.d.ts +2 -2
  109. package/dist/services/Store/Memory.d.ts.map +1 -1
  110. package/dist/services/Store/Memory.js +30 -30
  111. package/dist/services/Store/Redis.d.ts +1 -1
  112. package/dist/services/Store/Redis.js +17 -18
  113. package/dist/services/Store/index.js +5 -5
  114. package/dist/services/Store/service.d.ts +1 -1
  115. package/dist/services/Store/service.d.ts.map +1 -1
  116. package/dist/services/Store/utils.js +5 -5
  117. package/dist/services/simpledb/cosmosdb.js +19 -19
  118. package/dist/services/simpledb/diskdb.js +15 -15
  119. package/dist/services/simpledb/memdb.js +10 -10
  120. package/dist/services/simpledb/mongodb.js +15 -15
  121. package/dist/services/simpledb/redisdb.js +17 -17
  122. package/dist/services/simpledb/simpledb.js +12 -12
  123. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"simpledb.cjs","mappings":"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","names":["InvalidStateError","constructor","message","details","makeLiveRecordCache","m","Map","get","type","tsplus_module_1","ex","nm","set","RecordCache","tsplus_module_2","LiveRecordCache","tsplus_module_3","getM","eff","$","find","tryRead","decode","getCache","read","id","data","version","err","r","c","existing","storeDirectly","save","record","cv","x","store","lock","_","tsplus_module_5","confirmVersionAndSave","OptimisticLockException"],"sourceRoot":"","sources":["../../../_src/services/simpledb/simpledb.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"simpledb.cjs","mappings":"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","names":["InvalidStateError","constructor","message","details","makeLiveRecordCache","m","Map","get","type","tsplus_module_1","ex","nm","set","RecordCache","tsplus_module_2","LiveRecordCache","getM","eff","$","find","tryRead","decode","getCache","read","id","tsplus_module_3","data","version","err","r","c","existing","storeDirectly","save","record","x","cv","store","lock","_","tsplus_module_5","confirmVersionAndSave","OptimisticLockException"],"sourceRoot":"","sources":["../../../_src/services/simpledb/simpledb.ts"],"sourcesContent":[null]}
@@ -88,7 +88,7 @@ export namespace RequestContextParent {
88
88
  }
89
89
  export const Encoded: EncodedOps = { $: {} }
90
90
  /**
91
- * @tsplus type RequestContextParent.Encoded.Aspects
91
+ * @tsplus type RequestContextParent.Encoded.Ops
92
92
  */
93
93
  export interface EncodedAspects {}
94
94
  /**
@@ -123,7 +123,7 @@ export namespace RequestContext {
123
123
  }
124
124
  export const Encoded: EncodedOps = { $: {} }
125
125
  /**
126
- * @tsplus type RequestContext.Encoded.Aspects
126
+ * @tsplus type RequestContext.Encoded.Ops
127
127
  */
128
128
  export interface EncodedAspects {}
129
129
  /**
package/_src/rateLimit.ts CHANGED
@@ -49,7 +49,7 @@ export function SEM_withPermitsDuration(permits: number, duration: Duration) {
49
49
 
50
50
  /**
51
51
  * @tsplus pipeable Iterable batchPar
52
- * @tsplus static Collection.Aspects batchPar
52
+ * @tsplus static Collection.Ops batchPar
53
53
  */
54
54
  export function batchPar<R, E, A, R2, E2, A2, T>(
55
55
  n: number,
@@ -66,7 +66,7 @@ export function batchPar<R, E, A, R2, E2, A2, T>(
66
66
 
67
67
  /**
68
68
  * @tsplus pipeable Iterable batch
69
- * @tsplus static Collection.Aspects batch
69
+ * @tsplus static Collection.Ops batch
70
70
  */
71
71
  export function batch<R, E, A, R2, E2, A2, T>(
72
72
  n: number,
@@ -83,7 +83,7 @@ export function batch<R, E, A, R2, E2, A2, T>(
83
83
 
84
84
  // /**
85
85
  // * @tsplus pipeable Iterable rateLimit
86
- // * @tsplus static Collection.Aspects rateLimit
86
+ // * @tsplus static Collection.Ops rateLimit
87
87
  // */
88
88
  // export function rateLimit(
89
89
  // n: number,
@@ -103,7 +103,7 @@ export function batch<R, E, A, R2, E2, A2, T>(
103
103
 
104
104
  /**
105
105
  * @tsplus pipeable Iterable naiveRateLimit
106
- * @tsplus static Collection.Aspects naiveRateLimit
106
+ * @tsplus static Collection.Ops naiveRateLimit
107
107
  */
108
108
 
109
109
  export function naiveRateLimit(
@@ -27,7 +27,7 @@ export function makeCosmosStore({ prefix }: StorageConfig) {
27
27
  return {
28
28
  make: <Id extends string, PM extends PersistenceModelType<Id>, Id2 extends Id>(
29
29
  name: string,
30
- existing?: Effect<never, never, ReadonlyMap<Id2, PM>>,
30
+ seed?: Effect<never, never, ReadonlyMap<Id2, PM>>,
31
31
  config?: StoreConfig<PM>
32
32
  ) =>
33
33
  Effect.gen(function*($) {
@@ -334,8 +334,8 @@ export function makeCosmosStore({ prefix }: StorageConfig) {
334
334
 
335
335
  if (!marker.isSome()) {
336
336
  console.log("Creating mock data for " + name)
337
- if (existing) {
338
- const m = yield* $(existing)
337
+ if (seed) {
338
+ const m = yield* $(seed)
339
339
  yield* $(
340
340
  Effect([...m.values()].toNonEmpty)
341
341
  .flatMapOpt(a =>
@@ -12,7 +12,7 @@ function makeDiskStoreInt<Id extends string, Id2 extends Id, PM extends Persiste
12
12
  namespace: string,
13
13
  dir: string,
14
14
  name: string,
15
- existing?: Effect<never, never, ReadonlyMap<Id2, PM>>
15
+ seed?: Effect<never, never, ReadonlyMap<Id2, PM>>
16
16
  ) {
17
17
  return Effect.gen(function*($) {
18
18
  const file = dir + "/" + prefix + name + (namespace === "primary" ? "" : "-" + namespace) + ".json"
@@ -28,7 +28,7 @@ function makeDiskStoreInt<Id extends string, Id2 extends Id, PM extends Persiste
28
28
  makeMemoryStoreInt<Id, Id, PM>(
29
29
  name,
30
30
  !fs.existsSync(file)
31
- ? existing ?? Effect(new Map())
31
+ ? seed ?? Effect(new Map())
32
32
  : fsStore.get.map(x => new Map(x.map(x => [x.id, x] as const)))
33
33
  )
34
34
  )
@@ -73,12 +73,12 @@ export function makeDiskStore({ prefix }: StorageConfig) {
73
73
  return {
74
74
  make: <Id extends string, Id2 extends Id, PM extends PersistenceModelType<Id>>(
75
75
  name: string,
76
- existing?: Effect<never, never, ReadonlyMap<Id2, PM>>,
76
+ seed?: Effect<never, never, ReadonlyMap<Id2, PM>>,
77
77
  config?: StoreConfig<PM>
78
78
  ) =>
79
79
  Effect.gen(function*($) {
80
80
  const storesSem = Semaphore.unsafeMake(1)
81
- const primary = yield* $(makeDiskStoreInt(prefix, "primary", dir, name, existing))
81
+ const primary = yield* $(makeDiskStoreInt(prefix, "primary", dir, name, seed))
82
82
  const stores = new Map<string, Store<PM, Id>>([["primary", primary]])
83
83
  const getStore = !config?.allowNamespace ? Effect.succeed(primary) : storeId.get.flatMap(namespace => {
84
84
  const store = stores.get(namespace)
@@ -92,7 +92,7 @@ export function makeDiskStore({ prefix }: StorageConfig) {
92
92
  Effect.suspendSucceed(() => {
93
93
  const existing = stores.get(namespace)
94
94
  if (existing) return Effect(existing)
95
- return makeDiskStoreInt<Id, Id2, PM>(prefix, namespace, dir, name, existing).tap(store =>
95
+ return makeDiskStoreInt<Id, Id2, PM>(prefix, namespace, dir, name, seed).tap(store =>
96
96
  Effect.sync(() => stores.set(namespace, store))
97
97
  )
98
98
  })
@@ -30,11 +30,11 @@ export const restoreFromRequestContext = RequestContext.Tag.accessWithEffect(ctx
30
30
 
31
31
  export function makeMemoryStoreInt<Id extends string, Id2 extends Id, PM extends PersistenceModelType<Id>>(
32
32
  name: string,
33
- existing?: Effect<never, never, ReadonlyMap<Id2, PM>>
33
+ seed?: Effect<never, never, ReadonlyMap<Id2, PM>>
34
34
  ) {
35
35
  return Effect.gen(function*($) {
36
36
  const updateETag = makeUpdateETag(name)
37
- const items: ReadonlyMap<Id, PM> = yield* $(existing ?? Effect(new Map<Id, PM>()))
37
+ const items: ReadonlyMap<Id, PM> = yield* $(seed ?? Effect(new Map<Id, PM>()))
38
38
  const makeStore = (): ReadonlyMap<Id, PM> => new Map([...items.entries()].map(([id, e]) => [id, makeETag(e)]))
39
39
  const store = Ref.unsafeMake(makeStore())
40
40
  const sem = Semaphore.unsafeMake(1)
@@ -80,12 +80,12 @@ export function makeMemoryStoreInt<Id extends string, Id2 extends Id, PM extends
80
80
  export const makeMemoryStore = () => ({
81
81
  make: <Id extends string, Id2 extends Id, PM extends PersistenceModelType<Id>>(
82
82
  name: string,
83
- existing?: Effect<never, never, ReadonlyMap<Id2, PM>>,
83
+ seed?: Effect<never, never, ReadonlyMap<Id2, PM>>,
84
84
  config?: StoreConfig<PM>
85
85
  ) =>
86
86
  Effect.gen(function*($) {
87
87
  const storesSem = Semaphore.unsafeMake(1)
88
- const primary = yield* $(makeMemoryStoreInt<Id, Id2, PM>(name, existing))
88
+ const primary = yield* $(makeMemoryStoreInt<Id, Id2, PM>(name, seed))
89
89
  const stores = new Map([["primary", primary]])
90
90
  const getStore = !config?.allowNamespace ? Effect.succeed(primary) : storeId.get.flatMap(namespace => {
91
91
  const store = stores.get(namespace)
@@ -98,7 +98,7 @@ export const makeMemoryStore = () => ({
98
98
  return storesSem.withPermits(1)(Effect.suspendSucceed(() => {
99
99
  const store = stores.get(namespace)
100
100
  if (store) return Effect(store)
101
- return makeMemoryStoreInt(name, existing).tap(store => Effect.sync(() => stores.set(namespace, store)))
101
+ return makeMemoryStoreInt(name, seed).tap(store => Effect.sync(() => stores.set(namespace, store)))
102
102
  }))
103
103
  })
104
104
  const s: Store<PM, Id> = {
@@ -13,7 +13,7 @@ export function makeRedisStore({ prefix }: StorageConfig) {
13
13
  return {
14
14
  make: <Id extends string, PM extends PersistenceModelType<Id>, Id2 extends Id>(
15
15
  name: string,
16
- existing?: Effect<never, never, ReadonlyMap<Id2, PM>>,
16
+ seed?: Effect<never, never, ReadonlyMap<Id2, PM>>,
17
17
  _config?: StoreConfig<PM>
18
18
  ) =>
19
19
  Effect.gen(function*($) {
@@ -22,7 +22,7 @@ export function makeRedisStore({ prefix }: StorageConfig) {
22
22
  const key = `${prefix}${name}`
23
23
  const current = yield* $(RedisClient.get(key).orDie.provideService(RedisClient.RedisClient, redis))
24
24
  if (!current.isSome()) {
25
- const m = yield* $(existing ?? Effect(new Map()))
25
+ const m = yield* $(seed ?? Effect(new Map()))
26
26
  yield* $(
27
27
  RedisClient.set(key, JSON.stringify({ data: [...m.values()].map(e => makeETag(e)) }))
28
28
  .orDie
@@ -78,7 +78,7 @@ export interface Store<PM extends PersistenceModelType<Id>, Id extends string> {
78
78
  export interface StoreMaker {
79
79
  make: <E extends PersistenceModelType<Id>, Id extends string, Id2 extends Id>(
80
80
  name: string,
81
- existing?: Effect<never, never, ReadonlyMap<Id2, E>>,
81
+ seed?: Effect<never, never, ReadonlyMap<Id2, E>>,
82
82
  config?: StoreConfig<E>
83
83
  ) => Effect<never, never, Store<E, Id>>
84
84
  }
@@ -70,7 +70,7 @@ export declare namespace RequestContextParent {
70
70
  }
71
71
  const Encoded: EncodedOps;
72
72
  /**
73
- * @tsplus type RequestContextParent.Encoded.Aspects
73
+ * @tsplus type RequestContextParent.Encoded.Ops
74
74
  */
75
75
  interface EncodedAspects {
76
76
  }
@@ -109,7 +109,7 @@ export declare namespace RequestContext {
109
109
  }
110
110
  const Encoded: EncodedOps;
111
111
  /**
112
- * @tsplus type RequestContext.Encoded.Aspects
112
+ * @tsplus type RequestContext.Encoded.Ops
113
113
  */
114
114
  interface EncodedAspects {
115
115
  }
@@ -1,6 +1,5 @@
1
1
  import * as tsplus_module_1 from "@effect/data/Chunk";
2
- import * as tsplus_module_2 from "@effect-app/core/Chunk";
3
- import * as tsplus_module_3 from "@effect-app/prelude/_ext/misc";
2
+ import * as tsplus_module_2 from "@effect-app/prelude/_ext/misc";
4
3
  import { inspect } from "util";
5
4
  import { NotFoundError } from "../errors.js";
6
5
  /**
@@ -11,7 +10,7 @@ import { NotFoundError } from "../errors.js";
11
10
  * @tsplus fluent ReadonlyArray getFirstById
12
11
  */
13
12
  export function getFirstById_(a, id, type) {
14
- return tsplus_module_3.encaseMaybeInEffect_(tsplus_module_2.findFirstSimple(tsplus_module_1.fromIterable(a), _ => _.id === id), () => new NotFoundError(type, id));
13
+ return tsplus_module_2.encaseMaybeInEffect_(tsplus_module_1.findFirst(tsplus_module_1.fromIterable(a), _ => _.id === id), () => new NotFoundError(type, id));
15
14
  }
16
15
  /**
17
16
  * @tsplus fluent Object.Ops inspect
@@ -19,4 +18,4 @@ export function getFirstById_(a, id, type) {
19
18
  export function RecordInspect(o, showHidden, depth, color) {
20
19
  return inspect(o.subject, showHidden, depth, color);
21
20
  }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9fc3JjL19leHQvQXJyYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUM5QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRTVDOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQzNCLENBQWMsRUFDZCxFQUFNLEVBQ04sSUFBVTtJQUVWLE9BQU8scUNBQUEsZ0NBQUEsNkJBQW1CLENBQUMsQ0FBQyxFQUNmLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFDWixHQUFHLEVBQUUsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUN0RCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUMzQixDQUFnQixFQUNoQixVQUFnQyxFQUNoQyxLQUFpQyxFQUNqQyxLQUEyQjtJQUUzQixPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUE7QUFDckQsQ0FBQyJ9
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9fc3JjL19leHQvQXJyYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFNUM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsQ0FBYyxFQUNkLEVBQU0sRUFDTixJQUFVO0lBRVYsT0FBTyxxQ0FBQSwwQkFBQSw2QkFBbUIsQ0FBQyxDQUFDLEVBQ2YsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUNaLEdBQUcsRUFBRSxDQUFDLElBQUksYUFBYSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBQ3RELENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQzNCLENBQWdCLEVBQ2hCLFVBQWdDLEVBQ2hDLEtBQWlDLEVBQ2pDLEtBQTJCO0lBRTNCLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQTtBQUNyRCxDQUFDIn0=
package/dist/api/codec.js CHANGED
@@ -12,6 +12,6 @@ export function makeCodec(self) {
12
12
  return [decode, encode, encodeToMap];
13
13
  }
14
14
  function toMap(encode) {
15
- return (a) => tsplus_module_1.map(_ => new Map(_))(tsplus_module_2.ext_collectAll(a.map(task => tsplus_module_1.tuple(tsplus_module_1.sync(() => task.id), encode(task)))));
15
+ return (a) => tsplus_module_1.map(tsplus_module_2.ext_collectAll(a.map(task => tsplus_module_1.tuple(tsplus_module_1.sync(() => task.id), encode(task)))), _ => new Map(_));
16
16
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9fc3JjL2FwaS9jb2RlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUdwRCxNQUFNLFVBQVUsU0FBUyxDQU12QixJQUFxRTtJQUNyRSxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUM3QyxlQUFlO0lBQ2YsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFVLEVBQUUsR0FBZSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQzdELE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7SUFFN0IsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFjLEVBQUUsRUFBRSxDQUFDLDJCQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pELE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNqQyxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQVUsQ0FBQTtBQUMvQyxDQUFDO0FBRUQsU0FBUyxLQUFLLENBQThCLE1BQXlDO0lBQ25GLE9BQU8sQ0FBQyxDQUFtQixFQUFFLEVBQUUsQ0FDN0Isb0JBRU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFGdEIsK0JBQUEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLHNCQUFhLDJCQUFPLElBQUksQ0FBQyxFQUFhLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUN0RCxDQUNRLENBQUE7QUFDM0IsQ0FBQyJ9
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9fc3JjL2FwaS9jb2RlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUdwRCxNQUFNLFVBQVUsU0FBUyxDQU12QixJQUFxRTtJQUNyRSxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUM3QyxlQUFlO0lBQ2YsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFVLEVBQUUsR0FBZSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQzdELE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7SUFFN0IsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFjLEVBQUUsRUFBRSxDQUFDLDJCQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pELE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNqQyxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQVUsQ0FBQTtBQUMvQyxDQUFDO0FBRUQsU0FBUyxLQUFLLENBQThCLE1BQXlDO0lBQ25GLE9BQU8sQ0FBQyxDQUFtQixFQUFFLEVBQUUsQ0FDN0Isb0JBQUEsK0JBQUEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLHNCQUFhLDJCQUFPLElBQUksQ0FBQyxFQUFhLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUN0RCxFQUNSLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUMzQixDQUFDIn0=
@@ -5,32 +5,32 @@ import * as tsplus_module_4 from "@effect/io/Debug";
5
5
  import * as tsplus_module_5 from "@effect/io/Schedule";
6
6
  import { logRequestError } from "./reportError.js";
7
7
  export function defaultBasicErrorHandler(_req, res, _requestContext, r2) {
8
- return tsplus_module_4.untraced(() => tsplus_module_1.catchAll((err) => tsplus_module_1.flatMap(tsplus_module_1.die)(tsplus_module_1.map(() => err)(tsplus_module_1.logError("Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect" + err))))(tsplus_module_1.catchTag("ValidationError", err => tsplus_module_1.sync(() => {
8
+ return tsplus_module_4.untraced(() => tsplus_module_1.catchAll(tsplus_module_1.catchTag(tsplus_module_1.tapErrorCause(r2, cause => tsplus_module_2.isFailure(cause) ? logRequestError(cause) : tsplus_module_3.unit), "ValidationError", err => tsplus_module_1.sync(() => {
9
9
  res.status(400).send(err.errors);
10
- }))(tsplus_module_1.tapErrorCause(cause => tsplus_module_2.isFailure(cause) ? logRequestError(cause) : tsplus_module_3.unit)(r2))
10
+ }))
11
11
  // final catch all; expecting never so that unhandled known errors will show up
12
- ));
12
+ , (err) => tsplus_module_1.flatMap(tsplus_module_1.map(tsplus_module_1.logError("Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect" + err), () => err), tsplus_module_1.die)));
13
13
  }
14
14
  const optimisticConcurrencySchedule = tsplus_module_5.intersect(tsplus_module_5.recurWhile(a => a._tag === "OptimisticConcurrencyException"))(tsplus_module_5.once());
15
15
  export function defaultErrorHandler(req, res, _, r2) {
16
16
  const r3 = req.method === "PATCH"
17
- ? tsplus_module_1.retry(optimisticConcurrencySchedule)(r2)
17
+ ? tsplus_module_1.retry(r2, optimisticConcurrencySchedule)
18
18
  : r2;
19
- return tsplus_module_4.untraced(() => tsplus_module_1.catchAll((err) => tsplus_module_1.flatMap(tsplus_module_1.die)(tsplus_module_1.map(() => err)(tsplus_module_1.logError("Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect" + err))))(tsplus_module_1.catchTag("OptimisticConcurrencyException", err => tsplus_module_1.sync(() => {
19
+ return tsplus_module_4.untraced(() => tsplus_module_1.catchAll(tsplus_module_1.catchTag(tsplus_module_1.catchTag(tsplus_module_1.catchTag(tsplus_module_1.catchTag(tsplus_module_1.catchTag(tsplus_module_1.catchTag(tsplus_module_1.tapErrorCause(r3, cause => tsplus_module_2.isFailure(cause) ? logRequestError(cause) : tsplus_module_3.unit), "ValidationError", err => tsplus_module_1.sync(() => {
20
+ res.status(400).send(err.errors);
21
+ })), "NotFoundError", err => tsplus_module_1.sync(() => {
22
+ res.status(404).send(err);
23
+ })), "NotLoggedInError", err => tsplus_module_1.sync(() => {
24
+ res.status(401).send(err);
25
+ })), "UnauthorizedError", err => tsplus_module_1.sync(() => {
26
+ res.status(403).send(err);
27
+ })), "InvalidStateError", err => tsplus_module_1.sync(() => {
28
+ res.status(422).send(err);
29
+ })), "OptimisticConcurrencyException", err => tsplus_module_1.sync(() => {
20
30
  // 412 or 409.. https://stackoverflow.com/questions/19122088/which-http-status-code-to-use-to-reject-a-put-due-to-optimistic-locking-failure
21
31
  res.status(412).send(err);
22
- }))(tsplus_module_1.catchTag("InvalidStateError", err => tsplus_module_1.sync(() => {
23
- res.status(422).send(err);
24
- }))(tsplus_module_1.catchTag("UnauthorizedError", err => tsplus_module_1.sync(() => {
25
- res.status(403).send(err);
26
- }))(tsplus_module_1.catchTag("NotLoggedInError", err => tsplus_module_1.sync(() => {
27
- res.status(401).send(err);
28
- }))(tsplus_module_1.catchTag("NotFoundError", err => tsplus_module_1.sync(() => {
29
- res.status(404).send(err);
30
- }))(tsplus_module_1.catchTag("ValidationError", err => tsplus_module_1.sync(() => {
31
- res.status(400).send(err.errors);
32
- }))(tsplus_module_1.tapErrorCause(cause => tsplus_module_2.isFailure(cause) ? logRequestError(cause) : tsplus_module_3.unit)(r3)))))))
32
+ }))
33
33
  // final catch all; expecting never so that unhandled known errors will show up
34
- ));
34
+ , (err) => tsplus_module_1.flatMap(tsplus_module_1.map(tsplus_module_1.logError("Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect" + err), () => err), tsplus_module_1.die)));
35
35
  }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdEVycm9ySGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL19zcmMvYXBpL2RlZmF1bHRFcnJvckhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFVQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFFbEQsTUFBTSxVQUFVLHdCQUF3QixDQUN0QyxJQUFxQixFQUNyQixHQUFxQixFQUNyQixlQUErQixFQUMvQixFQUFvQztJQUVwQyxPQUFPLHlCQUFlLEdBQUcsRUFBRSxDQUN6Qix5QkFPWSxDQUFDLEdBQVUsRUFBRSxFQUFFLENBQ3ZCLDZDQUFBLG9CQUdPLEdBQUcsRUFBRSxDQUFDLEdBQWMsRUFIM0IseUJBQ0UsZ0dBQWdHLEdBQUcsR0FBRyxDQUN2RyxDQUMyQixDQUNOLEVBWjFCLHlCQUVZLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQ2pDLHFCQUFZLEdBQUcsRUFBRTtRQUNmLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNsQyxDQUFDLENBQUMsRUFMTiw4QkFDaUIsS0FBSyxDQUFDLEVBQUUsQ0FBQywwQkFBQSxLQUFLLENBQVksQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMscUJBQVksRUFEbEYsRUFBRSxDQUNpRixDQUk1RTtJQUNMLCtFQUErRTtLQU85RSxDQUNKLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSw2QkFBNkIsNkJBQ2pDLDJCQUFxQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssZ0NBQWdDLENBQUMsRUFEbEQsc0JBQWUsQ0FDbUMsQ0FBQTtBQUV4RixNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLEdBQW9CLEVBQ3BCLEdBQXFCLEVBQ3JCLENBQWlCLEVBQ2pCLEVBQW9DO0lBRXBDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLEtBQUssT0FBTztRQUMvQixDQUFDLENBQUMsc0JBQVMsNkJBQTZCLEVBQXRDLEVBQUUsQ0FBcUM7UUFDekMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUNOLE9BQU8seUJBQWUsR0FBRyxFQUFFLENBQ3pCLHlCQTRCWSxDQUFDLEdBQVUsRUFBRSxFQUFFLENBQ3ZCLDZDQUFBLG9CQUdPLEdBQUcsRUFBRSxDQUFDLEdBQWMsRUFIM0IseUJBQ0UsZ0dBQWdHLEdBQUcsR0FBRyxDQUN2RyxDQUMyQixDQUNOLEVBakMxQix5QkFzQlksZ0NBQWdDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FDaEQscUJBQVksR0FBRyxFQUFFO1FBQ2YsNElBQTRJO1FBQzVJLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzNCLENBQUMsQ0FBQyxFQTFCTix5QkFrQlksbUJBQW1CLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FDbkMscUJBQVksR0FBRyxFQUFFO1FBQ2YsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDM0IsQ0FBQyxDQUFDLEVBckJOLHlCQWNZLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQ25DLHFCQUFZLEdBQUcsRUFBRTtRQUNmLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzNCLENBQUMsQ0FBQyxFQWpCTix5QkFVWSxrQkFBa0IsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUNsQyxxQkFBWSxHQUFHLEVBQUU7UUFDZixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMzQixDQUFDLENBQUMsRUFiTix5QkFNWSxlQUFlLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FDL0IscUJBQVksR0FBRyxFQUFFO1FBQ2YsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDM0IsQ0FBQyxDQUFDLEVBVE4seUJBRVksaUJBQWlCLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FDakMscUJBQVksR0FBRyxFQUFFO1FBQ2YsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2xDLENBQUMsQ0FBQyxFQUxOLDhCQUNpQixLQUFLLENBQUMsRUFBRSxDQUFDLDBCQUFBLEtBQUssQ0FBWSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxxQkFBWSxFQURsRixFQUFFLENBQ2lGLENBSTVFLENBSUEsQ0FJQSxDQUlBLENBSUEsQ0FLQTtJQUNMLCtFQUErRTtLQU85RSxDQUNKLENBQUE7QUFDSCxDQUFDIn0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdEVycm9ySGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL19zcmMvYXBpL2RlZmF1bHRFcnJvckhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFVQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFFbEQsTUFBTSxVQUFVLHdCQUF3QixDQUN0QyxJQUFxQixFQUNyQixHQUFxQixFQUNyQixlQUErQixFQUMvQixFQUFvQztJQUVwQyxPQUFPLHlCQUFlLEdBQUcsRUFBRSxDQUN6Qix5QkFBQSx5QkFBQSw4QkFBQSxFQUFFLEVBQ2UsS0FBSyxDQUFDLEVBQUUsQ0FBQywwQkFBQSxLQUFLLENBQVksQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMscUJBQVksQ0FBQyxFQUN2RSxpQkFBaUIsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUNqQyxxQkFBWSxHQUFHLEVBQUU7UUFDZixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDTCwrRUFBK0U7TUFDckUsQ0FBQyxHQUFVLEVBQUUsRUFBRSxDQUN2Qix3QkFBQSxvQkFBQSx5QkFDRSxnR0FBZ0csR0FBRyxHQUFHLENBQ3ZHLEVBQ00sR0FBRyxFQUFFLENBQUMsR0FBYyxDQUFDLHNCQUNOLENBQ3ZCLENBQ0osQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLDZCQUE2Qiw2QkFDakMsMkJBQXFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxnQ0FBZ0MsQ0FBQyxFQURsRCxzQkFBZSxDQUNtQyxDQUFBO0FBRXhGLE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsR0FBb0IsRUFDcEIsR0FBcUIsRUFDckIsQ0FBaUIsRUFDakIsRUFBb0M7SUFFcEMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sS0FBSyxPQUFPO1FBQy9CLENBQUMsQ0FBQyxzQkFBQSxFQUFFLEVBQU8sNkJBQTZCLENBQUM7UUFDekMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUNOLE9BQU8seUJBQWUsR0FBRyxFQUFFLENBQ3pCLHlCQUFBLHlCQUFBLHlCQUFBLHlCQUFBLHlCQUFBLHlCQUFBLHlCQUFBLDhCQUFBLEVBQUUsRUFDZSxLQUFLLENBQUMsRUFBRSxDQUFDLDBCQUFBLEtBQUssQ0FBWSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxxQkFBWSxDQUFDLEVBQ3ZFLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQ2pDLHFCQUFZLEdBQUcsRUFBRTtRQUNmLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNsQyxDQUFDLENBQUMsQ0FBQyxFQUNLLGVBQWUsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUMvQixxQkFBWSxHQUFHLEVBQUU7UUFDZixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMzQixDQUFDLENBQUMsQ0FBQyxFQUNLLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQ2xDLHFCQUFZLEdBQUcsRUFBRTtRQUNmLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzNCLENBQUMsQ0FBQyxDQUFDLEVBQ0ssbUJBQW1CLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FDbkMscUJBQVksR0FBRyxFQUFFO1FBQ2YsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDM0IsQ0FBQyxDQUFDLENBQUMsRUFDSyxtQkFBbUIsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUNuQyxxQkFBWSxHQUFHLEVBQUU7UUFDZixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMzQixDQUFDLENBQUMsQ0FBQyxFQUNLLGdDQUFnQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQ2hELHFCQUFZLEdBQUcsRUFBRTtRQUNmLDRJQUE0STtRQUM1SSxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMzQixDQUFDLENBQUMsQ0FBQztJQUNMLCtFQUErRTtNQUNyRSxDQUFDLEdBQVUsRUFBRSxFQUFFLENBQ3ZCLHdCQUFBLG9CQUFBLHlCQUNFLGdHQUFnRyxHQUFHLEdBQUcsQ0FDdkcsRUFDTSxHQUFHLEVBQUUsQ0FBQyxHQUFjLENBQUMsc0JBQ04sQ0FDdkIsQ0FDSixDQUFBO0FBQ0gsQ0FBQyJ9
@@ -8,7 +8,7 @@ const rx = /:(\w+)/g;
8
8
  * Work in progress JSONSchema generator.
9
9
  */
10
10
  export function makeJsonSchema(r) {
11
- return tsplus_module_3.map(e => {
11
+ return tsplus_module_3.map(tsplus_module_2.ext_forEach(tsplus_module_1.fromIterable(r), RS.makeFromSchema), e => {
12
12
  const map = ({ method, path, responses, ...rest }) => ({
13
13
  [method]: {
14
14
  ...rest,
@@ -18,15 +18,15 @@ export function makeJsonSchema(r) {
18
18
  }, {})
19
19
  }
20
20
  });
21
- return tsplus_module_1.reduce({}, (prev, e) => {
21
+ return tsplus_module_1.reduce(e, {}, (prev, e) => {
22
22
  const path = e.path.split("?")[0].replace(rx, (_a, b) => `{${b}}`);
23
23
  prev[path] = {
24
24
  ...prev[path],
25
25
  ...map(e)
26
26
  };
27
27
  return prev;
28
- })(e);
29
- })(tsplus_module_2.ext_forEach(tsplus_module_1.fromIterable(r), RS.makeFromSchema));
28
+ });
29
+ });
30
30
  }
31
31
  class Response {
32
32
  constructor(statusCode, type // string | JSONSchema | SubSchema
@@ -35,4 +35,4 @@ class Response {
35
35
  this.type = type;
36
36
  }
37
37
  }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUpzb25TY2hlbWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL2FwaS9leHByZXNzL21ha2VKc29uU2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVEQUF1RDtBQUV2RCxPQUFPLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBSXpDLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQTtBQUlwQjs7R0FFRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsQ0FBa0M7SUFDL0QsT0FBTyxvQkFFQSxDQUFDLENBQUMsRUFBRTtRQUNQLE1BQU0sR0FBRyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksRUFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNuRSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNSLEdBQUcsSUFBSTtnQkFDUCxTQUFTLEVBQUcsU0FBd0IsQ0FBQyxNQUFNLENBQ3pDLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFO29CQUNaLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQTtvQkFDL0IsT0FBTyxJQUFJLENBQUE7Z0JBQ2IsQ0FBQyxFQUNELEVBQXNELENBQ3ZEO2FBQ0Y7U0FDRixDQUFDLENBQUE7UUFDRixPQUFPLHVCQUNMLEVBQTZELEVBQzdELENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ1YsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUNsRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUc7Z0JBQ1gsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUNiLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBUTthQUNqQixDQUFBO1lBQ0QsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDLEVBVEksQ0FBQyxDQVVQLENBQUE7SUFDSCxDQUFDLEVBMUJJLDRCQUFBLDZCQUFtQixDQUFDLENBQUMsRUFDWCxFQUFFLENBQUMsY0FBYyxDQUFDLENBeUIvQixDQUFBO0FBQ04sQ0FBQztBQUVELE1BQU0sUUFBUTtJQUNaLFlBQ2tCLFVBQWtCLEVBQ2xCLElBQVMsQ0FBQyxrQ0FBa0M7O1FBRDVDLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDbEIsU0FBSSxHQUFKLElBQUksQ0FBSztJQUN4QixDQUFDO0NBQ0wifQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUpzb25TY2hlbWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL2FwaS9leHByZXNzL21ha2VKc29uU2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVEQUF1RDtBQUV2RCxPQUFPLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBSXpDLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQTtBQUlwQjs7R0FFRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsQ0FBa0M7SUFDL0QsT0FBTyxvQkFBQSw0QkFBQSw2QkFBbUIsQ0FBQyxDQUFDLEVBQ1gsRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUM1QixDQUFDLENBQUMsRUFBRTtRQUNQLE1BQU0sR0FBRyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksRUFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNuRSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNSLEdBQUcsSUFBSTtnQkFDUCxTQUFTLEVBQUcsU0FBd0IsQ0FBQyxNQUFNLENBQ3pDLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFO29CQUNaLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQTtvQkFDL0IsT0FBTyxJQUFJLENBQUE7Z0JBQ2IsQ0FBQyxFQUNELEVBQXNELENBQ3ZEO2FBQ0Y7U0FDRixDQUFDLENBQUE7UUFDRixPQUFPLHVCQUFBLENBQUMsRUFDTixFQUE2RCxFQUM3RCxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNWLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDbEUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHO2dCQUNYLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDYixHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQVE7YUFDakIsQ0FBQTtZQUNELE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQyxDQUNGLENBQUE7SUFDSCxDQUFDLENBQUMsQ0FBQTtBQUNOLENBQUM7QUFFRCxNQUFNLFFBQVE7SUFDWixZQUNrQixVQUFrQixFQUNsQixJQUFTLENBQUMsa0NBQWtDOztRQUQ1QyxlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ2xCLFNBQUksR0FBSixJQUFJLENBQUs7SUFDeEIsQ0FBQztDQUNMIn0=
@@ -5,7 +5,7 @@ import { makeJsonSchema } from "./makeJsonSchema.js";
5
5
  export function makeOpenApiSpecs(rdescs, info) {
6
6
  return tsplus_module_2.gen(function* ($) {
7
7
  const ref = yield* $(tsplus_module_1.make(new Map()));
8
- const paths = yield* $(tsplus_module_2.provideService(References, { ref })(makeJsonSchema(rdescs)));
8
+ const paths = yield* $(tsplus_module_2.provideService(makeJsonSchema(rdescs), References, { ref }));
9
9
  const refs = yield* $(tsplus_module_1.get(ref));
10
10
  const parameterRefs = {}; // todos
11
11
  const schemas = {};
@@ -49,4 +49,4 @@ export function makeOpenApiSpecs(rdescs, info) {
49
49
  };
50
50
  });
51
51
  }
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZU9wZW5BcGlTcGVjcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvYXBpL2V4cHJlc3MvbWFrZU9wZW5BcGlTcGVjcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4REFBOEQsQ0FBQTtBQUN6RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFHcEQsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixNQUFvQyxFQUNwQyxJQUFpQjtJQUVqQixPQUFPLG9CQUFXLFFBQVEsQ0FBQyxFQUFDLENBQUM7UUFDM0IsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUE4QyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUM5RSxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsK0JBQXNDLFVBQVUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUF6RCxjQUFjLENBQUMsTUFBTSxDQUFDLENBQW9DLENBQUMsQ0FBQTtRQUNsRixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLHFCQUFDLEdBQUcsRUFBSyxDQUFBO1FBQzlCLE1BQU0sYUFBYSxHQUF3QixFQUFFLENBQUEsQ0FBQyxRQUFRO1FBQ3RELE1BQU0sT0FBTyxHQUF3QixFQUFFLENBQUE7UUFDdkMsTUFBTSxlQUFlLEdBQUc7WUFDdEIsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRSxNQUFNO2dCQUNaLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixZQUFZLEVBQUUsS0FBSzthQUNwQjtTQUNGLENBQUEsQ0FBQyxtREFBbUQ7UUFDckQsTUFBTSxVQUFVLEdBQUcsRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsQ0FBQTtRQUUxRSxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNsQyxnREFBZ0Q7WUFDaEQsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtTQUM3QjtRQUVELE9BQU87WUFDTCxPQUFPLEVBQUUsT0FBTztZQUNoQixJQUFJLEVBQUU7Z0JBQ0osS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7Z0JBQzdCLGNBQWMsRUFBRSxJQUFJLENBQUMsR0FBRztnQkFDeEIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO29CQUNuQixDQUFDLENBQUM7d0JBQ0EsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSTt3QkFDdkIsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSzt3QkFDekIsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRztxQkFDdEI7b0JBQ0QsQ0FBQyxDQUFDLFNBQVM7Z0JBQ2IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO29CQUNuQixDQUFDLENBQUM7d0JBQ0EsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSTt3QkFDdkIsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRztxQkFDdEI7b0JBQ0QsQ0FBQyxDQUFDLFNBQVM7Z0JBQ2IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2FBQ3RCO1lBQ0QsSUFBSSxFQUFFLEVBQUU7WUFDUixLQUFLO1lBQ0wsVUFBVTtZQUNWLFFBQVE7U0FDVCxDQUFBO0lBQ0gsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDIn0=
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZU9wZW5BcGlTcGVjcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvYXBpL2V4cHJlc3MvbWFrZU9wZW5BcGlTcGVjcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4REFBOEQsQ0FBQTtBQUN6RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFHcEQsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixNQUFvQyxFQUNwQyxJQUFpQjtJQUVqQixPQUFPLG9CQUFXLFFBQVEsQ0FBQyxFQUFDLENBQUM7UUFDM0IsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUE4QyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUM5RSxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsK0JBQUEsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFnQixVQUFVLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDbEYsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxxQkFBQyxHQUFHLEVBQUssQ0FBQTtRQUM5QixNQUFNLGFBQWEsR0FBd0IsRUFBRSxDQUFBLENBQUMsUUFBUTtRQUN0RCxNQUFNLE9BQU8sR0FBd0IsRUFBRSxDQUFBO1FBQ3ZDLE1BQU0sZUFBZSxHQUFHO1lBQ3RCLFVBQVUsRUFBRTtnQkFDVixJQUFJLEVBQUUsTUFBTTtnQkFDWixNQUFNLEVBQUUsUUFBUTtnQkFDaEIsWUFBWSxFQUFFLEtBQUs7YUFDcEI7U0FDRixDQUFBLENBQUMsbURBQW1EO1FBQ3JELE1BQU0sVUFBVSxHQUFHLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLENBQUE7UUFFMUUsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDbEMsZ0RBQWdEO1lBQ2hELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7U0FDN0I7UUFFRCxPQUFPO1lBQ0wsT0FBTyxFQUFFLE9BQU87WUFDaEIsSUFBSSxFQUFFO2dCQUNKLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO2dCQUM3QixjQUFjLEVBQUUsSUFBSSxDQUFDLEdBQUc7Z0JBQ3hCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztvQkFDbkIsQ0FBQyxDQUFDO3dCQUNBLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUk7d0JBQ3ZCLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUs7d0JBQ3pCLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUc7cUJBQ3RCO29CQUNELENBQUMsQ0FBQyxTQUFTO2dCQUNiLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztvQkFDbkIsQ0FBQyxDQUFDO3dCQUNBLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUk7d0JBQ3ZCLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUc7cUJBQ3RCO29CQUNELENBQUMsQ0FBQyxTQUFTO2dCQUNiLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTzthQUN0QjtZQUNELElBQUksRUFBRSxFQUFFO1lBQ1IsS0FBSztZQUNMLFVBQVU7WUFDVixRQUFRO1NBQ1QsQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyJ9
@@ -29,7 +29,38 @@ export function decodeErrors(x) {
29
29
  // )
30
30
  // const structValidation = DSL.structF(ValidationApplicative)
31
31
  export function parseRequestParams(parsers) {
32
- return ({ body, cookies, headers, params, query }) => tsplus_module_1.flatMap(({ body, cookie, headers, path, query }) => {
32
+ return ({ body, cookies, headers, params, query }) => tsplus_module_1.flatMap(tsplus_module_1.struct({
33
+ body: tsplus_module_1.flatMap(tsplus_module_1.exit(parsers
34
+ .parseBody(body)), _ => tsplus_module_2.isFailure(_) && !tsplus_module_3.isFailure(_.cause)
35
+ ? tsplus_module_1.failCauseSync(() => _.cause)
36
+ : tsplus_module_1.sync(() => tsplus_module_2.isSuccess(_)
37
+ ? { _tag: "Success", value: _.value }
38
+ : { _tag: "Failure", errors: tsplus_module_3.failures(_.cause) })),
39
+ cookie: tsplus_module_1.flatMap(tsplus_module_1.exit(parsers
40
+ .parseCookie(cookies)), _ => tsplus_module_2.isFailure(_) && !tsplus_module_3.isFailure(_.cause)
41
+ ? tsplus_module_1.failCauseSync(() => _.cause)
42
+ : tsplus_module_1.sync(() => tsplus_module_2.isSuccess(_)
43
+ ? { _tag: "Success", value: _.value }
44
+ : { _tag: "Failure", errors: tsplus_module_3.failures(_.cause) })),
45
+ headers: tsplus_module_1.flatMap(tsplus_module_1.exit(parsers
46
+ .parseHeaders(headers)), _ => tsplus_module_2.isFailure(_) && !tsplus_module_3.isFailure(_.cause)
47
+ ? tsplus_module_1.failCauseSync(() => _.cause)
48
+ : tsplus_module_1.sync(() => tsplus_module_2.isSuccess(_)
49
+ ? { _tag: "Success", value: _.value }
50
+ : { _tag: "Failure", errors: tsplus_module_3.failures(_.cause) })),
51
+ query: tsplus_module_1.flatMap(tsplus_module_1.exit(parsers
52
+ .parseQuery(query)), _ => tsplus_module_2.isFailure(_) && !tsplus_module_3.isFailure(_.cause)
53
+ ? tsplus_module_1.failCauseSync(() => _.cause)
54
+ : tsplus_module_1.sync(() => tsplus_module_2.isSuccess(_)
55
+ ? { _tag: "Success", value: _.value }
56
+ : { _tag: "Failure", errors: tsplus_module_3.failures(_.cause) })),
57
+ path: tsplus_module_1.flatMap(tsplus_module_1.exit(parsers
58
+ .parsePath(params)), _ => tsplus_module_2.isFailure(_) && !tsplus_module_3.isFailure(_.cause)
59
+ ? tsplus_module_1.failCauseSync(() => _.cause)
60
+ : tsplus_module_1.sync(() => tsplus_module_2.isSuccess(_)
61
+ ? { _tag: "Success", value: _.value }
62
+ : { _tag: "Failure", errors: tsplus_module_3.failures(_.cause) }))
63
+ }), ({ body, cookie, headers, path, query }) => {
33
64
  const errors = [];
34
65
  if (body._tag === "Failure") {
35
66
  errors.push(makeError("body")(body.errors));
@@ -56,38 +87,7 @@ export function parseRequestParams(parsers) {
56
87
  path: path.value,
57
88
  query: query.value
58
89
  }));
59
- })(tsplus_module_1.struct({
60
- body: tsplus_module_1.flatMap(_ => tsplus_module_2.isFailure(_) && !tsplus_module_3.isFailure(_.cause)
61
- ? tsplus_module_1.failCauseSync(() => _.cause)
62
- : tsplus_module_1.sync(() => tsplus_module_2.isSuccess(_)
63
- ? { _tag: "Success", value: _.value }
64
- : { _tag: "Failure", errors: tsplus_module_3.failures(_.cause) }))(tsplus_module_1.exit(parsers
65
- .parseBody(body))),
66
- cookie: tsplus_module_1.flatMap(_ => tsplus_module_2.isFailure(_) && !tsplus_module_3.isFailure(_.cause)
67
- ? tsplus_module_1.failCauseSync(() => _.cause)
68
- : tsplus_module_1.sync(() => tsplus_module_2.isSuccess(_)
69
- ? { _tag: "Success", value: _.value }
70
- : { _tag: "Failure", errors: tsplus_module_3.failures(_.cause) }))(tsplus_module_1.exit(parsers
71
- .parseCookie(cookies))),
72
- headers: tsplus_module_1.flatMap(_ => tsplus_module_2.isFailure(_) && !tsplus_module_3.isFailure(_.cause)
73
- ? tsplus_module_1.failCauseSync(() => _.cause)
74
- : tsplus_module_1.sync(() => tsplus_module_2.isSuccess(_)
75
- ? { _tag: "Success", value: _.value }
76
- : { _tag: "Failure", errors: tsplus_module_3.failures(_.cause) }))(tsplus_module_1.exit(parsers
77
- .parseHeaders(headers))),
78
- query: tsplus_module_1.flatMap(_ => tsplus_module_2.isFailure(_) && !tsplus_module_3.isFailure(_.cause)
79
- ? tsplus_module_1.failCauseSync(() => _.cause)
80
- : tsplus_module_1.sync(() => tsplus_module_2.isSuccess(_)
81
- ? { _tag: "Success", value: _.value }
82
- : { _tag: "Failure", errors: tsplus_module_3.failures(_.cause) }))(tsplus_module_1.exit(parsers
83
- .parseQuery(query))),
84
- path: tsplus_module_1.flatMap(_ => tsplus_module_2.isFailure(_) && !tsplus_module_3.isFailure(_.cause)
85
- ? tsplus_module_1.failCauseSync(() => _.cause)
86
- : tsplus_module_1.sync(() => tsplus_module_2.isSuccess(_)
87
- ? { _tag: "Success", value: _.value }
88
- : { _tag: "Failure", errors: tsplus_module_3.failures(_.cause) }))(tsplus_module_1.exit(parsers
89
- .parsePath(params)))
90
- }));
90
+ });
91
91
  }
92
92
  // // eslint-disable-next-line @typescript-eslint/no-explicit-any
93
93
  // function mapErrors_<E, NE, NER extends Record<string, Effect<any, E, any>>>(
@@ -110,22 +110,22 @@ function makeError(type) {
110
110
  return (e) => [{ type, errors: decodeErrors(e) }];
111
111
  }
112
112
  export function respondSuccess(encodeResponse) {
113
- return (req, res) => tsplus_module_4.flow(encodeResponse(req), tsplus_module_1.succeed, _ => tsplus_module_1.flatMap(r => tsplus_module_1.sync(() => {
113
+ return (req, res) => tsplus_module_4.flow(encodeResponse(req), tsplus_module_1.succeed, _ => tsplus_module_1.flatMap(_, r => tsplus_module_1.sync(() => {
114
114
  r === undefined
115
115
  ? res.status(204).send()
116
116
  : res.status(200).send(r === null ? JSON.stringify(null) : r);
117
- }))(_));
117
+ })));
118
118
  }
119
119
  export function makeRequestParsers(Request) {
120
- const ph = tsplus_module_1.sync(() => tsplus_module_5.map(MO.condemn)(tsplus_module_5.map(Parser.for)(tsplus_module_5.map(s => s)(tsplus_module_5.fromNullable(Request.Headers)))));
120
+ const ph = tsplus_module_1.sync(() => tsplus_module_5.map(tsplus_module_5.map(tsplus_module_5.map(tsplus_module_5.fromNullable(Request.Headers), s => s), Parser.for), MO.condemn));
121
121
  const parseHeaders = (u) => tsplus_module_6.flatMapOption(ph, d => d(u));
122
- const pq = tsplus_module_1.sync(() => tsplus_module_5.map(MO.condemn)(tsplus_module_5.map(Parser.for)(tsplus_module_5.map(s => s)(tsplus_module_5.fromNullable(Request.Query)))));
122
+ const pq = tsplus_module_1.sync(() => tsplus_module_5.map(tsplus_module_5.map(tsplus_module_5.map(tsplus_module_5.fromNullable(Request.Query), s => s), Parser.for), MO.condemn));
123
123
  const parseQuery = (u) => tsplus_module_6.flatMapOption(pq, d => d(u));
124
- const pb = tsplus_module_1.sync(() => tsplus_module_5.map(MO.condemn)(tsplus_module_5.map(Parser.for)(tsplus_module_5.map(s => s)(tsplus_module_5.fromNullable(Request.Body)))));
124
+ const pb = tsplus_module_1.sync(() => tsplus_module_5.map(tsplus_module_5.map(tsplus_module_5.map(tsplus_module_5.fromNullable(Request.Body), s => s), Parser.for), MO.condemn));
125
125
  const parseBody = (u) => tsplus_module_6.flatMapOption(pb, d => d(u));
126
- const pp = tsplus_module_1.sync(() => tsplus_module_5.map(MO.condemn)(tsplus_module_5.map(Parser.for)(tsplus_module_5.map(s => s)(tsplus_module_5.fromNullable(Request.Path)))));
126
+ const pp = tsplus_module_1.sync(() => tsplus_module_5.map(tsplus_module_5.map(tsplus_module_5.map(tsplus_module_5.fromNullable(Request.Path), s => s), Parser.for), MO.condemn));
127
127
  const parsePath = (u) => tsplus_module_6.flatMapOption(pp, d => d(u));
128
- const pc = tsplus_module_1.sync(() => tsplus_module_5.map(MO.condemn)(tsplus_module_5.map(Parser.for)(tsplus_module_5.map(s => s)(tsplus_module_5.fromNullable(Request.Cookie)))));
128
+ const pc = tsplus_module_1.sync(() => tsplus_module_5.map(tsplus_module_5.map(tsplus_module_5.map(tsplus_module_5.fromNullable(Request.Cookie), s => s), Parser.for), MO.condemn));
129
129
  const parseCookie = (u) => tsplus_module_6.flatMapOption(pc, d => d(u));
130
130
  return {
131
131
  parseBody,
@@ -135,4 +135,4 @@ export function makeRequestParsers(Request) {
135
135
  parseQuery
136
136
  };
137
137
  }
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdEhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9fc3JjL2FwaS9leHByZXNzL3NjaGVtYS9yZXF1ZXN0SGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx1REFBdUQ7QUFDdkQsaURBQWlEO0FBQ2pELE9BQU8sS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFeEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQXdDcEQsb0RBQW9EO0FBQ3BELGlDQUFpQztBQUNqQyw2QkFBNkI7QUFDN0IsbUNBQW1DO0FBQ25DLE1BQU07QUFDTixtRUFBbUU7QUFDbkUsaUNBQWlDO0FBQ2pDLE1BQU07QUFDTixxQ0FBcUM7QUFDckMsSUFBSTtBQUNKLE1BQU0sVUFBVSxZQUFZLENBQUMsQ0FBVTtJQUNyQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDWixDQUFDO0FBRUQsaUVBQWlFO0FBQ2pFLCtGQUErRjtBQUMvRiw0QkFBNEI7QUFDNUIsTUFBTTtBQUNOLElBQUk7QUFFSiw4REFBOEQ7QUFDOUQsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxPQUErRDtJQUUvRCxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFtQixFQUFFLEVBQUUsQ0FDcEUsd0JBd0RXLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUNwRCxNQUFNLE1BQU0sR0FBYyxFQUFFLENBQUE7UUFDNUIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUMzQixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMs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
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdEhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9fc3JjL2FwaS9leHByZXNzL3NjaGVtYS9yZXF1ZXN0SGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx1REFBdUQ7QUFDdkQsaURBQWlEO0FBQ2pELE9BQU8sS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFeEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQXdDcEQsb0RBQW9EO0FBQ3BELGlDQUFpQztBQUNqQyw2QkFBNkI7QUFDN0IsbUNBQW1DO0FBQ25DLE1BQU07QUFDTixtRUFBbUU7QUFDbkUsaUNBQWlDO0FBQ2pDLE1BQU07QUFDTixxQ0FBcUM7QUFDckMsSUFBSTtBQUNKLE1BQU0sVUFBVSxZQUFZLENBQUMsQ0FBVTtJQUNyQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDWixDQUFDO0FBRUQsaUVBQWlFO0FBQ2pFLCtGQUErRjtBQUMvRiw0QkFBNEI7QUFDNUIsTUFBTTtBQUNOLElBQUk7QUFFSiw4REFBOEQ7QUFDOUQsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxPQUErRDtJQUUvRCxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFtQixFQUFFLEVBQUUsQ0FDcEUsd0JBQUEsdUJBQWM7UUFDWixJQUFJLEVBQUUsNkNBQUEsT0FBTzthQUNWLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FDRixDQUFDLENBQUMsRUFBRSxDQUNoQiwwQkFBQSxDQUFDLENBQVksSUFBSSxDQUFDLDBCQUFBLENBQUMsQ0FBQyxLQUFLLENBQVk7WUFDbkMsQ0FBQyxDQUFFLDhCQUFxQixHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUEyQztZQUNoRixDQUFDLENBQUMsMkJBQ0EsMEJBQUEsQ0FBQyxDQUFZO2dCQUNYLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFrQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFO2dCQUM5QyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBUyxFQUFFLENBQ2xELENBQ0o7UUFDSCxNQUFNLEVBQUUsNkNBQUEsT0FBTzthQUNaLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FDUCxDQUFDLENBQUMsRUFBRSxDQUNoQiwwQkFBQSxDQUFDLENBQVksSUFBSSxDQUFDLDBCQUFBLENBQUMsQ0FBQyxLQUFLLENBQVk7WUFDbkMsQ0FBQyxDQUFFLDhCQUFxQixHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUEyQztZQUNoRixDQUFDLENBQUMsMkJBQ0EsMEJBQUEsQ0FBQyxDQUFZO2dCQUNYLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFrQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFO2dCQUM5QyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBUyxFQUFFLENBQ2xELENBQ0o7UUFDSCxPQUFPLEVBQUUsNkNBQUEsT0FBTzthQUNiLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FDUixDQUFDLENBQUMsRUFBRSxDQUNoQiwwQkFBQSxDQUFDLENBQVksSUFBSSxDQUFDLDBCQUFBLENBQUMsQ0FBQyxLQUFLLENBQVk7WUFDbkMsQ0FBQyxDQUFFLDhCQUFxQixHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUEyQztZQUNoRixDQUFDLENBQUMsMkJBQ0EsMEJBQUEsQ0FBQyxDQUFZO2dCQUNYLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFrQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFO2dCQUM5QyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBUyxFQUFFLENBQ2xELENBQ0o7UUFDSCxLQUFLLEVBQUUsNkNBQUEsT0FBTzthQUNYLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FDSixDQUFDLENBQUMsRUFBRSxDQUNoQiwwQkFBQSxDQUFDLENBQVksSUFBSSxDQUFDLDBCQUFBLENBQUMsQ0FBQyxLQUFLLENBQVk7WUFDbkMsQ0FBQyxDQUFFLDhCQUFxQixHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUEyQztZQUNoRixDQUFDLENBQUMsMkJBQ0EsMEJBQUEsQ0FBQyxDQUFZO2dCQUNYLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFrQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFO2dCQUM5QyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBUyxFQUFFLENBQ2xELENBQ0o7UUFDSCxJQUFJLEVBQUUsNkNBQUEsT0FBTzthQUNWLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FDSixDQUFDLENBQUMsRUFBRSxDQUNoQiwwQkFBQSxDQUFDLENBQVksSUFBSSxDQUFDLDBCQUFBLENBQUMsQ0FBQyxLQUFLLENBQVk7WUFDbkMsQ0FBQyxDQUFFLDhCQUFxQixHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUEyQztZQUNoRixDQUFDLENBQUMsMkJBQ0EsMEJBQUEsQ0FBQyxDQUFZO2dCQUNYLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFrQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFO2dCQUM5QyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBUyxFQUFFLENBQ2xELENBQ0o7S0FDSixDQUFDLEVBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFB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