@formatjs/cli-lib 5.0.3
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/LICENSE.md +9 -0
- package/README.md +3 -0
- package/index.d.ts +8 -0
- package/index.d.ts.map +1 -0
- package/index.js +12 -0
- package/main.d.ts +2 -0
- package/main.d.ts.map +1 -0
- package/main.js +3 -0
- package/package.json +64 -0
- package/src/cli.d.ts +3 -0
- package/src/cli.d.ts.map +1 -0
- package/src/cli.js +142 -0
- package/src/compile.d.ts +48 -0
- package/src/compile.d.ts.map +1 -0
- package/src/compile.js +122 -0
- package/src/compile_folder.d.ts +3 -0
- package/src/compile_folder.d.ts.map +1 -0
- package/src/compile_folder.js +22 -0
- package/src/console_utils.d.ts +9 -0
- package/src/console_utils.d.ts.map +1 -0
- package/src/console_utils.js +141 -0
- package/src/extract.d.ts +75 -0
- package/src/extract.d.ts.map +1 -0
- package/src/extract.js +220 -0
- package/src/formatters/crowdin.d.ts +8 -0
- package/src/formatters/crowdin.d.ts.map +1 -0
- package/src/formatters/crowdin.js +29 -0
- package/src/formatters/default.d.ts +6 -0
- package/src/formatters/default.d.ts.map +1 -0
- package/src/formatters/default.js +13 -0
- package/src/formatters/index.d.ts +9 -0
- package/src/formatters/index.d.ts.map +1 -0
- package/src/formatters/index.js +45 -0
- package/src/formatters/lokalise.d.ts +10 -0
- package/src/formatters/lokalise.d.ts.map +1 -0
- package/src/formatters/lokalise.js +26 -0
- package/src/formatters/simple.d.ts +5 -0
- package/src/formatters/simple.d.ts.map +1 -0
- package/src/formatters/simple.js +12 -0
- package/src/formatters/smartling.d.ts +24 -0
- package/src/formatters/smartling.d.ts.map +1 -0
- package/src/formatters/smartling.js +52 -0
- package/src/formatters/transifex.d.ts +10 -0
- package/src/formatters/transifex.d.ts.map +1 -0
- package/src/formatters/transifex.js +26 -0
- package/src/parse_script.d.ts +8 -0
- package/src/parse_script.d.ts.map +1 -0
- package/src/parse_script.js +50 -0
- package/src/pseudo_locale.d.ts +7 -0
- package/src/pseudo_locale.d.ts.map +1 -0
- package/src/pseudo_locale.js +104 -0
- package/src/vue_extractor.d.ts +3 -0
- package/src/vue_extractor.d.ts.map +1 -0
- package/src/vue_extractor.js +62 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseScript = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var ts_transformer_1 = require("@formatjs/ts-transformer");
|
|
6
|
+
var typescript_1 = (0, tslib_1.__importDefault)(require("typescript"));
|
|
7
|
+
var console_utils_1 = require("./console_utils");
|
|
8
|
+
/**
|
|
9
|
+
* Invoid TypeScript module transpilation with our TS transformer
|
|
10
|
+
* @param opts Formatjs TS Transformer opt
|
|
11
|
+
* @param fn filename
|
|
12
|
+
*/
|
|
13
|
+
function parseScript(opts, fn) {
|
|
14
|
+
return function (source) {
|
|
15
|
+
var output;
|
|
16
|
+
try {
|
|
17
|
+
(0, console_utils_1.debug)('Using TS compiler to process file', fn);
|
|
18
|
+
output = typescript_1.default.transpileModule(source, {
|
|
19
|
+
compilerOptions: {
|
|
20
|
+
allowJs: true,
|
|
21
|
+
target: typescript_1.default.ScriptTarget.ESNext,
|
|
22
|
+
noEmit: true,
|
|
23
|
+
experimentalDecorators: true,
|
|
24
|
+
},
|
|
25
|
+
reportDiagnostics: true,
|
|
26
|
+
fileName: fn,
|
|
27
|
+
transformers: {
|
|
28
|
+
before: [(0, ts_transformer_1.transformWithTs)(typescript_1.default, opts)],
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
if (e instanceof Error) {
|
|
34
|
+
e.message = "Error processing file ".concat(fn, " \n").concat(e.message || '');
|
|
35
|
+
}
|
|
36
|
+
throw e;
|
|
37
|
+
}
|
|
38
|
+
if (output.diagnostics) {
|
|
39
|
+
var errs = output.diagnostics.filter(function (d) { return d.category === typescript_1.default.DiagnosticCategory.Error; });
|
|
40
|
+
if (errs.length) {
|
|
41
|
+
throw new Error(typescript_1.default.formatDiagnosticsWithColorAndContext(errs, {
|
|
42
|
+
getCanonicalFileName: function (fileName) { return fileName; },
|
|
43
|
+
getCurrentDirectory: function () { return process.cwd(); },
|
|
44
|
+
getNewLine: function () { return typescript_1.default.sys.newLine; },
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
exports.parseScript = parseScript;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { MessageFormatElement } from '@formatjs/icu-messageformat-parser';
|
|
2
|
+
export declare function generateXXLS(msg: string | MessageFormatElement[]): MessageFormatElement[];
|
|
3
|
+
export declare function generateXXAC(msg: string | MessageFormatElement[]): MessageFormatElement[];
|
|
4
|
+
export declare function generateXXHA(msg: string | MessageFormatElement[]): MessageFormatElement[];
|
|
5
|
+
export declare function generateENXA(msg: string | MessageFormatElement[]): MessageFormatElement[];
|
|
6
|
+
export declare function generateENXB(msg: string | MessageFormatElement[]): MessageFormatElement[];
|
|
7
|
+
//# sourceMappingURL=pseudo_locale.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pseudo_locale.d.ts","sourceRoot":"","sources":["../../../../../../packages/cli-lib/src/pseudo_locale.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,oBAAoB,EAMrB,MAAM,oCAAoC,CAAA;AAE3C,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,GAAG,oBAAoB,EAAE,GACnC,oBAAoB,EAAE,CAQxB;AAED,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,GAAG,oBAAoB,EAAE,GACnC,oBAAoB,EAAE,CAcxB;AAED,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,GAAG,oBAAoB,EAAE,GACnC,oBAAoB,EAAE,CAQxB;AAKD,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,GAAG,oBAAoB,EAAE,GACnC,oBAAoB,EAAE,CAuBxB;AAED,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,GAAG,oBAAoB,EAAE,GACnC,oBAAoB,EAAE,CA4BxB"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateENXB = exports.generateENXA = exports.generateXXHA = exports.generateXXAC = exports.generateXXLS = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var icu_messageformat_parser_1 = require("@formatjs/icu-messageformat-parser");
|
|
6
|
+
function generateXXLS(msg) {
|
|
7
|
+
var ast = typeof msg === 'string' ? (0, icu_messageformat_parser_1.parse)(msg) : msg;
|
|
8
|
+
var lastChunk = ast.pop();
|
|
9
|
+
if (lastChunk && (0, icu_messageformat_parser_1.isLiteralElement)(lastChunk)) {
|
|
10
|
+
lastChunk.value += 'SSSSSSSSSSSSSSSSSSSSSSSSS';
|
|
11
|
+
return (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], ast, true), [lastChunk], false);
|
|
12
|
+
}
|
|
13
|
+
return (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], ast, true), [{ type: icu_messageformat_parser_1.TYPE.literal, value: 'SSSSSSSSSSSSSSSSSSSSSSSSS' }], false);
|
|
14
|
+
}
|
|
15
|
+
exports.generateXXLS = generateXXLS;
|
|
16
|
+
function generateXXAC(msg) {
|
|
17
|
+
var ast = typeof msg === 'string' ? (0, icu_messageformat_parser_1.parse)(msg) : msg;
|
|
18
|
+
ast.forEach(function (el) {
|
|
19
|
+
if ((0, icu_messageformat_parser_1.isLiteralElement)(el)) {
|
|
20
|
+
el.value = el.value.toUpperCase();
|
|
21
|
+
}
|
|
22
|
+
else if ((0, icu_messageformat_parser_1.isPluralElement)(el) || (0, icu_messageformat_parser_1.isSelectElement)(el)) {
|
|
23
|
+
for (var _i = 0, _a = Object.values(el.options); _i < _a.length; _i++) {
|
|
24
|
+
var opt = _a[_i];
|
|
25
|
+
generateXXAC(opt.value);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
else if ((0, icu_messageformat_parser_1.isTagElement)(el)) {
|
|
29
|
+
generateXXAC(el.children);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
return ast;
|
|
33
|
+
}
|
|
34
|
+
exports.generateXXAC = generateXXAC;
|
|
35
|
+
function generateXXHA(msg) {
|
|
36
|
+
var ast = typeof msg === 'string' ? (0, icu_messageformat_parser_1.parse)(msg) : msg;
|
|
37
|
+
var firstChunk = ast.shift();
|
|
38
|
+
if (firstChunk && (0, icu_messageformat_parser_1.isLiteralElement)(firstChunk)) {
|
|
39
|
+
firstChunk.value = '[javascript]' + firstChunk.value;
|
|
40
|
+
return (0, tslib_1.__spreadArray)([firstChunk], ast, true);
|
|
41
|
+
}
|
|
42
|
+
return (0, tslib_1.__spreadArray)([{ type: icu_messageformat_parser_1.TYPE.literal, value: '[javascript]' }], ast, true);
|
|
43
|
+
}
|
|
44
|
+
exports.generateXXHA = generateXXHA;
|
|
45
|
+
var ASCII = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
46
|
+
var ACCENTED_ASCII = 'âḃćḋèḟĝḫíĵǩĺṁńŏṗɋŕśṭůṿẘẋẏẓḀḂḈḊḔḞḠḢḬĴḴĻḾŊÕṔɊŔṠṮŨṼẄẌŸƵ';
|
|
47
|
+
function generateENXA(msg) {
|
|
48
|
+
var ast = typeof msg === 'string' ? (0, icu_messageformat_parser_1.parse)(msg) : msg;
|
|
49
|
+
ast.forEach(function (el) {
|
|
50
|
+
if ((0, icu_messageformat_parser_1.isLiteralElement)(el)) {
|
|
51
|
+
el.value = el.value
|
|
52
|
+
.split('')
|
|
53
|
+
.map(function (c) {
|
|
54
|
+
var i = ASCII.indexOf(c);
|
|
55
|
+
if (i < 0) {
|
|
56
|
+
return c;
|
|
57
|
+
}
|
|
58
|
+
return ACCENTED_ASCII[i];
|
|
59
|
+
})
|
|
60
|
+
.join('');
|
|
61
|
+
}
|
|
62
|
+
else if ((0, icu_messageformat_parser_1.isPluralElement)(el) || (0, icu_messageformat_parser_1.isSelectElement)(el)) {
|
|
63
|
+
for (var _i = 0, _a = Object.values(el.options); _i < _a.length; _i++) {
|
|
64
|
+
var opt = _a[_i];
|
|
65
|
+
generateENXA(opt.value);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
else if ((0, icu_messageformat_parser_1.isTagElement)(el)) {
|
|
69
|
+
generateENXA(el.children);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
return ast;
|
|
73
|
+
}
|
|
74
|
+
exports.generateENXA = generateENXA;
|
|
75
|
+
function generateENXB(msg) {
|
|
76
|
+
var ast = typeof msg === 'string' ? (0, icu_messageformat_parser_1.parse)(msg) : msg;
|
|
77
|
+
ast.forEach(function (el) {
|
|
78
|
+
if ((0, icu_messageformat_parser_1.isLiteralElement)(el)) {
|
|
79
|
+
var pseudoString = el.value
|
|
80
|
+
.split('')
|
|
81
|
+
.map(function (c, index) {
|
|
82
|
+
var i = ASCII.indexOf(c);
|
|
83
|
+
var canPad = (index + 1) % 3 === 0;
|
|
84
|
+
if (i < 0) {
|
|
85
|
+
return c;
|
|
86
|
+
}
|
|
87
|
+
return canPad ? ACCENTED_ASCII[i].repeat(3) : ACCENTED_ASCII[i];
|
|
88
|
+
})
|
|
89
|
+
.join('');
|
|
90
|
+
el.value = "[!! ".concat(pseudoString, " !!]");
|
|
91
|
+
}
|
|
92
|
+
else if ((0, icu_messageformat_parser_1.isPluralElement)(el) || (0, icu_messageformat_parser_1.isSelectElement)(el)) {
|
|
93
|
+
for (var _i = 0, _a = Object.values(el.options); _i < _a.length; _i++) {
|
|
94
|
+
var opt = _a[_i];
|
|
95
|
+
generateENXB(opt.value);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
else if ((0, icu_messageformat_parser_1.isTagElement)(el)) {
|
|
99
|
+
generateENXB(el.children);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
return ast;
|
|
103
|
+
}
|
|
104
|
+
exports.generateENXB = generateENXB;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vue_extractor.d.ts","sourceRoot":"","sources":["../../../../../../packages/cli-lib/src/vue_extractor.ts"],"names":[],"mappings":"AAWA,oBAAY,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;AA4DpD,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,aAAa,GAC3B,GAAG,CAoBL"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseFile = void 0;
|
|
4
|
+
var compiler_sfc_1 = require("@vue/compiler-sfc");
|
|
5
|
+
function walk(node, visitor) {
|
|
6
|
+
if (typeof node !== 'object') {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
if (node.type !== 1 /* ELEMENT */ &&
|
|
10
|
+
node.type !== 8 /* COMPOUND_EXPRESSION */ &&
|
|
11
|
+
node.type !== 5 /* INTERPOLATION */) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
visitor(node);
|
|
15
|
+
if (node.type === 5 /* INTERPOLATION */) {
|
|
16
|
+
visitor(node.content);
|
|
17
|
+
}
|
|
18
|
+
else if (node.type === 1 /* ELEMENT */) {
|
|
19
|
+
node.children.forEach(function (n) { return walk(n, visitor); });
|
|
20
|
+
node.props
|
|
21
|
+
.filter(function (prop) { return prop.type === 7 /* DIRECTIVE */; })
|
|
22
|
+
.filter(function (prop) { return !!prop.exp; })
|
|
23
|
+
.forEach(function (prop) { return visitor(prop.exp); });
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
node.children.forEach(function (n) { return walk(n, visitor); });
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function templateSimpleExpressionNodeVisitor(parseScriptFn) {
|
|
30
|
+
return function (n) {
|
|
31
|
+
if (typeof n !== 'object') {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (n.type !== 4 /* SIMPLE_EXPRESSION */) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
var content = n.content;
|
|
38
|
+
// Wrap this in () since a vue comp node attribute can just be
|
|
39
|
+
// an object literal which, by itself is invalid TS
|
|
40
|
+
// but with () it becomes an ExpressionStatement
|
|
41
|
+
parseScriptFn("(".concat(content, ")"));
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
function parseFile(source, filename, parseScriptFn) {
|
|
45
|
+
var _a = (0, compiler_sfc_1.parse)(source, {
|
|
46
|
+
filename: filename,
|
|
47
|
+
}), descriptor = _a.descriptor, errors = _a.errors;
|
|
48
|
+
if (errors.length) {
|
|
49
|
+
throw errors[0];
|
|
50
|
+
}
|
|
51
|
+
var script = descriptor.script, scriptSetup = descriptor.scriptSetup, template = descriptor.template;
|
|
52
|
+
if (template) {
|
|
53
|
+
walk(template.ast, templateSimpleExpressionNodeVisitor(parseScriptFn));
|
|
54
|
+
}
|
|
55
|
+
if (script) {
|
|
56
|
+
parseScriptFn(script.content);
|
|
57
|
+
}
|
|
58
|
+
if (scriptSetup) {
|
|
59
|
+
parseScriptFn(scriptSetup.content);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.parseFile = parseFile;
|