@messagevisor/core 0.0.1 → 0.1.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 (211) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/LICENSE +21 -0
  3. package/README.md +7 -0
  4. package/jest.config.js +8 -0
  5. package/lib/benchmark/index.d.ts +2 -0
  6. package/lib/benchmark/index.js +417 -0
  7. package/lib/benchmark/index.js.map +1 -0
  8. package/lib/builder/index.d.ts +70 -0
  9. package/lib/builder/index.js +831 -0
  10. package/lib/builder/index.js.map +1 -0
  11. package/lib/cli/index.d.ts +28 -0
  12. package/lib/cli/index.js +182 -0
  13. package/lib/cli/index.js.map +1 -0
  14. package/lib/config/index.d.ts +61 -0
  15. package/lib/config/index.js +255 -0
  16. package/lib/config/index.js.map +1 -0
  17. package/lib/create/index.d.ts +2 -0
  18. package/lib/create/index.js +405 -0
  19. package/lib/create/index.js.map +1 -0
  20. package/lib/datasource/filesystemAdapter.d.ts +44 -0
  21. package/lib/datasource/filesystemAdapter.js +424 -0
  22. package/lib/datasource/filesystemAdapter.js.map +1 -0
  23. package/lib/datasource/index.d.ts +39 -0
  24. package/lib/datasource/index.js +96 -0
  25. package/lib/datasource/index.js.map +1 -0
  26. package/lib/error.d.ts +6 -0
  27. package/lib/error.js +49 -0
  28. package/lib/error.js.map +1 -0
  29. package/lib/evaluate/cli.d.ts +8 -0
  30. package/lib/evaluate/cli.js +179 -0
  31. package/lib/evaluate/cli.js.map +1 -0
  32. package/lib/evaluate/index.d.ts +10 -0
  33. package/lib/evaluate/index.js +131 -0
  34. package/lib/evaluate/index.js.map +1 -0
  35. package/lib/examples/coerceExampleIsoDates.d.ts +12 -0
  36. package/lib/examples/coerceExampleIsoDates.js +81 -0
  37. package/lib/examples/coerceExampleIsoDates.js.map +1 -0
  38. package/lib/examples/index.d.ts +63 -0
  39. package/lib/examples/index.js +713 -0
  40. package/lib/examples/index.js.map +1 -0
  41. package/lib/exporter/index.d.ts +60 -0
  42. package/lib/exporter/index.js +610 -0
  43. package/lib/exporter/index.js.map +1 -0
  44. package/lib/find-duplicates/index.d.ts +41 -0
  45. package/lib/find-duplicates/index.js +297 -0
  46. package/lib/find-duplicates/index.js.map +1 -0
  47. package/lib/generate-code/index.d.ts +11 -0
  48. package/lib/generate-code/index.js +157 -0
  49. package/lib/generate-code/index.js.map +1 -0
  50. package/lib/generate-code/typescript.d.ts +14 -0
  51. package/lib/generate-code/typescript.js +307 -0
  52. package/lib/generate-code/typescript.js.map +1 -0
  53. package/lib/importer/index.d.ts +64 -0
  54. package/lib/importer/index.js +1092 -0
  55. package/lib/importer/index.js.map +1 -0
  56. package/lib/index.d.ts +18 -0
  57. package/lib/index.js +35 -0
  58. package/lib/index.js.map +1 -0
  59. package/lib/info/index.d.ts +17 -0
  60. package/lib/info/index.js +132 -0
  61. package/lib/info/index.js.map +1 -0
  62. package/lib/init/index.d.ts +30 -0
  63. package/lib/init/index.js +348 -0
  64. package/lib/init/index.js.map +1 -0
  65. package/lib/lint/index.d.ts +1 -0
  66. package/lib/lint/index.js +6 -0
  67. package/lib/lint/index.js.map +1 -0
  68. package/lib/linter/attributeSchema.d.ts +7 -0
  69. package/lib/linter/attributeSchema.js +36 -0
  70. package/lib/linter/attributeSchema.js.map +1 -0
  71. package/lib/linter/checkLocaleCircularDependency.d.ts +7 -0
  72. package/lib/linter/checkLocaleCircularDependency.js +42 -0
  73. package/lib/linter/checkLocaleCircularDependency.js.map +1 -0
  74. package/lib/linter/conditionSchema.d.ts +3 -0
  75. package/lib/linter/conditionSchema.js +283 -0
  76. package/lib/linter/conditionSchema.js.map +1 -0
  77. package/lib/linter/formatSchema.d.ts +325 -0
  78. package/lib/linter/formatSchema.js +165 -0
  79. package/lib/linter/formatSchema.js.map +1 -0
  80. package/lib/linter/icuStyleLint.d.ts +6 -0
  81. package/lib/linter/icuStyleLint.js +226 -0
  82. package/lib/linter/icuStyleLint.js.map +1 -0
  83. package/lib/linter/index.d.ts +34 -0
  84. package/lib/linter/index.js +557 -0
  85. package/lib/linter/index.js.map +1 -0
  86. package/lib/linter/localeSchema.d.ts +672 -0
  87. package/lib/linter/localeSchema.js +50 -0
  88. package/lib/linter/localeSchema.js.map +1 -0
  89. package/lib/linter/messageSchema.d.ts +35 -0
  90. package/lib/linter/messageSchema.js +115 -0
  91. package/lib/linter/messageSchema.js.map +1 -0
  92. package/lib/linter/printError.d.ts +8 -0
  93. package/lib/linter/printError.js +41 -0
  94. package/lib/linter/printError.js.map +1 -0
  95. package/lib/linter/schema.d.ts +33 -0
  96. package/lib/linter/schema.js +192 -0
  97. package/lib/linter/schema.js.map +1 -0
  98. package/lib/linter/segmentSchema.d.ts +8 -0
  99. package/lib/linter/segmentSchema.js +18 -0
  100. package/lib/linter/segmentSchema.js.map +1 -0
  101. package/lib/linter/targetSchema.d.ts +337 -0
  102. package/lib/linter/targetSchema.js +39 -0
  103. package/lib/linter/targetSchema.js.map +1 -0
  104. package/lib/linter/testSchema.d.ts +71 -0
  105. package/lib/linter/testSchema.js +165 -0
  106. package/lib/linter/testSchema.js.map +1 -0
  107. package/lib/linter/zodHelpers.d.ts +2 -0
  108. package/lib/linter/zodHelpers.js +15 -0
  109. package/lib/linter/zodHelpers.js.map +1 -0
  110. package/lib/list/index.d.ts +8 -0
  111. package/lib/list/index.js +524 -0
  112. package/lib/list/index.js.map +1 -0
  113. package/lib/matrix.d.ts +4 -0
  114. package/lib/matrix.js +66 -0
  115. package/lib/matrix.js.map +1 -0
  116. package/lib/promoter/index.d.ts +65 -0
  117. package/lib/promoter/index.js +1208 -0
  118. package/lib/promoter/index.js.map +1 -0
  119. package/lib/prune/index.d.ts +37 -0
  120. package/lib/prune/index.js +673 -0
  121. package/lib/prune/index.js.map +1 -0
  122. package/lib/sets.d.ts +10 -0
  123. package/lib/sets.js +120 -0
  124. package/lib/sets.js.map +1 -0
  125. package/lib/tester/cliFormat.d.ts +8 -0
  126. package/lib/tester/cliFormat.js +15 -0
  127. package/lib/tester/cliFormat.js.map +1 -0
  128. package/lib/tester/index.d.ts +35 -0
  129. package/lib/tester/index.js +713 -0
  130. package/lib/tester/index.js.map +1 -0
  131. package/lib/tester/matrix.d.ts +14 -0
  132. package/lib/tester/matrix.js +76 -0
  133. package/lib/tester/matrix.js.map +1 -0
  134. package/lib/tester/prettyDuration.d.ts +1 -0
  135. package/lib/tester/prettyDuration.js +30 -0
  136. package/lib/tester/prettyDuration.js.map +1 -0
  137. package/lib/tester/printTestResult.d.ts +2 -0
  138. package/lib/tester/printTestResult.js +32 -0
  139. package/lib/tester/printTestResult.js.map +1 -0
  140. package/lib/tester/types.d.ts +29 -0
  141. package/lib/tester/types.js +3 -0
  142. package/lib/tester/types.js.map +1 -0
  143. package/package.json +41 -13
  144. package/src/benchmark/index.spec.ts +375 -0
  145. package/src/benchmark/index.ts +433 -0
  146. package/src/builder/index.spec.ts +822 -0
  147. package/src/builder/index.ts +920 -0
  148. package/src/cli/index.spec.ts +54 -0
  149. package/src/cli/index.ts +150 -0
  150. package/src/config/index.spec.ts +70 -0
  151. package/src/config/index.ts +259 -0
  152. package/src/create/index.spec.ts +272 -0
  153. package/src/create/index.ts +295 -0
  154. package/src/datasource/filesystemAdapter.ts +313 -0
  155. package/src/datasource/index.ts +135 -0
  156. package/src/error.ts +33 -0
  157. package/src/evaluate/cli.spec.ts +368 -0
  158. package/src/evaluate/cli.ts +130 -0
  159. package/src/evaluate/index.ts +161 -0
  160. package/src/examples/coerceExampleIsoDates.spec.ts +81 -0
  161. package/src/examples/coerceExampleIsoDates.ts +98 -0
  162. package/src/examples/index.spec.ts +453 -0
  163. package/src/examples/index.ts +854 -0
  164. package/src/exporter/index.spec.ts +443 -0
  165. package/src/exporter/index.ts +643 -0
  166. package/src/find-duplicates/index.spec.ts +289 -0
  167. package/src/find-duplicates/index.ts +314 -0
  168. package/src/generate-code/index.ts +92 -0
  169. package/src/generate-code/typescript.spec.ts +241 -0
  170. package/src/generate-code/typescript.ts +284 -0
  171. package/src/importer/index.spec.ts +1101 -0
  172. package/src/importer/index.ts +1190 -0
  173. package/src/index.ts +18 -0
  174. package/src/info/index.ts +67 -0
  175. package/src/init/index.spec.ts +279 -0
  176. package/src/init/index.ts +292 -0
  177. package/src/lint/index.ts +1 -0
  178. package/src/linter/attributeSchema.ts +38 -0
  179. package/src/linter/checkLocaleCircularDependency.ts +51 -0
  180. package/src/linter/conditionSchema.ts +386 -0
  181. package/src/linter/formatSchema.ts +170 -0
  182. package/src/linter/icuStyleLint.ts +312 -0
  183. package/src/linter/index.spec.ts +824 -0
  184. package/src/linter/index.ts +460 -0
  185. package/src/linter/localeSchema.ts +70 -0
  186. package/src/linter/messageSchema.ts +152 -0
  187. package/src/linter/printError.ts +52 -0
  188. package/src/linter/schema.ts +230 -0
  189. package/src/linter/segmentSchema.ts +15 -0
  190. package/src/linter/targetSchema.ts +50 -0
  191. package/src/linter/testSchema.spec.ts +405 -0
  192. package/src/linter/testSchema.ts +239 -0
  193. package/src/linter/zodHelpers.ts +16 -0
  194. package/src/list/index.spec.ts +431 -0
  195. package/src/list/index.ts +463 -0
  196. package/src/matrix.ts +69 -0
  197. package/src/promoter/index.spec.ts +584 -0
  198. package/src/promoter/index.ts +1267 -0
  199. package/src/prune/index.spec.ts +418 -0
  200. package/src/prune/index.ts +693 -0
  201. package/src/sets.ts +74 -0
  202. package/src/tester/cliFormat.ts +11 -0
  203. package/src/tester/featurevisorIntegration.spec.ts +101 -0
  204. package/src/tester/index.spec.ts +577 -0
  205. package/src/tester/index.ts +679 -0
  206. package/src/tester/matrix.ts +106 -0
  207. package/src/tester/prettyDuration.ts +34 -0
  208. package/src/tester/printTestResult.ts +40 -0
  209. package/src/tester/types.ts +32 -0
  210. package/tsconfig.cjs.json +11 -0
  211. package/tsconfig.typecheck.json +4 -0
@@ -0,0 +1,337 @@
1
+ import { z } from "zod";
2
+ export declare function getTargetZodSchema(localeKeys: string[]): z.ZodObject<{
3
+ key: z.ZodOptional<z.ZodString>;
4
+ promotable: z.ZodOptional<z.ZodBoolean>;
5
+ stringify: z.ZodOptional<z.ZodBoolean>;
6
+ pretty: z.ZodOptional<z.ZodBoolean>;
7
+ revisionFromHash: z.ZodOptional<z.ZodBoolean>;
8
+ description: z.ZodString;
9
+ includeMessages: z.ZodOptional<z.ZodArray<z.ZodString>>;
10
+ excludeMessages: z.ZodOptional<z.ZodArray<z.ZodString>>;
11
+ locales: z.ZodOptional<z.ZodArray<z.ZodType<string, unknown, z.core.$ZodTypeInternals<string, unknown>>>>;
12
+ context: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
13
+ formats: z.ZodOptional<z.ZodRecord<z.ZodType<string, unknown, z.core.$ZodTypeInternals<string, unknown>>, z.ZodObject<{
14
+ number: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
15
+ style: z.ZodOptional<z.ZodEnum<{
16
+ decimal: "decimal";
17
+ percent: "percent";
18
+ currency: "currency";
19
+ unit: "unit";
20
+ }>>;
21
+ currency: z.ZodOptional<z.ZodString>;
22
+ currencyDisplay: z.ZodOptional<z.ZodEnum<{
23
+ symbol: "symbol";
24
+ code: "code";
25
+ name: "name";
26
+ narrowSymbol: "narrowSymbol";
27
+ }>>;
28
+ currencySign: z.ZodOptional<z.ZodEnum<{
29
+ standard: "standard";
30
+ accounting: "accounting";
31
+ }>>;
32
+ unit: z.ZodOptional<z.ZodString>;
33
+ unitDisplay: z.ZodOptional<z.ZodEnum<{
34
+ long: "long";
35
+ short: "short";
36
+ narrow: "narrow";
37
+ }>>;
38
+ useGrouping: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodEnum<{
39
+ auto: "auto";
40
+ always: "always";
41
+ min2: "min2";
42
+ }>]>>;
43
+ minimumIntegerDigits: z.ZodOptional<z.ZodNumber>;
44
+ minimumFractionDigits: z.ZodOptional<z.ZodNumber>;
45
+ maximumFractionDigits: z.ZodOptional<z.ZodNumber>;
46
+ minimumSignificantDigits: z.ZodOptional<z.ZodNumber>;
47
+ maximumSignificantDigits: z.ZodOptional<z.ZodNumber>;
48
+ notation: z.ZodOptional<z.ZodEnum<{
49
+ standard: "standard";
50
+ compact: "compact";
51
+ scientific: "scientific";
52
+ engineering: "engineering";
53
+ }>>;
54
+ compactDisplay: z.ZodOptional<z.ZodEnum<{
55
+ long: "long";
56
+ short: "short";
57
+ }>>;
58
+ signDisplay: z.ZodOptional<z.ZodEnum<{
59
+ auto: "auto";
60
+ always: "always";
61
+ never: "never";
62
+ exceptZero: "exceptZero";
63
+ negative: "negative";
64
+ }>>;
65
+ roundingPriority: z.ZodOptional<z.ZodEnum<{
66
+ auto: "auto";
67
+ morePrecision: "morePrecision";
68
+ lessPrecision: "lessPrecision";
69
+ }>>;
70
+ roundingIncrement: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<5>, z.ZodLiteral<10>, z.ZodLiteral<20>, z.ZodLiteral<25>, z.ZodLiteral<50>, z.ZodLiteral<100>, z.ZodLiteral<200>, z.ZodLiteral<250>, z.ZodLiteral<500>, z.ZodLiteral<1000>, z.ZodLiteral<2000>, z.ZodLiteral<2500>, z.ZodLiteral<5000>]>>;
71
+ roundingMode: z.ZodOptional<z.ZodEnum<{
72
+ ceil: "ceil";
73
+ floor: "floor";
74
+ expand: "expand";
75
+ trunc: "trunc";
76
+ halfCeil: "halfCeil";
77
+ halfFloor: "halfFloor";
78
+ halfExpand: "halfExpand";
79
+ halfTrunc: "halfTrunc";
80
+ halfEven: "halfEven";
81
+ }>>;
82
+ trailingZeroDisplay: z.ZodOptional<z.ZodEnum<{
83
+ auto: "auto";
84
+ stripIfInteger: "stripIfInteger";
85
+ }>>;
86
+ numberingSystem: z.ZodOptional<z.ZodString>;
87
+ }, z.core.$strict>>>;
88
+ date: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
89
+ timeZone: z.ZodOptional<z.ZodString>;
90
+ calendar: z.ZodOptional<z.ZodString>;
91
+ numberingSystem: z.ZodOptional<z.ZodString>;
92
+ hour12: z.ZodOptional<z.ZodBoolean>;
93
+ hourCycle: z.ZodOptional<z.ZodEnum<{
94
+ h11: "h11";
95
+ h12: "h12";
96
+ h23: "h23";
97
+ h24: "h24";
98
+ }>>;
99
+ dateStyle: z.ZodOptional<z.ZodEnum<{
100
+ long: "long";
101
+ short: "short";
102
+ medium: "medium";
103
+ full: "full";
104
+ }>>;
105
+ timeStyle: z.ZodOptional<z.ZodEnum<{
106
+ long: "long";
107
+ short: "short";
108
+ medium: "medium";
109
+ full: "full";
110
+ }>>;
111
+ formatMatcher: z.ZodOptional<z.ZodEnum<{
112
+ "best fit": "best fit";
113
+ basic: "basic";
114
+ }>>;
115
+ fractionalSecondDigits: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>>;
116
+ weekday: z.ZodOptional<z.ZodEnum<{
117
+ long: "long";
118
+ short: "short";
119
+ narrow: "narrow";
120
+ }>>;
121
+ era: z.ZodOptional<z.ZodEnum<{
122
+ long: "long";
123
+ short: "short";
124
+ narrow: "narrow";
125
+ }>>;
126
+ year: z.ZodOptional<z.ZodEnum<{
127
+ numeric: "numeric";
128
+ "2-digit": "2-digit";
129
+ }>>;
130
+ month: z.ZodOptional<z.ZodEnum<{
131
+ long: "long";
132
+ short: "short";
133
+ narrow: "narrow";
134
+ numeric: "numeric";
135
+ "2-digit": "2-digit";
136
+ }>>;
137
+ day: z.ZodOptional<z.ZodEnum<{
138
+ numeric: "numeric";
139
+ "2-digit": "2-digit";
140
+ }>>;
141
+ dayPeriod: z.ZodOptional<z.ZodEnum<{
142
+ long: "long";
143
+ short: "short";
144
+ narrow: "narrow";
145
+ }>>;
146
+ hour: z.ZodOptional<z.ZodEnum<{
147
+ numeric: "numeric";
148
+ "2-digit": "2-digit";
149
+ }>>;
150
+ minute: z.ZodOptional<z.ZodEnum<{
151
+ numeric: "numeric";
152
+ "2-digit": "2-digit";
153
+ }>>;
154
+ second: z.ZodOptional<z.ZodEnum<{
155
+ numeric: "numeric";
156
+ "2-digit": "2-digit";
157
+ }>>;
158
+ timeZoneName: z.ZodOptional<z.ZodEnum<{
159
+ long: "long";
160
+ short: "short";
161
+ shortOffset: "shortOffset";
162
+ longOffset: "longOffset";
163
+ shortGeneric: "shortGeneric";
164
+ longGeneric: "longGeneric";
165
+ }>>;
166
+ }, z.core.$strict>>>;
167
+ time: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
168
+ timeZone: z.ZodOptional<z.ZodString>;
169
+ calendar: z.ZodOptional<z.ZodString>;
170
+ numberingSystem: z.ZodOptional<z.ZodString>;
171
+ hour12: z.ZodOptional<z.ZodBoolean>;
172
+ hourCycle: z.ZodOptional<z.ZodEnum<{
173
+ h11: "h11";
174
+ h12: "h12";
175
+ h23: "h23";
176
+ h24: "h24";
177
+ }>>;
178
+ dateStyle: z.ZodOptional<z.ZodEnum<{
179
+ long: "long";
180
+ short: "short";
181
+ medium: "medium";
182
+ full: "full";
183
+ }>>;
184
+ timeStyle: z.ZodOptional<z.ZodEnum<{
185
+ long: "long";
186
+ short: "short";
187
+ medium: "medium";
188
+ full: "full";
189
+ }>>;
190
+ formatMatcher: z.ZodOptional<z.ZodEnum<{
191
+ "best fit": "best fit";
192
+ basic: "basic";
193
+ }>>;
194
+ fractionalSecondDigits: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>>;
195
+ weekday: z.ZodOptional<z.ZodEnum<{
196
+ long: "long";
197
+ short: "short";
198
+ narrow: "narrow";
199
+ }>>;
200
+ era: z.ZodOptional<z.ZodEnum<{
201
+ long: "long";
202
+ short: "short";
203
+ narrow: "narrow";
204
+ }>>;
205
+ year: z.ZodOptional<z.ZodEnum<{
206
+ numeric: "numeric";
207
+ "2-digit": "2-digit";
208
+ }>>;
209
+ month: z.ZodOptional<z.ZodEnum<{
210
+ long: "long";
211
+ short: "short";
212
+ narrow: "narrow";
213
+ numeric: "numeric";
214
+ "2-digit": "2-digit";
215
+ }>>;
216
+ day: z.ZodOptional<z.ZodEnum<{
217
+ numeric: "numeric";
218
+ "2-digit": "2-digit";
219
+ }>>;
220
+ dayPeriod: z.ZodOptional<z.ZodEnum<{
221
+ long: "long";
222
+ short: "short";
223
+ narrow: "narrow";
224
+ }>>;
225
+ hour: z.ZodOptional<z.ZodEnum<{
226
+ numeric: "numeric";
227
+ "2-digit": "2-digit";
228
+ }>>;
229
+ minute: z.ZodOptional<z.ZodEnum<{
230
+ numeric: "numeric";
231
+ "2-digit": "2-digit";
232
+ }>>;
233
+ second: z.ZodOptional<z.ZodEnum<{
234
+ numeric: "numeric";
235
+ "2-digit": "2-digit";
236
+ }>>;
237
+ timeZoneName: z.ZodOptional<z.ZodEnum<{
238
+ long: "long";
239
+ short: "short";
240
+ shortOffset: "shortOffset";
241
+ longOffset: "longOffset";
242
+ shortGeneric: "shortGeneric";
243
+ longGeneric: "longGeneric";
244
+ }>>;
245
+ }, z.core.$strict>>>;
246
+ relative: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
247
+ numeric: z.ZodOptional<z.ZodEnum<{
248
+ auto: "auto";
249
+ always: "always";
250
+ }>>;
251
+ style: z.ZodOptional<z.ZodEnum<{
252
+ long: "long";
253
+ short: "short";
254
+ narrow: "narrow";
255
+ }>>;
256
+ }, z.core.$strict>>>;
257
+ dateTimeRange: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
258
+ timeZone: z.ZodOptional<z.ZodString>;
259
+ calendar: z.ZodOptional<z.ZodString>;
260
+ numberingSystem: z.ZodOptional<z.ZodString>;
261
+ hour12: z.ZodOptional<z.ZodBoolean>;
262
+ hourCycle: z.ZodOptional<z.ZodEnum<{
263
+ h11: "h11";
264
+ h12: "h12";
265
+ h23: "h23";
266
+ h24: "h24";
267
+ }>>;
268
+ dateStyle: z.ZodOptional<z.ZodEnum<{
269
+ long: "long";
270
+ short: "short";
271
+ medium: "medium";
272
+ full: "full";
273
+ }>>;
274
+ timeStyle: z.ZodOptional<z.ZodEnum<{
275
+ long: "long";
276
+ short: "short";
277
+ medium: "medium";
278
+ full: "full";
279
+ }>>;
280
+ formatMatcher: z.ZodOptional<z.ZodEnum<{
281
+ "best fit": "best fit";
282
+ basic: "basic";
283
+ }>>;
284
+ fractionalSecondDigits: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>>;
285
+ weekday: z.ZodOptional<z.ZodEnum<{
286
+ long: "long";
287
+ short: "short";
288
+ narrow: "narrow";
289
+ }>>;
290
+ era: z.ZodOptional<z.ZodEnum<{
291
+ long: "long";
292
+ short: "short";
293
+ narrow: "narrow";
294
+ }>>;
295
+ year: z.ZodOptional<z.ZodEnum<{
296
+ numeric: "numeric";
297
+ "2-digit": "2-digit";
298
+ }>>;
299
+ month: z.ZodOptional<z.ZodEnum<{
300
+ long: "long";
301
+ short: "short";
302
+ narrow: "narrow";
303
+ numeric: "numeric";
304
+ "2-digit": "2-digit";
305
+ }>>;
306
+ day: z.ZodOptional<z.ZodEnum<{
307
+ numeric: "numeric";
308
+ "2-digit": "2-digit";
309
+ }>>;
310
+ dayPeriod: z.ZodOptional<z.ZodEnum<{
311
+ long: "long";
312
+ short: "short";
313
+ narrow: "narrow";
314
+ }>>;
315
+ hour: z.ZodOptional<z.ZodEnum<{
316
+ numeric: "numeric";
317
+ "2-digit": "2-digit";
318
+ }>>;
319
+ minute: z.ZodOptional<z.ZodEnum<{
320
+ numeric: "numeric";
321
+ "2-digit": "2-digit";
322
+ }>>;
323
+ second: z.ZodOptional<z.ZodEnum<{
324
+ numeric: "numeric";
325
+ "2-digit": "2-digit";
326
+ }>>;
327
+ timeZoneName: z.ZodOptional<z.ZodEnum<{
328
+ long: "long";
329
+ short: "short";
330
+ shortOffset: "shortOffset";
331
+ longOffset: "longOffset";
332
+ shortGeneric: "shortGeneric";
333
+ longGeneric: "longGeneric";
334
+ }>>;
335
+ }, z.core.$strict>>>;
336
+ }, z.core.$strict>>>;
337
+ }, z.core.$strict>;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTargetZodSchema = getTargetZodSchema;
4
+ var zod_1 = require("zod");
5
+ var formatSchema_1 = require("./formatSchema");
6
+ var zodHelpers_1 = require("./zodHelpers");
7
+ function getTargetZodSchema(localeKeys) {
8
+ return zod_1.z
9
+ .object({
10
+ key: zod_1.z.string().optional(),
11
+ promotable: zod_1.z.boolean().optional(),
12
+ stringify: zod_1.z.boolean().optional(),
13
+ pretty: zod_1.z.boolean().optional(),
14
+ revisionFromHash: zod_1.z.boolean().optional(),
15
+ description: zod_1.z.string({
16
+ error: function (issue) { return (issue.input === undefined ? "Required" : undefined); },
17
+ }),
18
+ includeMessages: zod_1.z.array(zod_1.z.string()).optional(),
19
+ excludeMessages: zod_1.z.array(zod_1.z.string()).optional(),
20
+ locales: zod_1.z
21
+ .array((0, zodHelpers_1.refineWithMessage)(zod_1.z.string(), function (value) { return localeKeys.includes(value); }, function (value) { return "Unknown locale \"".concat(value, "\""); }))
22
+ .optional(),
23
+ context: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
24
+ formats: zod_1.z
25
+ .record((0, zodHelpers_1.refineWithMessage)(zod_1.z.string(), function (value) { return localeKeys.includes(value); }, function (value) { return "Unknown locale \"".concat(value, "\""); }), formatSchema_1.formatPresetsZodSchema)
26
+ .optional(),
27
+ })
28
+ .strict()
29
+ .superRefine(function (data, ctx) {
30
+ if (!data.includeMessages || data.includeMessages.length === 0) {
31
+ ctx.addIssue({
32
+ code: zod_1.z.ZodIssueCode.custom,
33
+ message: "Target must include at least one message pattern.",
34
+ path: ["includeMessages"],
35
+ });
36
+ }
37
+ });
38
+ }
39
+ //# sourceMappingURL=targetSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"targetSchema.js","sourceRoot":"","sources":["../../src/linter/targetSchema.ts"],"names":[],"mappings":";;AAKA,gDA4CC;AAjDD,2BAAwB;AAExB,+CAAwD;AACxD,2CAAiD;AAEjD,SAAgB,kBAAkB,CAAC,UAAoB;IACrD,OAAO,OAAC;SACL,MAAM,CAAC;QACN,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC1B,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAClC,SAAS,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QACjC,MAAM,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAC9B,gBAAgB,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QACxC,WAAW,EAAE,OAAC,CAAC,MAAM,CAAC;YACpB,KAAK,EAAE,UAAC,KAAK,IAAK,OAAA,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,EAApD,CAAoD;SACvE,CAAC;QACF,eAAe,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QAC/C,eAAe,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QAC/C,OAAO,EAAE,OAAC;aACP,KAAK,CACJ,IAAA,8BAAiB,EACf,OAAC,CAAC,MAAM,EAAE,EACV,UAAC,KAAK,IAAK,OAAA,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAA1B,CAA0B,EACrC,UAAC,KAAK,IAAK,OAAA,2BAAmB,KAAK,OAAG,EAA3B,CAA2B,CACvC,CACF;aACA,QAAQ,EAAE;QACb,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;QACrD,OAAO,EAAE,OAAC;aACP,MAAM,CACL,IAAA,8BAAiB,EACf,OAAC,CAAC,MAAM,EAAE,EACV,UAAC,KAAK,IAAK,OAAA,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAA1B,CAA0B,EACrC,UAAC,KAAK,IAAK,OAAA,2BAAmB,KAAK,OAAG,EAA3B,CAA2B,CACvC,EACD,qCAAsB,CACvB;aACA,QAAQ,EAAE;KACd,CAAC;SACD,MAAM,EAAE;SACR,WAAW,CAAC,UAAC,IAAI,EAAE,GAAG;QACrB,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,mDAAmD;gBAC5D,IAAI,EAAE,CAAC,iBAAiB,CAAC;aAC1B,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,71 @@
1
+ import { z } from "zod";
2
+ export declare function getTestZodSchema(messageKeys: string[], segmentKeys: string[], localeKeys: string[], targetKeys: string[]): z.ZodUnion<readonly [z.ZodObject<{
3
+ key: z.ZodOptional<z.ZodString>;
4
+ promotable: z.ZodOptional<z.ZodBoolean>;
5
+ message: z.ZodType<string, unknown, z.core.$ZodTypeInternals<string, unknown>>;
6
+ assertions: z.ZodArray<z.ZodObject<{
7
+ matrix: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>>>;
8
+ description: z.ZodOptional<z.ZodString>;
9
+ context: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
10
+ locale: z.ZodType<string, unknown, z.core.$ZodTypeInternals<string, unknown>>;
11
+ target: z.ZodOptional<z.ZodType<string, unknown, z.core.$ZodTypeInternals<string, unknown>>>;
12
+ values: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
13
+ withFlags: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>>;
14
+ withVariations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
15
+ currency: z.ZodOptional<z.ZodString>;
16
+ timeZone: z.ZodOptional<z.ZodString>;
17
+ formats: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
18
+ expectedTranslation: z.ZodString;
19
+ expectedByRuntime: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
20
+ }, z.core.$strict>>;
21
+ }, z.core.$strict>, z.ZodObject<{
22
+ key: z.ZodOptional<z.ZodString>;
23
+ promotable: z.ZodOptional<z.ZodBoolean>;
24
+ segment: z.ZodType<string, unknown, z.core.$ZodTypeInternals<string, unknown>>;
25
+ assertions: z.ZodArray<z.ZodObject<{
26
+ matrix: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>>>;
27
+ description: z.ZodOptional<z.ZodString>;
28
+ segment: z.ZodType<string, unknown, z.core.$ZodTypeInternals<string, unknown>>;
29
+ context: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
30
+ expectedToMatch: z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>;
31
+ }, z.core.$strict>>;
32
+ }, z.core.$strict>, z.ZodObject<{
33
+ key: z.ZodOptional<z.ZodString>;
34
+ promotable: z.ZodOptional<z.ZodBoolean>;
35
+ locale: z.ZodType<string, unknown, z.core.$ZodTypeInternals<string, unknown>>;
36
+ assertions: z.ZodArray<z.ZodObject<{
37
+ matrix: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>>>;
38
+ description: z.ZodOptional<z.ZodString>;
39
+ target: z.ZodOptional<z.ZodType<string, unknown, z.core.$ZodTypeInternals<string, unknown>>>;
40
+ expectedFormats: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
41
+ rawMessage: z.ZodOptional<z.ZodString>;
42
+ expectedTranslation: z.ZodOptional<z.ZodString>;
43
+ expectedByRuntime: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
44
+ values: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
45
+ context: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
46
+ formats: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
47
+ currency: z.ZodOptional<z.ZodString>;
48
+ timeZone: z.ZodOptional<z.ZodString>;
49
+ }, z.core.$strict>>;
50
+ }, z.core.$strict>, z.ZodObject<{
51
+ key: z.ZodOptional<z.ZodString>;
52
+ promotable: z.ZodOptional<z.ZodBoolean>;
53
+ target: z.ZodType<string, unknown, z.core.$ZodTypeInternals<string, unknown>>;
54
+ assertions: z.ZodArray<z.ZodObject<{
55
+ matrix: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>>>;
56
+ description: z.ZodOptional<z.ZodString>;
57
+ locale: z.ZodType<string, unknown, z.core.$ZodTypeInternals<string, unknown>>;
58
+ expectedToIncludeMessages: z.ZodOptional<z.ZodArray<z.ZodType<string, unknown, z.core.$ZodTypeInternals<string, unknown>>>>;
59
+ expectedToNotIncludeMessages: z.ZodOptional<z.ZodArray<z.ZodType<string, unknown, z.core.$ZodTypeInternals<string, unknown>>>>;
60
+ expectedFormats: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
61
+ rawMessage: z.ZodOptional<z.ZodString>;
62
+ message: z.ZodOptional<z.ZodType<string, unknown, z.core.$ZodTypeInternals<string, unknown>>>;
63
+ expectedTranslation: z.ZodOptional<z.ZodString>;
64
+ expectedByRuntime: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
65
+ values: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
66
+ context: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
67
+ formats: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
68
+ currency: z.ZodOptional<z.ZodString>;
69
+ timeZone: z.ZodOptional<z.ZodString>;
70
+ }, z.core.$strict>>;
71
+ }, z.core.$strict>]>;
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTestZodSchema = getTestZodSchema;
4
+ var zod_1 = require("zod");
5
+ var zodHelpers_1 = require("./zodHelpers");
6
+ function getTestZodSchema(messageKeys, segmentKeys, localeKeys, targetKeys) {
7
+ var matrixZodSchema = zod_1.z.record(zod_1.z.string(), zod_1.z.array(zod_1.z.union([zod_1.z.string(), zod_1.z.number(), zod_1.z.boolean(), zod_1.z.null()])));
8
+ var formatPresets = zod_1.z.record(zod_1.z.string(), zod_1.z.unknown());
9
+ var expectedByRuntime = zod_1.z.record(zod_1.z.string(), zod_1.z.string());
10
+ var targetOrMatrixValue = (0, zodHelpers_1.refineWithMessage)(zod_1.z.string(), function (value) { return targetKeys.includes(value) || /^\$\{\{.+\}\}$/.test(value); }, function (value) { return "Unknown target \"".concat(value, "\""); });
11
+ var messageAssertion = zod_1.z
12
+ .object({
13
+ matrix: matrixZodSchema.optional(),
14
+ description: zod_1.z.string().optional(),
15
+ context: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
16
+ locale: (0, zodHelpers_1.refineWithMessage)(zod_1.z.string(), function (value) { return localeKeys.includes(value); }, function (value) { return "Unknown locale \"".concat(value, "\""); }),
17
+ target: targetOrMatrixValue.optional(),
18
+ values: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
19
+ withFlags: zod_1.z.record(zod_1.z.string(), zod_1.z.union([zod_1.z.boolean(), zod_1.z.string()])).optional(),
20
+ withVariations: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
21
+ currency: zod_1.z.string().optional(),
22
+ timeZone: zod_1.z.string().optional(),
23
+ formats: formatPresets.optional(),
24
+ expectedTranslation: zod_1.z.string(),
25
+ expectedByRuntime: expectedByRuntime.optional(),
26
+ })
27
+ .strict();
28
+ var segmentAssertion = zod_1.z
29
+ .object({
30
+ matrix: matrixZodSchema.optional(),
31
+ description: zod_1.z.string().optional(),
32
+ segment: (0, zodHelpers_1.refineWithMessage)(zod_1.z.string(), function (value) { return segmentKeys.includes(value); }, function (value) { return "Unknown segment \"".concat(value, "\""); }),
33
+ context: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
34
+ expectedToMatch: zod_1.z.union([zod_1.z.boolean(), zod_1.z.string()]),
35
+ })
36
+ .strict();
37
+ var localeAssertion = zod_1.z
38
+ .object({
39
+ matrix: matrixZodSchema.optional(),
40
+ description: zod_1.z.string().optional(),
41
+ target: targetOrMatrixValue.optional(),
42
+ expectedFormats: formatPresets.optional(),
43
+ rawMessage: zod_1.z.string().optional(),
44
+ expectedTranslation: zod_1.z.string().optional(),
45
+ expectedByRuntime: expectedByRuntime.optional(),
46
+ values: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
47
+ context: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
48
+ formats: formatPresets.optional(),
49
+ currency: zod_1.z.string().optional(),
50
+ timeZone: zod_1.z.string().optional(),
51
+ })
52
+ .strict()
53
+ .superRefine(function (data, ctx) {
54
+ var hasExpectedFormats = typeof data.expectedFormats !== "undefined";
55
+ var hasRawMessage = typeof data.rawMessage !== "undefined";
56
+ var hasExpectedTranslation = typeof data.expectedTranslation !== "undefined";
57
+ if (hasRawMessage !== hasExpectedTranslation) {
58
+ ctx.addIssue({
59
+ code: zod_1.z.ZodIssueCode.custom,
60
+ message: "Locale assertions must define `rawMessage` and `expectedTranslation` together.",
61
+ path: hasRawMessage ? ["expectedTranslation"] : ["rawMessage"],
62
+ });
63
+ }
64
+ if (!hasExpectedFormats && !hasRawMessage && !hasExpectedTranslation) {
65
+ ctx.addIssue({
66
+ code: zod_1.z.ZodIssueCode.custom,
67
+ message: "Locale assertions must define at least one of `expectedFormats` or `rawMessage` with `expectedTranslation`.",
68
+ path: ["expectedFormats"],
69
+ });
70
+ }
71
+ });
72
+ var targetAssertion = zod_1.z
73
+ .object({
74
+ matrix: matrixZodSchema.optional(),
75
+ description: zod_1.z.string().optional(),
76
+ locale: (0, zodHelpers_1.refineWithMessage)(zod_1.z.string(), function (value) { return localeKeys.includes(value); }, function (value) { return "Unknown locale \"".concat(value, "\""); }),
77
+ expectedToIncludeMessages: zod_1.z
78
+ .array((0, zodHelpers_1.refineWithMessage)(zod_1.z.string(), function (value) { return messageKeys.includes(value); }, function (value) { return "Unknown message \"".concat(value, "\""); }))
79
+ .optional(),
80
+ expectedToNotIncludeMessages: zod_1.z
81
+ .array((0, zodHelpers_1.refineWithMessage)(zod_1.z.string(), function (value) { return messageKeys.includes(value); }, function (value) { return "Unknown message \"".concat(value, "\""); }))
82
+ .optional(),
83
+ expectedFormats: formatPresets.optional(),
84
+ rawMessage: zod_1.z.string().optional(),
85
+ message: (0, zodHelpers_1.refineWithMessage)(zod_1.z.string(), function (value) { return messageKeys.includes(value); }, function (value) { return "Unknown message \"".concat(value, "\""); }).optional(),
86
+ expectedTranslation: zod_1.z.string().optional(),
87
+ expectedByRuntime: expectedByRuntime.optional(),
88
+ values: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
89
+ context: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
90
+ formats: formatPresets.optional(),
91
+ currency: zod_1.z.string().optional(),
92
+ timeZone: zod_1.z.string().optional(),
93
+ })
94
+ .strict()
95
+ .superRefine(function (data, ctx) {
96
+ var hasRawMessage = typeof data.rawMessage !== "undefined";
97
+ var hasMessage = typeof data.message !== "undefined";
98
+ var hasExpectedTranslation = typeof data.expectedTranslation !== "undefined";
99
+ var hasStructureChecks = typeof data.expectedFormats !== "undefined" ||
100
+ typeof data.expectedToIncludeMessages !== "undefined" ||
101
+ typeof data.expectedToNotIncludeMessages !== "undefined";
102
+ if (hasRawMessage && hasMessage) {
103
+ ctx.addIssue({
104
+ code: zod_1.z.ZodIssueCode.custom,
105
+ message: "Target assertions must define either `rawMessage` or `message`, not both.",
106
+ path: ["rawMessage"],
107
+ });
108
+ }
109
+ if ((hasRawMessage || hasMessage) && !hasExpectedTranslation) {
110
+ ctx.addIssue({
111
+ code: zod_1.z.ZodIssueCode.custom,
112
+ message: "Target assertions that define `rawMessage` or `message` must also define `expectedTranslation`.",
113
+ path: ["expectedTranslation"],
114
+ });
115
+ }
116
+ if (hasExpectedTranslation && !hasRawMessage && !hasMessage) {
117
+ ctx.addIssue({
118
+ code: zod_1.z.ZodIssueCode.custom,
119
+ message: "Target assertions that define `expectedTranslation` must also define `rawMessage` or `message`.",
120
+ path: ["expectedTranslation"],
121
+ });
122
+ }
123
+ if (!hasStructureChecks && !hasRawMessage && !hasMessage && !hasExpectedTranslation) {
124
+ ctx.addIssue({
125
+ code: zod_1.z.ZodIssueCode.custom,
126
+ message: "Target assertions must define inclusion/exclusion checks, `expectedFormats`, or translation.",
127
+ path: ["expectedFormats"],
128
+ });
129
+ }
130
+ });
131
+ var messageTest = zod_1.z
132
+ .object({
133
+ key: zod_1.z.string().optional(),
134
+ promotable: zod_1.z.boolean().optional(),
135
+ message: (0, zodHelpers_1.refineWithMessage)(zod_1.z.string(), function (value) { return messageKeys.includes(value); }, function (value) { return "Unknown message \"".concat(value, "\""); }),
136
+ assertions: zod_1.z.array(messageAssertion).min(1),
137
+ })
138
+ .strict();
139
+ var segmentTest = zod_1.z
140
+ .object({
141
+ key: zod_1.z.string().optional(),
142
+ promotable: zod_1.z.boolean().optional(),
143
+ segment: (0, zodHelpers_1.refineWithMessage)(zod_1.z.string(), function (value) { return segmentKeys.includes(value); }, function (value) { return "Unknown segment \"".concat(value, "\""); }),
144
+ assertions: zod_1.z.array(segmentAssertion).min(1),
145
+ })
146
+ .strict();
147
+ var localeTest = zod_1.z
148
+ .object({
149
+ key: zod_1.z.string().optional(),
150
+ promotable: zod_1.z.boolean().optional(),
151
+ locale: (0, zodHelpers_1.refineWithMessage)(zod_1.z.string(), function (value) { return localeKeys.includes(value); }, function (value) { return "Unknown locale \"".concat(value, "\""); }),
152
+ assertions: zod_1.z.array(localeAssertion).min(1),
153
+ })
154
+ .strict();
155
+ var targetTest = zod_1.z
156
+ .object({
157
+ key: zod_1.z.string().optional(),
158
+ promotable: zod_1.z.boolean().optional(),
159
+ target: (0, zodHelpers_1.refineWithMessage)(zod_1.z.string(), function (value) { return targetKeys.includes(value); }, function (value) { return "Unknown target \"".concat(value, "\""); }),
160
+ assertions: zod_1.z.array(targetAssertion).min(1),
161
+ })
162
+ .strict();
163
+ return zod_1.z.union([messageTest, segmentTest, localeTest, targetTest]);
164
+ }
165
+ //# sourceMappingURL=testSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testSchema.js","sourceRoot":"","sources":["../../src/linter/testSchema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { z } from "zod";
2
+ export declare function refineWithMessage<T>(schema: z.ZodType<T>, predicate: (value: T) => boolean, getMessage: (value: T) => string): z.ZodType<T, unknown, z.core.$ZodTypeInternals<T, unknown>>;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.refineWithMessage = refineWithMessage;
4
+ var zod_1 = require("zod");
5
+ function refineWithMessage(schema, predicate, getMessage) {
6
+ return schema.superRefine(function (value, ctx) {
7
+ if (!predicate(value)) {
8
+ ctx.addIssue({
9
+ code: zod_1.z.ZodIssueCode.custom,
10
+ message: getMessage(value),
11
+ });
12
+ }
13
+ });
14
+ }
15
+ //# sourceMappingURL=zodHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zodHelpers.js","sourceRoot":"","sources":["../../src/linter/zodHelpers.ts"],"names":[],"mappings":";;AAEA,8CAaC;AAfD,2BAAwB;AAExB,SAAgB,iBAAiB,CAC/B,MAAoB,EACpB,SAAgC,EAChC,UAAgC;IAEhC,OAAO,MAAM,CAAC,WAAW,CAAC,UAAC,KAAK,EAAE,GAAG;QACnC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC;aAC3B,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}