@intlify/core-base 9.3.0-beta.10 → 9.3.0-beta.11

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.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * core-base v9.3.0-beta.10
2
+ * core-base v9.3.0-beta.11
3
3
  * (c) 2022 kazuya kawaguchi
4
4
  * Released under the MIT License.
5
5
  */
@@ -16,8 +16,11 @@ let measure;
16
16
  perf.mark &&
17
17
  perf.measure &&
18
18
  perf.clearMarks &&
19
+ // @ts-ignore browser compat
19
20
  perf.clearMeasures) {
20
- mark = (tag) => perf.mark(tag);
21
+ mark = (tag) => {
22
+ perf.mark(tag);
23
+ };
21
24
  measure = (name, startTag, endTag) => {
22
25
  perf.measure(name, startTag, endTag);
23
26
  perf.clearMarks(startTag);
@@ -76,8 +79,8 @@ const isArray = Array.isArray;
76
79
  const isFunction = (val) => typeof val === 'function';
77
80
  const isString = (val) => typeof val === 'string';
78
81
  const isBoolean = (val) => typeof val === 'boolean';
79
- const isObject = (val) => // eslint-disable-line
80
- val !== null && typeof val === 'object';
82
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
83
+ const isObject = (val) => val !== null && typeof val === 'object';
81
84
  const objectToString = Object.prototype.toString;
82
85
  const toTypeString = (value) => objectToString.call(value);
83
86
  const isPlainObject = (val) => toTypeString(val) === '[object Object]';
@@ -279,11 +282,11 @@ function createTokenizer(source, options = {}) {
279
282
  const _initLoc = currentPosition();
280
283
  const _initOffset = currentOffset();
281
284
  const _context = {
282
- currentType: 14 /* EOF */,
285
+ currentType: 14 /* TokenTypes.EOF */,
283
286
  offset: _initOffset,
284
287
  startLoc: _initLoc,
285
288
  endLoc: _initLoc,
286
- lastType: 14 /* EOF */,
289
+ lastType: 14 /* TokenTypes.EOF */,
287
290
  lastOffset: _initOffset,
288
291
  lastStartLoc: _initLoc,
289
292
  lastEndLoc: _initLoc,
@@ -318,7 +321,7 @@ function createTokenizer(source, options = {}) {
318
321
  }
319
322
  return token;
320
323
  }
321
- const getEndToken = (context) => getToken(context, 14 /* EOF */);
324
+ const getEndToken = (context) => getToken(context, 14 /* TokenTypes.EOF */);
322
325
  function eat(scnr, ch) {
323
326
  if (scnr.currentChar() === ch) {
324
327
  scnr.next();
@@ -361,7 +364,7 @@ function createTokenizer(source, options = {}) {
361
364
  }
362
365
  function isNamedIdentifierStart(scnr, context) {
363
366
  const { currentType } = context;
364
- if (currentType !== 2 /* BraceLeft */) {
367
+ if (currentType !== 2 /* TokenTypes.BraceLeft */) {
365
368
  return false;
366
369
  }
367
370
  peekSpaces(scnr);
@@ -371,7 +374,7 @@ function createTokenizer(source, options = {}) {
371
374
  }
372
375
  function isListIdentifierStart(scnr, context) {
373
376
  const { currentType } = context;
374
- if (currentType !== 2 /* BraceLeft */) {
377
+ if (currentType !== 2 /* TokenTypes.BraceLeft */) {
375
378
  return false;
376
379
  }
377
380
  peekSpaces(scnr);
@@ -382,7 +385,7 @@ function createTokenizer(source, options = {}) {
382
385
  }
383
386
  function isLiteralStart(scnr, context) {
384
387
  const { currentType } = context;
385
- if (currentType !== 2 /* BraceLeft */) {
388
+ if (currentType !== 2 /* TokenTypes.BraceLeft */) {
386
389
  return false;
387
390
  }
388
391
  peekSpaces(scnr);
@@ -392,17 +395,17 @@ function createTokenizer(source, options = {}) {
392
395
  }
393
396
  function isLinkedDotStart(scnr, context) {
394
397
  const { currentType } = context;
395
- if (currentType !== 8 /* LinkedAlias */) {
398
+ if (currentType !== 8 /* TokenTypes.LinkedAlias */) {
396
399
  return false;
397
400
  }
398
401
  peekSpaces(scnr);
399
- const ret = scnr.currentPeek() === "." /* LinkedDot */;
402
+ const ret = scnr.currentPeek() === "." /* TokenChars.LinkedDot */;
400
403
  scnr.resetPeek();
401
404
  return ret;
402
405
  }
403
406
  function isLinkedModifierStart(scnr, context) {
404
407
  const { currentType } = context;
405
- if (currentType !== 9 /* LinkedDot */) {
408
+ if (currentType !== 9 /* TokenTypes.LinkedDot */) {
406
409
  return false;
407
410
  }
408
411
  peekSpaces(scnr);
@@ -412,30 +415,30 @@ function createTokenizer(source, options = {}) {
412
415
  }
413
416
  function isLinkedDelimiterStart(scnr, context) {
414
417
  const { currentType } = context;
415
- if (!(currentType === 8 /* LinkedAlias */ ||
416
- currentType === 12 /* LinkedModifier */)) {
418
+ if (!(currentType === 8 /* TokenTypes.LinkedAlias */ ||
419
+ currentType === 12 /* TokenTypes.LinkedModifier */)) {
417
420
  return false;
418
421
  }
419
422
  peekSpaces(scnr);
420
- const ret = scnr.currentPeek() === ":" /* LinkedDelimiter */;
423
+ const ret = scnr.currentPeek() === ":" /* TokenChars.LinkedDelimiter */;
421
424
  scnr.resetPeek();
422
425
  return ret;
423
426
  }
424
427
  function isLinkedReferStart(scnr, context) {
425
428
  const { currentType } = context;
426
- if (currentType !== 10 /* LinkedDelimiter */) {
429
+ if (currentType !== 10 /* TokenTypes.LinkedDelimiter */) {
427
430
  return false;
428
431
  }
429
432
  const fn = () => {
430
433
  const ch = scnr.currentPeek();
431
- if (ch === "{" /* BraceLeft */) {
434
+ if (ch === "{" /* TokenChars.BraceLeft */) {
432
435
  return isIdentifierStart(scnr.peek());
433
436
  }
434
- else if (ch === "@" /* LinkedAlias */ ||
435
- ch === "%" /* Modulo */ ||
436
- ch === "|" /* Pipe */ ||
437
- ch === ":" /* LinkedDelimiter */ ||
438
- ch === "." /* LinkedDot */ ||
437
+ else if (ch === "@" /* TokenChars.LinkedAlias */ ||
438
+ ch === "%" /* TokenChars.Modulo */ ||
439
+ ch === "|" /* TokenChars.Pipe */ ||
440
+ ch === ":" /* TokenChars.LinkedDelimiter */ ||
441
+ ch === "." /* TokenChars.LinkedDot */ ||
439
442
  ch === CHAR_SP ||
440
443
  !ch) {
441
444
  return false;
@@ -455,14 +458,14 @@ function createTokenizer(source, options = {}) {
455
458
  }
456
459
  function isPluralStart(scnr) {
457
460
  peekSpaces(scnr);
458
- const ret = scnr.currentPeek() === "|" /* Pipe */;
461
+ const ret = scnr.currentPeek() === "|" /* TokenChars.Pipe */;
459
462
  scnr.resetPeek();
460
463
  return ret;
461
464
  }
462
465
  function detectModuloStart(scnr) {
463
466
  const spaces = peekSpaces(scnr);
464
- const ret = scnr.currentPeek() === "%" /* Modulo */ &&
465
- scnr.peek() === "{" /* BraceLeft */;
467
+ const ret = scnr.currentPeek() === "%" /* TokenChars.Modulo */ &&
468
+ scnr.peek() === "{" /* TokenChars.BraceLeft */;
466
469
  scnr.resetPeek();
467
470
  return {
468
471
  isModulo: ret,
@@ -472,18 +475,18 @@ function createTokenizer(source, options = {}) {
472
475
  function isTextStart(scnr, reset = true) {
473
476
  const fn = (hasSpace = false, prev = '', detectModulo = false) => {
474
477
  const ch = scnr.currentPeek();
475
- if (ch === "{" /* BraceLeft */) {
476
- return prev === "%" /* Modulo */ ? false : hasSpace;
478
+ if (ch === "{" /* TokenChars.BraceLeft */) {
479
+ return prev === "%" /* TokenChars.Modulo */ ? false : hasSpace;
477
480
  }
478
- else if (ch === "@" /* LinkedAlias */ || !ch) {
479
- return prev === "%" /* Modulo */ ? true : hasSpace;
481
+ else if (ch === "@" /* TokenChars.LinkedAlias */ || !ch) {
482
+ return prev === "%" /* TokenChars.Modulo */ ? true : hasSpace;
480
483
  }
481
- else if (ch === "%" /* Modulo */) {
484
+ else if (ch === "%" /* TokenChars.Modulo */) {
482
485
  scnr.peek();
483
- return fn(hasSpace, "%" /* Modulo */, true);
486
+ return fn(hasSpace, "%" /* TokenChars.Modulo */, true);
484
487
  }
485
- else if (ch === "|" /* Pipe */) {
486
- return prev === "%" /* Modulo */ || detectModulo
488
+ else if (ch === "|" /* TokenChars.Pipe */) {
489
+ return prev === "%" /* TokenChars.Modulo */ || detectModulo
487
490
  ? true
488
491
  : !(prev === CHAR_SP || prev === CHAR_LF);
489
492
  }
@@ -553,24 +556,24 @@ function createTokenizer(source, options = {}) {
553
556
  function readModulo(scnr) {
554
557
  skipSpaces(scnr);
555
558
  const ch = scnr.currentChar();
556
- if (ch !== "%" /* Modulo */) {
559
+ if (ch !== "%" /* TokenChars.Modulo */) {
557
560
  emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);
558
561
  }
559
562
  scnr.next();
560
- return "%" /* Modulo */;
563
+ return "%" /* TokenChars.Modulo */;
561
564
  }
562
565
  function readText(scnr) {
563
566
  let buf = '';
564
567
  while (true) {
565
568
  const ch = scnr.currentChar();
566
- if (ch === "{" /* BraceLeft */ ||
567
- ch === "}" /* BraceRight */ ||
568
- ch === "@" /* LinkedAlias */ ||
569
- ch === "|" /* Pipe */ ||
569
+ if (ch === "{" /* TokenChars.BraceLeft */ ||
570
+ ch === "}" /* TokenChars.BraceRight */ ||
571
+ ch === "@" /* TokenChars.LinkedAlias */ ||
572
+ ch === "|" /* TokenChars.Pipe */ ||
570
573
  !ch) {
571
574
  break;
572
575
  }
573
- else if (ch === "%" /* Modulo */) {
576
+ else if (ch === "%" /* TokenChars.Modulo */) {
574
577
  if (isTextStart(scnr)) {
575
578
  buf += ch;
576
579
  scnr.next();
@@ -686,8 +689,8 @@ function createTokenizer(source, options = {}) {
686
689
  skipSpaces(scnr);
687
690
  let ch = '';
688
691
  let identifiers = '';
689
- const closure = (ch) => ch !== "{" /* BraceLeft */ &&
690
- ch !== "}" /* BraceRight */ &&
692
+ const closure = (ch) => ch !== "{" /* TokenChars.BraceLeft */ &&
693
+ ch !== "}" /* TokenChars.BraceRight */ &&
691
694
  ch !== CHAR_SP &&
692
695
  ch !== CHAR_LF;
693
696
  while ((ch = takeChar(scnr, closure))) {
@@ -706,10 +709,10 @@ function createTokenizer(source, options = {}) {
706
709
  function readLinkedRefer(scnr) {
707
710
  const fn = (detect = false, buf) => {
708
711
  const ch = scnr.currentChar();
709
- if (ch === "{" /* BraceLeft */ ||
710
- ch === "%" /* Modulo */ ||
711
- ch === "@" /* LinkedAlias */ ||
712
- ch === "|" /* Pipe */ ||
712
+ if (ch === "{" /* TokenChars.BraceLeft */ ||
713
+ ch === "%" /* TokenChars.Modulo */ ||
714
+ ch === "@" /* TokenChars.LinkedAlias */ ||
715
+ ch === "|" /* TokenChars.Pipe */ ||
713
716
  !ch) {
714
717
  return buf;
715
718
  }
@@ -731,7 +734,7 @@ function createTokenizer(source, options = {}) {
731
734
  }
732
735
  function readPlural(scnr) {
733
736
  skipSpaces(scnr);
734
- const plural = eat(scnr, "|" /* Pipe */);
737
+ const plural = eat(scnr, "|" /* TokenChars.Pipe */);
735
738
  skipSpaces(scnr);
736
739
  return plural;
737
740
  }
@@ -740,29 +743,29 @@ function createTokenizer(source, options = {}) {
740
743
  let token = null;
741
744
  const ch = scnr.currentChar();
742
745
  switch (ch) {
743
- case "{" /* BraceLeft */:
746
+ case "{" /* TokenChars.BraceLeft */:
744
747
  if (context.braceNest >= 1) {
745
748
  emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0);
746
749
  }
747
750
  scnr.next();
748
- token = getToken(context, 2 /* BraceLeft */, "{" /* BraceLeft */);
751
+ token = getToken(context, 2 /* TokenTypes.BraceLeft */, "{" /* TokenChars.BraceLeft */);
749
752
  skipSpaces(scnr);
750
753
  context.braceNest++;
751
754
  return token;
752
- case "}" /* BraceRight */:
755
+ case "}" /* TokenChars.BraceRight */:
753
756
  if (context.braceNest > 0 &&
754
- context.currentType === 2 /* BraceLeft */) {
757
+ context.currentType === 2 /* TokenTypes.BraceLeft */) {
755
758
  emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0);
756
759
  }
757
760
  scnr.next();
758
- token = getToken(context, 3 /* BraceRight */, "}" /* BraceRight */);
761
+ token = getToken(context, 3 /* TokenTypes.BraceRight */, "}" /* TokenChars.BraceRight */);
759
762
  context.braceNest--;
760
763
  context.braceNest > 0 && skipSpaces(scnr);
761
764
  if (context.inLinked && context.braceNest === 0) {
762
765
  context.inLinked = false;
763
766
  }
764
767
  return token;
765
- case "@" /* LinkedAlias */:
768
+ case "@" /* TokenChars.LinkedAlias */:
766
769
  if (context.braceNest > 0) {
767
770
  emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);
768
771
  }
@@ -777,38 +780,38 @@ function createTokenizer(source, options = {}) {
777
780
  if (context.braceNest > 0) {
778
781
  emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);
779
782
  }
780
- token = getToken(context, 1 /* Pipe */, readPlural(scnr));
783
+ token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));
781
784
  // reset
782
785
  context.braceNest = 0;
783
786
  context.inLinked = false;
784
787
  return token;
785
788
  }
786
789
  if (context.braceNest > 0 &&
787
- (context.currentType === 5 /* Named */ ||
788
- context.currentType === 6 /* List */ ||
789
- context.currentType === 7 /* Literal */)) {
790
+ (context.currentType === 5 /* TokenTypes.Named */ ||
791
+ context.currentType === 6 /* TokenTypes.List */ ||
792
+ context.currentType === 7 /* TokenTypes.Literal */)) {
790
793
  emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);
791
794
  context.braceNest = 0;
792
795
  return readToken(scnr, context);
793
796
  }
794
797
  if ((validNamedIdentifier = isNamedIdentifierStart(scnr, context))) {
795
- token = getToken(context, 5 /* Named */, readNamedIdentifier(scnr));
798
+ token = getToken(context, 5 /* TokenTypes.Named */, readNamedIdentifier(scnr));
796
799
  skipSpaces(scnr);
797
800
  return token;
798
801
  }
799
802
  if ((validListIdentifier = isListIdentifierStart(scnr, context))) {
800
- token = getToken(context, 6 /* List */, readListIdentifier(scnr));
803
+ token = getToken(context, 6 /* TokenTypes.List */, readListIdentifier(scnr));
801
804
  skipSpaces(scnr);
802
805
  return token;
803
806
  }
804
807
  if ((validLiteral = isLiteralStart(scnr, context))) {
805
- token = getToken(context, 7 /* Literal */, readLiteral(scnr));
808
+ token = getToken(context, 7 /* TokenTypes.Literal */, readLiteral(scnr));
806
809
  skipSpaces(scnr);
807
810
  return token;
808
811
  }
809
812
  if (!validNamedIdentifier && !validListIdentifier && !validLiteral) {
810
813
  // TODO: we should be re-designed invalid cases, when we will extend message syntax near the future ...
811
- token = getToken(context, 13 /* InvalidPlace */, readInvalidIdentifier(scnr));
814
+ token = getToken(context, 13 /* TokenTypes.InvalidPlace */, readInvalidIdentifier(scnr));
812
815
  emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value);
813
816
  skipSpaces(scnr);
814
817
  return token;
@@ -822,30 +825,30 @@ function createTokenizer(source, options = {}) {
822
825
  const { currentType } = context;
823
826
  let token = null;
824
827
  const ch = scnr.currentChar();
825
- if ((currentType === 8 /* LinkedAlias */ ||
826
- currentType === 9 /* LinkedDot */ ||
827
- currentType === 12 /* LinkedModifier */ ||
828
- currentType === 10 /* LinkedDelimiter */) &&
828
+ if ((currentType === 8 /* TokenTypes.LinkedAlias */ ||
829
+ currentType === 9 /* TokenTypes.LinkedDot */ ||
830
+ currentType === 12 /* TokenTypes.LinkedModifier */ ||
831
+ currentType === 10 /* TokenTypes.LinkedDelimiter */) &&
829
832
  (ch === CHAR_LF || ch === CHAR_SP)) {
830
833
  emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);
831
834
  }
832
835
  switch (ch) {
833
- case "@" /* LinkedAlias */:
836
+ case "@" /* TokenChars.LinkedAlias */:
834
837
  scnr.next();
835
- token = getToken(context, 8 /* LinkedAlias */, "@" /* LinkedAlias */);
838
+ token = getToken(context, 8 /* TokenTypes.LinkedAlias */, "@" /* TokenChars.LinkedAlias */);
836
839
  context.inLinked = true;
837
840
  return token;
838
- case "." /* LinkedDot */:
841
+ case "." /* TokenChars.LinkedDot */:
839
842
  skipSpaces(scnr);
840
843
  scnr.next();
841
- return getToken(context, 9 /* LinkedDot */, "." /* LinkedDot */);
842
- case ":" /* LinkedDelimiter */:
844
+ return getToken(context, 9 /* TokenTypes.LinkedDot */, "." /* TokenChars.LinkedDot */);
845
+ case ":" /* TokenChars.LinkedDelimiter */:
843
846
  skipSpaces(scnr);
844
847
  scnr.next();
845
- return getToken(context, 10 /* LinkedDelimiter */, ":" /* LinkedDelimiter */);
848
+ return getToken(context, 10 /* TokenTypes.LinkedDelimiter */, ":" /* TokenChars.LinkedDelimiter */);
846
849
  default:
847
850
  if (isPluralStart(scnr)) {
848
- token = getToken(context, 1 /* Pipe */, readPlural(scnr));
851
+ token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));
849
852
  // reset
850
853
  context.braceNest = 0;
851
854
  context.inLinked = false;
@@ -858,19 +861,19 @@ function createTokenizer(source, options = {}) {
858
861
  }
859
862
  if (isLinkedModifierStart(scnr, context)) {
860
863
  skipSpaces(scnr);
861
- return getToken(context, 12 /* LinkedModifier */, readLinkedModifier(scnr));
864
+ return getToken(context, 12 /* TokenTypes.LinkedModifier */, readLinkedModifier(scnr));
862
865
  }
863
866
  if (isLinkedReferStart(scnr, context)) {
864
867
  skipSpaces(scnr);
865
- if (ch === "{" /* BraceLeft */) {
868
+ if (ch === "{" /* TokenChars.BraceLeft */) {
866
869
  // scan the placeholder
867
870
  return readTokenInPlaceholder(scnr, context) || token;
868
871
  }
869
872
  else {
870
- return getToken(context, 11 /* LinkedKey */, readLinkedRefer(scnr));
873
+ return getToken(context, 11 /* TokenTypes.LinkedKey */, readLinkedRefer(scnr));
871
874
  }
872
875
  }
873
- if (currentType === 8 /* LinkedAlias */) {
876
+ if (currentType === 8 /* TokenTypes.LinkedAlias */) {
874
877
  emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);
875
878
  }
876
879
  context.braceNest = 0;
@@ -880,7 +883,7 @@ function createTokenizer(source, options = {}) {
880
883
  }
881
884
  // TODO: We need refactoring of token parsing ...
882
885
  function readToken(scnr, context) {
883
- let token = { type: 14 /* EOF */ };
886
+ let token = { type: 14 /* TokenTypes.EOF */ };
884
887
  if (context.braceNest > 0) {
885
888
  return readTokenInPlaceholder(scnr, context) || getEndToken(context);
886
889
  }
@@ -889,17 +892,17 @@ function createTokenizer(source, options = {}) {
889
892
  }
890
893
  const ch = scnr.currentChar();
891
894
  switch (ch) {
892
- case "{" /* BraceLeft */:
895
+ case "{" /* TokenChars.BraceLeft */:
893
896
  return readTokenInPlaceholder(scnr, context) || getEndToken(context);
894
- case "}" /* BraceRight */:
897
+ case "}" /* TokenChars.BraceRight */:
895
898
  emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0);
896
899
  scnr.next();
897
- return getToken(context, 3 /* BraceRight */, "}" /* BraceRight */);
898
- case "@" /* LinkedAlias */:
900
+ return getToken(context, 3 /* TokenTypes.BraceRight */, "}" /* TokenChars.BraceRight */);
901
+ case "@" /* TokenChars.LinkedAlias */:
899
902
  return readTokenInLinked(scnr, context) || getEndToken(context);
900
903
  default:
901
904
  if (isPluralStart(scnr)) {
902
- token = getToken(context, 1 /* Pipe */, readPlural(scnr));
905
+ token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));
903
906
  // reset
904
907
  context.braceNest = 0;
905
908
  context.inLinked = false;
@@ -908,11 +911,11 @@ function createTokenizer(source, options = {}) {
908
911
  const { isModulo, hasSpace } = detectModuloStart(scnr);
909
912
  if (isModulo) {
910
913
  return hasSpace
911
- ? getToken(context, 0 /* Text */, readText(scnr))
912
- : getToken(context, 4 /* Modulo */, readModulo(scnr));
914
+ ? getToken(context, 0 /* TokenTypes.Text */, readText(scnr))
915
+ : getToken(context, 4 /* TokenTypes.Modulo */, readModulo(scnr));
913
916
  }
914
917
  if (isTextStart(scnr)) {
915
- return getToken(context, 0 /* Text */, readText(scnr));
918
+ return getToken(context, 0 /* TokenTypes.Text */, readText(scnr));
916
919
  }
917
920
  break;
918
921
  }
@@ -927,7 +930,7 @@ function createTokenizer(source, options = {}) {
927
930
  _context.offset = currentOffset();
928
931
  _context.startLoc = currentPosition();
929
932
  if (_scnr.currentChar() === EOF) {
930
- return getToken(_context, 14 /* EOF */);
933
+ return getToken(_context, 14 /* TokenTypes.EOF */);
931
934
  }
932
935
  return readToken(_scnr, _context);
933
936
  }
@@ -997,7 +1000,7 @@ function createParser(options = {}) {
997
1000
  }
998
1001
  function parseText(tokenizer, value) {
999
1002
  const context = tokenizer.context();
1000
- const node = startNode(3 /* Text */, context.offset, context.startLoc);
1003
+ const node = startNode(3 /* NodeTypes.Text */, context.offset, context.startLoc);
1001
1004
  node.value = value;
1002
1005
  endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
1003
1006
  return node;
@@ -1005,7 +1008,7 @@ function createParser(options = {}) {
1005
1008
  function parseList(tokenizer, index) {
1006
1009
  const context = tokenizer.context();
1007
1010
  const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc
1008
- const node = startNode(5 /* List */, offset, loc);
1011
+ const node = startNode(5 /* NodeTypes.List */, offset, loc);
1009
1012
  node.index = parseInt(index, 10);
1010
1013
  tokenizer.nextToken(); // skip brach right
1011
1014
  endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
@@ -1014,7 +1017,7 @@ function createParser(options = {}) {
1014
1017
  function parseNamed(tokenizer, key) {
1015
1018
  const context = tokenizer.context();
1016
1019
  const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc
1017
- const node = startNode(4 /* Named */, offset, loc);
1020
+ const node = startNode(4 /* NodeTypes.Named */, offset, loc);
1018
1021
  node.key = key;
1019
1022
  tokenizer.nextToken(); // skip brach right
1020
1023
  endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
@@ -1023,7 +1026,7 @@ function createParser(options = {}) {
1023
1026
  function parseLiteral(tokenizer, value) {
1024
1027
  const context = tokenizer.context();
1025
1028
  const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc
1026
- const node = startNode(9 /* Literal */, offset, loc);
1029
+ const node = startNode(9 /* NodeTypes.Literal */, offset, loc);
1027
1030
  node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence);
1028
1031
  tokenizer.nextToken(); // skip brach right
1029
1032
  endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
@@ -1033,8 +1036,8 @@ function createParser(options = {}) {
1033
1036
  const token = tokenizer.nextToken();
1034
1037
  const context = tokenizer.context();
1035
1038
  const { lastOffset: offset, lastStartLoc: loc } = context; // get linked dot loc
1036
- const node = startNode(8 /* LinkedModifier */, offset, loc);
1037
- if (token.type !== 12 /* LinkedModifier */) {
1039
+ const node = startNode(8 /* NodeTypes.LinkedModifier */, offset, loc);
1040
+ if (token.type !== 12 /* TokenTypes.LinkedModifier */) {
1038
1041
  // empty modifier
1039
1042
  emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0);
1040
1043
  node.value = '';
@@ -1056,49 +1059,49 @@ function createParser(options = {}) {
1056
1059
  }
1057
1060
  function parseLinkedKey(tokenizer, value) {
1058
1061
  const context = tokenizer.context();
1059
- const node = startNode(7 /* LinkedKey */, context.offset, context.startLoc);
1062
+ const node = startNode(7 /* NodeTypes.LinkedKey */, context.offset, context.startLoc);
1060
1063
  node.value = value;
1061
1064
  endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
1062
1065
  return node;
1063
1066
  }
1064
1067
  function parseLinked(tokenizer) {
1065
1068
  const context = tokenizer.context();
1066
- const linkedNode = startNode(6 /* Linked */, context.offset, context.startLoc);
1069
+ const linkedNode = startNode(6 /* NodeTypes.Linked */, context.offset, context.startLoc);
1067
1070
  let token = tokenizer.nextToken();
1068
- if (token.type === 9 /* LinkedDot */) {
1071
+ if (token.type === 9 /* TokenTypes.LinkedDot */) {
1069
1072
  const parsed = parseLinkedModifier(tokenizer);
1070
1073
  linkedNode.modifier = parsed.node;
1071
1074
  token = parsed.nextConsumeToken || tokenizer.nextToken();
1072
1075
  }
1073
1076
  // asset check token
1074
- if (token.type !== 10 /* LinkedDelimiter */) {
1077
+ if (token.type !== 10 /* TokenTypes.LinkedDelimiter */) {
1075
1078
  emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
1076
1079
  }
1077
1080
  token = tokenizer.nextToken();
1078
1081
  // skip brace left
1079
- if (token.type === 2 /* BraceLeft */) {
1082
+ if (token.type === 2 /* TokenTypes.BraceLeft */) {
1080
1083
  token = tokenizer.nextToken();
1081
1084
  }
1082
1085
  switch (token.type) {
1083
- case 11 /* LinkedKey */:
1086
+ case 11 /* TokenTypes.LinkedKey */:
1084
1087
  if (token.value == null) {
1085
1088
  emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
1086
1089
  }
1087
1090
  linkedNode.key = parseLinkedKey(tokenizer, token.value || '');
1088
1091
  break;
1089
- case 5 /* Named */:
1092
+ case 5 /* TokenTypes.Named */:
1090
1093
  if (token.value == null) {
1091
1094
  emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
1092
1095
  }
1093
1096
  linkedNode.key = parseNamed(tokenizer, token.value || '');
1094
1097
  break;
1095
- case 6 /* List */:
1098
+ case 6 /* TokenTypes.List */:
1096
1099
  if (token.value == null) {
1097
1100
  emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
1098
1101
  }
1099
1102
  linkedNode.key = parseList(tokenizer, token.value || '');
1100
1103
  break;
1101
- case 7 /* Literal */:
1104
+ case 7 /* TokenTypes.Literal */:
1102
1105
  if (token.value == null) {
1103
1106
  emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
1104
1107
  }
@@ -1108,7 +1111,7 @@ function createParser(options = {}) {
1108
1111
  // empty key
1109
1112
  emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0);
1110
1113
  const nextContext = tokenizer.context();
1111
- const emptyLinkedKeyNode = startNode(7 /* LinkedKey */, nextContext.offset, nextContext.startLoc);
1114
+ const emptyLinkedKeyNode = startNode(7 /* NodeTypes.LinkedKey */, nextContext.offset, nextContext.startLoc);
1112
1115
  emptyLinkedKeyNode.value = '';
1113
1116
  endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc);
1114
1117
  linkedNode.key = emptyLinkedKeyNode;
@@ -1125,56 +1128,56 @@ function createParser(options = {}) {
1125
1128
  }
1126
1129
  function parseMessage(tokenizer) {
1127
1130
  const context = tokenizer.context();
1128
- const startOffset = context.currentType === 1 /* Pipe */
1131
+ const startOffset = context.currentType === 1 /* TokenTypes.Pipe */
1129
1132
  ? tokenizer.currentOffset()
1130
1133
  : context.offset;
1131
- const startLoc = context.currentType === 1 /* Pipe */
1134
+ const startLoc = context.currentType === 1 /* TokenTypes.Pipe */
1132
1135
  ? context.endLoc
1133
1136
  : context.startLoc;
1134
- const node = startNode(2 /* Message */, startOffset, startLoc);
1137
+ const node = startNode(2 /* NodeTypes.Message */, startOffset, startLoc);
1135
1138
  node.items = [];
1136
1139
  let nextToken = null;
1137
1140
  do {
1138
1141
  const token = nextToken || tokenizer.nextToken();
1139
1142
  nextToken = null;
1140
1143
  switch (token.type) {
1141
- case 0 /* Text */:
1144
+ case 0 /* TokenTypes.Text */:
1142
1145
  if (token.value == null) {
1143
1146
  emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
1144
1147
  }
1145
1148
  node.items.push(parseText(tokenizer, token.value || ''));
1146
1149
  break;
1147
- case 6 /* List */:
1150
+ case 6 /* TokenTypes.List */:
1148
1151
  if (token.value == null) {
1149
1152
  emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
1150
1153
  }
1151
1154
  node.items.push(parseList(tokenizer, token.value || ''));
1152
1155
  break;
1153
- case 5 /* Named */:
1156
+ case 5 /* TokenTypes.Named */:
1154
1157
  if (token.value == null) {
1155
1158
  emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
1156
1159
  }
1157
1160
  node.items.push(parseNamed(tokenizer, token.value || ''));
1158
1161
  break;
1159
- case 7 /* Literal */:
1162
+ case 7 /* TokenTypes.Literal */:
1160
1163
  if (token.value == null) {
1161
1164
  emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
1162
1165
  }
1163
1166
  node.items.push(parseLiteral(tokenizer, token.value || ''));
1164
1167
  break;
1165
- case 8 /* LinkedAlias */:
1168
+ case 8 /* TokenTypes.LinkedAlias */:
1166
1169
  const parsed = parseLinked(tokenizer);
1167
1170
  node.items.push(parsed.node);
1168
1171
  nextToken = parsed.nextConsumeToken || null;
1169
1172
  break;
1170
1173
  }
1171
- } while (context.currentType !== 14 /* EOF */ &&
1172
- context.currentType !== 1 /* Pipe */);
1174
+ } while (context.currentType !== 14 /* TokenTypes.EOF */ &&
1175
+ context.currentType !== 1 /* TokenTypes.Pipe */);
1173
1176
  // adjust message node loc
1174
- const endOffset = context.currentType === 1 /* Pipe */
1177
+ const endOffset = context.currentType === 1 /* TokenTypes.Pipe */
1175
1178
  ? context.lastOffset
1176
1179
  : tokenizer.currentOffset();
1177
- const endLoc = context.currentType === 1 /* Pipe */
1180
+ const endLoc = context.currentType === 1 /* TokenTypes.Pipe */
1178
1181
  ? context.lastEndLoc
1179
1182
  : tokenizer.currentPosition();
1180
1183
  endNode(node, endOffset, endLoc);
@@ -1183,7 +1186,7 @@ function createParser(options = {}) {
1183
1186
  function parsePlural(tokenizer, offset, loc, msgNode) {
1184
1187
  const context = tokenizer.context();
1185
1188
  let hasEmptyMessage = msgNode.items.length === 0;
1186
- const node = startNode(1 /* Plural */, offset, loc);
1189
+ const node = startNode(1 /* NodeTypes.Plural */, offset, loc);
1187
1190
  node.cases = [];
1188
1191
  node.cases.push(msgNode);
1189
1192
  do {
@@ -1192,7 +1195,7 @@ function createParser(options = {}) {
1192
1195
  hasEmptyMessage = msg.items.length === 0;
1193
1196
  }
1194
1197
  node.cases.push(msg);
1195
- } while (context.currentType !== 14 /* EOF */);
1198
+ } while (context.currentType !== 14 /* TokenTypes.EOF */);
1196
1199
  if (hasEmptyMessage) {
1197
1200
  emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0);
1198
1201
  }
@@ -1203,7 +1206,7 @@ function createParser(options = {}) {
1203
1206
  const context = tokenizer.context();
1204
1207
  const { offset, startLoc } = context;
1205
1208
  const msgNode = parseMessage(tokenizer);
1206
- if (context.currentType === 14 /* EOF */) {
1209
+ if (context.currentType === 14 /* TokenTypes.EOF */) {
1207
1210
  return msgNode;
1208
1211
  }
1209
1212
  else {
@@ -1213,13 +1216,13 @@ function createParser(options = {}) {
1213
1216
  function parse(source) {
1214
1217
  const tokenizer = createTokenizer(source, assign({}, options));
1215
1218
  const context = tokenizer.context();
1216
- const node = startNode(0 /* Resource */, context.offset, context.startLoc);
1219
+ const node = startNode(0 /* NodeTypes.Resource */, context.offset, context.startLoc);
1217
1220
  if (location && node.loc) {
1218
1221
  node.loc.source = source;
1219
1222
  }
1220
1223
  node.body = parseResource(tokenizer);
1221
1224
  // assert whether achieved to EOF
1222
- if (context.currentType !== 14 /* EOF */) {
1225
+ if (context.currentType !== 14 /* TokenTypes.EOF */) {
1223
1226
  emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || '');
1224
1227
  }
1225
1228
  endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
@@ -1228,7 +1231,7 @@ function createParser(options = {}) {
1228
1231
  return { parse };
1229
1232
  }
1230
1233
  function getTokenCaption(token) {
1231
- if (token.type === 14 /* EOF */) {
1234
+ if (token.type === 14 /* TokenTypes.EOF */) {
1232
1235
  return 'EOF';
1233
1236
  }
1234
1237
  const name = (token.value || '').replace(/\r?\n/gu, '\\n');
@@ -1256,26 +1259,26 @@ function traverseNodes(nodes, transformer) {
1256
1259
  function traverseNode(node, transformer) {
1257
1260
  // TODO: if we need pre-hook of transform, should be implemented to here
1258
1261
  switch (node.type) {
1259
- case 1 /* Plural */:
1262
+ case 1 /* NodeTypes.Plural */:
1260
1263
  traverseNodes(node.cases, transformer);
1261
- transformer.helper("plural" /* PLURAL */);
1264
+ transformer.helper("plural" /* HelperNameMap.PLURAL */);
1262
1265
  break;
1263
- case 2 /* Message */:
1266
+ case 2 /* NodeTypes.Message */:
1264
1267
  traverseNodes(node.items, transformer);
1265
1268
  break;
1266
- case 6 /* Linked */:
1269
+ case 6 /* NodeTypes.Linked */:
1267
1270
  const linked = node;
1268
1271
  traverseNode(linked.key, transformer);
1269
- transformer.helper("linked" /* LINKED */);
1270
- transformer.helper("type" /* TYPE */);
1272
+ transformer.helper("linked" /* HelperNameMap.LINKED */);
1273
+ transformer.helper("type" /* HelperNameMap.TYPE */);
1271
1274
  break;
1272
- case 5 /* List */:
1273
- transformer.helper("interpolate" /* INTERPOLATE */);
1274
- transformer.helper("list" /* LIST */);
1275
+ case 5 /* NodeTypes.List */:
1276
+ transformer.helper("interpolate" /* HelperNameMap.INTERPOLATE */);
1277
+ transformer.helper("list" /* HelperNameMap.LIST */);
1275
1278
  break;
1276
- case 4 /* Named */:
1277
- transformer.helper("interpolate" /* INTERPOLATE */);
1278
- transformer.helper("named" /* NAMED */);
1279
+ case 4 /* NodeTypes.Named */:
1280
+ transformer.helper("interpolate" /* HelperNameMap.INTERPOLATE */);
1281
+ transformer.helper("named" /* HelperNameMap.NAMED */);
1279
1282
  break;
1280
1283
  }
1281
1284
  // TODO: if we need post-hook of transform, should be implemented to here
@@ -1284,7 +1287,7 @@ function traverseNode(node, transformer) {
1284
1287
  function transform(ast, options = {} // eslint-disable-line
1285
1288
  ) {
1286
1289
  const transformer = createTransformer(ast);
1287
- transformer.helper("normalize" /* NORMALIZE */);
1290
+ transformer.helper("normalize" /* HelperNameMap.NORMALIZE */);
1288
1291
  // traverse
1289
1292
  ast.body && traverseNode(ast.body, transformer);
1290
1293
  // set meta information
@@ -1339,7 +1342,7 @@ function createCodeGenerator(ast, options) {
1339
1342
  }
1340
1343
  function generateLinkedNode(generator, node) {
1341
1344
  const { helper } = generator;
1342
- generator.push(`${helper("linked" /* LINKED */)}(`);
1345
+ generator.push(`${helper("linked" /* HelperNameMap.LINKED */)}(`);
1343
1346
  generateNode(generator, node.key);
1344
1347
  if (node.modifier) {
1345
1348
  generator.push(`, `);
@@ -1353,7 +1356,7 @@ function generateLinkedNode(generator, node) {
1353
1356
  }
1354
1357
  function generateMessageNode(generator, node) {
1355
1358
  const { helper, needIndent } = generator;
1356
- generator.push(`${helper("normalize" /* NORMALIZE */)}([`);
1359
+ generator.push(`${helper("normalize" /* HelperNameMap.NORMALIZE */)}([`);
1357
1360
  generator.indent(needIndent());
1358
1361
  const length = node.items.length;
1359
1362
  for (let i = 0; i < length; i++) {
@@ -1369,7 +1372,7 @@ function generateMessageNode(generator, node) {
1369
1372
  function generatePluralNode(generator, node) {
1370
1373
  const { helper, needIndent } = generator;
1371
1374
  if (node.cases.length > 1) {
1372
- generator.push(`${helper("plural" /* PLURAL */)}([`);
1375
+ generator.push(`${helper("plural" /* HelperNameMap.PLURAL */)}([`);
1373
1376
  generator.indent(needIndent());
1374
1377
  const length = node.cases.length;
1375
1378
  for (let i = 0; i < length; i++) {
@@ -1394,34 +1397,34 @@ function generateResource(generator, node) {
1394
1397
  function generateNode(generator, node) {
1395
1398
  const { helper } = generator;
1396
1399
  switch (node.type) {
1397
- case 0 /* Resource */:
1400
+ case 0 /* NodeTypes.Resource */:
1398
1401
  generateResource(generator, node);
1399
1402
  break;
1400
- case 1 /* Plural */:
1403
+ case 1 /* NodeTypes.Plural */:
1401
1404
  generatePluralNode(generator, node);
1402
1405
  break;
1403
- case 2 /* Message */:
1406
+ case 2 /* NodeTypes.Message */:
1404
1407
  generateMessageNode(generator, node);
1405
1408
  break;
1406
- case 6 /* Linked */:
1409
+ case 6 /* NodeTypes.Linked */:
1407
1410
  generateLinkedNode(generator, node);
1408
1411
  break;
1409
- case 8 /* LinkedModifier */:
1412
+ case 8 /* NodeTypes.LinkedModifier */:
1410
1413
  generator.push(JSON.stringify(node.value), node);
1411
1414
  break;
1412
- case 7 /* LinkedKey */:
1415
+ case 7 /* NodeTypes.LinkedKey */:
1413
1416
  generator.push(JSON.stringify(node.value), node);
1414
1417
  break;
1415
- case 5 /* List */:
1416
- generator.push(`${helper("interpolate" /* INTERPOLATE */)}(${helper("list" /* LIST */)}(${node.index}))`, node);
1418
+ case 5 /* NodeTypes.List */:
1419
+ generator.push(`${helper("interpolate" /* HelperNameMap.INTERPOLATE */)}(${helper("list" /* HelperNameMap.LIST */)}(${node.index}))`, node);
1417
1420
  break;
1418
- case 4 /* Named */:
1419
- generator.push(`${helper("interpolate" /* INTERPOLATE */)}(${helper("named" /* NAMED */)}(${JSON.stringify(node.key)}))`, node);
1421
+ case 4 /* NodeTypes.Named */:
1422
+ generator.push(`${helper("interpolate" /* HelperNameMap.INTERPOLATE */)}(${helper("named" /* HelperNameMap.NAMED */)}(${JSON.stringify(node.key)}))`, node);
1420
1423
  break;
1421
- case 9 /* Literal */:
1424
+ case 9 /* NodeTypes.Literal */:
1422
1425
  generator.push(JSON.stringify(node.value), node);
1423
1426
  break;
1424
- case 3 /* Text */:
1427
+ case 3 /* NodeTypes.Text */:
1425
1428
  generator.push(JSON.stringify(node.value), node);
1426
1429
  break;
1427
1430
  default:
@@ -1483,51 +1486,51 @@ function baseCompile(source, options = {}) {
1483
1486
  }
1484
1487
 
1485
1488
  const pathStateMachine = [];
1486
- pathStateMachine[0 /* BEFORE_PATH */] = {
1487
- ["w" /* WORKSPACE */]: [0 /* BEFORE_PATH */],
1488
- ["i" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],
1489
- ["[" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],
1490
- ["o" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]
1489
+ pathStateMachine[0 /* States.BEFORE_PATH */] = {
1490
+ ["w" /* PathCharTypes.WORKSPACE */]: [0 /* States.BEFORE_PATH */],
1491
+ ["i" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],
1492
+ ["[" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */],
1493
+ ["o" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */]
1491
1494
  };
1492
- pathStateMachine[1 /* IN_PATH */] = {
1493
- ["w" /* WORKSPACE */]: [1 /* IN_PATH */],
1494
- ["." /* DOT */]: [2 /* BEFORE_IDENT */],
1495
- ["[" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],
1496
- ["o" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]
1495
+ pathStateMachine[1 /* States.IN_PATH */] = {
1496
+ ["w" /* PathCharTypes.WORKSPACE */]: [1 /* States.IN_PATH */],
1497
+ ["." /* PathCharTypes.DOT */]: [2 /* States.BEFORE_IDENT */],
1498
+ ["[" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */],
1499
+ ["o" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */]
1497
1500
  };
1498
- pathStateMachine[2 /* BEFORE_IDENT */] = {
1499
- ["w" /* WORKSPACE */]: [2 /* BEFORE_IDENT */],
1500
- ["i" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],
1501
- ["0" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */]
1501
+ pathStateMachine[2 /* States.BEFORE_IDENT */] = {
1502
+ ["w" /* PathCharTypes.WORKSPACE */]: [2 /* States.BEFORE_IDENT */],
1503
+ ["i" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],
1504
+ ["0" /* PathCharTypes.ZERO */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */]
1502
1505
  };
1503
- pathStateMachine[3 /* IN_IDENT */] = {
1504
- ["i" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],
1505
- ["0" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */],
1506
- ["w" /* WORKSPACE */]: [1 /* IN_PATH */, 1 /* PUSH */],
1507
- ["." /* DOT */]: [2 /* BEFORE_IDENT */, 1 /* PUSH */],
1508
- ["[" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */, 1 /* PUSH */],
1509
- ["o" /* END_OF_FAIL */]: [7 /* AFTER_PATH */, 1 /* PUSH */]
1506
+ pathStateMachine[3 /* States.IN_IDENT */] = {
1507
+ ["i" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],
1508
+ ["0" /* PathCharTypes.ZERO */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],
1509
+ ["w" /* PathCharTypes.WORKSPACE */]: [1 /* States.IN_PATH */, 1 /* Actions.PUSH */],
1510
+ ["." /* PathCharTypes.DOT */]: [2 /* States.BEFORE_IDENT */, 1 /* Actions.PUSH */],
1511
+ ["[" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */, 1 /* Actions.PUSH */],
1512
+ ["o" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */, 1 /* Actions.PUSH */]
1510
1513
  };
1511
- pathStateMachine[4 /* IN_SUB_PATH */] = {
1512
- ["'" /* SINGLE_QUOTE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */],
1513
- ["\"" /* DOUBLE_QUOTE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */],
1514
- ["[" /* LEFT_BRACKET */]: [
1515
- 4 /* IN_SUB_PATH */,
1516
- 2 /* INC_SUB_PATH_DEPTH */
1514
+ pathStateMachine[4 /* States.IN_SUB_PATH */] = {
1515
+ ["'" /* PathCharTypes.SINGLE_QUOTE */]: [5 /* States.IN_SINGLE_QUOTE */, 0 /* Actions.APPEND */],
1516
+ ["\"" /* PathCharTypes.DOUBLE_QUOTE */]: [6 /* States.IN_DOUBLE_QUOTE */, 0 /* Actions.APPEND */],
1517
+ ["[" /* PathCharTypes.LEFT_BRACKET */]: [
1518
+ 4 /* States.IN_SUB_PATH */,
1519
+ 2 /* Actions.INC_SUB_PATH_DEPTH */
1517
1520
  ],
1518
- ["]" /* RIGHT_BRACKET */]: [1 /* IN_PATH */, 3 /* PUSH_SUB_PATH */],
1519
- ["o" /* END_OF_FAIL */]: 8 /* ERROR */,
1520
- ["l" /* ELSE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */]
1521
+ ["]" /* PathCharTypes.RIGHT_BRACKET */]: [1 /* States.IN_PATH */, 3 /* Actions.PUSH_SUB_PATH */],
1522
+ ["o" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */,
1523
+ ["l" /* PathCharTypes.ELSE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */]
1521
1524
  };
1522
- pathStateMachine[5 /* IN_SINGLE_QUOTE */] = {
1523
- ["'" /* SINGLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],
1524
- ["o" /* END_OF_FAIL */]: 8 /* ERROR */,
1525
- ["l" /* ELSE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */]
1525
+ pathStateMachine[5 /* States.IN_SINGLE_QUOTE */] = {
1526
+ ["'" /* PathCharTypes.SINGLE_QUOTE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */],
1527
+ ["o" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */,
1528
+ ["l" /* PathCharTypes.ELSE */]: [5 /* States.IN_SINGLE_QUOTE */, 0 /* Actions.APPEND */]
1526
1529
  };
1527
- pathStateMachine[6 /* IN_DOUBLE_QUOTE */] = {
1528
- ["\"" /* DOUBLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],
1529
- ["o" /* END_OF_FAIL */]: 8 /* ERROR */,
1530
- ["l" /* ELSE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */]
1530
+ pathStateMachine[6 /* States.IN_DOUBLE_QUOTE */] = {
1531
+ ["\"" /* PathCharTypes.DOUBLE_QUOTE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */],
1532
+ ["o" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */,
1533
+ ["l" /* PathCharTypes.ELSE */]: [6 /* States.IN_DOUBLE_QUOTE */, 0 /* Actions.APPEND */]
1531
1534
  };
1532
1535
  /**
1533
1536
  * Check if an expression is a literal value.
@@ -1549,7 +1552,7 @@ function stripQuotes(str) {
1549
1552
  */
1550
1553
  function getPathCharType(ch) {
1551
1554
  if (ch === undefined || ch === null) {
1552
- return "o" /* END_OF_FAIL */;
1555
+ return "o" /* PathCharTypes.END_OF_FAIL */;
1553
1556
  }
1554
1557
  const code = ch.charCodeAt(0);
1555
1558
  switch (code) {
@@ -1562,7 +1565,7 @@ function getPathCharType(ch) {
1562
1565
  case 0x5f: // _
1563
1566
  case 0x24: // $
1564
1567
  case 0x2d: // -
1565
- return "i" /* IDENT */;
1568
+ return "i" /* PathCharTypes.IDENT */;
1566
1569
  case 0x09: // Tab (HT)
1567
1570
  case 0x0a: // Newline (LF)
1568
1571
  case 0x0d: // Return (CR)
@@ -1570,9 +1573,9 @@ function getPathCharType(ch) {
1570
1573
  case 0xfeff: // Byte Order Mark (BOM)
1571
1574
  case 0x2028: // Line Separator (LS)
1572
1575
  case 0x2029: // Paragraph Separator (PS)
1573
- return "w" /* WORKSPACE */;
1576
+ return "w" /* PathCharTypes.WORKSPACE */;
1574
1577
  }
1575
- return "i" /* IDENT */;
1578
+ return "i" /* PathCharTypes.IDENT */;
1576
1579
  }
1577
1580
  /**
1578
1581
  * Format a subPath, return its plain form if it is
@@ -1587,7 +1590,7 @@ function formatSubPath(path) {
1587
1590
  }
1588
1591
  return isLiteral(trimmed)
1589
1592
  ? stripQuotes(trimmed)
1590
- : "*" /* ASTARISK */ + trimmed;
1593
+ : "*" /* PathCharTypes.ASTARISK */ + trimmed;
1591
1594
  }
1592
1595
  /**
1593
1596
  * Parse a string path into an array of segments
@@ -1595,7 +1598,7 @@ function formatSubPath(path) {
1595
1598
  function parse(path) {
1596
1599
  const keys = [];
1597
1600
  let index = -1;
1598
- let mode = 0 /* BEFORE_PATH */;
1601
+ let mode = 0 /* States.BEFORE_PATH */;
1599
1602
  let subPathDepth = 0;
1600
1603
  let c;
1601
1604
  let key; // eslint-disable-line
@@ -1605,7 +1608,7 @@ function parse(path) {
1605
1608
  let action;
1606
1609
  let typeMap;
1607
1610
  const actions = [];
1608
- actions[0 /* APPEND */] = () => {
1611
+ actions[0 /* Actions.APPEND */] = () => {
1609
1612
  if (key === undefined) {
1610
1613
  key = newChar;
1611
1614
  }
@@ -1613,21 +1616,21 @@ function parse(path) {
1613
1616
  key += newChar;
1614
1617
  }
1615
1618
  };
1616
- actions[1 /* PUSH */] = () => {
1619
+ actions[1 /* Actions.PUSH */] = () => {
1617
1620
  if (key !== undefined) {
1618
1621
  keys.push(key);
1619
1622
  key = undefined;
1620
1623
  }
1621
1624
  };
1622
- actions[2 /* INC_SUB_PATH_DEPTH */] = () => {
1623
- actions[0 /* APPEND */]();
1625
+ actions[2 /* Actions.INC_SUB_PATH_DEPTH */] = () => {
1626
+ actions[0 /* Actions.APPEND */]();
1624
1627
  subPathDepth++;
1625
1628
  };
1626
- actions[3 /* PUSH_SUB_PATH */] = () => {
1629
+ actions[3 /* Actions.PUSH_SUB_PATH */] = () => {
1627
1630
  if (subPathDepth > 0) {
1628
1631
  subPathDepth--;
1629
- mode = 4 /* IN_SUB_PATH */;
1630
- actions[0 /* APPEND */]();
1632
+ mode = 4 /* States.IN_SUB_PATH */;
1633
+ actions[0 /* Actions.APPEND */]();
1631
1634
  }
1632
1635
  else {
1633
1636
  subPathDepth = 0;
@@ -1639,19 +1642,19 @@ function parse(path) {
1639
1642
  return false;
1640
1643
  }
1641
1644
  else {
1642
- actions[1 /* PUSH */]();
1645
+ actions[1 /* Actions.PUSH */]();
1643
1646
  }
1644
1647
  }
1645
1648
  };
1646
1649
  function maybeUnescapeQuote() {
1647
1650
  const nextChar = path[index + 1];
1648
- if ((mode === 5 /* IN_SINGLE_QUOTE */ &&
1649
- nextChar === "'" /* SINGLE_QUOTE */) ||
1650
- (mode === 6 /* IN_DOUBLE_QUOTE */ &&
1651
- nextChar === "\"" /* DOUBLE_QUOTE */)) {
1651
+ if ((mode === 5 /* States.IN_SINGLE_QUOTE */ &&
1652
+ nextChar === "'" /* PathCharTypes.SINGLE_QUOTE */) ||
1653
+ (mode === 6 /* States.IN_DOUBLE_QUOTE */ &&
1654
+ nextChar === "\"" /* PathCharTypes.DOUBLE_QUOTE */)) {
1652
1655
  index++;
1653
1656
  newChar = '\\' + nextChar;
1654
- actions[0 /* APPEND */]();
1657
+ actions[0 /* Actions.APPEND */]();
1655
1658
  return true;
1656
1659
  }
1657
1660
  }
@@ -1663,9 +1666,9 @@ function parse(path) {
1663
1666
  }
1664
1667
  type = getPathCharType(c);
1665
1668
  typeMap = pathStateMachine[mode];
1666
- transition = typeMap[type] || typeMap["l" /* ELSE */] || 8 /* ERROR */;
1669
+ transition = typeMap[type] || typeMap["l" /* PathCharTypes.ELSE */] || 8 /* States.ERROR */;
1667
1670
  // check parse error
1668
- if (transition === 8 /* ERROR */) {
1671
+ if (transition === 8 /* States.ERROR */) {
1669
1672
  return;
1670
1673
  }
1671
1674
  mode = transition[0];
@@ -1679,7 +1682,7 @@ function parse(path) {
1679
1682
  }
1680
1683
  }
1681
1684
  // check parse finish
1682
- if (mode === 7 /* AFTER_PATH */) {
1685
+ if (mode === 7 /* States.AFTER_PATH */) {
1683
1686
  return keys;
1684
1687
  }
1685
1688
  }
@@ -1863,14 +1866,14 @@ function createMessageContext(options = {}) {
1863
1866
  return modifier ? _modifier(modifier)(msg, type) : msg;
1864
1867
  };
1865
1868
  const ctx = {
1866
- ["list" /* LIST */]: list,
1867
- ["named" /* NAMED */]: named,
1868
- ["plural" /* PLURAL */]: plural,
1869
- ["linked" /* LINKED */]: linked,
1870
- ["message" /* MESSAGE */]: message,
1871
- ["type" /* TYPE */]: type,
1872
- ["interpolate" /* INTERPOLATE */]: interpolate,
1873
- ["normalize" /* NORMALIZE */]: normalize
1869
+ ["list" /* HelperNameMap.LIST */]: list,
1870
+ ["named" /* HelperNameMap.NAMED */]: named,
1871
+ ["plural" /* HelperNameMap.PLURAL */]: plural,
1872
+ ["linked" /* HelperNameMap.LINKED */]: linked,
1873
+ ["message" /* HelperNameMap.MESSAGE */]: message,
1874
+ ["type" /* HelperNameMap.TYPE */]: type,
1875
+ ["interpolate" /* HelperNameMap.INTERPOLATE */]: interpolate,
1876
+ ["normalize" /* HelperNameMap.NORMALIZE */]: normalize
1874
1877
  };
1875
1878
  return ctx;
1876
1879
  }
@@ -2045,7 +2048,7 @@ function appendItemToChain(chain, target, blocks) {
2045
2048
  * Intlify core-base version
2046
2049
  * @internal
2047
2050
  */
2048
- const VERSION = '9.3.0-beta.10';
2051
+ const VERSION = '9.3.0-beta.11';
2049
2052
  const NOT_REOSLVED = -1;
2050
2053
  const DEFAULT_LOCALE = 'en-US';
2051
2054
  const MISSING_RESOLVE_VALUE = '';
@@ -2105,7 +2108,7 @@ function registerLocaleFallbacker(fallbacker) {
2105
2108
  _fallbacker = fallbacker;
2106
2109
  }
2107
2110
  // Additional Meta for Intlify DevTools
2108
- let _additionalMeta = null;
2111
+ let _additionalMeta = null;
2109
2112
  const setAdditionalMeta = (meta) => {
2110
2113
  _additionalMeta = meta;
2111
2114
  };
@@ -2240,7 +2243,7 @@ function handleMissing(context, key, locale, missingWarn, type) {
2240
2243
  {
2241
2244
  const emitter = context.__v_emitter;
2242
2245
  if (emitter) {
2243
- emitter.emit("missing" /* MISSING */, {
2246
+ emitter.emit("missing" /* VueDevToolsTimelineEvents.MISSING */, {
2244
2247
  locale,
2245
2248
  key,
2246
2249
  type,
@@ -2473,7 +2476,7 @@ function resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn
2473
2476
  if (locale !== targetLocale) {
2474
2477
  const emitter = context.__v_emitter;
2475
2478
  if (emitter) {
2476
- emitter.emit("fallback" /* FALBACK */, {
2479
+ emitter.emit("fallback" /* VueDevToolsTimelineEvents.FALBACK */, {
2477
2480
  type,
2478
2481
  key,
2479
2482
  from,
@@ -2503,8 +2506,8 @@ function resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn
2503
2506
  const end = window.performance.now();
2504
2507
  const emitter = context.__v_emitter;
2505
2508
  if (emitter && start && format) {
2506
- emitter.emit("message-resolve" /* MESSAGE_RESOLVE */, {
2507
- type: "message-resolve" /* MESSAGE_RESOLVE */,
2509
+ emitter.emit("message-resolve" /* VueDevToolsTimelineEvents.MESSAGE_RESOLVE */, {
2510
+ type: "message-resolve" /* VueDevToolsTimelineEvents.MESSAGE_RESOLVE */,
2508
2511
  key,
2509
2512
  message: format,
2510
2513
  time: end - start,
@@ -2557,8 +2560,8 @@ function compileMessageFormat(context, key, targetLocale, format, cacheBaseKey,
2557
2560
  const end = window.performance.now();
2558
2561
  const emitter = context.__v_emitter;
2559
2562
  if (emitter && start) {
2560
- emitter.emit("message-compilation" /* MESSAGE_COMPILATION */, {
2561
- type: "message-compilation" /* MESSAGE_COMPILATION */,
2563
+ emitter.emit("message-compilation" /* VueDevToolsTimelineEvents.MESSAGE_COMPILATION */, {
2564
+ type: "message-compilation" /* VueDevToolsTimelineEvents.MESSAGE_COMPILATION */,
2562
2565
  message: format,
2563
2566
  time: end - start,
2564
2567
  groupId: `${'translate'}:${key}`
@@ -2591,8 +2594,8 @@ function evaluateMessage(context, msg, msgCtx) {
2591
2594
  const end = window.performance.now();
2592
2595
  const emitter = context.__v_emitter;
2593
2596
  if (emitter && start) {
2594
- emitter.emit("message-evaluation" /* MESSAGE_EVALUATION */, {
2595
- type: "message-evaluation" /* MESSAGE_EVALUATION */,
2597
+ emitter.emit("message-evaluation" /* VueDevToolsTimelineEvents.MESSAGE_EVALUATION */, {
2598
+ type: "message-evaluation" /* VueDevToolsTimelineEvents.MESSAGE_EVALUATION */,
2596
2599
  value: messaged,
2597
2600
  time: end - start,
2598
2601
  groupId: `${'translate'}:${msg.key}`
@@ -2652,7 +2655,7 @@ function getCompileOptions(context, locale, key, source, warnHtmlMessage, errorD
2652
2655
  generateCodeFrame(source, err.location.start.offset, err.location.end.offset);
2653
2656
  const emitter = context.__v_emitter;
2654
2657
  if (emitter) {
2655
- emitter.emit("compile-error" /* COMPILE_ERROR */, {
2658
+ emitter.emit("compile-error" /* VueDevToolsTimelineEvents.COMPILE_ERROR */, {
2656
2659
  message: source,
2657
2660
  error: err.message,
2658
2661
  start: err.location && err.location.start.offset,
@@ -2762,7 +2765,7 @@ function datetime(context, ...args) {
2762
2765
  if (locale !== targetLocale) {
2763
2766
  const emitter = context.__v_emitter;
2764
2767
  if (emitter) {
2765
- emitter.emit("fallback" /* FALBACK */, {
2768
+ emitter.emit("fallback" /* VueDevToolsTimelineEvents.FALBACK */, {
2766
2769
  type,
2767
2770
  key,
2768
2771
  from,
@@ -2936,7 +2939,7 @@ function number(context, ...args) {
2936
2939
  if (locale !== targetLocale) {
2937
2940
  const emitter = context.__v_emitter;
2938
2941
  if (emitter) {
2939
- emitter.emit("fallback" /* FALBACK */, {
2942
+ emitter.emit("fallback" /* VueDevToolsTimelineEvents.FALBACK */, {
2940
2943
  type,
2941
2944
  key,
2942
2945
  from,