@evolu/common 8.2.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 (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 +1285 -734
  24. package/dist/src/Type.d.ts.map +1 -1
  25. package/dist/src/Type.js +1057 -193
  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 +1598 -712
  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/bn.ts ADDED
@@ -0,0 +1,486 @@
1
+ /**
2
+ * Bengali Evolu Type error formatters.
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)} মানটি object নয়।`
84
+ : "মানটি object, কিন্তু Object Output অবশ্যই plain object হতে হবে অথবা এর prototype null হতে হবে।";
85
+
86
+ /** Formats a NeverError in Bengali. */
87
+ export const formatNeverError: TypeErrorFormatter<NeverError> = (error) =>
88
+ `${safelyStringifyUnknownValue(error.value)} মানটি Never টাইপের জন্য বৈধ নয়।`;
89
+
90
+ /** Formats a String TypeOfError in Bengali. */
91
+ export const formatStringError: TypeErrorFormatter<TypeOfError<"String">> =
92
+ formatTypeOfError;
93
+
94
+ /** Formats a TemplateLiteralError in Bengali. */
95
+ export const formatTemplateLiteralError: TypeErrorFormatter<
96
+ TemplateLiteralError
97
+ > = (error) =>
98
+ `${safelyStringifyUnknownValue(error.value)} মানটি template literal-এর সঙ্গে মেলে না।`;
99
+
100
+ /** Formats a Number TypeOfError in Bengali. */
101
+ export const formatNumberError: TypeErrorFormatter<TypeOfError<"Number">> =
102
+ formatTypeOfError;
103
+
104
+ /** Formats a BigInt TypeOfError in Bengali. */
105
+ export const formatBigIntError: TypeErrorFormatter<TypeOfError<"BigInt">> =
106
+ formatTypeOfError;
107
+
108
+ /** Formats a Boolean TypeOfError in Bengali. */
109
+ export const formatBooleanError: TypeErrorFormatter<TypeOfError<"Boolean">> =
110
+ formatTypeOfError;
111
+
112
+ /** Formats a Symbol TypeOfError in Bengali. */
113
+ export const formatSymbolError: TypeErrorFormatter<TypeOfError<"Symbol">> =
114
+ formatTypeOfError;
115
+
116
+ /** Formats a Function TypeOfError in Bengali. */
117
+ export const formatFunctionError: TypeErrorFormatter<TypeOfError<"Function">> =
118
+ formatTypeOfError;
119
+
120
+ /** Formats an EvoluTypeError in Bengali. */
121
+ export const formatEvoluTypeError: TypeErrorFormatter<EvoluTypeError> = (
122
+ error,
123
+ ) => `${safelyStringifyUnknownValue(error.value)} মানটি Evolu Type নয়।`;
124
+
125
+ /** Formats an ObjectTagError in Bengali. */
126
+ export const formatObjectTagError: TypeErrorFormatter<ObjectTagError> = (
127
+ error,
128
+ ) =>
129
+ `${safelyStringifyUnknownValue(error.value)} মানটিতে প্রত্যাশিত object tag ${safelyStringifyUnknownValue(error.expected)} নেই।`;
130
+
131
+ /** Formats an InstanceOfError in Bengali. */
132
+ export const formatInstanceOfError: TypeErrorFormatter<InstanceOfError> = (
133
+ error,
134
+ ) =>
135
+ `${safelyStringifyUnknownValue(error.value)} মানটি ${error.constructorName}-এর instance নয়।`;
136
+
137
+ /** Formats a LiteralError in Bengali. */
138
+ export const formatLiteralError: TypeErrorFormatter<LiteralError> = (error) =>
139
+ `${safelyStringifyUnknownValue(error.value)} মানটি প্রত্যাশিত literal-এর সঙ্গে strictly equal নয়: ${globalThis.String(error.expected)}।`;
140
+
141
+ /** Formats a UnionError in Bengali. */
142
+ export const formatUnionError: TypeErrorFormatter<UnionError> = () =>
143
+ "মানটি অনুমোদিত কোনো variant-এর সঙ্গে মেলে না।";
144
+
145
+ /** Formats a DateIsoError in Bengali. */
146
+ export const formatDateIsoError: TypeErrorFormatter<DateIsoError> = (error) =>
147
+ `${safelyStringifyUnknownValue(error.value)} মানটি canonical ISO date-time string নয়।`;
148
+
149
+ /** Formats a DateIsoFromDateError in Bengali. */
150
+ export const formatDateIsoFromDateError: TypeErrorFormatter<
151
+ DateIsoFromDateError
152
+ > = () => "Date-টিকে DateIso হিসেবে উপস্থাপন করা যায় না।";
153
+
154
+ /** Formats a DecimalStringError in Bengali. */
155
+ export const formatDecimalStringError: TypeErrorFormatter<
156
+ DecimalStringError
157
+ > = (error) =>
158
+ `${safelyStringifyUnknownValue(error.value)} মানটি canonical decimal string হতে হবে।`;
159
+
160
+ /** Formats an Int64Error in Bengali. */
161
+ export const formatInt64Error: TypeErrorFormatter<Int64Error> = (error) =>
162
+ `${safelyStringifyUnknownValue(error.value)} মানটি বৈধ signed 64-bit integer (Int64) নয়।`;
163
+
164
+ /** Formats a UInt64Error in Bengali. */
165
+ export const formatUInt64Error: TypeErrorFormatter<UInt64Error> = (error) =>
166
+ `${safelyStringifyUnknownValue(error.value)} মানটি বৈধ unsigned 64-bit integer (UInt64) নয়।`;
167
+
168
+ /** Formats an Int64StringError in Bengali. */
169
+ export const formatInt64StringError: TypeErrorFormatter<Int64StringError> = (
170
+ error,
171
+ ) => `${safelyStringifyUnknownValue(error.value)} মানটি বৈধ Int64 string নয়।`;
172
+
173
+ /** Formats a CapitalizedError in Bengali. */
174
+ export const formatCapitalizedError: TypeErrorFormatter<CapitalizedError> = (
175
+ error,
176
+ ) =>
177
+ `${safelyStringifyUnknownValue(error.value)} মানটির প্রথম অক্ষর বড় হাতের হতে হবে।`;
178
+
179
+ /** Formats a TrimmedError in Bengali. */
180
+ export const formatTrimmedError: TypeErrorFormatter<TrimmedError> = (error) =>
181
+ `${safelyStringifyUnknownValue(error.value)} মানটির শুরু বা শেষে whitespace থাকা যাবে না।`;
182
+
183
+ /** Formats a MinLengthError in Bengali. */
184
+ export const formatMinLengthError: TypeErrorFormatter<MinLengthError> = (
185
+ error,
186
+ ) =>
187
+ `${safelyStringifyUnknownValue(error.value)} মানটির দৈর্ঘ্য অন্তত ${error.min} হতে হবে।`;
188
+
189
+ /** Formats a MaxLengthError in Bengali. */
190
+ export const formatMaxLengthError: TypeErrorFormatter<MaxLengthError> = (
191
+ error,
192
+ ) =>
193
+ `${safelyStringifyUnknownValue(error.value)} মানটির দৈর্ঘ্য সর্বোচ্চ ${error.max} হতে পারে।`;
194
+
195
+ /** Formats a LengthError in Bengali. */
196
+ export const formatLengthError: TypeErrorFormatter<LengthError> = (error) =>
197
+ `${safelyStringifyUnknownValue(error.value)} মানটির দৈর্ঘ্য ${error.exact} হতে হবে।`;
198
+
199
+ /** Formats a RegexError in Bengali. */
200
+ export const formatRegexError: TypeErrorFormatter<RegexError> = (error) =>
201
+ `${safelyStringifyUnknownValue(error.value)} মানটি /${error.source}/${error.flags}-এর সঙ্গে মেলে না।`;
202
+
203
+ /** Formats a Base64UrlError in Bengali. */
204
+ export const formatBase64UrlError: TypeErrorFormatter<Base64UrlError> = (
205
+ error,
206
+ ) =>
207
+ `${safelyStringifyUnknownValue(error.value)} মানটি বৈধ Base64Url string নয়।`;
208
+
209
+ /** Formats a NameError in Bengali. */
210
+ export const formatNameError: TypeErrorFormatter<NameError> = (error) =>
211
+ `${safelyStringifyUnknownValue(error.value)} মানটি বৈধ Name নয়।`;
212
+
213
+ /** Formats a MnemonicError in Bengali. */
214
+ export const formatMnemonicError: TypeErrorFormatter<MnemonicError> = (error) =>
215
+ `${safelyStringifyUnknownValue(error.value)} মানটি বৈধ ইংরেজি BIP39 mnemonic নয়।`;
216
+
217
+ /** Formats an IdError in Bengali. */
218
+ export const formatIdError: TypeErrorFormatter<IdError> = (error) =>
219
+ `${safelyStringifyUnknownValue(error.value)} মানটি বৈধ Id নয়।`;
220
+
221
+ /** Formats a TableIdError in Bengali. */
222
+ export const formatTableIdError: TypeErrorFormatter<TableIdError> = (error) =>
223
+ `${safelyStringifyUnknownValue(error.value)} মানটি ${error.table} table-এর জন্য বৈধ Id নয়।`;
224
+
225
+ /** Formats a NonNegativeError in Bengali. */
226
+ export const formatNonNegativeError: TypeErrorFormatter<NonNegativeError> = (
227
+ error,
228
+ ) =>
229
+ `${safelyStringifyUnknownValue(error.value)} মানটি ঋণাত্মক হতে পারবে না (>= 0)।`;
230
+
231
+ /** Formats a NonNegativeDecimalStringError in Bengali. */
232
+ export const formatNonNegativeDecimalStringError: TypeErrorFormatter<
233
+ NonNegativeDecimalStringError
234
+ > = (error) =>
235
+ `${safelyStringifyUnknownValue(error.value)} মানটি ঋণাত্মক নয় এমন decimal string হতে হবে।`;
236
+
237
+ /** Formats a PositiveError in Bengali. */
238
+ export const formatPositiveError: TypeErrorFormatter<PositiveError> = (error) =>
239
+ `${safelyStringifyUnknownValue(error.value)} মানটি ধনাত্মক হতে হবে (> 0)।`;
240
+
241
+ /** Formats a PositiveDecimalStringError in Bengali. */
242
+ export const formatPositiveDecimalStringError: TypeErrorFormatter<
243
+ PositiveDecimalStringError
244
+ > = (error) =>
245
+ `${safelyStringifyUnknownValue(error.value)} মানটি ধনাত্মক decimal string হতে হবে।`;
246
+
247
+ /** Formats a NonPositiveError in Bengali. */
248
+ export const formatNonPositiveError: TypeErrorFormatter<NonPositiveError> = (
249
+ error,
250
+ ) =>
251
+ `${safelyStringifyUnknownValue(error.value)} মানটি ধনাত্মক হতে পারবে না (<= 0)।`;
252
+
253
+ /** Formats a NonPositiveDecimalStringError in Bengali. */
254
+ export const formatNonPositiveDecimalStringError: TypeErrorFormatter<
255
+ NonPositiveDecimalStringError
256
+ > = (error) =>
257
+ `${safelyStringifyUnknownValue(error.value)} মানটি ধনাত্মক নয় এমন decimal string হতে হবে।`;
258
+
259
+ /** Formats a NegativeError in Bengali. */
260
+ export const formatNegativeError: TypeErrorFormatter<NegativeError> = (error) =>
261
+ `${safelyStringifyUnknownValue(error.value)} মানটি ঋণাত্মক হতে হবে (< 0)।`;
262
+
263
+ /** Formats a NegativeDecimalStringError in Bengali. */
264
+ export const formatNegativeDecimalStringError: TypeErrorFormatter<
265
+ NegativeDecimalStringError
266
+ > = (error) =>
267
+ `${safelyStringifyUnknownValue(error.value)} মানটি ঋণাত্মক decimal string হতে হবে।`;
268
+
269
+ /** Formats an IntError in Bengali. */
270
+ export const formatIntError: TypeErrorFormatter<IntError> = (error) =>
271
+ `${safelyStringifyUnknownValue(error.value)} মানটি safe integer হতে হবে।`;
272
+
273
+ /** Formats a GreaterThanError in Bengali. */
274
+ export const formatGreaterThanError: TypeErrorFormatter<GreaterThanError> = (
275
+ error,
276
+ ) =>
277
+ `${safelyStringifyUnknownValue(error.value)} মানটি ${error.min}-এর চেয়ে বড় হতে হবে।`;
278
+
279
+ /** Formats a GreaterThanOrEqualToError in Bengali. */
280
+ export const formatGreaterThanOrEqualToError: TypeErrorFormatter<
281
+ GreaterThanOrEqualToError
282
+ > = (error) =>
283
+ `${safelyStringifyUnknownValue(error.value)} মানটি ${error.min}-এর চেয়ে বড় বা সমান হতে হবে।`;
284
+
285
+ /** Formats a LessThanError in Bengali. */
286
+ export const formatLessThanError: TypeErrorFormatter<LessThanError> = (error) =>
287
+ `${safelyStringifyUnknownValue(error.value)} মানটি ${error.max}-এর চেয়ে ছোট হতে হবে।`;
288
+
289
+ /** Formats a LessThanOrEqualToError in Bengali. */
290
+ export const formatLessThanOrEqualToError: TypeErrorFormatter<
291
+ LessThanOrEqualToError
292
+ > = (error) =>
293
+ `${safelyStringifyUnknownValue(error.value)} মানটি ${error.max}-এর চেয়ে ছোট বা সমান হতে হবে।`;
294
+
295
+ /** Formats a NonNaNError in Bengali. */
296
+ export const formatNonNaNError: TypeErrorFormatter<NonNaNError> = () =>
297
+ "মানটি NaN হওয়া চলবে না।";
298
+
299
+ /** Formats a FiniteError in Bengali. */
300
+ export const formatFiniteError: TypeErrorFormatter<FiniteError> = (error) =>
301
+ `${safelyStringifyUnknownValue(error.value)} মানটি finite হতে হবে।`;
302
+
303
+ /** Formats a MultipleOfError in Bengali. */
304
+ export const formatMultipleOfError: TypeErrorFormatter<MultipleOfError> = (
305
+ error,
306
+ ) =>
307
+ `${safelyStringifyUnknownValue(error.value)} মানটি ${error.divisor}-এর গুণিতক হতে হবে।`;
308
+
309
+ /** Formats a BetweenError in Bengali. */
310
+ export const formatBetweenError: TypeErrorFormatter<BetweenError> = (error) =>
311
+ `${safelyStringifyUnknownValue(error.value)} মানটি ${error.min} থেকে ${error.max}-এর মধ্যে, দুই প্রান্তসহ, হতে হবে।`;
312
+
313
+ /** Formats an ArrayError in Bengali. */
314
+ export const formatArrayError: TypeErrorFormatter<ArrayError> = (error) => {
315
+ if (error.reason.kind === "NotArray") {
316
+ return `${safelyStringifyUnknownValue(error.reason.value)} মানটি array নয়।`;
317
+ }
318
+ const issue = error.reason.issues[0];
319
+
320
+ switch (issue.kind) {
321
+ case "Hole":
322
+ return `array-এর index ${issue.index}-এ element অনুপস্থিত।`;
323
+ case "Accessor":
324
+ return `array-এর index ${issue.index}-এর element অবশ্যই data property হতে হবে।`;
325
+ case "ExcessProperty":
326
+ return "অতিরিক্ত Array property অনুমোদিত নয়। এটি সরিয়ে দিন অথবা অন্য Type ব্যবহার করুন।";
327
+ case "Element":
328
+ return `array-এর index ${issue.index}-এর element অবৈধ।`;
329
+ }
330
+ };
331
+
332
+ /** Formats a SetError in Bengali. */
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 subclass-এর instance, কিন্তু Set Output অবশ্যই সরাসরি Set instance হতে হবে।";
339
+ }
340
+
341
+ const issue = error.reason.issues[0];
342
+
343
+ switch (issue.kind) {
344
+ case "ExcessProperty":
345
+ return `অতিরিক্ত Set property ${safelyStringifyUnknownValue(issue.key)} অনুমোদিত নয়।`;
346
+ case "Element":
347
+ return `Set-এর index ${issue.index}-এর element অবৈধ।`;
348
+ }
349
+ };
350
+
351
+ /** Formats a TupleError in Bengali. */
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}টি element থাকতে হবে, কিন্তু মানটিতে ${error.reason.actual}টি আছে।`;
360
+ }
361
+
362
+ const issue = error.reason.issues[0];
363
+
364
+ switch (issue.kind) {
365
+ case "Hole":
366
+ return `Tuple-এর index ${issue.index}-এ element অনুপস্থিত।`;
367
+ case "Accessor":
368
+ return `Tuple-এর index ${issue.index}-এর element অবশ্যই data property হতে হবে।`;
369
+ case "ExcessProperty":
370
+ return "অতিরিক্ত Tuple property অনুমোদিত নয়। এটি সরিয়ে দিন অথবা অন্য Type ব্যবহার করুন।";
371
+ case "Element":
372
+ return `Tuple-এর index ${issue.index}-এর element অবৈধ।`;
373
+ }
374
+ };
375
+
376
+ /** Formats a RecordError in Bengali. */
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 "মানটি object, কিন্তু Record Output অবশ্যই plain object হতে হবে অথবা এর prototype null হতে হবে।";
383
+ }
384
+
385
+ const issue = error.reason.issues[0];
386
+
387
+ switch (issue.kind) {
388
+ case "Key":
389
+ return `Property key ${safelyStringifyUnknownValue(issue.key)} অবৈধ।`;
390
+ case "Value":
391
+ return `Property ${safelyStringifyUnknownValue(issue.key)}-এর মান অবৈধ।`;
392
+ case "Accessor":
393
+ return `Record property ${safelyStringifyUnknownValue(issue.key)} অবশ্যই data property হতে হবে।`;
394
+ case "NonEnumerable":
395
+ return `Record property ${safelyStringifyUnknownValue(issue.key)} অবশ্যই enumerable হতে হবে।`;
396
+ case "Collision":
397
+ return `Record key ${safelyStringifyUnknownValue(issue.previousKey)} এবং ${safelyStringifyUnknownValue(issue.key)} decode হয়ে একই key ${safelyStringifyUnknownValue(issue.outputKey)} হয়।`;
398
+ }
399
+ };
400
+
401
+ /** Formats an ObjectError in Bengali. */
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 property অবশ্যই data property হতে হবে। এই Type ব্যবহার করার আগে accessor value-গুলোকে plain data-তে materialize করুন, অথবা অন্য Type ব্যবহার করুন।";
416
+ case "NonEnumerable":
417
+ return "Object property অবশ্যই enumerable হতে হবে। এটিকে enumerable করুন অথবা অন্য Type ব্যবহার করুন।";
418
+ }
419
+ }
420
+ if (propertyError.type === "ObjectMissingProperty") {
421
+ return `প্রয়োজনীয় property ${safelyStringifyUnknownValue(key)} অনুপস্থিত।`;
422
+ }
423
+ if (typeof key === "symbol") {
424
+ return "Object property key অবশ্যই string হতে হবে। symbol property সরিয়ে দিন অথবা অন্য Type ব্যবহার করুন।";
425
+ }
426
+ if (propertyError.type === "ObjectExcessProperty") {
427
+ return `Property ${safelyStringifyUnknownValue(key)} অনুমোদিত নয়। এটি সরিয়ে দিন অথবা অন্য Type ব্যবহার করুন।`;
428
+ }
429
+ return `Property ${safelyStringifyUnknownValue(key)} অবৈধ।`;
430
+ };
431
+
432
+ /** Formats a DiscriminatedUnionError in Bengali. */
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 property ${safelyStringifyUnknownValue(error.reason.key)}`;
441
+ if (error.reason.reason === "Accessor") {
442
+ return `${property} অবশ্যই data property হতে হবে।`;
443
+ }
444
+ if (error.reason.reason === "Inherited") {
445
+ return `${property} অবশ্যই own property হতে হবে।`;
446
+ }
447
+ return `${property} অবশ্যই enumerable হতে হবে।`;
448
+ }
449
+ case "Discriminator":
450
+ return `Discriminator property ${safelyStringifyUnknownValue(error.reason.key)}-এর অপ্রত্যাশিত মান ${safelyStringifyUnknownValue(error.reason.value)}।`;
451
+ case "Member":
452
+ return `নির্বাচিত variant ${safelyStringifyUnknownValue(error.reason.discriminator)} অবৈধ।`;
453
+ }
454
+ };
455
+
456
+ /** Formats a JsonValueError in Bengali. */
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 value নয়।`;
465
+ case "NonFiniteNumber":
466
+ return "JSON number অবশ্যই finite হতে হবে।";
467
+ case "UnexpectedPrototype":
468
+ return "মানটি object, কিন্তু JsonValue object অবশ্যই plain object হতে হবে অথবা এর prototype null হতে হবে।";
469
+ case "Accessor":
470
+ return "JSON property অবশ্যই data property হতে হবে। এই Type ব্যবহার করার আগে accessor value-গুলোকে plain data-তে materialize করুন, অথবা অন্য Type ব্যবহার করুন।";
471
+ case "NonEnumerable":
472
+ return "JSON object property অবশ্যই enumerable হতে হবে। এটি সরিয়ে দিন অথবা অন্য Type ব্যবহার করুন।";
473
+ case "SymbolProperty":
474
+ return "JSON object property key অবশ্যই string হতে হবে। symbol property সরিয়ে দিন অথবা অন্য Type ব্যবহার করুন।";
475
+ case "Hole":
476
+ return "JSON array-এর একটি element অনুপস্থিত।";
477
+ case "ExcessProperty":
478
+ return "অতিরিক্ত JSON array property অনুমোদিত নয়। এটি সরিয়ে দিন অথবা অন্য Type ব্যবহার করুন।";
479
+ case "CircularReference":
480
+ return "JsonValue-এ circular reference থাকা চলবে না।";
481
+ }
482
+ };
483
+
484
+ /** Formats a JsonError in Bengali. */
485
+ export const formatJsonError: TypeErrorFormatter<JsonError> = (error) =>
486
+ `${safelyStringifyUnknownValue(error.value)} মানটিকে JsonValue হিসেবে parse করা যায় না।`;