effect-app 4.0.0-beta.26 → 4.0.0-beta.261

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 (368) hide show
  1. package/CHANGELOG.md +1194 -0
  2. package/dist/Array.d.ts +3 -2
  3. package/dist/Array.d.ts.map +1 -1
  4. package/dist/Array.js +4 -4
  5. package/dist/Chunk.d.ts +1 -1
  6. package/dist/Chunk.d.ts.map +1 -1
  7. package/dist/Config/SecretURL.d.ts +4 -2
  8. package/dist/Config/SecretURL.d.ts.map +1 -1
  9. package/dist/Config/SecretURL.js +3 -6
  10. package/dist/Config/internal/configSecretURL.d.ts +1 -1
  11. package/dist/Config/internal/configSecretURL.d.ts.map +1 -1
  12. package/dist/Config/internal/configSecretURL.js +2 -2
  13. package/dist/Config.d.ts +7 -0
  14. package/dist/Config.d.ts.map +1 -0
  15. package/dist/Config.js +6 -0
  16. package/dist/ConfigProvider.d.ts +39 -0
  17. package/dist/ConfigProvider.d.ts.map +1 -0
  18. package/dist/ConfigProvider.js +42 -0
  19. package/dist/Context.d.ts +42 -0
  20. package/dist/Context.d.ts.map +1 -0
  21. package/dist/Context.js +67 -0
  22. package/dist/DataDependencies.d.ts +158 -0
  23. package/dist/DataDependencies.d.ts.map +1 -0
  24. package/dist/DataDependencies.js +39 -0
  25. package/dist/Effect.d.ts +13 -12
  26. package/dist/Effect.d.ts.map +1 -1
  27. package/dist/Effect.js +5 -8
  28. package/dist/Emailer.d.ts +51 -0
  29. package/dist/Emailer.d.ts.map +1 -0
  30. package/dist/Emailer.js +7 -0
  31. package/dist/Function.d.ts +1 -1
  32. package/dist/Function.d.ts.map +1 -1
  33. package/dist/Inputify.type.d.ts +1 -1
  34. package/dist/Layer.d.ts +11 -7
  35. package/dist/Layer.d.ts.map +1 -1
  36. package/dist/Layer.js +3 -2
  37. package/dist/Model/Repository/Registry.d.ts +21 -0
  38. package/dist/Model/Repository/Registry.d.ts.map +1 -0
  39. package/dist/Model/Repository/Registry.js +18 -0
  40. package/dist/Model/Repository/ext.d.ts +60 -0
  41. package/dist/Model/Repository/ext.d.ts.map +1 -0
  42. package/dist/Model/Repository/ext.js +122 -0
  43. package/dist/Model/Repository/internal/internal.d.ts +63 -0
  44. package/dist/Model/Repository/internal/internal.d.ts.map +1 -0
  45. package/dist/Model/Repository/internal/internal.js +430 -0
  46. package/dist/Model/Repository/legacy.d.ts +21 -0
  47. package/dist/Model/Repository/legacy.d.ts.map +1 -0
  48. package/dist/Model/Repository/legacy.js +2 -0
  49. package/dist/Model/Repository/makeRepo.d.ts +54 -0
  50. package/dist/Model/Repository/makeRepo.d.ts.map +1 -0
  51. package/dist/Model/Repository/makeRepo.js +27 -0
  52. package/dist/Model/Repository/service.d.ts +121 -0
  53. package/dist/Model/Repository/service.d.ts.map +1 -0
  54. package/dist/Model/Repository/service.js +2 -0
  55. package/dist/Model/Repository/validation.d.ts +58 -0
  56. package/dist/Model/Repository/validation.d.ts.map +1 -0
  57. package/dist/Model/Repository/validation.js +32 -0
  58. package/dist/Model/Repository.d.ts +7 -0
  59. package/dist/Model/Repository.d.ts.map +1 -0
  60. package/dist/Model/Repository.js +7 -0
  61. package/dist/Model/dsl.d.ts +33 -0
  62. package/dist/Model/dsl.d.ts.map +1 -0
  63. package/dist/Model/dsl.js +43 -0
  64. package/dist/Model/filter/filterApi.d.ts +30 -0
  65. package/dist/Model/filter/filterApi.d.ts.map +1 -0
  66. package/dist/Model/filter/filterApi.js +2 -0
  67. package/dist/Model/filter/types/errors.d.ts +29 -0
  68. package/dist/Model/filter/types/errors.d.ts.map +1 -0
  69. package/dist/Model/filter/types/errors.js +2 -0
  70. package/dist/Model/filter/types/fields.d.ts +15 -0
  71. package/dist/Model/filter/types/fields.d.ts.map +1 -0
  72. package/dist/Model/filter/types/fields.js +2 -0
  73. package/dist/Model/filter/types/path/common.d.ts +316 -0
  74. package/dist/Model/filter/types/path/common.d.ts.map +1 -0
  75. package/dist/Model/filter/types/path/common.js +2 -0
  76. package/dist/Model/filter/types/path/eager.d.ts +95 -0
  77. package/dist/Model/filter/types/path/eager.d.ts.map +1 -0
  78. package/dist/Model/filter/types/path/eager.js +31 -0
  79. package/dist/Model/filter/types/path/index.d.ts +4 -0
  80. package/dist/Model/filter/types/path/index.d.ts.map +1 -0
  81. package/dist/Model/filter/types/path/index.js +3 -0
  82. package/dist/Model/filter/types/utils.d.ts +79 -0
  83. package/dist/Model/filter/types/utils.d.ts.map +1 -0
  84. package/dist/Model/filter/types/utils.js +2 -0
  85. package/dist/Model/filter/types/validator.d.ts +30 -0
  86. package/dist/Model/filter/types/validator.d.ts.map +1 -0
  87. package/dist/Model/filter/types/validator.js +2 -0
  88. package/dist/Model/filter/types.d.ts +5 -0
  89. package/dist/Model/filter/types.d.ts.map +1 -0
  90. package/dist/Model/filter/types.js +7 -0
  91. package/dist/Model/query/dsl.d.ts +493 -0
  92. package/dist/Model/query/dsl.d.ts.map +1 -0
  93. package/dist/Model/query/dsl.js +376 -0
  94. package/dist/Model/query/new-kid-interpreter.d.ts +136 -0
  95. package/dist/Model/query/new-kid-interpreter.d.ts.map +1 -0
  96. package/dist/Model/query/new-kid-interpreter.js +336 -0
  97. package/dist/Model/query.d.ts +15 -0
  98. package/dist/Model/query.d.ts.map +1 -0
  99. package/dist/Model/query.js +3 -0
  100. package/dist/Model.d.ts +5 -0
  101. package/dist/Model.d.ts.map +1 -0
  102. package/dist/Model.js +5 -0
  103. package/dist/NonEmptySet.d.ts +4 -2
  104. package/dist/NonEmptySet.d.ts.map +1 -1
  105. package/dist/NonEmptySet.js +2 -2
  106. package/dist/Option.d.ts +2 -1
  107. package/dist/Option.d.ts.map +1 -1
  108. package/dist/Option.js +3 -1
  109. package/dist/Pure.d.ts +8 -6
  110. package/dist/Pure.d.ts.map +1 -1
  111. package/dist/Pure.js +17 -14
  112. package/dist/QueueMaker.d.ts +13 -0
  113. package/dist/QueueMaker.d.ts.map +1 -0
  114. package/dist/QueueMaker.js +4 -0
  115. package/dist/RequestContext.d.ts +91 -0
  116. package/dist/RequestContext.d.ts.map +1 -0
  117. package/dist/RequestContext.js +49 -0
  118. package/dist/Schema/Class.d.ts +66 -20
  119. package/dist/Schema/Class.d.ts.map +1 -1
  120. package/dist/Schema/Class.js +192 -27
  121. package/dist/Schema/FastCheck.d.ts +1 -1
  122. package/dist/Schema/FastCheck.d.ts.map +1 -1
  123. package/dist/Schema/Methods.d.ts +1 -1
  124. package/dist/Schema/SchemaParser.d.ts +5 -0
  125. package/dist/Schema/SchemaParser.d.ts.map +1 -0
  126. package/dist/Schema/SchemaParser.js +6 -0
  127. package/dist/Schema/SpecialJsonSchema.d.ts +34 -0
  128. package/dist/Schema/SpecialJsonSchema.d.ts.map +1 -0
  129. package/dist/Schema/SpecialJsonSchema.js +118 -0
  130. package/dist/Schema/SpecialOpenApi.d.ts +32 -0
  131. package/dist/Schema/SpecialOpenApi.d.ts.map +1 -0
  132. package/dist/Schema/SpecialOpenApi.js +123 -0
  133. package/dist/Schema/brand.d.ts +5 -3
  134. package/dist/Schema/brand.d.ts.map +1 -1
  135. package/dist/Schema/brand.js +3 -1
  136. package/dist/Schema/email.d.ts +1 -1
  137. package/dist/Schema/email.d.ts.map +1 -1
  138. package/dist/Schema/email.js +7 -4
  139. package/dist/Schema/ext.d.ts +339 -56
  140. package/dist/Schema/ext.d.ts.map +1 -1
  141. package/dist/Schema/ext.js +358 -53
  142. package/dist/Schema/moreStrings.d.ts +83 -37
  143. package/dist/Schema/moreStrings.d.ts.map +1 -1
  144. package/dist/Schema/moreStrings.js +49 -42
  145. package/dist/Schema/numbers.d.ts +35 -22
  146. package/dist/Schema/numbers.d.ts.map +1 -1
  147. package/dist/Schema/numbers.js +55 -12
  148. package/dist/Schema/phoneNumber.d.ts +1 -1
  149. package/dist/Schema/phoneNumber.d.ts.map +1 -1
  150. package/dist/Schema/phoneNumber.js +6 -3
  151. package/dist/Schema/schema.d.ts +1 -1
  152. package/dist/Schema/strings.d.ts +19 -5
  153. package/dist/Schema/strings.d.ts.map +1 -1
  154. package/dist/Schema/strings.js +1 -5
  155. package/dist/Schema.d.ts +214 -8
  156. package/dist/Schema.d.ts.map +1 -1
  157. package/dist/Schema.js +190 -11
  158. package/dist/Set.d.ts +5 -2
  159. package/dist/Set.d.ts.map +1 -1
  160. package/dist/Set.js +3 -2
  161. package/dist/Store.d.ts +170 -0
  162. package/dist/Store.d.ts.map +1 -0
  163. package/dist/Store.js +121 -0
  164. package/dist/TypeTest.d.ts +1 -1
  165. package/dist/Types.d.ts +1 -1
  166. package/dist/Widen.type.d.ts +1 -1
  167. package/dist/_ext/Array.d.ts +2 -2
  168. package/dist/_ext/Array.d.ts.map +1 -1
  169. package/dist/_ext/Array.js +4 -2
  170. package/dist/_ext/date.d.ts +1 -1
  171. package/dist/_ext/misc.d.ts +5 -2
  172. package/dist/_ext/misc.d.ts.map +1 -1
  173. package/dist/_ext/misc.js +4 -2
  174. package/dist/_ext/ord.ext.d.ts +3 -2
  175. package/dist/_ext/ord.ext.d.ts.map +1 -1
  176. package/dist/_ext/ord.ext.js +2 -2
  177. package/dist/builtin.d.ts +1 -1
  178. package/dist/builtin.d.ts.map +1 -1
  179. package/dist/client/InvalidationKeys.d.ts +29 -0
  180. package/dist/client/InvalidationKeys.d.ts.map +1 -0
  181. package/dist/client/InvalidationKeys.js +33 -0
  182. package/dist/client/apiClientFactory.d.ts +20 -32
  183. package/dist/client/apiClientFactory.d.ts.map +1 -1
  184. package/dist/client/apiClientFactory.js +104 -34
  185. package/dist/client/clientFor.d.ts +53 -19
  186. package/dist/client/clientFor.d.ts.map +1 -1
  187. package/dist/client/clientFor.js +9 -1
  188. package/dist/client/errors.d.ts +49 -25
  189. package/dist/client/errors.d.ts.map +1 -1
  190. package/dist/client/errors.js +43 -17
  191. package/dist/client/makeClient.d.ts +495 -33
  192. package/dist/client/makeClient.d.ts.map +1 -1
  193. package/dist/client/makeClient.js +66 -24
  194. package/dist/client.d.ts +6 -5
  195. package/dist/client.d.ts.map +1 -1
  196. package/dist/client.js +2 -1
  197. package/dist/faker.d.ts +1 -1
  198. package/dist/faker.d.ts.map +1 -1
  199. package/dist/http/Request.d.ts +2 -2
  200. package/dist/http/Request.d.ts.map +1 -1
  201. package/dist/http/Request.js +2 -2
  202. package/dist/http/internal/lib.d.ts +1 -1
  203. package/dist/http.d.ts +1 -1
  204. package/dist/ids.d.ts +43 -15
  205. package/dist/ids.d.ts.map +1 -1
  206. package/dist/ids.js +30 -5
  207. package/dist/index.d.ts +7 -8
  208. package/dist/index.d.ts.map +1 -1
  209. package/dist/index.js +8 -8
  210. package/dist/logger.d.ts +1 -1
  211. package/dist/middleware.d.ts +14 -8
  212. package/dist/middleware.d.ts.map +1 -1
  213. package/dist/middleware.js +14 -8
  214. package/dist/rpc/Invalidation.d.ts +420 -0
  215. package/dist/rpc/Invalidation.d.ts.map +1 -0
  216. package/dist/rpc/Invalidation.js +168 -0
  217. package/dist/rpc/MiddlewareMaker.d.ts +12 -8
  218. package/dist/rpc/MiddlewareMaker.d.ts.map +1 -1
  219. package/dist/rpc/MiddlewareMaker.js +59 -38
  220. package/dist/rpc/RpcContextMap.d.ts +4 -4
  221. package/dist/rpc/RpcContextMap.d.ts.map +1 -1
  222. package/dist/rpc/RpcContextMap.js +4 -4
  223. package/dist/rpc/RpcMiddleware.d.ts +15 -11
  224. package/dist/rpc/RpcMiddleware.d.ts.map +1 -1
  225. package/dist/rpc/RpcMiddleware.js +1 -1
  226. package/dist/rpc.d.ts +2 -2
  227. package/dist/rpc.d.ts.map +1 -1
  228. package/dist/rpc.js +2 -2
  229. package/dist/runtime.d.ts +19 -0
  230. package/dist/runtime.d.ts.map +1 -0
  231. package/dist/runtime.js +40 -0
  232. package/dist/setupRequest.d.ts +19 -0
  233. package/dist/setupRequest.d.ts.map +1 -0
  234. package/dist/setupRequest.js +69 -0
  235. package/dist/toast.d.ts +51 -0
  236. package/dist/toast.d.ts.map +1 -0
  237. package/dist/toast.js +34 -0
  238. package/dist/transform.d.ts +2 -2
  239. package/dist/transform.d.ts.map +1 -1
  240. package/dist/transform.js +4 -5
  241. package/dist/utils/effectify.d.ts +2 -2
  242. package/dist/utils/effectify.d.ts.map +1 -1
  243. package/dist/utils/effectify.js +2 -2
  244. package/dist/utils/extend.d.ts +1 -1
  245. package/dist/utils/extend.d.ts.map +1 -1
  246. package/dist/utils/gen.d.ts +5 -5
  247. package/dist/utils/gen.d.ts.map +1 -1
  248. package/dist/utils/logLevel.d.ts +3 -3
  249. package/dist/utils/logLevel.d.ts.map +1 -1
  250. package/dist/utils/logger.d.ts +5 -4
  251. package/dist/utils/logger.d.ts.map +1 -1
  252. package/dist/utils/logger.js +4 -4
  253. package/dist/utils.d.ts +40 -45
  254. package/dist/utils.d.ts.map +1 -1
  255. package/dist/utils.js +19 -27
  256. package/dist/validation/validators.d.ts +1 -1
  257. package/dist/validation/validators.d.ts.map +1 -1
  258. package/dist/validation.d.ts +1 -1
  259. package/dist/validation.d.ts.map +1 -1
  260. package/dist/withToast.d.ts +30 -0
  261. package/dist/withToast.d.ts.map +1 -0
  262. package/dist/withToast.js +64 -0
  263. package/package.json +20 -245
  264. package/src/Array.ts +3 -3
  265. package/src/Config/SecretURL.ts +5 -2
  266. package/src/Config/internal/configSecretURL.ts +1 -1
  267. package/src/Config.ts +14 -0
  268. package/src/ConfigProvider.ts +48 -0
  269. package/src/{ServiceMap.ts → Context.ts} +56 -63
  270. package/src/Effect.ts +12 -14
  271. package/src/Emailer.ts +51 -0
  272. package/src/Layer.ts +10 -6
  273. package/src/Model/Repository/Registry.ts +34 -0
  274. package/src/Model/Repository/ext.ts +375 -0
  275. package/src/Model/Repository/internal/internal.ts +741 -0
  276. package/src/Model/Repository/legacy.ts +29 -0
  277. package/src/Model/Repository/makeRepo.ts +145 -0
  278. package/src/Model/Repository/service.ts +666 -0
  279. package/src/Model/Repository/validation.ts +31 -0
  280. package/src/Model/Repository.ts +6 -0
  281. package/src/Model/dsl.ts +129 -0
  282. package/src/Model/filter/filterApi.ts +60 -0
  283. package/src/Model/filter/types/errors.ts +47 -0
  284. package/src/Model/filter/types/fields.ts +50 -0
  285. package/src/Model/filter/types/path/common.ts +404 -0
  286. package/src/Model/filter/types/path/eager.ts +297 -0
  287. package/src/Model/filter/types/path/index.ts +4 -0
  288. package/src/Model/filter/types/utils.ts +128 -0
  289. package/src/Model/filter/types/validator.ts +46 -0
  290. package/src/Model/filter/types.ts +6 -0
  291. package/src/Model/query/dsl.ts +2694 -0
  292. package/src/Model/query/new-kid-interpreter.ts +484 -0
  293. package/src/Model/query.ts +13 -0
  294. package/src/Model.ts +4 -0
  295. package/src/NonEmptySet.ts +3 -1
  296. package/src/Option.ts +2 -0
  297. package/src/Pure.ts +21 -19
  298. package/src/QueueMaker.ts +19 -0
  299. package/src/RequestContext.ts +62 -0
  300. package/src/Schema/Class.ts +274 -68
  301. package/src/Schema/SchemaParser.ts +12 -0
  302. package/src/Schema/SpecialJsonSchema.ts +139 -0
  303. package/src/Schema/SpecialOpenApi.ts +130 -0
  304. package/src/Schema/brand.ts +22 -2
  305. package/src/Schema/email.ts +7 -2
  306. package/src/Schema/ext.ts +443 -88
  307. package/src/Schema/moreStrings.ts +146 -67
  308. package/src/Schema/numbers.ts +96 -27
  309. package/src/Schema/phoneNumber.ts +5 -1
  310. package/src/Schema/strings.ts +22 -13
  311. package/src/Schema.ts +374 -10
  312. package/src/Set.ts +5 -1
  313. package/src/Store.ts +277 -0
  314. package/src/_ext/Array.ts +3 -1
  315. package/src/_ext/misc.ts +4 -1
  316. package/src/_ext/ord.ext.ts +2 -1
  317. package/src/client/InvalidationKeys.ts +50 -0
  318. package/src/client/apiClientFactory.ts +230 -131
  319. package/src/client/clientFor.ts +102 -31
  320. package/src/client/errors.ts +52 -26
  321. package/src/client/makeClient.ts +592 -71
  322. package/src/client.ts +5 -4
  323. package/src/http/Request.ts +1 -1
  324. package/src/ids.ts +32 -5
  325. package/src/index.ts +7 -10
  326. package/src/middleware.ts +13 -9
  327. package/src/rpc/Invalidation.ts +261 -0
  328. package/src/rpc/MiddlewareMaker.ts +83 -75
  329. package/src/rpc/README.md +2 -2
  330. package/src/rpc/RpcContextMap.ts +6 -5
  331. package/src/rpc/RpcMiddleware.ts +18 -12
  332. package/src/rpc.ts +1 -1
  333. package/src/runtime.ts +56 -0
  334. package/src/setupRequest.ts +134 -0
  335. package/src/toast.ts +54 -0
  336. package/src/transform.ts +3 -3
  337. package/src/utils/effectify.ts +1 -1
  338. package/src/utils/gen.ts +8 -8
  339. package/src/utils/logLevel.ts +1 -1
  340. package/src/utils/logger.ts +4 -3
  341. package/src/utils.ts +62 -139
  342. package/src/withToast.ts +133 -0
  343. package/test/dist/rpc-dynamic-middleware.test.d.ts.map +1 -0
  344. package/test/dist/rpc.test.d.ts.map +1 -1
  345. package/test/dist/secretURL.test.d.ts.map +1 -0
  346. package/test/dist/special.test.d.ts.map +1 -0
  347. package/test/dist/stream-error.types.d.ts +2 -0
  348. package/test/dist/stream-error.types.d.ts.map +1 -0
  349. package/test/dist/stream-error.types.js +27 -0
  350. package/test/moreStrings.test.ts +1 -1
  351. package/test/rpc.test.ts +46 -6
  352. package/test/schema.test.ts +459 -30
  353. package/test/secretURL.test.ts +160 -0
  354. package/test/special.test.ts +1026 -0
  355. package/test/utils.test.ts +7 -7
  356. package/tsconfig.base.json +6 -5
  357. package/tsconfig.json +2 -1
  358. package/tsconfig.json.bak +2 -2
  359. package/tsconfig.src.json +29 -29
  360. package/tsconfig.test.json +2 -2
  361. package/dist/Operations.d.ts +0 -123
  362. package/dist/Operations.d.ts.map +0 -1
  363. package/dist/Operations.js +0 -29
  364. package/dist/ServiceMap.d.ts +0 -44
  365. package/dist/ServiceMap.d.ts.map +0 -1
  366. package/dist/ServiceMap.js +0 -91
  367. package/eslint.config.mjs +0 -26
  368. package/src/Operations.ts +0 -55
@@ -0,0 +1,64 @@
1
+ import * as Cause from "effect/Cause";
2
+ import * as Fiber from "effect/Fiber";
3
+ import * as Context from "./Context.js";
4
+ import * as Effect from "./Effect.js";
5
+ import * as Layer from "./Layer.js";
6
+ import * as S from "./Schema.js";
7
+ import { CurrentToastId, Toast } from "./toast.js";
8
+ import { wrapEffect } from "./utils.js";
9
+ // @effect-diagnostics-next-line missingEffectServiceDependency:off
10
+ export class WithToast extends Context.Service()("WithToast", {
11
+ make: Effect.gen(function* () {
12
+ const toast = yield* Toast;
13
+ return (options) => Effect.fnUntraced(function* (self, ...args) {
14
+ const baseTimeout = options.timeout ?? 3_000;
15
+ const stableToastId = typeof options.stableToastId === "function"
16
+ ? options.stableToastId(...args)
17
+ : options.stableToastId;
18
+ const requestId = yield* Effect.currentSpan.pipe(Effect.map((span) => span.traceId), Effect.orElseSucceed(() => S.StringId.make()));
19
+ const groupId = options.groupId;
20
+ const meta = { ...(groupId !== undefined ? { groupId } : {}), requestId };
21
+ const t = yield* wrapEffect(options.onWaiting)(...args);
22
+ const toastId = t === null
23
+ ? stableToastId
24
+ : stableToastId ?? `wait-${Math.random().toString(36).slice(2)}`;
25
+ const waitingFiber = t === null ? undefined : yield* Effect.forkChild(Effect.sleep("1 seconds").pipe(Effect.andThen(toast.info(t, { id: toastId, timeout: Infinity, ...meta }))));
26
+ const interruptWaiting = waitingFiber ? Fiber.interrupt(waitingFiber) : Effect.void;
27
+ return yield* self.pipe(Effect.tap(Effect.fnUntraced(function* (a) {
28
+ yield* interruptWaiting;
29
+ const t = yield* wrapEffect(options.onSuccess)(a, ...args);
30
+ if (t === null) {
31
+ return;
32
+ }
33
+ yield* toast.success(t, toastId !== undefined
34
+ ? { id: toastId, timeout: baseTimeout, ...meta }
35
+ : { timeout: baseTimeout, ...meta });
36
+ })), Effect.tapCause(Effect.fnUntraced(function* (cause) {
37
+ yield* interruptWaiting;
38
+ yield* Effect.logDebug("WithToast - caught error cause: " + Cause.squash(cause), Cause.hasInterruptsOnly(cause), cause);
39
+ if (Cause.hasInterruptsOnly(cause)) {
40
+ if (toastId)
41
+ yield* toast.dismiss(toastId);
42
+ return;
43
+ }
44
+ const spanInfo = options.showSpanInfo !== false
45
+ ? yield* Effect.currentSpan.pipe(Effect.map((span) => `\nTrace: ${span.traceId}\nSpan: ${span.spanId}`), Effect.orElseSucceed(() => ""))
46
+ : "";
47
+ const t = yield* wrapEffect(options.onFailure)(Cause.findErrorOption(cause), ...args);
48
+ const opts = { timeout: baseTimeout * 2, ...meta };
49
+ if (typeof t === "object") {
50
+ const message = t.message + spanInfo;
51
+ return t.level === "warn"
52
+ ? yield* toast.warning(message, toastId !== undefined ? { ...opts, id: toastId } : opts)
53
+ : yield* toast.error(message, toastId !== undefined ? { ...opts, id: toastId } : opts);
54
+ }
55
+ yield* toast.error(t + spanInfo, toastId !== undefined ? { ...opts, id: toastId } : opts);
56
+ }, Effect.uninterruptible)), toastId !== undefined ? Effect.provideService(CurrentToastId, CurrentToastId.of({ toastId })) : (_) => _);
57
+ });
58
+ })
59
+ }) {
60
+ static DefaultWithoutDependencies = Layer.effect(this, this.make);
61
+ static Default = this.DefaultWithoutDependencies;
62
+ static handle = (options) => (self, ...args) => this.use((_) => _(options)(self, ...args));
63
+ }
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aFRvYXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3dpdGhUb2FzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQTtBQUN2QyxPQUFPLEtBQUssTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUNyQyxPQUFPLEtBQUssS0FBSyxNQUFNLFlBQVksQ0FBQTtBQUVuQyxPQUFPLEtBQUssQ0FBQyxNQUFNLGFBQWEsQ0FBQTtBQUNoQyxPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBZ0IsTUFBTSxZQUFZLENBQUE7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQWtDdkMsbUVBQW1FO0FBQ25FLE1BQU0sT0FBTyxTQUFVLFNBQVEsT0FBTyxDQUFDLE9BQU8sRUFBYSxDQUFDLFdBQVcsRUFBRTtJQUN2RSxJQUFJLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDeEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFBO1FBQzFCLE9BQU8sQ0FDTCxPQUFtRCxFQUNuRCxFQUFFLENBQ0YsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBQyxJQUE0QixFQUFFLEdBQUcsSUFBVTtZQUNyRSxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQTtZQUU1QyxNQUFNLGFBQWEsR0FBRyxPQUFPLE9BQU8sQ0FBQyxhQUFhLEtBQUssVUFBVTtnQkFDL0QsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBQ2hDLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFBO1lBRXpCLE1BQU0sU0FBUyxHQUFXLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUN0RCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQ2xDLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUM5QyxDQUFBO1lBQ0QsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQTtZQUMvQixNQUFNLElBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQTtZQUV6RSxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUE7WUFDdkQsTUFBTSxPQUFPLEdBQXdCLENBQUMsS0FBSyxJQUFJO2dCQUM3QyxDQUFDLENBQUMsYUFBYTtnQkFDZixDQUFDLENBQUMsYUFBYSxJQUFJLFFBQVEsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtZQUVsRSxNQUFNLFlBQVksR0FBRyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQ25FLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUM1QixNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUM1RSxDQUNGLENBQUE7WUFDRCxNQUFNLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQTtZQUVuRixPQUFPLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ3JCLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDO2dCQUN0QyxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQTtnQkFDdkIsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQTtnQkFDMUQsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7b0JBQ2YsT0FBTTtnQkFDUixDQUFDO2dCQUNELEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQ2xCLENBQUMsRUFDRCxPQUFPLEtBQUssU0FBUztvQkFDbkIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxFQUFFO29CQUNoRCxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQ3RDLENBQUE7WUFDSCxDQUFDLENBQUMsQ0FBQyxFQUNILE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBQyxLQUFLO2dCQUMvQyxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQTtnQkFDdkIsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FDcEIsa0NBQWtDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFDeEQsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxFQUM5QixLQUFLLENBQ04sQ0FBQTtnQkFFRCxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUNuQyxJQUFJLE9BQU87d0JBQUUsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQTtvQkFDMUMsT0FBTTtnQkFDUixDQUFDO2dCQUVELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxZQUFZLEtBQUssS0FBSztvQkFDN0MsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUM5QixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxZQUFZLElBQUksQ0FBQyxPQUFPLFdBQVcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQ3RFLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQy9CO29CQUNELENBQUMsQ0FBQyxFQUFFLENBQUE7Z0JBRU4sTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUE7Z0JBQ3JGLE1BQU0sSUFBSSxHQUFHLEVBQUUsT0FBTyxFQUFFLFdBQVcsR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQTtnQkFFbEQsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQztvQkFDMUIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUE7b0JBQ3BDLE9BQU8sQ0FBQyxDQUFDLEtBQUssS0FBSyxNQUFNO3dCQUN2QixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzt3QkFDeEYsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDMUYsQ0FBQztnQkFDRCxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxRQUFRLEVBQUUsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQzNGLENBQUMsRUFBRSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsRUFDM0IsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FDekcsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQyxDQUFDO0NBQ0gsQ0FBQztJQUNBLE1BQU0sQ0FBVSwwQkFBMEIsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDMUUsTUFBTSxDQUFVLE9BQU8sR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUE7SUFFekQsTUFBTSxDQUFVLE1BQU0sR0FBRyxDQUN2QixPQUFtRCxFQUN1RCxFQUFFLENBQzlHLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQWtDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUE7Q0FDL0YifQ==
package/package.json CHANGED
@@ -1,31 +1,30 @@
1
1
  {
2
2
  "name": "effect-app",
3
- "version": "4.0.0-beta.26",
3
+ "version": "4.0.0-beta.261",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
7
7
  "@tsconfig/strictest": "^2.0.8",
8
8
  "date-fns": "^4.1.0",
9
- "nanoid": "^5.1.6",
9
+ "nanoid": "^5.1.11",
10
10
  "path-parser": "^6.1.0",
11
11
  "query-string": "^9.3.1",
12
12
  "ts-pattern": "^5.9.0",
13
13
  "ts-toolbelt": "^9.6.0",
14
- "uuid": "^13.0.0",
15
- "validator": "^13.15.26"
14
+ "uuid": "^14.0.0",
15
+ "validator": "^13.15.35"
16
16
  },
17
17
  "devDependencies": {
18
18
  "@faker-js/faker": "^8.4.1",
19
- "@types/node": "25.3.3",
19
+ "@types/node": "25.6.0",
20
20
  "@types/uuid": "^11.0.0",
21
21
  "@types/validator": "^13.15.10",
22
- "fast-check": "~4.5.3",
23
- "typescript": "~5.9.3",
24
- "vitest": "^4.0.18",
25
- "@effect-app/eslint-shared-config": "0.5.7-beta.2"
22
+ "fast-check": "~4.7.0",
23
+ "typescript": "~6.0.3",
24
+ "vitest": "^4.1.5"
26
25
  },
27
26
  "peerDependencies": {
28
- "effect": "^4.0.0-beta.36"
27
+ "effect": "^4.0.0-beta.74"
29
28
  },
30
29
  "typesVersions": {
31
30
  "*": {
@@ -39,233 +38,10 @@
39
38
  "types": "./dist/index.d.ts",
40
39
  "default": "./dist/index.js"
41
40
  },
42
- "./Array": {
43
- "types": "./dist/Array.d.ts",
44
- "default": "./dist/Array.js"
45
- },
46
- "./Chunk": {
47
- "types": "./dist/Chunk.d.ts",
48
- "default": "./dist/Chunk.js"
49
- },
50
- "./Config/SecretURL": {
51
- "types": "./dist/Config/SecretURL.d.ts",
52
- "default": "./dist/Config/SecretURL.js"
53
- },
54
- "./Effect": {
55
- "types": "./dist/Effect.d.ts",
56
- "default": "./dist/Effect.js"
57
- },
58
- "./Function": {
59
- "types": "./dist/Function.d.ts",
60
- "default": "./dist/Function.js"
61
- },
62
- "./Inputify.type": {
63
- "types": "./dist/Inputify.type.d.ts",
64
- "default": "./dist/Inputify.type.js"
65
- },
66
- "./Layer": {
67
- "types": "./dist/Layer.d.ts",
68
- "default": "./dist/Layer.js"
69
- },
70
- "./NonEmptySet": {
71
- "types": "./dist/NonEmptySet.d.ts",
72
- "default": "./dist/NonEmptySet.js"
73
- },
74
- "./Operations": {
75
- "types": "./dist/Operations.d.ts",
76
- "default": "./dist/Operations.js"
77
- },
78
- "./Option": {
79
- "types": "./dist/Option.d.ts",
80
- "default": "./dist/Option.js"
81
- },
82
- "./Pure": {
83
- "types": "./dist/Pure.d.ts",
84
- "default": "./dist/Pure.js"
85
- },
86
- "./Schema": {
87
- "types": "./dist/Schema.d.ts",
88
- "default": "./dist/Schema.js"
89
- },
90
- "./Schema/Class": {
91
- "types": "./dist/Schema/Class.d.ts",
92
- "default": "./dist/Schema/Class.js"
93
- },
94
- "./Schema/FastCheck": {
95
- "types": "./dist/Schema/FastCheck.d.ts",
96
- "default": "./dist/Schema/FastCheck.js"
97
- },
98
- "./Schema/Methods": {
99
- "types": "./dist/Schema/Methods.d.ts",
100
- "default": "./dist/Schema/Methods.js"
101
- },
102
- "./Schema/brand": {
103
- "types": "./dist/Schema/brand.d.ts",
104
- "default": "./dist/Schema/brand.js"
105
- },
106
- "./Schema/email": {
107
- "types": "./dist/Schema/email.d.ts",
108
- "default": "./dist/Schema/email.js"
109
- },
110
- "./Schema/ext": {
111
- "types": "./dist/Schema/ext.d.ts",
112
- "default": "./dist/Schema/ext.js"
113
- },
114
- "./Schema/moreStrings": {
115
- "types": "./dist/Schema/moreStrings.d.ts",
116
- "default": "./dist/Schema/moreStrings.js"
117
- },
118
- "./Schema/numbers": {
119
- "types": "./dist/Schema/numbers.d.ts",
120
- "default": "./dist/Schema/numbers.js"
121
- },
122
- "./Schema/phoneNumber": {
123
- "types": "./dist/Schema/phoneNumber.d.ts",
124
- "default": "./dist/Schema/phoneNumber.js"
125
- },
126
- "./Schema/schema": {
127
- "types": "./dist/Schema/schema.d.ts",
128
- "default": "./dist/Schema/schema.js"
129
- },
130
- "./Schema/strings": {
131
- "types": "./dist/Schema/strings.d.ts",
132
- "default": "./dist/Schema/strings.js"
133
- },
134
- "./ServiceMap": {
135
- "types": "./dist/ServiceMap.d.ts",
136
- "default": "./dist/ServiceMap.js"
137
- },
138
- "./Set": {
139
- "types": "./dist/Set.d.ts",
140
- "default": "./dist/Set.js"
141
- },
142
- "./TypeTest": {
143
- "types": "./dist/TypeTest.d.ts",
144
- "default": "./dist/TypeTest.js"
145
- },
146
- "./Types": {
147
- "types": "./dist/Types.d.ts",
148
- "default": "./dist/Types.js"
149
- },
150
- "./Widen.type": {
151
- "types": "./dist/Widen.type.d.ts",
152
- "default": "./dist/Widen.type.js"
153
- },
154
- "./_ext/Array": {
155
- "types": "./dist/_ext/Array.d.ts",
156
- "default": "./dist/_ext/Array.js"
157
- },
158
- "./_ext/date": {
159
- "types": "./dist/_ext/date.d.ts",
160
- "default": "./dist/_ext/date.js"
161
- },
162
- "./_ext/misc": {
163
- "types": "./dist/_ext/misc.d.ts",
164
- "default": "./dist/_ext/misc.js"
165
- },
166
- "./_ext/ord.ext": {
167
- "types": "./dist/_ext/ord.ext.d.ts",
168
- "default": "./dist/_ext/ord.ext.js"
169
- },
170
- "./builtin": {
171
- "types": "./dist/builtin.d.ts",
172
- "default": "./dist/builtin.js"
173
- },
174
- "./client": {
175
- "types": "./dist/client.d.ts",
176
- "default": "./dist/client.js"
177
- },
178
- "./client/apiClientFactory": {
179
- "types": "./dist/client/apiClientFactory.d.ts",
180
- "default": "./dist/client/apiClientFactory.js"
181
- },
182
- "./client/clientFor": {
183
- "types": "./dist/client/clientFor.d.ts",
184
- "default": "./dist/client/clientFor.js"
185
- },
186
- "./client/errors": {
187
- "types": "./dist/client/errors.d.ts",
188
- "default": "./dist/client/errors.js"
189
- },
190
- "./client/makeClient": {
191
- "types": "./dist/client/makeClient.d.ts",
192
- "default": "./dist/client/makeClient.js"
193
- },
194
- "./faker": {
195
- "types": "./dist/faker.d.ts",
196
- "default": "./dist/faker.js"
197
- },
198
- "./http": {
199
- "types": "./dist/http.d.ts",
200
- "default": "./dist/http.js"
201
- },
202
- "./http/Request": {
203
- "types": "./dist/http/Request.d.ts",
204
- "default": "./dist/http/Request.js"
205
- },
206
- "./ids": {
207
- "types": "./dist/ids.d.ts",
208
- "default": "./dist/ids.js"
209
- },
210
- "./logger": {
211
- "types": "./dist/logger.d.ts",
212
- "default": "./dist/logger.js"
213
- },
214
- "./middleware": {
215
- "types": "./dist/middleware.d.ts",
216
- "default": "./dist/middleware.js"
217
- },
218
- "./rpc": {
219
- "types": "./dist/rpc.d.ts",
220
- "default": "./dist/rpc.js"
221
- },
222
- "./rpc/MiddlewareMaker": {
223
- "types": "./dist/rpc/MiddlewareMaker.d.ts",
224
- "default": "./dist/rpc/MiddlewareMaker.js"
225
- },
226
- "./rpc/RpcContextMap": {
227
- "types": "./dist/rpc/RpcContextMap.d.ts",
228
- "default": "./dist/rpc/RpcContextMap.js"
229
- },
230
- "./rpc/RpcMiddleware": {
231
- "types": "./dist/rpc/RpcMiddleware.d.ts",
232
- "default": "./dist/rpc/RpcMiddleware.js"
233
- },
234
- "./transform": {
235
- "types": "./dist/transform.d.ts",
236
- "default": "./dist/transform.js"
237
- },
238
- "./utils": {
239
- "types": "./dist/utils.d.ts",
240
- "default": "./dist/utils.js"
241
- },
242
- "./utils/effectify": {
243
- "types": "./dist/utils/effectify.d.ts",
244
- "default": "./dist/utils/effectify.js"
245
- },
246
- "./utils/extend": {
247
- "types": "./dist/utils/extend.d.ts",
248
- "default": "./dist/utils/extend.js"
249
- },
250
- "./utils/gen": {
251
- "types": "./dist/utils/gen.d.ts",
252
- "default": "./dist/utils/gen.js"
253
- },
254
- "./utils/logLevel": {
255
- "types": "./dist/utils/logLevel.d.ts",
256
- "default": "./dist/utils/logLevel.js"
257
- },
258
- "./utils/logger": {
259
- "types": "./dist/utils/logger.d.ts",
260
- "default": "./dist/utils/logger.js"
261
- },
262
- "./validation": {
263
- "types": "./dist/validation.d.ts",
264
- "default": "./dist/validation.js"
265
- },
266
- "./validation/validators": {
267
- "types": "./dist/validation/validators.d.ts",
268
- "default": "./dist/validation/validators.js"
41
+ "./internal/*": null,
42
+ "./*": {
43
+ "types": "./dist/*.d.ts",
44
+ "default": "./dist/*.js"
269
45
  }
270
46
  },
271
47
  "gitHead": "bd8e27eea3eff97db8739d577d67e7336c078d28",
@@ -279,21 +55,20 @@
279
55
  ],
280
56
  "scripts": {
281
57
  "watch": "pnpm build:tsc -w",
282
- "build:tsc": "pnpm clean-dist && effect-app-cli packagejson && pnpm check",
283
- "check": "tsc --build",
284
- "build:tsc-src": "pnpm clean-dist && effect-app-cli packagejson tsc --build ./tsconfig.src.json",
58
+ "build:tsc": "pnpm clean-dist && pnpm check",
59
+ "check": "tsgo --build",
60
+ "build:tsc-src": "pnpm clean-dist && tsc --build ./tsconfig.src.json",
285
61
  "build:src": "pnpm build:tsc-src",
286
62
  "build": "pnpm build:tsc",
287
- "watch2": "pnpm clean-dist && NODE_OPTIONS=--max-old-space-size=6144 tsc -w",
63
+ "watch2": "pnpm clean-dist && NODE_OPTIONS=--max-old-space-size=6144 tsgo -w",
288
64
  "clean": "rm -rf dist",
289
65
  "clean-dist": "sh ../../scripts/clean-dist.sh",
290
66
  "circular": "pnpm circular:src && pnpm circular:dist",
291
67
  "circular:src": "madge --circular --ts-config ./tsconfig.json --extensions ts ./src",
292
68
  "circular:dist": "madge --circular --extensions js ./dist",
293
- "compile": "NODE_OPTIONS=--max-old-space-size=6144 tsc --noEmit",
294
- "lint": "NODE_OPTIONS=--max-old-space-size=6144 ESLINT_TS=1 eslint ./src",
295
- "lint:watch": "ESLINT_TS=1 esw -w --changed --clear --ext ts,tsx .",
296
- "lint-fix": "pnpm lint --fix",
69
+ "compile": "NODE_OPTIONS=--max-old-space-size=6144 tsgo --noEmit",
70
+ "lint": "oxlint --type-aware ./src && pnpm exec dprint check --config ../../dprint.jsonc .",
71
+ "lint-fix": "oxlint --type-aware --fix ./src && pnpm exec dprint fmt --config ../../dprint.jsonc .",
297
72
  "test": "vitest",
298
73
  "test:run": "pnpm run test run --passWithNoTests",
299
74
  "testsuite": "pnpm lint && pnpm circular && pnpm run test:run",
package/src/Array.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { Chunk, Effect } from "effect"
2
1
  import type { NonEmptyArray, NonEmptyReadonlyArray } from "effect/Array"
3
2
  import * as Array from "effect/Array"
4
- import * as T from "effect/Effect"
3
+ import * as Chunk from "effect/Chunk"
4
+ import * as Effect from "effect/Effect"
5
5
  import { dual, type Predicate } from "./Function.js"
6
6
  import * as Option from "./Option.js"
7
7
 
@@ -104,7 +104,7 @@ export function chunk_<T>(items_: Iterable<T>, size: number) {
104
104
  }
105
105
 
106
106
  export function forEachEffectNA<A, R, E, B>(as: NonEmptyReadonlyArray<A>, f: (a: A) => Effect.Effect<B, E, R>) {
107
- return Effect.map(T.forEach(as, f), (_) => Option.getOrNull(toNonEmptyArray(_)))
107
+ return Effect.map(Effect.forEach(as, f), (_) => Option.getOrNull(toNonEmptyArray(_)))
108
108
  }
109
109
 
110
110
  export * from "effect/Array"
@@ -1,8 +1,10 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
- import { Config, type Equal, type Redacted } from "effect"
5
4
  import type * as Chunk from "effect/Chunk"
5
+ import * as Config from "effect/Config"
6
+ import type * as Equal from "effect/Equal"
7
+ import type * as Redacted from "effect/Redacted"
6
8
  import * as internal from "./internal/configSecretURL.js"
7
9
 
8
10
  // /**
@@ -21,6 +23,7 @@ import * as internal from "./internal/configSecretURL.js"
21
23
  * @since 1.0.0
22
24
  * @category models
23
25
  */
26
+ // eslint-disable-next-line import/namespace
24
27
  export interface SecretURL extends Redacted.Redacted, Equal.Equal {
25
28
  /** @internal */
26
29
  readonly raw: Array<number>
@@ -73,5 +76,5 @@ export const value: (self: SecretURL) => string = internal.value
73
76
  export const unsafeWipe: (self: SecretURL) => void = internal.unsafeWipe
74
77
 
75
78
  export const secretURL = (name?: string): Config.Config<SecretURL> => {
76
- return Config.map(Config.string(name), fromString)
79
+ return Config.map(Config.nonEmptyString(name), fromString)
77
80
  }
@@ -1,5 +1,5 @@
1
- import { Redacted } from "effect"
2
1
  import * as Chunk from "effect/Chunk"
2
+ import * as Redacted from "effect/Redacted"
3
3
  import type * as SecretURL from "../SecretURL.js"
4
4
 
5
5
  /** @internal */
package/src/Config.ts ADDED
@@ -0,0 +1,14 @@
1
+ import { type Config, make } from "effect/Config"
2
+ import { dual } from "effect/Function"
3
+
4
+ import * as ConfigProvider from "./ConfigProvider.js"
5
+
6
+ export const nested: {
7
+ (name: string): <A>(self: Config<A>) => Config<A>
8
+ <A>(self: Config<A>, name: string): Config<A>
9
+ } = dual(
10
+ 2,
11
+ <A>(self: Config<A>, name: string): Config<A> => make((provider) => self.parse(ConfigProvider.nested(provider, name)))
12
+ )
13
+
14
+ export * from "effect/Config"
@@ -0,0 +1,48 @@
1
+ import { type ConfigProvider, make, type Path } from "effect/ConfigProvider"
2
+ import { dual } from "effect/Function"
3
+
4
+ /**
5
+ * Scopes a provider so that all lookups are prefixed with the given path
6
+ * segments.
7
+ *
8
+ * When to use:
9
+ * - Namespacing config under a prefix like `"app"` or `"database"`.
10
+ * - Reusing the same provider shape for multiple sub-configs.
11
+ *
12
+ * Accepts a single string or a full `Path` array. The prefix is prepended
13
+ * *after* any `mapInput` transformation runs, so ordering matters when
14
+ * composing with {@link mapInput} or {@link constantCase}.
15
+ *
16
+ * Supports both data-last and data-first calling conventions.
17
+ *
18
+ * **Example** (Nesting under a prefix)
19
+ *
20
+ * ```ts
21
+ * import * as ConfigProvider from "effect/ConfigProvider"
22
+ *
23
+ * const provider = ConfigProvider.fromEnv({
24
+ * env: { APP_HOST: "localhost", APP_PORT: "3000" }
25
+ * })
26
+ *
27
+ * // Lookups for ["HOST"] now resolve to ["APP", "HOST"]
28
+ * const scoped = ConfigProvider.nested(provider, "APP")
29
+ * ```
30
+ *
31
+ * @see {@link mapInput} – for arbitrary path transformations
32
+ *
33
+ * @category Combinators
34
+ * @since 4.0.0
35
+ */
36
+ export const nested: {
37
+ (prefix: string | Path): (self: ConfigProvider) => ConfigProvider
38
+ (self: ConfigProvider, prefix: string | Path): ConfigProvider
39
+ } = dual(
40
+ 2,
41
+ (self: ConfigProvider, prefix: string | Path): ConfigProvider => {
42
+ let path: Path = typeof prefix === "string" ? [prefix] : prefix
43
+ if (self.mapInput) path = self.mapInput(path)
44
+ return make(self.get, self.mapInput, self.prefix ? [...self.prefix, ...path] : path)
45
+ }
46
+ )
47
+
48
+ export * from "effect/ConfigProvider"