@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.
Files changed (54) hide show
  1. package/LICENSE.md +9 -0
  2. package/README.md +3 -0
  3. package/index.d.ts +8 -0
  4. package/index.d.ts.map +1 -0
  5. package/index.js +12 -0
  6. package/main.d.ts +2 -0
  7. package/main.d.ts.map +1 -0
  8. package/main.js +3 -0
  9. package/package.json +64 -0
  10. package/src/cli.d.ts +3 -0
  11. package/src/cli.d.ts.map +1 -0
  12. package/src/cli.js +142 -0
  13. package/src/compile.d.ts +48 -0
  14. package/src/compile.d.ts.map +1 -0
  15. package/src/compile.js +122 -0
  16. package/src/compile_folder.d.ts +3 -0
  17. package/src/compile_folder.d.ts.map +1 -0
  18. package/src/compile_folder.js +22 -0
  19. package/src/console_utils.d.ts +9 -0
  20. package/src/console_utils.d.ts.map +1 -0
  21. package/src/console_utils.js +141 -0
  22. package/src/extract.d.ts +75 -0
  23. package/src/extract.d.ts.map +1 -0
  24. package/src/extract.js +220 -0
  25. package/src/formatters/crowdin.d.ts +8 -0
  26. package/src/formatters/crowdin.d.ts.map +1 -0
  27. package/src/formatters/crowdin.js +29 -0
  28. package/src/formatters/default.d.ts +6 -0
  29. package/src/formatters/default.d.ts.map +1 -0
  30. package/src/formatters/default.js +13 -0
  31. package/src/formatters/index.d.ts +9 -0
  32. package/src/formatters/index.d.ts.map +1 -0
  33. package/src/formatters/index.js +45 -0
  34. package/src/formatters/lokalise.d.ts +10 -0
  35. package/src/formatters/lokalise.d.ts.map +1 -0
  36. package/src/formatters/lokalise.js +26 -0
  37. package/src/formatters/simple.d.ts +5 -0
  38. package/src/formatters/simple.d.ts.map +1 -0
  39. package/src/formatters/simple.js +12 -0
  40. package/src/formatters/smartling.d.ts +24 -0
  41. package/src/formatters/smartling.d.ts.map +1 -0
  42. package/src/formatters/smartling.js +52 -0
  43. package/src/formatters/transifex.d.ts +10 -0
  44. package/src/formatters/transifex.d.ts.map +1 -0
  45. package/src/formatters/transifex.js +26 -0
  46. package/src/parse_script.d.ts +8 -0
  47. package/src/parse_script.d.ts.map +1 -0
  48. package/src/parse_script.js +50 -0
  49. package/src/pseudo_locale.d.ts +7 -0
  50. package/src/pseudo_locale.d.ts.map +1 -0
  51. package/src/pseudo_locale.js +104 -0
  52. package/src/vue_extractor.d.ts +3 -0
  53. package/src/vue_extractor.d.ts.map +1 -0
  54. package/src/vue_extractor.js +62 -0
@@ -0,0 +1,75 @@
1
+ import { Opts, MessageDescriptor } from '@formatjs/ts-transformer';
2
+ import { Formatter } from './formatters';
3
+ export interface ExtractionResult<M = Record<string, string>> {
4
+ /**
5
+ * List of extracted messages
6
+ */
7
+ messages: MessageDescriptor[];
8
+ /**
9
+ * Metadata extracted w/ `pragma`
10
+ */
11
+ meta?: M;
12
+ }
13
+ export interface ExtractedMessageDescriptor extends MessageDescriptor {
14
+ /**
15
+ * Line number
16
+ */
17
+ line?: number;
18
+ /**
19
+ * Column number
20
+ */
21
+ col?: number;
22
+ /**
23
+ * Metadata extracted from pragma
24
+ */
25
+ meta?: Record<string, string>;
26
+ }
27
+ export declare type ExtractCLIOptions = Omit<ExtractOpts, 'overrideIdFn' | 'onMsgExtracted' | 'onMetaExtracted'> & {
28
+ /**
29
+ * Output File
30
+ */
31
+ outFile?: string;
32
+ /**
33
+ * Ignore file glob pattern
34
+ */
35
+ ignore?: string[];
36
+ };
37
+ export declare type ExtractOpts = Opts & {
38
+ /**
39
+ * Whether to throw an error if we had any issues with
40
+ * 1 of the source files
41
+ */
42
+ throws?: boolean;
43
+ /**
44
+ * Message ID interpolation pattern
45
+ */
46
+ idInterpolationPattern?: string;
47
+ /**
48
+ * Whether we read from stdin instead of a file
49
+ */
50
+ readFromStdin?: boolean;
51
+ /**
52
+ * Path to a formatter file that controls the shape of JSON file from `outFile`.
53
+ */
54
+ format?: string | Formatter;
55
+ /**
56
+ * Whether to hoist selectors & flatten sentences
57
+ */
58
+ flatten?: boolean;
59
+ } & Pick<Opts, 'onMsgExtracted' | 'onMetaExtracted'>;
60
+ /**
61
+ * Extract strings from source files
62
+ * @param files list of files
63
+ * @param extractOpts extract options
64
+ * @returns messages serialized as JSON string since key order
65
+ * matters for some `format`
66
+ */
67
+ export declare function extract(files: readonly string[], extractOpts: ExtractOpts): Promise<string>;
68
+ /**
69
+ * Extract strings from source files, also writes to a file.
70
+ * @param files list of files
71
+ * @param extractOpts extract options
72
+ * @returns A Promise that resolves if output file was written successfully
73
+ */
74
+ export default function extractAndWrite(files: readonly string[], extractOpts: ExtractCLIOptions): Promise<void>;
75
+ //# sourceMappingURL=extract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../../../../../packages/cli-lib/src/extract.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,IAAI,EACJ,iBAAiB,EAClB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAA0B,SAAS,EAAC,MAAM,cAAc,CAAA;AAM/D,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAC1D;;OAEG;IACH,QAAQ,EAAE,iBAAiB,EAAE,CAAA;IAC7B;;OAEG;IACH,IAAI,CAAC,EAAE,CAAC,CAAA;CACT;AAED,MAAM,WAAW,0BAA2B,SAAQ,iBAAiB;IACnE;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC9B;AAED,oBAAY,iBAAiB,GAAG,IAAI,CAClC,WAAW,EACX,cAAc,GAAG,gBAAgB,GAAG,iBAAiB,CACtD,GAAG;IACF;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED,oBAAY,WAAW,GAAG,IAAI,GAAG;IAC/B;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,GAAG,IAAI,CAAC,IAAI,EAAE,gBAAgB,GAAG,iBAAiB,CAAC,CAAA;AAqFpD;;;;;;GAMG;AACH,wBAAsB,OAAO,CAC3B,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,WAAW,EAAE,WAAW,mBAmFzB;AAED;;;;;GAKG;AACH,wBAA8B,eAAe,CAC3C,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,WAAW,EAAE,iBAAiB,iBAS/B"}
package/src/extract.js ADDED
@@ -0,0 +1,220 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extract = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var console_utils_1 = require("./console_utils");
6
+ var fs_extra_1 = require("fs-extra");
7
+ var ts_transformer_1 = require("@formatjs/ts-transformer");
8
+ var formatters_1 = require("./formatters");
9
+ var json_stable_stringify_1 = (0, tslib_1.__importDefault)(require("json-stable-stringify"));
10
+ var parse_script_1 = require("./parse_script");
11
+ var printer_1 = require("@formatjs/icu-messageformat-parser/printer");
12
+ var manipulator_1 = require("@formatjs/icu-messageformat-parser/manipulator");
13
+ var icu_messageformat_parser_1 = require("@formatjs/icu-messageformat-parser");
14
+ function calculateLineColFromOffset(text, start) {
15
+ if (!start) {
16
+ return { line: 1, col: 1 };
17
+ }
18
+ var chunk = text.slice(0, start);
19
+ var lines = chunk.split('\n');
20
+ var lastLine = lines[lines.length - 1];
21
+ return { line: lines.length, col: lastLine.length };
22
+ }
23
+ function processFile(source, fn, _a) {
24
+ var idInterpolationPattern = _a.idInterpolationPattern, opts = (0, tslib_1.__rest)(_a, ["idInterpolationPattern"]);
25
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
26
+ var messages, meta, scriptParseFn, parseFile;
27
+ return (0, tslib_1.__generator)(this, function (_b) {
28
+ switch (_b.label) {
29
+ case 0:
30
+ messages = [];
31
+ opts = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, opts), { additionalComponentNames: (0, tslib_1.__spreadArray)([
32
+ '$formatMessage'
33
+ ], (opts.additionalComponentNames || []), true), onMsgExtracted: function (_, msgs) {
34
+ if (opts.extractSourceLocation) {
35
+ msgs = msgs.map(function (msg) { return ((0, tslib_1.__assign)((0, tslib_1.__assign)({}, msg), calculateLineColFromOffset(source, msg.start))); });
36
+ }
37
+ messages = messages.concat(msgs);
38
+ }, onMetaExtracted: function (_, m) {
39
+ meta = m;
40
+ } });
41
+ if (!opts.overrideIdFn && idInterpolationPattern) {
42
+ opts = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, opts), { overrideIdFn: function (id, defaultMessage, description, fileName) {
43
+ return id ||
44
+ (0, ts_transformer_1.interpolateName)({
45
+ resourcePath: fileName,
46
+ }, idInterpolationPattern, {
47
+ content: description
48
+ ? "".concat(defaultMessage, "#").concat(typeof description === 'string'
49
+ ? description
50
+ : (0, json_stable_stringify_1.default)(description))
51
+ : defaultMessage,
52
+ });
53
+ } });
54
+ }
55
+ (0, console_utils_1.debug)('Processing opts for %s: %s', fn, opts);
56
+ scriptParseFn = (0, parse_script_1.parseScript)(opts, fn);
57
+ if (!fn.endsWith('.vue')) return [3 /*break*/, 2];
58
+ (0, console_utils_1.debug)('Processing %s using vue extractor', fn);
59
+ return [4 /*yield*/, Promise.resolve().then(function () { return (0, tslib_1.__importStar)(require('./vue_extractor')); })];
60
+ case 1:
61
+ parseFile = (_b.sent()).parseFile;
62
+ parseFile(source, fn, scriptParseFn);
63
+ return [3 /*break*/, 3];
64
+ case 2:
65
+ (0, console_utils_1.debug)('Processing %s using typescript extractor', fn);
66
+ scriptParseFn(source);
67
+ _b.label = 3;
68
+ case 3:
69
+ (0, console_utils_1.debug)('Done extracting %s messages: %s', fn, messages);
70
+ if (meta) {
71
+ (0, console_utils_1.debug)('Extracted meta:', meta);
72
+ messages.forEach(function (m) { return (m.meta = meta); });
73
+ }
74
+ return [2 /*return*/, { messages: messages, meta: meta }];
75
+ }
76
+ });
77
+ });
78
+ }
79
+ /**
80
+ * Extract strings from source files
81
+ * @param files list of files
82
+ * @param extractOpts extract options
83
+ * @returns messages serialized as JSON string since key order
84
+ * matters for some `format`
85
+ */
86
+ function extract(files, extractOpts) {
87
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
88
+ var throws, readFromStdin, flatten, opts, rawResults, stdinSource, formatter, extractionResults, extractedMessages, _i, extractionResults_1, messages_3, _a, messages_1, message, id, description, defaultMessage, error, existing, error, results, messages, _b, messages_2, _c, id, msg;
89
+ var _this = this;
90
+ return (0, tslib_1.__generator)(this, function (_d) {
91
+ switch (_d.label) {
92
+ case 0:
93
+ throws = extractOpts.throws, readFromStdin = extractOpts.readFromStdin, flatten = extractOpts.flatten, opts = (0, tslib_1.__rest)(extractOpts, ["throws", "readFromStdin", "flatten"]);
94
+ if (!readFromStdin) return [3 /*break*/, 3];
95
+ (0, console_utils_1.debug)("Reading input from stdin");
96
+ // Read from stdin
97
+ if (process.stdin.isTTY) {
98
+ (0, console_utils_1.warn)('Reading source file from TTY.');
99
+ }
100
+ return [4 /*yield*/, (0, console_utils_1.getStdinAsString)()];
101
+ case 1:
102
+ stdinSource = _d.sent();
103
+ return [4 /*yield*/, processFile(stdinSource, 'dummy', opts)];
104
+ case 2:
105
+ rawResults = [_d.sent()];
106
+ return [3 /*break*/, 5];
107
+ case 3: return [4 /*yield*/, Promise.all(files.map(function (fn) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
108
+ var source, e_1;
109
+ return (0, tslib_1.__generator)(this, function (_a) {
110
+ switch (_a.label) {
111
+ case 0:
112
+ (0, console_utils_1.debug)('Extracting file:', fn);
113
+ _a.label = 1;
114
+ case 1:
115
+ _a.trys.push([1, 3, , 4]);
116
+ return [4 /*yield*/, (0, fs_extra_1.readFile)(fn, 'utf8')];
117
+ case 2:
118
+ source = _a.sent();
119
+ return [2 /*return*/, processFile(source, fn, opts)];
120
+ case 3:
121
+ e_1 = _a.sent();
122
+ if (throws) {
123
+ throw e_1;
124
+ }
125
+ else {
126
+ (0, console_utils_1.warn)(String(e_1));
127
+ }
128
+ return [3 /*break*/, 4];
129
+ case 4: return [2 /*return*/];
130
+ }
131
+ });
132
+ }); }))];
133
+ case 4:
134
+ rawResults = _d.sent();
135
+ _d.label = 5;
136
+ case 5: return [4 /*yield*/, (0, formatters_1.resolveBuiltinFormatter)(opts.format)];
137
+ case 6:
138
+ formatter = _d.sent();
139
+ extractionResults = rawResults.filter(function (r) { return !!r; });
140
+ extractedMessages = new Map();
141
+ for (_i = 0, extractionResults_1 = extractionResults; _i < extractionResults_1.length; _i++) {
142
+ messages_3 = extractionResults_1[_i].messages;
143
+ for (_a = 0, messages_1 = messages_3; _a < messages_1.length; _a++) {
144
+ message = messages_1[_a];
145
+ id = message.id, description = message.description, defaultMessage = message.defaultMessage;
146
+ if (!id) {
147
+ error = new Error("[FormatJS CLI] Missing message id for message: \n".concat(JSON.stringify(message, undefined, 2)));
148
+ if (throws) {
149
+ throw error;
150
+ }
151
+ else {
152
+ (0, console_utils_1.warn)(error.message);
153
+ }
154
+ continue;
155
+ }
156
+ if (extractedMessages.has(id)) {
157
+ existing = extractedMessages.get(id);
158
+ if (description !== existing.description ||
159
+ defaultMessage !== existing.defaultMessage) {
160
+ error = new Error("[FormatJS CLI] Duplicate message id: \"".concat(id, "\", ") +
161
+ 'but the `description` and/or `defaultMessage` are different.');
162
+ if (throws) {
163
+ throw error;
164
+ }
165
+ else {
166
+ (0, console_utils_1.warn)(error.message);
167
+ }
168
+ }
169
+ }
170
+ extractedMessages.set(id, message);
171
+ }
172
+ }
173
+ results = {};
174
+ messages = Array.from(extractedMessages.values());
175
+ for (_b = 0, messages_2 = messages; _b < messages_2.length; _b++) {
176
+ _c = messages_2[_b];
177
+ id = _c.id, msg = (0, tslib_1.__rest)(_c, ["id"]);
178
+ if (flatten && msg.defaultMessage) {
179
+ msg.defaultMessage = (0, printer_1.printAST)((0, manipulator_1.hoistSelectors)((0, icu_messageformat_parser_1.parse)(msg.defaultMessage)));
180
+ }
181
+ results[id] = msg;
182
+ }
183
+ return [2 /*return*/, (0, json_stable_stringify_1.default)(formatter.format(results), {
184
+ space: 2,
185
+ cmp: formatter.compareMessages || undefined,
186
+ })];
187
+ }
188
+ });
189
+ });
190
+ }
191
+ exports.extract = extract;
192
+ /**
193
+ * Extract strings from source files, also writes to a file.
194
+ * @param files list of files
195
+ * @param extractOpts extract options
196
+ * @returns A Promise that resolves if output file was written successfully
197
+ */
198
+ function extractAndWrite(files, extractOpts) {
199
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
200
+ var outFile, opts, serializedResult;
201
+ return (0, tslib_1.__generator)(this, function (_a) {
202
+ switch (_a.label) {
203
+ case 0:
204
+ outFile = extractOpts.outFile, opts = (0, tslib_1.__rest)(extractOpts, ["outFile"]);
205
+ return [4 /*yield*/, extract(files, opts)];
206
+ case 1:
207
+ serializedResult = (_a.sent()) + '\n';
208
+ if (outFile) {
209
+ (0, console_utils_1.debug)('Writing output file:', outFile);
210
+ return [2 /*return*/, (0, fs_extra_1.outputFile)(outFile, serializedResult)];
211
+ }
212
+ return [4 /*yield*/, (0, console_utils_1.writeStdout)(serializedResult)];
213
+ case 2:
214
+ _a.sent();
215
+ return [2 /*return*/];
216
+ }
217
+ });
218
+ });
219
+ }
220
+ exports.default = extractAndWrite;
@@ -0,0 +1,8 @@
1
+ import { CompileFn, FormatFn } from './default';
2
+ export declare type SmartlingJson = Record<string, {
3
+ message: string;
4
+ description?: string;
5
+ }>;
6
+ export declare const format: FormatFn<SmartlingJson>;
7
+ export declare const compile: CompileFn<SmartlingJson>;
8
+ //# sourceMappingURL=crowdin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crowdin.d.ts","sourceRoot":"","sources":["../../../../../../../packages/cli-lib/src/formatters/crowdin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,WAAW,CAAA;AAE7C,oBAAY,aAAa,GAAG,MAAM,CAChC,MAAM,EACN;IACE,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CACF,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,aAAa,CAY1C,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,SAAS,CAAC,aAAa,CAS5C,CAAA"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.compile = exports.format = void 0;
4
+ var format = function (msgs) {
5
+ var results = {};
6
+ for (var _i = 0, _a = Object.entries(msgs); _i < _a.length; _i++) {
7
+ var _b = _a[_i], id = _b[0], msg = _b[1];
8
+ results[id] = {
9
+ message: msg.defaultMessage,
10
+ description: typeof msg.description === 'string'
11
+ ? msg.description
12
+ : JSON.stringify(msg.description),
13
+ };
14
+ }
15
+ return results;
16
+ };
17
+ exports.format = format;
18
+ var compile = function (msgs) {
19
+ var results = {};
20
+ for (var _i = 0, _a = Object.entries(msgs); _i < _a.length; _i++) {
21
+ var _b = _a[_i], id = _b[0], msg = _b[1];
22
+ if (id === 'smartling') {
23
+ continue;
24
+ }
25
+ results[id] = msg.message;
26
+ }
27
+ return results;
28
+ };
29
+ exports.compile = compile;
@@ -0,0 +1,6 @@
1
+ import { MessageDescriptor } from '@formatjs/ts-transformer';
2
+ export declare type FormatFn<T = Record<string, MessageDescriptor>> = (msgs: Record<string, MessageDescriptor>) => T;
3
+ export declare type CompileFn<T = Record<string, MessageDescriptor>> = (msgs: T) => Record<string, string>;
4
+ export declare const format: FormatFn;
5
+ export declare const compile: CompileFn;
6
+ //# sourceMappingURL=default.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../../../../../packages/cli-lib/src/formatters/default.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,0BAA0B,CAAA;AAE1D,oBAAY,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAC5D,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,KACpC,CAAC,CAAA;AAEN,oBAAY,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAC7D,IAAI,EAAE,CAAC,KACJ,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAE3B,eAAO,MAAM,MAAM,EAAE,QAAuB,CAAA;AAE5C,eAAO,MAAM,OAAO,EAAE,SAMrB,CAAA"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.compile = exports.format = void 0;
4
+ var format = function (msgs) { return msgs; };
5
+ exports.format = format;
6
+ var compile = function (msgs) {
7
+ var results = {};
8
+ for (var k in msgs) {
9
+ results[k] = msgs[k].defaultMessage;
10
+ }
11
+ return results;
12
+ };
13
+ exports.compile = compile;
@@ -0,0 +1,9 @@
1
+ import { FormatFn, CompileFn } from './default';
2
+ import { Comparator } from 'json-stable-stringify';
3
+ export interface Formatter {
4
+ format: FormatFn;
5
+ compile: CompileFn;
6
+ compareMessages?: Comparator;
7
+ }
8
+ export declare function resolveBuiltinFormatter(format?: string | Formatter): Promise<any>;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/cli-lib/src/formatters/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAC,MAAM,WAAW,CAAA;AAM7C,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAA;AAGhD,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,QAAQ,CAAA;IAChB,OAAO,EAAE,SAAS,CAAA;IAClB,eAAe,CAAC,EAAE,UAAU,CAAA;CAC7B;AAED,wBAAsB,uBAAuB,CAC3C,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,GAAG,CAAC,CA0Bd"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveBuiltinFormatter = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var defaultFormatter = (0, tslib_1.__importStar)(require("./default"));
6
+ var transifex = (0, tslib_1.__importStar)(require("./transifex"));
7
+ var smartling = (0, tslib_1.__importStar)(require("./smartling"));
8
+ var simple = (0, tslib_1.__importStar)(require("./simple"));
9
+ var lokalise = (0, tslib_1.__importStar)(require("./lokalise"));
10
+ var crowdin = (0, tslib_1.__importStar)(require("./crowdin"));
11
+ var path_1 = require("path");
12
+ function resolveBuiltinFormatter(format) {
13
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
14
+ return (0, tslib_1.__generator)(this, function (_a) {
15
+ if (!format) {
16
+ return [2 /*return*/, defaultFormatter];
17
+ }
18
+ if (typeof format !== 'string') {
19
+ return [2 /*return*/, format];
20
+ }
21
+ switch (format) {
22
+ case 'transifex':
23
+ return [2 /*return*/, transifex];
24
+ case 'smartling':
25
+ return [2 /*return*/, smartling];
26
+ case 'simple':
27
+ return [2 /*return*/, simple];
28
+ case 'lokalise':
29
+ return [2 /*return*/, lokalise];
30
+ case 'crowdin':
31
+ return [2 /*return*/, crowdin];
32
+ }
33
+ try {
34
+ // eslint-disable-next-line import/dynamic-import-chunkname
35
+ return [2 /*return*/, Promise.resolve().then(function () { return (0, tslib_1.__importStar)(require((0, path_1.resolve)(process.cwd(), format))); })];
36
+ }
37
+ catch (e) {
38
+ console.error("Cannot resolve formatter ".concat(format));
39
+ throw e;
40
+ }
41
+ return [2 /*return*/];
42
+ });
43
+ });
44
+ }
45
+ exports.resolveBuiltinFormatter = resolveBuiltinFormatter;
@@ -0,0 +1,10 @@
1
+ import { CompileFn, FormatFn } from './default';
2
+ export declare type StructuredJson = Record<string, {
3
+ translation: string;
4
+ notes?: string;
5
+ context?: string;
6
+ limit?: string;
7
+ }>;
8
+ export declare const format: FormatFn<StructuredJson>;
9
+ export declare const compile: CompileFn<StructuredJson>;
10
+ //# sourceMappingURL=lokalise.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lokalise.d.ts","sourceRoot":"","sources":["../../../../../../../packages/cli-lib/src/formatters/lokalise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,WAAW,CAAA;AAE7C,oBAAY,cAAc,GAAG,MAAM,CACjC,MAAM,EACN;IACE,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CACF,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,cAAc,CAY3C,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,SAAS,CAAC,cAAc,CAM7C,CAAA"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.compile = exports.format = void 0;
4
+ var format = function (msgs) {
5
+ var results = {};
6
+ for (var _i = 0, _a = Object.entries(msgs); _i < _a.length; _i++) {
7
+ var _b = _a[_i], id = _b[0], msg = _b[1];
8
+ results[id] = {
9
+ translation: msg.defaultMessage,
10
+ notes: typeof msg.description === 'string'
11
+ ? msg.description
12
+ : JSON.stringify(msg.description),
13
+ };
14
+ }
15
+ return results;
16
+ };
17
+ exports.format = format;
18
+ var compile = function (msgs) {
19
+ var results = {};
20
+ for (var _i = 0, _a = Object.entries(msgs); _i < _a.length; _i++) {
21
+ var _b = _a[_i], id = _b[0], msg = _b[1];
22
+ results[id] = msg.translation;
23
+ }
24
+ return results;
25
+ };
26
+ exports.compile = compile;
@@ -0,0 +1,5 @@
1
+ import { CompileFn, FormatFn } from './default';
2
+ export declare type PhraseJson = Record<string, string>;
3
+ export declare const format: FormatFn<PhraseJson>;
4
+ export declare const compile: CompileFn<PhraseJson>;
5
+ //# sourceMappingURL=simple.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple.d.ts","sourceRoot":"","sources":["../../../../../../../packages/cli-lib/src/formatters/simple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,WAAW,CAAA;AAE7C,oBAAY,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAE/C,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,UAAU,CAKvC,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,SAAS,CAAC,UAAU,CAAgB,CAAA"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.compile = exports.format = void 0;
4
+ var format = function (msgs) {
5
+ return Object.keys(msgs).reduce(function (all, k) {
6
+ all[k] = msgs[k].defaultMessage;
7
+ return all;
8
+ }, {});
9
+ };
10
+ exports.format = format;
11
+ var compile = function (msgs) { return msgs; };
12
+ exports.compile = compile;
@@ -0,0 +1,24 @@
1
+ import { Comparator } from 'json-stable-stringify';
2
+ import { CompileFn, FormatFn } from './default';
3
+ export interface SmartlingDirectives {
4
+ translate_paths: [
5
+ {
6
+ path: string;
7
+ key: string;
8
+ instruction: string;
9
+ }
10
+ ];
11
+ variants_enabled: boolean;
12
+ string_format: string;
13
+ [k: string]: any;
14
+ }
15
+ export declare type SmartlingJson = {
16
+ smartling: SmartlingDirectives;
17
+ } & Record<string, {
18
+ message: string;
19
+ description?: string;
20
+ }>;
21
+ export declare const format: FormatFn<SmartlingJson>;
22
+ export declare const compareMessages: Comparator;
23
+ export declare const compile: CompileFn<SmartlingJson>;
24
+ //# sourceMappingURL=smartling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smartling.d.ts","sourceRoot":"","sources":["../../../../../../../packages/cli-lib/src/formatters/smartling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,WAAW,CAAA;AAE7C,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE;QACf;YACE,IAAI,EAAE,MAAM,CAAA;YACZ,GAAG,EAAE,MAAM,CAAA;YACX,WAAW,EAAE,MAAM,CAAA;SACpB;KACF,CAAA;IACD,gBAAgB,EAAE,OAAO,CAAA;IACzB,aAAa,EAAE,MAAM,CAAA;IACrB,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CACjB;AAED,oBAAY,aAAa,GAAG;IAC1B,SAAS,EAAE,mBAAmB,CAAA;CAC/B,GAAG,MAAM,CACR,MAAM,EACN;IACE,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CACF,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,aAAa,CAwB1C,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,UAS7B,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,SAAS,CAAC,aAAa,CAS5C,CAAA"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.compile = exports.compareMessages = exports.format = void 0;
4
+ var format = function (msgs) {
5
+ var results = {
6
+ smartling: {
7
+ translate_paths: [
8
+ {
9
+ path: '*/message',
10
+ key: '{*}/message',
11
+ instruction: '*/description',
12
+ },
13
+ ],
14
+ variants_enabled: true,
15
+ string_format: 'icu',
16
+ },
17
+ };
18
+ for (var _i = 0, _a = Object.entries(msgs); _i < _a.length; _i++) {
19
+ var _b = _a[_i], id = _b[0], msg = _b[1];
20
+ results[id] = {
21
+ message: msg.defaultMessage,
22
+ description: typeof msg.description === 'string'
23
+ ? msg.description
24
+ : JSON.stringify(msg.description),
25
+ };
26
+ }
27
+ return results;
28
+ };
29
+ exports.format = format;
30
+ var compareMessages = function (el1, el2) {
31
+ // `smartling` has to be the 1st key
32
+ if (el1.key === 'smartling') {
33
+ return -1;
34
+ }
35
+ if (el2.key === 'smartling') {
36
+ return 1;
37
+ }
38
+ return el1.key < el2.key ? -1 : el1.key === el2.key ? 0 : 1;
39
+ };
40
+ exports.compareMessages = compareMessages;
41
+ var compile = function (msgs) {
42
+ var results = {};
43
+ for (var _i = 0, _a = Object.entries(msgs); _i < _a.length; _i++) {
44
+ var _b = _a[_i], id = _b[0], msg = _b[1];
45
+ if (id === 'smartling') {
46
+ continue;
47
+ }
48
+ results[id] = msg.message;
49
+ }
50
+ return results;
51
+ };
52
+ exports.compile = compile;
@@ -0,0 +1,10 @@
1
+ import { CompileFn, FormatFn } from './default';
2
+ export declare type StructuredJson = Record<string, {
3
+ string: string;
4
+ developer_comment?: string;
5
+ context?: string;
6
+ character_limit?: string;
7
+ }>;
8
+ export declare const format: FormatFn<StructuredJson>;
9
+ export declare const compile: CompileFn<StructuredJson>;
10
+ //# sourceMappingURL=transifex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transifex.d.ts","sourceRoot":"","sources":["../../../../../../../packages/cli-lib/src/formatters/transifex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,WAAW,CAAA;AAE7C,oBAAY,cAAc,GAAG,MAAM,CACjC,MAAM,EACN;IACE,MAAM,EAAE,MAAM,CAAA;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,CACF,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,cAAc,CAY3C,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,SAAS,CAAC,cAAc,CAM7C,CAAA"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.compile = exports.format = void 0;
4
+ var format = function (msgs) {
5
+ var results = {};
6
+ for (var _i = 0, _a = Object.entries(msgs); _i < _a.length; _i++) {
7
+ var _b = _a[_i], id = _b[0], msg = _b[1];
8
+ results[id] = {
9
+ string: msg.defaultMessage,
10
+ developer_comment: typeof msg.description === 'string'
11
+ ? msg.description
12
+ : JSON.stringify(msg.description),
13
+ };
14
+ }
15
+ return results;
16
+ };
17
+ exports.format = format;
18
+ var compile = function (msgs) {
19
+ var results = {};
20
+ for (var _i = 0, _a = Object.entries(msgs); _i < _a.length; _i++) {
21
+ var _b = _a[_i], id = _b[0], msg = _b[1];
22
+ results[id] = msg.string;
23
+ }
24
+ return results;
25
+ };
26
+ exports.compile = compile;
@@ -0,0 +1,8 @@
1
+ import { Opts } from '@formatjs/ts-transformer';
2
+ /**
3
+ * Invoid TypeScript module transpilation with our TS transformer
4
+ * @param opts Formatjs TS Transformer opt
5
+ * @param fn filename
6
+ */
7
+ export declare function parseScript(opts: Opts, fn?: string): (source: string) => void;
8
+ //# sourceMappingURL=parse_script.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse_script.d.ts","sourceRoot":"","sources":["../../../../../../packages/cli-lib/src/parse_script.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAkB,MAAM,0BAA0B,CAAA;AAG9D;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,YACjC,MAAM,UAuCvB"}