lingo.dev 0.116.5 → 0.117.1

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,8 +1,8 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});// ../../node_modules/.pnpm/tsup@8.3.5_@swc+core@1.13.5_jiti@2.5.1_postcss@8.5.4_tsx@4.20.3_typescript@5.8.3_yaml@2.7.0/node_modules/tsup/assets/cjs_shims.js
2
- var getImportMetaUrl = () => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.src || new URL("main.js", document.baseURI).href;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// ../../node_modules/.pnpm/tsup@8.5.1_@swc+core@1.15.3_jiti@2.6.1_postcss@8.5.6_tsx@4.20.6_typescript@5.9.3_yaml@2.8.1/node_modules/tsup/assets/cjs_shims.js
2
+ var getImportMetaUrl = () => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.tagName.toUpperCase() === "SCRIPT" ? document.currentScript.src : new URL("main.js", document.baseURI).href;
3
3
  var importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
4
4
 
5
5
 
6
6
 
7
7
  exports.importMetaUrl = importMetaUrl;
8
- //# sourceMappingURL=chunk-ZZGWAPLZ.cjs.map
8
+ //# sourceMappingURL=chunk-HTMTB46P.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/lingo.dev/lingo.dev/packages/cli/build/chunk-HTMTB46P.cjs","../../../node_modules/.pnpm/tsup@8.5.1_@swc+core@1.15.3_jiti@2.6.1_postcss@8.5.6_tsx@4.20.6_typescript@5.9.3_yaml@2.8.1/node_modules/tsup/assets/cjs_shims.js"],"names":[],"mappings":"AAAA;ACKA,IAAM,iBAAA,EAAmB,CAAA,EAAA,GACvB,OAAO,SAAA,IAAa,YAAA,EAChB,IAAI,GAAA,CAAI,CAAA,KAAA,EAAQ,UAAU,CAAA,CAAA;AAK8B;ADT4B;AACA;AACA;AACA","file":"/home/runner/work/lingo.dev/lingo.dev/packages/cli/build/chunk-HTMTB46P.cjs","sourcesContent":[null,"// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () => \n typeof document === \"undefined\" \n ? new URL(`file:${__filename}`).href \n : (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT') \n ? document.currentScript.src \n : new URL(\"main.js\", document.baseURI).href;\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n"]}
package/build/cli.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class; var _class2; var _class3; var _class4; var _class5; var _class6;
2
2
 
3
- var _chunkZZGWAPLZcjs = require('./chunk-ZZGWAPLZ.cjs');
3
+ var _chunkHTMTB46Pcjs = require('./chunk-HTMTB46P.cjs');
4
4
 
5
5
  // src/cli/index.ts
6
6
  var _dotenv = require('dotenv'); var _dotenv2 = _interopRequireDefault(_dotenv);
@@ -2171,7 +2171,7 @@ function _isMetadataKey(key) {
2171
2171
  // src/cli/loaders/android.ts
2172
2172
  var _module = require('module');
2173
2173
  var _xml2js = require('xml2js');
2174
- var require2 = _module.createRequire.call(void 0, _chunkZZGWAPLZcjs.importMetaUrl);
2174
+ var require2 = _module.createRequire.call(void 0, _chunkHTMTB46Pcjs.importMetaUrl);
2175
2175
  var sax = require2("sax");
2176
2176
  var defaultAndroidResourcesXml = `<?xml version="1.0" encoding="utf-8"?>
2177
2177
  <resources>
@@ -6809,7 +6809,7 @@ function expand_(str, isTop) {
6809
6809
  return expansions;
6810
6810
  }
6811
6811
 
6812
- // ../../node_modules/.pnpm/minimatch@10.0.3/node_modules/minimatch/dist/esm/assert-valid-pattern.js
6812
+ // ../../node_modules/.pnpm/minimatch@10.1.1/node_modules/minimatch/dist/esm/assert-valid-pattern.js
6813
6813
  var MAX_PATTERN_LENGTH = 1024 * 64;
6814
6814
  var assertValidPattern = (pattern) => {
6815
6815
  if (typeof pattern !== "string") {
@@ -6820,7 +6820,7 @@ var assertValidPattern = (pattern) => {
6820
6820
  }
6821
6821
  };
6822
6822
 
6823
- // ../../node_modules/.pnpm/minimatch@10.0.3/node_modules/minimatch/dist/esm/brace-expressions.js
6823
+ // ../../node_modules/.pnpm/minimatch@10.1.1/node_modules/minimatch/dist/esm/brace-expressions.js
6824
6824
  var posixClasses = {
6825
6825
  "[:alnum:]": ["\\p{L}\\p{Nl}\\p{Nd}", true],
6826
6826
  "[:alpha:]": ["\\p{L}\\p{Nl}", true],
@@ -6929,12 +6929,15 @@ var parseClass = (glob3, position) => {
6929
6929
  return [comb, uflag, endPos - pos, true];
6930
6930
  };
6931
6931
 
6932
- // ../../node_modules/.pnpm/minimatch@10.0.3/node_modules/minimatch/dist/esm/unescape.js
6933
- var unescape = (s, { windowsPathsNoEscape = false } = {}) => {
6934
- return windowsPathsNoEscape ? s.replace(/\[([^\/\\])\]/g, "$1") : s.replace(/((?!\\).|^)\[([^\/\\])\]/g, "$1$2").replace(/\\([^\/])/g, "$1");
6932
+ // ../../node_modules/.pnpm/minimatch@10.1.1/node_modules/minimatch/dist/esm/unescape.js
6933
+ var unescape = (s, { windowsPathsNoEscape = false, magicalBraces = true } = {}) => {
6934
+ if (magicalBraces) {
6935
+ return windowsPathsNoEscape ? s.replace(/\[([^\/\\])\]/g, "$1") : s.replace(/((?!\\).|^)\[([^\/\\])\]/g, "$1$2").replace(/\\([^\/])/g, "$1");
6936
+ }
6937
+ return windowsPathsNoEscape ? s.replace(/\[([^\/\\{}])\]/g, "$1") : s.replace(/((?!\\).|^)\[([^\/\\{}])\]/g, "$1$2").replace(/\\([^\/{}])/g, "$1");
6935
6938
  };
6936
6939
 
6937
- // ../../node_modules/.pnpm/minimatch@10.0.3/node_modules/minimatch/dist/esm/ast.js
6940
+ // ../../node_modules/.pnpm/minimatch@10.1.1/node_modules/minimatch/dist/esm/ast.js
6938
6941
  var types = /* @__PURE__ */ new Set(["!", "?", "+", "*", "@"]);
6939
6942
  var isExtglobType = (c) => types.has(c);
6940
6943
  var startNoTraversal = "(?!(?:^|/)\\.\\.?(?:$|/))";
@@ -7285,7 +7288,7 @@ var AST = class _AST {
7285
7288
  if (this.#root === this)
7286
7289
  this.#fillNegs();
7287
7290
  if (!this.type) {
7288
- const noEmpty = this.isStart() && this.isEnd();
7291
+ const noEmpty = this.isStart() && this.isEnd() && !this.#parts.some((s) => typeof s !== "string");
7289
7292
  const src = this.#parts.map((p) => {
7290
7293
  const [re, _37, hasMagic, uflag] = typeof p === "string" ? _AST.#parseGlob(p, this.#hasMagic, noEmpty) : p.toRegExpSource(allowDot);
7291
7294
  this.#hasMagic = this.#hasMagic || hasMagic;
@@ -7395,10 +7398,7 @@ var AST = class _AST {
7395
7398
  }
7396
7399
  }
7397
7400
  if (c === "*") {
7398
- if (noEmpty && glob3 === "*")
7399
- re += starNoEmpty;
7400
- else
7401
- re += star;
7401
+ re += noEmpty && glob3 === "*" ? starNoEmpty : star;
7402
7402
  hasMagic = true;
7403
7403
  continue;
7404
7404
  }
@@ -7413,12 +7413,15 @@ var AST = class _AST {
7413
7413
  }
7414
7414
  };
7415
7415
 
7416
- // ../../node_modules/.pnpm/minimatch@10.0.3/node_modules/minimatch/dist/esm/escape.js
7417
- var escape = (s, { windowsPathsNoEscape = false } = {}) => {
7416
+ // ../../node_modules/.pnpm/minimatch@10.1.1/node_modules/minimatch/dist/esm/escape.js
7417
+ var escape = (s, { windowsPathsNoEscape = false, magicalBraces = false } = {}) => {
7418
+ if (magicalBraces) {
7419
+ return windowsPathsNoEscape ? s.replace(/[?*()[\]{}]/g, "[$&]") : s.replace(/[?*()[\]\\{}]/g, "\\$&");
7420
+ }
7418
7421
  return windowsPathsNoEscape ? s.replace(/[?*()[\]]/g, "[$&]") : s.replace(/[?*()[\]\\]/g, "\\$&");
7419
7422
  };
7420
7423
 
7421
- // ../../node_modules/.pnpm/minimatch@10.0.3/node_modules/minimatch/dist/esm/index.js
7424
+ // ../../node_modules/.pnpm/minimatch@10.1.1/node_modules/minimatch/dist/esm/index.js
7422
7425
  var minimatch = (p, pattern, options = {}) => {
7423
7426
  assertValidPattern(pattern);
7424
7427
  if (!options.nocomment && pattern.charAt(0) === "#") {
@@ -8055,16 +8058,27 @@ var Minimatch = class {
8055
8058
  pp[i] = twoStar;
8056
8059
  }
8057
8060
  } else if (next === void 0) {
8058
- pp[i - 1] = prev + "(?:\\/|" + twoStar + ")?";
8061
+ pp[i - 1] = prev + "(?:\\/|\\/" + twoStar + ")?";
8059
8062
  } else if (next !== GLOBSTAR) {
8060
8063
  pp[i - 1] = prev + "(?:\\/|\\/" + twoStar + "\\/)" + next;
8061
8064
  pp[i + 1] = GLOBSTAR;
8062
8065
  }
8063
8066
  });
8064
- return pp.filter((p) => p !== GLOBSTAR).join("/");
8067
+ const filtered = pp.filter((p) => p !== GLOBSTAR);
8068
+ if (this.partial && filtered.length >= 1) {
8069
+ const prefixes = [];
8070
+ for (let i = 1; i <= filtered.length; i++) {
8071
+ prefixes.push(filtered.slice(0, i).join("/"));
8072
+ }
8073
+ return "(?:" + prefixes.join("|") + ")";
8074
+ }
8075
+ return filtered.join("/");
8065
8076
  }).join("|");
8066
8077
  const [open3, close] = set.length > 1 ? ["(?:", ")"] : ["", ""];
8067
8078
  re = "^" + open3 + re + close + "$";
8079
+ if (this.partial) {
8080
+ re = "^(?:\\/|" + open3 + re.slice(1, -1) + close + ")$";
8081
+ }
8068
8082
  if (this.negate)
8069
8083
  re = "^(?!" + re + ").+$";
8070
8084
  try {
@@ -11967,7 +11981,7 @@ async function determineAuthId(ctx) {
11967
11981
  }
11968
11982
 
11969
11983
  // src/cli/cmd/run/index.ts
11970
- var __dirname = path14.default.dirname(_url.fileURLToPath.call(void 0, _chunkZZGWAPLZcjs.importMetaUrl));
11984
+ var __dirname = path14.default.dirname(_url.fileURLToPath.call(void 0, _chunkHTMTB46Pcjs.importMetaUrl));
11971
11985
  function playSound(type) {
11972
11986
  const platform = _os2.default.platform();
11973
11987
  return new Promise((resolve) => {
@@ -13472,7 +13486,7 @@ async function renderHero2() {
13472
13486
  // package.json
13473
13487
  var package_default = {
13474
13488
  name: "lingo.dev",
13475
- version: "0.116.5",
13489
+ version: "0.117.1",
13476
13490
  description: "Lingo.dev CLI",
13477
13491
  private: false,
13478
13492
  publishConfig: {
@@ -13594,126 +13608,126 @@ var package_default = {
13594
13608
  author: "",
13595
13609
  license: "Apache-2.0",
13596
13610
  dependencies: {
13597
- "@ai-sdk/anthropic": "^1.2.11",
13598
- "@ai-sdk/google": "^1.2.19",
13599
- "@ai-sdk/mistral": "^1.2.8",
13600
- "@ai-sdk/openai": "^1.3.22",
13601
- "@babel/generator": "^7.27.1",
13602
- "@babel/parser": "^7.27.1",
13603
- "@babel/traverse": "^7.27.4",
13604
- "@babel/types": "^7.27.1",
13605
- "@biomejs/js-api": "^3.0.0",
13606
- "@biomejs/wasm-nodejs": "^2.2.4",
13607
- "@datocms/cma-client-node": "^4.0.1",
13608
- "@gitbeaker/rest": "^39.34.3",
13609
- "@inkjs/ui": "^2.0.0",
13610
- "@inquirer/prompts": "^7.8.0",
13611
+ "@ai-sdk/anthropic": "1.2.11",
13612
+ "@ai-sdk/google": "1.2.19",
13613
+ "@ai-sdk/mistral": "1.2.8",
13614
+ "@ai-sdk/openai": "1.3.22",
13615
+ "@babel/generator": "7.28.5",
13616
+ "@babel/parser": "7.28.5",
13617
+ "@babel/traverse": "7.28.5",
13618
+ "@babel/types": "7.28.5",
13619
+ "@biomejs/js-api": "3.0.0",
13620
+ "@biomejs/wasm-nodejs": "2.3.7",
13621
+ "@datocms/cma-client-node": "4.0.1",
13622
+ "@gitbeaker/rest": "39.34.3",
13623
+ "@inkjs/ui": "2.0.0",
13624
+ "@inquirer/prompts": "7.8.0",
13611
13625
  "@lingo.dev/_compiler": "workspace:*",
13612
13626
  "@lingo.dev/_locales": "workspace:*",
13613
13627
  "@lingo.dev/_react": "workspace:*",
13614
13628
  "@lingo.dev/_sdk": "workspace:*",
13615
13629
  "@lingo.dev/_spec": "workspace:*",
13616
- "@markdoc/markdoc": "^0.5.4",
13617
- "@modelcontextprotocol/sdk": "^1.5.0",
13618
- "@openrouter/ai-sdk-provider": "^0.7.1",
13619
- "@paralleldrive/cuid2": "^2.2.2",
13620
- "@types/ejs": "^3.1.5",
13621
- ai: "^4.3.15",
13622
- bitbucket: "^2.12.0",
13623
- chalk: "^5.4.1",
13624
- chokidar: "^4.0.3",
13625
- "cli-progress": "^3.12.0",
13626
- "cli-table3": "^0.6.5",
13627
- cors: "^2.8.5",
13628
- "csv-parse": "^5.6.0",
13629
- "csv-stringify": "^6.5.2",
13630
- "date-fns": "^4.1.0",
13631
- dedent: "^1.5.3",
13632
- diff: "^7.0.0",
13633
- dotenv: "^16.4.7",
13634
- ejs: "^3.1.10",
13635
- express: "^5.1.0",
13636
- "external-editor": "^3.1.0",
13637
- figlet: "^1.8.2",
13638
- flat: "^6.0.1",
13639
- "gettext-parser": "^8.0.0",
13640
- glob: "<11.0.0",
13641
- "gradient-string": "^3.0.0",
13642
- "gray-matter": "^4.0.3",
13643
- ini: "^5.0.0",
13644
- ink: "^4.2.0",
13645
- "ink-progress-bar": "^3.0.0",
13646
- "ink-spinner": "^5.0.0",
13647
- inquirer: "^12.6.0",
13648
- "interactive-commander": "^0.5.194",
13649
- "is-url": "^1.2.4",
13650
- jsdom: "^25.0.1",
13651
- json5: "^2.2.3",
13652
- "jsonc-parser": "^3.3.1",
13653
- jsonrepair: "^3.11.2",
13654
- listr2: "^8.3.2",
13655
- lodash: "^4.17.21",
13656
- marked: "^15.0.6",
13657
- "mdast-util-from-markdown": "^2.0.2",
13658
- "mdast-util-gfm": "^3.1.0",
13659
- "micromark-extension-gfm": "^3.0.0",
13660
- "node-machine-id": "^1.1.12",
13661
- "node-webvtt": "^1.9.4",
13662
- "object-hash": "^3.0.0",
13663
- octokit: "^4.0.2",
13664
- "ollama-ai-provider": "^1.2.0",
13665
- open: "^10.2.0",
13666
- ora: "^8.1.1",
13667
- "p-limit": "^6.2.0",
13668
- "php-array-reader": "^2.1.2",
13669
- plist: "^3.1.0",
13670
- "posthog-node": "^5.8.1",
13671
- prettier: "^3.6.2",
13672
- react: "^18.3.1",
13673
- "rehype-stringify": "^10.0.1",
13674
- "remark-disable-tokenizers": "^1.1.1",
13675
- "remark-frontmatter": "^5.0.0",
13676
- "remark-gfm": "^4.0.1",
13677
- "remark-mdx": "^3.1.0",
13678
- "remark-mdx-frontmatter": "^5.1.0",
13679
- "remark-parse": "^11.0.0",
13680
- "remark-rehype": "^11.1.2",
13681
- "remark-stringify": "^11.0.0",
13682
- sax: "^1.4.1",
13683
- "srt-parser-2": "^1.2.3",
13684
- unified: "^11.0.5",
13685
- "unist-util-visit": "^5.0.0",
13686
- vfile: "^6.0.3",
13687
- xliff: "^6.2.1",
13688
- xml2js: "^0.6.2",
13689
- xpath: "^0.0.34",
13690
- yaml: "^2.7.0",
13691
- zod: "^3.25.76"
13630
+ "@markdoc/markdoc": "0.5.4",
13631
+ "@modelcontextprotocol/sdk": "1.22.0",
13632
+ "@openrouter/ai-sdk-provider": "0.7.1",
13633
+ "@paralleldrive/cuid2": "2.2.2",
13634
+ "@types/ejs": "3.1.5",
13635
+ ai: "4.3.15",
13636
+ bitbucket: "2.12.0",
13637
+ chalk: "5.6.2",
13638
+ chokidar: "4.0.3",
13639
+ "cli-progress": "3.12.0",
13640
+ "cli-table3": "0.6.5",
13641
+ cors: "2.8.5",
13642
+ "csv-parse": "5.6.0",
13643
+ "csv-stringify": "6.6.0",
13644
+ "date-fns": "4.1.0",
13645
+ dedent: "1.7.0",
13646
+ diff: "7.0.0",
13647
+ dotenv: "16.4.7",
13648
+ ejs: "3.1.10",
13649
+ express: "5.1.0",
13650
+ "external-editor": "3.1.0",
13651
+ figlet: "1.9.4",
13652
+ flat: "6.0.1",
13653
+ "gettext-parser": "8.0.0",
13654
+ glob: "11.1.0",
13655
+ "gradient-string": "3.0.0",
13656
+ "gray-matter": "4.0.3",
13657
+ ini: "5.0.0",
13658
+ ink: "4.2.0",
13659
+ "ink-progress-bar": "3.0.0",
13660
+ "ink-spinner": "5.0.0",
13661
+ inquirer: "12.6.0",
13662
+ "interactive-commander": "0.5.194",
13663
+ "is-url": "1.2.4",
13664
+ jsdom: "25.0.1",
13665
+ json5: "2.2.3",
13666
+ "jsonc-parser": "3.3.1",
13667
+ jsonrepair: "3.13.1",
13668
+ listr2: "8.3.2",
13669
+ lodash: "4.17.21",
13670
+ marked: "15.0.6",
13671
+ "mdast-util-from-markdown": "2.0.2",
13672
+ "mdast-util-gfm": "3.1.0",
13673
+ "micromark-extension-gfm": "3.0.0",
13674
+ "node-machine-id": "1.1.12",
13675
+ "node-webvtt": "1.9.4",
13676
+ "object-hash": "3.0.0",
13677
+ octokit: "4.0.2",
13678
+ "ollama-ai-provider": "1.2.0",
13679
+ open: "10.2.0",
13680
+ ora: "8.1.1",
13681
+ "p-limit": "6.2.0",
13682
+ "php-array-reader": "2.1.2",
13683
+ plist: "3.1.0",
13684
+ "posthog-node": "5.14.0",
13685
+ prettier: "3.6.2",
13686
+ react: "19.2.0",
13687
+ "rehype-stringify": "10.0.1",
13688
+ "remark-disable-tokenizers": "1.1.1",
13689
+ "remark-frontmatter": "5.0.0",
13690
+ "remark-gfm": "4.0.1",
13691
+ "remark-mdx": "3.1.1",
13692
+ "remark-mdx-frontmatter": "5.2.0",
13693
+ "remark-parse": "11.0.0",
13694
+ "remark-rehype": "11.1.2",
13695
+ "remark-stringify": "11.0.0",
13696
+ sax: "1.4.3",
13697
+ "srt-parser-2": "1.2.3",
13698
+ unified: "11.0.5",
13699
+ "unist-util-visit": "5.0.0",
13700
+ vfile: "6.0.3",
13701
+ xliff: "6.2.2",
13702
+ xml2js: "0.6.2",
13703
+ xpath: "0.0.34",
13704
+ yaml: "2.8.1",
13705
+ zod: "3.25.76"
13692
13706
  },
13693
13707
  devDependencies: {
13694
- "@types/babel__generator": "^7.27.0",
13695
- "@types/chokidar": "^2.1.7",
13696
- "@types/cli-progress": "^3.11.6",
13697
- "@types/cors": "^2.8.17",
13698
- "@types/diff": "^7.0.0",
13699
- "@types/express": "^5.0.3",
13700
- "@types/figlet": "^1.7.0",
13701
- "@types/gettext-parser": "^4.0.4",
13702
- "@types/glob": "^8.1.0",
13703
- "@types/ini": "^4.1.1",
13704
- "@types/is-url": "^1.2.32",
13705
- "@types/jsdom": "^21.1.7",
13706
- "@types/lodash": "^4.17.16",
13707
- "@types/mdast": "^4.0.4",
13708
- "@types/node": "^22.10.2",
13709
- "@types/node-gettext": "^3.0.6",
13710
- "@types/object-hash": "^3.0.6",
13711
- "@types/plist": "^3.0.5",
13712
- "@types/react": "^18.3.20",
13713
- "@types/xml2js": "^0.4.14",
13714
- tsup: "^8.3.5",
13715
- typescript: "^5.8.3",
13716
- vitest: "^3.1.2"
13708
+ "@types/babel__generator": "7.27.0",
13709
+ "@types/chokidar": "2.1.7",
13710
+ "@types/cli-progress": "3.11.6",
13711
+ "@types/cors": "2.8.19",
13712
+ "@types/diff": "7.0.0",
13713
+ "@types/express": "5.0.5",
13714
+ "@types/figlet": "1.7.0",
13715
+ "@types/gettext-parser": "4.0.4",
13716
+ "@types/glob": "8.1.0",
13717
+ "@types/ini": "4.1.1",
13718
+ "@types/is-url": "1.2.32",
13719
+ "@types/jsdom": "21.1.7",
13720
+ "@types/lodash": "4.17.21",
13721
+ "@types/mdast": "4.0.4",
13722
+ "@types/node": "22.10.2",
13723
+ "@types/node-gettext": "3.0.6",
13724
+ "@types/object-hash": "3.0.6",
13725
+ "@types/plist": "3.0.5",
13726
+ "@types/react": "19.2.7",
13727
+ "@types/xml2js": "0.4.14",
13728
+ tsup: "8.5.1",
13729
+ typescript: "5.9.3",
13730
+ vitest: "3.1.2"
13717
13731
  },
13718
13732
  engines: {
13719
13733
  node: ">=18"