effect-app 4.0.0-beta.99 → 4.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 (371) hide show
  1. package/CHANGELOG.md +2028 -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 +2 -2
  6. package/dist/Chunk.d.ts.map +1 -1
  7. package/dist/Config/SecretURL.d.ts +3 -1
  8. package/dist/Config/SecretURL.d.ts.map +1 -1
  9. package/dist/Config/SecretURL.js +3 -6
  10. package/dist/Config/internal/configSecretURL.d.ts.map +1 -1
  11. package/dist/Config/internal/configSecretURL.js +2 -2
  12. package/dist/Config.d.ts +0 -5
  13. package/dist/Config.d.ts.map +1 -1
  14. package/dist/Config.js +7 -5
  15. package/dist/ConfigProvider.d.ts +0 -37
  16. package/dist/ConfigProvider.d.ts.map +1 -1
  17. package/dist/ConfigProvider.js +5 -41
  18. package/dist/Context.d.ts +6 -4
  19. package/dist/Context.d.ts.map +1 -1
  20. package/dist/Context.js +4 -3
  21. package/dist/DataDependencies.d.ts +136 -0
  22. package/dist/DataDependencies.d.ts.map +1 -0
  23. package/dist/DataDependencies.js +112 -0
  24. package/dist/Effect.d.ts +3 -3
  25. package/dist/Effect.d.ts.map +1 -1
  26. package/dist/Effect.js +6 -9
  27. package/dist/Emailer.d.ts +51 -0
  28. package/dist/Emailer.d.ts.map +1 -0
  29. package/dist/Emailer.js +7 -0
  30. package/dist/Function.d.ts.map +1 -1
  31. package/dist/Layer.d.ts +6 -3
  32. package/dist/Layer.d.ts.map +1 -1
  33. package/dist/Layer.js +3 -2
  34. package/dist/Model/Repository/Registry.d.ts +22 -0
  35. package/dist/Model/Repository/Registry.d.ts.map +1 -0
  36. package/dist/Model/Repository/Registry.js +18 -0
  37. package/dist/Model/Repository/dependency.d.ts +6 -0
  38. package/dist/Model/Repository/dependency.d.ts.map +1 -0
  39. package/dist/Model/Repository/dependency.js +29 -0
  40. package/dist/Model/Repository/ext.d.ts +60 -0
  41. package/dist/Model/Repository/ext.d.ts.map +1 -0
  42. package/dist/Model/Repository/ext.js +124 -0
  43. package/dist/Model/Repository/internal/internal.d.ts +68 -0
  44. package/dist/Model/Repository/internal/internal.d.ts.map +1 -0
  45. package/dist/Model/Repository/internal/internal.js +611 -0
  46. package/dist/Model/Repository/legacy.d.ts +21 -0
  47. package/dist/Model/Repository/legacy.d.ts.map +1 -0
  48. package/dist/Model/Repository/legacy.js +2 -0
  49. package/dist/Model/Repository/makeRepo.d.ts +71 -0
  50. package/dist/Model/Repository/makeRepo.d.ts.map +1 -0
  51. package/dist/Model/Repository/makeRepo.js +30 -0
  52. package/dist/Model/Repository/service.d.ts +121 -0
  53. package/dist/Model/Repository/service.d.ts.map +1 -0
  54. package/dist/Model/Repository/service.js +2 -0
  55. package/dist/Model/Repository/validation.d.ts +72 -0
  56. package/dist/Model/Repository/validation.d.ts.map +1 -0
  57. package/dist/Model/Repository/validation.js +39 -0
  58. package/dist/Model/Repository.d.ts +8 -0
  59. package/dist/Model/Repository.d.ts.map +1 -0
  60. package/dist/Model/Repository.js +8 -0
  61. package/dist/Model/dsl.d.ts +33 -0
  62. package/dist/Model/dsl.d.ts.map +1 -0
  63. package/dist/Model/dsl.js +43 -0
  64. package/dist/Model/filter/filterApi.d.ts +30 -0
  65. package/dist/Model/filter/filterApi.d.ts.map +1 -0
  66. package/dist/Model/filter/filterApi.js +2 -0
  67. package/dist/Model/filter/types/errors.d.ts +29 -0
  68. package/dist/Model/filter/types/errors.d.ts.map +1 -0
  69. package/dist/Model/filter/types/errors.js +2 -0
  70. package/dist/Model/filter/types/fields.d.ts +15 -0
  71. package/dist/Model/filter/types/fields.d.ts.map +1 -0
  72. package/dist/Model/filter/types/fields.js +2 -0
  73. package/dist/Model/filter/types/path/common.d.ts +316 -0
  74. package/dist/Model/filter/types/path/common.d.ts.map +1 -0
  75. package/dist/Model/filter/types/path/common.js +2 -0
  76. package/dist/Model/filter/types/path/eager.d.ts +94 -0
  77. package/dist/Model/filter/types/path/eager.d.ts.map +1 -0
  78. package/dist/Model/filter/types/path/eager.js +36 -0
  79. package/dist/Model/filter/types/path/index.d.ts +4 -0
  80. package/dist/Model/filter/types/path/index.d.ts.map +1 -0
  81. package/dist/Model/filter/types/path/index.js +3 -0
  82. package/dist/Model/filter/types/utils.d.ts +79 -0
  83. package/dist/Model/filter/types/utils.d.ts.map +1 -0
  84. package/dist/Model/filter/types/utils.js +2 -0
  85. package/dist/Model/filter/types/validator.d.ts +30 -0
  86. package/dist/Model/filter/types/validator.d.ts.map +1 -0
  87. package/dist/Model/filter/types/validator.js +2 -0
  88. package/dist/Model/filter/types.d.ts +5 -0
  89. package/dist/Model/filter/types.d.ts.map +1 -0
  90. package/dist/Model/filter/types.js +7 -0
  91. package/dist/Model/query/dsl.d.ts +630 -0
  92. package/dist/Model/query/dsl.d.ts.map +1 -0
  93. package/dist/Model/query/dsl.js +376 -0
  94. package/dist/Model/query/new-kid-interpreter.d.ts +132 -0
  95. package/dist/Model/query/new-kid-interpreter.d.ts.map +1 -0
  96. package/dist/Model/query/new-kid-interpreter.js +370 -0
  97. package/dist/Model/query.d.ts +15 -0
  98. package/dist/Model/query.d.ts.map +1 -0
  99. package/dist/Model/query.js +3 -0
  100. package/dist/Model.d.ts +6 -0
  101. package/dist/Model.d.ts.map +1 -0
  102. package/dist/Model.js +6 -0
  103. package/dist/NonEmptySet.d.ts +3 -1
  104. package/dist/NonEmptySet.d.ts.map +1 -1
  105. package/dist/NonEmptySet.js +2 -2
  106. package/dist/Option.d.ts +1 -0
  107. package/dist/Option.d.ts.map +1 -1
  108. package/dist/Option.js +3 -1
  109. package/dist/Pure.d.ts +5 -3
  110. package/dist/Pure.d.ts.map +1 -1
  111. package/dist/Pure.js +5 -2
  112. package/dist/QueueMaker.d.ts +11 -0
  113. package/dist/QueueMaker.d.ts.map +1 -0
  114. package/dist/QueueMaker.js +11 -0
  115. package/dist/RequestContext.d.ts +87 -0
  116. package/dist/RequestContext.d.ts.map +1 -0
  117. package/dist/RequestContext.js +45 -0
  118. package/dist/RequestScopedDependencies.d.ts +21 -0
  119. package/dist/RequestScopedDependencies.d.ts.map +1 -0
  120. package/dist/RequestScopedDependencies.js +16 -0
  121. package/dist/Schema/Class.d.ts +163 -16
  122. package/dist/Schema/Class.d.ts.map +1 -1
  123. package/dist/Schema/Class.js +193 -21
  124. package/dist/Schema/FastCheck.d.ts.map +1 -1
  125. package/dist/Schema/SchemaParser.d.ts +5 -0
  126. package/dist/Schema/SchemaParser.d.ts.map +1 -0
  127. package/dist/Schema/SchemaParser.js +6 -0
  128. package/dist/Schema/SpecialJsonSchema.d.ts +15 -2
  129. package/dist/Schema/SpecialJsonSchema.d.ts.map +1 -1
  130. package/dist/Schema/SpecialJsonSchema.js +70 -12
  131. package/dist/Schema/SpecialOpenApi.d.ts +1 -1
  132. package/dist/Schema/SpecialOpenApi.js +3 -3
  133. package/dist/Schema/brand.d.ts +5 -5
  134. package/dist/Schema/brand.d.ts.map +1 -1
  135. package/dist/Schema/brand.js +6 -4
  136. package/dist/Schema/email.d.ts.map +1 -1
  137. package/dist/Schema/email.js +8 -5
  138. package/dist/Schema/ext.d.ts +297 -72
  139. package/dist/Schema/ext.d.ts.map +1 -1
  140. package/dist/Schema/ext.js +331 -67
  141. package/dist/Schema/moreStrings.d.ts +82 -48
  142. package/dist/Schema/moreStrings.d.ts.map +1 -1
  143. package/dist/Schema/moreStrings.js +85 -51
  144. package/dist/Schema/numbers.d.ts +33 -21
  145. package/dist/Schema/numbers.d.ts.map +1 -1
  146. package/dist/Schema/numbers.js +64 -12
  147. package/dist/Schema/phoneNumber.d.ts.map +1 -1
  148. package/dist/Schema/phoneNumber.js +6 -6
  149. package/dist/Schema/schema.d.ts +1 -1
  150. package/dist/Schema/schema.d.ts.map +1 -1
  151. package/dist/Schema/schema.js +2 -2
  152. package/dist/Schema/strings.d.ts +18 -4
  153. package/dist/Schema/strings.d.ts.map +1 -1
  154. package/dist/Schema/strings.js +1 -5
  155. package/dist/Schema.d.ts +223 -6
  156. package/dist/Schema.d.ts.map +1 -1
  157. package/dist/Schema.js +189 -23
  158. package/dist/SchemaAST.d.ts +2 -0
  159. package/dist/SchemaAST.d.ts.map +1 -0
  160. package/dist/SchemaAST.js +2 -0
  161. package/dist/Set.d.ts +4 -1
  162. package/dist/Set.d.ts.map +1 -1
  163. package/dist/Set.js +3 -2
  164. package/dist/Store.d.ts +215 -0
  165. package/dist/Store.d.ts.map +1 -0
  166. package/dist/Store.js +113 -0
  167. package/dist/_ext/Array.d.ts +1 -1
  168. package/dist/_ext/Array.d.ts.map +1 -1
  169. package/dist/_ext/Array.js +4 -2
  170. package/dist/_ext/misc.d.ts +4 -1
  171. package/dist/_ext/misc.d.ts.map +1 -1
  172. package/dist/_ext/misc.js +4 -2
  173. package/dist/_ext/ord.ext.d.ts +2 -1
  174. package/dist/_ext/ord.ext.d.ts.map +1 -1
  175. package/dist/_ext/ord.ext.js +2 -2
  176. package/dist/builtin.d.ts +2 -14
  177. package/dist/builtin.d.ts.map +1 -1
  178. package/dist/builtin.js +1 -1
  179. package/dist/client/InvalidationKeys.d.ts +30 -0
  180. package/dist/client/InvalidationKeys.d.ts.map +1 -0
  181. package/dist/client/InvalidationKeys.js +37 -0
  182. package/dist/client/apiClientFactory.d.ts +13 -8
  183. package/dist/client/apiClientFactory.d.ts.map +1 -1
  184. package/dist/client/apiClientFactory.js +148 -29
  185. package/dist/client/clientFor.d.ts +48 -13
  186. package/dist/client/clientFor.d.ts.map +1 -1
  187. package/dist/client/clientFor.js +9 -1
  188. package/dist/client/errors.d.ts +74 -28
  189. package/dist/client/errors.d.ts.map +1 -1
  190. package/dist/client/errors.js +41 -10
  191. package/dist/client/makeClient.d.ts +487 -32
  192. package/dist/client/makeClient.d.ts.map +1 -1
  193. package/dist/client/makeClient.js +47 -21
  194. package/dist/client.d.ts +2 -0
  195. package/dist/client.d.ts.map +1 -1
  196. package/dist/client.js +3 -1
  197. package/dist/faker.d.ts.map +1 -1
  198. package/dist/http/Request.d.ts +2 -2
  199. package/dist/http/Request.d.ts.map +1 -1
  200. package/dist/http/Request.js +2 -2
  201. package/dist/http/internal/lib.d.ts +12 -12
  202. package/dist/http/internal/lib.d.ts.map +1 -1
  203. package/dist/http/internal/lib.js +13 -13
  204. package/dist/ids.d.ts +32 -14
  205. package/dist/ids.d.ts.map +1 -1
  206. package/dist/ids.js +38 -7
  207. package/dist/index.d.ts +3 -0
  208. package/dist/index.d.ts.map +1 -1
  209. package/dist/index.js +5 -1
  210. package/dist/middleware.d.ts +12 -6
  211. package/dist/middleware.d.ts.map +1 -1
  212. package/dist/middleware.js +13 -7
  213. package/dist/rpc/Invalidation.d.ts +1124 -0
  214. package/dist/rpc/Invalidation.d.ts.map +1 -0
  215. package/dist/rpc/Invalidation.js +178 -0
  216. package/dist/rpc/MiddlewareMaker.d.ts +10 -7
  217. package/dist/rpc/MiddlewareMaker.d.ts.map +1 -1
  218. package/dist/rpc/MiddlewareMaker.js +57 -37
  219. package/dist/rpc/RpcContextMap.d.ts +2 -2
  220. package/dist/rpc/RpcContextMap.d.ts.map +1 -1
  221. package/dist/rpc/RpcMiddleware.d.ts +13 -10
  222. package/dist/rpc/RpcMiddleware.d.ts.map +1 -1
  223. package/dist/rpc/RpcMiddleware.js +2 -2
  224. package/dist/rpc.d.ts +1 -1
  225. package/dist/rpc.d.ts.map +1 -1
  226. package/dist/rpc.js +2 -2
  227. package/dist/runtime.d.ts +19 -0
  228. package/dist/runtime.d.ts.map +1 -0
  229. package/dist/runtime.js +40 -0
  230. package/dist/setupRequest.d.ts +20 -0
  231. package/dist/setupRequest.d.ts.map +1 -0
  232. package/dist/setupRequest.js +72 -0
  233. package/dist/toast.d.ts +51 -0
  234. package/dist/toast.d.ts.map +1 -0
  235. package/dist/toast.js +34 -0
  236. package/dist/transform.d.ts +1 -1
  237. package/dist/transform.d.ts.map +1 -1
  238. package/dist/transform.js +4 -5
  239. package/dist/utils/effectify.d.ts +1 -1
  240. package/dist/utils/effectify.d.ts.map +1 -1
  241. package/dist/utils/effectify.js +2 -2
  242. package/dist/utils/extend.d.ts +6 -1
  243. package/dist/utils/extend.d.ts.map +1 -1
  244. package/dist/utils/extend.js +24 -6
  245. package/dist/utils/gen.d.ts +4 -4
  246. package/dist/utils/gen.d.ts.map +1 -1
  247. package/dist/utils/logLevel.d.ts +2 -2
  248. package/dist/utils/logLevel.d.ts.map +1 -1
  249. package/dist/utils/logger.d.ts +2 -1
  250. package/dist/utils/logger.d.ts.map +1 -1
  251. package/dist/utils/logger.js +2 -2
  252. package/dist/utils.d.ts +34 -39
  253. package/dist/utils.d.ts.map +1 -1
  254. package/dist/utils.js +33 -37
  255. package/dist/validation/validators.d.ts.map +1 -1
  256. package/dist/validation.d.ts.map +1 -1
  257. package/dist/withToast.d.ts +30 -0
  258. package/dist/withToast.d.ts.map +1 -0
  259. package/dist/withToast.js +64 -0
  260. package/package.json +26 -266
  261. package/src/Array.ts +5 -5
  262. package/src/Chunk.ts +3 -3
  263. package/src/Config/SecretURL.ts +6 -3
  264. package/src/Config/internal/configSecretURL.ts +2 -2
  265. package/src/Config.ts +6 -13
  266. package/src/ConfigProvider.ts +4 -47
  267. package/src/Context.ts +9 -8
  268. package/src/DataDependencies.ts +171 -0
  269. package/src/Effect.ts +9 -12
  270. package/src/Emailer.ts +51 -0
  271. package/src/Inputify.type.ts +1 -1
  272. package/src/Layer.ts +8 -5
  273. package/src/Model/Repository/Registry.ts +35 -0
  274. package/src/Model/Repository/dependency.ts +32 -0
  275. package/src/Model/Repository/ext.ts +374 -0
  276. package/src/Model/Repository/internal/internal.ts +988 -0
  277. package/src/Model/Repository/legacy.ts +29 -0
  278. package/src/Model/Repository/makeRepo.ts +168 -0
  279. package/src/Model/Repository/service.ts +676 -0
  280. package/src/Model/Repository/validation.ts +38 -0
  281. package/src/Model/Repository.ts +7 -0
  282. package/src/Model/dsl.ts +129 -0
  283. package/src/Model/filter/filterApi.ts +78 -0
  284. package/src/Model/filter/types/errors.ts +47 -0
  285. package/src/Model/filter/types/fields.ts +50 -0
  286. package/src/Model/filter/types/path/common.ts +404 -0
  287. package/src/Model/filter/types/path/eager.ts +329 -0
  288. package/src/Model/filter/types/path/index.ts +4 -0
  289. package/src/Model/filter/types/utils.ts +128 -0
  290. package/src/Model/filter/types/validator.ts +46 -0
  291. package/src/Model/filter/types.ts +6 -0
  292. package/src/Model/query/dsl.ts +3092 -0
  293. package/src/Model/query/new-kid-interpreter.ts +532 -0
  294. package/src/Model/query.ts +13 -0
  295. package/src/Model.ts +5 -0
  296. package/src/NonEmptySet.ts +6 -4
  297. package/src/Option.ts +2 -0
  298. package/src/Pure.ts +6 -3
  299. package/src/QueueMaker.ts +11 -0
  300. package/src/RequestContext.ts +48 -0
  301. package/src/RequestScopedDependencies.ts +45 -0
  302. package/src/Schema/Class.ts +550 -56
  303. package/src/Schema/SchemaParser.ts +12 -0
  304. package/src/Schema/SpecialJsonSchema.ts +75 -7
  305. package/src/Schema/SpecialOpenApi.ts +5 -5
  306. package/src/Schema/brand.ts +27 -12
  307. package/src/Schema/email.ts +9 -7
  308. package/src/Schema/ext.ts +408 -91
  309. package/src/Schema/moreStrings.ts +213 -88
  310. package/src/Schema/numbers.ts +107 -29
  311. package/src/Schema/phoneNumber.ts +8 -9
  312. package/src/Schema/schema.ts +1 -1
  313. package/src/Schema/strings.ts +23 -14
  314. package/src/Schema.ts +403 -46
  315. package/src/SchemaAST.ts +1 -0
  316. package/src/Set.ts +6 -2
  317. package/src/Store.ts +325 -0
  318. package/src/_ext/Array.ts +4 -2
  319. package/src/_ext/misc.ts +4 -1
  320. package/src/_ext/ord.ext.ts +2 -1
  321. package/src/builtin-json.d.ts +24 -0
  322. package/src/builtin.ts +16 -21
  323. package/src/client/InvalidationKeys.ts +55 -0
  324. package/src/client/apiClientFactory.ts +291 -126
  325. package/src/client/clientFor.ts +101 -33
  326. package/src/client/errors.ts +66 -20
  327. package/src/client/makeClient.ts +519 -60
  328. package/src/client.ts +6 -4
  329. package/src/http/Request.ts +4 -4
  330. package/src/http/internal/lib.ts +12 -12
  331. package/src/http.ts +1 -1
  332. package/src/ids.ts +45 -8
  333. package/src/index.ts +20 -16
  334. package/src/middleware.ts +12 -8
  335. package/src/rpc/Invalidation.ts +278 -0
  336. package/src/rpc/MiddlewareMaker.ts +86 -79
  337. package/src/rpc/README.md +2 -2
  338. package/src/rpc/RpcContextMap.ts +4 -4
  339. package/src/rpc/RpcMiddleware.ts +18 -13
  340. package/src/rpc.ts +4 -4
  341. package/src/runtime.ts +57 -0
  342. package/src/setupRequest.ts +138 -0
  343. package/src/toast.ts +54 -0
  344. package/src/transform.ts +4 -4
  345. package/src/utils/effectify.ts +1 -1
  346. package/src/utils/extend.ts +24 -5
  347. package/src/utils/gen.ts +7 -7
  348. package/src/utils/logLevel.ts +1 -1
  349. package/src/utils/logger.ts +3 -2
  350. package/src/utils.ts +85 -158
  351. package/src/validation.ts +2 -2
  352. package/src/withToast.ts +133 -0
  353. package/test/dist/rpc.test.d.ts.map +1 -1
  354. package/test/dist/rpcMiddlewareContext.test.d.ts.map +1 -0
  355. package/test/moreStrings.test.ts +55 -10
  356. package/test/rpc.test.ts +28 -11
  357. package/test/rpcMiddlewareContext.test.ts +63 -0
  358. package/test/schema.test.ts +318 -55
  359. package/test/secretURL.test.ts +4 -1
  360. package/test/special.test.ts +663 -131
  361. package/test/utils.test.ts +5 -5
  362. package/tsconfig.base.json +6 -4
  363. package/tsconfig.json +9 -1
  364. package/tsconfig.src.json +29 -29
  365. package/tsconfig.test.json +2 -2
  366. package/dist/Operations.d.ts +0 -124
  367. package/dist/Operations.d.ts.map +0 -1
  368. package/dist/Operations.js +0 -29
  369. package/eslint.config.mjs +0 -26
  370. package/src/Operations.ts +0 -55
  371. package/tsconfig.json.bak +0 -12
@@ -1,12 +1,13 @@
1
1
  import * as Cause from "effect/Cause";
2
2
  import * as S from "../Schema.js";
3
- export declare const tryToJson: (error: {
4
- toJSON(): unknown;
5
- toString(): string;
6
- }) => unknown;
7
- declare const NotFoundError_base: import("effect/Schema").Class<NotFoundError<ItemType>, S.TaggedStruct<"NotFoundError", {
8
- readonly type: S.String;
9
- readonly id: S.Unknown;
3
+ export declare const tryToJson: (error: unknown) => Record<string, unknown> | {
4
+ error: any;
5
+ };
6
+ declare const NotFoundError_base: S.EnhancedClass<NotFoundError<ItemType>, import("effect/Schema").Struct<{
7
+ readonly _tag: S.tag<"NotFoundError">;
8
+ } & {
9
+ type: S.String;
10
+ id: S.Unknown;
10
11
  }>, Cause.YieldableError>;
11
12
  export declare class NotFoundError<ItemType = string> extends NotFoundError_base {
12
13
  constructor(props: {
@@ -17,8 +18,10 @@ export declare class NotFoundError<ItemType = string> extends NotFoundError_base
17
18
  get message(): string;
18
19
  toString(): string;
19
20
  }
20
- declare const InvalidStateError_base: import("effect/Schema").Class<InvalidStateError, S.TaggedStruct<"InvalidStateError", {
21
- readonly message: S.String;
21
+ declare const InvalidStateError_base: S.EnhancedClass<InvalidStateError, import("effect/Schema").Struct<{
22
+ readonly _tag: S.tag<"InvalidStateError">;
23
+ } & {
24
+ message: S.String;
22
25
  }>, Cause.YieldableError>;
23
26
  export declare class InvalidStateError extends InvalidStateError_base {
24
27
  constructor(messageOrObject: string | {
@@ -27,8 +30,10 @@ export declare class InvalidStateError extends InvalidStateError_base {
27
30
  }, disableValidation?: boolean);
28
31
  toString(): string;
29
32
  }
30
- declare const ServiceUnavailableError_base: import("effect/Schema").Class<ServiceUnavailableError, S.TaggedStruct<"ServiceUnavailableError", {
31
- readonly message: S.String;
33
+ declare const ServiceUnavailableError_base: S.EnhancedClass<ServiceUnavailableError, import("effect/Schema").Struct<{
34
+ readonly _tag: S.tag<"ServiceUnavailableError">;
35
+ } & {
36
+ message: S.String;
32
37
  }>, Cause.YieldableError>;
33
38
  export declare class ServiceUnavailableError extends ServiceUnavailableError_base {
34
39
  constructor(messageOrObject: string | {
@@ -37,10 +42,12 @@ export declare class ServiceUnavailableError extends ServiceUnavailableError_bas
37
42
  }, disableValidation?: boolean);
38
43
  toString(): string;
39
44
  }
40
- declare const ValidationError_base: import("effect/Schema").Class<ValidationError, S.TaggedStruct<"ValidationError", {
41
- readonly errors: S.$Array<S.Unknown> & {
42
- withDefault: S.withConstructorDefault<S.$Array<S.Unknown>>;
43
- withDecodingDefaultType: S.withDecodingDefaultType<S.$Array<S.Unknown>>;
45
+ declare const ValidationError_base: S.EnhancedClass<ValidationError, import("effect/Schema").Struct<{
46
+ readonly _tag: S.tag<"ValidationError">;
47
+ } & {
48
+ errors: S.$Array<S.Unknown> & {
49
+ withConstructorDefault: S.withConstructorDefault<S.$Array<S.Unknown>>;
50
+ withDecodingDefaultType: S.withDecodingDefaultType<S.$Array<S.Unknown>, never>;
44
51
  };
45
52
  }>, Cause.YieldableError>;
46
53
  export declare class ValidationError extends ValidationError_base {
@@ -51,8 +58,10 @@ export declare class ValidationError extends ValidationError_base {
51
58
  get message(): string;
52
59
  toString(): string;
53
60
  }
54
- declare const NotLoggedInError_base: import("effect/Schema").Class<NotLoggedInError, S.TaggedStruct<"NotLoggedInError", {
55
- readonly message: S.String;
61
+ declare const NotLoggedInError_base: S.EnhancedClass<NotLoggedInError, import("effect/Schema").Struct<{
62
+ readonly _tag: S.tag<"NotLoggedInError">;
63
+ } & {
64
+ message: S.String;
56
65
  }>, Cause.YieldableError>;
57
66
  export declare class NotLoggedInError extends NotLoggedInError_base {
58
67
  constructor(messageOrObject?: string | {
@@ -61,8 +70,10 @@ export declare class NotLoggedInError extends NotLoggedInError_base {
61
70
  }, disableValidation?: boolean);
62
71
  toString(): string;
63
72
  }
64
- declare const LoginError_base: import("effect/Schema").Class<LoginError, S.TaggedStruct<"NotLoggedInError", {
65
- readonly message: S.String;
73
+ declare const LoginError_base: S.EnhancedClass<LoginError, import("effect/Schema").Struct<{
74
+ readonly _tag: S.tag<"NotLoggedInError">;
75
+ } & {
76
+ message: S.String;
66
77
  }>, Cause.YieldableError>;
67
78
  /**
68
79
  * The user carries a valid Userprofile, but there is a problem with the login none the less.
@@ -74,8 +85,10 @@ export declare class LoginError extends LoginError_base {
74
85
  }, disableValidation?: boolean);
75
86
  toString(): string;
76
87
  }
77
- declare const UnauthorizedError_base: import("effect/Schema").Class<UnauthorizedError, S.TaggedStruct<"UnauthorizedError", {
78
- readonly message: S.String;
88
+ declare const UnauthorizedError_base: S.EnhancedClass<UnauthorizedError, import("effect/Schema").Struct<{
89
+ readonly _tag: S.tag<"UnauthorizedError">;
90
+ } & {
91
+ message: S.String;
79
92
  }>, Cause.YieldableError>;
80
93
  export declare class UnauthorizedError extends UnauthorizedError_base {
81
94
  constructor(messageOrObject?: string | {
@@ -91,8 +104,10 @@ type OptimisticConcurrencyDetails = {
91
104
  readonly current?: string | undefined;
92
105
  readonly found?: string | undefined;
93
106
  };
94
- declare const OptimisticConcurrencyException_base: import("effect/Schema").Class<OptimisticConcurrencyException, S.TaggedStruct<"OptimisticConcurrencyException", {
95
- readonly message: S.String;
107
+ declare const OptimisticConcurrencyException_base: S.EnhancedClass<OptimisticConcurrencyException, import("effect/Schema").Struct<{
108
+ readonly _tag: S.tag<"OptimisticConcurrencyException">;
109
+ } & {
110
+ message: S.String;
96
111
  }>, Cause.YieldableError>;
97
112
  export declare class OptimisticConcurrencyException extends OptimisticConcurrencyException_base {
98
113
  readonly details?: OptimisticConcurrencyDetails;
@@ -104,10 +119,41 @@ export declare class OptimisticConcurrencyException extends OptimisticConcurrenc
104
119
  }), disableValidation?: boolean);
105
120
  toString(): string;
106
121
  }
107
- export declare const SupportedErrors: S.Union<readonly [typeof InvalidStateError, typeof OptimisticConcurrencyException, typeof NotFoundError, typeof NotLoggedInError, typeof LoginError, typeof UnauthorizedError, typeof ValidationError, typeof ServiceUnavailableError]>;
122
+ declare const DatabaseError_base: S.EnhancedClass<DatabaseError, import("effect/Schema").Struct<{
123
+ readonly _tag: S.tag<"DatabaseError">;
124
+ } & {
125
+ message: S.String;
126
+ transient: import("effect/Schema").Boolean & {
127
+ withConstructorDefault: S.withConstructorDefault<import("effect/Schema").Boolean>;
128
+ withDecodingDefaultType: S.withDecodingDefaultType<import("effect/Schema").Boolean, never>;
129
+ };
130
+ cause: S.optional<S.Defect>;
131
+ }>, Cause.YieldableError>;
132
+ /**
133
+ * Raised by a store adapter when a database operation fails for an
134
+ * infrastructure reason (request timeout, throttle, 5xx, dropped socket, or any
135
+ * non-conflict error). Distinct from `OptimisticConcurrencyException`, which is
136
+ * an expected etag conflict.
137
+ *
138
+ * `transient` is set by the adapter for failures worth retrying (timeout /
139
+ * throttle / 5xx / network). `cause` is the underlying adapter error, carried
140
+ * through a `Defect` schema so it serializes (an `Error` encodes to
141
+ * `{ name, message, cause }`) instead of breaking JSON encoding of the channel.
142
+ *
143
+ * Treated by the api/client/FE machinery like an unexpected (500-class) error.
144
+ */
145
+ export declare class DatabaseError extends DatabaseError_base {
146
+ constructor(args: {
147
+ message?: string;
148
+ transient?: boolean;
149
+ cause?: unknown;
150
+ }, disableValidation?: boolean);
151
+ toString(): string;
152
+ }
153
+ export declare const SupportedErrors: S.Union<readonly [typeof InvalidStateError, typeof OptimisticConcurrencyException, typeof NotFoundError, typeof NotLoggedInError, typeof LoginError, typeof UnauthorizedError, typeof ValidationError, typeof ServiceUnavailableError, typeof DatabaseError]>;
108
154
  export type SupportedErrors = S.Schema.Type<typeof SupportedErrors>;
109
- export declare const MutationErrors: S.Union<readonly [typeof InvalidStateError, typeof OptimisticConcurrencyException, typeof NotFoundError, typeof NotLoggedInError, typeof LoginError, typeof UnauthorizedError, typeof ValidationError, typeof ServiceUnavailableError]>;
110
- export declare const QueryErrors: S.Union<readonly [typeof InvalidStateError, typeof OptimisticConcurrencyException, typeof NotFoundError, typeof NotLoggedInError, typeof LoginError, typeof UnauthorizedError, typeof ValidationError, typeof ServiceUnavailableError]>;
155
+ export declare const MutationErrors: S.Union<readonly [typeof InvalidStateError, typeof OptimisticConcurrencyException, typeof NotFoundError, typeof NotLoggedInError, typeof LoginError, typeof UnauthorizedError, typeof ValidationError, typeof ServiceUnavailableError, typeof DatabaseError]>;
156
+ export declare const QueryErrors: S.Union<readonly [typeof InvalidStateError, typeof OptimisticConcurrencyException, typeof NotFoundError, typeof NotLoggedInError, typeof LoginError, typeof UnauthorizedError, typeof ValidationError, typeof ServiceUnavailableError, typeof DatabaseError]>;
111
157
  export type MutationErrors = S.Schema.Type<typeof MutationErrors>;
112
158
  export type QueryErrors = S.Schema.Type<typeof QueryErrors>;
113
159
  export declare const ErrorSilenced: unique symbol;
@@ -131,8 +177,8 @@ export declare class CauseException<E> extends Error {
131
177
  toString(): string;
132
178
  }
133
179
  export declare const tryToReport: (error: {
134
- toReport(): unknown;
180
+ toReport(): Record<string, unknown>;
135
181
  toString(): string;
136
- }) => unknown;
182
+ }) => Record<string, unknown>;
137
183
  export {};
138
184
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/client/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/client/errors.ts"],"names":[],"mappings":"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"}
@@ -4,18 +4,19 @@ import * as Cause from "effect/Cause";
4
4
  import * as S from "../Schema.js";
5
5
  export const tryToJson = (error) => {
6
6
  try {
7
- return error.toJSON();
7
+ const errorJson = error.toJSON();
8
+ return errorJson && typeof errorJson === "object" ? errorJson : { error };
8
9
  }
9
10
  catch {
10
11
  try {
11
- return error.toString();
12
+ return { error: error.toString() };
12
13
  }
13
14
  catch (err) {
14
15
  try {
15
- return `Failed to convert error: ${err}`;
16
+ return { error: `Failed to convert error: ${err}` };
16
17
  }
17
18
  catch {
18
- return `Failed to convert error: unknown failure`;
19
+ return { error: `Failed to convert error: unknown failure` };
19
20
  }
20
21
  }
21
22
  }
@@ -116,6 +117,35 @@ export class OptimisticConcurrencyException extends TaggedErrorClass()("Optimist
116
117
  return `OptimisticConcurrencyException: ${this.message}`;
117
118
  }
118
119
  }
120
+ /**
121
+ * Raised by a store adapter when a database operation fails for an
122
+ * infrastructure reason (request timeout, throttle, 5xx, dropped socket, or any
123
+ * non-conflict error). Distinct from `OptimisticConcurrencyException`, which is
124
+ * an expected etag conflict.
125
+ *
126
+ * `transient` is set by the adapter for failures worth retrying (timeout /
127
+ * throttle / 5xx / network). `cause` is the underlying adapter error, carried
128
+ * through a `Defect` schema so it serializes (an `Error` encodes to
129
+ * `{ name, message, cause }`) instead of breaking JSON encoding of the channel.
130
+ *
131
+ * Treated by the api/client/FE machinery like an unexpected (500-class) error.
132
+ */
133
+ export class DatabaseError extends TaggedErrorClass()("DatabaseError", {
134
+ message: S.String,
135
+ transient: S.Boolean,
136
+ cause: S.optional(S.Defect())
137
+ }) {
138
+ constructor(args, disableValidation) {
139
+ super({
140
+ message: args.message ?? "Database operation failed",
141
+ transient: args.transient ?? false,
142
+ cause: args.cause
143
+ }, disableValidation);
144
+ }
145
+ toString() {
146
+ return `DatabaseError: ${this.message}`;
147
+ }
148
+ }
119
149
  const MutationOnlyErrors = [
120
150
  InvalidStateError,
121
151
  OptimisticConcurrencyException
@@ -126,7 +156,8 @@ const GeneralErrors = [
126
156
  LoginError,
127
157
  UnauthorizedError,
128
158
  ValidationError,
129
- ServiceUnavailableError
159
+ ServiceUnavailableError,
160
+ DatabaseError
130
161
  ];
131
162
  export const SupportedErrors = S.Union([
132
163
  ...MutationOnlyErrors,
@@ -155,9 +186,9 @@ export class CauseException extends Error {
155
186
  const limit = Error.stackTraceLimit;
156
187
  Error.stackTraceLimit = 0;
157
188
  super();
189
+ Error.stackTraceLimit = limit;
158
190
  this.originalCause = originalCause;
159
191
  this._tag = _tag;
160
- Error.stackTraceLimit = limit;
161
192
  this.cause = Cause.squash(originalCause);
162
193
  // v4: makeFiberFailure removed — use Cause.prettyErrors instead
163
194
  const errors = Cause.prettyErrors(originalCause);
@@ -202,16 +233,16 @@ export const tryToReport = (error) => {
202
233
  }
203
234
  catch {
204
235
  try {
205
- return error.toString();
236
+ return { error: error.toString() };
206
237
  }
207
238
  catch (err) {
208
239
  try {
209
- return `Failed to convert error: ${err}`;
240
+ return { error: `Failed to convert error: ${err}` };
210
241
  }
211
242
  catch {
212
- return `Failed to convert error: unknown failure`;
243
+ return { error: `Failed to convert error: unknown failure` };
213
244
  }
214
245
  }
215
246
  }
216
247
  };
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0VBQWdFO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ3BELE9BQU8sS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBQ3JDLE9BQU8sS0FBSyxDQUFDLE1BQU0sY0FBYyxDQUFBO0FBRWpDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLEtBQWdELEVBQUUsRUFBRTtJQUM1RSxJQUFJLENBQUM7UUFDSCxPQUFPLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQTtJQUN2QixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsSUFBSSxDQUFDO1lBQ0gsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUE7UUFDekIsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUM7Z0JBQ0gsT0FBTyw0QkFBNEIsR0FBRyxFQUFFLENBQUE7WUFDMUMsQ0FBQztZQUFDLE1BQU0sQ0FBQztnQkFDUCxPQUFPLDBDQUEwQyxDQUFBO1lBQ25ELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FBQTtBQUVELHlEQUF5RDtBQUN6RCxpQ0FBaUM7QUFDakMsTUFBTSxPQUFPLGFBQWlDLFNBQVEsZ0JBQWdCLEVBQTJCLENBQUMsZUFBZSxFQUFFO0lBQ2pILElBQUksRUFBRSxDQUFDLENBQUMsTUFBTTtJQUNkLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTztDQUNkLENBQUM7SUFDQSxZQUNFLEtBQXFELEVBQ3JELGlCQUEyQjtRQUUzQixLQUFLLENBQUMsS0FBWSxFQUFFLGlCQUF3QixDQUFDLENBQUE7SUFDL0MsQ0FBQztJQUNELElBQWEsT0FBTztRQUNsQixPQUFPLGVBQWdCLElBQVksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMs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
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0VBQWdFO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ3BELE9BQU8sS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBQ3JDLE9BQU8sS0FBSyxDQUFDLE1BQU0sY0FBYyxDQUFBO0FBRWpDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLEtBQWMsRUFBRSxFQUFFO0lBQzFDLElBQUksQ0FBQztRQUNILE1BQU0sU0FBUyxHQUFJLEtBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUN6QyxPQUFPLFNBQVMsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQW9DLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUE7SUFDdEcsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLElBQUksQ0FBQztZQUNILE9BQU8sRUFBRSxLQUFLLEVBQUcsS0FBYSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUE7UUFDN0MsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUM7Z0JBQ0gsT0FBTyxFQUFFLEtBQUssRUFBRSw0QkFBNEIsR0FBRyxFQUFFLEVBQUUsQ0FBQTtZQUNyRCxDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLE9BQU8sRUFBRSxLQUFLLEVBQUUsMENBQTBDLEVBQUUsQ0FBQTtZQUM5RCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDLENBQUE7QUFFRCx5REFBeUQ7QUFDekQsaUNBQWlDO0FBQ2pDLE1BQU0sT0FBTyxhQUFpQyxTQUFRLGdCQUFnQixFQUEyQixDQUFDLGVBQWUsRUFBRTtJQUNqSCxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDZCxFQUFFLEVBQUUsQ0FBQyxDQUFD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