@langapi/mcp-server 1.0.6 → 1.0.7

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/locale-detection/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,MAAM,WAAW,UAAU;IACzB,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,2CAA2C;IAC3C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,+BAA+B;IAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,2BAA2B;IAC3B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,wCAAwC;IACxC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,eAAe,UAAO,GACrB,OAAO,CAAC,qBAAqB,CAAC,CAgChC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/locale-detection/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,MAAM,WAAW,UAAU;IACzB,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,2CAA2C;IAC3C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,+BAA+B;IAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,2BAA2B;IAC3B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,wCAAwC;IACxC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,eAAe,UAAO,GACrB,OAAO,CAAC,qBAAqB,CAAC,CAgChC"}
@@ -8,6 +8,7 @@ import { join, basename, dirname, relative } from "path";
8
8
  import { existsSync } from "fs";
9
9
  import { FRAMEWORK_PATTERNS, isLikelyLanguageCode, } from "./patterns.js";
10
10
  import { countKeys, parseJsonSafe } from "../utils/json-parser.js";
11
+ import { getLocaleFileExtension } from "../utils/arb-parser.js";
11
12
  /**
12
13
  * Detect i18n framework and locale files in a project
13
14
  */
@@ -139,15 +140,23 @@ async function groupByLanguage(projectPath, files, includeKeyCount) {
139
140
  }
140
141
  /**
141
142
  * Extract language code from file path
142
- * Supports patterns like: /locales/en.json, /messages/en/common.json, /public/locales/en/translation.json
143
+ * Supports patterns like:
144
+ * - /locales/en.json, /messages/en/common.json, /public/locales/en/translation.json
145
+ * - /lib/l10n/app_en.arb (Flutter underscore pattern)
143
146
  */
144
147
  function extractLanguageFromPath(filePath) {
145
148
  const parts = filePath.split("/");
146
- const fileName = basename(filePath, ".json");
147
- // Check if filename is a language code (e.g., en.json)
149
+ const ext = getLocaleFileExtension(filePath);
150
+ const fileName = basename(filePath, ext);
151
+ // Check if filename is a language code (e.g., en.json, en.arb)
148
152
  if (isLikelyLanguageCode(fileName)) {
149
153
  return fileName;
150
154
  }
155
+ // Check Flutter-style underscore pattern (e.g., app_en.arb, intl_de.arb)
156
+ const underscoreMatch = fileName.match(/_([a-z]{2}(?:-[A-Z]{2})?)$/);
157
+ if (underscoreMatch && isLikelyLanguageCode(underscoreMatch[1])) {
158
+ return underscoreMatch[1];
159
+ }
151
160
  // Check parent directories for language code
152
161
  for (let i = parts.length - 2; i >= 0; i--) {
153
162
  if (isLikelyLanguageCode(parts[i])) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/locale-detection/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/locale-detection/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../src/locale-detection/patterns.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,qCAAqC;IACrC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAmE/D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,UAoDjC,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOzD"}
1
+ {"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../src/locale-detection/patterns.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,qCAAqC;IACrC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAkF/D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,UAoDjC,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOzD"}
@@ -52,6 +52,17 @@ export const FRAMEWORK_PATTERNS = {
52
52
  ],
53
53
  configPattern: /react-intl|IntlProvider|formatMessage/,
54
54
  },
55
+ flutter: {
56
+ configFiles: ["pubspec.yaml", "l10n.yaml", "lib/l10n.dart"],
57
+ localeGlobs: [
58
+ "lib/l10n/*.arb",
59
+ "l10n/*.arb",
60
+ "assets/l10n/*.arb",
61
+ "assets/translations/*.arb",
62
+ "lib/src/l10n/*.arb",
63
+ ],
64
+ configPattern: /flutter_localizations|intl|flutter_gen/,
65
+ },
55
66
  generic: {
56
67
  configFiles: [],
57
68
  localeGlobs: [
@@ -66,6 +77,10 @@ export const FRAMEWORK_PATTERNS = {
66
77
  "src/lang/*.json",
67
78
  "src/messages/*.json",
68
79
  "public/locales/*.json",
80
+ // ARB files (Flutter)
81
+ "lib/l10n/*.arb",
82
+ "l10n/*.arb",
83
+ "locales/*.arb",
69
84
  ],
70
85
  },
71
86
  };
@@ -1 +1 @@
1
- {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../src/locale-detection/patterns.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,MAAM,CAAC,MAAM,kBAAkB,GAAqC;IAClE,WAAW,EAAE;QACX,WAAW,EAAE;YACX,gBAAgB;YAChB,iBAAiB;YACjB,gBAAgB;YAChB,SAAS;YACT,SAAS;YACT,aAAa;YACb,aAAa;SACd;QACD,WAAW,EAAE;YACX,iBAAiB;YACjB,mBAAmB;YACnB,gBAAgB;YAChB,kBAAkB;YAClB,qBAAqB;YACrB,oBAAoB;SACrB;QACD,aAAa,EAAE,uDAAuD;KACvE;IACD,OAAO,EAAE;QACP,WAAW,EAAE;YACX,SAAS;YACT,SAAS;YACT,mBAAmB;YACnB,mBAAmB;YACnB,wBAAwB;YACxB,mBAAmB;YACnB,mBAAmB;SACpB;QACD,WAAW,EAAE;YACX,yBAAyB;YACzB,kBAAkB;YAClB,sBAAsB;YACtB,yBAAyB;YACzB,2BAA2B;YAC3B,uBAAuB;SACxB;QACD,aAAa,EAAE,oCAAoC;KACpD;IACD,YAAY,EAAE;QACZ,WAAW,EAAE,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,aAAa,CAAC;QACtE,WAAW,EAAE;YACX,iBAAiB;YACjB,oBAAoB;YACpB,aAAa;YACb,sBAAsB;SACvB;QACD,aAAa,EAAE,uCAAuC;KACvD;IACD,OAAO,EAAE;QACP,WAAW,EAAE,EAAE;QACf,WAAW,EAAE;YACX,gBAAgB;YAChB,qBAAqB;YACrB,aAAa;YACb,aAAa;YACb,iBAAiB;YACjB,oBAAoB;YACpB,yBAAyB;YACzB,iBAAiB;YACjB,iBAAiB;YACjB,qBAAqB;YACrB,uBAAuB;SACxB;KACF;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,eAAe;IACf,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;CACR,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,0BAA0B;IAC1B,IAAI,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,wEAAwE;IACxE,OAAO,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../src/locale-detection/patterns.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,MAAM,CAAC,MAAM,kBAAkB,GAAqC;IAClE,WAAW,EAAE;QACX,WAAW,EAAE;YACX,gBAAgB;YAChB,iBAAiB;YACjB,gBAAgB;YAChB,SAAS;YACT,SAAS;YACT,aAAa;YACb,aAAa;SACd;QACD,WAAW,EAAE;YACX,iBAAiB;YACjB,mBAAmB;YACnB,gBAAgB;YAChB,kBAAkB;YAClB,qBAAqB;YACrB,oBAAoB;SACrB;QACD,aAAa,EAAE,uDAAuD;KACvE;IACD,OAAO,EAAE;QACP,WAAW,EAAE;YACX,SAAS;YACT,SAAS;YACT,mBAAmB;YACnB,mBAAmB;YACnB,wBAAwB;YACxB,mBAAmB;YACnB,mBAAmB;SACpB;QACD,WAAW,EAAE;YACX,yBAAyB;YACzB,kBAAkB;YAClB,sBAAsB;YACtB,yBAAyB;YACzB,2BAA2B;YAC3B,uBAAuB;SACxB;QACD,aAAa,EAAE,oCAAoC;KACpD;IACD,YAAY,EAAE;QACZ,WAAW,EAAE,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,aAAa,CAAC;QACtE,WAAW,EAAE;YACX,iBAAiB;YACjB,oBAAoB;YACpB,aAAa;YACb,sBAAsB;SACvB;QACD,aAAa,EAAE,uCAAuC;KACvD;IACD,OAAO,EAAE;QACP,WAAW,EAAE,CAAC,cAAc,EAAE,WAAW,EAAE,eAAe,CAAC;QAC3D,WAAW,EAAE;YACX,gBAAgB;YAChB,YAAY;YACZ,mBAAmB;YACnB,2BAA2B;YAC3B,oBAAoB;SACrB;QACD,aAAa,EAAE,wCAAwC;KACxD;IACD,OAAO,EAAE;QACP,WAAW,EAAE,EAAE;QACf,WAAW,EAAE;YACX,gBAAgB;YAChB,qBAAqB;YACrB,aAAa;YACb,aAAa;YACb,iBAAiB;YACjB,oBAAoB;YACpB,yBAAyB;YACzB,iBAAiB;YACjB,iBAAiB;YACjB,qBAAqB;YACrB,uBAAuB;YACvB,sBAAsB;YACtB,gBAAgB;YAChB,YAAY;YACZ,eAAe;SAChB;KACF;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,eAAe;IACf,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;CACR,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,0BAA0B;IAC1B,IAAI,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,wEAAwE;IACxE,OAAO,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5C,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * list_local_locales MCP Tool
3
- * Scans project for locale JSON files and detects i18n framework
3
+ * Scans project for locale files (JSON and ARB) and detects i18n framework
4
4
  */
5
5
  import { z } from "zod";
6
6
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * list_local_locales MCP Tool
3
- * Scans project for locale JSON files and detects i18n framework
3
+ * Scans project for locale files (JSON and ARB) and detects i18n framework
4
4
  */
5
5
  import { z } from "zod";
6
6
  import { detectLocales } from "../locale-detection/index.js";
@@ -19,7 +19,7 @@ const ListLocalLocalesSchema = z.object({
19
19
  * Register the list_local_locales tool with the MCP server
20
20
  */
21
21
  export function registerListLocalLocales(server) {
22
- server.tool("list_local_locales", "Scan project for locale JSON files, detect i18n framework (next-intl, i18next, react-intl, generic), and return structured information about available translations.", ListLocalLocalesSchema.shape, async (args) => {
22
+ server.tool("list_local_locales", "Scan project for locale files (JSON and ARB), detect i18n framework (next-intl, i18next, react-intl, flutter, generic), and return structured information about available translations.", ListLocalLocalesSchema.shape, async (args) => {
23
23
  const input = ListLocalLocalesSchema.parse(args);
24
24
  const projectPath = input.project_path || process.cwd();
25
25
  const result = await detectLocales(projectPath, input.include_key_count);
@@ -1 +1 @@
1
- {"version":3,"file":"list-local-locales.js","sourceRoot":"","sources":["../../src/tools/list-local-locales.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,eAAe;AACf,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,0EAA0E,CAC3E;IACH,iBAAiB,EAAE,CAAC;SACjB,OAAO,EAAE;SACT,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,2CAA2C,CAAC;CACzD,CAAC,CAAC;AAsBH;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAiB;IACxD,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,sKAAsK,EACtK,sBAAsB,CAAC,KAAK,EAC5B,KAAK,EAAE,IAAI,EAA+D,EAAE;QAC1E,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAExD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAEzE,MAAM,MAAM,GAA2B;YACrC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,WAAW,EAAE,MAAM,CAAC,UAAU;YAC9B,YAAY,EAAE,MAAM,CAAC,WAAW;YAChC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACvC,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACjC,IAAI,EAAE,IAAI,CAAC,YAAY;oBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,SAAS,EAAE,IAAI,CAAC,QAAQ;iBACzB,CAAC,CAAC;gBACH,UAAU,EAAE,MAAM,CAAC,SAAS;aAC7B,CAAC,CAAC;YACH,WAAW,EAAE,MAAM,CAAC,UAAU;SAC/B,CAAC;QAEF,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"list-local-locales.js","sourceRoot":"","sources":["../../src/tools/list-local-locales.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,eAAe;AACf,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,0EAA0E,CAC3E;IACH,iBAAiB,EAAE,CAAC;SACjB,OAAO,EAAE;SACT,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,2CAA2C,CAAC;CACzD,CAAC,CAAC;AAsBH;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAiB;IACxD,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,yLAAyL,EACzL,sBAAsB,CAAC,KAAK,EAC5B,KAAK,EAAE,IAAI,EAA+D,EAAE;QAC1E,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAExD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAEzE,MAAM,MAAM,GAA2B;YACrC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,WAAW,EAAE,MAAM,CAAC,UAAU;YAC9B,YAAY,EAAE,MAAM,CAAC,WAAW;YAChC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACvC,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACjC,IAAI,EAAE,IAAI,CAAC,YAAY;oBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,SAAS,EAAE,IAAI,CAAC,QAAQ;iBACzB,CAAC,CAAC;gBACH,UAAU,EAAE,MAAM,CAAC,SAAS;aAC7B,CAAC,CAAC;YACH,WAAW,EAAE,MAAM,CAAC,UAAU;SAC/B,CAAC;QAEF,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sync-translations.d.ts","sourceRoot":"","sources":["../../src/tools/sync-translations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0BzE,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;EAqB1B,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAwM3E;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAunBhE"}
1
+ {"version":3,"file":"sync-translations.d.ts","sourceRoot":"","sources":["../../src/tools/sync-translations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgCzE,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;EAqB1B,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAiN3E;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmpBhE"}
@@ -7,6 +7,7 @@ import { readFile, writeFile, mkdir } from "fs/promises";
7
7
  import { dirname, resolve } from "path";
8
8
  import { detectLocales } from "../locale-detection/index.js";
9
9
  import { flattenJson, unflattenJson, parseJsonSafe, } from "../utils/json-parser.js";
10
+ import { isArbFile, parseArbContent, mergeArbContent, getLocaleFileExtension, } from "../utils/arb-parser.js";
10
11
  import { parseJsonWithFormat, stringifyWithFormat, } from "../utils/format-preserve.js";
11
12
  import { LangAPIClient } from "../api/client.js";
12
13
  import { isApiKeyConfigured } from "../config/env.js";
@@ -110,22 +111,29 @@ function removeExtraKeys(targetObj, sourceKeys) {
110
111
  /**
111
112
  * Compute target file path by replacing source language with target language.
112
113
  * Handles both directory-based (locales/en/file.json) and flat (locales/en.json) structures.
114
+ * Also supports Flutter ARB files with underscore naming (app_en.arb → app_ko.arb).
113
115
  */
114
116
  function computeTargetFilePath(sourcePath, sourceLang, targetLang) {
117
+ const ext = getLocaleFileExtension(sourcePath);
115
118
  // Try directory-based replacement first: /en/ → /ko/
116
119
  const dirPattern = `/${sourceLang}/`;
117
120
  if (sourcePath.includes(dirPattern)) {
118
121
  return sourcePath.replace(dirPattern, `/${targetLang}/`);
119
122
  }
120
- // Try flat file replacement: /en.json → /ko.json
121
- const filePattern = `/${sourceLang}.json`;
123
+ // Try flat file replacement: /en.json → /ko.json or /en.arb → /ko.arb
124
+ const filePattern = `/${sourceLang}${ext}`;
122
125
  if (sourcePath.endsWith(filePattern)) {
123
- return sourcePath.slice(0, -filePattern.length) + `/${targetLang}.json`;
126
+ return sourcePath.slice(0, -filePattern.length) + `/${targetLang}${ext}`;
124
127
  }
125
128
  // Try filename with prefix: messages.en.json → messages.ko.json
126
- const prefixPattern = `.${sourceLang}.json`;
129
+ const prefixPattern = `.${sourceLang}${ext}`;
127
130
  if (sourcePath.endsWith(prefixPattern)) {
128
- return sourcePath.slice(0, -prefixPattern.length) + `.${targetLang}.json`;
131
+ return sourcePath.slice(0, -prefixPattern.length) + `.${targetLang}${ext}`;
132
+ }
133
+ // Try Flutter-style underscore pattern: app_en.arb → app_ko.arb
134
+ const underscorePattern = `_${sourceLang}${ext}`;
135
+ if (sourcePath.endsWith(underscorePattern)) {
136
+ return sourcePath.slice(0, -underscorePattern.length) + `_${targetLang}${ext}`;
129
137
  }
130
138
  // Cannot determine target path
131
139
  return null;
@@ -171,12 +179,24 @@ export function registerSyncTranslations(server) {
171
179
  const content = await readFile(file.path, "utf-8");
172
180
  const parsed = parseJsonWithFormat(content);
173
181
  if (parsed) {
174
- const flatContent = flattenJson(parsed.data);
182
+ let flatContent;
183
+ let arbMetadata;
184
+ if (isArbFile(file.path)) {
185
+ // ARB file: extract translatable keys only, preserve metadata
186
+ const arbContent = parseArbContent(parsed.data);
187
+ flatContent = arbContent.translatableKeys;
188
+ arbMetadata = arbContent.metadata;
189
+ }
190
+ else {
191
+ // Regular JSON: flatten all keys
192
+ flatContent = flattenJson(parsed.data);
193
+ }
175
194
  sourceFilesData.push({
176
195
  file,
177
196
  content: parsed.data,
178
197
  flatContent,
179
198
  format: parsed.format,
199
+ arbMetadata,
180
200
  });
181
201
  }
182
202
  }
@@ -547,6 +567,7 @@ export function registerSyncTranslations(server) {
547
567
  continue;
548
568
  }
549
569
  if (input.write_to_files) {
570
+ let mergedContent;
550
571
  // Read existing target file content (if exists)
551
572
  let existingContent = {};
552
573
  try {
@@ -559,10 +580,16 @@ export function registerSyncTranslations(server) {
559
580
  catch {
560
581
  // File doesn't exist yet, start with empty object
561
582
  }
562
- // Unflatten and merge translations
563
- const newTranslations = unflattenJson(result.translations);
564
- let mergedContent = deepMerge(existingContent, newTranslations);
565
- mergedContent = removeExtraKeys(mergedContent, sourceFileKeys);
583
+ if (isArbFile(resolvedPath) && sourceFileData.arbMetadata) {
584
+ // ARB file: merge with existing, preserve metadata, update locale
585
+ mergedContent = mergeArbContent(existingContent, result.translations, sourceFileData.arbMetadata, sourceFileKeys, targetLang);
586
+ }
587
+ else {
588
+ // Regular JSON: merge and remove extra keys
589
+ const newTranslations = unflattenJson(result.translations);
590
+ mergedContent = deepMerge(existingContent, newTranslations);
591
+ mergedContent = removeExtraKeys(mergedContent, sourceFileKeys);
592
+ }
566
593
  // Write file
567
594
  await mkdir(dirname(resolvedPath), { recursive: true });
568
595
  const fileContent = stringifyWithFormat(mergedContent, sourceFileData.format);
@@ -1 +1 @@
1
- {"version":3,"file":"sync-translations.js","sourceRoot":"","sources":["../../src/tools/sync-translations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,OAAO,EAAQ,OAAO,EAAE,MAAM,MAAM,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAmB,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EACL,WAAW,EACX,aAAa,EACb,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GAEpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,aAAa,EACb,cAAc,EACd,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,eAAe;AACf,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,WAAW,EAAE,kBAAkB,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IACtF,YAAY,EAAE,wBAAwB,CAAC,QAAQ,CAAC,sIAAsI,CAAC;IACvL,OAAO,EAAE,CAAC;SACP,OAAO,EAAE;SACT,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CACP,0EAA0E,CAC3E;IACH,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,kEAAkE,CAAC;IAC/E,cAAc,EAAE,CAAC;SACd,OAAO,EAAE;SACT,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,uDAAuD,CAAC;IACpE,SAAS,EAAE,CAAC;SACT,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;SACvC,QAAQ,EAAE;SACV,QAAQ,CAAC,kEAAkE,CAAC;CAChF,CAAC,CAAC;AAqEH;;GAEG;AACH,SAAS,kBAAkB,CACzB,QAA8C,EAC9C,IAAY;IAEZ,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAClC,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAChB,MAA+B,EAC/B,MAA+B;IAE/B,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAE7B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAEhC,IACE,WAAW,KAAK,IAAI;YACpB,OAAO,WAAW,KAAK,QAAQ;YAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;YAC3B,WAAW,KAAK,IAAI;YACpB,OAAO,WAAW,KAAK,QAAQ;YAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAC3B,CAAC;YACD,sCAAsC;YACtC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CACrB,WAAsC,EACtC,WAAsC,CACvC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,gCAAgC;YAChC,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAC3B,GAA4B,EAC5B,YAAsB;IAEtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa;IAE7D,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,OAAO,GAA4B,MAAM,CAAC;QAE9C,8CAA8C;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC/D,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAA4B,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACN,wCAAwC;gBACxC,MAAM;YACR,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CACtB,SAAkC,EAClC,UAAuB;IAEvB,yCAAyC;IACzC,MAAM,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IAE1C,iDAAiD;IACjD,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,oBAAoB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAC5B,UAAkB,EAClB,UAAkB,EAClB,UAAkB;IAElB,qDAAqD;IACrD,MAAM,UAAU,GAAG,IAAI,UAAU,GAAG,CAAC;IACrC,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACpC,OAAO,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,UAAU,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,iDAAiD;IACjD,MAAM,WAAW,GAAG,IAAI,UAAU,OAAO,CAAC;IAC1C,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,UAAU,OAAO,CAAC;IAC1E,CAAC;IAED,gEAAgE;IAChE,MAAM,aAAa,GAAG,IAAI,UAAU,OAAO,CAAC;IAC5C,IAAI,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACvC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,UAAU,OAAO,CAAC;IAC5E,CAAC;IAED,+BAA+B;IAC/B,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAiB;IACxD,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,wWAAwW,EACxW,sBAAsB,CAAC,KAAK,EAC5B,KAAK,EAAE,IAAI,EAA+D,EAAE;QAC1E,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAExD,iCAAiC;QACjC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAoB;gBAC9B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,YAAY;oBAClB,OAAO,EACL,sEAAsE;iBACzE;aACF,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAED,iBAAiB;QACjB,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAE1D,qBAAqB;QACrB,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CACzC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,WAAW,CACpC,CAAC;QACF,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,MAAM,GAAoB;gBAC9B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,kBAAkB;oBACxB,OAAO,EAAE,oBAAoB,KAAK,CAAC,WAAW,wBAAwB;iBACvE;aACF,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAUD,MAAM,eAAe,GAAqB,EAAE,CAAC;QAE7C,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,IAA+B,CAAC,CAAC;gBACxE,eAAe,CAAC,IAAI,CAAC;oBACnB,IAAI;oBACJ,OAAO,EAAE,MAAM,CAAC,IAA+B;oBAC/C,WAAW;oBACX,MAAM,EAAE,MAAM,CAAC,MAAM;iBACtB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,gFAAgF;QAChF,MAAM,aAAa,GAA4B,EAAE,CAAC;QAClD,IAAI,YAAY,GAAe,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;QACvE,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC/C,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC;QACjC,CAAC;QAED,iCAAiC;QACjC,MAAM,WAAW,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAEhE,oCAAoC;QACpC,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAEhE,+DAA+D;QAC/D,MAAM,gBAAgB,GAAa,EAAE,CAAC;QACtC,MAAM,iBAAiB,GAAa,EAAE,CAAC;QACvC,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YAC5C,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;YAC1E,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrD,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,mDAAmD;QACnD,2DAA2D;QAC3D,MAAM,yBAAyB,GAAa,EAAE,CAAC;QAE/C,KAAK,MAAM,UAAU,IAAI,iBAAiB,EAAE,CAAC;YAC3C,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;gBAC7C,oCAAoC;gBACpC,MAAM,cAAc,GAAG,qBAAqB,CAC1C,cAAc,CAAC,IAAI,CAAC,IAAI,EACxB,KAAK,CAAC,WAAW,EACjB,UAAU,CACX,CAAC;gBAEF,4DAA4D;gBAC5D,IAAI,CAAC,cAAc,IAAI,cAAc,KAAK,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACnE,SAAS;gBACX,CAAC;gBAED,uBAAuB;gBACvB,IAAI,CAAC;oBACH,MAAM,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;gBAC1C,CAAC;gBAAC,MAAM,CAAC;oBACP,uDAAuD;oBACvD,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;wBACpD,yBAAyB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,oFAAoF;QACpF,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,yBAAyB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrH,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,4DAA4D;gBAC5D,IAAI,cAAc,GAAG,CAAC,CAAC;gBACvB,MAAM,eAAe,GAA6B,EAAE,CAAC;gBAErD,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;oBAC5C,MAAM,aAAa,GAAa,EAAE,CAAC;oBAEnC,qDAAqD;oBACrD,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;wBAC7C,MAAM,cAAc,GAAG,qBAAqB,CAC1C,cAAc,CAAC,IAAI,CAAC,IAAI,EACxB,KAAK,CAAC,WAAW,EACjB,UAAU,CACX,CAAC;wBAEF,4DAA4D;wBAC5D,IAAI,CAAC,cAAc,IAAI,cAAc,KAAK,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;4BACnE,SAAS;wBACX,CAAC;wBAED,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;wBAEnF,IAAI,CAAC;4BACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;4BACxD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;4BACtC,IAAI,MAAM,EAAE,CAAC;gCACX,MAAM,UAAU,GAAG,WAAW,CAAC,MAAiC,CAAC,CAAC;gCAClE,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gCACzF,aAAa,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;4BACnC,CAAC;wBACH,CAAC;wBAAC,MAAM,CAAC;4BACP,sCAAsC;wBACxC,CAAC;oBACH,CAAC;oBAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7B,eAAe,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC;wBAC5C,cAAc,IAAI,aAAa,CAAC,MAAM,CAAC;oBACzC,CAAC;gBACH,CAAC;gBAED,MAAM,MAAM,GAAsB;oBAChC,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE;wBACL,QAAQ,EAAE,EAAE;wBACZ,YAAY,EAAE,EAAE;wBAChB,kBAAkB,EAAE,CAAC;qBACtB;oBACD,IAAI,EAAE;wBACJ,kBAAkB,EAAE,CAAC;wBACrB,gBAAgB,EAAE,CAAC;wBACnB,eAAe,EAAE,CAAC;wBAClB,kBAAkB,EAAE,CAAC;qBACtB;oBACD,OAAO,EAAE,cAAc,GAAG,CAAC;wBACzB,CAAC,CAAC,+BAA+B,cAAc,sGAAsG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE;wBACtL,CAAC,CAAC,mDAAmD;iBACxD,CAAC;gBACF,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBACnE,CAAC;YACJ,CAAC;YACD,qFAAqF;YACrF,MAAM,OAAO,GAKR,EAAE,CAAC;YAER,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;gBACzB,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;oBAC5C,MAAM,YAAY,GAAa,EAAE,CAAC;oBAClC,IAAI,uBAAuB,GAAG,CAAC,CAAC;oBAEhC,uDAAuD;oBACvD,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;wBAC7C,2BAA2B;wBAC3B,MAAM,cAAc,GAAG,qBAAqB,CAC1C,cAAc,CAAC,IAAI,CAAC,IAAI,EACxB,KAAK,CAAC,WAAW,EACjB,UAAU,CACX,CAAC;wBAEF,4DAA4D;wBAC5D,IAAI,CAAC,cAAc,IAAI,cAAc,KAAK,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;4BACnE,SAAS;wBACX,CAAC;wBAED,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;wBAC7C,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC;4BACpD,SAAS;wBACX,CAAC;wBAED,+CAA+C;wBAC/C,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;wBAEnF,IAAI,CAAC;4BACH,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;4BAC9D,MAAM,MAAM,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;4BAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;gCACZ,SAAS;4BACX,CAAC;4BAED,kCAAkC;4BAClC,MAAM,OAAO,GAAG,eAAe,CAAC,MAAiC,EAAE,cAAc,CAAC,CAAC;4BACnF,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;4BACvE,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAiC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;4BAElG,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;gCAC/B,kDAAkD;gCAClD,MAAM,SAAS,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;gCACnD,MAAM,WAAW,GAAG,WAAW,CAAC,MAAiC,CAAC,CAAC,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;gCACxG,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gCAChC,uBAAuB,IAAI,WAAW,CAAC;4BACzC,CAAC;wBACH,CAAC;wBAAC,MAAM,CAAC;4BACP,sCAAsC;wBACxC,CAAC;oBACH,CAAC;oBAED,OAAO,CAAC,IAAI,CAAC;wBACX,QAAQ,EAAE,UAAU;wBACpB,gBAAgB,EAAE,CAAC;wBACnB,YAAY,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;wBACtE,YAAY,EAAE,uBAAuB,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS;qBAChF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;oBAC5C,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC;YAED,MAAM,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YAElE,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YAC7F,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAEpF,MAAM,MAAM,GAAsB;gBAChC,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;oBACtE,QAAQ;oBACR,gBAAgB;oBAChB,YAAY;iBACb,CAAC,CAAC;gBACH,IAAI,EAAE;oBACJ,YAAY,EAAE,CAAC;oBACf,kBAAkB,EAAE,CAAC;iBACtB;gBACD,OAAO,EAAE,iBAAiB,GAAG,CAAC;oBAC5B,CAAC,CAAC,mCAAmC,gBAAgB,oBAAoB,iBAAiB,WAAW;oBACrG,CAAC,CAAC,mDAAmD;aACxD,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAED,oBAAoB;QACpB,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;QAEtC,gDAAgD;QAChD,MAAM,iBAAiB,GAA6B,EAAE,CAAC;QAEvD,qDAAqD;QACrD,uCAAuC;QACvC,6DAA6D;QAC7D,uDAAuD;QACvD,yCAAyC;QACzC,oEAAoE;QAEpE,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,IAAI,qBAAqB,GAAG,CAAC,CAAC;QAC9B,IAAI,cAAc,GAAG,CAAC,CAAC;QAEvB,uDAAuD;QACvD,MAAM,WAAW,GAIZ,IAAI,GAAG,EAAE,CAAC;QAEf,8CAA8C;QAC9C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACtC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,oDAAoD;QACpD,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,MAAM,eAAe,GAAa,EAAE,CAAC;QAErC,2BAA2B;QAC3B,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;YAC7C,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAEnF,wDAAwD;YACxD,MAAM,eAAe,GAAG,UAAU,CAAC,aAAa,CAAC,MAAM,CACrD,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CACvC,CAAC;YAEF,0DAA0D;YAC1D,wCAAwC;YACxC,MAAM,cAAc,GAAuD,IAAI,GAAG,EAAE,CAAC;YAErF,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBAC5C,2BAA2B;gBAC3B,MAAM,cAAc,GAAG,qBAAqB,CAC1C,cAAc,CAAC,IAAI,CAAC,IAAI,EACxB,KAAK,CAAC,WAAW,EACjB,UAAU,CACX,CAAC;gBAEF,IAAI,CAAC,cAAc,IAAI,cAAc,KAAK,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACnE,SAAS;gBACX,CAAC;gBAED,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;gBAC7C,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC;oBACpD,SAAS;gBACX,CAAC;gBAED,4DAA4D;gBAC5D,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAE5D,4CAA4C;gBAC5C,IAAI,gBAAgB,GAAG,KAAK,CAAC;gBAC7B,IAAI,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;gBAC3C,IAAI,CAAC;oBACH,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;oBAC5D,gBAAgB,GAAG,IAAI,CAAC;oBACxB,MAAM,MAAM,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;oBAClD,IAAI,MAAM,EAAE,CAAC;wBACX,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,IAA+B,CAAC,CAAC;wBACvE,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;4BAC9B,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gCAC3C,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BACnC,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,qBAAqB;gBACvB,CAAC;gBAED,iCAAiC;gBACjC,IAAI,aAAoD,CAAC;gBAEzD,IAAI,aAAa,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACvC,oEAAoE;oBACpE,aAAa,GAAG,cAAc,CAAC,WAAW,CAAC;gBAC7C,CAAC;qBAAM,IAAI,CAAC,aAAa,EAAE,CAAC;oBAC1B,+CAA+C;oBAC/C,aAAa,GAAG,cAAc,CAAC,WAAW,CAAC,MAAM,CAC/C,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAC5C,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,qDAAqD;oBACrD,aAAa,GAAG,eAAe,CAAC;gBAClC,CAAC;gBAED,yBAAyB;gBACzB,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBAChE,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAC1C,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CACjC,CAAC;gBAEF,qBAAqB;gBACrB,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBACrB,MAAM,gBAAgB,GAAG,aAAa;yBACnC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;yBACvC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC3B,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAChC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;wBACrD,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;oBACnF,CAAC;gBACH,CAAC;gBAED,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/B,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;YAED,+CAA+C;YAC/C,IAAI,cAAc,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC9B,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9C,SAAS;YACX,CAAC;YAED,6EAA6E;YAC7E,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;YACxC,KAAK,MAAM,OAAO,IAAI,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC9C,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;oBAC3B,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;YAED,oCAAoC;YACpC,MAAM,aAAa,GAAG,cAAc,CAAC,WAAW,CAAC,MAAM,CACrD,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CACtC,CAAC;YAEF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9C,SAAS;YACX,CAAC;YAED,2DAA2D;YAC3D,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;YAE3D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;gBACjC,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,YAAY,EAAE,gBAAgB;gBAC9B,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC,CAAC;YAEH,mBAAmB;YACnB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACtB,uDAAuD;gBACvD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9B,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;yBACrD,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;yBACxE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;oBAEzB,MAAM,MAAM,GAA2B;wBACrC,OAAO,EAAE,KAAK;wBACd,eAAe,EAAE;4BACf,mBAAmB,EAAE,cAAc;4BACnC,aAAa,EAAE,eAAe;4BAC9B,YAAY,EAAE,gBAAgB;yBAC/B;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;4BACzB,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO;4BAC/B,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC;4BACpC,mBAAmB,EAAE,gBAAgB;4BACrC,eAAe,EAAE,QAAQ,CAAC,KAAK,CAAC,cAAc;4BAC9C,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,eAAe;4BAChD,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ;yBACpC;qBACF,CAAC;oBACF,OAAO;wBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;qBACnE,CAAC;gBACJ,CAAC;gBAED,MAAM,MAAM,GAAoB;oBAC9B,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;wBACzB,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO;wBAC/B,eAAe,EAAE,QAAQ,CAAC,KAAK,CAAC,cAAc;wBAC9C,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,eAAe;wBAChD,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ;qBACpC;iBACF,CAAC;gBACF,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBACnE,CAAC;YACJ,CAAC;YAED,6CAA6C;YAC7C,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACzC,qBAAqB,IAAI,QAAQ,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;gBAC7D,gBAAgB,IAAI,QAAQ,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;gBACvD,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;gBACnD,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9C,SAAS;YACX,CAAC;YAED,wCAAwC;YACxC,IAAI,SAAS,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC3C,gBAAgB,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;gBACnD,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;gBAErD,uCAAuC;gBACvC,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACtC,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC;oBAEnC,kEAAkE;oBAClE,MAAM,cAAc,GAAG,qBAAqB,CAC1C,cAAc,CAAC,IAAI,CAAC,IAAI,EACxB,KAAK,CAAC,WAAW,EACjB,UAAU,CACX,CAAC;oBAEF,IAAI,CAAC,cAAc,IAAI,cAAc,KAAK,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;wBACnE,SAAS;oBACX,CAAC;oBAED,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;oBAC7C,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC;wBACpD,SAAS;oBACX,CAAC;oBAED,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;wBACzB,gDAAgD;wBAChD,IAAI,eAAe,GAA4B,EAAE,CAAC;wBAClD,IAAI,CAAC;4BACH,MAAM,mBAAmB,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;4BAClE,MAAM,MAAM,GAAG,aAAa,CAAC,mBAAmB,CAAC,CAAC;4BAClD,IAAI,MAAM,EAAE,CAAC;gCACX,eAAe,GAAG,MAAiC,CAAC;4BACtD,CAAC;wBACH,CAAC;wBAAC,MAAM,CAAC;4BACP,kDAAkD;wBACpD,CAAC;wBAED,mCAAmC;wBACnC,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBAC3D,IAAI,aAAa,GAAG,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;wBAChE,aAAa,GAAG,eAAe,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;wBAE/D,aAAa;wBACb,MAAM,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;wBACxD,MAAM,WAAW,GAAG,mBAAmB,CAAC,aAAa,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;wBAC9E,MAAM,SAAS,CAAC,YAAY,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;wBAEpD,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBAEnC,8BAA8B;wBAC9B,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;wBAChD,UAAU,CAAC,gBAAgB,IAAI,MAAM,CAAC,eAAe,CAAC;wBACtD,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC9C,CAAC;yBAAM,CAAC;wBACN,mCAAmC;wBACnC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;wBAChD,UAAU,CAAC,gBAAgB,IAAI,MAAM,CAAC,eAAe,CAAC;oBACxD,CAAC;gBACH,CAAC;gBAED,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YAC3C,MAAM,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACpE,CAAC;QAED,uBAAuB;QACvB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,MAAM,GAAsB;gBAChC,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE;oBACL,QAAQ,EAAE,UAAU,CAAC,OAAO;oBAC5B,YAAY,EAAE,UAAU,CAAC,WAAW;oBACpC,kBAAkB,EAAE,UAAU,CAAC,aAAa,CAAC,MAAM;iBACpD;gBACD,IAAI,EAAE;oBACJ,kBAAkB,EAAE,qBAAqB;oBACzC,gBAAgB,EAAE,gBAAgB;oBAClC,eAAe,EAAE,cAAc;oBAC/B,kBAAkB,EAAE,cAAc,GAAG,gBAAgB;iBACtD;gBACD,OAAO,EAAE,YAAY,UAAU,CAAC,aAAa,CAAC,MAAM,wBAAwB,eAAe,CAAC,MAAM,aAAa,gBAAgB,uDAAuD;aACvL,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAED,wDAAwD;QACxD,MAAM,OAAO,GAKR,EAAE,CAAC;QAER,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC;gBACX,QAAQ,EAAE,IAAI;gBACd,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,YAAY,EAAE,iBAAiB,CAAC,IAAI,CAAC;gBACrC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;aACnF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;QAChF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC;YAC1D,CAAC,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE;YAClD,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,MAAM,GAAsB;YAChC,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,KAAK;YACd,OAAO;YACP,IAAI,EAAE;gBACJ,YAAY,EAAE,gBAAgB;gBAC9B,kBAAkB,EAAE,cAAc;aACnC;YACD,OAAO,EAAE,kBAAkB,eAAe,2BAA2B,KAAK,CAAC,YAAY,CAAC,MAAM,cAAc,UAAU,EAAE;SACzH,CAAC;QACF,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACnE,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"sync-translations.js","sourceRoot":"","sources":["../../src/tools/sync-translations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * ARB (Application Resource Bundle) parsing utilities
3
+ *
4
+ * ARB files are JSON-based localization files used by Flutter.
5
+ * They contain:
6
+ * - @@locale: the locale identifier (e.g., "en", "de")
7
+ * - Regular keys: translatable strings (e.g., "greeting": "Hello")
8
+ * - Metadata keys: start with @ (e.g., "@greeting": { description: "..." })
9
+ *
10
+ * Metadata should be preserved but NOT translated.
11
+ */
12
+ import type { KeyValue } from "../api/types.js";
13
+ /**
14
+ * Check if a file is an ARB file based on extension (case-insensitive)
15
+ */
16
+ export declare function isArbFile(filePath: string): boolean;
17
+ /**
18
+ * Get the file extension for locale files (.json or .arb)
19
+ */
20
+ export declare function getLocaleFileExtension(filePath: string): string;
21
+ /**
22
+ * Check if a key is ARB metadata (starts with @)
23
+ */
24
+ export declare function isArbMetadataKey(key: string): boolean;
25
+ /**
26
+ * Check if a key is the ARB locale identifier (@@locale)
27
+ */
28
+ export declare function isArbLocaleKey(key: string): boolean;
29
+ /**
30
+ * Parsed ARB content with translatable strings separated from metadata
31
+ */
32
+ export interface ArbContent {
33
+ /** Locale identifier from @@locale, if present */
34
+ locale: string | null;
35
+ /** Keys to translate (non-@ prefixed string values) */
36
+ translatableKeys: KeyValue[];
37
+ /** Metadata entries (@ prefixed keys with their full values preserved) */
38
+ metadata: Record<string, unknown>;
39
+ }
40
+ /**
41
+ * Separate ARB content into translatable strings and metadata
42
+ *
43
+ * @param obj - Parsed ARB JSON object
44
+ * @returns ArbContent with separated translatable keys and preserved metadata
45
+ */
46
+ export declare function parseArbContent(obj: Record<string, unknown>): ArbContent;
47
+ /**
48
+ * Reconstruct ARB file content from translations and preserved metadata
49
+ *
50
+ * The output maintains ARB conventions:
51
+ * - @@locale is set to the target locale
52
+ * - Each translatable key is followed by its @metadata if it exists
53
+ *
54
+ * @param translations - Translated key-value pairs
55
+ * @param metadata - Original metadata from source ARB file
56
+ * @param targetLocale - Target language code
57
+ * @returns Reconstructed ARB object ready to be serialized
58
+ */
59
+ export declare function reconstructArbContent(translations: KeyValue[], metadata: Record<string, unknown>, targetLocale: string): Record<string, unknown>;
60
+ /**
61
+ * Merge new translations into existing ARB content (incremental update)
62
+ *
63
+ * This function supports partial syncs by:
64
+ * - Preserving existing translations that weren't updated
65
+ * - Overriding with new translations from API
66
+ * - Using source metadata for all keys (source is authoritative for metadata)
67
+ * - Removing keys that no longer exist in source
68
+ *
69
+ * @param existingContent - Existing target ARB file content (parsed JSON)
70
+ * @param newTranslations - New/updated translations from API
71
+ * @param sourceMetadata - Metadata from source ARB file (authoritative)
72
+ * @param sourceKeys - Set of all keys in source file (to detect removed keys)
73
+ * @param targetLocale - Target language code
74
+ * @returns Merged ARB object ready to be serialized
75
+ */
76
+ export declare function mergeArbContent(existingContent: Record<string, unknown>, newTranslations: KeyValue[], sourceMetadata: Record<string, unknown>, sourceKeys: Set<string>, targetLocale: string): Record<string, unknown>;
77
+ //# sourceMappingURL=arb-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arb-parser.d.ts","sourceRoot":"","sources":["../../src/utils/arb-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;GAEG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,kDAAkD;IAClD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,uDAAuD;IACvD,gBAAgB,EAAE,QAAQ,EAAE,CAAC;IAC7B,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAuBxE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,QAAQ,EAAE,EACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,YAAY,EAAE,MAAM,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiBzB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,eAAe,EAAE,QAAQ,EAAE,EAC3B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EACvB,YAAY,EAAE,MAAM,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmCzB"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * ARB (Application Resource Bundle) parsing utilities
3
+ *
4
+ * ARB files are JSON-based localization files used by Flutter.
5
+ * They contain:
6
+ * - @@locale: the locale identifier (e.g., "en", "de")
7
+ * - Regular keys: translatable strings (e.g., "greeting": "Hello")
8
+ * - Metadata keys: start with @ (e.g., "@greeting": { description: "..." })
9
+ *
10
+ * Metadata should be preserved but NOT translated.
11
+ */
12
+ /**
13
+ * Check if a file is an ARB file based on extension (case-insensitive)
14
+ */
15
+ export function isArbFile(filePath) {
16
+ return filePath.toLowerCase().endsWith(".arb");
17
+ }
18
+ /**
19
+ * Get the file extension for locale files (.json or .arb)
20
+ */
21
+ export function getLocaleFileExtension(filePath) {
22
+ if (isArbFile(filePath))
23
+ return ".arb";
24
+ return ".json";
25
+ }
26
+ /**
27
+ * Check if a key is ARB metadata (starts with @)
28
+ */
29
+ export function isArbMetadataKey(key) {
30
+ return key.startsWith("@");
31
+ }
32
+ /**
33
+ * Check if a key is the ARB locale identifier (@@locale)
34
+ */
35
+ export function isArbLocaleKey(key) {
36
+ return key === "@@locale";
37
+ }
38
+ /**
39
+ * Separate ARB content into translatable strings and metadata
40
+ *
41
+ * @param obj - Parsed ARB JSON object
42
+ * @returns ArbContent with separated translatable keys and preserved metadata
43
+ */
44
+ export function parseArbContent(obj) {
45
+ const translatableKeys = [];
46
+ const metadata = {};
47
+ let locale = null;
48
+ for (const [key, value] of Object.entries(obj)) {
49
+ if (key === "@@locale") {
50
+ // Extract locale identifier
51
+ locale = String(value);
52
+ metadata[key] = value; // Also preserve in metadata for reconstruction
53
+ }
54
+ else if (key.startsWith("@")) {
55
+ // Metadata key - preserve as-is (including nested objects)
56
+ metadata[key] = value;
57
+ }
58
+ else {
59
+ // Translatable key - must be a string
60
+ if (typeof value === "string") {
61
+ translatableKeys.push({ key, value });
62
+ }
63
+ // Skip non-string values (shouldn't happen in valid ARB files)
64
+ }
65
+ }
66
+ return { locale, translatableKeys, metadata };
67
+ }
68
+ /**
69
+ * Reconstruct ARB file content from translations and preserved metadata
70
+ *
71
+ * The output maintains ARB conventions:
72
+ * - @@locale is set to the target locale
73
+ * - Each translatable key is followed by its @metadata if it exists
74
+ *
75
+ * @param translations - Translated key-value pairs
76
+ * @param metadata - Original metadata from source ARB file
77
+ * @param targetLocale - Target language code
78
+ * @returns Reconstructed ARB object ready to be serialized
79
+ */
80
+ export function reconstructArbContent(translations, metadata, targetLocale) {
81
+ const result = {};
82
+ // Add @@locale first (update to target locale)
83
+ result["@@locale"] = targetLocale;
84
+ // Interleave translations with their metadata
85
+ for (const { key, value } of translations) {
86
+ result[key] = value;
87
+ // Add corresponding metadata if it exists
88
+ const metaKey = `@${key}`;
89
+ if (metaKey in metadata) {
90
+ result[metaKey] = metadata[metaKey];
91
+ }
92
+ }
93
+ return result;
94
+ }
95
+ /**
96
+ * Merge new translations into existing ARB content (incremental update)
97
+ *
98
+ * This function supports partial syncs by:
99
+ * - Preserving existing translations that weren't updated
100
+ * - Overriding with new translations from API
101
+ * - Using source metadata for all keys (source is authoritative for metadata)
102
+ * - Removing keys that no longer exist in source
103
+ *
104
+ * @param existingContent - Existing target ARB file content (parsed JSON)
105
+ * @param newTranslations - New/updated translations from API
106
+ * @param sourceMetadata - Metadata from source ARB file (authoritative)
107
+ * @param sourceKeys - Set of all keys in source file (to detect removed keys)
108
+ * @param targetLocale - Target language code
109
+ * @returns Merged ARB object ready to be serialized
110
+ */
111
+ export function mergeArbContent(existingContent, newTranslations, sourceMetadata, sourceKeys, targetLocale) {
112
+ const result = {};
113
+ // Add @@locale first (update to target locale)
114
+ result["@@locale"] = targetLocale;
115
+ // Parse existing content to get current translations
116
+ const existingArb = parseArbContent(existingContent);
117
+ const existingTranslationsMap = new Map();
118
+ for (const { key, value } of existingArb.translatableKeys) {
119
+ existingTranslationsMap.set(key, value);
120
+ }
121
+ // Create map of new translations for quick lookup
122
+ const newTranslationsMap = new Map();
123
+ for (const { key, value } of newTranslations) {
124
+ newTranslationsMap.set(key, value);
125
+ }
126
+ // Process all source keys in order
127
+ // This ensures we only include keys that exist in source (removes deleted keys)
128
+ for (const key of sourceKeys) {
129
+ // Use new translation if available, otherwise keep existing, otherwise skip
130
+ const value = newTranslationsMap.get(key) ?? existingTranslationsMap.get(key);
131
+ if (value !== undefined) {
132
+ result[key] = value;
133
+ // Add metadata from source (source metadata is authoritative)
134
+ const metaKey = `@${key}`;
135
+ if (metaKey in sourceMetadata) {
136
+ result[metaKey] = sourceMetadata[metaKey];
137
+ }
138
+ }
139
+ }
140
+ return result;
141
+ }
142
+ //# sourceMappingURL=arb-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arb-parser.js","sourceRoot":"","sources":["../../src/utils/arb-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,QAAgB;IACxC,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAgB;IACrD,IAAI,SAAS,CAAC,QAAQ,CAAC;QAAE,OAAO,MAAM,CAAC;IACvC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,OAAO,GAAG,KAAK,UAAU,CAAC;AAC5B,CAAC;AAcD;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,GAA4B;IAC1D,MAAM,gBAAgB,GAAe,EAAE,CAAC;IACxC,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAC7C,IAAI,MAAM,GAAkB,IAAI,CAAC;IAEjC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YACvB,4BAA4B;YAC5B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACvB,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,+CAA+C;QACxE,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,2DAA2D;YAC3D,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,sCAAsC;YACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YACxC,CAAC;YACD,+DAA+D;QACjE,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC;AAChD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CACnC,YAAwB,EACxB,QAAiC,EACjC,YAAoB;IAEpB,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,+CAA+C;IAC/C,MAAM,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC;IAElC,8CAA8C;IAC9C,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,YAAY,EAAE,CAAC;QAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACpB,0CAA0C;QAC1C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;YACxB,MAAM,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,eAAe,CAC7B,eAAwC,EACxC,eAA2B,EAC3B,cAAuC,EACvC,UAAuB,EACvB,YAAoB;IAEpB,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,+CAA+C;IAC/C,MAAM,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC;IAElC,qDAAqD;IACrD,MAAM,WAAW,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;IACrD,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1D,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,WAAW,CAAC,gBAAgB,EAAE,CAAC;QAC1D,uBAAuB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,kDAAkD;IAClD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACrD,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,eAAe,EAAE,CAAC;QAC7C,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,mCAAmC;IACnC,gFAAgF;IAChF,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,4EAA4E;QAC5E,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9E,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACpB,8DAA8D;YAC9D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;YAC1B,IAAI,OAAO,IAAI,cAAc,EAAE,CAAC;gBAC9B,MAAM,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=arb-parser.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arb-parser.test.d.ts","sourceRoot":"","sources":["../../src/utils/arb-parser.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,243 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { isArbFile, isArbMetadataKey, isArbLocaleKey, parseArbContent, reconstructArbContent, mergeArbContent, getLocaleFileExtension, } from "./arb-parser.js";
3
+ describe("ARB Parser", () => {
4
+ describe("isArbFile", () => {
5
+ it("should return true for .arb files", () => {
6
+ expect(isArbFile("lib/l10n/app_en.arb")).toBe(true);
7
+ expect(isArbFile("/absolute/path/to/intl_de.arb")).toBe(true);
8
+ expect(isArbFile("simple.arb")).toBe(true);
9
+ });
10
+ it("should return false for non-ARB files", () => {
11
+ expect(isArbFile("locales/en.json")).toBe(false);
12
+ expect(isArbFile("file.arb.json")).toBe(false);
13
+ expect(isArbFile("file.txt")).toBe(false);
14
+ });
15
+ it("should be case-insensitive", () => {
16
+ expect(isArbFile("file.ARB")).toBe(true);
17
+ expect(isArbFile("file.Arb")).toBe(true);
18
+ expect(isArbFile("FILE.ARB")).toBe(true);
19
+ });
20
+ });
21
+ describe("getLocaleFileExtension", () => {
22
+ it("should return .arb for ARB files", () => {
23
+ expect(getLocaleFileExtension("app_en.arb")).toBe(".arb");
24
+ expect(getLocaleFileExtension("file.ARB")).toBe(".arb");
25
+ });
26
+ it("should return .json for non-ARB files", () => {
27
+ expect(getLocaleFileExtension("en.json")).toBe(".json");
28
+ expect(getLocaleFileExtension("file.txt")).toBe(".json");
29
+ expect(getLocaleFileExtension("noextension")).toBe(".json");
30
+ });
31
+ });
32
+ describe("isArbMetadataKey", () => {
33
+ it("should return true for @ prefixed keys", () => {
34
+ expect(isArbMetadataKey("@greeting")).toBe(true);
35
+ expect(isArbMetadataKey("@@locale")).toBe(true);
36
+ expect(isArbMetadataKey("@")).toBe(true);
37
+ });
38
+ it("should return false for regular keys", () => {
39
+ expect(isArbMetadataKey("greeting")).toBe(false);
40
+ expect(isArbMetadataKey("hello_world")).toBe(false);
41
+ expect(isArbMetadataKey("")).toBe(false);
42
+ });
43
+ });
44
+ describe("isArbLocaleKey", () => {
45
+ it("should return true for @@locale", () => {
46
+ expect(isArbLocaleKey("@@locale")).toBe(true);
47
+ });
48
+ it("should return false for other keys", () => {
49
+ expect(isArbLocaleKey("@locale")).toBe(false);
50
+ expect(isArbLocaleKey("@@other")).toBe(false);
51
+ expect(isArbLocaleKey("locale")).toBe(false);
52
+ });
53
+ });
54
+ describe("parseArbContent", () => {
55
+ it("should separate translatable keys from metadata", () => {
56
+ const arbData = {
57
+ "@@locale": "en",
58
+ greeting: "Hello, {name}!",
59
+ "@greeting": {
60
+ description: "A greeting message",
61
+ placeholders: {
62
+ name: { type: "String" },
63
+ },
64
+ },
65
+ farewell: "Goodbye!",
66
+ };
67
+ const result = parseArbContent(arbData);
68
+ expect(result.locale).toBe("en");
69
+ expect(result.translatableKeys).toEqual([
70
+ { key: "greeting", value: "Hello, {name}!" },
71
+ { key: "farewell", value: "Goodbye!" },
72
+ ]);
73
+ expect(result.metadata["@@locale"]).toBe("en");
74
+ expect(result.metadata["@greeting"]).toEqual({
75
+ description: "A greeting message",
76
+ placeholders: {
77
+ name: { type: "String" },
78
+ },
79
+ });
80
+ });
81
+ it("should handle ARB files without metadata", () => {
82
+ const arbData = {
83
+ "@@locale": "en",
84
+ hello: "Hello",
85
+ world: "World",
86
+ };
87
+ const result = parseArbContent(arbData);
88
+ expect(result.locale).toBe("en");
89
+ expect(result.translatableKeys).toHaveLength(2);
90
+ expect(Object.keys(result.metadata)).toEqual(["@@locale"]);
91
+ });
92
+ it("should handle ARB files without @@locale", () => {
93
+ const arbData = {
94
+ greeting: "Hello",
95
+ "@greeting": { description: "A greeting" },
96
+ };
97
+ const result = parseArbContent(arbData);
98
+ expect(result.locale).toBeNull();
99
+ expect(result.translatableKeys).toEqual([{ key: "greeting", value: "Hello" }]);
100
+ expect(result.metadata["@greeting"]).toEqual({ description: "A greeting" });
101
+ });
102
+ it("should skip non-string translatable values", () => {
103
+ const arbData = {
104
+ "@@locale": "en",
105
+ validString: "Hello",
106
+ invalidNumber: 123,
107
+ invalidObject: { nested: "value" },
108
+ "@validString": { description: "Valid" },
109
+ };
110
+ const result = parseArbContent(arbData);
111
+ expect(result.translatableKeys).toEqual([{ key: "validString", value: "Hello" }]);
112
+ });
113
+ });
114
+ describe("reconstructArbContent", () => {
115
+ it("should reconstruct ARB with updated locale and preserved metadata", () => {
116
+ const translations = [
117
+ { key: "greeting", value: "Hallo, {name}!" },
118
+ { key: "farewell", value: "Auf Wiedersehen!" },
119
+ ];
120
+ const metadata = {
121
+ "@@locale": "en",
122
+ "@greeting": { description: "A greeting message" },
123
+ };
124
+ const result = reconstructArbContent(translations, metadata, "de");
125
+ expect(result["@@locale"]).toBe("de");
126
+ expect(result["greeting"]).toBe("Hallo, {name}!");
127
+ expect(result["@greeting"]).toEqual({ description: "A greeting message" });
128
+ expect(result["farewell"]).toBe("Auf Wiedersehen!");
129
+ // farewell has no metadata, so @farewell should not exist
130
+ expect(result["@farewell"]).toBeUndefined();
131
+ });
132
+ it("should maintain key order: @@locale first, then key-metadata pairs", () => {
133
+ const translations = [
134
+ { key: "alpha", value: "Alpha" },
135
+ { key: "beta", value: "Beta" },
136
+ ];
137
+ const metadata = {
138
+ "@@locale": "en",
139
+ "@alpha": { description: "First" },
140
+ "@beta": { description: "Second" },
141
+ };
142
+ const result = reconstructArbContent(translations, metadata, "fr");
143
+ const keys = Object.keys(result);
144
+ expect(keys[0]).toBe("@@locale");
145
+ expect(keys[1]).toBe("alpha");
146
+ expect(keys[2]).toBe("@alpha");
147
+ expect(keys[3]).toBe("beta");
148
+ expect(keys[4]).toBe("@beta");
149
+ });
150
+ it("should handle empty metadata", () => {
151
+ const translations = [{ key: "hello", value: "Bonjour" }];
152
+ const metadata = { "@@locale": "en" };
153
+ const result = reconstructArbContent(translations, metadata, "fr");
154
+ expect(result["@@locale"]).toBe("fr");
155
+ expect(result["hello"]).toBe("Bonjour");
156
+ expect(Object.keys(result)).toHaveLength(2);
157
+ });
158
+ });
159
+ describe("mergeArbContent", () => {
160
+ it("should merge new translations with existing content", () => {
161
+ const existingContent = {
162
+ "@@locale": "de",
163
+ greeting: "Hallo",
164
+ "@greeting": { description: "A greeting" },
165
+ farewell: "Tschüss",
166
+ };
167
+ const newTranslations = [
168
+ { key: "greeting", value: "Hallo, {name}!" }, // Updated
169
+ ];
170
+ const sourceMetadata = {
171
+ "@@locale": "en",
172
+ "@greeting": { description: "A greeting message" },
173
+ "@farewell": { description: "A farewell" },
174
+ };
175
+ const sourceKeys = new Set(["greeting", "farewell"]);
176
+ const result = mergeArbContent(existingContent, newTranslations, sourceMetadata, sourceKeys, "de");
177
+ expect(result["@@locale"]).toBe("de");
178
+ expect(result["greeting"]).toBe("Hallo, {name}!"); // New translation
179
+ expect(result["farewell"]).toBe("Tschüss"); // Preserved existing
180
+ expect(result["@greeting"]).toEqual({ description: "A greeting message" }); // Source metadata
181
+ expect(result["@farewell"]).toEqual({ description: "A farewell" }); // Source metadata
182
+ });
183
+ it("should remove keys not in source", () => {
184
+ const existingContent = {
185
+ "@@locale": "de",
186
+ greeting: "Hallo",
187
+ oldKey: "Should be removed",
188
+ };
189
+ const newTranslations = [];
190
+ const sourceMetadata = { "@@locale": "en" };
191
+ const sourceKeys = new Set(["greeting"]); // oldKey not in source
192
+ const result = mergeArbContent(existingContent, newTranslations, sourceMetadata, sourceKeys, "de");
193
+ expect(result["greeting"]).toBe("Hallo");
194
+ expect(result["oldKey"]).toBeUndefined(); // Removed
195
+ });
196
+ it("should handle empty existing content", () => {
197
+ const existingContent = {};
198
+ const newTranslations = [
199
+ { key: "hello", value: "Bonjour" },
200
+ { key: "world", value: "Monde" },
201
+ ];
202
+ const sourceMetadata = {
203
+ "@@locale": "en",
204
+ "@hello": { description: "Hello message" },
205
+ };
206
+ const sourceKeys = new Set(["hello", "world"]);
207
+ const result = mergeArbContent(existingContent, newTranslations, sourceMetadata, sourceKeys, "fr");
208
+ expect(result["@@locale"]).toBe("fr");
209
+ expect(result["hello"]).toBe("Bonjour");
210
+ expect(result["world"]).toBe("Monde");
211
+ expect(result["@hello"]).toEqual({ description: "Hello message" });
212
+ });
213
+ it("should preserve existing translations when no new translations provided", () => {
214
+ const existingContent = {
215
+ "@@locale": "de",
216
+ greeting: "Hallo",
217
+ farewell: "Tschüss",
218
+ };
219
+ const newTranslations = [];
220
+ const sourceMetadata = { "@@locale": "en" };
221
+ const sourceKeys = new Set(["greeting", "farewell"]);
222
+ const result = mergeArbContent(existingContent, newTranslations, sourceMetadata, sourceKeys, "de");
223
+ expect(result["greeting"]).toBe("Hallo");
224
+ expect(result["farewell"]).toBe("Tschüss");
225
+ });
226
+ it("should use source metadata instead of existing metadata", () => {
227
+ const existingContent = {
228
+ "@@locale": "de",
229
+ greeting: "Hallo",
230
+ "@greeting": { description: "Old description" },
231
+ };
232
+ const newTranslations = [];
233
+ const sourceMetadata = {
234
+ "@@locale": "en",
235
+ "@greeting": { description: "New description from source" },
236
+ };
237
+ const sourceKeys = new Set(["greeting"]);
238
+ const result = mergeArbContent(existingContent, newTranslations, sourceMetadata, sourceKeys, "de");
239
+ expect(result["@greeting"]).toEqual({ description: "New description from source" });
240
+ });
241
+ });
242
+ });
243
+ //# sourceMappingURL=arb-parser.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arb-parser.test.js","sourceRoot":"","sources":["../../src/utils/arb-parser.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAEzB,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9D,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjD,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/C,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1D,MAAM,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxD,MAAM,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzD,MAAM,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjD,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,OAAO,GAAG;gBACd,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,gBAAgB;gBAC1B,WAAW,EAAE;oBACX,WAAW,EAAE,oBAAoB;oBACjC,YAAY,EAAE;wBACZ,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBACzB;iBACF;gBACD,QAAQ,EAAE,UAAU;aACrB,CAAC;YAEF,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YAExC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC;gBACtC,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,gBAAgB,EAAE;gBAC5C,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;aACvC,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC3C,WAAW,EAAE,oBAAoB;gBACjC,YAAY,EAAE;oBACZ,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBACzB;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,OAAO,GAAG;gBACd,UAAU,EAAE,IAAI;gBAChB,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,OAAO;aACf,CAAC;YAEF,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YAExC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,OAAO,GAAG;gBACd,QAAQ,EAAE,OAAO;gBACjB,WAAW,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE;aAC3C,CAAC;YAEF,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YAExC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YAC/E,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,OAAO,GAAG;gBACd,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,OAAO;gBACpB,aAAa,EAAE,GAAG;gBAClB,aAAa,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;gBAClC,cAAc,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE;aACzC,CAAC;YAEF,MAAM,MAAM,GAAG,eAAe,CAAC,OAAkC,CAAC,CAAC;YAEnE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;YAC3E,MAAM,YAAY,GAAG;gBACnB,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,gBAAgB,EAAE;gBAC5C,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,kBAAkB,EAAE;aAC/C,CAAC;YACF,MAAM,QAAQ,GAAG;gBACf,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,EAAE,WAAW,EAAE,oBAAoB,EAAE;aACnD,CAAC;YAEF,MAAM,MAAM,GAAG,qBAAqB,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YAEnE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC,CAAC;YAC3E,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACpD,0DAA0D;YAC1D,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;YAC5E,MAAM,YAAY,GAAG;gBACnB,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;gBAChC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;aAC/B,CAAC;YACF,MAAM,QAAQ,GAAG;gBACf,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE;gBAClC,OAAO,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE;aACnC,CAAC;YAEF,MAAM,MAAM,GAAG,qBAAqB,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YACnE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAEjC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,YAAY,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAC1D,MAAM,QAAQ,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;YAEtC,MAAM,MAAM,GAAG,qBAAqB,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YAEnE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,eAAe,GAAG;gBACtB,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,OAAO;gBACjB,WAAW,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE;gBAC1C,QAAQ,EAAE,SAAS;aACpB,CAAC;YACF,MAAM,eAAe,GAAG;gBACtB,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,UAAU;aACzD,CAAC;YACF,MAAM,cAAc,GAAG;gBACrB,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,EAAE,WAAW,EAAE,oBAAoB,EAAE;gBAClD,WAAW,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE;aAC3C,CAAC;YACF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;YAErD,MAAM,MAAM,GAAG,eAAe,CAC5B,eAAe,EACf,eAAe,EACf,cAAc,EACd,UAAU,EACV,IAAI,CACL,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,kBAAkB;YACrE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB;YACjE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,kBAAkB;YAC9F,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,kBAAkB;QACxF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,eAAe,GAAG;gBACtB,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,OAAO;gBACjB,MAAM,EAAE,mBAAmB;aAC5B,CAAC;YACF,MAAM,eAAe,GAA0C,EAAE,CAAC;YAClE,MAAM,cAAc,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;YAC5C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,uBAAuB;YAEjE,MAAM,MAAM,GAAG,eAAe,CAC5B,eAAe,EACf,eAAe,EACf,cAAc,EACd,UAAU,EACV,IAAI,CACL,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,UAAU;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,eAAe,GAAG,EAAE,CAAC;YAC3B,MAAM,eAAe,GAAG;gBACtB,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE;gBAClC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;aACjC,CAAC;YACF,MAAM,cAAc,GAAG;gBACrB,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE;aAC3C,CAAC;YACF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAE/C,MAAM,MAAM,GAAG,eAAe,CAC5B,eAAe,EACf,eAAe,EACf,cAAc,EACd,UAAU,EACV,IAAI,CACL,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;YACjF,MAAM,eAAe,GAAG;gBACtB,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,SAAS;aACpB,CAAC;YACF,MAAM,eAAe,GAA0C,EAAE,CAAC;YAClE,MAAM,cAAc,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;YAC5C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;YAErD,MAAM,MAAM,GAAG,eAAe,CAC5B,eAAe,EACf,eAAe,EACf,cAAc,EACd,UAAU,EACV,IAAI,CACL,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;YACjE,MAAM,eAAe,GAAG;gBACtB,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,OAAO;gBACjB,WAAW,EAAE,EAAE,WAAW,EAAE,iBAAiB,EAAE;aAChD,CAAC;YACF,MAAM,eAAe,GAA0C,EAAE,CAAC;YAClE,MAAM,cAAc,GAAG;gBACrB,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,EAAE,WAAW,EAAE,6BAA6B,EAAE;aAC5D,CAAC;YACF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YAEzC,MAAM,MAAM,GAAG,eAAe,CAC5B,eAAe,EACf,eAAe,EACf,cAAc,EACd,UAAU,EACV,IAAI,CACL,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@langapi/mcp-server",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
4
4
  "description": "MCP server for LangAPI - AI-powered translation management for i18n projects",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",