@gusnips/vite 0.8.16 → 0.8.18

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gusnips/vite",
3
- "version": "0.8.16",
4
- "description": "The build-time half of a prerendered Vite SPA: head baking, sitemap, robots, the prerender driver, and a shared vite preset.",
3
+ "version": "0.8.18",
4
+ "description": "The build-time half of a prerendered Vite SPA: head baking, sitemap, robots, the prerender driver, a shared vite preset, and the translation catalog check.",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "author": "Gustavo Salomé",
@@ -18,6 +18,10 @@
18
18
  "types": "./dist/preset.d.ts",
19
19
  "default": "./dist/preset.js"
20
20
  },
21
+ "./i18n": {
22
+ "types": "./dist/i18n.d.ts",
23
+ "default": "./dist/i18n.js"
24
+ },
21
25
  "./render": {
22
26
  "types": "./dist/render.d.ts",
23
27
  "default": "./dist/render.js"
@@ -48,7 +52,9 @@
48
52
  "sitemap",
49
53
  "open-graph",
50
54
  "seo",
51
- "react"
55
+ "react",
56
+ "i18n",
57
+ "i18next"
52
58
  ],
53
59
  "scripts": {
54
60
  "build": "rm -rf dist && tsc",
@@ -0,0 +1,509 @@
1
+ import { mkdir, mkdtemp, readFile, rm, writeFile } from "node:fs/promises";
2
+ import { tmpdir } from "node:os";
3
+ import { dirname, join } from "node:path";
4
+ import { afterEach, describe, expect, it } from "vitest";
5
+ import {
6
+ type Catalogs,
7
+ checkI18n,
8
+ formatI18nReport,
9
+ type I18nBundle,
10
+ type I18nProblem,
11
+ mergeFragments,
12
+ writeFragments,
13
+ } from "./i18n.ts";
14
+
15
+ const dirs: string[] = [];
16
+
17
+ async function tempRoot(files: Record<string, string> = {}): Promise<string> {
18
+ const root = await mkdtemp(join(tmpdir(), "frontkit-i18n-"));
19
+ dirs.push(root);
20
+ for (const [path, text] of Object.entries(files)) {
21
+ await mkdir(dirname(join(root, path)), { recursive: true });
22
+ await writeFile(join(root, path), text, "utf8");
23
+ }
24
+ return root;
25
+ }
26
+
27
+ afterEach(async () => {
28
+ await Promise.all(dirs.map((dir) => rm(dir, { recursive: true, force: true })));
29
+ dirs.length = 0;
30
+ });
31
+
32
+ /** A bundle over in-memory catalogs, English canonical. */
33
+ function bundle(catalogs: Record<string, object>, extra: Partial<I18nBundle> = {}): I18nBundle {
34
+ return {
35
+ name: "web",
36
+ locales: Object.keys(catalogs),
37
+ canonical: "en",
38
+ load: (locale): Catalogs => ({ translation: catalogs[locale] ?? {} }),
39
+ ...extra,
40
+ };
41
+ }
42
+
43
+ async function problems(
44
+ b: I18nBundle,
45
+ options: Parameters<typeof checkI18n>[1] = {},
46
+ ): Promise<I18nProblem[]> {
47
+ return (await checkI18n([b], options)).problems;
48
+ }
49
+
50
+ const errors = (list: I18nProblem[]): string[] =>
51
+ list
52
+ .filter((p) => p.level === "error")
53
+ .map((p) => `${p.rule} ${p.locale ?? "-"} ${p.key ?? "-"}`);
54
+
55
+ describe("loading", () => {
56
+ /**
57
+ * Six of the nine gates this replaces printed "skipped" and returned zero when a catalog failed
58
+ * to load, so a broken JSON file turned the gate green — the one moment it had something to say.
59
+ */
60
+ it("fails when a language does not load, and runs no rule that would read it as empty", async () => {
61
+ const found = await problems({
62
+ name: "web",
63
+ locales: ["en", "pt-BR"],
64
+ canonical: "en",
65
+ load: (locale) => {
66
+ if (locale === "pt-BR") throw new Error("Unexpected token } in JSON at position 812");
67
+ return { translation: { a: "A" } };
68
+ },
69
+ });
70
+ expect(errors(found)).toEqual(["load pt-BR -"]);
71
+ expect(found[0]?.message).toContain("position 812");
72
+ });
73
+
74
+ it("refuses a canonical language that is not in the list", async () => {
75
+ const found = await problems(bundle({ "pt-BR": { a: "A" } }));
76
+ expect(errors(found)).toEqual(["load - -"]);
77
+ });
78
+ });
79
+
80
+ describe("parity", () => {
81
+ it("names a key one language lacks, and a blank or non-string value", async () => {
82
+ const found = await problems(
83
+ bundle({
84
+ en: { nav: { home: "Home", about: "About" }, n: 3 },
85
+ "pt-BR": { nav: { home: "Início", about: " " }, n: "3" },
86
+ }),
87
+ );
88
+ expect(errors(found).sort()).toEqual(["parity en n", "parity pt-BR nav.about"]);
89
+ });
90
+
91
+ it("reads a missing key in the canonical language too", async () => {
92
+ const found = await problems(bundle({ en: {}, "pt-BR": { extra: "Extra" } }));
93
+ expect(errors(found)).toEqual(["parity en extra"]);
94
+ });
95
+
96
+ it("keeps a key whose own name holds a dot as one key", async () => {
97
+ const found = await problems(
98
+ bundle({ en: { "message.created": "Created" }, "pt-BR": { "message.created": "Criado" } }),
99
+ );
100
+ expect(found).toEqual([]);
101
+ });
102
+ });
103
+
104
+ describe("plural", () => {
105
+ /**
106
+ * Portuguese and Spanish have a `many` form for exact millions that English does not. Without
107
+ * it i18next falls back to the English catalog, so a Portuguese page read "104 mi followers"
108
+ * for exactly 104,000,000 while 15.1M on the same screen read correctly.
109
+ */
110
+ it("requires every form the language selects, and not one more", async () => {
111
+ const found = await problems(
112
+ bundle({
113
+ en: { items_one: "{{count}} item", items_other: "{{count}} items" },
114
+ "pt-BR": { items_one: "{{count}} item", items_other: "{{count}} itens" },
115
+ }),
116
+ );
117
+ expect(errors(found)).toEqual(["plural pt-BR items_many"]);
118
+ });
119
+
120
+ it("does not ask English for a form it never uses, and warns when it has one", async () => {
121
+ const found = await problems(
122
+ bundle({
123
+ en: { items_one: "{{count}} item", items_other: "{{count}} items", items_many: "lots" },
124
+ "pt-BR": {
125
+ items_one: "{{count}} item",
126
+ items_many: "{{count}} de itens",
127
+ items_other: "{{count}} itens",
128
+ },
129
+ }),
130
+ );
131
+ expect(errors(found)).toEqual([]);
132
+ expect(found.map((p) => `${p.level} ${p.locale} ${p.key}`)).toEqual(["warning en items_many"]);
133
+ });
134
+
135
+ it("accepts _zero in any language, because i18next reads it for a count of 0 in all of them", async () => {
136
+ const found = await problems(
137
+ bundle({
138
+ en: { items_zero: "No items", items_one: "One item", items_other: "{{count}} items" },
139
+ es: {
140
+ items_zero: "Nada",
141
+ items_one: "Un elemento",
142
+ items_many: "{{count}} de elementos",
143
+ items_other: "{{count}} elementos",
144
+ },
145
+ }),
146
+ );
147
+ expect(found).toEqual([]);
148
+ });
149
+
150
+ it("reads step_two as a key of its own when nothing named step_other exists", async () => {
151
+ const found = await problems(
152
+ bundle({
153
+ en: { step_one: "First", step_two: "Second" },
154
+ "pt-BR": { step_one: "Primeiro", step_two: "Segundo" },
155
+ }),
156
+ );
157
+ expect(found).toEqual([]);
158
+ });
159
+ });
160
+
161
+ describe("placeholders", () => {
162
+ it("catches a renamed placeholder, a dropped format and a lost tag", async () => {
163
+ const found = await problems(
164
+ bundle({
165
+ en: { hi: "Hi {{name}}", total: "{{amount, number}} left", link: "Read <0>the terms</0>" },
166
+ "pt-BR": { hi: "Oi {{nome}}", total: "{{amount}} restantes", link: "Leia os termos" },
167
+ }),
168
+ );
169
+ expect(errors(found).sort()).toEqual([
170
+ "placeholders pt-BR hi",
171
+ "placeholders pt-BR link",
172
+ "placeholders pt-BR total",
173
+ ]);
174
+ });
175
+
176
+ it("reads spacing inside a placeholder the way i18next does", async () => {
177
+ const found = await problems(
178
+ bundle({
179
+ en: { total: "{{amount, number}} left" },
180
+ "pt-BR": { total: "{{ amount ,number }} restantes" },
181
+ }),
182
+ );
183
+ expect(found).toEqual([]);
184
+ });
185
+
186
+ it("compares a form the canonical language lacks against its _other", async () => {
187
+ const found = await problems(
188
+ bundle({
189
+ en: { n_one: "{{count}} follower", n_other: "{{count}} followers" },
190
+ "pt-BR": {
191
+ n_one: "{{count}} seguidor",
192
+ n_many: "de seguidores",
193
+ n_other: "{{count}} seguidores",
194
+ },
195
+ }),
196
+ );
197
+ expect(errors(found)).toEqual(["placeholders pt-BR n_many"]);
198
+ });
199
+
200
+ it("lets _one drop {{count}} where it names the single thing", async () => {
201
+ const found = await problems(
202
+ bundle({
203
+ en: { mail_one: "One mailbox", mail_other: "{{count}} mailboxes" },
204
+ es: {
205
+ mail_one: "{{count}} buzón",
206
+ mail_many: "{{count}} de buzones",
207
+ mail_other: "{{count}} buzones",
208
+ },
209
+ }),
210
+ );
211
+ expect(found).toEqual([]);
212
+ });
213
+ });
214
+
215
+ describe("reserved and tags", () => {
216
+ it("refuses a placeholder t() reads as an option, unless the app fills it first", async () => {
217
+ const catalogs = {
218
+ en: { a: "Pick {{lng}}", b: "{{ns}} ok" },
219
+ "pt-BR": { a: "Escolha {{lng}}", b: "{{ns}} ok" },
220
+ };
221
+ expect(errors(await problems(bundle(catalogs))).sort()).toEqual([
222
+ "reserved en a",
223
+ "reserved en b",
224
+ "reserved pt-BR a",
225
+ "reserved pt-BR b",
226
+ ]);
227
+ const filled = await problems(bundle(catalogs, { brandVars: { ns: "Acme" } }));
228
+ expect(errors(filled).sort()).toEqual(["reserved en a", "reserved pt-BR a"]);
229
+ });
230
+
231
+ it("requires <n> tags in order and closed once, self-closing included", async () => {
232
+ const found = await problems(
233
+ bundle({
234
+ en: {
235
+ ok: "<0>a</0> <1/> <2>b</2>",
236
+ skip: "<1>a</1>",
237
+ open: "<0>a",
238
+ cross: "<0><1>a</0></1>",
239
+ },
240
+ }),
241
+ );
242
+ expect(errors(found).sort()).toEqual(["tags en cross", "tags en open", "tags en skip"]);
243
+ });
244
+
245
+ it("refuses a typed price only when asked", async () => {
246
+ const catalogs = { en: { plan: "Pro is $29 a month" } };
247
+ expect(await problems(bundle(catalogs))).toEqual([]);
248
+ const found = await problems(bundle(catalogs), { price: /\$\s?\d/ });
249
+ expect(errors(found)).toEqual(["price en plan"]);
250
+ const twice = { en: { a: "$29", b: "$49" } };
251
+ expect(errors(await problems(bundle(twice), { price: /\$\s?\d/g }))).toEqual([
252
+ "price en a",
253
+ "price en b",
254
+ ]);
255
+ });
256
+ });
257
+
258
+ describe("code", () => {
259
+ const catalogs = {
260
+ en: {
261
+ nav: { home: "Home", terms: "Read <strong>the terms</strong>" },
262
+ plan: { free: { title: "Free" }, pro: { title: "Pro" } },
263
+ items_one: "{{count}} item",
264
+ items_other: "{{count}} items",
265
+ stale: "Nobody reads this",
266
+ field: { email: "Email" },
267
+ },
268
+ };
269
+ const requests = { en: { title: "Requests" } };
270
+ const withCode = (code: Record<string, string>, extra: Partial<I18nBundle> = {}) =>
271
+ tempRoot(code).then((root): [I18nBundle, string] => [
272
+ {
273
+ name: "web",
274
+ locales: ["en"],
275
+ canonical: "en",
276
+ load: () => ({ translation: catalogs.en, requests: requests.en }),
277
+ code: ["src/**/*.{ts,tsx}"],
278
+ ...extra,
279
+ },
280
+ root,
281
+ ]);
282
+
283
+ it("finds a static key the canonical language does not have, through any binding of t", async () => {
284
+ const [b, root] = await withCode({
285
+ "src/App.tsx": [
286
+ "const { t } = useTranslation();",
287
+ 't("nav.home"); t("nav.gone");',
288
+ 'const { t: tr } = useTranslation("requests");',
289
+ 'tr("title"); tr("missing");',
290
+ 't("requests:title");',
291
+ 'console.log("nav.nope");',
292
+ ].join("\n"),
293
+ });
294
+ const found = await problems(b, { root });
295
+ expect(errors(found).sort()).toEqual([
296
+ "missing-key - nav.gone",
297
+ "missing-key - requests:missing",
298
+ ]);
299
+ expect(found.find((p) => p.key === "nav.gone")?.at).toBe("src/App.tsx:2");
300
+ });
301
+
302
+ it("downgrades a miss to a warning when a defaultValue covers it", async () => {
303
+ const [b, root] = await withCode({
304
+ "src/a.tsx": 't("nav.soon", { defaultValue: "Soon" });',
305
+ });
306
+ const found = await problems(b, { root });
307
+ expect(found.map((p) => `${p.level} ${p.rule} ${p.key}`)).toContain(
308
+ "warning missing-key nav.soon",
309
+ );
310
+ expect(errors(found)).toEqual([]);
311
+ });
312
+
313
+ it("reads a plural base as present, and a template key by its prefix", async () => {
314
+ const [b, root] = await withCode({
315
+ "src/a.tsx": [
316
+ 't("items", { count });',
317
+ "t(`plan.${id}.title`);",
318
+ "t(`plans.${id}.title`);",
319
+ "t(`field.${name}`);",
320
+ ].join("\n"),
321
+ });
322
+ expect(errors(await problems(b, { root }))).toEqual(["dynamic-key - plans.*"]);
323
+ });
324
+
325
+ it("refuses <Trans> children and markup reached through t()", async () => {
326
+ const [b, root] = await withCode({
327
+ "src/a.tsx": [
328
+ '<Trans i18nKey="nav.terms" values={{ n: a > b ? 1 : 2 }} components={[<strong key="s" />]} />',
329
+ '<Trans i18nKey="nav.terms" components={[<strong key="s" />]} />',
330
+ '<Trans i18nKey="nav.terms">Read <strong>the terms</strong></Trans>',
331
+ 't("nav.terms");',
332
+ ].join("\n"),
333
+ });
334
+ const found = await problems(b, { root });
335
+ expect(errors(found).sort()).toEqual(["markup - nav.terms", "trans-children - -"]);
336
+ expect(found.find((p) => p.rule === "trans-children")?.at).toBe("src/a.tsx:3");
337
+ });
338
+
339
+ it("skips tests and i18n folders, and counts a key built in data as a reference", async () => {
340
+ const [b, root] = await withCode({
341
+ "src/a.test.tsx": 't("nav.fromTest");',
342
+ "src/i18n/setup.ts": 't("nav.fromSetup");',
343
+ "src/menu.ts":
344
+ 'const items = [{ labelKey: "nav.home" }, { apiKey: "sk_live" }, { labelKey: "nav.away" }];',
345
+ });
346
+ expect(errors(await problems(b, { root }))).toEqual(["missing-key - nav.away"]);
347
+ });
348
+
349
+ it("lists canonical keys nothing reaches, and keeps what a key-path literal or a template tail names", async () => {
350
+ const [b, root] = await withCode({
351
+ "src/a.tsx": [
352
+ 't("nav.home"); t("nav.terms"); t("items", { count });',
353
+ 'const section = "plan.free";',
354
+ "t(`field.${name}`);",
355
+ "t(`${area}.pro.title`);",
356
+ ].join("\n"),
357
+ });
358
+ const report = await checkI18n([b], { root });
359
+ expect(report.unused.map((u) => u.key)).toEqual(["requests:title", "stale"]);
360
+ });
361
+ });
362
+
363
+ describe("server keys", () => {
364
+ it("requires every key the server can send, in every language", async () => {
365
+ const found = await problems(
366
+ bundle(
367
+ {
368
+ en: { errors: { QUOTA: "Out of quota", GONE: "Gone" } },
369
+ "pt-BR": { errors: { QUOTA: "Sem cota", GONE: "" } },
370
+ },
371
+ { serverKeys: ["errors.QUOTA", "errors.GONE", "errors.NEW"] },
372
+ ),
373
+ );
374
+ expect(errors(found).sort()).toEqual([
375
+ "parity pt-BR errors.GONE",
376
+ "server-key en errors.NEW",
377
+ "server-key pt-BR errors.NEW",
378
+ ]);
379
+ });
380
+
381
+ it("scans server source for messageKey and prefixed literals when there is no list", async () => {
382
+ const root = await tempRoot({
383
+ "api/routes.ts": [
384
+ 'throw new ApiError({ code: "Q", messageKey: "errors.QUOTA" });',
385
+ 'throw new ApiError({ code: "N", messageKey: "errors.NOPE" });',
386
+ 'throw new ApiError({ messageKey: "emails.subject" });',
387
+ 'const key = "serverErrors.late";',
388
+ ].join("\n"),
389
+ });
390
+ const found = await problems(
391
+ bundle(
392
+ { en: { errors: { QUOTA: "Out of quota" }, serverErrors: { early: "Early" } } },
393
+ { serverCode: ["api/**/*.ts"], serverKeyPrefixes: ["serverErrors."] },
394
+ ),
395
+ { root },
396
+ );
397
+ expect(errors(found).sort()).toEqual([
398
+ "server-key - errors.NOPE",
399
+ "server-key - serverErrors.late",
400
+ ]);
401
+ });
402
+ });
403
+
404
+ describe("fragments", () => {
405
+ const fragments = {
406
+ "i18n/fragments/a-nav.json": JSON.stringify({
407
+ en: { nav: { home: "Home" } },
408
+ "pt-BR": { nav: { home: "Início" } },
409
+ }),
410
+ "i18n/fragments/b-auth.json": JSON.stringify({
411
+ en: { auth: { in: "Sign in" } },
412
+ "pt-BR": { auth: { in: "Entrar" } },
413
+ }),
414
+ };
415
+
416
+ it("merges area files into one sorted catalog per language, the same bytes every run", async () => {
417
+ const root = await tempRoot(fragments);
418
+ const merged = await mergeFragments(join(root, "i18n/fragments"), ["en", "pt-BR"]);
419
+ expect(merged.errors).toEqual([]);
420
+ expect(merged.files.get("en")).toBe(
421
+ `${JSON.stringify({ auth: { in: "Sign in" }, nav: { home: "Home" } }, null, 2)}\n`,
422
+ );
423
+ });
424
+
425
+ it("keeps a list whole, since returnObjects hands it back as one value", async () => {
426
+ const verbs = { en: { run: { verbs: ["Reading", "Writing"] } } };
427
+ const root = await tempRoot({
428
+ "f/a.json": JSON.stringify(verbs),
429
+ "f/b.json": JSON.stringify(verbs),
430
+ "f/c.json": JSON.stringify({ en: { run: { count: 3 } } }),
431
+ });
432
+ const merged = await mergeFragments(join(root, "f"), ["en"]);
433
+ expect(merged.errors).toEqual(["c.json [en]: run.count must be a string, a list or an object"]);
434
+ expect(JSON.parse(merged.files.get("en") ?? "")).toEqual(verbs.en);
435
+ await writeFile(
436
+ join(root, "f/b.json"),
437
+ JSON.stringify({ en: { run: { verbs: ["Reading"] } } }),
438
+ );
439
+ expect((await mergeFragments(join(root, "f"), ["en"])).errors).toContain(
440
+ "b.json [en]: run.verbs is defined twice with different values",
441
+ );
442
+ });
443
+
444
+ it("refuses two fragments that disagree, and writes nothing", async () => {
445
+ const root = await tempRoot({
446
+ ...fragments,
447
+ "i18n/fragments/c.json": JSON.stringify({ en: { nav: { home: "Start" } }, fr: {} }),
448
+ "i18n/fragments/d.json": "{ broken",
449
+ });
450
+ const written = await writeFragments(join(root, "i18n/fragments"), join(root, "out"), [
451
+ "en",
452
+ "pt-BR",
453
+ ]);
454
+ expect(written.join("\n")).toMatch(/nav\.home is defined twice/);
455
+ expect(written.join("\n")).toMatch(/"fr" is not one of the languages/);
456
+ expect(written.join("\n")).toMatch(/^d\.json:/m);
457
+ await expect(readFile(join(root, "out/en.json"), "utf8")).rejects.toThrow();
458
+ });
459
+
460
+ it("fails the check when a derived catalog was edited by hand or never re-merged", async () => {
461
+ const root = await tempRoot(fragments);
462
+ await writeFragments(join(root, "i18n/fragments"), join(root, "i18n/locales"), ["en", "pt-BR"]);
463
+ const b: I18nBundle = {
464
+ name: "web",
465
+ locales: ["en", "pt-BR"],
466
+ canonical: "en",
467
+ fragments: { dir: "i18n/fragments", out: "i18n/locales" },
468
+ load: async (locale) => ({
469
+ translation: JSON.parse(
470
+ await readFile(join(root, `i18n/locales/${locale}.json`), "utf8"),
471
+ ) as object,
472
+ }),
473
+ };
474
+ expect(await problems(b, { root })).toEqual([]);
475
+ await writeFile(join(root, "i18n/locales/pt-BR.json"), '{ "nav": { "home": "Casa" } }\n');
476
+ const found = await problems(b, { root });
477
+ expect(errors(found)).toContain("fragments pt-BR -");
478
+ });
479
+ /**
480
+ * An app that merges at runtime with a spread — `{ ...a.en, ...b.en }` — keeps only the second
481
+ * of two fragments that share a top-level key. A deep merge would hide that from the gate.
482
+ */
483
+ it("refuses a shared top-level key when the app spreads its fragments", async () => {
484
+ const root = await tempRoot({
485
+ "f/a.json": JSON.stringify({ en: { nav: { home: "Home" } } }),
486
+ "f/b.json": JSON.stringify({ en: { nav: { about: "About" } } }),
487
+ });
488
+ expect((await mergeFragments(join(root, "f"), ["en"])).errors).toEqual([]);
489
+ const spread = await mergeFragments(join(root, "f"), ["en"], { ownTopLevel: true });
490
+ expect(spread.errors).toEqual([
491
+ 'b.json: "nav" is already a key of a.json, and a spread keeps only one of them',
492
+ ]);
493
+ const found = await problems(
494
+ bundle({ en: { nav: { about: "About" } } }, { fragments: { dir: "f", ownTopLevel: true } }),
495
+ { root },
496
+ );
497
+ expect(errors(found)).toEqual(["fragments - -"]);
498
+ });
499
+ });
500
+
501
+ describe("formatI18nReport", () => {
502
+ it("prints each problem and a last line that says whether the gate passed", async () => {
503
+ const report = await checkI18n([bundle({ en: { a: "A", b: "B" }, "pt-BR": { a: "A" } })]);
504
+ const text = formatI18nReport(report);
505
+ expect(text).toContain("✖ parity: pt-BR b missing");
506
+ expect(text.split("\n").at(-1)).toBe("✖ i18n: 1 error(s)");
507
+ expect(formatI18nReport({ problems: [], unused: [] })).toBe("✔ i18n: no errors");
508
+ });
509
+ });