@evolu/common 8.1.0 → 8.3.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 (232) hide show
  1. package/dist/src/Function.d.ts +1 -0
  2. package/dist/src/Function.d.ts.map +1 -1
  3. package/dist/src/Http.d.ts +9 -0
  4. package/dist/src/Http.d.ts.map +1 -1
  5. package/dist/src/Number.d.ts +66 -6
  6. package/dist/src/Number.d.ts.map +1 -1
  7. package/dist/src/Number.js +11 -3
  8. package/dist/src/Object.d.ts +1 -0
  9. package/dist/src/Object.d.ts.map +1 -1
  10. package/dist/src/RefCount.d.ts +1 -0
  11. package/dist/src/RefCount.d.ts.map +1 -1
  12. package/dist/src/Relation.d.ts +2 -0
  13. package/dist/src/Relation.d.ts.map +1 -1
  14. package/dist/src/Resource.d.ts +1 -0
  15. package/dist/src/Resource.d.ts.map +1 -1
  16. package/dist/src/Result.d.ts +383 -548
  17. package/dist/src/Result.d.ts.map +1 -1
  18. package/dist/src/Result.js +296 -46
  19. package/dist/src/Schedule.d.ts +2 -2
  20. package/dist/src/Schedule.d.ts.map +1 -1
  21. package/dist/src/StackTrace.d.ts +1 -0
  22. package/dist/src/StackTrace.d.ts.map +1 -1
  23. package/dist/src/Task.d.ts +978 -1061
  24. package/dist/src/Task.d.ts.map +1 -1
  25. package/dist/src/Task.js +1010 -159
  26. package/dist/src/Time.d.ts +71 -34
  27. package/dist/src/Time.d.ts.map +1 -1
  28. package/dist/src/Time.js +77 -1
  29. package/dist/src/Type.d.ts +1740 -795
  30. package/dist/src/Type.d.ts.map +1 -1
  31. package/dist/src/Type.js +1634 -211
  32. package/dist/src/Types.d.ts +0 -24
  33. package/dist/src/Types.d.ts.map +1 -1
  34. package/dist/src/intl/_en.d.ts +126 -0
  35. package/dist/src/intl/_en.d.ts.map +1 -0
  36. package/dist/src/intl/_en.js +267 -0
  37. package/dist/src/intl/ar.d.ts +117 -0
  38. package/dist/src/intl/ar.d.ts.map +1 -0
  39. package/dist/src/intl/ar.js +245 -0
  40. package/dist/src/intl/bn.d.ts +117 -0
  41. package/dist/src/intl/bn.d.ts.map +1 -0
  42. package/dist/src/intl/bn.js +258 -0
  43. package/dist/src/intl/ca.d.ts +117 -0
  44. package/dist/src/intl/ca.d.ts.map +1 -0
  45. package/dist/src/intl/ca.js +258 -0
  46. package/dist/src/intl/cs.d.ts +30 -7
  47. package/dist/src/intl/cs.d.ts.map +1 -1
  48. package/dist/src/intl/cs.js +65 -28
  49. package/dist/src/intl/da.d.ts +117 -0
  50. package/dist/src/intl/da.d.ts.map +1 -0
  51. package/dist/src/intl/da.js +258 -0
  52. package/dist/src/intl/de.d.ts +117 -0
  53. package/dist/src/intl/de.d.ts.map +1 -0
  54. package/dist/src/intl/de.js +258 -0
  55. package/dist/src/intl/el.d.ts +117 -0
  56. package/dist/src/intl/el.d.ts.map +1 -0
  57. package/dist/src/intl/el.js +265 -0
  58. package/dist/src/intl/es.d.ts +117 -0
  59. package/dist/src/intl/es.d.ts.map +1 -0
  60. package/dist/src/intl/es.js +258 -0
  61. package/dist/src/intl/fa.d.ts +117 -0
  62. package/dist/src/intl/fa.d.ts.map +1 -0
  63. package/dist/src/intl/fa.js +258 -0
  64. package/dist/src/intl/fi.d.ts +117 -0
  65. package/dist/src/intl/fi.d.ts.map +1 -0
  66. package/dist/src/intl/fi.js +258 -0
  67. package/dist/src/intl/fil.d.ts +117 -0
  68. package/dist/src/intl/fil.d.ts.map +1 -0
  69. package/dist/src/intl/fil.js +258 -0
  70. package/dist/src/intl/fr.d.ts +117 -0
  71. package/dist/src/intl/fr.d.ts.map +1 -0
  72. package/dist/src/intl/fr.js +258 -0
  73. package/dist/src/intl/he.d.ts +117 -0
  74. package/dist/src/intl/he.d.ts.map +1 -0
  75. package/dist/src/intl/he.js +258 -0
  76. package/dist/src/intl/hi.d.ts +117 -0
  77. package/dist/src/intl/hi.d.ts.map +1 -0
  78. package/dist/src/intl/hi.js +258 -0
  79. package/dist/src/intl/hr.d.ts +117 -0
  80. package/dist/src/intl/hr.d.ts.map +1 -0
  81. package/dist/src/intl/hr.js +265 -0
  82. package/dist/src/intl/hu.d.ts +63 -0
  83. package/dist/src/intl/hu.d.ts.map +1 -0
  84. package/dist/src/intl/hu.js +204 -0
  85. package/dist/src/intl/id.d.ts +117 -0
  86. package/dist/src/intl/id.d.ts.map +1 -0
  87. package/dist/src/intl/id.js +258 -0
  88. package/dist/src/intl/index.d.ts +42 -0
  89. package/dist/src/intl/index.d.ts.map +1 -1
  90. package/dist/src/intl/index.js +42 -0
  91. package/dist/src/intl/it.d.ts +117 -0
  92. package/dist/src/intl/it.d.ts.map +1 -0
  93. package/dist/src/intl/it.js +258 -0
  94. package/dist/src/intl/ja.d.ts +117 -0
  95. package/dist/src/intl/ja.d.ts.map +1 -0
  96. package/dist/src/intl/ja.js +258 -0
  97. package/dist/src/intl/ko.d.ts +117 -0
  98. package/dist/src/intl/ko.d.ts.map +1 -0
  99. package/dist/src/intl/ko.js +258 -0
  100. package/dist/src/intl/ml.d.ts +117 -0
  101. package/dist/src/intl/ml.d.ts.map +1 -0
  102. package/dist/src/intl/ml.js +258 -0
  103. package/dist/src/intl/mr.d.ts +117 -0
  104. package/dist/src/intl/mr.d.ts.map +1 -0
  105. package/dist/src/intl/mr.js +258 -0
  106. package/dist/src/intl/ms.d.ts +117 -0
  107. package/dist/src/intl/ms.d.ts.map +1 -0
  108. package/dist/src/intl/ms.js +245 -0
  109. package/dist/src/intl/nb.d.ts +63 -0
  110. package/dist/src/intl/nb.d.ts.map +1 -0
  111. package/dist/src/intl/nb.js +191 -0
  112. package/dist/src/intl/nl.d.ts +117 -0
  113. package/dist/src/intl/nl.d.ts.map +1 -0
  114. package/dist/src/intl/nl.js +258 -0
  115. package/dist/src/intl/pa.d.ts +117 -0
  116. package/dist/src/intl/pa.d.ts.map +1 -0
  117. package/dist/src/intl/pa.js +258 -0
  118. package/dist/src/intl/pl.d.ts +117 -0
  119. package/dist/src/intl/pl.d.ts.map +1 -0
  120. package/dist/src/intl/pl.js +242 -0
  121. package/dist/src/intl/pt-BR.d.ts +117 -0
  122. package/dist/src/intl/pt-BR.d.ts.map +1 -0
  123. package/dist/src/intl/pt-BR.js +258 -0
  124. package/dist/src/intl/pt.d.ts +117 -0
  125. package/dist/src/intl/pt.d.ts.map +1 -0
  126. package/dist/src/intl/pt.js +246 -0
  127. package/dist/src/intl/ro.d.ts +117 -0
  128. package/dist/src/intl/ro.d.ts.map +1 -0
  129. package/dist/src/intl/ro.js +258 -0
  130. package/dist/src/intl/sk.d.ts +117 -0
  131. package/dist/src/intl/sk.d.ts.map +1 -0
  132. package/dist/src/intl/sk.js +244 -0
  133. package/dist/src/intl/sl.d.ts +117 -0
  134. package/dist/src/intl/sl.d.ts.map +1 -0
  135. package/dist/src/intl/sl.js +258 -0
  136. package/dist/src/intl/sv.d.ts +117 -0
  137. package/dist/src/intl/sv.d.ts.map +1 -0
  138. package/dist/src/intl/sv.js +258 -0
  139. package/dist/src/intl/sw.d.ts +63 -0
  140. package/dist/src/intl/sw.d.ts.map +1 -0
  141. package/dist/src/intl/sw.js +191 -0
  142. package/dist/src/intl/ta.d.ts +117 -0
  143. package/dist/src/intl/ta.d.ts.map +1 -0
  144. package/dist/src/intl/ta.js +258 -0
  145. package/dist/src/intl/te.d.ts +117 -0
  146. package/dist/src/intl/te.d.ts.map +1 -0
  147. package/dist/src/intl/te.js +258 -0
  148. package/dist/src/intl/th.d.ts +117 -0
  149. package/dist/src/intl/th.d.ts.map +1 -0
  150. package/dist/src/intl/th.js +258 -0
  151. package/dist/src/intl/tr.d.ts +117 -0
  152. package/dist/src/intl/tr.d.ts.map +1 -0
  153. package/dist/src/intl/tr.js +255 -0
  154. package/dist/src/intl/uk.d.ts +117 -0
  155. package/dist/src/intl/uk.d.ts.map +1 -0
  156. package/dist/src/intl/uk.js +258 -0
  157. package/dist/src/intl/ur.d.ts +117 -0
  158. package/dist/src/intl/ur.d.ts.map +1 -0
  159. package/dist/src/intl/ur.js +245 -0
  160. package/dist/src/intl/vi.d.ts +117 -0
  161. package/dist/src/intl/vi.d.ts.map +1 -0
  162. package/dist/src/intl/vi.js +255 -0
  163. package/dist/src/intl/zh-CN.d.ts +117 -0
  164. package/dist/src/intl/zh-CN.d.ts.map +1 -0
  165. package/dist/src/intl/zh-CN.js +258 -0
  166. package/dist/src/intl/zh-TW.d.ts +117 -0
  167. package/dist/src/intl/zh-TW.d.ts.map +1 -0
  168. package/dist/src/intl/zh-TW.js +258 -0
  169. package/dist/src/local-first/Owner.d.ts +156 -62
  170. package/dist/src/local-first/Owner.d.ts.map +1 -1
  171. package/dist/src/local-first/Owner.js +119 -20
  172. package/package.json +1 -1
  173. package/src/Function.ts +2 -0
  174. package/src/Http.ts +9 -0
  175. package/src/Number.ts +85 -14
  176. package/src/Object.ts +2 -0
  177. package/src/RefCount.ts +2 -0
  178. package/src/Relation.ts +4 -0
  179. package/src/Resource.ts +2 -0
  180. package/src/Result.ts +397 -560
  181. package/src/Schedule.ts +1 -1
  182. package/src/StackTrace.ts +2 -0
  183. package/src/Task.ts +1145 -1225
  184. package/src/Time.ts +110 -62
  185. package/src/Type.ts +2842 -835
  186. package/src/Types.ts +0 -49
  187. package/src/intl/_en.ts +497 -0
  188. package/src/intl/ar.ts +417 -0
  189. package/src/intl/bn.ts +486 -0
  190. package/src/intl/ca.ts +488 -0
  191. package/src/intl/cs.ts +131 -32
  192. package/src/intl/da.ts +488 -0
  193. package/src/intl/de.ts +488 -0
  194. package/src/intl/el.ts +494 -0
  195. package/src/intl/es.ts +488 -0
  196. package/src/intl/fa.ts +487 -0
  197. package/src/intl/fi.ts +487 -0
  198. package/src/intl/fil.ts +488 -0
  199. package/src/intl/fr.ts +488 -0
  200. package/src/intl/he.ts +486 -0
  201. package/src/intl/hi.ts +487 -0
  202. package/src/intl/hr.ts +494 -0
  203. package/src/intl/hu.ts +387 -0
  204. package/src/intl/id.ts +487 -0
  205. package/src/intl/index.ts +42 -0
  206. package/src/intl/it.ts +488 -0
  207. package/src/intl/ja.ts +488 -0
  208. package/src/intl/ko.ts +487 -0
  209. package/src/intl/ml.ts +487 -0
  210. package/src/intl/mr.ts +487 -0
  211. package/src/intl/ms.ts +410 -0
  212. package/src/intl/nb.ts +364 -0
  213. package/src/intl/nl.ts +488 -0
  214. package/src/intl/pa.ts +487 -0
  215. package/src/intl/pl.ts +450 -0
  216. package/src/intl/pt-BR.ts +487 -0
  217. package/src/intl/pt.ts +424 -0
  218. package/src/intl/ro.ts +488 -0
  219. package/src/intl/sk.ts +412 -0
  220. package/src/intl/sl.ts +487 -0
  221. package/src/intl/sv.ts +488 -0
  222. package/src/intl/sw.ts +324 -0
  223. package/src/intl/ta.ts +487 -0
  224. package/src/intl/te.ts +487 -0
  225. package/src/intl/th.ts +484 -0
  226. package/src/intl/tr.ts +487 -0
  227. package/src/intl/uk.ts +488 -0
  228. package/src/intl/ur.ts +410 -0
  229. package/src/intl/vi.ts +435 -0
  230. package/src/intl/zh-CN.ts +482 -0
  231. package/src/intl/zh-TW.ts +482 -0
  232. package/src/local-first/Owner.ts +156 -62
package/src/intl/de.ts ADDED
@@ -0,0 +1,488 @@
1
+ /**
2
+ * Deutsche Evolu-Type-Fehlerformatierer.
3
+ *
4
+ * @module
5
+ */
6
+
7
+ import { assertNonNullable } from "../Assert.ts";
8
+ import { safelyStringifyUnknownValue } from "../String.ts";
9
+ import type {
10
+ ArrayError,
11
+ Base64UrlError,
12
+ BetweenError,
13
+ CapitalizedError,
14
+ DateIsoError,
15
+ DateIsoFromDateError,
16
+ DecimalStringError,
17
+ DiscriminatedUnionError,
18
+ EvoluTypeError,
19
+ FiniteError,
20
+ GreaterThanError,
21
+ GreaterThanOrEqualToError,
22
+ InstanceOfError,
23
+ Int64Error,
24
+ Int64StringError,
25
+ IntError,
26
+ IdError,
27
+ JsonError,
28
+ JsonValueError,
29
+ LengthError,
30
+ LessThanError,
31
+ LessThanOrEqualToError,
32
+ LiteralError,
33
+ MaxLengthError,
34
+ MinLengthError,
35
+ MnemonicError,
36
+ MultipleOfError,
37
+ NegativeDecimalStringError,
38
+ NegativeError,
39
+ NameError,
40
+ NeverError,
41
+ NonNaNError,
42
+ NonNegativeDecimalStringError,
43
+ NonNegativeError,
44
+ NonPositiveDecimalStringError,
45
+ NonPositiveError,
46
+ ObjectError,
47
+ ObjectNotObjectError,
48
+ ObjectPropertyAccessError,
49
+ ObjectTagError,
50
+ ObjectUnexpectedPrototypeError,
51
+ PositiveDecimalStringError,
52
+ PositiveError,
53
+ RecordError,
54
+ RegexError,
55
+ SetError,
56
+ TableIdError,
57
+ TemplateLiteralError,
58
+ TrimmedError,
59
+ TupleElementsError,
60
+ TupleError,
61
+ TypeError,
62
+ TypeErrorFormatter,
63
+ TypeOfError,
64
+ UInt64Error,
65
+ UnionError,
66
+ } from "../Type.ts";
67
+
68
+ const formatTypeOfError = (
69
+ error: TypeOfError<
70
+ "String" | "Number" | "BigInt" | "Boolean" | "Symbol" | "Function"
71
+ >,
72
+ ): string => {
73
+ const typeOf = error.expected.toLowerCase();
74
+
75
+ return `Der Wert ${safelyStringifyUnknownValue(error.value)} ist nicht vom Typ ${typeOf}.`;
76
+ };
77
+
78
+ const formatPlainObjectRootError = (
79
+ reason:
80
+ ObjectNotObjectError["reason"] | ObjectUnexpectedPrototypeError["reason"],
81
+ ): string =>
82
+ reason.kind === "NotObject"
83
+ ? `Der Wert ${safelyStringifyUnknownValue(reason.value)} ist kein Objekt.`
84
+ : "Der Wert ist ein Objekt, aber ein Object Output muss ein Plain Object sein oder einen null-Prototyp haben.";
85
+
86
+ /** Formatiert NeverError auf Deutsch. */
87
+ export const formatNeverError: TypeErrorFormatter<NeverError> = (error) =>
88
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} ist für den Typ Never ungültig.`;
89
+
90
+ /** Formatiert einen String-TypeOfError auf Deutsch. */
91
+ export const formatStringError: TypeErrorFormatter<TypeOfError<"String">> =
92
+ formatTypeOfError;
93
+
94
+ /** Formatiert TemplateLiteralError auf Deutsch. */
95
+ export const formatTemplateLiteralError: TypeErrorFormatter<
96
+ TemplateLiteralError
97
+ > = (error) =>
98
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} entspricht nicht dem Template-Literal.`;
99
+
100
+ /** Formatiert einen Number-TypeOfError auf Deutsch. */
101
+ export const formatNumberError: TypeErrorFormatter<TypeOfError<"Number">> =
102
+ formatTypeOfError;
103
+
104
+ /** Formatiert einen BigInt-TypeOfError auf Deutsch. */
105
+ export const formatBigIntError: TypeErrorFormatter<TypeOfError<"BigInt">> =
106
+ formatTypeOfError;
107
+
108
+ /** Formatiert einen Boolean-TypeOfError auf Deutsch. */
109
+ export const formatBooleanError: TypeErrorFormatter<TypeOfError<"Boolean">> =
110
+ formatTypeOfError;
111
+
112
+ /** Formatiert einen Symbol-TypeOfError auf Deutsch. */
113
+ export const formatSymbolError: TypeErrorFormatter<TypeOfError<"Symbol">> =
114
+ formatTypeOfError;
115
+
116
+ /** Formatiert einen Function-TypeOfError auf Deutsch. */
117
+ export const formatFunctionError: TypeErrorFormatter<TypeOfError<"Function">> =
118
+ formatTypeOfError;
119
+
120
+ /** Formatiert EvoluTypeError auf Deutsch. */
121
+ export const formatEvoluTypeError: TypeErrorFormatter<EvoluTypeError> = (
122
+ error,
123
+ ) =>
124
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} ist kein Evolu Type.`;
125
+
126
+ /** Formatiert ObjectTagError auf Deutsch. */
127
+ export const formatObjectTagError: TypeErrorFormatter<ObjectTagError> = (
128
+ error,
129
+ ) =>
130
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} hat nicht den erwarteten Object-Tag ${safelyStringifyUnknownValue(error.expected)}.`;
131
+
132
+ /** Formatiert InstanceOfError auf Deutsch. */
133
+ export const formatInstanceOfError: TypeErrorFormatter<InstanceOfError> = (
134
+ error,
135
+ ) =>
136
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} ist keine Instanz von ${error.constructorName}.`;
137
+
138
+ /** Formatiert LiteralError auf Deutsch. */
139
+ export const formatLiteralError: TypeErrorFormatter<LiteralError> = (error) =>
140
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} ist nicht strikt gleich dem erwarteten Literal: ${globalThis.String(error.expected)}.`;
141
+
142
+ /** Formatiert UnionError auf Deutsch. */
143
+ export const formatUnionError: TypeErrorFormatter<UnionError> = () =>
144
+ "Ein Wert entspricht keiner zulässigen Variante.";
145
+
146
+ /** Formatiert DateIsoError auf Deutsch. */
147
+ export const formatDateIsoError: TypeErrorFormatter<DateIsoError> = (error) =>
148
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} ist kein kanonischer ISO-Datums-/Zeit-String.`;
149
+
150
+ /** Formatiert DateIsoFromDateError auf Deutsch. */
151
+ export const formatDateIsoFromDateError: TypeErrorFormatter<
152
+ DateIsoFromDateError
153
+ > = () => "Der Date-Wert kann nicht als DateIso dargestellt werden.";
154
+
155
+ /** Formatiert DecimalStringError auf Deutsch. */
156
+ export const formatDecimalStringError: TypeErrorFormatter<
157
+ DecimalStringError
158
+ > = (error) =>
159
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} muss ein kanonischer Dezimal-String sein.`;
160
+
161
+ /** Formatiert Int64Error auf Deutsch. */
162
+ export const formatInt64Error: TypeErrorFormatter<Int64Error> = (error) =>
163
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} ist keine gültige vorzeichenbehaftete 64-Bit-Ganzzahl (Int64).`;
164
+
165
+ /** Formatiert UInt64Error auf Deutsch. */
166
+ export const formatUInt64Error: TypeErrorFormatter<UInt64Error> = (error) =>
167
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} ist keine gültige vorzeichenlose 64-Bit-Ganzzahl (UInt64).`;
168
+
169
+ /** Formatiert Int64StringError auf Deutsch. */
170
+ export const formatInt64StringError: TypeErrorFormatter<Int64StringError> = (
171
+ error,
172
+ ) =>
173
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} ist kein gültiger Int64-String.`;
174
+
175
+ /** Formatiert CapitalizedError auf Deutsch. */
176
+ export const formatCapitalizedError: TypeErrorFormatter<CapitalizedError> = (
177
+ error,
178
+ ) =>
179
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} muss mit einem Großbuchstaben beginnen.`;
180
+
181
+ /** Formatiert TrimmedError auf Deutsch. */
182
+ export const formatTrimmedError: TypeErrorFormatter<TrimmedError> = (error) =>
183
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} muss getrimmt sein.`;
184
+
185
+ /** Formatiert MinLengthError auf Deutsch. */
186
+ export const formatMinLengthError: TypeErrorFormatter<MinLengthError> = (
187
+ error,
188
+ ) =>
189
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} erreicht die Mindestlänge von ${error.min} nicht.`;
190
+
191
+ /** Formatiert MaxLengthError auf Deutsch. */
192
+ export const formatMaxLengthError: TypeErrorFormatter<MaxLengthError> = (
193
+ error,
194
+ ) =>
195
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} überschreitet die Maximallänge von ${error.max}.`;
196
+
197
+ /** Formatiert LengthError auf Deutsch. */
198
+ export const formatLengthError: TypeErrorFormatter<LengthError> = (error) =>
199
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} hat nicht die erforderliche Länge von ${error.exact}.`;
200
+
201
+ /** Formatiert RegexError auf Deutsch. */
202
+ export const formatRegexError: TypeErrorFormatter<RegexError> = (error) =>
203
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} entspricht nicht /${error.source}/${error.flags}.`;
204
+
205
+ /** Formatiert Base64UrlError auf Deutsch. */
206
+ export const formatBase64UrlError: TypeErrorFormatter<Base64UrlError> = (
207
+ error,
208
+ ) =>
209
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} ist kein gültiger Base64Url-String.`;
210
+
211
+ /** Formatiert NameError auf Deutsch. */
212
+ export const formatNameError: TypeErrorFormatter<NameError> = (error) =>
213
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} ist kein gültiger Name.`;
214
+
215
+ /** Formatiert MnemonicError auf Deutsch. */
216
+ export const formatMnemonicError: TypeErrorFormatter<MnemonicError> = (error) =>
217
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} ist keine gültige englische BIP39-Mnemonik.`;
218
+
219
+ /** Formatiert IdError auf Deutsch. */
220
+ export const formatIdError: TypeErrorFormatter<IdError> = (error) =>
221
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} ist keine gültige Id.`;
222
+
223
+ /** Formatiert TableIdError auf Deutsch. */
224
+ export const formatTableIdError: TypeErrorFormatter<TableIdError> = (error) =>
225
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} ist keine gültige Id für die Tabelle ${error.table}.`;
226
+
227
+ /** Formatiert NonNegativeError auf Deutsch. */
228
+ export const formatNonNegativeError: TypeErrorFormatter<NonNegativeError> = (
229
+ error,
230
+ ) =>
231
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} muss nichtnegativ sein (>= 0).`;
232
+
233
+ /** Formatiert NonNegativeDecimalStringError auf Deutsch. */
234
+ export const formatNonNegativeDecimalStringError: TypeErrorFormatter<
235
+ NonNegativeDecimalStringError
236
+ > = (error) =>
237
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} muss ein nichtnegativer Dezimal-String sein.`;
238
+
239
+ /** Formatiert PositiveError auf Deutsch. */
240
+ export const formatPositiveError: TypeErrorFormatter<PositiveError> = (error) =>
241
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} muss positiv sein (> 0).`;
242
+
243
+ /** Formatiert PositiveDecimalStringError auf Deutsch. */
244
+ export const formatPositiveDecimalStringError: TypeErrorFormatter<
245
+ PositiveDecimalStringError
246
+ > = (error) =>
247
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} muss ein positiver Dezimal-String sein.`;
248
+
249
+ /** Formatiert NonPositiveError auf Deutsch. */
250
+ export const formatNonPositiveError: TypeErrorFormatter<NonPositiveError> = (
251
+ error,
252
+ ) =>
253
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} muss nichtpositiv sein (<= 0).`;
254
+
255
+ /** Formatiert NonPositiveDecimalStringError auf Deutsch. */
256
+ export const formatNonPositiveDecimalStringError: TypeErrorFormatter<
257
+ NonPositiveDecimalStringError
258
+ > = (error) =>
259
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} muss ein nichtpositiver Dezimal-String sein.`;
260
+
261
+ /** Formatiert NegativeError auf Deutsch. */
262
+ export const formatNegativeError: TypeErrorFormatter<NegativeError> = (error) =>
263
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} muss negativ sein (< 0).`;
264
+
265
+ /** Formatiert NegativeDecimalStringError auf Deutsch. */
266
+ export const formatNegativeDecimalStringError: TypeErrorFormatter<
267
+ NegativeDecimalStringError
268
+ > = (error) =>
269
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} muss ein negativer Dezimal-String sein.`;
270
+
271
+ /** Formatiert IntError auf Deutsch. */
272
+ export const formatIntError: TypeErrorFormatter<IntError> = (error) =>
273
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} muss eine sichere Ganzzahl sein.`;
274
+
275
+ /** Formatiert GreaterThanError auf Deutsch. */
276
+ export const formatGreaterThanError: TypeErrorFormatter<GreaterThanError> = (
277
+ error,
278
+ ) =>
279
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} muss größer als ${error.min} sein.`;
280
+
281
+ /** Formatiert GreaterThanOrEqualToError auf Deutsch. */
282
+ export const formatGreaterThanOrEqualToError: TypeErrorFormatter<
283
+ GreaterThanOrEqualToError
284
+ > = (error) =>
285
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} muss größer als oder gleich ${error.min} sein.`;
286
+
287
+ /** Formatiert LessThanError auf Deutsch. */
288
+ export const formatLessThanError: TypeErrorFormatter<LessThanError> = (error) =>
289
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} muss kleiner als ${error.max} sein.`;
290
+
291
+ /** Formatiert LessThanOrEqualToError auf Deutsch. */
292
+ export const formatLessThanOrEqualToError: TypeErrorFormatter<
293
+ LessThanOrEqualToError
294
+ > = (error) =>
295
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} muss kleiner als oder gleich ${error.max} sein.`;
296
+
297
+ /** Formatiert NonNaNError auf Deutsch. */
298
+ export const formatNonNaNError: TypeErrorFormatter<NonNaNError> = () =>
299
+ "Der Wert darf nicht NaN sein.";
300
+
301
+ /** Formatiert FiniteError auf Deutsch. */
302
+ export const formatFiniteError: TypeErrorFormatter<FiniteError> = (error) =>
303
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} muss endlich sein.`;
304
+
305
+ /** Formatiert MultipleOfError auf Deutsch. */
306
+ export const formatMultipleOfError: TypeErrorFormatter<MultipleOfError> = (
307
+ error,
308
+ ) =>
309
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} muss ein Vielfaches von ${error.divisor} sein.`;
310
+
311
+ /** Formatiert BetweenError auf Deutsch. */
312
+ export const formatBetweenError: TypeErrorFormatter<BetweenError> = (error) =>
313
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} muss zwischen ${error.min} und ${error.max} liegen, einschließlich der Grenzwerte.`;
314
+
315
+ /** Formatiert ArrayError auf Deutsch. */
316
+ export const formatArrayError: TypeErrorFormatter<ArrayError> = (error) => {
317
+ if (error.reason.kind === "NotArray") {
318
+ return `Der Wert ${safelyStringifyUnknownValue(error.reason.value)} ist kein Array.`;
319
+ }
320
+ const issue = error.reason.issues[0];
321
+
322
+ switch (issue.kind) {
323
+ case "Hole":
324
+ return `Das Array-Element am Index ${issue.index} fehlt.`;
325
+ case "Accessor":
326
+ return `Das Array-Element am Index ${issue.index} muss eine Daten-Property sein.`;
327
+ case "ExcessProperty":
328
+ return "Eine zusätzliche Array-Property ist nicht zulässig. Entferne sie oder verwende einen anderen Type.";
329
+ case "Element":
330
+ return `Das Array-Element am Index ${issue.index} ist ungültig.`;
331
+ }
332
+ };
333
+
334
+ /** Formatiert SetError auf Deutsch. */
335
+ export const formatSetError: TypeErrorFormatter<SetError> = (error) => {
336
+ if (error.reason.kind === "NotSet") {
337
+ return `Der Wert ${safelyStringifyUnknownValue(error.reason.value)} ist kein Set.`;
338
+ }
339
+ if (error.reason.kind === "UnexpectedPrototype") {
340
+ return "Der Wert ist eine Instanz einer Set-Unterklasse, aber ein Set Output muss eine direkte Set-Instanz sein.";
341
+ }
342
+
343
+ const issue = error.reason.issues[0];
344
+
345
+ switch (issue.kind) {
346
+ case "ExcessProperty":
347
+ return `Die zusätzliche Set-Property ${safelyStringifyUnknownValue(issue.key)} ist nicht zulässig.`;
348
+ case "Element":
349
+ return `Das Set-Element am Index ${issue.index} ist ungültig.`;
350
+ }
351
+ };
352
+
353
+ /** Formatiert TupleError auf Deutsch. */
354
+ export const formatTupleError: TypeErrorFormatter<
355
+ TupleError | TupleElementsError<TypeError>
356
+ > = (error) => {
357
+ if (error.reason.kind === "NotArray") {
358
+ return `Der Wert ${safelyStringifyUnknownValue(error.reason.value)} ist kein Tuple.`;
359
+ }
360
+ if (error.reason.kind === "InvalidLength") {
361
+ return `Ein Tuple muss genau ${error.reason.expected} Elemente enthalten, der Wert enthält jedoch ${error.reason.actual}.`;
362
+ }
363
+
364
+ const issue = error.reason.issues[0];
365
+
366
+ switch (issue.kind) {
367
+ case "Hole":
368
+ return `Das Tuple-Element am Index ${issue.index} fehlt.`;
369
+ case "Accessor":
370
+ return `Das Tuple-Element am Index ${issue.index} muss eine Daten-Property sein.`;
371
+ case "ExcessProperty":
372
+ return "Eine zusätzliche Tuple-Property ist nicht zulässig. Entferne sie oder verwende einen anderen Type.";
373
+ case "Element":
374
+ return `Das Tuple-Element am Index ${issue.index} ist ungültig.`;
375
+ }
376
+ };
377
+
378
+ /** Formatiert RecordError auf Deutsch. */
379
+ export const formatRecordError: TypeErrorFormatter<RecordError> = (error) => {
380
+ if (error.reason.kind === "NotRecord") {
381
+ return `Der Wert ${safelyStringifyUnknownValue(error.reason.value)} ist kein Record.`;
382
+ }
383
+ if (error.reason.kind === "NotPlainRecord") {
384
+ return "Der Wert ist ein Objekt, aber ein Record Output muss ein Plain Object sein oder einen null-Prototyp haben.";
385
+ }
386
+
387
+ const issue = error.reason.issues[0];
388
+
389
+ switch (issue.kind) {
390
+ case "Key":
391
+ return `Der Property-Key ${safelyStringifyUnknownValue(issue.key)} ist ungültig.`;
392
+ case "Value":
393
+ return `Der Wert der Property ${safelyStringifyUnknownValue(issue.key)} ist ungültig.`;
394
+ case "Accessor":
395
+ return `Die Record-Property ${safelyStringifyUnknownValue(issue.key)} muss eine Daten-Property sein.`;
396
+ case "NonEnumerable":
397
+ return `Die Record-Property ${safelyStringifyUnknownValue(issue.key)} muss enumerierbar sein.`;
398
+ case "Collision":
399
+ return `Die Record-Keys ${safelyStringifyUnknownValue(issue.previousKey)} und ${safelyStringifyUnknownValue(issue.key)} werden zum selben Key ${safelyStringifyUnknownValue(issue.outputKey)} dekodiert.`;
400
+ }
401
+ };
402
+
403
+ /** Formatiert ObjectError auf Deutsch. */
404
+ export const formatObjectError: TypeErrorFormatter<ObjectError> = (error) => {
405
+ if (error.reason.kind !== "Properties") {
406
+ return formatPlainObjectRootError(error.reason);
407
+ }
408
+
409
+ const key = Reflect.ownKeys(error.reason.errors).at(0);
410
+ assertNonNullable(key);
411
+ const propertyError = error.reason.errors[key];
412
+ assertNonNullable(propertyError);
413
+
414
+ if (propertyError.type === "ObjectPropertyAccess") {
415
+ switch ((propertyError as ObjectPropertyAccessError).reason) {
416
+ case "Accessor":
417
+ return "Eine Object-Property muss eine Daten-Property sein. Materialisiere Accessor-Werte als einfache Daten, bevor du diesen Type verwendest, oder verwende einen anderen Type.";
418
+ case "NonEnumerable":
419
+ return "Eine Object-Property muss enumerierbar sein. Mache sie enumerierbar oder verwende einen anderen Type.";
420
+ }
421
+ }
422
+ if (propertyError.type === "ObjectMissingProperty") {
423
+ return `Die erforderliche Property ${safelyStringifyUnknownValue(key)} fehlt.`;
424
+ }
425
+ if (typeof key === "symbol") {
426
+ return "Der Key einer Object-Property muss ein String sein. Entferne die Symbol-Property oder verwende einen anderen Type.";
427
+ }
428
+ if (propertyError.type === "ObjectExcessProperty") {
429
+ return `Die Property ${safelyStringifyUnknownValue(key)} ist nicht zulässig. Entferne sie oder verwende einen anderen Type.`;
430
+ }
431
+ return `Die Property ${safelyStringifyUnknownValue(key)} ist ungültig.`;
432
+ };
433
+
434
+ /** Formatiert DiscriminatedUnionError auf Deutsch. */
435
+ export const formatDiscriminatedUnionError: TypeErrorFormatter<
436
+ DiscriminatedUnionError
437
+ > = (error) => {
438
+ switch (error.reason.kind) {
439
+ case "Object":
440
+ return formatPlainObjectRootError(error.reason.error.reason);
441
+ case "PropertyAccess": {
442
+ const property = `Die Diskriminator-Property ${safelyStringifyUnknownValue(error.reason.key)}`;
443
+ if (error.reason.reason === "Accessor") {
444
+ return `${property} muss eine Daten-Property sein.`;
445
+ }
446
+ if (error.reason.reason === "Inherited") {
447
+ return `${property} muss eine eigene Property sein.`;
448
+ }
449
+ return `${property} muss enumerierbar sein.`;
450
+ }
451
+ case "Discriminator":
452
+ return `Die Diskriminator-Property ${safelyStringifyUnknownValue(error.reason.key)} hat den unerwarteten Wert ${safelyStringifyUnknownValue(error.reason.value)}.`;
453
+ case "Member":
454
+ return `Die ausgewählte Variante ${safelyStringifyUnknownValue(error.reason.discriminator)} ist ungültig.`;
455
+ }
456
+ };
457
+
458
+ /** Formatiert JsonValueError auf Deutsch. */
459
+ export const formatJsonValueError: TypeErrorFormatter<JsonValueError> = (
460
+ error,
461
+ ) => {
462
+ const issue = error.reason.issues[0];
463
+
464
+ switch (issue.kind) {
465
+ case "InvalidType":
466
+ return `Der Wert ${safelyStringifyUnknownValue(issue.value)} ist kein JSON-Wert.`;
467
+ case "NonFiniteNumber":
468
+ return "Eine JSON-Zahl muss endlich sein.";
469
+ case "UnexpectedPrototype":
470
+ return "Der Wert ist ein Objekt, aber ein JsonValue-Objekt muss ein Plain Object sein oder einen null-Prototyp haben.";
471
+ case "Accessor":
472
+ return "Eine JSON-Property muss eine Daten-Property sein. Materialisiere Accessor-Werte als einfache Daten, bevor du diesen Type verwendest, oder verwende einen anderen Type.";
473
+ case "NonEnumerable":
474
+ return "Eine JSON-Objekt-Property muss enumerierbar sein. Entferne sie oder verwende einen anderen Type.";
475
+ case "SymbolProperty":
476
+ return "Der Key einer JSON-Objekt-Property muss ein String sein. Entferne die Symbol-Property oder verwende einen anderen Type.";
477
+ case "Hole":
478
+ return "Ein JSON-Array-Element fehlt.";
479
+ case "ExcessProperty":
480
+ return "Eine zusätzliche JSON-Array-Property ist nicht zulässig. Entferne sie oder verwende einen anderen Type.";
481
+ case "CircularReference":
482
+ return "Ein JsonValue darf keine zirkulären Referenzen enthalten.";
483
+ }
484
+ };
485
+
486
+ /** Formatiert JsonError auf Deutsch. */
487
+ export const formatJsonError: TypeErrorFormatter<JsonError> = (error) =>
488
+ `Der Wert ${safelyStringifyUnknownValue(error.value)} kann nicht in einen JsonValue geparst werden.`;