@evolu/common 8.9.0 → 8.10.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 (233) hide show
  1. package/dist/src/Bytes.d.ts +647 -0
  2. package/dist/src/Bytes.d.ts.map +1 -0
  3. package/dist/src/{Binary.js → Bytes.js} +266 -16
  4. package/dist/src/Config.d.ts +142 -0
  5. package/dist/src/Config.d.ts.map +1 -0
  6. package/dist/src/Config.js +181 -0
  7. package/dist/src/Fs.d.ts +302 -0
  8. package/dist/src/Fs.d.ts.map +1 -0
  9. package/dist/src/Fs.js +111 -0
  10. package/dist/src/Number.d.ts +50 -7
  11. package/dist/src/Number.d.ts.map +1 -1
  12. package/dist/src/Number.js +47 -8
  13. package/dist/src/Object.d.ts +32 -0
  14. package/dist/src/Object.d.ts.map +1 -1
  15. package/dist/src/Object.js +41 -0
  16. package/dist/src/Sqlite.js +1 -1
  17. package/dist/src/Time.d.ts +74 -12
  18. package/dist/src/Time.d.ts.map +1 -1
  19. package/dist/src/Time.js +40 -2
  20. package/dist/src/Type.d.ts +1451 -79
  21. package/dist/src/Type.d.ts.map +1 -1
  22. package/dist/src/Type.js +1303 -96
  23. package/dist/src/index.d.ts +3 -1
  24. package/dist/src/index.d.ts.map +1 -1
  25. package/dist/src/index.js +3 -1
  26. package/dist/src/intl/_en.d.ts +24 -1
  27. package/dist/src/intl/_en.d.ts.map +1 -1
  28. package/dist/src/intl/_en.js +20 -0
  29. package/dist/src/intl/ar.d.ts +24 -1
  30. package/dist/src/intl/ar.d.ts.map +1 -1
  31. package/dist/src/intl/ar.js +20 -0
  32. package/dist/src/intl/bn.d.ts +24 -1
  33. package/dist/src/intl/bn.d.ts.map +1 -1
  34. package/dist/src/intl/bn.js +20 -0
  35. package/dist/src/intl/ca.d.ts +24 -1
  36. package/dist/src/intl/ca.d.ts.map +1 -1
  37. package/dist/src/intl/ca.js +20 -0
  38. package/dist/src/intl/cs.d.ts +24 -1
  39. package/dist/src/intl/cs.d.ts.map +1 -1
  40. package/dist/src/intl/cs.js +20 -0
  41. package/dist/src/intl/da.d.ts +24 -1
  42. package/dist/src/intl/da.d.ts.map +1 -1
  43. package/dist/src/intl/da.js +20 -0
  44. package/dist/src/intl/de.d.ts +24 -1
  45. package/dist/src/intl/de.d.ts.map +1 -1
  46. package/dist/src/intl/de.js +20 -0
  47. package/dist/src/intl/el.d.ts +24 -1
  48. package/dist/src/intl/el.d.ts.map +1 -1
  49. package/dist/src/intl/el.js +20 -0
  50. package/dist/src/intl/es.d.ts +24 -1
  51. package/dist/src/intl/es.d.ts.map +1 -1
  52. package/dist/src/intl/es.js +20 -0
  53. package/dist/src/intl/fa.d.ts +24 -1
  54. package/dist/src/intl/fa.d.ts.map +1 -1
  55. package/dist/src/intl/fa.js +20 -0
  56. package/dist/src/intl/fi.d.ts +24 -1
  57. package/dist/src/intl/fi.d.ts.map +1 -1
  58. package/dist/src/intl/fi.js +20 -0
  59. package/dist/src/intl/fil.d.ts +24 -1
  60. package/dist/src/intl/fil.d.ts.map +1 -1
  61. package/dist/src/intl/fil.js +20 -0
  62. package/dist/src/intl/fr.d.ts +24 -1
  63. package/dist/src/intl/fr.d.ts.map +1 -1
  64. package/dist/src/intl/fr.js +20 -0
  65. package/dist/src/intl/he.d.ts +24 -1
  66. package/dist/src/intl/he.d.ts.map +1 -1
  67. package/dist/src/intl/he.js +20 -0
  68. package/dist/src/intl/hi.d.ts +24 -1
  69. package/dist/src/intl/hi.d.ts.map +1 -1
  70. package/dist/src/intl/hi.js +20 -0
  71. package/dist/src/intl/hr.d.ts +24 -1
  72. package/dist/src/intl/hr.d.ts.map +1 -1
  73. package/dist/src/intl/hr.js +20 -0
  74. package/dist/src/intl/hu.d.ts +22 -1
  75. package/dist/src/intl/hu.d.ts.map +1 -1
  76. package/dist/src/intl/hu.js +18 -0
  77. package/dist/src/intl/id.d.ts +24 -1
  78. package/dist/src/intl/id.d.ts.map +1 -1
  79. package/dist/src/intl/id.js +20 -0
  80. package/dist/src/intl/it.d.ts +24 -1
  81. package/dist/src/intl/it.d.ts.map +1 -1
  82. package/dist/src/intl/it.js +20 -0
  83. package/dist/src/intl/ja.d.ts +24 -1
  84. package/dist/src/intl/ja.d.ts.map +1 -1
  85. package/dist/src/intl/ja.js +20 -0
  86. package/dist/src/intl/ko.d.ts +24 -1
  87. package/dist/src/intl/ko.d.ts.map +1 -1
  88. package/dist/src/intl/ko.js +20 -0
  89. package/dist/src/intl/ml.d.ts +24 -1
  90. package/dist/src/intl/ml.d.ts.map +1 -1
  91. package/dist/src/intl/ml.js +20 -0
  92. package/dist/src/intl/mr.d.ts +24 -1
  93. package/dist/src/intl/mr.d.ts.map +1 -1
  94. package/dist/src/intl/mr.js +20 -0
  95. package/dist/src/intl/ms.d.ts +24 -1
  96. package/dist/src/intl/ms.d.ts.map +1 -1
  97. package/dist/src/intl/ms.js +20 -0
  98. package/dist/src/intl/nb.d.ts +22 -1
  99. package/dist/src/intl/nb.d.ts.map +1 -1
  100. package/dist/src/intl/nb.js +18 -0
  101. package/dist/src/intl/nl.d.ts +24 -1
  102. package/dist/src/intl/nl.d.ts.map +1 -1
  103. package/dist/src/intl/nl.js +20 -0
  104. package/dist/src/intl/pa.d.ts +24 -1
  105. package/dist/src/intl/pa.d.ts.map +1 -1
  106. package/dist/src/intl/pa.js +20 -0
  107. package/dist/src/intl/pl.d.ts +23 -0
  108. package/dist/src/intl/pl.d.ts.map +1 -1
  109. package/dist/src/intl/pl.js +20 -0
  110. package/dist/src/intl/pt-BR.d.ts +24 -1
  111. package/dist/src/intl/pt-BR.d.ts.map +1 -1
  112. package/dist/src/intl/pt-BR.js +20 -0
  113. package/dist/src/intl/pt.d.ts +24 -1
  114. package/dist/src/intl/pt.d.ts.map +1 -1
  115. package/dist/src/intl/pt.js +20 -0
  116. package/dist/src/intl/ro.d.ts +24 -1
  117. package/dist/src/intl/ro.d.ts.map +1 -1
  118. package/dist/src/intl/ro.js +20 -0
  119. package/dist/src/intl/sk.d.ts +24 -1
  120. package/dist/src/intl/sk.d.ts.map +1 -1
  121. package/dist/src/intl/sk.js +20 -0
  122. package/dist/src/intl/sl.d.ts +24 -1
  123. package/dist/src/intl/sl.d.ts.map +1 -1
  124. package/dist/src/intl/sl.js +20 -0
  125. package/dist/src/intl/sv.d.ts +24 -1
  126. package/dist/src/intl/sv.d.ts.map +1 -1
  127. package/dist/src/intl/sv.js +20 -0
  128. package/dist/src/intl/sw.d.ts +21 -0
  129. package/dist/src/intl/sw.d.ts.map +1 -1
  130. package/dist/src/intl/sw.js +18 -0
  131. package/dist/src/intl/ta.d.ts +24 -1
  132. package/dist/src/intl/ta.d.ts.map +1 -1
  133. package/dist/src/intl/ta.js +20 -0
  134. package/dist/src/intl/te.d.ts +24 -1
  135. package/dist/src/intl/te.d.ts.map +1 -1
  136. package/dist/src/intl/te.js +20 -0
  137. package/dist/src/intl/th.d.ts +24 -1
  138. package/dist/src/intl/th.d.ts.map +1 -1
  139. package/dist/src/intl/th.js +20 -0
  140. package/dist/src/intl/tr.d.ts +24 -1
  141. package/dist/src/intl/tr.d.ts.map +1 -1
  142. package/dist/src/intl/tr.js +20 -0
  143. package/dist/src/intl/uk.d.ts +80 -57
  144. package/dist/src/intl/uk.d.ts.map +1 -1
  145. package/dist/src/intl/uk.js +174 -149
  146. package/dist/src/intl/ur.d.ts +24 -1
  147. package/dist/src/intl/ur.d.ts.map +1 -1
  148. package/dist/src/intl/ur.js +20 -0
  149. package/dist/src/intl/vi.d.ts +24 -1
  150. package/dist/src/intl/vi.d.ts.map +1 -1
  151. package/dist/src/intl/vi.js +20 -0
  152. package/dist/src/intl/zh-CN.d.ts +24 -1
  153. package/dist/src/intl/zh-CN.d.ts.map +1 -1
  154. package/dist/src/intl/zh-CN.js +20 -0
  155. package/dist/src/intl/zh-TW.d.ts +24 -1
  156. package/dist/src/intl/zh-TW.d.ts.map +1 -1
  157. package/dist/src/intl/zh-TW.js +20 -0
  158. package/dist/src/local-first/Protocol.d.ts +1 -1
  159. package/dist/src/local-first/Protocol.d.ts.map +1 -1
  160. package/dist/src/local-first/Protocol.js +1 -1
  161. package/dist/src/local-first/Schema.d.ts +10 -0
  162. package/dist/src/local-first/Schema.d.ts.map +1 -1
  163. package/dist/src/local-first/Storage.js +1 -1
  164. package/dist/src/local-first/Timestamp.js +1 -1
  165. package/package.json +1 -1
  166. package/src/{Binary.test.ts → Bytes.test.ts} +286 -1
  167. package/src/{Binary.ts → Bytes.ts} +652 -21
  168. package/src/Config.test.ts +672 -0
  169. package/src/Config.ts +410 -0
  170. package/src/Fs.test.ts +105 -0
  171. package/src/Fs.ts +414 -0
  172. package/src/Number.test.ts +82 -18
  173. package/src/Number.ts +76 -8
  174. package/src/Object.test.ts +115 -1
  175. package/src/Object.ts +44 -0
  176. package/src/Sqlite.ts +1 -1
  177. package/src/Time.test.ts +82 -11
  178. package/src/Time.ts +141 -16
  179. package/src/Type.test.ts +3114 -157
  180. package/src/Type.ts +2553 -196
  181. package/src/index.ts +3 -1
  182. package/src/intl/_en.ts +70 -0
  183. package/src/intl/ar.ts +71 -0
  184. package/src/intl/bn.ts +70 -0
  185. package/src/intl/ca.ts +70 -0
  186. package/src/intl/cs.ts +70 -0
  187. package/src/intl/da.ts +70 -0
  188. package/src/intl/de.ts +70 -0
  189. package/src/intl/el.ts +70 -0
  190. package/src/intl/es.ts +70 -0
  191. package/src/intl/fa.ts +70 -0
  192. package/src/intl/fi.ts +70 -0
  193. package/src/intl/fil.ts +70 -0
  194. package/src/intl/fr.ts +70 -0
  195. package/src/intl/he.ts +70 -0
  196. package/src/intl/hi.ts +70 -0
  197. package/src/intl/hr.ts +70 -0
  198. package/src/intl/hu.ts +69 -0
  199. package/src/intl/id.ts +70 -0
  200. package/src/intl/intl.test.ts +819 -1
  201. package/src/intl/it.ts +70 -0
  202. package/src/intl/ja.ts +70 -0
  203. package/src/intl/ko.ts +68 -0
  204. package/src/intl/ml.ts +70 -0
  205. package/src/intl/mr.ts +70 -0
  206. package/src/intl/ms.ts +71 -0
  207. package/src/intl/nb.ts +69 -0
  208. package/src/intl/nl.ts +70 -0
  209. package/src/intl/pa.ts +70 -0
  210. package/src/intl/pl.ts +63 -0
  211. package/src/intl/pt-BR.ts +70 -0
  212. package/src/intl/pt.ts +71 -0
  213. package/src/intl/ro.ts +70 -0
  214. package/src/intl/sk.ts +71 -0
  215. package/src/intl/sl.ts +70 -0
  216. package/src/intl/sv.ts +70 -0
  217. package/src/intl/sw.ts +62 -0
  218. package/src/intl/ta.ts +70 -0
  219. package/src/intl/te.ts +70 -0
  220. package/src/intl/th.ts +68 -0
  221. package/src/intl/tr.ts +70 -0
  222. package/src/intl/uk.ts +228 -155
  223. package/src/intl/ur.ts +70 -0
  224. package/src/intl/vi.ts +70 -0
  225. package/src/intl/zh-CN.ts +68 -0
  226. package/src/intl/zh-TW.ts +68 -0
  227. package/src/local-first/Protocol.test.ts +1 -1
  228. package/src/local-first/Protocol.ts +1 -1
  229. package/src/local-first/Schema.ts +11 -0
  230. package/src/local-first/Storage.ts +1 -1
  231. package/src/local-first/Timestamp.ts +1 -1
  232. package/dist/src/Binary.d.ts +0 -254
  233. package/dist/src/Binary.d.ts.map +0 -1
package/src/intl/uk.ts CHANGED
@@ -4,13 +4,21 @@
4
4
  * @module
5
5
  */
6
6
 
7
+ import type { DurationLiteralError } from "../Time.ts";
8
+ import type { PercentageLiteralError } from "../Number.ts";
9
+ import type { ByteSizeLiteralError } from "../Bytes.ts";
7
10
  import { assertNonNullable } from "../Assert.ts";
8
11
  import { safelyStringifyUnknownValue } from "../String.ts";
9
12
  import type {
10
13
  ArrayError,
11
14
  Base64UrlError,
15
+ BooleanFromStringError,
12
16
  BetweenError,
17
+ IdentifierError,
13
18
  CapitalizedError,
19
+ UncapitalizedError,
20
+ UppercasedError,
21
+ LowercasedError,
14
22
  DateIsoError,
15
23
  DateIsoFromDateError,
16
24
  DecimalStringError,
@@ -23,6 +31,7 @@ import type {
23
31
  Int64Error,
24
32
  Int64StringError,
25
33
  IntError,
34
+ IntFromStringError,
26
35
  IdError,
27
36
  JsonError,
28
37
  JsonValueError,
@@ -56,6 +65,7 @@ import type {
56
65
  SetError,
57
66
  TableIdError,
58
67
  TemplateLiteralError,
68
+ StartsWithError,
59
69
  TrimmedError,
60
70
  TupleElementsError,
61
71
  TupleError,
@@ -66,356 +76,401 @@ import type {
66
76
  UnionError,
67
77
  } from "../Type.ts";
68
78
 
69
- const formatTypeOfError = (
70
- error: TypeOfError<
71
- "String" | "Number" | "BigInt" | "Boolean" | "Symbol" | "Function"
72
- >,
73
- ): string => {
74
- const typeOf = error.expected.toLowerCase();
75
-
76
- return `A value ${safelyStringifyUnknownValue(error.value)} is not a ${typeOf}.`;
79
+ const typeOfNames = {
80
+ String: "рядком",
81
+ Number: "числом",
82
+ BigInt: "значенням BigInt",
83
+ Boolean: "логічним значенням",
84
+ Symbol: "символом",
85
+ Function: "функцією",
77
86
  };
78
87
 
88
+ const formatTypeOfError = (
89
+ error: TypeOfError<keyof typeof typeOfNames>,
90
+ ): string =>
91
+ `Значення ${safelyStringifyUnknownValue(error.value)} не є ${typeOfNames[error.expected]}.`;
92
+
79
93
  const formatPlainObjectRootError = (
80
94
  reason:
81
95
  ObjectNotObjectError["reason"] | ObjectUnexpectedPrototypeError["reason"],
82
96
  ): string =>
83
97
  reason.kind === "NotObject"
84
- ? `A value ${safelyStringifyUnknownValue(reason.value)} is not an object.`
85
- : "The value is an object, but an Object Output must be a plain object or have a null prototype.";
98
+ ? `Значення ${safelyStringifyUnknownValue(reason.value)} не є об’єктом.`
99
+ : "Значення є об’єктом, але вихідне значення Object має бути простим об’єктом або мати прототип null.";
86
100
 
87
- /** Formats a NeverError in English. */
101
+ /** Форматує NeverError українською. */
88
102
  export const formatNeverError: TypeErrorFormatter<NeverError> = (error) =>
89
- `A value ${safelyStringifyUnknownValue(error.value)} is not valid for type Never.`;
103
+ `Значення ${safelyStringifyUnknownValue(error.value)} не є допустимим для типу Never.`;
90
104
 
91
- /** Formats a String TypeOfError in English. */
105
+ /** Форматує String TypeOfError українською. */
92
106
  export const formatStringError: TypeErrorFormatter<TypeOfError<"String">> =
93
107
  formatTypeOfError;
94
108
 
95
- /** Formats a TemplateLiteralError in English. */
109
+ /** Форматує TemplateLiteralError українською. */
96
110
  export const formatTemplateLiteralError: TypeErrorFormatter<
97
111
  TemplateLiteralError
98
112
  > = (error) =>
99
- `The value ${safelyStringifyUnknownValue(error.value)} does not match the template literal.`;
113
+ `Значення ${safelyStringifyUnknownValue(error.value)} не відповідає шаблонному літералу.`;
100
114
 
101
- /** Formats a Number TypeOfError in English. */
115
+ /** Форматує Number TypeOfError українською. */
102
116
  export const formatNumberError: TypeErrorFormatter<TypeOfError<"Number">> =
103
117
  formatTypeOfError;
104
118
 
105
- /** Formats a BigInt TypeOfError in English. */
119
+ /** Форматує BigInt TypeOfError українською. */
106
120
  export const formatBigIntError: TypeErrorFormatter<TypeOfError<"BigInt">> =
107
121
  formatTypeOfError;
108
122
 
109
- /** Formats a Boolean TypeOfError in English. */
123
+ /** Форматує Boolean TypeOfError українською. */
110
124
  export const formatBooleanError: TypeErrorFormatter<TypeOfError<"Boolean">> =
111
125
  formatTypeOfError;
112
126
 
113
- /** Formats a Symbol TypeOfError in English. */
127
+ /** Форматує BooleanFromStringError українською. */
128
+ export const formatBooleanFromStringError: TypeErrorFormatter<
129
+ BooleanFromStringError
130
+ > = (error) =>
131
+ `Значення ${safelyStringifyUnknownValue(error.value)} не є логічним значенням. Використовуйте true або false.`;
132
+
133
+ /** Форматує Symbol TypeOfError українською. */
114
134
  export const formatSymbolError: TypeErrorFormatter<TypeOfError<"Symbol">> =
115
135
  formatTypeOfError;
116
136
 
117
- /** Formats a Function TypeOfError in English. */
137
+ /** Форматує Function TypeOfError українською. */
118
138
  export const formatFunctionError: TypeErrorFormatter<TypeOfError<"Function">> =
119
139
  formatTypeOfError;
120
140
 
121
- /** Formats an EvoluTypeError in English. */
141
+ /** Форматує EvoluTypeError українською. */
122
142
  export const formatEvoluTypeError: TypeErrorFormatter<EvoluTypeError> = (
123
143
  error,
124
- ) =>
125
- `A value ${safelyStringifyUnknownValue(error.value)} is not an Evolu Type.`;
144
+ ) => `Значення ${safelyStringifyUnknownValue(error.value)} не є Evolu Type.`;
126
145
 
127
- /** Formats an ObjectTagError in English. */
146
+ /** Форматує ObjectTagError українською. */
128
147
  export const formatObjectTagError: TypeErrorFormatter<ObjectTagError> = (
129
148
  error,
130
149
  ) =>
131
- `A value ${safelyStringifyUnknownValue(error.value)} does not have the expected object tag ${safelyStringifyUnknownValue(error.expected)}.`;
150
+ `Значення ${safelyStringifyUnknownValue(error.value)} не має очікуваного тегу об’єкта ${safelyStringifyUnknownValue(error.expected)}.`;
132
151
 
133
- /** Formats an InstanceOfError in English. */
152
+ /** Форматує InstanceOfError українською. */
134
153
  export const formatInstanceOfError: TypeErrorFormatter<InstanceOfError> = (
135
154
  error,
136
155
  ) =>
137
- `A value ${safelyStringifyUnknownValue(error.value)} is not an instance of ${error.constructorName}.`;
156
+ `Значення ${safelyStringifyUnknownValue(error.value)} не є екземпляром ${error.constructorName}.`;
138
157
 
139
- /** Formats a LiteralError in English. */
158
+ /** Форматує LiteralError українською. */
140
159
  export const formatLiteralError: TypeErrorFormatter<LiteralError> = (error) =>
141
- `The value ${safelyStringifyUnknownValue(error.value)} is not strictly equal to the expected literal: ${String(error.expected)}.`;
160
+ `Значення ${safelyStringifyUnknownValue(error.value)} не дорівнює строго очікуваному літералу: ${String(error.expected)}.`;
142
161
 
143
- /** Formats a UnionError in English. */
162
+ /** Форматує UnionError українською. */
144
163
  export const formatUnionError: TypeErrorFormatter<UnionError> = () =>
145
- "A value does not match any allowed variant.";
164
+ "Значення не відповідає жодному з допустимих варіантів.";
146
165
 
147
- /** Formats a DateIsoError in English. */
166
+ /** Форматує DateIsoError українською. */
148
167
  export const formatDateIsoError: TypeErrorFormatter<DateIsoError> = (error) =>
149
- `The value ${safelyStringifyUnknownValue(error.value)} is not a canonical ISO date-time string.`;
168
+ `Значення ${safelyStringifyUnknownValue(error.value)} не є канонічним рядком дати й часу ISO.`;
150
169
 
151
- /** Formats a DateIsoFromDateError in English. */
170
+ /** Форматує DateIsoFromDateError українською. */
152
171
  export const formatDateIsoFromDateError: TypeErrorFormatter<
153
172
  DateIsoFromDateError
154
- > = () => "The Date cannot be represented as DateIso.";
173
+ > = () => "Дату неможливо подати як DateIso.";
155
174
 
156
- /** Formats a DecimalStringError in English. */
175
+ /** Форматує DecimalStringError українською. */
157
176
  export const formatDecimalStringError: TypeErrorFormatter<
158
177
  DecimalStringError
159
178
  > = (error) =>
160
- `The value ${safelyStringifyUnknownValue(error.value)} must be a canonical decimal string.`;
179
+ `Значення ${safelyStringifyUnknownValue(error.value)} має бути канонічним десятковим рядком.`;
161
180
 
162
- /** Formats an Int64Error in English. */
181
+ /** Форматує Int64Error українською. */
163
182
  export const formatInt64Error: TypeErrorFormatter<Int64Error> = (error) =>
164
- `The value ${safelyStringifyUnknownValue(error.value)} is not a valid signed 64-bit integer (Int64).`;
183
+ `Значення ${safelyStringifyUnknownValue(error.value)} не є допустимим 64-бітним цілим числом зі знаком (Int64).`;
165
184
 
166
- /** Formats a UInt64Error in English. */
185
+ /** Форматує UInt64Error українською. */
167
186
  export const formatUInt64Error: TypeErrorFormatter<UInt64Error> = (error) =>
168
- `The value ${safelyStringifyUnknownValue(error.value)} is not a valid unsigned 64-bit integer (UInt64).`;
187
+ `Значення ${safelyStringifyUnknownValue(error.value)} не є допустимим 64-бітним цілим числом без знака (UInt64).`;
169
188
 
170
- /** Formats an Int64StringError in English. */
189
+ /** Форматує Int64StringError українською. */
171
190
  export const formatInt64StringError: TypeErrorFormatter<Int64StringError> = (
172
191
  error,
173
192
  ) =>
174
- `The value ${safelyStringifyUnknownValue(error.value)} is not a valid Int64 string.`;
193
+ `Значення ${safelyStringifyUnknownValue(error.value)} не є допустимим рядком Int64.`;
175
194
 
176
- /** Formats a CapitalizedError in English. */
195
+ /** Formats an IdentifierError in Ukrainian. */
196
+ export const formatIdentifierError: TypeErrorFormatter<IdentifierError> = (
197
+ error,
198
+ ) =>
199
+ `Значення ${safelyStringifyUnknownValue(error.value)} не є ідентифікатором у форматі ${error.casing}.`;
200
+
201
+ /** Форматує CapitalizedError українською. */
177
202
  export const formatCapitalizedError: TypeErrorFormatter<CapitalizedError> = (
178
203
  error,
179
204
  ) =>
180
- `The value ${safelyStringifyUnknownValue(error.value)} must be capitalized.`;
205
+ `Значення ${safelyStringifyUnknownValue(error.value)} має починатися з великої літери.`;
206
+
207
+ /** Formats an UncapitalizedError in Ukrainian. */
208
+ export const formatUncapitalizedError: TypeErrorFormatter<
209
+ UncapitalizedError
210
+ > = (error) =>
211
+ `Значення ${safelyStringifyUnknownValue(error.value)} не повинно починатися з великої літери.`;
212
+
213
+ /** Formats an UppercasedError in Ukrainian. */
214
+ export const formatUppercasedError: TypeErrorFormatter<UppercasedError> = (
215
+ error,
216
+ ) =>
217
+ `Значення ${safelyStringifyUnknownValue(error.value)} має бути записане великими літерами.`;
218
+
219
+ /** Formats a LowercasedError in Ukrainian. */
220
+ export const formatLowercasedError: TypeErrorFormatter<LowercasedError> = (
221
+ error,
222
+ ) =>
223
+ `Значення ${safelyStringifyUnknownValue(error.value)} має бути записане малими літерами.`;
181
224
 
182
- /** Formats a TrimmedError in English. */
225
+ /** Форматує TrimmedError українською. */
183
226
  export const formatTrimmedError: TypeErrorFormatter<TrimmedError> = (error) =>
184
- `The value ${safelyStringifyUnknownValue(error.value)} must be trimmed.`;
227
+ `Значення ${safelyStringifyUnknownValue(error.value)} не має містити пробілів на початку та в кінці.`;
185
228
 
186
- /** Formats a MinLengthError in English. */
229
+ /** Formats a StartsWithError in Ukrainian. */
230
+ export const formatStartsWithError: TypeErrorFormatter<StartsWithError> = (
231
+ error,
232
+ ) =>
233
+ `Значення ${safelyStringifyUnknownValue(error.value)} має починатися з ${safelyStringifyUnknownValue(error.prefix)}.`;
234
+
235
+ /** Форматує MinLengthError українською. */
187
236
  export const formatMinLengthError: TypeErrorFormatter<MinLengthError> = (
188
237
  error,
189
238
  ) =>
190
- `The value ${safelyStringifyUnknownValue(error.value)} does not meet the minimum length of ${error.min}.`;
239
+ `Значення ${safelyStringifyUnknownValue(error.value)} коротше за мінімальну довжину ${error.min}.`;
191
240
 
192
- /** Formats a MaxLengthError in English. */
241
+ /** Форматує MaxLengthError українською. */
193
242
  export const formatMaxLengthError: TypeErrorFormatter<MaxLengthError> = (
194
243
  error,
195
244
  ) =>
196
- `The value ${safelyStringifyUnknownValue(error.value)} exceeds the maximum length of ${error.max}.`;
245
+ `Значення ${safelyStringifyUnknownValue(error.value)} перевищує максимальну довжину ${error.max}.`;
197
246
 
198
- /** Formats a LengthError in English. */
247
+ /** Форматує LengthError українською. */
199
248
  export const formatLengthError: TypeErrorFormatter<LengthError> = (error) =>
200
- `The value ${safelyStringifyUnknownValue(error.value)} does not have the required length of ${error.exact}.`;
249
+ `Значення ${safelyStringifyUnknownValue(error.value)} не має необхідної довжини ${error.exact}.`;
201
250
 
202
- /** Formats a RegexError in English. */
251
+ /** Форматує RegexError українською. */
203
252
  export const formatRegexError: TypeErrorFormatter<RegexError> = (error) =>
204
- `The value ${safelyStringifyUnknownValue(error.value)} does not match /${error.source}/${error.flags}.`;
253
+ `Значення ${safelyStringifyUnknownValue(error.value)} не відповідає /${error.source}/${error.flags}.`;
205
254
 
206
- /** Formats a Base64UrlError in English. */
255
+ /** Форматує Base64UrlError українською. */
207
256
  export const formatBase64UrlError: TypeErrorFormatter<Base64UrlError> = (
208
257
  error,
209
258
  ) =>
210
- `The value ${safelyStringifyUnknownValue(error.value)} is not a valid Base64Url string.`;
259
+ `Значення ${safelyStringifyUnknownValue(error.value)} не є допустимим рядком Base64Url.`;
211
260
 
212
- /** Formats a NameError in English. */
261
+ /** Форматує NameError українською. */
213
262
  export const formatNameError: TypeErrorFormatter<NameError> = (error) =>
214
- `The value ${safelyStringifyUnknownValue(error.value)} is not a valid Name.`;
263
+ `Значення ${safelyStringifyUnknownValue(error.value)} не є допустимим Name.`;
215
264
 
216
- /** Formats a MnemonicError in English. */
265
+ /** Форматує MnemonicError українською. */
217
266
  export const formatMnemonicError: TypeErrorFormatter<MnemonicError> = (error) =>
218
- `The value ${safelyStringifyUnknownValue(error.value)} is not a valid English BIP39 mnemonic.`;
267
+ `Значення ${safelyStringifyUnknownValue(error.value)} не є допустимою англійською мнемонічною фразою BIP39.`;
219
268
 
220
- /** Formats an IdError in English. */
269
+ /** Форматує IdError українською. */
221
270
  export const formatIdError: TypeErrorFormatter<IdError> = (error) =>
222
- `The value ${safelyStringifyUnknownValue(error.value)} is not a valid Id.`;
271
+ `Значення ${safelyStringifyUnknownValue(error.value)} не є допустимим Id.`;
223
272
 
224
- /** Formats a TableIdError in English. */
273
+ /** Форматує TableIdError українською. */
225
274
  export const formatTableIdError: TypeErrorFormatter<TableIdError> = (error) =>
226
- `The value ${safelyStringifyUnknownValue(error.value)} is not a valid Id for table ${error.table}.`;
275
+ `Значення ${safelyStringifyUnknownValue(error.value)} не є допустимим Id для таблиці ${error.table}.`;
227
276
 
228
- /** Formats a NonNegativeError in English. */
277
+ /** Форматує NonNegativeError українською. */
229
278
  export const formatNonNegativeError: TypeErrorFormatter<NonNegativeError> = (
230
279
  error,
231
280
  ) =>
232
- `The value ${safelyStringifyUnknownValue(error.value)} must be non-negative (>= 0).`;
281
+ `Значення ${safelyStringifyUnknownValue(error.value)} має бути невід’ємним (>= 0).`;
233
282
 
234
- /** Formats a NonNegativeDecimalStringError in English. */
283
+ /** Форматує NonNegativeDecimalStringError українською. */
235
284
  export const formatNonNegativeDecimalStringError: TypeErrorFormatter<
236
285
  NonNegativeDecimalStringError
237
286
  > = (error) =>
238
- `The value ${safelyStringifyUnknownValue(error.value)} must be a non-negative decimal string.`;
287
+ `Значення ${safelyStringifyUnknownValue(error.value)} має бути невід’ємним десятковим рядком.`;
239
288
 
240
- /** Formats a PositiveError in English. */
289
+ /** Форматує PositiveError українською. */
241
290
  export const formatPositiveError: TypeErrorFormatter<PositiveError> = (error) =>
242
- `The value ${safelyStringifyUnknownValue(error.value)} must be positive (> 0).`;
291
+ `Значення ${safelyStringifyUnknownValue(error.value)} має бути додатним (> 0).`;
243
292
 
244
- /** Formats a PositiveDecimalStringError in English. */
293
+ /** Форматує PositiveDecimalStringError українською. */
245
294
  export const formatPositiveDecimalStringError: TypeErrorFormatter<
246
295
  PositiveDecimalStringError
247
296
  > = (error) =>
248
- `The value ${safelyStringifyUnknownValue(error.value)} must be a positive decimal string.`;
297
+ `Значення ${safelyStringifyUnknownValue(error.value)} має бути додатним десятковим рядком.`;
249
298
 
250
- /** Formats a NonPositiveError in English. */
299
+ /** Форматує NonPositiveError українською. */
251
300
  export const formatNonPositiveError: TypeErrorFormatter<NonPositiveError> = (
252
301
  error,
253
302
  ) =>
254
- `The value ${safelyStringifyUnknownValue(error.value)} must be non-positive (<= 0).`;
303
+ `Значення ${safelyStringifyUnknownValue(error.value)} має бути недодатним (<= 0).`;
255
304
 
256
- /** Formats a NonPositiveDecimalStringError in English. */
305
+ /** Форматує NonPositiveDecimalStringError українською. */
257
306
  export const formatNonPositiveDecimalStringError: TypeErrorFormatter<
258
307
  NonPositiveDecimalStringError
259
308
  > = (error) =>
260
- `The value ${safelyStringifyUnknownValue(error.value)} must be a non-positive decimal string.`;
309
+ `Значення ${safelyStringifyUnknownValue(error.value)} має бути недодатним десятковим рядком.`;
261
310
 
262
- /** Formats a NegativeError in English. */
311
+ /** Форматує NegativeError українською. */
263
312
  export const formatNegativeError: TypeErrorFormatter<NegativeError> = (error) =>
264
- `The value ${safelyStringifyUnknownValue(error.value)} must be negative (< 0).`;
313
+ `Значення ${safelyStringifyUnknownValue(error.value)} має бути від’ємним (< 0).`;
265
314
 
266
- /** Formats a NegativeDecimalStringError in English. */
315
+ /** Форматує NegativeDecimalStringError українською. */
267
316
  export const formatNegativeDecimalStringError: TypeErrorFormatter<
268
317
  NegativeDecimalStringError
269
318
  > = (error) =>
270
- `The value ${safelyStringifyUnknownValue(error.value)} must be a negative decimal string.`;
319
+ `Значення ${safelyStringifyUnknownValue(error.value)} має бути від’ємним десятковим рядком.`;
271
320
 
272
- /** Formats an IntError in English. */
321
+ /** Форматує IntError українською. */
273
322
  export const formatIntError: TypeErrorFormatter<IntError> = (error) =>
274
- `The value ${safelyStringifyUnknownValue(error.value)} must be a safe integer.`;
323
+ `Значення ${safelyStringifyUnknownValue(error.value)} має бути безпечним цілим числом.`;
275
324
 
276
- /** Formats a GreaterThanError in English. */
325
+ /** Форматує IntFromStringError українською. */
326
+ export const formatIntFromStringError: TypeErrorFormatter<
327
+ IntFromStringError
328
+ > = (error) =>
329
+ `Значення ${safelyStringifyUnknownValue(error.value)} не є десятковим цілим числом.`;
330
+
331
+ /** Форматує GreaterThanError українською. */
277
332
  export const formatGreaterThanError: TypeErrorFormatter<GreaterThanError> = (
278
333
  error,
279
334
  ) =>
280
- `The value ${safelyStringifyUnknownValue(error.value)} must be greater than ${error.min}.`;
335
+ `Значення ${safelyStringifyUnknownValue(error.value)} має бути більшим за ${error.min}.`;
281
336
 
282
- /** Formats a GreaterThanOrEqualToError in English. */
337
+ /** Форматує GreaterThanOrEqualToError українською. */
283
338
  export const formatGreaterThanOrEqualToError: TypeErrorFormatter<
284
339
  GreaterThanOrEqualToError
285
340
  > = (error) =>
286
- `The value ${safelyStringifyUnknownValue(error.value)} must be greater than or equal to ${error.min}.`;
341
+ `Значення ${safelyStringifyUnknownValue(error.value)} має бути більшим або рівним ${error.min}.`;
287
342
 
288
- /** Formats a LessThanError in English. */
343
+ /** Форматує LessThanError українською. */
289
344
  export const formatLessThanError: TypeErrorFormatter<LessThanError> = (error) =>
290
- `The value ${safelyStringifyUnknownValue(error.value)} must be less than ${error.max}.`;
345
+ `Значення ${safelyStringifyUnknownValue(error.value)} має бути меншим за ${error.max}.`;
291
346
 
292
- /** Formats a LessThanOrEqualToError in English. */
347
+ /** Форматує LessThanOrEqualToError українською. */
293
348
  export const formatLessThanOrEqualToError: TypeErrorFormatter<
294
349
  LessThanOrEqualToError
295
350
  > = (error) =>
296
- `The value ${safelyStringifyUnknownValue(error.value)} must be less than or equal to ${error.max}.`;
351
+ `Значення ${safelyStringifyUnknownValue(error.value)} має бути меншим або рівним ${error.max}.`;
297
352
 
298
- /** Formats a NonNaNError in English. */
353
+ /** Форматує NonNaNError українською. */
299
354
  export const formatNonNaNError: TypeErrorFormatter<NonNaNError> = () =>
300
- "The value must not be NaN.";
355
+ "Значення не має бути NaN.";
301
356
 
302
- /** Formats a FiniteError in English. */
357
+ /** Форматує FiniteError українською. */
303
358
  export const formatFiniteError: TypeErrorFormatter<FiniteError> = (error) =>
304
- `The value ${safelyStringifyUnknownValue(error.value)} must be finite.`;
359
+ `Значення ${safelyStringifyUnknownValue(error.value)} має бути скінченним.`;
305
360
 
306
- /** Formats a MultipleOfError in English. */
361
+ /** Форматує MultipleOfError українською. */
307
362
  export const formatMultipleOfError: TypeErrorFormatter<MultipleOfError> = (
308
363
  error,
309
364
  ) =>
310
- `The value ${safelyStringifyUnknownValue(error.value)} must be a multiple of ${error.divisor}.`;
365
+ `Значення ${safelyStringifyUnknownValue(error.value)} має бути кратним ${error.divisor}.`;
311
366
 
312
- /** Formats a BetweenError in English. */
367
+ /** Форматує BetweenError українською. */
313
368
  export const formatBetweenError: TypeErrorFormatter<BetweenError> = (error) =>
314
- `The value ${safelyStringifyUnknownValue(error.value)} must be between ${error.min} and ${error.max}, inclusive.`;
369
+ `Значення ${safelyStringifyUnknownValue(error.value)} має бути в межах від ${error.min} до ${error.max} включно.`;
315
370
 
316
- /** Formats an ArrayError in English. */
371
+ /** Форматує ArrayError українською. */
317
372
  export const formatArrayError: TypeErrorFormatter<ArrayError> = (error) => {
318
373
  if (error.reason.kind === "NotArray") {
319
- return `A value ${safelyStringifyUnknownValue(error.reason.value)} is not an array.`;
374
+ return `Значення ${safelyStringifyUnknownValue(error.reason.value)} не є масивом.`;
320
375
  }
321
376
  const issue = error.reason.issues[0];
322
377
 
323
378
  switch (issue.kind) {
324
379
  case "Hole":
325
- return `An array element at index ${issue.index} is missing.`;
380
+ return `Елемент масиву з індексом ${issue.index} відсутній.`;
326
381
  case "Accessor":
327
- return `An array element at index ${issue.index} must be a data property.`;
382
+ return `Елемент масиву з індексом ${issue.index} має бути властивістю даних.`;
328
383
  case "ExcessProperty":
329
- return "An excess Array property is not allowed. Remove it or use a different Type.";
384
+ return "Зайва властивість Array не допускається. Видаліть її або використайте інший Type.";
330
385
  case "Element":
331
- return `An array element at index ${issue.index} is invalid.`;
386
+ return `Елемент масиву з індексом ${issue.index} недійсний.`;
332
387
  }
333
388
  };
334
389
 
335
- /** Formats a SetError in English. */
390
+ /** Форматує SetError українською. */
336
391
  export const formatSetError: TypeErrorFormatter<SetError> = (error) => {
337
392
  if (error.reason.kind === "NotSet") {
338
- return `A value ${safelyStringifyUnknownValue(error.reason.value)} is not a Set.`;
393
+ return `Значення ${safelyStringifyUnknownValue(error.reason.value)} не є Set.`;
339
394
  }
340
395
  const issue = error.reason.issues[0];
341
396
 
342
397
  switch (issue.kind) {
343
398
  case "ExcessProperty":
344
- return `An excess Set property ${safelyStringifyUnknownValue(issue.key)} is not allowed.`;
399
+ return `Зайва властивість Set ${safelyStringifyUnknownValue(issue.key)} не допускається.`;
345
400
  case "Element":
346
- return `A Set element at index ${issue.index} is invalid.`;
401
+ return `Елемент Set з індексом ${issue.index} недійсний.`;
347
402
  }
348
403
  };
349
404
 
350
- /** Formats a MapError in English. */
405
+ /** Форматує MapError українською. */
351
406
  export const formatMapError: TypeErrorFormatter<MapError> = (error) => {
352
407
  if (error.reason.kind === "NotMap") {
353
- return `A value ${safelyStringifyUnknownValue(error.reason.value)} is not a Map.`;
408
+ return `Значення ${safelyStringifyUnknownValue(error.reason.value)} не є Map.`;
354
409
  }
355
410
  const issue = error.reason.issues[0];
356
411
 
357
412
  switch (issue.kind) {
358
413
  case "ExcessProperty":
359
- return `An excess Map property ${safelyStringifyUnknownValue(issue.key)} is not allowed.`;
414
+ return `Зайва властивість Map ${safelyStringifyUnknownValue(issue.key)} не допускається.`;
360
415
  case "Key":
361
416
  case "Value":
362
- return `A Map element at index ${issue.index} is invalid.`;
417
+ return `Елемент Map з індексом ${issue.index} недійсний.`;
363
418
  case "Collision":
364
- return `Map keys ${safelyStringifyUnknownValue(issue.previousKey)} and ${safelyStringifyUnknownValue(issue.key)} decode to the same key ${safelyStringifyUnknownValue(issue.outputKey)}.`;
419
+ return `Ключі Map ${safelyStringifyUnknownValue(issue.previousKey)} та ${safelyStringifyUnknownValue(issue.key)} декодуються в той самий ключ ${safelyStringifyUnknownValue(issue.outputKey)}.`;
365
420
  }
366
421
  };
367
422
 
368
- /** Formats a TupleError in English. */
423
+ /** Форматує TupleError українською. */
369
424
  export const formatTupleError: TypeErrorFormatter<
370
425
  TupleError | TupleElementsError<TypeError>
371
426
  > = (error) => {
372
427
  if (error.reason.kind === "NotArray") {
373
- return `A value ${safelyStringifyUnknownValue(error.reason.value)} is not a tuple.`;
428
+ return `Значення ${safelyStringifyUnknownValue(error.reason.value)} не є кортежем.`;
374
429
  }
375
430
  if (error.reason.kind === "InvalidLength") {
376
- return `A Tuple must contain exactly ${error.reason.expected} elements, but the value contains ${error.reason.actual}.`;
431
+ return `Tuple має містити рівно ${error.reason.expected} елементів, але значення містить ${error.reason.actual}.`;
377
432
  }
378
433
 
379
434
  const issue = error.reason.issues[0];
380
435
 
381
436
  switch (issue.kind) {
382
437
  case "Hole":
383
- return `A Tuple element at index ${issue.index} is missing.`;
438
+ return `Елемент Tuple з індексом ${issue.index} відсутній.`;
384
439
  case "Accessor":
385
- return `A Tuple element at index ${issue.index} must be a data property.`;
440
+ return `Елемент Tuple з індексом ${issue.index} має бути властивістю даних.`;
386
441
  case "ExcessProperty":
387
- return "An excess Tuple property is not allowed. Remove it or use a different Type.";
442
+ return "Зайва властивість Tuple не допускається. Видаліть її або використайте інший Type.";
388
443
  case "Element":
389
- return `A Tuple element at index ${issue.index} is invalid.`;
444
+ return `Елемент Tuple з індексом ${issue.index} недійсний.`;
390
445
  }
391
446
  };
392
447
 
393
- /** Formats a RecordError in English. */
448
+ /** Форматує RecordError українською. */
394
449
  export const formatRecordError: TypeErrorFormatter<RecordError> = (error) => {
395
450
  if (error.reason.kind === "NotRecord") {
396
- return `A value ${safelyStringifyUnknownValue(error.reason.value)} is not a Record.`;
451
+ return `Значення ${safelyStringifyUnknownValue(error.reason.value)} не є Record.`;
397
452
  }
398
453
  if (error.reason.kind === "NotPlainRecord") {
399
- return "The value is an object, but a Record Output must be a plain object or have a null prototype.";
454
+ return "Значення є об’єктом, але вихідне значення Record має бути простим об’єктом або мати прототип null.";
400
455
  }
401
456
 
402
457
  const issue = error.reason.issues[0];
403
458
 
404
459
  switch (issue.kind) {
405
460
  case "Key":
406
- return `Property key ${safelyStringifyUnknownValue(issue.key)} is invalid.`;
461
+ return `Ключ властивості ${safelyStringifyUnknownValue(issue.key)} недійсний.`;
407
462
  case "Value":
408
- return `The value of property ${safelyStringifyUnknownValue(issue.key)} is invalid.`;
463
+ return `Значення властивості ${safelyStringifyUnknownValue(issue.key)} недійсне.`;
409
464
  case "Accessor":
410
- return `A Record property ${safelyStringifyUnknownValue(issue.key)} must be a data property.`;
465
+ return `Властивість Record ${safelyStringifyUnknownValue(issue.key)} має бути властивістю даних.`;
411
466
  case "NonEnumerable":
412
- return `A Record property ${safelyStringifyUnknownValue(issue.key)} must be enumerable.`;
467
+ return `Властивість Record ${safelyStringifyUnknownValue(issue.key)} має бути перелічуваною.`;
413
468
  case "Collision":
414
- return `Record keys ${safelyStringifyUnknownValue(issue.previousKey)} and ${safelyStringifyUnknownValue(issue.key)} decode to the same key ${safelyStringifyUnknownValue(issue.outputKey)}.`;
469
+ return `Ключі Record ${safelyStringifyUnknownValue(issue.previousKey)} та ${safelyStringifyUnknownValue(issue.key)} декодуються в той самий ключ ${safelyStringifyUnknownValue(issue.outputKey)}.`;
415
470
  }
416
471
  };
417
472
 
418
- /** Formats an ObjectError in English. */
473
+ /** Форматує ObjectError українською. */
419
474
  export const formatObjectError: TypeErrorFormatter<ObjectError> = (error) => {
420
475
  if (error.reason.kind !== "Properties") {
421
476
  return formatPlainObjectRootError(error.reason);
@@ -429,24 +484,24 @@ export const formatObjectError: TypeErrorFormatter<ObjectError> = (error) => {
429
484
  if (propertyError.type === "ObjectPropertyAccess") {
430
485
  switch ((propertyError as ObjectPropertyAccessError).reason) {
431
486
  case "Accessor":
432
- return "An Object property must be a data property. Materialize accessor values into plain data before using this Type or use a different Type.";
487
+ return "Властивість Object має бути властивістю даних. Матеріалізуйте значення аксесорів у прості дані перед використанням цього Type або використайте інший Type.";
433
488
  case "NonEnumerable":
434
- return "An Object property must be enumerable. Make it enumerable or use a different Type.";
489
+ return "Властивість Object має бути перелічуваною. Зробіть її перелічуваною або використайте інший Type.";
435
490
  }
436
491
  }
437
492
  if (propertyError.type === "ObjectMissingProperty") {
438
- return `The required property ${safelyStringifyUnknownValue(key)} is missing.`;
493
+ return `Обов’язкова властивість ${safelyStringifyUnknownValue(key)} відсутня.`;
439
494
  }
440
495
  if (typeof key === "symbol") {
441
- return "An Object property key must be a string. Remove the symbol property or use a different Type.";
496
+ return "Ключ властивості Object має бути рядком. Видаліть символьну властивість або використайте інший Type.";
442
497
  }
443
498
  if (propertyError.type === "ObjectExcessProperty") {
444
- return `The property ${safelyStringifyUnknownValue(key)} is not allowed. Remove it or use a different Type.`;
499
+ return `Властивість ${safelyStringifyUnknownValue(key)} не допускається. Видаліть її або використайте інший Type.`;
445
500
  }
446
- return `The property ${safelyStringifyUnknownValue(key)} is invalid.`;
501
+ return `Властивість ${safelyStringifyUnknownValue(key)} недійсна.`;
447
502
  };
448
503
 
449
- /** Formats a DiscriminatedUnionError in English. */
504
+ /** Форматує DiscriminatedUnionError українською. */
450
505
  export const formatDiscriminatedUnionError: TypeErrorFormatter<
451
506
  DiscriminatedUnionError
452
507
  > = (error) => {
@@ -454,23 +509,23 @@ export const formatDiscriminatedUnionError: TypeErrorFormatter<
454
509
  case "Object":
455
510
  return formatPlainObjectRootError(error.reason.error.reason);
456
511
  case "PropertyAccess": {
457
- const property = `The discriminator property ${safelyStringifyUnknownValue(error.reason.key)}`;
512
+ const property = `Властивість-дискримінатор ${safelyStringifyUnknownValue(error.reason.key)}`;
458
513
  if (error.reason.reason === "Accessor") {
459
- return `${property} must be a data property.`;
514
+ return `${property} має бути властивістю даних.`;
460
515
  }
461
516
  if (error.reason.reason === "Inherited") {
462
- return `${property} must be an own property.`;
517
+ return `${property} має бути власною властивістю.`;
463
518
  }
464
- return `${property} must be enumerable.`;
519
+ return `${property} має бути перелічуваною.`;
465
520
  }
466
521
  case "Discriminator":
467
- return `The discriminator property ${safelyStringifyUnknownValue(error.reason.key)} has an unexpected value ${safelyStringifyUnknownValue(error.reason.value)}.`;
522
+ return `Властивість-дискримінатор ${safelyStringifyUnknownValue(error.reason.key)} має неочікуване значення ${safelyStringifyUnknownValue(error.reason.value)}.`;
468
523
  case "Member":
469
- return `The selected variant ${safelyStringifyUnknownValue(error.reason.discriminator)} is invalid.`;
524
+ return `Вибраний варіант ${safelyStringifyUnknownValue(error.reason.discriminator)} недійсний.`;
470
525
  }
471
526
  };
472
527
 
473
- /** Formats a JsonValueError in English. */
528
+ /** Форматує JsonValueError українською. */
474
529
  export const formatJsonValueError: TypeErrorFormatter<JsonValueError> = (
475
530
  error,
476
531
  ) => {
@@ -478,26 +533,44 @@ export const formatJsonValueError: TypeErrorFormatter<JsonValueError> = (
478
533
 
479
534
  switch (issue.kind) {
480
535
  case "InvalidType":
481
- return `A value ${safelyStringifyUnknownValue(issue.value)} is not a JSON value.`;
536
+ return `Значення ${safelyStringifyUnknownValue(issue.value)} не є значенням JSON.`;
482
537
  case "NonFiniteNumber":
483
- return "A JSON number must be finite.";
538
+ return "Число JSON має бути скінченним.";
484
539
  case "UnexpectedPrototype":
485
- return "The value is an object, but a JsonValue object must be a plain object or have a null prototype.";
540
+ return "Значення є об’єктом, але об’єкт JsonValue має бути простим об’єктом або мати прототип null.";
486
541
  case "Accessor":
487
- return "A JSON property must be a data property. Materialize accessor values into plain data before using this Type or use a different Type.";
542
+ return "Властивість JSON має бути властивістю даних. Матеріалізуйте значення аксесорів у прості дані перед використанням цього Type або використайте інший Type.";
488
543
  case "NonEnumerable":
489
- return "A JSON object property must be enumerable. Remove it or use a different Type.";
544
+ return "Властивість об’єкта JSON має бути перелічуваною. Видаліть її або використайте інший Type.";
490
545
  case "SymbolProperty":
491
- return "A JSON object property key must be a string. Remove the symbol property or use a different Type.";
546
+ return "Ключ властивості об’єкта JSON має бути рядком. Видаліть символьну властивість або використайте інший Type.";
492
547
  case "Hole":
493
- return "A JSON array element is missing.";
548
+ return "Елемент масиву JSON відсутній.";
494
549
  case "ExcessProperty":
495
- return "An excess JSON array property is not allowed. Remove it or use a different Type.";
550
+ return "Зайва властивість масиву JSON не допускається. Видаліть її або використайте інший Type.";
496
551
  case "CircularReference":
497
- return "A JsonValue must not contain circular references.";
552
+ return "JsonValue не має містити циклічних посилань.";
498
553
  }
499
554
  };
500
555
 
501
- /** Formats a JsonError in English. */
556
+ /** Форматує JsonError українською. */
502
557
  export const formatJsonError: TypeErrorFormatter<JsonError> = (error) =>
503
- `The value ${safelyStringifyUnknownValue(error.value)} cannot be parsed into a JsonValue.`;
558
+ `Значення ${safelyStringifyUnknownValue(error.value)} неможливо розібрати як JsonValue.`;
559
+
560
+ /** Formats a {@link ByteSizeLiteralError}. */
561
+ export const formatByteSizeLiteralError: TypeErrorFormatter<
562
+ ByteSizeLiteralError
563
+ > = (error) =>
564
+ `Значення ${safelyStringifyUnknownValue(error.value)} не є літералом розміру в байтах. Використовуйте значення на кшталт "512KiB" або "1MiB".`;
565
+
566
+ /** Formats a {@link DurationLiteralError}. */
567
+ export const formatDurationLiteralError: TypeErrorFormatter<
568
+ DurationLiteralError
569
+ > = (error) =>
570
+ `Значення ${safelyStringifyUnknownValue(error.value)} не є літералом тривалості. Використовуйте значення на кшталт "500ms" або "1.5s".`;
571
+
572
+ /** Formats a {@link PercentageLiteralError}. */
573
+ export const formatPercentageLiteralError: TypeErrorFormatter<
574
+ PercentageLiteralError
575
+ > = (error) =>
576
+ `Значення ${safelyStringifyUnknownValue(error.value)} не є відсотковим літералом. Використовуйте значення на кшталт "50%" або "12.5%".`;