@wp-blocks/make-pot 0.2.2 → 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.
- package/README.md +53 -34
- package/lib/assets/package-i18n.json +11 -0
- package/lib/assets/wp-plugin-i18n.json +14 -0
- package/lib/assets/wp-theme-i18n.json +13 -0
- package/lib/cli/index.d.ts +1 -0
- package/lib/cli/index.js +114 -0
- package/lib/cli/index.js.map +1 -0
- package/lib/cli/parseCli.d.ts +3 -0
- package/lib/cli/parseCli.js +111 -0
- package/lib/cli/parseCli.js.map +1 -0
- package/lib/cliArgs.js +36 -4
- package/lib/cliArgs.js.map +1 -1
- package/lib/const.d.ts +112 -0
- package/lib/const.js +40 -3
- package/lib/const.js.map +1 -1
- package/lib/extractors/css.js +13 -2
- package/lib/extractors/css.js.map +1 -1
- package/lib/extractors/headers.d.ts +1 -3
- package/lib/extractors/headers.js +8 -6
- package/lib/extractors/headers.js.map +1 -1
- package/lib/extractors/index.d.ts +1 -2
- package/lib/extractors/index.js +9 -44
- package/lib/extractors/index.js.map +1 -1
- package/lib/extractors/json.d.ts +5 -3
- package/lib/extractors/json.js +48 -4
- package/lib/extractors/json.js.map +1 -1
- package/lib/extractors/php.js +8 -15
- package/lib/extractors/php.js.map +1 -1
- package/lib/extractors/schema.js +5 -1
- package/lib/extractors/schema.js.map +1 -1
- package/lib/extractors/text.js +2 -6
- package/lib/extractors/text.js.map +1 -1
- package/lib/extractors/utils.d.ts +3 -3
- package/lib/extractors/utils.js +34 -25
- package/lib/extractors/utils.js.map +1 -1
- package/lib/fs/glob.d.ts +13 -0
- package/lib/fs/glob.js +95 -0
- package/lib/fs/glob.js.map +1 -0
- package/lib/fs/index.d.ts +2 -0
- package/lib/fs/index.js +69 -0
- package/lib/fs/index.js.map +1 -0
- package/lib/fs.d.ts +2 -1
- package/lib/fs.js +15 -8
- package/lib/fs.js.map +1 -1
- package/lib/index.js +5 -5
- package/lib/index.js.map +1 -1
- package/lib/makePot.d.ts +1 -1
- package/lib/makePot.js +20 -13
- package/lib/makePot.js.map +1 -1
- package/lib/maps.d.ts +1 -3
- package/lib/maps.js +12 -3
- package/lib/maps.js.map +1 -1
- package/lib/parser/consolidate.d.ts +2 -0
- package/lib/parser/consolidate.js +37 -0
- package/lib/parser/consolidate.js.map +1 -0
- package/lib/parser/exec.d.ts +3 -0
- package/lib/parser/exec.js +71 -0
- package/lib/parser/exec.js.map +1 -0
- package/lib/parser/index.d.ts +2 -0
- package/lib/parser/index.js +24 -0
- package/lib/parser/index.js.map +1 -0
- package/lib/parser/makePot.d.ts +2 -0
- package/lib/parser/makePot.js +39 -0
- package/lib/parser/makePot.js.map +1 -0
- package/lib/parser/patterns.d.ts +2 -0
- package/lib/parser/patterns.js +34 -0
- package/lib/parser/patterns.js.map +1 -0
- package/lib/parser/process.d.ts +5 -0
- package/lib/parser/process.js +71 -0
- package/lib/parser/process.js.map +1 -0
- package/lib/parser/tree.d.ts +2 -0
- package/lib/parser/tree.js +78 -0
- package/lib/parser/tree.js.map +1 -0
- package/lib/parser.d.ts +2 -2
- package/lib/parser.js +58 -57
- package/lib/parser.js.map +1 -1
- package/lib/types.d.ts +4 -3
- package/lib/utils/index.d.ts +8 -0
- package/lib/utils/index.js +78 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils.d.ts +1 -1
- package/lib/utils.js +1 -1
- package/lib/utils.js.map +1 -1
- package/package.json +1 -1
- package/tests/consolidate.test.ts +1 -1
- package/tests/extract-2.test.ts +1 -1
- package/tests/getFiles.old.ts +1 -1
- package/tests/getStrings.old.ts +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glob.js","sourceRoot":"","sources":["../../src/fs/glob.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,gDAAuB;AAEvB,+BAAiC;AACjC,yCAAqC;AAGrC,mEAAoD;AAEpD,2DAA4C;AAE5C,qDAAsC;AACtC,oCAA4C;AAQ5C,SAAgB,SAAS,CAAC,IAAY;IACrC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;IACjC,QAAQ,GAAG,EAAE,CAAC;QACb,KAAK,IAAI;YACR,OAAO,EAAE,CAAC,OAAO,CAAC,UAAU,CAAA;QAC7B,KAAK,KAAK;YACT,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA;QACtB,KAAK,IAAI,CAAC;QACV,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,CAAC;QACX,KAAK,KAAK;YACT,OAAO,UAAU,CAAC,OAAO,CAAA;QAC1B,KAAK,KAAK;YACT,OAAO,GAAG,CAAC,OAAO,CAAA;QACnB;YACC,OAAO,GAAI,CAAA;IACb,CAAC;AACF,CAAC;AAjBD,8BAiBC;AAGM,MAAM,UAAU,GAAG,CACzB,QAAc,EACd,gBAA0B,EAChB,EAAE;IACZ,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;QACxC,MAAM,IAAI,GAAG,IAAA,yBAAiB,EAAC,OAAO,CAAC,CAAA;QAEvC,QAAQ,IAAI,EAAE,CAAC;YACd,KAAK,MAAM;gBACV,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YACjC,KAAK,WAAW;gBACf,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;YAC7C;gBAEC,OAAO,IAAA,qBAAS,EAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAA;QAChD,CAAC;IACF,CAAC,CAAY,CAAA;AACd,CAAC,CAAA;AAjBY,QAAA,UAAU,cAiBtB;AASD,SAAsB,QAAQ,CAAC,IAAU,EAAE,OAAiB;;;QAC3D,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,CAAA;YACxB,OAAO,CAAC,GAAG,CACV,gBAAgB,EAChB,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAC5B,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAC/B,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAChD,CAAA;QAGF,OAAO,IAAI,WAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YAChC,MAAM,EAAE;gBACP,OAAO,EAAE,CAAC,CAAO,EAAE,EAAE,CAAC,IAAA,kBAAU,EAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC;aACpD;YACD,KAAK,EAAE,IAAI;YACX,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG;YACnB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SACjE,CAAC,CAAA;;CACF;AAlBD,4BAkBC"}
|
package/lib/fs/index.js
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.readFileAsync = exports.writeFile = void 0;
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
41
|
+
function ensureFolderExists(folderPath) {
|
|
42
|
+
if (folderPath === undefined) {
|
|
43
|
+
return '.';
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
node_fs_1.default.accessSync(path.resolve(folderPath), node_fs_1.default.constants.R_OK | node_fs_1.default.constants.W_OK);
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
if (error.code === 'ENOENT') {
|
|
50
|
+
node_fs_1.default.mkdirSync(folderPath, { recursive: true });
|
|
51
|
+
console.log(`Folder created: ${folderPath}`);
|
|
52
|
+
return folderPath;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return folderPath;
|
|
56
|
+
}
|
|
57
|
+
function writeFile(fileContent, dest) {
|
|
58
|
+
if (ensureFolderExists(path.dirname(dest))) {
|
|
59
|
+
node_fs_1.default.writeFileSync(dest, fileContent);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.writeFile = writeFile;
|
|
63
|
+
function readFileAsync(path) {
|
|
64
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
65
|
+
return node_fs_1.default.promises.readFile(path, 'utf-8');
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
exports.readFileAsync = readFileAsync;
|
|
69
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4B;AAC5B,sDAAwB;AAQxB,SAAS,kBAAkB,CAAC,UAA8B;IACzD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,GAAG,CAAA;IACX,CAAC;IACD,IAAI,CAAC;QAEJ,iBAAE,CAAC,UAAU,CACZ,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EACxB,iBAAE,CAAC,SAAS,CAAC,IAAI,GAAG,iBAAE,CAAC,SAAS,CAAC,IAAI,CACrC,CAAA;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAExD,iBAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAC7C,OAAO,CAAC,GAAG,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAA;YAC5C,OAAO,UAAU,CAAA;QAClB,CAAC;IACF,CAAC;IACD,OAAO,UAAU,CAAA;AAClB,CAAC;AAQD,SAAgB,SAAS,CAAC,WAAmB,EAAE,IAAY;IAC1D,IAAI,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC5C,iBAAE,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IACpC,CAAC;AACF,CAAC;AAJD,8BAIC;AAED,SAAsB,aAAa,CAAC,IAAY;;QAC/C,OAAO,iBAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC3C,CAAC;CAAA;AAFD,sCAEC"}
|
package/lib/fs.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export declare function writeFile(fileContent: string, dest: string):
|
|
1
|
+
export declare function writeFile(fileContent: string, dest: string): void;
|
|
2
|
+
export declare function readFileAsync(path: string): Promise<string>;
|
package/lib/fs.js
CHANGED
|
@@ -31,20 +31,23 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
31
31
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
32
|
});
|
|
33
33
|
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
34
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
exports.writeFile = void 0;
|
|
38
|
+
exports.readFileAsync = exports.writeFile = void 0;
|
|
36
39
|
const path = __importStar(require("path"));
|
|
37
|
-
const
|
|
40
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
38
41
|
function ensureFolderExists(folderPath) {
|
|
39
42
|
if (folderPath === undefined) {
|
|
40
43
|
return '.';
|
|
41
44
|
}
|
|
42
45
|
try {
|
|
43
|
-
|
|
46
|
+
node_fs_1.default.accessSync(path.resolve(folderPath), node_fs_1.default.constants.R_OK | node_fs_1.default.constants.W_OK);
|
|
44
47
|
}
|
|
45
48
|
catch (error) {
|
|
46
49
|
if (error.code === 'ENOENT') {
|
|
47
|
-
|
|
50
|
+
node_fs_1.default.mkdirSync(folderPath, { recursive: true });
|
|
48
51
|
console.log(`Folder created: ${folderPath}`);
|
|
49
52
|
return folderPath;
|
|
50
53
|
}
|
|
@@ -52,11 +55,15 @@ function ensureFolderExists(folderPath) {
|
|
|
52
55
|
return folderPath;
|
|
53
56
|
}
|
|
54
57
|
function writeFile(fileContent, dest) {
|
|
58
|
+
if (ensureFolderExists(path.dirname(dest))) {
|
|
59
|
+
node_fs_1.default.writeFileSync(dest, fileContent);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.writeFile = writeFile;
|
|
63
|
+
function readFileAsync(path) {
|
|
55
64
|
return __awaiter(this, void 0, void 0, function* () {
|
|
56
|
-
|
|
57
|
-
fs.writeFileSync(dest, fileContent);
|
|
58
|
-
}
|
|
65
|
+
return node_fs_1.default.promises.readFile(path, 'utf-8');
|
|
59
66
|
});
|
|
60
67
|
}
|
|
61
|
-
exports.
|
|
68
|
+
exports.readFileAsync = readFileAsync;
|
|
62
69
|
//# sourceMappingURL=fs.js.map
|
package/lib/fs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4B;AAC5B,sDAAwB;AAQxB,SAAS,kBAAkB,CAAC,UAA8B;IACzD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,GAAG,CAAA;IACX,CAAC;IACD,IAAI,CAAC;QAEJ,iBAAE,CAAC,UAAU,CACZ,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EACxB,iBAAE,CAAC,SAAS,CAAC,IAAI,GAAG,iBAAE,CAAC,SAAS,CAAC,IAAI,CACrC,CAAA;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAExD,iBAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAC7C,OAAO,CAAC,GAAG,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAA;YAC5C,OAAO,UAAU,CAAA;QAClB,CAAC;IACF,CAAC;IACD,OAAO,UAAU,CAAA;AAClB,CAAC;AAQD,SAAgB,SAAS,CAAC,WAAmB,EAAE,IAAY;IAC1D,IAAI,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC5C,iBAAE,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IACpC,CAAC;AACF,CAAC;AAJD,8BAIC;AAED,SAAsB,aAAa,CAAC,IAAY;;QAC/C,OAAO,iBAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC3C,CAAC;CAAA;AAFD,sCAEC"}
|
package/lib/index.js
CHANGED
|
@@ -4,13 +4,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
5
|
};
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
const makePot_1 = require("./makePot");
|
|
8
|
-
const cliArgs_1 = require("./cliArgs");
|
|
7
|
+
const makePot_1 = require("./parser/makePot");
|
|
9
8
|
const yargs_1 = __importDefault(require("yargs"));
|
|
10
|
-
const
|
|
11
|
-
const
|
|
9
|
+
const const_1 = require("./const");
|
|
10
|
+
const cli_1 = require("./cli");
|
|
11
|
+
const args = (0, cli_1.getArgs)();
|
|
12
12
|
if (Object.keys(args).length > 0) {
|
|
13
|
-
console.log(
|
|
13
|
+
console.log(const_1.pkgJson.name + ' version: ' + const_1.pkgJson.version);
|
|
14
14
|
const timeStart = new Date();
|
|
15
15
|
(0, makePot_1.makePot)(args)
|
|
16
16
|
.then(() => {
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AACA,8CAA0C;AAE1C,kDAAyB;AACzB,mCAAiC;AACjC,+BAA+B;AAG/B,MAAM,IAAI,GAAG,IAAA,aAAO,GAAE,CAAA;AAEtB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IAElC,OAAO,CAAC,GAAG,CAAC,eAAO,CAAC,IAAI,GAAG,YAAY,GAAG,eAAO,CAAC,OAAO,CAAC,CAAA;IAE1D,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAA;IAE5B,IAAA,iBAAO,EAAC,IAAI,CAAC;SACX,IAAI,CAAC,GAAG,EAAE;QAEV,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAA;QAC1B,OAAO,CAAC,GAAG,CACV,sCAAsC,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CACjF,CAAA;IACF,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QAChB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACrB,CAAC,CAAC,CAAA;AACJ,CAAC;KAAM,CAAC;IAEP,eAAK,CAAC,QAAQ,EAAE,CAAA;AACjB,CAAC"}
|
package/lib/makePot.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { type Args } from './types';
|
|
2
|
-
export declare function makePot(args: Args): Promise<
|
|
2
|
+
export declare function makePot(args: Args): Promise<string>;
|
package/lib/makePot.js
CHANGED
|
@@ -19,19 +19,22 @@ const parser_1 = require("./parser");
|
|
|
19
19
|
const node_os_1 = require("node:os");
|
|
20
20
|
const gettext_parser_1 = __importDefault(require("gettext-parser"));
|
|
21
21
|
const path_1 = __importDefault(require("path"));
|
|
22
|
-
const utils_1 = require("./
|
|
23
|
-
const
|
|
22
|
+
const utils_1 = require("./utils");
|
|
23
|
+
const consolidate_1 = require("./consolidate");
|
|
24
|
+
const json_1 = require("./extractors/json");
|
|
24
25
|
function exec(args) {
|
|
25
|
-
var _a, _b, _c, _d, _e;
|
|
26
|
+
var _a, _b, _c, _d, _e, _f;
|
|
26
27
|
return __awaiter(this, void 0, void 0, function* () {
|
|
27
28
|
if (!((_a = args.options) === null || _a === void 0 ? void 0 : _a.silent)) {
|
|
28
29
|
console.log('📝 Starting makePot for ', args === null || args === void 0 ? void 0 : args.slug);
|
|
29
30
|
console.log('🔍 Extracting strings from', args.paths);
|
|
30
|
-
console.log('💢 With
|
|
31
|
+
console.log('💢 With options', args.options);
|
|
31
32
|
}
|
|
32
|
-
|
|
33
|
+
let stringsJson = yield (0, parser_1.runExtract)(args);
|
|
34
|
+
console.log('🎉 Done!', stringsJson);
|
|
35
|
+
stringsJson = stringsJson.filter((value) => value && Object.values(value).length);
|
|
36
|
+
const consolidatedStrings = (0, consolidate_1.consolidate)(stringsJson);
|
|
33
37
|
if (!((_b = args.options) === null || _b === void 0 ? void 0 : _b.silent)) {
|
|
34
|
-
console.log('✅ Done!');
|
|
35
38
|
console.log('Memory usage:', (process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2), 'MB (Free:', ((0, node_os_1.totalmem)() / 1024 / 1024 / 1024).toFixed(2), 'GB)\n', 'Cpu User:', (process.cpuUsage().user / 1000000).toFixed(2), 'ms Cpu System:', (process.cpuUsage().system / 1000000).toFixed(2), 'ms of', (0, node_os_1.cpus)().length, 'cores');
|
|
36
39
|
}
|
|
37
40
|
if ((_c = args.options) === null || _c === void 0 ? void 0 : _c.skip.audit) {
|
|
@@ -42,7 +45,14 @@ function exec(args) {
|
|
|
42
45
|
const copyrightComment = `# Copyright (C) ${new Date().getFullYear()} ${args.slug}\n` +
|
|
43
46
|
`# This file is distributed under the ${(_e = (_d = args.headers) === null || _d === void 0 ? void 0 : _d.license) !== null && _e !== void 0 ? _e : 'GPL v2 or later'} license.`;
|
|
44
47
|
const potDefinitions = (0, headers_1.translationsHeaders)(args);
|
|
45
|
-
const translationsUnion = (0,
|
|
48
|
+
const translationsUnion = (0, utils_1.advancedObjectMerge)({ '': potDefinitions }, consolidatedStrings);
|
|
49
|
+
if (!((_f = args.options) === null || _f === void 0 ? void 0 : _f.silent)) {
|
|
50
|
+
console.log('📝 Found', Object.values(translationsUnion).length, 'group of strings in', stringsJson.length, 'files.\n', 'In total ' +
|
|
51
|
+
Object.values(translationsUnion)
|
|
52
|
+
.map((v) => Object.keys(v).length)
|
|
53
|
+
.reduce((acc, val) => acc + val, 0) +
|
|
54
|
+
' strings were found');
|
|
55
|
+
}
|
|
46
56
|
const getTextTranslations = {
|
|
47
57
|
charset: 'iso-8859-1',
|
|
48
58
|
headers: potHeader,
|
|
@@ -57,7 +67,7 @@ function exec(args) {
|
|
|
57
67
|
function makePot(args) {
|
|
58
68
|
var _a;
|
|
59
69
|
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
-
const pkgData = (0,
|
|
70
|
+
const pkgData = (0, json_1.extractPackageJson)(args);
|
|
61
71
|
const metadata = (0, headers_1.extractMainFileData)(args);
|
|
62
72
|
args.headers = Object.assign(Object.assign(Object.assign({}, args.headers), pkgData), {
|
|
63
73
|
name: metadata.name,
|
|
@@ -65,11 +75,8 @@ function makePot(args) {
|
|
|
65
75
|
author: metadata.author,
|
|
66
76
|
});
|
|
67
77
|
const jsonTranslations = yield exec(args);
|
|
68
|
-
(0, fs_1.writeFile)(jsonTranslations, path_1.default.join(process.cwd(), args.paths.out, `${args === null || args === void 0 ? void 0 : args.slug}.${((_a = args.options) === null || _a === void 0 ? void 0 : _a.json) ? 'json' : 'pot'}`))
|
|
69
|
-
|
|
70
|
-
console.log(err);
|
|
71
|
-
})
|
|
72
|
-
.finally(() => jsonTranslations);
|
|
78
|
+
(0, fs_1.writeFile)(jsonTranslations, path_1.default.join(process.cwd(), args.paths.out, `${args === null || args === void 0 ? void 0 : args.slug}.${((_a = args.options) === null || _a === void 0 ? void 0 : _a.json) ? 'json' : 'pot'}`));
|
|
79
|
+
return jsonTranslations;
|
|
73
80
|
});
|
|
74
81
|
}
|
|
75
82
|
exports.makePot = makePot;
|
package/lib/makePot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makePot.js","sourceRoot":"","sources":["../src/makePot.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,kDAI6B;AAC7B,6BAAgC;AAChC,qCAAqC;AACrC,qCAAwC;AACxC,oEAGuB;AACvB,gDAAuB;AACvB,
|
|
1
|
+
{"version":3,"file":"makePot.js","sourceRoot":"","sources":["../src/makePot.ts"],"names":[],"mappings":"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"}
|
package/lib/maps.d.ts
CHANGED
|
@@ -85,7 +85,7 @@ export declare const pluginJson: {
|
|
|
85
85
|
keywords: string[];
|
|
86
86
|
}[];
|
|
87
87
|
};
|
|
88
|
-
export
|
|
88
|
+
export declare const pkgJsonHeaders: {
|
|
89
89
|
name: string;
|
|
90
90
|
url: string;
|
|
91
91
|
description: string;
|
|
@@ -101,8 +101,6 @@ export declare const pluginHeaders: {
|
|
|
101
101
|
readonly url: "Plugin URI";
|
|
102
102
|
readonly description: "Description";
|
|
103
103
|
readonly version: "Version";
|
|
104
|
-
readonly wpMinimumVersion: "Requires at least";
|
|
105
|
-
readonly phpMinimumVersion: "Requires PHP";
|
|
106
104
|
readonly author: "Author";
|
|
107
105
|
readonly authorUrl: "Author URI";
|
|
108
106
|
readonly license: "License";
|
package/lib/maps.js
CHANGED
|
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.themeHeaders = exports.pluginHeaders = exports.pluginJson = exports.blockJson = exports.themeJson = exports.pkgJson = void 0;
|
|
26
|
+
exports.themeHeaders = exports.pluginHeaders = exports.pkgJsonHeaders = exports.pluginJson = exports.blockJson = exports.themeJson = exports.pkgJson = void 0;
|
|
27
27
|
const blocki18n = __importStar(require("./assets/block-i18n.json"));
|
|
28
28
|
const themei18n = __importStar(require("./assets/theme-i18n.json"));
|
|
29
29
|
const package_json_1 = require("../package.json");
|
|
@@ -35,13 +35,22 @@ exports.pkgJson = {
|
|
|
35
35
|
exports.themeJson = themei18n;
|
|
36
36
|
exports.blockJson = blocki18n;
|
|
37
37
|
exports.pluginJson = blocki18n;
|
|
38
|
+
exports.pkgJsonHeaders = {
|
|
39
|
+
name: 'string',
|
|
40
|
+
url: 'string',
|
|
41
|
+
description: 'string',
|
|
42
|
+
author: 'string',
|
|
43
|
+
authorEmail: 'string',
|
|
44
|
+
version: 'string',
|
|
45
|
+
bugs: 'string',
|
|
46
|
+
license: 'string',
|
|
47
|
+
repository: 'string',
|
|
48
|
+
};
|
|
38
49
|
exports.pluginHeaders = {
|
|
39
50
|
name: 'Plugin Name',
|
|
40
51
|
url: 'Plugin URI',
|
|
41
52
|
description: 'Description',
|
|
42
53
|
version: 'Version',
|
|
43
|
-
wpMinimumVersion: 'Requires at least',
|
|
44
|
-
phpMinimumVersion: 'Requires PHP',
|
|
45
54
|
author: 'Author',
|
|
46
55
|
authorUrl: 'Author URI',
|
|
47
56
|
license: 'License',
|
package/lib/maps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maps.js","sourceRoot":"","sources":["../src/maps.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oEAAqD;AACrD,oEAAqD;AACrD,kDAA4D;AAE/C,QAAA,OAAO,GAA4B;IAC/C,IAAI,EAAJ,mBAAI;IACJ,OAAO,EAAP,sBAAO;IACP,WAAW,EAAX,0BAAW;CACX,CAAA;AACY,QAAA,SAAS,GAAG,SAAS,CAAA;AACrB,QAAA,SAAS,GAAG,SAAS,CAAA;AAErB,QAAA,UAAU,GAAG,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"maps.js","sourceRoot":"","sources":["../src/maps.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oEAAqD;AACrD,oEAAqD;AACrD,kDAA4D;AAE/C,QAAA,OAAO,GAA4B;IAC/C,IAAI,EAAJ,mBAAI;IACJ,OAAO,EAAP,sBAAO;IACP,WAAW,EAAX,0BAAW;CACX,CAAA;AACY,QAAA,SAAS,GAAG,SAAS,CAAA;AACrB,QAAA,SAAS,GAAG,SAAS,CAAA;AAErB,QAAA,UAAU,GAAG,SAAS,CAAA;AAEtB,QAAA,cAAc,GAAG;IAC7B,IAAI,EAAE,QAAQ;IACd,GAAG,EAAE,QAAQ;IACb,WAAW,EAAE,QAAQ;IACrB,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,QAAQ;IACrB,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,QAAQ;IACjB,UAAU,EAAE,QAAQ;CACpB,CAAA;AAEY,QAAA,aAAa,GAAG;IAC5B,IAAI,EAAE,aAAa;IACnB,GAAG,EAAE,YAAY;IACjB,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,SAAS;IAGlB,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,YAAY;IACvB,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,aAAa;IACzB,SAAS,EAAE,YAAY;IACvB,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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.consolidate = void 0;
|
|
4
|
+
function consolidate(translationsArray) {
|
|
5
|
+
const mergedTranslations = {};
|
|
6
|
+
translationsArray.forEach((translations) => {
|
|
7
|
+
Object.entries(translations).forEach(([context, contextTranslations]) => {
|
|
8
|
+
if (!mergedTranslations[context]) {
|
|
9
|
+
mergedTranslations[context] = {};
|
|
10
|
+
}
|
|
11
|
+
Object.entries(contextTranslations).forEach(([msgid, translation]) => {
|
|
12
|
+
var _a, _b, _c;
|
|
13
|
+
if (!mergedTranslations[context][msgid]) {
|
|
14
|
+
mergedTranslations[context][msgid] = {
|
|
15
|
+
msgctxt: context !== '' ? context : undefined,
|
|
16
|
+
msgid: msgid !== null && msgid !== void 0 ? msgid : '',
|
|
17
|
+
msgid_plural: translation.msgid_plural,
|
|
18
|
+
msgstr: translation.msgstr,
|
|
19
|
+
comments: translation.comments,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
if (mergedTranslations[context][msgid].comments &&
|
|
24
|
+
((_a = mergedTranslations[context][msgid].comments) === null || _a === void 0 ? void 0 : _a.reference.length)) {
|
|
25
|
+
mergedTranslations[context][msgid].comments = Object.assign(Object.assign({}, translation.comments), { reference: ((_b = mergedTranslations[context][msgid]
|
|
26
|
+
.comments) === null || _b === void 0 ? void 0 : _b.reference) +
|
|
27
|
+
'\n' +
|
|
28
|
+
((_c = translation.comments) === null || _c === void 0 ? void 0 : _c.reference) });
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
return mergedTranslations;
|
|
35
|
+
}
|
|
36
|
+
exports.consolidate = consolidate;
|
|
37
|
+
//# sourceMappingURL=consolidate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consolidate.js","sourceRoot":"","sources":["../../src/parser/consolidate.ts"],"names":[],"mappings":";;;AAWA,SAAgB,WAAW,CAC1B,iBAAuC;IAEvC,MAAM,kBAAkB,GAAuB,EAAE,CAAA;IAEjD,iBAAiB,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;QAC1C,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CACnC,CAAC,CAAC,OAAO,EAAE,mBAAmB,CAAC,EAAE,EAAE;YAClC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClC,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;YACjC,CAAC;YAED,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAC1C,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,EAAE;;gBACxB,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzC,kBAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG;wBACpC,OAAO,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;wBAC7C,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE;wBAClB,YAAY,EAAE,WAAW,CAAC,YAAY;wBACtC,MAAM,EAAE,WAAW,CAAC,MAAM;wBAC1B,QAAQ,EAAE,WAAW,CAAC,QAAQ;qBAC9B,CAAA;gBACF,CAAC;qBAAM,CAAC;oBACP,IACC,kBAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ;yBAC3C,MAAA,kBAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,0CACxC,SAAS,CAAC,MAAM,CAAA,EAClB,CAAC;wBACF,kBAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,gCAC1C,WAAW,CAAC,QAAQ,KACvB,SAAS,EACR,CAAA,MAAA,kBAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;iCAChC,QAAQ,0CAAE,SAAS;gCACrB,IAAI;iCACJ,MAAA,WAAW,CAAC,QAAQ,0CAAE,SAAS,CAAA,GACd,CAAA;oBACpB,CAAC;gBACF,CAAC;YACF,CAAC,CACD,CAAA;QACF,CAAC,CACD,CAAA;IACF,CAAC,CAAC,CAAA;IAEF,OAAO,kBAAkB,CAAA;AAC1B,CAAC;AA7CD,kCA6CC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.exec = exports.getCopyright = void 0;
|
|
16
|
+
const index_1 = require("./index");
|
|
17
|
+
const node_os_1 = require("node:os");
|
|
18
|
+
const headers_1 = require("../extractors/headers");
|
|
19
|
+
const gettext_parser_1 = __importDefault(require("gettext-parser"));
|
|
20
|
+
const consolidate_1 = require("./consolidate");
|
|
21
|
+
function getCopyright(slug, license = 'GPL v2 or later') {
|
|
22
|
+
const copyrightComment = `# Copyright (C) ${new Date().getFullYear()} ${slug}\n` +
|
|
23
|
+
`# This file is distributed under the ${license} license.`;
|
|
24
|
+
return copyrightComment;
|
|
25
|
+
}
|
|
26
|
+
exports.getCopyright = getCopyright;
|
|
27
|
+
function exec(args) {
|
|
28
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
29
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
30
|
+
if (!((_a = args.options) === null || _a === void 0 ? void 0 : _a.silent)) {
|
|
31
|
+
console.log('📝 Starting makePot for', args === null || args === void 0 ? void 0 : args.slug);
|
|
32
|
+
console.log('🔍 Extracting strings from', args.paths);
|
|
33
|
+
}
|
|
34
|
+
let stringsJson = yield (0, index_1.runExtract)(args);
|
|
35
|
+
console.log('🎉 Done!');
|
|
36
|
+
stringsJson = stringsJson.filter((value) => value && Object.values(value).length);
|
|
37
|
+
if (!((_b = args.options) === null || _b === void 0 ? void 0 : _b.silent)) {
|
|
38
|
+
console.log('Memory usage:', (process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2), 'MB (Free:', ((0, node_os_1.totalmem)() / 1024 / 1024 / 1024).toFixed(2), 'GB)\n', 'Cpu User:', (process.cpuUsage().user / 1000000).toFixed(2), 'ms Cpu System:', (process.cpuUsage().system / 1000000).toFixed(2), 'ms of', (0, node_os_1.cpus)().length, 'cores');
|
|
39
|
+
}
|
|
40
|
+
if ((_c = args.options) === null || _c === void 0 ? void 0 : _c.skip.audit) {
|
|
41
|
+
console.log('Audit strings...');
|
|
42
|
+
console.log('✅ Done');
|
|
43
|
+
}
|
|
44
|
+
const potHeader = (0, headers_1.generateHeader)(args);
|
|
45
|
+
const copyrightComment = ((_d = args.options) === null || _d === void 0 ? void 0 : _d.fileComment) ||
|
|
46
|
+
getCopyright(args.slug, (_f = (_e = args.headers) === null || _e === void 0 ? void 0 : _e.license) !== null && _f !== void 0 ? _f : 'GPL v2 or later');
|
|
47
|
+
const potDefinitions = { '': (0, headers_1.translationsHeaders)(args) };
|
|
48
|
+
const translationsUnion = (0, consolidate_1.consolidate)([
|
|
49
|
+
potDefinitions,
|
|
50
|
+
...stringsJson,
|
|
51
|
+
]);
|
|
52
|
+
if (!((_g = args.options) === null || _g === void 0 ? void 0 : _g.silent)) {
|
|
53
|
+
console.log('📝 Found', Object.values(translationsUnion).length, 'group of strings in', stringsJson.length, 'files. In total ' +
|
|
54
|
+
Object.values(translationsUnion)
|
|
55
|
+
.map((v) => Object.keys(v).length)
|
|
56
|
+
.reduce((acc, val) => acc + val, 0) +
|
|
57
|
+
' strings were found');
|
|
58
|
+
}
|
|
59
|
+
const getTextTranslations = {
|
|
60
|
+
charset: 'iso-8859-1',
|
|
61
|
+
headers: potHeader,
|
|
62
|
+
translations: translationsUnion,
|
|
63
|
+
};
|
|
64
|
+
const pluginTranslations = gettext_parser_1.default.po
|
|
65
|
+
.compile(getTextTranslations)
|
|
66
|
+
.toString('utf-8');
|
|
67
|
+
return copyrightComment + '\n' + pluginTranslations;
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
exports.exec = exec;
|
|
71
|
+
//# sourceMappingURL=exec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/parser/exec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,mCAAoC;AACpC,qCAAwC;AACxC,mDAA2E;AAC3E,oEAGuB;AAEvB,+CAA2C;AAS3C,SAAgB,YAAY,CAC3B,IAAY,EACZ,UAAkB,iBAAiB;IAEnC,MAAM,gBAAgB,GACrB,mBAAmB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,IAAI,IAAI;QACvD,wCAAwC,OAAO,WAAW,CAAA;IAC3D,OAAO,gBAAgB,CAAA;AACxB,CAAC;AARD,oCAQC;AAQD,SAAsB,IAAI,CAAC,IAAU;;;QACpC,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,CAAA,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAC,CAAA;YAClD,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QACtD,CAAC;QAKD,IAAI,WAAW,GAAG,MAAM,IAAA,kBAAU,EAAC,IAAI,CAAC,CAAA;QACxC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACvB,WAAW,GAAG,WAAW,CAAC,MAAM,CAC/B,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAC/C,CAAA;QAED,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,CAAA,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CACV,eAAe,EACf,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EACzD,WAAW,EACX,CAAC,IAAA,kBAAQ,GAAE,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAC5C,OAAO,EACP,WAAW,EACX,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAC9C,gBAAgB,EAChB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAChD,OAAO,EACP,IAAA,cAAI,GAAE,CAAC,MAAM,EACb,OAAO,CACP,CAAA;QACF,CAAC;QAGD,IAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;YAE/B,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACtB,CAAC;QAGD,MAAM,SAAS,GAAG,IAAA,wBAAc,EAAC,IAAI,CAAC,CAAA;QAEtC,MAAM,gBAAgB,GACrB,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,WAAW;YACzB,YAAY,CACX,IAAI,CAAC,IAAI,EACT,MAAC,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAkB,mCAAI,iBAAiB,CACtD,CAAA;QAGF,MAAM,cAAc,GAAuB,EAAE,EAAE,EAAE,IAAA,6BAAmB,EAAC,IAAI,CAAC,EAAE,CAAA;QAK5E,MAAM,iBAAiB,GAAwC,IAAA,yBAAW,EAAC;YAC1E,cAAc;YACd,GAAG,WAAW;SACd,CAAC,CAAA;QAEF,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,CAAA,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CACV,UAAU,EACV,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,MAAM,EACvC,qBAAqB,EACrB,WAAW,CAAC,MAAM,EAClB,kBAAkB;gBACjB,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC;qBAC9B,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;QAGD,MAAM,mBAAmB,GAAwB;YAChD,OAAO,EAAE,YAAY;YACrB,OAAO,EAAE,SAAS;YAClB,YAAY,EAAE,iBAAiB;SAC/B,CAAA;QAGD,MAAM,kBAAkB,GAAG,wBAAa,CAAC,EAAE;aACzC,OAAO,CAAC,mBAAmB,CAAC;aAC5B,QAAQ,CAAC,OAAO,CAAC,CAAA;QAGnB,OAAO,gBAAgB,GAAG,IAAI,GAAG,kBAAkB,CAAA;;CACnD;AAxFD,oBAwFC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.runExtract = void 0;
|
|
13
|
+
const glob_1 = require("../fs/glob");
|
|
14
|
+
const patterns_1 = require("./patterns");
|
|
15
|
+
const process_1 = require("./process");
|
|
16
|
+
function runExtract(args) {
|
|
17
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
18
|
+
const pattern = (0, patterns_1.getPatterns)(args);
|
|
19
|
+
const files = yield (0, glob_1.getFiles)(args, pattern);
|
|
20
|
+
return yield (0, process_1.getStrings)(args, files);
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
exports.runExtract = runExtract;
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,qCAAqC;AACrC,yCAAwC;AACxC,uCAAsC;AAQtC,SAAsB,UAAU,CAAC,IAAU;;QAC1C,MAAM,OAAO,GAAG,IAAA,sBAAW,EAAC,IAAI,CAAC,CAAA;QACjC,MAAM,KAAK,GAAG,MAAM,IAAA,eAAQ,EAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC3C,OAAO,MAAM,IAAA,oBAAU,EAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACrC,CAAC;CAAA;AAJD,gCAIC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.makePot = void 0;
|
|
16
|
+
const headers_1 = require("../extractors/headers");
|
|
17
|
+
const fs_1 = require("../fs");
|
|
18
|
+
const path_1 = __importDefault(require("path"));
|
|
19
|
+
const json_1 = require("../extractors/json");
|
|
20
|
+
const exec_1 = require("./exec");
|
|
21
|
+
function makePot(args) {
|
|
22
|
+
var _a;
|
|
23
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
const pkgData = (0, json_1.extractPackageJson)(args);
|
|
25
|
+
const metadata = (0, headers_1.extractMainFileData)(args);
|
|
26
|
+
args.headers = Object.assign(Object.assign(Object.assign({}, args.headers), pkgData), {
|
|
27
|
+
name: metadata.name,
|
|
28
|
+
url: metadata.url,
|
|
29
|
+
description: metadata.description,
|
|
30
|
+
author: metadata.author,
|
|
31
|
+
authorUri: metadata.authorUri,
|
|
32
|
+
});
|
|
33
|
+
const jsonTranslations = yield (0, exec_1.exec)(args);
|
|
34
|
+
(0, fs_1.writeFile)(jsonTranslations, path_1.default.join(process.cwd(), args.paths.out, `${args === null || args === void 0 ? void 0 : args.slug}.${((_a = args.options) === null || _a === void 0 ? void 0 : _a.json) ? 'json' : 'pot'}`));
|
|
35
|
+
return jsonTranslations;
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
exports.makePot = makePot;
|
|
39
|
+
//# sourceMappingURL=makePot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makePot.js","sourceRoot":"","sources":["../../src/parser/makePot.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,mDAA2D;AAC3D,8BAAiC;AACjC,gDAAuB;AACvB,6CAAuD;AACvD,iCAA6B;AAQ7B,SAAsB,OAAO,CAAC,IAAU;;;QAEvC,MAAM,OAAO,GAAG,IAAA,yBAAkB,EAAC,IAAI,CAAC,CAAA;QAGxC,MAAM,QAAQ,GAAG,IAAA,6BAAmB,EAAC,IAAI,CAAC,CAAA;QAG1C,IAAI,CAAC,OAAO,GAAG,8CACX,IAAI,CAAC,OAAO,GACZ,OAAO,GACP;YACF,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,SAAS,EAAE,QAAQ,CAAC,SAAS;SAC7B,CACkB,CAAA;QAGpB,MAAM,gBAAgB,GAAG,MAAM,IAAA,WAAI,EAAC,IAAI,CAAC,CAAA;QAEzC,IAAA,cAAS,EACR,gBAAgB,EAChB,cAAI,CAAC,IAAI,CACR,OAAO,CAAC,GAAG,EAAE,EACb,IAAI,CAAC,KAAK,CAAC,GAAG,EACd,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,IAAI,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CACtD,CACD,CAAA;QAED,OAAO,gBAAgB,CAAA;;CACvB;AAjCD,0BAiCC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPatterns = void 0;
|
|
4
|
+
function getPatterns(args) {
|
|
5
|
+
var _a, _b, _c, _d, _e, _f;
|
|
6
|
+
const pattern = {
|
|
7
|
+
include: args.patterns.include || [],
|
|
8
|
+
exclude: args.patterns.exclude || [],
|
|
9
|
+
mergePaths: args.patterns.mergePaths,
|
|
10
|
+
subtractPaths: args.patterns.subtractPaths,
|
|
11
|
+
subtractAndMerge: args.patterns.subtractAndMerge,
|
|
12
|
+
};
|
|
13
|
+
if (((_a = args.options) === null || _a === void 0 ? void 0 : _a.skip.php) !== undefined ||
|
|
14
|
+
((_b = args.options) === null || _b === void 0 ? void 0 : _b.skip.blade) !== undefined) {
|
|
15
|
+
if (((_c = args.options) === null || _c === void 0 ? void 0 : _c.skip.blade) !== undefined) {
|
|
16
|
+
pattern.include.push('**/*.php');
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
pattern.include.push('**/*.php', '!**/blade.php');
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
if (((_d = args.options) === null || _d === void 0 ? void 0 : _d.skip.js) !== undefined) {
|
|
23
|
+
pattern.include.push('**/*.{js,jsx,ts,tsx,mjs,cjs}');
|
|
24
|
+
}
|
|
25
|
+
if (((_e = args.options) === null || _e === void 0 ? void 0 : _e.skip.blockJson) !== undefined) {
|
|
26
|
+
pattern.include.push('block.json');
|
|
27
|
+
}
|
|
28
|
+
if (((_f = args.options) === null || _f === void 0 ? void 0 : _f.skip.themeJson) !== undefined) {
|
|
29
|
+
pattern.include.push('theme.json');
|
|
30
|
+
}
|
|
31
|
+
return pattern;
|
|
32
|
+
}
|
|
33
|
+
exports.getPatterns = getPatterns;
|
|
34
|
+
//# sourceMappingURL=patterns.js.map
|
|
@@ -0,0 +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"}
|