effect-app 1.32.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (310) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/_cjs/Array.cjs +132 -0
  3. package/_cjs/Array.cjs.map +1 -0
  4. package/_cjs/Chunk.cjs +128 -0
  5. package/_cjs/Chunk.cjs.map +1 -0
  6. package/_cjs/Config/SecretURL.cjs +3 -3
  7. package/_cjs/Config/SecretURL.cjs.map +1 -1
  8. package/_cjs/Config/internal/configSecretURL.cjs +2 -2
  9. package/_cjs/Config/internal/configSecretURL.cjs.map +1 -1
  10. package/_cjs/Context.cjs +243 -0
  11. package/_cjs/Context.cjs.map +1 -0
  12. package/_cjs/Dictionary.cjs +522 -0
  13. package/_cjs/Dictionary.cjs.map +1 -0
  14. package/_cjs/Effect.cjs +202 -0
  15. package/_cjs/Effect.cjs.map +1 -0
  16. package/_cjs/Function.cjs +107 -0
  17. package/_cjs/Function.cjs.map +1 -0
  18. package/_cjs/NonEmptySet.cjs +26 -0
  19. package/_cjs/NonEmptySet.cjs.map +1 -0
  20. package/_cjs/NonEmptySetAspects.cjs +17 -0
  21. package/_cjs/NonEmptySetAspects.cjs.map +1 -0
  22. package/_cjs/NonEmptySetBase.cjs +82 -0
  23. package/_cjs/NonEmptySetBase.cjs.map +1 -0
  24. package/_cjs/Object.cjs +24 -0
  25. package/_cjs/Object.cjs.map +1 -0
  26. package/_cjs/Operations.cjs +1 -1
  27. package/_cjs/Option.cjs +88 -0
  28. package/_cjs/Option.cjs.map +1 -0
  29. package/_cjs/Prelude.cjs +51 -0
  30. package/_cjs/Prelude.cjs.map +1 -0
  31. package/_cjs/Prelude.code.cjs +51 -0
  32. package/_cjs/Prelude.code.cjs.map +1 -0
  33. package/_cjs/Pure.cjs +39 -36
  34. package/_cjs/Pure.cjs.map +1 -1
  35. package/_cjs/Schema/Class.cjs +61 -0
  36. package/_cjs/Schema/Class.cjs.map +1 -0
  37. package/_cjs/Schema/FastCheck.cjs +39 -0
  38. package/_cjs/Schema/FastCheck.cjs.map +1 -0
  39. package/_cjs/Schema/Methods.cjs +6 -0
  40. package/_cjs/Schema/Methods.cjs.map +1 -0
  41. package/_cjs/Schema/brand.cjs +17 -0
  42. package/_cjs/Schema/brand.cjs.map +1 -0
  43. package/_cjs/Schema/email.cjs +20 -0
  44. package/_cjs/Schema/email.cjs.map +1 -0
  45. package/_cjs/Schema/ext.cjs +174 -0
  46. package/_cjs/Schema/ext.cjs.map +1 -0
  47. package/_cjs/Schema/moreStrings.cjs +124 -0
  48. package/_cjs/Schema/moreStrings.cjs.map +1 -0
  49. package/_cjs/Schema/numbers.cjs +52 -0
  50. package/_cjs/Schema/numbers.cjs.map +1 -0
  51. package/_cjs/Schema/phoneNumber.cjs +22 -0
  52. package/_cjs/Schema/phoneNumber.cjs.map +1 -0
  53. package/_cjs/Schema/schema.cjs +15 -0
  54. package/_cjs/Schema/schema.cjs.map +1 -0
  55. package/_cjs/Schema/strings.cjs +32 -0
  56. package/_cjs/Schema/strings.cjs.map +1 -0
  57. package/_cjs/Schema.cjs +334 -0
  58. package/_cjs/Schema.cjs.map +1 -0
  59. package/_cjs/Set.cjs +567 -0
  60. package/_cjs/Set.cjs.map +1 -0
  61. package/_cjs/Struct.cjs +51 -0
  62. package/_cjs/Struct.cjs.map +1 -0
  63. package/_cjs/Tag.cjs +25 -0
  64. package/_cjs/Tag.cjs.map +1 -0
  65. package/_cjs/Unify.cjs +40 -0
  66. package/_cjs/Unify.cjs.map +1 -0
  67. package/_cjs/_ext/misc.cjs +16 -16
  68. package/_cjs/_ext/misc.cjs.map +1 -1
  69. package/_cjs/_ext/ord.ext.cjs +52 -0
  70. package/_cjs/_ext/ord.ext.cjs.map +1 -0
  71. package/_cjs/builtin.cjs +6 -0
  72. package/_cjs/builtin.cjs.map +1 -0
  73. package/_cjs/client/clientFor.cjs +5 -3
  74. package/_cjs/client/clientFor.cjs.map +1 -1
  75. package/_cjs/client/config.cjs +4 -4
  76. package/_cjs/client/config.cjs.map +1 -1
  77. package/_cjs/client/errors.cjs +9 -9
  78. package/_cjs/client/errors.cjs.map +1 -1
  79. package/_cjs/http/http-client.cjs +35 -0
  80. package/_cjs/http/http-client.cjs.map +1 -0
  81. package/_cjs/ids.cjs +5 -5
  82. package/_cjs/ids.cjs.map +1 -1
  83. package/_cjs/index.cjs +1 -1
  84. package/_cjs/lib.cjs +178 -9
  85. package/_cjs/lib.cjs.map +1 -1
  86. package/_cjs/logger.cjs +1 -1
  87. package/_cjs/transform.cjs +45 -0
  88. package/_cjs/transform.cjs.map +1 -0
  89. package/_cjs/utils/effectify.cjs +25 -0
  90. package/_cjs/utils/effectify.cjs.map +1 -0
  91. package/_cjs/utils/extend.cjs +17 -0
  92. package/_cjs/utils/extend.cjs.map +1 -0
  93. package/_cjs/utils/logger.cjs +23 -0
  94. package/_cjs/utils/logger.cjs.map +1 -0
  95. package/_cjs/utils.cjs +431 -4
  96. package/_cjs/utils.cjs.map +1 -1
  97. package/_cjs/validation/validators.cjs +32 -0
  98. package/_cjs/validation/validators.cjs.map +1 -0
  99. package/_cjs/validation.cjs +45 -0
  100. package/_cjs/validation.cjs.map +1 -0
  101. package/dist/Array.d.ts +64 -0
  102. package/dist/Array.d.ts.map +1 -0
  103. package/dist/Array.js +89 -0
  104. package/dist/Chunk.d.ts +68 -0
  105. package/dist/Chunk.d.ts.map +1 -0
  106. package/dist/Chunk.js +93 -0
  107. package/dist/Config/SecretURL.d.ts +3 -3
  108. package/dist/Config/SecretURL.d.ts.map +1 -1
  109. package/dist/Config/SecretURL.js +2 -2
  110. package/dist/Config/internal/configSecretURL.js +2 -2
  111. package/dist/Context.d.ts +55 -0
  112. package/dist/Context.d.ts.map +1 -0
  113. package/dist/Context.js +204 -0
  114. package/dist/Dictionary.d.ts +260 -0
  115. package/dist/Dictionary.d.ts.map +1 -0
  116. package/dist/Dictionary.js +448 -0
  117. package/dist/Effect.d.ts +115 -0
  118. package/dist/Effect.d.ts.map +1 -0
  119. package/dist/Effect.js +153 -0
  120. package/dist/Function.d.ts +72 -0
  121. package/dist/Function.d.ts.map +1 -0
  122. package/dist/Function.js +71 -0
  123. package/dist/Inputify.type.d.ts +1 -1
  124. package/dist/Inputify.type.d.ts.map +1 -1
  125. package/dist/NonEmptySet.d.ts +3 -0
  126. package/dist/NonEmptySet.d.ts.map +1 -0
  127. package/dist/NonEmptySet.js +3 -0
  128. package/dist/NonEmptySetAspects.d.ts +2 -0
  129. package/dist/NonEmptySetAspects.d.ts.map +1 -0
  130. package/dist/NonEmptySetAspects.js +2 -0
  131. package/dist/NonEmptySetBase.d.ts +39 -0
  132. package/dist/NonEmptySetBase.d.ts.map +1 -0
  133. package/dist/NonEmptySetBase.js +63 -0
  134. package/dist/Object.d.ts +7 -0
  135. package/dist/Object.d.ts.map +1 -0
  136. package/dist/Object.js +7 -0
  137. package/dist/Operations.d.ts +2 -2
  138. package/dist/Operations.js +1 -1
  139. package/dist/Option.d.ts +39 -0
  140. package/dist/Option.d.ts.map +1 -0
  141. package/dist/Option.js +55 -0
  142. package/dist/Prelude.code.d.ts +24 -0
  143. package/dist/Prelude.code.d.ts.map +1 -0
  144. package/dist/Prelude.code.js +23 -0
  145. package/dist/Prelude.d.ts +163 -0
  146. package/dist/Prelude.d.ts.map +1 -0
  147. package/dist/Prelude.js +23 -0
  148. package/dist/Pure.d.ts +13 -12
  149. package/dist/Pure.d.ts.map +1 -1
  150. package/dist/Pure.js +18 -17
  151. package/dist/Schema/Class.d.ts +45 -0
  152. package/dist/Schema/Class.d.ts.map +1 -0
  153. package/dist/Schema/Class.js +50 -0
  154. package/dist/Schema/FastCheck.d.ts +10 -0
  155. package/dist/Schema/FastCheck.d.ts.map +1 -0
  156. package/dist/Schema/FastCheck.js +12 -0
  157. package/dist/Schema/Methods.d.ts +6 -0
  158. package/dist/Schema/Methods.d.ts.map +1 -0
  159. package/dist/Schema/Methods.js +2 -0
  160. package/dist/Schema/brand.d.ts +35 -0
  161. package/dist/Schema/brand.d.ts.map +1 -0
  162. package/dist/Schema/brand.js +7 -0
  163. package/dist/Schema/email.d.ts +9 -0
  164. package/dist/Schema/email.d.ts.map +1 -0
  165. package/dist/Schema/email.js +12 -0
  166. package/dist/Schema/ext.d.ts +89 -0
  167. package/dist/Schema/ext.d.ts.map +1 -0
  168. package/dist/Schema/ext.js +111 -0
  169. package/dist/Schema/moreStrings.d.ts +109 -0
  170. package/dist/Schema/moreStrings.d.ts.map +1 -0
  171. package/dist/Schema/moreStrings.js +108 -0
  172. package/dist/Schema/numbers.d.ts +46 -0
  173. package/dist/Schema/numbers.d.ts.map +1 -0
  174. package/dist/Schema/numbers.js +28 -0
  175. package/dist/Schema/phoneNumber.d.ts +9 -0
  176. package/dist/Schema/phoneNumber.d.ts.map +1 -0
  177. package/dist/Schema/phoneNumber.js +14 -0
  178. package/dist/Schema/schema.d.ts +6 -0
  179. package/dist/Schema/schema.d.ts.map +1 -0
  180. package/dist/Schema/schema.js +5 -0
  181. package/dist/Schema/strings.d.ts +19 -0
  182. package/dist/Schema/strings.d.ts.map +1 -0
  183. package/dist/Schema/strings.js +32 -0
  184. package/dist/{schema.d.ts → Schema.d.ts} +25 -9
  185. package/dist/Schema.d.ts.map +1 -0
  186. package/dist/Schema.js +89 -0
  187. package/dist/Set.d.ts +221 -0
  188. package/dist/Set.d.ts.map +1 -0
  189. package/dist/Set.js +516 -0
  190. package/dist/Struct.d.ts +44 -0
  191. package/dist/Struct.d.ts.map +1 -0
  192. package/dist/Struct.js +29 -0
  193. package/dist/Tag.d.ts +9 -0
  194. package/dist/Tag.d.ts.map +1 -0
  195. package/dist/Tag.js +18 -0
  196. package/dist/Unify.d.ts +43 -0
  197. package/dist/Unify.d.ts.map +1 -0
  198. package/dist/Unify.js +31 -0
  199. package/dist/Widen.type.d.ts +1 -1
  200. package/dist/Widen.type.d.ts.map +1 -1
  201. package/dist/_ext/misc.d.ts +11 -11
  202. package/dist/_ext/misc.d.ts.map +1 -1
  203. package/dist/_ext/misc.js +8 -8
  204. package/dist/_ext/ord.ext.d.ts +23 -0
  205. package/dist/_ext/ord.ext.d.ts.map +1 -0
  206. package/dist/_ext/ord.ext.js +44 -0
  207. package/dist/builtin.d.ts +51 -0
  208. package/dist/builtin.d.ts.map +1 -0
  209. package/dist/builtin.js +2 -0
  210. package/dist/client/clientFor.d.ts +1 -1
  211. package/dist/client/clientFor.d.ts.map +1 -1
  212. package/dist/client/clientFor.js +2 -2
  213. package/dist/client/config.d.ts +1 -1
  214. package/dist/client/config.d.ts.map +1 -1
  215. package/dist/client/config.js +2 -2
  216. package/dist/client/errors.js +1 -1
  217. package/dist/http/http-client.d.ts +43 -0
  218. package/dist/http/http-client.d.ts.map +1 -0
  219. package/dist/http/http-client.js +30 -0
  220. package/dist/ids.d.ts +3 -3
  221. package/dist/ids.d.ts.map +1 -1
  222. package/dist/ids.js +2 -2
  223. package/dist/index.d.ts +1 -1
  224. package/dist/index.d.ts.map +1 -1
  225. package/dist/index.js +2 -2
  226. package/dist/lib.d.ts +22 -4
  227. package/dist/lib.d.ts.map +1 -1
  228. package/dist/lib.js +20 -5
  229. package/dist/logger.d.ts.map +1 -1
  230. package/dist/logger.js +2 -2
  231. package/dist/transform.d.ts +12 -0
  232. package/dist/transform.d.ts.map +1 -0
  233. package/dist/transform.js +39 -0
  234. package/dist/utils/effectify.d.ts +210 -0
  235. package/dist/utils/effectify.d.ts.map +1 -0
  236. package/dist/utils/effectify.js +19 -0
  237. package/dist/utils/extend.d.ts +3 -0
  238. package/dist/utils/extend.d.ts.map +1 -0
  239. package/dist/utils/extend.js +9 -0
  240. package/dist/utils/logger.d.ts +12 -0
  241. package/dist/utils/logger.d.ts.map +1 -0
  242. package/dist/utils/logger.js +15 -0
  243. package/dist/utils.d.ts +192 -1
  244. package/dist/utils.d.ts.map +1 -1
  245. package/dist/utils.js +332 -2
  246. package/dist/validation/validators.d.ts +11 -0
  247. package/dist/validation/validators.d.ts.map +1 -0
  248. package/dist/validation/validators.js +26 -0
  249. package/dist/validation.d.ts +13 -0
  250. package/dist/validation.d.ts.map +1 -0
  251. package/dist/validation.js +14 -0
  252. package/package.json +360 -9
  253. package/src/Array.ts +127 -0
  254. package/src/Chunk.ts +112 -0
  255. package/src/Config/SecretURL.ts +3 -3
  256. package/src/Config/internal/configSecretURL.ts +1 -1
  257. package/src/Context.ts +293 -0
  258. package/src/Dictionary.ts +669 -0
  259. package/src/Effect.ts +265 -0
  260. package/src/Function.ts +175 -0
  261. package/src/Inputify.type.ts +1 -1
  262. package/src/NonEmptySet.ts +3 -0
  263. package/src/NonEmptySetAspects.ts +1 -0
  264. package/src/NonEmptySetBase.ts +109 -0
  265. package/src/Object.ts +19 -0
  266. package/src/Operations.ts +1 -1
  267. package/src/Option.ts +82 -0
  268. package/src/Prelude.code.ts +26 -0
  269. package/src/Prelude.ts +220 -0
  270. package/src/Pure.ts +37 -30
  271. package/src/Schema/Class.ts +225 -0
  272. package/src/Schema/FastCheck.ts +23 -0
  273. package/src/Schema/Methods.ts +8 -0
  274. package/src/Schema/brand.ts +50 -0
  275. package/src/Schema/email.ts +22 -0
  276. package/src/Schema/ext.ts +273 -0
  277. package/src/Schema/moreStrings.ts +260 -0
  278. package/src/Schema/numbers.ts +83 -0
  279. package/src/Schema/phoneNumber.ts +24 -0
  280. package/src/Schema/schema.ts +6 -0
  281. package/src/Schema/strings.ts +60 -0
  282. package/src/{schema.ts → Schema.ts} +52 -20
  283. package/src/Set.ts +674 -0
  284. package/src/Struct.ts +54 -0
  285. package/src/Tag.ts +20 -0
  286. package/src/Unify.ts +56 -0
  287. package/src/Widen.type.ts +1 -1
  288. package/src/_ext/misc.ts +22 -22
  289. package/src/_ext/ord.ext.ts +49 -0
  290. package/src/builtin.ts +64 -0
  291. package/src/client/clientFor.ts +1 -1
  292. package/src/client/config.ts +1 -1
  293. package/src/client/errors.ts +1 -1
  294. package/src/http/http-client.ts +73 -0
  295. package/src/ids.ts +3 -3
  296. package/src/index.ts +1 -1
  297. package/src/lib.ts +88 -4
  298. package/src/logger.ts +1 -1
  299. package/src/transform.ts +80 -0
  300. package/src/utils/effectify.ts +259 -0
  301. package/src/utils/extend.ts +9 -0
  302. package/src/utils/logger.ts +24 -0
  303. package/src/utils.ts +805 -1
  304. package/src/validation/validators.ts +32 -0
  305. package/src/validation.ts +18 -0
  306. package/tsconfig.src.json +1 -5
  307. package/_cjs/schema.cjs +0 -110
  308. package/_cjs/schema.cjs.map +0 -1
  309. package/dist/schema.d.ts.map +0 -1
  310. package/dist/schema.js +0 -73
package/dist/Array.js ADDED
@@ -0,0 +1,89 @@
1
+ import { Chunk, Effect } from "effect";
2
+ import * as Array from "effect/Array";
3
+ import * as T from "effect/Effect";
4
+ import { dual, identity, tuple } from "./Function.js";
5
+ import * as Option from "./Option.js";
6
+ /**
7
+ * @tsplus getter ReadonlyArray toNonEmpty
8
+ * @tsplus getter Array toNonEmpty
9
+ * @tsplus getter effect/data/ReadonlyArray toNonEmpty
10
+ */
11
+ export const toNonEmptyArray = (a) => a.length ? Option.some(a) : Option.none();
12
+ export const isArray = Array.isArray;
13
+ /**
14
+ * @tsplus static effect/data/ReadonlyArray/NonEmptyArray.Ops fromArray
15
+ */
16
+ export function NEAFromArray(ar) {
17
+ return ar.length ? Option.some(ar) : Option.none();
18
+ }
19
+ /**
20
+ * @tsplus static effect/data/ReadonlyArray/NonEmptyArray.Ops fromArray
21
+ */
22
+ export function NEROArrayFromArray(ar) {
23
+ return ar.length ? Option.some(ar) : Option.none();
24
+ }
25
+ /**
26
+ * @tsplus pipeable Array sortByO
27
+ * @tsplus pipeable ReadonlyArray sortByO
28
+ * @tsplus pipeable NonEmptyArray sortByO
29
+ * @tsplus pipeable NonEmptyArrayReadonlyArray sortByO
30
+ */
31
+ export function sortByO(ords) {
32
+ return Option.match(ords, { onNone: () => identity, onSome: (_) => Array.sortBy(..._) });
33
+ }
34
+ /**
35
+ * @tsplus fluent ReadonlyArray groupByT
36
+ * @tsplus fluent Array groupByT
37
+ * @tsplus fluent NonEmptyArray groupByT
38
+ * @tsplus fluent NonEmptyArrayReadonlyArray groupByT
39
+ */
40
+ export const groupByT = dual(2, (as, f) => {
41
+ const r = {};
42
+ for (const a of as) {
43
+ const k = f(a);
44
+ // eslint-disable-next-line no-prototype-builtins
45
+ if (r.hasOwnProperty(k)) {
46
+ r[k].push(a);
47
+ }
48
+ else {
49
+ r[k] = [a];
50
+ }
51
+ }
52
+ return Object.entries(r).map(([k, items]) => tuple(k, items));
53
+ });
54
+ export function randomElement(a) {
55
+ return a[Math.floor(Math.random() * a.length)];
56
+ }
57
+ /**
58
+ * @tsplus fluent ReadonlyArray filterWith
59
+ */
60
+ export function filterWith(self, predicates) {
61
+ return self.filter((_) => predicates.every((f) => f(_)));
62
+ }
63
+ /**
64
+ * Split the `items` array into multiple, smaller chunks of the given `size`.
65
+ */
66
+ export function* _chunk_(items_, size) {
67
+ const items = [...items_];
68
+ while (items.length) {
69
+ yield items.splice(0, size);
70
+ }
71
+ }
72
+ /**
73
+ * Split the `items` array into multiple, smaller chunks of the given `size`.
74
+ * @tsplus fluent Array chunk
75
+ * @tsplus fluent ReadonlyArray chunk
76
+ * @tsplus fluent effect/data/Chunk chunk
77
+ * @tsplus fluent Iterable chunk
78
+ */
79
+ export function chunk_(items_, size) {
80
+ return Chunk.fromIterable(_chunk_(items_, size));
81
+ }
82
+ /**
83
+ * @tsplus fluent effect/data/ReadonlyArray/NonEmptyReadonlyArray forEachEffect
84
+ */
85
+ export function forEachEffectNA(as, f) {
86
+ return Effect.map(T.forEach(as, f), (_) => Option.getOrNull(toNonEmptyArray(_)));
87
+ }
88
+ export * from "effect/Array";
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQXJyYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFFdEMsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUE7QUFDckMsT0FBTyxLQUFLLENBQUMsTUFBTSxlQUFlLENBQUE7QUFFbEMsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3JELE9BQU8sS0FBSyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBRXJDOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBSSxDQUFtQixFQUEyQyxFQUFFLENBQ2pHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBNkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUE7QUFFdkUsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUloQixLQUFLLENBQUMsT0FBTyxDQUFBO0FBRWpCOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBSSxFQUFZO0lBQzFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQTtBQUN4RSxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUksRUFBb0I7SUFDeEQsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQThCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFBO0FBQ2hGLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0s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
@@ -0,0 +1,68 @@
1
+ import { type Predicate, type Refinement } from "./Function.js";
2
+ import * as Option from "./Option.js";
3
+ import * as Chunk from "effect/Chunk";
4
+ import type { Equivalence } from "./index.js";
5
+ export * from "effect/Chunk";
6
+ /**
7
+ * @tsplus getter Array toChunk
8
+ * @tsplus getter ReadonlyArray toChunk
9
+ * @tsplus getter Iterable toChunk
10
+ * @tsplus getter Iterator toChunk
11
+ * @tsplus getter Generator toChunk
12
+ */
13
+ export declare const fromIterable: <A>(self: Iterable<A>) => Chunk.Chunk<A>;
14
+ /**
15
+ * @tsplus fluent effect/data/Chunk groupByT
16
+ */
17
+ export declare function groupByTChunk_<A, Key extends PropertyKey>(c: Chunk.Chunk<A>, f: (a: A) => Key): Chunk.Chunk<readonly [Key, readonly [A, ...A[]]]>;
18
+ /**
19
+ * Returns the first element that satisfies the predicate.
20
+ *
21
+ * @tsplus static effect/data/Chunk.Ops findFirstMap
22
+ * @tsplus pipeable effect/data/Chunk findFirstMap
23
+ */
24
+ export declare function findFirstMap<A, B>(f: (a: A) => Option.Option<B>): (as: Chunk.Chunk<A>) => Option.None<never> | Option.Some<B>;
25
+ /**
26
+ * @tsplus getter effect/data/Chunk toArray
27
+ */
28
+ export declare function toArray<T>(c: Chunk.Chunk<T>): T[];
29
+ /**
30
+ * Remove duplicates from an array, keeping the first occurrence of an element.
31
+ *
32
+ * @tsplus static effect/data/Chunk.Ops uniq
33
+ * @tsplus pipeable effect/data/Chunk uniq
34
+ */
35
+ export declare function uniq<A>(E: Equivalence<A>): (self: Chunk.Chunk<A>) => Chunk.Chunk<A>;
36
+ /**
37
+ * Test if a value is a member of an array. Takes a `Equivalence<A>` as a single
38
+ * argument which returns the function to use to search for a value of type `A`
39
+ * in an array of type `Chunk<A>`.
40
+ *
41
+ * @tsplus static effect/data/Chunk.Ops elem2
42
+ * @tsplus pipeable effect/data/Chunk elem2
43
+ */
44
+ export declare function elem<A>(E: Equivalence<A>, value: A): (self: Chunk.Chunk<A>) => boolean;
45
+ /**
46
+ * @tsplus pipeable effect/data/Chunk partition
47
+ */
48
+ export declare const ChunkPartition: {
49
+ <A, B extends A>(refinement: (a: import("effect/Types").NoInfer<A>, i: number) => a is B): (self: Chunk.Chunk<A>) => [excluded: Chunk.Chunk<Exclude<A, B>>, satisfying: Chunk.Chunk<B>];
50
+ <A>(predicate: (a: import("effect/Types").NoInfer<A>, i: number) => boolean): (self: Chunk.Chunk<A>) => [excluded: Chunk.Chunk<A>, satisfying: Chunk.Chunk<A>];
51
+ <A, B extends A>(self: Chunk.Chunk<A>, refinement: (a: A, i: number) => a is B): [excluded: Chunk.Chunk<Exclude<A, B>>, satisfying: Chunk.Chunk<B>];
52
+ <A>(self: Chunk.Chunk<A>, predicate: (a: A, i: number) => boolean): [excluded: Chunk.Chunk<A>, satisfying: Chunk.Chunk<A>];
53
+ };
54
+ /**
55
+ * @tsplus fluent effect/data/Chunk findFirst
56
+ */
57
+ export declare const findFirstSimple: {
58
+ <A, B extends A>(self: Chunk.Chunk<A>, refinement: Refinement<A, B>): Option.Option<B>;
59
+ <A>(self: Chunk.Chunk<A>, predicate: Predicate<A>): Option.Option<A>;
60
+ };
61
+ /**
62
+ * @tsplus fluent effect/data/Chunk findLast
63
+ */
64
+ export declare const findLastSimple: {
65
+ <A, B extends A>(self: Chunk.Chunk<A>, refinement: Refinement<A, B>): Option.Option<B>;
66
+ <A>(self: Chunk.Chunk<A>, predicate: Predicate<A>): Option.Option<A>;
67
+ };
68
+ //# sourceMappingURL=Chunk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Chunk.d.ts","sourceRoot":"","sources":["../src/Chunk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAA;AACrE,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,cAAc,cAAc,CAAA;AAE5B;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,0CAAqB,CAAA;AAE9C;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG,SAAS,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,qDAE7F;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAC/B,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAEjB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,yCAW3B;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAEjD;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,UACzB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAU9C;AAED;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,UACnC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAG,OAAO,CAQvC;AAED;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;CAAkB,CAAA;AAE7C;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE;IAC5B,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACtF,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;CACnD,CAAA;AAEnB;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE;IAC3B,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACtF,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;CACpD,CAAA"}
package/dist/Chunk.js ADDED
@@ -0,0 +1,93 @@
1
+ import { pipe } from "./Function.js";
2
+ import * as Option from "./Option.js";
3
+ import * as Chunk from "effect/Chunk";
4
+ import * as Array from "./Array.js";
5
+ export * from "effect/Chunk";
6
+ /**
7
+ * @tsplus getter Array toChunk
8
+ * @tsplus getter ReadonlyArray toChunk
9
+ * @tsplus getter Iterable toChunk
10
+ * @tsplus getter Iterator toChunk
11
+ * @tsplus getter Generator toChunk
12
+ */
13
+ export const fromIterable = Chunk.fromIterable;
14
+ /**
15
+ * @tsplus fluent effect/data/Chunk groupByT
16
+ */
17
+ export function groupByTChunk_(c, f) {
18
+ return pipe(Chunk.toReadonlyArray(c), Array.groupByT(f), Chunk.fromIterable);
19
+ }
20
+ /**
21
+ * Returns the first element that satisfies the predicate.
22
+ *
23
+ * @tsplus static effect/data/Chunk.Ops findFirstMap
24
+ * @tsplus pipeable effect/data/Chunk findFirstMap
25
+ */
26
+ export function findFirstMap(f) {
27
+ return (as) => {
28
+ const ass = Chunk.toReadonlyArray(as);
29
+ const len = ass.length;
30
+ for (let i = 0; i < len; i++) {
31
+ const v = f(ass[i]);
32
+ if (Option.isSome(v)) {
33
+ return v;
34
+ }
35
+ }
36
+ return Option.none();
37
+ };
38
+ }
39
+ /**
40
+ * @tsplus getter effect/data/Chunk toArray
41
+ */
42
+ export function toArray(c) {
43
+ return Chunk.toReadonlyArray(c);
44
+ }
45
+ /**
46
+ * Remove duplicates from an array, keeping the first occurrence of an element.
47
+ *
48
+ * @tsplus static effect/data/Chunk.Ops uniq
49
+ * @tsplus pipeable effect/data/Chunk uniq
50
+ */
51
+ export function uniq(E) {
52
+ return (self) => {
53
+ let out = Chunk.fromIterable([]);
54
+ for (let i = 0; i < self.length; i++) {
55
+ const a = Chunk.unsafeGet(self, i);
56
+ if (!elem(E, a)(out)) {
57
+ out = Chunk.append(out, a);
58
+ }
59
+ }
60
+ return self.length === out.length ? self : out;
61
+ };
62
+ }
63
+ /**
64
+ * Test if a value is a member of an array. Takes a `Equivalence<A>` as a single
65
+ * argument which returns the function to use to search for a value of type `A`
66
+ * in an array of type `Chunk<A>`.
67
+ *
68
+ * @tsplus static effect/data/Chunk.Ops elem2
69
+ * @tsplus pipeable effect/data/Chunk elem2
70
+ */
71
+ export function elem(E, value) {
72
+ return (self) => {
73
+ for (let i = 0; i < self.length; i++) {
74
+ if (E(Chunk.unsafeGet(self, i), value)) {
75
+ return true;
76
+ }
77
+ }
78
+ return false;
79
+ };
80
+ }
81
+ /**
82
+ * @tsplus pipeable effect/data/Chunk partition
83
+ */
84
+ export const ChunkPartition = Chunk.partition;
85
+ /**
86
+ * @tsplus fluent effect/data/Chunk findFirst
87
+ */
88
+ export const findFirstSimple = Chunk.findFirst;
89
+ /**
90
+ * @tsplus fluent effect/data/Chunk findLast
91
+ */
92
+ export const findLastSimple = Chunk.findLast;
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2h1bmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQ2h1bmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBbUMsTUFBTSxlQUFlLENBQUE7QUFDckUsT0FBTyxLQUFLLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFFckMsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUE7QUFDckMsT0FBTyxLQUFLLEtBQUssTUFBTSxZQUFZLENBQUE7QUFHbkMsY0FBYyxjQUFjLENBQUE7QUFFNUI7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUE7QUFFOUM7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUE2QixDQUFpQixFQUFFLENBQWdCO0lBQzVGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUE7QUFDOUUsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FDMUIsQ0FBNkI7SUFFN0IsT0FBTyxDQUFDLEVBQWtCLEVBQUUsRUFBRTtRQUM1QixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ3JDLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7UUFDdEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzdCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFFLENBQUMsQ0FBQTtZQUNwQixJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDckIsT0FBTyxDQUFDLENBQUE7WUFDVixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLElBQUksRUFBRSxDQUFBO0lBQ3RCLENBQUMsQ0FBQTtBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxPQUFPLENBQUksQ0FBaUI7SUFDMUMsT0FBTyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBUSxDQUFBO0FBQ3hDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxJQUFJLENBQUksQ0FBaUI7SUFDdkMsT0FBTyxDQUFDLElBQW9CLEVBQWtCLEVBQUU7UUFDOUMsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFTLENBQUMsQ0FBQTtRQUN2QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JCLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUM1QixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtJQUNoRCxDQUFDLENBQUE7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxJQUFJLENBQUksQ0FBaUIsRUFBRSxLQUFRO0lBQ2pELE9BQU8sQ0FBQyxJQUFvQixFQUFXLEVBQUU7UUFDdkMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN2QyxPQUFPLElBQUksQ0FBQTtZQUNiLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDLENBQUE7QUFDSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQTtBQUU3Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FHeEIsS0FBSyxDQUFDLFNBQVMsQ0FBQTtBQUVuQjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FHdkIsS0FBSyxDQUFDLFFBQVEsQ0FBQSJ9
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
- import type { Equal, Redacted } from "@effect-app/core";
5
- import { Config } from "@effect-app/core";
4
+ import type { Equal, Redacted } from "effect";
5
+ import { Config } from "effect";
6
6
  import type * as Chunk from "effect/Chunk";
7
7
  import type { SecretTypeId } from "effect/Secret";
8
8
  /**
@@ -73,5 +73,5 @@ export declare const unsafeWipe: (self: SecretURL) => void;
73
73
  /**
74
74
  * @tsplus static effect/io/Config.Ops secretURL
75
75
  */
76
- export declare const secretURL: (name?: string) => Config<SecretURL>;
76
+ export declare const secretURL: (name?: string) => Config.Config<SecretURL>;
77
77
  //# sourceMappingURL=SecretURL.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SecretURL.d.ts","sourceRoot":"","sources":["../../src/Config/SecretURL.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAE1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAejD;;;;GAIG;AACH,MAAM,WAAW,SAAU,SAAQ,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK;IAChF,gBAAgB;IAChB,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;CAAG;AAEhC,eAAO,MAAM,SAAS,EAAE,YAAiB,CAAA;AAEzC;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;IACjC;;;;OAIG;IACH,UAAiB,KAAK;QACpB,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,YAAY,CAAA;KACtC;CACF;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,IAAI,SAAgC,CAAA;AAE/E;;;;GAIG;AACH,eAAO,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,SAAyB,CAAA;AAEtE;;;;GAIG;AACH,eAAO,MAAM,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,SAA8B,CAAA;AAEtF;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAA+B,CAAA;AAE1E;;;;GAIG;AACH,eAAO,MAAM,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,MAAuB,CAAA;AAEhE;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAA0B,CAAA;AAExE;;GAEG;AACH,eAAO,MAAM,SAAS,UAAW,MAAM,KAAG,MAAM,CAAC,SAAS,CAMzD,CAAA"}
1
+ {"version":3,"file":"SecretURL.d.ts","sourceRoot":"","sources":["../../src/Config/SecretURL.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAE1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAejD;;;;GAIG;AACH,MAAM,WAAW,SAAU,SAAQ,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK;IAChF,gBAAgB;IAChB,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;CAAG;AAEhC,eAAO,MAAM,SAAS,EAAE,YAAiB,CAAA;AAEzC;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;IACjC;;;;OAIG;IACH,UAAiB,KAAK;QACpB,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,YAAY,CAAA;KACtC;CACF;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,IAAI,SAAgC,CAAA;AAE/E;;;;GAIG;AACH,eAAO,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,SAAyB,CAAA;AAEtE;;;;GAIG;AACH,eAAO,MAAM,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,SAA8B,CAAA;AAEtF;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAA+B,CAAA;AAE1E;;;;GAIG;AACH,eAAO,MAAM,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,MAAuB,CAAA;AAEhE;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAA0B,CAAA;AAExE;;GAEG;AACH,eAAO,MAAM,SAAS,UAAW,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAMhE,CAAA"}
@@ -1,4 +1,4 @@
1
- import { Config } from "@effect-app/core";
1
+ import { Config } from "effect";
2
2
  import * as Either from "effect/Either";
3
3
  import * as internal from "./internal/configSecretURL.js";
4
4
  export const SecretURL = {};
@@ -46,4 +46,4 @@ export const secretURL = (name) => {
46
46
  const config = Config.primitive("a secret property", (text) => Either.right(fromString(text)));
47
47
  return name === undefined ? config : Config.nested(config, name);
48
48
  };
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VjcmV0VVJMLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0NvbmZpZy9TZWNyZXRVUkwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRXpDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBRXZDLE9BQU8sS0FBSyxRQUFRLE1BQU0sK0JBQStCLENBQUE7QUE2QnpELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBaUIsRUFBRSxDQUFBO0FBZ0J6Qzs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBbUMsUUFBUSxDQUFDLFdBQVcsQ0FBQTtBQUUvRTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUF3QyxRQUFRLENBQUMsSUFBSSxDQUFBO0FBRXRFOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQThDLFFBQVEsQ0FBQyxTQUFTLENBQUE7QUFFdEY7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBZ0MsUUFBUSxDQUFDLFVBQVUsQ0FBQTtBQUUxRTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFnQyxRQUFRLENBQUMsS0FBSyxDQUFBO0FBRWhFOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQThCLFFBQVEsQ0FBQyxVQUFVLENBQUE7QUFFeEU7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFhLEVBQXFCLEVBQUU7SUFDNUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FDN0IsbUJBQW1CLEVBQ25CLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUN6QyxDQUFBO0lBQ0QsT0FBTyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFBO0FBQ2xFLENBQUMsQ0FBQSJ9
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VjcmV0VVJMLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0NvbmZpZy9TZWNyZXRVUkwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUUvQixPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUV2QyxPQUFPLEtBQUssUUFBUSxNQUFNLCtCQUErQixDQUFBO0FBNkJ6RCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQWlCLEVBQUUsQ0FBQTtBQWdCekM7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQW1DLFFBQVEsQ0FBQyxXQUFXLENBQUE7QUFFL0U7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBd0MsUUFBUSxDQUFDLElBQUksQ0FBQTtBQUV0RTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUE4QyxRQUFRLENBQUMsU0FBUyxDQUFBO0FBRXRGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQWdDLFFBQVEsQ0FBQyxVQUFVLENBQUE7QUFFMUU7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBZ0MsUUFBUSxDQUFDLEtBQUssQ0FBQTtBQUVoRTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUE4QixRQUFRLENBQUMsVUFBVSxDQUFBO0FBRXhFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBYSxFQUE0QixFQUFFO0lBQ25FLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQzdCLG1CQUFtQixFQUNuQixDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDekMsQ0FBQTtJQUNELE9BQU8sSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQTtBQUNsRSxDQUFDLENBQUEifQ==
@@ -1,4 +1,4 @@
1
- import { Redacted } from "@effect-app/core";
1
+ import { Redacted } from "effect";
2
2
  import * as Chunk from "effect/Chunk";
3
3
  import { SecretTypeId } from "effect/Secret";
4
4
  /** @internal */
@@ -58,4 +58,4 @@ export const unsafeWipe = (self) => {
58
58
  self.raw[i] = 0;
59
59
  }
60
60
  };
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnU2VjcmV0VVJMLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0NvbmZpZy9pbnRlcm5hbC9jb25maWdTZWNyZXRVUkwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHNUMsZ0JBQWdCO0FBQ2hCLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQVUsRUFBNEIsRUFBRTtJQUNsRSxPQUFPLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLFlBQVksSUFBSSxDQUFDLENBQUE7QUFDaEUsQ0FBQyxDQUFBO0FBRUQsZ0JBQWdCO0FBQ2hCLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLEtBQW9CLEVBQXVCLEVBQUU7SUFDaEUsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FDMUIsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3RFLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLFNBQWdCLEVBQVcsQ0FDakUsQ0FBQTtJQUNELElBQUksUUFBUSxHQUFHLFNBQVMsQ0FBQTtJQUN4QixJQUFJLENBQUM7UUFDSCxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxD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
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnU2VjcmV0VVJMLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0NvbmZpZy9pbnRlcm5hbC9jb25maWdTZWNyZXRVUkwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUNqQyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRzVDLGdCQUFnQjtBQUNoQixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFVLEVBQTRCLEVBQUU7SUFDbEUsT0FBTyxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxZQUFZLElBQUksQ0FBQyxDQUFBO0FBQ2hFLENBQUMsQ0FBQTtBQUVELGdCQUFnQjtBQUNoQixNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFvQixFQUF1QixFQUFFO0lBQ2hFLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQzFCLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUN0RSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFnQixFQUFXLENBQ2pFLENBQUE7SUFDRCxJQUFJLFFBQVEsR0FBRyxTQUFTLENBQUE7SUFDeEIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FB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
@@ -0,0 +1,55 @@
1
+ /**
2
+ * We're doing the long way around here with assignTag, TagBase & TagBaseTagged,
3
+ * because there's a typescript compiler issue where it will complain about Equal.symbol, and Hash.symbol not being accessible.
4
+ * https://github.com/microsoft/TypeScript/issues/52644
5
+ */
6
+ import type { Scope } from "effect";
7
+ import { Effect, Layer } from "effect";
8
+ import * as Context from "effect/Context";
9
+ export * from "effect/Context";
10
+ export declare const ServiceTag: unique symbol;
11
+ export type ServiceTag = typeof ServiceTag;
12
+ export declare abstract class PhantomTypeParameter<Identifier extends keyof any, InstantiatedType> {
13
+ protected abstract readonly [ServiceTag]: {
14
+ readonly [NameP in Identifier]: (_: InstantiatedType) => InstantiatedType;
15
+ };
16
+ }
17
+ export type ServiceShape<T extends Context.TagClassShape<any, any>> = Omit<T, keyof Context.TagClassShape<any, any>>;
18
+ /**
19
+ * @tsplus type ServiceTagged
20
+ */
21
+ export declare abstract class ServiceTagged<ServiceKey> extends PhantomTypeParameter<string, ServiceKey> {
22
+ }
23
+ /**
24
+ * @tsplus static ServiceTagged make
25
+ */
26
+ export declare function makeService<T extends ServiceTagged<any>>(_: Omit<T, ServiceTag>): T;
27
+ export declare function assignTag<Id, Service = Id>(key?: string, creationError?: Error): <S extends object>(cls: S) => S & Context.Tag<Id, Service>;
28
+ export type ServiceAcessorShape<Self, Type> = (Type extends Record<PropertyKey, any> ? {
29
+ [k in keyof Type as Type[k] extends ((...args: [...infer Args]) => infer Ret) ? ((...args: Readonly<Args>) => Ret) extends Type[k] ? k : never : k]: Type[k] extends (...args: [...infer Args]) => Effect.Effect<infer A, infer E, infer R> ? (...args: Readonly<Args>) => Effect.Effect<A, E, Self | R> : Type[k] extends (...args: [...infer Args]) => infer A ? (...args: Readonly<Args>) => Effect.Effect<A, never, Self> : Type[k] extends Effect.Effect<infer A, infer E, infer R> ? Effect.Effect<A, E, Self | R> : Effect.Effect<Type[k], never, Self>;
30
+ } : {}) & {
31
+ use: <X>(body: (_: Type) => X) => X extends Effect.Effect<infer A, infer E, infer R> ? Effect.Effect<A, E, R | Self> : Effect.Effect<X, never, Self>;
32
+ };
33
+ export declare const proxify: <T extends object>(Tag: T) => <Self, Shape>() => T & ServiceAcessorShape<Self, Shape>;
34
+ export declare function TagId<const Key extends string>(key: Key): <Id, ServiceImpl>() => (abstract new (service: ServiceImpl) => Readonly<ServiceImpl> & Context.TagClassShape<Key, ServiceImpl>) & {
35
+ toLayer: <E, R>(eff: Effect.Effect<Omit<Id, keyof Context.TagClassShape<any, any>>, E, R>) => Layer.Layer<Id, E, R>;
36
+ toLayerScoped: <E, R_1>(eff: Effect.Effect<Omit<Id, keyof Context.TagClassShape<any, any>>, E, R_1>) => Layer.Layer<Id, E, Exclude<R_1, Scope.Scope>>;
37
+ of: (service: Omit<Id, keyof Context.TagClassShape<any, any>>) => Id;
38
+ } & Context.Tag<Id, Id> & (ServiceImpl extends Record<PropertyKey, any> ? { [k in keyof ServiceImpl as ServiceImpl[k] extends (...args: infer Args) => infer Ret ? ((...args: Readonly<Args>) => Ret) extends ServiceImpl[k] ? k : never : k]: ServiceImpl[k] extends (...args: infer Args) => Effect.Effect<infer A, infer E, infer R_2> ? (...args: Readonly<Args>) => Effect.Effect<A, E, R_2 | Id> : ServiceImpl[k] extends (...args: infer Args) => infer A ? (...args: Readonly<Args>) => Effect.Effect<A, never, Id> : ServiceImpl[k] extends Effect.Effect<infer A, infer E, infer R_2> ? Effect.Effect<A, E, R_2 | Id> : Effect.Effect<ServiceImpl[k], never, Id>; } : {}) & {
39
+ use: <X>(body: (_: ServiceImpl) => X) => X extends Effect.Effect<infer A_1, infer E_1, infer R_3> ? Effect.Effect<A_1, E_1, R_3 | Id> : Effect.Effect<X, never, Id>;
40
+ };
41
+ export declare const TagMakeId: <ServiceImpl, R, E, const Key extends string>(key: Key, make: Effect.Effect<ServiceImpl, E, R>) => <Id>() => (abstract new (service: ServiceImpl) => Readonly<ServiceImpl> & Context.TagClassShape<Key, ServiceImpl>) & {
42
+ toLayer: {
43
+ (): Layer.Layer<Id, E, R>;
44
+ <E_1, R_1>(eff: Effect.Effect<Omit<Id, keyof Context.TagClassShape<any, any>>, E_1, R_1>): Layer.Layer<Id, E_1, R_1>;
45
+ };
46
+ toLayerScoped: {
47
+ (): Layer.Layer<Id, E, Exclude<R, Scope.Scope>>;
48
+ <E_1, R_2>(eff: Effect.Effect<Context.TagClassShape<any, any>, E_1, R_2>): Layer.Layer<Id, E_1, Exclude<R_2, Scope.Scope>>;
49
+ };
50
+ of: (service: Context.TagClassShape<any, any>) => Id;
51
+ make: Effect.Effect<Id, E, R>;
52
+ } & Context.Tag<Id, Id> & (ServiceImpl extends Record<PropertyKey, any> ? { [k in keyof ServiceImpl as ServiceImpl[k] extends (...args: infer Args) => infer Ret ? ((...args: Readonly<Args>) => Ret) extends ServiceImpl[k] ? k : never : k]: ServiceImpl[k] extends (...args: infer Args) => Effect.Effect<infer A, infer E_1, infer R_3> ? (...args: Readonly<Args>) => Effect.Effect<A, E_1, R_3 | Id> : ServiceImpl[k] extends (...args: infer Args) => infer A ? (...args: Readonly<Args>) => Effect.Effect<A, never, Id> : ServiceImpl[k] extends Effect.Effect<infer A, infer E_1, infer R_3> ? Effect.Effect<A, E_1, R_3 | Id> : Effect.Effect<ServiceImpl[k], never, Id>; } : {}) & {
53
+ use: <X>(body: (_: ServiceImpl) => X) => X extends Effect.Effect<infer A_1, infer E_2, infer R_4> ? Effect.Effect<A_1, E_2, R_4 | Id> : Effect.Effect<X, never, Id>;
54
+ };
55
+ //# sourceMappingURL=Context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../src/Context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,204 @@
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
+ */
7
+ import { Effect, Layer } from "effect";
8
+ import * as Context from "effect/Context";
9
+ export * from "effect/Context";
10
+ export const ServiceTag = Symbol();
11
+ export class PhantomTypeParameter {
12
+ }
13
+ /**
14
+ * @tsplus type ServiceTagged
15
+ */
16
+ export class ServiceTagged extends PhantomTypeParameter {
17
+ }
18
+ /**
19
+ * @tsplus static ServiceTagged make
20
+ */
21
+ export function makeService(_) {
22
+ return _;
23
+ }
24
+ let i = 0;
25
+ const randomId = () => "unknown-service-" + i++;
26
+ export function assignTag(key, creationError) {
27
+ return (cls) => {
28
+ const tag = Context.GenericTag(key ?? randomId());
29
+ let fields = tag;
30
+ if (Reflect.ownKeys(cls).includes("key")) {
31
+ const { key, ...rest } = tag;
32
+ fields = rest;
33
+ }
34
+ const t = Object.assign(cls, Object.getPrototypeOf(tag), fields);
35
+ if (!creationError) {
36
+ const limit = Error.stackTraceLimit;
37
+ Error.stackTraceLimit = 2;
38
+ creationError = new Error();
39
+ Error.stackTraceLimit = limit;
40
+ }
41
+ // the stack is used to get the location of the tag definition, if a service is not found in the registry
42
+ Object.defineProperty(t, "stack", {
43
+ get() {
44
+ return creationError.stack;
45
+ }
46
+ });
47
+ return t;
48
+ };
49
+ }
50
+ export const proxify = (Tag) => () => {
51
+ const cache = new Map();
52
+ const done = new Proxy(Tag, {
53
+ get(_target, prop, _receiver) {
54
+ if (prop === "use") {
55
+ // @ts-expect-error abc
56
+ return (body) => Effect.andThen(Tag, body);
57
+ }
58
+ if (prop in Tag) {
59
+ return Tag[prop];
60
+ }
61
+ if (cache.has(prop)) {
62
+ return cache.get(prop);
63
+ }
64
+ const fn = (...args) => Effect.andThen(Tag, (s) => s[prop](...args));
65
+ // @ts-expect-error abc
66
+ const cn = Effect.andThen(Tag, (s) => s[prop]);
67
+ Object.assign(fn, cn);
68
+ Object.setPrototypeOf(fn, Object.getPrototypeOf(cn));
69
+ cache.set(prop, fn);
70
+ return fn;
71
+ }
72
+ });
73
+ return done;
74
+ };
75
+ // export const TagMake = <ServiceImpl, R, E, const Key extends string>(
76
+ // key: Key,
77
+ // make: Effect.Effect<ServiceImpl, E, R>
78
+ // ) =>
79
+ // <Id>() => {
80
+ // const limit = Error.stackTraceLimit
81
+ // Error.stackTraceLimit = 2
82
+ // const creationError = new Error()
83
+ // Error.stackTraceLimit = limit
84
+ // const c: {
85
+ // new(): Context.TagClassShape<Key, ServiceImpl>
86
+ // toLayer: () => Layer<Id, E, R>
87
+ // toLayerScoped: () => Layer<Id, E, Exclude<R, Scope>>
88
+ // } = class {
89
+ // static toLayer = () => {
90
+ // return Layer.effect(this as any, make)
91
+ // }
92
+ // static toLayerScoped = () => {
93
+ // return Layer.scoped(this as any, make)
94
+ // }
95
+ // // eslint-disable-next-line @typescript-eslint/no-explicit-any
96
+ // } as any
97
+ // return proxify(assignTag<Id, ServiceImpl>(key, creationError)(c))<Id, ServiceImpl>()
98
+ // }
99
+ // export function Tag<Id, ServiceImpl, Service = Id>(key?: string) {
100
+ // const limit = Error.stackTraceLimit
101
+ // Error.stackTraceLimit = 2
102
+ // const creationError = new Error()
103
+ // Error.stackTraceLimit = limit
104
+ // const c: (abstract new(impl: ServiceImpl) => Readonly<ServiceImpl>) & {
105
+ // toLayer: <E, R>(eff: Effect.Effect<ServiceImpl, E, R>) => Layer<Id, E, R>
106
+ // toLayerScoped: <E, R>(eff: Effect.Effect<ServiceImpl, E, R>) => Layer<Id, E, Exclude<R, Scope>>
107
+ // } = class {
108
+ // constructor(service: ServiceImpl) {
109
+ // Object.assign(this, service)
110
+ // }
111
+ // static _key?: string
112
+ // static toLayer = <E, R>(eff: Effect.Effect<ServiceImpl, E, R>) => {
113
+ // return Layer.effect(this as any, eff)
114
+ // }
115
+ // static toLayerScoped = <E, R>(eff: Effect.Effect<ServiceImpl, E, R>) => {
116
+ // return Layer.scoped(this as any, eff)
117
+ // }
118
+ // static get key() {
119
+ // return this._key ?? (this._key = key ?? creationError.stack?.split("\n")[2] ?? this.name)
120
+ // }
121
+ // } as any
122
+ // return proxify(assignTag<Id, Service>(key, creationError)(c))<Id, ServiceImpl>()
123
+ // }
124
+ // export const TagMake = <ServiceImpl, R, E>(
125
+ // make: Effect.Effect<ServiceImpl, E, R>,
126
+ // key?: string
127
+ // ) =>
128
+ // <Id, Service = Id>() => {
129
+ // const limit = Error.stackTraceLimit
130
+ // Error.stackTraceLimit = 2
131
+ // const creationError = new Error()
132
+ // Error.stackTraceLimit = limit
133
+ // const c: (abstract new(impl: ServiceImpl) => Readonly<ServiceImpl>) & {
134
+ // toLayer: { (): Layer<Id, E, R>; <E, R>(eff: Effect.Effect<ServiceImpl, E, R>): Layer<Id, E, R> }
135
+ // toLayerScoped: {
136
+ // (): Layer<Id, E, Exclude<R, Scope>>
137
+ // <E, R>(eff: Effect.Effect<ServiceImpl, E, R>): Layer<Id, E, Exclude<R, Scope>>
138
+ // }
139
+ // make: Effect.Effect<Id, E, R>
140
+ // } = class {
141
+ // constructor(service: ServiceImpl) {
142
+ // Object.assign(this, service)
143
+ // }
144
+ // static _key: string
145
+ // static make = make
146
+ // // works around an issue where defining layer on the class messes up and causes the Tag to infer to `any, any` :/
147
+ // static toLayer = (arg?: any) => {
148
+ // return Layer.effect(this as any, arg ?? this.make)
149
+ // }
150
+ // static toLayerScoped = (arg?: any) => {
151
+ // return Layer.scoped(this as any, arg ?? this.make)
152
+ // }
153
+ // static get key() {
154
+ // return this._key ?? (this._key = key ?? creationError.stack?.split("\n")[2] ?? this.name)
155
+ // }
156
+ // // eslint-disable-next-line @typescript-eslint/no-explicit-any
157
+ // } as any
158
+ // return proxify(assignTag<Id, Service>(key, creationError)(c))<Id, ServiceImpl>()
159
+ // }
160
+ export function TagId(key) {
161
+ return () => {
162
+ const limit = Error.stackTraceLimit;
163
+ Error.stackTraceLimit = 2;
164
+ const creationError = new Error();
165
+ Error.stackTraceLimit = limit;
166
+ const c = class {
167
+ constructor(service) {
168
+ // TODO: instead, wrap the service, and direct calls?
169
+ Object.assign(this, service);
170
+ }
171
+ static of = (service) => service;
172
+ static toLayer = (eff) => {
173
+ return Layer.effect(this, eff);
174
+ };
175
+ static toLayerScoped = (eff) => {
176
+ return Layer.scoped(this, eff);
177
+ };
178
+ };
179
+ return proxify(assignTag(key, creationError)(c))();
180
+ };
181
+ }
182
+ export const TagMakeId = (key, make) => () => {
183
+ const limit = Error.stackTraceLimit;
184
+ Error.stackTraceLimit = 2;
185
+ const creationError = new Error();
186
+ Error.stackTraceLimit = limit;
187
+ const c = class {
188
+ constructor(service) {
189
+ // TODO: instead, wrap the service, and direct calls?
190
+ Object.assign(this, service);
191
+ }
192
+ static of = (service) => service;
193
+ static make = make;
194
+ // works around an issue where defining layer on the class messes up and causes the Tag to infer to `any, any` :/
195
+ static toLayer = (arg) => {
196
+ return Layer.effect(this, arg ?? this.make);
197
+ };
198
+ static toLayerScoped = (arg) => {
199
+ return Layer.scoped(this, arg ?? this.make);
200
+ };
201
+ };
202
+ return proxify(assignTag(key, creationError)(c))();
203
+ };
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Db250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RDs7OztHQUlHO0FBR0gsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDdEMsT0FBTyxLQUFLLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQTtBQUV6QyxjQUFjLGdCQUFnQixDQUFBO0FBRTlCLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxNQUFNLEVBQUUsQ0FBQTtBQUdsQyxNQUFNLE9BQWdCLG9CQUFvQjtDQUl6QztBQU9EOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixhQUEwQixTQUFRLG9CQUF3QztDQUFHO0FBRW5HOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBK0IsQ0FBc0I7SUFDOUUsT0FBTyxDQUFNLENBQUE7QUFDZixDQUFDO0FBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ1QsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxFQUFFLENBQUE7QUFFL0MsTUFBTSxVQUFVLFNBQVMsQ0FBbUIsR0FBWSxFQUFFLGFBQXFCO0lBQzdFLE9BQU8sQ0FBbUIsR0FBTSxFQUFnQyxFQUFFO1FBQ2hFLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQWMsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDOUQsSUFBSSxNQUFNLEdBQUcsR0FBRyxDQUFBO1FBQ2hCLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFBO1lBQzVCLE1BQU0sR0FBRyxJQUFXLENBQUE7UUFDdEIsQ0FBQztRQUNELE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDaEUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ25CLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUE7WUFDbkMsS0FBSyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUE7WUFDekIsYUFBYSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUE7WUFDM0IsS0FBSyxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUE7UUFDL0IsQ0FBQztRQUNELHlHQUF5RztRQUN6RyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUU7WUFDaEMsR0FBRztnQkFDRCxPQUFPLGFBQWMsQ0FBQyxLQUFLLENBQUE7WUFDN0IsQ0FBQztTQUNGLENBQUMsQ0FBQTtRQUNGLE9BQU8sQ0FBQyxDQUFBO0lBQ1YsQ0FBQyxDQUFBO0FBQ0gsQ0FBQztBQXVCRCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBbUIsR0FBTSxFQUFFLEVBQUUsQ0FDcEQsR0FFcUMsRUFBRTtJQUVyQyxNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFBO0lBQ3ZCLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRTtRQUMxQixHQUFHLENBQUMsT0FBWSxFQUFFLElBQVMsRUFBRSxTQUFTO1lBQ3BDLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDO2dCQUNuQix1QkFBdUI7Z0JBQ3ZCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFBO1lBQzVDLENBQUM7WUFDRCxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDaEIsT0FBUSxHQUFXLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDM0IsQ0FBQztZQUNELElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNwQixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDeEIsQ0FBQztZQUNELE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFnQixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQVUsRUFBRSxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQTtZQUM1Rix1QkFBdUI7WUFDdkIsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1lBQzlDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO1lBQ3JCLE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUNwRCxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQTtZQUNuQixPQUFPLEVBQUUsQ0FBQTtRQUNYLENBQUM7S0FDRixDQUFDLENBQUE7SUFDRixPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMsQ0FBQTtBQUVELHdFQUF3RTtBQUN4RSxjQUFjO0FBQ2QsMkNBQTJDO0FBQzNDLE9BQU87QUFDUCxjQUFjO0FBQ2Qsd0NBQXdDO0FBQ3hDLDhCQUE4QjtBQUM5QixzQ0FBc0M7QUFDdEMsa0NBQWtDO0FBQ2xDLGVBQWU7QUFDZixxREFBcUQ7QUFDckQscUNBQXFDO0FBQ3JDLDJEQUEyRDtBQUMzRCxnQkFBZ0I7QUFDaEIsK0JBQStCO0FBQy9CLCtDQUErQztBQUMvQyxRQUFRO0FBRVIscUNBQXFDO0FBQ3JDLCtDQUErQztBQUMvQyxRQUFRO0FBQ1IscUVBQXFFO0FBQ3JFLGFBQWE7QUFFYix5RkFBeUY7QUFDekYsSUFBSTtBQUVKLHFFQUFxRTtBQUNyRSx3Q0FBd0M7QUFDeEMsOEJBQThCO0FBQzlCLHNDQUFzQztBQUN0QyxrQ0FBa0M7QUFDbEMsNEVBQTRFO0FBQzVFLGdGQUFnRjtBQUNoRixzR0FBc0c7QUFDdEcsZ0JBQWdCO0FBQ2hCLDBDQUEwQztBQUMxQyxxQ0FBcUM7QUFDckMsUUFBUTtBQUNSLDJCQUEyQjtBQUMzQiwwRUFBMEU7QUFDMUUsOENBQThDO0FBQzlDLFFBQVE7QUFDUixnRkFBZ0Y7QUFDaEYsOENBQThDO0FBQzlDLFFBQVE7QUFDUix5QkFBeUI7QUFDekIsa0dBQWtHO0FBQ2xHLFFBQVE7QUFDUixhQUFhO0FBRWIscUZBQXFGO0FBQ3JGLElBQUk7QUFFSiw4Q0FBOEM7QUFDOUMsNENBQTRDO0FBQzVDLGlCQUFpQjtBQUNqQixPQUFPO0FBQ1AsNEJBQTRCO0FBQzVCLHdDQUF3QztBQUN4Qyw4QkFBOEI7QUFDOUIsc0NBQXNDO0FBQ3RDLGtDQUFrQztBQUNsQyw0RUFBNEU7QUFDNUUsdUdBQXVHO0FBQ3ZHLHVCQUF1QjtBQUN2Qiw0Q0FBNEM7QUFDNUMsdUZBQXVGO0FBQ3ZGLFFBQVE7QUFDUixvQ0FBb0M7QUFDcEMsZ0JBQWdCO0FBQ2hCLDBDQUEwQztBQUMxQyxxQ0FBcUM7QUFDckMsUUFBUTtBQUNSLDBCQUEwQjtBQUMxQix5QkFBeUI7QUFDekIsd0hBQXdIO0FBQ3hILHdDQUF3QztBQUN4QywyREFBMkQ7QUFDM0QsUUFBUTtBQUVSLDhDQUE4QztBQUM5QywyREFBMkQ7QUFDM0QsUUFBUTtBQUVSLHlCQUF5QjtBQUN6QixrR0FBa0c7QUFDbEcsUUFBUTtBQUNSLHFFQUFxRTtBQUNyRSxhQUFhO0FBRWIscUZBQXFGO0FBQ3JGLElBQUk7QUFFSixNQUFNLFVBQVUsS0FBSyxDQUEyQixHQUFRO0lBQ3RELE9BQU8sR0FBb0IsRUFBRTtRQUMzQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFBO1FBQ25DLEtBQUssQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFBO1FBQ3pCLE1BQU0sYUFBYSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUE7UUFDakMsS0FBSyxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUE7UUFDN0IsTUFBTSxDQUFDLEdBWUQ7WUFDRixZQUFZLE9BQVk7Z0JBQ3RCLHFEQUFxRDtnQkFDckQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUE7WUFDOUIsQ0FBQztZQUNELE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxPQUFvQixFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUE7WUFDN0MsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFPLEdBQXFDLEVBQUUsRUFBRTtnQkFDL0QsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQTtZQUN2QyxDQUFDLENBQUE7WUFDRCxNQUFNLENBQUMsYUFBYSxHQUFHLENBQU8sR0FBcUMsRUFBRSxFQUFFO2dCQUNyRSxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBVyxFQUFFLEdBQUcsQ0FBQyxDQUFBO1lBQ3ZDLENBQUMsQ0FBQTtTQUNLLENBQUE7UUFFVixPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQVMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQW1CLENBQUE7SUFDN0UsQ0FBQyxDQUFBO0FBQ0gsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUN2QixHQUFRLEVBQ1IsSUFBc0MsRUFDdEMsRUFBRSxDQUNKLEdBQU8sRUFBRTtJQUNQLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUE7SUFDbkMsS0FBSyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUE7SUFDekIsTUFBTSxhQUFhLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQTtJQUNqQyxLQUFLLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQTtJQUM3QixNQUFNLENBQUMsR0FlRDtRQUNGLFlBQVksT0FBWTtZQUN0QixxREFBcUQ7WUFDckQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDOUIsQ0FBQztRQUVELE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxPQUFvQixFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUE7UUFDN0MsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDbEIsaUhBQWlIO1FBQ2pILE1BQU0sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFTLEVBQUUsRUFBRTtZQUM3QixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBVyxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDcEQsQ0FBQyxDQUFBO1FBRUQsTUFBTSxDQUFDLGFBQWEsR0FBRyxDQUFDLEdBQVMsRUFBRSxFQUFFO1lBQ25DLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFXLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNwRCxDQUFDLENBQUE7S0FFSyxDQUFBO0lBRVYsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFTLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFtQixDQUFBO0FBQzdFLENBQUMsQ0FBQSJ9