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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (342) hide show
  1. package/CHANGELOG.md +1269 -0
  2. package/dist/Array.d.ts +2 -1
  3. package/dist/Array.d.ts.map +1 -1
  4. package/dist/Array.js +4 -4
  5. package/dist/Chunk.d.ts.map +1 -1
  6. package/dist/Config/SecretURL.d.ts +3 -1
  7. package/dist/Config/SecretURL.d.ts.map +1 -1
  8. package/dist/Config/SecretURL.js +3 -6
  9. package/dist/Config/internal/configSecretURL.d.ts.map +1 -1
  10. package/dist/Config/internal/configSecretURL.js +2 -2
  11. package/dist/Config.d.ts +2 -0
  12. package/dist/Config.d.ts.map +1 -0
  13. package/dist/Config.js +8 -0
  14. package/dist/ConfigProvider.d.ts +2 -0
  15. package/dist/ConfigProvider.d.ts.map +1 -0
  16. package/dist/ConfigProvider.js +6 -0
  17. package/dist/{ServiceMap.d.ts → Context.d.ts} +18 -20
  18. package/dist/Context.d.ts.map +1 -0
  19. package/dist/Context.js +67 -0
  20. package/dist/Effect.d.ts +10 -9
  21. package/dist/Effect.d.ts.map +1 -1
  22. package/dist/Effect.js +5 -8
  23. package/dist/Emailer.d.ts +51 -0
  24. package/dist/Emailer.d.ts.map +1 -0
  25. package/dist/Emailer.js +7 -0
  26. package/dist/Function.d.ts.map +1 -1
  27. package/dist/Layer.d.ts +10 -6
  28. package/dist/Layer.d.ts.map +1 -1
  29. package/dist/Layer.js +3 -2
  30. package/dist/Model/Repository/Registry.d.ts +22 -0
  31. package/dist/Model/Repository/Registry.d.ts.map +1 -0
  32. package/dist/Model/Repository/Registry.js +18 -0
  33. package/dist/Model/Repository/ext.d.ts +60 -0
  34. package/dist/Model/Repository/ext.d.ts.map +1 -0
  35. package/dist/Model/Repository/ext.js +122 -0
  36. package/dist/Model/Repository/internal/internal.d.ts +63 -0
  37. package/dist/Model/Repository/internal/internal.d.ts.map +1 -0
  38. package/dist/Model/Repository/internal/internal.js +430 -0
  39. package/dist/Model/Repository/legacy.d.ts +21 -0
  40. package/dist/Model/Repository/legacy.d.ts.map +1 -0
  41. package/dist/Model/Repository/legacy.js +2 -0
  42. package/dist/Model/Repository/makeRepo.d.ts +54 -0
  43. package/dist/Model/Repository/makeRepo.d.ts.map +1 -0
  44. package/dist/Model/Repository/makeRepo.js +27 -0
  45. package/dist/Model/Repository/service.d.ts +121 -0
  46. package/dist/Model/Repository/service.d.ts.map +1 -0
  47. package/dist/Model/Repository/service.js +2 -0
  48. package/dist/Model/Repository/validation.d.ts +58 -0
  49. package/dist/Model/Repository/validation.d.ts.map +1 -0
  50. package/dist/Model/Repository/validation.js +32 -0
  51. package/dist/Model/Repository.d.ts +7 -0
  52. package/dist/Model/Repository.d.ts.map +1 -0
  53. package/dist/Model/Repository.js +7 -0
  54. package/dist/Model/dsl.d.ts +33 -0
  55. package/dist/Model/dsl.d.ts.map +1 -0
  56. package/dist/Model/dsl.js +43 -0
  57. package/dist/Model/filter/filterApi.d.ts +30 -0
  58. package/dist/Model/filter/filterApi.d.ts.map +1 -0
  59. package/dist/Model/filter/filterApi.js +2 -0
  60. package/dist/Model/filter/types/errors.d.ts +29 -0
  61. package/dist/Model/filter/types/errors.d.ts.map +1 -0
  62. package/dist/Model/filter/types/errors.js +2 -0
  63. package/dist/Model/filter/types/fields.d.ts +15 -0
  64. package/dist/Model/filter/types/fields.d.ts.map +1 -0
  65. package/dist/Model/filter/types/fields.js +2 -0
  66. package/dist/Model/filter/types/path/common.d.ts +316 -0
  67. package/dist/Model/filter/types/path/common.d.ts.map +1 -0
  68. package/dist/Model/filter/types/path/common.js +2 -0
  69. package/dist/Model/filter/types/path/eager.d.ts +94 -0
  70. package/dist/Model/filter/types/path/eager.d.ts.map +1 -0
  71. package/dist/Model/filter/types/path/eager.js +36 -0
  72. package/dist/Model/filter/types/path/index.d.ts +4 -0
  73. package/dist/Model/filter/types/path/index.d.ts.map +1 -0
  74. package/dist/Model/filter/types/path/index.js +3 -0
  75. package/dist/Model/filter/types/utils.d.ts +79 -0
  76. package/dist/Model/filter/types/utils.d.ts.map +1 -0
  77. package/dist/Model/filter/types/utils.js +2 -0
  78. package/dist/Model/filter/types/validator.d.ts +30 -0
  79. package/dist/Model/filter/types/validator.d.ts.map +1 -0
  80. package/dist/Model/filter/types/validator.js +2 -0
  81. package/dist/Model/filter/types.d.ts +5 -0
  82. package/dist/Model/filter/types.d.ts.map +1 -0
  83. package/dist/Model/filter/types.js +7 -0
  84. package/dist/Model/query/dsl.d.ts +493 -0
  85. package/dist/Model/query/dsl.d.ts.map +1 -0
  86. package/dist/Model/query/dsl.js +376 -0
  87. package/dist/Model/query/new-kid-interpreter.d.ts +136 -0
  88. package/dist/Model/query/new-kid-interpreter.d.ts.map +1 -0
  89. package/dist/Model/query/new-kid-interpreter.js +336 -0
  90. package/dist/Model/query.d.ts +15 -0
  91. package/dist/Model/query.d.ts.map +1 -0
  92. package/dist/Model/query.js +3 -0
  93. package/dist/Model.d.ts +5 -0
  94. package/dist/Model.d.ts.map +1 -0
  95. package/dist/Model.js +5 -0
  96. package/dist/NonEmptySet.d.ts +3 -1
  97. package/dist/NonEmptySet.d.ts.map +1 -1
  98. package/dist/NonEmptySet.js +2 -2
  99. package/dist/Option.d.ts +1 -0
  100. package/dist/Option.d.ts.map +1 -1
  101. package/dist/Option.js +3 -1
  102. package/dist/Pure.d.ts +7 -5
  103. package/dist/Pure.d.ts.map +1 -1
  104. package/dist/Pure.js +17 -14
  105. package/dist/QueueMaker.d.ts +13 -0
  106. package/dist/QueueMaker.d.ts.map +1 -0
  107. package/dist/QueueMaker.js +4 -0
  108. package/dist/RequestContext.d.ts +208 -0
  109. package/dist/RequestContext.d.ts.map +1 -0
  110. package/dist/RequestContext.js +54 -0
  111. package/dist/Schema/Class.d.ts +157 -19
  112. package/dist/Schema/Class.d.ts.map +1 -1
  113. package/dist/Schema/Class.js +214 -17
  114. package/dist/Schema/FastCheck.d.ts.map +1 -1
  115. package/dist/Schema/SchemaParser.d.ts +5 -0
  116. package/dist/Schema/SchemaParser.d.ts.map +1 -0
  117. package/dist/Schema/SchemaParser.js +6 -0
  118. package/dist/Schema/SpecialJsonSchema.d.ts +34 -0
  119. package/dist/Schema/SpecialJsonSchema.d.ts.map +1 -0
  120. package/dist/Schema/SpecialJsonSchema.js +118 -0
  121. package/dist/Schema/SpecialOpenApi.d.ts +32 -0
  122. package/dist/Schema/SpecialOpenApi.d.ts.map +1 -0
  123. package/dist/Schema/SpecialOpenApi.js +123 -0
  124. package/dist/Schema/brand.d.ts +4 -2
  125. package/dist/Schema/brand.d.ts.map +1 -1
  126. package/dist/Schema/brand.js +3 -1
  127. package/dist/Schema/email.d.ts.map +1 -1
  128. package/dist/Schema/email.js +7 -4
  129. package/dist/Schema/ext.d.ts +338 -55
  130. package/dist/Schema/ext.d.ts.map +1 -1
  131. package/dist/Schema/ext.js +358 -53
  132. package/dist/Schema/moreStrings.d.ts +82 -36
  133. package/dist/Schema/moreStrings.d.ts.map +1 -1
  134. package/dist/Schema/moreStrings.js +49 -42
  135. package/dist/Schema/numbers.d.ts +34 -21
  136. package/dist/Schema/numbers.d.ts.map +1 -1
  137. package/dist/Schema/numbers.js +55 -12
  138. package/dist/Schema/phoneNumber.d.ts.map +1 -1
  139. package/dist/Schema/phoneNumber.js +6 -3
  140. package/dist/Schema/strings.d.ts +18 -4
  141. package/dist/Schema/strings.d.ts.map +1 -1
  142. package/dist/Schema/strings.js +1 -5
  143. package/dist/Schema.d.ts +213 -7
  144. package/dist/Schema.d.ts.map +1 -1
  145. package/dist/Schema.js +190 -11
  146. package/dist/Set.d.ts +4 -1
  147. package/dist/Set.d.ts.map +1 -1
  148. package/dist/Set.js +3 -2
  149. package/dist/Store.d.ts +170 -0
  150. package/dist/Store.d.ts.map +1 -0
  151. package/dist/Store.js +121 -0
  152. package/dist/_ext/Array.d.ts +1 -1
  153. package/dist/_ext/Array.d.ts.map +1 -1
  154. package/dist/_ext/Array.js +4 -2
  155. package/dist/_ext/misc.d.ts +4 -1
  156. package/dist/_ext/misc.d.ts.map +1 -1
  157. package/dist/_ext/misc.js +4 -2
  158. package/dist/_ext/ord.ext.d.ts +2 -1
  159. package/dist/_ext/ord.ext.d.ts.map +1 -1
  160. package/dist/_ext/ord.ext.js +2 -2
  161. package/dist/client/InvalidationKeys.d.ts +29 -0
  162. package/dist/client/InvalidationKeys.d.ts.map +1 -0
  163. package/dist/client/InvalidationKeys.js +33 -0
  164. package/dist/client/apiClientFactory.d.ts +19 -31
  165. package/dist/client/apiClientFactory.d.ts.map +1 -1
  166. package/dist/client/apiClientFactory.js +104 -34
  167. package/dist/client/clientFor.d.ts +52 -18
  168. package/dist/client/clientFor.d.ts.map +1 -1
  169. package/dist/client/clientFor.js +9 -1
  170. package/dist/client/errors.d.ts +82 -27
  171. package/dist/client/errors.d.ts.map +1 -1
  172. package/dist/client/errors.js +75 -19
  173. package/dist/client/makeClient.d.ts +494 -32
  174. package/dist/client/makeClient.d.ts.map +1 -1
  175. package/dist/client/makeClient.js +66 -24
  176. package/dist/client.d.ts +1 -0
  177. package/dist/client.d.ts.map +1 -1
  178. package/dist/client.js +2 -1
  179. package/dist/faker.d.ts.map +1 -1
  180. package/dist/http/Request.d.ts +1 -1
  181. package/dist/http/Request.d.ts.map +1 -1
  182. package/dist/http/Request.js +2 -2
  183. package/dist/ids.d.ts +42 -14
  184. package/dist/ids.d.ts.map +1 -1
  185. package/dist/ids.js +30 -5
  186. package/dist/index.d.ts +6 -7
  187. package/dist/index.d.ts.map +1 -1
  188. package/dist/index.js +8 -8
  189. package/dist/middleware.d.ts +13 -7
  190. package/dist/middleware.d.ts.map +1 -1
  191. package/dist/middleware.js +14 -8
  192. package/dist/rpc/Invalidation.d.ts +420 -0
  193. package/dist/rpc/Invalidation.d.ts.map +1 -0
  194. package/dist/rpc/Invalidation.js +168 -0
  195. package/dist/rpc/MiddlewareMaker.d.ts +11 -7
  196. package/dist/rpc/MiddlewareMaker.d.ts.map +1 -1
  197. package/dist/rpc/MiddlewareMaker.js +59 -38
  198. package/dist/rpc/RpcContextMap.d.ts +3 -3
  199. package/dist/rpc/RpcContextMap.d.ts.map +1 -1
  200. package/dist/rpc/RpcContextMap.js +4 -4
  201. package/dist/rpc/RpcMiddleware.d.ts +14 -10
  202. package/dist/rpc/RpcMiddleware.d.ts.map +1 -1
  203. package/dist/rpc/RpcMiddleware.js +1 -1
  204. package/dist/rpc.d.ts +1 -1
  205. package/dist/rpc.d.ts.map +1 -1
  206. package/dist/rpc.js +2 -2
  207. package/dist/runtime.d.ts +19 -0
  208. package/dist/runtime.d.ts.map +1 -0
  209. package/dist/runtime.js +40 -0
  210. package/dist/setupRequest.d.ts +19 -0
  211. package/dist/setupRequest.d.ts.map +1 -0
  212. package/dist/setupRequest.js +69 -0
  213. package/dist/toast.d.ts +51 -0
  214. package/dist/toast.d.ts.map +1 -0
  215. package/dist/toast.js +34 -0
  216. package/dist/transform.d.ts +1 -1
  217. package/dist/transform.d.ts.map +1 -1
  218. package/dist/transform.js +4 -5
  219. package/dist/utils/effectify.d.ts +1 -1
  220. package/dist/utils/effectify.d.ts.map +1 -1
  221. package/dist/utils/effectify.js +2 -2
  222. package/dist/utils/extend.d.ts.map +1 -1
  223. package/dist/utils/gen.d.ts +4 -4
  224. package/dist/utils/gen.d.ts.map +1 -1
  225. package/dist/utils/logLevel.d.ts +2 -2
  226. package/dist/utils/logLevel.d.ts.map +1 -1
  227. package/dist/utils/logger.d.ts +4 -3
  228. package/dist/utils/logger.d.ts.map +1 -1
  229. package/dist/utils/logger.js +4 -4
  230. package/dist/utils.d.ts +34 -39
  231. package/dist/utils.d.ts.map +1 -1
  232. package/dist/utils.js +33 -37
  233. package/dist/validation/validators.d.ts.map +1 -1
  234. package/dist/validation.d.ts.map +1 -1
  235. package/dist/withToast.d.ts +30 -0
  236. package/dist/withToast.d.ts.map +1 -0
  237. package/dist/withToast.js +64 -0
  238. package/package.json +22 -247
  239. package/src/Array.ts +5 -5
  240. package/src/Chunk.ts +3 -3
  241. package/src/Config/SecretURL.ts +6 -3
  242. package/src/Config/internal/configSecretURL.ts +2 -2
  243. package/src/Config.ts +7 -0
  244. package/src/ConfigProvider.ts +5 -0
  245. package/src/{ServiceMap.ts → Context.ts} +56 -63
  246. package/src/Effect.ts +14 -16
  247. package/src/Emailer.ts +51 -0
  248. package/src/Inputify.type.ts +1 -1
  249. package/src/Layer.ts +11 -7
  250. package/src/Model/Repository/Registry.ts +35 -0
  251. package/src/Model/Repository/ext.ts +375 -0
  252. package/src/Model/Repository/internal/internal.ts +741 -0
  253. package/src/Model/Repository/legacy.ts +29 -0
  254. package/src/Model/Repository/makeRepo.ts +145 -0
  255. package/src/Model/Repository/service.ts +676 -0
  256. package/src/Model/Repository/validation.ts +31 -0
  257. package/src/Model/Repository.ts +6 -0
  258. package/src/Model/dsl.ts +129 -0
  259. package/src/Model/filter/filterApi.ts +60 -0
  260. package/src/Model/filter/types/errors.ts +47 -0
  261. package/src/Model/filter/types/fields.ts +50 -0
  262. package/src/Model/filter/types/path/common.ts +404 -0
  263. package/src/Model/filter/types/path/eager.ts +329 -0
  264. package/src/Model/filter/types/path/index.ts +4 -0
  265. package/src/Model/filter/types/utils.ts +128 -0
  266. package/src/Model/filter/types/validator.ts +46 -0
  267. package/src/Model/filter/types.ts +6 -0
  268. package/src/Model/query/dsl.ts +2694 -0
  269. package/src/Model/query/new-kid-interpreter.ts +484 -0
  270. package/src/Model/query.ts +13 -0
  271. package/src/Model.ts +4 -0
  272. package/src/NonEmptySet.ts +6 -4
  273. package/src/Option.ts +2 -0
  274. package/src/Pure.ts +22 -20
  275. package/src/QueueMaker.ts +19 -0
  276. package/src/RequestContext.ts +95 -0
  277. package/src/Schema/Class.ts +517 -59
  278. package/src/Schema/SchemaParser.ts +12 -0
  279. package/src/Schema/SpecialJsonSchema.ts +139 -0
  280. package/src/Schema/SpecialOpenApi.ts +130 -0
  281. package/src/Schema/brand.ts +22 -2
  282. package/src/Schema/email.ts +9 -4
  283. package/src/Schema/ext.ts +446 -91
  284. package/src/Schema/moreStrings.ts +147 -68
  285. package/src/Schema/numbers.ts +97 -28
  286. package/src/Schema/phoneNumber.ts +9 -5
  287. package/src/Schema/strings.ts +23 -14
  288. package/src/Schema.ts +389 -25
  289. package/src/Set.ts +6 -2
  290. package/src/Store.ts +277 -0
  291. package/src/_ext/Array.ts +4 -2
  292. package/src/_ext/misc.ts +4 -1
  293. package/src/_ext/ord.ext.ts +2 -1
  294. package/src/client/InvalidationKeys.ts +50 -0
  295. package/src/client/apiClientFactory.ts +234 -135
  296. package/src/client/clientFor.ts +105 -34
  297. package/src/client/errors.ts +100 -29
  298. package/src/client/makeClient.ts +594 -73
  299. package/src/client.ts +5 -4
  300. package/src/http/Request.ts +3 -3
  301. package/src/http.ts +1 -1
  302. package/src/ids.ts +33 -6
  303. package/src/index.ts +20 -23
  304. package/src/middleware.ts +13 -9
  305. package/src/rpc/Invalidation.ts +261 -0
  306. package/src/rpc/MiddlewareMaker.ts +88 -80
  307. package/src/rpc/README.md +2 -2
  308. package/src/rpc/RpcContextMap.ts +7 -6
  309. package/src/rpc/RpcMiddleware.ts +19 -13
  310. package/src/rpc.ts +4 -4
  311. package/src/runtime.ts +56 -0
  312. package/src/setupRequest.ts +134 -0
  313. package/src/toast.ts +54 -0
  314. package/src/transform.ts +4 -4
  315. package/src/utils/effectify.ts +1 -1
  316. package/src/utils/gen.ts +8 -8
  317. package/src/utils/logLevel.ts +1 -1
  318. package/src/utils/logger.ts +4 -3
  319. package/src/utils.ts +85 -158
  320. package/src/validation.ts +2 -2
  321. package/src/withToast.ts +133 -0
  322. package/test/dist/rpc.test.d.ts.map +1 -1
  323. package/test/dist/secretURL.test.d.ts.map +1 -0
  324. package/test/dist/special.test.d.ts.map +1 -0
  325. package/test/moreStrings.test.ts +1 -1
  326. package/test/rpc.test.ts +46 -6
  327. package/test/schema.test.ts +459 -30
  328. package/test/secretURL.test.ts +160 -0
  329. package/test/special.test.ts +1026 -0
  330. package/test/utils.test.ts +7 -7
  331. package/tsconfig.base.json +6 -5
  332. package/tsconfig.json +3 -1
  333. package/tsconfig.json.bak +2 -2
  334. package/tsconfig.src.json +29 -29
  335. package/tsconfig.test.json +2 -2
  336. package/dist/Operations.d.ts +0 -123
  337. package/dist/Operations.d.ts.map +0 -1
  338. package/dist/Operations.js +0 -29
  339. package/dist/ServiceMap.d.ts.map +0 -1
  340. package/dist/ServiceMap.js +0 -91
  341. package/eslint.config.mjs +0 -26
  342. package/src/Operations.ts +0 -55
@@ -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: S.ErrorClass<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: {
@@ -15,28 +16,38 @@ export declare class NotFoundError<ItemType = string> extends NotFoundError_base
15
16
  cause?: unknown;
16
17
  }, disableValidation?: boolean);
17
18
  get message(): string;
19
+ toString(): string;
18
20
  }
19
- declare const InvalidStateError_base: S.ErrorClass<InvalidStateError, S.TaggedStruct<"InvalidStateError", {
20
- 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;
21
25
  }>, Cause.YieldableError>;
22
26
  export declare class InvalidStateError extends InvalidStateError_base {
23
27
  constructor(messageOrObject: string | {
24
28
  message: string;
25
29
  cause?: unknown;
26
30
  }, disableValidation?: boolean);
31
+ toString(): string;
27
32
  }
28
- declare const ServiceUnavailableError_base: S.ErrorClass<ServiceUnavailableError, S.TaggedStruct<"ServiceUnavailableError", {
29
- 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;
30
37
  }>, Cause.YieldableError>;
31
38
  export declare class ServiceUnavailableError extends ServiceUnavailableError_base {
32
39
  constructor(messageOrObject: string | {
33
40
  message: string;
34
41
  cause?: unknown;
35
42
  }, disableValidation?: boolean);
43
+ toString(): string;
36
44
  }
37
- declare const ValidationError_base: S.ErrorClass<ValidationError, S.TaggedStruct<"ValidationError", {
38
- readonly errors: S.$Array<S.Unknown> & {
39
- withDefault: S.withConstructorDefault<S.$Array<S.Unknown> & S.WithoutConstructorDefault>;
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>;
40
51
  };
41
52
  }>, Cause.YieldableError>;
42
53
  export declare class ValidationError extends ValidationError_base {
@@ -45,18 +56,24 @@ export declare class ValidationError extends ValidationError_base {
45
56
  cause?: unknown;
46
57
  }, disableValidation?: boolean);
47
58
  get message(): string;
59
+ toString(): string;
48
60
  }
49
- declare const NotLoggedInError_base: S.ErrorClass<NotLoggedInError, S.TaggedStruct<"NotLoggedInError", {
50
- 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;
51
65
  }>, Cause.YieldableError>;
52
66
  export declare class NotLoggedInError extends NotLoggedInError_base {
53
67
  constructor(messageOrObject?: string | {
54
68
  message: string;
55
69
  cause?: unknown;
56
70
  }, disableValidation?: boolean);
71
+ toString(): string;
57
72
  }
58
- declare const LoginError_base: S.ErrorClass<LoginError, S.TaggedStruct<"NotLoggedInError", {
59
- 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;
60
77
  }>, Cause.YieldableError>;
61
78
  /**
62
79
  * The user carries a valid Userprofile, but there is a problem with the login none the less.
@@ -66,15 +83,19 @@ export declare class LoginError extends LoginError_base {
66
83
  message: string;
67
84
  cause?: unknown;
68
85
  }, disableValidation?: boolean);
86
+ toString(): string;
69
87
  }
70
- declare const UnauthorizedError_base: S.ErrorClass<UnauthorizedError, S.TaggedStruct<"UnauthorizedError", {
71
- 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;
72
92
  }>, Cause.YieldableError>;
73
93
  export declare class UnauthorizedError extends UnauthorizedError_base {
74
94
  constructor(messageOrObject?: string | {
75
95
  message: string;
76
96
  cause?: unknown;
77
97
  }, disableValidation?: boolean);
98
+ toString(): string;
78
99
  }
79
100
  type OptimisticConcurrencyDetails = {
80
101
  readonly type: string;
@@ -83,8 +104,10 @@ type OptimisticConcurrencyDetails = {
83
104
  readonly current?: string | undefined;
84
105
  readonly found?: string | undefined;
85
106
  };
86
- declare const OptimisticConcurrencyException_base: S.ErrorClass<OptimisticConcurrencyException, S.TaggedStruct<"OptimisticConcurrencyException", {
87
- 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;
88
111
  }>, Cause.YieldableError>;
89
112
  export declare class OptimisticConcurrencyException extends OptimisticConcurrencyException_base {
90
113
  readonly details?: OptimisticConcurrencyDetails;
@@ -94,11 +117,43 @@ export declare class OptimisticConcurrencyException extends OptimisticConcurrenc
94
117
  cause?: unknown;
95
118
  raw?: unknown;
96
119
  }), disableValidation?: boolean);
120
+ toString(): string;
121
+ }
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;
97
152
  }
98
- export declare const SupportedErrors: S.Union<readonly [typeof InvalidStateError, typeof OptimisticConcurrencyException, typeof NotFoundError, typeof NotLoggedInError, typeof LoginError, typeof UnauthorizedError, typeof ValidationError, typeof ServiceUnavailableError]>;
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]>;
99
154
  export type SupportedErrors = S.Schema.Type<typeof SupportedErrors>;
100
- export declare const MutationErrors: S.Union<readonly [typeof InvalidStateError, typeof OptimisticConcurrencyException, typeof NotFoundError, typeof NotLoggedInError, typeof LoginError, typeof UnauthorizedError, typeof ValidationError, typeof ServiceUnavailableError]>;
101
- 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]>;
102
157
  export type MutationErrors = S.Schema.Type<typeof MutationErrors>;
103
158
  export type QueryErrors = S.Schema.Type<typeof QueryErrors>;
104
159
  export declare const ErrorSilenced: unique symbol;
@@ -122,8 +177,8 @@ export declare class CauseException<E> extends Error {
122
177
  toString(): string;
123
178
  }
124
179
  export declare const tryToReport: (error: {
125
- toReport(): unknown;
180
+ toReport(): Record<string, unknown>;
126
181
  toString(): string;
127
- }) => unknown;
182
+ }) => Record<string, unknown>;
128
183
  export {};
129
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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"}
@@ -1,28 +1,29 @@
1
1
  /** @effect-diagnostics overriddenSchemaConstructor:skip-file */
2
- import { TaggedError } from "effect-app/Schema";
2
+ import { TaggedErrorClass } from "effect-app/Schema";
3
3
  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
  }
22
23
  };
23
24
  // eslint-disable-next-line unused-imports/no-unused-vars
24
25
  // @ts-expect-error type not used
25
- export class NotFoundError extends TaggedError()("NotFoundError", {
26
+ export class NotFoundError extends TaggedErrorClass()("NotFoundError", {
26
27
  type: S.String,
27
28
  id: S.Unknown
28
29
  }) {
@@ -32,23 +33,32 @@ export class NotFoundError extends TaggedError()("NotFoundError", {
32
33
  get message() {
33
34
  return `Didn't find ${this.type}#${JSON.stringify(this.id)}`;
34
35
  }
36
+ toString() {
37
+ return `NotFoundError: ${this.message}`;
38
+ }
35
39
  }
36
40
  const messageFallback = (messageOrObject) => typeof messageOrObject === "object" ? messageOrObject : { message: messageOrObject ?? "" };
37
- export class InvalidStateError extends TaggedError()("InvalidStateError", {
41
+ export class InvalidStateError extends TaggedErrorClass()("InvalidStateError", {
38
42
  message: S.String
39
43
  }) {
40
44
  constructor(messageOrObject, disableValidation) {
41
45
  super(typeof messageOrObject === "object" ? messageOrObject : { message: messageOrObject }, disableValidation);
42
46
  }
47
+ toString() {
48
+ return `InvalidStateError: ${this.message}`;
49
+ }
43
50
  }
44
- export class ServiceUnavailableError extends TaggedError()("ServiceUnavailableError", {
51
+ export class ServiceUnavailableError extends TaggedErrorClass()("ServiceUnavailableError", {
45
52
  message: S.String
46
53
  }) {
47
54
  constructor(messageOrObject, disableValidation) {
48
55
  super(typeof messageOrObject === "object" ? messageOrObject : { message: messageOrObject }, disableValidation);
49
56
  }
57
+ toString() {
58
+ return `ServiceUnavailableError: ${this.message}`;
59
+ }
50
60
  }
51
- export class ValidationError extends TaggedError()("ValidationError", {
61
+ export class ValidationError extends TaggedErrorClass()("ValidationError", {
52
62
  errors: S.Array(S.Unknown)
53
63
  }) {
54
64
  constructor(props, disableValidation) {
@@ -57,32 +67,44 @@ export class ValidationError extends TaggedError()("ValidationError", {
57
67
  get message() {
58
68
  return `Validation failed: ${this.errors.map((e) => JSON.stringify(e, undefined, 2)).join(",\n")}`;
59
69
  }
70
+ toString() {
71
+ return `ValidationError: ${this.message}`;
72
+ }
60
73
  }
61
- export class NotLoggedInError extends TaggedError()("NotLoggedInError", {
74
+ export class NotLoggedInError extends TaggedErrorClass()("NotLoggedInError", {
62
75
  message: S.String
63
76
  }) {
64
77
  constructor(messageOrObject, disableValidation) {
65
78
  super(messageFallback(messageOrObject), disableValidation);
66
79
  }
80
+ toString() {
81
+ return `NotLoggedInError: ${this.message}`;
82
+ }
67
83
  }
68
84
  /**
69
85
  * The user carries a valid Userprofile, but there is a problem with the login none the less.
70
86
  */
71
- export class LoginError extends TaggedError()("NotLoggedInError", {
87
+ export class LoginError extends TaggedErrorClass()("NotLoggedInError", {
72
88
  message: S.String
73
89
  }) {
74
90
  constructor(messageOrObject, disableValidation) {
75
91
  super(messageFallback(messageOrObject), disableValidation);
76
92
  }
93
+ toString() {
94
+ return `LoginError: ${this.message}`;
95
+ }
77
96
  }
78
- export class UnauthorizedError extends TaggedError()("UnauthorizedError", {
97
+ export class UnauthorizedError extends TaggedErrorClass()("UnauthorizedError", {
79
98
  message: S.String
80
99
  }) {
81
100
  constructor(messageOrObject, disableValidation) {
82
101
  super(messageFallback(messageOrObject), disableValidation);
83
102
  }
103
+ toString() {
104
+ return `UnauthorizedError: ${this.message}`;
105
+ }
84
106
  }
85
- export class OptimisticConcurrencyException extends TaggedError()("OptimisticConcurrencyException", { message: S.String }) {
107
+ export class OptimisticConcurrencyException extends TaggedErrorClass()("OptimisticConcurrencyException", { message: S.String }) {
86
108
  details;
87
109
  raw;
88
110
  constructor(args, disableValidation) {
@@ -91,6 +113,38 @@ export class OptimisticConcurrencyException extends TaggedError()("OptimisticCon
91
113
  this.details = args;
92
114
  }
93
115
  }
116
+ toString() {
117
+ return `OptimisticConcurrencyException: ${this.message}`;
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
+ }
94
148
  }
95
149
  const MutationOnlyErrors = [
96
150
  InvalidStateError,
@@ -102,7 +156,8 @@ const GeneralErrors = [
102
156
  LoginError,
103
157
  UnauthorizedError,
104
158
  ValidationError,
105
- ServiceUnavailableError
159
+ ServiceUnavailableError,
160
+ DatabaseError
106
161
  ];
107
162
  export const SupportedErrors = S.Union([
108
163
  ...MutationOnlyErrors,
@@ -131,9 +186,10 @@ export class CauseException extends Error {
131
186
  const limit = Error.stackTraceLimit;
132
187
  Error.stackTraceLimit = 0;
133
188
  super();
189
+ Error.stackTraceLimit = limit;
134
190
  this.originalCause = originalCause;
135
191
  this._tag = _tag;
136
- Error.stackTraceLimit = limit;
192
+ this.cause = Cause.squash(originalCause);
137
193
  // v4: makeFiberFailure removed — use Cause.prettyErrors instead
138
194
  const errors = Cause.prettyErrors(originalCause);
139
195
  const first = errors[0];
@@ -177,16 +233,16 @@ export const tryToReport = (error) => {
177
233
  }
178
234
  catch {
179
235
  try {
180
- return error.toString();
236
+ return { error: error.toString() };
181
237
  }
182
238
  catch (err) {
183
239
  try {
184
- return `Failed to convert error: ${err}`;
240
+ return { error: `Failed to convert error: ${err}` };
185
241
  }
186
242
  catch {
187
- return `Failed to convert error: unknown failure`;
243
+ return { error: `Failed to convert error: unknown failure` };
188
244
  }
189
245
  }
190
246
  }
191
247
  };
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0VBQWdFO0FBQ2hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUMvQyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEtBQUssQ0FBQyxNQUFNLGNBQWMsQ0FBQTtBQUVqQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFnRCxFQUFFLEVBQUU7SUFDNUUsSUFBSSxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDdkIsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLElBQUksQ0FBQztZQUNILE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQ3pCLENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDO2dCQUNILE9BQU8sNEJBQTRCLEdBQUcsRUFBRSxDQUFBO1lBQzFDLENBQUM7WUFBQyxNQUFNLENBQUM7Z0JBQ1AsT0FBTywwQ0FBMEMsQ0FBQTtZQUNuRCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDLENBQUE7QUFFRCx5REFBeUQ7QUFDekQsaUNBQWlDO0FBQ2pDLE1BQU0sT0FBTyxhQUFpQyxTQUFRLFdBQVcsRUFBMkIsQ0FBQyxlQUFlLEVBQUU7SUFDNUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNO0lBQ2QsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPO0NBQ2QsQ0FBQztJQUNBLFlBQ0UsS0FBcUQsRUFDckQsaUJBQTJCO1FBRTNCLEtBQUssQ0FBQyxLQUFZLEVBQUUsaUJBQXdCLENBQUMsQ0FBQTtJQUMvQyxDQUFDO0lBQ0QsSUFBYSxPQUFPO1FBQ2xCLE9BQU8sZUFBZ0IsSUFBWSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFFLElBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFBO0lBQ2hGLENBQUM7Q0FDRjtBQUVELE1BQU0sZUFBZSxHQUFHLENBQUMsZUFBOEMsRUFBRSxFQUFFLENBQ3pFLE9BQU8sZUFBZSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxlQUFlLElBQUksRUFBRSxFQUFFLENBQUE7QUFFNUYsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFdBQVcsRUFBcUIsQ0FBQyxtQkFBbUIsRUFBRTtJQUMzRixPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU07Q0FDbEIsQ0FBQztJQUNBLFlBQVksZUFBOEQsRUFBRSxpQkFBMkI7UUFDckcsS0FBSyxDQUNILE9BQU8sZUFBZSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQVMsRUFDM0YsaUJBQXdCLENBQ3pCLENBQUE7SUFDSCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsV0FBVyxFQUEyQixDQUFDLHlCQUF5QixFQUFFO0lBQzdHLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTTtDQUNsQixDQUFDO0lBQ0EsWUFBWSxlQUE4RCxFQUFFLGlCQUEyQjtRQUNyRyxLQUFLLENBQ0gsT0FBTyxlQUFlLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBUyxFQUMzRixpQkFBd0IsQ0FDekIsQ0FBQTtJQUNILENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxlQUFnQixTQUFRLFdBQVcsRUFBbUIsQ0FBQyxpQkFBaUIsRUFBRTtJQUNyRixNQUFNLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0NBQzNCLENBQUM7SUFDQSxZQUNFLEtBQTBELEVBQzFELGlCQUEyQjtRQUUzQixLQUFLLENBQUMsS0FBWSxFQUFFLGlCQUF3QixDQUFDLENBQUE7SUFDL0MsQ0FBQztJQUNELElBQWEsT0FBTztRQUNsQixPQUFPLHNCQUF1QixJQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUE7SUFDbEgsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFdBQVcsRUFBb0IsQ0FBQyxrQkFBa0IsRUFBRTtJQUN4RixPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU07Q0FDbEIsQ0FBQztJQUNBLFlBQVksZUFBK0QsRUFBRSxpQkFBMkI7UUFDdEcsS0FBSyxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQVEsRUFBRSxpQkFBd0IsQ0FBQyxDQUFBO0lBQzFFLENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFVBQVcsU0FBUSxXQUFXLEVBQWMsQ0FBQyxrQkFBa0IsRUFBRTtJQUM1RSxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU07Q0FDbEIsQ0FBQztJQUNBLFlBQVksZUFBK0QsRUFBRSxpQkFBMkI7UUFDdEcsS0FBSyxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQVEsRUFBRSxpQkFBd0IsQ0FBQyxDQUFBO0lBQzFFLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxXQUFXLEVBQXFCLENBQUMsbUJBQW1CLEVBQUU7SUFDM0YsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNO0NBQ2xCLENBQUM7SUFDQSxZQUFZLGVBQStELEVBQUUsaUJBQTJCO1FBQ3RHLEtBQUssQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFRLEVBQUUsaUJBQXdCLENBQUMsQ0FBQTtJQUMxRSxDQUFDO0NBQ0Y7QUFVRCxNQUFNLE9BQU8sOEJBQStCLFNBQVEsV0FBVyxFQUFrQyxDQUMvRixnQ0FBZ0MsRUFDaEMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUN0QjtJQUNVLE9BQU8sQ0FBK0I7SUFDdEMsR0FBRyxDQUFVO0lBQ3RCLFlBQ0UsSUFFeUQsRUFDekQsaUJBQTJCO1FBRTNCLEtBQUssQ0FDSCxTQUFTLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFlBQVksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxpQkFBaUIsRUFBUyxFQUNoRyxpQkFBd0IsQ0FDekIsQ0FBQTtRQUNELElBQUksQ0FBQyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFBO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLGtCQUFrQixHQUFHO0lBQ3pCLGlCQUFpQjtJQUNqQiw4QkFBOEI7Q0FDdEIsQ0FBQTtBQUVWLE1BQU0sYUFBYSxHQUFHO0lBQ3BCLGFBQWE7SUFDYixnQkFBZ0I7SUFDaEIsVUFBVTtJQUNWLGlCQUFpQjtJQUNqQixlQUFlO0lBQ2YsdUJBQXVCO0NBQ2YsQ0FBQTtBQUVWLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3JDLEdBQUcsa0JBQWtCO0lBQ3JCLEdBQUcsYUFBYTtDQUNqQixDQUFDLENBQUE7QUFLRixTQUFTO0FBQ1QseURBQXlEO0FBQ3pELGdDQUFnQztBQUNoQywyQkFBMkI7QUFDM0IsNERBQTREO0FBQzVELDhFQUE4RTtBQUM5RSxtQ0FBbUM7QUFDbkMsMkJBQTJCO0FBRTNCLGtFQUFrRTtBQUVsRSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFBO0FBQzdDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxlQUFlLENBQUE7QUFJMUMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtBQUNwRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFVLEVBQVcsRUFBRSxDQUNyRCxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxhQUFhLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFDeEYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBMkIsRUFBRSxFQUFFO0lBQzFELENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLENBQUE7QUFDekIsQ0FBQyxDQUFBO0FBRUQsTUFBTSxPQUFPLGNBQWtCLFNBQVEsS0FBSztJQUNyQjtJQUF3QztJQUE3RCxZQUFxQixhQUE2QixFQUFXLElBQVk7UUFDdkUsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQTtRQUNuQyxLQUFLLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQTtRQUN6QixLQUFLLEVBQUUsQ0FBQTtRQUhZLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUFXLFNBQUksR0FBSixJQUFJLENBQVE7UUFJdkUsS0FBSyxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUE7UUFDN0IsZ0VBQWdFO1FBQ2hFLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDaEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3ZCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUE7WUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFBO1lBQzVCLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUE7WUFDMUIsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLElBQUksR0FBRyxnQkFBZ0IsQ0FBQTtZQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDNUMsQ0FBQztJQUNILENBQUM7SUFDRCxRQUFRO1FBQ04sT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFBO0lBQ0gsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtTQUNsQyxDQUFBO0lBQ0gsQ0FBQztJQUVELENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQ3RCLENBQUM7SUFDUSxRQUFRO1FBQ2YsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUM3RCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFrRCxFQUFFLEVBQUU7SUFDaEYsSUFBSSxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDekIsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLElBQUksQ0FBQztZQUNILE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQ3pCLENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDO2dCQUNILE9BQU8sNEJBQTRCLEdBQUcsRUFBRSxDQUFBO1lBQzFDLENBQUM7WUFBQyxNQUFNLENBQUM7Z0JBQ1AsT0FBTywwQ0FBMEMsQ0FBQTtZQUNuRCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDLENBQUEifQ==
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0VBQWdFO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ3BELE9BQU8sS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBQ3JDLE9BQU8sS0FBSyxDQUFDLE1BQU0sY0FBYyxDQUFBO0FBRWpDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLEtBQWMsRUFBRSxFQUFFO0lBQzFDLElBQUksQ0FBQztRQUNILE1BQU0sU0FBUyxHQUFJLEtBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUN6QyxPQUFPLFNBQVMsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQW9DLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUE7SUFDdEcsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLElBQUksQ0FBQztZQUNILE9BQU8sRUFBRSxLQUFLLEVBQUcsS0FBYSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUE7UUFDN0MsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUM7Z0JBQ0gsT0FBTyxFQUFFLEtBQUssRUFBRSw0QkFBNEIsR0FBRyxFQUFFLEVBQUUsQ0FBQTtZQUNyRCxDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLE9BQU8sRUFBRSxLQUFLLEVBQUUsMENBQTBDLEVBQUUsQ0FBQTtZQUM5RCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDLENBQUE7QUFFRCx5REFBeUQ7QUFDekQsaUNBQWlDO0FBQ2pDLE1BQU0sT0FBTyxhQUFpQyxTQUFRLGdCQUFnQixFQUEyQixDQUFDLGVBQWUsRUFBRTtJQUNqSCxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDZCxFQUFFLEVBQUUsQ0FBQyxDQUFD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