@hy_ong/zod-kit 0.2.0 → 0.2.2

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 (191) hide show
  1. package/.github/workflows/ci.yml +24 -0
  2. package/CLAUDE.md +64 -22
  3. package/dist/chunk-2SWEVDFZ.js +134 -0
  4. package/dist/chunk-32JI34CV.cjs +146 -0
  5. package/dist/chunk-42C5OHRK.js +71 -0
  6. package/dist/chunk-46VAH2BJ.js +160 -0
  7. package/dist/chunk-5JGTDL3Y.js +87 -0
  8. package/dist/chunk-5LEXCVLX.js +257 -0
  9. package/dist/chunk-6AAP4LPF.js +2606 -0
  10. package/dist/chunk-B4EZYZOK.cjs +215 -0
  11. package/dist/chunk-COYKBWTI.js +161 -0
  12. package/dist/chunk-DFJZ3NS2.cjs +151 -0
  13. package/dist/chunk-EDHT4LPO.js +118 -0
  14. package/dist/chunk-EGHL277K.cjs +165 -0
  15. package/dist/chunk-ERH4NIMU.cjs +69 -0
  16. package/dist/chunk-FM3EZ72O.js +165 -0
  17. package/dist/chunk-GJIRDBZJ.cjs +90 -0
  18. package/dist/chunk-H2XTEM4M.js +696 -0
  19. package/dist/chunk-HMSM6FFA.cjs +181 -0
  20. package/dist/chunk-HTEHINI7.cjs +177 -0
  21. package/dist/chunk-JOLSGZGN.cjs +696 -0
  22. package/dist/chunk-JXY7APBU.js +69 -0
  23. package/dist/chunk-K2UOY6TB.js +136 -0
  24. package/dist/chunk-KFOHKTFD.js +61 -0
  25. package/dist/chunk-L4HSIKTU.cjs +135 -0
  26. package/dist/chunk-LH7ZB4BK.js +124 -0
  27. package/dist/chunk-LL4ZWLGO.js +90 -0
  28. package/dist/chunk-M6MTP3NY.cjs +99 -0
  29. package/dist/chunk-MHJFYYGV.js +215 -0
  30. package/dist/chunk-MINMXGW3.js +135 -0
  31. package/dist/chunk-MM7IL2RG.js +181 -0
  32. package/dist/chunk-OPQJWHXN.cjs +301 -0
  33. package/dist/chunk-ORFHDJII.cjs +136 -0
  34. package/dist/chunk-ORVV4MCF.cjs +87 -0
  35. package/dist/chunk-QICQ6YEY.js +75 -0
  36. package/dist/chunk-RKUQREMW.js +127 -0
  37. package/dist/chunk-RO47DKQG.js +146 -0
  38. package/dist/chunk-RRPXIRTQ.cjs +257 -0
  39. package/dist/chunk-RYFG2GKM.cjs +118 -0
  40. package/dist/chunk-STNHTRG7.cjs +124 -0
  41. package/dist/chunk-TFGS34VD.cjs +71 -0
  42. package/dist/chunk-TQXDUMML.cjs +61 -0
  43. package/dist/chunk-UBK3VCVH.cjs +134 -0
  44. package/dist/chunk-UCOXAZJF.cjs +2606 -0
  45. package/dist/chunk-UQZKFAFX.js +130 -0
  46. package/dist/chunk-VB2KV2ZM.cjs +130 -0
  47. package/dist/chunk-WABKPFPK.js +151 -0
  48. package/dist/chunk-WDI4QJMQ.js +177 -0
  49. package/dist/chunk-YDH3L27K.cjs +127 -0
  50. package/dist/chunk-YIM3D2AD.js +99 -0
  51. package/dist/chunk-YPSEIDUR.cjs +160 -0
  52. package/dist/chunk-ZNJLWJX3.cjs +75 -0
  53. package/dist/chunk-ZTFCJCPO.cjs +161 -0
  54. package/dist/chunk-ZXUMK2RR.js +301 -0
  55. package/dist/common/boolean.cjs +7 -0
  56. package/dist/common/boolean.d.cts +119 -0
  57. package/dist/common/boolean.d.ts +119 -0
  58. package/dist/common/boolean.js +7 -0
  59. package/dist/common/color.cjs +9 -0
  60. package/dist/common/color.d.cts +26 -0
  61. package/dist/common/color.d.ts +26 -0
  62. package/dist/common/color.js +9 -0
  63. package/dist/common/coordinate.cjs +11 -0
  64. package/dist/common/coordinate.d.cts +23 -0
  65. package/dist/common/coordinate.d.ts +23 -0
  66. package/dist/common/coordinate.js +11 -0
  67. package/dist/common/credit-card.cjs +11 -0
  68. package/dist/common/credit-card.d.cts +22 -0
  69. package/dist/common/credit-card.d.ts +22 -0
  70. package/dist/common/credit-card.js +11 -0
  71. package/dist/common/date.cjs +7 -0
  72. package/dist/common/date.d.cts +174 -0
  73. package/dist/common/date.d.ts +174 -0
  74. package/dist/common/date.js +7 -0
  75. package/dist/common/datetime.cjs +15 -0
  76. package/dist/common/datetime.d.cts +301 -0
  77. package/dist/common/datetime.d.ts +301 -0
  78. package/dist/common/datetime.js +15 -0
  79. package/dist/common/email.cjs +7 -0
  80. package/dist/common/email.d.cts +149 -0
  81. package/dist/common/email.d.ts +149 -0
  82. package/dist/common/email.js +7 -0
  83. package/dist/common/file.cjs +7 -0
  84. package/dist/common/file.d.cts +178 -0
  85. package/dist/common/file.d.ts +178 -0
  86. package/dist/common/file.js +7 -0
  87. package/dist/common/id.cjs +13 -0
  88. package/dist/common/id.d.cts +288 -0
  89. package/dist/common/id.d.ts +288 -0
  90. package/dist/common/id.js +13 -0
  91. package/dist/common/ip.cjs +11 -0
  92. package/dist/common/ip.d.cts +25 -0
  93. package/dist/common/ip.d.ts +25 -0
  94. package/dist/common/ip.js +11 -0
  95. package/dist/common/number.cjs +7 -0
  96. package/dist/common/number.d.cts +167 -0
  97. package/dist/common/number.d.ts +167 -0
  98. package/dist/common/number.js +7 -0
  99. package/dist/common/password.cjs +7 -0
  100. package/dist/common/password.d.cts +192 -0
  101. package/dist/common/password.d.ts +192 -0
  102. package/dist/common/password.js +7 -0
  103. package/dist/common/text.cjs +7 -0
  104. package/dist/common/text.d.cts +156 -0
  105. package/dist/common/text.d.ts +156 -0
  106. package/dist/common/text.js +7 -0
  107. package/dist/common/time.cjs +15 -0
  108. package/dist/common/time.d.cts +268 -0
  109. package/dist/common/time.d.ts +268 -0
  110. package/dist/common/time.js +15 -0
  111. package/dist/common/url.cjs +7 -0
  112. package/dist/common/url.d.cts +196 -0
  113. package/dist/common/url.d.ts +196 -0
  114. package/dist/common/url.js +7 -0
  115. package/dist/config-CABSSvAp.d.cts +5 -0
  116. package/dist/config-CABSSvAp.d.ts +5 -0
  117. package/dist/index.cjs +180 -5255
  118. package/dist/index.d.cts +28 -3150
  119. package/dist/index.d.ts +28 -3150
  120. package/dist/index.js +135 -5131
  121. package/dist/taiwan/bank-account.cjs +11 -0
  122. package/dist/taiwan/bank-account.d.cts +22 -0
  123. package/dist/taiwan/bank-account.d.ts +22 -0
  124. package/dist/taiwan/bank-account.js +11 -0
  125. package/dist/taiwan/business-id.cjs +9 -0
  126. package/dist/taiwan/business-id.d.cts +133 -0
  127. package/dist/taiwan/business-id.d.ts +133 -0
  128. package/dist/taiwan/business-id.js +9 -0
  129. package/dist/taiwan/fax.cjs +9 -0
  130. package/dist/taiwan/fax.d.cts +157 -0
  131. package/dist/taiwan/fax.d.ts +157 -0
  132. package/dist/taiwan/fax.js +9 -0
  133. package/dist/taiwan/invoice.cjs +9 -0
  134. package/dist/taiwan/invoice.d.cts +17 -0
  135. package/dist/taiwan/invoice.d.ts +17 -0
  136. package/dist/taiwan/invoice.js +9 -0
  137. package/dist/taiwan/license-plate.cjs +9 -0
  138. package/dist/taiwan/license-plate.d.cts +19 -0
  139. package/dist/taiwan/license-plate.d.ts +19 -0
  140. package/dist/taiwan/license-plate.js +9 -0
  141. package/dist/taiwan/mobile.cjs +9 -0
  142. package/dist/taiwan/mobile.d.cts +146 -0
  143. package/dist/taiwan/mobile.d.ts +146 -0
  144. package/dist/taiwan/mobile.js +9 -0
  145. package/dist/taiwan/national-id.cjs +15 -0
  146. package/dist/taiwan/national-id.d.cts +214 -0
  147. package/dist/taiwan/national-id.d.ts +214 -0
  148. package/dist/taiwan/national-id.js +15 -0
  149. package/dist/taiwan/passport.cjs +9 -0
  150. package/dist/taiwan/passport.d.cts +19 -0
  151. package/dist/taiwan/passport.d.ts +19 -0
  152. package/dist/taiwan/passport.js +9 -0
  153. package/dist/taiwan/postal-code.cjs +17 -0
  154. package/dist/taiwan/postal-code.d.cts +237 -0
  155. package/dist/taiwan/postal-code.d.ts +237 -0
  156. package/dist/taiwan/postal-code.js +17 -0
  157. package/dist/taiwan/tel.cjs +9 -0
  158. package/dist/taiwan/tel.d.cts +162 -0
  159. package/dist/taiwan/tel.d.ts +162 -0
  160. package/dist/taiwan/tel.js +9 -0
  161. package/package.json +132 -6
  162. package/src/i18n/locales/en-GB.json +51 -0
  163. package/src/i18n/locales/en-US.json +52 -1
  164. package/src/i18n/locales/id-ID.json +51 -0
  165. package/src/i18n/locales/ja-JP.json +51 -0
  166. package/src/i18n/locales/ko-KR.json +51 -0
  167. package/src/i18n/locales/ms-MY.json +51 -0
  168. package/src/i18n/locales/th-TH.json +51 -0
  169. package/src/i18n/locales/vi-VN.json +51 -0
  170. package/src/i18n/locales/zh-CN.json +51 -0
  171. package/src/i18n/locales/zh-TW.json +51 -0
  172. package/src/index.ts +10 -2
  173. package/src/validators/common/color.ts +192 -0
  174. package/src/validators/common/coordinate.ts +159 -0
  175. package/src/validators/common/credit-card.ts +134 -0
  176. package/src/validators/common/id.ts +45 -3
  177. package/src/validators/common/ip.ts +210 -0
  178. package/src/validators/taiwan/bank-account.ts +176 -0
  179. package/src/validators/taiwan/invoice.ts +84 -0
  180. package/src/validators/taiwan/license-plate.ts +110 -0
  181. package/src/validators/taiwan/passport.ts +103 -0
  182. package/tests/common/color.test.ts +587 -0
  183. package/tests/common/coordinate.test.ts +345 -0
  184. package/tests/common/credit-card.test.ts +378 -0
  185. package/tests/common/id.test.ts +68 -3
  186. package/tests/common/ip.test.ts +419 -0
  187. package/tests/taiwan/bank-account.test.ts +286 -0
  188. package/tests/taiwan/invoice.test.ts +227 -0
  189. package/tests/taiwan/license-plate.test.ts +280 -0
  190. package/tests/taiwan/passport.test.ts +277 -0
  191. package/tsup.config.ts +36 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hy_ong/zod-kit",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "A comprehensive TypeScript library providing pre-built Zod validation schemas with full internationalization support for common data types and Taiwan-specific formats",
5
5
  "keywords": [
6
6
  "zod",
@@ -36,13 +36,139 @@
36
36
  "types": "dist/index.d.ts",
37
37
  "exports": {
38
38
  ".": {
39
+ "types": "./dist/index.d.ts",
39
40
  "import": "./dist/index.js",
40
41
  "require": "./dist/index.cjs",
41
42
  "default": "./dist/index.js"
43
+ },
44
+ "./common/boolean": {
45
+ "types": "./dist/common/boolean.d.ts",
46
+ "import": "./dist/common/boolean.js",
47
+ "require": "./dist/common/boolean.cjs"
48
+ },
49
+ "./common/color": {
50
+ "types": "./dist/common/color.d.ts",
51
+ "import": "./dist/common/color.js",
52
+ "require": "./dist/common/color.cjs"
53
+ },
54
+ "./common/coordinate": {
55
+ "types": "./dist/common/coordinate.d.ts",
56
+ "import": "./dist/common/coordinate.js",
57
+ "require": "./dist/common/coordinate.cjs"
58
+ },
59
+ "./common/credit-card": {
60
+ "types": "./dist/common/credit-card.d.ts",
61
+ "import": "./dist/common/credit-card.js",
62
+ "require": "./dist/common/credit-card.cjs"
63
+ },
64
+ "./common/date": {
65
+ "types": "./dist/common/date.d.ts",
66
+ "import": "./dist/common/date.js",
67
+ "require": "./dist/common/date.cjs"
68
+ },
69
+ "./common/datetime": {
70
+ "types": "./dist/common/datetime.d.ts",
71
+ "import": "./dist/common/datetime.js",
72
+ "require": "./dist/common/datetime.cjs"
73
+ },
74
+ "./common/email": {
75
+ "types": "./dist/common/email.d.ts",
76
+ "import": "./dist/common/email.js",
77
+ "require": "./dist/common/email.cjs"
78
+ },
79
+ "./common/file": {
80
+ "types": "./dist/common/file.d.ts",
81
+ "import": "./dist/common/file.js",
82
+ "require": "./dist/common/file.cjs"
83
+ },
84
+ "./common/id": {
85
+ "types": "./dist/common/id.d.ts",
86
+ "import": "./dist/common/id.js",
87
+ "require": "./dist/common/id.cjs"
88
+ },
89
+ "./common/ip": {
90
+ "types": "./dist/common/ip.d.ts",
91
+ "import": "./dist/common/ip.js",
92
+ "require": "./dist/common/ip.cjs"
93
+ },
94
+ "./common/number": {
95
+ "types": "./dist/common/number.d.ts",
96
+ "import": "./dist/common/number.js",
97
+ "require": "./dist/common/number.cjs"
98
+ },
99
+ "./common/password": {
100
+ "types": "./dist/common/password.d.ts",
101
+ "import": "./dist/common/password.js",
102
+ "require": "./dist/common/password.cjs"
103
+ },
104
+ "./common/text": {
105
+ "types": "./dist/common/text.d.ts",
106
+ "import": "./dist/common/text.js",
107
+ "require": "./dist/common/text.cjs"
108
+ },
109
+ "./common/time": {
110
+ "types": "./dist/common/time.d.ts",
111
+ "import": "./dist/common/time.js",
112
+ "require": "./dist/common/time.cjs"
113
+ },
114
+ "./common/url": {
115
+ "types": "./dist/common/url.d.ts",
116
+ "import": "./dist/common/url.js",
117
+ "require": "./dist/common/url.cjs"
118
+ },
119
+ "./taiwan/bank-account": {
120
+ "types": "./dist/taiwan/bank-account.d.ts",
121
+ "import": "./dist/taiwan/bank-account.js",
122
+ "require": "./dist/taiwan/bank-account.cjs"
123
+ },
124
+ "./taiwan/business-id": {
125
+ "types": "./dist/taiwan/business-id.d.ts",
126
+ "import": "./dist/taiwan/business-id.js",
127
+ "require": "./dist/taiwan/business-id.cjs"
128
+ },
129
+ "./taiwan/fax": {
130
+ "types": "./dist/taiwan/fax.d.ts",
131
+ "import": "./dist/taiwan/fax.js",
132
+ "require": "./dist/taiwan/fax.cjs"
133
+ },
134
+ "./taiwan/invoice": {
135
+ "types": "./dist/taiwan/invoice.d.ts",
136
+ "import": "./dist/taiwan/invoice.js",
137
+ "require": "./dist/taiwan/invoice.cjs"
138
+ },
139
+ "./taiwan/license-plate": {
140
+ "types": "./dist/taiwan/license-plate.d.ts",
141
+ "import": "./dist/taiwan/license-plate.js",
142
+ "require": "./dist/taiwan/license-plate.cjs"
143
+ },
144
+ "./taiwan/mobile": {
145
+ "types": "./dist/taiwan/mobile.d.ts",
146
+ "import": "./dist/taiwan/mobile.js",
147
+ "require": "./dist/taiwan/mobile.cjs"
148
+ },
149
+ "./taiwan/national-id": {
150
+ "types": "./dist/taiwan/national-id.d.ts",
151
+ "import": "./dist/taiwan/national-id.js",
152
+ "require": "./dist/taiwan/national-id.cjs"
153
+ },
154
+ "./taiwan/passport": {
155
+ "types": "./dist/taiwan/passport.d.ts",
156
+ "import": "./dist/taiwan/passport.js",
157
+ "require": "./dist/taiwan/passport.cjs"
158
+ },
159
+ "./taiwan/postal-code": {
160
+ "types": "./dist/taiwan/postal-code.d.ts",
161
+ "import": "./dist/taiwan/postal-code.js",
162
+ "require": "./dist/taiwan/postal-code.cjs"
163
+ },
164
+ "./taiwan/tel": {
165
+ "types": "./dist/taiwan/tel.d.ts",
166
+ "import": "./dist/taiwan/tel.js",
167
+ "require": "./dist/taiwan/tel.cjs"
42
168
  }
43
169
  },
44
170
  "scripts": {
45
- "build": "tsup src/index.ts --format esm,cjs --dts",
171
+ "build": "tsup",
46
172
  "test": "vitest",
47
173
  "prepublishOnly": "npm test -- --run && npm run build"
48
174
  },
@@ -53,14 +179,14 @@
53
179
  "zod": "^4.3.6"
54
180
  },
55
181
  "devDependencies": {
56
- "@eslint/js": "^9.39.2",
57
- "@types/node": "^24.10.12",
58
- "eslint": "^9.39.2",
182
+ "@eslint/js": "^10.0.1",
183
+ "@types/node": "^25.4.0",
184
+ "eslint": "^10.0.3",
59
185
  "jiti": "^2.6.1",
60
186
  "prettier": "^3.8.1",
61
187
  "tsup": "^8.5.1",
62
188
  "typescript": "^5.9.3",
63
- "typescript-eslint": "^8.54.0",
189
+ "typescript-eslint": "^8.57.0",
64
190
  "vitest": "^4.0.18"
65
191
  }
66
192
  }
@@ -75,6 +75,14 @@
75
75
  "maxLength": "Must be at most ${maxLength} characters",
76
76
  "numeric": "Must be a numeric ID",
77
77
  "uuid": "Must be a valid UUID",
78
+ "uuidv1": "Must be a valid UUID v1",
79
+ "uuidv2": "Must be a valid UUID v2",
80
+ "uuidv3": "Must be a valid UUID v3",
81
+ "uuidv4": "Must be a valid UUID v4",
82
+ "uuidv5": "Must be a valid UUID v5",
83
+ "uuidv6": "Must be a valid UUID v6",
84
+ "uuidv7": "Must be a valid UUID v7",
85
+ "uuidv8": "Must be a valid UUID v8",
78
86
  "objectId": "Must be a valid MongoDB ObjectId",
79
87
  "nanoid": "Must be a valid Nano ID",
80
88
  "snowflake": "Must be a valid Snowflake ID",
@@ -162,6 +170,31 @@
162
170
  "videoOnly": "Only video files are allowed",
163
171
  "audioOnly": "Only audio files are allowed",
164
172
  "archiveOnly": "Only archive files are allowed"
173
+ },
174
+ "creditCard": {
175
+ "required": "Required",
176
+ "invalid": "Invalid credit card number",
177
+ "notInWhitelist": "Credit card number is not in the allowed list"
178
+ },
179
+ "ip": {
180
+ "required": "Required",
181
+ "invalid": "Invalid IP address",
182
+ "notIPv4": "Must be a valid IPv4 address",
183
+ "notIPv6": "Must be a valid IPv6 address",
184
+ "notInWhitelist": "IP address is not in the allowed list"
185
+ },
186
+ "color": {
187
+ "required": "Required",
188
+ "invalid": "Invalid colour format",
189
+ "notHex": "Must be a valid hex colour",
190
+ "notRgb": "Must be a valid RGB colour",
191
+ "notHsl": "Must be a valid HSL colour"
192
+ },
193
+ "coordinate": {
194
+ "required": "Required",
195
+ "invalid": "Invalid coordinate",
196
+ "invalidLatitude": "Latitude must be between -90 and 90",
197
+ "invalidLongitude": "Longitude must be between -180 and 180"
165
198
  }
166
199
  },
167
200
  "taiwan": {
@@ -199,6 +232,24 @@
199
232
  "format6Only": "Only 6-digit postal codes are allowed",
200
233
  "invalidSuffix": "Invalid postal code suffix - must be 01-99 for 5-digit or 001-999 for 6-digit codes",
201
234
  "deprecated5Digit": "5-digit postal codes are deprecated and no longer supported"
235
+ },
236
+ "invoice": {
237
+ "required": "Required",
238
+ "invalid": "Invalid Taiwan uniform invoice number"
239
+ },
240
+ "licensePlate": {
241
+ "required": "Required",
242
+ "invalid": "Invalid Taiwan licence plate number"
243
+ },
244
+ "bankAccount": {
245
+ "required": "Required",
246
+ "invalid": "Invalid Taiwan bank account",
247
+ "invalidBankCode": "Invalid bank code",
248
+ "invalidAccountNumber": "Invalid account number"
249
+ },
250
+ "passport": {
251
+ "required": "Required",
252
+ "invalid": "Invalid Taiwan passport number"
202
253
  }
203
254
  }
204
255
  }
@@ -61,7 +61,7 @@
61
61
  "min": "Must be at least ${min}",
62
62
  "max": "Must be at most ${max}",
63
63
  "positive": "Must be positive",
64
- "negative": "Must be negative",
64
+ "negative": "Must be negative",
65
65
  "nonNegative": "Must be non-negative",
66
66
  "nonPositive": "Must be non-positive",
67
67
  "multipleOf": "Must be a multiple of ${multipleOf}",
@@ -75,6 +75,14 @@
75
75
  "maxLength": "Must be at most ${maxLength} characters",
76
76
  "numeric": "Must be a numeric ID",
77
77
  "uuid": "Must be a valid UUID",
78
+ "uuidv1": "Must be a valid UUID v1",
79
+ "uuidv2": "Must be a valid UUID v2",
80
+ "uuidv3": "Must be a valid UUID v3",
81
+ "uuidv4": "Must be a valid UUID v4",
82
+ "uuidv5": "Must be a valid UUID v5",
83
+ "uuidv6": "Must be a valid UUID v6",
84
+ "uuidv7": "Must be a valid UUID v7",
85
+ "uuidv8": "Must be a valid UUID v8",
78
86
  "objectId": "Must be a valid MongoDB ObjectId",
79
87
  "nanoid": "Must be a valid Nano ID",
80
88
  "snowflake": "Must be a valid Snowflake ID",
@@ -162,6 +170,31 @@
162
170
  "videoOnly": "Only video files are allowed",
163
171
  "audioOnly": "Only audio files are allowed",
164
172
  "archiveOnly": "Only archive files are allowed"
173
+ },
174
+ "creditCard": {
175
+ "required": "Required",
176
+ "invalid": "Invalid credit card number",
177
+ "notInWhitelist": "Credit card number is not in the allowed list"
178
+ },
179
+ "ip": {
180
+ "required": "Required",
181
+ "invalid": "Invalid IP address",
182
+ "notIPv4": "Must be a valid IPv4 address",
183
+ "notIPv6": "Must be a valid IPv6 address",
184
+ "notInWhitelist": "IP address is not in the allowed list"
185
+ },
186
+ "color": {
187
+ "required": "Required",
188
+ "invalid": "Invalid color format",
189
+ "notHex": "Must be a valid hex color",
190
+ "notRgb": "Must be a valid RGB color",
191
+ "notHsl": "Must be a valid HSL color"
192
+ },
193
+ "coordinate": {
194
+ "required": "Required",
195
+ "invalid": "Invalid coordinate",
196
+ "invalidLatitude": "Latitude must be between -90 and 90",
197
+ "invalidLongitude": "Longitude must be between -180 and 180"
165
198
  }
166
199
  },
167
200
  "taiwan": {
@@ -199,6 +232,24 @@
199
232
  "format6Only": "Only 6-digit postal codes are allowed",
200
233
  "invalidSuffix": "Invalid postal code suffix - must be 01-99 for 5-digit or 001-999 for 6-digit codes",
201
234
  "deprecated5Digit": "5-digit postal codes are deprecated and no longer supported"
235
+ },
236
+ "invoice": {
237
+ "required": "Required",
238
+ "invalid": "Invalid Taiwan uniform invoice number"
239
+ },
240
+ "licensePlate": {
241
+ "required": "Required",
242
+ "invalid": "Invalid Taiwan license plate number"
243
+ },
244
+ "bankAccount": {
245
+ "required": "Required",
246
+ "invalid": "Invalid Taiwan bank account",
247
+ "invalidBankCode": "Invalid bank code",
248
+ "invalidAccountNumber": "Invalid account number"
249
+ },
250
+ "passport": {
251
+ "required": "Required",
252
+ "invalid": "Invalid Taiwan passport number"
202
253
  }
203
254
  }
204
255
  }
@@ -75,6 +75,14 @@
75
75
  "maxLength": "Harus maksimal ${maxLength} karakter",
76
76
  "numeric": "Harus berupa ID numerik",
77
77
  "uuid": "Harus berupa UUID yang valid",
78
+ "uuidv1": "Harus berupa UUID v1 yang valid",
79
+ "uuidv2": "Harus berupa UUID v2 yang valid",
80
+ "uuidv3": "Harus berupa UUID v3 yang valid",
81
+ "uuidv4": "Harus berupa UUID v4 yang valid",
82
+ "uuidv5": "Harus berupa UUID v5 yang valid",
83
+ "uuidv6": "Harus berupa UUID v6 yang valid",
84
+ "uuidv7": "Harus berupa UUID v7 yang valid",
85
+ "uuidv8": "Harus berupa UUID v8 yang valid",
78
86
  "objectId": "Harus berupa MongoDB ObjectId yang valid",
79
87
  "nanoid": "Harus berupa Nano ID yang valid",
80
88
  "snowflake": "Harus berupa Snowflake ID yang valid",
@@ -162,6 +170,31 @@
162
170
  "videoOnly": "Hanya file video yang diizinkan",
163
171
  "audioOnly": "Hanya file audio yang diizinkan",
164
172
  "archiveOnly": "Hanya file arsip yang diizinkan"
173
+ },
174
+ "creditCard": {
175
+ "required": "Wajib diisi",
176
+ "invalid": "Nomor kartu kredit tidak valid",
177
+ "notInWhitelist": "Nomor kartu kredit tidak ada dalam daftar yang diizinkan"
178
+ },
179
+ "ip": {
180
+ "required": "Wajib diisi",
181
+ "invalid": "Alamat IP tidak valid",
182
+ "notIPv4": "Harus alamat IPv4 yang valid",
183
+ "notIPv6": "Harus alamat IPv6 yang valid",
184
+ "notInWhitelist": "Alamat IP tidak ada dalam daftar yang diizinkan"
185
+ },
186
+ "color": {
187
+ "required": "Wajib diisi",
188
+ "invalid": "Format warna tidak valid",
189
+ "notHex": "Harus warna hex yang valid",
190
+ "notRgb": "Harus warna RGB yang valid",
191
+ "notHsl": "Harus warna HSL yang valid"
192
+ },
193
+ "coordinate": {
194
+ "required": "Wajib diisi",
195
+ "invalid": "Koordinat tidak valid",
196
+ "invalidLatitude": "Lintang harus antara -90 dan 90",
197
+ "invalidLongitude": "Bujur harus antara -180 dan 180"
165
198
  }
166
199
  },
167
200
  "taiwan": {
@@ -199,6 +232,24 @@
199
232
  "format6Only": "Hanya kode pos 6 digit yang diizinkan",
200
233
  "invalidSuffix": "Akhiran kode pos tidak valid - harus 01-99 untuk 5 digit atau 001-999 untuk 6 digit",
201
234
  "deprecated5Digit": "Kode pos 5 digit sudah tidak digunakan dan tidak lagi didukung"
235
+ },
236
+ "invoice": {
237
+ "required": "Wajib diisi",
238
+ "invalid": "Nomor faktur seragam Taiwan tidak valid"
239
+ },
240
+ "licensePlate": {
241
+ "required": "Wajib diisi",
242
+ "invalid": "Nomor pelat kendaraan Taiwan tidak valid"
243
+ },
244
+ "bankAccount": {
245
+ "required": "Wajib diisi",
246
+ "invalid": "Rekening bank Taiwan tidak valid",
247
+ "invalidBankCode": "Kode bank tidak valid",
248
+ "invalidAccountNumber": "Nomor rekening tidak valid"
249
+ },
250
+ "passport": {
251
+ "required": "Wajib diisi",
252
+ "invalid": "Nomor paspor Taiwan tidak valid"
202
253
  }
203
254
  }
204
255
  }
@@ -75,6 +75,14 @@
75
75
  "maxLength": "${maxLength}文字以下で入力してください",
76
76
  "numeric": "数値IDである必要があります",
77
77
  "uuid": "有効なUUIDである必要があります",
78
+ "uuidv1": "有効なUUID v1である必要があります",
79
+ "uuidv2": "有効なUUID v2である必要があります",
80
+ "uuidv3": "有効なUUID v3である必要があります",
81
+ "uuidv4": "有効なUUID v4である必要があります",
82
+ "uuidv5": "有効なUUID v5である必要があります",
83
+ "uuidv6": "有効なUUID v6である必要があります",
84
+ "uuidv7": "有効なUUID v7である必要があります",
85
+ "uuidv8": "有効なUUID v8である必要があります",
78
86
  "objectId": "有効なMongoDB ObjectIdである必要があります",
79
87
  "nanoid": "有効なNano IDである必要があります",
80
88
  "snowflake": "有効なSnowflake IDである必要があります",
@@ -162,6 +170,31 @@
162
170
  "videoOnly": "動画ファイルのみ許可されています",
163
171
  "audioOnly": "音声ファイルのみ許可されています",
164
172
  "archiveOnly": "アーカイブファイルのみ許可されています"
173
+ },
174
+ "creditCard": {
175
+ "required": "必須項目です",
176
+ "invalid": "無効なクレジットカード番号です",
177
+ "notInWhitelist": "クレジットカード番号が許可リストにありません"
178
+ },
179
+ "ip": {
180
+ "required": "必須項目です",
181
+ "invalid": "無効なIPアドレスです",
182
+ "notIPv4": "有効なIPv4アドレスである必要があります",
183
+ "notIPv6": "有効なIPv6アドレスである必要があります",
184
+ "notInWhitelist": "IPアドレスが許可リストにありません"
185
+ },
186
+ "color": {
187
+ "required": "必須項目です",
188
+ "invalid": "無効な色形式です",
189
+ "notHex": "有効な16進数カラーである必要があります",
190
+ "notRgb": "有効なRGBカラーである必要があります",
191
+ "notHsl": "有効なHSLカラーである必要があります"
192
+ },
193
+ "coordinate": {
194
+ "required": "必須項目です",
195
+ "invalid": "無効な座標です",
196
+ "invalidLatitude": "緯度は-90から90の間である必要があります",
197
+ "invalidLongitude": "経度は-180から180の間である必要があります"
165
198
  }
166
199
  },
167
200
  "taiwan": {
@@ -199,6 +232,24 @@
199
232
  "format6Only": "6桁の郵便番号のみ使用可能です",
200
233
  "invalidSuffix": "無効な郵便番号の末尾 - 5桁は01-99、6桁は001-999である必要があります",
201
234
  "deprecated5Digit": "5桁の郵便番号は廃止されており、サポートされていません"
235
+ },
236
+ "invoice": {
237
+ "required": "必須項目です",
238
+ "invalid": "無効な台湾統一発票番号です"
239
+ },
240
+ "licensePlate": {
241
+ "required": "必須項目です",
242
+ "invalid": "無効な台湾ナンバープレートです"
243
+ },
244
+ "bankAccount": {
245
+ "required": "必須項目です",
246
+ "invalid": "無効な台湾銀行口座です",
247
+ "invalidBankCode": "無効な銀行コードです",
248
+ "invalidAccountNumber": "無効な口座番号です"
249
+ },
250
+ "passport": {
251
+ "required": "必須項目です",
252
+ "invalid": "無効な台湾パスポート番号です"
202
253
  }
203
254
  }
204
255
  }
@@ -75,6 +75,14 @@
75
75
  "maxLength": "최대 ${maxLength}자 이하여야 합니다",
76
76
  "numeric": "숫자 ID여야 합니다",
77
77
  "uuid": "유효한 UUID여야 합니다",
78
+ "uuidv1": "유효한 UUID v1이어야 합니다",
79
+ "uuidv2": "유효한 UUID v2이어야 합니다",
80
+ "uuidv3": "유효한 UUID v3이어야 합니다",
81
+ "uuidv4": "유효한 UUID v4이어야 합니다",
82
+ "uuidv5": "유효한 UUID v5이어야 합니다",
83
+ "uuidv6": "유효한 UUID v6이어야 합니다",
84
+ "uuidv7": "유효한 UUID v7이어야 합니다",
85
+ "uuidv8": "유효한 UUID v8이어야 합니다",
78
86
  "objectId": "유효한 MongoDB ObjectId여야 합니다",
79
87
  "nanoid": "유효한 Nano ID여야 합니다",
80
88
  "snowflake": "유효한 Snowflake ID여야 합니다",
@@ -162,6 +170,31 @@
162
170
  "videoOnly": "동영상 파일만 허용됩니다",
163
171
  "audioOnly": "오디오 파일만 허용됩니다",
164
172
  "archiveOnly": "압축 파일만 허용됩니다"
173
+ },
174
+ "creditCard": {
175
+ "required": "필수 항목입니다",
176
+ "invalid": "유효하지 않은 신용카드 번호입니다",
177
+ "notInWhitelist": "신용카드 번호가 허용 목록에 없습니다"
178
+ },
179
+ "ip": {
180
+ "required": "필수 항목입니다",
181
+ "invalid": "유효하지 않은 IP 주소입니다",
182
+ "notIPv4": "유효한 IPv4 주소여야 합니다",
183
+ "notIPv6": "유효한 IPv6 주소여야 합니다",
184
+ "notInWhitelist": "IP 주소가 허용 목록에 없습니다"
185
+ },
186
+ "color": {
187
+ "required": "필수 항목입니다",
188
+ "invalid": "유효하지 않은 색상 형식입니다",
189
+ "notHex": "유효한 16진수 색상이어야 합니다",
190
+ "notRgb": "유효한 RGB 색상이어야 합니다",
191
+ "notHsl": "유효한 HSL 색상이어야 합니다"
192
+ },
193
+ "coordinate": {
194
+ "required": "필수 항목입니다",
195
+ "invalid": "유효하지 않은 좌표입니다",
196
+ "invalidLatitude": "위도는 -90에서 90 사이여야 합니다",
197
+ "invalidLongitude": "경도는 -180에서 180 사이여야 합니다"
165
198
  }
166
199
  },
167
200
  "taiwan": {
@@ -199,6 +232,24 @@
199
232
  "format6Only": "6자리 우편번호만 허용됩니다",
200
233
  "invalidSuffix": "유효하지 않은 우편번호 접미사 - 5자리는 01-99, 6자리는 001-999이어야 합니다",
201
234
  "deprecated5Digit": "5자리 우편번호는 폐지되어 더 이상 지원되지 않습니다"
235
+ },
236
+ "invoice": {
237
+ "required": "필수 항목입니다",
238
+ "invalid": "유효하지 않은 대만 통일발표 번호입니다"
239
+ },
240
+ "licensePlate": {
241
+ "required": "필수 항목입니다",
242
+ "invalid": "유효하지 않은 대만 차량 번호판입니다"
243
+ },
244
+ "bankAccount": {
245
+ "required": "필수 항목입니다",
246
+ "invalid": "유효하지 않은 대만 은행 계좌입니다",
247
+ "invalidBankCode": "유효하지 않은 은행 코드입니다",
248
+ "invalidAccountNumber": "유효하지 않은 계좌 번호입니다"
249
+ },
250
+ "passport": {
251
+ "required": "필수 항목입니다",
252
+ "invalid": "유효하지 않은 대만 여권 번호입니다"
202
253
  }
203
254
  }
204
255
  }
@@ -75,6 +75,14 @@
75
75
  "maxLength": "Mesti tidak melebihi ${maxLength} aksara",
76
76
  "numeric": "Mesti ID numerik",
77
77
  "uuid": "Mesti UUID yang sah",
78
+ "uuidv1": "Mesti UUID v1 yang sah",
79
+ "uuidv2": "Mesti UUID v2 yang sah",
80
+ "uuidv3": "Mesti UUID v3 yang sah",
81
+ "uuidv4": "Mesti UUID v4 yang sah",
82
+ "uuidv5": "Mesti UUID v5 yang sah",
83
+ "uuidv6": "Mesti UUID v6 yang sah",
84
+ "uuidv7": "Mesti UUID v7 yang sah",
85
+ "uuidv8": "Mesti UUID v8 yang sah",
78
86
  "objectId": "Mesti MongoDB ObjectId yang sah",
79
87
  "nanoid": "Mesti Nano ID yang sah",
80
88
  "snowflake": "Mesti Snowflake ID yang sah",
@@ -162,6 +170,31 @@
162
170
  "videoOnly": "Hanya fail video dibenarkan",
163
171
  "audioOnly": "Hanya fail audio dibenarkan",
164
172
  "archiveOnly": "Hanya fail arkib dibenarkan"
173
+ },
174
+ "creditCard": {
175
+ "required": "Wajib diisi",
176
+ "invalid": "Nombor kad kredit tidak sah",
177
+ "notInWhitelist": "Nombor kad kredit tiada dalam senarai yang dibenarkan"
178
+ },
179
+ "ip": {
180
+ "required": "Wajib diisi",
181
+ "invalid": "Alamat IP tidak sah",
182
+ "notIPv4": "Mesti alamat IPv4 yang sah",
183
+ "notIPv6": "Mesti alamat IPv6 yang sah",
184
+ "notInWhitelist": "Alamat IP tiada dalam senarai yang dibenarkan"
185
+ },
186
+ "color": {
187
+ "required": "Wajib diisi",
188
+ "invalid": "Format warna tidak sah",
189
+ "notHex": "Mesti warna hex yang sah",
190
+ "notRgb": "Mesti warna RGB yang sah",
191
+ "notHsl": "Mesti warna HSL yang sah"
192
+ },
193
+ "coordinate": {
194
+ "required": "Wajib diisi",
195
+ "invalid": "Koordinat tidak sah",
196
+ "invalidLatitude": "Latitud mesti antara -90 dan 90",
197
+ "invalidLongitude": "Longitud mesti antara -180 dan 180"
165
198
  }
166
199
  },
167
200
  "taiwan": {
@@ -199,6 +232,24 @@
199
232
  "format6Only": "Hanya poskod 6 digit dibenarkan",
200
233
  "invalidSuffix": "Akhiran poskod tidak sah - mesti 01-99 untuk 5 digit atau 001-999 untuk 6 digit",
201
234
  "deprecated5Digit": "Poskod 5 digit telah ditamatkan dan tidak lagi disokong"
235
+ },
236
+ "invoice": {
237
+ "required": "Wajib diisi",
238
+ "invalid": "Nombor invois seragam Taiwan tidak sah"
239
+ },
240
+ "licensePlate": {
241
+ "required": "Wajib diisi",
242
+ "invalid": "Nombor plat lesen Taiwan tidak sah"
243
+ },
244
+ "bankAccount": {
245
+ "required": "Wajib diisi",
246
+ "invalid": "Akaun bank Taiwan tidak sah",
247
+ "invalidBankCode": "Kod bank tidak sah",
248
+ "invalidAccountNumber": "Nombor akaun tidak sah"
249
+ },
250
+ "passport": {
251
+ "required": "Wajib diisi",
252
+ "invalid": "Nombor pasport Taiwan tidak sah"
202
253
  }
203
254
  }
204
255
  }