@intlify/core-base 9.4.0 → 9.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * core-base v9.4.0
2
+ * core-base v9.5.0
3
3
  * (c) 2023 kazuya kawaguchi
4
4
  * Released under the MIT License.
5
5
  */
@@ -449,6 +449,22 @@ function getWarnMessage(code, ...args) {
449
449
  return shared.format(warnMessages[code], ...args);
450
450
  }
451
451
 
452
+ /** @internal */
453
+ function getLocale(context, options) {
454
+ return options.locale != null
455
+ ? resolveLocale(options.locale)
456
+ : resolveLocale(context.locale);
457
+ }
458
+ let _resolveLocale;
459
+ /** @internal */
460
+ function resolveLocale(locale) {
461
+ // prettier-ignore
462
+ return shared.isString(locale)
463
+ ? locale
464
+ : _resolveLocale != null && locale.resolvedOnce
465
+ ? _resolveLocale
466
+ : (_resolveLocale = locale());
467
+ }
452
468
  /**
453
469
  * Fallback with simple implemenation
454
470
  *
@@ -570,7 +586,7 @@ function appendItemToChain(chain, target, blocks) {
570
586
  * Intlify core-base version
571
587
  * @internal
572
588
  */
573
- const VERSION = '9.4.0';
589
+ const VERSION = '9.5.0';
574
590
  const NOT_REOSLVED = -1;
575
591
  const DEFAULT_LOCALE = 'en-US';
576
592
  const MISSING_RESOLVE_VALUE = '';
@@ -646,23 +662,26 @@ function createCoreContext(options = {}) {
646
662
  // setup options
647
663
  const onWarn = shared.isFunction(options.onWarn) ? options.onWarn : shared.warn;
648
664
  const version = shared.isString(options.version) ? options.version : VERSION;
649
- const locale = shared.isString(options.locale) ? options.locale : DEFAULT_LOCALE;
665
+ const locale = shared.isString(options.locale) || shared.isFunction(options.locale)
666
+ ? options.locale
667
+ : DEFAULT_LOCALE;
668
+ const _locale = shared.isFunction(locale) ? DEFAULT_LOCALE : locale;
650
669
  const fallbackLocale = shared.isArray(options.fallbackLocale) ||
651
670
  shared.isPlainObject(options.fallbackLocale) ||
652
671
  shared.isString(options.fallbackLocale) ||
653
672
  options.fallbackLocale === false
654
673
  ? options.fallbackLocale
655
- : locale;
674
+ : _locale;
656
675
  const messages = shared.isPlainObject(options.messages)
657
676
  ? options.messages
658
- : { [locale]: {} };
677
+ : { [_locale]: {} };
659
678
  const datetimeFormats = shared.isPlainObject(options.datetimeFormats)
660
679
  ? options.datetimeFormats
661
- : { [locale]: {} }
680
+ : { [_locale]: {} }
662
681
  ;
663
682
  const numberFormats = shared.isPlainObject(options.numberFormats)
664
683
  ? options.numberFormats
665
- : { [locale]: {} }
684
+ : { [_locale]: {} }
666
685
  ;
667
686
  const modifiers = shared.assign({}, options.modifiers || {}, getDefaultLinkedModifiers());
668
687
  const pluralRules = options.pluralRules || {};
@@ -839,7 +858,7 @@ function formatMessagePart(ctx, node) {
839
858
  return ctx.interpolate(ctx.named(named.k || named.key));
840
859
  case 5 /* NodeTypes.List */:
841
860
  const list = node;
842
- return ctx.interpolate(ctx.list(list.i || list.index));
861
+ return ctx.interpolate(ctx.list(list.i != null ? list.i : list.index));
843
862
  case 6 /* NodeTypes.Linked */:
844
863
  const linked = node;
845
864
  const modifier = linked.m || linked.modifier;
@@ -1002,7 +1021,7 @@ function translate(context, ...args) {
1002
1021
  ? (!messageCompiler ? () => key : key)
1003
1022
  : '';
1004
1023
  const enableDefaultMsg = fallbackFormat || defaultMsgOrKey !== '';
1005
- const locale = shared.isString(options.locale) ? options.locale : context.locale;
1024
+ const locale = getLocale(context, options);
1006
1025
  // escape params
1007
1026
  escapeParameter && escapeParams(options);
1008
1027
  // resolve message format
@@ -1406,7 +1425,7 @@ function datetime(context, ...args) {
1406
1425
  ? options.fallbackWarn
1407
1426
  : context.fallbackWarn;
1408
1427
  const part = !!options.part;
1409
- const locale = shared.isString(options.locale) ? options.locale : context.locale;
1428
+ const locale = getLocale(context, options);
1410
1429
  const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any
1411
1430
  fallbackLocale, locale);
1412
1431
  if (!shared.isString(key) || key === '') {
@@ -1580,7 +1599,7 @@ function number(context, ...args) {
1580
1599
  ? options.fallbackWarn
1581
1600
  : context.fallbackWarn;
1582
1601
  const part = !!options.part;
1583
- const locale = shared.isString(options.locale) ? options.locale : context.locale;
1602
+ const locale = getLocale(context, options);
1584
1603
  const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any
1585
1604
  fallbackLocale, locale);
1586
1605
  if (!shared.isString(key) || key === '') {
@@ -1731,6 +1750,7 @@ exports.fallbackWithSimple = fallbackWithSimple;
1731
1750
  exports.getAdditionalMeta = getAdditionalMeta;
1732
1751
  exports.getDevToolsHook = getDevToolsHook;
1733
1752
  exports.getFallbackContext = getFallbackContext;
1753
+ exports.getLocale = getLocale;
1734
1754
  exports.getWarnMessage = getWarnMessage;
1735
1755
  exports.handleMissing = handleMissing;
1736
1756
  exports.initI18nDevTools = initI18nDevTools;
@@ -1746,6 +1766,7 @@ exports.parseTranslateArgs = parseTranslateArgs;
1746
1766
  exports.registerLocaleFallbacker = registerLocaleFallbacker;
1747
1767
  exports.registerMessageCompiler = registerMessageCompiler;
1748
1768
  exports.registerMessageResolver = registerMessageResolver;
1769
+ exports.resolveLocale = resolveLocale;
1749
1770
  exports.resolveValue = resolveValue;
1750
1771
  exports.resolveWithKeyValue = resolveWithKeyValue;
1751
1772
  exports.setAdditionalMeta = setAdditionalMeta;
@@ -2,17 +2,24 @@ import type { BaseError } from '@intlify/shared';
2
2
  import { CompileError } from '@intlify/message-compiler';
3
3
  import { CompileErrorCodes } from '@intlify/message-compiler';
4
4
  import type { CompileOptions } from '@intlify/message-compiler';
5
+ import type { CoreMissingType as CoreMissingType_2 } from '@intlify/core-base';
5
6
  import { createCompileError } from '@intlify/message-compiler';
6
- import type { IntlifyDevToolsEmitter } from '@intlify/devtools-if';
7
- import type { IntlifyDevToolsHookPayloads } from '@intlify/devtools-if';
8
- import { IntlifyDevToolsHooks } from '@intlify/devtools-if';
7
+ import type { Emittable } from '@intlify/shared';
8
+ import type { Locale as Locale_2 } from '@intlify/core-base';
9
+ import type { MessageFunction as MessageFunction_2 } from '@intlify/core-base';
10
+ import type { Path as Path_2 } from '@intlify/core-base';
11
+ import type { PathValue as PathValue_2 } from '@intlify/core-base';
9
12
  import { ResourceNode } from '@intlify/message-compiler';
10
- import type { VueDevToolsEmitter } from '@intlify/vue-devtools';
13
+ import type { ResourceNode as ResourceNode_2 } from '@intlify/core-base';
11
14
 
12
15
  declare type __ResourceFormatPath<T, Key extends keyof T> = Key extends string ? T[Key] extends Record<string, any> ? `${Key}` : never : never;
13
16
 
14
17
  export declare type __ResourcePath<T, Key extends keyof T> = Key extends string ? T[Key] extends Record<string, any> ? `${Key}.${__ResourcePath<T[Key], Exclude<keyof T[Key], keyof any[]>> & string}` | `${Key}.${Exclude<keyof T[Key], keyof any[]> & string}` : never : never;
15
18
 
19
+ declare type AdditionalPayloads = {
20
+ meta?: Record<string, unknown>;
21
+ };
22
+
16
23
  export declare function clearCompileCache(): void;
17
24
 
18
25
  /* Excluded from this release type: clearDateTimeFormat */
@@ -39,8 +46,8 @@ export declare interface CoreCommonContext<Message = string, Locales = 'en-US'>
39
46
  onWarn(msg: string, err?: Error): void;
40
47
  }
41
48
 
42
- export declare type CoreContext<Message = string, Messages = {}, DateTimeFormats = {}, NumberFormats = {}, ResourceLocales = PickupLocales<NonNullable<Messages>> | PickupLocales<NonNullable<DateTimeFormats>> | PickupLocales<NonNullable<NumberFormats>>, Locales = [ResourceLocales] extends [never] ? Locale : ResourceLocales> = CoreCommonContext<Message, Locales> & CoreTranslationContext<NonNullable<Messages>, Message> & CoreDateTimeContext<NonNullable<DateTimeFormats>> & CoreNumberContext<NonNullable<NumberFormats>> & {
43
- fallbackContext?: CoreContext<Message, Messages, DateTimeFormats, NumberFormats, ResourceLocales, Locales>;
49
+ export declare type CoreContext<Message = string, Messages = {}, DateTimeFormats = {}, NumberFormats = {}, LocaleType = Locale, ResourceLocales = PickupLocales<NonNullable<Messages>> | PickupLocales<NonNullable<DateTimeFormats>> | PickupLocales<NonNullable<NumberFormats>>, Locales = LocaleType extends LocaleDetector ? Locale : [ResourceLocales] extends [never] ? Locale : ResourceLocales> = CoreCommonContext<Message, Locales> & CoreTranslationContext<NonNullable<Messages>, Message> & CoreDateTimeContext<NonNullable<DateTimeFormats>> & CoreNumberContext<NonNullable<NumberFormats>> & {
50
+ fallbackContext?: CoreContext<Message, Messages, DateTimeFormats, NumberFormats, LocaleType, ResourceLocales, Locales>;
44
51
  };
45
52
 
46
53
  export declare interface CoreDateTimeContext<DateTimeFormats = {}> {
@@ -113,7 +120,7 @@ export declare interface CoreOptions<Message = string, Schema extends {
113
120
  number: infer N;
114
121
  } ? N : NumberFormat, _Messages extends LocaleMessages<MessageSchema, MessagesLocales, Message> = LocaleMessages<MessageSchema, MessagesLocales, Message>, _DateTimeFormats extends DateTimeFormats<DateTimeSchema, DateTimeFormatsLocales> = DateTimeFormats<DateTimeSchema, DateTimeFormatsLocales>, _NumberFormats extends NumberFormats<NumberSchema, NumberFormatsLocales> = NumberFormats<NumberSchema, NumberFormatsLocales>> {
115
122
  version?: string;
116
- locale?: Locale;
123
+ locale?: Locale | LocaleDetector;
117
124
  fallbackLocale?: FallbackLocale;
118
125
  messages?: {
119
126
  [K in keyof _Messages]: MessageSchema;
@@ -170,9 +177,9 @@ export declare const CoreWarnCodes: {
170
177
  export declare type CoreWarnCodes = (typeof CoreWarnCodes)[keyof typeof CoreWarnCodes];
171
178
  export { createCompileError }
172
179
 
173
- export declare function createCoreContext<Message = string, Options extends CoreOptions<Message> = CoreOptions<Message>, Messages extends Record<string, any> = Options['messages'] extends Record<string, any> ? Options['messages'] : {}, DateTimeFormats extends Record<string, any> = Options['datetimeFormats'] extends Record<string, any> ? Options['datetimeFormats'] : {}, NumberFormats extends Record<string, any> = Options['numberFormats'] extends Record<string, any> ? Options['numberFormats'] : {}>(options: Options): CoreContext<Message, Messages, DateTimeFormats, NumberFormats>;
180
+ export declare function createCoreContext<Message = string, Options extends CoreOptions<Message> = CoreOptions<Message>, Messages extends Record<string, any> = Options['messages'] extends Record<string, any> ? Options['messages'] : {}, DateTimeFormats extends Record<string, any> = Options['datetimeFormats'] extends Record<string, any> ? Options['datetimeFormats'] : {}, NumberFormats extends Record<string, any> = Options['numberFormats'] extends Record<string, any> ? Options['numberFormats'] : {}, LocaleType extends LocaleDetector | Locale = NonNullable<Options['locale']> extends LocaleDetector ? LocaleDetector : Locale>(options: Options): CoreContext<Message, Messages, DateTimeFormats, NumberFormats, LocaleType>;
174
181
 
175
- export declare function createCoreContext<Schema = LocaleMessage, Locales = 'en-US', Message = string, Options extends CoreOptions<Message, SchemaParams<Schema, Message>, LocaleParams<Locales>> = CoreOptions<Message, SchemaParams<Schema, Message>, LocaleParams<Locales>>, Messages extends Record<string, any> = NonNullable<Options['messages']> extends Record<string, any> ? NonNullable<Options['messages']> : {}, DateTimeFormats extends Record<string, any> = NonNullable<Options['datetimeFormats']> extends Record<string, any> ? NonNullable<Options['datetimeFormats']> : {}, NumberFormats extends Record<string, any> = NonNullable<Options['numberFormats']> extends Record<string, any> ? NonNullable<Options['numberFormats']> : {}>(options: Options): CoreContext<Message, Messages, DateTimeFormats, NumberFormats>;
182
+ export declare function createCoreContext<Schema = LocaleMessage, Locales = 'en-US', Message = string, Options extends CoreOptions<Message, SchemaParams<Schema, Message>, LocaleParams<Locales>> = CoreOptions<Message, SchemaParams<Schema, Message>, LocaleParams<Locales>>, Messages extends Record<string, any> = NonNullable<Options['messages']> extends Record<string, any> ? NonNullable<Options['messages']> : {}, DateTimeFormats extends Record<string, any> = NonNullable<Options['datetimeFormats']> extends Record<string, any> ? NonNullable<Options['datetimeFormats']> : {}, NumberFormats extends Record<string, any> = NonNullable<Options['numberFormats']> extends Record<string, any> ? NonNullable<Options['numberFormats']> : {}, LocaleType extends LocaleDetector | Locale = NonNullable<Options['locale']> extends LocaleDetector ? LocaleDetector : Locale>(options: Options): CoreContext<Message, Messages, DateTimeFormats, NumberFormats, LocaleType>;
176
183
 
177
184
  export declare function createCoreError(code: CoreErrorCodes): CoreError;
178
185
 
@@ -268,17 +275,12 @@ export declare type DateTimeHumanReadable = 'long' | 'short' | 'narrow';
268
275
  *
269
276
  * @VueI18nGeneral
270
277
  */
271
- export declare interface DateTimeOptions<Key = string, Locales = Locale> extends Intl.DateTimeFormatOptions {
278
+ export declare interface DateTimeOptions<Key = string, Locales = Locale> extends Intl.DateTimeFormatOptions, LocaleOptions<Locales> {
272
279
  /**
273
280
  * @remarks
274
281
  * The target format key
275
282
  */
276
283
  key?: Key;
277
- /**
278
- * @remarks
279
- * The locale of localization
280
- */
281
- locale?: Locales;
282
284
  /**
283
285
  * @remarks
284
286
  * Whether suppress warnings outputted when localization fails
@@ -366,12 +368,41 @@ export declare function getDevToolsHook(): IntlifyDevToolsEmitter | null;
366
368
 
367
369
  export declare const getFallbackContext: () => CoreContext | null;
368
370
 
371
+ /* Excluded from this release type: getLocale */
372
+
369
373
  export declare function getWarnMessage(code: CoreWarnCodes, ...args: unknown[]): string;
370
374
 
371
375
  /* Excluded from this release type: handleMissing */
372
376
 
373
377
  export declare function initI18nDevTools(i18n: unknown, version: string, meta?: Record<string, unknown>): void;
374
378
 
379
+ declare type IntlifyDevToolsEmitter = Emittable<IntlifyDevToolsEmitterHooks>;
380
+
381
+ declare type IntlifyDevToolsEmitterHooks = {
382
+ [IntlifyDevToolsHooks.I18nInit]: IntlifyDevToolsHookPayloads[IntlifyDevToolsHooks.I18nInit];
383
+ [IntlifyDevToolsHooks.FunctionTranslate]: IntlifyDevToolsHookPayloads[IntlifyDevToolsHooks.FunctionTranslate];
384
+ };
385
+
386
+ declare type IntlifyDevToolsHookPayloads = {
387
+ [IntlifyDevToolsHooks.I18nInit]: {
388
+ timestamp: number;
389
+ i18n: unknown;
390
+ version: string;
391
+ } & AdditionalPayloads;
392
+ [IntlifyDevToolsHooks.FunctionTranslate]: {
393
+ timestamp: number;
394
+ message: string | number;
395
+ key: string;
396
+ locale: string;
397
+ format?: string;
398
+ } & AdditionalPayloads;
399
+ };
400
+
401
+ declare const enum IntlifyDevToolsHooks {
402
+ I18nInit = "i18n:init",
403
+ FunctionTranslate = "function:translate"
404
+ }
405
+
375
406
  export declare type IsEmptyObject<T> = [keyof T] extends [never] ? true : false;
376
407
 
377
408
  export declare const isMessageAST: (val: unknown) => val is ResourceNode;
@@ -409,6 +440,12 @@ export declare interface LinkedOptions {
409
440
  /** @VueI18nGeneral */
410
441
  export declare type Locale = string;
411
442
 
443
+ /** @VueI18nGeneral */
444
+ export declare interface LocaleDetector {
445
+ (): Locale;
446
+ resolvedOnce?: boolean;
447
+ }
448
+
412
449
  /**
413
450
  * The locale fallbacker
414
451
  *
@@ -437,6 +474,15 @@ export declare type LocaleMessageType<T, Message = string> = T extends string ?
437
474
  /** @VueI18nGeneral */
438
475
  export declare type LocaleMessageValue<Message = string> = LocaleMessageDictionary<any, Message> | string;
439
476
 
477
+ /** @VueI18nGeneral */
478
+ export declare interface LocaleOptions<Locales = Locale> {
479
+ /**
480
+ * @remarks
481
+ * The locale of localization
482
+ */
483
+ locale?: Locales | LocaleDetector;
484
+ }
485
+
440
486
  export declare type LocaleParams<T, Default = 'en-US'> = T extends IsUnion<T> ? {
441
487
  messages: T;
442
488
  datetimeFormats: T;
@@ -646,7 +692,12 @@ export declare type MessageFunction<T = string> = MessageFunctionCallable | Mess
646
692
 
647
693
  export declare type MessageFunctionCallable = <T = string>(ctx: MessageContext<T>) => MessageFunctionReturn<T>;
648
694
 
649
- /* Excluded from this release type: MessageFunctionInternal */
695
+ export declare type MessageFunctionInternal<T = string> = {
696
+ (ctx: MessageContext<T>): MessageFunctionReturn<T>;
697
+ key?: string;
698
+ locale?: string;
699
+ source?: string;
700
+ };
650
701
 
651
702
  /** @VueI18nGeneral */
652
703
  export declare type MessageFunctionReturn<T = string> = T extends string ? MessageType<T> : MessageType<T>[];
@@ -754,17 +805,12 @@ export declare type NumberFormatToPartsResult = {
754
805
  *
755
806
  * @VueI18nGeneral
756
807
  */
757
- export declare interface NumberOptions<Key = string, Locales = Locale> extends Intl.NumberFormatOptions {
808
+ export declare interface NumberOptions<Key = string, Locales = Locale> extends Intl.NumberFormatOptions, LocaleOptions<Locales> {
758
809
  /**
759
810
  * @remarks
760
811
  * The target format key
761
812
  */
762
813
  key?: Key;
763
- /**
764
- * @remarks
765
- * The locale of localization
766
- */
767
- locale?: Locales;
768
814
  /**
769
815
  * @remarks
770
816
  * Whether suppress warnings outputted when localization fails
@@ -852,6 +898,8 @@ export declare type RemoveIndexSignature<T> = {
852
898
  [K in keyof T as string extends K ? never : number extends K ? never : K]: T[K];
853
899
  };
854
900
 
901
+ /* Excluded from this release type: resolveLocale */
902
+
855
903
  /**
856
904
  * message resolver
857
905
  *
@@ -1023,7 +1071,7 @@ export declare const translateDevTools: (payloads: IntlifyDevToolsHookPayloads[I
1023
1071
  *
1024
1072
  * @VueI18nGeneral
1025
1073
  */
1026
- export declare interface TranslateOptions<Locales = Locale> {
1074
+ export declare interface TranslateOptions<Locales = Locale> extends LocaleOptions<Locales> {
1027
1075
  /**
1028
1076
  * @remarks
1029
1077
  * List interpolation
@@ -1044,11 +1092,6 @@ export declare interface TranslateOptions<Locales = Locale> {
1044
1092
  * Default message when is occurred translation missing
1045
1093
  */
1046
1094
  default?: string | boolean;
1047
- /**
1048
- * @remarks
1049
- * The locale of localization
1050
- */
1051
- locale?: Locales;
1052
1095
  /**
1053
1096
  * @remarks
1054
1097
  * Whether suppress warnings outputted when localization fails
@@ -1079,4 +1122,66 @@ export declare type UnionToTuple<U, Last = LastInUnion<U>> = [U] extends [never]
1079
1122
 
1080
1123
  /* Excluded from this release type: VERSION */
1081
1124
 
1125
+ declare type VueDevToolsEmitter = Emittable<VueDevToolsEmitterEvents>;
1126
+
1127
+ declare type VueDevToolsEmitterEvents = {
1128
+ [VueDevToolsTimelineEvents.COMPILE_ERROR]: VueDevToolsTimelineEventPayloads[VueDevToolsTimelineEvents.COMPILE_ERROR];
1129
+ [VueDevToolsTimelineEvents.MISSING]: VueDevToolsTimelineEventPayloads[VueDevToolsTimelineEvents.MISSING];
1130
+ [VueDevToolsTimelineEvents.FALBACK]: VueDevToolsTimelineEventPayloads[VueDevToolsTimelineEvents.FALBACK];
1131
+ [VueDevToolsTimelineEvents.MESSAGE_RESOLVE]: VueDevToolsTimelineEventPayloads[VueDevToolsTimelineEvents.MESSAGE_RESOLVE];
1132
+ [VueDevToolsTimelineEvents.MESSAGE_COMPILATION]: VueDevToolsTimelineEventPayloads[VueDevToolsTimelineEvents.MESSAGE_COMPILATION];
1133
+ [VueDevToolsTimelineEvents.MESSAGE_EVALUATION]: VueDevToolsTimelineEventPayloads[VueDevToolsTimelineEvents.MESSAGE_EVALUATION];
1134
+ };
1135
+
1136
+ declare type VueDevToolsTimelineEventPayloads = {
1137
+ [VueDevToolsTimelineEvents.COMPILE_ERROR]: {
1138
+ message: string;
1139
+ error: string;
1140
+ start?: number;
1141
+ end?: number;
1142
+ groupId?: string;
1143
+ };
1144
+ [VueDevToolsTimelineEvents.MISSING]: {
1145
+ locale: Locale_2;
1146
+ key: Path_2;
1147
+ type: CoreMissingType_2;
1148
+ groupId?: string;
1149
+ };
1150
+ [VueDevToolsTimelineEvents.FALBACK]: {
1151
+ key: Path_2;
1152
+ type: CoreMissingType_2;
1153
+ from?: Locale_2;
1154
+ to: Locale_2 | 'global';
1155
+ groupId?: string;
1156
+ };
1157
+ [VueDevToolsTimelineEvents.MESSAGE_RESOLVE]: {
1158
+ type: VueDevToolsTimelineEvents.MESSAGE_RESOLVE;
1159
+ key: Path_2;
1160
+ message: PathValue_2;
1161
+ time: number;
1162
+ groupId?: string;
1163
+ };
1164
+ [VueDevToolsTimelineEvents.MESSAGE_COMPILATION]: {
1165
+ type: VueDevToolsTimelineEvents.MESSAGE_COMPILATION;
1166
+ message: string | ResourceNode_2 | MessageFunction_2;
1167
+ time: number;
1168
+ groupId?: string;
1169
+ };
1170
+ [VueDevToolsTimelineEvents.MESSAGE_EVALUATION]: {
1171
+ type: VueDevToolsTimelineEvents.MESSAGE_EVALUATION;
1172
+ value: unknown;
1173
+ time: number;
1174
+ groupId?: string;
1175
+ };
1176
+ };
1177
+
1178
+ declare const enum VueDevToolsTimelineEvents {
1179
+ COMPILE_ERROR = "compile-error",
1180
+ MISSING = "missing",
1181
+ FALBACK = "fallback",
1182
+ MESSAGE_RESOLVE = "message-resolve",
1183
+ MESSAGE_COMPILATION = "message-compilation",
1184
+ MESSAGE_EVALUATION = "message-evaluation"
1185
+ }
1186
+
1082
1187
  export { }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * core-base v9.4.0
2
+ * core-base v9.5.0
3
3
  * (c) 2023 kazuya kawaguchi
4
4
  * Released under the MIT License.
5
5
  */
@@ -745,6 +745,8 @@ function createTokenizer(source, options = {}) {
745
745
  ch === "%" /* TokenChars.Modulo */ ||
746
746
  ch === "@" /* TokenChars.LinkedAlias */ ||
747
747
  ch === "|" /* TokenChars.Pipe */ ||
748
+ ch === "(" /* TokenChars.ParenLeft */ ||
749
+ ch === ")" /* TokenChars.ParenRight */ ||
748
750
  !ch) {
749
751
  return buf;
750
752
  }
@@ -756,9 +758,6 @@ function createTokenizer(source, options = {}) {
756
758
  scnr.next();
757
759
  return fn(detect, buf);
758
760
  }
759
- else if (!isIdentifierStart(ch)) {
760
- return buf;
761
- }
762
761
  else {
763
762
  buf += ch;
764
763
  scnr.next();
@@ -2103,6 +2102,22 @@ function getWarnMessage(code, ...args) {
2103
2102
  return format$1(warnMessages[code], ...args);
2104
2103
  }
2105
2104
 
2105
+ /** @internal */
2106
+ function getLocale(context, options) {
2107
+ return options.locale != null
2108
+ ? resolveLocale(options.locale)
2109
+ : resolveLocale(context.locale);
2110
+ }
2111
+ let _resolveLocale;
2112
+ /** @internal */
2113
+ function resolveLocale(locale) {
2114
+ // prettier-ignore
2115
+ return isString(locale)
2116
+ ? locale
2117
+ : _resolveLocale != null && locale.resolvedOnce
2118
+ ? _resolveLocale
2119
+ : (_resolveLocale = locale());
2120
+ }
2106
2121
  /**
2107
2122
  * Fallback with simple implemenation
2108
2123
  *
@@ -2224,7 +2239,7 @@ function appendItemToChain(chain, target, blocks) {
2224
2239
  * Intlify core-base version
2225
2240
  * @internal
2226
2241
  */
2227
- const VERSION = '9.4.0';
2242
+ const VERSION = '9.5.0';
2228
2243
  const NOT_REOSLVED = -1;
2229
2244
  const DEFAULT_LOCALE = 'en-US';
2230
2245
  const MISSING_RESOLVE_VALUE = '';
@@ -2300,23 +2315,26 @@ function createCoreContext(options = {}) {
2300
2315
  // setup options
2301
2316
  const onWarn = isFunction(options.onWarn) ? options.onWarn : warn;
2302
2317
  const version = isString(options.version) ? options.version : VERSION;
2303
- const locale = isString(options.locale) ? options.locale : DEFAULT_LOCALE;
2318
+ const locale = isString(options.locale) || isFunction(options.locale)
2319
+ ? options.locale
2320
+ : DEFAULT_LOCALE;
2321
+ const _locale = isFunction(locale) ? DEFAULT_LOCALE : locale;
2304
2322
  const fallbackLocale = isArray(options.fallbackLocale) ||
2305
2323
  isPlainObject(options.fallbackLocale) ||
2306
2324
  isString(options.fallbackLocale) ||
2307
2325
  options.fallbackLocale === false
2308
2326
  ? options.fallbackLocale
2309
- : locale;
2327
+ : _locale;
2310
2328
  const messages = isPlainObject(options.messages)
2311
2329
  ? options.messages
2312
- : { [locale]: {} };
2330
+ : { [_locale]: {} };
2313
2331
  const datetimeFormats = isPlainObject(options.datetimeFormats)
2314
2332
  ? options.datetimeFormats
2315
- : { [locale]: {} }
2333
+ : { [_locale]: {} }
2316
2334
  ;
2317
2335
  const numberFormats = isPlainObject(options.numberFormats)
2318
2336
  ? options.numberFormats
2319
- : { [locale]: {} }
2337
+ : { [_locale]: {} }
2320
2338
  ;
2321
2339
  const modifiers = assign({}, options.modifiers || {}, getDefaultLinkedModifiers());
2322
2340
  const pluralRules = options.pluralRules || {};
@@ -2493,7 +2511,7 @@ function formatMessagePart(ctx, node) {
2493
2511
  return ctx.interpolate(ctx.named(named.k || named.key));
2494
2512
  case 5 /* NodeTypes.List */:
2495
2513
  const list = node;
2496
- return ctx.interpolate(ctx.list(list.i || list.index));
2514
+ return ctx.interpolate(ctx.list(list.i != null ? list.i : list.index));
2497
2515
  case 6 /* NodeTypes.Linked */:
2498
2516
  const linked = node;
2499
2517
  const modifier = linked.m || linked.modifier;
@@ -2656,7 +2674,7 @@ function translate(context, ...args) {
2656
2674
  ? (!messageCompiler ? () => key : key)
2657
2675
  : '';
2658
2676
  const enableDefaultMsg = fallbackFormat || defaultMsgOrKey !== '';
2659
- const locale = isString(options.locale) ? options.locale : context.locale;
2677
+ const locale = getLocale(context, options);
2660
2678
  // escape params
2661
2679
  escapeParameter && escapeParams(options);
2662
2680
  // resolve message format
@@ -3060,7 +3078,7 @@ function datetime(context, ...args) {
3060
3078
  ? options.fallbackWarn
3061
3079
  : context.fallbackWarn;
3062
3080
  const part = !!options.part;
3063
- const locale = isString(options.locale) ? options.locale : context.locale;
3081
+ const locale = getLocale(context, options);
3064
3082
  const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any
3065
3083
  fallbackLocale, locale);
3066
3084
  if (!isString(key) || key === '') {
@@ -3234,7 +3252,7 @@ function number(context, ...args) {
3234
3252
  ? options.fallbackWarn
3235
3253
  : context.fallbackWarn;
3236
3254
  const part = !!options.part;
3237
- const locale = isString(options.locale) ? options.locale : context.locale;
3255
+ const locale = getLocale(context, options);
3238
3256
  const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any
3239
3257
  fallbackLocale, locale);
3240
3258
  if (!isString(key) || key === '') {
@@ -3360,4 +3378,4 @@ function clearNumberFormat(ctx, locale, format) {
3360
3378
  }
3361
3379
  }
3362
3380
 
3363
- export { CompileErrorCodes, CoreErrorCodes, CoreWarnCodes, DATETIME_FORMAT_OPTIONS_KEYS, DEFAULT_LOCALE, DEFAULT_MESSAGE_DATA_TYPE, MISSING_RESOLVE_VALUE, NOT_REOSLVED, NUMBER_FORMAT_OPTIONS_KEYS, VERSION, clearCompileCache, clearDateTimeFormat, clearNumberFormat, compile, compileToFunction, createCompileError, createCoreContext, createCoreError, createMessageContext, datetime, fallbackWithLocaleChain, fallbackWithSimple, getAdditionalMeta, getDevToolsHook, getFallbackContext, getWarnMessage, handleMissing, initI18nDevTools, isMessageAST, isMessageFunction, isTranslateFallbackWarn, isTranslateMissingWarn, number, parse, parseDateTimeArgs, parseNumberArgs, parseTranslateArgs, registerLocaleFallbacker, registerMessageCompiler, registerMessageResolver, resolveValue, resolveWithKeyValue, setAdditionalMeta, setDevToolsHook, setFallbackContext, translate, translateDevTools, updateFallbackLocale };
3381
+ export { CompileErrorCodes, CoreErrorCodes, CoreWarnCodes, DATETIME_FORMAT_OPTIONS_KEYS, DEFAULT_LOCALE, DEFAULT_MESSAGE_DATA_TYPE, MISSING_RESOLVE_VALUE, NOT_REOSLVED, NUMBER_FORMAT_OPTIONS_KEYS, VERSION, clearCompileCache, clearDateTimeFormat, clearNumberFormat, compile, compileToFunction, createCompileError, createCoreContext, createCoreError, createMessageContext, datetime, fallbackWithLocaleChain, fallbackWithSimple, getAdditionalMeta, getDevToolsHook, getFallbackContext, getLocale, getWarnMessage, handleMissing, initI18nDevTools, isMessageAST, isMessageFunction, isTranslateFallbackWarn, isTranslateMissingWarn, number, parse, parseDateTimeArgs, parseNumberArgs, parseTranslateArgs, registerLocaleFallbacker, registerMessageCompiler, registerMessageResolver, resolveLocale, resolveValue, resolveWithKeyValue, setAdditionalMeta, setDevToolsHook, setFallbackContext, translate, translateDevTools, updateFallbackLocale };