@wp-blocks/make-pot 0.1.0 → 1.0.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 (114) hide show
  1. package/CODE_OF_CONDUCT.md +45 -0
  2. package/CONTRIBUTING.md +92 -0
  3. package/README.md +54 -3
  4. package/lib/assets/block-i18n.json +17 -0
  5. package/lib/assets/package-i18n.json +11 -0
  6. package/lib/assets/theme-i18n.json +86 -0
  7. package/lib/assets/wp-plugin-i18n.json +14 -0
  8. package/lib/assets/wp-theme-i18n.json +13 -0
  9. package/lib/cli/index.d.ts +1 -0
  10. package/lib/cli/index.js +114 -0
  11. package/lib/cli/index.js.map +1 -0
  12. package/lib/cli/parseCli.d.ts +3 -0
  13. package/lib/cli/parseCli.js +111 -0
  14. package/lib/cli/parseCli.js.map +1 -0
  15. package/lib/cliArgs.js +41 -8
  16. package/lib/cliArgs.js.map +1 -1
  17. package/lib/const.d.ts +112 -0
  18. package/lib/const.js +42 -5
  19. package/lib/const.js.map +1 -1
  20. package/lib/extractors/css.d.ts +2 -0
  21. package/lib/extractors/css.js +42 -0
  22. package/lib/extractors/css.js.map +1 -0
  23. package/lib/extractors/headers.d.ts +6 -0
  24. package/lib/extractors/headers.js +59 -0
  25. package/lib/extractors/headers.js.map +1 -0
  26. package/lib/extractors/index.d.ts +2 -0
  27. package/lib/extractors/index.js +60 -0
  28. package/lib/extractors/index.js.map +1 -0
  29. package/lib/extractors/json.d.ts +9 -0
  30. package/lib/extractors/json.js +82 -0
  31. package/lib/extractors/json.js.map +1 -0
  32. package/lib/extractors/php.d.ts +3 -0
  33. package/lib/extractors/php.js +49 -0
  34. package/lib/extractors/php.js.map +1 -0
  35. package/lib/extractors/schema.d.ts +13 -0
  36. package/lib/extractors/schema.js +121 -0
  37. package/lib/extractors/schema.js.map +1 -0
  38. package/lib/extractors/text.d.ts +1 -0
  39. package/lib/{extractors-text.js → extractors/text.js} +7 -10
  40. package/lib/extractors/text.js.map +1 -0
  41. package/lib/extractors/utils.d.ts +5 -0
  42. package/lib/extractors/utils.js +54 -0
  43. package/lib/extractors/utils.js.map +1 -0
  44. package/lib/fs/glob.d.ts +13 -0
  45. package/lib/fs/glob.js +95 -0
  46. package/lib/fs/glob.js.map +1 -0
  47. package/lib/fs/index.d.ts +2 -0
  48. package/lib/fs/index.js +69 -0
  49. package/lib/fs/index.js.map +1 -0
  50. package/lib/fs.d.ts +2 -1
  51. package/lib/fs.js +15 -8
  52. package/lib/fs.js.map +1 -1
  53. package/lib/index.js +5 -3
  54. package/lib/index.js.map +1 -1
  55. package/lib/makePot.d.ts +1 -1
  56. package/lib/makePot.js +38 -27
  57. package/lib/makePot.js.map +1 -1
  58. package/lib/maps.d.ts +122 -0
  59. package/lib/maps.js +73 -0
  60. package/lib/maps.js.map +1 -0
  61. package/lib/parser/consolidate.d.ts +2 -0
  62. package/lib/parser/consolidate.js +37 -0
  63. package/lib/parser/consolidate.js.map +1 -0
  64. package/lib/parser/exec.d.ts +3 -0
  65. package/lib/parser/exec.js +71 -0
  66. package/lib/parser/exec.js.map +1 -0
  67. package/lib/parser/index.d.ts +2 -0
  68. package/lib/parser/index.js +24 -0
  69. package/lib/parser/index.js.map +1 -0
  70. package/lib/parser/makePot.d.ts +2 -0
  71. package/lib/parser/makePot.js +39 -0
  72. package/lib/parser/makePot.js.map +1 -0
  73. package/lib/parser/patterns.d.ts +2 -0
  74. package/lib/parser/patterns.js +34 -0
  75. package/lib/parser/patterns.js.map +1 -0
  76. package/lib/parser/process.d.ts +5 -0
  77. package/lib/parser/process.js +71 -0
  78. package/lib/parser/process.js.map +1 -0
  79. package/lib/parser/tree.d.ts +2 -0
  80. package/lib/parser/tree.js +78 -0
  81. package/lib/parser/tree.js.map +1 -0
  82. package/lib/parser.d.ts +2 -2
  83. package/lib/parser.js +58 -57
  84. package/lib/parser.js.map +1 -1
  85. package/lib/tree.js +6 -6
  86. package/lib/tree.js.map +1 -1
  87. package/lib/types.d.ts +7 -4
  88. package/lib/utils/index.d.ts +8 -0
  89. package/lib/utils/index.js +78 -0
  90. package/lib/utils/index.js.map +1 -0
  91. package/lib/utils.d.ts +3 -3
  92. package/lib/utils.js +16 -13
  93. package/lib/utils.js.map +1 -1
  94. package/package.json +19 -10
  95. package/tests/consolidate.test.ts +1 -1
  96. package/tests/{extract-2.old.ts → extract-2.test.ts} +10 -3
  97. package/tests/getFiles.old.ts +1 -1
  98. package/tests/getStrings.old.ts +1 -1
  99. package/tests/{jsonParse.test.ts → jsonParse.ts} +9 -8
  100. package/lib/extractors-json.d.ts +0 -9
  101. package/lib/extractors-json.js +0 -53
  102. package/lib/extractors-json.js.map +0 -1
  103. package/lib/extractors-maps.d.ts +0 -109
  104. package/lib/extractors-maps.js +0 -139
  105. package/lib/extractors-maps.js.map +0 -1
  106. package/lib/extractors-php.d.ts +0 -1
  107. package/lib/extractors-php.js +0 -25
  108. package/lib/extractors-php.js.map +0 -1
  109. package/lib/extractors-text.d.ts +0 -1
  110. package/lib/extractors-text.js.map +0 -1
  111. package/lib/extractors.d.ts +0 -17
  112. package/lib/extractors.js +0 -137
  113. package/lib/extractors.js.map +0 -1
  114. package/tests/index.html +0 -78
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../src/parser/tree.ts"],"names":[],"mappings":"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"}
package/lib/parser.d.ts CHANGED
@@ -2,5 +2,5 @@ import type { Args, TranslationStrings } from './types';
2
2
  import { Glob } from 'glob';
3
3
  export declare function getStrings(args: Args, files: Glob<{
4
4
  cwd: string;
5
- }>): Promise<TranslationStrings>;
6
- export declare function runExtract(args: Args): Promise<TranslationStrings>;
5
+ }>): Promise<TranslationStrings[]>;
6
+ export declare function runExtract(args: Args): Promise<TranslationStrings[]>;
package/lib/parser.js CHANGED
@@ -17,11 +17,10 @@ const cli_progress_1 = __importDefault(require("cli-progress"));
17
17
  const extractors_1 = require("./extractors");
18
18
  const const_1 = require("./const");
19
19
  const glob_1 = require("./glob");
20
- const consolidate_1 = require("./consolidate");
21
20
  function initProgress(args, filesCount) {
22
21
  var _a;
23
22
  if ((_a = args.options) === null || _a === void 0 ? void 0 : _a.silent)
24
- return null;
23
+ return undefined;
25
24
  const progressBar = new cli_progress_1.default.SingleBar({
26
25
  clearOnComplete: true,
27
26
  etaBuffer: 1000,
@@ -31,77 +30,79 @@ function initProgress(args, filesCount) {
31
30
  progressBar.start(filesCount, 0);
32
31
  return progressBar;
33
32
  }
34
- function getStrings(args, files) {
35
- var _a;
36
- return __awaiter(this, void 0, void 0, function* () {
37
- const tasks = [];
38
- let progressBar = null;
39
- progressBar = initProgress(args, Array.from(files.iterateSync()).length);
40
- for (const file of files) {
41
- const ext = file.split('.').pop() || undefined;
42
- if (!ext || !const_1.allowedFiles.includes(ext)) {
43
- if (progressBar) {
44
- progressBar.increment(1, {
45
- filename: `Skipping ${ext} (not a valid file extension)`,
46
- });
47
- }
48
- continue;
33
+ function processFiles(files, args, progressBar) {
34
+ const tasks = [];
35
+ for (const file of files) {
36
+ const ext = file.split('.').pop() || undefined;
37
+ if (!ext || !const_1.allowedFiles.includes(ext)) {
38
+ if (progressBar) {
39
+ progressBar.increment(1, {
40
+ filename: `Skipping ${ext} file: ${file}`,
41
+ });
49
42
  }
50
- const task = (0, extractors_1.parseFile)(file, args.paths.cwd);
43
+ continue;
44
+ }
45
+ const task = (0, extractors_1.parseFile)(file, args.paths.cwd).finally(() => {
51
46
  if (progressBar) {
52
47
  progressBar.increment(1, {
53
48
  filename: file,
54
49
  });
55
50
  }
56
- if (task !== null) {
57
- tasks.push(task);
58
- }
51
+ });
52
+ if (task !== null) {
53
+ tasks.push(task);
59
54
  }
60
- const results = yield Promise.all(tasks).finally(() => {
61
- if (progressBar)
55
+ }
56
+ return tasks;
57
+ }
58
+ function getStrings(args, files) {
59
+ var _a;
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ let progressBar = undefined;
62
+ progressBar =
63
+ (_a = initProgress(args, Array.from(files.iterateSync()).length)) !== null && _a !== void 0 ? _a : undefined;
64
+ return yield Promise.all(processFiles(files, args, progressBar)).finally(() => {
65
+ if (progressBar) {
62
66
  progressBar.stop();
67
+ }
63
68
  });
64
- const mergedResult = (0, consolidate_1.consolidate)(results.filter((r) => r !== null));
65
- if (!((_a = args.options) === null || _a === void 0 ? void 0 : _a.silent)) {
66
- console.log('📝 Found', Object.values(mergedResult).length, 'group of strings in', results.length, 'files.\n', 'In total ' +
67
- Object.values(mergedResult)
68
- .map((v) => Object.keys(v).length)
69
- .reduce((acc, val) => acc + val, 0) +
70
- ' strings were found');
71
- }
72
- return mergedResult;
73
69
  });
74
70
  }
75
71
  exports.getStrings = getStrings;
76
- function runExtract(args) {
72
+ function getPatterns(args) {
77
73
  var _a, _b, _c, _d, _e, _f;
78
- return __awaiter(this, void 0, void 0, function* () {
79
- const pattern = {
80
- include: args.patterns.include || [],
81
- exclude: args.patterns.exclude || [],
82
- mergePaths: args.patterns.mergePaths,
83
- subtractPaths: args.patterns.subtractPaths,
84
- subtractAndMerge: args.patterns.subtractAndMerge,
85
- };
86
- if (((_a = args.options) === null || _a === void 0 ? void 0 : _a.skip.php) !== undefined ||
87
- ((_b = args.options) === null || _b === void 0 ? void 0 : _b.skip.blade) !== undefined) {
88
- if (((_c = args.options) === null || _c === void 0 ? void 0 : _c.skip.blade) !== undefined) {
89
- pattern.include.push('**/*.php');
90
- }
91
- else {
92
- pattern.include.push('**/*.php', '!**/blade.php');
93
- }
94
- }
95
- if (((_d = args.options) === null || _d === void 0 ? void 0 : _d.skip.js) !== undefined) {
96
- pattern.include.push('**/*.{js,jsx,ts,tsx,mjs,cjs}');
97
- }
98
- if (((_e = args.options) === null || _e === void 0 ? void 0 : _e.skip.blockJson) !== undefined) {
99
- pattern.include.push('block.json');
74
+ const pattern = {
75
+ include: args.patterns.include || [],
76
+ exclude: args.patterns.exclude || [],
77
+ mergePaths: args.patterns.mergePaths,
78
+ subtractPaths: args.patterns.subtractPaths,
79
+ subtractAndMerge: args.patterns.subtractAndMerge,
80
+ };
81
+ if (((_a = args.options) === null || _a === void 0 ? void 0 : _a.skip.php) !== undefined ||
82
+ ((_b = args.options) === null || _b === void 0 ? void 0 : _b.skip.blade) !== undefined) {
83
+ if (((_c = args.options) === null || _c === void 0 ? void 0 : _c.skip.blade) !== undefined) {
84
+ pattern.include.push('**/*.php');
100
85
  }
101
- if (((_f = args.options) === null || _f === void 0 ? void 0 : _f.skip.themeJson) !== undefined) {
102
- pattern.include.push('theme.json');
86
+ else {
87
+ pattern.include.push('**/*.php', '!**/blade.php');
103
88
  }
89
+ }
90
+ if (((_d = args.options) === null || _d === void 0 ? void 0 : _d.skip.js) !== undefined) {
91
+ pattern.include.push('**/*.{js,jsx,ts,tsx,mjs,cjs}');
92
+ }
93
+ if (((_e = args.options) === null || _e === void 0 ? void 0 : _e.skip.blockJson) !== undefined) {
94
+ pattern.include.push('block.json');
95
+ }
96
+ if (((_f = args.options) === null || _f === void 0 ? void 0 : _f.skip.themeJson) !== undefined) {
97
+ pattern.include.push('theme.json');
98
+ }
99
+ return pattern;
100
+ }
101
+ function runExtract(args) {
102
+ return __awaiter(this, void 0, void 0, function* () {
103
+ const pattern = getPatterns(args);
104
104
  const files = yield (0, glob_1.getFiles)(args, pattern);
105
+ console.log('Found ', Object.values(files).length, 'files that match the pattern');
105
106
  return yield getStrings(args, files);
106
107
  });
107
108
  }
package/lib/parser.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,gEAA0D;AAC1D,6CAAwC;AACxC,mCAAsC;AAEtC,iCAAiC;AACjC,+CAA2C;AAU3C,SAAS,YAAY,CAAC,IAAU,EAAE,UAAkB;;IACnD,IAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM;QAAE,OAAO,IAAI,CAAA;IAErC,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;AASD,SAAsB,UAAU,CAC/B,IAAU,EACV,KAA4B;;;QAE5B,MAAM,KAAK,GAAkC,EAAE,CAAA;QAE/C,IAAI,WAAW,GAAqB,IAAI,CAAA;QACxC,WAAW,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;QAGxE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAE1B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,SAAS,CAAA;YAE9C,IAAI,CAAC,GAAG,IAAI,CAAC,oBAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAEzC,IAAI,WAAW,EAAE,CAAC;oBACjB,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE;wBACxB,QAAQ,EAAE,YAAY,GAAG,+BAA+B;qBACxD,CAAC,CAAA;gBACH,CAAC;gBACD,SAAQ;YACT,CAAC;YAED,MAAM,IAAI,GAAG,IAAA,sBAAS,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAG5C,IAAI,WAAW,EAAE,CAAC;gBACjB,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE;oBACxB,QAAQ,EAAE,IAAI;iBACd,CAAC,CAAA;YACH,CAAC;YAGD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBACnB,KAAK,CAAC,IAAI,CAAC,IAAmC,CAAC,CAAA;YAChD,CAAC;QACF,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;YAErD,IAAI,WAAW;gBAAE,WAAW,CAAC,IAAI,EAAE,CAAA;QACpC,CAAC,CAAC,CAAA;QAEF,MAAM,YAAY,GAAG,IAAA,yBAAW,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAA;QAEnE,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,CAAA,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CACV,UAAU,EACV,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,EAClC,qBAAqB,EACrB,OAAO,CAAC,MAAM,EACd,UAAU,EACV,WAAW;gBACV,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;qBACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;qBACjC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;gBACpC,qBAAqB,CACtB,CAAA;QACF,CAAC;QAED,OAAO,YAAY,CAAA;;CACnB;AA9DD,gCA8DC;AAQD,SAAsB,UAAU,CAAC,IAAU;;;QAC1C,MAAM,OAAO,GAAG;YACf,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE;YACpC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE;YACpC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU;YACpC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa;YAC1C,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB;SACpC,CAAA;QAIb,IACC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,GAAG,MAAK,SAAS;YACpC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,KAAK,MAAK,SAAS,EACrC,CAAC;YACF,IAAI,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,KAAK,MAAK,SAAS,EAAE,CAAC;gBAE5C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YACjC,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAA;YAClD,CAAC;QACF,CAAC;QAGD,IAAI,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,EAAE,MAAK,SAAS,EAAE,CAAC;YACzC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;QACrD,CAAC;QAED,IAAI,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,SAAS,MAAK,SAAS,EAAE,CAAC;YAChD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACnC,CAAC;QAED,IAAI,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,SAAS,MAAK,SAAS,EAAE,CAAC;YAChD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACnC,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAA,eAAQ,EAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC3C,OAAO,MAAM,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;;CACpC;AAtCD,gCAsCC"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
package/lib/tree.js CHANGED
@@ -15,8 +15,7 @@ function collectComments(node) {
15
15
  while (currentNode && depth < 6) {
16
16
  if (((_a = currentNode === null || currentNode === void 0 ? void 0 : currentNode.previousSibling) === null || _a === void 0 ? void 0 : _a.type) === 'comment' &&
17
17
  ((_b = currentNode === null || currentNode === void 0 ? void 0 : currentNode.previousSibling) === null || _b === void 0 ? void 0 : _b.text.toLowerCase().includes('translators'))) {
18
- const comment = (0, utils_1.stripTranslationMarkup)(currentNode === null || currentNode === void 0 ? void 0 : currentNode.previousSibling.text);
19
- return comment;
18
+ return (0, utils_1.stripTranslationMarkup)(currentNode === null || currentNode === void 0 ? void 0 : currentNode.previousSibling.text);
20
19
  }
21
20
  depth++;
22
21
  currentNode = currentNode.parent;
@@ -49,14 +48,15 @@ function doTree(sourceCode, filepath) {
49
48
  argsNode.type !== 'arguments') {
50
49
  return;
51
50
  }
52
- const [fn, raw] = node.children;
51
+ const [_fn, raw] = node.children;
53
52
  const translation = {};
54
53
  const translationKeys = const_1.i18nFunctions[functionName];
55
54
  raw.children.slice(1, -1).forEach((child, index) => {
55
+ if (!child.text)
56
+ return;
56
57
  const currentKey = translationKeys[index];
57
- if (/^["|']/.exec(child.text[0]))
58
- translation[currentKey] =
59
- child.text.slice(1, -1);
58
+ translation[currentKey] =
59
+ child.text.slice(1, -1);
60
60
  });
61
61
  const gettext = {
62
62
  msgctxt: (_c = translation.msgctxt) !== null && _c !== void 0 ? _c : '',
package/lib/tree.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tree.js","sourceRoot":"","sources":["../src/tree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tree.js","sourceRoot":"","sources":["../src/tree.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { pkgJsonHeaders, pluginHeaders, themeHeaders } from './extractors-maps';
1
+ import { pkgJsonHeaders, pluginHeaders, themeHeaders } from './const';
2
2
  import { GetTextTranslation } from 'gettext-parser';
3
3
  export type ThemeHeadersType = keyof typeof themeHeaders;
4
4
  export type PluginHeadersType = keyof typeof pluginHeaders;
5
5
  export type PkgHeadersType = keyof typeof pkgJsonHeaders;
6
- export type PotHeaders = (typeof pkgJsonHeaders)[PkgHeadersType] | (typeof pluginHeaders)[PluginHeadersType] | (typeof themeHeaders)[ThemeHeadersType] | 'fileComment' | 'packageName';
6
+ export type PotHeaders = (typeof pkgJsonHeaders)[PkgHeadersType] | (typeof pluginHeaders)[PluginHeadersType] | (typeof themeHeaders)[ThemeHeadersType] | 'license';
7
7
  export type DomainType = 'plugin' | 'theme' | 'block' | 'theme-block' | 'generic';
8
8
  export interface Patterns {
9
9
  mergePaths?: string[];
@@ -27,6 +27,7 @@ export interface Args {
27
27
  location?: boolean;
28
28
  packageName?: string;
29
29
  output?: boolean;
30
+ fileComment?: string;
30
31
  skip: {
31
32
  js?: boolean;
32
33
  php?: boolean;
@@ -36,12 +37,14 @@ export interface Args {
36
37
  audit?: boolean;
37
38
  };
38
39
  };
39
- headers?: Record<PotHeaders, string>;
40
+ headers?: Record<PotHeaders, unknown>;
40
41
  patterns: Patterns;
41
42
  }
43
+ export interface I18nSchema {
44
+ [key: string]: string | string[] | I18nSchema | I18nSchema[];
45
+ }
42
46
  export interface TranslationStrings {
43
47
  [msgctxt: string]: {
44
48
  [msgId: string]: GetTextTranslation;
45
49
  };
46
50
  }
47
- export type JsonData = Record<string, any>;
@@ -0,0 +1,8 @@
1
+ import { TranslationStrings } from '../types';
2
+ export declare function getCommentBlock(input: string): string;
3
+ export declare function removeCommentMarkup(input: string): string[] | null;
4
+ export declare function stripTranslationMarkup(comment: string): string;
5
+ export declare function stringstring(string: string | string[] | undefined): string[] | null;
6
+ export declare function advancedObjectMerge(obj1: TranslationStrings, obj2: TranslationStrings): TranslationStrings;
7
+ export declare function detectPatternType(pattern: string): 'file' | 'directory' | 'glob';
8
+ export declare function includeFunction(includePath: string[]): string[];
@@ -0,0 +1,78 @@
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.includeFunction = exports.detectPatternType = exports.advancedObjectMerge = exports.stringstring = exports.stripTranslationMarkup = exports.removeCommentMarkup = exports.getCommentBlock = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ function getCommentBlock(input) {
9
+ const commentBlock = input.match(/\/\*\*?[\s\S]*?\*\//);
10
+ return commentBlock !== null ? commentBlock[0] : input;
11
+ }
12
+ exports.getCommentBlock = getCommentBlock;
13
+ function removeCommentMarkup(input) {
14
+ return input.match(/[a-zA-Z].*/gm);
15
+ }
16
+ exports.removeCommentMarkup = removeCommentMarkup;
17
+ function stripTranslationMarkup(comment) {
18
+ const commentPattern = /\/\*\*?\s*(?:translators:)\s*([\s\S]*?)\s*\*\/|\/\/\s*(?:translators:)\s*(.*)$/i;
19
+ const matches = comment.match(commentPattern);
20
+ return matches ? matches[1] : comment;
21
+ }
22
+ exports.stripTranslationMarkup = stripTranslationMarkup;
23
+ function stringstring(string) {
24
+ if (typeof string === 'string') {
25
+ if (string.includes(',')) {
26
+ return string.split(',');
27
+ }
28
+ return [string];
29
+ }
30
+ return null;
31
+ }
32
+ exports.stringstring = stringstring;
33
+ function advancedObjectMerge(obj1, obj2) {
34
+ const merged = Object.assign({}, obj1);
35
+ for (const key in obj2) {
36
+ if (Object.prototype.hasOwnProperty.call(obj2, key)) {
37
+ merged[key] =
38
+ obj1[key] && obj1[key].toString() === '[object Object]'
39
+ ?
40
+ advancedObjectMerge(obj1[key], obj2[key])
41
+ : obj2[key];
42
+ }
43
+ }
44
+ return merged;
45
+ }
46
+ exports.advancedObjectMerge = advancedObjectMerge;
47
+ function detectPatternType(pattern) {
48
+ const containsFileExtension = pattern.includes('.');
49
+ const containsDirectorySeparator = pattern.includes(path_1.default.sep) || pattern.endsWith(path_1.default.sep);
50
+ if (pattern.includes('*')) {
51
+ return 'glob';
52
+ }
53
+ else if (!containsFileExtension && !containsDirectorySeparator) {
54
+ return 'directory';
55
+ }
56
+ else if (containsFileExtension && !containsDirectorySeparator) {
57
+ return 'file';
58
+ }
59
+ else {
60
+ return 'glob';
61
+ }
62
+ }
63
+ exports.detectPatternType = detectPatternType;
64
+ function includeFunction(includePath) {
65
+ return includePath.map((path) => {
66
+ const type = detectPatternType(path);
67
+ switch (type) {
68
+ case 'directory':
69
+ return path + '/**';
70
+ case 'file':
71
+ return '**/' + path;
72
+ default:
73
+ return path;
74
+ }
75
+ });
76
+ }
77
+ exports.includeFunction = includeFunction;
78
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
package/lib/utils.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import { type Args } from './types';
2
- export declare function generateHeaderComments(args: Args): string;
1
+ import { TranslationStrings } from './types';
3
2
  export declare function getCommentBlock(input: string): string;
4
- export declare function removeCommentMarkup(input: string): string;
3
+ export declare function removeCommentMarkup(input: string): string[] | null;
5
4
  export declare function stripTranslationMarkup(comment: string): string;
6
5
  export declare function stringstring(string: string | string[] | undefined): string[] | null;
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[];
package/lib/utils.js CHANGED
@@ -3,26 +3,15 @@ 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.stringstring = exports.stripTranslationMarkup = exports.removeCommentMarkup = exports.getCommentBlock = exports.generateHeaderComments = void 0;
6
+ 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
- function generateHeaderComments(args) {
9
- var _a, _b, _c, _d, _e, _f;
10
- const { author, email, license } = {
11
- author: (_b = (_a = args.headers) === null || _a === void 0 ? void 0 : _a.author) !== null && _b !== void 0 ? _b : 'AUTHOR',
12
- email: (_d = (_c = args.headers) === null || _c === void 0 ? void 0 : _c.email) !== null && _d !== void 0 ? _d : 'EMAIL',
13
- license: (_f = (_e = args.headers) === null || _e === void 0 ? void 0 : _e.license) !== null && _f !== void 0 ? _f : 'gpl-2.0 or later',
14
- };
15
- return `# Copyright (C) ${new Date().getFullYear()} ${author} (${email})
16
- # This file is distributed under the ${license}.`;
17
- }
18
- exports.generateHeaderComments = generateHeaderComments;
19
8
  function getCommentBlock(input) {
20
9
  const commentBlock = input.match(/\/\*\*?[\s\S]*?\*\//);
21
10
  return commentBlock !== null ? commentBlock[0] : input;
22
11
  }
23
12
  exports.getCommentBlock = getCommentBlock;
24
13
  function removeCommentMarkup(input) {
25
- return input.replace(/\/\*[\s\S]*?\*\/|\/\/.*/gm, '');
14
+ return input.match(/[a-zA-Z].*/gm);
26
15
  }
27
16
  exports.removeCommentMarkup = removeCommentMarkup;
28
17
  function stripTranslationMarkup(comment) {
@@ -41,6 +30,20 @@ function stringstring(string) {
41
30
  return null;
42
31
  }
43
32
  exports.stringstring = stringstring;
33
+ function advancedObjectMerge(obj1, obj2) {
34
+ const merged = Object.assign({}, obj1);
35
+ for (const key in obj2) {
36
+ if (Object.prototype.hasOwnProperty.call(obj2, key)) {
37
+ merged[key] =
38
+ obj1[key] && obj1[key].toString() === '[object Object]'
39
+ ?
40
+ advancedObjectMerge(obj1[key], obj2[key])
41
+ : obj2[key];
42
+ }
43
+ }
44
+ return merged;
45
+ }
46
+ exports.advancedObjectMerge = advancedObjectMerge;
44
47
  function detectPatternType(pattern) {
45
48
  const containsFileExtension = pattern.includes('.');
46
49
  const containsDirectorySeparator = pattern.includes(path_1.default.sep) || pattern.endsWith(path_1.default.sep);
package/lib/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wp-blocks/make-pot",
3
- "version": "0.1.0",
3
+ "version": "1.0.0",
4
4
  "description": "A Node.js script for generating a POT file from source code",
5
5
  "author": "Erik Golinelli <https://github.com/erikyo>",
6
6
  "main": "lib/index.js",
@@ -12,27 +12,36 @@
12
12
  "lint": "eslint ./src ./tests --fix",
13
13
  "test": "jest",
14
14
  "update-snapshots": "jest -- -u",
15
- "run": "node ./lib/index.js tests/fixtures/"
15
+ "run": "node ./lib/index.js tests/fixtures/vinyl/"
16
16
  },
17
17
  "bin": {
18
18
  "make-pot": "lib/index.js"
19
19
  },
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "https://github.com/wp-blocks/makePot.git"
23
+ },
24
+ "bugs": {
25
+ "url": "https://github.com/wp-blocks/makePot/issues"
26
+ },
20
27
  "dependencies": {
28
+ "axios": "^1.6.7",
21
29
  "cli-progress": "^3.12.0",
30
+ "gettext-merger": "^0.1.0",
22
31
  "gettext-parser": "^7.0.1",
23
32
  "glob": "^10.3.10",
24
33
  "tree-sitter": "^0.20.6",
25
- "tree-sitter-javascript": "^0.20.1",
34
+ "tree-sitter-javascript": "^0.20.4",
26
35
  "tree-sitter-php": "^0.20.0",
27
- "tree-sitter-typescript": "^0.20.3",
36
+ "tree-sitter-typescript": "^0.20.5",
28
37
  "yargs": "^17.7.2"
29
38
  },
30
39
  "devDependencies": {
31
40
  "@jest/globals": "^29.7.0",
32
41
  "@types/cli-progress": "^3.11.5",
33
42
  "@types/gettext-parser": "^4.0.4",
34
- "@types/jest": "^29.5.11",
35
- "@types/node": "^20.10.4",
43
+ "@types/jest": "^29.5.12",
44
+ "@types/node": "^20.11.19",
36
45
  "@types/strip-comments": "^2.0.4",
37
46
  "@types/yargs": "^17.0.32",
38
47
  "@typescript-eslint/eslint-plugin": "^6.18.1",
@@ -43,11 +52,11 @@
43
52
  "eslint-plugin-import": "^2.29.1",
44
53
  "eslint-plugin-n": "^16.6.1",
45
54
  "eslint-plugin-promise": "^6.1.1",
46
- "husky": "^8.0.3",
55
+ "husky": "^9.0.11",
47
56
  "jest": "^29.7.0",
48
- "lint-staged": "^15.2.0",
49
- "prettier": "3.2.2",
50
- "ts-jest": "^29.1.1",
57
+ "lint-staged": "^15.2.2",
58
+ "prettier": "3.2.5",
59
+ "ts-jest": "^29.1.2",
51
60
  "typescript": "^5.3.3"
52
61
  }
53
62
  }
@@ -1,5 +1,5 @@
1
1
  import { describe, expect } from '@jest/globals'
2
- import { consolidate } from '../src/consolidate'
2
+ import { consolidate } from '../src/parser/consolidate'
3
3
  import { GetTextComment } from 'gettext-parser'
4
4
 
5
5
  describe('consolidate', () => {
@@ -1,5 +1,5 @@
1
1
  import { describe, expect } from '@jest/globals'
2
- import { doTree } from '../src/tree'
2
+ import { doTree } from '../src/parser/tree'
3
3
 
4
4
  describe('getStrings-extra', () => {
5
5
  /** see wp cli tests */
@@ -90,8 +90,15 @@ describe('getStrings-extra', () => {
90
90
 
91
91
  const filename = 'filename.php'
92
92
 
93
- const result = doTree(content, filename)
93
+ const r = doTree(content, filename)
94
+ const res = Object.values(r)[0]
95
+ const translations = Object.keys(res)
96
+ const comments = Object.entries(res).filter(
97
+ ([x, translation]) => !!translation.comments?.translator
98
+ )
94
99
 
95
- expect(result).toMatchSnapshot()
100
+ expect(translations.length).toBeGreaterThanOrEqual(19)
101
+ expect(comments.length).toBeGreaterThanOrEqual(8)
102
+ expect(res).toMatchSnapshot()
96
103
  })
97
104
  })
@@ -1,8 +1,8 @@
1
1
  import { describe, expect } from '@jest/globals'
2
2
  import { getFiles } from '../src/glob'
3
3
  import { Args, DomainType } from '../src/types'
4
- import { parseCliArgs } from '../src/cliArgs'
5
4
  import path from 'path'
5
+ import { parseCliArgs } from '../src/cli/parseCli'
6
6
 
7
7
  describe('getFiles', () => {
8
8
  const DEFAULTS = parseCliArgs({
@@ -1,7 +1,7 @@
1
1
  import { describe, expect } from '@jest/globals'
2
- import { getStrings } from '../src/parser'
3
2
  import { Args, DomainType } from '../src/types'
4
3
  import { getFiles } from '../src/glob'
4
+ import { getStrings } from '../src/parser/process'
5
5
 
6
6
  const args: Args = {
7
7
  slug: 'plugin-slug',
@@ -1,5 +1,5 @@
1
1
  import { describe, expect } from '@jest/globals'
2
- import { parseJsonFile } from '../src/extractors-json'
2
+ import { parseJsonFile } from '../src/extractors/json'
3
3
  import fs from 'fs'
4
4
 
5
5
  describe('should parse json', () => {
@@ -15,38 +15,39 @@ describe('should parse json', () => {
15
15
  msgstr: [],
16
16
  },
17
17
  },
18
- 'block variation description': {
18
+ 'block description': {
19
19
  description: {
20
20
  comments: {
21
21
  reference: 'block/block.json',
22
22
  },
23
- msgctxt: 'block variation description',
23
+ msgctxt: 'block description',
24
24
  msgid: 'description',
25
25
  msgstr: [],
26
26
  },
27
27
  },
28
- 'block variation keyword': {
28
+ 'block keyword': {
29
29
  undefined: {
30
30
  comments: {
31
31
  reference: 'block/block.json',
32
32
  },
33
- msgctxt: 'block variation keyword',
33
+ msgctxt: 'block keyword',
34
+ msgid: undefined,
34
35
  msgstr: [],
35
36
  },
36
37
  },
37
- 'block variation title': {
38
+ 'block title': {
38
39
  title: {
39
40
  comments: {
40
41
  reference: 'block/block.json',
41
42
  },
42
- msgctxt: 'block variation title',
43
+ msgctxt: 'block title',
43
44
  msgid: 'title',
44
45
  msgstr: [],
45
46
  },
46
47
  },
47
48
  }
48
49
 
49
- const result = parseJsonFile({
50
+ const result = await parseJsonFile({
50
51
  sourceCode: fs.readFileSync(
51
52
  'tests/fixtures/block/block.json',
52
53
  'utf8'
@@ -1,9 +0,0 @@
1
- import type { TranslationStrings } from './types';
2
- import { GetTextTranslation } from 'gettext-parser';
3
- export declare function parseJsonFile(opts: {
4
- sourceCode: string;
5
- filename: 'block.json' | 'theme.json';
6
- filepath: string;
7
- }): TranslationStrings;
8
- export declare function getJsonComment(key: string, type?: 'block.json' | 'theme.json'): string;
9
- export declare function jsonString(key: string, data: string, path: string, type?: 'block.json' | 'theme.json'): GetTextTranslation;