@effect-app/infra 4.0.0-beta.220 → 4.0.0-beta.222

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 (266) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/CUPS.d.ts +7 -2
  3. package/dist/CUPS.d.ts.map +1 -1
  4. package/dist/CUPS.js +8 -2
  5. package/dist/Emailer/Sendgrid.d.ts +2 -2
  6. package/dist/Emailer/Sendgrid.d.ts.map +1 -1
  7. package/dist/Emailer/Sendgrid.js +5 -2
  8. package/dist/Emailer/fake.js +2 -2
  9. package/dist/Emailer/service.d.ts +5 -2
  10. package/dist/Emailer/service.d.ts.map +1 -1
  11. package/dist/Emailer/service.js +3 -2
  12. package/dist/MainFiberSet.d.ts +5 -2
  13. package/dist/MainFiberSet.d.ts.map +1 -1
  14. package/dist/MainFiberSet.js +6 -2
  15. package/dist/Model/Repository/Registry.d.ts +3 -2
  16. package/dist/Model/Repository/Registry.d.ts.map +1 -1
  17. package/dist/Model/Repository/Registry.js +3 -2
  18. package/dist/Model/Repository/ext.d.ts +3 -2
  19. package/dist/Model/Repository/ext.d.ts.map +1 -1
  20. package/dist/Model/Repository/ext.js +7 -2
  21. package/dist/Model/Repository/internal/internal.d.ts +5 -2
  22. package/dist/Model/Repository/internal/internal.d.ts.map +1 -1
  23. package/dist/Model/Repository/internal/internal.js +14 -2
  24. package/dist/Model/Repository/legacy.d.ts +4 -2
  25. package/dist/Model/Repository/legacy.d.ts.map +1 -1
  26. package/dist/Model/Repository/makeRepo.d.ts +5 -2
  27. package/dist/Model/Repository/makeRepo.d.ts.map +1 -1
  28. package/dist/Model/Repository/makeRepo.js +2 -3
  29. package/dist/Model/Repository/service.d.ts +5 -2
  30. package/dist/Model/Repository/service.d.ts.map +1 -1
  31. package/dist/Model/Repository/validation.d.ts +2 -2
  32. package/dist/Model/Repository/validation.d.ts.map +1 -1
  33. package/dist/Model/Repository/validation.js +2 -2
  34. package/dist/Model/dsl.d.ts +3 -2
  35. package/dist/Model/dsl.d.ts.map +1 -1
  36. package/dist/Model/dsl.js +2 -3
  37. package/dist/Model/query/dsl.d.ts +4 -2
  38. package/dist/Model/query/dsl.d.ts.map +1 -1
  39. package/dist/Model/query/dsl.js +4 -5
  40. package/dist/Model/query/new-kid-interpreter.d.ts +2 -2
  41. package/dist/Model/query/new-kid-interpreter.d.ts.map +1 -1
  42. package/dist/Model/query/new-kid-interpreter.js +7 -2
  43. package/dist/QueueMaker/SQLQueue.d.ts +3 -2
  44. package/dist/QueueMaker/SQLQueue.d.ts.map +1 -1
  45. package/dist/QueueMaker/SQLQueue.js +6 -2
  46. package/dist/QueueMaker/errors.d.ts +4 -2
  47. package/dist/QueueMaker/errors.d.ts.map +1 -1
  48. package/dist/QueueMaker/errors.js +4 -2
  49. package/dist/QueueMaker/memQueue.d.ts +4 -3
  50. package/dist/QueueMaker/memQueue.d.ts.map +1 -1
  51. package/dist/QueueMaker/memQueue.js +7 -3
  52. package/dist/QueueMaker/sbqueue.d.ts +4 -3
  53. package/dist/QueueMaker/sbqueue.d.ts.map +1 -1
  54. package/dist/QueueMaker/sbqueue.js +6 -3
  55. package/dist/QueueMaker/service.d.ts +4 -2
  56. package/dist/QueueMaker/service.d.ts.map +1 -1
  57. package/dist/QueueMaker/service.js +1 -1
  58. package/dist/RequestContext.d.ts +3 -2
  59. package/dist/RequestContext.d.ts.map +1 -1
  60. package/dist/RequestContext.js +3 -2
  61. package/dist/RequestFiberSet.d.ts +5 -2
  62. package/dist/RequestFiberSet.d.ts.map +1 -1
  63. package/dist/RequestFiberSet.js +7 -2
  64. package/dist/Store/ContextMapContainer.d.ts +5 -2
  65. package/dist/Store/ContextMapContainer.d.ts.map +1 -1
  66. package/dist/Store/ContextMapContainer.js +6 -2
  67. package/dist/Store/Cosmos/query.d.ts +3 -2
  68. package/dist/Store/Cosmos/query.d.ts.map +1 -1
  69. package/dist/Store/Cosmos/query.js +3 -2
  70. package/dist/Store/Cosmos.d.ts +2 -2
  71. package/dist/Store/Cosmos.d.ts.map +1 -1
  72. package/dist/Store/Cosmos.js +9 -2
  73. package/dist/Store/Disk.d.ts +2 -2
  74. package/dist/Store/Disk.d.ts.map +1 -1
  75. package/dist/Store/Disk.js +5 -2
  76. package/dist/Store/Memory.d.ts +3 -2
  77. package/dist/Store/Memory.d.ts.map +1 -1
  78. package/dist/Store/Memory.js +11 -2
  79. package/dist/Store/SQL/Pg.d.ts +1 -1
  80. package/dist/Store/SQL/Pg.d.ts.map +1 -1
  81. package/dist/Store/SQL/Pg.js +4 -2
  82. package/dist/Store/SQL/query.d.ts +3 -2
  83. package/dist/Store/SQL/query.d.ts.map +1 -1
  84. package/dist/Store/SQL/query.js +2 -3
  85. package/dist/Store/SQL.d.ts +4 -3
  86. package/dist/Store/SQL.d.ts.map +1 -1
  87. package/dist/Store/SQL.js +7 -3
  88. package/dist/Store/codeFilter.d.ts +2 -2
  89. package/dist/Store/codeFilter.d.ts.map +1 -1
  90. package/dist/Store/codeFilter.js +3 -2
  91. package/dist/Store/index.d.ts +2 -2
  92. package/dist/Store/index.d.ts.map +1 -1
  93. package/dist/Store/index.js +4 -2
  94. package/dist/Store/service.d.ts +6 -2
  95. package/dist/Store/service.d.ts.map +1 -1
  96. package/dist/Store/service.js +3 -2
  97. package/dist/Store/utils.d.ts +3 -2
  98. package/dist/Store/utils.d.ts.map +1 -1
  99. package/dist/Store/utils.js +3 -2
  100. package/dist/adapters/SQL/Model.d.ts +1 -1
  101. package/dist/adapters/SQL/Model.js +1 -1
  102. package/dist/adapters/ServiceBus.d.ts +5 -2
  103. package/dist/adapters/ServiceBus.d.ts.map +1 -1
  104. package/dist/adapters/ServiceBus.js +7 -2
  105. package/dist/adapters/cosmos-client.d.ts +4 -2
  106. package/dist/adapters/cosmos-client.d.ts.map +1 -1
  107. package/dist/adapters/cosmos-client.js +4 -2
  108. package/dist/adapters/logger.d.ts +1 -1
  109. package/dist/adapters/memQueue.d.ts +4 -2
  110. package/dist/adapters/memQueue.d.ts.map +1 -1
  111. package/dist/adapters/memQueue.js +5 -4
  112. package/dist/adapters/mongo-client.d.ts +3 -2
  113. package/dist/adapters/mongo-client.d.ts.map +1 -1
  114. package/dist/adapters/mongo-client.js +4 -2
  115. package/dist/adapters/redis-client.d.ts +5 -2
  116. package/dist/adapters/redis-client.d.ts.map +1 -1
  117. package/dist/adapters/redis-client.js +6 -2
  118. package/dist/api/ContextProvider.d.ts +6 -2
  119. package/dist/api/ContextProvider.d.ts.map +1 -1
  120. package/dist/api/ContextProvider.js +5 -3
  121. package/dist/api/internal/RequestContextMiddleware.d.ts +2 -2
  122. package/dist/api/internal/RequestContextMiddleware.d.ts.map +1 -1
  123. package/dist/api/internal/RequestContextMiddleware.js +3 -2
  124. package/dist/api/internal/auth.d.ts +2 -2
  125. package/dist/api/internal/auth.d.ts.map +1 -1
  126. package/dist/api/internal/auth.js +4 -2
  127. package/dist/api/internal/events.d.ts +4 -2
  128. package/dist/api/internal/events.d.ts.map +1 -1
  129. package/dist/api/internal/events.js +7 -2
  130. package/dist/api/layerUtils.d.ts +6 -2
  131. package/dist/api/layerUtils.d.ts.map +1 -1
  132. package/dist/api/layerUtils.js +4 -3
  133. package/dist/api/reportError.d.ts +2 -2
  134. package/dist/api/reportError.d.ts.map +1 -1
  135. package/dist/api/reportError.js +3 -2
  136. package/dist/api/routing/middleware/RouterMiddleware.d.ts +3 -2
  137. package/dist/api/routing/middleware/RouterMiddleware.d.ts.map +1 -1
  138. package/dist/api/routing/middleware/middleware.d.ts +5 -2
  139. package/dist/api/routing/middleware/middleware.d.ts.map +1 -1
  140. package/dist/api/routing/middleware/middleware.js +6 -2
  141. package/dist/api/routing/schema/jwt.d.ts +1 -1
  142. package/dist/api/routing/schema/jwt.d.ts.map +1 -1
  143. package/dist/api/routing/schema/jwt.js +3 -2
  144. package/dist/api/routing/utils.d.ts +2 -2
  145. package/dist/api/routing/utils.d.ts.map +1 -1
  146. package/dist/api/routing/utils.js +3 -2
  147. package/dist/api/routing.d.ts +6 -2
  148. package/dist/api/routing.d.ts.map +1 -1
  149. package/dist/api/routing.js +8 -6
  150. package/dist/api/setupRequest.d.ts +3 -2
  151. package/dist/api/setupRequest.d.ts.map +1 -1
  152. package/dist/api/setupRequest.js +5 -2
  153. package/dist/arbs.d.ts +2 -2
  154. package/dist/arbs.d.ts.map +1 -1
  155. package/dist/arbs.js +1 -1
  156. package/dist/errorReporter.d.ts +4 -2
  157. package/dist/errorReporter.d.ts.map +1 -1
  158. package/dist/errorReporter.js +3 -2
  159. package/dist/fileUtil.d.ts +2 -2
  160. package/dist/fileUtil.d.ts.map +1 -1
  161. package/dist/fileUtil.js +2 -2
  162. package/dist/logger/jsonLogger.d.ts +2 -2
  163. package/dist/logger/jsonLogger.d.ts.map +1 -1
  164. package/dist/logger/jsonLogger.js +4 -2
  165. package/dist/logger/logFmtLogger.d.ts +2 -2
  166. package/dist/logger/logFmtLogger.d.ts.map +1 -1
  167. package/dist/logger/logFmtLogger.js +2 -2
  168. package/dist/logger/shared.d.ts +2 -2
  169. package/dist/logger/shared.d.ts.map +1 -1
  170. package/dist/logger/shared.js +2 -2
  171. package/dist/otel.d.ts +2 -2
  172. package/dist/otel.d.ts.map +1 -1
  173. package/dist/otel.js +2 -2
  174. package/dist/rateLimit.d.ts +4 -2
  175. package/dist/rateLimit.d.ts.map +1 -1
  176. package/dist/rateLimit.js +3 -2
  177. package/dist/test.d.ts +2 -2
  178. package/dist/test.d.ts.map +1 -1
  179. package/dist/test.js +2 -2
  180. package/examples/query.ts +5 -1
  181. package/package.json +2 -2
  182. package/src/CUPS.ts +7 -1
  183. package/src/Emailer/Sendgrid.ts +4 -1
  184. package/src/Emailer/fake.ts +1 -1
  185. package/src/Emailer/service.ts +5 -1
  186. package/src/MainFiberSet.ts +5 -1
  187. package/src/Model/Repository/Registry.ts +2 -1
  188. package/src/Model/Repository/ext.ts +7 -1
  189. package/src/Model/Repository/internal/internal.ts +14 -1
  190. package/src/Model/Repository/legacy.ts +3 -1
  191. package/src/Model/Repository/makeRepo.ts +4 -1
  192. package/src/Model/Repository/service.ts +4 -1
  193. package/src/Model/Repository/validation.ts +1 -1
  194. package/src/Model/dsl.ts +2 -1
  195. package/src/Model/query/dsl.ts +5 -1
  196. package/src/Model/query/new-kid-interpreter.ts +6 -1
  197. package/src/QueueMaker/SQLQueue.ts +6 -1
  198. package/src/QueueMaker/errors.ts +3 -1
  199. package/src/QueueMaker/memQueue.ts +7 -2
  200. package/src/QueueMaker/sbqueue.ts +6 -2
  201. package/src/QueueMaker/service.ts +3 -1
  202. package/src/RequestContext.ts +2 -1
  203. package/src/RequestFiberSet.ts +7 -1
  204. package/src/Store/ContextMapContainer.ts +5 -1
  205. package/src/Store/Cosmos/query.ts +3 -1
  206. package/src/Store/Cosmos.ts +9 -1
  207. package/src/Store/Disk.ts +4 -1
  208. package/src/Store/Memory.ts +11 -1
  209. package/src/Store/SQL/Pg.ts +4 -1
  210. package/src/Store/SQL/query.ts +2 -1
  211. package/src/Store/SQL.ts +7 -2
  212. package/src/Store/codeFilter.ts +2 -1
  213. package/src/Store/index.ts +3 -1
  214. package/src/Store/service.ts +5 -1
  215. package/src/Store/utils.ts +2 -1
  216. package/src/adapters/SQL/Model.ts +1 -1
  217. package/src/adapters/ServiceBus.ts +7 -1
  218. package/src/adapters/cosmos-client.ts +3 -1
  219. package/src/adapters/memQueue.ts +4 -3
  220. package/src/adapters/mongo-client.ts +3 -1
  221. package/src/adapters/redis-client.ts +5 -1
  222. package/src/api/ContextProvider.ts +6 -1
  223. package/src/api/internal/RequestContextMiddleware.ts +2 -1
  224. package/src/api/internal/auth.ts +3 -1
  225. package/src/api/internal/events.ts +6 -1
  226. package/src/api/layerUtils.ts +5 -1
  227. package/src/api/reportError.ts +2 -1
  228. package/src/api/routing/middleware/RouterMiddleware.ts +2 -1
  229. package/src/api/routing/middleware/middleware.ts +5 -1
  230. package/src/api/routing/schema/jwt.ts +2 -1
  231. package/src/api/routing/utils.ts +2 -1
  232. package/src/api/routing.ts +9 -1
  233. package/src/api/setupRequest.ts +4 -1
  234. package/src/arbs.ts +1 -1
  235. package/src/errorReporter.ts +3 -1
  236. package/src/fileUtil.ts +1 -1
  237. package/src/logger/jsonLogger.ts +3 -1
  238. package/src/logger/logFmtLogger.ts +1 -1
  239. package/src/logger/shared.ts +2 -1
  240. package/src/otel.ts +1 -1
  241. package/src/rateLimit.ts +4 -1
  242. package/src/test.ts +1 -1
  243. package/test/auth.test.ts +1 -1
  244. package/test/contextProvider.test.ts +4 -1
  245. package/test/controller.test.ts +6 -1
  246. package/test/dist/contextProvider.test.d.ts.map +1 -1
  247. package/test/dist/controller.test.d.ts.map +1 -1
  248. package/test/dist/fixtures.d.ts +6 -2
  249. package/test/dist/fixtures.d.ts.map +1 -1
  250. package/test/dist/fixtures.js +7 -2
  251. package/test/dist/query.test.d.ts.map +1 -1
  252. package/test/dist/rawQuery.test.d.ts.map +1 -1
  253. package/test/dist/requires.test.d.ts.map +1 -1
  254. package/test/dist/rpc-multi-middleware.test.d.ts.map +1 -1
  255. package/test/fixtures.ts +6 -1
  256. package/test/layerUtils.test.ts +1 -1
  257. package/test/query.test.ts +8 -2
  258. package/test/rawQuery.test.ts +12 -1
  259. package/test/repository-ext.test.ts +3 -1
  260. package/test/requires.test.ts +6 -1
  261. package/test/router-generator.test.ts +5 -1
  262. package/test/routing-interruptibility.test.ts +5 -2
  263. package/test/rpc-e2e-invalidation.test.ts +7 -2
  264. package/test/rpc-multi-middleware.test.ts +8 -2
  265. package/test/rpc-stream-fullstack.test.ts +6 -2
  266. package/test/validateSample.test.ts +3 -1
package/examples/query.ts CHANGED
@@ -1,5 +1,9 @@
1
1
  import { expectTypeOf } from "@effect/vitest"
2
- import { Effect, Layer, ManagedRuntime, S, Struct } from "effect-app"
2
+ import * as Effect from "effect-app/Effect"
3
+ import * as Layer from "effect-app/Layer"
4
+ import * as S from "effect-app/Schema"
5
+ import * as ManagedRuntime from "effect/ManagedRuntime"
6
+ import * as Struct from "effect/Struct"
3
7
  import { makeRepo } from "../src/Model.js"
4
8
  import { and, make, one, or, order, page, project, type QueryWhere, where } from "../src/Model/query.js"
5
9
  import { MemoryStoreLive } from "../src/Store/Memory.js"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-app/infra",
3
- "version": "4.0.0-beta.220",
3
+ "version": "4.0.0-beta.222",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -13,7 +13,7 @@
13
13
  "proper-lockfile": "^4.1.2",
14
14
  "pure-rand": "8.4.0",
15
15
  "query-string": "^9.3.1",
16
- "effect-app": "4.0.0-beta.220"
16
+ "effect-app": "4.0.0-beta.222"
17
17
  },
18
18
  "devDependencies": {
19
19
  "@azure/cosmos": "^4.9.3",
package/src/CUPS.ts CHANGED
@@ -1,7 +1,13 @@
1
1
  import { type FileOptions, tempFile } from "@effect-app/infra/fileUtil"
2
2
  import cp from "child_process"
3
- import { Config, Context, Effect, Layer, Option, Predicate, S } from "effect-app"
3
+ import * as Config from "effect-app/Config"
4
+ import * as Context from "effect-app/Context"
5
+ import * as Effect from "effect-app/Effect"
6
+ import * as Layer from "effect-app/Layer"
7
+ import * as Option from "effect-app/Option"
8
+ import * as S from "effect-app/Schema"
4
9
  import { pretty } from "effect-app/utils"
10
+ import * as Predicate from "effect/Predicate"
5
11
  import fs from "fs"
6
12
  import os from "os"
7
13
  import path from "path"
@@ -1,8 +1,11 @@
1
1
  import type { EmailData } from "@sendgrid/helpers/classes/email-address.js"
2
2
  import type { MailContent } from "@sendgrid/helpers/classes/mail.js"
3
3
  import sgMail from "@sendgrid/mail"
4
- import { Array, Effect, Equivalence, Redacted } from "effect-app"
4
+ import * as Array from "effect-app/Array"
5
+ import * as Effect from "effect-app/Effect"
5
6
  import { dropUndefinedT } from "effect-app/utils"
7
+ import * as Equivalence from "effect/Equivalence"
8
+ import * as Redacted from "effect/Redacted"
6
9
  import { inspect } from "util"
7
10
  import { InfraLogger } from "../logger.js"
8
11
  import { Emailer, type EmailMsg, type EmailMsgOptionalFrom, type SendgridConfig, SendMailError } from "./service.js"
@@ -1,4 +1,4 @@
1
- import { Effect } from "effect-app"
1
+ import * as Effect from "effect-app/Effect"
2
2
  import { pretty } from "effect-app/utils"
3
3
  import { InfraLogger } from "../logger.js"
4
4
  import { Emailer } from "./service.js"
@@ -1,7 +1,11 @@
1
1
  import type { MailContent, MailData } from "@sendgrid/helpers/classes/mail.js"
2
2
  import type { ResponseError } from "@sendgrid/mail"
3
- import { Context, Data, type Effect, type NonEmptyReadonlyArray, type Redacted } from "effect-app"
3
+ import type { NonEmptyReadonlyArray } from "effect-app/Array"
4
+ import * as Context from "effect-app/Context"
5
+ import type * as Effect from "effect-app/Effect"
4
6
  import type { Email } from "effect-app/Schema"
7
+ import * as Data from "effect/Data"
8
+ import type * as Redacted from "effect/Redacted"
5
9
 
6
10
  export class SendMailError extends Data.TaggedError("SendMailError")<{
7
11
  readonly raw: Error | ResponseError
@@ -1,4 +1,8 @@
1
- import { Context, Effect, Fiber, FiberSet, Layer } from "effect-app"
1
+ import * as Context from "effect-app/Context"
2
+ import * as Effect from "effect-app/Effect"
3
+ import * as Layer from "effect-app/Layer"
4
+ import * as Fiber from "effect/Fiber"
5
+ import * as FiberSet from "effect/FiberSet"
2
6
 
3
7
  import { InfraLogger } from "./logger.js"
4
8
  import { reportNonInterruptedFailureCause } from "./QueueMaker/errors.js"
@@ -1,4 +1,5 @@
1
- import { Context, Effect } from "effect-app"
1
+ import * as Context from "effect-app/Context"
2
+ import * as Effect from "effect-app/Effect"
2
3
 
3
4
  export interface RegisteredRepository {
4
5
  readonly seedNamespace: (namespace: string) => Effect.Effect<void>
@@ -1,8 +1,14 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  /* eslint-disable @typescript-eslint/no-unsafe-return */
3
- import { Array, Effect, Exit, type NonEmptyArray, Option, Request, RequestResolver } from "effect-app"
3
+ import * as Array from "effect-app/Array"
4
+ import type { NonEmptyArray } from "effect-app/Array"
4
5
  import { type InvalidStateError, NotFoundError, type OptimisticConcurrencyException } from "effect-app/client/errors"
6
+ import * as Effect from "effect-app/Effect"
7
+ import * as Option from "effect-app/Option"
5
8
  import { type FixEnv, type PureEnv, runTerm } from "effect-app/Pure"
9
+ import * as Exit from "effect/Exit"
10
+ import * as Request from "effect/Request"
11
+ import * as RequestResolver from "effect/RequestResolver"
6
12
  import { AnyPureDSL } from "../dsl.js"
7
13
  import type { FieldValues } from "../filter/types.js"
8
14
  import type { Query, QueryEnd, QueryWhere } from "../query.js"
@@ -1,10 +1,23 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
 
3
- import { Array, Chunk, Context, Effect, Equivalence, flow, type NonEmptyReadonlyArray, Option, pipe, Pipeable, PubSub, Result, S, SchemaAST, Unify } from "effect-app"
3
+ import * as Array from "effect-app/Array"
4
+ import type { NonEmptyReadonlyArray } from "effect-app/Array"
4
5
  import { toNonEmptyArray } from "effect-app/Array"
6
+ import * as Chunk from "effect-app/Chunk"
5
7
  import { NotFoundError } from "effect-app/client/errors"
8
+ import * as Context from "effect-app/Context"
9
+ import * as Effect from "effect-app/Effect"
6
10
  import { flatMapOption } from "effect-app/Effect"
11
+ import * as Option from "effect-app/Option"
12
+ import * as S from "effect-app/Schema"
7
13
  import { type Codec, NonNegativeInt } from "effect-app/Schema"
14
+ import * as Equivalence from "effect/Equivalence"
15
+ import { flow, pipe } from "effect/Function"
16
+ import * as Pipeable from "effect/Pipeable"
17
+ import * as PubSub from "effect/PubSub"
18
+ import * as Result from "effect/Result"
19
+ import * as SchemaAST from "effect/SchemaAST"
20
+ import * as Unify from "effect/Unify"
8
21
  import { setupRequestContextFromCurrent } from "../../../api/setupRequest.js"
9
22
  import { type FilterArgs, type PersistenceModelType, type StoreConfig, StoreMaker } from "../../../Store.js"
10
23
  import { getContextMap } from "../../../Store/ContextMapContainer.js"
@@ -1,7 +1,9 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  /* eslint-disable @typescript-eslint/no-unsafe-assignment */
3
- import type { Effect, Option, S } from "effect-app"
4
3
  import type { OptimisticConcurrencyException } from "effect-app/client/errors"
4
+ import type * as Effect from "effect-app/Effect"
5
+ import type * as Option from "effect-app/Option"
6
+ import type * as S from "effect-app/Schema"
5
7
 
6
8
  export interface Mapped1<A, IdKey extends keyof A, R> {
7
9
  all: Effect.Effect<A[], S.SchemaError, R>
@@ -6,7 +6,10 @@
6
6
 
7
7
  // import type { ParserEnv } from "effect-app/Schema/custom/Parser"
8
8
 
9
- import { type Context, Effect, type NonEmptyReadonlyArray, type S } from "effect-app"
9
+ import type { NonEmptyReadonlyArray } from "effect-app/Array"
10
+ import type * as Context from "effect-app/Context"
11
+ import * as Effect from "effect-app/Effect"
12
+ import type * as S from "effect-app/Schema"
10
13
  import type { StoreConfig, StoreMaker } from "../../Store.js"
11
14
  import type { FieldValues } from "../filter/types.js"
12
15
  import { type ExtendedRepository, extendRepo } from "./ext.js"
@@ -1,7 +1,10 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import type { Effect, Option, PubSub, S } from "effect-app"
3
2
  import type { InvalidStateError, NotFoundError, OptimisticConcurrencyException } from "effect-app/client/errors"
3
+ import type * as Effect from "effect-app/Effect"
4
+ import type * as Option from "effect-app/Option"
5
+ import type * as S from "effect-app/Schema"
4
6
  import type { NonNegativeInt } from "effect-app/Schema/numbers"
7
+ import type * as PubSub from "effect/PubSub"
5
8
  import type { FieldValues, IsNever, ResolveFirstLevel } from "../filter/types.js"
6
9
  import type { QAll, Query, QueryProjection, RawQuery } from "../query.js"
7
10
  import type { Mapped } from "./legacy.js"
@@ -1,4 +1,4 @@
1
- import { S } from "effect-app"
1
+ import * as S from "effect-app/Schema"
2
2
  import { NonNegativeInt } from "effect-app/Schema"
3
3
 
4
4
  /**
package/src/Model/dsl.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { Effect, type NonEmptyReadonlyArray } from "effect-app"
2
+ import type { NonEmptyReadonlyArray } from "effect-app/Array"
3
3
  import { toNonEmptyArray } from "effect-app/Array"
4
+ import * as Effect from "effect-app/Effect"
4
5
  import { type FixEnv, get, logMany, type Pure, type PureEnvEnv, type PureLogT, set } from "effect-app/Pure"
5
6
 
6
7
  export interface PureDSL<S, S2, W> {
@@ -1,8 +1,12 @@
1
1
  /* eslint-disable @typescript-eslint/no-unsafe-assignment */
2
2
  /* eslint-disable @typescript-eslint/no-unsafe-argument */
3
3
  /* eslint-disable @typescript-eslint/no-explicit-any */
4
- import { Data, flow, type Option, Pipeable, type S } from "effect-app"
4
+ import type * as Option from "effect-app/Option"
5
+ import type * as S from "effect-app/Schema"
5
6
  import type { NonNegativeInt } from "effect-app/Schema"
7
+ import * as Data from "effect/Data"
8
+ import { flow } from "effect/Function"
9
+ import * as Pipeable from "effect/Pipeable"
6
10
  import type { Covariant } from "effect/Types"
7
11
  import type { Ops } from "../filter/filterApi.js"
8
12
  import type { FieldValues } from "../filter/types.js"
@@ -1,8 +1,13 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  /* eslint-disable @typescript-eslint/no-unsafe-assignment */
3
- import { Array, identity, Match, Option, pipe, S, SchemaAST } from "effect-app"
3
+ import * as Array from "effect-app/Array"
4
4
  import { toNonEmptyArray } from "effect-app/Array"
5
+ import * as Option from "effect-app/Option"
6
+ import * as S from "effect-app/Schema"
5
7
  import { dropUndefinedT } from "effect-app/utils"
8
+ import { identity, pipe } from "effect/Function"
9
+ import * as Match from "effect/Match"
10
+ import * as SchemaAST from "effect/SchemaAST"
6
11
  import type { FilterResult } from "../filter/filterApi.js"
7
12
  import type { FieldValues } from "../filter/types.js"
8
13
  import type { FieldPath } from "../filter/types/path/eager.js"
@@ -2,9 +2,14 @@ import { getRequestContext, setupRequestContextWithCustomSpan } from "@effect-ap
2
2
  import { reportNonInterruptedFailure } from "@effect-app/infra/QueueMaker/errors"
3
3
  import { type QueueBase, QueueMeta } from "@effect-app/infra/QueueMaker/service"
4
4
  import { subMinutes } from "date-fns"
5
- import { Effect, Fiber, type NonEmptyReadonlyArray, Option, S, Tracer } from "effect-app"
5
+ import type { NonEmptyReadonlyArray } from "effect-app/Array"
6
+ import * as Effect from "effect-app/Effect"
7
+ import * as Option from "effect-app/Option"
8
+ import * as S from "effect-app/Schema"
6
9
  import { type NonEmptyString255 } from "effect-app/Schema"
7
10
  import { pretty } from "effect-app/utils"
11
+ import * as Fiber from "effect/Fiber"
12
+ import * as Tracer from "effect/Tracer"
8
13
  import { SqlClient } from "effect/unstable/sql"
9
14
  import { SQLModel } from "../adapters/SQL.js"
10
15
  import { InfraLogger } from "../logger.js"
@@ -1,5 +1,7 @@
1
1
  import { reportError } from "@effect-app/infra/errorReporter"
2
- import { Cause, Effect, Exit } from "effect-app"
2
+ import * as Effect from "effect-app/Effect"
3
+ import * as Cause from "effect/Cause"
4
+ import * as Exit from "effect/Exit"
3
5
 
4
6
  const reportQueueError_ = reportError("Queue")
5
7
 
@@ -1,7 +1,12 @@
1
- import { Cause, Tracer } from "effect"
2
- import { Effect, Fiber, flow, type NonEmptyReadonlyArray, S } from "effect-app"
1
+ import type { NonEmptyReadonlyArray } from "effect-app/Array"
2
+ import * as Effect from "effect-app/Effect"
3
+ import * as S from "effect-app/Schema"
3
4
  import { pretty } from "effect-app/utils"
5
+ import * as Cause from "effect/Cause"
6
+ import * as Fiber from "effect/Fiber"
7
+ import { flow } from "effect/Function"
4
8
  import * as Q from "effect/Queue"
9
+ import * as Tracer from "effect/Tracer"
5
10
  import { MemQueue } from "../adapters/memQueue.js"
6
11
  import { getRequestContext, setupRequestContextWithCustomSpan } from "../api/setupRequest.js"
7
12
  import { InfraLogger } from "../logger.js"
@@ -1,7 +1,11 @@
1
- import { Tracer } from "effect"
2
- import { Cause, Effect, flow, type NonEmptyReadonlyArray, S } from "effect-app"
1
+ import type { NonEmptyReadonlyArray } from "effect-app/Array"
2
+ import * as Effect from "effect-app/Effect"
3
+ import * as S from "effect-app/Schema"
3
4
  import type { StringId } from "effect-app/Schema"
4
5
  import { pretty } from "effect-app/utils"
6
+ import * as Cause from "effect/Cause"
7
+ import { flow } from "effect/Function"
8
+ import * as Tracer from "effect/Tracer"
5
9
  import { Receiver, Sender } from "../adapters/ServiceBus.js"
6
10
  import { getRequestContext, setupRequestContextWithCustomSpan } from "../api/setupRequest.js"
7
11
  import { InfraLogger } from "../logger.js"
@@ -1,4 +1,6 @@
1
- import type { Effect, NonEmptyReadonlyArray, Scope } from "effect-app"
1
+ import type { NonEmptyReadonlyArray } from "effect-app/Array"
2
+ import type * as Effect from "effect-app/Effect"
3
+ import type * as Scope from "effect/Scope"
2
4
  import { RequestContext } from "../RequestContext.js"
3
5
 
4
6
  export interface QueueBase<Evt, DrainEvt> {
@@ -1,5 +1,6 @@
1
- import { Context, S } from "effect-app"
1
+ import * as Context from "effect-app/Context"
2
2
  import { UserProfileId } from "effect-app/ids"
3
+ import * as S from "effect-app/Schema"
3
4
  import { NonEmptyString255 } from "effect-app/Schema"
4
5
 
5
6
  export const Locale = S.Literals(["en", "de"])
@@ -1,5 +1,11 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { Context, Effect, Fiber, FiberSet, Layer, Option, type Tracer } from "effect-app"
2
+ import * as Context from "effect-app/Context"
3
+ import * as Effect from "effect-app/Effect"
4
+ import * as Layer from "effect-app/Layer"
5
+ import * as Option from "effect-app/Option"
6
+ import * as Fiber from "effect/Fiber"
7
+ import * as FiberSet from "effect/FiberSet"
8
+ import type * as Tracer from "effect/Tracer"
3
9
  import { reportRequestError, reportUnknownRequestError } from "./api/reportError.js"
4
10
  import { InfraLogger } from "./logger.js"
5
11
 
@@ -1,6 +1,10 @@
1
- import { Context, Data, Effect, Layer, RequestResolver } from "effect-app"
1
+ import * as Context from "effect-app/Context"
2
+ import * as Effect from "effect-app/Effect"
3
+ import * as Layer from "effect-app/Layer"
4
+ import * as Data from "effect/Data"
2
5
  import { dual } from "effect/Function"
3
6
  import type * as Request from "effect/Request"
7
+ import * as RequestResolver from "effect/RequestResolver"
4
8
  import { ContextMap } from "./service.js"
5
9
 
6
10
  // TODO: we have to create a new contextmap on every request.
@@ -1,6 +1,8 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  /* eslint-disable @typescript-eslint/no-unsafe-return */
3
- import { Array, Effect, type NonEmptyReadonlyArray } from "effect-app"
3
+ import * as Array from "effect-app/Array"
4
+ import type { NonEmptyReadonlyArray } from "effect-app/Array"
5
+ import * as Effect from "effect-app/Effect"
4
6
  import { assertUnreachable } from "effect-app/utils"
5
7
  import { InfraLogger } from "../../logger.js"
6
8
  import type { FilterR, FilterResult, Ops } from "../../Model/filter/filterApi.js"
@@ -1,8 +1,16 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
 
3
- import { Array, Duration, Effect, Layer, type NonEmptyReadonlyArray, Option, pipe, Redacted, Struct } from "effect-app"
3
+ import * as Array from "effect-app/Array"
4
+ import type { NonEmptyReadonlyArray } from "effect-app/Array"
4
5
  import { toNonEmptyArray } from "effect-app/Array"
6
+ import * as Effect from "effect-app/Effect"
7
+ import * as Layer from "effect-app/Layer"
8
+ import * as Option from "effect-app/Option"
5
9
  import { dropUndefinedT, mutable } from "effect-app/utils"
10
+ import * as Duration from "effect/Duration"
11
+ import { pipe } from "effect/Function"
12
+ import * as Redacted from "effect/Redacted"
13
+ import * as Struct from "effect/Struct"
6
14
  import { CosmosClient, CosmosClientLayer } from "../adapters/cosmos-client.js"
7
15
  import { OptimisticConcurrencyException } from "../errors.js"
8
16
  import { InfraLogger } from "../logger.js"
package/src/Store/Disk.ts CHANGED
@@ -3,7 +3,10 @@ import * as fu from "../fileUtil.js"
3
3
 
4
4
  import fs from "fs"
5
5
 
6
- import { Console, Effect, flow, Semaphore } from "effect-app"
6
+ import * as Effect from "effect-app/Effect"
7
+ import * as Console from "effect/Console"
8
+ import { flow } from "effect/Function"
9
+ import * as Semaphore from "effect/Semaphore"
7
10
  import type { FieldValues } from "../Model/filter/types.js"
8
11
  import { annotateDb } from "../otel.js"
9
12
  import { makeMemoryStoreInt, storeId } from "./Memory.js"
@@ -1,8 +1,18 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
 
3
- import { Array, Context, Effect, flow, type NonEmptyReadonlyArray, Option, Order, pipe, Ref, Result, Semaphore, Struct } from "effect-app"
3
+ import * as Array from "effect-app/Array"
4
+ import type { NonEmptyReadonlyArray } from "effect-app/Array"
5
+ import * as Context from "effect-app/Context"
6
+ import * as Effect from "effect-app/Effect"
7
+ import * as Option from "effect-app/Option"
4
8
  import { NonEmptyString255 } from "effect-app/Schema"
5
9
  import { assertUnreachable } from "effect-app/utils"
10
+ import { flow, pipe } from "effect/Function"
11
+ import * as Order from "effect/Order"
12
+ import * as Ref from "effect/Ref"
13
+ import * as Result from "effect/Result"
14
+ import * as Semaphore from "effect/Semaphore"
15
+ import * as Struct from "effect/Struct"
6
16
  import { InfraLogger } from "../logger.js"
7
17
  import type { FilterResult } from "../Model/filter/filterApi.js"
8
18
  import type { FieldValues } from "../Model/filter/types.js"
@@ -1,7 +1,10 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
 
3
- import { Effect, type NonEmptyReadonlyArray, Option, Struct } from "effect-app"
3
+ import type { NonEmptyReadonlyArray } from "effect-app/Array"
4
4
  import { toNonEmptyArray } from "effect-app/Array"
5
+ import * as Effect from "effect-app/Effect"
6
+ import * as Option from "effect-app/Option"
7
+ import * as Struct from "effect/Struct"
5
8
  import { SqlClient } from "effect/unstable/sql"
6
9
  import { OptimisticConcurrencyException } from "../../errors.js"
7
10
  import { InfraLogger } from "../../logger.js"
@@ -1,5 +1,6 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { Effect, type NonEmptyReadonlyArray } from "effect-app"
2
+ import type { NonEmptyReadonlyArray } from "effect-app/Array"
3
+ import * as Effect from "effect-app/Effect"
3
4
  import { assertUnreachable } from "effect-app/utils"
4
5
  import { InfraLogger } from "../../logger.js"
5
6
  import type { FilterR, FilterResult } from "../../Model/filter/filterApi.js"
package/src/Store/SQL.ts CHANGED
@@ -1,8 +1,13 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
 
3
- import { Context, Layer, LayerMap } from "effect"
4
- import { Effect, type NonEmptyReadonlyArray, Option, Struct } from "effect-app"
3
+ import type { NonEmptyReadonlyArray } from "effect-app/Array"
5
4
  import { toNonEmptyArray } from "effect-app/Array"
5
+ import * as Effect from "effect-app/Effect"
6
+ import * as Option from "effect-app/Option"
7
+ import * as Context from "effect/Context"
8
+ import * as Layer from "effect/Layer"
9
+ import * as LayerMap from "effect/LayerMap"
10
+ import * as Struct from "effect/Struct"
6
11
  import { SqlClient } from "effect/unstable/sql"
7
12
  import { OptimisticConcurrencyException } from "../errors.js"
8
13
  import { InfraLogger } from "../logger.js"
@@ -1,6 +1,7 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  /* eslint-disable @typescript-eslint/no-unsafe-argument */
3
- import { Array, Option } from "effect-app"
3
+ import * as Array from "effect-app/Array"
4
+ import * as Option from "effect-app/Option"
4
5
  import { assertUnreachable } from "effect-app/utils"
5
6
  import type { FilterR, FilterResult } from "../Model/filter/filterApi.js"
6
7
  import type { FieldValues } from "../Model/filter/types.js"
@@ -1,5 +1,7 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { Effect, Layer, Redacted } from "effect-app"
2
+ import * as Effect from "effect-app/Effect"
3
+ import * as Layer from "effect-app/Layer"
4
+ import * as Redacted from "effect/Redacted"
3
5
  import type { SqlClient } from "effect/unstable/sql"
4
6
  import { CosmosStoreLayer } from "./Cosmos.js"
5
7
  import { DiskStoreLayer } from "./Disk.js"
@@ -1,6 +1,10 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  import type { UniqueKey } from "@azure/cosmos"
3
- import { Context, Effect, type NonEmptyReadonlyArray, type Option, type Redacted } from "effect-app"
3
+ import type { NonEmptyReadonlyArray } from "effect-app/Array"
4
+ import * as Context from "effect-app/Context"
5
+ import * as Effect from "effect-app/Effect"
6
+ import type * as Option from "effect-app/Option"
7
+ import type * as Redacted from "effect/Redacted"
4
8
  import * as Semaphore from "effect/Semaphore"
5
9
  import type { OptimisticConcurrencyException } from "../errors.js"
6
10
  import type { FilterResult } from "../Model/filter/filterApi.js"
@@ -1,5 +1,6 @@
1
1
  import crypto from "crypto"
2
- import { Effect, Option } from "effect-app"
2
+ import * as Effect from "effect-app/Effect"
3
+ import * as Option from "effect-app/Option"
3
4
  import { OptimisticConcurrencyException } from "../errors.js"
4
5
  import type { PersistenceModelType, SupportedValues2 } from "./service.js"
5
6
 
@@ -74,7 +74,7 @@ export {
74
74
  * @since 1.0.0
75
75
  * @category constructors
76
76
  * @example
77
- * import { Schema } from "effect"
77
+ * import * as Schema from "effect/Schema"
78
78
  * import { Model } from "effect/unstable/schema"
79
79
  *
80
80
  * export const GroupId = Schema.Number.pipe(Schema.brand("GroupId"))
@@ -1,6 +1,12 @@
1
1
  /* eslint-disable @typescript-eslint/prefer-promise-reject-errors */
2
2
  import { type OperationOptionsBase, type ProcessErrorArgs, ServiceBusClient, type ServiceBusMessage, type ServiceBusMessageBatch, type ServiceBusReceivedMessage, type ServiceBusReceiver } from "@azure/service-bus"
3
- import { Cause, Context, Effect, Exit, FiberSet, Layer, type Scope } from "effect-app"
3
+ import * as Context from "effect-app/Context"
4
+ import * as Effect from "effect-app/Effect"
5
+ import * as Layer from "effect-app/Layer"
6
+ import * as Cause from "effect/Cause"
7
+ import * as Exit from "effect/Exit"
8
+ import * as FiberSet from "effect/FiberSet"
9
+ import type * as Scope from "effect/Scope"
4
10
  import { InfraLogger } from "../logger.js"
5
11
 
6
12
  const logged = (name: string) => <A, E, R>(self: Effect.Effect<A, E, R>) =>
@@ -1,5 +1,7 @@
1
1
  import { CosmosClient as ComosClient_ } from "@azure/cosmos"
2
- import { Context, Effect, Layer } from "effect-app"
2
+ import * as Context from "effect-app/Context"
3
+ import * as Effect from "effect-app/Effect"
4
+ import * as Layer from "effect-app/Layer"
3
5
 
4
6
  const withClient = (url: string) => Effect.sync(() => new ComosClient_(url))
5
7
 
@@ -1,5 +1,6 @@
1
- import { Context, Effect, type Queue } from "effect-app"
2
- import * as Q from "effect/Queue"
1
+ import * as Context from "effect-app/Context"
2
+ import * as Effect from "effect-app/Effect"
3
+ import * as Queue from "effect/Queue"
3
4
 
4
5
  const make = Effect
5
6
  .gen(function*() {
@@ -9,7 +10,7 @@ const make = Effect
9
10
  getOrCreateQueue: Effect.fnUntraced(function*(k: string) {
10
11
  const q = store.get(k)
11
12
  if (q) return q
12
- const newQ = yield* Q.unbounded<string>()
13
+ const newQ = yield* Queue.unbounded<string>()
13
14
  store.set(k, newQ)
14
15
  return newQ
15
16
  })
@@ -1,4 +1,6 @@
1
- import { Context, Effect, Layer } from "effect-app"
1
+ import * as Context from "effect-app/Context"
2
+ import * as Effect from "effect-app/Effect"
3
+ import * as Layer from "effect-app/Layer"
2
4
  import { MongoClient as MongoClient_ } from "mongodb"
3
5
 
4
6
  // TODO: we should probably share a single client...
@@ -1,4 +1,8 @@
1
- import { Context, Data, Effect, Layer, Option } from "effect-app"
1
+ import * as Context from "effect-app/Context"
2
+ import * as Effect from "effect-app/Effect"
3
+ import * as Layer from "effect-app/Layer"
4
+ import * as Option from "effect-app/Option"
5
+ import * as Data from "effect/Data"
2
6
  import type { RedisClient as Client } from "redis"
3
7
  import Redlock from "redlock"
4
8
 
@@ -1,5 +1,10 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { Context, Effect, Layer, type NonEmptyReadonlyArray, pipe, type Scope } from "effect-app"
2
+ import type { NonEmptyReadonlyArray } from "effect-app/Array"
3
+ import * as Context from "effect-app/Context"
4
+ import * as Effect from "effect-app/Effect"
5
+ import * as Layer from "effect-app/Layer"
6
+ import { pipe } from "effect/Function"
7
+ import type * as Scope from "effect/Scope"
3
8
 
4
9
  import { type HttpRouter } from "effect-app/http"
5
10
  import { type EffectGenUtils } from "effect-app/utils/gen"
@@ -1,5 +1,6 @@
1
- import { Effect, Layer } from "effect-app"
1
+ import * as Effect from "effect-app/Effect"
2
2
  import { HttpMiddleware, HttpServerRequest, HttpServerResponse } from "effect-app/http"
3
+ import * as Layer from "effect-app/Layer"
3
4
  import { NonEmptyString255 } from "effect-app/Schema"
4
5
  import { Locale, LocaleRef, RequestContext, spanAttributes } from "../../RequestContext.js"
5
6
  import { ContextMapContainer } from "../../Store/ContextMapContainer.js"
@@ -1,5 +1,7 @@
1
- import { Data, Effect, Option } from "effect-app"
1
+ import * as Effect from "effect-app/Effect"
2
2
  import { HttpHeaders, HttpMiddleware, HttpServerRequest, HttpServerResponse } from "effect-app/http"
3
+ import * as Option from "effect-app/Option"
4
+ import * as Data from "effect/Data"
3
5
  import { createRemoteJWKSet, jwtVerify } from "jose"
4
6
 
5
7
  const getHeaders = (error: string, description: string, scopes?: ReadonlyArray<string>) => ({
@@ -1,5 +1,10 @@
1
- import { Duration, Effect, pipe, S, Schedule, Stream } from "effect-app"
1
+ import * as Effect from "effect-app/Effect"
2
2
  import { HttpHeaders, HttpServerResponse } from "effect-app/http"
3
+ import * as S from "effect-app/Schema"
4
+ import * as Duration from "effect/Duration"
5
+ import { pipe } from "effect/Function"
6
+ import * as Schedule from "effect/Schedule"
7
+ import * as Stream from "effect/Stream"
3
8
  import { reportError } from "../../errorReporter.js"
4
9
  import { storeId } from "../../Store/Memory.js"
5
10
  import { setupRequestContextFromCurrent } from "../setupRequest.js"
@@ -1,5 +1,9 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { Context, Effect, type Layer, type NonEmptyReadonlyArray, Option } from "effect-app"
2
+ import type { NonEmptyReadonlyArray } from "effect-app/Array"
3
+ import * as Context from "effect-app/Context"
4
+ import * as Effect from "effect-app/Effect"
5
+ import type * as Layer from "effect-app/Layer"
6
+ import * as Option from "effect-app/Option"
3
7
  import { InfraLogger } from "../logger.js"
4
8
 
5
9
  // TODO: These LayerUtils are flaky, like in dependencies as a readonly array, it breaks when there are two entries