@hagicode/hagi18n 0.1.0-dev.1.1.45d0d2f → 0.1.0-dev.10.1.970af26

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.
@@ -2,14 +2,9 @@ import fs from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import yaml from "js-yaml";
4
4
  import { DEFAULT_BASE_LOCALE, resolveHagi18nConfig } from "./config.js";
5
+ import { normalizeLocaleName } from "./locale-name.js";
5
6
  const PLACEHOLDER_PATTERN = /{{\s*[^}]+\s*}}/g;
6
7
  const PROTECTED_TOKEN_PATTERN = /[\uE000\uE001]/u;
7
- const LOCALE_ALIAS_MAP = new Map([
8
- ["zh", "zh-CN"],
9
- ["zh-cn", "zh-CN"],
10
- ["en", "en-US"],
11
- ["en-us", "en-US"]
12
- ]);
13
8
  function isPlainObject(value) {
14
9
  return typeof value === "object" && value !== null && !Array.isArray(value);
15
10
  }
@@ -19,16 +14,6 @@ function cloneValue(value) {
19
14
  function compareValues(left, right) {
20
15
  return JSON.stringify(left) === JSON.stringify(right);
21
16
  }
22
- export function normalizeLocaleName(value) {
23
- if (typeof value !== "string") {
24
- return null;
25
- }
26
- const trimmed = value.trim();
27
- if (!trimmed) {
28
- return null;
29
- }
30
- return LOCALE_ALIAS_MAP.get(trimmed.toLowerCase()) ?? trimmed;
31
- }
32
17
  function resolveExistingLocale(locales, requestedLocale) {
33
18
  const normalizedRequestedLocale = normalizeLocaleName(requestedLocale);
34
19
  if (!normalizedRequestedLocale) {
@@ -40,11 +25,16 @@ function resolveExistingLocale(locales, requestedLocale) {
40
25
  }
41
26
  return (locales.find((locale) => locale.toLowerCase() === normalizedRequestedLocale.toLowerCase()) ?? null);
42
27
  }
43
- function resolveTargetLocales(locales, baseLocale, targetLocales, includeBaseLocale = false) {
28
+ function resolveTargetLocales(locales, excludedLocales, targetLocales, { allowExcludedExplicitly = false, excludeExcludedByDefault = true } = {}) {
29
+ const excludedLocaleSet = new Set(excludedLocales);
44
30
  if (!targetLocales || targetLocales.length === 0) {
45
- return includeBaseLocale
46
- ? [...locales]
47
- : locales.filter((locale) => locale !== baseLocale);
31
+ const defaultTargets = excludeExcludedByDefault
32
+ ? locales.filter((locale) => !excludedLocaleSet.has(locale))
33
+ : [...locales];
34
+ if (defaultTargets.length === 0 && excludeExcludedByDefault) {
35
+ throw new Error(`No non-baseline target locales remain after excluding baseline locales: ${[...excludedLocaleSet].join(", ")}`);
36
+ }
37
+ return defaultTargets;
48
38
  }
49
39
  const resolvedTargets = [];
50
40
  for (const targetLocale of targetLocales) {
@@ -52,7 +42,7 @@ function resolveTargetLocales(locales, baseLocale, targetLocales, includeBaseLoc
52
42
  if (!resolvedLocale) {
53
43
  throw new Error(`Target locale '${targetLocale}' was not found. Available locales: ${locales.join(", ")}`);
54
44
  }
55
- if (!includeBaseLocale && resolvedLocale === baseLocale) {
45
+ if (!allowExcludedExplicitly && excludedLocaleSet.has(resolvedLocale)) {
56
46
  continue;
57
47
  }
58
48
  if (!resolvedTargets.includes(resolvedLocale)) {
@@ -177,7 +167,8 @@ export function createAuditResult(locale) {
177
167
  parseErrors: [],
178
168
  missingKeys: [],
179
169
  extraKeys: [],
180
- placeholderMismatches: []
170
+ placeholderMismatches: [],
171
+ baselineValueMatches: []
181
172
  };
182
173
  }
183
174
  export function auditHasIssues(result) {
@@ -187,7 +178,60 @@ export function auditHasIssues(result) {
187
178
  result.parseErrors.length > 0 ||
188
179
  result.missingKeys.length > 0 ||
189
180
  result.extraKeys.length > 0 ||
190
- result.placeholderMismatches.length > 0);
181
+ result.placeholderMismatches.length > 0 ||
182
+ result.baselineValueMatches.length > 0);
183
+ }
184
+ function collectStringScalars(value, prefix = [], output = new Map()) {
185
+ if (typeof value === "string") {
186
+ output.set(prefix.join("."), value);
187
+ return output;
188
+ }
189
+ if (Array.isArray(value)) {
190
+ value.forEach((item, index) => collectStringScalars(item, [...prefix, String(index)], output));
191
+ return output;
192
+ }
193
+ if (isPlainObject(value)) {
194
+ for (const [key, child] of Object.entries(value)) {
195
+ collectStringScalars(child, [...prefix, key], output);
196
+ }
197
+ }
198
+ return output;
199
+ }
200
+ function collectBaselineValueMatches(targetData, baselineDocuments, relativeFilePath) {
201
+ const targetStrings = collectStringScalars(targetData);
202
+ const baselineStrings = [...baselineDocuments.entries()].map(([locale, document]) => ({
203
+ locale,
204
+ values: collectStringScalars(document.data)
205
+ }));
206
+ const matches = [];
207
+ for (const [pathKey, value] of targetStrings.entries()) {
208
+ const matchedBaselineLocales = baselineStrings
209
+ .filter((baseline) => baseline.values.get(pathKey) === value)
210
+ .map((baseline) => baseline.locale);
211
+ if (matchedBaselineLocales.length === 0) {
212
+ continue;
213
+ }
214
+ matches.push({
215
+ file: relativeFilePath,
216
+ path: pathKey,
217
+ baselineLocales: matchedBaselineLocales,
218
+ value
219
+ });
220
+ }
221
+ return matches;
222
+ }
223
+ function resolveBaselineLocales(locales, requestedBaselineLocales) {
224
+ const resolvedBaselineLocales = [];
225
+ for (const requestedBaselineLocale of requestedBaselineLocales) {
226
+ const resolvedBaselineLocale = resolveExistingLocale(locales, requestedBaselineLocale);
227
+ if (!resolvedBaselineLocale) {
228
+ throw new Error(`Base locale '${requestedBaselineLocale}' was not found. Available locales: ${locales.join(", ")}`);
229
+ }
230
+ if (!resolvedBaselineLocales.includes(resolvedBaselineLocale)) {
231
+ resolvedBaselineLocales.push(resolvedBaselineLocale);
232
+ }
233
+ }
234
+ return resolvedBaselineLocales;
191
235
  }
192
236
  async function resolveAuditInputs(options) {
193
237
  const resolvedConfig = await resolveHagi18nConfig(options);
@@ -195,20 +239,32 @@ async function resolveAuditInputs(options) {
195
239
  if (locales.length === 0) {
196
240
  throw new Error(`No locale directories found under ${resolvedConfig.localesRoot}`);
197
241
  }
198
- const resolvedBaseLocale = resolveExistingLocale(locales, options.baseLocale ?? resolvedConfig.baseLocale ?? DEFAULT_BASE_LOCALE);
199
- if (!resolvedBaseLocale) {
200
- throw new Error(`Base locale '${options.baseLocale ?? resolvedConfig.baseLocale}' was not found. Available locales: ${locales.join(", ")}`);
242
+ const requestedBaselineLocales = options.auditBaseLocales && options.auditBaseLocales.length > 0
243
+ ? options.auditBaseLocales
244
+ : options.baseLocale
245
+ ? [options.baseLocale]
246
+ : resolvedConfig.auditBaseLocales.length > 0
247
+ ? resolvedConfig.auditBaseLocales
248
+ : [resolvedConfig.baseLocale ?? DEFAULT_BASE_LOCALE];
249
+ const resolvedBaselineLocales = resolveBaselineLocales(locales, requestedBaselineLocales);
250
+ const resolvedBaseLocale = resolvedBaselineLocales[0];
251
+ const selectedLocales = resolveTargetLocales(locales, resolvedBaselineLocales, options.targetLocales ?? resolvedConfig.targetLocales, {
252
+ allowExcludedExplicitly: false,
253
+ excludeExcludedByDefault: true
254
+ });
255
+ if (selectedLocales.length === 0) {
256
+ throw new Error(`No non-baseline target locales remain after excluding baseline locales: ${resolvedBaselineLocales.join(", ")}`);
201
257
  }
202
- const selectedLocales = resolveTargetLocales(locales, resolvedBaseLocale, options.targetLocales ?? resolvedConfig.targetLocales, true);
203
258
  return {
204
259
  config: resolvedConfig,
205
260
  locales,
206
261
  resolvedBaseLocale,
262
+ resolvedBaselineLocales,
207
263
  selectedLocales
208
264
  };
209
265
  }
210
266
  export async function auditLocaleTree(options = {}) {
211
- const { config, locales, resolvedBaseLocale, selectedLocales } = await resolveAuditInputs(options);
267
+ const { config, locales, resolvedBaseLocale, resolvedBaselineLocales, selectedLocales } = await resolveAuditInputs(options);
212
268
  const baseFiles = await walkYamlFiles(path.join(config.localesRoot, resolvedBaseLocale));
213
269
  const results = [];
214
270
  for (const locale of selectedLocales) {
@@ -222,6 +278,23 @@ export async function auditLocaleTree(options = {}) {
222
278
  try {
223
279
  const baseDocument = await readYamlLocaleFile(config.localesRoot, resolvedBaseLocale, relativeFilePath);
224
280
  const currentDocument = await readYamlLocaleFile(config.localesRoot, locale, relativeFilePath);
281
+ const baselineDocuments = new Map();
282
+ for (const baselineLocale of resolvedBaselineLocales) {
283
+ try {
284
+ const baselineDocument = await readYamlLocaleFile(config.localesRoot, baselineLocale, relativeFilePath);
285
+ baselineDocuments.set(baselineLocale, baselineDocument);
286
+ }
287
+ catch (error) {
288
+ if ((error &&
289
+ typeof error === "object" &&
290
+ "code" in error &&
291
+ error.code === "ENOENT") ||
292
+ String(error).includes("ENOENT")) {
293
+ continue;
294
+ }
295
+ throw error;
296
+ }
297
+ }
225
298
  if (PROTECTED_TOKEN_PATTERN.test(currentDocument.raw)) {
226
299
  result.filesWithProtectedTokens.push(relativeFilePath);
227
300
  }
@@ -240,6 +313,7 @@ export async function auditLocaleTree(options = {}) {
240
313
  ...differenceItem
241
314
  });
242
315
  }
316
+ result.baselineValueMatches.push(...collectBaselineValueMatches(currentDocument.data, baselineDocuments, relativeFilePath));
243
317
  }
244
318
  catch (error) {
245
319
  result.parseErrors.push({
@@ -253,6 +327,7 @@ export async function auditLocaleTree(options = {}) {
253
327
  return {
254
328
  localesRoot: config.localesRoot,
255
329
  baseLocale: resolvedBaseLocale,
330
+ baselineLocales: resolvedBaselineLocales,
256
331
  locales: selectedLocales,
257
332
  allLocales: locales,
258
333
  baseFileCount: baseFiles.length,
@@ -378,7 +453,7 @@ async function resolveMutationInputs(options, command) {
378
453
  if (!resolvedBaseLocale) {
379
454
  throw new Error(`Base locale '${options.baseLocale ?? config.baseLocale}' was not found. Available locales: ${locales.join(", ")}`);
380
455
  }
381
- const resolvedTargets = resolveTargetLocales(locales, resolvedBaseLocale, options.targetLocales ?? config.targetLocales);
456
+ const resolvedTargets = resolveTargetLocales(locales, [resolvedBaseLocale], options.targetLocales ?? config.targetLocales);
382
457
  return {
383
458
  config,
384
459
  resolvedBaseLocale,
@@ -564,6 +639,7 @@ export async function doctorLocaleTree(options = {}) {
564
639
  repoRoot: config.repoRoot,
565
640
  localesRoot: config.localesRoot,
566
641
  baseLocale: audit.baseLocale,
642
+ baselineLocales: audit.baselineLocales,
567
643
  locales: audit.locales,
568
644
  audit,
569
645
  legacyReferenceIssues,
@@ -587,6 +663,7 @@ function formatListSection(title, items, formatter = (item) => String(item)) {
587
663
  export function formatAuditSummary(summary) {
588
664
  const lines = [
589
665
  `Base locale: ${summary.baseLocale}`,
666
+ `Baseline locales: ${summary.baselineLocales.join(", ")}`,
590
667
  `Locales: ${summary.locales.join(", ")}`,
591
668
  `Files audited from base locale: ${summary.baseFileCount}`,
592
669
  ""
@@ -600,7 +677,8 @@ export function formatAuditSummary(summary) {
600
677
  ...formatListSection("Parse errors", result.parseErrors, (item) => `${item.file}: ${item.message}`),
601
678
  ...formatListSection("Missing keys", result.missingKeys, (item) => `${item.file} -> ${item.path}`),
602
679
  ...formatListSection("Extra keys", result.extraKeys, (item) => `${item.file} -> ${item.path}`),
603
- ...formatListSection("Placeholder mismatches", result.placeholderMismatches, (item) => `${item.file} -> ${item.path} | expected ${JSON.stringify(item.expected)} | actual ${JSON.stringify(item.actual)}`)
680
+ ...formatListSection("Placeholder mismatches", result.placeholderMismatches, (item) => `${item.file} -> ${item.path} | expected ${JSON.stringify(item.expected)} | actual ${JSON.stringify(item.actual)}`),
681
+ ...formatListSection("Baseline value matches", result.baselineValueMatches, (item) => `${item.file} -> ${item.path} | matches [${item.baselineLocales.join(", ")}] | value ${JSON.stringify(item.value)}`)
604
682
  ];
605
683
  if (sections.length === 0) {
606
684
  lines.push(" No issues.");
@@ -654,6 +732,7 @@ export function formatMutationSummary(summary) {
654
732
  export function formatDoctorSummary(summary) {
655
733
  const lines = [
656
734
  `Base locale: ${summary.baseLocale}`,
735
+ `Baseline locales: ${summary.baselineLocales.join(", ")}`,
657
736
  `Locales: ${summary.locales.join(", ")}`,
658
737
  `Legacy reference issues: ${summary.totals.legacyReferenceIssues}`,
659
738
  `Affected files: ${summary.totals.affectedFiles}`,
@@ -1 +1 @@
1
- {"version":3,"file":"locale-toolkit.js","sourceRoot":"","sources":["../src/locale-toolkit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"locale-toolkit.js","sourceRoot":"","sources":["../src/locale-toolkit.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "@hagicode/hagi18n",
3
- "version": "0.1.0-dev.1.1.45d0d2f",
3
+ "version": "0.1.0-dev.10.1.970af26",
4
4
  "description": "Scoped npm package foundation for HagiCode internationalization tooling.",
5
+ "license": "MIT",
5
6
  "homepage": "https://github.com/HagiCode-org/hagi18n#readme",
6
7
  "bugs": {
7
8
  "url": "https://github.com/HagiCode-org/hagi18n/issues"
@@ -23,6 +24,7 @@
23
24
  },
24
25
  "files": [
25
26
  "dist",
27
+ "skills",
26
28
  "README.md",
27
29
  "README_cn.md"
28
30
  ],
@@ -47,7 +49,7 @@
47
49
  "cli"
48
50
  ],
49
51
  "engines": {
50
- "node": ">=20"
52
+ "node": ">=24.0.0"
51
53
  },
52
54
  "publishConfig": {
53
55
  "access": "public",
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: hagi18n
3
+ description: Use when the user wants to audit, doctor, sync, prune, configure, or modify YAML locale maintenance workflows powered by @hagicode/hagi18n, including package usage in other repositories and source changes in repos/hagi18n.
4
+ ---
5
+
6
+ # Hagi18n
7
+
8
+ Use this skill when the task is to:
9
+
10
+ - run or explain the `hagi18n` CLI
11
+ - add, review, or fix a `hagi18n.yaml` configuration
12
+ - inspect locale drift, placeholder mismatches, or legacy locale references
13
+ - modify `@hagicode/hagi18n` source, tests, or release packaging in `repos/hagi18n`
14
+
15
+ ## Core rules
16
+
17
+ - Prefer package-first usage for consumer repositories: `npx @hagicode/hagi18n <command>` or the installed `hagi18n` binary.
18
+ - Run build, test, and development commands with the working directory set to `repos/hagi18n`.
19
+ - `sync` and `prune` are dry-run by default. Only add `--write` when the user explicitly wants file mutations.
20
+ - Prefer canonical locale names such as `en-US` and `zh-CN`; aliases like `en`, `en-us`, `zh`, and `zh-cn` are normalized by the toolkit, but new code and docs should use canonical names.
21
+ - Use this package for locale maintenance and repository hygiene. Do not treat it as a runtime translation loader or UI i18n framework.
22
+
23
+ ## Choose the workflow
24
+
25
+ 1. Command usage in a consumer repository -> read [`references/cli-workflows.md`](references/cli-workflows.md)
26
+ 2. Locale layout, config shape, or doctor scan behavior -> read [`references/config-and-layout.md`](references/config-and-layout.md)
27
+ 3. Source changes, tests, or package validation in `repos/hagi18n` -> read [`references/development-and-validation.md`](references/development-and-validation.md)
28
+
29
+ ## Source of truth
30
+
31
+ - CLI entry point: `src/cli.ts`
32
+ - Config loading and default rules: `src/config.ts`
33
+ - Audit, doctor, sync, and prune behavior: `src/locale-toolkit.ts`
34
+
35
+ ## References
36
+
37
+ - [`references/cli-workflows.md`](references/cli-workflows.md) - package usage, command intent, exit code expectations, and mutation safety
38
+ - [`references/config-and-layout.md`](references/config-and-layout.md) - supported locale tree layout, `hagi18n.yaml` shape, aliases, and doctor defaults
39
+ - [`references/development-and-validation.md`](references/development-and-validation.md) - repository-local scripts, source map, and expected validation after edits
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: "Hagi18n"
3
+ short_description: "Operate and modify the HagiCode YAML locale maintenance toolkit."
4
+ default_prompt: "Use $hagi18n to inspect, run, configure, or update the locale maintenance toolkit in repos/hagi18n."
5
+
6
+ policy:
7
+ allow_implicit_invocation: true
@@ -0,0 +1,62 @@
1
+ # CLI Workflows
2
+
3
+ ## Use cases
4
+
5
+ Use `@hagicode/hagi18n` when a repository stores locale files as YAML trees and needs a maintenance workflow instead of ad hoc scripts.
6
+
7
+ Common goals:
8
+
9
+ - audit locale drift against a canonical base locale
10
+ - scan the repository for legacy locale references
11
+ - fill in missing files or keys safely
12
+ - prune files or keys that no longer exist in the base locale
13
+
14
+ ## Preferred invocation
15
+
16
+ In a consumer repository:
17
+
18
+ ```bash
19
+ npx @hagicode/hagi18n audit --config hagi18n.yaml
20
+ ```
21
+
22
+ If the package is already installed:
23
+
24
+ ```bash
25
+ hagi18n doctor --config hagi18n.yaml
26
+ ```
27
+
28
+ For development against the local source tree in `repos/hagi18n`:
29
+
30
+ ```bash
31
+ cd repos/hagi18n
32
+ npm run dev -- audit --locales-root ../some-app/src/locales --base-locale en-US
33
+ ```
34
+
35
+ ## Command intent
36
+
37
+ - `info`: print package metadata and foundation status
38
+ - `audit`: compare locale files against a base locale and report drift
39
+ - `report`: run the audit flow and always print JSON
40
+ - `doctor`: run the audit flow and scan text files for legacy locale references
41
+ - `sync`: add missing files and keys from the base locale
42
+ - `prune`: remove files and keys that no longer exist in the base locale
43
+
44
+ ## Mutation safety
45
+
46
+ - `sync` and `prune` default to dry-run behavior.
47
+ - Add `--write` only when the user clearly wants files changed.
48
+ - `--dry-run` wins over `--write` if both are present.
49
+ - `--to` can be repeated to limit mutations to specific target locales.
50
+
51
+ ## Exit code expectations
52
+
53
+ - `audit`: `0` when clean, `1` when issues exist
54
+ - `report`: same behavior as `audit`, but always JSON
55
+ - `doctor`: `1` when audit issues or legacy reference issues exist
56
+ - `sync` and `prune`: `1` for parse or processing errors; planned or applied mutations still produce a structured summary
57
+
58
+ ## Working assumptions
59
+
60
+ - The toolkit expects a base locale such as `en-US`.
61
+ - Locale aliases are accepted, but output and new config should prefer canonical locale names.
62
+ - JSON mode is appropriate when another tool or agent needs machine-readable results.
@@ -0,0 +1,116 @@
1
+ # Config And Layout
2
+
3
+ ## Expected locale tree
4
+
5
+ The package works on a locale root containing per-locale directories:
6
+
7
+ ```text
8
+ src/locales/
9
+ en-US/
10
+ common.yml
11
+ features/editor.yml
12
+ zh-CN/
13
+ common.yml
14
+ features/editor.yml
15
+ ```
16
+
17
+ Supported files:
18
+
19
+ - `.yml`
20
+ - `.yaml`
21
+
22
+ Supported documents:
23
+
24
+ - top-level YAML mappings only
25
+ - nested objects
26
+ - arrays
27
+ - scalar translation leaves
28
+ - `{{placeholder}}` interpolation tokens
29
+
30
+ ## Locale normalization
31
+
32
+ The toolkit currently normalizes these aliases:
33
+
34
+ - `en`, `en-us` -> `en-US`
35
+ - `zh`, `zh-cn` -> `zh-CN`
36
+
37
+ Prefer canonical values in code, tests, and docs even though aliases resolve correctly.
38
+
39
+ ## Config file
40
+
41
+ By default the CLI looks for `hagi18n.yaml` or `hagi18n.yml` in the current working directory. Relative paths are resolved from the config file directory.
42
+
43
+ Minimal example:
44
+
45
+ ```yaml
46
+ localesRoot: src/locales
47
+ repoRoot: .
48
+ baseLocale: en-US
49
+ targetLocales:
50
+ - zh-CN
51
+ ```
52
+
53
+ Extended example:
54
+
55
+ ```yaml
56
+ localesRoot: src/locales
57
+ repoRoot: .
58
+ baseLocale: en-US
59
+ targetLocales:
60
+ - zh-CN
61
+ doctor:
62
+ excludedDirectories:
63
+ - .git
64
+ - dist
65
+ - node_modules
66
+ textFileExtensions:
67
+ - .ts
68
+ - .tsx
69
+ - .js
70
+ - .md
71
+ excludedPathPrefixes:
72
+ - src/generated/
73
+ allowlist:
74
+ legacy-language-change-call:
75
+ - src/legacy-test.ts
76
+ ```
77
+
78
+ ## Config precedence
79
+
80
+ 1. CLI flags or direct API options
81
+ 2. `hagi18n.yaml` or `hagi18n.yml`
82
+ 3. package defaults
83
+
84
+ ## Current doctor defaults
85
+
86
+ Default excluded directories:
87
+
88
+ - `.git`
89
+ - `coverage`
90
+ - `dist`
91
+ - `indexGenerator`
92
+ - `node_modules`
93
+ - `public`
94
+
95
+ Default text file extensions:
96
+
97
+ - `.cjs`
98
+ - `.js`
99
+ - `.jsx`
100
+ - `.md`
101
+ - `.mjs`
102
+ - `.ts`
103
+ - `.tsx`
104
+
105
+ Default excluded path prefixes:
106
+
107
+ - `src/generated/`
108
+
109
+ Default built-in scan rules look for:
110
+
111
+ - legacy `src/locales/en/` style paths
112
+ - `changeLanguage("en")` style canonical language switches
113
+ - `language: "en"` style canonical language literals
114
+ - `'en' | 'zh-CN'` style unions and casts
115
+
116
+ When the user needs exact behavior, inspect `src/config.ts` and use that file as the source of truth.