@effect-app/infra 0.85.0-next.4 → 0.85.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.
Files changed (232) hide show
  1. package/CHANGELOG.md +5 -32
  2. package/_cjs/_ext/Array.cjs +2 -3
  3. package/_cjs/_ext/Array.cjs.map +1 -1
  4. package/_cjs/api/defaultErrorHandler.cjs +10 -11
  5. package/_cjs/api/defaultErrorHandler.cjs.map +1 -1
  6. package/_cjs/api/express/makeJsonSchema.cjs +2 -3
  7. package/_cjs/api/express/makeJsonSchema.cjs.map +1 -1
  8. package/_cjs/api/express/makeJsonSchema.test.cjs +2 -2
  9. package/_cjs/api/express/makeJsonSchema.test.cjs.map +1 -1
  10. package/_cjs/api/express/makeOpenApiSpecs.cjs +4 -6
  11. package/_cjs/api/express/makeOpenApiSpecs.cjs.map +1 -1
  12. package/_cjs/api/express/schema/routing.cjs +22 -23
  13. package/_cjs/api/express/schema/routing.cjs.map +1 -1
  14. package/_cjs/api/reportError.cjs +2 -2
  15. package/_cjs/api/setupRequest.cjs +4 -5
  16. package/_cjs/api/setupRequest.cjs.map +1 -1
  17. package/_cjs/api/writeDocs.cjs +4 -6
  18. package/_cjs/api/writeDocs.cjs.map +1 -1
  19. package/_cjs/errorReporter.cjs +11 -12
  20. package/_cjs/errorReporter.cjs.map +1 -1
  21. package/_cjs/errors.cjs +8 -8
  22. package/_cjs/errors.cjs.map +1 -1
  23. package/_cjs/instrument.cjs +1 -2
  24. package/_cjs/instrument.cjs.map +1 -1
  25. package/_cjs/logger/jsonLogger.cjs +10 -11
  26. package/_cjs/logger/jsonLogger.cjs.map +1 -1
  27. package/_cjs/logger/logFmtLogger.cjs +5 -5
  28. package/_cjs/logger/logFmtLogger.cjs.map +1 -1
  29. package/_cjs/logger/shared.cjs +4 -4
  30. package/_cjs/logger/shared.cjs.map +1 -1
  31. package/_cjs/rateLimit.cjs +7 -8
  32. package/_cjs/rateLimit.cjs.map +1 -1
  33. package/_cjs/services/Emailer/Sendgrid.cjs +12 -14
  34. package/_cjs/services/Emailer/Sendgrid.cjs.map +1 -1
  35. package/_cjs/services/Emailer/fake.cjs +4 -5
  36. package/_cjs/services/Emailer/fake.cjs.map +1 -1
  37. package/_cjs/services/Operations/live.cjs +29 -31
  38. package/_cjs/services/Operations/live.cjs.map +1 -1
  39. package/_cjs/services/Operations/service.cjs +5 -6
  40. package/_cjs/services/Operations/service.cjs.map +1 -1
  41. package/_cjs/services/QueueMaker/errors.cjs +6 -7
  42. package/_cjs/services/QueueMaker/errors.cjs.map +1 -1
  43. package/_cjs/services/QueueMaker/memQueue.cjs +17 -18
  44. package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
  45. package/_cjs/services/QueueMaker/sbqueue.cjs +15 -16
  46. package/_cjs/services/QueueMaker/sbqueue.cjs.map +1 -1
  47. package/_cjs/services/Repository.cjs +16 -17
  48. package/_cjs/services/Repository.cjs.map +1 -1
  49. package/_cjs/services/RepositoryBase.cjs +33 -35
  50. package/_cjs/services/RepositoryBase.cjs.map +1 -1
  51. package/_cjs/services/RequestContextContainer.cjs +20 -15
  52. package/_cjs/services/RequestContextContainer.cjs.map +1 -1
  53. package/_cjs/services/Store/Cosmos.cjs +46 -49
  54. package/_cjs/services/Store/Cosmos.cjs.map +1 -1
  55. package/_cjs/services/Store/Disk.cjs +18 -19
  56. package/_cjs/services/Store/Disk.cjs.map +1 -1
  57. package/_cjs/services/Store/Memory.cjs +39 -43
  58. package/_cjs/services/Store/Memory.cjs.map +1 -1
  59. package/_cjs/services/Store/Redis.cjs +14 -16
  60. package/_cjs/services/Store/Redis.cjs.map +1 -1
  61. package/_cjs/services/Store/codeFilter.test.cjs +1 -1
  62. package/_cjs/services/Store/index.cjs +6 -7
  63. package/_cjs/services/Store/index.cjs.map +1 -1
  64. package/_cjs/services/Store/service.cjs +1 -1
  65. package/_cjs/services/Store/service.cjs.map +1 -1
  66. package/_cjs/services/Store/utils.cjs +13 -13
  67. package/_cjs/services/Store/utils.cjs.map +1 -1
  68. package/_cjs/services/simpledb/cosmosdb.cjs +17 -19
  69. package/_cjs/services/simpledb/cosmosdb.cjs.map +1 -1
  70. package/_cjs/services/simpledb/diskdb.cjs +8 -9
  71. package/_cjs/services/simpledb/diskdb.cjs.map +1 -1
  72. package/_cjs/services/simpledb/memdb.cjs +9 -11
  73. package/_cjs/services/simpledb/memdb.cjs.map +1 -1
  74. package/_cjs/services/simpledb/mongodb.cjs +18 -20
  75. package/_cjs/services/simpledb/mongodb.cjs.map +1 -1
  76. package/_cjs/services/simpledb/redisdb.cjs +10 -11
  77. package/_cjs/services/simpledb/redisdb.cjs.map +1 -1
  78. package/_cjs/services/simpledb/shared.cjs +5 -5
  79. package/_cjs/services/simpledb/shared.cjs.map +1 -1
  80. package/_cjs/services/simpledb/simpledb.cjs +17 -18
  81. package/_cjs/services/simpledb/simpledb.cjs.map +1 -1
  82. package/_src/api/authorization.jwt.ts +1 -1
  83. package/_src/api/defaultErrorHandler.ts +2 -2
  84. package/_src/api/express/routing.ts.bak +8 -8
  85. package/_src/api/express/schema/routing.ts +59 -37
  86. package/_src/api/setupRequest.ts +11 -10
  87. package/_src/errorReporter.ts +1 -1
  88. package/_src/services/Emailer/Sendgrid.ts +1 -1
  89. package/_src/services/Operations/live.ts +5 -5
  90. package/_src/services/QueueMaker/errors.ts +1 -1
  91. package/_src/services/QueueMaker/memQueue.ts +2 -2
  92. package/_src/services/QueueMaker/sbqueue.ts +1 -1
  93. package/_src/services/Repository.ts +10 -11
  94. package/_src/services/RepositoryBase.ts +8 -11
  95. package/_src/services/RequestContextContainer.ts +12 -7
  96. package/_src/services/Store/Cosmos.ts +12 -17
  97. package/_src/services/Store/Disk.ts +4 -4
  98. package/_src/services/Store/Memory.ts +4 -4
  99. package/_src/services/Store/Redis.ts +1 -1
  100. package/_src/services/Store/index.test.ts.bak +5 -5
  101. package/_src/services/Store/index.ts +1 -1
  102. package/_src/services/Store/utils.ts +16 -16
  103. package/_src/services/simpledb/diskdb.ts +1 -1
  104. package/_src/services/simpledb/memdb.ts +1 -1
  105. package/_src/services/simpledb/redisdb.ts +1 -1
  106. package/_src/services/simpledb/shared.ts +1 -1
  107. package/_src/services/simpledb/simpledb.ts +3 -3
  108. package/dist/RequestContext.d.ts +4 -4
  109. package/dist/_ext/Array.d.ts +1 -1
  110. package/dist/_ext/Array.d.ts.map +1 -1
  111. package/dist/_ext/Array.js +3 -4
  112. package/dist/api/codec.d.ts +1 -1
  113. package/dist/api/codec.d.ts.map +1 -1
  114. package/dist/api/defaultErrorHandler.d.ts +2 -2
  115. package/dist/api/defaultErrorHandler.d.ts.map +1 -1
  116. package/dist/api/defaultErrorHandler.js +11 -13
  117. package/dist/api/express/makeJsonSchema.d.ts +2 -2
  118. package/dist/api/express/makeJsonSchema.d.ts.map +1 -1
  119. package/dist/api/express/makeJsonSchema.js +3 -4
  120. package/dist/api/express/makeOpenApiSpecs.d.ts +1 -1
  121. package/dist/api/express/makeOpenApiSpecs.js +5 -7
  122. package/dist/api/express/schema/routing.d.ts +22 -7
  123. package/dist/api/express/schema/routing.d.ts.map +1 -1
  124. package/dist/api/express/schema/routing.js +23 -24
  125. package/dist/api/reportError.d.ts +5 -5
  126. package/dist/api/reportError.d.ts.map +1 -1
  127. package/dist/api/reportError.js +2 -2
  128. package/dist/api/setupRequest.d.ts +2 -2
  129. package/dist/api/setupRequest.d.ts.map +1 -1
  130. package/dist/api/setupRequest.js +7 -7
  131. package/dist/api/writeDocs.d.ts +1 -1
  132. package/dist/api/writeDocs.d.ts.map +1 -1
  133. package/dist/api/writeDocs.js +5 -7
  134. package/dist/errorReporter.d.ts +3 -3
  135. package/dist/errorReporter.d.ts.map +1 -1
  136. package/dist/errorReporter.js +12 -13
  137. package/dist/errors.d.ts +7 -7
  138. package/dist/errors.js +9 -9
  139. package/dist/instrument.d.ts +1 -1
  140. package/dist/instrument.d.ts.map +1 -1
  141. package/dist/instrument.js +2 -3
  142. package/dist/logger/jsonLogger.d.ts +2 -2
  143. package/dist/logger/jsonLogger.d.ts.map +1 -1
  144. package/dist/logger/jsonLogger.js +11 -12
  145. package/dist/logger/logFmtLogger.d.ts +2 -2
  146. package/dist/logger/logFmtLogger.d.ts.map +1 -1
  147. package/dist/logger/logFmtLogger.js +6 -6
  148. package/dist/logger/shared.d.ts +1 -1
  149. package/dist/logger/shared.d.ts.map +1 -1
  150. package/dist/logger/shared.js +5 -5
  151. package/dist/rateLimit.d.ts +3 -3
  152. package/dist/rateLimit.d.ts.map +1 -1
  153. package/dist/rateLimit.js +8 -9
  154. package/dist/services/Emailer/Sendgrid.d.ts +1 -1
  155. package/dist/services/Emailer/Sendgrid.d.ts.map +1 -1
  156. package/dist/services/Emailer/Sendgrid.js +15 -17
  157. package/dist/services/Emailer/fake.d.ts +1 -1
  158. package/dist/services/Emailer/fake.d.ts.map +1 -1
  159. package/dist/services/Emailer/fake.js +5 -6
  160. package/dist/services/Emailer/service.d.ts +3 -3
  161. package/dist/services/Operations/live.d.ts +1 -1
  162. package/dist/services/Operations/live.d.ts.map +1 -1
  163. package/dist/services/Operations/live.js +37 -39
  164. package/dist/services/Operations/service.d.ts +8 -8
  165. package/dist/services/Operations/service.d.ts.map +1 -1
  166. package/dist/services/Operations/service.js +12 -13
  167. package/dist/services/QueueMaker/errors.d.ts +3 -3
  168. package/dist/services/QueueMaker/errors.d.ts.map +1 -1
  169. package/dist/services/QueueMaker/errors.js +6 -7
  170. package/dist/services/QueueMaker/memQueue.d.ts +3 -3
  171. package/dist/services/QueueMaker/memQueue.js +16 -17
  172. package/dist/services/QueueMaker/sbqueue.d.ts +4 -4
  173. package/dist/services/QueueMaker/sbqueue.d.ts.map +1 -1
  174. package/dist/services/QueueMaker/sbqueue.js +15 -16
  175. package/dist/services/Repository.d.ts +43 -44
  176. package/dist/services/Repository.d.ts.map +1 -1
  177. package/dist/services/Repository.js +17 -18
  178. package/dist/services/RepositoryBase.d.ts +15 -15
  179. package/dist/services/RepositoryBase.d.ts.map +1 -1
  180. package/dist/services/RepositoryBase.js +35 -37
  181. package/dist/services/RequestContextContainer.d.ts +14 -11
  182. package/dist/services/RequestContextContainer.d.ts.map +1 -1
  183. package/dist/services/RequestContextContainer.js +19 -18
  184. package/dist/services/Store/Cosmos.d.ts +3 -3
  185. package/dist/services/Store/Cosmos.d.ts.map +1 -1
  186. package/dist/services/Store/Cosmos.js +51 -54
  187. package/dist/services/Store/Disk.d.ts +3 -3
  188. package/dist/services/Store/Disk.d.ts.map +1 -1
  189. package/dist/services/Store/Disk.js +19 -20
  190. package/dist/services/Store/Memory.d.ts +5 -5
  191. package/dist/services/Store/Memory.d.ts.map +1 -1
  192. package/dist/services/Store/Memory.js +41 -45
  193. package/dist/services/Store/Redis.d.ts +3 -3
  194. package/dist/services/Store/Redis.d.ts.map +1 -1
  195. package/dist/services/Store/Redis.js +15 -17
  196. package/dist/services/Store/index.d.ts +1 -1
  197. package/dist/services/Store/index.d.ts.map +1 -1
  198. package/dist/services/Store/index.js +7 -8
  199. package/dist/services/Store/service.d.ts +8 -8
  200. package/dist/services/Store/service.d.ts.map +1 -1
  201. package/dist/services/Store/service.js +2 -2
  202. package/dist/services/Store/utils.d.ts +2 -2
  203. package/dist/services/Store/utils.d.ts.map +1 -1
  204. package/dist/services/Store/utils.js +21 -21
  205. package/dist/services/simpledb/cosmosdb.d.ts +5 -5
  206. package/dist/services/simpledb/cosmosdb.js +17 -19
  207. package/dist/services/simpledb/diskdb.d.ts +4 -4
  208. package/dist/services/simpledb/diskdb.js +9 -10
  209. package/dist/services/simpledb/memdb.d.ts +4 -4
  210. package/dist/services/simpledb/memdb.js +11 -13
  211. package/dist/services/simpledb/mongodb.d.ts +5 -5
  212. package/dist/services/simpledb/mongodb.js +14 -16
  213. package/dist/services/simpledb/redisdb.d.ts +4 -4
  214. package/dist/services/simpledb/redisdb.js +11 -12
  215. package/dist/services/simpledb/shared.d.ts +4 -4
  216. package/dist/services/simpledb/shared.js +6 -6
  217. package/dist/services/simpledb/simpledb.d.ts +6 -6
  218. package/dist/services/simpledb/simpledb.d.ts.map +1 -1
  219. package/dist/services/simpledb/simpledb.js +15 -16
  220. package/package.json +5 -25
  221. package/_cjs/api/express/schema/requestHandler.cjs +0 -172
  222. package/_cjs/api/express/schema/requestHandler.cjs.map +0 -1
  223. package/_cjs/api/routing.cjs +0 -278
  224. package/_cjs/api/routing.cjs.map +0 -1
  225. package/_src/api/express/schema/requestHandler.ts +0 -372
  226. package/_src/api/routing.ts +0 -660
  227. package/dist/api/express/schema/requestHandler.d.ts +0 -71
  228. package/dist/api/express/schema/requestHandler.d.ts.map +0 -1
  229. package/dist/api/express/schema/requestHandler.js +0 -140
  230. package/dist/api/routing.d.ts +0 -103
  231. package/dist/api/routing.d.ts.map +0 -1
  232. package/dist/api/routing.js +0 -265
@@ -1 +1 @@
1
- {"version":3,"file":"simpledb.cjs","names":["_shared","require","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","InvalidStateError","constructor","message","details","_tag","exports","makeLiveRecordCache","m","Map","type","tsplus_module_1","Effect","sync","ex","nm","makeMap","RecordCache","tsplus_module_2","Tag","LiveRecordCache","tsplus_module_3","effect","getM","eff","gen","$","tsplus_module_4","flatMap","find","tryRead","decode","getCache","read","id","tsplus_module_5","mapOption","tapOption","flatMapOption","data","version","mapBoth","onFailure","err","onSuccess","c","orElse","existing","storeDirectly","save","record","map","tap","x","cv","store","lock","_","tsplus_module_7","match","onNone","tsplus_module_6","Option","none","onSome","confirmVersionAndSave","scoped","zipRight","fail","succeed","OptimisticLockException","unit","some"],"sources":["../../../_src/services/simpledb/simpledb.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"simpledb.cjs","names":["_shared","require","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","InvalidStateError","constructor","message","details","_tag","exports","makeLiveRecordCache","m","Map","type","tsplus_module_1","sync","ex","nm","makeMap","RecordCache","tsplus_module_2","Tag","LiveRecordCache","tsplus_module_3","effect","getM","eff","gen","$","flatMap","find","tryRead","decode","getCache","read","id","tsplus_module_4","mapOption","tapOption","flatMapOption","data","version","mapBoth","onFailure","err","onSuccess","c","orElse","existing","storeDirectly","save","record","map","tap","x","cv","store","lock","_","tsplus_module_6","match","onNone","tsplus_module_5","none","onSome","confirmVersionAndSave","scoped","zipRight","fail","succeed","OptimisticLockException","unit","some"],"sources":["../../../_src/services/simpledb/simpledb.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -42,7 +42,7 @@ export const scopes = Ex.classic(demandScopes)
42
42
  )
43
43
  return (
44
44
  cfg.AUTH_DISABLED
45
- ? Effect.sync(() => null)
45
+ ? Effect(null)
46
46
  : // eslint-disable-next-line @typescript-eslint/no-empty-function
47
47
  handleJwt(req, res, () => scopes(req, res, () => {}))
48
48
  ).zipRight(
@@ -7,7 +7,7 @@ export function defaultBasicErrorHandler<R>(
7
7
  res: express.Response,
8
8
  r2: Effect<R, ValidationError, void>
9
9
  ) {
10
- const sendError = (code: number) => (body: unknown) => Effect.sync(() => res.status(code).send(body))
10
+ const sendError = (code: number) => (body: unknown) => Effect(res.status(code).send(body))
11
11
  return r2
12
12
  .tapErrorCause((cause) => cause.isFailure() ? logRequestError(cause) : Effect.unit)
13
13
  .catchTag("ValidationError", (err) => sendError(400)(err.errors))
@@ -33,7 +33,7 @@ export function defaultErrorHandler<R>(
33
33
  const r3 = req.method === "PATCH"
34
34
  ? r2.retry(optimisticConcurrencySchedule)
35
35
  : r2
36
- const sendError = (code: number) => (body: unknown) => Effect.sync(() => res.status(code).send(body))
36
+ const sendError = (code: number) => (body: unknown) => Effect(res.status(code).send(body))
37
37
  return r3
38
38
  .tapErrorCause((cause) => cause.isFailure() ? logRequestError(cause) : Effect.unit)
39
39
  .catchTags({
@@ -76,7 +76,7 @@ export function match<
76
76
  h
77
77
  )
78
78
  ).zipRight(
79
- Effect.sync(() => makeRouteDescriptor(r.Request.path, r.Request.method, r))
79
+ Effect(makeRouteDescriptor(r.Request.path, r.Request.method, r))
80
80
  )
81
81
  }
82
82
 
@@ -180,14 +180,14 @@ export function handleRequest<
180
180
  }))
181
181
  // final catch all; expecting never so that unhandled known errors will show up
182
182
  .catchAll((err: never) =>
183
- Effect.sync(() =>
183
+ Effect(
184
184
  console.error(
185
185
  "Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect",
186
186
  err
187
187
  )
188
188
  ).flatMap(Effect.die)
189
189
  )
190
- // .tapCause(() => Effect.sync(() => res.status(500).send()))
190
+ // .tapCause(() => Effect(res.status(500).send()))
191
191
  }
192
192
 
193
193
  // Additional convenience helpers
@@ -242,7 +242,7 @@ export function get<
242
242
  r,
243
243
  h
244
244
  )
245
- ).zipRight(Effect.sync(() => makeRouteDescriptor(path, "GET", r)))
245
+ ).zipRight(Effect(makeRouteDescriptor(path, "GET", r)))
246
246
  }
247
247
 
248
248
  export function post<
@@ -295,7 +295,7 @@ export function post<
295
295
  r,
296
296
  h
297
297
  )
298
- ).zipRight(Effect.sync(() => makeRouteDescriptor(path, "POST", r)))
298
+ ).zipRight(Effect(makeRouteDescriptor(path, "POST", r)))
299
299
  }
300
300
 
301
301
  export function put<
@@ -348,7 +348,7 @@ export function put<
348
348
  r,
349
349
  h
350
350
  )
351
- ).zipRight(Effect.sync(() => makeRouteDescriptor(path, "PUT", r)))
351
+ ).zipRight(Effect(makeRouteDescriptor(path, "PUT", r)))
352
352
  }
353
353
 
354
354
  export function patch<
@@ -401,7 +401,7 @@ export function patch<
401
401
  r,
402
402
  h
403
403
  )
404
- ).zipRight(Effect.sync(() => makeRouteDescriptor(path, "PATCH", r)))
404
+ ).zipRight(Effect(makeRouteDescriptor(path, "PATCH", r)))
405
405
  }
406
406
 
407
407
  function del<
@@ -454,7 +454,7 @@ function del<
454
454
  r,
455
455
  h
456
456
  )
457
- ).zipRight(Effect.sync(() => makeRouteDescriptor(path, "DELETE", r)))
457
+ ).zipRight(Effect(makeRouteDescriptor(path, "DELETE", r)))
458
458
  }
459
459
 
460
460
  export { del as delete }
@@ -1,3 +1,4 @@
1
+ /* eslint-disable @typescript-eslint/ban-types */
1
2
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
3
  import * as MO from "@effect-app/schema"
3
4
  import type { Methods } from "@effect-app/schema"
@@ -5,7 +6,37 @@ import type { Methods } from "@effect-app/schema"
5
6
  import type { JSONSchema, ParameterLocation, SubSchema } from "@effect-app/infra-adapters/Openapi/atlas-plutus"
6
7
  import { isObjectSchema } from "@effect-app/infra-adapters/Openapi/atlas-plutus"
7
8
  import * as OpenApi from "@effect-app/infra-adapters/Openapi/index"
8
- import type { RequestHandler, RequestHandlerOptRes } from "./requestHandler.js"
9
+
10
+ export type Request<
11
+ PathA,
12
+ CookieA,
13
+ QueryA,
14
+ BodyA,
15
+ HeaderA,
16
+ ReqA extends PathA & QueryA & BodyA
17
+ > = MO.ReqResSchemed<unknown, ReqA> & {
18
+ method: Methods
19
+ path: string
20
+ Cookie?: MO.ReqRes<Record<string, string>, CookieA>
21
+ Path?: MO.ReqRes<Record<string, string>, PathA>
22
+ Body?: MO.ReqRes<unknown, BodyA>
23
+ Query?: MO.ReqRes<Record<string, string>, QueryA>
24
+ Headers?: MO.ReqRes<Record<string, string>, HeaderA>
25
+ }
26
+
27
+ export interface RouteRequestHandler<
28
+ PathA,
29
+ CookieA,
30
+ QueryA,
31
+ BodyA,
32
+ HeaderA,
33
+ ReqA extends PathA & QueryA & BodyA,
34
+ ResA
35
+ > {
36
+ Request: Request<PathA, CookieA, QueryA, BodyA, HeaderA, ReqA>
37
+ Response?: MO.ReqRes<unknown, ResA> | MO.ReqResSchemed<unknown, ResA>
38
+ ResponseOpenApi?: any
39
+ }
9
40
 
10
41
  export function asRouteDescriptionAny<R extends RouteDescriptorAny>(i: R) {
11
42
  return i as RouteDescriptorAny
@@ -18,7 +49,6 @@ export function arrAsRouteDescriptionAny<R extends RouteDescriptorAny>(
18
49
  }
19
50
 
20
51
  export interface RouteDescriptor<
21
- R,
22
52
  PathA,
23
53
  CookieA,
24
54
  QueryA,
@@ -26,12 +56,12 @@ export interface RouteDescriptor<
26
56
  HeaderA,
27
57
  ReqA extends PathA & QueryA & BodyA,
28
58
  ResA,
29
- Errors,
30
59
  METHOD extends Methods = Methods
31
60
  > {
61
+ _tag: "Schema"
32
62
  path: string
33
63
  method: METHOD
34
- handler: RequestHandler<R, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA, ResA, Errors>
64
+ handler: RouteRequestHandler<PathA, CookieA, QueryA, BodyA, HeaderA, ReqA, ResA>
35
65
  info?: {
36
66
  tags: ReadonlyArray<string>
37
67
  }
@@ -44,13 +74,10 @@ export type RouteDescriptorAny = RouteDescriptor<
44
74
  any,
45
75
  any,
46
76
  any,
47
- any,
48
- any,
49
77
  any
50
78
  >
51
79
 
52
80
  export function makeRouteDescriptor<
53
- R,
54
81
  PathA,
55
82
  CookieA,
56
83
  QueryA,
@@ -58,39 +85,34 @@ export function makeRouteDescriptor<
58
85
  HeaderA,
59
86
  ReqA extends PathA & QueryA & BodyA,
60
87
  ResA = void,
61
- Errors = any,
62
88
  METHOD extends Methods = Methods
63
89
  >(
64
90
  path: string,
65
91
  method: METHOD,
66
- handler: RequestHandlerOptRes<
67
- R,
92
+ handler: RouteRequestHandler<
68
93
  PathA,
69
94
  CookieA,
70
95
  QueryA,
71
96
  BodyA,
72
97
  HeaderA,
73
98
  ReqA,
74
- ResA,
75
- Errors
76
- >
77
- ) {
78
- return { path, method, handler, _tag: "Schema" } as RouteDescriptor<
79
- R,
80
- PathA,
81
- CookieA,
82
- QueryA,
83
- BodyA,
84
- HeaderA,
85
- ReqA,
86
- ResA,
87
- Errors,
88
- METHOD
99
+ ResA
89
100
  >
101
+ ): RouteDescriptor<
102
+ PathA,
103
+ CookieA,
104
+ QueryA,
105
+ BodyA,
106
+ HeaderA,
107
+ ReqA,
108
+ ResA,
109
+ METHOD
110
+ > {
111
+ return { path, handler, method, _tag: "Schema" }
90
112
  }
91
113
 
92
114
  export function makeFromSchema<ResA>(
93
- e: RouteDescriptor<any, any, any, any, any, any, ResA, any, any>
115
+ e: RouteDescriptor<any, any, any, any, any, ResA, any>
94
116
  ) {
95
117
  const jsonSchema_ = OpenApi.for
96
118
  const jsonSchema = <E, A>(r: MO.ReqRes<E, A>) => jsonSchema_(r)
@@ -99,33 +121,33 @@ export function makeFromSchema<ResA>(
99
121
  const Res = r ? MO.extractSchema(r) : MO.Void
100
122
  // TODO EffectOption.fromNullable(Req.Headers).flatMapOpt(jsonSchema)
101
123
  // TODO: use the path vs body etc serialisation also in the Client.
102
- const makeReqQuerySchema = Effect.sync(() => Option.fromNullable(Req.Query)).flatMap((_) =>
124
+ const makeReqQuerySchema = Effect(Option.fromNullable(Req.Query)).flatMap((_) =>
103
125
  _.match({
104
- onNone: () => Effect.sync(() => Option.none()),
126
+ onNone: () => Effect(Option.none),
105
127
  onSome: (_) => jsonSchema(_).map(Option.some)
106
128
  })
107
129
  )
108
- const makeReqHeadersSchema = Effect.sync(() => Option.fromNullable(Req.Headers)).flatMap((_) =>
130
+ const makeReqHeadersSchema = Effect(Option.fromNullable(Req.Headers)).flatMap((_) =>
109
131
  _.match({
110
- onNone: () => Effect.sync(() => Option.none()),
132
+ onNone: () => Effect(Option.none),
111
133
  onSome: (_) => jsonSchema(_).map(Option.some)
112
134
  })
113
135
  )
114
- const makeReqCookieSchema = Effect.sync(() => Option.fromNullable(Req.Cookie)).flatMap((_) =>
136
+ const makeReqCookieSchema = Effect(Option.fromNullable(Req.Cookie)).flatMap((_) =>
115
137
  _.match({
116
- onNone: () => Effect.sync(() => Option.none()),
138
+ onNone: () => Effect(Option.none),
117
139
  onSome: (_) => jsonSchema(_).map(Option.some)
118
140
  })
119
141
  )
120
- const makeReqPathSchema = Effect.sync(() => Option.fromNullable(Req.Path)).flatMap((_) =>
142
+ const makeReqPathSchema = Effect(Option.fromNullable(Req.Path)).flatMap((_) =>
121
143
  _.match({
122
- onNone: () => Effect.sync(() => Option.none()),
144
+ onNone: () => Effect(Option.none),
123
145
  onSome: (_) => jsonSchema(_).map(Option.some)
124
146
  })
125
147
  )
126
- const makeReqBodySchema = Effect.sync(() => Option.fromNullable(Req.Body)).flatMap((_) =>
148
+ const makeReqBodySchema = Effect(Option.fromNullable(Req.Body)).flatMap((_) =>
127
149
  _.match({
128
- onNone: () => Effect.sync(() => Option.none()),
150
+ onNone: () => Effect(Option.none),
129
151
  onSome: (_) => jsonSchema(_).map(Option.some)
130
152
  })
131
153
  )
@@ -136,7 +158,7 @@ export function makeFromSchema<ResA>(
136
158
  function makeParameters(inn: ParameterLocation) {
137
159
  return (a: Option<JSONSchema | SubSchema>) => {
138
160
  return a
139
- .flatMap((o) => (isObjectSchema(o) ? Option.some(o) : Option.none()))
161
+ .flatMap((o) => (isObjectSchema(o) ? Option(o) : Option.none))
140
162
  .map((x) => {
141
163
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
142
164
  return Object.keys(x.properties!).map((p) => {
@@ -1,16 +1,15 @@
1
1
  import { RequestId } from "@effect-app/prelude/ids"
2
2
  import { RequestContext } from "../RequestContext.js"
3
- import { RequestContextContainer, RequestContextContainerImpl } from "../services/RequestContextContainer.js"
3
+ import { RequestContextContainer } from "../services/RequestContextContainer.js"
4
4
 
5
5
  /**
6
6
  * @tsplus fluent effect/io/Effect setupRequestFromWith
7
7
  */
8
8
  export function setupReq3<R, E, A>(self: Effect<R, E, A>, name: string) {
9
- return makeInternalRequestContext(name).flatMap((rc) =>
10
- self
9
+ return makeInternalRequestContext(name)
10
+ .flatMap((rc) => RequestContextContainer.flatMap((_) => _.start(rc)))
11
+ > self
11
12
  .withRequestSpan
12
- .provideService(RequestContextContainer, new RequestContextContainerImpl(rc))
13
- )
14
13
  }
15
14
 
16
15
  function makeInternalRequestContext(name: string) {
@@ -27,8 +26,10 @@ function makeInternalRequestContext(name: string) {
27
26
 
28
27
  /** @tsplus getter effect/io/Effect withRequestSpan */
29
28
  export const withRequestSpan = <R, E, A>(f: Effect<R, E, A>) =>
30
- RequestContextContainer.flatMap((c) => c.requestContext).flatMap((ctx) =>
31
- f
32
- .withSpan(`request[${ctx.name}]#${ctx.id}`)
33
- .withLogSpan("request")
34
- )
29
+ RequestContextContainer
30
+ .get
31
+ .flatMap((ctx) =>
32
+ f
33
+ .withSpan(`request[${ctx.name}]#${ctx.id}`)
34
+ .withLogSpan("request")
35
+ )
@@ -73,5 +73,5 @@ export function reportMessage(message: string) {
73
73
  }
74
74
 
75
75
  export function reportMessageM(message: string) {
76
- return Effect.sync(() => reportMessage(message))
76
+ return Effect(reportMessage(message))
77
77
  }
@@ -32,7 +32,7 @@ const makeLiveSendgrid = ({ apiKey, defaultFrom, defaultReplyTo, realMail, subje
32
32
  void sgMail.send(renderedMsg, false, (err, result) =>
33
33
  err
34
34
  ? cb(Effect.fail(err))
35
- : cb(Effect.sync(() => result)))
35
+ : cb(Effect(result)))
36
36
  )
37
37
  )
38
38
 
@@ -8,7 +8,7 @@ const reportAppError = reportError((cause) => new RequestException(cause))
8
8
 
9
9
  const make = Effect.sync((): Operations => {
10
10
  const ops = new Map<OperationId, Operation>()
11
- const makeOp = Effect.sync(() => OperationId.make())
11
+ const makeOp = Effect(OperationId.make())
12
12
 
13
13
  const cleanup = Effect.sync(() => {
14
14
  const before = new Date().subHours(1)
@@ -29,7 +29,7 @@ const make = Effect.sync((): Operations => {
29
29
  })
30
30
  }
31
31
  function findOp(id: OperationId) {
32
- return Effect.sync(() => Option.fromNullable(ops.get(id)))
32
+ return Effect(Option.fromNullable(ops.get(id)))
33
33
  }
34
34
  function finishOp(id: OperationId, exit: Exit<unknown, unknown>) {
35
35
  return findOp(id).flatMap((_) =>
@@ -52,8 +52,8 @@ const make = Effect.sync((): Operations => {
52
52
  .failureOption
53
53
  .flatMap((_) =>
54
54
  typeof _ === "object" && _ !== null && "message" in _ && LongString.Guard(_.message)
55
- ? Option.some(_.message)
56
- : Option.none()
55
+ ? Option(_.message)
56
+ : Option.none
57
57
  )
58
58
  .value ?? null
59
59
  })
@@ -75,7 +75,7 @@ const make = Effect.sync((): Operations => {
75
75
  cleanup,
76
76
  register: makeOp
77
77
  .tap((id) =>
78
- EffectX.annotateLogscoped("operationId", id)
78
+ Effect.annotateLogscoped("operationId", id)
79
79
  > addOp(id).acquireRelease(
80
80
  (_, exit) => finishOp(id, exit)
81
81
  )
@@ -42,7 +42,7 @@ export function reportNonInterruptedFailure(context?: Record<string, unknown>) {
42
42
  .exit
43
43
  .flatMap((result) =>
44
44
  result.match(
45
- { onFailure: (cause) => report(cause).map(() => result), onSuccess: () => Effect.sync(() => result) }
45
+ { onFailure: (cause) => report(cause).map(() => result), onSuccess: () => Effect(result) }
46
46
  )
47
47
  )
48
48
  }
@@ -43,7 +43,7 @@ export function makeMemQueue<
43
43
  messages
44
44
  .forEachEffect((m) =>
45
45
  // we JSON encode, because that is what the wire also does, and it reveals holes in e.g unknown encoders (Date->String)
46
- Effect.sync(() =>
46
+ Effect(
47
47
  JSON.stringify(
48
48
  encoder({ body: m, meta: requestContext })
49
49
  )
@@ -60,7 +60,7 @@ export function makeMemQueue<
60
60
  const silenceAndReportError = reportNonInterruptedFailure({ name: "MemQueue.drain." + queueDrainName })
61
61
  const processMessage = (msg: string) =>
62
62
  // we JSON parse, because that is what the wire also does, and it reveals holes in e.g unknown encoders (Date->String)
63
- Effect.sync(() => JSON.parse(msg))
63
+ Effect(JSON.parse(msg))
64
64
  .flatMap(parseDrain)
65
65
  .orDie
66
66
  .flatMap(({ body, meta }) =>
@@ -81,7 +81,7 @@ export function makeServiceBusQueue<
81
81
  return yield* $(
82
82
  subscribe({
83
83
  processMessage: (x) => processMessage(x.body).uninterruptible,
84
- processError: (err) => Effect.sync(() => captureException(err.error))
84
+ processError: (err) => Effect(captureException(err.error))
85
85
  })
86
86
  .provide(receiverLayer)
87
87
  )
@@ -7,9 +7,8 @@ import type { InvalidStateError, OptimisticConcurrencyException } from "../error
7
7
  import { NotFoundError } from "../errors.js"
8
8
  import { ContextMap } from "../services/Store.js"
9
9
  import type { Filter } from "../services/Store.js"
10
- import type { RequestContextContainer } from "./RequestContextContainer.js"
11
10
 
12
- export type RequestCTX = ContextMap | RequestContextContainer
11
+ export type RequestCTX = ContextMap
13
12
  /**
14
13
  * @tsplus type Repository
15
14
  */
@@ -155,7 +154,7 @@ export function project<
155
154
  self: Repository<T, PM, Evt, ItemType>,
156
155
  map: { filter?: Filter<PM>; collect?: (t: PM) => Option<S>; limit?: number; skip?: number }
157
156
  ) {
158
- return self.projectEffect(Effect.sync(() => map))
157
+ return self.projectEffect(Effect(map))
159
158
  }
160
159
 
161
160
  /**
@@ -235,7 +234,7 @@ export function query<
235
234
  // TODO: think about collectPM, collectE, and collect(Parsed)
236
235
  map: { filter?: Filter<PM>; collect?: (t: T) => Option<S>; limit?: number; skip?: number }
237
236
  ) {
238
- return self.queryEffect(Effect.sync(() => map))
237
+ return self.queryEffect(Effect(map))
239
238
  }
240
239
 
241
240
  /**
@@ -252,7 +251,7 @@ export function queryOne<
252
251
  // TODO: think about collectPM, collectE, and collect(Parsed)
253
252
  map: { filter?: Filter<PM>; collect?: (t: T) => Option<S> }
254
253
  ) {
255
- return self.queryOneEffect(Effect.sync(() => map))
254
+ return self.queryOneEffect(Effect(map))
256
255
  }
257
256
 
258
257
  /**
@@ -290,7 +289,7 @@ export function queryAndSavePure<
290
289
  // TODO: think about collectPM, collectE, and collect(Parsed)
291
290
  map: { filter: Filter<PM>; collect?: (t: T) => Option<S>; limit?: number; skip?: number }
292
291
  ) {
293
- return self.queryAndSavePureEffect(Effect.sync(() => map))
292
+ return self.queryAndSavePureEffect(Effect(map))
294
293
  }
295
294
 
296
295
  /**
@@ -443,7 +442,7 @@ export function queryAndSavePureBatched<
443
442
  map: { filter: Filter<PM>; collect?: (t: T) => Option<S>; limit?: number; skip?: number },
444
443
  batchSize = 100
445
444
  ) {
446
- return self.queryAndSavePureEffectBatched(Effect.sync(() => map), batchSize)
445
+ return self.queryAndSavePureEffectBatched(Effect(map), batchSize)
447
446
  }
448
447
 
449
448
  /**
@@ -536,7 +535,7 @@ export interface OneDSLExt<T, Evt> {
536
535
  * @tsplus fluent DSLExt updateWith
537
536
  */
538
537
  export function updateWithOne<T, Evt, S1 extends T, S2 extends T>(self: OneDSL<T, Evt>, upd: (item: S1) => S2) {
539
- return self.update((_: S1) => Effect.sync(() => upd(_)))
538
+ return self.update((_: S1) => Effect(upd(_)))
540
539
  }
541
540
 
542
541
  /**
@@ -546,7 +545,7 @@ export function updateWith<T, Evt, S1 extends T, S2 extends T>(
546
545
  self: AllDSL<T, Evt>,
547
546
  upd: (item: S1[]) => S2[]
548
547
  ) {
549
- return self.update((_: S1[]) => Effect.sync(() => upd(_)))
548
+ return self.update((_: S1[]) => Effect(upd(_)))
550
549
  }
551
550
 
552
551
  export function makeOneDSL<T, Evt>(): OneDSL<T, Evt> {
@@ -603,14 +602,14 @@ export function makeDSL<S1, S2, Evt>() {
603
602
  export interface DSLExt<S1, S2, Evt> extends ReturnType<typeof makeDSL<S1, S2, Evt>> {}
604
603
 
605
604
  export function ifAny<T, R, E, A>(fn: (items: NonEmptyReadonlyArray<T>) => Effect<R, E, A>) {
606
- return (items: Iterable<T>) => Effect.sync(() => items.toNonEmptyArray).flatMapOpt(fn)
605
+ return (items: Iterable<T>) => Effect(items.toNonEmptyArray).flatMapOpt(fn)
607
606
  }
608
607
 
609
608
  /**
610
609
  * @tsplus fluent Iterable ifAny
611
610
  */
612
611
  export function ifAny_<T, R, E, A>(items: Iterable<T>, fn: (items: NonEmptyReadonlyArray<T>) => Effect<R, E, A>) {
613
- return Effect.sync(() => items.toNonEmptyArray).flatMapOpt(fn)
612
+ return Effect(items.toNonEmptyArray).flatMapOpt(fn)
614
613
  }
615
614
 
616
615
  /**
@@ -1,13 +1,13 @@
1
1
  import type { ParserEnv } from "@effect-app/schema/custom/Parser"
2
2
  import type { Repository, RequestCTX } from "./Repository.js"
3
- import type { RequestContextContainer } from "./RequestContextContainer.js"
4
3
  import { ContextMap, StoreMaker } from "./Store.js"
5
4
  import type { Filter, StoreConfig, Where } from "./Store.js"
6
5
  import type {} from "effect/Equal"
7
6
  import type {} from "effect/Hash"
7
+ import type { Opt } from "@effect-app/core/Option"
8
8
  import { makeCodec } from "@effect-app/infra/api/codec"
9
9
  import { makeFilters } from "@effect-app/infra/filter"
10
- import type { Option, Schema } from "@effect-app/prelude"
10
+ import type { Schema } from "@effect-app/prelude"
11
11
  import { EParserFor } from "@effect-app/prelude/schema"
12
12
  import type { InvalidStateError, OptimisticConcurrencyException } from "../errors.js"
13
13
 
@@ -20,12 +20,12 @@ export const RepositoryBase = <Service>() => {
20
20
  ) => {
21
21
  abstract class RepositoryBaseC implements Repository<T, PM, Evt, ItemType> {
22
22
  itemType: ItemType = itemType
23
- abstract find: (id: T["id"]) => Effect<ContextMap | RequestContextContainer, never, Option<T>>
23
+ abstract find: (id: T["id"]) => Effect<RequestCTX, never, Opt<T>>
24
24
  abstract all: Effect<ContextMap, never, T[]>
25
25
  abstract saveAndPublish: (
26
26
  items: Iterable<T>,
27
27
  events?: Iterable<Evt>
28
- ) => Effect<ContextMap | RequestContextContainer, InvalidStateError | OptimisticConcurrencyException, void>
28
+ ) => Effect<RequestCTX, InvalidStateError | OptimisticConcurrencyException, void>
29
29
  abstract utils: {
30
30
  mapReverse: (
31
31
  pm: PM,
@@ -38,7 +38,7 @@ export const RepositoryBase = <Service>() => {
38
38
  abstract removeAndPublish: (
39
39
  items: Iterable<T>,
40
40
  events?: Iterable<Evt>
41
- ) => Effect<ContextMap | RequestContextContainer, never, void>
41
+ ) => Effect<RequestCTX, never, void>
42
42
  static where = makeWhere<PM>()
43
43
  static flatMap<R1, E1, B>(f: (a: Service) => Effect<R1, E1, B>): Effect<Service | R1, E1, B> {
44
44
  return Effect.flatMap(this as unknown as Tag<Service, Service>, f)
@@ -129,8 +129,7 @@ export function makeRepo<
129
129
  }
130
130
 
131
131
  const saveAllE = (a: Iterable<E>) =>
132
- Effect
133
- .sync(() => a.toNonEmptyArray)
132
+ Effect(a.toNonEmptyArray)
134
133
  .flatMapOpt((a) =>
135
134
  Do(($) => {
136
135
  const { get, set } = $(ContextMap)
@@ -145,8 +144,7 @@ export function makeRepo<
145
144
 
146
145
  const saveAndPublish = (items: Iterable<T>, events: Iterable<Evt> = []) =>
147
146
  saveAll(items)
148
- > Effect
149
- .sync(() => events.toNonEmptyArray)
147
+ > Effect(events.toNonEmptyArray)
150
148
  // TODO: for full consistency the events should be stored within the same database transaction, and then picked up.
151
149
  .flatMapOpt(publishEvents)
152
150
 
@@ -160,8 +158,7 @@ export function makeRepo<
160
158
  set(e.id, undefined)
161
159
  }
162
160
  yield* $(
163
- Effect
164
- .sync(() => events.toNonEmptyArray)
161
+ Effect(events.toNonEmptyArray)
165
162
  // TODO: for full consistency the events should be stored within the same database transaction, and then picked up.
166
163
  .flatMapOpt(publishEvents)
167
164
  )
@@ -1,3 +1,4 @@
1
+ import { RequestId } from "@effect-app/prelude/ids"
1
2
  import { RequestContext } from "../RequestContext.js"
2
3
 
3
4
  /**
@@ -5,7 +6,8 @@ import { RequestContext } from "../RequestContext.js"
5
6
  */
6
7
  export abstract class RequestContextContainer extends TagClass<RequestContextContainer>() {
7
8
  abstract readonly requestContext: Effect<never, never, RequestContext>
8
- abstract readonly update: (f: (rc: RequestContext) => RequestContext) => Effect<never, never, void>
9
+ abstract readonly update: (f: (rc: RequestContext) => RequestContext) => Effect<never, never, RequestContext>
10
+ abstract readonly start: (f: RequestContext) => Effect<never, never, void>
9
11
  static get get(): Effect<RequestContextContainer, never, RequestContext> {
10
12
  return RequestContextContainer.flatMap((_) => _.requestContext)
11
13
  }
@@ -15,16 +17,18 @@ export abstract class RequestContextContainer extends TagClass<RequestContextCon
15
17
  .flatMap((requestContext) =>
16
18
  requestContext.isSome()
17
19
  ? requestContext.value.requestContext.map(Option.some)
18
- : Effect.sync(() => Option.none())
20
+ : Effect(Option.none)
19
21
  )
20
22
  }
21
23
  }
22
24
 
23
25
  export class RequestContextContainerImpl extends RequestContextContainer {
24
- #ref: Ref<RequestContext>
25
- constructor(inp: RequestContext.ConstructorInput) {
26
+ #ref: FiberRef<RequestContext>
27
+ constructor() {
26
28
  super()
27
- this.#ref = Ref.unsafeMake<RequestContext>(new RequestContext(inp))
29
+ this.#ref = FiberRef.unsafeMake<RequestContext>(
30
+ new RequestContext({ name: ReasonableString("root"), rootId: RequestId("root"), locale: "en" })
31
+ )
28
32
  }
29
33
 
30
34
  override get requestContext() {
@@ -32,13 +36,14 @@ export class RequestContextContainerImpl extends RequestContextContainer {
32
36
  }
33
37
 
34
38
  override update = (f: (a: RequestContext) => RequestContext) => this.#ref.getAndUpdate(f)
39
+ override start = (a: RequestContext) => this.#ref.set(a)
35
40
  }
36
41
 
37
42
  /**
38
43
  * @tsplus static RequestContextContainer.Ops live
39
44
  */
40
- export function live(inp: RequestContext.ConstructorInput) {
41
- return new RequestContextContainerImpl(inp)
45
+ export function live() {
46
+ return new RequestContextContainerImpl()
42
47
  }
43
48
 
44
49
  /** @tsplus static RequestContext.Ops Tag */