@better-i18n/expo 0.7.6 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +117 -10
- package/dist/helpers.js.map +1 -1
- package/package.json +2 -2
package/dist/helpers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAoB,EAAE,KAAK,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAEnE,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAY,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAG5F,OAAO,KAAK,EAAiC,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAWpF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAGnE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,EAAE,CAEvD;AAED,MAAM,WAAW,qBAAqB;IACpC,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,mGAAmG;IACnG,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAE7B;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;IAE1C,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,qEAAqE;IACrE,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,0CAA0C;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,iEAAiE;IACjE,cAAc,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,IAAI,EAAE,QAAQ,CAAC;IAEf,gDAAgD;IAChD,SAAS,EAAE,cAAc,EAAE,CAAC;CAC7B;AA4BD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAoB,EAAE,KAAK,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAEnE,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAY,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAG5F,OAAO,KAAK,EAAiC,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAWpF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAGnE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,EAAE,CAEvD;AAED,MAAM,WAAW,qBAAqB;IACpC,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,mGAAmG;IACnG,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAE7B;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;IAE1C,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,qEAAqE;IACrE,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,0CAA0C;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,iEAAiE;IACjE,cAAc,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,IAAI,EAAE,QAAQ,CAAC;IAEf,gDAAgD;IAChD,SAAS,EAAE,cAAc,EAAE,CAAC;CAC7B;AA4BD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,gBAAgB,CAAC,CA6T3B;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,cAAc,EAAE,CAE/C;AAID;;;;;;GAMG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAMlE"}
|
package/dist/helpers.js
CHANGED
|
@@ -75,6 +75,61 @@ export async function initBetterI18n(options) {
|
|
|
75
75
|
// Fall back to the global i18next singleton when no instance provided.
|
|
76
76
|
// In React Native, this is always the same module instance — safe to use.
|
|
77
77
|
const i18nInstance = i18nOpt ?? i18nDefault;
|
|
78
|
+
// ── Defense-in-depth warnings ─────────────────────────────────────
|
|
79
|
+
// Mobile apps MUST have offline fallbacks. Without persistent storage
|
|
80
|
+
// AND bundled translations, a single CDN timeout = raw keys on screen.
|
|
81
|
+
if (!userStorage) {
|
|
82
|
+
console.warn(`${LOG_PREFIX} ⚠️ No persistent storage provided. Translations won't survive app restarts ` +
|
|
83
|
+
`and every launch will depend on CDN availability. Pass a storage adapter for offline support:\n` +
|
|
84
|
+
` storage: storageAdapter(new MMKV()) // or storageAdapter(AsyncStorage)`);
|
|
85
|
+
}
|
|
86
|
+
if (!staticData) {
|
|
87
|
+
console.warn(`${LOG_PREFIX} ⚠️ No staticData (bundled translations) provided. If CDN is unreachable ` +
|
|
88
|
+
`on first launch (e.g. Apple App Review, airplane mode), the app will show raw translation keys.\n` +
|
|
89
|
+
` staticData: { en: require('./locales/en.json') }`);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
// Check for empty staticData — catches the subtle bug where locale JSON files
|
|
93
|
+
// were cleared but the import still exists (staticData: { en: {}, tr: {} })
|
|
94
|
+
const emptyLocales = [];
|
|
95
|
+
const resolvedData = typeof staticData === "function" ? null : staticData;
|
|
96
|
+
if (resolvedData) {
|
|
97
|
+
for (const [locale, messages] of Object.entries(resolvedData)) {
|
|
98
|
+
if (!messages || typeof messages !== "object" || Object.keys(messages).length === 0) {
|
|
99
|
+
emptyLocales.push(locale);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
if (emptyLocales.length > 0) {
|
|
104
|
+
console.warn(`${LOG_PREFIX} ⚠️ staticData has empty translations for: ${emptyLocales.join(", ")}. ` +
|
|
105
|
+
`Bundled fallback will not work for these locales. ` +
|
|
106
|
+
`Make sure your locale JSON files contain actual translations, not empty objects.\n` +
|
|
107
|
+
` Tip: Run "npx @better-i18n/cli pull" to sync bundled translations from CDN.`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
if (!userStorage && !staticData) {
|
|
111
|
+
console.warn(`${LOG_PREFIX} 🚨 CRITICAL: No storage AND no staticData. Your app has zero offline fallback. ` +
|
|
112
|
+
`If CDN is unreachable (App Store Review, airplane mode, slow network), ` +
|
|
113
|
+
`users will see raw translation keys. This WILL cause App Store rejection.\n` +
|
|
114
|
+
` Fix: Add at least one of:\n` +
|
|
115
|
+
` storage: storageAdapter(new MMKV())\n` +
|
|
116
|
+
` staticData: { en: require('./locales/en.json') }`);
|
|
117
|
+
}
|
|
118
|
+
// useDeviceLocale without localeKey = user's in-app language choice is lost on every restart.
|
|
119
|
+
// Two valid patterns:
|
|
120
|
+
// 1. useDeviceLocale: true + localeKey → SDK detects device lang on first launch, persists user choice after
|
|
121
|
+
// 2. useDeviceLocale: false + app passes its own resolved locale via defaultLocale → app manages persistence
|
|
122
|
+
if (useDeviceLocale && userStorage) {
|
|
123
|
+
const hasLocaleKey = "readLocale" in userStorage && typeof userStorage.readLocale === "function";
|
|
124
|
+
if (!hasLocaleKey) {
|
|
125
|
+
console.warn(`${LOG_PREFIX} ⚠️ useDeviceLocale is enabled but storage has no localeKey. ` +
|
|
126
|
+
`The user's in-app language choice will be lost on every app restart — device locale will be used instead.\n` +
|
|
127
|
+
` Fix: Pass localeKey to storageAdapter:\n` +
|
|
128
|
+
` storage: storageAdapter(mmkv, { localeKey: '@app:locale' })\n` +
|
|
129
|
+
` Or manage locale yourself:\n` +
|
|
130
|
+
` useDeviceLocale: false, defaultLocale: yourResolvedLocale`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
78
133
|
const storage = await resolveStorage(userStorage, debug);
|
|
79
134
|
const core = createI18nCore({
|
|
80
135
|
project,
|
|
@@ -88,7 +143,6 @@ export async function initBetterI18n(options) {
|
|
|
88
143
|
set: (key, value) => storage.setItem(key, value),
|
|
89
144
|
},
|
|
90
145
|
});
|
|
91
|
-
const lng = await resolveInitialLocale(storage, useDeviceLocale, defaultLocale);
|
|
92
146
|
/**
|
|
93
147
|
* Fetch translations from CDN with persistent cache fallback (network-first).
|
|
94
148
|
* On success, writes to cache in the background for offline use.
|
|
@@ -131,30 +185,83 @@ export async function initBetterI18n(options) {
|
|
|
131
185
|
function addTranslationBundle(locale, msgs) {
|
|
132
186
|
i18nInstance.addResourceBundle(locale, "translation", msgs, true, true);
|
|
133
187
|
}
|
|
134
|
-
// Fetch manifest
|
|
135
|
-
const
|
|
136
|
-
core.getLanguages().catch(() => []),
|
|
137
|
-
loadMessages(lng),
|
|
138
|
-
]);
|
|
188
|
+
// ── Step 1: Fetch manifest to know which languages exist ──────────
|
|
189
|
+
const languages = await core.getLanguages().catch(() => []);
|
|
139
190
|
const supportedLngs = languages.map((l) => l.code);
|
|
191
|
+
// ── Step 2: Resolve locale with support check ─────────────────────
|
|
192
|
+
// Resolve the requested locale, then verify it actually exists in the
|
|
193
|
+
// project. If the device locale (e.g. "es") isn't supported, fall back
|
|
194
|
+
// to defaultLocale immediately — don't waste a CDN call on a locale
|
|
195
|
+
// that will return empty translations.
|
|
196
|
+
const requestedLng = await resolveInitialLocale(storage, useDeviceLocale, defaultLocale);
|
|
197
|
+
// Also check if the user overrode lng via i18nextOptions
|
|
198
|
+
const overrideLng = i18nextOptions?.lng
|
|
199
|
+
? normalizeLocale(i18nextOptions.lng)
|
|
200
|
+
: null;
|
|
201
|
+
// The locale we actually want to use (user override > resolved > default)
|
|
202
|
+
const candidateLng = overrideLng ?? requestedLng;
|
|
203
|
+
// If this locale isn't supported, fall back to defaultLocale
|
|
204
|
+
const isSupported = supportedLngs.length === 0 || supportedLngs.includes(candidateLng);
|
|
205
|
+
const effectiveLng = isSupported ? candidateLng : defaultLocale;
|
|
206
|
+
if (!isSupported && debug) {
|
|
207
|
+
console.debug(`${LOG_PREFIX} Locale "${candidateLng}" is not in supported languages ` +
|
|
208
|
+
`[${supportedLngs.join(", ")}], falling back to "${defaultLocale}"`);
|
|
209
|
+
}
|
|
210
|
+
// ── Step 3: Load messages for the effective locale ────────────────
|
|
211
|
+
const messages = await loadMessages(effectiveLng);
|
|
140
212
|
const namespaces = Object.keys(messages);
|
|
213
|
+
// ── Step 4: Also load defaultLocale if effective is different ──────
|
|
214
|
+
// Ensures fallbackLng always has resources available in i18next.
|
|
215
|
+
const resources = {
|
|
216
|
+
[effectiveLng]: { translation: messages, ...messages },
|
|
217
|
+
};
|
|
218
|
+
if (effectiveLng !== defaultLocale) {
|
|
219
|
+
try {
|
|
220
|
+
const fallbackMessages = await loadMessages(defaultLocale);
|
|
221
|
+
resources[defaultLocale] = { translation: fallbackMessages, ...fallbackMessages };
|
|
222
|
+
}
|
|
223
|
+
catch {
|
|
224
|
+
// Best-effort — defaultLocale fallback is still configured in i18next
|
|
225
|
+
// even if we can't pre-load it here
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
// ── Step 5: Init i18next ──────────────────────────────────────────
|
|
229
|
+
// i18nextOptions is spread but we protect lng/fallbackLng/supportedLngs
|
|
230
|
+
// from being overridden with unsupported values
|
|
231
|
+
const { lng: _userLng, supportedLngs: _userSupported, ...safeI18nextOptions } = (i18nextOptions ?? {});
|
|
141
232
|
await i18nInstance.init({
|
|
142
|
-
resources
|
|
233
|
+
resources,
|
|
143
234
|
// "translation" = tüm namespace'ler merged (dot-notation: t('section.key') çalışır)
|
|
144
235
|
// ...messages = bireysel namespace'ler (colon-notation: t('ns:key') çalışır)
|
|
145
|
-
lng,
|
|
236
|
+
lng: effectiveLng,
|
|
146
237
|
fallbackLng: defaultLocale,
|
|
147
|
-
supportedLngs: supportedLngs.length > 0 ? supportedLngs : false,
|
|
238
|
+
supportedLngs: supportedLngs.length > 0 ? [...supportedLngs, defaultLocale] : false,
|
|
148
239
|
lowerCaseLng: true, // CDN lowercase — match i18next BCP 47 normalization
|
|
149
240
|
defaultNS: "translation",
|
|
150
241
|
fallbackNS: "translation",
|
|
151
242
|
interpolation: { escapeValue: false },
|
|
152
243
|
react: { useSuspense: false },
|
|
153
|
-
...
|
|
244
|
+
...safeI18nextOptions,
|
|
154
245
|
});
|
|
155
246
|
if (debug) {
|
|
156
247
|
console.debug(`${LOG_PREFIX} Ready: ${namespaces.length} namespaces, ${supportedLngs.length} languages (${supportedLngs.join(", ")})`);
|
|
157
248
|
}
|
|
249
|
+
// ── staticData drift detection ────────────────────────────────────
|
|
250
|
+
// After successful CDN load, compare with staticData to warn about
|
|
251
|
+
// missing namespaces that won't be available offline.
|
|
252
|
+
if (staticData && typeof staticData !== "function") {
|
|
253
|
+
const bundled = staticData[effectiveLng];
|
|
254
|
+
if (bundled && typeof bundled === "object") {
|
|
255
|
+
const cdnKeys = new Set(namespaces);
|
|
256
|
+
const bundledKeys = new Set(Object.keys(bundled));
|
|
257
|
+
const missing = [...cdnKeys].filter((k) => !bundledKeys.has(k));
|
|
258
|
+
if (missing.length > 0) {
|
|
259
|
+
console.warn(`${LOG_PREFIX} ⚠️ staticData["${effectiveLng}"] is missing ${missing.length} namespace(s) that exist on CDN: ` +
|
|
260
|
+
`${missing.join(", ")}. These won't be available offline.\n` +
|
|
261
|
+
` Run "npx @better-i18n/cli pull" to update your bundled translations.`);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
158
265
|
// Override changeLanguage to pre-load translations BEFORE the language switch.
|
|
159
266
|
// This prevents the race condition where i18next switches the language
|
|
160
267
|
// before CDN translations arrive, causing fallback to English.
|
package/dist/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,EAAE,EAA+B,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAGrE,MAAM,UAAU,GAAG,oBAAoB,CAAC;AAExC,IAAI,gBAAgB,GAAqB,EAAE,CAAC;AAC5C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAc,CAAC;AAEzC,SAAS,oBAAoB;IAC3B,KAAK,MAAM,QAAQ,IAAI,UAAU;QAAE,QAAQ,EAAE,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAoB;IACrD,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzB,OAAO,GAAG,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAuDD;;;;;;;GAOG;AACH,KAAK,UAAU,oBAAoB,CACjC,OAA2B,EAC3B,eAAwB,EACxB,aAAqB;IAErB,wDAAwD;IACxD,IAAI,YAAY,IAAI,OAAO,IAAI,OAAQ,OAAoD,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QACtH,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAO,OAAoD,CAAC,UAAU,EAAE,CAAC;YACvF,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,wDAAwD;QAC1D,CAAC;IACH,CAAC;IACD,IAAI,eAAe;QAAE,OAAO,eAAe,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;IACzE,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAA8B;IAE9B,MAAM,EACJ,OAAO,EACP,IAAI,EAAE,OAAO,EACb,aAAa,GAAG,IAAI,EACpB,OAAO,EAAE,WAAW,EACpB,UAAU,EACV,YAAY,EACZ,UAAU,EACV,eAAe,GAAG,KAAK,EACvB,KAAK,GAAG,KAAK,EACb,cAAc,GAAG,EAAE,GACpB,GAAG,OAAO,CAAC;IAEZ,uEAAuE;IACvE,0EAA0E;IAC1E,MAAM,YAAY,GAAG,OAAO,IAAI,WAAW,CAAC;IAE5C,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,cAAc,CAAC;QAC1B,OAAO;QACP,aAAa;QACb,KAAK;QACL,UAAU;QACV,YAAY;QACZ,UAAU;QACV,OAAO,EAAE;YACP,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;YAClC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;SACjD;KACF,CAAC,CAAC;IAEH
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,EAAE,EAA+B,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAGrE,MAAM,UAAU,GAAG,oBAAoB,CAAC;AAExC,IAAI,gBAAgB,GAAqB,EAAE,CAAC;AAC5C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAc,CAAC;AAEzC,SAAS,oBAAoB;IAC3B,KAAK,MAAM,QAAQ,IAAI,UAAU;QAAE,QAAQ,EAAE,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAoB;IACrD,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzB,OAAO,GAAG,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAuDD;;;;;;;GAOG;AACH,KAAK,UAAU,oBAAoB,CACjC,OAA2B,EAC3B,eAAwB,EACxB,aAAqB;IAErB,wDAAwD;IACxD,IAAI,YAAY,IAAI,OAAO,IAAI,OAAQ,OAAoD,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QACtH,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAO,OAAoD,CAAC,UAAU,EAAE,CAAC;YACvF,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,wDAAwD;QAC1D,CAAC;IACH,CAAC;IACD,IAAI,eAAe;QAAE,OAAO,eAAe,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;IACzE,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAA8B;IAE9B,MAAM,EACJ,OAAO,EACP,IAAI,EAAE,OAAO,EACb,aAAa,GAAG,IAAI,EACpB,OAAO,EAAE,WAAW,EACpB,UAAU,EACV,YAAY,EACZ,UAAU,EACV,eAAe,GAAG,KAAK,EACvB,KAAK,GAAG,KAAK,EACb,cAAc,GAAG,EAAE,GACpB,GAAG,OAAO,CAAC;IAEZ,uEAAuE;IACvE,0EAA0E;IAC1E,MAAM,YAAY,GAAG,OAAO,IAAI,WAAW,CAAC;IAE5C,qEAAqE;IACrE,sEAAsE;IACtE,uEAAuE;IACvE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CACV,GAAG,UAAU,+EAA+E;YAC5F,iGAAiG;YACjG,2EAA2E,CAC5E,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CACV,GAAG,UAAU,4EAA4E;YACzF,mGAAmG;YACnG,oDAAoD,CACrD,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,8EAA8E;QAC9E,4EAA4E;QAC5E,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,MAAM,YAAY,GAAG,OAAO,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;QAC1E,IAAI,YAAY,EAAE,CAAC;YACjB,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC9D,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACpF,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CACV,GAAG,UAAU,+CAA+C,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBACvF,oDAAoD;gBACpD,oFAAoF;gBACpF,+EAA+E,CAChF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CACV,GAAG,UAAU,kFAAkF;YAC/F,yEAAyE;YACzE,6EAA6E;YAC7E,+BAA+B;YAC/B,2CAA2C;YAC3C,sDAAsD,CACvD,CAAC;IACJ,CAAC;IAED,8FAA8F;IAC9F,sBAAsB;IACtB,gHAAgH;IAChH,+GAA+G;IAC/G,IAAI,eAAe,IAAI,WAAW,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG,YAAY,IAAI,WAAW,IAAI,OAAQ,WAAuC,CAAC,UAAU,KAAK,UAAU,CAAC;QAC9H,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CACV,GAAG,UAAU,gEAAgE;gBAC7E,6GAA6G;gBAC7G,4CAA4C;gBAC5C,mEAAmE;gBACnE,gCAAgC;gBAChC,+DAA+D,CAChE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,cAAc,CAAC;QAC1B,OAAO;QACP,aAAa;QACb,KAAK;QACL,UAAU;QACV,YAAY;QACZ,UAAU;QACV,OAAO,EAAE;YACP,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;YAClC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;SACjD;KACF,CAAC,CAAC;IAEH;;;OAGG;IACH,KAAK,UAAU,YAAY,CAAC,MAAc;QACxC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,CAAC;gBACH,MAAM,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YACnD,CAAC;YAAC,MAAM,CAAC;gBACP,mDAAmD;YACrD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,gCAAgC,EAAE,MAAM,CAAC,CAAC;YACtE,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YACzD,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC,IAAI,CAAC;YAC/B,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS,gBAAgB,CAAC,MAAc,EAAE,QAAkB;QAC1D,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC9C,YAAY,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,SAAS,oBAAoB,CAAC,MAAc,EAAE,IAAc;QAC1D,YAAY,CAAC,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,qEAAqE;IACrE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAsB,CAAC,CAAC;IAChF,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEnD,qEAAqE;IACrE,sEAAsE;IACtE,uEAAuE;IACvE,oEAAoE;IACpE,uCAAuC;IACvC,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC;IAEzF,yDAAyD;IACzD,MAAM,WAAW,GAAG,cAAc,EAAE,GAAG;QACrC,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,GAAa,CAAC;QAC/C,CAAC,CAAC,IAAI,CAAC;IAET,0EAA0E;IAC1E,MAAM,YAAY,GAAG,WAAW,IAAI,YAAY,CAAC;IAEjD,6DAA6D;IAC7D,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACvF,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC;IAEhE,IAAI,CAAC,WAAW,IAAI,KAAK,EAAE,CAAC;QAC1B,OAAO,CAAC,KAAK,CACX,GAAG,UAAU,YAAY,YAAY,kCAAkC;YACvE,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,aAAa,GAAG,CACpE,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC,CAAC;IAElD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEzC,sEAAsE;IACtE,iEAAiE;IACjE,MAAM,SAAS,GAAyD;QACtE,CAAC,YAAY,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE;KACvD,CAAC;IAEF,IAAI,YAAY,KAAK,aAAa,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,CAAC;YAC3D,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAAC;QACpF,CAAC;QAAC,MAAM,CAAC;YACP,sEAAsE;YACtE,oCAAoC;QACtC,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,wEAAwE;IACxE,gDAAgD;IAChD,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,kBAAkB,EAAE,GAAG,CAAC,cAAc,IAAI,EAAE,CAA4B,CAAC;IAElI,MAAM,YAAY,CAAC,IAAI,CAAC;QACtB,SAAS;QACT,oFAAoF;QACpF,+EAA+E;QAC/E,GAAG,EAAE,YAAY;QACjB,WAAW,EAAE,aAAa;QAC1B,aAAa,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK;QACnF,YAAY,EAAE,IAAI,EAAE,qDAAqD;QACzE,SAAS,EAAE,aAAa;QACxB,UAAU,EAAE,aAAa;QACzB,aAAa,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;QACrC,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;QAC7B,GAAG,kBAAkB;KACtB,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CACX,GAAG,UAAU,WAAW,UAAU,CAAC,MAAM,gBAAgB,aAAa,CAAC,MAAM,eAAe,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACxH,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,mEAAmE;IACnE,sDAAsD;IACtD,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE,CAAC;QACnD,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;YACpC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,IAAI,CACV,GAAG,UAAU,oBAAoB,YAAY,iBAAiB,OAAO,CAAC,MAAM,mCAAmC;oBAC/G,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,uCAAuC;oBAC5D,wEAAwE,CACzE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,uEAAuE;IACvE,+DAA+D;IAC/D,MAAM,sBAAsB,GAAG,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9E,YAAY,CAAC,cAAc,GAAG,KAAK,EAAE,MAAe,EAAE,QAAqC,EAAE,EAAE;QAC7F,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7D,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,CAAC;gBAC5D,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;oBAChD,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;oBACvC,oBAAoB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;oBAC3C,IAAI,KAAK,EAAE,CAAC;wBACV,OAAO,CAAC,KAAK,CACX,GAAG,UAAU,eAAe,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,mBAAmB,OAAO,EAAE,CACxF,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAAC,OAAO,MAAM,EAAE,CAAC;oBAChB,IAAI,KAAK,EAAE,CAAC;wBACV,OAAO,CAAC,KAAK,CACX,GAAG,UAAU,wBAAwB,OAAO,4BAA4B,CACzE,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,qEAAqE;gBACrE,iFAAiF;gBACjF,MAAM,SAAS,GAAI,YAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;gBAC/D,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,QAAQ,GAAa,EAAE,CAAC;oBAC9B,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;wBACnD,IAAI,EAAE,KAAK,aAAa,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;4BACtE,QAAQ,CAAC,EAAE,CAAC,GAAG,IAA+B,CAAC;wBACjD,CAAC;oBACH,CAAC;oBACD,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACrC,IAAI,CAAC;4BAAC,MAAM,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;wBAAC,CAAC;wBAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;oBAC5F,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,kFAAkF;QAClF,IAAI,OAAO,IAAI,aAAa,IAAI,OAAO,IAAI,OAAQ,OAAoD,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;YACnI,IAAI,CAAC;gBACH,MAAO,OAAoD,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACnF,CAAC;YAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC,CAAC;IAEF,sEAAsE;IACtE,YAAY,CAAC,EAAE,CAAC,iBAAiB,EAAE,KAAK,EAAE,MAAc,EAAE,EAAE;QAC1D,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACvC,uDAAuD;QACvD,IAAI,YAAY,CAAC,iBAAiB,CAAC,MAAM,EAAE,aAAa,CAAC;YAAE,OAAO;QAElE,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;YAC/C,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YACtC,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAE1C,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CACX,GAAG,UAAU,WAAW,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,mBAAmB,MAAM,EAAE,CACnF,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,GAAG,UAAU,oCAAoC,MAAM,GAAG,EAC1D,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,KAAK,GAAG,IAAI,CAAC;IACb,gBAAgB,GAAG,SAAS,CAAC;IAC7B,oBAAoB,EAAE,CAAC;IAEvB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC7B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,IAAI,KAAK,GAAoB,IAAI,CAAC;AAElC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,IAAI,CAAC,KAAK;QAAE,OAAO,gBAAgB,CAAC;IACpC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,YAAY,EAAE,CAAC;IACzC,gBAAgB,GAAG,KAAK,CAAC;IACzB,oBAAoB,EAAE,CAAC;IACvB,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@better-i18n/expo",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Better i18n backend plugin for i18next in Expo/React Native",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"prepublishOnly": "bun run build"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@better-i18n/core": "0.6.
|
|
53
|
+
"@better-i18n/core": "0.6.1"
|
|
54
54
|
},
|
|
55
55
|
"peerDependencies": {
|
|
56
56
|
"react": ">=18.0.0",
|