@esgettext/tools 1.0.0 → 1.1.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 +196 -21
- package/dist/command.d.ts +11 -0
- package/dist/command.js +3 -0
- package/dist/command.js.map +1 -0
- package/dist/commands/convert.d.ts +24 -0
- package/dist/commands/convert.js +284 -0
- package/dist/commands/convert.js.map +1 -0
- package/dist/commands/install.d.ts +22 -0
- package/dist/commands/install.js +249 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/msgfmt-all.d.ts +20 -0
- package/dist/commands/msgfmt-all.js +200 -0
- package/dist/commands/msgfmt-all.js.map +1 -0
- package/dist/commands/msgmerge-all.d.ts +21 -0
- package/dist/commands/msgmerge-all.js +212 -0
- package/dist/commands/msgmerge-all.js.map +1 -0
- package/dist/{xgettext → commands/xgettext}/file-resolver.d.ts +1 -1
- package/dist/commands/xgettext/file-resolver.js +21 -0
- package/dist/commands/xgettext/file-resolver.js.map +1 -0
- package/dist/commands/xgettext/file-resolver.spec.js +22 -0
- package/dist/commands/xgettext/file-resolver.spec.js.map +1 -0
- package/dist/commands/xgettext/files-collector.js +39 -0
- package/dist/commands/xgettext/files-collector.js.map +1 -0
- package/dist/{xgettext → commands/xgettext}/files-collector.spec.js +39 -21
- package/dist/commands/xgettext/files-collector.spec.js.map +1 -0
- package/dist/commands/xgettext.d.ts +29 -0
- package/dist/commands/xgettext.js +525 -0
- package/dist/commands/xgettext.js.map +1 -0
- package/dist/commands/xgettext.spec.js +897 -0
- package/dist/commands/xgettext.spec.js.map +1 -0
- package/dist/configuration.d.ts +36 -0
- package/dist/configuration.js +261 -0
- package/dist/configuration.js.map +1 -0
- package/dist/esgettext-package-json.d.ts +15 -0
- package/dist/esgettext-package-json.js +3 -0
- package/dist/esgettext-package-json.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +84 -0
- package/dist/index.js.map +1 -0
- package/dist/package.d.ts +1 -0
- package/dist/package.js +10 -11
- package/dist/package.js.map +1 -1
- package/dist/parser/javascript.js +7 -27
- package/dist/parser/javascript.js.map +1 -1
- package/dist/parser/javascript.spec.js +271 -172
- package/dist/parser/javascript.spec.js.map +1 -1
- package/dist/parser/parser.js +159 -146
- package/dist/parser/parser.js.map +1 -1
- package/dist/parser/po.d.ts +1 -1
- package/dist/parser/po.js +111 -128
- package/dist/parser/po.js.map +1 -1
- package/dist/parser/po.spec.js +349 -159
- package/dist/parser/po.spec.js.map +1 -1
- package/dist/parser/typescript.js +8 -27
- package/dist/parser/typescript.js.map +1 -1
- package/dist/parser/typescript.spec.js +56 -41
- package/dist/parser/typescript.spec.js.map +1 -1
- package/dist/pot/catalog.js +98 -82
- package/dist/pot/catalog.js.map +1 -1
- package/dist/pot/catalog.spec.js +47 -43
- package/dist/pot/catalog.spec.js.map +1 -1
- package/dist/pot/entry.js +102 -114
- package/dist/pot/entry.js.map +1 -1
- package/dist/pot/entry.spec.js +255 -139
- package/dist/pot/entry.spec.js.map +1 -1
- package/dist/pot/keyword.js +57 -88
- package/dist/pot/keyword.js.map +1 -1
- package/dist/pot/keyword.spec.js +26 -26
- package/dist/pot/keyword.spec.js.map +1 -1
- package/package.json +36 -24
- package/bin/esgettext-install.js +0 -5
- package/bin/esgettext-mo2json.js +0 -5
- package/bin/esgettext-msgfmt-all.js +0 -5
- package/bin/esgettext-msgmerge-all.js +0 -5
- package/bin/esgettext-xgettext.js +0 -5
- package/dist/cli/getopt.d.ts +0 -34
- package/dist/cli/getopt.js +0 -150
- package/dist/cli/getopt.js.map +0 -1
- package/dist/cli/getopt.spec.d.ts +0 -1
- package/dist/cli/getopt.spec.js +0 -164
- package/dist/cli/getopt.spec.js.map +0 -1
- package/dist/cli/install.d.ts +0 -1
- package/dist/cli/install.js +0 -91
- package/dist/cli/install.js.map +0 -1
- package/dist/cli/mo2json-cli.d.ts +0 -1
- package/dist/cli/mo2json-cli.js +0 -48
- package/dist/cli/mo2json-cli.js.map +0 -1
- package/dist/cli/msgfmt-all.d.ts +0 -1
- package/dist/cli/msgfmt-all.js +0 -99
- package/dist/cli/msgfmt-all.js.map +0 -1
- package/dist/cli/msgmerge-all.d.ts +0 -1
- package/dist/cli/msgmerge-all.js +0 -85
- package/dist/cli/msgmerge-all.js.map +0 -1
- package/dist/cli/xgettext-cli.d.ts +0 -1
- package/dist/cli/xgettext-cli.js +0 -303
- package/dist/cli/xgettext-cli.js.map +0 -1
- package/dist/install/install.d.ts +0 -10
- package/dist/install/install.js +0 -157
- package/dist/install/install.js.map +0 -1
- package/dist/msgfmt-all/msgfmt-all.d.ts +0 -8
- package/dist/msgfmt-all/msgfmt-all.js +0 -142
- package/dist/msgfmt-all/msgfmt-all.js.map +0 -1
- package/dist/msgmerge-all/msgmerge-all.d.ts +0 -9
- package/dist/msgmerge-all/msgmerge-all.js +0 -157
- package/dist/msgmerge-all/msgmerge-all.js.map +0 -1
- package/dist/parser/__snapshots__/javascript.spec.js.snap +0 -56
- package/dist/parser/__snapshots__/po.spec.js.snap +0 -176
- package/dist/pot/__snapshots__/catalog.spec.js.snap +0 -591
- package/dist/xgettext/__snapshots__/xgettext.spec.js.snap +0 -462
- package/dist/xgettext/file-resolver.js +0 -23
- package/dist/xgettext/file-resolver.js.map +0 -1
- package/dist/xgettext/file-resolver.spec.js +0 -22
- package/dist/xgettext/file-resolver.spec.js.map +0 -1
- package/dist/xgettext/files-collector.js +0 -41
- package/dist/xgettext/files-collector.js.map +0 -1
- package/dist/xgettext/files-collector.spec.js.map +0 -1
- package/dist/xgettext/xgettext.d.ts +0 -16
- package/dist/xgettext/xgettext.js +0 -335
- package/dist/xgettext/xgettext.js.map +0 -1
- package/dist/xgettext/xgettext.spec.js +0 -743
- package/dist/xgettext/xgettext.spec.js.map +0 -1
- /package/dist/{xgettext → commands/xgettext}/file-resolver.spec.d.ts +0 -0
- /package/dist/{xgettext → commands/xgettext}/files-collector.d.ts +0 -0
- /package/dist/{xgettext → commands/xgettext}/files-collector.spec.d.ts +0 -0
- /package/dist/{xgettext → commands}/xgettext.spec.d.ts +0 -0
package/dist/pot/keyword.js
CHANGED
|
@@ -1,68 +1,67 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Keyword = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var _this = this;
|
|
4
|
+
const runtime_1 = require("@esgettext/runtime");
|
|
5
|
+
const gtx = runtime_1.Textdomain.getInstance('tools');
|
|
6
|
+
class Keyword {
|
|
7
|
+
constructor(method, args) {
|
|
9
8
|
this._method = method;
|
|
10
9
|
if (!args) {
|
|
11
10
|
args = new Array();
|
|
12
11
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
args.forEach(
|
|
12
|
+
const argRe = new RegExp(/^([1-9][0-9]*)([ct]?)$/);
|
|
13
|
+
const commentRe = new RegExp(/"([^"]*)"/);
|
|
14
|
+
const seen = new Array();
|
|
15
|
+
args.forEach(arg => {
|
|
17
16
|
if (typeof arg === 'undefined' || arg === '') {
|
|
18
17
|
arg = '1';
|
|
19
18
|
}
|
|
20
|
-
|
|
19
|
+
const argMatch = argRe.exec(arg);
|
|
21
20
|
if (argMatch) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
const pos = Number.parseInt(argMatch[1], 10);
|
|
22
|
+
const isCtx = argMatch[2] === 'c' ? true : false;
|
|
23
|
+
const isTotal = argMatch[2] === 't' ? true : false;
|
|
25
24
|
if (seen.includes(pos) && !isTotal) {
|
|
26
25
|
throw new Error(gtx._x('Multiple meanings for argument #{num} for function "{function}"!', { function: method, num: pos }));
|
|
27
26
|
}
|
|
28
27
|
seen.push(pos);
|
|
29
28
|
if (isCtx) {
|
|
30
|
-
if (
|
|
29
|
+
if (this._context) {
|
|
31
30
|
throw new Error(gtx._x('Multiple context arguments for function "{function}"!', {
|
|
32
31
|
function: method,
|
|
33
32
|
}));
|
|
34
33
|
}
|
|
35
|
-
|
|
34
|
+
this._context = pos;
|
|
36
35
|
}
|
|
37
36
|
else if (isTotal) {
|
|
38
|
-
if (
|
|
37
|
+
if (this._totalArgs) {
|
|
39
38
|
throw new Error(gtx._x('Multiple total arguments for function "{function}"!', {
|
|
40
39
|
function: method,
|
|
41
40
|
}));
|
|
42
41
|
}
|
|
43
|
-
|
|
42
|
+
this._totalArgs = pos;
|
|
44
43
|
}
|
|
45
|
-
else if (
|
|
44
|
+
else if (this.plural) {
|
|
46
45
|
throw new Error(gtx._x('Too many forms for function "{function}"!', {
|
|
47
46
|
function: method,
|
|
48
47
|
}));
|
|
49
48
|
}
|
|
50
|
-
else if (
|
|
51
|
-
|
|
49
|
+
else if (this.singular) {
|
|
50
|
+
this._plural = pos;
|
|
52
51
|
}
|
|
53
52
|
else {
|
|
54
|
-
|
|
53
|
+
this._singular = pos;
|
|
55
54
|
}
|
|
56
55
|
}
|
|
57
56
|
if (!argMatch) {
|
|
58
|
-
|
|
57
|
+
const commentMatch = commentRe.exec(arg);
|
|
59
58
|
if (commentMatch) {
|
|
60
|
-
if (typeof
|
|
59
|
+
if (typeof this._comment !== 'undefined') {
|
|
61
60
|
throw new Error(gtx._x('Multiple extracted comments for function "{function}"!', {
|
|
62
61
|
function: method,
|
|
63
62
|
}));
|
|
64
63
|
}
|
|
65
|
-
|
|
64
|
+
this._comment = commentMatch[1];
|
|
66
65
|
}
|
|
67
66
|
else {
|
|
68
67
|
throw new Error(gtx._x('Invalid argument specification "{spec}" for function "{function}"!', { spec: arg, function: method }));
|
|
@@ -73,12 +72,12 @@ var Keyword = (function () {
|
|
|
73
72
|
this._singular = 1;
|
|
74
73
|
}
|
|
75
74
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
75
|
+
static from(spec) {
|
|
76
|
+
const tokens = new Array();
|
|
77
|
+
let ready = false;
|
|
78
|
+
while (spec.length) {
|
|
79
|
+
let modified = false;
|
|
80
|
+
let remainder = spec.replace(/([,:])[\s]*([1-9][0-9]*[ct]?)[\s]*$/, (_, sep, token) => {
|
|
82
81
|
modified = true;
|
|
83
82
|
tokens.unshift(token);
|
|
84
83
|
if (sep === ':') {
|
|
@@ -88,9 +87,9 @@ var Keyword = (function () {
|
|
|
88
87
|
});
|
|
89
88
|
spec = remainder;
|
|
90
89
|
if (ready) {
|
|
91
|
-
|
|
90
|
+
break;
|
|
92
91
|
}
|
|
93
|
-
remainder = spec.replace(/([,:])[\s]*("[^"]*")[\s]*$/,
|
|
92
|
+
remainder = spec.replace(/([,:])[\s]*("[^"]*")[\s]*$/, (_, sep, token) => {
|
|
94
93
|
modified = true;
|
|
95
94
|
tokens.unshift(token);
|
|
96
95
|
if (':' === sep) {
|
|
@@ -100,18 +99,13 @@ var Keyword = (function () {
|
|
|
100
99
|
});
|
|
101
100
|
spec = remainder;
|
|
102
101
|
if (ready || !modified) {
|
|
103
|
-
return "break";
|
|
104
|
-
}
|
|
105
|
-
};
|
|
106
|
-
while (spec.length) {
|
|
107
|
-
var state_1 = _loop_1();
|
|
108
|
-
if (state_1 === "break")
|
|
109
102
|
break;
|
|
103
|
+
}
|
|
110
104
|
}
|
|
111
105
|
return new Keyword(spec, tokens);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
|
|
106
|
+
}
|
|
107
|
+
toString() {
|
|
108
|
+
let dump = this.method + ':';
|
|
115
109
|
if (this.context) {
|
|
116
110
|
dump += this.context + 'c,';
|
|
117
111
|
}
|
|
@@ -123,59 +117,34 @@ var Keyword = (function () {
|
|
|
123
117
|
dump += this.totalArgs + 't,';
|
|
124
118
|
}
|
|
125
119
|
if (typeof this.comment !== 'undefined') {
|
|
126
|
-
dump += "
|
|
120
|
+
dump += `"${this.comment}",`;
|
|
127
121
|
}
|
|
128
122
|
dump = dump.substr(0, dump.length - 1);
|
|
129
|
-
if (dump ===
|
|
123
|
+
if (dump === `${this.method}:1`) {
|
|
130
124
|
return this.method;
|
|
131
125
|
}
|
|
132
126
|
else {
|
|
133
127
|
return dump;
|
|
134
128
|
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
configurable: true
|
|
156
|
-
});
|
|
157
|
-
Object.defineProperty(Keyword.prototype, "context", {
|
|
158
|
-
get: function () {
|
|
159
|
-
return this._context;
|
|
160
|
-
},
|
|
161
|
-
enumerable: false,
|
|
162
|
-
configurable: true
|
|
163
|
-
});
|
|
164
|
-
Object.defineProperty(Keyword.prototype, "comment", {
|
|
165
|
-
get: function () {
|
|
166
|
-
return this._comment;
|
|
167
|
-
},
|
|
168
|
-
enumerable: false,
|
|
169
|
-
configurable: true
|
|
170
|
-
});
|
|
171
|
-
Object.defineProperty(Keyword.prototype, "totalArgs", {
|
|
172
|
-
get: function () {
|
|
173
|
-
return this._totalArgs;
|
|
174
|
-
},
|
|
175
|
-
enumerable: false,
|
|
176
|
-
configurable: true
|
|
177
|
-
});
|
|
178
|
-
return Keyword;
|
|
179
|
-
}());
|
|
129
|
+
}
|
|
130
|
+
get method() {
|
|
131
|
+
return this._method;
|
|
132
|
+
}
|
|
133
|
+
get singular() {
|
|
134
|
+
return this._singular;
|
|
135
|
+
}
|
|
136
|
+
get plural() {
|
|
137
|
+
return this._plural;
|
|
138
|
+
}
|
|
139
|
+
get context() {
|
|
140
|
+
return this._context;
|
|
141
|
+
}
|
|
142
|
+
get comment() {
|
|
143
|
+
return this._comment;
|
|
144
|
+
}
|
|
145
|
+
get totalArgs() {
|
|
146
|
+
return this._totalArgs;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
180
149
|
exports.Keyword = Keyword;
|
|
181
150
|
//# sourceMappingURL=keyword.js.map
|
package/dist/pot/keyword.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyword.js","sourceRoot":"","sources":["../../src/pot/keyword.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"keyword.js","sourceRoot":"","sources":["../../src/pot/keyword.ts"],"names":[],"mappings":"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"}
|
package/dist/pot/keyword.spec.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
describe('keywords',
|
|
5
|
-
describe('constructor',
|
|
6
|
-
it('should recognize the simplest form',
|
|
7
|
-
|
|
3
|
+
const keyword_1 = require("./keyword");
|
|
4
|
+
describe('keywords', () => {
|
|
5
|
+
describe('constructor', () => {
|
|
6
|
+
it('should recognize the simplest form', () => {
|
|
7
|
+
const k = new keyword_1.Keyword('_');
|
|
8
8
|
expect(k.toString()).toEqual('_');
|
|
9
9
|
});
|
|
10
|
-
it('should consider an empty token as 1',
|
|
11
|
-
|
|
10
|
+
it('should consider an empty token as 1', () => {
|
|
11
|
+
const k = new keyword_1.Keyword('_', ['']);
|
|
12
12
|
expect(k.toString()).toEqual('_');
|
|
13
13
|
});
|
|
14
|
-
it('should recognize all tokens',
|
|
15
|
-
|
|
14
|
+
it('should recognize all tokens', () => {
|
|
15
|
+
const k = new keyword_1.Keyword('_npx', [
|
|
16
16
|
'1c',
|
|
17
17
|
'2',
|
|
18
18
|
'3',
|
|
@@ -21,32 +21,32 @@ describe('keywords', function () {
|
|
|
21
21
|
]);
|
|
22
22
|
expect(k.toString()).toEqual('_npx:1c,2,3,4t,"perl-brace-format"');
|
|
23
23
|
});
|
|
24
|
-
it('should detect meanings for arguments',
|
|
25
|
-
expect(
|
|
24
|
+
it('should detect meanings for arguments', () => {
|
|
25
|
+
expect(() => new keyword_1.Keyword('_', ['1c', '1'])).toThrow(new Error('Multiple meanings for argument #1 for function "_"!'));
|
|
26
26
|
});
|
|
27
|
-
it('should detect multiple context arguments',
|
|
28
|
-
expect(
|
|
27
|
+
it('should detect multiple context arguments', () => {
|
|
28
|
+
expect(() => new keyword_1.Keyword('_', ['1c', '2c', '3'])).toThrow(new Error('Multiple context arguments for function "_"!'));
|
|
29
29
|
});
|
|
30
|
-
it('should detect multiple total arguments',
|
|
31
|
-
expect(
|
|
30
|
+
it('should detect multiple total arguments', () => {
|
|
31
|
+
expect(() => new keyword_1.Keyword('_', ['1', '2t', '3t'])).toThrow(new Error('Multiple total arguments for function "_"!'));
|
|
32
32
|
});
|
|
33
|
-
it('should detect excess forms',
|
|
34
|
-
expect(
|
|
33
|
+
it('should detect excess forms', () => {
|
|
34
|
+
expect(() => new keyword_1.Keyword('_', ['1', '3', '5'])).toThrow(new Error('Too many forms for function "_"!'));
|
|
35
35
|
});
|
|
36
|
-
it('should detect excess comments',
|
|
37
|
-
expect(
|
|
36
|
+
it('should detect excess comments', () => {
|
|
37
|
+
expect(() => new keyword_1.Keyword('_', ['"comment1"', '1', '"comment2"'])).toThrow(new Error('Multiple extracted comments for function "_"!'));
|
|
38
38
|
});
|
|
39
|
-
it('should discard garbage',
|
|
40
|
-
expect(
|
|
39
|
+
it('should discard garbage', () => {
|
|
40
|
+
expect(() => new keyword_1.Keyword('_', ['1', '2q'])).toThrow(new Error('Invalid argument specification "2q" for function "_"!'));
|
|
41
41
|
});
|
|
42
42
|
});
|
|
43
|
-
describe('from string',
|
|
44
|
-
it('should recognize all tokens',
|
|
45
|
-
|
|
43
|
+
describe('from string', () => {
|
|
44
|
+
it('should recognize all tokens', () => {
|
|
45
|
+
const arg = '_npx:1c,2,3,4t,"perl-brace-format"';
|
|
46
46
|
expect(keyword_1.Keyword.from(arg).toString()).toEqual(arg);
|
|
47
47
|
});
|
|
48
|
-
it('should accept a comment only',
|
|
49
|
-
|
|
48
|
+
it('should accept a comment only', () => {
|
|
49
|
+
const arg = '_x:"perl-brace-format"';
|
|
50
50
|
expect(keyword_1.Keyword.from(arg).toString()).toEqual('_x:1,"perl-brace-format"');
|
|
51
51
|
});
|
|
52
52
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyword.spec.js","sourceRoot":"","sources":["../../src/pot/keyword.spec.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"keyword.spec.js","sourceRoot":"","sources":["../../src/pot/keyword.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,40 +1,40 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@esgettext/tools",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Gettext-like po creation and manipulation",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
8
8
|
"main": "dist/index.js",
|
|
9
9
|
"types": "dist/index.d.ts",
|
|
10
|
-
"repository":
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "git+https://github.com/gflohr/esgettext.git"
|
|
13
|
+
},
|
|
11
14
|
"bugs": {
|
|
12
15
|
"url": "https://github.com/gflohr/esgettext/issues"
|
|
13
16
|
},
|
|
14
17
|
"homepage": "https://github.com/gflohr/esgettext/packages/tools",
|
|
15
18
|
"files": [
|
|
16
|
-
"
|
|
17
|
-
"dist/"
|
|
19
|
+
"dist"
|
|
18
20
|
],
|
|
19
21
|
"bin": {
|
|
20
|
-
"esgettext
|
|
21
|
-
"esgettext-mo2json": "./bin/esgettext-mo2json.js",
|
|
22
|
-
"esgettext-msgfmt-all": "./bin/esgettext-msgfmt-all.js",
|
|
23
|
-
"esgettext-msgmerge-all": "./bin/esgettext-msgmerge-all.js",
|
|
24
|
-
"esgettext-xgettext": "./bin/esgettext-xgettext.js"
|
|
22
|
+
"esgettext": "dist/index.js"
|
|
25
23
|
},
|
|
26
24
|
"scripts": {
|
|
27
|
-
"build": "npm run clean && tsc --project tsconfig-build.json",
|
|
28
|
-
"prebuild": "node ./write-package.
|
|
25
|
+
"build": "npm run clean && tsc --project tsconfig-build.json && chmod +x dist/index.js",
|
|
26
|
+
"prebuild": "node ./write-package.mjs >src/package.ts",
|
|
27
|
+
"prepublishOnly": "npm run check:clean && npm run build",
|
|
28
|
+
"check:clean": "../../check-clean",
|
|
29
29
|
"format": "prettier --write 'src/**/*.ts'",
|
|
30
30
|
"watch": "tsc --watch",
|
|
31
|
-
"prewatch": "node ./write-package.
|
|
32
|
-
"clean": "
|
|
31
|
+
"prewatch": "node ./write-package.mjs >src/package.ts",
|
|
32
|
+
"clean": "rimraf ./dist",
|
|
33
33
|
"lint": "eslint './src/**/*.ts'",
|
|
34
34
|
"lint:fix": "eslint --fix './src/**/*.ts'",
|
|
35
35
|
"lint:fix-dry-run": "eslint --fix './src/**/*.ts'",
|
|
36
36
|
"lint:staged": "lint-staged",
|
|
37
|
-
"pretest": "node ./write-package.
|
|
37
|
+
"pretest": "node ./write-package.mjs >src/package.ts",
|
|
38
38
|
"test": "jest",
|
|
39
39
|
"test:watch": "jest --watch",
|
|
40
40
|
"test:cov": "jest --coverage",
|
|
@@ -61,28 +61,40 @@
|
|
|
61
61
|
"testEnvironment": "node"
|
|
62
62
|
},
|
|
63
63
|
"lint-staged": {
|
|
64
|
-
"*.{
|
|
64
|
+
"*.{ts,json,md}": [
|
|
65
65
|
"prettier --write"
|
|
66
66
|
],
|
|
67
67
|
"src/**/*.ts": [
|
|
68
68
|
"eslint"
|
|
69
69
|
]
|
|
70
70
|
},
|
|
71
|
+
"devDependencies": {
|
|
72
|
+
"@babel/types": "^7.24.7",
|
|
73
|
+
"@eslint/config-array": "^0.16.0",
|
|
74
|
+
"@humanwhocodes/retry": "^0.3.0",
|
|
75
|
+
"@types/glob": "^8.1.0",
|
|
76
|
+
"@types/jest": "^29.5.12",
|
|
77
|
+
"@types/jsonfile": "^6.1.4",
|
|
78
|
+
"@types/node": "^20.14.2",
|
|
79
|
+
"@types/yargs": "^17.0.32",
|
|
80
|
+
"eslint": "^8.56.0",
|
|
81
|
+
"jest": "^29.7.0",
|
|
82
|
+
"prettier": "^3.3.2",
|
|
83
|
+
"rimraf": "^5.0.7",
|
|
84
|
+
"tsx": "^4.15.4",
|
|
85
|
+
"typescript": "^5.4.5",
|
|
86
|
+
"typescript-eslint": "^7.13.0"
|
|
87
|
+
},
|
|
71
88
|
"dependencies": {
|
|
72
89
|
"@babel/parser": "^7.24.7",
|
|
73
90
|
"@babel/traverse": "^7.24.7",
|
|
74
|
-
"@esgettext/runtime": "^1.
|
|
91
|
+
"@esgettext/runtime": "^1.1.0",
|
|
92
|
+
"@valibot/i18n": "^0.15.0",
|
|
75
93
|
"iconv-lite": "^0.6.3",
|
|
76
94
|
"jsonfile": "^6.1.0",
|
|
77
95
|
"mkdirp": "^3.0.1",
|
|
96
|
+
"valibot": "^0.31.1",
|
|
78
97
|
"yargs": "^17.7.2"
|
|
79
98
|
},
|
|
80
|
-
"
|
|
81
|
-
"@babel/types": "^7.24.7",
|
|
82
|
-
"@types/jsonfile": "^6.1.4",
|
|
83
|
-
"@types/node": "^20.14.2",
|
|
84
|
-
"@types/yargs": "^17.0.32",
|
|
85
|
-
"shx": "^0.3.4"
|
|
86
|
-
},
|
|
87
|
-
"gitHead": "1bde315876e4ecc4b1800c3452a4f8bdb210088e"
|
|
99
|
+
"gitHead": "ecd3f8bfeb399c69e5e4bf13aa20f6129f3ad847"
|
|
88
100
|
}
|
package/bin/esgettext-install.js
DELETED
package/bin/esgettext-mo2json.js
DELETED
package/dist/cli/getopt.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import yargs from 'yargs';
|
|
2
|
-
export interface Options {
|
|
3
|
-
[key: string]: any;
|
|
4
|
-
}
|
|
5
|
-
export interface OptionFlags {
|
|
6
|
-
multiple?: boolean;
|
|
7
|
-
}
|
|
8
|
-
export interface Option {
|
|
9
|
-
name: string;
|
|
10
|
-
flags?: OptionFlags;
|
|
11
|
-
yargsOptions: yargs.Options;
|
|
12
|
-
}
|
|
13
|
-
export interface OptionGroup {
|
|
14
|
-
description: string;
|
|
15
|
-
options: Array<Option>;
|
|
16
|
-
}
|
|
17
|
-
export interface GetoptOptions {
|
|
18
|
-
hasVerboseOption?: boolean;
|
|
19
|
-
}
|
|
20
|
-
export declare class Getopt {
|
|
21
|
-
readonly programName: string;
|
|
22
|
-
private cli;
|
|
23
|
-
private readonly allowedKeys;
|
|
24
|
-
private readonly defaultFlags;
|
|
25
|
-
private readonly hasVerboseOption;
|
|
26
|
-
constructor(usage: string, description: string, optionGroups: OptionGroup[], options?: GetoptOptions);
|
|
27
|
-
argv(args?: {
|
|
28
|
-
[x: string]: unknown;
|
|
29
|
-
_: string[];
|
|
30
|
-
$0: string;
|
|
31
|
-
}): Options;
|
|
32
|
-
private buildUsage;
|
|
33
|
-
private addDefaultOptions;
|
|
34
|
-
}
|