@intlify/message-compiler 9.2.0-beta.9 → 9.2.2
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/dist/message-compiler.cjs.js +43 -25
- package/dist/message-compiler.cjs.prod.js +43 -25
- package/dist/message-compiler.esm-browser.js +40 -19
- package/dist/message-compiler.esm-browser.prod.js +3 -3
- package/dist/message-compiler.esm-bundler.js +40 -19
- package/dist/message-compiler.global.js +41 -20
- package/dist/message-compiler.global.prod.js +3 -3
- package/index.mjs +1 -0
- package/package.json +16 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* message-compiler v9.2.
|
|
3
|
-
* (c)
|
|
2
|
+
* message-compiler v9.2.2
|
|
3
|
+
* (c) 2022 kazuya kawaguchi
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
6
6
|
'use strict';
|
|
@@ -350,6 +350,16 @@ function createTokenizer(source, options = {}) {
|
|
|
350
350
|
scnr.resetPeek();
|
|
351
351
|
return ret;
|
|
352
352
|
}
|
|
353
|
+
function detectModuloStart(scnr) {
|
|
354
|
+
const spaces = peekSpaces(scnr);
|
|
355
|
+
const ret = scnr.currentPeek() === "%" /* Modulo */ &&
|
|
356
|
+
scnr.peek() === "{" /* BraceLeft */;
|
|
357
|
+
scnr.resetPeek();
|
|
358
|
+
return {
|
|
359
|
+
isModulo: ret,
|
|
360
|
+
hasSpace: spaces.length > 0
|
|
361
|
+
};
|
|
362
|
+
}
|
|
353
363
|
function isTextStart(scnr, reset = true) {
|
|
354
364
|
const fn = (hasSpace = false, prev = '', detectModulo = false) => {
|
|
355
365
|
const ch = scnr.currentPeek();
|
|
@@ -431,50 +441,54 @@ function createTokenizer(source, options = {}) {
|
|
|
431
441
|
}
|
|
432
442
|
return num;
|
|
433
443
|
}
|
|
444
|
+
function readModulo(scnr) {
|
|
445
|
+
skipSpaces(scnr);
|
|
446
|
+
const ch = scnr.currentChar();
|
|
447
|
+
if (ch !== "%" /* Modulo */) {
|
|
448
|
+
emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);
|
|
449
|
+
}
|
|
450
|
+
scnr.next();
|
|
451
|
+
return "%" /* Modulo */;
|
|
452
|
+
}
|
|
434
453
|
function readText(scnr) {
|
|
435
|
-
|
|
454
|
+
let buf = '';
|
|
455
|
+
while (true) {
|
|
436
456
|
const ch = scnr.currentChar();
|
|
437
457
|
if (ch === "{" /* BraceLeft */ ||
|
|
438
458
|
ch === "}" /* BraceRight */ ||
|
|
439
459
|
ch === "@" /* LinkedAlias */ ||
|
|
460
|
+
ch === "|" /* Pipe */ ||
|
|
440
461
|
!ch) {
|
|
441
|
-
|
|
462
|
+
break;
|
|
442
463
|
}
|
|
443
464
|
else if (ch === "%" /* Modulo */) {
|
|
444
465
|
if (isTextStart(scnr)) {
|
|
445
466
|
buf += ch;
|
|
446
467
|
scnr.next();
|
|
447
|
-
return fn(buf);
|
|
448
468
|
}
|
|
449
469
|
else {
|
|
450
|
-
|
|
470
|
+
break;
|
|
451
471
|
}
|
|
452
472
|
}
|
|
453
|
-
else if (ch === "|" /* Pipe */) {
|
|
454
|
-
return buf;
|
|
455
|
-
}
|
|
456
473
|
else if (ch === CHAR_SP || ch === CHAR_LF) {
|
|
457
474
|
if (isTextStart(scnr)) {
|
|
458
475
|
buf += ch;
|
|
459
476
|
scnr.next();
|
|
460
|
-
return fn(buf);
|
|
461
477
|
}
|
|
462
478
|
else if (isPluralStart(scnr)) {
|
|
463
|
-
|
|
479
|
+
break;
|
|
464
480
|
}
|
|
465
481
|
else {
|
|
466
482
|
buf += ch;
|
|
467
483
|
scnr.next();
|
|
468
|
-
return fn(buf);
|
|
469
484
|
}
|
|
470
485
|
}
|
|
471
486
|
else {
|
|
472
487
|
buf += ch;
|
|
473
488
|
scnr.next();
|
|
474
|
-
return fn(buf);
|
|
475
489
|
}
|
|
476
|
-
}
|
|
477
|
-
return
|
|
490
|
+
}
|
|
491
|
+
return buf;
|
|
478
492
|
}
|
|
479
493
|
function readNamedIdentifier(scnr) {
|
|
480
494
|
skipSpaces(scnr);
|
|
@@ -782,13 +796,15 @@ function createTokenizer(source, options = {}) {
|
|
|
782
796
|
context.inLinked = false;
|
|
783
797
|
return token;
|
|
784
798
|
}
|
|
799
|
+
const { isModulo, hasSpace } = detectModuloStart(scnr);
|
|
800
|
+
if (isModulo) {
|
|
801
|
+
return hasSpace
|
|
802
|
+
? getToken(context, 0 /* Text */, readText(scnr))
|
|
803
|
+
: getToken(context, 4 /* Modulo */, readModulo(scnr));
|
|
804
|
+
}
|
|
785
805
|
if (isTextStart(scnr)) {
|
|
786
806
|
return getToken(context, 0 /* Text */, readText(scnr));
|
|
787
807
|
}
|
|
788
|
-
if (ch === "%" /* Modulo */) {
|
|
789
|
-
scnr.next();
|
|
790
|
-
return getToken(context, 4 /* Modulo */, "%" /* Modulo */);
|
|
791
|
-
}
|
|
792
808
|
break;
|
|
793
809
|
}
|
|
794
810
|
return token;
|
|
@@ -1142,6 +1158,7 @@ function traverseNode(node, transformer) {
|
|
|
1142
1158
|
const linked = node;
|
|
1143
1159
|
traverseNode(linked.key, transformer);
|
|
1144
1160
|
transformer.helper("linked" /* LINKED */);
|
|
1161
|
+
transformer.helper("type" /* TYPE */);
|
|
1145
1162
|
break;
|
|
1146
1163
|
case 5 /* List */:
|
|
1147
1164
|
transformer.helper("interpolate" /* INTERPOLATE */);
|
|
@@ -1242,6 +1259,10 @@ function generateLinkedNode(generator, node) {
|
|
|
1242
1259
|
if (node.modifier) {
|
|
1243
1260
|
generator.push(`, `);
|
|
1244
1261
|
generateNode(generator, node.modifier);
|
|
1262
|
+
generator.push(`, _type`);
|
|
1263
|
+
}
|
|
1264
|
+
else {
|
|
1265
|
+
generator.push(`, undefined, _type`);
|
|
1245
1266
|
}
|
|
1246
1267
|
generator.push(`)`);
|
|
1247
1268
|
}
|
|
@@ -1367,17 +1388,14 @@ const generate = (ast, options = {} // eslint-disable-line
|
|
|
1367
1388
|
function getMappingName(node) {
|
|
1368
1389
|
switch (node.type) {
|
|
1369
1390
|
case 3 /* Text */:
|
|
1391
|
+
case 9 /* Literal */:
|
|
1392
|
+
case 8 /* LinkedModifier */:
|
|
1393
|
+
case 7 /* LinkedKey */:
|
|
1370
1394
|
return node.value;
|
|
1371
1395
|
case 5 /* List */:
|
|
1372
1396
|
return node.index.toString();
|
|
1373
1397
|
case 4 /* Named */:
|
|
1374
1398
|
return node.key;
|
|
1375
|
-
case 9 /* Literal */:
|
|
1376
|
-
return node.value;
|
|
1377
|
-
case 8 /* LinkedModifier */:
|
|
1378
|
-
return node.value;
|
|
1379
|
-
case 7 /* LinkedKey */:
|
|
1380
|
-
return node.value;
|
|
1381
1399
|
default:
|
|
1382
1400
|
return undefined;
|
|
1383
1401
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* message-compiler v9.2.
|
|
3
|
-
* (c)
|
|
2
|
+
* message-compiler v9.2.2
|
|
3
|
+
* (c) 2022 kazuya kawaguchi
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
6
6
|
'use strict';
|
|
@@ -349,6 +349,16 @@ function createTokenizer(source, options = {}) {
|
|
|
349
349
|
scnr.resetPeek();
|
|
350
350
|
return ret;
|
|
351
351
|
}
|
|
352
|
+
function detectModuloStart(scnr) {
|
|
353
|
+
const spaces = peekSpaces(scnr);
|
|
354
|
+
const ret = scnr.currentPeek() === "%" /* Modulo */ &&
|
|
355
|
+
scnr.peek() === "{" /* BraceLeft */;
|
|
356
|
+
scnr.resetPeek();
|
|
357
|
+
return {
|
|
358
|
+
isModulo: ret,
|
|
359
|
+
hasSpace: spaces.length > 0
|
|
360
|
+
};
|
|
361
|
+
}
|
|
352
362
|
function isTextStart(scnr, reset = true) {
|
|
353
363
|
const fn = (hasSpace = false, prev = '', detectModulo = false) => {
|
|
354
364
|
const ch = scnr.currentPeek();
|
|
@@ -430,50 +440,54 @@ function createTokenizer(source, options = {}) {
|
|
|
430
440
|
}
|
|
431
441
|
return num;
|
|
432
442
|
}
|
|
443
|
+
function readModulo(scnr) {
|
|
444
|
+
skipSpaces(scnr);
|
|
445
|
+
const ch = scnr.currentChar();
|
|
446
|
+
if (ch !== "%" /* Modulo */) {
|
|
447
|
+
emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);
|
|
448
|
+
}
|
|
449
|
+
scnr.next();
|
|
450
|
+
return "%" /* Modulo */;
|
|
451
|
+
}
|
|
433
452
|
function readText(scnr) {
|
|
434
|
-
|
|
453
|
+
let buf = '';
|
|
454
|
+
while (true) {
|
|
435
455
|
const ch = scnr.currentChar();
|
|
436
456
|
if (ch === "{" /* BraceLeft */ ||
|
|
437
457
|
ch === "}" /* BraceRight */ ||
|
|
438
458
|
ch === "@" /* LinkedAlias */ ||
|
|
459
|
+
ch === "|" /* Pipe */ ||
|
|
439
460
|
!ch) {
|
|
440
|
-
|
|
461
|
+
break;
|
|
441
462
|
}
|
|
442
463
|
else if (ch === "%" /* Modulo */) {
|
|
443
464
|
if (isTextStart(scnr)) {
|
|
444
465
|
buf += ch;
|
|
445
466
|
scnr.next();
|
|
446
|
-
return fn(buf);
|
|
447
467
|
}
|
|
448
468
|
else {
|
|
449
|
-
|
|
469
|
+
break;
|
|
450
470
|
}
|
|
451
471
|
}
|
|
452
|
-
else if (ch === "|" /* Pipe */) {
|
|
453
|
-
return buf;
|
|
454
|
-
}
|
|
455
472
|
else if (ch === CHAR_SP || ch === CHAR_LF) {
|
|
456
473
|
if (isTextStart(scnr)) {
|
|
457
474
|
buf += ch;
|
|
458
475
|
scnr.next();
|
|
459
|
-
return fn(buf);
|
|
460
476
|
}
|
|
461
477
|
else if (isPluralStart(scnr)) {
|
|
462
|
-
|
|
478
|
+
break;
|
|
463
479
|
}
|
|
464
480
|
else {
|
|
465
481
|
buf += ch;
|
|
466
482
|
scnr.next();
|
|
467
|
-
return fn(buf);
|
|
468
483
|
}
|
|
469
484
|
}
|
|
470
485
|
else {
|
|
471
486
|
buf += ch;
|
|
472
487
|
scnr.next();
|
|
473
|
-
return fn(buf);
|
|
474
488
|
}
|
|
475
|
-
}
|
|
476
|
-
return
|
|
489
|
+
}
|
|
490
|
+
return buf;
|
|
477
491
|
}
|
|
478
492
|
function readNamedIdentifier(scnr) {
|
|
479
493
|
skipSpaces(scnr);
|
|
@@ -781,13 +795,15 @@ function createTokenizer(source, options = {}) {
|
|
|
781
795
|
context.inLinked = false;
|
|
782
796
|
return token;
|
|
783
797
|
}
|
|
798
|
+
const { isModulo, hasSpace } = detectModuloStart(scnr);
|
|
799
|
+
if (isModulo) {
|
|
800
|
+
return hasSpace
|
|
801
|
+
? getToken(context, 0 /* Text */, readText(scnr))
|
|
802
|
+
: getToken(context, 4 /* Modulo */, readModulo(scnr));
|
|
803
|
+
}
|
|
784
804
|
if (isTextStart(scnr)) {
|
|
785
805
|
return getToken(context, 0 /* Text */, readText(scnr));
|
|
786
806
|
}
|
|
787
|
-
if (ch === "%" /* Modulo */) {
|
|
788
|
-
scnr.next();
|
|
789
|
-
return getToken(context, 4 /* Modulo */, "%" /* Modulo */);
|
|
790
|
-
}
|
|
791
807
|
break;
|
|
792
808
|
}
|
|
793
809
|
return token;
|
|
@@ -1141,6 +1157,7 @@ function traverseNode(node, transformer) {
|
|
|
1141
1157
|
const linked = node;
|
|
1142
1158
|
traverseNode(linked.key, transformer);
|
|
1143
1159
|
transformer.helper("linked" /* LINKED */);
|
|
1160
|
+
transformer.helper("type" /* TYPE */);
|
|
1144
1161
|
break;
|
|
1145
1162
|
case 5 /* List */:
|
|
1146
1163
|
transformer.helper("interpolate" /* INTERPOLATE */);
|
|
@@ -1241,6 +1258,10 @@ function generateLinkedNode(generator, node) {
|
|
|
1241
1258
|
if (node.modifier) {
|
|
1242
1259
|
generator.push(`, `);
|
|
1243
1260
|
generateNode(generator, node.modifier);
|
|
1261
|
+
generator.push(`, _type`);
|
|
1262
|
+
}
|
|
1263
|
+
else {
|
|
1264
|
+
generator.push(`, undefined, _type`);
|
|
1244
1265
|
}
|
|
1245
1266
|
generator.push(`)`);
|
|
1246
1267
|
}
|
|
@@ -1362,17 +1383,14 @@ const generate = (ast, options = {} // eslint-disable-line
|
|
|
1362
1383
|
function getMappingName(node) {
|
|
1363
1384
|
switch (node.type) {
|
|
1364
1385
|
case 3 /* Text */:
|
|
1386
|
+
case 9 /* Literal */:
|
|
1387
|
+
case 8 /* LinkedModifier */:
|
|
1388
|
+
case 7 /* LinkedKey */:
|
|
1365
1389
|
return node.value;
|
|
1366
1390
|
case 5 /* List */:
|
|
1367
1391
|
return node.index.toString();
|
|
1368
1392
|
case 4 /* Named */:
|
|
1369
1393
|
return node.key;
|
|
1370
|
-
case 9 /* Literal */:
|
|
1371
|
-
return node.value;
|
|
1372
|
-
case 8 /* LinkedModifier */:
|
|
1373
|
-
return node.value;
|
|
1374
|
-
case 7 /* LinkedKey */:
|
|
1375
|
-
return node.value;
|
|
1376
1394
|
default:
|
|
1377
1395
|
return undefined;
|
|
1378
1396
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* message-compiler v9.2.
|
|
3
|
-
* (c)
|
|
2
|
+
* message-compiler v9.2.2
|
|
3
|
+
* (c) 2022 kazuya kawaguchi
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
6
6
|
/**
|
|
@@ -365,6 +365,16 @@ function createTokenizer(source, options = {}) {
|
|
|
365
365
|
scnr.resetPeek();
|
|
366
366
|
return ret;
|
|
367
367
|
}
|
|
368
|
+
function detectModuloStart(scnr) {
|
|
369
|
+
const spaces = peekSpaces(scnr);
|
|
370
|
+
const ret = scnr.currentPeek() === "%" /* Modulo */ &&
|
|
371
|
+
scnr.peek() === "{" /* BraceLeft */;
|
|
372
|
+
scnr.resetPeek();
|
|
373
|
+
return {
|
|
374
|
+
isModulo: ret,
|
|
375
|
+
hasSpace: spaces.length > 0
|
|
376
|
+
};
|
|
377
|
+
}
|
|
368
378
|
function isTextStart(scnr, reset = true) {
|
|
369
379
|
const fn = (hasSpace = false, prev = '', detectModulo = false) => {
|
|
370
380
|
const ch = scnr.currentPeek();
|
|
@@ -446,50 +456,54 @@ function createTokenizer(source, options = {}) {
|
|
|
446
456
|
}
|
|
447
457
|
return num;
|
|
448
458
|
}
|
|
459
|
+
function readModulo(scnr) {
|
|
460
|
+
skipSpaces(scnr);
|
|
461
|
+
const ch = scnr.currentChar();
|
|
462
|
+
if (ch !== "%" /* Modulo */) {
|
|
463
|
+
emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);
|
|
464
|
+
}
|
|
465
|
+
scnr.next();
|
|
466
|
+
return "%" /* Modulo */;
|
|
467
|
+
}
|
|
449
468
|
function readText(scnr) {
|
|
450
|
-
|
|
469
|
+
let buf = '';
|
|
470
|
+
while (true) {
|
|
451
471
|
const ch = scnr.currentChar();
|
|
452
472
|
if (ch === "{" /* BraceLeft */ ||
|
|
453
473
|
ch === "}" /* BraceRight */ ||
|
|
454
474
|
ch === "@" /* LinkedAlias */ ||
|
|
475
|
+
ch === "|" /* Pipe */ ||
|
|
455
476
|
!ch) {
|
|
456
|
-
|
|
477
|
+
break;
|
|
457
478
|
}
|
|
458
479
|
else if (ch === "%" /* Modulo */) {
|
|
459
480
|
if (isTextStart(scnr)) {
|
|
460
481
|
buf += ch;
|
|
461
482
|
scnr.next();
|
|
462
|
-
return fn(buf);
|
|
463
483
|
}
|
|
464
484
|
else {
|
|
465
|
-
|
|
485
|
+
break;
|
|
466
486
|
}
|
|
467
487
|
}
|
|
468
|
-
else if (ch === "|" /* Pipe */) {
|
|
469
|
-
return buf;
|
|
470
|
-
}
|
|
471
488
|
else if (ch === CHAR_SP || ch === CHAR_LF) {
|
|
472
489
|
if (isTextStart(scnr)) {
|
|
473
490
|
buf += ch;
|
|
474
491
|
scnr.next();
|
|
475
|
-
return fn(buf);
|
|
476
492
|
}
|
|
477
493
|
else if (isPluralStart(scnr)) {
|
|
478
|
-
|
|
494
|
+
break;
|
|
479
495
|
}
|
|
480
496
|
else {
|
|
481
497
|
buf += ch;
|
|
482
498
|
scnr.next();
|
|
483
|
-
return fn(buf);
|
|
484
499
|
}
|
|
485
500
|
}
|
|
486
501
|
else {
|
|
487
502
|
buf += ch;
|
|
488
503
|
scnr.next();
|
|
489
|
-
return fn(buf);
|
|
490
504
|
}
|
|
491
|
-
}
|
|
492
|
-
return
|
|
505
|
+
}
|
|
506
|
+
return buf;
|
|
493
507
|
}
|
|
494
508
|
function readNamedIdentifier(scnr) {
|
|
495
509
|
skipSpaces(scnr);
|
|
@@ -797,13 +811,15 @@ function createTokenizer(source, options = {}) {
|
|
|
797
811
|
context.inLinked = false;
|
|
798
812
|
return token;
|
|
799
813
|
}
|
|
814
|
+
const { isModulo, hasSpace } = detectModuloStart(scnr);
|
|
815
|
+
if (isModulo) {
|
|
816
|
+
return hasSpace
|
|
817
|
+
? getToken(context, 0 /* Text */, readText(scnr))
|
|
818
|
+
: getToken(context, 4 /* Modulo */, readModulo(scnr));
|
|
819
|
+
}
|
|
800
820
|
if (isTextStart(scnr)) {
|
|
801
821
|
return getToken(context, 0 /* Text */, readText(scnr));
|
|
802
822
|
}
|
|
803
|
-
if (ch === "%" /* Modulo */) {
|
|
804
|
-
scnr.next();
|
|
805
|
-
return getToken(context, 4 /* Modulo */, "%" /* Modulo */);
|
|
806
|
-
}
|
|
807
823
|
break;
|
|
808
824
|
}
|
|
809
825
|
return token;
|
|
@@ -1157,6 +1173,7 @@ function traverseNode(node, transformer) {
|
|
|
1157
1173
|
const linked = node;
|
|
1158
1174
|
traverseNode(linked.key, transformer);
|
|
1159
1175
|
transformer.helper("linked" /* LINKED */);
|
|
1176
|
+
transformer.helper("type" /* TYPE */);
|
|
1160
1177
|
break;
|
|
1161
1178
|
case 5 /* List */:
|
|
1162
1179
|
transformer.helper("interpolate" /* INTERPOLATE */);
|
|
@@ -1233,6 +1250,10 @@ function generateLinkedNode(generator, node) {
|
|
|
1233
1250
|
if (node.modifier) {
|
|
1234
1251
|
generator.push(`, `);
|
|
1235
1252
|
generateNode(generator, node.modifier);
|
|
1253
|
+
generator.push(`, _type`);
|
|
1254
|
+
}
|
|
1255
|
+
else {
|
|
1256
|
+
generator.push(`, undefined, _type`);
|
|
1236
1257
|
}
|
|
1237
1258
|
generator.push(`)`);
|
|
1238
1259
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* message-compiler v9.2.
|
|
3
|
-
* (c)
|
|
2
|
+
* message-compiler v9.2.2
|
|
3
|
+
* (c) 2022 kazuya kawaguchi
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
const e=Object.assign,n=e=>"string"==typeof e,t={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,__EXTEND_POINT__:15},r={[t.EXPECTED_TOKEN]:"Expected token: '{0}'",[t.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[t.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[t.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[t.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[t.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[t.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[t.EMPTY_PLACEHOLDER]:"Empty placeholder",[t.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[t.INVALID_LINKED_FORMAT]:"Invalid linked format",[t.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[t.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[t.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[t.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'"};function c(e,n,t={}){const{domain:r}=t,c=new SyntaxError(String(e));return c.code=e,n&&(c.location=n),c.domain=r,c}function o(e){throw e}const u={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0}};function s(e,n,t){return{line:e,column:n,offset:t}}function i(e,n,t){const r={start:e,end:n};return null!=t&&(r.source=t),r}const a=String.fromCharCode(8232),l=String.fromCharCode(8233);function f(e){const n=e;let t=0,r=1,c=1,o=0;const u=e=>"\r"===n[e]&&"\n"===n[e+1],s=e=>n[e]===l,i=e=>n[e]===a,f=e=>u(e)||(e=>"\n"===n[e])(e)||s(e)||i(e),d=e=>u(e)||s(e)||i(e)?"\n":n[e];function p(){return o=0,f(t)&&(r++,c=0),u(t)&&t++,t++,c++,n[t]}return{index:()=>t,line:()=>r,column:()=>c,peekOffset:()=>o,charAt:d,currentChar:()=>d(t),currentPeek:()=>d(t+o),next:p,peek:function(){return u(t+o)&&o++,o++,n[t+o]},reset:function(){t=0,r=1,c=1,o=0},resetPeek:function(e=0){o=e},skipToPeek:function(){const e=t+o;for(;e!==t;)p();o=0}}}const d=void 0;function p(e,n={}){const t=!1!==n.location,r=f(e),c=()=>r.index(),o=()=>s(r.line(),r.column(),r.index()),u=o(),a=c(),l={currentType:14,offset:a,startLoc:u,endLoc:u,lastType:14,lastOffset:a,lastStartLoc:u,lastEndLoc:u,braceNest:0,inLinked:!1,text:""},p=()=>l,{onError:E}=n;function k(e,n,r){e.endLoc=o(),e.currentType=n;const c={type:n};return t&&(c.loc=i(e.startLoc,e.endLoc)),null!=r&&(c.value=r),c}const L=e=>k(e,14);function h(e,n){return e.currentChar()===n?(e.next(),n):(o(),"")}function N(e){let n="";for(;" "===e.currentPeek()||"\n"===e.currentPeek();)n+=e.currentPeek(),e.peek();return n}function _(e){const n=N(e);return e.skipToPeek(),n}function T(e){if(e===d)return!1;const n=e.charCodeAt(0);return n>=97&&n<=122||n>=65&&n<=90||95===n}function C(e,n){const{currentType:t}=n;if(2!==t)return!1;N(e);const r=function(e){if(e===d)return!1;const n=e.charCodeAt(0);return n>=48&&n<=57}("-"===e.currentPeek()?e.peek():e.currentPeek());return e.resetPeek(),r}function P(e){N(e);const n="|"===e.currentPeek();return e.resetPeek(),n}function x(e,n=!0){const t=(n=!1,r="",c=!1)=>{const o=e.currentPeek();return"{"===o?"%"!==r&&n:"@"!==o&&o?"%"===o?(e.peek(),t(n,"%",!0)):"|"===o?!("%"!==r&&!c)||!(" "===r||"\n"===r):" "===o?(e.peek(),t(!0," ",c)):"\n"!==o||(e.peek(),t(!0,"\n",c)):"%"===r||n},r=t();return n&&e.resetPeek(),r}function y(e,n){const t=e.currentChar();return t===d?d:n(t)?(e.next(),t):null}function m(e){return y(e,(e=>{const n=e.charCodeAt(0);return n>=97&&n<=122||n>=65&&n<=90||n>=48&&n<=57||95===n||36===n}))}function I(e){return y(e,(e=>{const n=e.charCodeAt(0);return n>=48&&n<=57}))}function O(e){return y(e,(e=>{const n=e.charCodeAt(0);return n>=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102}))}function A(e){let n="",t="";for(;n=I(e);)t+=n;return t}function b(e){const n=e.currentChar();switch(n){case"\\":case"'":return e.next(),`\\${n}`;case"u":return S(e,n,4);case"U":return S(e,n,6);default:return o(),""}}function S(e,n,t){h(e,n);let r="";for(let n=0;n<t;n++){const n=O(e);if(!n){o(),e.currentChar();break}r+=n}return`\\${n}${r}`}function v(e){_(e);const n=h(e,"|");return _(e),n}function D(e,n){let t=null;switch(e.currentChar()){case"{":return n.braceNest>=1&&o(),e.next(),t=k(n,2,"{"),_(e),n.braceNest++,t;case"}":return n.braceNest>0&&2===n.currentType&&o(),e.next(),t=k(n,3,"}"),n.braceNest--,n.braceNest>0&&_(e),n.inLinked&&0===n.braceNest&&(n.inLinked=!1),t;case"@":return n.braceNest>0&&o(),t=U(e,n)||L(n),n.braceNest=0,t;default:let r=!0,c=!0,u=!0;if(P(e))return n.braceNest>0&&o(),t=k(n,1,v(e)),n.braceNest=0,n.inLinked=!1,t;if(n.braceNest>0&&(5===n.currentType||6===n.currentType||7===n.currentType))return o(),n.braceNest=0,g(e,n);if(r=function(e,n){const{currentType:t}=n;if(2!==t)return!1;N(e);const r=T(e.currentPeek());return e.resetPeek(),r}(e,n))return t=k(n,5,function(e){_(e);let n="",t="";for(;n=m(e);)t+=n;return e.currentChar()===d&&o(),t}(e)),_(e),t;if(c=C(e,n))return t=k(n,6,function(e){_(e);let n="";return"-"===e.currentChar()?(e.next(),n+=`-${A(e)}`):n+=A(e),e.currentChar()===d&&o(),n}(e)),_(e),t;if(u=function(e,n){const{currentType:t}=n;if(2!==t)return!1;N(e);const r="'"===e.currentPeek();return e.resetPeek(),r}(e,n))return t=k(n,7,function(e){_(e),h(e,"'");let n="",t="";const r=e=>"'"!==e&&"\n"!==e;for(;n=y(e,r);)t+="\\"===n?b(e):n;const c=e.currentChar();return"\n"===c||c===d?(o(),"\n"===c&&(e.next(),h(e,"'")),t):(h(e,"'"),t)}(e)),_(e),t;if(!r&&!c&&!u)return t=k(n,13,function(e){_(e);let n="",t="";const r=e=>"{"!==e&&"}"!==e&&" "!==e&&"\n"!==e;for(;n=y(e,r);)t+=n;return t}(e)),o(),_(e),t}return t}function U(e,n){const{currentType:t}=n;let r=null;const c=e.currentChar();switch(8!==t&&9!==t&&12!==t&&10!==t||"\n"!==c&&" "!==c||o(),c){case"@":return e.next(),r=k(n,8,"@"),n.inLinked=!0,r;case".":return _(e),e.next(),k(n,9,".");case":":return _(e),e.next(),k(n,10,":");default:return P(e)?(r=k(n,1,v(e)),n.braceNest=0,n.inLinked=!1,r):function(e,n){const{currentType:t}=n;if(8!==t)return!1;N(e);const r="."===e.currentPeek();return e.resetPeek(),r}(e,n)||function(e,n){const{currentType:t}=n;if(8!==t&&12!==t)return!1;N(e);const r=":"===e.currentPeek();return e.resetPeek(),r}(e,n)?(_(e),U(e,n)):function(e,n){const{currentType:t}=n;if(9!==t)return!1;N(e);const r=T(e.currentPeek());return e.resetPeek(),r}(e,n)?(_(e),k(n,12,function(e){let n="",t="";for(;n=m(e);)t+=n;return t}(e))):function(e,n){const{currentType:t}=n;if(10!==t)return!1;const r=()=>{const n=e.currentPeek();return"{"===n?T(e.peek()):!("@"===n||"%"===n||"|"===n||":"===n||"."===n||" "===n||!n)&&("\n"===n?(e.peek(),r()):T(n))},c=r();return e.resetPeek(),c}(e,n)?(_(e),"{"===c?D(e,n)||r:k(n,11,function(e){const n=(t=!1,r)=>{const c=e.currentChar();return"{"!==c&&"%"!==c&&"@"!==c&&"|"!==c&&c?" "===c?r:"\n"===c?(r+=c,e.next(),n(t,r)):(r+=c,e.next(),n(!0,r)):r};return n(!1,"")}(e))):(8===t&&o(),n.braceNest=0,n.inLinked=!1,g(e,n))}}function g(e,n){let t={type:14};if(n.braceNest>0)return D(e,n)||L(n);if(n.inLinked)return U(e,n)||L(n);const r=e.currentChar();switch(r){case"{":return D(e,n)||L(n);case"}":return o(),e.next(),k(n,3,"}");case"@":return U(e,n)||L(n);default:if(P(e))return t=k(n,1,v(e)),n.braceNest=0,n.inLinked=!1,t;if(x(e))return k(n,0,function(e){const n=t=>{const r=e.currentChar();return"{"!==r&&"}"!==r&&"@"!==r&&r?"%"===r?x(e)?(t+=r,e.next(),n(t)):t:"|"===r?t:" "===r||"\n"===r?x(e)?(t+=r,e.next(),n(t)):P(e)?t:(t+=r,e.next(),n(t)):(t+=r,e.next(),n(t)):t};return n("")}(e));if("%"===r)return e.next(),k(n,4,"%")}return t}return{nextToken:function(){const{currentType:e,offset:n,startLoc:t,endLoc:u}=l;return l.lastType=e,l.lastOffset=n,l.lastStartLoc=t,l.lastEndLoc=u,l.offset=c(),l.startLoc=o(),r.currentChar()===d?k(l,14):g(r,l)},currentOffset:c,currentPosition:o,context:p}}const E="parser",k=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function L(e,n,t){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const e=parseInt(n||t,16);return e<=55295||e>=57344?String.fromCodePoint(e):"�"}}}function h(n={}){const t=!1!==n.location,{onError:r}=n;function c(e,n,r){const c={type:e,start:n,end:n};return t&&(c.loc={start:r,end:r}),c}function o(e,n,r,c){e.end=n,c&&(e.type=c),t&&e.loc&&(e.loc.end=r)}function u(e,n){const t=e.context(),r=c(3,t.offset,t.startLoc);return r.value=n,o(r,e.currentOffset(),e.currentPosition()),r}function s(e,n){const t=e.context(),{lastOffset:r,lastStartLoc:u}=t,s=c(5,r,u);return s.index=parseInt(n,10),e.nextToken(),o(s,e.currentOffset(),e.currentPosition()),s}function i(e,n){const t=e.context(),{lastOffset:r,lastStartLoc:u}=t,s=c(4,r,u);return s.key=n,e.nextToken(),o(s,e.currentOffset(),e.currentPosition()),s}function a(e,n){const t=e.context(),{lastOffset:r,lastStartLoc:u}=t,s=c(9,r,u);return s.value=n.replace(k,L),e.nextToken(),o(s,e.currentOffset(),e.currentPosition()),s}function l(e){const n=e.context(),t=c(6,n.offset,n.startLoc);let r=e.nextToken();if(9===r.type){const n=function(e){const n=e.nextToken(),t=e.context(),{lastOffset:r,lastStartLoc:u}=t,s=c(8,r,u);return 12!==n.type?(s.value="",o(s,r,u),{nextConsumeToken:n,node:s}):(null==n.value&&N(n),s.value=n.value||"",o(s,e.currentOffset(),e.currentPosition()),{node:s})}(e);t.modifier=n.node,r=n.nextConsumeToken||e.nextToken()}switch(10!==r.type&&N(r),r=e.nextToken(),2===r.type&&(r=e.nextToken()),r.type){case 11:null==r.value&&N(r),t.key=function(e,n){const t=e.context(),r=c(7,t.offset,t.startLoc);return r.value=n,o(r,e.currentOffset(),e.currentPosition()),r}(e,r.value||"");break;case 5:null==r.value&&N(r),t.key=i(e,r.value||"");break;case 6:null==r.value&&N(r),t.key=s(e,r.value||"");break;case 7:null==r.value&&N(r),t.key=a(e,r.value||"");break;default:const n=e.context(),u=c(7,n.offset,n.startLoc);return u.value="",o(u,n.offset,n.startLoc),t.key=u,o(t,n.offset,n.startLoc),{nextConsumeToken:r,node:t}}return o(t,e.currentOffset(),e.currentPosition()),{node:t}}function f(e){const n=e.context(),t=c(2,1===n.currentType?e.currentOffset():n.offset,1===n.currentType?n.endLoc:n.startLoc);t.items=[];let r=null;do{const n=r||e.nextToken();switch(r=null,n.type){case 0:null==n.value&&N(n),t.items.push(u(e,n.value||""));break;case 6:null==n.value&&N(n),t.items.push(s(e,n.value||""));break;case 5:null==n.value&&N(n),t.items.push(i(e,n.value||""));break;case 7:null==n.value&&N(n),t.items.push(a(e,n.value||""));break;case 8:const c=l(e);t.items.push(c.node),r=c.nextConsumeToken||null}}while(14!==n.currentType&&1!==n.currentType);return o(t,1===n.currentType?n.lastOffset:e.currentOffset(),1===n.currentType?n.lastEndLoc:e.currentPosition()),t}function d(e){const n=e.context(),{offset:t,startLoc:r}=n,u=f(e);return 14===n.currentType?u:function(e,n,t,r){const u=e.context();let s=0===r.items.length;const i=c(1,n,t);i.cases=[],i.cases.push(r);do{const n=f(e);s||(s=0===n.items.length),i.cases.push(n)}while(14!==u.currentType);return o(i,e.currentOffset(),e.currentPosition()),i}(e,t,r,u)}return{parse:function(r){const u=p(r,e({},n)),s=u.context(),i=c(0,s.offset,s.startLoc);return t&&i.loc&&(i.loc.source=r),i.body=d(u),o(i,u.currentOffset(),u.currentPosition()),i}}}function N(e){if(14===e.type)return"EOF";const n=(e.value||"").replace(/\r?\n/gu,"\\n");return n.length>10?n.slice(0,9)+"…":n}function _(e,n){for(let t=0;t<e.length;t++)T(e[t],n)}function T(e,n){switch(e.type){case 1:_(e.cases,n),n.helper("plural");break;case 2:_(e.items,n);break;case 6:T(e.key,n),n.helper("linked");break;case 5:n.helper("interpolate"),n.helper("list");break;case 4:n.helper("interpolate"),n.helper("named")}}function C(e,n={}){const t=function(e,n={}){const t={ast:e,helpers:new Set};return{context:()=>t,helper:e=>(t.helpers.add(e),e)}}(e);t.helper("normalize"),e.body&&T(e.body,t);const r=t.context();e.helpers=Array.from(r.helpers)}function P(e,n){const{helper:t}=e;switch(n.type){case 0:!function(e,n){n.body?P(e,n.body):e.push("null")}(e,n);break;case 1:!function(e,n){const{helper:t,needIndent:r}=e;if(n.cases.length>1){e.push(`${t("plural")}([`),e.indent(r());const c=n.cases.length;for(let t=0;t<c&&(P(e,n.cases[t]),t!==c-1);t++)e.push(", ");e.deindent(r()),e.push("])")}}(e,n);break;case 2:!function(e,n){const{helper:t,needIndent:r}=e;e.push(`${t("normalize")}([`),e.indent(r());const c=n.items.length;for(let t=0;t<c&&(P(e,n.items[t]),t!==c-1);t++)e.push(", ");e.deindent(r()),e.push("])")}(e,n);break;case 6:!function(e,n){const{helper:t}=e;e.push(`${t("linked")}(`),P(e,n.key),n.modifier&&(e.push(", "),P(e,n.modifier)),e.push(")")}(e,n);break;case 8:case 7:e.push(JSON.stringify(n.value),n);break;case 5:e.push(`${t("interpolate")}(${t("list")}(${n.index}))`,n);break;case 4:e.push(`${t("interpolate")}(${t("named")}(${JSON.stringify(n.key)}))`,n);break;case 9:case 3:e.push(JSON.stringify(n.value),n)}}function x(t,r={}){const c=e({},r),o=h(c).parse(t);return C(o,c),((e,t={})=>{const r=n(t.mode)?t.mode:"normal",c=n(t.filename)?t.filename:"message.intl",o=t.needIndent?t.needIndent:"arrow"!==r,u=e.helpers||[],s=function(e,n){const{filename:t,breakLineCode:r,needIndent:c}=n,o={source:e.loc.source,filename:t,code:"",column:1,line:1,offset:0,map:void 0,breakLineCode:r,needIndent:c,indentLevel:0};function u(e,n){o.code+=e}function s(e,n=!0){const t=n?r:"";u(c?t+" ".repeat(e):t)}return{context:()=>o,push:u,indent:function(e=!0){const n=++o.indentLevel;e&&s(n)},deindent:function(e=!0){const n=--o.indentLevel;e&&s(n)},newline:function(){s(o.indentLevel)},helper:e=>`_${e}`,needIndent:()=>o.needIndent}}(e,{mode:r,filename:c,sourceMap:!!t.sourceMap,breakLineCode:null!=t.breakLineCode?t.breakLineCode:"arrow"===r?";":"\n",needIndent:o});s.push("normal"===r?"function __msg__ (ctx) {":"(ctx) => {"),s.indent(o),u.length>0&&(s.push(`const { ${u.map((e=>`${e}: _${e}`)).join(", ")} } = ctx`),s.newline()),s.push("return "),P(s,e),s.deindent(o),s.push("}");const{code:i,map:a}=s.context();return{ast:e,code:i,map:a?a.toJSON():void 0}})(o,c)}export{t as CompileErrorCodes,E as ERROR_DOMAIN,u as LocationStub,x as baseCompile,c as createCompileError,i as createLocation,h as createParser,s as createPosition,o as defaultOnError,r as errorMessages};
|
|
6
|
+
const e=Object.assign,t=e=>"string"==typeof e,n={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,__EXTEND_POINT__:15},r={[n.EXPECTED_TOKEN]:"Expected token: '{0}'",[n.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[n.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[n.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[n.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[n.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[n.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[n.EMPTY_PLACEHOLDER]:"Empty placeholder",[n.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[n.INVALID_LINKED_FORMAT]:"Invalid linked format",[n.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[n.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[n.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[n.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'"};function c(e,t,n={}){const{domain:r,messages:c,args:o}=n,s=new SyntaxError(String(e));return s.code=e,t&&(s.location=t),s.domain=r,s}function o(e){throw e}const s={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0}};function u(e,t,n){return{line:e,column:t,offset:n}}function a(e,t,n){const r={start:e,end:t};return null!=n&&(r.source=n),r}const i=String.fromCharCode(8232),l=String.fromCharCode(8233);function f(e){const t=e;let n=0,r=1,c=1,o=0;const s=e=>"\r"===t[e]&&"\n"===t[e+1],u=e=>t[e]===l,a=e=>t[e]===i,f=e=>s(e)||(e=>"\n"===t[e])(e)||u(e)||a(e),d=e=>s(e)||u(e)||a(e)?"\n":t[e];function p(){return o=0,f(n)&&(r++,c=0),s(n)&&n++,n++,c++,t[n]}return{index:()=>n,line:()=>r,column:()=>c,peekOffset:()=>o,charAt:d,currentChar:()=>d(n),currentPeek:()=>d(n+o),next:p,peek:function(){return s(n+o)&&o++,o++,t[n+o]},reset:function(){n=0,r=1,c=1,o=0},resetPeek:function(e=0){o=e},skipToPeek:function(){const e=n+o;for(;e!==n;)p();o=0}}}const d=void 0;function p(e,t={}){const n=!1!==t.location,r=f(e),c=()=>r.index(),o=()=>u(r.line(),r.column(),r.index()),s=o(),i=c(),l={currentType:14,offset:i,startLoc:s,endLoc:s,lastType:14,lastOffset:i,lastStartLoc:s,lastEndLoc:s,braceNest:0,inLinked:!1,text:""},p=()=>l,{onError:E}=t;function k(e,t,r){e.endLoc=o(),e.currentType=t;const c={type:t};return n&&(c.loc=a(e.startLoc,e.endLoc)),null!=r&&(c.value=r),c}const L=e=>k(e,14);function h(e,t){return e.currentChar()===t?(e.next(),t):(o(),"")}function N(e){let t="";for(;" "===e.currentPeek()||"\n"===e.currentPeek();)t+=e.currentPeek(),e.peek();return t}function _(e){const t=N(e);return e.skipToPeek(),t}function T(e){if(e===d)return!1;const t=e.charCodeAt(0);return t>=97&&t<=122||t>=65&&t<=90||95===t}function C(e,t){const{currentType:n}=t;if(2!==n)return!1;N(e);const r=function(e){if(e===d)return!1;const t=e.charCodeAt(0);return t>=48&&t<=57}("-"===e.currentPeek()?e.peek():e.currentPeek());return e.resetPeek(),r}function P(e){N(e);const t="|"===e.currentPeek();return e.resetPeek(),t}function x(e,t=!0){const n=(t=!1,r="",c=!1)=>{const o=e.currentPeek();return"{"===o?"%"!==r&&t:"@"!==o&&o?"%"===o?(e.peek(),n(t,"%",!0)):"|"===o?!("%"!==r&&!c)||!(" "===r||"\n"===r):" "===o?(e.peek(),n(!0," ",c)):"\n"!==o||(e.peek(),n(!0,"\n",c)):"%"===r||t},r=n();return t&&e.resetPeek(),r}function y(e,t){const n=e.currentChar();return n===d?d:t(n)?(e.next(),n):null}function m(e){return y(e,(e=>{const t=e.charCodeAt(0);return t>=97&&t<=122||t>=65&&t<=90||t>=48&&t<=57||95===t||36===t}))}function I(e){return y(e,(e=>{const t=e.charCodeAt(0);return t>=48&&t<=57}))}function S(e){return y(e,(e=>{const t=e.charCodeAt(0);return t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102}))}function O(e){let t="",n="";for(;t=I(e);)n+=t;return n}function A(e){let t="";for(;;){const n=e.currentChar();if("{"===n||"}"===n||"@"===n||"|"===n||!n)break;if("%"===n){if(!x(e))break;t+=n,e.next()}else if(" "===n||"\n"===n)if(x(e))t+=n,e.next();else{if(P(e))break;t+=n,e.next()}else t+=n,e.next()}return t}function b(e){const t=e.currentChar();switch(t){case"\\":case"'":return e.next(),`\\${t}`;case"u":return v(e,t,4);case"U":return v(e,t,6);default:return o(),""}}function v(e,t,n){h(e,t);let r="";for(let t=0;t<n;t++){const t=S(e);if(!t){o(),e.currentChar();break}r+=t}return`\\${t}${r}`}function D(e){_(e);const t=h(e,"|");return _(e),t}function U(e,t){let n=null;switch(e.currentChar()){case"{":return t.braceNest>=1&&o(),e.next(),n=k(t,2,"{"),_(e),t.braceNest++,n;case"}":return t.braceNest>0&&2===t.currentType&&o(),e.next(),n=k(t,3,"}"),t.braceNest--,t.braceNest>0&&_(e),t.inLinked&&0===t.braceNest&&(t.inLinked=!1),n;case"@":return t.braceNest>0&&o(),n=g(e,t)||L(t),t.braceNest=0,n;default:let r=!0,c=!0,s=!0;if(P(e))return t.braceNest>0&&o(),n=k(t,1,D(e)),t.braceNest=0,t.inLinked=!1,n;if(t.braceNest>0&&(5===t.currentType||6===t.currentType||7===t.currentType))return o(),t.braceNest=0,M(e,t);if(r=function(e,t){const{currentType:n}=t;if(2!==n)return!1;N(e);const r=T(e.currentPeek());return e.resetPeek(),r}(e,t))return n=k(t,5,function(e){_(e);let t="",n="";for(;t=m(e);)n+=t;return e.currentChar()===d&&o(),n}(e)),_(e),n;if(c=C(e,t))return n=k(t,6,function(e){_(e);let t="";return"-"===e.currentChar()?(e.next(),t+=`-${O(e)}`):t+=O(e),e.currentChar()===d&&o(),t}(e)),_(e),n;if(s=function(e,t){const{currentType:n}=t;if(2!==n)return!1;N(e);const r="'"===e.currentPeek();return e.resetPeek(),r}(e,t))return n=k(t,7,function(e){_(e),h(e,"'");let t="",n="";const r=e=>"'"!==e&&"\n"!==e;for(;t=y(e,r);)n+="\\"===t?b(e):t;const c=e.currentChar();return"\n"===c||c===d?(o(),"\n"===c&&(e.next(),h(e,"'")),n):(h(e,"'"),n)}(e)),_(e),n;if(!r&&!c&&!s)return n=k(t,13,function(e){_(e);let t="",n="";const r=e=>"{"!==e&&"}"!==e&&" "!==e&&"\n"!==e;for(;t=y(e,r);)n+=t;return n}(e)),o(),n.value,_(e),n}return n}function g(e,t){const{currentType:n}=t;let r=null;const c=e.currentChar();switch(8!==n&&9!==n&&12!==n&&10!==n||"\n"!==c&&" "!==c||o(),c){case"@":return e.next(),r=k(t,8,"@"),t.inLinked=!0,r;case".":return _(e),e.next(),k(t,9,".");case":":return _(e),e.next(),k(t,10,":");default:return P(e)?(r=k(t,1,D(e)),t.braceNest=0,t.inLinked=!1,r):function(e,t){const{currentType:n}=t;if(8!==n)return!1;N(e);const r="."===e.currentPeek();return e.resetPeek(),r}(e,t)||function(e,t){const{currentType:n}=t;if(8!==n&&12!==n)return!1;N(e);const r=":"===e.currentPeek();return e.resetPeek(),r}(e,t)?(_(e),g(e,t)):function(e,t){const{currentType:n}=t;if(9!==n)return!1;N(e);const r=T(e.currentPeek());return e.resetPeek(),r}(e,t)?(_(e),k(t,12,function(e){let t="",n="";for(;t=m(e);)n+=t;return n}(e))):function(e,t){const{currentType:n}=t;if(10!==n)return!1;const r=()=>{const t=e.currentPeek();return"{"===t?T(e.peek()):!("@"===t||"%"===t||"|"===t||":"===t||"."===t||" "===t||!t)&&("\n"===t?(e.peek(),r()):T(t))},c=r();return e.resetPeek(),c}(e,t)?(_(e),"{"===c?U(e,t)||r:k(t,11,function(e){const t=(n=!1,r)=>{const c=e.currentChar();return"{"!==c&&"%"!==c&&"@"!==c&&"|"!==c&&c?" "===c?r:"\n"===c?(r+=c,e.next(),t(n,r)):(r+=c,e.next(),t(!0,r)):r};return t(!1,"")}(e))):(8===n&&o(),t.braceNest=0,t.inLinked=!1,M(e,t))}}function M(e,t){let n={type:14};if(t.braceNest>0)return U(e,t)||L(t);if(t.inLinked)return g(e,t)||L(t);switch(e.currentChar()){case"{":return U(e,t)||L(t);case"}":return o(),e.next(),k(t,3,"}");case"@":return g(e,t)||L(t);default:if(P(e))return n=k(t,1,D(e)),t.braceNest=0,t.inLinked=!1,n;const{isModulo:r,hasSpace:c}=function(e){const t=N(e),n="%"===e.currentPeek()&&"{"===e.peek();return e.resetPeek(),{isModulo:n,hasSpace:t.length>0}}(e);if(r)return c?k(t,0,A(e)):k(t,4,function(e){_(e);return"%"!==e.currentChar()&&o(),e.next(),"%"}(e));if(x(e))return k(t,0,A(e))}return n}return{nextToken:function(){const{currentType:e,offset:t,startLoc:n,endLoc:s}=l;return l.lastType=e,l.lastOffset=t,l.lastStartLoc=n,l.lastEndLoc=s,l.offset=c(),l.startLoc=o(),r.currentChar()===d?k(l,14):M(r,l)},currentOffset:c,currentPosition:o,context:p}}const E="parser",k=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function L(e,t,n){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const e=parseInt(t||n,16);return e<=55295||e>=57344?String.fromCodePoint(e):"�"}}}function h(t={}){const n=!1!==t.location,{onError:r}=t;function c(e,t,r){const c={type:e,start:t,end:t};return n&&(c.loc={start:r,end:r}),c}function o(e,t,r,c){e.end=t,c&&(e.type=c),n&&e.loc&&(e.loc.end=r)}function s(e,t){const n=e.context(),r=c(3,n.offset,n.startLoc);return r.value=t,o(r,e.currentOffset(),e.currentPosition()),r}function u(e,t){const n=e.context(),{lastOffset:r,lastStartLoc:s}=n,u=c(5,r,s);return u.index=parseInt(t,10),e.nextToken(),o(u,e.currentOffset(),e.currentPosition()),u}function a(e,t){const n=e.context(),{lastOffset:r,lastStartLoc:s}=n,u=c(4,r,s);return u.key=t,e.nextToken(),o(u,e.currentOffset(),e.currentPosition()),u}function i(e,t){const n=e.context(),{lastOffset:r,lastStartLoc:s}=n,u=c(9,r,s);return u.value=t.replace(k,L),e.nextToken(),o(u,e.currentOffset(),e.currentPosition()),u}function l(e){const t=e.context(),n=c(6,t.offset,t.startLoc);let r=e.nextToken();if(9===r.type){const t=function(e){const t=e.nextToken(),n=e.context(),{lastOffset:r,lastStartLoc:s}=n,u=c(8,r,s);return 12!==t.type?(n.lastStartLoc,u.value="",o(u,r,s),{nextConsumeToken:t,node:u}):(null==t.value&&(n.lastStartLoc,N(t)),u.value=t.value||"",o(u,e.currentOffset(),e.currentPosition()),{node:u})}(e);n.modifier=t.node,r=t.nextConsumeToken||e.nextToken()}switch(10!==r.type&&(t.lastStartLoc,N(r)),r=e.nextToken(),2===r.type&&(r=e.nextToken()),r.type){case 11:null==r.value&&(t.lastStartLoc,N(r)),n.key=function(e,t){const n=e.context(),r=c(7,n.offset,n.startLoc);return r.value=t,o(r,e.currentOffset(),e.currentPosition()),r}(e,r.value||"");break;case 5:null==r.value&&(t.lastStartLoc,N(r)),n.key=a(e,r.value||"");break;case 6:null==r.value&&(t.lastStartLoc,N(r)),n.key=u(e,r.value||"");break;case 7:null==r.value&&(t.lastStartLoc,N(r)),n.key=i(e,r.value||"");break;default:t.lastStartLoc;const s=e.context(),l=c(7,s.offset,s.startLoc);return l.value="",o(l,s.offset,s.startLoc),n.key=l,o(n,s.offset,s.startLoc),{nextConsumeToken:r,node:n}}return o(n,e.currentOffset(),e.currentPosition()),{node:n}}function f(e){const t=e.context(),n=c(2,1===t.currentType?e.currentOffset():t.offset,1===t.currentType?t.endLoc:t.startLoc);n.items=[];let r=null;do{const c=r||e.nextToken();switch(r=null,c.type){case 0:null==c.value&&(t.lastStartLoc,N(c)),n.items.push(s(e,c.value||""));break;case 6:null==c.value&&(t.lastStartLoc,N(c)),n.items.push(u(e,c.value||""));break;case 5:null==c.value&&(t.lastStartLoc,N(c)),n.items.push(a(e,c.value||""));break;case 7:null==c.value&&(t.lastStartLoc,N(c)),n.items.push(i(e,c.value||""));break;case 8:const o=l(e);n.items.push(o.node),r=o.nextConsumeToken||null}}while(14!==t.currentType&&1!==t.currentType);return o(n,1===t.currentType?t.lastOffset:e.currentOffset(),1===t.currentType?t.lastEndLoc:e.currentPosition()),n}function d(e){const t=e.context(),{offset:n,startLoc:r}=t,s=f(e);return 14===t.currentType?s:function(e,t,n,r){const s=e.context();let u=0===r.items.length;const a=c(1,t,n);a.cases=[],a.cases.push(r);do{const t=f(e);u||(u=0===t.items.length),a.cases.push(t)}while(14!==s.currentType);return o(a,e.currentOffset(),e.currentPosition()),a}(e,n,r,s)}return{parse:function(r){const s=p(r,e({},t)),u=s.context(),a=c(0,u.offset,u.startLoc);return n&&a.loc&&(a.loc.source=r),a.body=d(s),14!==u.currentType&&(u.lastStartLoc,r[u.offset]),o(a,s.currentOffset(),s.currentPosition()),a}}}function N(e){if(14===e.type)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function _(e,t){for(let n=0;n<e.length;n++)T(e[n],t)}function T(e,t){switch(e.type){case 1:_(e.cases,t),t.helper("plural");break;case 2:_(e.items,t);break;case 6:T(e.key,t),t.helper("linked"),t.helper("type");break;case 5:t.helper("interpolate"),t.helper("list");break;case 4:t.helper("interpolate"),t.helper("named")}}function C(e,t={}){const n=function(e,t={}){const n={ast:e,helpers:new Set};return{context:()=>n,helper:e=>(n.helpers.add(e),e)}}(e);n.helper("normalize"),e.body&&T(e.body,n);const r=n.context();e.helpers=Array.from(r.helpers)}function P(e,t){const{helper:n}=e;switch(t.type){case 0:!function(e,t){t.body?P(e,t.body):e.push("null")}(e,t);break;case 1:!function(e,t){const{helper:n,needIndent:r}=e;if(t.cases.length>1){e.push(`${n("plural")}([`),e.indent(r());const c=t.cases.length;for(let n=0;n<c&&(P(e,t.cases[n]),n!==c-1);n++)e.push(", ");e.deindent(r()),e.push("])")}}(e,t);break;case 2:!function(e,t){const{helper:n,needIndent:r}=e;e.push(`${n("normalize")}([`),e.indent(r());const c=t.items.length;for(let n=0;n<c&&(P(e,t.items[n]),n!==c-1);n++)e.push(", ");e.deindent(r()),e.push("])")}(e,t);break;case 6:!function(e,t){const{helper:n}=e;e.push(`${n("linked")}(`),P(e,t.key),t.modifier?(e.push(", "),P(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}(e,t);break;case 8:case 7:case 9:case 3:e.push(JSON.stringify(t.value),t);break;case 5:e.push(`${n("interpolate")}(${n("list")}(${t.index}))`,t);break;case 4:e.push(`${n("interpolate")}(${n("named")}(${JSON.stringify(t.key)}))`,t)}}function x(n,r={}){const c=e({},r),o=h(c).parse(n);return C(o,c),((e,n={})=>{const r=t(n.mode)?n.mode:"normal",c=t(n.filename)?n.filename:"message.intl",o=!!n.sourceMap,s=null!=n.breakLineCode?n.breakLineCode:"arrow"===r?";":"\n",u=n.needIndent?n.needIndent:"arrow"!==r,a=e.helpers||[],i=function(e,t){const{sourceMap:n,filename:r,breakLineCode:c,needIndent:o}=t,s={source:e.loc.source,filename:r,code:"",column:1,line:1,offset:0,map:void 0,breakLineCode:c,needIndent:o,indentLevel:0};function u(e,t){s.code+=e}function a(e,t=!0){const n=t?c:"";u(o?n+" ".repeat(e):n)}return{context:()=>s,push:u,indent:function(e=!0){const t=++s.indentLevel;e&&a(t)},deindent:function(e=!0){const t=--s.indentLevel;e&&a(t)},newline:function(){a(s.indentLevel)},helper:e=>`_${e}`,needIndent:()=>s.needIndent}}(e,{mode:r,filename:c,sourceMap:o,breakLineCode:s,needIndent:u});i.push("normal"===r?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(u),a.length>0&&(i.push(`const { ${a.map((e=>`${e}: _${e}`)).join(", ")} } = ctx`),i.newline()),i.push("return "),P(i,e),i.deindent(u),i.push("}");const{code:l,map:f}=i.context();return{ast:e,code:l,map:f?f.toJSON():void 0}})(o,c)}export{n as CompileErrorCodes,E as ERROR_DOMAIN,s as LocationStub,x as baseCompile,c as createCompileError,a as createLocation,h as createParser,u as createPosition,o as defaultOnError,r as errorMessages};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* message-compiler v9.2.
|
|
3
|
-
* (c)
|
|
2
|
+
* message-compiler v9.2.2
|
|
3
|
+
* (c) 2022 kazuya kawaguchi
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
6
6
|
import { format, assign, isString } from '@intlify/shared';
|
|
@@ -346,6 +346,16 @@ function createTokenizer(source, options = {}) {
|
|
|
346
346
|
scnr.resetPeek();
|
|
347
347
|
return ret;
|
|
348
348
|
}
|
|
349
|
+
function detectModuloStart(scnr) {
|
|
350
|
+
const spaces = peekSpaces(scnr);
|
|
351
|
+
const ret = scnr.currentPeek() === "%" /* Modulo */ &&
|
|
352
|
+
scnr.peek() === "{" /* BraceLeft */;
|
|
353
|
+
scnr.resetPeek();
|
|
354
|
+
return {
|
|
355
|
+
isModulo: ret,
|
|
356
|
+
hasSpace: spaces.length > 0
|
|
357
|
+
};
|
|
358
|
+
}
|
|
349
359
|
function isTextStart(scnr, reset = true) {
|
|
350
360
|
const fn = (hasSpace = false, prev = '', detectModulo = false) => {
|
|
351
361
|
const ch = scnr.currentPeek();
|
|
@@ -427,50 +437,54 @@ function createTokenizer(source, options = {}) {
|
|
|
427
437
|
}
|
|
428
438
|
return num;
|
|
429
439
|
}
|
|
440
|
+
function readModulo(scnr) {
|
|
441
|
+
skipSpaces(scnr);
|
|
442
|
+
const ch = scnr.currentChar();
|
|
443
|
+
if (ch !== "%" /* Modulo */) {
|
|
444
|
+
emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);
|
|
445
|
+
}
|
|
446
|
+
scnr.next();
|
|
447
|
+
return "%" /* Modulo */;
|
|
448
|
+
}
|
|
430
449
|
function readText(scnr) {
|
|
431
|
-
|
|
450
|
+
let buf = '';
|
|
451
|
+
while (true) {
|
|
432
452
|
const ch = scnr.currentChar();
|
|
433
453
|
if (ch === "{" /* BraceLeft */ ||
|
|
434
454
|
ch === "}" /* BraceRight */ ||
|
|
435
455
|
ch === "@" /* LinkedAlias */ ||
|
|
456
|
+
ch === "|" /* Pipe */ ||
|
|
436
457
|
!ch) {
|
|
437
|
-
|
|
458
|
+
break;
|
|
438
459
|
}
|
|
439
460
|
else if (ch === "%" /* Modulo */) {
|
|
440
461
|
if (isTextStart(scnr)) {
|
|
441
462
|
buf += ch;
|
|
442
463
|
scnr.next();
|
|
443
|
-
return fn(buf);
|
|
444
464
|
}
|
|
445
465
|
else {
|
|
446
|
-
|
|
466
|
+
break;
|
|
447
467
|
}
|
|
448
468
|
}
|
|
449
|
-
else if (ch === "|" /* Pipe */) {
|
|
450
|
-
return buf;
|
|
451
|
-
}
|
|
452
469
|
else if (ch === CHAR_SP || ch === CHAR_LF) {
|
|
453
470
|
if (isTextStart(scnr)) {
|
|
454
471
|
buf += ch;
|
|
455
472
|
scnr.next();
|
|
456
|
-
return fn(buf);
|
|
457
473
|
}
|
|
458
474
|
else if (isPluralStart(scnr)) {
|
|
459
|
-
|
|
475
|
+
break;
|
|
460
476
|
}
|
|
461
477
|
else {
|
|
462
478
|
buf += ch;
|
|
463
479
|
scnr.next();
|
|
464
|
-
return fn(buf);
|
|
465
480
|
}
|
|
466
481
|
}
|
|
467
482
|
else {
|
|
468
483
|
buf += ch;
|
|
469
484
|
scnr.next();
|
|
470
|
-
return fn(buf);
|
|
471
485
|
}
|
|
472
|
-
}
|
|
473
|
-
return
|
|
486
|
+
}
|
|
487
|
+
return buf;
|
|
474
488
|
}
|
|
475
489
|
function readNamedIdentifier(scnr) {
|
|
476
490
|
skipSpaces(scnr);
|
|
@@ -778,13 +792,15 @@ function createTokenizer(source, options = {}) {
|
|
|
778
792
|
context.inLinked = false;
|
|
779
793
|
return token;
|
|
780
794
|
}
|
|
795
|
+
const { isModulo, hasSpace } = detectModuloStart(scnr);
|
|
796
|
+
if (isModulo) {
|
|
797
|
+
return hasSpace
|
|
798
|
+
? getToken(context, 0 /* Text */, readText(scnr))
|
|
799
|
+
: getToken(context, 4 /* Modulo */, readModulo(scnr));
|
|
800
|
+
}
|
|
781
801
|
if (isTextStart(scnr)) {
|
|
782
802
|
return getToken(context, 0 /* Text */, readText(scnr));
|
|
783
803
|
}
|
|
784
|
-
if (ch === "%" /* Modulo */) {
|
|
785
|
-
scnr.next();
|
|
786
|
-
return getToken(context, 4 /* Modulo */, "%" /* Modulo */);
|
|
787
|
-
}
|
|
788
804
|
break;
|
|
789
805
|
}
|
|
790
806
|
return token;
|
|
@@ -1138,6 +1154,7 @@ function traverseNode(node, transformer) {
|
|
|
1138
1154
|
const linked = node;
|
|
1139
1155
|
traverseNode(linked.key, transformer);
|
|
1140
1156
|
transformer.helper("linked" /* LINKED */);
|
|
1157
|
+
transformer.helper("type" /* TYPE */);
|
|
1141
1158
|
break;
|
|
1142
1159
|
case 5 /* List */:
|
|
1143
1160
|
transformer.helper("interpolate" /* INTERPOLATE */);
|
|
@@ -1214,6 +1231,10 @@ function generateLinkedNode(generator, node) {
|
|
|
1214
1231
|
if (node.modifier) {
|
|
1215
1232
|
generator.push(`, `);
|
|
1216
1233
|
generateNode(generator, node.modifier);
|
|
1234
|
+
generator.push(`, _type`);
|
|
1235
|
+
}
|
|
1236
|
+
else {
|
|
1237
|
+
generator.push(`, undefined, _type`);
|
|
1217
1238
|
}
|
|
1218
1239
|
generator.push(`)`);
|
|
1219
1240
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* message-compiler v9.2.
|
|
3
|
-
* (c)
|
|
2
|
+
* message-compiler v9.2.2
|
|
3
|
+
* (c) 2022 kazuya kawaguchi
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
6
6
|
var IntlifyMessageCompiler = (function (exports) {
|
|
@@ -368,6 +368,16 @@ var IntlifyMessageCompiler = (function (exports) {
|
|
|
368
368
|
scnr.resetPeek();
|
|
369
369
|
return ret;
|
|
370
370
|
}
|
|
371
|
+
function detectModuloStart(scnr) {
|
|
372
|
+
const spaces = peekSpaces(scnr);
|
|
373
|
+
const ret = scnr.currentPeek() === "%" /* Modulo */ &&
|
|
374
|
+
scnr.peek() === "{" /* BraceLeft */;
|
|
375
|
+
scnr.resetPeek();
|
|
376
|
+
return {
|
|
377
|
+
isModulo: ret,
|
|
378
|
+
hasSpace: spaces.length > 0
|
|
379
|
+
};
|
|
380
|
+
}
|
|
371
381
|
function isTextStart(scnr, reset = true) {
|
|
372
382
|
const fn = (hasSpace = false, prev = '', detectModulo = false) => {
|
|
373
383
|
const ch = scnr.currentPeek();
|
|
@@ -449,50 +459,54 @@ var IntlifyMessageCompiler = (function (exports) {
|
|
|
449
459
|
}
|
|
450
460
|
return num;
|
|
451
461
|
}
|
|
462
|
+
function readModulo(scnr) {
|
|
463
|
+
skipSpaces(scnr);
|
|
464
|
+
const ch = scnr.currentChar();
|
|
465
|
+
if (ch !== "%" /* Modulo */) {
|
|
466
|
+
emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);
|
|
467
|
+
}
|
|
468
|
+
scnr.next();
|
|
469
|
+
return "%" /* Modulo */;
|
|
470
|
+
}
|
|
452
471
|
function readText(scnr) {
|
|
453
|
-
|
|
472
|
+
let buf = '';
|
|
473
|
+
while (true) {
|
|
454
474
|
const ch = scnr.currentChar();
|
|
455
475
|
if (ch === "{" /* BraceLeft */ ||
|
|
456
476
|
ch === "}" /* BraceRight */ ||
|
|
457
477
|
ch === "@" /* LinkedAlias */ ||
|
|
478
|
+
ch === "|" /* Pipe */ ||
|
|
458
479
|
!ch) {
|
|
459
|
-
|
|
480
|
+
break;
|
|
460
481
|
}
|
|
461
482
|
else if (ch === "%" /* Modulo */) {
|
|
462
483
|
if (isTextStart(scnr)) {
|
|
463
484
|
buf += ch;
|
|
464
485
|
scnr.next();
|
|
465
|
-
return fn(buf);
|
|
466
486
|
}
|
|
467
487
|
else {
|
|
468
|
-
|
|
488
|
+
break;
|
|
469
489
|
}
|
|
470
490
|
}
|
|
471
|
-
else if (ch === "|" /* Pipe */) {
|
|
472
|
-
return buf;
|
|
473
|
-
}
|
|
474
491
|
else if (ch === CHAR_SP || ch === CHAR_LF) {
|
|
475
492
|
if (isTextStart(scnr)) {
|
|
476
493
|
buf += ch;
|
|
477
494
|
scnr.next();
|
|
478
|
-
return fn(buf);
|
|
479
495
|
}
|
|
480
496
|
else if (isPluralStart(scnr)) {
|
|
481
|
-
|
|
497
|
+
break;
|
|
482
498
|
}
|
|
483
499
|
else {
|
|
484
500
|
buf += ch;
|
|
485
501
|
scnr.next();
|
|
486
|
-
return fn(buf);
|
|
487
502
|
}
|
|
488
503
|
}
|
|
489
504
|
else {
|
|
490
505
|
buf += ch;
|
|
491
506
|
scnr.next();
|
|
492
|
-
return fn(buf);
|
|
493
507
|
}
|
|
494
|
-
}
|
|
495
|
-
return
|
|
508
|
+
}
|
|
509
|
+
return buf;
|
|
496
510
|
}
|
|
497
511
|
function readNamedIdentifier(scnr) {
|
|
498
512
|
skipSpaces(scnr);
|
|
@@ -800,13 +814,15 @@ var IntlifyMessageCompiler = (function (exports) {
|
|
|
800
814
|
context.inLinked = false;
|
|
801
815
|
return token;
|
|
802
816
|
}
|
|
817
|
+
const { isModulo, hasSpace } = detectModuloStart(scnr);
|
|
818
|
+
if (isModulo) {
|
|
819
|
+
return hasSpace
|
|
820
|
+
? getToken(context, 0 /* Text */, readText(scnr))
|
|
821
|
+
: getToken(context, 4 /* Modulo */, readModulo(scnr));
|
|
822
|
+
}
|
|
803
823
|
if (isTextStart(scnr)) {
|
|
804
824
|
return getToken(context, 0 /* Text */, readText(scnr));
|
|
805
825
|
}
|
|
806
|
-
if (ch === "%" /* Modulo */) {
|
|
807
|
-
scnr.next();
|
|
808
|
-
return getToken(context, 4 /* Modulo */, "%" /* Modulo */);
|
|
809
|
-
}
|
|
810
826
|
break;
|
|
811
827
|
}
|
|
812
828
|
return token;
|
|
@@ -1160,6 +1176,7 @@ var IntlifyMessageCompiler = (function (exports) {
|
|
|
1160
1176
|
const linked = node;
|
|
1161
1177
|
traverseNode(linked.key, transformer);
|
|
1162
1178
|
transformer.helper("linked" /* LINKED */);
|
|
1179
|
+
transformer.helper("type" /* TYPE */);
|
|
1163
1180
|
break;
|
|
1164
1181
|
case 5 /* List */:
|
|
1165
1182
|
transformer.helper("interpolate" /* INTERPOLATE */);
|
|
@@ -1236,6 +1253,10 @@ var IntlifyMessageCompiler = (function (exports) {
|
|
|
1236
1253
|
if (node.modifier) {
|
|
1237
1254
|
generator.push(`, `);
|
|
1238
1255
|
generateNode(generator, node.modifier);
|
|
1256
|
+
generator.push(`, _type`);
|
|
1257
|
+
}
|
|
1258
|
+
else {
|
|
1259
|
+
generator.push(`, undefined, _type`);
|
|
1239
1260
|
}
|
|
1240
1261
|
generator.push(`)`);
|
|
1241
1262
|
}
|
|
@@ -1385,4 +1406,4 @@ var IntlifyMessageCompiler = (function (exports) {
|
|
|
1385
1406
|
|
|
1386
1407
|
return exports;
|
|
1387
1408
|
|
|
1388
|
-
}({})
|
|
1409
|
+
})({});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* message-compiler v9.2.
|
|
3
|
-
* (c)
|
|
2
|
+
* message-compiler v9.2.2
|
|
3
|
+
* (c) 2022 kazuya kawaguchi
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
var IntlifyMessageCompiler=function(e){"use strict";const n=Object.assign,t=e=>"string"==typeof e,r={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,__EXTEND_POINT__:15},c={[r.EXPECTED_TOKEN]:"Expected token: '{0}'",[r.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[r.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[r.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[r.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[r.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[r.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[r.EMPTY_PLACEHOLDER]:"Empty placeholder",[r.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[r.INVALID_LINKED_FORMAT]:"Invalid linked format",[r.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[r.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[r.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[r.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'"};function o(e,n,t={}){const{domain:r}=t,c=new SyntaxError(String(e));return c.code=e,n&&(c.location=n),c.domain=r,c}function u(e,n,t){return{line:e,column:n,offset:t}}function s(e,n,t){const r={start:e,end:n};return null!=t&&(r.source=t),r}const i=" ",a="\n",l=String.fromCharCode(8232),f=String.fromCharCode(8233);function d(e){const n=e;let t=0,r=1,c=1,o=0;const u=e=>"\r"===n[e]&&n[e+1]===a,s=e=>n[e]===f,i=e=>n[e]===l,d=e=>u(e)||(e=>n[e]===a)(e)||s(e)||i(e),p=e=>u(e)||s(e)||i(e)?a:n[e];function E(){return o=0,d(t)&&(r++,c=0),u(t)&&t++,t++,c++,n[t]}return{index:()=>t,line:()=>r,column:()=>c,peekOffset:()=>o,charAt:p,currentChar:()=>p(t),currentPeek:()=>p(t+o),next:E,peek:function(){return u(t+o)&&o++,o++,n[t+o]},reset:function(){t=0,r=1,c=1,o=0},resetPeek:function(e=0){o=e},skipToPeek:function(){const e=t+o;for(;e!==t;)E();o=0}}}const p=void 0;function E(e,n={}){const t=!1!==n.location,r=d(e),c=()=>r.index(),o=()=>u(r.line(),r.column(),r.index()),l=o(),f=c(),E={currentType:14,offset:f,startLoc:l,endLoc:l,lastType:14,lastOffset:f,lastStartLoc:l,lastEndLoc:l,braceNest:0,inLinked:!1,text:""},k=()=>E,{onError:L}=n;function h(e,n,r){e.endLoc=o(),e.currentType=n;const c={type:n};return t&&(c.loc=s(e.startLoc,e.endLoc)),null!=r&&(c.value=r),c}const N=e=>h(e,14);function _(e,n){return e.currentChar()===n?(e.next(),n):(o(),"")}function T(e){let n="";for(;e.currentPeek()===i||e.currentPeek()===a;)n+=e.currentPeek(),e.peek();return n}function C(e){const n=T(e);return e.skipToPeek(),n}function P(e){if(e===p)return!1;const n=e.charCodeAt(0);return n>=97&&n<=122||n>=65&&n<=90||95===n}function x(e,n){const{currentType:t}=n;if(2!==t)return!1;T(e);const r=function(e){if(e===p)return!1;const n=e.charCodeAt(0);return n>=48&&n<=57}("-"===e.currentPeek()?e.peek():e.currentPeek());return e.resetPeek(),r}function y(e){T(e);const n="|"===e.currentPeek();return e.resetPeek(),n}function m(e,n=!0){const t=(n=!1,r="",c=!1)=>{const o=e.currentPeek();return"{"===o?"%"!==r&&n:"@"!==o&&o?"%"===o?(e.peek(),t(n,"%",!0)):"|"===o?!("%"!==r&&!c)||!(r===i||r===a):o===i?(e.peek(),t(!0,i,c)):o!==a||(e.peek(),t(!0,a,c)):"%"===r||n},r=t();return n&&e.resetPeek(),r}function I(e,n){const t=e.currentChar();return t===p?p:n(t)?(e.next(),t):null}function O(e){return I(e,(e=>{const n=e.charCodeAt(0);return n>=97&&n<=122||n>=65&&n<=90||n>=48&&n<=57||95===n||36===n}))}function A(e){return I(e,(e=>{const n=e.charCodeAt(0);return n>=48&&n<=57}))}function b(e){return I(e,(e=>{const n=e.charCodeAt(0);return n>=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102}))}function S(e){let n="",t="";for(;n=A(e);)t+=n;return t}function v(e){const n=e.currentChar();switch(n){case"\\":case"'":return e.next(),`\\${n}`;case"u":return D(e,n,4);case"U":return D(e,n,6);default:return o(),""}}function D(e,n,t){_(e,n);let r="";for(let n=0;n<t;n++){const n=b(e);if(!n){o(),e.currentChar();break}r+=n}return`\\${n}${r}`}function U(e){C(e);const n=_(e,"|");return C(e),n}function g(e,n){let t=null;switch(e.currentChar()){case"{":return n.braceNest>=1&&o(),e.next(),t=h(n,2,"{"),C(e),n.braceNest++,t;case"}":return n.braceNest>0&&2===n.currentType&&o(),e.next(),t=h(n,3,"}"),n.braceNest--,n.braceNest>0&&C(e),n.inLinked&&0===n.braceNest&&(n.inLinked=!1),t;case"@":return n.braceNest>0&&o(),t=R(e,n)||N(n),n.braceNest=0,t;default:let r=!0,c=!0,u=!0;if(y(e))return n.braceNest>0&&o(),t=h(n,1,U(e)),n.braceNest=0,n.inLinked=!1,t;if(n.braceNest>0&&(5===n.currentType||6===n.currentType||7===n.currentType))return o(),n.braceNest=0,M(e,n);if(r=function(e,n){const{currentType:t}=n;if(2!==t)return!1;T(e);const r=P(e.currentPeek());return e.resetPeek(),r}(e,n))return t=h(n,5,function(e){C(e);let n="",t="";for(;n=O(e);)t+=n;return e.currentChar()===p&&o(),t}(e)),C(e),t;if(c=x(e,n))return t=h(n,6,function(e){C(e);let n="";return"-"===e.currentChar()?(e.next(),n+=`-${S(e)}`):n+=S(e),e.currentChar()===p&&o(),n}(e)),C(e),t;if(u=function(e,n){const{currentType:t}=n;if(2!==t)return!1;T(e);const r="'"===e.currentPeek();return e.resetPeek(),r}(e,n))return t=h(n,7,function(e){C(e),_(e,"'");let n="",t="";const r=e=>"'"!==e&&e!==a;for(;n=I(e,r);)t+="\\"===n?v(e):n;const c=e.currentChar();return c===a||c===p?(o(),c===a&&(e.next(),_(e,"'")),t):(_(e,"'"),t)}(e)),C(e),t;if(!r&&!c&&!u)return t=h(n,13,function(e){C(e);let n="",t="";const r=e=>"{"!==e&&"}"!==e&&e!==i&&e!==a;for(;n=I(e,r);)t+=n;return t}(e)),o(),C(e),t}return t}function R(e,n){const{currentType:t}=n;let r=null;const c=e.currentChar();switch(8!==t&&9!==t&&12!==t&&10!==t||c!==a&&c!==i||o(),c){case"@":return e.next(),r=h(n,8,"@"),n.inLinked=!0,r;case".":return C(e),e.next(),h(n,9,".");case":":return C(e),e.next(),h(n,10,":");default:return y(e)?(r=h(n,1,U(e)),n.braceNest=0,n.inLinked=!1,r):function(e,n){const{currentType:t}=n;if(8!==t)return!1;T(e);const r="."===e.currentPeek();return e.resetPeek(),r}(e,n)||function(e,n){const{currentType:t}=n;if(8!==t&&12!==t)return!1;T(e);const r=":"===e.currentPeek();return e.resetPeek(),r}(e,n)?(C(e),R(e,n)):function(e,n){const{currentType:t}=n;if(9!==t)return!1;T(e);const r=P(e.currentPeek());return e.resetPeek(),r}(e,n)?(C(e),h(n,12,function(e){let n="",t="";for(;n=O(e);)t+=n;return t}(e))):function(e,n){const{currentType:t}=n;if(10!==t)return!1;const r=()=>{const n=e.currentPeek();return"{"===n?P(e.peek()):!("@"===n||"%"===n||"|"===n||":"===n||"."===n||n===i||!n)&&(n===a?(e.peek(),r()):P(n))},c=r();return e.resetPeek(),c}(e,n)?(C(e),"{"===c?g(e,n)||r:h(n,11,function(e){const n=(t=!1,r)=>{const c=e.currentChar();return"{"!==c&&"%"!==c&&"@"!==c&&"|"!==c&&c?c===i?r:c===a?(r+=c,e.next(),n(t,r)):(r+=c,e.next(),n(!0,r)):r};return n(!1,"")}(e))):(8===t&&o(),n.braceNest=0,n.inLinked=!1,M(e,n))}}function M(e,n){let t={type:14};if(n.braceNest>0)return g(e,n)||N(n);if(n.inLinked)return R(e,n)||N(n);const r=e.currentChar();switch(r){case"{":return g(e,n)||N(n);case"}":return o(),e.next(),h(n,3,"}");case"@":return R(e,n)||N(n);default:if(y(e))return t=h(n,1,U(e)),n.braceNest=0,n.inLinked=!1,t;if(m(e))return h(n,0,function(e){const n=t=>{const r=e.currentChar();return"{"!==r&&"}"!==r&&"@"!==r&&r?"%"===r?m(e)?(t+=r,e.next(),n(t)):t:"|"===r?t:r===i||r===a?m(e)?(t+=r,e.next(),n(t)):y(e)?t:(t+=r,e.next(),n(t)):(t+=r,e.next(),n(t)):t};return n("")}(e));if("%"===r)return e.next(),h(n,4,"%")}return t}return{nextToken:function(){const{currentType:e,offset:n,startLoc:t,endLoc:u}=E;return E.lastType=e,E.lastOffset=n,E.lastStartLoc=t,E.lastEndLoc=u,E.offset=c(),E.startLoc=o(),r.currentChar()===p?h(E,14):M(r,E)},currentOffset:c,currentPosition:o,context:k}}const k="parser",L=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function h(e,n,t){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const e=parseInt(n||t,16);return e<=55295||e>=57344?String.fromCodePoint(e):"�"}}}function N(e={}){const t=!1!==e.location,{onError:r}=e;function c(e,n,r){const c={type:e,start:n,end:n};return t&&(c.loc={start:r,end:r}),c}function o(e,n,r,c){e.end=n,c&&(e.type=c),t&&e.loc&&(e.loc.end=r)}function u(e,n){const t=e.context(),r=c(3,t.offset,t.startLoc);return r.value=n,o(r,e.currentOffset(),e.currentPosition()),r}function s(e,n){const t=e.context(),{lastOffset:r,lastStartLoc:u}=t,s=c(5,r,u);return s.index=parseInt(n,10),e.nextToken(),o(s,e.currentOffset(),e.currentPosition()),s}function i(e,n){const t=e.context(),{lastOffset:r,lastStartLoc:u}=t,s=c(4,r,u);return s.key=n,e.nextToken(),o(s,e.currentOffset(),e.currentPosition()),s}function a(e,n){const t=e.context(),{lastOffset:r,lastStartLoc:u}=t,s=c(9,r,u);return s.value=n.replace(L,h),e.nextToken(),o(s,e.currentOffset(),e.currentPosition()),s}function l(e){const n=e.context(),t=c(6,n.offset,n.startLoc);let r=e.nextToken();if(9===r.type){const n=function(e){const n=e.nextToken(),t=e.context(),{lastOffset:r,lastStartLoc:u}=t,s=c(8,r,u);return 12!==n.type?(s.value="",o(s,r,u),{nextConsumeToken:n,node:s}):(null==n.value&&_(n),s.value=n.value||"",o(s,e.currentOffset(),e.currentPosition()),{node:s})}(e);t.modifier=n.node,r=n.nextConsumeToken||e.nextToken()}switch(10!==r.type&&_(r),r=e.nextToken(),2===r.type&&(r=e.nextToken()),r.type){case 11:null==r.value&&_(r),t.key=function(e,n){const t=e.context(),r=c(7,t.offset,t.startLoc);return r.value=n,o(r,e.currentOffset(),e.currentPosition()),r}(e,r.value||"");break;case 5:null==r.value&&_(r),t.key=i(e,r.value||"");break;case 6:null==r.value&&_(r),t.key=s(e,r.value||"");break;case 7:null==r.value&&_(r),t.key=a(e,r.value||"");break;default:const n=e.context(),u=c(7,n.offset,n.startLoc);return u.value="",o(u,n.offset,n.startLoc),t.key=u,o(t,n.offset,n.startLoc),{nextConsumeToken:r,node:t}}return o(t,e.currentOffset(),e.currentPosition()),{node:t}}function f(e){const n=e.context(),t=c(2,1===n.currentType?e.currentOffset():n.offset,1===n.currentType?n.endLoc:n.startLoc);t.items=[];let r=null;do{const n=r||e.nextToken();switch(r=null,n.type){case 0:null==n.value&&_(n),t.items.push(u(e,n.value||""));break;case 6:null==n.value&&_(n),t.items.push(s(e,n.value||""));break;case 5:null==n.value&&_(n),t.items.push(i(e,n.value||""));break;case 7:null==n.value&&_(n),t.items.push(a(e,n.value||""));break;case 8:const c=l(e);t.items.push(c.node),r=c.nextConsumeToken||null}}while(14!==n.currentType&&1!==n.currentType);return o(t,1===n.currentType?n.lastOffset:e.currentOffset(),1===n.currentType?n.lastEndLoc:e.currentPosition()),t}function d(e){const n=e.context(),{offset:t,startLoc:r}=n,u=f(e);return 14===n.currentType?u:function(e,n,t,r){const u=e.context();let s=0===r.items.length;const i=c(1,n,t);i.cases=[],i.cases.push(r);do{const n=f(e);s||(s=0===n.items.length),i.cases.push(n)}while(14!==u.currentType);return o(i,e.currentOffset(),e.currentPosition()),i}(e,t,r,u)}return{parse:function(r){const u=E(r,n({},e)),s=u.context(),i=c(0,s.offset,s.startLoc);return t&&i.loc&&(i.loc.source=r),i.body=d(u),o(i,u.currentOffset(),u.currentPosition()),i}}}function _(e){if(14===e.type)return"EOF";const n=(e.value||"").replace(/\r?\n/gu,"\\n");return n.length>10?n.slice(0,9)+"…":n}function T(e,n){for(let t=0;t<e.length;t++)C(e[t],n)}function C(e,n){switch(e.type){case 1:T(e.cases,n),n.helper("plural");break;case 2:T(e.items,n);break;case 6:C(e.key,n),n.helper("linked");break;case 5:n.helper("interpolate"),n.helper("list");break;case 4:n.helper("interpolate"),n.helper("named")}}function P(e,n={}){const t=function(e,n={}){const t={ast:e,helpers:new Set};return{context:()=>t,helper:e=>(t.helpers.add(e),e)}}(e);t.helper("normalize"),e.body&&C(e.body,t);const r=t.context();e.helpers=Array.from(r.helpers)}function x(e,n){const{helper:t}=e;switch(n.type){case 0:!function(e,n){n.body?x(e,n.body):e.push("null")}(e,n);break;case 1:!function(e,n){const{helper:t,needIndent:r}=e;if(n.cases.length>1){e.push(`${t("plural")}([`),e.indent(r());const c=n.cases.length;for(let t=0;t<c&&(x(e,n.cases[t]),t!==c-1);t++)e.push(", ");e.deindent(r()),e.push("])")}}(e,n);break;case 2:!function(e,n){const{helper:t,needIndent:r}=e;e.push(`${t("normalize")}([`),e.indent(r());const c=n.items.length;for(let t=0;t<c&&(x(e,n.items[t]),t!==c-1);t++)e.push(", ");e.deindent(r()),e.push("])")}(e,n);break;case 6:!function(e,n){const{helper:t}=e;e.push(`${t("linked")}(`),x(e,n.key),n.modifier&&(e.push(", "),x(e,n.modifier)),e.push(")")}(e,n);break;case 8:case 7:e.push(JSON.stringify(n.value),n);break;case 5:e.push(`${t("interpolate")}(${t("list")}(${n.index}))`,n);break;case 4:e.push(`${t("interpolate")}(${t("named")}(${JSON.stringify(n.key)}))`,n);break;case 9:case 3:e.push(JSON.stringify(n.value),n)}}return e.CompileErrorCodes=r,e.ERROR_DOMAIN=k,e.LocationStub={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0}},e.baseCompile=function(e,r={}){const c=n({},r),o=N(c).parse(e);return P(o,c),((e,n={})=>{const r=t(n.mode)?n.mode:"normal",c=t(n.filename)?n.filename:"message.intl",o=n.needIndent?n.needIndent:"arrow"!==r,u=e.helpers||[],s=function(e,n){const{filename:t,breakLineCode:r,needIndent:c}=n,o={source:e.loc.source,filename:t,code:"",column:1,line:1,offset:0,map:void 0,breakLineCode:r,needIndent:c,indentLevel:0};function u(e,n){o.code+=e}function s(e,n=!0){const t=n?r:"";u(c?t+" ".repeat(e):t)}return{context:()=>o,push:u,indent:function(e=!0){const n=++o.indentLevel;e&&s(n)},deindent:function(e=!0){const n=--o.indentLevel;e&&s(n)},newline:function(){s(o.indentLevel)},helper:e=>`_${e}`,needIndent:()=>o.needIndent}}(e,{mode:r,filename:c,sourceMap:!!n.sourceMap,breakLineCode:null!=n.breakLineCode?n.breakLineCode:"arrow"===r?";":"\n",needIndent:o});s.push("normal"===r?"function __msg__ (ctx) {":"(ctx) => {"),s.indent(o),u.length>0&&(s.push(`const { ${u.map((e=>`${e}: _${e}`)).join(", ")} } = ctx`),s.newline()),s.push("return "),x(s,e),s.deindent(o),s.push("}");const{code:i,map:a}=s.context();return{ast:e,code:i,map:a?a.toJSON():void 0}})(o,c)},e.createCompileError=o,e.createLocation=s,e.createParser=N,e.createPosition=u,e.defaultOnError=function(e){throw e},e.errorMessages=c,Object.defineProperty(e,"__esModule",{value:!0}),e}({});
|
|
6
|
+
var IntlifyMessageCompiler=function(e){"use strict";const t=Object.assign,n=e=>"string"==typeof e,r={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,__EXTEND_POINT__:15},c={[r.EXPECTED_TOKEN]:"Expected token: '{0}'",[r.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[r.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[r.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[r.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[r.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[r.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[r.EMPTY_PLACEHOLDER]:"Empty placeholder",[r.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[r.INVALID_LINKED_FORMAT]:"Invalid linked format",[r.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[r.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[r.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[r.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'"};function o(e,t,n={}){const{domain:r,messages:c,args:o}=n,s=new SyntaxError(String(e));return s.code=e,t&&(s.location=t),s.domain=r,s}function s(e,t,n){return{line:e,column:t,offset:n}}function u(e,t,n){const r={start:e,end:t};return null!=n&&(r.source=n),r}const a=" ",i="\n",l=String.fromCharCode(8232),f=String.fromCharCode(8233);function d(e){const t=e;let n=0,r=1,c=1,o=0;const s=e=>"\r"===t[e]&&t[e+1]===i,u=e=>t[e]===f,a=e=>t[e]===l,d=e=>s(e)||(e=>t[e]===i)(e)||u(e)||a(e),p=e=>s(e)||u(e)||a(e)?i:t[e];function E(){return o=0,d(n)&&(r++,c=0),s(n)&&n++,n++,c++,t[n]}return{index:()=>n,line:()=>r,column:()=>c,peekOffset:()=>o,charAt:p,currentChar:()=>p(n),currentPeek:()=>p(n+o),next:E,peek:function(){return s(n+o)&&o++,o++,t[n+o]},reset:function(){n=0,r=1,c=1,o=0},resetPeek:function(e=0){o=e},skipToPeek:function(){const e=n+o;for(;e!==n;)E();o=0}}}const p=void 0;function E(e,t={}){const n=!1!==t.location,r=d(e),c=()=>r.index(),o=()=>s(r.line(),r.column(),r.index()),l=o(),f=c(),E={currentType:14,offset:f,startLoc:l,endLoc:l,lastType:14,lastOffset:f,lastStartLoc:l,lastEndLoc:l,braceNest:0,inLinked:!1,text:""},L=()=>E,{onError:k}=t;function h(e,t,r){e.endLoc=o(),e.currentType=t;const c={type:t};return n&&(c.loc=u(e.startLoc,e.endLoc)),null!=r&&(c.value=r),c}const N=e=>h(e,14);function _(e,t){return e.currentChar()===t?(e.next(),t):(o(),"")}function T(e){let t="";for(;e.currentPeek()===a||e.currentPeek()===i;)t+=e.currentPeek(),e.peek();return t}function C(e){const t=T(e);return e.skipToPeek(),t}function P(e){if(e===p)return!1;const t=e.charCodeAt(0);return t>=97&&t<=122||t>=65&&t<=90||95===t}function y(e,t){const{currentType:n}=t;if(2!==n)return!1;T(e);const r=function(e){if(e===p)return!1;const t=e.charCodeAt(0);return t>=48&&t<=57}("-"===e.currentPeek()?e.peek():e.currentPeek());return e.resetPeek(),r}function x(e){T(e);const t="|"===e.currentPeek();return e.resetPeek(),t}function m(e,t=!0){const n=(t=!1,r="",c=!1)=>{const o=e.currentPeek();return"{"===o?"%"!==r&&t:"@"!==o&&o?"%"===o?(e.peek(),n(t,"%",!0)):"|"===o?!("%"!==r&&!c)||!(r===a||r===i):o===a?(e.peek(),n(!0,a,c)):o!==i||(e.peek(),n(!0,i,c)):"%"===r||t},r=n();return t&&e.resetPeek(),r}function I(e,t){const n=e.currentChar();return n===p?p:t(n)?(e.next(),n):null}function O(e){return I(e,(e=>{const t=e.charCodeAt(0);return t>=97&&t<=122||t>=65&&t<=90||t>=48&&t<=57||95===t||36===t}))}function S(e){return I(e,(e=>{const t=e.charCodeAt(0);return t>=48&&t<=57}))}function b(e){return I(e,(e=>{const t=e.charCodeAt(0);return t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102}))}function A(e){let t="",n="";for(;t=S(e);)n+=t;return n}function v(e){let t="";for(;;){const n=e.currentChar();if("{"===n||"}"===n||"@"===n||"|"===n||!n)break;if("%"===n){if(!m(e))break;t+=n,e.next()}else if(n===a||n===i)if(m(e))t+=n,e.next();else{if(x(e))break;t+=n,e.next()}else t+=n,e.next()}return t}function D(e){const t=e.currentChar();switch(t){case"\\":case"'":return e.next(),`\\${t}`;case"u":return U(e,t,4);case"U":return U(e,t,6);default:return o(),""}}function U(e,t,n){_(e,t);let r="";for(let t=0;t<n;t++){const t=b(e);if(!t){o(),e.currentChar();break}r+=t}return`\\${t}${r}`}function g(e){C(e);const t=_(e,"|");return C(e),t}function M(e,t){let n=null;switch(e.currentChar()){case"{":return t.braceNest>=1&&o(),e.next(),n=h(t,2,"{"),C(e),t.braceNest++,n;case"}":return t.braceNest>0&&2===t.currentType&&o(),e.next(),n=h(t,3,"}"),t.braceNest--,t.braceNest>0&&C(e),t.inLinked&&0===t.braceNest&&(t.inLinked=!1),n;case"@":return t.braceNest>0&&o(),n=R(e,t)||N(t),t.braceNest=0,n;default:let r=!0,c=!0,s=!0;if(x(e))return t.braceNest>0&&o(),n=h(t,1,g(e)),t.braceNest=0,t.inLinked=!1,n;if(t.braceNest>0&&(5===t.currentType||6===t.currentType||7===t.currentType))return o(),t.braceNest=0,w(e,t);if(r=function(e,t){const{currentType:n}=t;if(2!==n)return!1;T(e);const r=P(e.currentPeek());return e.resetPeek(),r}(e,t))return n=h(t,5,function(e){C(e);let t="",n="";for(;t=O(e);)n+=t;return e.currentChar()===p&&o(),n}(e)),C(e),n;if(c=y(e,t))return n=h(t,6,function(e){C(e);let t="";return"-"===e.currentChar()?(e.next(),t+=`-${A(e)}`):t+=A(e),e.currentChar()===p&&o(),t}(e)),C(e),n;if(s=function(e,t){const{currentType:n}=t;if(2!==n)return!1;T(e);const r="'"===e.currentPeek();return e.resetPeek(),r}(e,t))return n=h(t,7,function(e){C(e),_(e,"'");let t="",n="";const r=e=>"'"!==e&&e!==i;for(;t=I(e,r);)n+="\\"===t?D(e):t;const c=e.currentChar();return c===i||c===p?(o(),c===i&&(e.next(),_(e,"'")),n):(_(e,"'"),n)}(e)),C(e),n;if(!r&&!c&&!s)return n=h(t,13,function(e){C(e);let t="",n="";const r=e=>"{"!==e&&"}"!==e&&e!==a&&e!==i;for(;t=I(e,r);)n+=t;return n}(e)),o(),n.value,C(e),n}return n}function R(e,t){const{currentType:n}=t;let r=null;const c=e.currentChar();switch(8!==n&&9!==n&&12!==n&&10!==n||c!==i&&c!==a||o(),c){case"@":return e.next(),r=h(t,8,"@"),t.inLinked=!0,r;case".":return C(e),e.next(),h(t,9,".");case":":return C(e),e.next(),h(t,10,":");default:return x(e)?(r=h(t,1,g(e)),t.braceNest=0,t.inLinked=!1,r):function(e,t){const{currentType:n}=t;if(8!==n)return!1;T(e);const r="."===e.currentPeek();return e.resetPeek(),r}(e,t)||function(e,t){const{currentType:n}=t;if(8!==n&&12!==n)return!1;T(e);const r=":"===e.currentPeek();return e.resetPeek(),r}(e,t)?(C(e),R(e,t)):function(e,t){const{currentType:n}=t;if(9!==n)return!1;T(e);const r=P(e.currentPeek());return e.resetPeek(),r}(e,t)?(C(e),h(t,12,function(e){let t="",n="";for(;t=O(e);)n+=t;return n}(e))):function(e,t){const{currentType:n}=t;if(10!==n)return!1;const r=()=>{const t=e.currentPeek();return"{"===t?P(e.peek()):!("@"===t||"%"===t||"|"===t||":"===t||"."===t||t===a||!t)&&(t===i?(e.peek(),r()):P(t))},c=r();return e.resetPeek(),c}(e,t)?(C(e),"{"===c?M(e,t)||r:h(t,11,function(e){const t=(n=!1,r)=>{const c=e.currentChar();return"{"!==c&&"%"!==c&&"@"!==c&&"|"!==c&&c?c===a?r:c===i?(r+=c,e.next(),t(n,r)):(r+=c,e.next(),t(!0,r)):r};return t(!1,"")}(e))):(8===n&&o(),t.braceNest=0,t.inLinked=!1,w(e,t))}}function w(e,t){let n={type:14};if(t.braceNest>0)return M(e,t)||N(t);if(t.inLinked)return R(e,t)||N(t);switch(e.currentChar()){case"{":return M(e,t)||N(t);case"}":return o(),e.next(),h(t,3,"}");case"@":return R(e,t)||N(t);default:if(x(e))return n=h(t,1,g(e)),t.braceNest=0,t.inLinked=!1,n;const{isModulo:r,hasSpace:c}=function(e){const t=T(e),n="%"===e.currentPeek()&&"{"===e.peek();return e.resetPeek(),{isModulo:n,hasSpace:t.length>0}}(e);if(r)return c?h(t,0,v(e)):h(t,4,function(e){C(e);return"%"!==e.currentChar()&&o(),e.next(),"%"}(e));if(m(e))return h(t,0,v(e))}return n}return{nextToken:function(){const{currentType:e,offset:t,startLoc:n,endLoc:s}=E;return E.lastType=e,E.lastOffset=t,E.lastStartLoc=n,E.lastEndLoc=s,E.offset=c(),E.startLoc=o(),r.currentChar()===p?h(E,14):w(r,E)},currentOffset:c,currentPosition:o,context:L}}const L="parser",k=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function h(e,t,n){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const e=parseInt(t||n,16);return e<=55295||e>=57344?String.fromCodePoint(e):"�"}}}function N(e={}){const n=!1!==e.location,{onError:r}=e;function c(e,t,r){const c={type:e,start:t,end:t};return n&&(c.loc={start:r,end:r}),c}function o(e,t,r,c){e.end=t,c&&(e.type=c),n&&e.loc&&(e.loc.end=r)}function s(e,t){const n=e.context(),r=c(3,n.offset,n.startLoc);return r.value=t,o(r,e.currentOffset(),e.currentPosition()),r}function u(e,t){const n=e.context(),{lastOffset:r,lastStartLoc:s}=n,u=c(5,r,s);return u.index=parseInt(t,10),e.nextToken(),o(u,e.currentOffset(),e.currentPosition()),u}function a(e,t){const n=e.context(),{lastOffset:r,lastStartLoc:s}=n,u=c(4,r,s);return u.key=t,e.nextToken(),o(u,e.currentOffset(),e.currentPosition()),u}function i(e,t){const n=e.context(),{lastOffset:r,lastStartLoc:s}=n,u=c(9,r,s);return u.value=t.replace(k,h),e.nextToken(),o(u,e.currentOffset(),e.currentPosition()),u}function l(e){const t=e.context(),n=c(6,t.offset,t.startLoc);let r=e.nextToken();if(9===r.type){const t=function(e){const t=e.nextToken(),n=e.context(),{lastOffset:r,lastStartLoc:s}=n,u=c(8,r,s);return 12!==t.type?(n.lastStartLoc,u.value="",o(u,r,s),{nextConsumeToken:t,node:u}):(null==t.value&&(n.lastStartLoc,_(t)),u.value=t.value||"",o(u,e.currentOffset(),e.currentPosition()),{node:u})}(e);n.modifier=t.node,r=t.nextConsumeToken||e.nextToken()}switch(10!==r.type&&(t.lastStartLoc,_(r)),r=e.nextToken(),2===r.type&&(r=e.nextToken()),r.type){case 11:null==r.value&&(t.lastStartLoc,_(r)),n.key=function(e,t){const n=e.context(),r=c(7,n.offset,n.startLoc);return r.value=t,o(r,e.currentOffset(),e.currentPosition()),r}(e,r.value||"");break;case 5:null==r.value&&(t.lastStartLoc,_(r)),n.key=a(e,r.value||"");break;case 6:null==r.value&&(t.lastStartLoc,_(r)),n.key=u(e,r.value||"");break;case 7:null==r.value&&(t.lastStartLoc,_(r)),n.key=i(e,r.value||"");break;default:t.lastStartLoc;const s=e.context(),l=c(7,s.offset,s.startLoc);return l.value="",o(l,s.offset,s.startLoc),n.key=l,o(n,s.offset,s.startLoc),{nextConsumeToken:r,node:n}}return o(n,e.currentOffset(),e.currentPosition()),{node:n}}function f(e){const t=e.context(),n=c(2,1===t.currentType?e.currentOffset():t.offset,1===t.currentType?t.endLoc:t.startLoc);n.items=[];let r=null;do{const c=r||e.nextToken();switch(r=null,c.type){case 0:null==c.value&&(t.lastStartLoc,_(c)),n.items.push(s(e,c.value||""));break;case 6:null==c.value&&(t.lastStartLoc,_(c)),n.items.push(u(e,c.value||""));break;case 5:null==c.value&&(t.lastStartLoc,_(c)),n.items.push(a(e,c.value||""));break;case 7:null==c.value&&(t.lastStartLoc,_(c)),n.items.push(i(e,c.value||""));break;case 8:const o=l(e);n.items.push(o.node),r=o.nextConsumeToken||null}}while(14!==t.currentType&&1!==t.currentType);return o(n,1===t.currentType?t.lastOffset:e.currentOffset(),1===t.currentType?t.lastEndLoc:e.currentPosition()),n}function d(e){const t=e.context(),{offset:n,startLoc:r}=t,s=f(e);return 14===t.currentType?s:function(e,t,n,r){const s=e.context();let u=0===r.items.length;const a=c(1,t,n);a.cases=[],a.cases.push(r);do{const t=f(e);u||(u=0===t.items.length),a.cases.push(t)}while(14!==s.currentType);return o(a,e.currentOffset(),e.currentPosition()),a}(e,n,r,s)}return{parse:function(r){const s=E(r,t({},e)),u=s.context(),a=c(0,u.offset,u.startLoc);return n&&a.loc&&(a.loc.source=r),a.body=d(s),14!==u.currentType&&(u.lastStartLoc,r[u.offset]),o(a,s.currentOffset(),s.currentPosition()),a}}}function _(e){if(14===e.type)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function T(e,t){for(let n=0;n<e.length;n++)C(e[n],t)}function C(e,t){switch(e.type){case 1:T(e.cases,t),t.helper("plural");break;case 2:T(e.items,t);break;case 6:C(e.key,t),t.helper("linked"),t.helper("type");break;case 5:t.helper("interpolate"),t.helper("list");break;case 4:t.helper("interpolate"),t.helper("named")}}function P(e,t={}){const n=function(e,t={}){const n={ast:e,helpers:new Set};return{context:()=>n,helper:e=>(n.helpers.add(e),e)}}(e);n.helper("normalize"),e.body&&C(e.body,n);const r=n.context();e.helpers=Array.from(r.helpers)}function y(e,t){const{helper:n}=e;switch(t.type){case 0:!function(e,t){t.body?y(e,t.body):e.push("null")}(e,t);break;case 1:!function(e,t){const{helper:n,needIndent:r}=e;if(t.cases.length>1){e.push(`${n("plural")}([`),e.indent(r());const c=t.cases.length;for(let n=0;n<c&&(y(e,t.cases[n]),n!==c-1);n++)e.push(", ");e.deindent(r()),e.push("])")}}(e,t);break;case 2:!function(e,t){const{helper:n,needIndent:r}=e;e.push(`${n("normalize")}([`),e.indent(r());const c=t.items.length;for(let n=0;n<c&&(y(e,t.items[n]),n!==c-1);n++)e.push(", ");e.deindent(r()),e.push("])")}(e,t);break;case 6:!function(e,t){const{helper:n}=e;e.push(`${n("linked")}(`),y(e,t.key),t.modifier?(e.push(", "),y(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}(e,t);break;case 8:case 7:case 9:case 3:e.push(JSON.stringify(t.value),t);break;case 5:e.push(`${n("interpolate")}(${n("list")}(${t.index}))`,t);break;case 4:e.push(`${n("interpolate")}(${n("named")}(${JSON.stringify(t.key)}))`,t)}}return e.CompileErrorCodes=r,e.ERROR_DOMAIN=L,e.LocationStub={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0}},e.baseCompile=function(e,r={}){const c=t({},r),o=N(c).parse(e);return P(o,c),((e,t={})=>{const r=n(t.mode)?t.mode:"normal",c=n(t.filename)?t.filename:"message.intl",o=!!t.sourceMap,s=null!=t.breakLineCode?t.breakLineCode:"arrow"===r?";":"\n",u=t.needIndent?t.needIndent:"arrow"!==r,a=e.helpers||[],i=function(e,t){const{sourceMap:n,filename:r,breakLineCode:c,needIndent:o}=t,s={source:e.loc.source,filename:r,code:"",column:1,line:1,offset:0,map:void 0,breakLineCode:c,needIndent:o,indentLevel:0};function u(e,t){s.code+=e}function a(e,t=!0){const n=t?c:"";u(o?n+" ".repeat(e):n)}return{context:()=>s,push:u,indent:function(e=!0){const t=++s.indentLevel;e&&a(t)},deindent:function(e=!0){const t=--s.indentLevel;e&&a(t)},newline:function(){a(s.indentLevel)},helper:e=>`_${e}`,needIndent:()=>s.needIndent}}(e,{mode:r,filename:c,sourceMap:o,breakLineCode:s,needIndent:u});i.push("normal"===r?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(u),a.length>0&&(i.push(`const { ${a.map((e=>`${e}: _${e}`)).join(", ")} } = ctx`),i.newline()),i.push("return "),y(i,e),i.deindent(u),i.push("}");const{code:l,map:f}=i.context();return{ast:e,code:l,map:f?f.toJSON():void 0}})(o,c)},e.createCompileError=o,e.createLocation=u,e.createParser=N,e.createPosition=s,e.defaultOnError=function(e){throw e},e.errorMessages=c,Object.defineProperty(e,"__esModule",{value:!0}),e}({});
|
package/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './index.js'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intlify/message-compiler",
|
|
3
|
-
"version": "9.2.
|
|
3
|
+
"version": "9.2.2",
|
|
4
4
|
"description": "@intlify/message-compiler",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"compiler",
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
},
|
|
26
26
|
"files": [
|
|
27
27
|
"index.js",
|
|
28
|
+
"index.mjs",
|
|
28
29
|
"dist"
|
|
29
30
|
],
|
|
30
31
|
"main": "index.js",
|
|
@@ -33,11 +34,11 @@
|
|
|
33
34
|
"jsdelivr": "dist/message-compiler.global.js",
|
|
34
35
|
"types": "dist/message-compiler.d.ts",
|
|
35
36
|
"dependencies": {
|
|
36
|
-
"@intlify/shared": "9.2.
|
|
37
|
+
"@intlify/shared": "9.2.2",
|
|
37
38
|
"source-map": "0.6.1"
|
|
38
39
|
},
|
|
39
40
|
"engines": {
|
|
40
|
-
"node": ">=
|
|
41
|
+
"node": ">= 14"
|
|
41
42
|
},
|
|
42
43
|
"buildOptions": {
|
|
43
44
|
"name": "IntlifyMessageCompiler",
|
|
@@ -49,6 +50,18 @@
|
|
|
49
50
|
],
|
|
50
51
|
"enableFullBundleForEsmBrowser": true
|
|
51
52
|
},
|
|
53
|
+
"exports": {
|
|
54
|
+
".": {
|
|
55
|
+
"import": {
|
|
56
|
+
"node": "./index.mjs",
|
|
57
|
+
"default": "./dist/message-compiler.esm-bundler.js"
|
|
58
|
+
},
|
|
59
|
+
"require": "./index.js"
|
|
60
|
+
},
|
|
61
|
+
"./dist/*": "./dist/*",
|
|
62
|
+
"./index.mjs": "./index.mjs",
|
|
63
|
+
"./package.json": "./package.json"
|
|
64
|
+
},
|
|
52
65
|
"publishConfig": {
|
|
53
66
|
"access": "public"
|
|
54
67
|
},
|