@wp-blocks/make-pot 1.0.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/README.md +75 -58
  2. package/jest.config.json +5 -1
  3. package/lib/cli/parseCli.js +11 -12
  4. package/lib/cli/parseCli.js.map +1 -1
  5. package/lib/const.js +1 -12
  6. package/lib/const.js.map +1 -1
  7. package/lib/extractors/headers.d.ts +2 -3
  8. package/lib/extractors/headers.js +23 -13
  9. package/lib/extractors/headers.js.map +1 -1
  10. package/lib/extractors/index.d.ts +2 -2
  11. package/lib/extractors/index.js +15 -25
  12. package/lib/extractors/index.js.map +1 -1
  13. package/lib/extractors/json.d.ts +3 -2
  14. package/lib/extractors/json.js +17 -30
  15. package/lib/extractors/json.js.map +1 -1
  16. package/lib/extractors/schema.d.ts +73 -2
  17. package/lib/extractors/schema.js +31 -52
  18. package/lib/extractors/schema.js.map +1 -1
  19. package/lib/extractors/text.js +3 -4
  20. package/lib/extractors/text.js.map +1 -1
  21. package/lib/extractors/utils.d.ts +4 -4
  22. package/lib/extractors/utils.js +17 -16
  23. package/lib/extractors/utils.js.map +1 -1
  24. package/lib/fs/glob.d.ts +2 -2
  25. package/lib/fs/glob.js +10 -22
  26. package/lib/fs/glob.js.map +1 -1
  27. package/lib/fs/index.js +2 -13
  28. package/lib/fs/index.js.map +1 -1
  29. package/lib/index.js +2 -2
  30. package/lib/index.js.map +1 -1
  31. package/lib/parser/exec.d.ts +0 -1
  32. package/lib/parser/exec.js +38 -60
  33. package/lib/parser/exec.js.map +1 -1
  34. package/lib/parser/index.d.ts +2 -2
  35. package/lib/parser/index.js +25 -19
  36. package/lib/parser/index.js.map +1 -1
  37. package/lib/parser/patterns.js +6 -7
  38. package/lib/parser/patterns.js.map +1 -1
  39. package/lib/parser/process.d.ts +4 -5
  40. package/lib/parser/process.js +25 -57
  41. package/lib/parser/process.js.map +1 -1
  42. package/lib/parser/progress.d.ts +3 -0
  43. package/lib/parser/progress.js +21 -0
  44. package/lib/parser/progress.js.map +1 -0
  45. package/lib/parser/taskRunner.d.ts +4 -0
  46. package/lib/parser/taskRunner.js +33 -0
  47. package/lib/parser/taskRunner.js.map +1 -0
  48. package/lib/parser/tree.d.ts +2 -2
  49. package/lib/parser/tree.js +40 -23
  50. package/lib/parser/tree.js.map +1 -1
  51. package/lib/utils/index.d.ts +1 -0
  52. package/lib/utils/index.js +7 -2
  53. package/lib/utils/index.js.map +1 -1
  54. package/package.json +21 -8
  55. package/tests/extract.test.ts +95 -104
  56. package/tests/{getFiles.old.ts → getFiles.test.ts} +3 -3
  57. package/tests/{ingnoreFunction.old.ts → ignoreFunction.test.ts} +4 -30
  58. package/tests/jsonParse.ts +51 -61
  59. package/tests/{extract-2.test.ts → tree.test.ts} +55 -8
  60. package/tsconfig.json +3 -3
  61. package/.github/workflows/node.js.yml +0 -33
  62. package/.github/workflows/tsDoc.yml +0 -52
  63. package/lib/cliArgs.d.ts +0 -4
  64. package/lib/cliArgs.js +0 -216
  65. package/lib/cliArgs.js.map +0 -1
  66. package/lib/consolidate.d.ts +0 -2
  67. package/lib/consolidate.js +0 -37
  68. package/lib/consolidate.js.map +0 -1
  69. package/lib/fs.d.ts +0 -2
  70. package/lib/fs.js +0 -69
  71. package/lib/fs.js.map +0 -1
  72. package/lib/glob.d.ts +0 -13
  73. package/lib/glob.js +0 -95
  74. package/lib/glob.js.map +0 -1
  75. package/lib/makePot.d.ts +0 -2
  76. package/lib/makePot.js +0 -83
  77. package/lib/makePot.js.map +0 -1
  78. package/lib/maps.d.ts +0 -122
  79. package/lib/maps.js +0 -73
  80. package/lib/maps.js.map +0 -1
  81. package/lib/parser/consolidate.d.ts +0 -2
  82. package/lib/parser/consolidate.js +0 -37
  83. package/lib/parser/consolidate.js.map +0 -1
  84. package/lib/parser/makePot.d.ts +0 -2
  85. package/lib/parser/makePot.js +0 -33
  86. package/lib/parser/makePot.js.map +0 -1
  87. package/lib/parser.d.ts +0 -6
  88. package/lib/parser.js +0 -110
  89. package/lib/parser.js.map +0 -1
  90. package/lib/tree.d.ts +0 -2
  91. package/lib/tree.js +0 -78
  92. package/lib/tree.js.map +0 -1
  93. package/lib/utils.d.ts +0 -8
  94. package/lib/utils.js +0 -78
  95. package/lib/utils.js.map +0 -1
  96. package/tests/consolidate.test.ts +0 -77
  97. package/tests/getStrings.old.ts +0 -76
  98. package/tests/makePot.old.ts +0 -46
  99. package/tests/treeJs.old.ts +0 -16
  100. package/tests/treePhp.old.ts +0 -31
  101. package/tests/treeTs.old.ts +0 -16
  102. package/tests/utils.old.ts +0 -28
  103. /package/{LICENSE.md → LICENSE} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../src/parser/patterns.ts"],"names":[],"mappings":";;;AAOA,SAAgB,WAAW,CAAC,IAAU;;IACrC,MAAM,OAAO,GAAG;QACf,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE;QACpC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE;QACpC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU;QACpC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa;QAC1C,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB;KACpC,CAAA;IAIb,IACC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,GAAG,MAAK,SAAS;QACpC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,KAAK,MAAK,SAAS,EACrC,CAAC;QACF,IAAI,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,KAAK,MAAK,SAAS,EAAE,CAAC;YAE5C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACjC,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAA;QAClD,CAAC;IACF,CAAC;IAGD,IAAI,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,EAAE,MAAK,SAAS,EAAE,CAAC;QACzC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;IACrD,CAAC;IAED,IAAI,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,SAAS,MAAK,SAAS,EAAE,CAAC;QAChD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACnC,CAAC;IAED,IAAI,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,SAAS,MAAK,SAAS,EAAE,CAAC;QAChD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACnC,CAAC;IAED,OAAO,OAAO,CAAA;AACf,CAAC;AArCD,kCAqCC"}
1
+ {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../src/parser/patterns.ts"],"names":[],"mappings":";;;AAOA,SAAgB,WAAW,CAAC,IAAU;IACrC,MAAM,OAAO,GAAG;QACf,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE;QACpC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE;QACpC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU;QACpC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa;QAC1C,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB;KACpC,CAAA;IAIb,IACC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,KAAK,SAAS;QACpC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,EACrC,CAAC;QACF,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAE5C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACjC,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAA;QAClD,CAAC;IACF,CAAC;IAGD,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QACzC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;IACrD,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAChD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACnC,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAChD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACnC,CAAC;IAED,OAAO,OAAO,CAAA;AACf,CAAC;AArCD,kCAqCC"}
@@ -1,5 +1,4 @@
1
- import type { Args, TranslationStrings } from '../types';
2
- import { Glob } from 'glob';
3
- export declare function getStrings(args: Args, files: Glob<{
4
- cwd: string;
5
- }>): Promise<TranslationStrings[]>;
1
+ import type { Args, Patterns } from '../types';
2
+ import { SingleBar } from 'cli-progress';
3
+ import { SetOfBlocks } from 'gettext-merger';
4
+ export declare function processFiles(patterns: Patterns, args: Args, progressBar?: SingleBar): Promise<Promise<SetOfBlocks>[]>;
@@ -1,70 +1,38 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
4
  };
14
5
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.getStrings = void 0;
16
- const cli_progress_1 = __importDefault(require("cli-progress"));
6
+ exports.processFiles = void 0;
17
7
  const const_1 = require("../const");
18
- const extractors_1 = require("../extractors");
19
- function initProgress(args, filesCount) {
20
- var _a;
21
- if ((_a = args.options) === null || _a === void 0 ? void 0 : _a.silent)
22
- return undefined;
23
- const progressBar = new cli_progress_1.default.SingleBar({
24
- clearOnComplete: true,
25
- etaBuffer: 1000,
26
- hideCursor: true,
27
- format: ' {bar} {percentage}% | ETA: {eta}s | {filename} | {value}/{total}',
28
- }, cli_progress_1.default.Presets.shades_classic);
29
- progressBar.start(filesCount, 0);
30
- return progressBar;
31
- }
32
- function processFiles(files, args, progressBar) {
8
+ const path_1 = __importDefault(require("path"));
9
+ const fs_1 = require("../fs");
10
+ const json_1 = require("../extractors/json");
11
+ const tree_1 = require("./tree");
12
+ const glob_1 = require("../fs/glob");
13
+ async function processFiles(patterns, args, progressBar) {
33
14
  const tasks = [];
34
- for (const file of files) {
35
- const ext = file.split('.').pop() || undefined;
36
- if (!ext || !const_1.allowedFiles.includes(ext)) {
37
- if (progressBar) {
38
- progressBar.increment(1, {
39
- filename: `Skipping ${ext} file: ${file}`,
40
- });
41
- }
42
- continue;
15
+ let filesCount = 0;
16
+ const files = (0, glob_1.getFiles)(args, patterns);
17
+ for await (const file of files) {
18
+ filesCount++;
19
+ const filename = path_1.default.basename(file);
20
+ const ext = path_1.default.extname(file).replace(/^./, '');
21
+ const fileRealPath = path_1.default.resolve(args.paths.cwd, file);
22
+ if (filename === 'theme.json' || filename === 'block.json') {
23
+ tasks.push((0, fs_1.readFileAsync)(fileRealPath).then(async (sourceCode) => {
24
+ return await (0, json_1.parseJsonCallback)(sourceCode, args.paths.cwd, filename);
25
+ }));
43
26
  }
44
- const task = (0, extractors_1.parseFile)(file, args.paths.cwd).finally(() => {
45
- if (progressBar) {
46
- progressBar.increment(1, {
47
- filename: file,
48
- });
49
- }
50
- });
51
- if (task !== null) {
52
- tasks.push(task);
27
+ if (const_1.allowedFiles.includes(ext)) {
28
+ tasks.push((0, fs_1.readFileAsync)(fileRealPath).then((content) => {
29
+ return (0, tree_1.doTree)(content, file);
30
+ }));
53
31
  }
32
+ progressBar?.increment(1, { filename });
33
+ progressBar?.setTotal(filesCount);
54
34
  }
55
35
  return tasks;
56
36
  }
57
- function getStrings(args, files) {
58
- var _a;
59
- return __awaiter(this, void 0, void 0, function* () {
60
- let progressBar = undefined;
61
- progressBar =
62
- (_a = initProgress(args, Array.from(files.iterateSync()).length)) !== null && _a !== void 0 ? _a : undefined;
63
- const strings = yield Promise.all(processFiles(files, args, progressBar));
64
- if (progressBar)
65
- progressBar.stop();
66
- return strings;
67
- });
68
- }
69
- exports.getStrings = getStrings;
37
+ exports.processFiles = processFiles;
70
38
  //# sourceMappingURL=process.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/parser/process.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,gEAAqD;AAErD,oCAAuC;AACvC,8CAAyC;AASzC,SAAS,YAAY,CAAC,IAAU,EAAE,UAAkB;;IACnD,IAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM;QAAE,OAAO,SAAS,CAAA;IAE1C,MAAM,WAAW,GAAG,IAAI,sBAAW,CAAC,SAAS,CAC5C;QACC,eAAe,EAAE,IAAI;QACrB,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,mEAAmE;KAC3E,EACD,sBAAW,CAAC,OAAO,CAAC,cAAc,CAClC,CAAA;IAED,WAAW,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;IAGhC,OAAO,WAAW,CAAA;AACnB,CAAC;AAUD,SAAS,YAAY,CACpB,KAA4B,EAC5B,IAAU,EACV,WAAuB;IAEvB,MAAM,KAAK,GAAkC,EAAE,CAAA;IAG/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAE1B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,SAAS,CAAA;QAG9C,IAAI,CAAC,GAAG,IAAI,CAAC,oBAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAEzC,IAAI,WAAW,EAAE,CAAC;gBACjB,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE;oBACxB,QAAQ,EAAE,YAAY,GAAG,UAAU,IAAI,EAAE;iBACzC,CAAC,CAAA;YACH,CAAC;YACD,SAAQ;QACT,CAAC;QAED,MAAM,IAAI,GAAG,IAAA,sBAAS,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;YACzD,IAAI,WAAW,EAAE,CAAC;gBACjB,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE;oBACxB,QAAQ,EAAE,IAAI;iBACd,CAAC,CAAA;YACH,CAAC;QACF,CAAC,CAAC,CAAA;QAGF,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,IAAmC,CAAC,CAAA;QAChD,CAAC;IACF,CAAC;IAED,OAAO,KAAK,CAAA;AACb,CAAC;AASD,SAAsB,UAAU,CAAC,IAAU,EAAE,KAA4B;;;QAIxE,IAAI,WAAW,GAA0B,SAAS,CAAA;QAClD,WAAW;YACV,MAAA,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,mCAAI,SAAS,CAAA;QAExE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAA;QAEzE,IAAI,WAAW;YAAE,WAAW,CAAC,IAAI,EAAE,CAAA;QAEnC,OAAO,OAAO,CAAA;;CACd;AAbD,gCAaC"}
1
+ {"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/parser/process.ts"],"names":[],"mappings":";;;;;;AAEA,oCAAuC;AAEvC,gDAAuB;AACvB,8BAAqC;AACrC,6CAAsD;AACtD,iCAA+B;AAC/B,qCAAqC;AAU9B,KAAK,UAAU,YAAY,CACjC,QAAkB,EAClB,IAAU,EACV,WAAuB;IAEvB,MAAM,KAAK,GAA2B,EAAE,CAAA;IACxC,IAAI,UAAU,GAAG,CAAC,CAAA;IAElB,MAAM,KAAK,GAAG,IAAA,eAAQ,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAGtC,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAChC,UAAU,EAAE,CAAA;QACZ,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACpC,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QAChD,MAAM,YAAY,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAEvD,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC5D,KAAK,CAAC,IAAI,CACT,IAAA,kBAAa,EAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;gBACrD,OAAO,MAAM,IAAA,wBAAiB,EAC7B,UAAU,EACV,IAAI,CAAC,KAAK,CAAC,GAAG,EACd,QAAQ,CACR,CAAA;YACF,CAAC,CAAC,CACF,CAAA;QACF,CAAC;QAED,IAAI,oBAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CACT,IAAA,kBAAa,EAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC5C,OAAO,IAAA,aAAM,EAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YAC7B,CAAC,CAAC,CACF,CAAA;QACF,CAAC;QAED,WAAW,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;QACvC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAA;IAClC,CAAC;IAED,OAAO,KAAK,CAAA;AACb,CAAC;AA1CD,oCA0CC"}
@@ -0,0 +1,3 @@
1
+ import { Args } from '../types';
2
+ import { SingleBar } from 'cli-progress';
3
+ export declare function initProgress(args: Args, filesCount: number): SingleBar | undefined;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.initProgress = void 0;
7
+ const cli_progress_1 = __importDefault(require("cli-progress"));
8
+ function initProgress(args, filesCount) {
9
+ if (args.options?.silent)
10
+ return undefined;
11
+ const progressBar = new cli_progress_1.default.SingleBar({
12
+ clearOnComplete: true,
13
+ etaBuffer: 1000,
14
+ hideCursor: true,
15
+ format: ' {bar} {percentage}% | ETA: {eta}s | {filename} | {value}/{total}',
16
+ }, cli_progress_1.default.Presets.shades_classic);
17
+ progressBar.start(filesCount, 0);
18
+ return progressBar;
19
+ }
20
+ exports.initProgress = initProgress;
21
+ //# sourceMappingURL=progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/parser/progress.ts"],"names":[],"mappings":";;;;;;AACA,gEAAqD;AASrD,SAAgB,YAAY,CAC3B,IAAU,EACV,UAAkB;IAElB,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM;QAAE,OAAO,SAAS,CAAA;IAE1C,MAAM,WAAW,GAAG,IAAI,sBAAW,CAAC,SAAS,CAC5C;QACC,eAAe,EAAE,IAAI;QACrB,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,mEAAmE;KAC3E,EACD,sBAAW,CAAC,OAAO,CAAC,cAAc,CAClC,CAAA;IAED,WAAW,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;IAGhC,OAAO,WAAW,CAAA;AACnB,CAAC;AApBD,oCAoBC"}
@@ -0,0 +1,4 @@
1
+ import { SetOfBlocks } from 'gettext-merger';
2
+ import { Args } from '../types';
3
+ import { SingleBar } from 'cli-progress';
4
+ export declare function taskRunner(tasks: Promise<SetOfBlocks>[], destination: SetOfBlocks, args: Args, progressBar?: SingleBar): Promise<SetOfBlocks>;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.taskRunner = void 0;
4
+ async function taskRunner(tasks, destination, args, progressBar) {
5
+ await Promise.allSettled(tasks)
6
+ .then((strings) => {
7
+ return strings
8
+ .map((block) => block.status === 'fulfilled' && block.value)
9
+ .filter(Boolean);
10
+ })
11
+ .then((consolidated) => {
12
+ consolidated.forEach((result) => {
13
+ if (result.blocks.length > 0) {
14
+ destination.addArray(result.blocks);
15
+ console.log('✅ ' + result.path + ' [', result.blocks.map((b) => b.msgid).join(', '), ']');
16
+ }
17
+ else
18
+ console.log('❌ ', result.path + ' has no strings');
19
+ });
20
+ progressBar?.stop();
21
+ })
22
+ .catch((err) => {
23
+ console.log('❌ Failed!', err);
24
+ process.exit(1);
25
+ });
26
+ if (!args.options?.silent) {
27
+ console.log('🎉 Done!');
28
+ console.log('📝 Found', Object.values(destination.blocks).length, 'translation strings in', args.paths.cwd);
29
+ }
30
+ return destination;
31
+ }
32
+ exports.taskRunner = taskRunner;
33
+ //# sourceMappingURL=taskRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taskRunner.js","sourceRoot":"","sources":["../../src/parser/taskRunner.ts"],"names":[],"mappings":";;;AAYO,KAAK,UAAU,UAAU,CAC/B,KAA6B,EAC7B,WAAwB,EACxB,IAAU,EACV,WAAuB;IAEvB,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;SAC7B,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;QAIjB,OAAO,OAAO;aACZ,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,IAAI,KAAK,CAAC,KAAK,CAAC;aAC3D,MAAM,CAAC,OAAO,CAAkB,CAAA;IACnC,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;QACtB,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC/B,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAI9B,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;gBAEnC,OAAO,CAAC,GAAG,CACV,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,EACzB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAC5C,GAAG,CACH,CAAA;YACF,CAAC;;gBAAM,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC,CAAA;QAC1D,CAAC,CAAC,CAAA;QAEF,WAAW,EAAE,IAAI,EAAE,CAAA;IACpB,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACd,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;QAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC,CAAC,CAAA;IAEH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACvB,OAAO,CAAC,GAAG,CACV,UAAU,EACV,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,EACxC,wBAAwB,EACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CACd,CAAA;IACF,CAAC;IAED,OAAO,WAAW,CAAA;AACnB,CAAC;AAjDD,gCAiDC"}
@@ -1,2 +1,2 @@
1
- import { type TranslationStrings } from '../types';
2
- export declare function doTree(sourceCode: string, filepath: string): TranslationStrings;
1
+ import { SetOfBlocks } from 'gettext-merger';
2
+ export declare function doTree(sourceCode: string, filepath: string): SetOfBlocks;
@@ -8,36 +8,37 @@ const tree_sitter_1 = __importDefault(require("tree-sitter"));
8
8
  const const_1 = require("../const");
9
9
  const glob_1 = require("../fs/glob");
10
10
  const utils_1 = require("../utils");
11
+ const gettext_merger_1 = require("gettext-merger");
11
12
  function collectComments(node) {
12
- var _a, _b;
13
13
  let currentNode = node;
14
14
  let depth = 0;
15
15
  while (currentNode && depth < 6) {
16
- if (((_a = currentNode === null || currentNode === void 0 ? void 0 : currentNode.previousSibling) === null || _a === void 0 ? void 0 : _a.type) === 'comment' &&
17
- ((_b = currentNode === null || currentNode === void 0 ? void 0 : currentNode.previousSibling) === null || _b === void 0 ? void 0 : _b.text.toLowerCase().includes('translators'))) {
18
- return (0, utils_1.stripTranslationMarkup)(currentNode === null || currentNode === void 0 ? void 0 : currentNode.previousSibling.text);
16
+ if (currentNode?.previousSibling?.type === 'comment' &&
17
+ currentNode?.previousSibling?.text
18
+ .toLowerCase()
19
+ .includes('translators')) {
20
+ return (0, utils_1.stripTranslationMarkup)(currentNode?.previousSibling.text);
19
21
  }
20
22
  depth++;
21
23
  currentNode = currentNode.parent;
22
24
  }
23
25
  }
24
26
  function doTree(sourceCode, filepath) {
25
- var _a;
26
27
  const parser = new tree_sitter_1.default();
27
28
  parser.setLanguage((0, glob_1.getParser)(filepath));
28
29
  const tree = parser.parse(sourceCode);
29
- const gettextTranslations = {};
30
- const typeToMatch = ((_a = filepath.split('.').pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== 'php'
30
+ const gettextTranslations = new gettext_merger_1.SetOfBlocks([], filepath);
31
+ const typeToMatch = filepath.split('.').pop()?.toLowerCase() !== 'php'
31
32
  ? 'call_expression'
32
33
  : 'function_call_expression';
34
+ const stringType = ['string', 'encapsed_string', 'string_value'];
33
35
  function traverse(node) {
34
- var _a, _b, _c, _d, _e, _f, _g, _h;
35
- if (node === null || node === void 0 ? void 0 : node.children.length)
36
+ if (node?.children.length)
36
37
  for (const child of node.children) {
37
38
  traverse(child);
38
39
  }
39
- if ((node === null || node === void 0 ? void 0 : node.type) === typeToMatch) {
40
- const functionName = (_b = (_a = node.firstChild) === null || _a === void 0 ? void 0 : _a.text) !== null && _b !== void 0 ? _b : null;
40
+ if (node?.type === typeToMatch) {
41
+ const functionName = node.firstChild?.text ?? null;
41
42
  if (functionName === null ||
42
43
  !Object.keys(const_1.i18nFunctions).includes(functionName)) {
43
44
  return;
@@ -55,29 +56,45 @@ function doTree(sourceCode, filepath) {
55
56
  let translationKeyIndex = 0;
56
57
  for (const child of children) {
57
58
  let node = child;
58
- if (child.type === "argument") {
59
+ let nodeValue = node.text;
60
+ if (child.type === 'argument') {
59
61
  if (child.children.length === 0)
60
62
  continue;
61
63
  node = child.children[0];
62
64
  }
63
- if (node.type !== "string")
65
+ if (node?.type === ',') {
64
66
  continue;
67
+ }
68
+ if (stringType.includes(node?.type)) {
69
+ nodeValue = nodeValue.slice(1, -1);
70
+ }
71
+ else {
72
+ console.warn('Unexpected node type: ' +
73
+ node?.type +
74
+ ' is ' +
75
+ translationKeys[translationKeyIndex] +
76
+ ' for ' +
77
+ nodeValue +
78
+ ' in ' +
79
+ filepath);
80
+ continue;
81
+ }
65
82
  const currentKey = translationKeys[translationKeyIndex];
66
- translation[currentKey] =
67
- child.text.slice(1, -1);
83
+ translation[currentKey] = nodeValue;
68
84
  translationKeyIndex += 1;
69
85
  }
70
- const gettext = {
71
- msgctxt: (_c = translation.msgctxt) !== null && _c !== void 0 ? _c : '',
72
- msgid: (_d = translation.msgid) !== null && _d !== void 0 ? _d : '',
73
- msgid_plural: (_e = translation.msgid_plural) !== null && _e !== void 0 ? _e : '',
86
+ const comments = collectComments(argsNode);
87
+ const block = new gettext_merger_1.Block({
88
+ msgctxt: translation.msgctxt,
89
+ msgid: translation.msgid ?? '',
90
+ msgid_plural: translation.msgid_plural,
74
91
  msgstr: translation.msgid_plural ? ['', ''] : [''],
75
92
  comments: {
76
- translator: (_f = collectComments(node)) !== null && _f !== void 0 ? _f : '',
77
- reference: `${filepath}:${node.startPosition.row + 1}`,
93
+ translator: comments ? [comments] : undefined,
94
+ reference: [`${filepath}:${node.startPosition.row + 1}`],
78
95
  },
79
- };
80
- gettextTranslations[(_g = gettext.msgctxt) !== null && _g !== void 0 ? _g : ''] = Object.assign(Object.assign({}, (gettextTranslations[(_h = gettext.msgctxt) !== null && _h !== void 0 ? _h : ''] || {})), { [gettext.msgid]: gettext });
96
+ });
97
+ gettextTranslations.add(block);
81
98
  }
82
99
  }
83
100
  traverse(tree.rootNode);
@@ -1 +1 @@
1
- {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../src/parser/tree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../src/parser/tree.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAqD;AACrD,oCAAwC;AAGxC,qCAAsC;AACtC,oCAAiD;AACjD,mDAAmD;AAQnD,SAAS,eAAe,CAAC,IAAgB;IACxC,IAAI,WAAW,GAAG,IAAI,CAAA;IACtB,IAAI,KAAK,GAAG,CAAC,CAAA;IAGb,OAAO,WAAW,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACjC,IACC,WAAW,EAAE,eAAe,EAAE,IAAI,KAAK,SAAS;YAChD,WAAW,EAAE,eAAe,EAAE,IAAI;iBAChC,WAAW,EAAE;iBACb,QAAQ,CAAC,aAAa,CAAC,EACxB,CAAC;YACF,OAAO,IAAA,8BAAsB,EAAC,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC,CAAA;QACjE,CAAC;QACD,KAAK,EAAE,CAAA;QACP,WAAW,GAAG,WAAW,CAAC,MAAoB,CAAA;IAC/C,CAAC;AACF,CAAC;AASD,SAAgB,MAAM,CAAC,UAAkB,EAAE,QAAgB;IAE1D,MAAM,MAAM,GAAG,IAAI,qBAAM,EAAE,CAAA;IAC3B,MAAM,CAAC,WAAW,CAAC,IAAA,gBAAS,EAAC,QAAQ,CAAC,CAAC,CAAA;IAGvC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAGrC,MAAM,mBAAmB,GAAgB,IAAI,4BAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;IAEtE,MAAM,WAAW,GAChB,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,KAAK,KAAK;QACjD,CAAC,CAAC,iBAAiB;QACnB,CAAC,CAAC,0BAA0B,CAAA;IAE9B,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAA;IAOhE,SAAS,QAAQ,CAAC,IAAgB;QAEjC,IAAI,IAAI,EAAE,QAAQ,CAAC,MAAM;YACxB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnC,QAAQ,CAAC,KAAK,CAAC,CAAA;YAChB,CAAC;QAGF,IAAI,IAAI,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;YAEhC,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,IAAI,CAAA;YAClD,IACC,YAAY,KAAK,IAAI;gBACrB,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAa,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EACjD,CAAC;gBACF,OAAM;YACP,CAAC;YAGD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAA;YAC/B,IACC,QAAQ,KAAK,IAAI;gBACjB,QAAQ,CAAC,UAAU,KAAK,CAAC;gBACzB,QAAQ,CAAC,IAAI,KAAK,WAAW,EAC5B,CAAC;gBACF,OAAM;YACP,CAAC;YAID,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAA;YAChC,MAAM,WAAW,GAAgC,EAAE,CAAA;YAEnD,MAAM,eAAe,GACpB,qBAAa,CAAC,YAA0C,CAAC,CAAA;YAE1D,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YAC1C,IAAI,mBAAmB,GAAG,CAAC,CAAA;YAG3B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;gBAC9B,IAAI,IAAI,GAAG,KAAK,CAAA;gBAChB,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAA;gBAGzB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC/B,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;wBAAE,SAAQ;oBACzC,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;gBACzB,CAAC;gBAED,IAAI,IAAI,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC;oBAExB,SAAQ;gBACT,CAAC;gBAED,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;oBAErC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;gBACnC,CAAC;qBAAM,CAAC;oBAEP,OAAO,CAAC,IAAI,CACX,wBAAwB;wBACvB,IAAI,EAAE,IAAI;wBACV,MAAM;wBACN,eAAe,CAAC,mBAAmB,CAAC;wBACpC,QAAQ;wBACR,SAAS;wBACT,MAAM;wBACN,QAAQ,CACT,CAAA;oBAED,SAAQ;gBACT,CAAC;gBAGD,MAAM,UAAU,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAA;gBAGvD,WAAW,CAAC,UAAsC,CAAC,GAAG,SAAS,CAAA;gBAG/D,mBAAmB,IAAI,CAAC,CAAA;YACzB,CAAC;YAGD,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAA;YAG1C,MAAM,KAAK,GAAG,IAAI,sBAAK,CAAC;gBACvB,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,EAAE;gBAC9B,YAAY,EAAE,WAAW,CAAC,YAAY;gBACtC,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClD,QAAQ,EAAE;oBACT,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;oBAC7C,SAAS,EAAE,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;iBACxD;aACD,CAAC,CAAA;YAEF,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC/B,CAAC;IACF,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAGvB,OAAO,mBAAmB,CAAA;AAC3B,CAAC;AAlID,wBAkIC"}
@@ -6,3 +6,4 @@ export declare function stringstring(string: string | string[] | undefined): str
6
6
  export declare function advancedObjectMerge(obj1: TranslationStrings, obj2: TranslationStrings): TranslationStrings;
7
7
  export declare function detectPatternType(pattern: string): 'file' | 'directory' | 'glob';
8
8
  export declare function includeFunction(includePath: string[]): string[];
9
+ export declare function getCopyright(slug: string, license?: string): string;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.includeFunction = exports.detectPatternType = exports.advancedObjectMerge = exports.stringstring = exports.stripTranslationMarkup = exports.removeCommentMarkup = exports.getCommentBlock = void 0;
6
+ exports.getCopyright = exports.includeFunction = exports.detectPatternType = exports.advancedObjectMerge = exports.stringstring = exports.stripTranslationMarkup = exports.removeCommentMarkup = exports.getCommentBlock = void 0;
7
7
  const path_1 = __importDefault(require("path"));
8
8
  function getCommentBlock(input) {
9
9
  const commentBlock = input.match(/\/\*\*?[\s\S]*?\*\//);
@@ -31,7 +31,7 @@ function stringstring(string) {
31
31
  }
32
32
  exports.stringstring = stringstring;
33
33
  function advancedObjectMerge(obj1, obj2) {
34
- const merged = Object.assign({}, obj1);
34
+ const merged = { ...obj1 };
35
35
  for (const key in obj2) {
36
36
  if (Object.prototype.hasOwnProperty.call(obj2, key)) {
37
37
  merged[key] =
@@ -75,4 +75,9 @@ function includeFunction(includePath) {
75
75
  });
76
76
  }
77
77
  exports.includeFunction = includeFunction;
78
+ function getCopyright(slug, license = 'GPL v2 or later') {
79
+ return (`# Copyright (C) ${new Date().getFullYear()} ${slug}\n` +
80
+ `# This file is distributed under the ${license} license.`);
81
+ }
82
+ exports.getCopyright = getCopyright;
78
83
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,16 +1,29 @@
1
1
  {
2
2
  "name": "@wp-blocks/make-pot",
3
- "version": "1.0.1",
3
+ "version": "1.2.0",
4
+ "license": "GPL-3.0-or-later",
5
+ "homepage": "https://wp-blocks.github.io/make-pot/",
4
6
  "description": "A Node.js script for generating a POT file from source code",
5
- "author": "Erik Golinelli <https://github.com/erikyo>",
7
+ "authors": [
8
+ "Erik Golinelli <erik@codekraft.it> (https://codekraft.it/)",
9
+ "John Hooks <bitmachina@outlook.com> (https://johnhooks.io/)"
10
+ ],
6
11
  "main": "lib/index.js",
12
+ "keywords": [
13
+ "gettext",
14
+ "i18n",
15
+ "pot",
16
+ "WordPress",
17
+ "translation",
18
+ "internalization"
19
+ ],
7
20
  "scripts": {
8
21
  "postinstall": "npm rebuild tree-sitter tree-sitter-typescript tree-sitter-php tree-sitter-javascript --force",
9
22
  "build": "tsc --build",
10
23
  "watch": "tsc --watch",
11
24
  "clean": "tsc --build --clean",
12
25
  "lint": "eslint ./src ./tests --fix",
13
- "test": "jest",
26
+ "test": "jest --coverage",
14
27
  "update-snapshots": "jest -- -u",
15
28
  "run": "node ./lib/index.js tests/fixtures/vinyl/"
16
29
  },
@@ -25,9 +38,9 @@
25
38
  "url": "https://github.com/wp-blocks/makePot/issues"
26
39
  },
27
40
  "dependencies": {
28
- "axios": "^1.6.7",
41
+ "axios": "^1.6.8",
29
42
  "cli-progress": "^3.12.0",
30
- "gettext-merger": "^0.1.0",
43
+ "gettext-merger": "^1.2.1",
31
44
  "gettext-parser": "^7.0.1",
32
45
  "glob": "^10.3.10",
33
46
  "tree-sitter": "^0.20.6",
@@ -41,12 +54,12 @@
41
54
  "@types/cli-progress": "^3.11.5",
42
55
  "@types/gettext-parser": "^4.0.4",
43
56
  "@types/jest": "^29.5.12",
44
- "@types/node": "^20.11.19",
57
+ "@types/node": "^20.11.28",
45
58
  "@types/strip-comments": "^2.0.4",
46
59
  "@types/yargs": "^17.0.32",
47
60
  "@typescript-eslint/eslint-plugin": "^6.18.1",
48
61
  "@typescript-eslint/parser": "^6.14.0",
49
- "eslint": "^8.56.0",
62
+ "eslint": "^8.57.0",
50
63
  "eslint-config-standard": "^17.1.0",
51
64
  "eslint-config-standard-with-typescript": "^43.0.0",
52
65
  "eslint-plugin-import": "^2.29.1",
@@ -57,6 +70,6 @@
57
70
  "lint-staged": "^15.2.2",
58
71
  "prettier": "3.2.5",
59
72
  "ts-jest": "^29.1.2",
60
- "typescript": "^5.3.3"
73
+ "typescript": "^5.4.2"
61
74
  }
62
75
  }