@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
@@ -1,53 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.jsonString = exports.getJsonComment = exports.parseJsonFile = void 0;
4
- const extractors_1 = require("./extractors");
5
- const extractors_maps_1 = require("./extractors-maps");
6
- function findValuesInJson(block, jsonData) {
7
- const result = {};
8
- const searchValues = (block, json) => {
9
- for (const key in block) {
10
- if (typeof block[key] === 'object' &&
11
- typeof json[key] === 'object' &&
12
- key in block) {
13
- searchValues(block[key], json[key]);
14
- }
15
- else if (json[key] !== undefined) {
16
- result[key] = json[key];
17
- }
18
- }
19
- };
20
- searchValues(block, jsonData);
21
- return result;
22
- }
23
- function parseJsonFile(opts) {
24
- let parsed = null;
25
- const JsonData = JSON.parse(opts.sourceCode);
26
- parsed = findValuesInJson(JsonData, opts.filename === 'block.json' ? extractors_maps_1.blockJson : extractors_maps_1.themeJson);
27
- if (parsed) {
28
- return (0, extractors_1.yieldParsedData)(parsed, opts.filename, opts.filepath);
29
- }
30
- else {
31
- return {};
32
- }
33
- }
34
- exports.parseJsonFile = parseJsonFile;
35
- function getJsonComment(key, type) {
36
- const comments = type === 'block.json' ? extractors_maps_1.blockJson : extractors_maps_1.themeJson;
37
- return key in Object.values(comments)
38
- ? comments[key]
39
- : key;
40
- }
41
- exports.getJsonComment = getJsonComment;
42
- function jsonString(key, data, path, type) {
43
- return {
44
- msgstr: [],
45
- msgid: getJsonComment(key, type),
46
- msgctxt: data,
47
- comments: {
48
- reference: `${path}`,
49
- },
50
- };
51
- }
52
- exports.jsonString = jsonString;
53
- //# sourceMappingURL=extractors-json.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extractors-json.js","sourceRoot":"","sources":["../src/extractors-json.ts"],"names":[],"mappings":";;;AACA,6CAA8C;AAC9C,uDAA8E;AAU9E,SAAS,gBAAgB,CACxB,KAAQ,EACR,QAA8B;IAE9B,MAAM,MAAM,GAAwB,EAAE,CAAA;IAGtC,MAAM,YAAY,GAAG,CAAC,KAAQ,EAAE,IAAc,EAAE,EAAE;QACjD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACzB,IACC,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,QAAQ;gBAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ;gBAC7B,GAAG,IAAI,KAAK,EACX,CAAC;gBACF,YAAY,CAAC,KAAK,CAAC,GAAG,CAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;YACzC,CAAC;iBAAM,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;gBACpC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;YACxB,CAAC;QACF,CAAC;IACF,CAAC,CAAA;IAED,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IAE7B,OAAO,MAAM,CAAA;AACd,CAAC;AAWD,SAAgB,aAAa,CAAC,IAI7B;IACA,IAAI,MAAM,GAAkC,IAAI,CAAA;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAE5C,MAAM,GAAG,gBAAgB,CACxB,QAAQ,EACR,IAAI,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,2BAAS,CAAC,CAAC,CAAC,2BAAS,CACtD,CAAA;IAED,IAAI,MAAM,EAAE,CAAC;QAEZ,OAAO,IAAA,4BAAe,EAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC7D,CAAC;SAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACV,CAAC;AACF,CAAC;AAnBD,sCAmBC;AASD,SAAgB,cAAc,CAC7B,GAAW,EACX,IAAkC;IAElC,MAAM,QAAQ,GAAG,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,2BAAS,CAAC,CAAC,CAAC,2BAAS,CAAA;IAC9D,OAAO,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACpC,CAAC,CAAC,QAAQ,CAAC,GAA4B,CAAC;QACxC,CAAC,CAAC,GAAG,CAAA;AACP,CAAC;AARD,wCAQC;AAWD,SAAgB,UAAU,CACzB,GAAW,EACX,IAAY,EACZ,IAAY,EACZ,IAAkC;IAElC,OAAO;QACN,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC;QAChC,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE;YACT,SAAS,EAAE,GAAG,IAAI,EAAE;SACF;KACnB,CAAA;AACF,CAAC;AAdD,gCAcC"}
@@ -1,109 +0,0 @@
1
- export declare const themeJson: {
2
- readonly title: "Style variation name";
3
- readonly settings: {
4
- readonly typography: {
5
- readonly fontSizes: readonly [{
6
- readonly name: "Font size name";
7
- }];
8
- readonly fontFamilies: readonly [{
9
- readonly name: "Font family name";
10
- }];
11
- };
12
- readonly color: {
13
- readonly palette: readonly [{
14
- readonly name: "Color name";
15
- }];
16
- readonly gradients: readonly [{
17
- readonly name: "Gradient name";
18
- }];
19
- readonly duotone: readonly [{
20
- readonly name: "Duotone name";
21
- }];
22
- };
23
- readonly spacing: {
24
- readonly spacingSizes: readonly [{
25
- readonly name: "Space size name";
26
- }];
27
- };
28
- readonly blocks: {
29
- readonly '*': {
30
- readonly typography: {
31
- readonly fontSizes: readonly [{
32
- readonly name: "Font size name";
33
- }];
34
- readonly fontFamilies: readonly [{
35
- readonly name: "Font family name";
36
- }];
37
- };
38
- readonly color: {
39
- readonly palette: readonly [{
40
- readonly name: "Color name";
41
- }];
42
- readonly gradients: readonly [{
43
- readonly name: "Gradient name";
44
- }];
45
- };
46
- readonly spacing: {
47
- readonly spacingSizes: readonly [{
48
- readonly name: "Space size name";
49
- }];
50
- };
51
- };
52
- };
53
- };
54
- readonly customTemplates: readonly [{
55
- readonly title: "Custom template name";
56
- }];
57
- readonly templateParts: readonly [{
58
- readonly title: "Template part name";
59
- }];
60
- };
61
- export type ThemeJson = typeof themeJson;
62
- export type ThemeJsonKeys = keyof typeof themeJson;
63
- export declare const blockJson: {
64
- readonly title: "block title";
65
- readonly description: "block description";
66
- readonly keywords: readonly ["block keyword"];
67
- readonly styles: readonly [{
68
- readonly label: "block style label";
69
- }];
70
- readonly variations: readonly [{
71
- readonly title: "block variation title";
72
- readonly description: "block variation description";
73
- readonly keywords: readonly ["block variation keyword"];
74
- }];
75
- };
76
- export type BlockJson = typeof blockJson;
77
- export type BlockJsonKeys = keyof typeof blockJson;
78
- export declare const pkgJsonHeaders: {
79
- name: string;
80
- url: string;
81
- description: string;
82
- author: string;
83
- version: string;
84
- bugs: string;
85
- license: string;
86
- repository: string;
87
- };
88
- export declare const pluginHeaders: {
89
- readonly name: "Plugin Name";
90
- readonly url: "Plugin URI";
91
- readonly description: "Description";
92
- readonly author: "Author";
93
- readonly authorUrl: "Author URI";
94
- readonly version: "Version";
95
- readonly license: "License";
96
- readonly domainPath: "Domain Path";
97
- readonly textDomain: "Text Domain";
98
- };
99
- export declare const themeHeaders: {
100
- readonly name: "Theme Name";
101
- readonly url: "Theme URI";
102
- readonly description: "Description";
103
- readonly author: "Author";
104
- readonly authorUrl: "Author URI";
105
- readonly version: "Version";
106
- readonly license: "License";
107
- readonly domainPath: "Domain Path";
108
- readonly textDomain: "Text Domain";
109
- };
@@ -1,139 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.themeHeaders = exports.pluginHeaders = exports.pkgJsonHeaders = exports.blockJson = exports.themeJson = void 0;
4
- exports.themeJson = {
5
- title: 'Style variation name',
6
- settings: {
7
- typography: {
8
- fontSizes: [
9
- {
10
- name: 'Font size name',
11
- },
12
- ],
13
- fontFamilies: [
14
- {
15
- name: 'Font family name',
16
- },
17
- ],
18
- },
19
- color: {
20
- palette: [
21
- {
22
- name: 'Color name',
23
- },
24
- ],
25
- gradients: [
26
- {
27
- name: 'Gradient name',
28
- },
29
- ],
30
- duotone: [
31
- {
32
- name: 'Duotone name',
33
- },
34
- ],
35
- },
36
- spacing: {
37
- spacingSizes: [
38
- {
39
- name: 'Space size name',
40
- },
41
- ],
42
- },
43
- blocks: {
44
- '*': {
45
- typography: {
46
- fontSizes: [
47
- {
48
- name: 'Font size name',
49
- },
50
- ],
51
- fontFamilies: [
52
- {
53
- name: 'Font family name',
54
- },
55
- ],
56
- },
57
- color: {
58
- palette: [
59
- {
60
- name: 'Color name',
61
- },
62
- ],
63
- gradients: [
64
- {
65
- name: 'Gradient name',
66
- },
67
- ],
68
- },
69
- spacing: {
70
- spacingSizes: [
71
- {
72
- name: 'Space size name',
73
- },
74
- ],
75
- },
76
- },
77
- },
78
- },
79
- customTemplates: [
80
- {
81
- title: 'Custom template name',
82
- },
83
- ],
84
- templateParts: [
85
- {
86
- title: 'Template part name',
87
- },
88
- ],
89
- };
90
- exports.blockJson = {
91
- title: 'block title',
92
- description: 'block description',
93
- keywords: ['block keyword'],
94
- styles: [
95
- {
96
- label: 'block style label',
97
- },
98
- ],
99
- variations: [
100
- {
101
- title: 'block variation title',
102
- description: 'block variation description',
103
- keywords: ['block variation keyword'],
104
- },
105
- ],
106
- };
107
- exports.pkgJsonHeaders = {
108
- name: 'name',
109
- url: 'homepage',
110
- description: 'description',
111
- author: 'author',
112
- version: 'version',
113
- bugs: 'bugs',
114
- license: 'license',
115
- repository: 'repository',
116
- };
117
- exports.pluginHeaders = {
118
- name: 'Plugin Name',
119
- url: 'Plugin URI',
120
- description: 'Description',
121
- author: 'Author',
122
- authorUrl: 'Author URI',
123
- version: 'Version',
124
- license: 'License',
125
- domainPath: 'Domain Path',
126
- textDomain: 'Text Domain',
127
- };
128
- exports.themeHeaders = {
129
- name: 'Theme Name',
130
- url: 'Theme URI',
131
- description: 'Description',
132
- author: 'Author',
133
- authorUrl: 'Author URI',
134
- version: 'Version',
135
- license: 'License',
136
- domainPath: 'Domain Path',
137
- textDomain: 'Text Domain',
138
- };
139
- //# sourceMappingURL=extractors-maps.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extractors-maps.js","sourceRoot":"","sources":["../src/extractors-maps.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG;IACxB,KAAK,EAAE,sBAAsB;IAC7B,QAAQ,EAAE;QACT,UAAU,EAAE;YACX,SAAS,EAAE;gBACV;oBACC,IAAI,EAAE,gBAAgB;iBACtB;aACD;YACD,YAAY,EAAE;gBACb;oBACC,IAAI,EAAE,kBAAkB;iBACxB;aACD;SACD;QACD,KAAK,EAAE;YACN,OAAO,EAAE;gBACR;oBACC,IAAI,EAAE,YAAY;iBAClB;aACD;YACD,SAAS,EAAE;gBACV;oBACC,IAAI,EAAE,eAAe;iBACrB;aACD;YACD,OAAO,EAAE;gBACR;oBACC,IAAI,EAAE,cAAc;iBACpB;aACD;SACD;QACD,OAAO,EAAE;YACR,YAAY,EAAE;gBACb;oBACC,IAAI,EAAE,iBAAiB;iBACvB;aACD;SACD;QACD,MAAM,EAAE;YACP,GAAG,EAAE;gBACJ,UAAU,EAAE;oBACX,SAAS,EAAE;wBACV;4BACC,IAAI,EAAE,gBAAgB;yBACtB;qBACD;oBACD,YAAY,EAAE;wBACb;4BACC,IAAI,EAAE,kBAAkB;yBACxB;qBACD;iBACD;gBACD,KAAK,EAAE;oBACN,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,YAAY;yBAClB;qBACD;oBACD,SAAS,EAAE;wBACV;4BACC,IAAI,EAAE,eAAe;yBACrB;qBACD;iBACD;gBACD,OAAO,EAAE;oBACR,YAAY,EAAE;wBACb;4BACC,IAAI,EAAE,iBAAiB;yBACvB;qBACD;iBACD;aACD;SACD;KACD;IACD,eAAe,EAAE;QAChB;YACC,KAAK,EAAE,sBAAsB;SAC7B;KACD;IACD,aAAa,EAAE;QACd;YACC,KAAK,EAAE,oBAAoB;SAC3B;KACD;CACQ,CAAA;AAKG,QAAA,SAAS,GAAG;IACxB,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,mBAAmB;IAChC,QAAQ,EAAE,CAAC,eAAe,CAAC;IAC3B,MAAM,EAAE;QACP;YACC,KAAK,EAAE,mBAAmB;SAC1B;KACD;IACD,UAAU,EAAE;QACX;YACC,KAAK,EAAE,uBAAuB;YAC9B,WAAW,EAAE,6BAA6B;YAC1C,QAAQ,EAAE,CAAC,yBAAyB,CAAC;SACrC;KACD;CACQ,CAAA;AAKG,QAAA,cAAc,GAAG;IAC7B,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,UAAU;IACf,WAAW,EAAE,aAAa;IAC1B,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,YAAY;CACxB,CAAA;AAEY,QAAA,aAAa,GAAG;IAC5B,IAAI,EAAE,aAAa;IACnB,GAAG,EAAE,YAAY;IACjB,WAAW,EAAE,aAAa;IAC1B,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,YAAY;IACvB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,aAAa;IACzB,UAAU,EAAE,aAAa;CAChB,CAAA;AAEG,QAAA,YAAY,GAAG;IAC3B,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,WAAW;IAChB,WAAW,EAAE,aAAa;IAC1B,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,YAAY;IACvB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,aAAa;IACzB,UAAU,EAAE,aAAa;CAChB,CAAA"}
@@ -1 +0,0 @@
1
- export declare function parsePHPFile(phpContent: string): Record<string, string>;
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parsePHPFile = void 0;
4
- const extractors_maps_1 = require("./extractors-maps");
5
- function parsePHPFile(phpContent) {
6
- var _a;
7
- const match = phpContent.match(/\/\*\*([\s\S]*?)\*\//);
8
- if (match && match[1]) {
9
- const commentBlock = match[1];
10
- const lines = commentBlock.split('\n');
11
- const pluginInfo = {};
12
- for (const line of lines) {
13
- const keyValueMatch = line.match(/^\s*\*\s*([^:]+):\s*(.*)/);
14
- if (keyValueMatch && keyValueMatch[1] && keyValueMatch[2]) {
15
- let header = keyValueMatch[1].trim();
16
- header = (_a = extractors_maps_1.pluginHeaders[header]) !== null && _a !== void 0 ? _a : header;
17
- pluginInfo[header] = keyValueMatch[2].trim();
18
- }
19
- }
20
- return pluginInfo;
21
- }
22
- return {};
23
- }
24
- exports.parsePHPFile = parsePHPFile;
25
- //# sourceMappingURL=extractors-php.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extractors-php.js","sourceRoot":"","sources":["../src/extractors-php.ts"],"names":[],"mappings":";;;AAAA,uDAAiD;AAQjD,SAAgB,YAAY,CAAC,UAAkB;;IAC9C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;IAEtD,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAEtC,MAAM,UAAU,GAA2B,EAAE,CAAA;QAE7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;YAE5D,IAAI,aAAa,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3D,IAAI,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;gBACpC,MAAM,GAAG,MAAA,+BAAa,CAAC,MAAoC,CAAC,mCAAI,MAAM,CAAA;gBACtE,UAAU,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YAC7C,CAAC;QACF,CAAC;QACD,OAAO,UAAU,CAAA;IAClB,CAAC;IACD,OAAO,EAAE,CAAA;AACV,CAAC;AArBD,oCAqBC"}
@@ -1 +0,0 @@
1
- export declare function extractFileData(fileContent: string): Record<string, string>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"extractors-text.js","sourceRoot":"","sources":["../src/extractors-text.ts"],"names":[],"mappings":";;;AAAA,mCAA6C;AAQ7C,SAAgB,eAAe,CAAC,WAAmB;IAClD,MAAM,IAAI,GAA2B,EAAE,CAAA;IAGvC,WAAW;SACT,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,2BAAmB,EAAC,IAAI,CAAC,CAAC;SAExC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC7B,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAM;QACP,CAAC;QACD,IAAI,CAAC,MAAA,KAAK,CAAC,CAAC,CAAC,0CAAE,IAAI,EAAE,CAAC,GAAG,MAAA,KAAK,CAAC,CAAC,CAAC,0CAAE,IAAI,EAAE,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEH,OAAO,IAAI,CAAA;AACZ,CAAC;AAlBD,0CAkBC"}
@@ -1,17 +0,0 @@
1
- import { type Args, type TranslationStrings } from './types';
2
- import Parser from 'tree-sitter';
3
- export declare function yieldParsedData(parsed: Record<string, any>, filename: string | Parser, filepath: string): TranslationStrings;
4
- export declare function parseFile(file: string, filePath?: string): Promise<TranslationStrings | null>;
5
- export declare function extractPackageJson(args: Args, fields?: {
6
- name: string;
7
- url: string;
8
- description: string;
9
- author: string;
10
- version: string;
11
- bugs: string;
12
- license: string;
13
- repository: string;
14
- }): Record<string, string>;
15
- export declare function extractPhpPluginData(args: Args): void;
16
- export declare function extractCssThemeData(args: Args): Record<string, string> | undefined;
17
- export declare function extractMainFileData(args: Args): void | Record<string, string>;
package/lib/extractors.js DELETED
@@ -1,137 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- Object.defineProperty(exports, "__esModule", { value: true });
35
- exports.extractMainFileData = exports.extractCssThemeData = exports.extractPhpPluginData = exports.extractPackageJson = exports.parseFile = exports.yieldParsedData = void 0;
36
- const path = __importStar(require("path"));
37
- const fs = __importStar(require("fs"));
38
- const utils_1 = require("./utils");
39
- const extractors_json_1 = require("./extractors-json");
40
- const extractors_php_1 = require("./extractors-php");
41
- const extractors_text_1 = require("./extractors-text");
42
- const extractors_maps_1 = require("./extractors-maps");
43
- const tree_1 = require("./tree");
44
- function yieldParsedData(parsed, filename, filepath) {
45
- const gettextTranslations = {};
46
- Object.entries(parsed).map(([k, v]) => {
47
- var _a, _b;
48
- const entry = (0, extractors_json_1.jsonString)(k, v, filepath, filename);
49
- gettextTranslations[(_a = entry.msgctxt) !== null && _a !== void 0 ? _a : ''] = Object.assign(Object.assign({}, (gettextTranslations[(_b = entry.msgctxt) !== null && _b !== void 0 ? _b : ''] || {})), { [entry.msgid]: entry });
50
- });
51
- return gettextTranslations;
52
- }
53
- exports.yieldParsedData = yieldParsedData;
54
- function parseFile(file, filePath = '') {
55
- return __awaiter(this, void 0, void 0, function* () {
56
- const ext = path.extname(file).replace(/^./, '');
57
- const fileRealPath = path.resolve(filePath, file);
58
- if (ext === 'json') {
59
- const filename = path.basename(file);
60
- if (filename === 'theme.json' || filename === 'block.json') {
61
- return (0, extractors_json_1.parseJsonFile)({
62
- sourceCode: fs.readFileSync(fileRealPath, 'utf8'),
63
- filename: filename,
64
- filepath: filePath,
65
- });
66
- }
67
- }
68
- if (['ts', 'tsx', 'js', 'jsx', 'mjs', 'cjs', 'php'].includes(ext)) {
69
- const sourceCode = fs.readFileSync(fileRealPath, 'utf8');
70
- return (0, tree_1.doTree)(sourceCode, file);
71
- }
72
- return new Promise((resolve) => resolve(null));
73
- });
74
- }
75
- exports.parseFile = parseFile;
76
- function extractPackageJson(args, fields = extractors_maps_1.pkgJsonHeaders) {
77
- const pkgJsonMeta = {};
78
- const packageJsonPath = args.paths.cwd
79
- ? path.join(args.paths.cwd, 'package.json')
80
- : 'package.json';
81
- if (fs.existsSync(packageJsonPath)) {
82
- const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
83
- for (const field of Object.keys(fields)) {
84
- if (packageJson[field] !== undefined) {
85
- pkgJsonMeta[field] = packageJson[field];
86
- }
87
- }
88
- }
89
- return pkgJsonMeta;
90
- }
91
- exports.extractPackageJson = extractPackageJson;
92
- function extractPhpPluginData(args) {
93
- let fileData = {};
94
- const folderPhpFile = path.join(args.paths.cwd, `${args.slug}.php`);
95
- if (fs.existsSync(folderPhpFile)) {
96
- const fileContent = fs.readFileSync(folderPhpFile, 'utf8');
97
- fileData = (0, extractors_php_1.parsePHPFile)(fileContent);
98
- if ('Plugin Name' in fileData) {
99
- console.log('Plugin file detected.');
100
- console.log(`Plugin file: ${folderPhpFile}`);
101
- args.domain = 'plugin';
102
- }
103
- }
104
- else {
105
- console.log('Plugin file not found.');
106
- console.log(`Missing Plugin filename: ${folderPhpFile}`);
107
- }
108
- }
109
- exports.extractPhpPluginData = extractPhpPluginData;
110
- function extractCssThemeData(args) {
111
- let fileData = {};
112
- const styleCssFile = path.join(args.paths.cwd, 'style.css');
113
- if (fs.existsSync(styleCssFile)) {
114
- const fileContent = fs.readFileSync(styleCssFile, 'utf8');
115
- const commentBlock = (0, utils_1.getCommentBlock)(fileContent);
116
- fileData = (0, extractors_text_1.extractFileData)(commentBlock);
117
- console.log('Theme stylesheet detected.');
118
- console.log(`Theme stylesheet: ${styleCssFile}`);
119
- args.domain = 'theme';
120
- return fileData;
121
- }
122
- else {
123
- console.log(`Theme stylesheet not found in ${styleCssFile}`);
124
- }
125
- }
126
- exports.extractCssThemeData = extractCssThemeData;
127
- function extractMainFileData(args) {
128
- if (['plugin', 'block', 'generic'].includes(args.domain)) {
129
- return extractPhpPluginData(args);
130
- }
131
- else if (['theme', 'theme-block'].includes(args.domain)) {
132
- return extractCssThemeData(args);
133
- }
134
- return console.log('No main file detected.');
135
- }
136
- exports.extractMainFileData = extractMainFileData;
137
- //# sourceMappingURL=extractors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extractors.js","sourceRoot":"","sources":["../src/extractors.ts"],"names":[],"mappings":"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"}
package/tests/index.html DELETED
@@ -1,78 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>WordPress Plugin Translator</title>
7
- <style>
8
- #drop-area {
9
- border: 2px dashed #ccc;
10
- border-radius: 8px;
11
- padding: 20px;
12
- text-align: center;
13
- cursor: pointer;
14
- }
15
- </style>
16
- </head>
17
- <body>
18
-
19
- <div id="drop-area" ondragover="allowDrop(event)" ondrop="handleDrop(event)">
20
- <p>Drop WordPress plugin (zip or tar) file here</p>
21
- <input type="file" id="fileInput" style="display: none;" accept=".zip, .tar">
22
- </div>
23
-
24
- <script>
25
- function allowDrop(event) {
26
- event.preventDefault();
27
- event.target.classList.add('drag-over');
28
- }
29
-
30
- function handleDrop(event) {
31
- event.preventDefault();
32
- event.target.classList.remove('drag-over');
33
-
34
- const files = event.dataTransfer.files;
35
- if (files.length > 0) {
36
- const file = files[0];
37
- if (file.name.endsWith('.zip') || file.name.endsWith('.tar')) {
38
- handleFile(file);
39
- } else {
40
- alert("Please drop a valid zip or tar file.");
41
- }
42
- }
43
- }
44
-
45
- function handleFile(file) {
46
- const reader = new FileReader();
47
-
48
- reader.onload = function (e) {
49
- const arrayBuffer = e.target.result;
50
- // Use a library or custom code to unpack the zip file and parse the WordPress plugin.
51
- // This is a simplified example, and you may need to include a library like JSZip for handling zip files.
52
- // Example: const zip = new JSZip(arrayBuffer);
53
-
54
- // For demonstration purposes, let's assume the plugin is parsed, and the pot file is generated.
55
- const potFileContent = "msgid \"\"\nmsgstr \"\"\n";
56
-
57
- // Display the pot file content (you may want to handle it differently in your application).
58
- alert("Pot File Content:\n" + potFileContent);
59
- };
60
-
61
- reader.readAsArrayBuffer(file);
62
- }
63
-
64
- // Alternatively, you can trigger the file input manually.
65
- document.getElementById('drop-area').addEventListener('click', function () {
66
- document.getElementById('fileInput').click();
67
- });
68
-
69
- document.getElementById('fileInput').addEventListener('change', function () {
70
- const file = this.files[0];
71
- if (file) {
72
- handleFile(file);
73
- }
74
- });
75
- </script>
76
-
77
- </body>
78
- </html>