effect-app 4.0.0-beta.27 → 4.0.0-beta.271

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 (342) hide show
  1. package/CHANGELOG.md +1269 -0
  2. package/dist/Array.d.ts +2 -1
  3. package/dist/Array.d.ts.map +1 -1
  4. package/dist/Array.js +4 -4
  5. package/dist/Chunk.d.ts.map +1 -1
  6. package/dist/Config/SecretURL.d.ts +3 -1
  7. package/dist/Config/SecretURL.d.ts.map +1 -1
  8. package/dist/Config/SecretURL.js +3 -6
  9. package/dist/Config/internal/configSecretURL.d.ts.map +1 -1
  10. package/dist/Config/internal/configSecretURL.js +2 -2
  11. package/dist/Config.d.ts +2 -0
  12. package/dist/Config.d.ts.map +1 -0
  13. package/dist/Config.js +8 -0
  14. package/dist/ConfigProvider.d.ts +2 -0
  15. package/dist/ConfigProvider.d.ts.map +1 -0
  16. package/dist/ConfigProvider.js +6 -0
  17. package/dist/{ServiceMap.d.ts → Context.d.ts} +18 -20
  18. package/dist/Context.d.ts.map +1 -0
  19. package/dist/Context.js +67 -0
  20. package/dist/Effect.d.ts +10 -9
  21. package/dist/Effect.d.ts.map +1 -1
  22. package/dist/Effect.js +5 -8
  23. package/dist/Emailer.d.ts +51 -0
  24. package/dist/Emailer.d.ts.map +1 -0
  25. package/dist/Emailer.js +7 -0
  26. package/dist/Function.d.ts.map +1 -1
  27. package/dist/Layer.d.ts +10 -6
  28. package/dist/Layer.d.ts.map +1 -1
  29. package/dist/Layer.js +3 -2
  30. package/dist/Model/Repository/Registry.d.ts +22 -0
  31. package/dist/Model/Repository/Registry.d.ts.map +1 -0
  32. package/dist/Model/Repository/Registry.js +18 -0
  33. package/dist/Model/Repository/ext.d.ts +60 -0
  34. package/dist/Model/Repository/ext.d.ts.map +1 -0
  35. package/dist/Model/Repository/ext.js +122 -0
  36. package/dist/Model/Repository/internal/internal.d.ts +63 -0
  37. package/dist/Model/Repository/internal/internal.d.ts.map +1 -0
  38. package/dist/Model/Repository/internal/internal.js +430 -0
  39. package/dist/Model/Repository/legacy.d.ts +21 -0
  40. package/dist/Model/Repository/legacy.d.ts.map +1 -0
  41. package/dist/Model/Repository/legacy.js +2 -0
  42. package/dist/Model/Repository/makeRepo.d.ts +54 -0
  43. package/dist/Model/Repository/makeRepo.d.ts.map +1 -0
  44. package/dist/Model/Repository/makeRepo.js +27 -0
  45. package/dist/Model/Repository/service.d.ts +121 -0
  46. package/dist/Model/Repository/service.d.ts.map +1 -0
  47. package/dist/Model/Repository/service.js +2 -0
  48. package/dist/Model/Repository/validation.d.ts +58 -0
  49. package/dist/Model/Repository/validation.d.ts.map +1 -0
  50. package/dist/Model/Repository/validation.js +32 -0
  51. package/dist/Model/Repository.d.ts +7 -0
  52. package/dist/Model/Repository.d.ts.map +1 -0
  53. package/dist/Model/Repository.js +7 -0
  54. package/dist/Model/dsl.d.ts +33 -0
  55. package/dist/Model/dsl.d.ts.map +1 -0
  56. package/dist/Model/dsl.js +43 -0
  57. package/dist/Model/filter/filterApi.d.ts +30 -0
  58. package/dist/Model/filter/filterApi.d.ts.map +1 -0
  59. package/dist/Model/filter/filterApi.js +2 -0
  60. package/dist/Model/filter/types/errors.d.ts +29 -0
  61. package/dist/Model/filter/types/errors.d.ts.map +1 -0
  62. package/dist/Model/filter/types/errors.js +2 -0
  63. package/dist/Model/filter/types/fields.d.ts +15 -0
  64. package/dist/Model/filter/types/fields.d.ts.map +1 -0
  65. package/dist/Model/filter/types/fields.js +2 -0
  66. package/dist/Model/filter/types/path/common.d.ts +316 -0
  67. package/dist/Model/filter/types/path/common.d.ts.map +1 -0
  68. package/dist/Model/filter/types/path/common.js +2 -0
  69. package/dist/Model/filter/types/path/eager.d.ts +94 -0
  70. package/dist/Model/filter/types/path/eager.d.ts.map +1 -0
  71. package/dist/Model/filter/types/path/eager.js +36 -0
  72. package/dist/Model/filter/types/path/index.d.ts +4 -0
  73. package/dist/Model/filter/types/path/index.d.ts.map +1 -0
  74. package/dist/Model/filter/types/path/index.js +3 -0
  75. package/dist/Model/filter/types/utils.d.ts +79 -0
  76. package/dist/Model/filter/types/utils.d.ts.map +1 -0
  77. package/dist/Model/filter/types/utils.js +2 -0
  78. package/dist/Model/filter/types/validator.d.ts +30 -0
  79. package/dist/Model/filter/types/validator.d.ts.map +1 -0
  80. package/dist/Model/filter/types/validator.js +2 -0
  81. package/dist/Model/filter/types.d.ts +5 -0
  82. package/dist/Model/filter/types.d.ts.map +1 -0
  83. package/dist/Model/filter/types.js +7 -0
  84. package/dist/Model/query/dsl.d.ts +493 -0
  85. package/dist/Model/query/dsl.d.ts.map +1 -0
  86. package/dist/Model/query/dsl.js +376 -0
  87. package/dist/Model/query/new-kid-interpreter.d.ts +136 -0
  88. package/dist/Model/query/new-kid-interpreter.d.ts.map +1 -0
  89. package/dist/Model/query/new-kid-interpreter.js +336 -0
  90. package/dist/Model/query.d.ts +15 -0
  91. package/dist/Model/query.d.ts.map +1 -0
  92. package/dist/Model/query.js +3 -0
  93. package/dist/Model.d.ts +5 -0
  94. package/dist/Model.d.ts.map +1 -0
  95. package/dist/Model.js +5 -0
  96. package/dist/NonEmptySet.d.ts +3 -1
  97. package/dist/NonEmptySet.d.ts.map +1 -1
  98. package/dist/NonEmptySet.js +2 -2
  99. package/dist/Option.d.ts +1 -0
  100. package/dist/Option.d.ts.map +1 -1
  101. package/dist/Option.js +3 -1
  102. package/dist/Pure.d.ts +7 -5
  103. package/dist/Pure.d.ts.map +1 -1
  104. package/dist/Pure.js +17 -14
  105. package/dist/QueueMaker.d.ts +13 -0
  106. package/dist/QueueMaker.d.ts.map +1 -0
  107. package/dist/QueueMaker.js +4 -0
  108. package/dist/RequestContext.d.ts +208 -0
  109. package/dist/RequestContext.d.ts.map +1 -0
  110. package/dist/RequestContext.js +54 -0
  111. package/dist/Schema/Class.d.ts +157 -19
  112. package/dist/Schema/Class.d.ts.map +1 -1
  113. package/dist/Schema/Class.js +214 -17
  114. package/dist/Schema/FastCheck.d.ts.map +1 -1
  115. package/dist/Schema/SchemaParser.d.ts +5 -0
  116. package/dist/Schema/SchemaParser.d.ts.map +1 -0
  117. package/dist/Schema/SchemaParser.js +6 -0
  118. package/dist/Schema/SpecialJsonSchema.d.ts +34 -0
  119. package/dist/Schema/SpecialJsonSchema.d.ts.map +1 -0
  120. package/dist/Schema/SpecialJsonSchema.js +118 -0
  121. package/dist/Schema/SpecialOpenApi.d.ts +32 -0
  122. package/dist/Schema/SpecialOpenApi.d.ts.map +1 -0
  123. package/dist/Schema/SpecialOpenApi.js +123 -0
  124. package/dist/Schema/brand.d.ts +4 -2
  125. package/dist/Schema/brand.d.ts.map +1 -1
  126. package/dist/Schema/brand.js +3 -1
  127. package/dist/Schema/email.d.ts.map +1 -1
  128. package/dist/Schema/email.js +7 -4
  129. package/dist/Schema/ext.d.ts +338 -55
  130. package/dist/Schema/ext.d.ts.map +1 -1
  131. package/dist/Schema/ext.js +358 -53
  132. package/dist/Schema/moreStrings.d.ts +82 -36
  133. package/dist/Schema/moreStrings.d.ts.map +1 -1
  134. package/dist/Schema/moreStrings.js +49 -42
  135. package/dist/Schema/numbers.d.ts +34 -21
  136. package/dist/Schema/numbers.d.ts.map +1 -1
  137. package/dist/Schema/numbers.js +55 -12
  138. package/dist/Schema/phoneNumber.d.ts.map +1 -1
  139. package/dist/Schema/phoneNumber.js +6 -3
  140. package/dist/Schema/strings.d.ts +18 -4
  141. package/dist/Schema/strings.d.ts.map +1 -1
  142. package/dist/Schema/strings.js +1 -5
  143. package/dist/Schema.d.ts +213 -7
  144. package/dist/Schema.d.ts.map +1 -1
  145. package/dist/Schema.js +190 -11
  146. package/dist/Set.d.ts +4 -1
  147. package/dist/Set.d.ts.map +1 -1
  148. package/dist/Set.js +3 -2
  149. package/dist/Store.d.ts +170 -0
  150. package/dist/Store.d.ts.map +1 -0
  151. package/dist/Store.js +121 -0
  152. package/dist/_ext/Array.d.ts +1 -1
  153. package/dist/_ext/Array.d.ts.map +1 -1
  154. package/dist/_ext/Array.js +4 -2
  155. package/dist/_ext/misc.d.ts +4 -1
  156. package/dist/_ext/misc.d.ts.map +1 -1
  157. package/dist/_ext/misc.js +4 -2
  158. package/dist/_ext/ord.ext.d.ts +2 -1
  159. package/dist/_ext/ord.ext.d.ts.map +1 -1
  160. package/dist/_ext/ord.ext.js +2 -2
  161. package/dist/client/InvalidationKeys.d.ts +29 -0
  162. package/dist/client/InvalidationKeys.d.ts.map +1 -0
  163. package/dist/client/InvalidationKeys.js +33 -0
  164. package/dist/client/apiClientFactory.d.ts +19 -31
  165. package/dist/client/apiClientFactory.d.ts.map +1 -1
  166. package/dist/client/apiClientFactory.js +104 -34
  167. package/dist/client/clientFor.d.ts +52 -18
  168. package/dist/client/clientFor.d.ts.map +1 -1
  169. package/dist/client/clientFor.js +9 -1
  170. package/dist/client/errors.d.ts +82 -27
  171. package/dist/client/errors.d.ts.map +1 -1
  172. package/dist/client/errors.js +75 -19
  173. package/dist/client/makeClient.d.ts +494 -32
  174. package/dist/client/makeClient.d.ts.map +1 -1
  175. package/dist/client/makeClient.js +66 -24
  176. package/dist/client.d.ts +1 -0
  177. package/dist/client.d.ts.map +1 -1
  178. package/dist/client.js +2 -1
  179. package/dist/faker.d.ts.map +1 -1
  180. package/dist/http/Request.d.ts +1 -1
  181. package/dist/http/Request.d.ts.map +1 -1
  182. package/dist/http/Request.js +2 -2
  183. package/dist/ids.d.ts +42 -14
  184. package/dist/ids.d.ts.map +1 -1
  185. package/dist/ids.js +30 -5
  186. package/dist/index.d.ts +6 -7
  187. package/dist/index.d.ts.map +1 -1
  188. package/dist/index.js +8 -8
  189. package/dist/middleware.d.ts +13 -7
  190. package/dist/middleware.d.ts.map +1 -1
  191. package/dist/middleware.js +14 -8
  192. package/dist/rpc/Invalidation.d.ts +420 -0
  193. package/dist/rpc/Invalidation.d.ts.map +1 -0
  194. package/dist/rpc/Invalidation.js +168 -0
  195. package/dist/rpc/MiddlewareMaker.d.ts +11 -7
  196. package/dist/rpc/MiddlewareMaker.d.ts.map +1 -1
  197. package/dist/rpc/MiddlewareMaker.js +59 -38
  198. package/dist/rpc/RpcContextMap.d.ts +3 -3
  199. package/dist/rpc/RpcContextMap.d.ts.map +1 -1
  200. package/dist/rpc/RpcContextMap.js +4 -4
  201. package/dist/rpc/RpcMiddleware.d.ts +14 -10
  202. package/dist/rpc/RpcMiddleware.d.ts.map +1 -1
  203. package/dist/rpc/RpcMiddleware.js +1 -1
  204. package/dist/rpc.d.ts +1 -1
  205. package/dist/rpc.d.ts.map +1 -1
  206. package/dist/rpc.js +2 -2
  207. package/dist/runtime.d.ts +19 -0
  208. package/dist/runtime.d.ts.map +1 -0
  209. package/dist/runtime.js +40 -0
  210. package/dist/setupRequest.d.ts +19 -0
  211. package/dist/setupRequest.d.ts.map +1 -0
  212. package/dist/setupRequest.js +69 -0
  213. package/dist/toast.d.ts +51 -0
  214. package/dist/toast.d.ts.map +1 -0
  215. package/dist/toast.js +34 -0
  216. package/dist/transform.d.ts +1 -1
  217. package/dist/transform.d.ts.map +1 -1
  218. package/dist/transform.js +4 -5
  219. package/dist/utils/effectify.d.ts +1 -1
  220. package/dist/utils/effectify.d.ts.map +1 -1
  221. package/dist/utils/effectify.js +2 -2
  222. package/dist/utils/extend.d.ts.map +1 -1
  223. package/dist/utils/gen.d.ts +4 -4
  224. package/dist/utils/gen.d.ts.map +1 -1
  225. package/dist/utils/logLevel.d.ts +2 -2
  226. package/dist/utils/logLevel.d.ts.map +1 -1
  227. package/dist/utils/logger.d.ts +4 -3
  228. package/dist/utils/logger.d.ts.map +1 -1
  229. package/dist/utils/logger.js +4 -4
  230. package/dist/utils.d.ts +34 -39
  231. package/dist/utils.d.ts.map +1 -1
  232. package/dist/utils.js +33 -37
  233. package/dist/validation/validators.d.ts.map +1 -1
  234. package/dist/validation.d.ts.map +1 -1
  235. package/dist/withToast.d.ts +30 -0
  236. package/dist/withToast.d.ts.map +1 -0
  237. package/dist/withToast.js +64 -0
  238. package/package.json +22 -247
  239. package/src/Array.ts +5 -5
  240. package/src/Chunk.ts +3 -3
  241. package/src/Config/SecretURL.ts +6 -3
  242. package/src/Config/internal/configSecretURL.ts +2 -2
  243. package/src/Config.ts +7 -0
  244. package/src/ConfigProvider.ts +5 -0
  245. package/src/{ServiceMap.ts → Context.ts} +56 -63
  246. package/src/Effect.ts +14 -16
  247. package/src/Emailer.ts +51 -0
  248. package/src/Inputify.type.ts +1 -1
  249. package/src/Layer.ts +11 -7
  250. package/src/Model/Repository/Registry.ts +35 -0
  251. package/src/Model/Repository/ext.ts +375 -0
  252. package/src/Model/Repository/internal/internal.ts +741 -0
  253. package/src/Model/Repository/legacy.ts +29 -0
  254. package/src/Model/Repository/makeRepo.ts +145 -0
  255. package/src/Model/Repository/service.ts +676 -0
  256. package/src/Model/Repository/validation.ts +31 -0
  257. package/src/Model/Repository.ts +6 -0
  258. package/src/Model/dsl.ts +129 -0
  259. package/src/Model/filter/filterApi.ts +60 -0
  260. package/src/Model/filter/types/errors.ts +47 -0
  261. package/src/Model/filter/types/fields.ts +50 -0
  262. package/src/Model/filter/types/path/common.ts +404 -0
  263. package/src/Model/filter/types/path/eager.ts +329 -0
  264. package/src/Model/filter/types/path/index.ts +4 -0
  265. package/src/Model/filter/types/utils.ts +128 -0
  266. package/src/Model/filter/types/validator.ts +46 -0
  267. package/src/Model/filter/types.ts +6 -0
  268. package/src/Model/query/dsl.ts +2694 -0
  269. package/src/Model/query/new-kid-interpreter.ts +484 -0
  270. package/src/Model/query.ts +13 -0
  271. package/src/Model.ts +4 -0
  272. package/src/NonEmptySet.ts +6 -4
  273. package/src/Option.ts +2 -0
  274. package/src/Pure.ts +22 -20
  275. package/src/QueueMaker.ts +19 -0
  276. package/src/RequestContext.ts +95 -0
  277. package/src/Schema/Class.ts +517 -59
  278. package/src/Schema/SchemaParser.ts +12 -0
  279. package/src/Schema/SpecialJsonSchema.ts +139 -0
  280. package/src/Schema/SpecialOpenApi.ts +130 -0
  281. package/src/Schema/brand.ts +22 -2
  282. package/src/Schema/email.ts +9 -4
  283. package/src/Schema/ext.ts +446 -91
  284. package/src/Schema/moreStrings.ts +147 -68
  285. package/src/Schema/numbers.ts +97 -28
  286. package/src/Schema/phoneNumber.ts +9 -5
  287. package/src/Schema/strings.ts +23 -14
  288. package/src/Schema.ts +389 -25
  289. package/src/Set.ts +6 -2
  290. package/src/Store.ts +277 -0
  291. package/src/_ext/Array.ts +4 -2
  292. package/src/_ext/misc.ts +4 -1
  293. package/src/_ext/ord.ext.ts +2 -1
  294. package/src/client/InvalidationKeys.ts +50 -0
  295. package/src/client/apiClientFactory.ts +234 -135
  296. package/src/client/clientFor.ts +105 -34
  297. package/src/client/errors.ts +100 -29
  298. package/src/client/makeClient.ts +594 -73
  299. package/src/client.ts +5 -4
  300. package/src/http/Request.ts +3 -3
  301. package/src/http.ts +1 -1
  302. package/src/ids.ts +33 -6
  303. package/src/index.ts +20 -23
  304. package/src/middleware.ts +13 -9
  305. package/src/rpc/Invalidation.ts +261 -0
  306. package/src/rpc/MiddlewareMaker.ts +88 -80
  307. package/src/rpc/README.md +2 -2
  308. package/src/rpc/RpcContextMap.ts +7 -6
  309. package/src/rpc/RpcMiddleware.ts +19 -13
  310. package/src/rpc.ts +4 -4
  311. package/src/runtime.ts +56 -0
  312. package/src/setupRequest.ts +134 -0
  313. package/src/toast.ts +54 -0
  314. package/src/transform.ts +4 -4
  315. package/src/utils/effectify.ts +1 -1
  316. package/src/utils/gen.ts +8 -8
  317. package/src/utils/logLevel.ts +1 -1
  318. package/src/utils/logger.ts +4 -3
  319. package/src/utils.ts +85 -158
  320. package/src/validation.ts +2 -2
  321. package/src/withToast.ts +133 -0
  322. package/test/dist/rpc.test.d.ts.map +1 -1
  323. package/test/dist/secretURL.test.d.ts.map +1 -0
  324. package/test/dist/special.test.d.ts.map +1 -0
  325. package/test/moreStrings.test.ts +1 -1
  326. package/test/rpc.test.ts +46 -6
  327. package/test/schema.test.ts +459 -30
  328. package/test/secretURL.test.ts +160 -0
  329. package/test/special.test.ts +1026 -0
  330. package/test/utils.test.ts +7 -7
  331. package/tsconfig.base.json +6 -5
  332. package/tsconfig.json +3 -1
  333. package/tsconfig.json.bak +2 -2
  334. package/tsconfig.src.json +29 -29
  335. package/tsconfig.test.json +2 -2
  336. package/dist/Operations.d.ts +0 -123
  337. package/dist/Operations.d.ts.map +0 -1
  338. package/dist/Operations.js +0 -29
  339. package/dist/ServiceMap.d.ts.map +0 -1
  340. package/dist/ServiceMap.js +0 -91
  341. package/eslint.config.mjs +0 -26
  342. package/src/Operations.ts +0 -55
package/package.json CHANGED
@@ -1,31 +1,30 @@
1
1
  {
2
2
  "name": "effect-app",
3
- "version": "4.0.0-beta.27",
3
+ "version": "4.0.0-beta.271",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
7
7
  "@tsconfig/strictest": "^2.0.8",
8
- "date-fns": "^4.1.0",
9
- "nanoid": "^5.1.6",
8
+ "date-fns": "^4.4.0",
9
+ "nanoid": "^5.1.11",
10
10
  "path-parser": "^6.1.0",
11
- "query-string": "^9.3.1",
11
+ "query-string": "^9.4.0",
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.9.1",
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.8.0",
23
+ "typescript": "~6.0.3",
24
+ "vitest": "^4.1.7"
26
25
  },
27
26
  "peerDependencies": {
28
- "effect": "^4.0.0-beta.37"
27
+ "effect": "^4.0.0-beta.84"
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 && node ../../scripts/rewrite-dist-declaration-imports.mjs dist",
59
+ "check": "tsgo --build",
60
+ "build:tsc-src": "pnpm clean-dist && tsc --build ./tsconfig.src.json && node ../../scripts/rewrite-dist-declaration-imports.mjs dist",
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,9 +1,9 @@
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"
5
- import { dual, type Predicate } from "./Function.js"
6
- import * as Option from "./Option.js"
3
+ import * as Chunk from "effect/Chunk"
4
+ import * as Effect from "effect/Effect"
5
+ import { dual, type Predicate } from "./Function.ts"
6
+ import * as Option from "./Option.ts"
7
7
 
8
8
  export const toNonEmptyArray = Option.liftPredicate(Array.isReadonlyArrayNonEmpty)
9
9
 
@@ -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"
package/src/Chunk.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { pipe, type Predicate, type Refinement } from "./Function.js"
2
- import * as Option from "./Option.js"
1
+ import { pipe, type Predicate, type Refinement } from "./Function.ts"
2
+ import * as Option from "./Option.ts"
3
3
 
4
4
  import * as Chunk from "effect/Chunk"
5
5
  import { type Equivalence } from "effect/Equivalence"
6
- import * as Array from "./Array.js"
6
+ import * as Array from "./Array.ts"
7
7
 
8
8
  export * from "effect/Chunk"
9
9
 
@@ -1,9 +1,11 @@
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"
6
- import * as internal from "./internal/configSecretURL.js"
5
+ import * as Config from "effect/Config"
6
+ import type * as Equal from "effect/Equal"
7
+ import type * as Redacted from "effect/Redacted"
8
+ import * as internal from "./internal/configSecretURL.ts"
7
9
 
8
10
  // /**
9
11
  // * @since 1.0.0
@@ -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,6 +1,6 @@
1
- import { Redacted } from "effect"
2
1
  import * as Chunk from "effect/Chunk"
3
- import type * as SecretURL from "../SecretURL.js"
2
+ import * as Redacted from "effect/Redacted"
3
+ import type * as SecretURL from "../SecretURL.ts"
4
4
 
5
5
  /** @internal */
6
6
  export const isSecretURL = (u: unknown): u is SecretURL.SecretURL => {
package/src/Config.ts ADDED
@@ -0,0 +1,7 @@
1
+ // `Config.nested` previously needed a local override because effect v3's `nested`
2
+ // did not run the provider's `mapInput`/`constantCase` over the nested namespace
3
+ // segment (see commit "fix Config.nested mapping"). As of effect 4.0.0-beta.84 the
4
+ // upstream `nested` threads the prefix through the lookup path, so the provider
5
+ // transform covers it — the override is obsolete and the old internals it used are
6
+ // gone. Re-export the native module directly.
7
+ export * from "effect/Config"
@@ -0,0 +1,5 @@
1
+ // Local `nested` override removed: it existed to make the nested namespace honour the
2
+ // provider's `mapInput`/`constantCase` (see commit "fix Config.nested mapping"), which
3
+ // effect 4.0.0-beta.84 now does natively. The old override also relied on internals
4
+ // (`provider.get`/`mapInput`/`prefix`) that no longer exist. Re-export native directly.
5
+ export * from "effect/ConfigProvider"
@@ -1,21 +1,17 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- /**
3
- * We're doing the long way around here with assignTag, TagBase & TagBaseTagged,
4
- * because there's a typescript compiler issue where it will complain about Equal.symbol, and Hash.symbol not being accessible.
5
- * https://github.com/microsoft/TypeScript/issues/52644
6
- */
2
+ /* eslint-disable import/namespace */
7
3
 
8
- import { type Effect, Layer, type Scope, type Types } from "effect"
9
- import * as ServiceMap from "effect/ServiceMap"
10
- import { type Yieldable } from "./Effect.js"
4
+ import * as CTX from "effect/Context"
5
+ import type * as Effect from "effect/Effect"
6
+ import * as Layer from "effect/Layer"
7
+ import type * as Scope from "effect/Scope"
8
+ import type * as Types from "effect/Types"
11
9
 
12
- export * from "effect/ServiceMap"
10
+ export * from "effect/Context"
13
11
 
14
- export interface Opaque<Self extends object, in out Shape extends object>
15
- extends ServiceMap.Key<Self, Self>, Yieldable<Opaque<Self, Shape>, Self, never, Self>
16
- {
12
+ export interface Opaque<Self extends object, in out Shape extends object> extends CTX.Key<Self, Self> {
17
13
  of(this: void, self: Shape): Self
18
- serviceMap(self: Shape): ServiceMap.ServiceMap<Self>
14
+ context(self: Shape): CTX.Context<Self>
19
15
  // a version that leverages the Shape -> Self conversion
20
16
  toLayer: <E, R>(
21
17
  eff: Effect.Effect<Shape, E, R>
@@ -25,11 +21,11 @@ export interface Opaque<Self extends object, in out Shape extends object>
25
21
  }
26
22
 
27
23
  // export interface OpaqueMake<Self extends object, in out Shape extends object, E, R>
28
- // extends ServiceMap.Service<Self, Self>
24
+ // extends CTX.Service<Self, Self>
29
25
  // {
30
26
  // // temp while sorting out https://github.com/Effect-TS/effect-smol/pull/1534
31
27
  // of(self: Shape): Self
32
- // serviceMap2(self: Shape): ServiceMap.ServiceMap<Self>
28
+ // contextMap2(self: Shape): CTX.Context<Self>
33
29
  // // a version that leverages the Shape -> Self conversion
34
30
  // toLayer: {
35
31
  // <E, R>(
@@ -44,7 +40,7 @@ export function assignTag<Identifier extends object, Shape extends object = Iden
44
40
  creationError?: Error
45
41
  ) {
46
42
  return <S extends object>(cls: S): S & Opaque<Identifier, Shape> => {
47
- const tag = ServiceMap.Service<Identifier, Shape>(key)
43
+ const tag = CTX.Service<Identifier, Shape>(key)
48
44
  let fields = tag
49
45
  if (Reflect.ownKeys(cls).includes("key")) {
50
46
  const { key, ...rest } = tag
@@ -67,54 +63,51 @@ export function assignTag<Identifier extends object, Shape extends object = Iden
67
63
  }
68
64
  }
69
65
 
70
- export type ServiceAcessorShape<Self, Type> = Type extends Record<PropertyKey, any> ? {
71
- [
72
- k in keyof Type as Type[k] extends ((...args: [...infer Args]) => infer Ret)
73
- ? ((...args: Readonly<Args>) => Ret) extends Type[k] ? k : never
74
- : k
75
- ]: Type[k] extends (...args: [...infer Args]) => Effect.Effect<infer A, infer E, infer R>
76
- ? (...args: Readonly<Args>) => Effect.Effect<A, E, Self | R>
77
- : Type[k] extends (...args: [...infer Args]) => infer A
78
- ? (...args: Readonly<Args>) => Effect.Effect<A, never, Self>
79
- : Type[k] extends Effect.Effect<infer A, infer E, infer R> ? Effect.Effect<A, E, Self | R>
80
- : Effect.Effect<Type[k], never, Self>
81
- }
82
- : {}
66
+ /** Accessor for a service method that returns a plain value. Wraps via `useSync`. */
67
+ export const accessFn = <
68
+ Self extends object,
69
+ Shape extends Record<PropertyKey, any>,
70
+ K extends keyof Shape
71
+ >(
72
+ Tag: Opaque<Self, Shape>,
73
+ key: K
74
+ ): Shape[K] extends (...args: [...infer Args]) => infer A ? (...args: Readonly<Args>) => Effect.Effect<A, never, Self>
75
+ : never => ((...args: Array<any>) => Tag.useSync((s: any) => s[key](...args))) as any
83
76
 
84
- /**
85
- * Only use this in very specific cases where using dependencies directly is prefered, like inside command handlers.
86
- */
87
- export const proxify = <T extends object>(Tag: T) =>
88
- <Self, Shape>():
89
- & T
90
- & ServiceAcessorShape<Self, Shape> =>
91
- {
92
- const cache = new Map()
93
- const done = new Proxy(Tag, {
94
- get(_target: any, prop: any, _receiver) {
95
- if (prop === "use") {
96
- // @ts-expect-error abc
97
- return (body) => (Tag as any).use(body)
98
- }
99
- if (prop in Tag) {
100
- return (Tag as any)[prop]
101
- }
102
- if (cache.has(prop)) {
103
- return cache.get(prop)
104
- }
105
- const fn = (...args: Array<any>) => (Tag as any).use((s: any) => s[prop](...args))
106
- const cn = (Tag as any).use((s: any) => s[prop])
107
- // @effect-diagnostics effect/floatingEffect:off
108
- Object.assign(fn, cn)
109
- Object.setPrototypeOf(fn, Object.getPrototypeOf(cn))
110
- cache.set(prop, fn)
111
- return fn
112
- }
113
- })
114
- return done
115
- }
77
+ /** Accessor for a service method that returns an Effect. Delegates via `use`. */
78
+ export const accessEffectFn = <
79
+ Self extends object,
80
+ Shape extends Record<PropertyKey, any>,
81
+ K extends keyof Shape
82
+ >(
83
+ Tag: Opaque<Self, Shape>,
84
+ key: K
85
+ ): Shape[K] extends (...args: [...infer Args]) => Effect.Effect<infer A, infer E, infer R>
86
+ ? (...args: Readonly<Args>) => Effect.Effect<A, E, Self | R>
87
+ : never => ((...args: Array<any>) => Tag.use((s: any) => s[key](...args))) as any
88
+
89
+ /** Accessor for a service property (constant). Wraps via `useSync`. */
90
+ export const accessCn = <
91
+ Self extends object,
92
+ Shape extends Record<PropertyKey, any>,
93
+ K extends keyof Shape
94
+ >(
95
+ Tag: Opaque<Self, Shape>,
96
+ key: K
97
+ ): Effect.Effect<Shape[K], never, Self> => Tag.useSync((s) => s[key])
98
+
99
+ /** Accessor for a service property that is an Effect. Delegates via `use`. */
100
+ export const accessEffectCn = <
101
+ Self extends object,
102
+ Shape extends Record<PropertyKey, any>,
103
+ K extends keyof Shape
104
+ >(
105
+ Tag: Opaque<Self, Shape>,
106
+ key: K
107
+ ): Shape[K] extends Effect.Effect<infer A, infer E, infer R> ? Effect.Effect<A, E, Self | R>
108
+ : never => Tag.use((s: any) => s[key]) as any
116
109
 
117
- export const TypeId = "~ServiceMap.Opaque"
110
+ export const TypeId = "~Context.Opaque"
118
111
 
119
112
  // export function Opaque<const Key extends string>(key: Key) {
120
113
  // return <Identifier extends object, Shape extends object>() => {
@@ -179,7 +172,7 @@ export const Opaque: {
179
172
  >
180
173
  & { readonly make: Make }
181
174
  } = () => (id: string, options: any) => {
182
- const svc = ServiceMap.Service()(id, options) as any
175
+ const svc = CTX.Service()(id, options) as any
183
176
  return Object.assign(svc, {
184
177
  toLayer: (eff: Effect.Effect<any, any, any>) => {
185
178
  return Layer.effect(svc, eff)
package/src/Effect.ts CHANGED
@@ -2,13 +2,15 @@
2
2
  /* eslint-disable prefer-destructuring */
3
3
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
4
4
 
5
- import { Effect, Option, Ref, type ServiceMap } from "effect"
6
5
  import * as Def from "effect/Deferred"
7
- import * as Fiber from "effect/Fiber"
6
+ import * as Effect from "effect/Effect"
7
+ import * as Option from "effect/Option"
8
+ import * as Ref from "effect/Ref"
8
9
  import type { Scope } from "effect/Scope"
9
10
  import type { Semaphore } from "effect/Semaphore"
10
- import { curry } from "./Function.js"
11
- import { typedKeysOf } from "./utils.js"
11
+ import type * as Context from "./Context.ts"
12
+ import { curry } from "./Function.ts"
13
+ import { typedKeysOf } from "./utils.ts"
12
14
 
13
15
  export * from "effect/Effect"
14
16
  // v4: Effect interface not re-exported by `export *` due to local binding collision
@@ -111,15 +113,11 @@ export function modifyWithPermitWithEffect<A>(ref: Ref.Ref<A>, semaphore: Semaph
111
113
  )
112
114
  }
113
115
 
114
- export function joinAll<E, A>(fibers: Iterable<Fiber.Fiber<A, E>>): Effect.Effect<readonly A[], E> {
115
- return Fiber.joinAll(fibers) as any
116
- }
117
-
118
116
  type ServiceA<T> = T extends Effect.Effect<infer S, any, any> ? S
119
- : T extends ServiceMap.Service<any, infer S> ? S
117
+ : T extends Context.Service<any, infer S> ? S
120
118
  : never
121
119
  type ServiceR<T> = T extends Effect.Effect<any, any, infer R> ? R
122
- : T extends ServiceMap.Service<infer I, any> ? I
120
+ : T extends Context.Service<infer I, any> ? I
123
121
  : never
124
122
  type ServiceE<T> = T extends Effect.Effect<any, infer E, any> ? E : never
125
123
  // type Values<T> = T extends { [s: string]: infer S } ? ServiceA<S> : never
@@ -140,29 +138,29 @@ type ValuesE<T> = T extends { [s: string]: infer S } ? ServiceE<S> : never
140
138
  * const b = a({ str: "" }) // valid, but shouldn't be!
141
139
  * ```
142
140
  */
141
+ // eslint-disable-next-line import/namespace
143
142
  export interface EffectUnunified<R, E, A> extends Effect.Effect<R, E, A> {}
144
143
 
145
144
  export type LowerFirst<S extends PropertyKey> = S extends `${infer First}${infer Rest}` ? `${Lowercase<First>}${Rest}`
146
145
  : S
147
- export type LowerServices<T extends Record<string, ServiceMap.Service<any, any> | Effect.Effect<any, any, any>>> = {
146
+ export type LowerServices<T extends Record<string, Context.Service<any, any> | Effect.Effect<any, any, any>>> = {
148
147
  [key in keyof T as LowerFirst<key>]: ServiceA<T[key]>
149
148
  }
150
149
 
151
- export function allLower<T extends Record<string, ServiceMap.Service<any, any> | Effect.Effect<any, any, any>>>(
150
+ export function allLower<T extends Record<string, Context.Service<any, any> | Effect.Effect<any, any, any>>>(
152
151
  services: T
153
152
  ) {
154
153
  return Effect.all(
155
154
  typedKeysOf(services).reduce((prev, cur) => {
156
155
  const svc = services[cur]!
157
- prev[((cur as string)[0]!.toLowerCase() + (cur as string).slice(1)) as unknown as LowerFirst<typeof cur>] =
158
- "asEffect" in svc ? svc.asEffect() : svc
156
+ prev[((cur as string)[0]!.toLowerCase() + (cur as string).slice(1)) as unknown as LowerFirst<typeof cur>] = svc
159
157
  return prev
160
158
  }, {} as any),
161
159
  { concurrency: "inherit" }
162
160
  ) as any as Effect.Effect<LowerServices<T>, ValuesE<T>, ValuesR<T>>
163
161
  }
164
162
 
165
- export function allLowerWith<T extends Record<string, ServiceMap.Service<any, any> | Effect.Effect<any, any, any>>, A>(
163
+ export function allLowerWith<T extends Record<string, Context.Service<any, any> | Effect.Effect<any, any, any>>, A>(
166
164
  services: T,
167
165
  fn: (services: LowerServices<T>) => A
168
166
  ) {
@@ -170,7 +168,7 @@ export function allLowerWith<T extends Record<string, ServiceMap.Service<any, an
170
168
  }
171
169
 
172
170
  export function allLowerWithEffect<
173
- T extends Record<string, ServiceMap.Service<any, any> | Effect.Effect<any, any, any>>,
171
+ T extends Record<string, Context.Service<any, any> | Effect.Effect<any, any, any>>,
174
172
  R,
175
173
  E,
176
174
  A