@evolu/common 8.2.0 → 8.3.1

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 (221) 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/Object.d.ts +1 -0
  6. package/dist/src/Object.d.ts.map +1 -1
  7. package/dist/src/RefCount.d.ts +1 -0
  8. package/dist/src/RefCount.d.ts.map +1 -1
  9. package/dist/src/Relation.d.ts +2 -0
  10. package/dist/src/Relation.d.ts.map +1 -1
  11. package/dist/src/Resource.d.ts +1 -0
  12. package/dist/src/Resource.d.ts.map +1 -1
  13. package/dist/src/Result.d.ts +383 -548
  14. package/dist/src/Result.d.ts.map +1 -1
  15. package/dist/src/Result.js +296 -46
  16. package/dist/src/StackTrace.d.ts +1 -0
  17. package/dist/src/StackTrace.d.ts.map +1 -1
  18. package/dist/src/Task.d.ts +985 -1069
  19. package/dist/src/Task.d.ts.map +1 -1
  20. package/dist/src/Task.js +1007 -156
  21. package/dist/src/Time.d.ts +1 -0
  22. package/dist/src/Time.d.ts.map +1 -1
  23. package/dist/src/Type.d.ts +1322 -793
  24. package/dist/src/Type.d.ts.map +1 -1
  25. package/dist/src/Type.js +1192 -244
  26. package/dist/src/intl/_en.d.ts +126 -0
  27. package/dist/src/intl/_en.d.ts.map +1 -0
  28. package/dist/src/intl/_en.js +267 -0
  29. package/dist/src/intl/ar.d.ts +117 -0
  30. package/dist/src/intl/ar.d.ts.map +1 -0
  31. package/dist/src/intl/ar.js +245 -0
  32. package/dist/src/intl/bn.d.ts +117 -0
  33. package/dist/src/intl/bn.d.ts.map +1 -0
  34. package/dist/src/intl/bn.js +258 -0
  35. package/dist/src/intl/ca.d.ts +117 -0
  36. package/dist/src/intl/ca.d.ts.map +1 -0
  37. package/dist/src/intl/ca.js +258 -0
  38. package/dist/src/intl/cs.d.ts +20 -7
  39. package/dist/src/intl/cs.d.ts.map +1 -1
  40. package/dist/src/intl/cs.js +54 -27
  41. package/dist/src/intl/da.d.ts +117 -0
  42. package/dist/src/intl/da.d.ts.map +1 -0
  43. package/dist/src/intl/da.js +258 -0
  44. package/dist/src/intl/de.d.ts +117 -0
  45. package/dist/src/intl/de.d.ts.map +1 -0
  46. package/dist/src/intl/de.js +258 -0
  47. package/dist/src/intl/el.d.ts +117 -0
  48. package/dist/src/intl/el.d.ts.map +1 -0
  49. package/dist/src/intl/el.js +265 -0
  50. package/dist/src/intl/es.d.ts +117 -0
  51. package/dist/src/intl/es.d.ts.map +1 -0
  52. package/dist/src/intl/es.js +258 -0
  53. package/dist/src/intl/fa.d.ts +117 -0
  54. package/dist/src/intl/fa.d.ts.map +1 -0
  55. package/dist/src/intl/fa.js +258 -0
  56. package/dist/src/intl/fi.d.ts +117 -0
  57. package/dist/src/intl/fi.d.ts.map +1 -0
  58. package/dist/src/intl/fi.js +258 -0
  59. package/dist/src/intl/fil.d.ts +117 -0
  60. package/dist/src/intl/fil.d.ts.map +1 -0
  61. package/dist/src/intl/fil.js +258 -0
  62. package/dist/src/intl/fr.d.ts +117 -0
  63. package/dist/src/intl/fr.d.ts.map +1 -0
  64. package/dist/src/intl/fr.js +258 -0
  65. package/dist/src/intl/he.d.ts +117 -0
  66. package/dist/src/intl/he.d.ts.map +1 -0
  67. package/dist/src/intl/he.js +258 -0
  68. package/dist/src/intl/hi.d.ts +117 -0
  69. package/dist/src/intl/hi.d.ts.map +1 -0
  70. package/dist/src/intl/hi.js +258 -0
  71. package/dist/src/intl/hr.d.ts +117 -0
  72. package/dist/src/intl/hr.d.ts.map +1 -0
  73. package/dist/src/intl/hr.js +265 -0
  74. package/dist/src/intl/hu.d.ts +63 -0
  75. package/dist/src/intl/hu.d.ts.map +1 -0
  76. package/dist/src/intl/hu.js +204 -0
  77. package/dist/src/intl/id.d.ts +117 -0
  78. package/dist/src/intl/id.d.ts.map +1 -0
  79. package/dist/src/intl/id.js +258 -0
  80. package/dist/src/intl/index.d.ts +42 -0
  81. package/dist/src/intl/index.d.ts.map +1 -1
  82. package/dist/src/intl/index.js +42 -0
  83. package/dist/src/intl/it.d.ts +117 -0
  84. package/dist/src/intl/it.d.ts.map +1 -0
  85. package/dist/src/intl/it.js +258 -0
  86. package/dist/src/intl/ja.d.ts +117 -0
  87. package/dist/src/intl/ja.d.ts.map +1 -0
  88. package/dist/src/intl/ja.js +258 -0
  89. package/dist/src/intl/ko.d.ts +117 -0
  90. package/dist/src/intl/ko.d.ts.map +1 -0
  91. package/dist/src/intl/ko.js +258 -0
  92. package/dist/src/intl/ml.d.ts +117 -0
  93. package/dist/src/intl/ml.d.ts.map +1 -0
  94. package/dist/src/intl/ml.js +258 -0
  95. package/dist/src/intl/mr.d.ts +117 -0
  96. package/dist/src/intl/mr.d.ts.map +1 -0
  97. package/dist/src/intl/mr.js +258 -0
  98. package/dist/src/intl/ms.d.ts +117 -0
  99. package/dist/src/intl/ms.d.ts.map +1 -0
  100. package/dist/src/intl/ms.js +245 -0
  101. package/dist/src/intl/nb.d.ts +63 -0
  102. package/dist/src/intl/nb.d.ts.map +1 -0
  103. package/dist/src/intl/nb.js +191 -0
  104. package/dist/src/intl/nl.d.ts +117 -0
  105. package/dist/src/intl/nl.d.ts.map +1 -0
  106. package/dist/src/intl/nl.js +258 -0
  107. package/dist/src/intl/pa.d.ts +117 -0
  108. package/dist/src/intl/pa.d.ts.map +1 -0
  109. package/dist/src/intl/pa.js +258 -0
  110. package/dist/src/intl/pl.d.ts +117 -0
  111. package/dist/src/intl/pl.d.ts.map +1 -0
  112. package/dist/src/intl/pl.js +242 -0
  113. package/dist/src/intl/pt-BR.d.ts +117 -0
  114. package/dist/src/intl/pt-BR.d.ts.map +1 -0
  115. package/dist/src/intl/pt-BR.js +258 -0
  116. package/dist/src/intl/pt.d.ts +117 -0
  117. package/dist/src/intl/pt.d.ts.map +1 -0
  118. package/dist/src/intl/pt.js +246 -0
  119. package/dist/src/intl/ro.d.ts +117 -0
  120. package/dist/src/intl/ro.d.ts.map +1 -0
  121. package/dist/src/intl/ro.js +258 -0
  122. package/dist/src/intl/sk.d.ts +117 -0
  123. package/dist/src/intl/sk.d.ts.map +1 -0
  124. package/dist/src/intl/sk.js +244 -0
  125. package/dist/src/intl/sl.d.ts +117 -0
  126. package/dist/src/intl/sl.d.ts.map +1 -0
  127. package/dist/src/intl/sl.js +258 -0
  128. package/dist/src/intl/sv.d.ts +117 -0
  129. package/dist/src/intl/sv.d.ts.map +1 -0
  130. package/dist/src/intl/sv.js +258 -0
  131. package/dist/src/intl/sw.d.ts +63 -0
  132. package/dist/src/intl/sw.d.ts.map +1 -0
  133. package/dist/src/intl/sw.js +191 -0
  134. package/dist/src/intl/ta.d.ts +117 -0
  135. package/dist/src/intl/ta.d.ts.map +1 -0
  136. package/dist/src/intl/ta.js +258 -0
  137. package/dist/src/intl/te.d.ts +117 -0
  138. package/dist/src/intl/te.d.ts.map +1 -0
  139. package/dist/src/intl/te.js +258 -0
  140. package/dist/src/intl/th.d.ts +117 -0
  141. package/dist/src/intl/th.d.ts.map +1 -0
  142. package/dist/src/intl/th.js +258 -0
  143. package/dist/src/intl/tr.d.ts +117 -0
  144. package/dist/src/intl/tr.d.ts.map +1 -0
  145. package/dist/src/intl/tr.js +255 -0
  146. package/dist/src/intl/uk.d.ts +117 -0
  147. package/dist/src/intl/uk.d.ts.map +1 -0
  148. package/dist/src/intl/uk.js +258 -0
  149. package/dist/src/intl/ur.d.ts +117 -0
  150. package/dist/src/intl/ur.d.ts.map +1 -0
  151. package/dist/src/intl/ur.js +245 -0
  152. package/dist/src/intl/vi.d.ts +117 -0
  153. package/dist/src/intl/vi.d.ts.map +1 -0
  154. package/dist/src/intl/vi.js +255 -0
  155. package/dist/src/intl/zh-CN.d.ts +117 -0
  156. package/dist/src/intl/zh-CN.d.ts.map +1 -0
  157. package/dist/src/intl/zh-CN.js +258 -0
  158. package/dist/src/intl/zh-TW.d.ts +117 -0
  159. package/dist/src/intl/zh-TW.d.ts.map +1 -0
  160. package/dist/src/intl/zh-TW.js +258 -0
  161. package/dist/src/local-first/Owner.d.ts +156 -62
  162. package/dist/src/local-first/Owner.d.ts.map +1 -1
  163. package/dist/src/local-first/Owner.js +119 -20
  164. package/package.json +1 -1
  165. package/src/Function.ts +2 -0
  166. package/src/Http.ts +9 -0
  167. package/src/Object.ts +2 -0
  168. package/src/RefCount.ts +2 -0
  169. package/src/Relation.ts +4 -0
  170. package/src/Resource.ts +2 -0
  171. package/src/Result.ts +397 -560
  172. package/src/StackTrace.ts +2 -0
  173. package/src/Task.ts +1143 -1222
  174. package/src/Time.ts +2 -0
  175. package/src/Type.ts +1759 -794
  176. package/src/intl/_en.ts +497 -0
  177. package/src/intl/ar.ts +417 -0
  178. package/src/intl/bn.ts +486 -0
  179. package/src/intl/ca.ts +488 -0
  180. package/src/intl/cs.ts +95 -31
  181. package/src/intl/da.ts +488 -0
  182. package/src/intl/de.ts +488 -0
  183. package/src/intl/el.ts +494 -0
  184. package/src/intl/es.ts +488 -0
  185. package/src/intl/fa.ts +487 -0
  186. package/src/intl/fi.ts +487 -0
  187. package/src/intl/fil.ts +488 -0
  188. package/src/intl/fr.ts +488 -0
  189. package/src/intl/he.ts +486 -0
  190. package/src/intl/hi.ts +487 -0
  191. package/src/intl/hr.ts +494 -0
  192. package/src/intl/hu.ts +387 -0
  193. package/src/intl/id.ts +487 -0
  194. package/src/intl/index.ts +42 -0
  195. package/src/intl/it.ts +488 -0
  196. package/src/intl/ja.ts +488 -0
  197. package/src/intl/ko.ts +487 -0
  198. package/src/intl/ml.ts +487 -0
  199. package/src/intl/mr.ts +487 -0
  200. package/src/intl/ms.ts +410 -0
  201. package/src/intl/nb.ts +364 -0
  202. package/src/intl/nl.ts +488 -0
  203. package/src/intl/pa.ts +487 -0
  204. package/src/intl/pl.ts +450 -0
  205. package/src/intl/pt-BR.ts +487 -0
  206. package/src/intl/pt.ts +424 -0
  207. package/src/intl/ro.ts +488 -0
  208. package/src/intl/sk.ts +412 -0
  209. package/src/intl/sl.ts +487 -0
  210. package/src/intl/sv.ts +488 -0
  211. package/src/intl/sw.ts +324 -0
  212. package/src/intl/ta.ts +487 -0
  213. package/src/intl/te.ts +487 -0
  214. package/src/intl/th.ts +484 -0
  215. package/src/intl/tr.ts +487 -0
  216. package/src/intl/uk.ts +488 -0
  217. package/src/intl/ur.ts +410 -0
  218. package/src/intl/vi.ts +435 -0
  219. package/src/intl/zh-CN.ts +482 -0
  220. package/src/intl/zh-TW.ts +482 -0
  221. package/src/local-first/Owner.ts +156 -62
package/src/intl/he.ts ADDED
@@ -0,0 +1,486 @@
1
+ /**
2
+ * מעצבי הודעות שגיאה של Evolu Type בעברית.
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 `הערך ${safelyStringifyUnknownValue(error.value)} אינו מסוג ${typeOf}.`;
76
+ };
77
+
78
+ const formatPlainObjectRootError = (
79
+ reason:
80
+ ObjectNotObjectError["reason"] | ObjectUnexpectedPrototypeError["reason"],
81
+ ): string =>
82
+ reason.kind === "NotObject"
83
+ ? `הערך ${safelyStringifyUnknownValue(reason.value)} אינו אובייקט.`
84
+ : "הערך הוא אובייקט, אך פלט של Object חייב להיות אובייקט פשוט או בעל אב־טיפוס null.";
85
+
86
+ /** מעצב שגיאת NeverError בעברית. */
87
+ export const formatNeverError: TypeErrorFormatter<NeverError> = (error) =>
88
+ `הערך ${safelyStringifyUnknownValue(error.value)} אינו חוקי עבור הטיפוס Never.`;
89
+
90
+ /** מעצב שגיאת String TypeOfError בעברית. */
91
+ export const formatStringError: TypeErrorFormatter<TypeOfError<"String">> =
92
+ formatTypeOfError;
93
+
94
+ /** מעצב שגיאת TemplateLiteralError בעברית. */
95
+ export const formatTemplateLiteralError: TypeErrorFormatter<
96
+ TemplateLiteralError
97
+ > = (error) =>
98
+ `הערך ${safelyStringifyUnknownValue(error.value)} אינו תואם ל-template literal.`;
99
+
100
+ /** מעצב שגיאת Number TypeOfError בעברית. */
101
+ export const formatNumberError: TypeErrorFormatter<TypeOfError<"Number">> =
102
+ formatTypeOfError;
103
+
104
+ /** מעצב שגיאת BigInt TypeOfError בעברית. */
105
+ export const formatBigIntError: TypeErrorFormatter<TypeOfError<"BigInt">> =
106
+ formatTypeOfError;
107
+
108
+ /** מעצב שגיאת Boolean TypeOfError בעברית. */
109
+ export const formatBooleanError: TypeErrorFormatter<TypeOfError<"Boolean">> =
110
+ formatTypeOfError;
111
+
112
+ /** מעצב שגיאת Symbol TypeOfError בעברית. */
113
+ export const formatSymbolError: TypeErrorFormatter<TypeOfError<"Symbol">> =
114
+ formatTypeOfError;
115
+
116
+ /** מעצב שגיאת Function TypeOfError בעברית. */
117
+ export const formatFunctionError: TypeErrorFormatter<TypeOfError<"Function">> =
118
+ formatTypeOfError;
119
+
120
+ /** מעצב שגיאת EvoluTypeError בעברית. */
121
+ export const formatEvoluTypeError: TypeErrorFormatter<EvoluTypeError> = (
122
+ error,
123
+ ) => `הערך ${safelyStringifyUnknownValue(error.value)} אינו Evolu Type.`;
124
+
125
+ /** מעצב שגיאת ObjectTagError בעברית. */
126
+ export const formatObjectTagError: TypeErrorFormatter<ObjectTagError> = (
127
+ error,
128
+ ) =>
129
+ `לערך ${safelyStringifyUnknownValue(error.value)} אין את תג האובייקט הצפוי ${safelyStringifyUnknownValue(error.expected)}.`;
130
+
131
+ /** מעצב שגיאת InstanceOfError בעברית. */
132
+ export const formatInstanceOfError: TypeErrorFormatter<InstanceOfError> = (
133
+ error,
134
+ ) =>
135
+ `הערך ${safelyStringifyUnknownValue(error.value)} אינו מופע של ${error.constructorName}.`;
136
+
137
+ /** מעצב שגיאת LiteralError בעברית. */
138
+ export const formatLiteralError: TypeErrorFormatter<LiteralError> = (error) =>
139
+ `הערך ${safelyStringifyUnknownValue(error.value)} אינו שווה באופן מחמיר לליטרל הצפוי: ${globalThis.String(error.expected)}.`;
140
+
141
+ /** מעצב שגיאת UnionError בעברית. */
142
+ export const formatUnionError: TypeErrorFormatter<UnionError> = () =>
143
+ "הערך אינו תואם לאף וריאנט מותר.";
144
+
145
+ /** מעצב שגיאת DateIsoError בעברית. */
146
+ export const formatDateIsoError: TypeErrorFormatter<DateIsoError> = (error) =>
147
+ `הערך ${safelyStringifyUnknownValue(error.value)} אינו מחרוזת תאריך ושעה קנונית בתקן ISO.`;
148
+
149
+ /** מעצב שגיאת DateIsoFromDateError בעברית. */
150
+ export const formatDateIsoFromDateError: TypeErrorFormatter<
151
+ DateIsoFromDateError
152
+ > = () => "לא ניתן לייצג את ה-Date כ-DateIso.";
153
+
154
+ /** מעצב שגיאת DecimalStringError בעברית. */
155
+ export const formatDecimalStringError: TypeErrorFormatter<
156
+ DecimalStringError
157
+ > = (error) =>
158
+ `הערך ${safelyStringifyUnknownValue(error.value)} חייב להיות מחרוזת עשרונית קנונית.`;
159
+
160
+ /** מעצב שגיאת Int64Error בעברית. */
161
+ export const formatInt64Error: TypeErrorFormatter<Int64Error> = (error) =>
162
+ `הערך ${safelyStringifyUnknownValue(error.value)} אינו מספר שלם חוקי עם סימן ברוחב 64 סיביות (Int64).`;
163
+
164
+ /** מעצב שגיאת UInt64Error בעברית. */
165
+ export const formatUInt64Error: TypeErrorFormatter<UInt64Error> = (error) =>
166
+ `הערך ${safelyStringifyUnknownValue(error.value)} אינו מספר שלם חוקי ללא סימן ברוחב 64 סיביות (UInt64).`;
167
+
168
+ /** מעצב שגיאת Int64StringError בעברית. */
169
+ export const formatInt64StringError: TypeErrorFormatter<Int64StringError> = (
170
+ error,
171
+ ) =>
172
+ `הערך ${safelyStringifyUnknownValue(error.value)} אינו מחרוזת Int64 חוקית.`;
173
+
174
+ /** מעצב שגיאת CapitalizedError בעברית. */
175
+ export const formatCapitalizedError: TypeErrorFormatter<CapitalizedError> = (
176
+ error,
177
+ ) => `הערך ${safelyStringifyUnknownValue(error.value)} חייב להתחיל באות גדולה.`;
178
+
179
+ /** מעצב שגיאת TrimmedError בעברית. */
180
+ export const formatTrimmedError: TypeErrorFormatter<TrimmedError> = (error) =>
181
+ `יש להסיר רווחים מיותרים מתחילת הערך ${safelyStringifyUnknownValue(error.value)} ומסופו.`;
182
+
183
+ /** מעצב שגיאת MinLengthError בעברית. */
184
+ export const formatMinLengthError: TypeErrorFormatter<MinLengthError> = (
185
+ error,
186
+ ) =>
187
+ `הערך ${safelyStringifyUnknownValue(error.value)} אינו עומד באורך המינימלי של ${error.min}.`;
188
+
189
+ /** מעצב שגיאת MaxLengthError בעברית. */
190
+ export const formatMaxLengthError: TypeErrorFormatter<MaxLengthError> = (
191
+ error,
192
+ ) =>
193
+ `הערך ${safelyStringifyUnknownValue(error.value)} חורג מהאורך המרבי של ${error.max}.`;
194
+
195
+ /** מעצב שגיאת LengthError בעברית. */
196
+ export const formatLengthError: TypeErrorFormatter<LengthError> = (error) =>
197
+ `האורך של הערך ${safelyStringifyUnknownValue(error.value)} אינו האורך הנדרש, ${error.exact}.`;
198
+
199
+ /** מעצב שגיאת RegexError בעברית. */
200
+ export const formatRegexError: TypeErrorFormatter<RegexError> = (error) =>
201
+ `הערך ${safelyStringifyUnknownValue(error.value)} אינו תואם ל-/${error.source}/${error.flags}.`;
202
+
203
+ /** מעצב שגיאת Base64UrlError בעברית. */
204
+ export const formatBase64UrlError: TypeErrorFormatter<Base64UrlError> = (
205
+ error,
206
+ ) =>
207
+ `הערך ${safelyStringifyUnknownValue(error.value)} אינו מחרוזת Base64Url חוקית.`;
208
+
209
+ /** מעצב שגיאת NameError בעברית. */
210
+ export const formatNameError: TypeErrorFormatter<NameError> = (error) =>
211
+ `הערך ${safelyStringifyUnknownValue(error.value)} אינו Name חוקי.`;
212
+
213
+ /** מעצב שגיאת MnemonicError בעברית. */
214
+ export const formatMnemonicError: TypeErrorFormatter<MnemonicError> = (error) =>
215
+ `הערך ${safelyStringifyUnknownValue(error.value)} אינו מנמוניקת BIP39 חוקית באנגלית.`;
216
+
217
+ /** מעצב שגיאת IdError בעברית. */
218
+ export const formatIdError: TypeErrorFormatter<IdError> = (error) =>
219
+ `הערך ${safelyStringifyUnknownValue(error.value)} אינו Id חוקי.`;
220
+
221
+ /** מעצב שגיאת TableIdError בעברית. */
222
+ export const formatTableIdError: TypeErrorFormatter<TableIdError> = (error) =>
223
+ `הערך ${safelyStringifyUnknownValue(error.value)} אינו Id חוקי עבור הטבלה ${error.table}.`;
224
+
225
+ /** מעצב שגיאת NonNegativeError בעברית. */
226
+ export const formatNonNegativeError: TypeErrorFormatter<NonNegativeError> = (
227
+ error,
228
+ ) =>
229
+ `הערך ${safelyStringifyUnknownValue(error.value)} חייב להיות אי-שלילי (>= 0).`;
230
+
231
+ /** מעצב שגיאת NonNegativeDecimalStringError בעברית. */
232
+ export const formatNonNegativeDecimalStringError: TypeErrorFormatter<
233
+ NonNegativeDecimalStringError
234
+ > = (error) =>
235
+ `הערך ${safelyStringifyUnknownValue(error.value)} חייב להיות מחרוזת עשרונית אי-שלילית.`;
236
+
237
+ /** מעצב שגיאת PositiveError בעברית. */
238
+ export const formatPositiveError: TypeErrorFormatter<PositiveError> = (error) =>
239
+ `הערך ${safelyStringifyUnknownValue(error.value)} חייב להיות חיובי (> 0).`;
240
+
241
+ /** מעצב שגיאת PositiveDecimalStringError בעברית. */
242
+ export const formatPositiveDecimalStringError: TypeErrorFormatter<
243
+ PositiveDecimalStringError
244
+ > = (error) =>
245
+ `הערך ${safelyStringifyUnknownValue(error.value)} חייב להיות מחרוזת עשרונית חיובית.`;
246
+
247
+ /** מעצב שגיאת NonPositiveError בעברית. */
248
+ export const formatNonPositiveError: TypeErrorFormatter<NonPositiveError> = (
249
+ error,
250
+ ) =>
251
+ `הערך ${safelyStringifyUnknownValue(error.value)} חייב להיות אי-חיובי (<= 0).`;
252
+
253
+ /** מעצב שגיאת NonPositiveDecimalStringError בעברית. */
254
+ export const formatNonPositiveDecimalStringError: TypeErrorFormatter<
255
+ NonPositiveDecimalStringError
256
+ > = (error) =>
257
+ `הערך ${safelyStringifyUnknownValue(error.value)} חייב להיות מחרוזת עשרונית אי-חיובית.`;
258
+
259
+ /** מעצב שגיאת NegativeError בעברית. */
260
+ export const formatNegativeError: TypeErrorFormatter<NegativeError> = (error) =>
261
+ `הערך ${safelyStringifyUnknownValue(error.value)} חייב להיות שלילי (< 0).`;
262
+
263
+ /** מעצב שגיאת NegativeDecimalStringError בעברית. */
264
+ export const formatNegativeDecimalStringError: TypeErrorFormatter<
265
+ NegativeDecimalStringError
266
+ > = (error) =>
267
+ `הערך ${safelyStringifyUnknownValue(error.value)} חייב להיות מחרוזת עשרונית שלילית.`;
268
+
269
+ /** מעצב שגיאת IntError בעברית. */
270
+ export const formatIntError: TypeErrorFormatter<IntError> = (error) =>
271
+ `הערך ${safelyStringifyUnknownValue(error.value)} חייב להיות מספר שלם בטוח.`;
272
+
273
+ /** מעצב שגיאת GreaterThanError בעברית. */
274
+ export const formatGreaterThanError: TypeErrorFormatter<GreaterThanError> = (
275
+ error,
276
+ ) =>
277
+ `הערך ${safelyStringifyUnknownValue(error.value)} חייב להיות גדול מ-${error.min}.`;
278
+
279
+ /** מעצב שגיאת GreaterThanOrEqualToError בעברית. */
280
+ export const formatGreaterThanOrEqualToError: TypeErrorFormatter<
281
+ GreaterThanOrEqualToError
282
+ > = (error) =>
283
+ `הערך ${safelyStringifyUnknownValue(error.value)} חייב להיות גדול מ-${error.min} או שווה לו.`;
284
+
285
+ /** מעצב שגיאת LessThanError בעברית. */
286
+ export const formatLessThanError: TypeErrorFormatter<LessThanError> = (error) =>
287
+ `הערך ${safelyStringifyUnknownValue(error.value)} חייב להיות קטן מ-${error.max}.`;
288
+
289
+ /** מעצב שגיאת LessThanOrEqualToError בעברית. */
290
+ export const formatLessThanOrEqualToError: TypeErrorFormatter<
291
+ LessThanOrEqualToError
292
+ > = (error) =>
293
+ `הערך ${safelyStringifyUnknownValue(error.value)} חייב להיות קטן מ-${error.max} או שווה לו.`;
294
+
295
+ /** מעצב שגיאת NonNaNError בעברית. */
296
+ export const formatNonNaNError: TypeErrorFormatter<NonNaNError> = () =>
297
+ "הערך אינו יכול להיות NaN.";
298
+
299
+ /** מעצב שגיאת FiniteError בעברית. */
300
+ export const formatFiniteError: TypeErrorFormatter<FiniteError> = (error) =>
301
+ `הערך ${safelyStringifyUnknownValue(error.value)} חייב להיות סופי.`;
302
+
303
+ /** מעצב שגיאת MultipleOfError בעברית. */
304
+ export const formatMultipleOfError: TypeErrorFormatter<MultipleOfError> = (
305
+ error,
306
+ ) =>
307
+ `הערך ${safelyStringifyUnknownValue(error.value)} חייב להיות כפולה של ${error.divisor}.`;
308
+
309
+ /** מעצב שגיאת BetweenError בעברית. */
310
+ export const formatBetweenError: TypeErrorFormatter<BetweenError> = (error) =>
311
+ `הערך ${safelyStringifyUnknownValue(error.value)} חייב להיות בין ${error.min} ל-${error.max}, כולל הגבולות.`;
312
+
313
+ /** מעצב שגיאת ArrayError בעברית. */
314
+ export const formatArrayError: TypeErrorFormatter<ArrayError> = (error) => {
315
+ if (error.reason.kind === "NotArray") {
316
+ return `הערך ${safelyStringifyUnknownValue(error.reason.value)} אינו מערך.`;
317
+ }
318
+ const issue = error.reason.issues[0];
319
+
320
+ switch (issue.kind) {
321
+ case "Hole":
322
+ return `חסר איבר במערך באינדקס ${issue.index}.`;
323
+ case "Accessor":
324
+ return `איבר המערך באינדקס ${issue.index} חייב להיות מאפיין נתונים.`;
325
+ case "ExcessProperty":
326
+ return "מאפיין עודף של Array אינו מותר. יש להסיר אותו או להשתמש ב-Type אחר.";
327
+ case "Element":
328
+ return `איבר המערך באינדקס ${issue.index} אינו חוקי.`;
329
+ }
330
+ };
331
+
332
+ /** מעצב שגיאת SetError בעברית. */
333
+ export const formatSetError: TypeErrorFormatter<SetError> = (error) => {
334
+ if (error.reason.kind === "NotSet") {
335
+ return `הערך ${safelyStringifyUnknownValue(error.reason.value)} אינו Set.`;
336
+ }
337
+ if (error.reason.kind === "UnexpectedPrototype") {
338
+ return "הערך הוא מופע של תת-מחלקה של Set, אך פלט של Set חייב להיות מופע ישיר של Set.";
339
+ }
340
+
341
+ const issue = error.reason.issues[0];
342
+
343
+ switch (issue.kind) {
344
+ case "ExcessProperty":
345
+ return `מאפיין Set העודף ${safelyStringifyUnknownValue(issue.key)} אינו מותר.`;
346
+ case "Element":
347
+ return `איבר Set באינדקס ${issue.index} אינו חוקי.`;
348
+ }
349
+ };
350
+
351
+ /** מעצב שגיאת TupleError בעברית. */
352
+ export const formatTupleError: TypeErrorFormatter<
353
+ TupleError | TupleElementsError<TypeError>
354
+ > = (error) => {
355
+ if (error.reason.kind === "NotArray") {
356
+ return `הערך ${safelyStringifyUnknownValue(error.reason.value)} אינו tuple.`;
357
+ }
358
+ if (error.reason.kind === "InvalidLength") {
359
+ return `Tuple חייב להכיל בדיוק ${error.reason.expected} איברים, אך הערך מכיל ${error.reason.actual}.`;
360
+ }
361
+
362
+ const issue = error.reason.issues[0];
363
+
364
+ switch (issue.kind) {
365
+ case "Hole":
366
+ return `חסר איבר Tuple באינדקס ${issue.index}.`;
367
+ case "Accessor":
368
+ return `איבר Tuple באינדקס ${issue.index} חייב להיות מאפיין נתונים.`;
369
+ case "ExcessProperty":
370
+ return "מאפיין עודף של Tuple אינו מותר. יש להסיר אותו או להשתמש ב-Type אחר.";
371
+ case "Element":
372
+ return `איבר Tuple באינדקס ${issue.index} אינו חוקי.`;
373
+ }
374
+ };
375
+
376
+ /** מעצב שגיאת RecordError בעברית. */
377
+ export const formatRecordError: TypeErrorFormatter<RecordError> = (error) => {
378
+ if (error.reason.kind === "NotRecord") {
379
+ return `הערך ${safelyStringifyUnknownValue(error.reason.value)} אינו Record.`;
380
+ }
381
+ if (error.reason.kind === "NotPlainRecord") {
382
+ return "הערך הוא אובייקט, אך פלט של Record חייב להיות אובייקט פשוט או בעל אב־טיפוס null.";
383
+ }
384
+
385
+ const issue = error.reason.issues[0];
386
+
387
+ switch (issue.kind) {
388
+ case "Key":
389
+ return `מפתח המאפיין ${safelyStringifyUnknownValue(issue.key)} אינו חוקי.`;
390
+ case "Value":
391
+ return `הערך של המאפיין ${safelyStringifyUnknownValue(issue.key)} אינו חוקי.`;
392
+ case "Accessor":
393
+ return `המאפיין ${safelyStringifyUnknownValue(issue.key)} של Record חייב להיות מאפיין נתונים.`;
394
+ case "NonEnumerable":
395
+ return `המאפיין ${safelyStringifyUnknownValue(issue.key)} של Record חייב להיות enumerable.`;
396
+ case "Collision":
397
+ return `המפתחות ${safelyStringifyUnknownValue(issue.previousKey)} ו-${safelyStringifyUnknownValue(issue.key)} של Record מפוענחים לאותו מפתח ${safelyStringifyUnknownValue(issue.outputKey)}.`;
398
+ }
399
+ };
400
+
401
+ /** מעצב שגיאת ObjectError בעברית. */
402
+ export const formatObjectError: TypeErrorFormatter<ObjectError> = (error) => {
403
+ if (error.reason.kind !== "Properties") {
404
+ return formatPlainObjectRootError(error.reason);
405
+ }
406
+
407
+ const key = Reflect.ownKeys(error.reason.errors).at(0);
408
+ assertNonNullable(key);
409
+ const propertyError = error.reason.errors[key];
410
+ assertNonNullable(propertyError);
411
+
412
+ if (propertyError.type === "ObjectPropertyAccess") {
413
+ switch ((propertyError as ObjectPropertyAccessError).reason) {
414
+ case "Accessor":
415
+ return "מאפיין של Object חייב להיות מאפיין נתונים. יש להמיר ערכי accessor לנתונים פשוטים לפני השימוש ב-Type זה, או להשתמש ב-Type אחר.";
416
+ case "NonEnumerable":
417
+ return "מאפיין של Object חייב להיות enumerable. יש להפוך אותו ל-enumerable או להשתמש ב-Type אחר.";
418
+ }
419
+ }
420
+ if (propertyError.type === "ObjectMissingProperty") {
421
+ return `המאפיין הנדרש ${safelyStringifyUnknownValue(key)} חסר.`;
422
+ }
423
+ if (typeof key === "symbol") {
424
+ return "מפתח מאפיין של Object חייב להיות מחרוזת. יש להסיר את מאפיין ה-symbol או להשתמש ב-Type אחר.";
425
+ }
426
+ if (propertyError.type === "ObjectExcessProperty") {
427
+ return `המאפיין ${safelyStringifyUnknownValue(key)} אינו מותר. יש להסיר אותו או להשתמש ב-Type אחר.`;
428
+ }
429
+ return `המאפיין ${safelyStringifyUnknownValue(key)} אינו חוקי.`;
430
+ };
431
+
432
+ /** מעצב שגיאת DiscriminatedUnionError בעברית. */
433
+ export const formatDiscriminatedUnionError: TypeErrorFormatter<
434
+ DiscriminatedUnionError
435
+ > = (error) => {
436
+ switch (error.reason.kind) {
437
+ case "Object":
438
+ return formatPlainObjectRootError(error.reason.error.reason);
439
+ case "PropertyAccess": {
440
+ const property = `מאפיין ה-discriminator ${safelyStringifyUnknownValue(error.reason.key)}`;
441
+ if (error.reason.reason === "Accessor") {
442
+ return `${property} חייב להיות מאפיין נתונים.`;
443
+ }
444
+ if (error.reason.reason === "Inherited") {
445
+ return `${property} חייב להיות מאפיין עצמי.`;
446
+ }
447
+ return `${property} חייב להיות enumerable.`;
448
+ }
449
+ case "Discriminator":
450
+ return `למאפיין ה-discriminator ${safelyStringifyUnknownValue(error.reason.key)} יש ערך בלתי צפוי ${safelyStringifyUnknownValue(error.reason.value)}.`;
451
+ case "Member":
452
+ return `הווריאנט שנבחר ${safelyStringifyUnknownValue(error.reason.discriminator)} אינו חוקי.`;
453
+ }
454
+ };
455
+
456
+ /** מעצב שגיאת JsonValueError בעברית. */
457
+ export const formatJsonValueError: TypeErrorFormatter<JsonValueError> = (
458
+ error,
459
+ ) => {
460
+ const issue = error.reason.issues[0];
461
+
462
+ switch (issue.kind) {
463
+ case "InvalidType":
464
+ return `הערך ${safelyStringifyUnknownValue(issue.value)} אינו ערך JSON.`;
465
+ case "NonFiniteNumber":
466
+ return "מספר JSON חייב להיות סופי.";
467
+ case "UnexpectedPrototype":
468
+ return "הערך הוא אובייקט, אך אובייקט JsonValue חייב להיות אובייקט פשוט או בעל אב־טיפוס null.";
469
+ case "Accessor":
470
+ return "מאפיין JSON חייב להיות מאפיין נתונים. יש להמיר ערכי accessor לנתונים פשוטים לפני השימוש ב-Type זה, או להשתמש ב-Type אחר.";
471
+ case "NonEnumerable":
472
+ return "מאפיין של אובייקט JSON חייב להיות enumerable. יש להסיר אותו או להשתמש ב-Type אחר.";
473
+ case "SymbolProperty":
474
+ return "מפתח מאפיין של אובייקט JSON חייב להיות מחרוזת. יש להסיר את מאפיין ה-symbol או להשתמש ב-Type אחר.";
475
+ case "Hole":
476
+ return "חסר איבר במערך JSON.";
477
+ case "ExcessProperty":
478
+ return "מאפיין עודף של מערך JSON אינו מותר. יש להסיר אותו או להשתמש ב-Type אחר.";
479
+ case "CircularReference":
480
+ return "JsonValue אינו יכול להכיל הפניות מעגליות.";
481
+ }
482
+ };
483
+
484
+ /** מעצב שגיאת JsonError בעברית. */
485
+ export const formatJsonError: TypeErrorFormatter<JsonError> = (error) =>
486
+ `לא ניתן לנתח את הערך ${safelyStringifyUnknownValue(error.value)} ל-JsonValue.`;