-
- {t("free.price")}
-
+ {/* Pro Section */}
+
+ {/* Features */}
+
+
+
+ {t("pro.title")}
+
+
-
-
{t("cta")}
-
+
+ -
+ {t("pro.includes_free")}
+
+ -
+
+ {t("pro.features.github_action")}
+
+ -
+
+ {t("pro.features.priority_queues")}
+
+ -
+
+ {t("pro.features.priority_support")}
+
+ -
+
+ {t("pro.features.keys_limit")}
+
+ -
+
+ {t("pro.features.docs_limit")}
+
+ -
+
+ {t("pro.features.latest_features")}
+
+
-
-
-
+ {/* Price and Slider */}
+
+
-
-
-
{t("cta")}
-
+
+
+ {t("cta")}
+
+
diff --git a/apps/web/src/db/queries/translate.ts b/apps/web/src/db/queries/translate.ts
index ad953681..12ecbb5c 100644
--- a/apps/web/src/db/queries/translate.ts
+++ b/apps/web/src/db/queries/translate.ts
@@ -2,6 +2,7 @@ import { connectDb, primaryDb } from "@/db";
import { projects, translations } from "@/db/schema";
import type {
DeleteKeysSchema,
+ DeleteTranslationsSchema,
ProjectLocalesSchema,
} from "@/trpc/routers/schema";
import { UTCDate } from "@date-fns/utc";
@@ -234,24 +235,32 @@ export const getTranslationsByKey = async ({
.orderBy(asc(translations.targetLanguage));
};
-export const getOverridesForLocale = async ({
+export const getOverriddenTranslations = async ({
projectId,
- targetLanguage,
}: {
projectId: string;
- targetLanguage: string;
}) => {
return primaryDb
.select({
translationKey: translations.translationKey,
translatedText: translations.translatedText,
+ sourceFile: translations.sourceFile,
+ targetLanguage: translations.targetLanguage,
+ sourceFormat: translations.sourceFormat,
})
.from(translations)
.where(
and(
eq(translations.projectId, projectId),
- eq(translations.targetLanguage, targetLanguage),
eq(translations.overridden, true),
),
);
};
+
+export const deleteTranslations = async ({
+ projectId,
+}: DeleteTranslationsSchema) => {
+ return primaryDb
+ .delete(translations)
+ .where(eq(translations.projectId, projectId));
+};
diff --git a/apps/web/src/jobs/translate/translate-locale.ts b/apps/web/src/jobs/translate/translate-locale.ts
index fb4ed62e..2fd31de0 100644
--- a/apps/web/src/jobs/translate/translate-locale.ts
+++ b/apps/web/src/jobs/translate/translate-locale.ts
@@ -1,8 +1,4 @@
-import {
- createDocument,
- createTranslations,
- getOverridesForLocale,
-} from "@/db/queries/translate";
+import { createDocument, createTranslations } from "@/db/queries/translate";
import { schemaTask } from "@trigger.dev/sdk/v3";
import { z } from "zod";
import { calculateChunkSize } from "../utils/chunk";
@@ -76,9 +72,39 @@ export const translateLocaleTask = schemaTask({
ctx.attempt.number,
);
+ // Handle potential translation failure with retry
+ let translatedText = translatedContent?.[0];
+
+ if (!translatedText) {
+ console.log("Initial markdown translation failed, attempting retry...");
+ const retryContent = await translateDocument(
+ document.sourceText,
+ {
+ sourceLocale: payload.sourceLanguage,
+ targetLocale: payload.targetLocale,
+ sourceFormat: payload.sourceFormat,
+ },
+ ctx.attempt.number,
+ );
+
+ translatedText = retryContent?.[0];
+
+ if (!translatedText) {
+ console.error("Markdown translation failed after retry:", {
+ sourceFile: document.sourceFile,
+ sourceLanguage: payload.sourceLanguage,
+ targetLocale: payload.targetLocale,
+ });
+ return {
+ translations: [],
+ targetLocale: payload.targetLocale,
+ };
+ }
+ }
+
translations.push({
key: "content",
- translatedText: translatedContent?.at(0) ?? "",
+ translatedText,
});
if (document?.sourceText) {
@@ -88,7 +114,7 @@ export const translateLocaleTask = schemaTask({
sourceText: document.sourceText,
sourceLanguage: payload.sourceLanguage,
targetLanguage: payload.targetLocale,
- translatedText: translatedContent?.at(0) ?? "",
+ translatedText,
sourceFile: document.sourceFile,
sourceFormat: payload.sourceFormat,
branch: payload.branch,
@@ -106,35 +132,16 @@ export const translateLocaleTask = schemaTask({
};
}
- // Get all overrides for this locale upfront
- const overrides = await getOverridesForLocale({
- projectId: payload.projectId,
- targetLanguage: payload.targetLocale,
- });
-
- // Add overrides to translations result
- for (const override of overrides) {
- translations.push({
- key: override.translationKey,
- translatedText: override.translatedText,
- });
- }
-
- // Filter out overridden keys from content
- const nonOverriddenContent = payload.content.filter(
- (content) => !overrides.some((o) => o.translationKey === content.key),
- );
-
// Split remaining content into chunks
const contentChunks = [];
- for (let i = 0; i < nonOverriddenContent.length; i += chunkSize) {
- contentChunks.push(nonOverriddenContent.slice(i, i + chunkSize));
+ for (let i = 0; i < payload.content.length; i += chunkSize) {
+ contentChunks.push(payload.content.slice(i, i + chunkSize));
}
// Process all chunks in parallel
const chunkResults = await Promise.all(
contentChunks.map(async (chunk, chunkIndex) => {
- let translatedContent = await translateKeys(
+ const translatedContent = await translateKeys(
chunk,
{
sourceLocale: payload.sourceLanguage,
@@ -143,12 +150,17 @@ export const translateLocaleTask = schemaTask({
ctx.attempt.number,
);
- // Find keys with null values and retry once with remaining keys
- const remainingKeys = chunk.filter(
- (content) => !translatedContent[chunkIndex],
- );
+ console.log("Initial translation results:", translatedContent);
- if (remainingKeys.length > 0) {
+ // Find indices with null values and retry once with remaining keys
+ const nullIndices = chunk
+ .map((_, index) => ({ index, content: chunk[index] }))
+ .filter(({ index }) => !translatedContent[index]);
+
+ console.log("Indices with null translations:", nullIndices);
+
+ if (nullIndices.length > 0) {
+ const remainingKeys = nullIndices.map(({ content }) => content);
const retryTranslations = await translateKeys(
remainingKeys,
{
@@ -157,9 +169,28 @@ export const translateLocaleTask = schemaTask({
},
ctx.attempt.number,
);
- translatedContent = { ...translatedContent, ...retryTranslations };
+ console.log("Retry translation results:", retryTranslations);
+
+ // Update the null translations with retry results
+ nullIndices.forEach(({ index }, retryIndex) => {
+ translatedContent[index] = retryTranslations[retryIndex];
+ });
+ }
+
+ // Validate that all translations are present
+ const missingTranslations = chunk
+ .map((_, index) => ({ index, content: chunk[index] }))
+ .filter(({ index }) => !translatedContent[index]);
+
+ if (missingTranslations.length > 0) {
+ console.error(
+ "Some translations are still missing after retry:",
+ missingTranslations,
+ );
}
+ console.log("Final translation results:", translatedContent);
+
await createTranslations({
projectId: payload.projectId,
organizationId: payload.organizationId,
diff --git a/apps/web/src/jobs/utils/tokeniser.ts b/apps/web/src/jobs/utils/tokeniser.ts
index d9abd420..7c1a8c74 100644
--- a/apps/web/src/jobs/utils/tokeniser.ts
+++ b/apps/web/src/jobs/utils/tokeniser.ts
@@ -1,6 +1,13 @@
import { createFinalPrompt } from "./prompt";
import type { PromptOptions } from "./types";
+/**
+ * Estimates the number of tokens required for a given content and prompt options.
+ *
+ * @param content - An array of objects containing a key and source text.
+ * @param options - Optional prompt options.
+ * @returns The estimated number of tokens.
+ */
export function estimateTokensForContent(
content: Array<{ key: string; sourceText: string }>,
options?: PromptOptions,
diff --git a/apps/web/src/jobs/utils/transform.ts b/apps/web/src/jobs/utils/transform.ts
new file mode 100644
index 00000000..064b4cdc
--- /dev/null
+++ b/apps/web/src/jobs/utils/transform.ts
@@ -0,0 +1,75 @@
+import { NoObjectGeneratedError, generateObject } from "ai";
+import { z } from "zod";
+import { getModels } from "./model";
+
+function truncateToThreeWords(text: string): string {
+ return text.split(/\s+/).slice(0, 3).join(" ");
+}
+
+export async function transformKeys(
+ translations: Array<{ key: string; value: string }>,
+) {
+ const { primary } = getModels();
+
+ const truncatedTranslations = translations.map((t) => ({
+ ...t,
+ value: truncateToThreeWords(t.value),
+ }));
+
+ const prompt = `Generate human readable and memorable translation keys based on the original keys and values.
+Keep the component name prefix from the original key.
+The keys should be descriptive and easy to understand.
+Original keys contain element types (e.g. button_1, text_2) which can be used as context.
+
+For each translation, generate a new key that:
+- Keeps the component name prefix
+- Is descriptive of the content
+- Is easy to remember and read
+- Uses camelCase format after the component prefix
+- Uses common UI patterns in the key where appropriate (e.g. title, description, heading, subheading, buttonText)
+- Relates to the element type from original key
+
+Examples:
+Original: Header.h1_1: "Welcome to our platform"
+New: Header.pageTitle
+
+Original: Hero.p_1: "The best platform for your needs"
+New: Hero.mainDescription
+
+Original: Profile.button_2: "Save Changes"
+New: Profile.saveButtonText
+
+Original: Dashboard.text_3: "Last updated 3 days ago"
+New: Dashboard.lastUpdateStatus
+
+Translations to transform:
+${JSON.stringify(truncatedTranslations, null, 2)}`;
+
+ try {
+ const schema = z.object({
+ newKeys: z
+ .array(z.string())
+ .describe("The new descriptive keys for each translation"),
+ });
+
+ const { object } = await generateObject({
+ model: primary,
+ prompt,
+ temperature: 0.2,
+ mode: "json",
+ schema,
+ });
+
+ return translations.map((translation, i) => ({
+ ...translation,
+ key: object.newKeys[i] || translation.key,
+ }));
+ } catch (err) {
+ if (NoObjectGeneratedError.isInstance(err)) {
+ console.error("Failed to generate object from model response");
+ } else {
+ console.error("Unexpected error", err);
+ }
+ return translations;
+ }
+}
diff --git a/apps/web/src/lib/tiers.ts b/apps/web/src/lib/tiers.ts
index 20be6b3c..c93840d4 100644
--- a/apps/web/src/lib/tiers.ts
+++ b/apps/web/src/lib/tiers.ts
@@ -1,14 +1,12 @@
export const TIERS_MAX_KEYS = {
- 0: 100,
- 1: 5000,
- 2: 10000,
- 3: 20000,
- 4: 30000,
- 5: 50000,
- 6: 100000,
- // 7: 200000,
- // 8: 500000,
- // 9: 1000000,
+ 0: 500,
+ 1: 3000,
+ 2: 5000,
+ 3: 10000,
+ 4: 20000,
+ 5: 30000,
+ 6: 50000,
+ 7: 100000,
};
export const TIERS_MAX_DOCUMENTS = {
@@ -19,58 +17,37 @@ export const TIERS_MAX_DOCUMENTS = {
4: 200,
5: 300,
6: 500,
- // 7: 2000,
- // 8: 5000,
- // 9: 10000,
+ 7: 1000,
};
export const TIER_PRICES = {
- 1: 29,
- 2: 49,
- 3: 149,
- 4: 299,
- 5: 499,
- 6: 999,
- // 7: 1999,
- // 8: 4999,
- // 9: 9999,
-};
-
-export const TIER_MAX_LANGUAGES = {
- 0: 2,
- 1: 4,
- 2: 8,
- 3: 16,
- 4: 24,
- 5: 32,
- 6: 40,
- // 7: 48,
- // 8: 56,
- // 9: 64,
+ 1: 19,
+ 2: 29,
+ 3: 49,
+ 4: 149,
+ 5: 299,
+ 6: 499,
+ 7: 999,
};
export const PRODUCT_ID_MAP_PRODUCTION = {
- 1: "0cb12733-d7f9-4795-baa1-76cb4edcd239",
- 2: "1d63b754-06d6-4186-9be5-817e7693264f",
- 3: "4dc28104-46d9-42b0-a55f-d96930333ae2",
- 4: "be20ddfe-dee7-49ea-9008-3934b01dcb8a",
- 5: "6c2929f7-8941-47da-8f45-bd2fe304e384",
- 6: "b893ae5d-ae55-42fc-a919-8b7c142cf6be",
- // 7: "44278d04-34a5-4ad8-9a8d-91b3b90c0b42",
- // 8: "c7f4e979-6a90-427d-bb5c-3b4dcaa1d5f2",
- // 9: "70076651-2079-4ecf-ad3a-73294e2a715c",
+ 1: "530dfd1c-1c85-42b6-84f7-598b84f922ee",
+ 2: "0cb12733-d7f9-4795-baa1-76cb4edcd239",
+ 3: "1d63b754-06d6-4186-9be5-817e7693264f",
+ 4: "4dc28104-46d9-42b0-a55f-d96930333ae2",
+ 5: "be20ddfe-dee7-49ea-9008-3934b01dcb8a",
+ 6: "6c2929f7-8941-47da-8f45-bd2fe304e384",
+ 7: "b893ae5d-ae55-42fc-a919-8b7c142cf6be",
};
export const PRODUCT_ID_MAP_SANDBOX = {
- 1: "8f0d623f-8dc8-4975-aa00-a143108ebab0",
- 2: "2cc94f27-7cfc-40c7-9726-8e94d63fd8e2",
- 3: "89689fb1-cde9-474a-b6d1-96b672446c8b",
- 4: "cf48e7c3-7ac6-4553-a92e-1054ffb63c27",
- 5: "b53ff0db-0a16-4e33-9f98-7c7397fa5048",
- 6: "b0350cb1-2304-4a3e-940b-195a2b4a8d4c",
- // 7: "8e53c58c-1062-47a8-9492-9e29d71acfe4",
- // 8: "f2875dd4-a214-402c-9c0e-94d0ee25d184",
- // 9: "23627b2c-70bd-48a4-956c-0306336dbba1",
+ 1: "",
+ 2: "8f0d623f-8dc8-4975-aa00-a143108ebab0",
+ 3: "2cc94f27-7cfc-40c7-9726-8e94d63fd8e2",
+ 4: "89689fb1-cde9-474a-b6d1-96b672446c8b",
+ 5: "cf48e7c3-7ac6-4553-a92e-1054ffb63c27",
+ 6: "b53ff0db-0a16-4e33-9f98-7c7397fa5048",
+ 7: "b0350cb1-2304-4a3e-940b-195a2b4a8d4c",
};
export const PRODUCT_ID_MAP =
diff --git a/apps/web/src/markdown/docs/en/cli.mdx b/apps/web/src/markdown/docs/en/cli.mdx
index 5b77c0f6..6ccf5587 100644
--- a/apps/web/src/markdown/docs/en/cli.mdx
+++ b/apps/web/src/markdown/docs/en/cli.mdx
@@ -63,3 +63,53 @@ The `locale remove` command is used to remove a locale from your application.
```bash title="Terminal"
npx languine@latest locale remove pt,fr
```
+
+
+---
+
+### Overrides
+
+The `overrides` command is used to manage translation overrides in your application saved in languine.ai. Overrides allow you to customize specific translations from the Languine Dashboard.
+
+The `overrides pull` command is used to pull the latest overrides from the Languine Dashboard
+
+```bash title="Terminal"
+ npx languine@latest overrides pull
+```
+
+---
+
+
+## Overrides for source locale
+
+Sometimes you may want to get overrides for the source locale. For example, as a developer you might add translations in en.json but want to have spell checks, overrides and maintain consistent tone with other languages. You can enable this by adding your source locale to the target locales as follows:
+
+```bash title="languine.json"
+{
+ "locale": {
+ "source": "en",
+ "targets": [
+ "sv",
+ "en" <- Add your source locale here
+ ]
+ },
+ "files": {
+ "json": {
+ "include": [
+ "src/locales/[locale]/*.json"
+ ]
+ }
+ }
+}
+
+```
+
+---
+
+## Delete translations
+
+The `translations delete` command is used to delete all target translation files and remote translations from your project. This is useful when you want to start fresh or remove all translations.
+
+```bash title="Terminal"
+ npx languine@latest translations delete
+```
\ No newline at end of file
diff --git a/apps/web/src/messages/de.json b/apps/web/src/messages/de.json
index 3e450178..1d588a3a 100644
--- a/apps/web/src/messages/de.json
+++ b/apps/web/src/messages/de.json
@@ -378,7 +378,7 @@
"free": {
"title": "Kostenlos",
"price": "Kostenlos",
- "keys_limit": "Bis zu 100 Schlüssel",
+ "keys_limit": "Bis zu 500 Schlüssel",
"description": "Perfekt zum Ausprobieren",
"features": {
"unlimited_projects": "Unbegrenzte Projekte",
@@ -387,7 +387,7 @@
"analytics": "Analytik",
"context_memory": "Kontextspeicher",
"community_support": "Community-Support",
- "keys_limit": "Bis zu 100 Schlüssel",
+ "keys_limit": "Bis zu 500 Schlüssel",
"docs_limit": "Bis zu 5 Dokumente",
"languages": "2 Sprachen"
}
@@ -401,12 +401,12 @@
"priority_support": "Prioritätsunterstützung",
"priority_queues": "Prioritätsübersetzungswarteschlangen",
"languages": "Ab 4 Sprachen",
- "keys_limit": "Ab 5.000 Schlüsseln",
+ "keys_limit": "Ab 3.000 Schlüsseln",
"docs_limit": "Ab 25 Dokumenten"
}
},
"cta": "Automatisierung starten",
- "keys_limit_explanation": "Übersetzter Schlüssel: Wenn Sie 20 Quellschlüssel (wie \"Anmelden\" oder \"Willkommen!\") haben und diese in 5 Sprachen übersetzen, entspricht das 100 übersetzten Schlüsseln (20 Schlüssel x 5 Sprachen)."
+ "keys_limit_explanation": "Wir berechnen pro Schlüssel unabhängig von der Wortanzahl, um vorhersehbare Preise zu gewährleisten. Zum Beispiel: Wenn Sie 20 Quellschlüssel (wie \"Anmelden\" oder \"Willkommen!\") haben und diese in 5 Sprachen übersetzen, ergibt das 100 übersetzte Schlüssel (20 Schlüssel × 5 Sprachen)."
},
"createTeam": {
"teamName": "Teamname",
@@ -663,7 +663,7 @@
"title": "Tarif upgraden",
"upgrade_to_tier": "Upgrade auf Tarif {tier}",
"cancel": "Stornieren",
- "description": "Upgrade Ihren Tarif, um Ihre Limits zu erhöhen. Sie erhalten Zugriff auf mehr Übersetzungsschlüssel, Dokumente, Sprachen und priorisierte Unterstützung."
+ "description": "Upgrade deinen Plan, um deine Grenzen zu erhöhen. Du erhältst Zugang zu mehr Übersetzungsschlüsseln, Dokumenten und priorisierter Unterstützung."
},
"test_translation": {
"title": "Übersetzung testen",
diff --git a/apps/web/src/messages/en.json b/apps/web/src/messages/en.json
index cf619acf..e1aac167 100644
--- a/apps/web/src/messages/en.json
+++ b/apps/web/src/messages/en.json
@@ -378,7 +378,7 @@
"free": {
"title": "Free",
"price": "Free",
- "keys_limit": "Up to 100 keys",
+ "keys_limit": "Up to 500 keys",
"description": "Perfect when trying out",
"features": {
"unlimited_projects": "Unlimited projects",
@@ -387,9 +387,8 @@
"analytics": "Analytics",
"context_memory": "Context memory",
"community_support": "Community support",
- "keys_limit": "Up to 100 keys",
- "docs_limit": "Up to 5 documents",
- "languages": "2 languages"
+ "keys_limit": "Up to 500 keys",
+ "docs_limit": "Up to 5 documents"
}
},
"pro": {
@@ -401,12 +400,12 @@
"priority_support": "Priority support",
"priority_queues": "Priority translation queues",
"languages": "Starting from 4 languages",
- "keys_limit": "Starting from 5 000 keys",
+ "keys_limit": "Starting from 3 000 keys",
"docs_limit": "Starting from 25 documents"
}
},
"cta": "Start automating",
- "keys_limit_explanation": "Translated key: If you have 20 source keys (like \"Sign Up\" or \"Welcome!\") and translate them into 5 languages, that equals 100 translated keys (20 keys x 5 languages)."
+ "keys_limit_explanation": "We charge per key regardless of word count, for predictable pricing. For example: If you have 20 source keys (like \"Sign Up\" or \"Welcome!\") and translate them into 5 languages, that equals 100 translated keys (20 keys × 5 languages)."
},
"createTeam": {
"teamName": "Team Name",
@@ -663,7 +662,7 @@
"title": "Upgrade Plan",
"upgrade_to_tier": "Upgrade to tier {tier}",
"cancel": "Cancel",
- "description": "Upgrade your plan to increase your limits. You'll get access to more translation keys, documents, languages, and priority support."
+ "description": "Upgrade your plan to increase your limits. You'll get access to more translation keys, documents, and priority support."
},
"test_translation": {
"title": "Test Translation",
diff --git a/apps/web/src/messages/es.json b/apps/web/src/messages/es.json
index fccdf541..95cb9b10 100644
--- a/apps/web/src/messages/es.json
+++ b/apps/web/src/messages/es.json
@@ -378,7 +378,7 @@
"free": {
"title": "Gratis",
"price": "Gratis",
- "keys_limit": "Hasta 100 claves",
+ "keys_limit": "Hasta 500 claves",
"description": "Perfecto para probar",
"features": {
"unlimited_projects": "Proyectos ilimitados",
@@ -387,7 +387,7 @@
"analytics": "Analíticas",
"context_memory": "Memoria de contexto",
"community_support": "Soporte comunitario",
- "keys_limit": "Hasta 100 claves",
+ "keys_limit": "Hasta 500 claves",
"docs_limit": "Hasta 5 documentos",
"languages": "2 idiomas"
}
@@ -401,12 +401,12 @@
"priority_support": "Soporte prioritario",
"priority_queues": "Colas de traducción prioritarias",
"languages": "A partir de 4 idiomas",
- "keys_limit": "A partir de 5,000 claves",
+ "keys_limit": "Comenzando desde 3 000 claves",
"docs_limit": "A partir de 25 documentos"
}
},
"cta": "Comience a automatizar",
- "keys_limit_explanation": "Clave traducida: Si tiene 20 claves de origen (como \"Regístrate\" o \"¡Bienvenido!\") y las traduce a 5 idiomas, eso equivale a 100 claves traducidas (20 claves x 5 idiomas)."
+ "keys_limit_explanation": "Cobramos por clave independientemente del conteo de palabras, para una tarificación predecible. Por ejemplo: Si tienes 20 claves de origen (como \"Regístrate\" o \"¡Bienvenido!\") y las traduces a 5 idiomas, eso equivale a 100 claves traducidas (20 claves × 5 idiomas)."
},
"createTeam": {
"teamName": "Nombre del Equipo",
@@ -663,7 +663,7 @@
"title": "Actualizar plan",
"upgrade_to_tier": "Actualizar a nivel {tier}",
"cancel": "Cancelar",
- "description": "Actualiza tu plan para aumentar tus límites. Obtendrás acceso a más claves de traducción, documentos, idiomas y soporte prioritario."
+ "description": "Actualiza tu plan para aumentar tus límites. Tendrás acceso a más claves de traducción, documentos y soporte prioritario."
},
"test_translation": {
"title": "Prueba de traducción",
diff --git a/apps/web/src/messages/fi.json b/apps/web/src/messages/fi.json
index d38712a4..a44bcc8f 100644
--- a/apps/web/src/messages/fi.json
+++ b/apps/web/src/messages/fi.json
@@ -378,7 +378,7 @@
"free": {
"title": "Ilmainen",
"price": "Ilmainen",
- "keys_limit": "Enintään 100 avainta",
+ "keys_limit": "Jopa 500 avainta",
"description": "Ihan täydellinen kokeiluun",
"features": {
"unlimited_projects": "Rajoittamaton määrä projekteja",
@@ -387,7 +387,7 @@
"analytics": "Analytiikka",
"context_memory": "Kontekstimuisti",
"community_support": "Yhteisön tuki",
- "keys_limit": "Enintään 100 avainta",
+ "keys_limit": "Jopa 500 avainta",
"docs_limit": "Enintään 5 asiakirjaa",
"languages": "2 kieltä"
}
@@ -401,12 +401,12 @@
"priority_support": "Etusijatuettu",
"priority_queues": "Etusijajonot käännöksille",
"languages": "Alkaen 4 kielestä",
- "keys_limit": "Alkaen 5 000 avainta",
+ "keys_limit": "Aloittaen 3 000 avaimesta",
"docs_limit": "Alkaen 25 asiakirjasta"
}
},
"cta": "Aloita automaatio",
- "keys_limit_explanation": "Käännetty avain: Jos sinulla on 20 lähdeavainta (kuten \"Rekisteröidy\" tai \"Tervetuloa!\") ja käännät ne 5 kielelle, se tarkoittaa 100 käännettyä avainta (20 avainta x 5 kieltä)."
+ "keys_limit_explanation": "Perimme maksun avainta kohden sanamäärästä riippumatta, jotta hinnoittelu on ennakoitavaa. Esimerkiksi: Jos sinulla on 20 lähdeavainta (kuten \"Rekisteröidy\" tai \"Tervetuloa!\") ja käännet ne 5 kielelle, se tarkoittaa 100 käännettyä avainta (20 avainta × 5 kieltä)."
},
"createTeam": {
"teamName": "Tiimin nimi",
@@ -663,7 +663,7 @@
"title": "Päivitä suunnitelma",
"upgrade_to_tier": "Päivitä tasolle {tier}",
"cancel": "Peruuta",
- "description": "Päivitä suunnitelmasi kasvattaaksesi rajoja. Saat pääsyn useampiin käännösavaimiin, asiakirjoihin, kieliin ja ensisijaiseen tukeen."
+ "description": "Päivitä suunnitelmasi lisätäksesi rajoja. Saat pääsyn useampiin käännösohjeisiin, asiakirjoihin ja ensisijaiseen tukeen."
},
"test_translation": {
"title": "Testaa käännös",
diff --git a/apps/web/src/messages/fr.json b/apps/web/src/messages/fr.json
index 9fae2c69..9cbb76bb 100644
--- a/apps/web/src/messages/fr.json
+++ b/apps/web/src/messages/fr.json
@@ -378,7 +378,7 @@
"free": {
"title": "Gratuit",
"price": "Gratuit",
- "keys_limit": "Jusqu'à 100 clés",
+ "keys_limit": "Jusqu'à 500 clés",
"description": "Parfait pour essayer",
"features": {
"unlimited_projects": "Projets illimités",
@@ -387,7 +387,7 @@
"analytics": "Analytique",
"context_memory": "Mémoire contextuelle",
"community_support": "Soutien communautaire",
- "keys_limit": "Jusqu'à 100 clés",
+ "keys_limit": "Jusqu'à 500 clés",
"docs_limit": "Jusqu'à 5 documents",
"languages": "2 langues"
}
@@ -401,12 +401,12 @@
"priority_support": "Support prioritaire",
"priority_queues": "Files de traduction prioritaires",
"languages": "À partir de 4 langues",
- "keys_limit": "À partir de 5 000 clés",
+ "keys_limit": "À partir de 3 000 clés",
"docs_limit": "À partir de 25 documents"
}
},
"cta": "Commencez à automatiser",
- "keys_limit_explanation": "Clé traduite : Si vous avez 20 clés source (comme \"S'inscrire\" ou \"Bienvenue!\") et que vous les traduisez en 5 langues, cela équivaut à 100 clés traduites (20 clés x 5 langues)."
+ "keys_limit_explanation": "Nous facturons par clé, indépendamment du nombre de mots, pour un tarif prévisible. Par exemple : Si vous avez 20 clés source (comme \"S'inscrire\" ou \"Bienvenue!\") et que vous les traduisez en 5 langues, cela équivaut à 100 clés traduites (20 clés × 5 langues)."
},
"createTeam": {
"teamName": "Nom de l'Équipe",
@@ -663,7 +663,7 @@
"title": "Mettre à niveau le plan",
"upgrade_to_tier": "Mettre à niveau vers le niveau {tier}",
"cancel": "Annuler",
- "description": "Mettez à niveau votre plan pour augmenter vos limites. Vous aurez accès à plus de clés de traduction, de documents, de langues et à un support prioritaire."
+ "description": "Mettez à niveau votre plan pour augmenter vos limites. Vous aurez accès à plus de clés de traduction, de documents et à un support prioritaire."
},
"test_translation": {
"title": "Tester la traduction",
diff --git a/apps/web/src/messages/it.json b/apps/web/src/messages/it.json
index 7b4261ee..42ce37cb 100644
--- a/apps/web/src/messages/it.json
+++ b/apps/web/src/messages/it.json
@@ -378,7 +378,7 @@
"free": {
"title": "Gratuito",
"price": "Gratuito",
- "keys_limit": "Fino a 100 chiavi",
+ "keys_limit": "Fino a 500 chiavi",
"description": "Perfetto per provare",
"features": {
"unlimited_projects": "Progetti illimitati",
@@ -387,7 +387,7 @@
"analytics": "Analisi",
"context_memory": "Memoria contestuale",
"community_support": "Supporto della comunità",
- "keys_limit": "Fino a 100 chiavi",
+ "keys_limit": "Fino a 500 chiavi",
"docs_limit": "Fino a 5 documenti",
"languages": "2 lingue"
}
@@ -401,12 +401,12 @@
"priority_support": "Supporto prioritario",
"priority_queues": "Code di traduzione prioritarie",
"languages": "A partire da 4 lingue",
- "keys_limit": "A partire da 5.000 chiavi",
+ "keys_limit": "A partire da 3 000 chiavi",
"docs_limit": "A partire da 25 documenti"
}
},
"cta": "Inizia ad automatizzare",
- "keys_limit_explanation": "Chiave tradotta: Se hai 20 chiavi sorgente (come \"Iscriviti\" o \"Benvenuto!\") e le traduci in 5 lingue, ciò equivale a 100 chiavi tradotte (20 chiavi x 5 lingue)."
+ "keys_limit_explanation": "Addebitiamo per chiave indipendentemente dal conteggio delle parole, per una tariffazione prevedibile. Ad esempio: Se hai 20 chiavi sorgente (come \"Iscriviti\" o \"Benvenuto!\") e le traduci in 5 lingue, ciò equivale a 100 chiavi tradotte (20 chiavi × 5 lingue)."
},
"createTeam": {
"teamName": "Nome del Team",
@@ -663,7 +663,7 @@
"title": "Aggiorna piano",
"upgrade_to_tier": "Aggiorna a livello {tier}",
"cancel": "Annulla",
- "description": "Aggiorna il tuo piano per aumentare i tuoi limiti. Avrai accesso a più chiavi di traduzione, documenti, lingue e supporto prioritario."
+ "description": "Aggiorna il tuo piano per aumentare i tuoi limiti. Avrai accesso a più chiavi di traduzione, documenti e supporto prioritario."
},
"test_translation": {
"title": "Test di traduzione",
diff --git a/apps/web/src/messages/ko.json b/apps/web/src/messages/ko.json
index 03632163..f1366787 100644
--- a/apps/web/src/messages/ko.json
+++ b/apps/web/src/messages/ko.json
@@ -378,7 +378,7 @@
"free": {
"title": "무료",
"price": "무료",
- "keys_limit": "최대 100개 키",
+ "keys_limit": "최대 500개의 키",
"description": "시험해 보기 완벽",
"features": {
"unlimited_projects": "무제한 프로젝트",
@@ -387,7 +387,7 @@
"analytics": "분석",
"context_memory": "맥락 기억",
"community_support": "커뮤니티 지원",
- "keys_limit": "최대 100개 키",
+ "keys_limit": "최대 500개의 키",
"docs_limit": "최대 5개 문서",
"languages": "2개 언어"
}
@@ -401,12 +401,12 @@
"priority_support": "우선 지원",
"priority_queues": "우선 번역 대기열",
"languages": "최소 4개 언어",
- "keys_limit": "최소 5,000개 키",
+ "keys_limit": "3,000개의 키부터 시작",
"docs_limit": "최소 25개 문서"
}
},
"cta": "자동화 시작",
- "keys_limit_explanation": "번역된 키: 20개의 소스 키(예: \"가입하기\" 또는 \"환영합니다!\")가 있고 이를 5개 언어로 번역하면, 총 100개의 번역된 키가 됩니다(20 키 x 5 언어)."
+ "keys_limit_explanation": "우리는 단어 수에 관계없이 키당 요금을 부과하여 예측 가능한 가격을 제공합니다. 예를 들어: 20개의 소스 키(예: \"가입하기\" 또는 \"환영합니다!\")가 있고 이를 5개 언어로 번역하면 100개의 번역된 키(20개 키 × 5개 언어)가 됩니다."
},
"createTeam": {
"teamName": "팀 이름",
@@ -663,7 +663,7 @@
"title": "플랜 업그레이드",
"upgrade_to_tier": "등급 {tier}로 업그레이드",
"cancel": "취소",
- "description": "제한을 늘리기 위해 플랜을 업그레이드하세요. 더 많은 번역 키, 문서, 언어 및 우선 지원에 접근할 수 있습니다."
+ "description": "플랜을 업그레이드하여 한도를 늘리세요. 더 많은 번역 키, 문서 및 우선 지원에 접근할 수 있습니다."
},
"test_translation": {
"title": "번역 테스트",
diff --git a/apps/web/src/messages/nl.json b/apps/web/src/messages/nl.json
index f8a2ec48..115f5a4e 100644
--- a/apps/web/src/messages/nl.json
+++ b/apps/web/src/messages/nl.json
@@ -378,7 +378,7 @@
"free": {
"title": "Gratis",
"price": "Gratis",
- "keys_limit": "Tot 100 sleutels",
+ "keys_limit": "Tot 500 sleutels",
"description": "Perfect voor uitproberen",
"features": {
"unlimited_projects": "Onbeperkte projecten",
@@ -387,7 +387,7 @@
"analytics": "Analytics",
"context_memory": "Contextgeheugen",
"community_support": "Gemeenschapssteun",
- "keys_limit": "Tot 100 sleutels",
+ "keys_limit": "Tot 500 sleutels",
"docs_limit": "Tot 5 documenten",
"languages": "2 talen"
}
@@ -401,12 +401,12 @@
"priority_support": "Prioriteitssteun",
"priority_queues": "Prioriteitsvertalingswachtrijen",
"languages": "Beginnend vanaf 4 talen",
- "keys_limit": "Beginnend vanaf 5.000 sleutels",
+ "keys_limit": "Beginnen met 3 000 sleutels",
"docs_limit": "Beginnend vanaf 25 documenten"
}
},
"cta": "Begin met automatiseren",
- "keys_limit_explanation": "Vertaald sleutel: Als u 20 bronsleutels heeft (zoals \"Aanmelden\" of \"Welkom!\") en deze in 5 talen vertaalt, komt dat neer op 100 vertaalde sleutels (20 sleutels x 5 talen)."
+ "keys_limit_explanation": "We rekenen per sleutel ongeacht het aantal woorden, voor voorspelbare prijzen. Bijvoorbeeld: Als je 20 bronsleutels hebt (zoals \"Aanmelden\" of \"Welkom!\") en deze in 5 talen vertaalt, dan komt dat neer op 100 vertaalde sleutels (20 sleutels × 5 talen)."
},
"createTeam": {
"teamName": "Teamnaam",
@@ -663,7 +663,7 @@
"title": "Upgrade Plan",
"upgrade_to_tier": "Upgrade naar laag {tier}",
"cancel": "Annuleren",
- "description": "Upgrade uw plan om uw limieten te verhogen. U krijgt toegang tot meer vertaal sleutels, documenten, talen en prioritaire ondersteuning."
+ "description": "Upgrade uw plan om uw limieten te verhogen. U krijgt toegang tot meer vertaalde sleutels, documenten en prioritaire ondersteuning."
},
"test_translation": {
"title": "Test Vertaling",
diff --git a/apps/web/src/messages/no.json b/apps/web/src/messages/no.json
index 6f4eb31b..7a11815e 100644
--- a/apps/web/src/messages/no.json
+++ b/apps/web/src/messages/no.json
@@ -378,7 +378,7 @@
"free": {
"title": "Gratis",
"price": "Gratis",
- "keys_limit": "Opptil 100 nøkler",
+ "keys_limit": "Opptil 500 nøkler",
"description": "Perfekt når du prøver ut",
"features": {
"unlimited_projects": "Ubegrensede prosjekter",
@@ -387,7 +387,7 @@
"analytics": "Analyse",
"context_memory": "Kontekstmemo",
"community_support": "Fellesskapsstøtte",
- "keys_limit": "Opptil 100 nøkler",
+ "keys_limit": "Opptil 500 nøkler",
"docs_limit": "Opptil 5 dokumenter",
"languages": "2 språk"
}
@@ -401,12 +401,12 @@
"priority_support": "Prioritert støtte",
"priority_queues": "Prioriterte oversettelseskøer",
"languages": "Fra 4 språk",
- "keys_limit": "Fra 5 000 nøkler",
+ "keys_limit": "Starter fra 3 000 nøkler",
"docs_limit": "Fra 25 dokumenter"
}
},
"cta": "Begynn å automatisere",
- "keys_limit_explanation": "Oversatt nøkkel: Hvis du har 20 kilde nøkler (som \"Registrer deg\" eller \"Velkommen!\") og oversetter dem til 5 språk, tilsvarer det 100 oversatte nøkler (20 nøkler x 5 språk)."
+ "keys_limit_explanation": "Vi tar betalt per nøkkel uavhengig av antall ord, for forutsigbare priser. For eksempel: Hvis du har 20 kildnøkler (som \"Registrer deg\" eller \"Velkommen!\") og oversetter dem til 5 språk, blir det 100 oversatte nøkler (20 nøkler × 5 språk)."
},
"createTeam": {
"teamName": "Teamnavn",
@@ -663,7 +663,7 @@
"title": "Oppgrader plan",
"upgrade_to_tier": "Oppgrader til nivå {tier}",
"cancel": "Kanseller",
- "description": "Oppgrader planen din for å øke grensene dine. Du får tilgang til flere oversettelsesnøkler, dokumenter, språk og prioritert støtte."
+ "description": "Oppgrader planen din for å øke grensene dine. Du får tilgang til flere oversettelsesnøkler, dokumenter og prioritert støtte."
},
"test_translation": {
"title": "Test oversettelse",
diff --git a/apps/web/src/messages/pl.json b/apps/web/src/messages/pl.json
index aae69e8d..a1de9ed1 100644
--- a/apps/web/src/messages/pl.json
+++ b/apps/web/src/messages/pl.json
@@ -378,7 +378,7 @@
"free": {
"title": "Darmowy",
"price": "Darmowy",
- "keys_limit": "Do 100 kluczy",
+ "keys_limit": "Do 500 kluczy",
"description": "Idealny do wypróbowania",
"features": {
"unlimited_projects": "Nieograniczone projekty",
@@ -387,7 +387,7 @@
"analytics": "Analiza",
"context_memory": "Pamięć kontekstowa",
"community_support": "Wsparcie społeczności",
- "keys_limit": "Do 100 kluczy",
+ "keys_limit": "Do 500 kluczy",
"docs_limit": "Do 5 dokumentów",
"languages": "2 języki"
}
@@ -401,12 +401,12 @@
"priority_support": "Priorytetowe wsparcie",
"priority_queues": "Priorytetowe kolejki tłumaczeń",
"languages": "Od 4 języków",
- "keys_limit": "Od 5 000 kluczy",
+ "keys_limit": "Zaczynając od 3 000 kluczy",
"docs_limit": "Od 25 dokumentów"
}
},
"cta": "Rozpocznij automatyzację",
- "keys_limit_explanation": "Przetłumaczony klucz: Jeśli masz 20 kluczy źródłowych (jak \"Zarejestruj się\" lub \"Witaj!\") i przetłumaczysz je na 5 języków, to daje 100 przetłumaczonych kluczy (20 kluczy x 5 języków)."
+ "keys_limit_explanation": "Naliczamy opłatę za klucz, niezależnie od liczby słów, aby zapewnić przewidywalne ceny. Na przykład: Jeśli masz 20 kluczy źródłowych (takich jak \"Zarejestruj się\" lub \"Witamy!\") i przetłumaczysz je na 5 języków, to daje 100 przetłumaczonych kluczy (20 kluczy × 5 języków)."
},
"createTeam": {
"teamName": "Nazwa zespołu",
@@ -663,7 +663,7 @@
"title": "Zmień plan",
"upgrade_to_tier": "Ulepsz do poziomu {tier}",
"cancel": "Anuluj",
- "description": "Ulepsz swój plan, aby zwiększyć limity. Zyskasz dostęp do większej liczby kluczy tłumaczeń, dokumentów, języków oraz priorytetowego wsparcia."
+ "description": "Zaktualizuj swój plan, aby zwiększyć swoje limity. Uzyskasz dostęp do większej liczby kluczy tłumaczeń, dokumentów i priorytetowego wsparcia."
},
"test_translation": {
"title": "Test tłumaczenia",
diff --git a/apps/web/src/messages/pt.json b/apps/web/src/messages/pt.json
index 3e1d621a..5d101b39 100644
--- a/apps/web/src/messages/pt.json
+++ b/apps/web/src/messages/pt.json
@@ -378,7 +378,7 @@
"free": {
"title": "Gratuito",
"price": "Gratuito",
- "keys_limit": "Até 100 chaves",
+ "keys_limit": "Até 500 chaves",
"description": "Perfeito para experimentar",
"features": {
"unlimited_projects": "Projetos ilimitados",
@@ -387,7 +387,7 @@
"analytics": "Análises",
"context_memory": "Memória de contexto",
"community_support": "Suporte da comunidade",
- "keys_limit": "Até 100 chaves",
+ "keys_limit": "Até 500 chaves",
"docs_limit": "Até 5 documentos",
"languages": "2 idiomas"
}
@@ -401,12 +401,12 @@
"priority_support": "Suporte prioritário",
"priority_queues": "Filas de tradução prioritárias",
"languages": "A partir de 4 idiomas",
- "keys_limit": "A partir de 5.000 chaves",
+ "keys_limit": "Começando a partir de 3 000 chaves",
"docs_limit": "A partir de 25 documentos"
}
},
"cta": "Comece a automatizar",
- "keys_limit_explanation": "Chave traduzida: Se você tiver 20 chaves de origem (como \"Inscreva-se\" ou \"Bem-vindo!\") e traduzi-las para 5 idiomas, isso equivale a 100 chaves traduzidas (20 chaves x 5 idiomas)."
+ "keys_limit_explanation": "Cobramos por chave, independentemente da contagem de palavras, para preços previsíveis. Por exemplo: Se você tiver 20 chaves de origem (como \"Inscreva-se\" ou \"Bem-vindo!\") e traduzi-las para 5 idiomas, isso equivale a 100 chaves traduzidas (20 chaves × 5 idiomas)."
},
"createTeam": {
"teamName": "Nome da Equipe",
@@ -663,7 +663,7 @@
"title": "Atualizar Plano",
"upgrade_to_tier": "Atualizar para o nível {tier}",
"cancel": "Cancelar",
- "description": "Atualize seu plano para aumentar seus limites. Você terá acesso a mais chaves de tradução, documentos, idiomas e suporte prioritário."
+ "description": "Atualize seu plano para aumentar seus limites. Você terá acesso a mais chaves de tradução, documentos e suporte prioritário."
},
"test_translation": {
"title": "Teste de Tradução",
diff --git a/apps/web/src/messages/sv.json b/apps/web/src/messages/sv.json
index 4cff945b..757b82b8 100644
--- a/apps/web/src/messages/sv.json
+++ b/apps/web/src/messages/sv.json
@@ -390,7 +390,7 @@
"free": {
"title": "Gratis",
"price": "Gratis",
- "keys_limit": "Upp till 100 nycklar",
+ "keys_limit": "Upp till 500 nycklar",
"description": "Perfekt när du testar",
"features": {
"unlimited_projects": "Obegränsade projekt",
@@ -399,7 +399,7 @@
"analytics": "Analys",
"context_memory": "Kontextminne",
"community_support": "Gemenskapsstöd",
- "keys_limit": "Upp till 100 nycklar",
+ "keys_limit": "Upp till 500 nycklar",
"docs_limit": "Upp till 5 dokument",
"languages": "2 språk"
}
@@ -413,12 +413,12 @@
"priority_support": "Prioriterat stöd",
"priority_queues": "Prioriterade översättningsköer",
"languages": "Från 4 språk",
- "keys_limit": "Från 5 000 nycklar",
+ "keys_limit": "Börjar från 3 000 nycklar",
"docs_limit": "Från 25 dokument"
}
},
"cta": "Börja automatisera",
- "keys_limit_explanation": "Översatt nyckel: Om du har 20 källnycklar (som \"Registrera dig\" eller \"Välkommen!\") och översätter dem till 5 språk, motsvarar det 100 översatta nycklar (20 nycklar x 5 språk)."
+ "keys_limit_explanation": "Vi debiterar per nyckel oavsett antal ord, för förutsägbara priser. Till exempel: Om du har 20 källnycklar (som \"Registrera dig\" eller \"Välkommen!\") och översätter dem till 5 språk, blir det 100 översatta nycklar (20 nycklar × 5 språk)."
},
"createTeam": {
"teamName": "Teamnamn",
@@ -663,7 +663,7 @@
"title": "Uppgradera plan",
"upgrade_to_tier": "Uppgradera till nivå {tier}",
"cancel": "Avbryt",
- "description": "Uppgradera din plan för att öka dina gränser. Du får tillgång till fler översättningsnycklar, dokument, språk och prioriterad support."
+ "description": "Uppgradera din plan för att öka dina gränser. Du får tillgång till fler översättningsnycklar, dokument och prioriterad support."
},
"test_translation": {
"title": "Testa översättning",
diff --git a/apps/web/src/trpc/routers/jobs.ts b/apps/web/src/trpc/routers/jobs.ts
index 03e6fb07..25f6cda5 100644
--- a/apps/web/src/trpc/routers/jobs.ts
+++ b/apps/web/src/trpc/routers/jobs.ts
@@ -1,4 +1,5 @@
import type { startTranslationsTask } from "@/jobs/translate/start-translations";
+import { transformKeys } from "@/jobs/utils/transform";
import { tasks } from "@trigger.dev/sdk/v3";
import { createTRPCRouter, protectedProcedure } from "../init";
import { hasProjectAccess } from "../permissions/project";
@@ -7,7 +8,7 @@ import {
getProjectOrganization,
getTranslationTaskOptions,
} from "./jobs.utils";
-import { jobsSchema } from "./schema";
+import { jobsSchema, transformSchema } from "./schema";
export const jobsRouter = createTRPCRouter({
startJob: protectedProcedure
@@ -65,4 +66,14 @@ export const jobsRouter = createTRPCRouter({
},
};
}),
+
+ startTransformJob: protectedProcedure
+ .input(transformSchema)
+ // .use(hasProjectAccess)
+ .mutation(async ({ input, ctx }) => {
+ console.log("input", input.translations);
+ const result = await transformKeys(input.translations);
+ console.log("result", result);
+ return result;
+ }),
});
diff --git a/apps/web/src/trpc/routers/jobs.utils.ts b/apps/web/src/trpc/routers/jobs.utils.ts
index f0b3e7cd..04d67656 100644
--- a/apps/web/src/trpc/routers/jobs.utils.ts
+++ b/apps/web/src/trpc/routers/jobs.utils.ts
@@ -2,11 +2,7 @@ import { connectDb } from "@/db";
import { getOrganizationLimits } from "@/db/queries/organization";
import type { organizations } from "@/db/schema";
import { projects } from "@/db/schema";
-import {
- TIERS_MAX_DOCUMENTS,
- TIERS_MAX_KEYS,
- TIER_MAX_LANGUAGES,
-} from "@/lib/tiers";
+import { TIERS_MAX_DOCUMENTS, TIERS_MAX_KEYS } from "@/lib/tiers";
import { TRPCError } from "@trpc/server";
import { eq } from "drizzle-orm";
import type { jobsSchema } from "./schema";
@@ -57,24 +53,8 @@ export async function checkTranslationLimits(
): Promise
{
const { totalKeys, totalDocuments } = await getOrganizationLimits(org.id);
- if (
- input.targetLanguages.length >
- TIER_MAX_LANGUAGES[org.tier as keyof typeof TIER_MAX_LANGUAGES]
- ) {
- return {
- meta: {
- plan: org.plan,
- tier: org.tier,
- organizationId: org.id,
- },
- error: {
- code: "LANGUAGES_LIMIT_REACHED",
- message: "You have reached the maximum number of languages",
- },
- };
- }
-
- const nextTotalDocuments = totalDocuments + 1 * input.targetLanguages.length;
+ const nextTotalDocuments =
+ totalDocuments > 0 ? totalDocuments + 1 * input.targetLanguages.length : 0;
const currentDocumentsLimit =
TIERS_MAX_DOCUMENTS[org.tier as keyof typeof TIERS_MAX_DOCUMENTS];
diff --git a/apps/web/src/trpc/routers/schema.ts b/apps/web/src/trpc/routers/schema.ts
index ba708155..c19f557d 100644
--- a/apps/web/src/trpc/routers/schema.ts
+++ b/apps/web/src/trpc/routers/schema.ts
@@ -181,3 +181,27 @@ export const organizationStatsSchema = z.object({
});
export type OrganizationStatsSchema = z.infer;
+
+export const transformSchema = z.object({
+ projectId: z.string(),
+ translations: z.array(
+ z.object({
+ key: z.string(),
+ value: z.string(),
+ }),
+ ),
+});
+
+export const getOverriddenTranslationsSchema = z.object({
+ projectId: z.string(),
+});
+
+export type GetOverriddenTranslationsSchema = z.infer<
+ typeof getOverriddenTranslationsSchema
+>;
+
+export const deleteTranslationsSchema = z.object({
+ projectId: z.string(),
+});
+
+export type DeleteTranslationsSchema = z.infer;
diff --git a/apps/web/src/trpc/routers/translate.ts b/apps/web/src/trpc/routers/translate.ts
index 10ec5541..7df0ae0f 100644
--- a/apps/web/src/trpc/routers/translate.ts
+++ b/apps/web/src/trpc/routers/translate.ts
@@ -1,6 +1,8 @@
import { connectDb } from "@/db";
import {
deleteKeys,
+ deleteTranslations,
+ getOverriddenTranslations,
getProjectLocales,
getTranslationsByKey,
getTranslationsBySlug,
@@ -13,6 +15,8 @@ import { isOrganizationMember } from "../permissions/organization";
import { hasProjectAccess } from "../permissions/project";
import {
deleteKeysSchema,
+ deleteTranslationsSchema,
+ getOverriddenTranslationsSchema,
projectLocalesSchema,
translateSchema,
translationsByKeySchema,
@@ -86,4 +90,20 @@ export const translateRouter = createTRPCRouter({
return updatedTranslations;
}),
+
+ getOverriddenTranslations: protectedProcedure
+ .input(getOverriddenTranslationsSchema)
+ .use(hasProjectAccess)
+ .query(async ({ input }) => {
+ const data = await getOverriddenTranslations(input);
+ return data;
+ }),
+
+ deleteTranslations: protectedProcedure
+ .input(deleteTranslationsSchema)
+ .use(hasProjectAccess)
+ .mutation(async ({ input }) => {
+ const data = await deleteTranslations(input);
+ return data;
+ }),
});
diff --git a/bun.lock b/bun.lock
index d134d591..935ac38f 100644
--- a/bun.lock
+++ b/bun.lock
@@ -13,6 +13,7 @@
"@changesets/changelog-github": "^0.5.0",
"@changesets/cli": "^2.27.12",
"@types/bun": "^1.2.2",
+ "@types/jscodeshift": "^0.12.0",
"turbo": "2.4.0",
"typescript": "^5.7.3",
},
@@ -53,7 +54,7 @@
"@react-email/font": "0.0.9",
"@shikijs/rehype": "^2.3.1",
"@tanstack/react-query": "5.66.0",
- "@trigger.dev/sdk": "3.3.13",
+ "@trigger.dev/sdk": "3.3.17",
"@trpc/client": "11.0.0-rc.700",
"@trpc/react-query": "11.0.0-rc.700",
"@trpc/server": "11.0.0-rc.700",
@@ -91,7 +92,7 @@
"zod": "3.24.1",
},
"devDependencies": {
- "@trigger.dev/build": "3.3.13",
+ "@trigger.dev/build": "3.3.17",
"@types/node": "22",
"@types/pg": "8.11.11",
"@types/react": "19",
@@ -196,7 +197,7 @@
},
"packages/cli": {
"name": "languine",
- "version": "3.0.4",
+ "version": "3.1.2",
"bin": "dist/index.js",
"dependencies": {
"@clack/prompts": "^0.10.0",
@@ -212,6 +213,7 @@
"fast-glob": "^3.3.3",
"fast-xml-parser": "^4.5.1",
"gettext-parser": "^8.0.0",
+ "jscodeshift": "^0.15.1",
"jsdom": "^26.0.0",
"json2php": "^0.0.12",
"json5": "^2.2.3",
@@ -232,6 +234,7 @@
},
"devDependencies": {
"@types/gettext-parser": "^4.0.4",
+ "@types/jscodeshift": "^0.11.11",
"@types/mdast": "^4.0.4",
"@types/plist": "^3.0.5",
"tsup": "^8.3.6",
@@ -268,7 +271,7 @@
},
},
"packages": {
- "@0no-co/graphql.web": ["@0no-co/graphql.web@1.0.13", "", { "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" }, "optionalPeers": ["graphql"] }, "sha512-jqYxOevheVTU1S36ZdzAkJIdvRp2m3OYIG5SEoKDw5NI8eVwkoI0D/Q3DYNGmXCxkA6CQuoa7zvMiDPTLqUNuw=="],
+ "@0no-co/graphql.web": ["@0no-co/graphql.web@1.1.2", "", { "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" }, "optionalPeers": ["graphql"] }, "sha512-N2NGsU5FLBhT8NZ+3l2YrzZSHITjNXNuDhC4iDiikv0IujaJ0Xc6xIxQZ/Ek3Cb+rgPjnLHYyJm11tInuJn+cw=="],
"@ai-sdk/openai": ["@ai-sdk/openai@1.1.4", "", { "dependencies": { "@ai-sdk/provider": "1.0.6", "@ai-sdk/provider-utils": "2.1.4" }, "peerDependencies": { "zod": "^3.0.0" } }, "sha512-C1a+p8lXzy684TdgSqQqubmp2YHm1P/mPXNzlcpJUb/T3xl1Uvw597V9wVeEvCynmimXI9WKRvLMQS/XnBljmg=="],
@@ -284,21 +287,21 @@
"@ampproject/remapping": ["@ampproject/remapping@2.3.0", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="],
- "@asamuzakjp/css-color": ["@asamuzakjp/css-color@2.8.3", "", { "dependencies": { "@csstools/css-calc": "^2.1.1", "@csstools/css-color-parser": "^3.0.7", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "lru-cache": "^10.4.3" } }, "sha512-GIc76d9UI1hCvOATjZPyHFmE5qhRccp3/zGfMPapK3jBi+yocEzp6BBB0UnfRYP9NP4FANqUZYb0hnfs3TM3hw=="],
+ "@asamuzakjp/css-color": ["@asamuzakjp/css-color@3.1.1", "", { "dependencies": { "@csstools/css-calc": "^2.1.2", "@csstools/css-color-parser": "^3.0.8", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "lru-cache": "^10.4.3" } }, "sha512-hpRD68SV2OMcZCsrbdkccTw5FXjNDLo5OuqSHyHZfwweGsDWZwDJ2+gONyNAbazZclobMirACLw0lk8WVxIqxA=="],
"@babel/code-frame": ["@babel/code-frame@7.26.2", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.25.9", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" } }, "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ=="],
- "@babel/compat-data": ["@babel/compat-data@7.26.5", "", {}, "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg=="],
+ "@babel/compat-data": ["@babel/compat-data@7.26.8", "", {}, "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ=="],
- "@babel/core": ["@babel/core@7.26.7", "", { "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.26.2", "@babel/generator": "^7.26.5", "@babel/helper-compilation-targets": "^7.26.5", "@babel/helper-module-transforms": "^7.26.0", "@babel/helpers": "^7.26.7", "@babel/parser": "^7.26.7", "@babel/template": "^7.25.9", "@babel/traverse": "^7.26.7", "@babel/types": "^7.26.7", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-SRijHmF0PSPgLIBYlWnG0hyeJLwXE2CgpsXaMOrtt2yp9/86ALw6oUlj9KYuZ0JN07T4eBMVIW4li/9S1j2BGA=="],
+ "@babel/core": ["@babel/core@7.26.10", "", { "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.26.2", "@babel/generator": "^7.26.10", "@babel/helper-compilation-targets": "^7.26.5", "@babel/helper-module-transforms": "^7.26.0", "@babel/helpers": "^7.26.10", "@babel/parser": "^7.26.10", "@babel/template": "^7.26.9", "@babel/traverse": "^7.26.10", "@babel/types": "^7.26.10", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ=="],
- "@babel/generator": ["@babel/generator@7.26.5", "", { "dependencies": { "@babel/parser": "^7.26.5", "@babel/types": "^7.26.5", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" } }, "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw=="],
+ "@babel/generator": ["@babel/generator@7.26.10", "", { "dependencies": { "@babel/parser": "^7.26.10", "@babel/types": "^7.26.10", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" } }, "sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang=="],
"@babel/helper-annotate-as-pure": ["@babel/helper-annotate-as-pure@7.25.9", "", { "dependencies": { "@babel/types": "^7.25.9" } }, "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g=="],
"@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.26.5", "", { "dependencies": { "@babel/compat-data": "^7.26.5", "@babel/helper-validator-option": "^7.25.9", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" } }, "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA=="],
- "@babel/helper-create-class-features-plugin": ["@babel/helper-create-class-features-plugin@7.25.9", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.25.9", "@babel/helper-member-expression-to-functions": "^7.25.9", "@babel/helper-optimise-call-expression": "^7.25.9", "@babel/helper-replace-supers": "^7.25.9", "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", "@babel/traverse": "^7.25.9", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ=="],
+ "@babel/helper-create-class-features-plugin": ["@babel/helper-create-class-features-plugin@7.26.9", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.25.9", "@babel/helper-member-expression-to-functions": "^7.25.9", "@babel/helper-optimise-call-expression": "^7.25.9", "@babel/helper-replace-supers": "^7.26.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", "@babel/traverse": "^7.26.9", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-ubbUqCofvxPRurw5L8WTsCLSkQiVpov4Qx0WMA+jUN+nXBK8ADPlJO1grkFw5CWKC5+sZSOfuGMdX1aI1iT9Sg=="],
"@babel/helper-create-regexp-features-plugin": ["@babel/helper-create-regexp-features-plugin@7.26.3", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.25.9", "regexpu-core": "^6.2.0", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong=="],
@@ -328,7 +331,7 @@
"@babel/helper-wrap-function": ["@babel/helper-wrap-function@7.25.9", "", { "dependencies": { "@babel/template": "^7.25.9", "@babel/traverse": "^7.25.9", "@babel/types": "^7.25.9" } }, "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g=="],
- "@babel/helpers": ["@babel/helpers@7.26.7", "", { "dependencies": { "@babel/template": "^7.25.9", "@babel/types": "^7.26.7" } }, "sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A=="],
+ "@babel/helpers": ["@babel/helpers@7.26.10", "", { "dependencies": { "@babel/template": "^7.26.9", "@babel/types": "^7.26.10" } }, "sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g=="],
"@babel/highlight": ["@babel/highlight@7.25.9", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.25.9", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" } }, "sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw=="],
@@ -404,7 +407,7 @@
"@babel/plugin-transform-arrow-functions": ["@babel/plugin-transform-arrow-functions@7.25.9", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg=="],
- "@babel/plugin-transform-async-generator-functions": ["@babel/plugin-transform-async-generator-functions@7.25.9", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.25.9", "@babel/helper-remap-async-to-generator": "^7.25.9", "@babel/traverse": "^7.25.9" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw=="],
+ "@babel/plugin-transform-async-generator-functions": ["@babel/plugin-transform-async-generator-functions@7.26.8", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.26.5", "@babel/helper-remap-async-to-generator": "^7.25.9", "@babel/traverse": "^7.26.8" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg=="],
"@babel/plugin-transform-async-to-generator": ["@babel/plugin-transform-async-to-generator@7.25.9", "", { "dependencies": { "@babel/helper-module-imports": "^7.25.9", "@babel/helper-plugin-utils": "^7.25.9", "@babel/helper-remap-async-to-generator": "^7.25.9" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ=="],
@@ -436,7 +439,7 @@
"@babel/plugin-transform-flow-strip-types": ["@babel/plugin-transform-flow-strip-types@7.26.5", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.26.5", "@babel/plugin-syntax-flow": "^7.26.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-eGK26RsbIkYUns3Y8qKl362juDDYK+wEdPGHGrhzUl6CewZFo55VZ7hg+CyMFU4dd5QQakBN86nBMpRsFpRvbQ=="],
- "@babel/plugin-transform-for-of": ["@babel/plugin-transform-for-of@7.25.9", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.25.9", "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A=="],
+ "@babel/plugin-transform-for-of": ["@babel/plugin-transform-for-of@7.26.9", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.26.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg=="],
"@babel/plugin-transform-function-name": ["@babel/plugin-transform-function-name@7.25.9", "", { "dependencies": { "@babel/helper-compilation-targets": "^7.25.9", "@babel/helper-plugin-utils": "^7.25.9", "@babel/traverse": "^7.25.9" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA=="],
@@ -498,7 +501,7 @@
"@babel/plugin-transform-reserved-words": ["@babel/plugin-transform-reserved-words@7.25.9", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg=="],
- "@babel/plugin-transform-runtime": ["@babel/plugin-transform-runtime@7.25.9", "", { "dependencies": { "@babel/helper-module-imports": "^7.25.9", "@babel/helper-plugin-utils": "^7.25.9", "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.10.6", "babel-plugin-polyfill-regenerator": "^0.6.1", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ=="],
+ "@babel/plugin-transform-runtime": ["@babel/plugin-transform-runtime@7.26.10", "", { "dependencies": { "@babel/helper-module-imports": "^7.25.9", "@babel/helper-plugin-utils": "^7.26.5", "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.11.0", "babel-plugin-polyfill-regenerator": "^0.6.1", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-NWaL2qG6HRpONTnj4JvDU6th4jYeZOJgu3QhmFTCihib0ermtOJqktA5BduGm3suhhVe9EMP9c9+mfJ/I9slqw=="],
"@babel/plugin-transform-shorthand-properties": ["@babel/plugin-transform-shorthand-properties@7.25.9", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng=="],
@@ -506,11 +509,11 @@
"@babel/plugin-transform-sticky-regex": ["@babel/plugin-transform-sticky-regex@7.25.9", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA=="],
- "@babel/plugin-transform-template-literals": ["@babel/plugin-transform-template-literals@7.25.9", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw=="],
+ "@babel/plugin-transform-template-literals": ["@babel/plugin-transform-template-literals@7.26.8", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.26.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q=="],
"@babel/plugin-transform-typeof-symbol": ["@babel/plugin-transform-typeof-symbol@7.26.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.26.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw=="],
- "@babel/plugin-transform-typescript": ["@babel/plugin-transform-typescript@7.26.7", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.25.9", "@babel/helper-create-class-features-plugin": "^7.25.9", "@babel/helper-plugin-utils": "^7.26.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", "@babel/plugin-syntax-typescript": "^7.25.9" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-5cJurntg+AT+cgelGP9Bt788DKiAw9gIMSMU2NJrLAilnj0m8WZWUNZPSLOmadYsujHutpgElO+50foX+ib/Wg=="],
+ "@babel/plugin-transform-typescript": ["@babel/plugin-transform-typescript@7.26.8", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.25.9", "@babel/helper-create-class-features-plugin": "^7.25.9", "@babel/helper-plugin-utils": "^7.26.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", "@babel/plugin-syntax-typescript": "^7.25.9" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-bME5J9AC8ChwA7aEPJ6zym3w7aObZULHhbNLU0bKUhKsAkylkzUdq+0kdymh9rzi8nlNFl2bmldFBCKNJBUpuw=="],
"@babel/plugin-transform-unicode-escapes": ["@babel/plugin-transform-unicode-escapes@7.25.9", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q=="],
@@ -520,7 +523,7 @@
"@babel/plugin-transform-unicode-sets-regex": ["@babel/plugin-transform-unicode-sets-regex@7.25.9", "", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.25.9", "@babel/helper-plugin-utils": "^7.25.9" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ=="],
- "@babel/preset-env": ["@babel/preset-env@7.26.7", "", { "dependencies": { "@babel/compat-data": "^7.26.5", "@babel/helper-compilation-targets": "^7.26.5", "@babel/helper-plugin-utils": "^7.26.5", "@babel/helper-validator-option": "^7.25.9", "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-import-assertions": "^7.26.0", "@babel/plugin-syntax-import-attributes": "^7.26.0", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.25.9", "@babel/plugin-transform-async-generator-functions": "^7.25.9", "@babel/plugin-transform-async-to-generator": "^7.25.9", "@babel/plugin-transform-block-scoped-functions": "^7.26.5", "@babel/plugin-transform-block-scoping": "^7.25.9", "@babel/plugin-transform-class-properties": "^7.25.9", "@babel/plugin-transform-class-static-block": "^7.26.0", "@babel/plugin-transform-classes": "^7.25.9", "@babel/plugin-transform-computed-properties": "^7.25.9", "@babel/plugin-transform-destructuring": "^7.25.9", "@babel/plugin-transform-dotall-regex": "^7.25.9", "@babel/plugin-transform-duplicate-keys": "^7.25.9", "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", "@babel/plugin-transform-dynamic-import": "^7.25.9", "@babel/plugin-transform-exponentiation-operator": "^7.26.3", "@babel/plugin-transform-export-namespace-from": "^7.25.9", "@babel/plugin-transform-for-of": "^7.25.9", "@babel/plugin-transform-function-name": "^7.25.9", "@babel/plugin-transform-json-strings": "^7.25.9", "@babel/plugin-transform-literals": "^7.25.9", "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", "@babel/plugin-transform-member-expression-literals": "^7.25.9", "@babel/plugin-transform-modules-amd": "^7.25.9", "@babel/plugin-transform-modules-commonjs": "^7.26.3", "@babel/plugin-transform-modules-systemjs": "^7.25.9", "@babel/plugin-transform-modules-umd": "^7.25.9", "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", "@babel/plugin-transform-new-target": "^7.25.9", "@babel/plugin-transform-nullish-coalescing-operator": "^7.26.6", "@babel/plugin-transform-numeric-separator": "^7.25.9", "@babel/plugin-transform-object-rest-spread": "^7.25.9", "@babel/plugin-transform-object-super": "^7.25.9", "@babel/plugin-transform-optional-catch-binding": "^7.25.9", "@babel/plugin-transform-optional-chaining": "^7.25.9", "@babel/plugin-transform-parameters": "^7.25.9", "@babel/plugin-transform-private-methods": "^7.25.9", "@babel/plugin-transform-private-property-in-object": "^7.25.9", "@babel/plugin-transform-property-literals": "^7.25.9", "@babel/plugin-transform-regenerator": "^7.25.9", "@babel/plugin-transform-regexp-modifiers": "^7.26.0", "@babel/plugin-transform-reserved-words": "^7.25.9", "@babel/plugin-transform-shorthand-properties": "^7.25.9", "@babel/plugin-transform-spread": "^7.25.9", "@babel/plugin-transform-sticky-regex": "^7.25.9", "@babel/plugin-transform-template-literals": "^7.25.9", "@babel/plugin-transform-typeof-symbol": "^7.26.7", "@babel/plugin-transform-unicode-escapes": "^7.25.9", "@babel/plugin-transform-unicode-property-regex": "^7.25.9", "@babel/plugin-transform-unicode-regex": "^7.25.9", "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.10.6", "babel-plugin-polyfill-regenerator": "^0.6.1", "core-js-compat": "^3.38.1", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-Ycg2tnXwixaXOVb29rana8HNPgLVBof8qqtNQ9LE22IoyZboQbGSxI6ZySMdW3K5nAe6gu35IaJefUJflhUFTQ=="],
+ "@babel/preset-env": ["@babel/preset-env@7.26.9", "", { "dependencies": { "@babel/compat-data": "^7.26.8", "@babel/helper-compilation-targets": "^7.26.5", "@babel/helper-plugin-utils": "^7.26.5", "@babel/helper-validator-option": "^7.25.9", "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-import-assertions": "^7.26.0", "@babel/plugin-syntax-import-attributes": "^7.26.0", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.25.9", "@babel/plugin-transform-async-generator-functions": "^7.26.8", "@babel/plugin-transform-async-to-generator": "^7.25.9", "@babel/plugin-transform-block-scoped-functions": "^7.26.5", "@babel/plugin-transform-block-scoping": "^7.25.9", "@babel/plugin-transform-class-properties": "^7.25.9", "@babel/plugin-transform-class-static-block": "^7.26.0", "@babel/plugin-transform-classes": "^7.25.9", "@babel/plugin-transform-computed-properties": "^7.25.9", "@babel/plugin-transform-destructuring": "^7.25.9", "@babel/plugin-transform-dotall-regex": "^7.25.9", "@babel/plugin-transform-duplicate-keys": "^7.25.9", "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", "@babel/plugin-transform-dynamic-import": "^7.25.9", "@babel/plugin-transform-exponentiation-operator": "^7.26.3", "@babel/plugin-transform-export-namespace-from": "^7.25.9", "@babel/plugin-transform-for-of": "^7.26.9", "@babel/plugin-transform-function-name": "^7.25.9", "@babel/plugin-transform-json-strings": "^7.25.9", "@babel/plugin-transform-literals": "^7.25.9", "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", "@babel/plugin-transform-member-expression-literals": "^7.25.9", "@babel/plugin-transform-modules-amd": "^7.25.9", "@babel/plugin-transform-modules-commonjs": "^7.26.3", "@babel/plugin-transform-modules-systemjs": "^7.25.9", "@babel/plugin-transform-modules-umd": "^7.25.9", "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", "@babel/plugin-transform-new-target": "^7.25.9", "@babel/plugin-transform-nullish-coalescing-operator": "^7.26.6", "@babel/plugin-transform-numeric-separator": "^7.25.9", "@babel/plugin-transform-object-rest-spread": "^7.25.9", "@babel/plugin-transform-object-super": "^7.25.9", "@babel/plugin-transform-optional-catch-binding": "^7.25.9", "@babel/plugin-transform-optional-chaining": "^7.25.9", "@babel/plugin-transform-parameters": "^7.25.9", "@babel/plugin-transform-private-methods": "^7.25.9", "@babel/plugin-transform-private-property-in-object": "^7.25.9", "@babel/plugin-transform-property-literals": "^7.25.9", "@babel/plugin-transform-regenerator": "^7.25.9", "@babel/plugin-transform-regexp-modifiers": "^7.26.0", "@babel/plugin-transform-reserved-words": "^7.25.9", "@babel/plugin-transform-shorthand-properties": "^7.25.9", "@babel/plugin-transform-spread": "^7.25.9", "@babel/plugin-transform-sticky-regex": "^7.25.9", "@babel/plugin-transform-template-literals": "^7.26.8", "@babel/plugin-transform-typeof-symbol": "^7.26.7", "@babel/plugin-transform-unicode-escapes": "^7.25.9", "@babel/plugin-transform-unicode-property-regex": "^7.25.9", "@babel/plugin-transform-unicode-regex": "^7.25.9", "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.11.0", "babel-plugin-polyfill-regenerator": "^0.6.1", "core-js-compat": "^3.40.0", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ=="],
"@babel/preset-flow": ["@babel/preset-flow@7.25.9", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.25.9", "@babel/helper-validator-option": "^7.25.9", "@babel/plugin-transform-flow-strip-types": "^7.25.9" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-EASHsAhE+SSlEzJ4bzfusnXSHiU+JfAYzj+jbw2vgQKgq5HrUr8qs+vgtiEL5dOH6sEweI+PNt2D7AqrDSHyqQ=="],
@@ -532,15 +535,15 @@
"@babel/register": ["@babel/register@7.25.9", "", { "dependencies": { "clone-deep": "^4.0.1", "find-cache-dir": "^2.0.0", "make-dir": "^2.1.0", "pirates": "^4.0.6", "source-map-support": "^0.5.16" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-8D43jXtGsYmEeDvm4MWHYUpWf8iiXgWYx3fW7E7Wb7Oe6FWqJPl5K6TuFW0dOwNZzEE5rjlaSJYH9JjrUKJszA=="],
- "@babel/runtime": ["@babel/runtime@7.26.7", "", { "dependencies": { "regenerator-runtime": "^0.14.0" } }, "sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ=="],
+ "@babel/runtime": ["@babel/runtime@7.26.10", "", { "dependencies": { "regenerator-runtime": "^0.14.0" } }, "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw=="],
- "@babel/template": ["@babel/template@7.25.9", "", { "dependencies": { "@babel/code-frame": "^7.25.9", "@babel/parser": "^7.25.9", "@babel/types": "^7.25.9" } }, "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg=="],
+ "@babel/template": ["@babel/template@7.26.9", "", { "dependencies": { "@babel/code-frame": "^7.26.2", "@babel/parser": "^7.26.9", "@babel/types": "^7.26.9" } }, "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA=="],
- "@babel/traverse": ["@babel/traverse@7.26.7", "", { "dependencies": { "@babel/code-frame": "^7.26.2", "@babel/generator": "^7.26.5", "@babel/parser": "^7.26.7", "@babel/template": "^7.25.9", "@babel/types": "^7.26.7", "debug": "^4.3.1", "globals": "^11.1.0" } }, "sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA=="],
+ "@babel/traverse": ["@babel/traverse@7.26.10", "", { "dependencies": { "@babel/code-frame": "^7.26.2", "@babel/generator": "^7.26.10", "@babel/parser": "^7.26.10", "@babel/template": "^7.26.9", "@babel/types": "^7.26.10", "debug": "^4.3.1", "globals": "^11.1.0" } }, "sha512-k8NuDrxr0WrPH5Aupqb2LCVURP/S0vBEn5mK6iH+GIYob66U5EtoZvcdudR2jQ4cmTwhEwW1DLB+Yyas9zjF6A=="],
- "@babel/traverse--for-generate-function-map": ["@babel/traverse@7.26.7", "", { "dependencies": { "@babel/code-frame": "^7.26.2", "@babel/generator": "^7.26.5", "@babel/parser": "^7.26.7", "@babel/template": "^7.25.9", "@babel/types": "^7.26.7", "debug": "^4.3.1", "globals": "^11.1.0" } }, "sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA=="],
+ "@babel/traverse--for-generate-function-map": ["@babel/traverse@7.26.10", "", { "dependencies": { "@babel/code-frame": "^7.26.2", "@babel/generator": "^7.26.10", "@babel/parser": "^7.26.10", "@babel/template": "^7.26.9", "@babel/types": "^7.26.10", "debug": "^4.3.1", "globals": "^11.1.0" } }, "sha512-k8NuDrxr0WrPH5Aupqb2LCVURP/S0vBEn5mK6iH+GIYob66U5EtoZvcdudR2jQ4cmTwhEwW1DLB+Yyas9zjF6A=="],
- "@babel/types": ["@babel/types@7.26.7", "", { "dependencies": { "@babel/helper-string-parser": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9" } }, "sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg=="],
+ "@babel/types": ["@babel/types@7.26.10", "", { "dependencies": { "@babel/helper-string-parser": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9" } }, "sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ=="],
"@bcoe/v8-coverage": ["@bcoe/v8-coverage@0.2.3", "", {}, "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw=="],
@@ -562,25 +565,25 @@
"@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@1.9.4", "", { "os": "win32", "cpu": "x64" }, "sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA=="],
- "@changesets/apply-release-plan": ["@changesets/apply-release-plan@7.0.8", "", { "dependencies": { "@changesets/config": "^3.0.5", "@changesets/get-version-range-type": "^0.4.0", "@changesets/git": "^3.0.2", "@changesets/should-skip-package": "^0.1.1", "@changesets/types": "^6.0.0", "@manypkg/get-packages": "^1.1.3", "detect-indent": "^6.0.0", "fs-extra": "^7.0.1", "lodash.startcase": "^4.4.0", "outdent": "^0.5.0", "prettier": "^2.7.1", "resolve-from": "^5.0.0", "semver": "^7.5.3" } }, "sha512-qjMUj4DYQ1Z6qHawsn7S71SujrExJ+nceyKKyI9iB+M5p9lCL55afuEd6uLBPRpLGWQwkwvWegDHtwHJb1UjpA=="],
+ "@changesets/apply-release-plan": ["@changesets/apply-release-plan@7.0.10", "", { "dependencies": { "@changesets/config": "^3.1.1", "@changesets/get-version-range-type": "^0.4.0", "@changesets/git": "^3.0.2", "@changesets/should-skip-package": "^0.1.2", "@changesets/types": "^6.1.0", "@manypkg/get-packages": "^1.1.3", "detect-indent": "^6.0.0", "fs-extra": "^7.0.1", "lodash.startcase": "^4.4.0", "outdent": "^0.5.0", "prettier": "^2.7.1", "resolve-from": "^5.0.0", "semver": "^7.5.3" } }, "sha512-wNyeIJ3yDsVspYvHnEz1xQDq18D9ifed3lI+wxRQRK4pArUcuHgCTrHv0QRnnwjhVCQACxZ+CBih3wgOct6UXw=="],
- "@changesets/assemble-release-plan": ["@changesets/assemble-release-plan@6.0.5", "", { "dependencies": { "@changesets/errors": "^0.2.0", "@changesets/get-dependents-graph": "^2.1.2", "@changesets/should-skip-package": "^0.1.1", "@changesets/types": "^6.0.0", "@manypkg/get-packages": "^1.1.3", "semver": "^7.5.3" } }, "sha512-IgvBWLNKZd6k4t72MBTBK3nkygi0j3t3zdC1zrfusYo0KpdsvnDjrMM9vPnTCLCMlfNs55jRL4gIMybxa64FCQ=="],
+ "@changesets/assemble-release-plan": ["@changesets/assemble-release-plan@6.0.6", "", { "dependencies": { "@changesets/errors": "^0.2.0", "@changesets/get-dependents-graph": "^2.1.3", "@changesets/should-skip-package": "^0.1.2", "@changesets/types": "^6.1.0", "@manypkg/get-packages": "^1.1.3", "semver": "^7.5.3" } }, "sha512-Frkj8hWJ1FRZiY3kzVCKzS0N5mMwWKwmv9vpam7vt8rZjLL1JMthdh6pSDVSPumHPshTTkKZ0VtNbE0cJHZZUg=="],
- "@changesets/changelog-git": ["@changesets/changelog-git@0.2.0", "", { "dependencies": { "@changesets/types": "^6.0.0" } }, "sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ=="],
+ "@changesets/changelog-git": ["@changesets/changelog-git@0.2.1", "", { "dependencies": { "@changesets/types": "^6.1.0" } }, "sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q=="],
- "@changesets/changelog-github": ["@changesets/changelog-github@0.5.0", "", { "dependencies": { "@changesets/get-github-info": "^0.6.0", "@changesets/types": "^6.0.0", "dotenv": "^8.1.0" } }, "sha512-zoeq2LJJVcPJcIotHRJEEA2qCqX0AQIeFE+L21L8sRLPVqDhSXY8ZWAt2sohtBpFZkBwu+LUwMSKRr2lMy3LJA=="],
+ "@changesets/changelog-github": ["@changesets/changelog-github@0.5.1", "", { "dependencies": { "@changesets/get-github-info": "^0.6.0", "@changesets/types": "^6.1.0", "dotenv": "^8.1.0" } }, "sha512-BVuHtF+hrhUScSoHnJwTELB4/INQxVFc+P/Qdt20BLiBFIHFJDDUaGsZw+8fQeJTRP5hJZrzpt3oZWh0G19rAQ=="],
- "@changesets/cli": ["@changesets/cli@2.27.12", "", { "dependencies": { "@changesets/apply-release-plan": "^7.0.8", "@changesets/assemble-release-plan": "^6.0.5", "@changesets/changelog-git": "^0.2.0", "@changesets/config": "^3.0.5", "@changesets/errors": "^0.2.0", "@changesets/get-dependents-graph": "^2.1.2", "@changesets/get-release-plan": "^4.0.6", "@changesets/git": "^3.0.2", "@changesets/logger": "^0.1.1", "@changesets/pre": "^2.0.1", "@changesets/read": "^0.6.2", "@changesets/should-skip-package": "^0.1.1", "@changesets/types": "^6.0.0", "@changesets/write": "^0.3.2", "@manypkg/get-packages": "^1.1.3", "ansi-colors": "^4.1.3", "ci-info": "^3.7.0", "enquirer": "^2.4.1", "external-editor": "^3.1.0", "fs-extra": "^7.0.1", "mri": "^1.2.0", "p-limit": "^2.2.0", "package-manager-detector": "^0.2.0", "picocolors": "^1.1.0", "resolve-from": "^5.0.0", "semver": "^7.5.3", "spawndamnit": "^3.0.1", "term-size": "^2.1.0" }, "bin": { "changeset": "bin.js" } }, "sha512-9o3fOfHYOvBnyEn0mcahB7wzaA3P4bGJf8PNqGit5PKaMEFdsRixik+txkrJWd2VX+O6wRFXpxQL8j/1ANKE9g=="],
+ "@changesets/cli": ["@changesets/cli@2.28.1", "", { "dependencies": { "@changesets/apply-release-plan": "^7.0.10", "@changesets/assemble-release-plan": "^6.0.6", "@changesets/changelog-git": "^0.2.1", "@changesets/config": "^3.1.1", "@changesets/errors": "^0.2.0", "@changesets/get-dependents-graph": "^2.1.3", "@changesets/get-release-plan": "^4.0.8", "@changesets/git": "^3.0.2", "@changesets/logger": "^0.1.1", "@changesets/pre": "^2.0.2", "@changesets/read": "^0.6.3", "@changesets/should-skip-package": "^0.1.2", "@changesets/types": "^6.1.0", "@changesets/write": "^0.4.0", "@manypkg/get-packages": "^1.1.3", "ansi-colors": "^4.1.3", "ci-info": "^3.7.0", "enquirer": "^2.4.1", "external-editor": "^3.1.0", "fs-extra": "^7.0.1", "mri": "^1.2.0", "p-limit": "^2.2.0", "package-manager-detector": "^0.2.0", "picocolors": "^1.1.0", "resolve-from": "^5.0.0", "semver": "^7.5.3", "spawndamnit": "^3.0.1", "term-size": "^2.1.0" }, "bin": { "changeset": "bin.js" } }, "sha512-PiIyGRmSc6JddQJe/W1hRPjiN4VrMvb2VfQ6Uydy2punBioQrsxppyG5WafinKcW1mT0jOe/wU4k9Zy5ff21AA=="],
- "@changesets/config": ["@changesets/config@3.0.5", "", { "dependencies": { "@changesets/errors": "^0.2.0", "@changesets/get-dependents-graph": "^2.1.2", "@changesets/logger": "^0.1.1", "@changesets/types": "^6.0.0", "@manypkg/get-packages": "^1.1.3", "fs-extra": "^7.0.1", "micromatch": "^4.0.8" } }, "sha512-QyXLSSd10GquX7hY0Mt4yQFMEeqnO5z/XLpbIr4PAkNNoQNKwDyiSrx4yd749WddusH1v3OSiA0NRAYmH/APpQ=="],
+ "@changesets/config": ["@changesets/config@3.1.1", "", { "dependencies": { "@changesets/errors": "^0.2.0", "@changesets/get-dependents-graph": "^2.1.3", "@changesets/logger": "^0.1.1", "@changesets/types": "^6.1.0", "@manypkg/get-packages": "^1.1.3", "fs-extra": "^7.0.1", "micromatch": "^4.0.8" } }, "sha512-bd+3Ap2TKXxljCggI0mKPfzCQKeV/TU4yO2h2C6vAihIo8tzseAn2e7klSuiyYYXvgu53zMN1OeYMIQkaQoWnA=="],
"@changesets/errors": ["@changesets/errors@0.2.0", "", { "dependencies": { "extendable-error": "^0.1.5" } }, "sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow=="],
- "@changesets/get-dependents-graph": ["@changesets/get-dependents-graph@2.1.2", "", { "dependencies": { "@changesets/types": "^6.0.0", "@manypkg/get-packages": "^1.1.3", "picocolors": "^1.1.0", "semver": "^7.5.3" } }, "sha512-sgcHRkiBY9i4zWYBwlVyAjEM9sAzs4wYVwJUdnbDLnVG3QwAaia1Mk5P8M7kraTOZN+vBET7n8KyB0YXCbFRLQ=="],
+ "@changesets/get-dependents-graph": ["@changesets/get-dependents-graph@2.1.3", "", { "dependencies": { "@changesets/types": "^6.1.0", "@manypkg/get-packages": "^1.1.3", "picocolors": "^1.1.0", "semver": "^7.5.3" } }, "sha512-gphr+v0mv2I3Oxt19VdWRRUxq3sseyUpX9DaHpTUmLj92Y10AGy+XOtV+kbM6L/fDcpx7/ISDFK6T8A/P3lOdQ=="],
"@changesets/get-github-info": ["@changesets/get-github-info@0.6.0", "", { "dependencies": { "dataloader": "^1.4.0", "node-fetch": "^2.5.0" } }, "sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA=="],
- "@changesets/get-release-plan": ["@changesets/get-release-plan@4.0.6", "", { "dependencies": { "@changesets/assemble-release-plan": "^6.0.5", "@changesets/config": "^3.0.5", "@changesets/pre": "^2.0.1", "@changesets/read": "^0.6.2", "@changesets/types": "^6.0.0", "@manypkg/get-packages": "^1.1.3" } }, "sha512-FHRwBkY7Eili04Y5YMOZb0ezQzKikTka4wL753vfUA5COSebt7KThqiuCN9BewE4/qFGgF/5t3AuzXx1/UAY4w=="],
+ "@changesets/get-release-plan": ["@changesets/get-release-plan@4.0.8", "", { "dependencies": { "@changesets/assemble-release-plan": "^6.0.6", "@changesets/config": "^3.1.1", "@changesets/pre": "^2.0.2", "@changesets/read": "^0.6.3", "@changesets/types": "^6.1.0", "@manypkg/get-packages": "^1.1.3" } }, "sha512-MM4mq2+DQU1ZT7nqxnpveDMTkMBLnwNX44cX7NSxlXmr7f8hO6/S2MXNiXG54uf/0nYnefv0cfy4Czf/ZL/EKQ=="],
"@changesets/get-version-range-type": ["@changesets/get-version-range-type@0.4.0", "", {}, "sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ=="],
@@ -588,27 +591,27 @@
"@changesets/logger": ["@changesets/logger@0.1.1", "", { "dependencies": { "picocolors": "^1.1.0" } }, "sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg=="],
- "@changesets/parse": ["@changesets/parse@0.4.0", "", { "dependencies": { "@changesets/types": "^6.0.0", "js-yaml": "^3.13.1" } }, "sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw=="],
+ "@changesets/parse": ["@changesets/parse@0.4.1", "", { "dependencies": { "@changesets/types": "^6.1.0", "js-yaml": "^3.13.1" } }, "sha512-iwksMs5Bf/wUItfcg+OXrEpravm5rEd9Bf4oyIPL4kVTmJQ7PNDSd6MDYkpSJR1pn7tz/k8Zf2DhTCqX08Ou+Q=="],
- "@changesets/pre": ["@changesets/pre@2.0.1", "", { "dependencies": { "@changesets/errors": "^0.2.0", "@changesets/types": "^6.0.0", "@manypkg/get-packages": "^1.1.3", "fs-extra": "^7.0.1" } }, "sha512-vvBJ/If4jKM4tPz9JdY2kGOgWmCowUYOi5Ycv8dyLnEE8FgpYYUo1mgJZxcdtGGP3aG8rAQulGLyyXGSLkIMTQ=="],
+ "@changesets/pre": ["@changesets/pre@2.0.2", "", { "dependencies": { "@changesets/errors": "^0.2.0", "@changesets/types": "^6.1.0", "@manypkg/get-packages": "^1.1.3", "fs-extra": "^7.0.1" } }, "sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug=="],
- "@changesets/read": ["@changesets/read@0.6.2", "", { "dependencies": { "@changesets/git": "^3.0.2", "@changesets/logger": "^0.1.1", "@changesets/parse": "^0.4.0", "@changesets/types": "^6.0.0", "fs-extra": "^7.0.1", "p-filter": "^2.1.0", "picocolors": "^1.1.0" } }, "sha512-wjfQpJvryY3zD61p8jR87mJdyx2FIhEcdXhKUqkja87toMrP/3jtg/Yg29upN+N4Ckf525/uvV7a4tzBlpk6gg=="],
+ "@changesets/read": ["@changesets/read@0.6.3", "", { "dependencies": { "@changesets/git": "^3.0.2", "@changesets/logger": "^0.1.1", "@changesets/parse": "^0.4.1", "@changesets/types": "^6.1.0", "fs-extra": "^7.0.1", "p-filter": "^2.1.0", "picocolors": "^1.1.0" } }, "sha512-9H4p/OuJ3jXEUTjaVGdQEhBdqoT2cO5Ts95JTFsQyawmKzpL8FnIeJSyhTDPW1MBRDnwZlHFEM9SpPwJDY5wIg=="],
- "@changesets/should-skip-package": ["@changesets/should-skip-package@0.1.1", "", { "dependencies": { "@changesets/types": "^6.0.0", "@manypkg/get-packages": "^1.1.3" } }, "sha512-H9LjLbF6mMHLtJIc/eHR9Na+MifJ3VxtgP/Y+XLn4BF7tDTEN1HNYtH6QMcjP1uxp9sjaFYmW8xqloaCi/ckTg=="],
+ "@changesets/should-skip-package": ["@changesets/should-skip-package@0.1.2", "", { "dependencies": { "@changesets/types": "^6.1.0", "@manypkg/get-packages": "^1.1.3" } }, "sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw=="],
- "@changesets/types": ["@changesets/types@6.0.0", "", {}, "sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ=="],
+ "@changesets/types": ["@changesets/types@6.1.0", "", {}, "sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA=="],
- "@changesets/write": ["@changesets/write@0.3.2", "", { "dependencies": { "@changesets/types": "^6.0.0", "fs-extra": "^7.0.1", "human-id": "^1.0.2", "prettier": "^2.7.1" } }, "sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw=="],
+ "@changesets/write": ["@changesets/write@0.4.0", "", { "dependencies": { "@changesets/types": "^6.1.0", "fs-extra": "^7.0.1", "human-id": "^4.1.1", "prettier": "^2.7.1" } }, "sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q=="],
"@clack/core": ["@clack/core@0.4.1", "", { "dependencies": { "picocolors": "^1.0.0", "sisteransi": "^1.0.5" } }, "sha512-Pxhij4UXg8KSr7rPek6Zowm+5M22rbd2g1nfojHJkxp5YkFqiZ2+YLEM/XGVIzvGOcM0nqjIFxrpDwWRZYWYjA=="],
"@clack/prompts": ["@clack/prompts@0.9.1", "", { "dependencies": { "@clack/core": "0.4.1", "picocolors": "^1.0.0", "sisteransi": "^1.0.5" } }, "sha512-JIpyaboYZeWYlyP0H+OoPPxd6nqueG/CmN6ixBiNFsIDHREevjIf0n0Ohh5gr5C8pEDknzgvz+pIJ8dMhzWIeg=="],
- "@csstools/color-helpers": ["@csstools/color-helpers@5.0.1", "", {}, "sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA=="],
+ "@csstools/color-helpers": ["@csstools/color-helpers@5.0.2", "", {}, "sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA=="],
- "@csstools/css-calc": ["@csstools/css-calc@2.1.1", "", { "peerDependencies": { "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" } }, "sha512-rL7kaUnTkL9K+Cvo2pnCieqNpTKgQzy5f+N+5Iuko9HAoasP+xgprVh7KN/MaJVvVL1l0EzQq2MoqBHKSrDrag=="],
+ "@csstools/css-calc": ["@csstools/css-calc@2.1.2", "", { "peerDependencies": { "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" } }, "sha512-TklMyb3uBB28b5uQdxjReG4L80NxAqgrECqLZFQbyLekwwlcDDS8r3f07DKqeo8C4926Br0gf/ZDe17Zv4wIuw=="],
- "@csstools/css-color-parser": ["@csstools/css-color-parser@3.0.7", "", { "dependencies": { "@csstools/color-helpers": "^5.0.1", "@csstools/css-calc": "^2.1.1" }, "peerDependencies": { "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" } }, "sha512-nkMp2mTICw32uE5NN+EsJ4f5N+IGFeCFu4bGpiKgb2Pq/7J/MpyLBeQ5ry4KKtRFZaYs6sTmcMYrSRIyj5DFKA=="],
+ "@csstools/css-color-parser": ["@csstools/css-color-parser@3.0.8", "", { "dependencies": { "@csstools/color-helpers": "^5.0.2", "@csstools/css-calc": "^2.1.2" }, "peerDependencies": { "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" } }, "sha512-pdwotQjCCnRPuNi06jFuP68cykU1f3ZWExLe/8MQ1LOs8Xq+fTkYgd+2V8mWUWMrOn9iS2HftPVaMZDaXzGbhQ=="],
"@csstools/css-parser-algorithms": ["@csstools/css-parser-algorithms@3.0.4", "", { "peerDependencies": { "@csstools/css-tokenizer": "^3.0.3" } }, "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A=="],
@@ -628,100 +631,102 @@
"@esbuild-kit/esm-loader": ["@esbuild-kit/esm-loader@2.6.5", "", { "dependencies": { "@esbuild-kit/core-utils": "^3.3.2", "get-tsconfig": "^4.7.0" } }, "sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA=="],
- "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.24.2", "", { "os": "aix", "cpu": "ppc64" }, "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA=="],
+ "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.1", "", { "os": "aix", "cpu": "ppc64" }, "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ=="],
- "@esbuild/android-arm": ["@esbuild/android-arm@0.24.2", "", { "os": "android", "cpu": "arm" }, "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q=="],
+ "@esbuild/android-arm": ["@esbuild/android-arm@0.25.1", "", { "os": "android", "cpu": "arm" }, "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q=="],
- "@esbuild/android-arm64": ["@esbuild/android-arm64@0.24.2", "", { "os": "android", "cpu": "arm64" }, "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg=="],
+ "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.1", "", { "os": "android", "cpu": "arm64" }, "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA=="],
- "@esbuild/android-x64": ["@esbuild/android-x64@0.24.2", "", { "os": "android", "cpu": "x64" }, "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw=="],
+ "@esbuild/android-x64": ["@esbuild/android-x64@0.25.1", "", { "os": "android", "cpu": "x64" }, "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw=="],
- "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.24.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA=="],
+ "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ=="],
- "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.24.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA=="],
+ "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA=="],
- "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.24.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg=="],
+ "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.1", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A=="],
- "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.24.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q=="],
+ "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww=="],
- "@esbuild/linux-arm": ["@esbuild/linux-arm@0.24.2", "", { "os": "linux", "cpu": "arm" }, "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA=="],
+ "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.1", "", { "os": "linux", "cpu": "arm" }, "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ=="],
- "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.24.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg=="],
+ "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ=="],
- "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.24.2", "", { "os": "linux", "cpu": "ia32" }, "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw=="],
+ "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.1", "", { "os": "linux", "cpu": "ia32" }, "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ=="],
- "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.24.2", "", { "os": "linux", "cpu": "none" }, "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ=="],
+ "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.1", "", { "os": "linux", "cpu": "none" }, "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg=="],
- "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.24.2", "", { "os": "linux", "cpu": "none" }, "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw=="],
+ "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.1", "", { "os": "linux", "cpu": "none" }, "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg=="],
- "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.24.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw=="],
+ "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg=="],
- "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.24.2", "", { "os": "linux", "cpu": "none" }, "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q=="],
+ "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.1", "", { "os": "linux", "cpu": "none" }, "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ=="],
- "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.24.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw=="],
+ "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ=="],
- "@esbuild/linux-x64": ["@esbuild/linux-x64@0.24.2", "", { "os": "linux", "cpu": "x64" }, "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q=="],
+ "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.1", "", { "os": "linux", "cpu": "x64" }, "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA=="],
- "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.24.2", "", { "os": "none", "cpu": "arm64" }, "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw=="],
+ "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.1", "", { "os": "none", "cpu": "arm64" }, "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g=="],
- "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.24.2", "", { "os": "none", "cpu": "x64" }, "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw=="],
+ "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.1", "", { "os": "none", "cpu": "x64" }, "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA=="],
- "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.24.2", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A=="],
+ "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.1", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg=="],
- "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.24.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA=="],
+ "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.1", "", { "os": "openbsd", "cpu": "x64" }, "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw=="],
- "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.24.2", "", { "os": "sunos", "cpu": "x64" }, "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig=="],
+ "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.1", "", { "os": "sunos", "cpu": "x64" }, "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg=="],
- "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.24.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ=="],
+ "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ=="],
- "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.24.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA=="],
+ "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A=="],
- "@esbuild/win32-x64": ["@esbuild/win32-x64@0.24.2", "", { "os": "win32", "cpu": "x64" }, "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg=="],
+ "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.1", "", { "os": "win32", "cpu": "x64" }, "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg=="],
"@expo/bunyan": ["@expo/bunyan@4.0.1", "", { "dependencies": { "uuid": "^8.0.0" } }, "sha512-+Lla7nYSiHZirgK+U/uYzsLv/X+HaJienbD5AKX1UQZHYfWaP+9uuQluRB4GrEVWF0GZ7vEVp/jzaOT9k/SQlg=="],
- "@expo/cli": ["@expo/cli@0.22.11", "", { "dependencies": { "@0no-co/graphql.web": "^1.0.8", "@babel/runtime": "^7.20.0", "@expo/code-signing-certificates": "^0.0.5", "@expo/config": "~10.0.8", "@expo/config-plugins": "~9.0.14", "@expo/devcert": "^1.1.2", "@expo/env": "~0.4.1", "@expo/image-utils": "^0.6.4", "@expo/json-file": "^9.0.1", "@expo/metro-config": "~0.19.9", "@expo/osascript": "^2.1.5", "@expo/package-manager": "^1.7.1", "@expo/plist": "^0.2.1", "@expo/prebuild-config": "^8.0.25", "@expo/rudder-sdk-node": "^1.1.1", "@expo/spawn-async": "^1.7.2", "@expo/xcpretty": "^4.3.0", "@react-native/dev-middleware": "0.76.6", "@urql/core": "^5.0.6", "@urql/exchange-retry": "^1.3.0", "accepts": "^1.3.8", "arg": "^5.0.2", "better-opn": "~3.0.2", "bplist-creator": "0.0.7", "bplist-parser": "^0.3.1", "cacache": "^18.0.2", "chalk": "^4.0.0", "ci-info": "^3.3.0", "compression": "^1.7.4", "connect": "^3.7.0", "debug": "^4.3.4", "env-editor": "^0.4.1", "fast-glob": "^3.3.2", "form-data": "^3.0.1", "freeport-async": "^2.0.0", "fs-extra": "~8.1.0", "getenv": "^1.0.0", "glob": "^10.4.2", "internal-ip": "^4.3.0", "is-docker": "^2.0.0", "is-wsl": "^2.1.1", "lodash.debounce": "^4.0.8", "minimatch": "^3.0.4", "node-forge": "^1.3.1", "npm-package-arg": "^11.0.0", "ora": "^3.4.0", "picomatch": "^3.0.1", "pretty-bytes": "^5.6.0", "pretty-format": "^29.7.0", "progress": "^2.0.3", "prompts": "^2.3.2", "qrcode-terminal": "0.11.0", "require-from-string": "^2.0.2", "requireg": "^0.2.2", "resolve": "^1.22.2", "resolve-from": "^5.0.0", "resolve.exports": "^2.0.3", "semver": "^7.6.0", "send": "^0.19.0", "slugify": "^1.3.4", "source-map-support": "~0.5.21", "stacktrace-parser": "^0.1.10", "structured-headers": "^0.4.1", "tar": "^6.2.1", "temp-dir": "^2.0.0", "tempy": "^0.7.1", "terminal-link": "^2.1.1", "undici": "^6.18.2", "unique-string": "~2.0.0", "wrap-ansi": "^7.0.0", "ws": "^8.12.1" }, "bin": { "expo-internal": "build/bin/cli" } }, "sha512-D5Vl7IBLi53WmL57NAFYB1mIqlMQxDIZVzbi/FTpo5a3oIHELKr0ElTKeOLf1f1/Y3FA7cxgphoawdA0+O1JWQ=="],
+ "@expo/cli": ["@expo/cli@0.22.19", "", { "dependencies": { "@0no-co/graphql.web": "^1.0.8", "@babel/runtime": "^7.20.0", "@expo/code-signing-certificates": "^0.0.5", "@expo/config": "~10.0.11", "@expo/config-plugins": "~9.0.17", "@expo/devcert": "^1.1.2", "@expo/env": "~0.4.2", "@expo/image-utils": "^0.6.5", "@expo/json-file": "^9.0.2", "@expo/metro-config": "~0.19.12", "@expo/osascript": "^2.1.6", "@expo/package-manager": "^1.7.2", "@expo/plist": "^0.2.2", "@expo/prebuild-config": "^8.0.29", "@expo/rudder-sdk-node": "^1.1.1", "@expo/spawn-async": "^1.7.2", "@expo/ws-tunnel": "^1.0.1", "@expo/xcpretty": "^4.3.0", "@react-native/dev-middleware": "0.76.7", "@urql/core": "^5.0.6", "@urql/exchange-retry": "^1.3.0", "accepts": "^1.3.8", "arg": "^5.0.2", "better-opn": "~3.0.2", "bplist-creator": "0.0.7", "bplist-parser": "^0.3.1", "cacache": "^18.0.2", "chalk": "^4.0.0", "ci-info": "^3.3.0", "compression": "^1.7.4", "connect": "^3.7.0", "debug": "^4.3.4", "env-editor": "^0.4.1", "fast-glob": "^3.3.2", "form-data": "^3.0.1", "freeport-async": "^2.0.0", "fs-extra": "~8.1.0", "getenv": "^1.0.0", "glob": "^10.4.2", "internal-ip": "^4.3.0", "is-docker": "^2.0.0", "is-wsl": "^2.1.1", "lodash.debounce": "^4.0.8", "minimatch": "^3.0.4", "node-forge": "^1.3.1", "npm-package-arg": "^11.0.0", "ora": "^3.4.0", "picomatch": "^3.0.1", "pretty-bytes": "^5.6.0", "pretty-format": "^29.7.0", "progress": "^2.0.3", "prompts": "^2.3.2", "qrcode-terminal": "0.11.0", "require-from-string": "^2.0.2", "requireg": "^0.2.2", "resolve": "^1.22.2", "resolve-from": "^5.0.0", "resolve.exports": "^2.0.3", "semver": "^7.6.0", "send": "^0.19.0", "slugify": "^1.3.4", "source-map-support": "~0.5.21", "stacktrace-parser": "^0.1.10", "structured-headers": "^0.4.1", "tar": "^6.2.1", "temp-dir": "^2.0.0", "tempy": "^0.7.1", "terminal-link": "^2.1.1", "undici": "^6.18.2", "unique-string": "~2.0.0", "wrap-ansi": "^7.0.0", "ws": "^8.12.1" }, "bin": { "expo-internal": "build/bin/cli" } }, "sha512-vgAM3gUsAUQWgDm10RIYSrWQ5q235Ir/lMUdx5Yd/gObYaDlaBIdsq5H72eJ44QB+4ndvhm2wbqntTI19kBIRw=="],
"@expo/code-signing-certificates": ["@expo/code-signing-certificates@0.0.5", "", { "dependencies": { "node-forge": "^1.2.1", "nullthrows": "^1.1.1" } }, "sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw=="],
- "@expo/config": ["@expo/config@10.0.8", "", { "dependencies": { "@babel/code-frame": "~7.10.4", "@expo/config-plugins": "~9.0.14", "@expo/config-types": "^52.0.3", "@expo/json-file": "^9.0.1", "deepmerge": "^4.3.1", "getenv": "^1.0.0", "glob": "^10.4.2", "require-from-string": "^2.0.2", "resolve-from": "^5.0.0", "resolve-workspace-root": "^2.0.0", "semver": "^7.6.0", "slugify": "^1.3.4", "sucrase": "3.35.0" } }, "sha512-RaKwi8e6PbkMilRexdsxObLMdQwxhY6mlgel+l/eW+IfIw8HEydSU0ERlzYUjlGJxHLHUXe4rC2vw8FEvaowyQ=="],
+ "@expo/config": ["@expo/config@10.0.11", "", { "dependencies": { "@babel/code-frame": "~7.10.4", "@expo/config-plugins": "~9.0.17", "@expo/config-types": "^52.0.5", "@expo/json-file": "^9.0.2", "deepmerge": "^4.3.1", "getenv": "^1.0.0", "glob": "^10.4.2", "require-from-string": "^2.0.2", "resolve-from": "^5.0.0", "resolve-workspace-root": "^2.0.0", "semver": "^7.6.0", "slugify": "^1.3.4", "sucrase": "3.35.0" } }, "sha512-nociJ4zr/NmbVfMNe9j/+zRlt7wz/siISu7PjdWE4WE+elEGxWWxsGzltdJG0llzrM+khx8qUiFK5aiVcdMBww=="],
- "@expo/config-plugins": ["@expo/config-plugins@9.0.14", "", { "dependencies": { "@expo/config-types": "^52.0.3", "@expo/json-file": "~9.0.1", "@expo/plist": "^0.2.1", "@expo/sdk-runtime-versions": "^1.0.0", "chalk": "^4.1.2", "debug": "^4.3.5", "getenv": "^1.0.0", "glob": "^10.4.2", "resolve-from": "^5.0.0", "semver": "^7.5.4", "slash": "^3.0.0", "slugify": "^1.6.6", "xcode": "^3.0.1", "xml2js": "0.6.0" } }, "sha512-Lx1ebV95rTFKKQmbu4wMPLz65rKn7mqSpfANdCx+KwRxuLY2JQls8V4h3lQjG6dW8NWf9qV5QaEFAgNB6VMyOQ=="],
+ "@expo/config-plugins": ["@expo/config-plugins@9.0.17", "", { "dependencies": { "@expo/config-types": "^52.0.5", "@expo/json-file": "~9.0.2", "@expo/plist": "^0.2.2", "@expo/sdk-runtime-versions": "^1.0.0", "chalk": "^4.1.2", "debug": "^4.3.5", "getenv": "^1.0.0", "glob": "^10.4.2", "resolve-from": "^5.0.0", "semver": "^7.5.4", "slash": "^3.0.0", "slugify": "^1.6.6", "xcode": "^3.0.1", "xml2js": "0.6.0" } }, "sha512-m24F1COquwOm7PBl5wRbkT9P9DviCXe0D7S7nQsolfbhdCWuvMkfXeoWmgjtdhy7sDlOyIgBrAdnB6MfsWKqIg=="],
- "@expo/config-types": ["@expo/config-types@52.0.3", "", {}, "sha512-muxvuARmbysH5OGaiBRlh1Y6vfdmL56JtpXxB+y2Hfhu0ezG1U4FjZYBIacthckZPvnDCcP3xIu1R+eTo7/QFA=="],
+ "@expo/config-types": ["@expo/config-types@52.0.5", "", {}, "sha512-AMDeuDLHXXqd8W+0zSjIt7f37vUd/BP8p43k68NHpyAvQO+z8mbQZm3cNQVAMySeayK2XoPigAFB1JF2NFajaA=="],
"@expo/devcert": ["@expo/devcert@1.1.4", "", { "dependencies": { "application-config-path": "^0.1.0", "command-exists": "^1.2.4", "debug": "^3.1.0", "eol": "^0.9.1", "get-port": "^3.2.0", "glob": "^10.4.2", "lodash": "^4.17.21", "mkdirp": "^0.5.1", "password-prompt": "^1.0.4", "sudo-prompt": "^8.2.0", "tmp": "^0.0.33", "tslib": "^2.4.0" } }, "sha512-fqBODr8c72+gBSX5Ty3SIzaY4bXainlpab78+vEYEKL3fXmsOswMLf0+KE36mUEAa36BYabX7K3EiXOXX5OPMw=="],
- "@expo/env": ["@expo/env@0.4.1", "", { "dependencies": { "chalk": "^4.0.0", "debug": "^4.3.4", "dotenv": "~16.4.5", "dotenv-expand": "~11.0.6", "getenv": "^1.0.0" } }, "sha512-oDtbO3i9yXD1nx93acWiPTWGljJ3vABn35x1NAbqtQ2JL6mFOcRcArt1dwi4imZyLnG4VCcjabT9irj+LgYntw=="],
+ "@expo/env": ["@expo/env@0.4.2", "", { "dependencies": { "chalk": "^4.0.0", "debug": "^4.3.4", "dotenv": "~16.4.5", "dotenv-expand": "~11.0.6", "getenv": "^1.0.0" } }, "sha512-TgbCgvSk0Kq0e2fLoqHwEBL4M0ztFjnBEz0YCDm5boc1nvkV1VMuIMteVdeBwnTh8Z0oPJTwHCD49vhMEt1I6A=="],
- "@expo/fingerprint": ["@expo/fingerprint@0.11.7", "", { "dependencies": { "@expo/spawn-async": "^1.7.2", "arg": "^5.0.2", "chalk": "^4.1.2", "debug": "^4.3.4", "find-up": "^5.0.0", "getenv": "^1.0.0", "minimatch": "^3.0.4", "p-limit": "^3.1.0", "resolve-from": "^5.0.0", "semver": "^7.6.0" }, "bin": { "fingerprint": "bin/cli.js" } }, "sha512-2rfYVS4nqWmOPQk+AL5GPfPSawbqqmI5mL++bxAhWADt+d+fjoQYfIrGtjZxQ30f9o/a1PrRPVSuh2j09+diVg=="],
+ "@expo/fingerprint": ["@expo/fingerprint@0.11.11", "", { "dependencies": { "@expo/spawn-async": "^1.7.2", "arg": "^5.0.2", "chalk": "^4.1.2", "debug": "^4.3.4", "find-up": "^5.0.0", "getenv": "^1.0.0", "minimatch": "^3.0.4", "p-limit": "^3.1.0", "resolve-from": "^5.0.0", "semver": "^7.6.0" }, "bin": { "fingerprint": "bin/cli.js" } }, "sha512-gNyn1KnAOpEa8gSNsYqXMTcq0fSwqU/vit6fP5863vLSKxHm/dNt/gm/uZJxrRZxKq71KUJWF6I7d3z8qIfq5g=="],
- "@expo/image-utils": ["@expo/image-utils@0.6.4", "", { "dependencies": { "@expo/spawn-async": "^1.7.2", "chalk": "^4.0.0", "fs-extra": "9.0.0", "getenv": "^1.0.0", "jimp-compact": "0.16.1", "parse-png": "^2.1.0", "resolve-from": "^5.0.0", "semver": "^7.6.0", "temp-dir": "~2.0.0", "unique-string": "~2.0.0" } }, "sha512-L++1PBzSvf5iYc6UHJ8Db8GcYNkfLDw+a+zqEFBQ3xqRXP/muxb/O7wuiMFlXrj/cfkx4e0U+z1a4ceV0A7S7Q=="],
+ "@expo/image-utils": ["@expo/image-utils@0.6.5", "", { "dependencies": { "@expo/spawn-async": "^1.7.2", "chalk": "^4.0.0", "fs-extra": "9.0.0", "getenv": "^1.0.0", "jimp-compact": "0.16.1", "parse-png": "^2.1.0", "resolve-from": "^5.0.0", "semver": "^7.6.0", "temp-dir": "~2.0.0", "unique-string": "~2.0.0" } }, "sha512-RsS/1CwJYzccvlprYktD42KjyfWZECH6PPIEowvoSmXfGLfdViwcUEI4RvBfKX5Jli6P67H+6YmHvPTbGOboew=="],
- "@expo/json-file": ["@expo/json-file@9.0.1", "", { "dependencies": { "@babel/code-frame": "~7.10.4", "json5": "^2.2.3", "write-file-atomic": "^2.3.0" } }, "sha512-ZVPhbbEBEwafPCJ0+kI25O2Iivt3XKHEKAADCml1q2cmOIbQnKgLyn8DpOJXqWEyRQr/VWS+hflBh8DU2YFSqg=="],
+ "@expo/json-file": ["@expo/json-file@9.0.2", "", { "dependencies": { "@babel/code-frame": "~7.10.4", "json5": "^2.2.3", "write-file-atomic": "^2.3.0" } }, "sha512-yAznIUrybOIWp3Uax7yRflB0xsEpvIwIEqIjao9SGi2Gaa+N0OamWfe0fnXBSWF+2zzF4VvqwT4W5zwelchfgw=="],
- "@expo/metro-config": ["@expo/metro-config@0.19.9", "", { "dependencies": { "@babel/core": "^7.20.0", "@babel/generator": "^7.20.5", "@babel/parser": "^7.20.0", "@babel/types": "^7.20.0", "@expo/config": "~10.0.8", "@expo/env": "~0.4.1", "@expo/json-file": "~9.0.1", "@expo/spawn-async": "^1.7.2", "chalk": "^4.1.0", "debug": "^4.3.2", "fs-extra": "^9.1.0", "getenv": "^1.0.0", "glob": "^10.4.2", "jsc-safe-url": "^0.2.4", "lightningcss": "~1.27.0", "minimatch": "^3.0.4", "postcss": "~8.4.32", "resolve-from": "^5.0.0" } }, "sha512-JAsLWhFQqwLH0KsI4OMbPXsKFji5KJEmsi+/02Sz1GCT17YrjRmv1fZ91regUS/FUH2Y/PDAE/+2ulrTgMeG7A=="],
+ "@expo/metro-config": ["@expo/metro-config@0.19.12", "", { "dependencies": { "@babel/core": "^7.20.0", "@babel/generator": "^7.20.5", "@babel/parser": "^7.20.0", "@babel/types": "^7.20.0", "@expo/config": "~10.0.11", "@expo/env": "~0.4.2", "@expo/json-file": "~9.0.2", "@expo/spawn-async": "^1.7.2", "chalk": "^4.1.0", "debug": "^4.3.2", "fs-extra": "^9.1.0", "getenv": "^1.0.0", "glob": "^10.4.2", "jsc-safe-url": "^0.2.4", "lightningcss": "~1.27.0", "minimatch": "^3.0.4", "postcss": "~8.4.32", "resolve-from": "^5.0.0" } }, "sha512-fhT3x1ikQWHpZgw7VrEghBdscFPz1laRYa8WcVRB18nTTqorF6S8qPYslkJu1faEziHZS7c2uyDzTYnrg/CKbg=="],
"@expo/metro-runtime": ["@expo/metro-runtime@4.0.1", "", { "peerDependencies": { "react-native": "*" } }, "sha512-CRpbLvdJ1T42S+lrYa1iZp1KfDeBp4oeZOK3hdpiS5n0vR0nhD6sC1gGF0sTboCTp64tLteikz5Y3j53dvgOIw=="],
- "@expo/osascript": ["@expo/osascript@2.1.5", "", { "dependencies": { "@expo/spawn-async": "^1.7.2", "exec-async": "^2.2.0" } }, "sha512-Cp7YF7msGiTAIbFdzNovwHBfecdMLVL5XzSqq4xQz72ALFCQ3uSIUXRph1QV2r61ugH7Yem0gY8yi7RcDlI4qg=="],
+ "@expo/osascript": ["@expo/osascript@2.1.6", "", { "dependencies": { "@expo/spawn-async": "^1.7.2", "exec-async": "^2.2.0" } }, "sha512-SbMp4BUwDAKiFF4zZEJf32rRYMeNnLK9u4FaPo0lQRer60F+SKd20NTSys0wgssiVeQyQz2OhGLRx3cxYowAGw=="],
- "@expo/package-manager": ["@expo/package-manager@1.7.1", "", { "dependencies": { "@expo/json-file": "^9.0.1", "@expo/spawn-async": "^1.7.2", "ansi-regex": "^5.0.0", "chalk": "^4.0.0", "find-up": "^5.0.0", "js-yaml": "^3.13.1", "micromatch": "^4.0.8", "npm-package-arg": "^11.0.0", "ora": "^3.4.0", "resolve-workspace-root": "^2.0.0", "split": "^1.0.1", "sudo-prompt": "9.1.1" } }, "sha512-DKbELrTOdl7U3KT0C07Aka9P+sUP3LL+1UTKf1KmLx2x2gPH1IC+c68N7iQlwNt+yA37qIw6/vKoqyTGu5EL9g=="],
+ "@expo/package-manager": ["@expo/package-manager@1.7.2", "", { "dependencies": { "@expo/json-file": "^9.0.2", "@expo/spawn-async": "^1.7.2", "ansi-regex": "^5.0.0", "chalk": "^4.0.0", "find-up": "^5.0.0", "js-yaml": "^3.13.1", "micromatch": "^4.0.8", "npm-package-arg": "^11.0.0", "ora": "^3.4.0", "resolve-workspace-root": "^2.0.0", "split": "^1.0.1", "sudo-prompt": "9.1.1" } }, "sha512-wT/qh9ebNjl6xr00bYkSh93b6E/78J3JPlT6WzGbxbsnv5FIZKB/nr522oWqVe1E+ML7BpXs8WugErWDN9kOFg=="],
- "@expo/plist": ["@expo/plist@0.2.1", "", { "dependencies": { "@xmldom/xmldom": "~0.7.7", "base64-js": "^1.2.3", "xmlbuilder": "^14.0.0" } }, "sha512-9TaXGuNxa0LQwHQn4rYiU6YaERv6dPnQgsdKWq2rKKTr6LWOtGNQCi/yOk/HBLeZSxBm59APT5/6x60uRvr0Mg=="],
+ "@expo/plist": ["@expo/plist@0.2.2", "", { "dependencies": { "@xmldom/xmldom": "~0.7.7", "base64-js": "^1.2.3", "xmlbuilder": "^14.0.0" } }, "sha512-ZZGvTO6vEWq02UAPs3LIdja+HRO18+LRI5QuDl6Hs3Ps7KX7xU6Y6kjahWKY37Rx2YjNpX07dGpBFzzC+vKa2g=="],
- "@expo/prebuild-config": ["@expo/prebuild-config@8.0.25", "", { "dependencies": { "@expo/config": "~10.0.8", "@expo/config-plugins": "~9.0.14", "@expo/config-types": "^52.0.3", "@expo/image-utils": "^0.6.4", "@expo/json-file": "^9.0.1", "@react-native/normalize-colors": "0.76.6", "debug": "^4.3.1", "fs-extra": "^9.0.0", "resolve-from": "^5.0.0", "semver": "^7.6.0", "xml2js": "0.6.0" } }, "sha512-xYHV8eiydZEDedf2AGaOFRFwcGlaSzrqQH94dwX42urNCU03FO0RUb7yPp4nkb7WNFg5Ov6PDsV7ES+YwzNgYQ=="],
+ "@expo/prebuild-config": ["@expo/prebuild-config@8.0.29", "", { "dependencies": { "@expo/config": "~10.0.11", "@expo/config-plugins": "~9.0.17", "@expo/config-types": "^52.0.5", "@expo/image-utils": "^0.6.5", "@expo/json-file": "^9.0.2", "@react-native/normalize-colors": "0.76.7", "debug": "^4.3.1", "fs-extra": "^9.0.0", "resolve-from": "^5.0.0", "semver": "^7.6.0", "xml2js": "0.6.0" } }, "sha512-CoZBxUQLZpGwbnPREr2sFnObOn4j+Mp7AHxX6Rz5jhSSz2VifC1jMM4NFiXrZe6LZyjYNqBGRe3D8bAqdpVGkg=="],
"@expo/rudder-sdk-node": ["@expo/rudder-sdk-node@1.1.1", "", { "dependencies": { "@expo/bunyan": "^4.0.0", "@segment/loosely-validate-event": "^2.0.0", "fetch-retry": "^4.1.1", "md5": "^2.2.1", "node-fetch": "^2.6.1", "remove-trailing-slash": "^0.1.0", "uuid": "^8.3.2" } }, "sha512-uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ=="],
"@expo/sdk-runtime-versions": ["@expo/sdk-runtime-versions@1.0.0", "", {}, "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ=="],
- "@expo/server": ["@expo/server@0.5.1", "", { "dependencies": { "@remix-run/node": "^2.12.0", "abort-controller": "^3.0.0", "debug": "^4.3.4", "source-map-support": "~0.5.21" } }, "sha512-lk8pKKw0eVP6rqkDR46vQB3vLA46z4KNGrqHpjD/SvMu1cGaRmQG2cQdX44mQtG8WyO9EYau+fBMHQQS2OTFKg=="],
+ "@expo/server": ["@expo/server@0.5.2", "", { "dependencies": { "abort-controller": "^3.0.0", "debug": "^4.3.4", "source-map-support": "~0.5.21", "undici": "^6.18.2 || ^7.0.0" } }, "sha512-Uh10gzQM9GUC+RUX8ACdWxrbOJ47uXvs+Kiq8Ho6XMBkRG7AXhWWAgM7XSI0GddqpRLOyHafsIICJqj5YsR5sw=="],
"@expo/spawn-async": ["@expo/spawn-async@1.7.2", "", { "dependencies": { "cross-spawn": "^7.0.3" } }, "sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew=="],
"@expo/vector-icons": ["@expo/vector-icons@14.0.4", "", { "dependencies": { "prop-types": "^15.8.1" } }, "sha512-+yKshcbpDfbV4zoXOgHxCwh7lkE9VVTT5T03OUlBsqfze1PLy6Hi4jp1vSb1GVbY6eskvMIivGVc9SKzIv0oEQ=="],
+ "@expo/ws-tunnel": ["@expo/ws-tunnel@1.0.6", "", {}, "sha512-nDRbLmSrJar7abvUjp3smDwH8HcbZcoOEa5jVPUv9/9CajgmWw20JNRwTuBRzWIWIkEJDkz20GoNA+tSwUqk0Q=="],
+
"@expo/xcpretty": ["@expo/xcpretty@4.3.2", "", { "dependencies": { "@babel/code-frame": "7.10.4", "chalk": "^4.1.0", "find-up": "^5.0.0", "js-yaml": "^4.1.0" }, "bin": { "excpretty": "build/cli.js" } }, "sha512-ReZxZ8pdnoI3tP/dNnJdnmAk7uLT4FjsKDGW7YeDdvdOMz2XCQSmSCM9IWlrXuWtMF9zeSB6WJtEhCQ41gQOfw=="],
"@floating-ui/core": ["@floating-ui/core@1.6.9", "", { "dependencies": { "@floating-ui/utils": "^0.2.9" } }, "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw=="],
@@ -732,19 +737,19 @@
"@floating-ui/utils": ["@floating-ui/utils@0.2.9", "", {}, "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg=="],
- "@formatjs/ecma402-abstract": ["@formatjs/ecma402-abstract@2.3.2", "", { "dependencies": { "@formatjs/fast-memoize": "2.2.6", "@formatjs/intl-localematcher": "0.5.10", "decimal.js": "10", "tslib": "2" } }, "sha512-6sE5nyvDloULiyOMbOTJEEgWL32w+VHkZQs8S02Lnn8Y/O5aQhjOEXwWzvR7SsBE/exxlSpY2EsWZgqHbtLatg=="],
+ "@formatjs/ecma402-abstract": ["@formatjs/ecma402-abstract@2.3.3", "", { "dependencies": { "@formatjs/fast-memoize": "2.2.6", "@formatjs/intl-localematcher": "0.6.0", "decimal.js": "10", "tslib": "2" } }, "sha512-pJT1OkhplSmvvr6i3CWTPvC/FGC06MbN5TNBfRO6Ox62AEz90eMq+dVvtX9Bl3jxCEkS0tATzDarRZuOLw7oFg=="],
"@formatjs/fast-memoize": ["@formatjs/fast-memoize@2.2.6", "", { "dependencies": { "tslib": "2" } }, "sha512-luIXeE2LJbQnnzotY1f2U2m7xuQNj2DA8Vq4ce1BY9ebRZaoPB1+8eZ6nXpLzsxuW5spQxr7LdCg+CApZwkqkw=="],
- "@formatjs/icu-messageformat-parser": ["@formatjs/icu-messageformat-parser@2.11.0", "", { "dependencies": { "@formatjs/ecma402-abstract": "2.3.2", "@formatjs/icu-skeleton-parser": "1.8.12", "tslib": "2" } }, "sha512-Hp81uTjjdTk3FLh/dggU5NK7EIsVWc5/ZDWrIldmf2rBuPejuZ13CZ/wpVE2SToyi4EiroPTQ1XJcJuZFIxTtw=="],
+ "@formatjs/icu-messageformat-parser": ["@formatjs/icu-messageformat-parser@2.11.1", "", { "dependencies": { "@formatjs/ecma402-abstract": "2.3.3", "@formatjs/icu-skeleton-parser": "1.8.13", "tslib": "2" } }, "sha512-o0AhSNaOfKoic0Sn1GkFCK4MxdRsw7mPJ5/rBpIqdvcC7MIuyUSW8WChUEvrK78HhNpYOgqCQbINxCTumJLzZA=="],
- "@formatjs/icu-skeleton-parser": ["@formatjs/icu-skeleton-parser@1.8.12", "", { "dependencies": { "@formatjs/ecma402-abstract": "2.3.2", "tslib": "2" } }, "sha512-QRAY2jC1BomFQHYDMcZtClqHR55EEnB96V7Xbk/UiBodsuFc5kujybzt87+qj1KqmJozFhk6n4KiT1HKwAkcfg=="],
+ "@formatjs/icu-skeleton-parser": ["@formatjs/icu-skeleton-parser@1.8.13", "", { "dependencies": { "@formatjs/ecma402-abstract": "2.3.3", "tslib": "2" } }, "sha512-N/LIdTvVc1TpJmMt2jVg0Fr1F7Q1qJPdZSCs19unMskCmVQ/sa0H9L8PWt13vq+gLdLg1+pPsvBLydL1Apahjg=="],
"@formatjs/intl-localematcher": ["@formatjs/intl-localematcher@0.5.10", "", { "dependencies": { "tslib": "2" } }, "sha512-af3qATX+m4Rnd9+wHcjJ4w2ijq+rAVP3CCinJQvFv1kgSu1W6jypUmvleJxcewdxmutM8dmIRZFxO/IQBZmP2Q=="],
"@google-cloud/precise-date": ["@google-cloud/precise-date@4.0.0", "", {}, "sha512-1TUx3KdaU3cN7nfCdNf+UVqA/PSX29Cjcox3fZZBtINlRrXVTmUkQnCKv2MbBUbCopbK4olAT1IHl76uZyCiVA=="],
- "@grpc/grpc-js": ["@grpc/grpc-js@1.12.5", "", { "dependencies": { "@grpc/proto-loader": "^0.7.13", "@js-sdsl/ordered-map": "^4.4.2" } }, "sha512-d3iiHxdpg5+ZcJ6jnDSOT8Z0O0VMVGy34jAnYLUX8yd36b1qn8f1TwOA/Lc7TsOh03IkPJ38eGI5qD2EjNkoEA=="],
+ "@grpc/grpc-js": ["@grpc/grpc-js@1.13.0", "", { "dependencies": { "@grpc/proto-loader": "^0.7.13", "@js-sdsl/ordered-map": "^4.4.2" } }, "sha512-pMuxInZjUnUkgMT2QLZclRqwk2ykJbIU05aZgPgJYXEpN9+2I7z7aNwcjWZSycRPl232FfhPszyBFJyOxTHNog=="],
"@grpc/proto-loader": ["@grpc/proto-loader@0.7.13", "", { "dependencies": { "lodash.camelcase": "^4.3.0", "long": "^5.0.0", "protobufjs": "^7.2.5", "yargs": "^17.7.2" }, "bin": { "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" } }, "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw=="],
@@ -898,55 +903,55 @@
"@number-flow/react": ["@number-flow/react@0.5.5", "", { "dependencies": { "esm-env": "^1.1.4", "number-flow": "0.5.3" }, "peerDependencies": { "react": "^18 || ^19", "react-dom": "^18 || ^19" } }, "sha512-Zdju5n0osxrb+7jbcpUJ9L2VJ2+9ptwjz5+A+2wq9Q32hs3PW/noPJjHtLTrtGINM9mEw76DcDg0ac/dx6j1aA=="],
- "@octokit/app": ["@octokit/app@15.1.2", "", { "dependencies": { "@octokit/auth-app": "^7.1.4", "@octokit/auth-unauthenticated": "^6.1.1", "@octokit/core": "^6.1.3", "@octokit/oauth-app": "^7.1.5", "@octokit/plugin-paginate-rest": "^11.3.6", "@octokit/types": "^13.6.2", "@octokit/webhooks": "^13.4.2" } }, "sha512-6aKmKvqnJKoVK+kx0mLlBMKmQYoziPw4Rd/PWr0j65QVQlrDXlu6hGU8fmTXt7tNkf/DsubdIaTT4fkoWzCh5g=="],
+ "@octokit/app": ["@octokit/app@15.1.5", "", { "dependencies": { "@octokit/auth-app": "^7.1.5", "@octokit/auth-unauthenticated": "^6.1.2", "@octokit/core": "^6.1.4", "@octokit/oauth-app": "^7.1.6", "@octokit/plugin-paginate-rest": "^11.4.2", "@octokit/types": "^13.8.0", "@octokit/webhooks": "^13.6.1" } }, "sha512-6cxLT9U8x7GGQ7lNWsKtFr4ccg9oLkGvowk373sX9HvX5U37kql5d55SzaQUxPE8PwgX2cqkzDm5NF5aPKevqg=="],
- "@octokit/auth-app": ["@octokit/auth-app@7.1.4", "", { "dependencies": { "@octokit/auth-oauth-app": "^8.1.2", "@octokit/auth-oauth-user": "^5.1.2", "@octokit/request": "^9.1.4", "@octokit/request-error": "^6.1.6", "@octokit/types": "^13.6.2", "toad-cache": "^3.7.0", "universal-github-app-jwt": "^2.2.0", "universal-user-agent": "^7.0.0" } }, "sha512-5F+3l/maq9JfWQ4bV28jT2G/K8eu9OJ317yzXPTGe4Kw+lKDhFaS4dQ3Ltmb6xImKxfCQdqDqMXODhc9YLipLw=="],
+ "@octokit/auth-app": ["@octokit/auth-app@7.1.5", "", { "dependencies": { "@octokit/auth-oauth-app": "^8.1.3", "@octokit/auth-oauth-user": "^5.1.3", "@octokit/request": "^9.2.1", "@octokit/request-error": "^6.1.7", "@octokit/types": "^13.8.0", "toad-cache": "^3.7.0", "universal-github-app-jwt": "^2.2.0", "universal-user-agent": "^7.0.0" } }, "sha512-boklS4E6LpbA3nRx+SU2fRKRGZJdOGoSZne/i3Y0B5rfHOcGwFgcXrwDLdtbv4igfDSnAkZaoNBv1GYjPDKRNw=="],
- "@octokit/auth-oauth-app": ["@octokit/auth-oauth-app@8.1.2", "", { "dependencies": { "@octokit/auth-oauth-device": "^7.1.2", "@octokit/auth-oauth-user": "^5.1.2", "@octokit/request": "^9.1.4", "@octokit/types": "^13.6.2", "universal-user-agent": "^7.0.0" } }, "sha512-3woNZgq5/S6RS+9ZTq+JdymxVr7E0s4EYxF20ugQvgX3pomdPUL5r/XdTY9wALoBM2eHVy4ettr5fKpatyTyHw=="],
+ "@octokit/auth-oauth-app": ["@octokit/auth-oauth-app@8.1.3", "", { "dependencies": { "@octokit/auth-oauth-device": "^7.1.3", "@octokit/auth-oauth-user": "^5.1.3", "@octokit/request": "^9.2.1", "@octokit/types": "^13.6.2", "universal-user-agent": "^7.0.0" } }, "sha512-4e6OjVe5rZ8yBe8w7byBjpKtSXFuro7gqeGAAZc7QYltOF8wB93rJl2FE0a4U1Mt88xxPv/mS+25/0DuLk0Ewg=="],
- "@octokit/auth-oauth-device": ["@octokit/auth-oauth-device@7.1.2", "", { "dependencies": { "@octokit/oauth-methods": "^5.1.3", "@octokit/request": "^9.1.4", "@octokit/types": "^13.6.2", "universal-user-agent": "^7.0.0" } }, "sha512-gTOIzDeV36OhVfxCl69FmvJix7tJIiU6dlxuzLVAzle7fYfO8UDyddr9B+o4CFQVaMBLMGZ9ak2CWMYcGeZnPw=="],
+ "@octokit/auth-oauth-device": ["@octokit/auth-oauth-device@7.1.3", "", { "dependencies": { "@octokit/oauth-methods": "^5.1.4", "@octokit/request": "^9.2.1", "@octokit/types": "^13.6.2", "universal-user-agent": "^7.0.0" } }, "sha512-BECO/N4B/Uikj0w3GCvjf/odMujtYTP3q82BJSjxC2J3rxTEiZIJ+z2xnRlDb0IE9dQSaTgRqUPVOieSbFcVzg=="],
- "@octokit/auth-oauth-user": ["@octokit/auth-oauth-user@5.1.2", "", { "dependencies": { "@octokit/auth-oauth-device": "^7.1.2", "@octokit/oauth-methods": "^5.1.2", "@octokit/request": "^9.1.4", "@octokit/types": "^13.6.2", "universal-user-agent": "^7.0.0" } }, "sha512-PgVDDPJgZYb3qSEXK4moksA23tfn68zwSAsQKZ1uH6IV9IaNEYx35OXXI80STQaLYnmEE86AgU0tC1YkM4WjsA=="],
+ "@octokit/auth-oauth-user": ["@octokit/auth-oauth-user@5.1.3", "", { "dependencies": { "@octokit/auth-oauth-device": "^7.1.3", "@octokit/oauth-methods": "^5.1.3", "@octokit/request": "^9.2.1", "@octokit/types": "^13.6.2", "universal-user-agent": "^7.0.0" } }, "sha512-zNPByPn9K7TC+OOHKGxU+MxrE9SZAN11UHYEFLsK2NRn3akJN2LHRl85q+Eypr3tuB2GrKx3rfj2phJdkYCvzw=="],
"@octokit/auth-token": ["@octokit/auth-token@5.1.2", "", {}, "sha512-JcQDsBdg49Yky2w2ld20IHAlwr8d/d8N6NiOXbtuoPCqzbsiJgF633mVUw3x4mo0H5ypataQIX7SFu3yy44Mpw=="],
- "@octokit/auth-unauthenticated": ["@octokit/auth-unauthenticated@6.1.1", "", { "dependencies": { "@octokit/request-error": "^6.1.6", "@octokit/types": "^13.6.2" } }, "sha512-bGXqdN6RhSFHvpPq46SL8sN+F3odQ6oMNLWc875IgoqcC3qus+fOL2th6Tkl94wvdSTy8/OeHzWy/lZebmnhog=="],
+ "@octokit/auth-unauthenticated": ["@octokit/auth-unauthenticated@6.1.2", "", { "dependencies": { "@octokit/request-error": "^6.1.7", "@octokit/types": "^13.6.2" } }, "sha512-07DlUGcz/AAVdzu3EYfi/dOyMSHp9YsOxPl/MPmtlVXWiD//GlV8HgZsPhud94DEyx+RfrW0wSl46Lx+AWbOlg=="],
- "@octokit/core": ["@octokit/core@6.1.3", "", { "dependencies": { "@octokit/auth-token": "^5.0.0", "@octokit/graphql": "^8.1.2", "@octokit/request": "^9.1.4", "@octokit/request-error": "^6.1.6", "@octokit/types": "^13.6.2", "before-after-hook": "^3.0.2", "universal-user-agent": "^7.0.0" } }, "sha512-z+j7DixNnfpdToYsOutStDgeRzJSMnbj8T1C/oQjB6Aa+kRfNjs/Fn7W6c8bmlt6mfy3FkgeKBRnDjxQow5dow=="],
+ "@octokit/core": ["@octokit/core@6.1.4", "", { "dependencies": { "@octokit/auth-token": "^5.0.0", "@octokit/graphql": "^8.1.2", "@octokit/request": "^9.2.1", "@octokit/request-error": "^6.1.7", "@octokit/types": "^13.6.2", "before-after-hook": "^3.0.2", "universal-user-agent": "^7.0.0" } }, "sha512-lAS9k7d6I0MPN+gb9bKDt7X8SdxknYqAMh44S5L+lNqIN2NuV8nvv3g8rPp7MuRxcOpxpUIATWprO0C34a8Qmg=="],
- "@octokit/endpoint": ["@octokit/endpoint@10.1.2", "", { "dependencies": { "@octokit/types": "^13.6.2", "universal-user-agent": "^7.0.2" } }, "sha512-XybpFv9Ms4hX5OCHMZqyODYqGTZ3H6K6Vva+M9LR7ib/xr1y1ZnlChYv9H680y77Vd/i/k+thXApeRASBQkzhA=="],
+ "@octokit/endpoint": ["@octokit/endpoint@10.1.3", "", { "dependencies": { "@octokit/types": "^13.6.2", "universal-user-agent": "^7.0.2" } }, "sha512-nBRBMpKPhQUxCsQQeW+rCJ/OPSMcj3g0nfHn01zGYZXuNDvvXudF/TYY6APj5THlurerpFN4a/dQAIAaM6BYhA=="],
- "@octokit/graphql": ["@octokit/graphql@8.2.0", "", { "dependencies": { "@octokit/request": "^9.1.4", "@octokit/types": "^13.8.0", "universal-user-agent": "^7.0.0" } }, "sha512-gejfDywEml/45SqbWTWrhfwvLBrcGYhOn50sPOjIeVvH6i7D16/9xcFA8dAJNp2HMcd+g4vru41g4E2RBiZvfQ=="],
+ "@octokit/graphql": ["@octokit/graphql@8.2.1", "", { "dependencies": { "@octokit/request": "^9.2.2", "@octokit/types": "^13.8.0", "universal-user-agent": "^7.0.0" } }, "sha512-n57hXtOoHrhwTWdvhVkdJHdhTv0JstjDbDRhJfwIRNfFqmSo1DaK/mD2syoNUoLCyqSjBpGAKOG0BuwF392slw=="],
- "@octokit/oauth-app": ["@octokit/oauth-app@7.1.5", "", { "dependencies": { "@octokit/auth-oauth-app": "^8.1.2", "@octokit/auth-oauth-user": "^5.1.2", "@octokit/auth-unauthenticated": "^6.1.1", "@octokit/core": "^6.1.3", "@octokit/oauth-authorization-url": "^7.1.1", "@octokit/oauth-methods": "^5.1.3", "@types/aws-lambda": "^8.10.83", "universal-user-agent": "^7.0.0" } }, "sha512-/Y2MiwWDlGUK4blKKfjJiwjzu/FzwKTTTfTZAAQ0QbdBIDEGJPWhOFH6muSN86zaa4tNheB4YS3oWIR2e4ydzA=="],
+ "@octokit/oauth-app": ["@octokit/oauth-app@7.1.6", "", { "dependencies": { "@octokit/auth-oauth-app": "^8.1.3", "@octokit/auth-oauth-user": "^5.1.3", "@octokit/auth-unauthenticated": "^6.1.2", "@octokit/core": "^6.1.4", "@octokit/oauth-authorization-url": "^7.1.1", "@octokit/oauth-methods": "^5.1.4", "@types/aws-lambda": "^8.10.83", "universal-user-agent": "^7.0.0" } }, "sha512-OMcMzY2WFARg80oJNFwWbY51TBUfLH4JGTy119cqiDawSFXSIBujxmpXiKbGWQlvfn0CxE6f7/+c6+Kr5hI2YA=="],
"@octokit/oauth-authorization-url": ["@octokit/oauth-authorization-url@7.1.1", "", {}, "sha512-ooXV8GBSabSWyhLUowlMIVd9l1s2nsOGQdlP2SQ4LnkEsGXzeCvbSbCPdZThXhEFzleGPwbapT0Sb+YhXRyjCA=="],
- "@octokit/oauth-methods": ["@octokit/oauth-methods@5.1.3", "", { "dependencies": { "@octokit/oauth-authorization-url": "^7.0.0", "@octokit/request": "^9.1.4", "@octokit/request-error": "^6.1.6", "@octokit/types": "^13.6.2" } }, "sha512-M+bDBi5H8FnH0xhCTg0m9hvcnppdDnxUqbZyOkxlLblKpLAR+eT2nbDPvJDp0eLrvJWA1I8OX0KHf/sBMQARRA=="],
+ "@octokit/oauth-methods": ["@octokit/oauth-methods@5.1.4", "", { "dependencies": { "@octokit/oauth-authorization-url": "^7.0.0", "@octokit/request": "^9.2.1", "@octokit/request-error": "^6.1.7", "@octokit/types": "^13.6.2" } }, "sha512-Jc/ycnePClOvO1WL7tlC+TRxOFtyJBGuTDsL4dzXNiVZvzZdrPuNw7zHI3qJSUX2n6RLXE5L0SkFmYyNaVUFoQ=="],
"@octokit/openapi-types": ["@octokit/openapi-types@23.0.1", "", {}, "sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g=="],
- "@octokit/openapi-webhooks-types": ["@octokit/openapi-webhooks-types@8.5.1", "", {}, "sha512-i3h1b5zpGSB39ffBbYdSGuAd0NhBAwPyA3QV3LYi/lx4lsbZiu7u2UHgXVUR6EpvOI8REOuVh1DZTRfHoJDvuQ=="],
+ "@octokit/openapi-webhooks-types": ["@octokit/openapi-webhooks-types@10.1.1", "", {}, "sha512-qBfqQVIDQaCFeGCofXieJDwvXcGgDn17+UwZ6WW6lfEvGYGreLFzTiaz9xjet9Us4zDf8iasoW3ixUj/R5lMhA=="],
"@octokit/plugin-paginate-graphql": ["@octokit/plugin-paginate-graphql@5.2.4", "", { "peerDependencies": { "@octokit/core": ">=6" } }, "sha512-pLZES1jWaOynXKHOqdnwZ5ULeVR6tVVCMm+AUbp0htdcyXDU95WbkYdU4R2ej1wKj5Tu94Mee2Ne0PjPO9cCyA=="],
- "@octokit/plugin-paginate-rest": ["@octokit/plugin-paginate-rest@11.4.0", "", { "dependencies": { "@octokit/types": "^13.7.0" }, "peerDependencies": { "@octokit/core": ">=6" } }, "sha512-ttpGck5AYWkwMkMazNCZMqxKqIq1fJBNxBfsFwwfyYKTf914jKkLF0POMS3YkPBwp5g1c2Y4L79gDz01GhSr1g=="],
+ "@octokit/plugin-paginate-rest": ["@octokit/plugin-paginate-rest@11.4.3", "", { "dependencies": { "@octokit/types": "^13.7.0" }, "peerDependencies": { "@octokit/core": ">=6" } }, "sha512-tBXaAbXkqVJlRoA/zQVe9mUdb8rScmivqtpv3ovsC5xhje/a+NOCivs7eUhWBwCApJVsR4G5HMeaLbq7PxqZGA=="],
- "@octokit/plugin-rest-endpoint-methods": ["@octokit/plugin-rest-endpoint-methods@13.3.0", "", { "dependencies": { "@octokit/types": "^13.7.0" }, "peerDependencies": { "@octokit/core": ">=6" } }, "sha512-LUm44shlmkp/6VC+qQgHl3W5vzUP99ZM54zH6BuqkJK4DqfFLhegANd+fM4YRLapTvPm4049iG7F3haANKMYvQ=="],
+ "@octokit/plugin-rest-endpoint-methods": ["@octokit/plugin-rest-endpoint-methods@13.3.1", "", { "dependencies": { "@octokit/types": "^13.8.0" }, "peerDependencies": { "@octokit/core": ">=6" } }, "sha512-o8uOBdsyR+WR8MK9Cco8dCgvG13H1RlM1nWnK/W7TEACQBFux/vPREgKucxUfuDQ5yi1T3hGf4C5ZmZXAERgwQ=="],
- "@octokit/plugin-retry": ["@octokit/plugin-retry@7.1.3", "", { "dependencies": { "@octokit/request-error": "^6.1.6", "@octokit/types": "^13.6.2", "bottleneck": "^2.15.3" }, "peerDependencies": { "@octokit/core": ">=6" } }, "sha512-8nKOXvYWnzv89gSyIvgFHmCBAxfQAOPRlkacUHL9r5oWtp5Whxl8Skb2n3ACZd+X6cYijD6uvmrQuPH/UCL5zQ=="],
+ "@octokit/plugin-retry": ["@octokit/plugin-retry@7.1.4", "", { "dependencies": { "@octokit/request-error": "^6.1.7", "@octokit/types": "^13.6.2", "bottleneck": "^2.15.3" }, "peerDependencies": { "@octokit/core": ">=6" } }, "sha512-7AIP4p9TttKN7ctygG4BtR7rrB0anZqoU9ThXFk8nETqIfvgPUANTSYHqWYknK7W3isw59LpZeLI8pcEwiJdRg=="],
"@octokit/plugin-throttling": ["@octokit/plugin-throttling@9.4.0", "", { "dependencies": { "@octokit/types": "^13.7.0", "bottleneck": "^2.15.3" }, "peerDependencies": { "@octokit/core": "^6.1.3" } }, "sha512-IOlXxXhZA4Z3m0EEYtrrACkuHiArHLZ3CvqWwOez/pURNqRuwfoFlTPbN5Muf28pzFuztxPyiUiNwz8KctdZaQ=="],
- "@octokit/request": ["@octokit/request@9.2.0", "", { "dependencies": { "@octokit/endpoint": "^10.0.0", "@octokit/request-error": "^6.0.1", "@octokit/types": "^13.6.2", "fast-content-type-parse": "^2.0.0", "universal-user-agent": "^7.0.2" } }, "sha512-kXLfcxhC4ozCnAXy2ff+cSxpcF0A1UqxjvYMqNuPIeOAzJbVWQ+dy5G2fTylofB/gTbObT8O6JORab+5XtA1Kw=="],
+ "@octokit/request": ["@octokit/request@9.2.2", "", { "dependencies": { "@octokit/endpoint": "^10.1.3", "@octokit/request-error": "^6.1.7", "@octokit/types": "^13.6.2", "fast-content-type-parse": "^2.0.0", "universal-user-agent": "^7.0.2" } }, "sha512-dZl0ZHx6gOQGcffgm1/Sf6JfEpmh34v3Af2Uci02vzUYz6qEN6zepoRtmybWXIGXFIK8K9ylE3b+duCWqhArtg=="],
- "@octokit/request-error": ["@octokit/request-error@6.1.6", "", { "dependencies": { "@octokit/types": "^13.6.2" } }, "sha512-pqnVKYo/at0NuOjinrgcQYpEbv4snvP3bKMRqHaD9kIsk9u1LCpb2smHZi8/qJfgeNqLo5hNW4Z7FezNdEo0xg=="],
+ "@octokit/request-error": ["@octokit/request-error@6.1.7", "", { "dependencies": { "@octokit/types": "^13.6.2" } }, "sha512-69NIppAwaauwZv6aOzb+VVLwt+0havz9GT5YplkeJv7fG7a40qpLt/yZKyiDxAhgz0EtgNdNcb96Z0u+Zyuy2g=="],
"@octokit/types": ["@octokit/types@13.8.0", "", { "dependencies": { "@octokit/openapi-types": "^23.0.1" } }, "sha512-x7DjTIbEpEWXK99DMd01QfWy0hd5h4EN+Q7shkdKds3otGQP+oWE/y0A76i1OvH9fygo4ddvNf7ZvF0t78P98A=="],
- "@octokit/webhooks": ["@octokit/webhooks@13.5.0", "", { "dependencies": { "@octokit/openapi-webhooks-types": "8.5.1", "@octokit/request-error": "^6.1.6", "@octokit/webhooks-methods": "^5.0.0" } }, "sha512-uSO/TCCfi9vaZHOBsGWsRNBXYYKtLnSDbHI+std0M80AaEd7AnVfLqvk+9V3GP1faPcOx06ADx+h8UWwvemIGw=="],
+ "@octokit/webhooks": ["@octokit/webhooks@13.7.4", "", { "dependencies": { "@octokit/openapi-webhooks-types": "10.1.1", "@octokit/request-error": "^6.1.7", "@octokit/webhooks-methods": "^5.1.1" } }, "sha512-f386XyLTieQbgKPKS6ZMlH4dq8eLsxNddwofiKRZCq0bZ2gikoFwMD99K6l1oAwqe/KZNzrEziGicRgnzplplQ=="],
- "@octokit/webhooks-methods": ["@octokit/webhooks-methods@5.1.0", "", {}, "sha512-yFZa3UH11VIxYnnoOYCVoJ3q4ChuSOk2IVBBQ0O3xtKX4x9bmKb/1t+Mxixv2iUhzMdOl1qeWJqEhouXXzB3rQ=="],
+ "@octokit/webhooks-methods": ["@octokit/webhooks-methods@5.1.1", "", {}, "sha512-NGlEHZDseJTCj8TMMFehzwa9g7On4KJMPVHDSrHxCQumL6uSQR8wIkP/qesv52fXqV1BPf4pTxwtS31ldAt9Xg=="],
"@one-ini/wasm": ["@one-ini/wasm@0.1.1", "", {}, "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw=="],
@@ -1006,9 +1011,9 @@
"@pkgjs/parseargs": ["@pkgjs/parseargs@0.11.0", "", {}, "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg=="],
- "@polar-sh/adapter-utils": ["@polar-sh/adapter-utils@0.1.8", "", { "dependencies": { "@polar-sh/sdk": "^0.21.3" } }, "sha512-Jq8Y3Hlf+dQvEOFYGd90o8yrf5cbFm1wUz2hcNbo4vmd5Pbh+Lh+DI/vXI84Z9/4TO3P5mbMzFC7+TrRbmNm9w=="],
+ "@polar-sh/adapter-utils": ["@polar-sh/adapter-utils@0.1.14", "", { "dependencies": { "@polar-sh/sdk": "^0.29.3" } }, "sha512-02r9DGLmYfGXlhxK+rEz7UWyFlQL8zsKvIAYA8bP3NpcVSyqKd+TYL4t2jQ6/NFLNs8RhavQbRd3FFfCmNqtgw=="],
- "@polar-sh/nextjs": ["@polar-sh/nextjs@0.3.15", "", { "dependencies": { "@polar-sh/adapter-utils": "0.1.8", "@polar-sh/sdk": "^0.21.3" }, "peerDependencies": { "next": "^15.0.0" } }, "sha512-c9BSgYbATX/7DzZsO73CrvmwigLPX+g3zBtGMRIsYamKFZscXqDMKQwGKk7k8pP97XmVW4kbEDmUzoKt//pztw=="],
+ "@polar-sh/nextjs": ["@polar-sh/nextjs@0.3.22", "", { "dependencies": { "@polar-sh/adapter-utils": "0.1.14", "@polar-sh/sdk": "^0.29.3" }, "peerDependencies": { "next": "^15.0.0 || ^15.2.0-canary.*" } }, "sha512-JgJx5pLVtmjzAWUaT8IAYtt0ZjFgG6F7yTpKZoCjVxTfDe56EC5Dtlr1ufXPJuo6wPrGVnnO0qhdPZ16tJbjHg=="],
"@polar-sh/sdk": ["@polar-sh/sdk@0.22.2", "", { "dependencies": { "standardwebhooks": "^1.0.0" }, "peerDependencies": { "zod": ">= 3" } }, "sha512-B0H7IrhkEVUMoJxNJ840sPMAtTSWjbr+evOhy7jpxS+COjlWygJEDb9fIhxdjWE5m9Iwlk5LaHsgipxjkP+Vyw=="],
@@ -1072,7 +1077,7 @@
"@radix-ui/react-menu": ["@radix-ui/react-menu@2.1.5", "", { "dependencies": { "@radix-ui/primitive": "1.1.1", "@radix-ui/react-collection": "1.1.1", "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", "@radix-ui/react-direction": "1.1.0", "@radix-ui/react-dismissable-layer": "1.1.4", "@radix-ui/react-focus-guards": "1.1.1", "@radix-ui/react-focus-scope": "1.1.1", "@radix-ui/react-id": "1.1.0", "@radix-ui/react-popper": "1.2.1", "@radix-ui/react-portal": "1.1.3", "@radix-ui/react-presence": "1.1.2", "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-roving-focus": "1.1.1", "@radix-ui/react-slot": "1.1.1", "@radix-ui/react-use-callback-ref": "1.1.0", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.6.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-uH+3w5heoMJtqVCgYOtYVMECk1TOrkUn0OG0p5MqXC0W2ppcuVeESbou8PTHoqAjbdTEK19AGXBWcEtR5WpEQg=="],
- "@radix-ui/react-navigation-menu": ["@radix-ui/react-navigation-menu@1.2.4", "", { "dependencies": { "@radix-ui/primitive": "1.1.1", "@radix-ui/react-collection": "1.1.1", "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", "@radix-ui/react-direction": "1.1.0", "@radix-ui/react-dismissable-layer": "1.1.4", "@radix-ui/react-id": "1.1.0", "@radix-ui/react-presence": "1.1.2", "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-use-callback-ref": "1.1.0", "@radix-ui/react-use-controllable-state": "1.1.0", "@radix-ui/react-use-layout-effect": "1.1.0", "@radix-ui/react-use-previous": "1.1.0", "@radix-ui/react-visually-hidden": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-wUi01RrTDTOoGtjEPHsxlzPtVzVc3R/AZ5wfh0dyqMAqolhHAHvG5iQjBCTi2AjQqa77FWWbA3kE3RkD+bDMgQ=="],
+ "@radix-ui/react-navigation-menu": ["@radix-ui/react-navigation-menu@1.2.5", "", { "dependencies": { "@radix-ui/primitive": "1.1.1", "@radix-ui/react-collection": "1.1.2", "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", "@radix-ui/react-direction": "1.1.0", "@radix-ui/react-dismissable-layer": "1.1.5", "@radix-ui/react-id": "1.1.0", "@radix-ui/react-presence": "1.1.2", "@radix-ui/react-primitive": "2.0.2", "@radix-ui/react-use-callback-ref": "1.1.0", "@radix-ui/react-use-controllable-state": "1.1.0", "@radix-ui/react-use-layout-effect": "1.1.0", "@radix-ui/react-use-previous": "1.1.0", "@radix-ui/react-visually-hidden": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-myMHHQUZ3ZLTi8W381/Vu43Ia0NqakkQZ2vzynMmTUtQQ9kNkjzhOwkZC9TAM5R07OZUVIQyHC06f/9JZJpvvA=="],
"@radix-ui/react-popover": ["@radix-ui/react-popover@1.1.5", "", { "dependencies": { "@radix-ui/primitive": "1.1.1", "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", "@radix-ui/react-dismissable-layer": "1.1.4", "@radix-ui/react-focus-guards": "1.1.1", "@radix-ui/react-focus-scope": "1.1.1", "@radix-ui/react-id": "1.1.0", "@radix-ui/react-popper": "1.2.1", "@radix-ui/react-portal": "1.1.3", "@radix-ui/react-presence": "1.1.2", "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-slot": "1.1.1", "@radix-ui/react-use-controllable-state": "1.1.0", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.6.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-YXkTAftOIW2Bt3qKH8vYr6n9gCkVrvyvfiTObVjoHVTHnNj26rmvO87IKa3VgtgCjb8FAQ6qOjNViwl+9iIzlg=="],
@@ -1084,11 +1089,11 @@
"@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.0.1", "", { "dependencies": { "@radix-ui/react-slot": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg=="],
- "@radix-ui/react-progress": ["@radix-ui/react-progress@1.1.1", "", { "dependencies": { "@radix-ui/react-context": "1.1.1", "@radix-ui/react-primitive": "2.0.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-6diOawA84f/eMxFHcWut0aE1C2kyE9dOyCTQOMRR2C/qPiXz/X0SaiA/RLbapQaXUCmy0/hLMf9meSccD1N0pA=="],
+ "@radix-ui/react-progress": ["@radix-ui/react-progress@1.1.2", "", { "dependencies": { "@radix-ui/react-context": "1.1.1", "@radix-ui/react-primitive": "2.0.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-u1IgJFQ4zNAUTjGdDL5dcl/U8ntOR6jsnhxKb5RKp5Ozwl88xKR9EqRZOe/Mk8tnx0x5tNUe2F+MzsyjqMg0MA=="],
"@radix-ui/react-roving-focus": ["@radix-ui/react-roving-focus@1.1.1", "", { "dependencies": { "@radix-ui/primitive": "1.1.1", "@radix-ui/react-collection": "1.1.1", "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", "@radix-ui/react-direction": "1.1.0", "@radix-ui/react-id": "1.1.0", "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-use-callback-ref": "1.1.0", "@radix-ui/react-use-controllable-state": "1.1.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-QE1RoxPGJ/Nm8Qmk0PxP8ojmoaS67i0s7hVssS7KuI2FQoc/uzVlZsqKfQvxPE6D8hICCPHJ4D88zNhT3OOmkw=="],
- "@radix-ui/react-scroll-area": ["@radix-ui/react-scroll-area@1.2.2", "", { "dependencies": { "@radix-ui/number": "1.1.0", "@radix-ui/primitive": "1.1.1", "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", "@radix-ui/react-direction": "1.1.0", "@radix-ui/react-presence": "1.1.2", "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-use-callback-ref": "1.1.0", "@radix-ui/react-use-layout-effect": "1.1.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-EFI1N/S3YxZEW/lJ/H1jY3njlvTd8tBmgKEn4GHi51+aMm94i6NmAJstsm5cu3yJwYqYc93gpCPm21FeAbFk6g=="],
+ "@radix-ui/react-scroll-area": ["@radix-ui/react-scroll-area@1.2.3", "", { "dependencies": { "@radix-ui/number": "1.1.0", "@radix-ui/primitive": "1.1.1", "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", "@radix-ui/react-direction": "1.1.0", "@radix-ui/react-presence": "1.1.2", "@radix-ui/react-primitive": "2.0.2", "@radix-ui/react-use-callback-ref": "1.1.0", "@radix-ui/react-use-layout-effect": "1.1.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-l7+NNBfBYYJa9tNqVcP2AGvxdE3lmE6kFTBXdvHgUaZuy+4wGCL1Cl2AfaR7RKyimj7lZURGLwFO59k4eBnDJQ=="],
"@radix-ui/react-select": ["@radix-ui/react-select@2.1.5", "", { "dependencies": { "@radix-ui/number": "1.1.0", "@radix-ui/primitive": "1.1.1", "@radix-ui/react-collection": "1.1.1", "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", "@radix-ui/react-direction": "1.1.0", "@radix-ui/react-dismissable-layer": "1.1.4", "@radix-ui/react-focus-guards": "1.1.1", "@radix-ui/react-focus-scope": "1.1.1", "@radix-ui/react-id": "1.1.0", "@radix-ui/react-popper": "1.2.1", "@radix-ui/react-portal": "1.1.3", "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-slot": "1.1.1", "@radix-ui/react-use-callback-ref": "1.1.0", "@radix-ui/react-use-controllable-state": "1.1.0", "@radix-ui/react-use-layout-effect": "1.1.0", "@radix-ui/react-use-previous": "1.1.0", "@radix-ui/react-visually-hidden": "1.1.1", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.6.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-eVV7N8jBXAXnyrc+PsOF89O9AfVgGnbLxUtBb0clJ8y8ENMWLARGMI/1/SBRLz7u4HqxLgN71BJ17eono3wcjA=="],
@@ -1166,17 +1171,17 @@
"@react-native/assets-registry": ["@react-native/assets-registry@0.76.5", "", {}, "sha512-MN5dasWo37MirVcKWuysRkRr4BjNc81SXwUtJYstwbn8oEkfnwR9DaqdDTo/hHOnTdhafffLIa2xOOHcjDIGEw=="],
- "@react-native/babel-plugin-codegen": ["@react-native/babel-plugin-codegen@0.76.6", "", { "dependencies": { "@react-native/codegen": "0.76.6" } }, "sha512-yFC9I/aDBOBz3ZMlqKn2NY/mDUtCksUNZ7AQmBiTAeVTUP0ujEjE0hTOx5Qd+kok7A7hwZEX87HdSgjiJZfr5g=="],
+ "@react-native/babel-plugin-codegen": ["@react-native/babel-plugin-codegen@0.76.7", "", { "dependencies": { "@react-native/codegen": "0.76.7" } }, "sha512-+8H4DXJREM4l/pwLF/wSVMRzVhzhGDix5jLezNrMD9J1U1AMfV2aSkWA1XuqR7pjPs/Vqf6TaPL7vJMZ4LU05Q=="],
- "@react-native/babel-preset": ["@react-native/babel-preset@0.76.6", "", { "dependencies": { "@babel/core": "^7.25.2", "@babel/plugin-proposal-export-default-from": "^7.24.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-default-from": "^7.24.7", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-transform-arrow-functions": "^7.24.7", "@babel/plugin-transform-async-generator-functions": "^7.25.4", "@babel/plugin-transform-async-to-generator": "^7.24.7", "@babel/plugin-transform-block-scoping": "^7.25.0", "@babel/plugin-transform-class-properties": "^7.25.4", "@babel/plugin-transform-classes": "^7.25.4", "@babel/plugin-transform-computed-properties": "^7.24.7", "@babel/plugin-transform-destructuring": "^7.24.8", "@babel/plugin-transform-flow-strip-types": "^7.25.2", "@babel/plugin-transform-for-of": "^7.24.7", "@babel/plugin-transform-function-name": "^7.25.1", "@babel/plugin-transform-literals": "^7.25.2", "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", "@babel/plugin-transform-modules-commonjs": "^7.24.8", "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", "@babel/plugin-transform-numeric-separator": "^7.24.7", "@babel/plugin-transform-object-rest-spread": "^7.24.7", "@babel/plugin-transform-optional-catch-binding": "^7.24.7", "@babel/plugin-transform-optional-chaining": "^7.24.8", "@babel/plugin-transform-parameters": "^7.24.7", "@babel/plugin-transform-private-methods": "^7.24.7", "@babel/plugin-transform-private-property-in-object": "^7.24.7", "@babel/plugin-transform-react-display-name": "^7.24.7", "@babel/plugin-transform-react-jsx": "^7.25.2", "@babel/plugin-transform-react-jsx-self": "^7.24.7", "@babel/plugin-transform-react-jsx-source": "^7.24.7", "@babel/plugin-transform-regenerator": "^7.24.7", "@babel/plugin-transform-runtime": "^7.24.7", "@babel/plugin-transform-shorthand-properties": "^7.24.7", "@babel/plugin-transform-spread": "^7.24.7", "@babel/plugin-transform-sticky-regex": "^7.24.7", "@babel/plugin-transform-typescript": "^7.25.2", "@babel/plugin-transform-unicode-regex": "^7.24.7", "@babel/template": "^7.25.0", "@react-native/babel-plugin-codegen": "0.76.6", "babel-plugin-syntax-hermes-parser": "^0.25.1", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" } }, "sha512-ojlVWY6S/VE/nb9hIRetPMTsW9ZmGb2R3dnToEXAtQQDz41eHMHXbkw/k2h0THp6qhas25ruNvn3N5n2o+lBzg=="],
+ "@react-native/babel-preset": ["@react-native/babel-preset@0.76.7", "", { "dependencies": { "@babel/core": "^7.25.2", "@babel/plugin-proposal-export-default-from": "^7.24.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-default-from": "^7.24.7", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-transform-arrow-functions": "^7.24.7", "@babel/plugin-transform-async-generator-functions": "^7.25.4", "@babel/plugin-transform-async-to-generator": "^7.24.7", "@babel/plugin-transform-block-scoping": "^7.25.0", "@babel/plugin-transform-class-properties": "^7.25.4", "@babel/plugin-transform-classes": "^7.25.4", "@babel/plugin-transform-computed-properties": "^7.24.7", "@babel/plugin-transform-destructuring": "^7.24.8", "@babel/plugin-transform-flow-strip-types": "^7.25.2", "@babel/plugin-transform-for-of": "^7.24.7", "@babel/plugin-transform-function-name": "^7.25.1", "@babel/plugin-transform-literals": "^7.25.2", "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", "@babel/plugin-transform-modules-commonjs": "^7.24.8", "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", "@babel/plugin-transform-numeric-separator": "^7.24.7", "@babel/plugin-transform-object-rest-spread": "^7.24.7", "@babel/plugin-transform-optional-catch-binding": "^7.24.7", "@babel/plugin-transform-optional-chaining": "^7.24.8", "@babel/plugin-transform-parameters": "^7.24.7", "@babel/plugin-transform-private-methods": "^7.24.7", "@babel/plugin-transform-private-property-in-object": "^7.24.7", "@babel/plugin-transform-react-display-name": "^7.24.7", "@babel/plugin-transform-react-jsx": "^7.25.2", "@babel/plugin-transform-react-jsx-self": "^7.24.7", "@babel/plugin-transform-react-jsx-source": "^7.24.7", "@babel/plugin-transform-regenerator": "^7.24.7", "@babel/plugin-transform-runtime": "^7.24.7", "@babel/plugin-transform-shorthand-properties": "^7.24.7", "@babel/plugin-transform-spread": "^7.24.7", "@babel/plugin-transform-sticky-regex": "^7.24.7", "@babel/plugin-transform-typescript": "^7.25.2", "@babel/plugin-transform-unicode-regex": "^7.24.7", "@babel/template": "^7.25.0", "@react-native/babel-plugin-codegen": "0.76.7", "babel-plugin-syntax-hermes-parser": "^0.25.1", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" } }, "sha512-/c5DYZ6y8tyg+g8tgXKndDT7mWnGmkZ9F+T3qNDfoE3Qh7ucrNeC2XWvU9h5pk8eRtj9l4SzF4aO1phzwoibyg=="],
"@react-native/codegen": ["@react-native/codegen@0.76.5", "", { "dependencies": { "@babel/parser": "^7.25.3", "glob": "^7.1.1", "hermes-parser": "0.23.1", "invariant": "^2.2.4", "jscodeshift": "^0.14.0", "mkdirp": "^0.5.1", "nullthrows": "^1.1.1", "yargs": "^17.6.2" }, "peerDependencies": { "@babel/preset-env": "^7.1.6" } }, "sha512-FoZ9VRQ5MpgtDAnVo1rT9nNRfjnWpE40o1GeJSDlpUMttd36bVXvsDm8W/NhX8BKTWXSX+CPQJsRcvN1UPYGKg=="],
"@react-native/community-cli-plugin": ["@react-native/community-cli-plugin@0.76.5", "", { "dependencies": { "@react-native/dev-middleware": "0.76.5", "@react-native/metro-babel-transformer": "0.76.5", "chalk": "^4.0.0", "execa": "^5.1.1", "invariant": "^2.2.4", "metro": "^0.81.0", "metro-config": "^0.81.0", "metro-core": "^0.81.0", "node-fetch": "^2.2.0", "readline": "^1.3.0", "semver": "^7.1.3" }, "peerDependencies": { "@react-native-community/cli-server-api": "*" }, "optionalPeers": ["@react-native-community/cli-server-api"] }, "sha512-3MKMnlU0cZOWlMhz5UG6WqACJiWUrE3XwBEumzbMmZw3Iw3h+fIsn+7kLLE5EhzqLt0hg5Y4cgYFi4kOaNgq+g=="],
- "@react-native/debugger-frontend": ["@react-native/debugger-frontend@0.76.6", "", {}, "sha512-kP97xMQjiANi5/lmf8MakS7d8FTJl+BqYHQMqyvNiY+eeWyKnhqW2GL2v3eEUBAuyPBgJGivuuO4RvjZujduJg=="],
+ "@react-native/debugger-frontend": ["@react-native/debugger-frontend@0.76.7", "", {}, "sha512-89ZtZXt7ZxE94i7T94qzZMhp4Gfcpr/QVpGqEaejAxZD+gvDCH21cYSF+/Rz2ttBazm0rk5MZ0mFqb0Iqp1jmw=="],
- "@react-native/dev-middleware": ["@react-native/dev-middleware@0.76.6", "", { "dependencies": { "@isaacs/ttlcache": "^1.4.1", "@react-native/debugger-frontend": "0.76.6", "chrome-launcher": "^0.15.2", "chromium-edge-launcher": "^0.2.0", "connect": "^3.6.5", "debug": "^2.2.0", "nullthrows": "^1.1.1", "open": "^7.0.3", "selfsigned": "^2.4.1", "serve-static": "^1.13.1", "ws": "^6.2.3" } }, "sha512-1bAyd2/X48Nzb45s5l2omM75vy764odx/UnDs4sJfFCuK+cupU4nRPgl0XWIqgdM/2+fbQ3E4QsVS/WIKTFxvQ=="],
+ "@react-native/dev-middleware": ["@react-native/dev-middleware@0.76.7", "", { "dependencies": { "@isaacs/ttlcache": "^1.4.1", "@react-native/debugger-frontend": "0.76.7", "chrome-launcher": "^0.15.2", "chromium-edge-launcher": "^0.2.0", "connect": "^3.6.5", "debug": "^2.2.0", "invariant": "^2.2.4", "nullthrows": "^1.1.1", "open": "^7.0.3", "selfsigned": "^2.4.1", "serve-static": "^1.13.1", "ws": "^6.2.3" } }, "sha512-Jsw8g9DyLPnR9yHEGuT09yHZ7M88/GL9CtU9WmyChlBwdXSeE3AmRqLegsV3XcgULQ1fqdemokaOZ/MwLYkjdA=="],
"@react-native/gradle-plugin": ["@react-native/gradle-plugin@0.76.5", "", {}, "sha512-7KSyD0g0KhbngITduC8OABn0MAlJfwjIdze7nA4Oe1q3R7qmAv+wQzW+UEXvPah8m1WqFjYTkQwz/4mK3XrQGw=="],
@@ -1184,95 +1189,79 @@
"@react-native/metro-babel-transformer": ["@react-native/metro-babel-transformer@0.76.5", "", { "dependencies": { "@babel/core": "^7.25.2", "@react-native/babel-preset": "0.76.5", "hermes-parser": "0.23.1", "nullthrows": "^1.1.1" } }, "sha512-Cm9G5Sg5BDty3/MKa3vbCAJtT3YHhlEaPlQALLykju7qBS+pHZV9bE9hocfyyvc5N/osTIGWxG5YOfqTeMu1oQ=="],
- "@react-native/normalize-colors": ["@react-native/normalize-colors@0.76.6", "", {}, "sha512-1n4udXH2Cla31iA/8eLRdhFHpYUYK1NKWCn4m1Sr9L4SarWKAYuRFliK1fcLvPPALCFoFlWvn8I0ekdUOHMzDQ=="],
+ "@react-native/normalize-colors": ["@react-native/normalize-colors@0.76.7", "", {}, "sha512-ST1xxBuYVIXPdD81dR6+tzIgso7m3pa9+6rOBXTh5Xm7KEEFik7tnQX+GydXYMp3wr1gagJjragdXkPnxK6WNg=="],
"@react-native/virtualized-lists": ["@react-native/virtualized-lists@0.76.5", "", { "dependencies": { "invariant": "^2.2.4", "nullthrows": "^1.1.1" }, "peerDependencies": { "@types/react": "^18.2.6", "react": "*", "react-native": "*" }, "optionalPeers": ["@types/react"] }, "sha512-M/fW1fTwxrHbcx0OiVOIxzG6rKC0j9cR9Csf80o77y1Xry0yrNPpAlf8D1ev3LvHsiAUiRNFlauoPtodrs2J1A=="],
- "@react-navigation/bottom-tabs": ["@react-navigation/bottom-tabs@7.2.0", "", { "dependencies": { "@react-navigation/elements": "^2.2.5", "color": "^4.2.3" }, "peerDependencies": { "@react-navigation/native": "^7.0.14", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0", "react-native-screens": ">= 4.0.0" } }, "sha512-1LxjgnbPyFINyf9Qr5d1YE0pYhuJayg5TCIIFQmbcX4PRhX7FKUXV7cX8OzrKXEdZi/UE/VNXugtozPAR9zgvA=="],
-
- "@react-navigation/core": ["@react-navigation/core@7.3.1", "", { "dependencies": { "@react-navigation/routers": "^7.1.2", "escape-string-regexp": "^4.0.0", "nanoid": "3.3.8", "query-string": "^7.1.3", "react-is": "^18.2.0", "use-latest-callback": "^0.2.1", "use-sync-external-store": "^1.2.2" }, "peerDependencies": { "react": ">= 18.2.0" } }, "sha512-S3KCGvNsoqVk8ErAtQI2EAhg9185lahF5OY01ofrrD4Ij/uk3QEHHjoGQhR5l5DXSCSKr1JbMQA7MEKMsBiWZA=="],
-
- "@react-navigation/elements": ["@react-navigation/elements@2.2.5", "", { "dependencies": { "color": "^4.2.3" }, "peerDependencies": { "@react-native-masked-view/masked-view": ">= 0.2.0", "@react-navigation/native": "^7.0.14", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0" }, "optionalPeers": ["@react-native-masked-view/masked-view"] }, "sha512-sDhE+W14P7MNWLMxXg1MEVXwkLUpMZJGflE6nQNzLmolJQIHgcia0Mrm8uRa3bQovhxYu1UzEojLZ+caoZt7Fg=="],
-
- "@react-navigation/native": ["@react-navigation/native@7.0.14", "", { "dependencies": { "@react-navigation/core": "^7.3.1", "escape-string-regexp": "^4.0.0", "fast-deep-equal": "^3.1.3", "nanoid": "3.3.8", "use-latest-callback": "^0.2.1" }, "peerDependencies": { "react": ">= 18.2.0", "react-native": "*" } }, "sha512-Gi6lLw4VOGSWAhmUdJOMauOKGK51/YA1CprjXm91sNfgERWvznqEMw8QmUQx9SEqYfi0LfZhbzpMst09SJ00lw=="],
-
- "@react-navigation/native-stack": ["@react-navigation/native-stack@7.2.0", "", { "dependencies": { "@react-navigation/elements": "^2.2.5", "warn-once": "^0.1.1" }, "peerDependencies": { "@react-navigation/native": "^7.0.14", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0", "react-native-screens": ">= 4.0.0" } }, "sha512-mw7Nq9qQrGsmJmCTwIIWB7yY/3tWYXvQswx+HJScGAadIjemvytJXm1fcl3+YZ9T9Ym0aERcVe5kDs+ny3X4vA=="],
-
- "@react-navigation/routers": ["@react-navigation/routers@7.1.2", "", { "dependencies": { "nanoid": "3.3.8" } }, "sha512-emdEjpVDK8zbiu2GChC8oYIAub9i/OpNuQJekVsbyFCBz4/TzaBzms38Q53YaNhdIFNmiYLfHv/Y1Ub7KYfm3w=="],
-
- "@remix-run/node": ["@remix-run/node@2.15.2", "", { "dependencies": { "@remix-run/server-runtime": "2.15.2", "@remix-run/web-fetch": "^4.4.2", "@web3-storage/multipart-parser": "^1.0.0", "cookie-signature": "^1.1.0", "source-map-support": "^0.5.21", "stream-slice": "^0.1.2", "undici": "^6.11.1" }, "peerDependencies": { "typescript": "^5.1.0" }, "optionalPeers": ["typescript"] }, "sha512-NS/h5uxje7DYCNgcKqKAiUhf0r2HVnoYUBWLyIIMmCUP1ddWurBP6xTPcWzGhEvV/EvguniYi1wJZ5+X8sonWw=="],
+ "@react-navigation/bottom-tabs": ["@react-navigation/bottom-tabs@7.2.1", "", { "dependencies": { "@react-navigation/elements": "^2.2.6", "color": "^4.2.3" }, "peerDependencies": { "@react-navigation/native": "^7.0.15", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0", "react-native-screens": ">= 4.0.0" } }, "sha512-UGC7csRD/1+SJKLbaEg8K44KvkdBaEBIro0PpIRawRmHS93emf4LNfDafd8y6pReJN93OVVnqLWqcYozx4lZ4A=="],
- "@remix-run/router": ["@remix-run/router@1.21.0", "", {}, "sha512-xfSkCAchbdG5PnbrKqFWwia4Bi61nH+wm8wLEqfHDyp7Y3dZzgqS2itV8i4gAq9pC2HsTpwyBC6Ds8VHZ96JlA=="],
+ "@react-navigation/core": ["@react-navigation/core@7.4.0", "", { "dependencies": { "@react-navigation/routers": "^7.2.0", "escape-string-regexp": "^4.0.0", "nanoid": "3.3.8", "query-string": "^7.1.3", "react-is": "^18.2.0", "use-latest-callback": "^0.2.1", "use-sync-external-store": "^1.2.2" }, "peerDependencies": { "react": ">= 18.2.0" } }, "sha512-URiDluFl7cLA7GtOAsEvRqPmEMlSSXadqQ3wi9+Dl43dNRMqnoF76WQ9BCXeUPLydJq4yVte9XeMPyD6a0lY1g=="],
- "@remix-run/server-runtime": ["@remix-run/server-runtime@2.15.2", "", { "dependencies": { "@remix-run/router": "1.21.0", "@types/cookie": "^0.6.0", "@web3-storage/multipart-parser": "^1.0.0", "cookie": "^0.6.0", "set-cookie-parser": "^2.4.8", "source-map": "^0.7.3", "turbo-stream": "2.4.0" }, "peerDependencies": { "typescript": "^5.1.0" }, "optionalPeers": ["typescript"] }, "sha512-OqiPcvEnnU88B8b1LIWHHkQ3Tz2GDAmQ1RihFNQsbrFKpDsQLkw0lJlnfgKA/uHd0CEEacpfV7C9qqJT3V6Z2g=="],
+ "@react-navigation/elements": ["@react-navigation/elements@2.2.6", "", { "dependencies": { "color": "^4.2.3" }, "peerDependencies": { "@react-native-masked-view/masked-view": ">= 0.2.0", "@react-navigation/native": "^7.0.15", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0" }, "optionalPeers": ["@react-native-masked-view/masked-view"] }, "sha512-UPeaCcEDSDRaxjG+qEHbur6jmNW/f9QNCyPsUt6NMgPEdbB5Z8K8oSx2swIaiCnvUbs/K5G3MuWkqQxGj8QXXA=="],
- "@remix-run/web-blob": ["@remix-run/web-blob@3.1.0", "", { "dependencies": { "@remix-run/web-stream": "^1.1.0", "web-encoding": "1.1.5" } }, "sha512-owGzFLbqPH9PlKb8KvpNJ0NO74HWE2euAn61eEiyCXX/oteoVzTVSN8mpLgDjaxBf2btj5/nUllSUgpyd6IH6g=="],
+ "@react-navigation/native": ["@react-navigation/native@7.0.15", "", { "dependencies": { "@react-navigation/core": "^7.4.0", "escape-string-regexp": "^4.0.0", "fast-deep-equal": "^3.1.3", "nanoid": "3.3.8", "use-latest-callback": "^0.2.1" }, "peerDependencies": { "react": ">= 18.2.0", "react-native": "*" } }, "sha512-72PabJJ8VY3GM8i/DCutFW+ATED96ZV6NH+bW+ry1EL0ZFGHoie96H+KzTqktsrUbBw1rd9KXbEQhBQgo0N7iQ=="],
- "@remix-run/web-fetch": ["@remix-run/web-fetch@4.4.2", "", { "dependencies": { "@remix-run/web-blob": "^3.1.0", "@remix-run/web-file": "^3.1.0", "@remix-run/web-form-data": "^3.1.0", "@remix-run/web-stream": "^1.1.0", "@web3-storage/multipart-parser": "^1.0.0", "abort-controller": "^3.0.0", "data-uri-to-buffer": "^3.0.1", "mrmime": "^1.0.0" } }, "sha512-jgKfzA713/4kAW/oZ4bC3MoLWyjModOVDjFPNseVqcJKSafgIscrYL9G50SurEYLswPuoU3HzSbO0jQCMYWHhA=="],
+ "@react-navigation/native-stack": ["@react-navigation/native-stack@7.2.1", "", { "dependencies": { "@react-navigation/elements": "^2.2.6", "warn-once": "^0.1.1" }, "peerDependencies": { "@react-navigation/native": "^7.0.15", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0", "react-native-screens": ">= 4.0.0" } }, "sha512-zqC6DVpO4pFZrl+8JuIgV8qk+AGdTuv+hJ5EHePmzs9gYSUrDpw6LahFCiXshwBvi9LinIw9Do7mtnQK2Q8AGA=="],
- "@remix-run/web-file": ["@remix-run/web-file@3.1.0", "", { "dependencies": { "@remix-run/web-blob": "^3.1.0" } }, "sha512-dW2MNGwoiEYhlspOAXFBasmLeYshyAyhIdrlXBi06Duex5tDr3ut2LFKVj7tyHLmn8nnNwFf1BjNbkQpygC2aQ=="],
+ "@react-navigation/routers": ["@react-navigation/routers@7.2.0", "", { "dependencies": { "nanoid": "3.3.8" } }, "sha512-lMyib39H4a//u+eiyt162U6TwCfI8zJbjl9ovjKtDddQ4/Vf7b8/OhyimnJH09N2CBfm4pv0gCV6Q0WnZcfaJg=="],
- "@remix-run/web-form-data": ["@remix-run/web-form-data@3.1.0", "", { "dependencies": { "web-encoding": "1.1.5" } }, "sha512-NdeohLMdrb+pHxMQ/Geuzdp0eqPbea+Ieo8M8Jx2lGC6TBHsgHzYcBvr0LyPdPVycNRDEpWpiDdCOdCryo3f9A=="],
+ "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.35.0", "", { "os": "android", "cpu": "arm" }, "sha512-uYQ2WfPaqz5QtVgMxfN6NpLD+no0MYHDBywl7itPYd3K5TjjSghNKmX8ic9S8NU8w81NVhJv/XojcHptRly7qQ=="],
- "@remix-run/web-stream": ["@remix-run/web-stream@1.1.0", "", { "dependencies": { "web-streams-polyfill": "^3.1.1" } }, "sha512-KRJtwrjRV5Bb+pM7zxcTJkhIqWWSy+MYsIxHK+0m5atcznsf15YwUBWHWulZerV2+vvHH1Lp1DD7pw6qKW8SgA=="],
+ "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.35.0", "", { "os": "android", "cpu": "arm64" }, "sha512-FtKddj9XZudurLhdJnBl9fl6BwCJ3ky8riCXjEw3/UIbjmIY58ppWwPEvU3fNu+W7FUsAsB1CdH+7EQE6CXAPA=="],
- "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.32.1", "", { "os": "android", "cpu": "arm" }, "sha512-/pqA4DmqyCm8u5YIDzIdlLcEmuvxb0v8fZdFhVMszSpDTgbQKdw3/mB3eMUHIbubtJ6F9j+LtmyCnHTEqIHyzA=="],
+ "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.35.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Uk+GjOJR6CY844/q6r5DR/6lkPFOw0hjfOIzVx22THJXMxktXG6CbejseJFznU8vHcEBLpiXKY3/6xc+cBm65Q=="],
- "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.32.1", "", { "os": "android", "cpu": "arm64" }, "sha512-If3PDskT77q7zgqVqYuj7WG3WC08G1kwXGVFi9Jr8nY6eHucREHkfpX79c0ACAjLj3QIWKPJR7w4i+f5EdLH5Q=="],
+ "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.35.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-3IrHjfAS6Vkp+5bISNQnPogRAW5GAV1n+bNCrDwXmfMHbPl5EhTmWtfmwlJxFRUCBZ+tZ/OxDyU08aF6NI/N5Q=="],
- "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.32.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-zCpKHioQ9KgZToFp5Wvz6zaWbMzYQ2LJHQ+QixDKq52KKrF65ueu6Af4hLlLWHjX1Wf/0G5kSJM9PySW9IrvHA=="],
+ "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.35.0", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-sxjoD/6F9cDLSELuLNnY0fOrM9WA0KrM0vWm57XhrIMf5FGiN8D0l7fn+bpUeBSU7dCgPV2oX4zHAsAXyHFGcQ=="],
- "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.32.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-sFvF+t2+TyUo/ZQqUcifrJIgznx58oFZbdHS9TvHq3xhPVL9nOp+yZ6LKrO9GWTP+6DbFtoyLDbjTpR62Mbr3Q=="],
+ "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.35.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-2mpHCeRuD1u/2kruUiHSsnjWtHjqVbzhBkNVQ1aVD63CcexKVcQGwJ2g5VphOd84GvxfSvnnlEyBtQCE5hxVVw=="],
- "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.32.1", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-NbOa+7InvMWRcY9RG+B6kKIMD/FsnQPH0MWUvDlQB1iXnF/UcKSudCXZtv4lW+C276g3w5AxPbfry5rSYvyeYA=="],
+ "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.35.0", "", { "os": "linux", "cpu": "arm" }, "sha512-mrA0v3QMy6ZSvEuLs0dMxcO2LnaCONs1Z73GUDBHWbY8tFFocM6yl7YyMu7rz4zS81NDSqhrUuolyZXGi8TEqg=="],
- "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.32.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-JRBRmwvHPXR881j2xjry8HZ86wIPK2CcDw0EXchE1UgU0ubWp9nvlT7cZYKc6bkypBt745b4bglf3+xJ7hXWWw=="],
+ "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.35.0", "", { "os": "linux", "cpu": "arm" }, "sha512-DnYhhzcvTAKNexIql8pFajr0PiDGrIsBYPRvCKlA5ixSS3uwo/CWNZxB09jhIapEIg945KOzcYEAGGSmTSpk7A=="],
- "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.32.1", "", { "os": "linux", "cpu": "arm" }, "sha512-PKvszb+9o/vVdUzCCjL0sKHukEQV39tD3fepXxYrHE3sTKrRdCydI7uldRLbjLmDA3TFDmh418XH19NOsDRH8g=="],
+ "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.35.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-uagpnH2M2g2b5iLsCTZ35CL1FgyuzzJQ8L9VtlJ+FckBXroTwNOaD0z0/UF+k5K3aNQjbm8LIVpxykUOQt1m/A=="],
- "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.32.1", "", { "os": "linux", "cpu": "arm" }, "sha512-9WHEMV6Y89eL606ReYowXuGF1Yb2vwfKWKdD1A5h+OYnPZSJvxbEjxTRKPgi7tkP2DSnW0YLab1ooy+i/FQp/Q=="],
+ "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.35.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-XQxVOCd6VJeHQA/7YcqyV0/88N6ysSVzRjJ9I9UA/xXpEsjvAgDTgH3wQYz5bmr7SPtVK2TsP2fQ2N9L4ukoUg=="],
- "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.32.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-tZWc9iEt5fGJ1CL2LRPw8OttkCBDs+D8D3oEM8mH8S1ICZCtFJhD7DZ3XMGM8kpqHvhGUTvNUYVDnmkj4BDXnw=="],
+ "@rollup/rollup-linux-loongarch64-gnu": ["@rollup/rollup-linux-loongarch64-gnu@4.35.0", "", { "os": "linux", "cpu": "none" }, "sha512-5pMT5PzfgwcXEwOaSrqVsz/LvjDZt+vQ8RT/70yhPU06PTuq8WaHhfT1LW+cdD7mW6i/J5/XIkX/1tCAkh1W6g=="],
- "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.32.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-FTYc2YoTWUsBz5GTTgGkRYYJ5NGJIi/rCY4oK/I8aKowx1ToXeoVVbIE4LGAjsauvlhjfl0MYacxClLld1VrOw=="],
+ "@rollup/rollup-linux-powerpc64le-gnu": ["@rollup/rollup-linux-powerpc64le-gnu@4.35.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-c+zkcvbhbXF98f4CtEIP1EBA/lCic5xB0lToneZYvMeKu5Kamq3O8gqrxiYYLzlZH6E3Aq+TSW86E4ay8iD8EA=="],
- "@rollup/rollup-linux-loongarch64-gnu": ["@rollup/rollup-linux-loongarch64-gnu@4.32.1", "", { "os": "linux", "cpu": "none" }, "sha512-F51qLdOtpS6P1zJVRzYM0v6MrBNypyPEN1GfMiz0gPu9jN8ScGaEFIZQwteSsGKg799oR5EaP7+B2jHgL+d+Kw=="],
+ "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.35.0", "", { "os": "linux", "cpu": "none" }, "sha512-s91fuAHdOwH/Tad2tzTtPX7UZyytHIRR6V4+2IGlV0Cej5rkG0R61SX4l4y9sh0JBibMiploZx3oHKPnQBKe4g=="],
- "@rollup/rollup-linux-powerpc64le-gnu": ["@rollup/rollup-linux-powerpc64le-gnu@4.32.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-wO0WkfSppfX4YFm5KhdCCpnpGbtgQNj/tgvYzrVYFKDpven8w2N6Gg5nB6w+wAMO3AIfSTWeTjfVe+uZ23zAlg=="],
+ "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.35.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-hQRkPQPLYJZYGP+Hj4fR9dDBMIM7zrzJDWFEMPdTnTy95Ljnv0/4w/ixFw3pTBMEuuEuoqtBINYND4M7ujcuQw=="],
- "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.32.1", "", { "os": "linux", "cpu": "none" }, "sha512-iWswS9cIXfJO1MFYtI/4jjlrGb/V58oMu4dYJIKnR5UIwbkzR0PJ09O0PDZT0oJ3LYWXBSWahNf/Mjo6i1E5/g=="],
+ "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.35.0", "", { "os": "linux", "cpu": "x64" }, "sha512-Pim1T8rXOri+0HmV4CdKSGrqcBWX0d1HoPnQ0uw0bdp1aP5SdQVNBy8LjYncvnLgu3fnnCt17xjWGd4cqh8/hA=="],
- "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.32.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-RKt8NI9tebzmEthMnfVgG3i/XeECkMPS+ibVZjZ6mNekpbbUmkNWuIN2yHsb/mBPyZke4nlI4YqIdFPgKuoyQQ=="],
+ "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.35.0", "", { "os": "linux", "cpu": "x64" }, "sha512-QysqXzYiDvQWfUiTm8XmJNO2zm9yC9P/2Gkrwg2dH9cxotQzunBHYr6jk4SujCTqnfGxduOmQcI7c2ryuW8XVg=="],
- "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.32.1", "", { "os": "linux", "cpu": "x64" }, "sha512-WQFLZ9c42ECqEjwg/GHHsouij3pzLXkFdz0UxHa/0OM12LzvX7DzedlY0SIEly2v18YZLRhCRoHZDxbBSWoGYg=="],
+ "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.35.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-OUOlGqPkVJCdJETKOCEf1mw848ZyJ5w50/rZ/3IBQVdLfR5jk/6Sr5m3iO2tdPgwo0x7VcncYuOvMhBWZq8ayg=="],
- "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.32.1", "", { "os": "linux", "cpu": "x64" }, "sha512-BLoiyHDOWoS3uccNSADMza6V6vCNiphi94tQlVIL5de+r6r/CCQuNnerf+1g2mnk2b6edp5dk0nhdZ7aEjOBsA=="],
+ "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.35.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-2/lsgejMrtwQe44glq7AFFHLfJBPafpsTa6JvP2NGef/ifOa4KBoglVf7AKN7EV9o32evBPRqfg96fEHzWo5kw=="],
- "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.32.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-w2l3UnlgYTNNU+Z6wOR8YdaioqfEnwPjIsJ66KxKAf0p+AuL2FHeTX6qvM+p/Ue3XPBVNyVSfCrfZiQh7vZHLQ=="],
-
- "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.32.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-Am9H+TGLomPGkBnaPWie4F3x+yQ2rr4Bk2jpwy+iV+Gel9jLAu/KqT8k3X4jxFPW6Zf8OMnehyutsd+eHoq1WQ=="],
-
- "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.32.1", "", { "os": "win32", "cpu": "x64" }, "sha512-ar80GhdZb4DgmW3myIS9nRFYcpJRSME8iqWgzH2i44u+IdrzmiXVxeFnExQ5v4JYUSpg94bWjevMG8JHf1Da5Q=="],
+ "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.35.0", "", { "os": "win32", "cpu": "x64" }, "sha512-PIQeY5XDkrOysbQblSW7v3l1MDZzkTEzAfTPkj5VAu3FW8fS4ynyLg2sINp0fp3SjZ8xkRYpLqoKcYqAkhU1dw=="],
"@segment/loosely-validate-event": ["@segment/loosely-validate-event@2.0.0", "", { "dependencies": { "component-type": "^1.2.1", "join-component": "^1.1.0" } }, "sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw=="],
"@selderee/plugin-htmlparser2": ["@selderee/plugin-htmlparser2@0.11.0", "", { "dependencies": { "domhandler": "^5.0.3", "selderee": "^0.11.0" } }, "sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ=="],
- "@shikijs/core": ["@shikijs/core@2.3.1", "", { "dependencies": { "@shikijs/engine-javascript": "2.3.1", "@shikijs/engine-oniguruma": "2.3.1", "@shikijs/types": "2.3.1", "@shikijs/vscode-textmate": "^10.0.1", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.4" } }, "sha512-u9WTI0CgQUicTJjkHoJbZosxLP2AlBPr8RV3cuh4SQDsXYqMomjnAoo4lZSqVq8a8kpMwyv/LqoSrg69dH0ZeA=="],
+ "@shikijs/core": ["@shikijs/core@2.5.0", "", { "dependencies": { "@shikijs/engine-javascript": "2.5.0", "@shikijs/engine-oniguruma": "2.5.0", "@shikijs/types": "2.5.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.4" } }, "sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg=="],
- "@shikijs/engine-javascript": ["@shikijs/engine-javascript@2.3.1", "", { "dependencies": { "@shikijs/types": "2.3.1", "@shikijs/vscode-textmate": "^10.0.1", "oniguruma-to-es": "^3.1.0" } }, "sha512-sZLM4utrD1D28ENLtVS1+b7TIf1OIr3Gt0gLejMIG69lmFQI8mY0eGBdvbuvvM3Ys2M0kNYJF6BaWct27PggHw=="],
+ "@shikijs/engine-javascript": ["@shikijs/engine-javascript@2.5.0", "", { "dependencies": { "@shikijs/types": "2.5.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^3.1.0" } }, "sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w=="],
- "@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@2.3.1", "", { "dependencies": { "@shikijs/types": "2.3.1", "@shikijs/vscode-textmate": "^10.0.1" } }, "sha512-UKJEMht1gkF2ROigCgb3FE2ssmbR8CJEwUneImJ2QoZqayH/96Vp88p2N+RmyqJEHo1rsOivlJKeU9shhKpfSA=="],
+ "@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@2.5.0", "", { "dependencies": { "@shikijs/types": "2.5.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw=="],
- "@shikijs/langs": ["@shikijs/langs@2.3.1", "", { "dependencies": { "@shikijs/types": "2.3.1" } }, "sha512-3csAX8RGm2EQCbpCb1Eq+r4DSpkku6gxb4jiHnOxlV4D36VYZsmunUiDo/4NZvpFA0CW33v/JoYmFJ3yQ2TvSw=="],
+ "@shikijs/langs": ["@shikijs/langs@2.5.0", "", { "dependencies": { "@shikijs/types": "2.5.0" } }, "sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w=="],
- "@shikijs/rehype": ["@shikijs/rehype@2.3.1", "", { "dependencies": { "@shikijs/types": "2.3.1", "@types/hast": "^3.0.4", "hast-util-to-string": "^3.0.1", "shiki": "2.3.1", "unified": "^11.0.5", "unist-util-visit": "^5.0.0" } }, "sha512-PDNWMjbcvrkt8mSHB6xBL5fqFKDTWgo2A4t3yy+xyA1eWmpGQa4xWTH0i7VKNg0acLRc+qvUesZv2GV681ADKw=="],
+ "@shikijs/rehype": ["@shikijs/rehype@2.5.0", "", { "dependencies": { "@shikijs/types": "2.5.0", "@types/hast": "^3.0.4", "hast-util-to-string": "^3.0.1", "shiki": "2.5.0", "unified": "^11.0.5", "unist-util-visit": "^5.0.0" } }, "sha512-BO/QRsuQVdzQdoQLq//zcex8K6w57kD9zT8KhSs9kNBJFVDsxm6mTmi6OiRIxysZqhvVrEpY5Mh9IOv1NnjGFg=="],
- "@shikijs/themes": ["@shikijs/themes@2.3.1", "", { "dependencies": { "@shikijs/types": "2.3.1" } }, "sha512-QtkIM4Vz166+m4KED7/U5iVpgAdhfsHqMbBbjIzdTyTM1GIk2XQLcaB9b/LQY0y83Zl4lg7A7Hg+FT8+vAGL5A=="],
+ "@shikijs/themes": ["@shikijs/themes@2.5.0", "", { "dependencies": { "@shikijs/types": "2.5.0" } }, "sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw=="],
- "@shikijs/types": ["@shikijs/types@2.3.1", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.1", "@types/hast": "^3.0.4" } }, "sha512-1BQV6R4zF4pDPpPTbML8mPFX6RsNYtROfhgPT2YX+KW4B99a2UNtwuvmNj03BRy/sDz9GeAx9gAmnv8NroS/2w=="],
+ "@shikijs/types": ["@shikijs/types@2.5.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw=="],
- "@shikijs/vscode-textmate": ["@shikijs/vscode-textmate@10.0.1", "", {}, "sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg=="],
+ "@shikijs/vscode-textmate": ["@shikijs/vscode-textmate@10.0.2", "", {}, "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg=="],
"@sinclair/typebox": ["@sinclair/typebox@0.27.8", "", {}, "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA=="],
@@ -1284,13 +1273,13 @@
"@stablelib/base64": ["@stablelib/base64@1.0.1", "", {}, "sha512-1bnPQqSxSuc3Ii6MhBysoWCg58j97aUjuCSZrGSmDxNqtytIi0k8utUenAwTZN4V5mXXYGsVUI9zeBqy+jBOSQ=="],
- "@supabase/auth-js": ["@supabase/auth-js@2.67.3", "", { "dependencies": { "@supabase/node-fetch": "^2.6.14" } }, "sha512-NJDaW8yXs49xMvWVOkSIr8j46jf+tYHV0wHhrwOaLLMZSFO4g6kKAf+MfzQ2RaD06OCUkUHIzctLAxjTgEVpzw=="],
+ "@supabase/auth-js": ["@supabase/auth-js@2.68.0", "", { "dependencies": { "@supabase/node-fetch": "^2.6.14" } }, "sha512-odG7nb7aOmZPUXk6SwL2JchSsn36Ppx11i2yWMIc/meUO2B2HK9YwZHPK06utD9Ql9ke7JKDbwGin/8prHKxxQ=="],
"@supabase/functions-js": ["@supabase/functions-js@2.4.4", "", { "dependencies": { "@supabase/node-fetch": "^2.6.14" } }, "sha512-WL2p6r4AXNGwop7iwvul2BvOtuJ1YQy8EbOd0dhG1oN1q8el/BIRSFCFnWAMM/vJJlHWLi4ad22sKbKr9mvjoA=="],
"@supabase/node-fetch": ["@supabase/node-fetch@2.6.15", "", { "dependencies": { "whatwg-url": "^5.0.0" } }, "sha512-1ibVeYUacxWYi9i0cf5efil6adJ9WRyZBLivgjs+AUpewx1F3xPi7gLgaASI2SmIQxPoCEjAsLAzKPgMJVgOUQ=="],
- "@supabase/postgrest-js": ["@supabase/postgrest-js@1.18.1", "", { "dependencies": { "@supabase/node-fetch": "^2.6.14" } }, "sha512-dWDnoC0MoDHKhaEOrsEKTadWQcBNknZVQcSgNE/Q2wXh05mhCL1ut/jthRUrSbYcqIw/CEjhaeIPp7dLarT0bg=="],
+ "@supabase/postgrest-js": ["@supabase/postgrest-js@1.19.2", "", { "dependencies": { "@supabase/node-fetch": "^2.6.14" } }, "sha512-MXRbk4wpwhWl9IN6rIY1mR8uZCCG4MZAEji942ve6nMwIqnBgBnZhZlON6zTTs6fgveMnoCILpZv1+K91jN+ow=="],
"@supabase/realtime-js": ["@supabase/realtime-js@2.11.2", "", { "dependencies": { "@supabase/node-fetch": "^2.6.14", "@types/phoenix": "^1.5.4", "@types/ws": "^8.5.10", "ws": "^8.18.0" } }, "sha512-u/XeuL2Y0QEhXSoIPZZwR6wMXgB+RQbJzG9VErA3VghVt7uRfSVsjeqd7m5GhX3JR6dM/WRmLbVR8URpDWG4+w=="],
@@ -1298,7 +1287,7 @@
"@supabase/storage-js": ["@supabase/storage-js@2.7.1", "", { "dependencies": { "@supabase/node-fetch": "^2.6.14" } }, "sha512-asYHcyDR1fKqrMpytAS1zjyEfvxuOIp1CIXX7ji4lHHcJKqyk+sLl/Vxgm4sN6u8zvuUtae9e4kDxQP2qrwWBA=="],
- "@supabase/supabase-js": ["@supabase/supabase-js@2.48.1", "", { "dependencies": { "@supabase/auth-js": "2.67.3", "@supabase/functions-js": "2.4.4", "@supabase/node-fetch": "2.6.15", "@supabase/postgrest-js": "1.18.1", "@supabase/realtime-js": "2.11.2", "@supabase/storage-js": "2.7.1" } }, "sha512-VMD+CYk/KxfwGbI4fqwSUVA7CLr1izXpqfFerhnYPSi6LEKD8GoR4kuO5Cc8a+N43LnfSQwLJu4kVm2e4etEmA=="],
+ "@supabase/supabase-js": ["@supabase/supabase-js@2.49.1", "", { "dependencies": { "@supabase/auth-js": "2.68.0", "@supabase/functions-js": "2.4.4", "@supabase/node-fetch": "2.6.15", "@supabase/postgrest-js": "1.19.2", "@supabase/realtime-js": "2.11.2", "@supabase/storage-js": "2.7.1" } }, "sha512-lKaptKQB5/juEF5+jzmBeZlz69MdHZuxf+0f50NwhL+IE//m4ZnOeWlsKRjjsM0fVayZiQKqLvYdBn0RLkhGiQ=="],
"@swc/counter": ["@swc/counter@0.1.3", "", {}, "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ=="],
@@ -1310,11 +1299,11 @@
"@tootallnate/once": ["@tootallnate/once@2.0.0", "", {}, "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A=="],
- "@trigger.dev/build": ["@trigger.dev/build@3.3.13", "", { "dependencies": { "@trigger.dev/core": "3.3.13", "pkg-types": "^1.1.3", "tinyglobby": "^0.2.2", "tsconfck": "3.1.3" } }, "sha512-2R7FTvo/3XYhc+uB4vm2mzuH5UTP7kq4E9T2jEBQMEfz4KbiIjQwWtak366ApPKYRbBU1+xm0Mfx4EWtAriWhA=="],
+ "@trigger.dev/build": ["@trigger.dev/build@3.3.17", "", { "dependencies": { "@trigger.dev/core": "3.3.17", "pkg-types": "^1.1.3", "tinyglobby": "^0.2.2", "tsconfck": "3.1.3" } }, "sha512-dfreMuVeLAcZypS3kkUA9nWNviiuOPIQ3ldy2ywPCmwmbHyd0BE8tI5D3A4kmVq/f53TdRMls4c+cYafxlwubQ=="],
- "@trigger.dev/core": ["@trigger.dev/core@3.3.13", "", { "dependencies": { "@electric-sql/client": "1.0.0-beta.1", "@google-cloud/precise-date": "^4.0.0", "@jsonhero/path": "^1.0.21", "@opentelemetry/api": "1.9.0", "@opentelemetry/api-logs": "0.52.1", "@opentelemetry/exporter-logs-otlp-http": "0.52.1", "@opentelemetry/exporter-trace-otlp-http": "0.52.1", "@opentelemetry/instrumentation": "0.52.1", "@opentelemetry/resources": "1.25.1", "@opentelemetry/sdk-logs": "0.52.1", "@opentelemetry/sdk-node": "0.52.1", "@opentelemetry/sdk-trace-base": "1.25.1", "@opentelemetry/sdk-trace-node": "1.25.1", "@opentelemetry/semantic-conventions": "1.25.1", "dequal": "^2.0.3", "eventsource": "^3.0.5", "eventsource-parser": "^3.0.0", "execa": "^8.0.1", "humanize-duration": "^3.27.3", "jose": "^5.4.0", "nanoid": "^3.3.4", "socket.io-client": "4.7.5", "superjson": "^2.2.1", "zod": "3.23.8", "zod-error": "1.5.0", "zod-validation-error": "^1.5.0" } }, "sha512-3VU4YMS+RVCkfVXeUKSWlkVszgFK44tIknR9sHLYgetI714L3tgH47XBXJ3+/ZV5Y9Vvv6O6pRIuV7EEhzbexg=="],
+ "@trigger.dev/core": ["@trigger.dev/core@3.3.17", "", { "dependencies": { "@electric-sql/client": "1.0.0-beta.1", "@google-cloud/precise-date": "^4.0.0", "@jsonhero/path": "^1.0.21", "@opentelemetry/api": "1.9.0", "@opentelemetry/api-logs": "0.52.1", "@opentelemetry/exporter-logs-otlp-http": "0.52.1", "@opentelemetry/exporter-trace-otlp-http": "0.52.1", "@opentelemetry/instrumentation": "0.52.1", "@opentelemetry/resources": "1.25.1", "@opentelemetry/sdk-logs": "0.52.1", "@opentelemetry/sdk-node": "0.52.1", "@opentelemetry/sdk-trace-base": "1.25.1", "@opentelemetry/sdk-trace-node": "1.25.1", "@opentelemetry/semantic-conventions": "1.25.1", "dequal": "^2.0.3", "eventsource": "^3.0.5", "eventsource-parser": "^3.0.0", "execa": "^8.0.1", "humanize-duration": "^3.27.3", "jose": "^5.4.0", "nanoid": "^3.3.4", "socket.io-client": "4.7.5", "superjson": "^2.2.1", "zod": "3.23.8", "zod-error": "1.5.0", "zod-validation-error": "^1.5.0" } }, "sha512-KjnRxCuHq4R+MnE0zPvIQ7EIz4QSpJL+1Yn74n2cCGjyHYgQ/g8rcARn0Nxf2s8jzE38CnyRufjUrwG8k+DJrw=="],
- "@trigger.dev/sdk": ["@trigger.dev/sdk@3.3.13", "", { "dependencies": { "@opentelemetry/api": "1.9.0", "@opentelemetry/api-logs": "0.52.1", "@opentelemetry/semantic-conventions": "1.25.1", "@trigger.dev/core": "3.3.13", "chalk": "^5.2.0", "cronstrue": "^2.21.0", "debug": "^4.3.4", "evt": "^2.4.13", "slug": "^6.0.0", "terminal-link": "^3.0.0", "ulid": "^2.3.0", "uuid": "^9.0.0", "ws": "^8.11.0" }, "peerDependencies": { "zod": "^3.0.0" } }, "sha512-iXtHMnzvzmPfBk7+whpWOElBJt6viCoA3r8xgrrrurj8oxjIVe4UvdDiB7wbUJJ44WROWEb0wVKyQut1L/FwQQ=="],
+ "@trigger.dev/sdk": ["@trigger.dev/sdk@3.3.17", "", { "dependencies": { "@opentelemetry/api": "1.9.0", "@opentelemetry/api-logs": "0.52.1", "@opentelemetry/semantic-conventions": "1.25.1", "@trigger.dev/core": "3.3.17", "chalk": "^5.2.0", "cronstrue": "^2.21.0", "debug": "^4.3.4", "evt": "^2.4.13", "slug": "^6.0.0", "terminal-link": "^3.0.0", "ulid": "^2.3.0", "uncrypto": "^0.1.3", "uuid": "^9.0.0", "ws": "^8.11.0" }, "peerDependencies": { "zod": "^3.0.0" } }, "sha512-wjIjlQWKybYWw/J7LxFIOO1pXzxXoj9lxbFMvjb51JtfebxnQnh6aExN47nOGhVhV38wHYstfBI/8ClWwBnFYw=="],
"@trpc/client": ["@trpc/client@11.0.0-rc.700", "", { "peerDependencies": { "@trpc/server": "11.0.0-rc.700+e5c0c1a82", "typescript": ">=5.7.2" } }, "sha512-8yktSkK/jbDss4pA+3EwwDY972qBrvGN49Kpa7oA/0My40YohlEwrEwLLI5+rdICUi3MFv7jkqzKydgXHJJPRw=="],
@@ -1334,7 +1323,7 @@
"@types/babel__traverse": ["@types/babel__traverse@7.20.6", "", { "dependencies": { "@babel/types": "^7.20.7" } }, "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg=="],
- "@types/bun": ["@types/bun@1.2.2", "", { "dependencies": { "bun-types": "1.2.2" } }, "sha512-tr74gdku+AEDN5ergNiBnplr7hpDp3V1h7fqI2GcR/rsUaM39jpSeKH0TFibRvU0KwniRx5POgaYnaXbk0hU+w=="],
+ "@types/bun": ["@types/bun@1.2.5", "", { "dependencies": { "bun-types": "1.2.5" } }, "sha512-w2OZTzrZTVtbnJew1pdFmgV99H0/L+Pvw+z1P67HaR18MHOzYnTYOi6qzErhK8HyT+DB782ADVPPE92Xu2/Opg=="],
"@types/cookie": ["@types/cookie@0.6.0", "", {}, "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA=="],
@@ -1348,9 +1337,9 @@
"@types/d3-interpolate": ["@types/d3-interpolate@3.0.4", "", { "dependencies": { "@types/d3-color": "*" } }, "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA=="],
- "@types/d3-path": ["@types/d3-path@3.1.0", "", {}, "sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ=="],
+ "@types/d3-path": ["@types/d3-path@3.1.1", "", {}, "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg=="],
- "@types/d3-scale": ["@types/d3-scale@4.0.8", "", { "dependencies": { "@types/d3-time": "*" } }, "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ=="],
+ "@types/d3-scale": ["@types/d3-scale@4.0.9", "", { "dependencies": { "@types/d3-time": "*" } }, "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw=="],
"@types/d3-shape": ["@types/d3-shape@3.1.7", "", { "dependencies": { "@types/d3-path": "*" } }, "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg=="],
@@ -1386,6 +1375,8 @@
"@types/jest": ["@types/jest@29.5.14", "", { "dependencies": { "expect": "^29.0.0", "pretty-format": "^29.0.0" } }, "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ=="],
+ "@types/jscodeshift": ["@types/jscodeshift@0.12.0", "", { "dependencies": { "ast-types": "^0.14.1", "recast": "^0.20.3" } }, "sha512-Jr2fQbEoDmjwEa92TreR/mX2t9iAaY/l5P/GKezvK4BodXahex60PDLXaQR0vAgP0KfCzc1CivHusQB9NhzX8w=="],
+
"@types/jsdom": ["@types/jsdom@20.0.1", "", { "dependencies": { "@types/node": "*", "@types/tough-cookie": "*", "parse5": "^7.0.0" } }, "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ=="],
"@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="],
@@ -1396,7 +1387,7 @@
"@types/ms": ["@types/ms@2.1.0", "", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="],
- "@types/node": ["@types/node@22.12.0", "", { "dependencies": { "undici-types": "~6.20.0" } }, "sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA=="],
+ "@types/node": ["@types/node@22.13.10", "", { "dependencies": { "undici-types": "~6.20.0" } }, "sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw=="],
"@types/node-forge": ["@types/node-forge@1.3.11", "", { "dependencies": { "@types/node": "*" } }, "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ=="],
@@ -1408,9 +1399,9 @@
"@types/prop-types": ["@types/prop-types@15.7.14", "", {}, "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ=="],
- "@types/react": ["@types/react@19.0.8", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw=="],
+ "@types/react": ["@types/react@19.0.10", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g=="],
- "@types/react-dom": ["@types/react-dom@19.0.3", "", { "peerDependencies": { "@types/react": "^19.0.0" } }, "sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA=="],
+ "@types/react-dom": ["@types/react-dom@19.0.4", "", { "peerDependencies": { "@types/react": "^19.0.0" } }, "sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg=="],
"@types/react-test-renderer": ["@types/react-test-renderer@18.3.1", "", { "dependencies": { "@types/react": "^18" } }, "sha512-vAhnk0tG2eGa37lkU9+s5SoroCsRI08xnsWFiAXOuPH2jqzMbcXvKExXViPi1P5fIklDeCvXqyrdmipFaSkZrA=="],
@@ -1438,14 +1429,12 @@
"@upstash/redis": ["@upstash/redis@1.34.4", "", { "dependencies": { "crypto-js": "^4.2.0" } }, "sha512-AZx2iD5s1Pu/KCrRA7KVCffu3NSoaYnNY7N9YI7aLAYhcJfsriQKTe+8OxQWJqGqFbrvm17Lyr9HFnDLvqNpfA=="],
- "@urql/core": ["@urql/core@5.1.0", "", { "dependencies": { "@0no-co/graphql.web": "^1.0.5", "wonka": "^6.3.2" } }, "sha512-yC3sw8yqjbX45GbXxfiBY8GLYCiyW/hLBbQF9l3TJrv4ro00Y0ChkKaD9I2KntRxAVm9IYBqh0awX8fwWAe/Yw=="],
+ "@urql/core": ["@urql/core@5.1.1", "", { "dependencies": { "@0no-co/graphql.web": "^1.0.5", "wonka": "^6.3.2" } }, "sha512-aGh024z5v2oINGD/In6rAtVKTm4VmQ2TxKQBAtk2ZSME5dunZFcjltw4p5ENQg+5CBhZ3FHMzl0Oa+rwqiWqlg=="],
- "@urql/exchange-retry": ["@urql/exchange-retry@1.3.0", "", { "dependencies": { "@urql/core": "^5.0.0", "wonka": "^6.3.2" } }, "sha512-FLt+d81gP4oiHah4hWFDApimc+/xABWMU1AMYsZ1PVB0L0YPtrMCjbOp9WMM7hBzy4gbTDrG24sio0dCfSh/HQ=="],
+ "@urql/exchange-retry": ["@urql/exchange-retry@1.3.1", "", { "dependencies": { "@urql/core": "^5.1.1", "wonka": "^6.3.2" } }, "sha512-EEmtFu8JTuwsInqMakhLq+U3qN8ZMd5V3pX44q0EqD2imqTDsa8ikZqJ1schVrN8HljOdN+C08cwZ1/r5uIgLw=="],
"@vercel/functions": ["@vercel/functions@1.6.0", "", { "peerDependencies": { "@aws-sdk/credential-provider-web-identity": "*" }, "optionalPeers": ["@aws-sdk/credential-provider-web-identity"] }, "sha512-R6FKQrYT5MZs5IE1SqeCJWxMuBdHawFcCZboKKw8p7s+6/mcd55Gx6tWmyKnQTyrSEA04NH73Tc9CbqpEle8RA=="],
- "@web3-storage/multipart-parser": ["@web3-storage/multipart-parser@1.0.0", "", {}, "sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw=="],
-
"@webassemblyjs/ast": ["@webassemblyjs/ast@1.14.1", "", { "dependencies": { "@webassemblyjs/helper-numbers": "1.13.2", "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ=="],
"@webassemblyjs/floating-point-hex-parser": ["@webassemblyjs/floating-point-hex-parser@1.13.2", "", {}, "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA=="],
@@ -1482,8 +1471,6 @@
"@xtuc/long": ["@xtuc/long@4.2.2", "", {}, "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="],
- "@zxing/text-encoding": ["@zxing/text-encoding@0.9.0", "", {}, "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA=="],
-
"abab": ["abab@2.0.6", "", {}, "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA=="],
"abbrev": ["abbrev@2.0.0", "", {}, "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ=="],
@@ -1492,7 +1479,7 @@
"accepts": ["accepts@1.3.8", "", { "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" } }, "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw=="],
- "acorn": ["acorn@8.14.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA=="],
+ "acorn": ["acorn@8.14.1", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg=="],
"acorn-globals": ["acorn-globals@7.0.1", "", { "dependencies": { "acorn": "^8.1.0", "acorn-walk": "^8.0.2" } }, "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q=="],
@@ -1544,7 +1531,7 @@
"asap": ["asap@2.0.6", "", {}, "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="],
- "ast-types": ["ast-types@0.15.2", "", { "dependencies": { "tslib": "^2.0.1" } }, "sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg=="],
+ "ast-types": ["ast-types@0.14.2", "", { "dependencies": { "tslib": "^2.0.1" } }, "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA=="],
"astring": ["astring@1.9.0", "", { "bin": { "astring": "bin/astring" } }, "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg=="],
@@ -1554,8 +1541,6 @@
"at-least-node": ["at-least-node@1.0.0", "", {}, "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg=="],
- "available-typed-arrays": ["available-typed-arrays@1.0.7", "", { "dependencies": { "possible-typed-array-names": "^1.0.0" } }, "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ=="],
-
"babel-core": ["babel-core@7.0.0-bridge.0", "", { "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg=="],
"babel-jest": ["babel-jest@29.7.0", "", { "dependencies": { "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", "babel-preset-jest": "^29.6.3", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" }, "peerDependencies": { "@babel/core": "^7.8.0" } }, "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg=="],
@@ -1566,7 +1551,7 @@
"babel-plugin-polyfill-corejs2": ["babel-plugin-polyfill-corejs2@0.4.12", "", { "dependencies": { "@babel/compat-data": "^7.22.6", "@babel/helper-define-polyfill-provider": "^0.6.3", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og=="],
- "babel-plugin-polyfill-corejs3": ["babel-plugin-polyfill-corejs3@0.10.6", "", { "dependencies": { "@babel/helper-define-polyfill-provider": "^0.6.2", "core-js-compat": "^3.38.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA=="],
+ "babel-plugin-polyfill-corejs3": ["babel-plugin-polyfill-corejs3@0.11.1", "", { "dependencies": { "@babel/helper-define-polyfill-provider": "^0.6.3", "core-js-compat": "^3.40.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ=="],
"babel-plugin-polyfill-regenerator": ["babel-plugin-polyfill-regenerator@0.6.3", "", { "dependencies": { "@babel/helper-define-polyfill-provider": "^0.6.3" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q=="],
@@ -1578,7 +1563,7 @@
"babel-preset-current-node-syntax": ["babel-preset-current-node-syntax@1.1.0", "", { "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-import-attributes": "^7.24.7", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-numeric-separator": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw=="],
- "babel-preset-expo": ["babel-preset-expo@12.0.6", "", { "dependencies": { "@babel/plugin-proposal-decorators": "^7.12.9", "@babel/plugin-transform-export-namespace-from": "^7.22.11", "@babel/plugin-transform-object-rest-spread": "^7.12.13", "@babel/plugin-transform-parameters": "^7.22.15", "@babel/preset-react": "^7.22.15", "@babel/preset-typescript": "^7.23.0", "@react-native/babel-preset": "0.76.6", "babel-plugin-react-native-web": "~0.19.13", "react-refresh": "^0.14.2" }, "peerDependencies": { "babel-plugin-react-compiler": "^19.0.0-beta-9ee70a1-20241017", "react-compiler-runtime": "^19.0.0-beta-8a03594-20241020" }, "optionalPeers": ["babel-plugin-react-compiler", "react-compiler-runtime"] }, "sha512-az3H7gDVo0wxNBAFES8h5vLLWE8NPGkD9g5P962hDEOqZUdyPacb9MOzicypeLmcq9zQWr6E3iVtEHoNagCTTQ=="],
+ "babel-preset-expo": ["babel-preset-expo@12.0.9", "", { "dependencies": { "@babel/plugin-proposal-decorators": "^7.12.9", "@babel/plugin-transform-export-namespace-from": "^7.22.11", "@babel/plugin-transform-object-rest-spread": "^7.12.13", "@babel/plugin-transform-parameters": "^7.22.15", "@babel/preset-react": "^7.22.15", "@babel/preset-typescript": "^7.23.0", "@react-native/babel-preset": "0.76.7", "babel-plugin-react-native-web": "~0.19.13", "react-refresh": "^0.14.2" }, "peerDependencies": { "babel-plugin-react-compiler": "^19.0.0-beta-9ee70a1-20241017", "react-compiler-runtime": "^19.0.0-beta-8a03594-20241020" }, "optionalPeers": ["babel-plugin-react-compiler", "react-compiler-runtime"] }, "sha512-1c+ysrTavT49WgVAj0OX/TEzt1kU2mfPhDaDajstshNHXFKPenMPWSViA/DHrJKVIMwaqr+z3GbUOD9GtKgpdg=="],
"babel-preset-jest": ["babel-preset-jest@29.6.3", "", { "dependencies": { "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA=="],
@@ -1628,7 +1613,7 @@
"buffer-from": ["buffer-from@1.1.2", "", {}, "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="],
- "bun-types": ["bun-types@1.2.2", "", { "dependencies": { "@types/node": "*", "@types/ws": "~8.5.10" } }, "sha512-RCbMH5elr9gjgDGDhkTTugA21XtJAy/9jkKe/G3WR2q17VPGhcquf9Sir6uay9iW+7P/BV0CAHA1XlHXMAVKHg=="],
+ "bun-types": ["bun-types@1.2.5", "", { "dependencies": { "@types/node": "*", "@types/ws": "~8.5.10" } }, "sha512-3oO6LVGGRRKI4kHINx5PIdIgnLRb7l/SprhzqXapmoYkFl5m4j6EvALvbDVuuBFaamB46Ap6HCUxIXNLCGy+tg=="],
"bundle-name": ["bundle-name@4.1.0", "", { "dependencies": { "run-applescript": "^7.0.0" } }, "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q=="],
@@ -1642,11 +1627,7 @@
"cacache": ["cacache@18.0.4", "", { "dependencies": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", "glob": "^10.2.2", "lru-cache": "^10.0.1", "minipass": "^7.0.3", "minipass-collect": "^2.0.1", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "p-map": "^4.0.0", "ssri": "^10.0.0", "tar": "^6.1.11", "unique-filename": "^3.0.0" } }, "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ=="],
- "call-bind": ["call-bind@1.0.8", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", "get-intrinsic": "^1.2.4", "set-function-length": "^1.2.2" } }, "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww=="],
-
- "call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.1", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g=="],
-
- "call-bound": ["call-bound@1.0.3", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "get-intrinsic": "^1.2.6" } }, "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA=="],
+ "call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="],
"caller-callsite": ["caller-callsite@2.0.0", "", { "dependencies": { "callsites": "^2.0.0" } }, "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ=="],
@@ -1658,7 +1639,7 @@
"camelcase-css": ["camelcase-css@2.0.1", "", {}, "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA=="],
- "caniuse-lite": ["caniuse-lite@1.0.30001696", "", {}, "sha512-pDCPkvzfa39ehJtJ+OwGT/2yvT2SbjfHhiIW2LWOAcMQ7BzwxT/XuyUp4OTOd0XFWA6BKw0JalnBHgSi5DGJBQ=="],
+ "caniuse-lite": ["caniuse-lite@1.0.30001704", "", {}, "sha512-+L2IgBbV6gXB4ETf0keSvLr7JUrRVbIaB/lrQ1+z8mRcQiisG5k+lG6O4n6Y5q6f5EuNfaYXKgymucphlEXQew=="],
"ccount": ["ccount@2.0.1", "", {}, "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg=="],
@@ -1690,7 +1671,7 @@
"ci-info": ["ci-info@3.9.0", "", {}, "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ=="],
- "cjs-module-lexer": ["cjs-module-lexer@1.4.1", "", {}, "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA=="],
+ "cjs-module-lexer": ["cjs-module-lexer@1.4.3", "", {}, "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q=="],
"class-variance-authority": ["class-variance-authority@0.7.1", "", { "dependencies": { "clsx": "^2.1.1" } }, "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg=="],
@@ -1738,7 +1719,7 @@
"compressible": ["compressible@2.0.18", "", { "dependencies": { "mime-db": ">= 1.43.0 < 2" } }, "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg=="],
- "compression": ["compression@1.7.5", "", { "dependencies": { "bytes": "3.1.2", "compressible": "~2.0.18", "debug": "2.6.9", "negotiator": "~0.6.4", "on-headers": "~1.0.2", "safe-buffer": "5.2.1", "vary": "~1.1.2" } }, "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q=="],
+ "compression": ["compression@1.8.0", "", { "dependencies": { "bytes": "3.1.2", "compressible": "~2.0.18", "debug": "2.6.9", "negotiator": "~0.6.4", "on-headers": "~1.0.2", "safe-buffer": "5.2.1", "vary": "~1.1.2" } }, "sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA=="],
"compute-scroll-into-view": ["compute-scroll-into-view@3.1.1", "", {}, "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw=="],
@@ -1758,11 +1739,9 @@
"cookie": ["cookie@0.7.2", "", {}, "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w=="],
- "cookie-signature": ["cookie-signature@1.2.2", "", {}, "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg=="],
-
"copy-anything": ["copy-anything@3.0.5", "", { "dependencies": { "is-what": "^4.1.8" } }, "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w=="],
- "core-js-compat": ["core-js-compat@3.40.0", "", { "dependencies": { "browserslist": "^4.24.3" } }, "sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ=="],
+ "core-js-compat": ["core-js-compat@3.41.0", "", { "dependencies": { "browserslist": "^4.24.4" } }, "sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A=="],
"cors": ["cors@2.8.5", "", { "dependencies": { "object-assign": "^4", "vary": "^1" } }, "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g=="],
@@ -1770,7 +1749,7 @@
"create-jest": ["create-jest@29.7.0", "", { "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", "jest-config": "^29.7.0", "jest-util": "^29.7.0", "prompts": "^2.0.1" }, "bin": { "create-jest": "bin/create-jest.js" } }, "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q=="],
- "cronstrue": ["cronstrue@2.54.0", "", { "bin": { "cronstrue": "bin/cli.js" } }, "sha512-vyp5NklDxA5MjPfQgkn0bA+0vRQe7Q9keX7RPdV6rMgd7LtDvbuKgnT+3T5ZAX16anSP5HmahcRp8mziXsLfaw=="],
+ "cronstrue": ["cronstrue@2.56.0", "", { "bin": { "cronstrue": "bin/cli.js" } }, "sha512-/YC3b4D/E/S8ToQ7f676A2fqoC3vVpXKjJ4SMsP0jYsvRYJdZ6h9+Fq/Y7FoFDEUFCqLTca+G2qTV227lyyFZg=="],
"cross-fetch": ["cross-fetch@3.2.0", "", { "dependencies": { "node-fetch": "^2.7.0" } }, "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q=="],
@@ -1788,7 +1767,7 @@
"cssom": ["cssom@0.5.0", "", {}, "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw=="],
- "cssstyle": ["cssstyle@4.2.1", "", { "dependencies": { "@asamuzakjp/css-color": "^2.8.2", "rrweb-cssom": "^0.8.0" } }, "sha512-9+vem03dMXG7gDmZ62uqmRiMRNtinIZ9ZyuF6BdxzfOD+FdN5hretzynkn0ReS2DO2GSw76RWHs0UmJPI2zUjw=="],
+ "cssstyle": ["cssstyle@4.3.0", "", { "dependencies": { "@asamuzakjp/css-color": "^3.1.1", "rrweb-cssom": "^0.8.0" } }, "sha512-6r0NiY0xizYqfBvWp1G7WXJ06/bZyrk7Dc6PHql82C/pKGUTKu4yAX4Y8JPamb1ob9nBKuxWzCGTRuGwU3yxJQ=="],
"csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="],
@@ -1818,8 +1797,6 @@
"d3-timer": ["d3-timer@3.0.1", "", {}, "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA=="],
- "data-uri-to-buffer": ["data-uri-to-buffer@3.0.1", "", {}, "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og=="],
-
"data-urls": ["data-urls@5.0.0", "", { "dependencies": { "whatwg-mimetype": "^4.0.0", "whatwg-url": "^14.0.0" } }, "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg=="],
"dataloader": ["dataloader@1.4.0", "", {}, "sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw=="],
@@ -1834,7 +1811,7 @@
"decimal.js-light": ["decimal.js-light@2.5.1", "", {}, "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg=="],
- "decode-named-character-reference": ["decode-named-character-reference@1.0.2", "", { "dependencies": { "character-entities": "^2.0.0" } }, "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg=="],
+ "decode-named-character-reference": ["decode-named-character-reference@1.1.0", "", { "dependencies": { "character-entities": "^2.0.0" } }, "sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w=="],
"decode-uri-component": ["decode-uri-component@0.2.2", "", {}, "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ=="],
@@ -1852,8 +1829,6 @@
"defaults": ["defaults@1.0.4", "", { "dependencies": { "clone": "^1.0.2" } }, "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A=="],
- "define-data-property": ["define-data-property@1.1.4", "", { "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "gopd": "^1.0.1" } }, "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A=="],
-
"define-lazy-prop": ["define-lazy-prop@3.0.0", "", {}, "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg=="],
"del": ["del@6.1.1", "", { "dependencies": { "globby": "^11.0.1", "graceful-fs": "^4.2.4", "is-glob": "^4.0.1", "is-path-cwd": "^2.2.0", "is-path-inside": "^3.0.2", "p-map": "^4.0.0", "rimraf": "^3.0.2", "slash": "^3.0.0" } }, "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg=="],
@@ -1916,7 +1891,7 @@
"ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="],
- "electron-to-chromium": ["electron-to-chromium@1.5.90", "", {}, "sha512-C3PN4aydfW91Natdyd449Kw+BzhLmof6tzy5W1pFC5SpQxVXT+oyiyOG9AgYYSN9OdA/ik3YkCrpwqI8ug5Tug=="],
+ "electron-to-chromium": ["electron-to-chromium@1.5.116", "", {}, "sha512-mufxTCJzLBQVvSdZzX1s5YAuXsN1M4tTyYxOOL1TcSKtIzQ9rjIrm7yFK80rN5dwGTePgdoABDSHpuVtRQh0Zw=="],
"emittery": ["emittery@0.13.1", "", {}, "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ=="],
@@ -1936,7 +1911,7 @@
"engine.io-parser": ["engine.io-parser@5.2.3", "", {}, "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q=="],
- "enhanced-resolve": ["enhanced-resolve@5.18.0", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ=="],
+ "enhanced-resolve": ["enhanced-resolve@5.18.1", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg=="],
"enquirer": ["enquirer@2.4.1", "", { "dependencies": { "ansi-colors": "^4.1.1", "strip-ansi": "^6.0.1" } }, "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ=="],
@@ -1958,11 +1933,13 @@
"es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="],
+ "es-set-tostringtag": ["es-set-tostringtag@2.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="],
+
"esast-util-from-estree": ["esast-util-from-estree@2.0.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "devlop": "^1.0.0", "estree-util-visit": "^2.0.0", "unist-util-position-from-estree": "^2.0.0" } }, "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ=="],
"esast-util-from-js": ["esast-util-from-js@2.0.1", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "acorn": "^8.0.0", "esast-util-from-estree": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw=="],
- "esbuild": ["esbuild@0.24.2", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.24.2", "@esbuild/android-arm": "0.24.2", "@esbuild/android-arm64": "0.24.2", "@esbuild/android-x64": "0.24.2", "@esbuild/darwin-arm64": "0.24.2", "@esbuild/darwin-x64": "0.24.2", "@esbuild/freebsd-arm64": "0.24.2", "@esbuild/freebsd-x64": "0.24.2", "@esbuild/linux-arm": "0.24.2", "@esbuild/linux-arm64": "0.24.2", "@esbuild/linux-ia32": "0.24.2", "@esbuild/linux-loong64": "0.24.2", "@esbuild/linux-mips64el": "0.24.2", "@esbuild/linux-ppc64": "0.24.2", "@esbuild/linux-riscv64": "0.24.2", "@esbuild/linux-s390x": "0.24.2", "@esbuild/linux-x64": "0.24.2", "@esbuild/netbsd-arm64": "0.24.2", "@esbuild/netbsd-x64": "0.24.2", "@esbuild/openbsd-arm64": "0.24.2", "@esbuild/openbsd-x64": "0.24.2", "@esbuild/sunos-x64": "0.24.2", "@esbuild/win32-arm64": "0.24.2", "@esbuild/win32-ia32": "0.24.2", "@esbuild/win32-x64": "0.24.2" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA=="],
+ "esbuild": ["esbuild@0.25.1", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.1", "@esbuild/android-arm": "0.25.1", "@esbuild/android-arm64": "0.25.1", "@esbuild/android-x64": "0.25.1", "@esbuild/darwin-arm64": "0.25.1", "@esbuild/darwin-x64": "0.25.1", "@esbuild/freebsd-arm64": "0.25.1", "@esbuild/freebsd-x64": "0.25.1", "@esbuild/linux-arm": "0.25.1", "@esbuild/linux-arm64": "0.25.1", "@esbuild/linux-ia32": "0.25.1", "@esbuild/linux-loong64": "0.25.1", "@esbuild/linux-mips64el": "0.25.1", "@esbuild/linux-ppc64": "0.25.1", "@esbuild/linux-riscv64": "0.25.1", "@esbuild/linux-s390x": "0.25.1", "@esbuild/linux-x64": "0.25.1", "@esbuild/netbsd-arm64": "0.25.1", "@esbuild/netbsd-x64": "0.25.1", "@esbuild/openbsd-arm64": "0.25.1", "@esbuild/openbsd-x64": "0.25.1", "@esbuild/sunos-x64": "0.25.1", "@esbuild/win32-arm64": "0.25.1", "@esbuild/win32-ia32": "0.25.1", "@esbuild/win32-x64": "0.25.1" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ=="],
"esbuild-register": ["esbuild-register@3.6.0", "", { "dependencies": { "debug": "^4.3.4" }, "peerDependencies": { "esbuild": ">=0.12 <1" } }, "sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg=="],
@@ -1994,7 +1971,7 @@
"estree-util-to-js": ["estree-util-to-js@2.0.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "astring": "^1.8.0", "source-map": "^0.7.0" } }, "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg=="],
- "estree-util-value-to-estree": ["estree-util-value-to-estree@3.2.1", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-Vt2UOjyPbNQQgT5eJh+K5aATti0OjCIAGc9SgMdOFYbohuifsWclR74l0iZTJwePMgWYdX1hlVS+dedH9XV8kw=="],
+ "estree-util-value-to-estree": ["estree-util-value-to-estree@3.3.2", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-hYH1aSvQI63Cvq3T3loaem6LW4u72F187zW4FHpTrReJSm6W66vYTFNO1vH/chmcOulp1HlAj1pxn8Ag0oXI5Q=="],
"estree-util-visit": ["estree-util-visit@2.0.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/unist": "^3.0.0" } }, "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww=="],
@@ -2024,43 +2001,43 @@
"expect": ["expect@29.7.0", "", { "dependencies": { "@jest/expect-utils": "^29.7.0", "jest-get-type": "^29.6.3", "jest-matcher-utils": "^29.7.0", "jest-message-util": "^29.7.0", "jest-util": "^29.7.0" } }, "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw=="],
- "expo": ["expo@52.0.28", "", { "dependencies": { "@babel/runtime": "^7.20.0", "@expo/cli": "0.22.11", "@expo/config": "~10.0.8", "@expo/config-plugins": "~9.0.14", "@expo/fingerprint": "0.11.7", "@expo/metro-config": "0.19.9", "@expo/vector-icons": "^14.0.0", "babel-preset-expo": "~12.0.6", "expo-asset": "~11.0.2", "expo-constants": "~17.0.5", "expo-file-system": "~18.0.7", "expo-font": "~13.0.3", "expo-keep-awake": "~14.0.2", "expo-modules-autolinking": "2.0.7", "expo-modules-core": "2.2.0", "fbemitter": "^3.0.0", "web-streams-polyfill": "^3.3.2", "whatwg-url-without-unicode": "8.0.0-3" }, "peerDependencies": { "@expo/dom-webview": "*", "@expo/metro-runtime": "*", "react": "*", "react-native": "*", "react-native-webview": "*" }, "optionalPeers": ["@expo/dom-webview", "@expo/metro-runtime", "react-native-webview"], "bin": { "expo": "bin/cli" } }, "sha512-0O/JEYYCFszJ85frislm79YmlrQA5ghAQXV4dqcQcsy9FqftdicD4p/ehT36yiuGIhaKC6fn25LEaJ9JR2ei7g=="],
+ "expo": ["expo@52.0.38", "", { "dependencies": { "@babel/runtime": "^7.20.0", "@expo/cli": "0.22.19", "@expo/config": "~10.0.11", "@expo/config-plugins": "~9.0.17", "@expo/fingerprint": "0.11.11", "@expo/metro-config": "0.19.12", "@expo/vector-icons": "^14.0.0", "babel-preset-expo": "~12.0.9", "expo-asset": "~11.0.4", "expo-constants": "~17.0.8", "expo-file-system": "~18.0.11", "expo-font": "~13.0.4", "expo-keep-awake": "~14.0.3", "expo-modules-autolinking": "2.0.8", "expo-modules-core": "2.2.3", "fbemitter": "^3.0.0", "web-streams-polyfill": "^3.3.2", "whatwg-url-without-unicode": "8.0.0-3" }, "peerDependencies": { "@expo/dom-webview": "*", "@expo/metro-runtime": "*", "react": "*", "react-native": "*", "react-native-webview": "*" }, "optionalPeers": ["@expo/dom-webview", "@expo/metro-runtime", "react-native-webview"], "bin": { "expo": "bin/cli" } }, "sha512-6DZJjN/oEeYOPGoNUWE41vUuwVSl/Cg9o3rTbP62Pchgspp61Elsf8G7FtdcAtdgOzkJmbnPrPqklpMXGwpgfA=="],
- "expo-asset": ["expo-asset@11.0.2", "", { "dependencies": { "@expo/image-utils": "^0.6.4", "expo-constants": "~17.0.4", "invariant": "^2.2.4", "md5-file": "^3.2.3" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-We3Td5WsNsNQyXoheLnuwic6JCOt/pqXqIIyWaZ3z/PeHrA+SwoQdI18MjDhkudLK08tbIVyDSUW8IJHXa04eg=="],
+ "expo-asset": ["expo-asset@11.0.4", "", { "dependencies": { "@expo/image-utils": "^0.6.5", "expo-constants": "~17.0.7", "invariant": "^2.2.4", "md5-file": "^3.2.3" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-CdIywU0HrR3wsW5c3n0cT3jW9hccZdnqGsRqY+EY/RWzJbDXtDfAQVEiFHO3mDK7oveUwrP2jK/6ZRNek41/sg=="],
"expo-blur": ["expo-blur@14.0.3", "", { "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-BL3xnqBJbYm3Hg9t/HjNjdeY7N/q8eK5tsLYxswWG1yElISWZmMvrXYekl7XaVCPfyFyz8vQeaxd7q74ZY3Wrw=="],
- "expo-constants": ["expo-constants@17.0.5", "", { "dependencies": { "@expo/config": "~10.0.8", "@expo/env": "~0.4.1" }, "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-6SHXh32jCB+vrp2TRDNkoGoM421eOBPZIXX9ixI0hKKz71tIjD+LMr/P+rGUd/ks312MP3WK3j5vcYYPkCD8tQ=="],
+ "expo-constants": ["expo-constants@17.0.8", "", { "dependencies": { "@expo/config": "~10.0.11", "@expo/env": "~0.4.2" }, "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-XfWRyQAf1yUNgWZ1TnE8pFBMqGmFP5Gb+SFSgszxDdOoheB/NI5D4p7q86kI2fvGyfTrxAe+D+74nZkfsGvUlg=="],
- "expo-file-system": ["expo-file-system@18.0.7", "", { "dependencies": { "web-streams-polyfill": "^3.3.2" }, "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-6PpbQfogMXdzOsJzlJayy5qf40IfIHhudtAOzr32RlRYL4Hkmk3YcR9jG0PWQ0rklJfAhbAdP63yOcN+wDgzaA=="],
+ "expo-file-system": ["expo-file-system@18.0.11", "", { "dependencies": { "web-streams-polyfill": "^3.3.2" }, "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-yDwYfEzWgPXsBZHJW2RJ8Q66ceiFN9Wa5D20pp3fjXVkzPBDwxnYwiPWk4pVmCa5g4X5KYMoMne1pUrsL4OEpg=="],
- "expo-font": ["expo-font@13.0.3", "", { "dependencies": { "fontfaceobserver": "^2.1.0" }, "peerDependencies": { "expo": "*", "react": "*" } }, "sha512-9IdYz+A+b3KvuCYP7DUUXF4VMZjPU+IsvAnLSVJ2TfP6zUD2JjZFx3jeo/cxWRkYk/aLj5+53Te7elTAScNl4Q=="],
+ "expo-font": ["expo-font@13.0.4", "", { "dependencies": { "fontfaceobserver": "^2.1.0" }, "peerDependencies": { "expo": "*", "react": "*" } }, "sha512-eAP5hyBgC8gafFtprsz0HMaB795qZfgJWqTmU0NfbSin1wUuVySFMEPMOrTkTgmazU73v4Cb4x7p86jY1XXYUw=="],
"expo-haptics": ["expo-haptics@14.0.1", "", { "peerDependencies": { "expo": "*" } }, "sha512-V81FZ7xRUfqM6uSI6FA1KnZ+QpEKnISqafob/xEfcx1ymwhm4V3snuLWWFjmAz+XaZQTqlYa8z3QbqEXz7G63w=="],
- "expo-keep-awake": ["expo-keep-awake@14.0.2", "", { "peerDependencies": { "expo": "*", "react": "*" } }, "sha512-71XAMnoWjKZrN8J7Q3+u0l9Ytp4OfhNAYz8BCWF1/9aFUw09J3I7Z5DuI3MUsVMa/KWi+XhG+eDUFP8cVA19Uw=="],
+ "expo-keep-awake": ["expo-keep-awake@14.0.3", "", { "peerDependencies": { "expo": "*", "react": "*" } }, "sha512-6Jh94G6NvTZfuLnm2vwIpKe3GdOiVBuISl7FI8GqN0/9UOg9E0WXXp5cDcfAG8bn80RfgLJS8P7EPUGTZyOvhg=="],
"expo-linking": ["expo-linking@7.0.5", "", { "dependencies": { "expo-constants": "~17.0.5", "invariant": "^2.2.4" }, "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-3KptlJtcYDPWohk0MfJU75MJFh2ybavbtcSd84zEPfw9s1q3hjimw3sXnH03ZxP54kiEWldvKmmnGcVffBDB1g=="],
"expo-localization": ["expo-localization@16.0.1", "", { "dependencies": { "rtl-detect": "^1.0.2" }, "peerDependencies": { "expo": "*", "react": "*" } }, "sha512-kUrXiV/Pq9r7cG+TMt+Qa49IUQ9Y/czVwen4hmiboTclTopcWdIeCzYZv6JGtufoPpjEO9vVx1QJrXYl9V2u0Q=="],
- "expo-modules-autolinking": ["expo-modules-autolinking@2.0.7", "", { "dependencies": { "@expo/spawn-async": "^1.7.2", "chalk": "^4.1.0", "commander": "^7.2.0", "fast-glob": "^3.2.5", "find-up": "^5.0.0", "fs-extra": "^9.1.0", "require-from-string": "^2.0.2", "resolve-from": "^5.0.0" }, "bin": { "expo-modules-autolinking": "bin/expo-modules-autolinking.js" } }, "sha512-rkGc6a/90AC3q8wSy4V+iIpq6Fd0KXmQICKrvfmSWwrMgJmLfwP4QTrvLYPYOOMjFwNJcTaohcH8vzW/wYKrMg=="],
+ "expo-modules-autolinking": ["expo-modules-autolinking@2.0.8", "", { "dependencies": { "@expo/spawn-async": "^1.7.2", "chalk": "^4.1.0", "commander": "^7.2.0", "fast-glob": "^3.2.5", "find-up": "^5.0.0", "fs-extra": "^9.1.0", "require-from-string": "^2.0.2", "resolve-from": "^5.0.0" }, "bin": { "expo-modules-autolinking": "bin/expo-modules-autolinking.js" } }, "sha512-DezgnEYFQYic8hKGhkbztBA3QUmSftjaNDIKNAtS2iGJmzCcNIkatjN2slFDSWjSTNo8gOvPQyMKfyHWFvLpOQ=="],
- "expo-modules-core": ["expo-modules-core@2.2.0", "", { "dependencies": { "invariant": "^2.2.4" } }, "sha512-mOFEHIe6jZ7G5pYUVSQ2Ghs3CUr9Uz6DOh4JI+4PsTf0gmEvMmMEOrxirS89jRWQjXPJ7QaGBK0CJrZlj/Sdeg=="],
+ "expo-modules-core": ["expo-modules-core@2.2.3", "", { "dependencies": { "invariant": "^2.2.4" } }, "sha512-01QqZzpP/wWlxnNly4G06MsOBUTbMDj02DQigZoXfDh80vd/rk3/uVXqnZgOdLSggTs6DnvOgAUy0H2q30XdUg=="],
- "expo-router": ["expo-router@4.0.17", "", { "dependencies": { "@expo/metro-runtime": "4.0.1", "@expo/server": "^0.5.1", "@radix-ui/react-slot": "1.0.1", "@react-navigation/bottom-tabs": "^7.2.0", "@react-navigation/native": "^7.0.14", "@react-navigation/native-stack": "^7.2.0", "client-only": "^0.0.1", "react-helmet-async": "^1.3.0", "react-native-helmet-async": "2.0.4", "react-native-is-edge-to-edge": "^1.1.6", "schema-utils": "^4.0.1", "semver": "~7.6.3", "server-only": "^0.0.1" }, "peerDependencies": { "@react-navigation/drawer": "^7.1.1", "expo": "*", "expo-constants": "*", "expo-linking": "*", "react-native-reanimated": "*", "react-native-safe-area-context": "*", "react-native-screens": "*" }, "optionalPeers": ["@react-navigation/drawer", "react-native-reanimated"] }, "sha512-8ybo6bVwdG1S9hafh9BTOjX1hpCgomdUvs6hKHMM01koo8mQ7zocH/+zxQeaMVDxGhboz2dO5GiDchWJ0OheRA=="],
+ "expo-router": ["expo-router@4.0.18", "", { "dependencies": { "@expo/metro-runtime": "4.0.1", "@expo/server": "^0.5.2", "@radix-ui/react-slot": "1.0.1", "@react-navigation/bottom-tabs": "^7.2.0", "@react-navigation/native": "^7.0.14", "@react-navigation/native-stack": "^7.2.0", "client-only": "^0.0.1", "react-helmet-async": "^1.3.0", "react-native-helmet-async": "2.0.4", "react-native-is-edge-to-edge": "^1.1.6", "schema-utils": "^4.0.1", "semver": "~7.6.3", "server-only": "^0.0.1" }, "peerDependencies": { "@react-navigation/drawer": "^7.1.1", "expo": "*", "expo-constants": "*", "expo-linking": "*", "react-native-reanimated": "*", "react-native-safe-area-context": "*", "react-native-screens": "*" }, "optionalPeers": ["@react-navigation/drawer", "react-native-reanimated"] }, "sha512-K3lI070u9M8G4MAwHbi/jy7Co+c9DQ+mW/h99YTMw+LTDIUbyzRy5tflboRDtkEbCv1W/8cDXu9Y2Puct4RRNA=="],
- "expo-splash-screen": ["expo-splash-screen@0.29.21", "", { "dependencies": { "@expo/prebuild-config": "^8.0.25" }, "peerDependencies": { "expo": "*" } }, "sha512-7uZ+qvIuNcvrvrLIklW+Wbt6llPuCj6LKYjrMu+GOX8s///laldS4TGiMAbqcE7fmfCzQ8ffgfY7xhxRourhcA=="],
+ "expo-splash-screen": ["expo-splash-screen@0.29.22", "", { "dependencies": { "@expo/prebuild-config": "^8.0.27" }, "peerDependencies": { "expo": "*" } }, "sha512-f+bPpF06bqiuW1Fbrd3nxeaSsmTVTBEKEYe3epYt4IE6y4Ulli3qEUamMLlRQiDGuIXPU6zQlscpy2mdBUI5cA=="],
"expo-status-bar": ["expo-status-bar@2.0.1", "", { "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-AkIPX7jWHRPp83UBZ1iXtVvyr0g+DgBVvIXTtlmPtmUsm8Vq9Bb5IGj86PW8osuFlgoTVAg7HI/+Ok7yEYwiRg=="],
- "expo-symbols": ["expo-symbols@0.2.1", "", { "dependencies": { "sf-symbols-typescript": "^2.0.0" }, "peerDependencies": { "expo": "*" } }, "sha512-7MchQEfEYq+BDGM4r7bBh0GbgoAemnW+TEiFb3QQc/D1nYuNMIBzK7KKhjgWzi1pRiPX4TIJgAcj2R+WN23s5w=="],
+ "expo-symbols": ["expo-symbols@0.2.2", "", { "dependencies": { "sf-symbols-typescript": "^2.0.0" }, "peerDependencies": { "expo": "*" } }, "sha512-yTk1MxhA61YflYIMortImD57MCneKEoSvU1acqQ4oKigV5+cNw1XKB7GhcKe3d8Ny3ikC/b1Ia+HQjR0Hmr4JA=="],
- "expo-system-ui": ["expo-system-ui@4.0.7", "", { "dependencies": { "@react-native/normalize-colors": "0.76.6", "debug": "^4.3.2" }, "peerDependencies": { "expo": "*", "react-native": "*", "react-native-web": "*" }, "optionalPeers": ["react-native-web"] }, "sha512-x1VDoE7J8m4wxTgWyUBEYqsf1KabIg64dOLzYiZjg0cWOE6o6kX2Mg6n3abVWEEC01WhZBoo9+Urcce/6ZJ3tg=="],
+ "expo-system-ui": ["expo-system-ui@4.0.8", "", { "dependencies": { "@react-native/normalize-colors": "0.76.7", "debug": "^4.3.2" }, "peerDependencies": { "expo": "*", "react-native": "*", "react-native-web": "*" }, "optionalPeers": ["react-native-web"] }, "sha512-0AmWXJ3ObwMYxi2YGagwRQikydoUZJXLeK4A0FY1PsZpnlorSQ4IAfEVS38JmA54tf5CpP4TjBp5ZVEjRyv1rw=="],
"expo-web-browser": ["expo-web-browser@14.0.2", "", { "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-Hncv2yojhTpHbP6SGWARBFdl7P6wBHc1O8IKaNsH0a/IEakq887o1eRhLxZ5IwztPQyRDhpqHdgJ+BjWolOnwA=="],
- "exponential-backoff": ["exponential-backoff@3.1.1", "", {}, "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw=="],
+ "exponential-backoff": ["exponential-backoff@3.1.2", "", {}, "sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA=="],
"extend": ["extend@3.0.2", "", {}, "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="],
@@ -2086,9 +2063,9 @@
"fast-uri": ["fast-uri@3.0.6", "", {}, "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw=="],
- "fast-xml-parser": ["fast-xml-parser@4.5.1", "", { "dependencies": { "strnum": "^1.0.5" }, "bin": { "fxparser": "src/cli/cli.js" } }, "sha512-y655CeyUQ+jj7KBbYMc4FG01V8ZQqjN+gDYGJ50RtfsUB8iG9AmwmwoAgeKLJdmueKKMrH1RJ7yXHTSoczdv5w=="],
+ "fast-xml-parser": ["fast-xml-parser@4.5.3", "", { "dependencies": { "strnum": "^1.1.1" }, "bin": { "fxparser": "src/cli/cli.js" } }, "sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig=="],
- "fastq": ["fastq@1.18.0", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw=="],
+ "fastq": ["fastq@1.19.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ=="],
"fb-watchman": ["fb-watchman@2.0.2", "", { "dependencies": { "bser": "2.1.1" } }, "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA=="],
@@ -2112,23 +2089,21 @@
"find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="],
- "find-up-simple": ["find-up-simple@1.0.0", "", {}, "sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw=="],
+ "find-up-simple": ["find-up-simple@1.0.1", "", {}, "sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ=="],
"find-yarn-workspace-root2": ["find-yarn-workspace-root2@1.2.16", "", { "dependencies": { "micromatch": "^4.0.2", "pkg-dir": "^4.2.0" } }, "sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA=="],
"flow-enums-runtime": ["flow-enums-runtime@0.0.6", "", {}, "sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw=="],
- "flow-parser": ["flow-parser@0.259.1", "", {}, "sha512-xiXLmMH2Z7OmdE9Q+MjljUMr/rbemFqZIRxaeZieVScG4HzQrKKhNcCYZbWTGpoN7ZPi7z8ClQbeVPq6t5AszQ=="],
+ "flow-parser": ["flow-parser@0.264.0", "", {}, "sha512-ic38pWErePVYNrZZlcOLPW9vjJXcq7a1kZJyoSZE2xXioNd2FuGA09Y7iBfHiwpVb67Av2KgBkhwbdcRVflWKw=="],
"fontfaceobserver": ["fontfaceobserver@2.3.0", "", {}, "sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg=="],
- "for-each": ["for-each@0.3.4", "", { "dependencies": { "is-callable": "^1.2.7" } }, "sha512-kKaIINnFpzW6ffJNDjjyjrk21BkDx38c0xa/klsT8VzLCaMEefv4ZTacrcVR4DmgTeBra++jMDAfS/tS799YDw=="],
+ "foreground-child": ["foreground-child@3.3.1", "", { "dependencies": { "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" } }, "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw=="],
- "foreground-child": ["foreground-child@3.3.0", "", { "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" } }, "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg=="],
+ "form-data": ["form-data@4.0.2", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "mime-types": "^2.1.12" } }, "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w=="],
- "form-data": ["form-data@4.0.1", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "mime-types": "^2.1.12" } }, "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw=="],
-
- "framer-motion": ["framer-motion@12.2.0", "", { "dependencies": { "motion-dom": "^12.0.0", "motion-utils": "^12.0.0", "tslib": "^2.4.0" }, "peerDependencies": { "@emotion/is-prop-valid": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@emotion/is-prop-valid", "react", "react-dom"] }, "sha512-sYzL4obvn6KH/keIxcgUaXlWoOpkWejI228NMSr57hBunzvUNQD+rP/7I35CY1ciE8r9LjuItOalD+m51urBkg=="],
+ "framer-motion": ["framer-motion@12.5.0", "", { "dependencies": { "motion-dom": "^12.5.0", "motion-utils": "^12.5.0", "tslib": "^2.4.0" }, "peerDependencies": { "@emotion/is-prop-valid": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@emotion/is-prop-valid", "react", "react-dom"] }, "sha512-buPlioFbH9/W7rDzYh1C09AuZHAk2D1xTA1BlounJ2Rb9aRg84OXexP0GLd+R83v0khURdMX7b5MKnGTaSg5iA=="],
"freeport-async": ["freeport-async@2.0.0", "", {}, "sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ=="],
@@ -2156,7 +2131,7 @@
"get-caller-file": ["get-caller-file@2.0.5", "", {}, "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="],
- "get-intrinsic": ["get-intrinsic@1.2.7", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "function-bind": "^1.1.2", "get-proto": "^1.0.0", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA=="],
+ "get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="],
"get-nonce": ["get-nonce@1.0.1", "", {}, "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q=="],
@@ -2194,21 +2169,19 @@
"has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="],
- "has-property-descriptors": ["has-property-descriptors@1.0.2", "", { "dependencies": { "es-define-property": "^1.0.0" } }, "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg=="],
-
"has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="],
"has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="],
"hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="],
- "hast-util-properties-to-mdx-jsx-attributes": ["hast-util-properties-to-mdx-jsx-attributes@1.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "estree-util-value-to-estree": "^3.0.0", "mdast-util-mdx-jsx": "^3.0.0", "property-information": "^6.0.0", "space-separated-tokens": "^2.0.0", "style-to-js": "^1.0.0" } }, "sha512-MZEdAYiXC8wDBfntAc7syyWHbcg/X1h03DQ7IQ6MKagMttpYhnKqOZR/nia0657Dt2v2vuXB8YuKNExw0Fljew=="],
+ "hast-util-properties-to-mdx-jsx-attributes": ["hast-util-properties-to-mdx-jsx-attributes@1.0.1", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "estree-util-value-to-estree": "^3.0.0", "mdast-util-mdx-jsx": "^3.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "style-to-js": "^1.0.0" } }, "sha512-ZzxhjHZ+gyxaPIFp/nuRpVL4GIFoqzfH6vNgjaA3CuUAV6XCxYwAQfRczrZRkgL6msi6DdOl+/QEduOdzszvbg=="],
- "hast-util-to-estree": ["hast-util-to-estree@3.1.1", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "estree-util-attach-comments": "^3.0.0", "estree-util-is-identifier-name": "^3.0.0", "hast-util-whitespace": "^3.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "property-information": "^6.0.0", "space-separated-tokens": "^2.0.0", "style-to-object": "^1.0.0", "unist-util-position": "^5.0.0", "zwitch": "^2.0.0" } }, "sha512-IWtwwmPskfSmma9RpzCappDUitC8t5jhAynHhc1m2+5trOgsrp7txscUSavc5Ic8PATyAjfrCK1wgtxh2cICVQ=="],
+ "hast-util-to-estree": ["hast-util-to-estree@3.1.3", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "estree-util-attach-comments": "^3.0.0", "estree-util-is-identifier-name": "^3.0.0", "hast-util-whitespace": "^3.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "style-to-js": "^1.0.0", "unist-util-position": "^5.0.0", "zwitch": "^2.0.0" } }, "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w=="],
- "hast-util-to-html": ["hast-util-to-html@9.0.4", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-whitespace": "^3.0.0", "html-void-elements": "^3.0.0", "mdast-util-to-hast": "^13.0.0", "property-information": "^6.0.0", "space-separated-tokens": "^2.0.0", "stringify-entities": "^4.0.0", "zwitch": "^2.0.4" } }, "sha512-wxQzXtdbhiwGAUKrnQJXlOPmHnEehzphwkK7aluUPQ+lEc1xefC8pblMgpp2w5ldBTEfveRIrADcrhGIWrlTDA=="],
+ "hast-util-to-html": ["hast-util-to-html@9.0.5", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-whitespace": "^3.0.0", "html-void-elements": "^3.0.0", "mdast-util-to-hast": "^13.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "stringify-entities": "^4.0.0", "zwitch": "^2.0.4" } }, "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw=="],
- "hast-util-to-jsx-runtime": ["hast-util-to-jsx-runtime@2.3.2", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "hast-util-whitespace": "^3.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "property-information": "^6.0.0", "space-separated-tokens": "^2.0.0", "style-to-object": "^1.0.0", "unist-util-position": "^5.0.0", "vfile-message": "^4.0.0" } }, "sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg=="],
+ "hast-util-to-jsx-runtime": ["hast-util-to-jsx-runtime@2.3.6", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "hast-util-whitespace": "^3.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "style-to-js": "^1.0.0", "unist-util-position": "^5.0.0", "vfile-message": "^4.0.0" } }, "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg=="],
"hast-util-to-string": ["hast-util-to-string@3.0.1", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A=="],
@@ -2238,7 +2211,7 @@
"https-proxy-agent": ["https-proxy-agent@7.0.6", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "4" } }, "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw=="],
- "human-id": ["human-id@1.0.2", "", {}, "sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw=="],
+ "human-id": ["human-id@4.1.1", "", { "bin": { "human-id": "dist/cli.js" } }, "sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg=="],
"human-signals": ["human-signals@5.0.0", "", {}, "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ=="],
@@ -2258,7 +2231,7 @@
"import-fresh": ["import-fresh@2.0.0", "", { "dependencies": { "caller-path": "^2.0.0", "resolve-from": "^3.0.0" } }, "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg=="],
- "import-in-the-middle": ["import-in-the-middle@1.12.0", "", { "dependencies": { "acorn": "^8.8.2", "acorn-import-attributes": "^1.9.5", "cjs-module-lexer": "^1.2.2", "module-details-from-path": "^1.0.3" } }, "sha512-yAgSE7GmtRcu4ZUSFX/4v69UGXwugFFSdIQJ14LHPOPPQrWv8Y7O9PHsw8Ovk7bKCLe4sjXMbZFqGFcLHpZ89w=="],
+ "import-in-the-middle": ["import-in-the-middle@1.13.1", "", { "dependencies": { "acorn": "^8.14.0", "acorn-import-attributes": "^1.9.5", "cjs-module-lexer": "^1.2.2", "module-details-from-path": "^1.0.3" } }, "sha512-k2V9wNm9B+ysuelDTHjI9d5KPc4l8zAZTGqj+pcynvWkypZd857ryzN8jNC7Pg2YZXNMJcHRPpaDyCBbNyVRpA=="],
"import-local": ["import-local@3.2.0", "", { "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" }, "bin": { "import-local-fixture": "fixtures/cli.js" } }, "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA=="],
@@ -2282,7 +2255,7 @@
"internmap": ["internmap@2.0.3", "", {}, "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg=="],
- "intl-messageformat": ["intl-messageformat@10.7.14", "", { "dependencies": { "@formatjs/ecma402-abstract": "2.3.2", "@formatjs/fast-memoize": "2.2.6", "@formatjs/icu-messageformat-parser": "2.11.0", "tslib": "2" } }, "sha512-mMGnE4E1otdEutV5vLUdCxRJygHB5ozUBxsPB5qhitewssrS/qGruq9bmvIRkkGsNeK5ZWLfYRld18UHGTIifQ=="],
+ "intl-messageformat": ["intl-messageformat@10.7.15", "", { "dependencies": { "@formatjs/ecma402-abstract": "2.3.3", "@formatjs/fast-memoize": "2.2.6", "@formatjs/icu-messageformat-parser": "2.11.1", "tslib": "2" } }, "sha512-LRyExsEsefQSBjU2p47oAheoKz+EOJxSLDdjOaEjdriajfHsMXOmV/EhMvYSg9bAgCUHasuAC+mcUBe/95PfIg=="],
"invariant": ["invariant@2.2.4", "", { "dependencies": { "loose-envify": "^1.0.0" } }, "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA=="],
@@ -2294,16 +2267,12 @@
"is-alphanumerical": ["is-alphanumerical@2.0.1", "", { "dependencies": { "is-alphabetical": "^2.0.0", "is-decimal": "^2.0.0" } }, "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw=="],
- "is-arguments": ["is-arguments@1.2.0", "", { "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" } }, "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA=="],
-
"is-arrayish": ["is-arrayish@0.3.2", "", {}, "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="],
"is-binary-path": ["is-binary-path@2.1.0", "", { "dependencies": { "binary-extensions": "^2.0.0" } }, "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw=="],
"is-buffer": ["is-buffer@1.1.6", "", {}, "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="],
- "is-callable": ["is-callable@1.2.7", "", {}, "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="],
-
"is-core-module": ["is-core-module@2.16.1", "", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w=="],
"is-decimal": ["is-decimal@2.0.1", "", {}, "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A=="],
@@ -2320,8 +2289,6 @@
"is-generator-fn": ["is-generator-fn@2.1.0", "", {}, "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ=="],
- "is-generator-function": ["is-generator-function@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "get-proto": "^1.0.0", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ=="],
-
"is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="],
"is-hexadecimal": ["is-hexadecimal@2.0.1", "", {}, "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg=="],
@@ -2342,14 +2309,10 @@
"is-potential-custom-element-name": ["is-potential-custom-element-name@1.0.1", "", {}, "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="],
- "is-regex": ["is-regex@1.2.1", "", { "dependencies": { "call-bound": "^1.0.2", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g=="],
-
"is-stream": ["is-stream@3.0.0", "", {}, "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA=="],
"is-subdir": ["is-subdir@1.2.0", "", { "dependencies": { "better-path-resolve": "1.0.0" } }, "sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw=="],
- "is-typed-array": ["is-typed-array@1.1.15", "", { "dependencies": { "which-typed-array": "^1.1.16" } }, "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ=="],
-
"is-unicode-supported": ["is-unicode-supported@0.1.0", "", {}, "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw=="],
"is-what": ["is-what@4.1.16", "", {}, "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A=="],
@@ -2394,7 +2357,7 @@
"jest-environment-node": ["jest-environment-node@29.7.0", "", { "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "jest-mock": "^29.7.0", "jest-util": "^29.7.0" } }, "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw=="],
- "jest-expo": ["jest-expo@52.0.3", "", { "dependencies": { "@expo/config": "~10.0.8", "@expo/json-file": "^9.0.1", "@jest/create-cache-key-function": "^29.2.1", "@jest/globals": "^29.2.1", "babel-jest": "^29.2.1", "fbemitter": "^3.0.0", "find-up": "^5.0.0", "jest-environment-jsdom": "^29.2.1", "jest-snapshot": "^29.2.1", "jest-watch-select-projects": "^2.0.0", "jest-watch-typeahead": "2.2.1", "json5": "^2.2.3", "lodash": "^4.17.19", "react-server-dom-webpack": "19.0.0-rc-6230622a1a-20240610", "react-test-renderer": "18.3.1", "server-only": "^0.0.1", "stacktrace-js": "^2.0.2" }, "peerDependencies": { "expo": "*", "react-native": "*" }, "bin": { "jest": "bin/jest.js" } }, "sha512-z2gptekrQ0FIichvRhrES31X9twtCCTzu00sWnPyFaQuWQdoyZiCj2WFPqVrpgIgNYLFIEGhc0VP9rUT9johJw=="],
+ "jest-expo": ["jest-expo@52.0.6", "", { "dependencies": { "@expo/config": "~10.0.11", "@expo/json-file": "^9.0.2", "@jest/create-cache-key-function": "^29.2.1", "@jest/globals": "^29.2.1", "babel-jest": "^29.2.1", "fbemitter": "^3.0.0", "find-up": "^5.0.0", "jest-environment-jsdom": "^29.2.1", "jest-snapshot": "^29.2.1", "jest-watch-select-projects": "^2.0.0", "jest-watch-typeahead": "2.2.1", "json5": "^2.2.3", "lodash": "^4.17.19", "react-server-dom-webpack": "19.0.0-rc-6230622a1a-20240610", "react-test-renderer": "18.3.1", "server-only": "^0.0.1", "stacktrace-js": "^2.0.2" }, "peerDependencies": { "expo": "*", "react-native": "*" }, "bin": { "jest": "bin/jest.js" } }, "sha512-Ql60mCy4cfwyNvCW2wpEXbw/3i5H+SmB1XP1z0SJUpafGBipq6xMjPcgQpe/7PzAHTc/ikD+dFA0sPnljDJmZQ=="],
"jest-get-type": ["jest-get-type@29.6.3", "", {}, "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw=="],
@@ -2440,11 +2403,11 @@
"join-component": ["join-component@1.1.0", "", {}, "sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ=="],
- "jose": ["jose@5.9.6", "", {}, "sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ=="],
+ "jose": ["jose@5.10.0", "", {}, "sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg=="],
"joycon": ["joycon@3.1.1", "", {}, "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw=="],
- "js-beautify": ["js-beautify@1.15.1", "", { "dependencies": { "config-chain": "^1.1.13", "editorconfig": "^1.0.4", "glob": "^10.3.3", "js-cookie": "^3.0.5", "nopt": "^7.2.0" }, "bin": { "css-beautify": "js/bin/css-beautify.js", "html-beautify": "js/bin/html-beautify.js", "js-beautify": "js/bin/js-beautify.js" } }, "sha512-ESjNzSlt/sWE8sciZH8kBF8BPlwXPwhR6pWKAw8bw4Bwj+iZcnKW6ONWUutJ7eObuBZQpiIb8S7OYspWrKt7rA=="],
+ "js-beautify": ["js-beautify@1.15.4", "", { "dependencies": { "config-chain": "^1.1.13", "editorconfig": "^1.0.4", "glob": "^10.4.2", "js-cookie": "^3.0.5", "nopt": "^7.2.1" }, "bin": { "css-beautify": "js/bin/css-beautify.js", "html-beautify": "js/bin/html-beautify.js", "js-beautify": "js/bin/js-beautify.js" } }, "sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA=="],
"js-cookie": ["js-cookie@3.0.5", "", {}, "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw=="],
@@ -2456,7 +2419,7 @@
"jsc-safe-url": ["jsc-safe-url@0.2.4", "", {}, "sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q=="],
- "jscodeshift": ["jscodeshift@0.14.0", "", { "dependencies": { "@babel/core": "^7.13.16", "@babel/parser": "^7.13.16", "@babel/plugin-proposal-class-properties": "^7.13.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", "@babel/plugin-proposal-optional-chaining": "^7.13.12", "@babel/plugin-transform-modules-commonjs": "^7.13.8", "@babel/preset-flow": "^7.13.13", "@babel/preset-typescript": "^7.13.0", "@babel/register": "^7.13.16", "babel-core": "^7.0.0-bridge.0", "chalk": "^4.1.2", "flow-parser": "0.*", "graceful-fs": "^4.2.4", "micromatch": "^4.0.4", "neo-async": "^2.5.0", "node-dir": "^0.1.17", "recast": "^0.21.0", "temp": "^0.8.4", "write-file-atomic": "^2.3.0" }, "peerDependencies": { "@babel/preset-env": "^7.1.6" }, "bin": { "jscodeshift": "bin/jscodeshift.js" } }, "sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA=="],
+ "jscodeshift": ["jscodeshift@0.15.2", "", { "dependencies": { "@babel/core": "^7.23.0", "@babel/parser": "^7.23.0", "@babel/plugin-transform-class-properties": "^7.22.5", "@babel/plugin-transform-modules-commonjs": "^7.23.0", "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", "@babel/plugin-transform-optional-chaining": "^7.23.0", "@babel/plugin-transform-private-methods": "^7.22.5", "@babel/preset-flow": "^7.22.15", "@babel/preset-typescript": "^7.23.0", "@babel/register": "^7.22.15", "babel-core": "^7.0.0-bridge.0", "chalk": "^4.1.2", "flow-parser": "0.*", "graceful-fs": "^4.2.4", "micromatch": "^4.0.4", "neo-async": "^2.5.0", "node-dir": "^0.1.17", "recast": "^0.23.3", "temp": "^0.8.4", "write-file-atomic": "^2.3.0" }, "peerDependencies": { "@babel/preset-env": "^7.1.6" }, "optionalPeers": ["@babel/preset-env"], "bin": { "jscodeshift": "bin/jscodeshift.js" } }, "sha512-FquR7Okgmc4Sd0aEDwqho3rEiKR3BdvuG9jfdHjLJ6JQoWSMpavug3AoIfnfWhxFlf+5pzQh8qjqz0DWFrNQzA=="],
"jsdom": ["jsdom@26.0.0", "", { "dependencies": { "cssstyle": "^4.2.1", "data-urls": "^5.0.0", "decimal.js": "^10.4.3", "form-data": "^4.0.1", "html-encoding-sniffer": "^4.0.0", "http-proxy-agent": "^7.0.2", "https-proxy-agent": "^7.0.6", "is-potential-custom-element-name": "^1.0.1", "nwsapi": "^2.2.16", "parse5": "^7.2.1", "rrweb-cssom": "^0.8.0", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", "tough-cookie": "^5.0.0", "w3c-xmlserializer": "^5.0.0", "webidl-conversions": "^7.0.0", "whatwg-encoding": "^3.1.1", "whatwg-mimetype": "^4.0.0", "whatwg-url": "^14.1.0", "ws": "^8.18.0", "xml-name-validator": "^5.0.0" }, "peerDependencies": { "canvas": "^3.0.0" }, "optionalPeers": ["canvas"] }, "sha512-BZYDGVAIriBWTpIxYzrXjv3E/4u8+/pSG5bQdIYCbNCGOvsPkDQfTVLAIXAf9ETdCpduCVTkDe2NNZ8NIwUVzw=="],
@@ -2478,7 +2441,7 @@
"jsonfile": ["jsonfile@4.0.0", "", { "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg=="],
- "jsonrepair": ["jsonrepair@3.11.2", "", { "bin": { "jsonrepair": "bin/cli.js" } }, "sha512-ejydGcTq0qKk1r0NUBwjtvswbPFhs19+QEfwSeGwB8KJZ59W7/AOFmQh04c68mkJ+2hGk+OkOmkr2bKG4tGlLQ=="],
+ "jsonrepair": ["jsonrepair@3.12.0", "", { "bin": { "jsonrepair": "bin/cli.js" } }, "sha512-SWfjz8SuQ0wZjwsxtSJ3Zy8vvLg6aO/kxcp9TWNPGwJKgTZVfhNEQBMk/vPOpYCDFWRxD6QWuI6IHR1t615f0w=="],
"kind-of": ["kind-of@6.0.3", "", {}, "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="],
@@ -2542,7 +2505,7 @@
"log-symbols": ["log-symbols@4.1.0", "", { "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" } }, "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg=="],
- "long": ["long@5.2.4", "", {}, "sha512-qtzLbJE8hq7VabR3mISmVGtoXP8KGc2Z/AT8OuqlYD7JTR3oqrgwdjnk07wpj1twXxYmgDXgoKVWUG/fReSzHg=="],
+ "long": ["long@5.3.1", "", {}, "sha512-ka87Jz3gcx/I7Hal94xaN2tZEOPoUOEVftkQqZx2EeQRN7LGdfLlI3FvZ+7WDplm+vK2Urx9ULrvSowtdCieng=="],
"longest-streak": ["longest-streak@3.1.0", "", {}, "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="],
@@ -2552,7 +2515,7 @@
"lucide-react": ["lucide-react@0.474.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-CmghgHkh0OJNmxGKWc0qfPJCYHASPMVSyGY8fj3xgk4v84ItqDg64JNKFZn5hC6E0vHi6gxnbCgwhyVB09wQtA=="],
- "make-dir": ["make-dir@4.0.0", "", { "dependencies": { "semver": "^7.5.3" } }, "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw=="],
+ "make-dir": ["make-dir@2.1.0", "", { "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" } }, "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA=="],
"make-plural": ["make-plural@7.4.0", "", {}, "sha512-4/gC9KVNTV6pvYg2gFeQYTW3mWaoJt7WZE5vrp1KnQDgW92JtYZnzmZT81oj/dUTqAIu0ufI2x3dkgu3bB1tYg=="],
@@ -2578,11 +2541,11 @@
"mdast-util-from-markdown": ["mdast-util-from-markdown@2.0.2", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "mdast-util-to-string": "^4.0.0", "micromark": "^4.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA=="],
- "mdast-util-gfm": ["mdast-util-gfm@3.0.0", "", { "dependencies": { "mdast-util-from-markdown": "^2.0.0", "mdast-util-gfm-autolink-literal": "^2.0.0", "mdast-util-gfm-footnote": "^2.0.0", "mdast-util-gfm-strikethrough": "^2.0.0", "mdast-util-gfm-table": "^2.0.0", "mdast-util-gfm-task-list-item": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw=="],
+ "mdast-util-gfm": ["mdast-util-gfm@3.1.0", "", { "dependencies": { "mdast-util-from-markdown": "^2.0.0", "mdast-util-gfm-autolink-literal": "^2.0.0", "mdast-util-gfm-footnote": "^2.0.0", "mdast-util-gfm-strikethrough": "^2.0.0", "mdast-util-gfm-table": "^2.0.0", "mdast-util-gfm-task-list-item": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ=="],
"mdast-util-gfm-autolink-literal": ["mdast-util-gfm-autolink-literal@2.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "ccount": "^2.0.0", "devlop": "^1.0.0", "mdast-util-find-and-replace": "^3.0.0", "micromark-util-character": "^2.0.0" } }, "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ=="],
- "mdast-util-gfm-footnote": ["mdast-util-gfm-footnote@2.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.1.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0" } }, "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ=="],
+ "mdast-util-gfm-footnote": ["mdast-util-gfm-footnote@2.1.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.1.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0" } }, "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ=="],
"mdast-util-gfm-strikethrough": ["mdast-util-gfm-strikethrough@2.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg=="],
@@ -2612,37 +2575,37 @@
"merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="],
- "metro": ["metro@0.81.1", "", { "dependencies": { "@babel/code-frame": "^7.24.7", "@babel/core": "^7.25.2", "@babel/generator": "^7.25.0", "@babel/parser": "^7.25.3", "@babel/template": "^7.25.0", "@babel/traverse": "^7.25.3", "@babel/types": "^7.25.2", "accepts": "^1.3.7", "chalk": "^4.0.0", "ci-info": "^2.0.0", "connect": "^3.6.5", "debug": "^2.2.0", "error-stack-parser": "^2.0.6", "flow-enums-runtime": "^0.0.6", "graceful-fs": "^4.2.4", "hermes-parser": "0.25.1", "image-size": "^1.0.2", "invariant": "^2.2.4", "jest-worker": "^29.6.3", "jsc-safe-url": "^0.2.2", "lodash.throttle": "^4.1.1", "metro-babel-transformer": "0.81.1", "metro-cache": "0.81.1", "metro-cache-key": "0.81.1", "metro-config": "0.81.1", "metro-core": "0.81.1", "metro-file-map": "0.81.1", "metro-resolver": "0.81.1", "metro-runtime": "0.81.1", "metro-source-map": "0.81.1", "metro-symbolicate": "0.81.1", "metro-transform-plugins": "0.81.1", "metro-transform-worker": "0.81.1", "mime-types": "^2.1.27", "nullthrows": "^1.1.1", "serialize-error": "^2.1.0", "source-map": "^0.5.6", "throat": "^5.0.0", "ws": "^7.5.10", "yargs": "^17.6.2" }, "bin": { "metro": "src/cli.js" } }, "sha512-fqRu4fg8ONW7VfqWFMGgKAcOuMzyoQah2azv9Y3VyFXAmG+AoTU6YIFWqAADESCGVWuWEIvxTJhMf3jxU6jwjA=="],
+ "metro": ["metro@0.81.3", "", { "dependencies": { "@babel/code-frame": "^7.24.7", "@babel/core": "^7.25.2", "@babel/generator": "^7.25.0", "@babel/parser": "^7.25.3", "@babel/template": "^7.25.0", "@babel/traverse": "^7.25.3", "@babel/types": "^7.25.2", "accepts": "^1.3.7", "chalk": "^4.0.0", "ci-info": "^2.0.0", "connect": "^3.6.5", "debug": "^2.2.0", "error-stack-parser": "^2.0.6", "flow-enums-runtime": "^0.0.6", "graceful-fs": "^4.2.4", "hermes-parser": "0.25.1", "image-size": "^1.0.2", "invariant": "^2.2.4", "jest-worker": "^29.7.0", "jsc-safe-url": "^0.2.2", "lodash.throttle": "^4.1.1", "metro-babel-transformer": "0.81.3", "metro-cache": "0.81.3", "metro-cache-key": "0.81.3", "metro-config": "0.81.3", "metro-core": "0.81.3", "metro-file-map": "0.81.3", "metro-resolver": "0.81.3", "metro-runtime": "0.81.3", "metro-source-map": "0.81.3", "metro-symbolicate": "0.81.3", "metro-transform-plugins": "0.81.3", "metro-transform-worker": "0.81.3", "mime-types": "^2.1.27", "nullthrows": "^1.1.1", "serialize-error": "^2.1.0", "source-map": "^0.5.6", "throat": "^5.0.0", "ws": "^7.5.10", "yargs": "^17.6.2" }, "bin": { "metro": "src/cli.js" } }, "sha512-upilFs7z1uLKvdzFYHiVKrGT/uC7h7d53R0g/FaJoQvLfA8jQG2V69jeOcGi4wCsFYvl1zBSZvKxpQb0nA3giQ=="],
- "metro-babel-transformer": ["metro-babel-transformer@0.81.1", "", { "dependencies": { "@babel/core": "^7.25.2", "flow-enums-runtime": "^0.0.6", "hermes-parser": "0.25.1", "nullthrows": "^1.1.1" } }, "sha512-JECKDrQaUnDmj0x/Q/c8c5YwsatVx38Lu+BfCwX9fR8bWipAzkvJocBpq5rOAJRDXRgDcPv2VO4Q4nFYrpYNQg=="],
+ "metro-babel-transformer": ["metro-babel-transformer@0.81.3", "", { "dependencies": { "@babel/core": "^7.25.2", "flow-enums-runtime": "^0.0.6", "hermes-parser": "0.25.1", "nullthrows": "^1.1.1" } }, "sha512-ENqtnPy2mQZFOuKrbqHRcAwZuaYe43X+30xIF0xlkLuMyCvc0CsFzrrSK9EqrQwexhVlqaRALb0GQbBMcE/y8g=="],
- "metro-cache": ["metro-cache@0.81.1", "", { "dependencies": { "exponential-backoff": "^3.1.1", "flow-enums-runtime": "^0.0.6", "metro-core": "0.81.1" } }, "sha512-Uqcmn6sZ+Y0VJHM88VrG5xCvSeU7RnuvmjPmSOpEcyJJBe02QkfHL05MX2ZyGDTyZdbKCzaX0IijrTe4hN3F0Q=="],
+ "metro-cache": ["metro-cache@0.81.3", "", { "dependencies": { "exponential-backoff": "^3.1.1", "flow-enums-runtime": "^0.0.6", "metro-core": "0.81.3" } }, "sha512-6UelMQYjlto/79tTXu0vsTxAX4e+Bkf0tgtDL1BNx3wd68pBg8qKIYpJPaUlOIaNUzFXTBDjYwUverkEW0KAtA=="],
- "metro-cache-key": ["metro-cache-key@0.81.1", "", { "dependencies": { "flow-enums-runtime": "^0.0.6" } }, "sha512-5fDaHR1yTvpaQuwMAeEoZGsVyvjrkw9IFAS7WixSPvaNY5YfleqoJICPc6hbXFJjvwCCpwmIYFkjqzR/qJ6yqA=="],
+ "metro-cache-key": ["metro-cache-key@0.81.3", "", { "dependencies": { "flow-enums-runtime": "^0.0.6" } }, "sha512-KPsPSRUd6uRva7k7k/DqiiD8td7URQWx0RkX/Cj5+bed5zSXEg/XoQA+b+DmMxS5C7TqP61Fh3XvHx6TQRW82A=="],
- "metro-config": ["metro-config@0.81.1", "", { "dependencies": { "connect": "^3.6.5", "cosmiconfig": "^5.0.5", "flow-enums-runtime": "^0.0.6", "jest-validate": "^29.6.3", "metro": "0.81.1", "metro-cache": "0.81.1", "metro-core": "0.81.1", "metro-runtime": "0.81.1" } }, "sha512-VAAJmxsKIZ+Fz5/z1LVgxa32gE6+2TvrDSSx45g85WoX4EtLmdBGP3DSlpQW3DqFUfNHJCGwMLGXpJnxifd08g=="],
+ "metro-config": ["metro-config@0.81.3", "", { "dependencies": { "connect": "^3.6.5", "cosmiconfig": "^5.0.5", "flow-enums-runtime": "^0.0.6", "jest-validate": "^29.7.0", "metro": "0.81.3", "metro-cache": "0.81.3", "metro-core": "0.81.3", "metro-runtime": "0.81.3" } }, "sha512-WpTaT0iQr5juVY50Y/cyacG2ggZqF38VshEQepT+ovPK8E/xUVxlbO5yxLSXUxxUXX3Hka9r6g64+y2WC6c/xQ=="],
- "metro-core": ["metro-core@0.81.1", "", { "dependencies": { "flow-enums-runtime": "^0.0.6", "lodash.throttle": "^4.1.1", "metro-resolver": "0.81.1" } }, "sha512-4d2/+02IYqOwJs4dmM0dC8hIZqTzgnx2nzN4GTCaXb3Dhtmi/SJ3v6744zZRnithhN4lxf8TTJSHnQV75M7SSA=="],
+ "metro-core": ["metro-core@0.81.3", "", { "dependencies": { "flow-enums-runtime": "^0.0.6", "lodash.throttle": "^4.1.1", "metro-resolver": "0.81.3" } }, "sha512-WZ+qohnpvvSWdPj1VJPUrZz+2ik29M+UUpMU6YrmzQUfDyZ6JYHhzlw5WVBtwpt/+2xTsIyrZ2C1fByT/DsLQA=="],
- "metro-file-map": ["metro-file-map@0.81.1", "", { "dependencies": { "debug": "^2.2.0", "fb-watchman": "^2.0.0", "flow-enums-runtime": "^0.0.6", "graceful-fs": "^4.2.4", "invariant": "^2.2.4", "jest-worker": "^29.6.3", "micromatch": "^4.0.4", "nullthrows": "^1.1.1", "walker": "^1.0.7" } }, "sha512-aY72H2ujmRfFxcsbyh83JgqFF+uQ4HFN1VhV2FmcfQG4s1bGKf2Vbkk+vtZ1+EswcBwDZFbkpvAjN49oqwGzAA=="],
+ "metro-file-map": ["metro-file-map@0.81.3", "", { "dependencies": { "debug": "^2.2.0", "fb-watchman": "^2.0.0", "flow-enums-runtime": "^0.0.6", "graceful-fs": "^4.2.4", "invariant": "^2.2.4", "jest-worker": "^29.7.0", "micromatch": "^4.0.4", "nullthrows": "^1.1.1", "walker": "^1.0.7" } }, "sha512-F+t4lnVRoauJxtr9xmI4pWIOE77/vl0IrHDGeJSI9cW6LmuqxkpOlZHTKpbs/hMAo6+KhG2JMJACQDvXDLd/GA=="],
- "metro-minify-terser": ["metro-minify-terser@0.81.1", "", { "dependencies": { "flow-enums-runtime": "^0.0.6", "terser": "^5.15.0" } }, "sha512-p/Qz3NNh1nebSqMlxlUALAnESo6heQrnvgHtAuxufRPtKvghnVDq9hGGex8H7z7YYLsqe42PWdt4JxTA3mgkvg=="],
+ "metro-minify-terser": ["metro-minify-terser@0.81.3", "", { "dependencies": { "flow-enums-runtime": "^0.0.6", "terser": "^5.15.0" } }, "sha512-912AYv3OmwcbUwzCdWbdQRk+RV6kXXluHKlhBdYFD3kr4Ece691rzlofU/Mlt9qZrhHtctD5Q8cFqOEf9Z69bQ=="],
- "metro-resolver": ["metro-resolver@0.81.1", "", { "dependencies": { "flow-enums-runtime": "^0.0.6" } }, "sha512-E61t6fxRoYRkl6Zo3iUfCKW4DYfum/bLjcejXBMt1y3I7LFkK84TCR/Rs9OAwsMCY/7GOPB4+CREYZOtCC7CNA=="],
+ "metro-resolver": ["metro-resolver@0.81.3", "", { "dependencies": { "flow-enums-runtime": "^0.0.6" } }, "sha512-XnjENY1c6jcsEfFVIjN/8McUIInCVgGxv5eva+9ZWeCTyiAE/L5HPj2ai/Myb349+6QuSMR0dscTkKCnOwWXdw=="],
- "metro-runtime": ["metro-runtime@0.81.1", "", { "dependencies": { "@babel/runtime": "^7.25.0", "flow-enums-runtime": "^0.0.6" } }, "sha512-pqu5j5d01rjF85V/K8SDDJ0NR3dRp6bE3z5bKVVb5O2Rx0nbR9KreUxYALQCRCcQHaYySqCg5fYbGKBHC295YQ=="],
+ "metro-runtime": ["metro-runtime@0.81.3", "", { "dependencies": { "@babel/runtime": "^7.25.0", "flow-enums-runtime": "^0.0.6" } }, "sha512-neuGRMC2pgGKIFPbmbrxW41/SmvL7OX4i1LN+saUY2t1cZfxf9haQHUMCGhO3498uEL2N+ulKRSlQrHt6XwGaw=="],
- "metro-source-map": ["metro-source-map@0.81.1", "", { "dependencies": { "@babel/traverse": "^7.25.3", "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3", "@babel/types": "^7.25.2", "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", "metro-symbolicate": "0.81.1", "nullthrows": "^1.1.1", "ob1": "0.81.1", "source-map": "^0.5.6", "vlq": "^1.0.0" } }, "sha512-1i8ROpNNiga43F0ZixAXoFE/SS3RqcRDCCslpynb+ytym0VI7pkTH1woAN2HI9pczYtPrp3Nq0AjRpsuY35ieA=="],
+ "metro-source-map": ["metro-source-map@0.81.3", "", { "dependencies": { "@babel/traverse": "^7.25.3", "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3", "@babel/types": "^7.25.2", "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", "metro-symbolicate": "0.81.3", "nullthrows": "^1.1.1", "ob1": "0.81.3", "source-map": "^0.5.6", "vlq": "^1.0.0" } }, "sha512-BHJJurmDQRn3hCbBawh/UHzPz3duMpwpE3ofImO2DoWHYzn6nSg/D4wfCN4y14d9fFLE4e0I+BAOX1HWNP4jsw=="],
- "metro-symbolicate": ["metro-symbolicate@0.81.1", "", { "dependencies": { "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", "metro-source-map": "0.81.1", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "vlq": "^1.0.0" }, "bin": { "metro-symbolicate": "src/index.js" } }, "sha512-Lgk0qjEigtFtsM7C0miXITbcV47E1ZYIfB+m/hCraihiwRWkNUQEPCWvqZmwXKSwVE5mXA0EzQtghAvQSjZDxw=="],
+ "metro-symbolicate": ["metro-symbolicate@0.81.3", "", { "dependencies": { "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", "metro-source-map": "0.81.3", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "vlq": "^1.0.0" }, "bin": { "metro-symbolicate": "src/index.js" } }, "sha512-LQLT6WopQmIz2SDSVh3Lw7nLzF58HpsrPYqRB7RpRXBYhYmPFIjiGaP8qqtKHXczM/5YAOJzpgt8t/OGZgh6Eg=="],
- "metro-transform-plugins": ["metro-transform-plugins@0.81.1", "", { "dependencies": { "@babel/core": "^7.25.2", "@babel/generator": "^7.25.0", "@babel/template": "^7.25.0", "@babel/traverse": "^7.25.3", "flow-enums-runtime": "^0.0.6", "nullthrows": "^1.1.1" } }, "sha512-7L1lI44/CyjIoBaORhY9fVkoNe8hrzgxjSCQ/lQlcfrV31cZb7u0RGOQrKmUX7Bw4FpejrB70ArQ7Mse9mk7+Q=="],
+ "metro-transform-plugins": ["metro-transform-plugins@0.81.3", "", { "dependencies": { "@babel/core": "^7.25.2", "@babel/generator": "^7.25.0", "@babel/template": "^7.25.0", "@babel/traverse": "^7.25.3", "flow-enums-runtime": "^0.0.6", "nullthrows": "^1.1.1" } }, "sha512-4JMUXhBB5y4h3dyA272k7T7+U3+J4fSBcct0Y8Yur9ziZB/dK8fieEQg5ZPfEGsgOGI+54zTzOUqga6AgmZSNg=="],
- "metro-transform-worker": ["metro-transform-worker@0.81.1", "", { "dependencies": { "@babel/core": "^7.25.2", "@babel/generator": "^7.25.0", "@babel/parser": "^7.25.3", "@babel/types": "^7.25.2", "flow-enums-runtime": "^0.0.6", "metro": "0.81.1", "metro-babel-transformer": "0.81.1", "metro-cache": "0.81.1", "metro-cache-key": "0.81.1", "metro-minify-terser": "0.81.1", "metro-source-map": "0.81.1", "metro-transform-plugins": "0.81.1", "nullthrows": "^1.1.1" } }, "sha512-M+2hVT3rEy5K7PBmGDgQNq3Zx53TjScOcO/CieyLnCRFtBGWZiSJ2+bLAXXOKyKa/y3bI3i0owxtyxuPGDwbZg=="],
+ "metro-transform-worker": ["metro-transform-worker@0.81.3", "", { "dependencies": { "@babel/core": "^7.25.2", "@babel/generator": "^7.25.0", "@babel/parser": "^7.25.3", "@babel/types": "^7.25.2", "flow-enums-runtime": "^0.0.6", "metro": "0.81.3", "metro-babel-transformer": "0.81.3", "metro-cache": "0.81.3", "metro-cache-key": "0.81.3", "metro-minify-terser": "0.81.3", "metro-source-map": "0.81.3", "metro-transform-plugins": "0.81.3", "nullthrows": "^1.1.1" } }, "sha512-KZqm9sVyBKRygUxRm+yP4DguE9R1EEv28KJhIxghNp5dcdVXBYUPe1xHoc3QVdzD9c3tf8JFzA2FBlKTlwMwNg=="],
- "micromark": ["micromark@4.0.1", "", { "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw=="],
+ "micromark": ["micromark@4.0.2", "", { "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA=="],
- "micromark-core-commonmark": ["micromark-core-commonmark@2.0.2", "", { "dependencies": { "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-destination": "^2.0.0", "micromark-factory-label": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-factory-title": "^2.0.0", "micromark-factory-whitespace": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-html-tag-name": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w=="],
+ "micromark-core-commonmark": ["micromark-core-commonmark@2.0.3", "", { "dependencies": { "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-destination": "^2.0.0", "micromark-factory-label": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-factory-title": "^2.0.0", "micromark-factory-whitespace": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-html-tag-name": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg=="],
"micromark-extension-gfm": ["micromark-extension-gfm@3.0.0", "", { "dependencies": { "micromark-extension-gfm-autolink-literal": "^2.0.0", "micromark-extension-gfm-footnote": "^2.0.0", "micromark-extension-gfm-strikethrough": "^2.0.0", "micromark-extension-gfm-table": "^2.0.0", "micromark-extension-gfm-tagfilter": "^2.0.0", "micromark-extension-gfm-task-list-item": "^2.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w=="],
@@ -2704,11 +2667,11 @@
"micromark-util-sanitize-uri": ["micromark-util-sanitize-uri@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ=="],
- "micromark-util-subtokenize": ["micromark-util-subtokenize@2.0.4", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-N6hXjrin2GTJDe3MVjf5FuXpm12PGm80BrUAeub9XFXca8JZbP+oIwY4LJSVwFUCL1IPm/WwSVUN7goFHmSGGQ=="],
+ "micromark-util-subtokenize": ["micromark-util-subtokenize@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA=="],
"micromark-util-symbol": ["micromark-util-symbol@2.0.1", "", {}, "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q=="],
- "micromark-util-types": ["micromark-util-types@2.0.1", "", {}, "sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ=="],
+ "micromark-util-types": ["micromark-util-types@2.0.2", "", {}, "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA=="],
"micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="],
@@ -2746,21 +2709,19 @@
"motion": ["motion@12.2.0", "", { "dependencies": { "framer-motion": "^12.2.0", "tslib": "^2.4.0" }, "peerDependencies": { "@emotion/is-prop-valid": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@emotion/is-prop-valid", "react", "react-dom"] }, "sha512-xa00pwM37TVtIGpc0J+VfgQj/KjiOogVD3XUaJb28Xuo23X3nb051PGMEJFk2rOzHZgp+dVx9uk1gxnS5rkeKw=="],
- "motion-dom": ["motion-dom@12.0.0", "", { "dependencies": { "motion-utils": "^12.0.0" } }, "sha512-CvYd15OeIR6kHgMdonCc1ihsaUG4MYh/wrkz8gZ3hBX/uamyZCXN9S9qJoYF03GqfTt7thTV/dxnHYX4+55vDg=="],
+ "motion-dom": ["motion-dom@12.5.0", "", { "dependencies": { "motion-utils": "^12.5.0" } }, "sha512-uH2PETDh7m+Hjd1UQQ56yHqwn83SAwNjimNPE/kC+Kds0t4Yh7+29rfo5wezVFpPOv57U4IuWved5d1x0kNhbQ=="],
- "motion-utils": ["motion-utils@12.0.0", "", {}, "sha512-MNFiBKbbqnmvOjkPyOKgHUp3Q6oiokLkI1bEwm5QA28cxMZrv0CbbBGDNmhF6DIXsi1pCQBSs0dX8xjeER1tmA=="],
+ "motion-utils": ["motion-utils@12.5.0", "", {}, "sha512-+hFFzvimn0sBMP9iPxBa9OtRX35ZQ3py0UHnb8U29VD+d8lQ8zH3dTygJWqK7av2v6yhg7scj9iZuvTS0f4+SA=="],
"mri": ["mri@1.2.0", "", {}, "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA=="],
- "mrmime": ["mrmime@1.0.1", "", {}, "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw=="],
-
"ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
"my-app": ["my-app@workspace:examples/expo"],
"mz": ["mz@2.7.0", "", { "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", "thenify-all": "^1.0.0" } }, "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q=="],
- "nanoid": ["nanoid@3.3.8", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w=="],
+ "nanoid": ["nanoid@3.3.9", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg=="],
"natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="],
@@ -2804,9 +2765,9 @@
"nuqs": ["nuqs@2.3.2", "", { "dependencies": { "mitt": "^3.0.1" }, "peerDependencies": { "@remix-run/react": ">=2", "next": ">=14.2.0", "react": ">=18.2.0 || ^19.0.0-0", "react-router": "^6 || ^7", "react-router-dom": "^6 || ^7" }, "optionalPeers": ["@remix-run/react", "next", "react-router", "react-router-dom"] }, "sha512-WeG78r8e3a30JY3P8npldvNiAZwGIk499lnpeRs3UYA3PpSvs2/PLunKGgjuF/JMw4BOowD3K2xgGEOZ3PeODA=="],
- "nwsapi": ["nwsapi@2.2.16", "", {}, "sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ=="],
+ "nwsapi": ["nwsapi@2.2.18", "", {}, "sha512-p1TRH/edngVEHVbwqWnxUViEmq5znDvyB+Sik5cmuLpGOIfDf/39zLiq3swPF8Vakqn+gvNiOQAZu8djYlQILA=="],
- "ob1": ["ob1@0.81.1", "", { "dependencies": { "flow-enums-runtime": "^0.0.6" } }, "sha512-1PEbvI+AFvOcgdNcO79FtDI1TUO8S3lhiKOyAiyWQF3sFDDKS+aw2/BZvGlArFnSmqckwOOB9chQuIX0/OahoQ=="],
+ "ob1": ["ob1@0.81.3", "", { "dependencies": { "flow-enums-runtime": "^0.0.6" } }, "sha512-wd8zdH0DWsn2iDVn2zT/QURihcqoc73K8FhNCmQ16qkJaoYJLNb/N+huOwdCgsbNP8Lk/s1+dPnDETx+RzsrWA=="],
"object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="],
@@ -2814,9 +2775,9 @@
"obuf": ["obuf@1.1.2", "", {}, "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg=="],
- "octokit": ["octokit@4.1.0", "", { "dependencies": { "@octokit/app": "^15.1.2", "@octokit/core": "^6.1.3", "@octokit/oauth-app": "^7.1.4", "@octokit/plugin-paginate-graphql": "^5.2.4", "@octokit/plugin-paginate-rest": "^11.4.0", "@octokit/plugin-rest-endpoint-methods": "^13.3.0", "@octokit/plugin-retry": "^7.1.3", "@octokit/plugin-throttling": "^9.4.0", "@octokit/request-error": "^6.1.6", "@octokit/types": "^13.7.0" } }, "sha512-/UrQAOSvkc+lUUWKNzy4ByAgYU9KpFzZQt8DnC962YmQuDiZb1SNJ90YukCCK5aMzKqqCA+z1kkAlmzYvdYKag=="],
+ "octokit": ["octokit@4.1.2", "", { "dependencies": { "@octokit/app": "^15.1.4", "@octokit/core": "^6.1.4", "@octokit/oauth-app": "^7.1.6", "@octokit/plugin-paginate-graphql": "^5.2.4", "@octokit/plugin-paginate-rest": "^11.4.2", "@octokit/plugin-rest-endpoint-methods": "^13.3.1", "@octokit/plugin-retry": "^7.1.4", "@octokit/plugin-throttling": "^9.4.0", "@octokit/request-error": "^6.1.7", "@octokit/types": "^13.7.0" } }, "sha512-0kcTxJOK3yQrJsRb8wKa28hlTze4QOz4sLuUnfXXnhboDhFKgv8LxS86tFwbsafDW9JZ08ByuVAE8kQbYJIZkA=="],
- "ollama": ["ollama@0.5.12", "", { "dependencies": { "whatwg-fetch": "^3.6.20" } }, "sha512-flVH1fn1c9NF7VV3bW9kSu0E+bYc40b4DxL/gS2Debhao35osJFRDiPOj9sIWTMvcyj78Paw1OuhfIe7uhDWfQ=="],
+ "ollama": ["ollama@0.5.14", "", { "dependencies": { "whatwg-fetch": "^3.6.20" } }, "sha512-pvOuEYa2WkkAumxzJP0RdEYHkbZ64AYyyUszXVX7ruLvk5L+EiO2G71da2GqEQ4IAk4j6eLoUbGk5arzFT1wJA=="],
"ollama-ai-provider": ["ollama-ai-provider@1.2.0", "", { "dependencies": { "@ai-sdk/provider": "^1.0.0", "@ai-sdk/provider-utils": "^2.0.0", "partial-json": "0.1.7" }, "peerDependencies": { "zod": "^3.0.0" }, "optionalPeers": ["zod"] }, "sha512-jTNFruwe3O/ruJeppI/quoOUxG7NA6blG3ZyQj3lei4+NnJo7bi3eIRWqlVpRlu/mbzbFXeJSBuYQWF6pzGKww=="],
@@ -2828,7 +2789,7 @@
"onetime": ["onetime@6.0.0", "", { "dependencies": { "mimic-fn": "^4.0.0" } }, "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ=="],
- "oniguruma-to-es": ["oniguruma-to-es@3.1.0", "", { "dependencies": { "emoji-regex-xs": "^1.0.0", "regex": "^6.0.1", "regex-recursion": "^6.0.2" } }, "sha512-BJ3Jy22YlgejHSO7Fvmz1kKazlaPmRSUH+4adTDUS/dKQ4wLxI+gALZ8updbaux7/m7fIlpgOZ5fp/Inq5jUAw=="],
+ "oniguruma-to-es": ["oniguruma-to-es@3.1.1", "", { "dependencies": { "emoji-regex-xs": "^1.0.0", "regex": "^6.0.1", "regex-recursion": "^6.0.2" } }, "sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ=="],
"open": ["open@10.1.0", "", { "dependencies": { "default-browser": "^5.2.1", "define-lazy-prop": "^3.0.0", "is-inside-container": "^1.0.0", "is-wsl": "^3.1.0" } }, "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw=="],
@@ -2852,7 +2813,7 @@
"package-json-from-dist": ["package-json-from-dist@1.0.1", "", {}, "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw=="],
- "package-manager-detector": ["package-manager-detector@0.2.9", "", {}, "sha512-+vYvA/Y31l8Zk8dwxHhL3JfTuHPm6tlxM2A3GeQyl7ovYnSp1+mzAxClxaOr0qO1TtPxbQxetI7v5XqKLJZk7Q=="],
+ "package-manager-detector": ["package-manager-detector@0.2.11", "", { "dependencies": { "quansync": "^0.2.7" } }, "sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ=="],
"parse-entities": ["parse-entities@4.0.2", "", { "dependencies": { "@types/unist": "^2.0.0", "character-entities-legacy": "^3.0.0", "character-reference-invalid": "^2.0.0", "decode-named-character-reference": "^1.0.0", "is-alphanumerical": "^2.0.0", "is-decimal": "^2.0.0", "is-hexadecimal": "^2.0.0" } }, "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw=="],
@@ -2882,7 +2843,7 @@
"path-type": ["path-type@4.0.0", "", {}, "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="],
- "pathe": ["pathe@2.0.2", "", {}, "sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w=="],
+ "pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="],
"peberminta": ["peberminta@0.9.0", "", {}, "sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ=="],
@@ -2890,7 +2851,7 @@
"pg-numeric": ["pg-numeric@1.0.2", "", {}, "sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw=="],
- "pg-protocol": ["pg-protocol@1.7.0", "", {}, "sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ=="],
+ "pg-protocol": ["pg-protocol@1.8.0", "", {}, "sha512-jvuYlEkL03NRvOoyoRktBK7+qU5kOvlAwvmrH8sr3wbLrOdVWsRxQfz8mMy9sZFsqJ1hEWNfdWKI4SAmoL+j7g=="],
"pg-types": ["pg-types@4.0.2", "", { "dependencies": { "pg-int8": "1.0.1", "pg-numeric": "1.0.2", "postgres-array": "~3.0.1", "postgres-bytea": "~3.0.0", "postgres-date": "~2.1.0", "postgres-interval": "^3.0.0", "postgres-range": "^1.1.1" } }, "sha512-cRL3JpS3lKMGsKaWndugWQoLOCoP+Cic8oseVcbr0qhPzYD5DWXK+RZ9LY9wxRf7RQia4SCwQlXk0q6FCPrVng=="],
@@ -2912,9 +2873,7 @@
"pngjs": ["pngjs@3.4.0", "", {}, "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w=="],
- "possible-typed-array-names": ["possible-typed-array-names@1.0.0", "", {}, "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q=="],
-
- "postcss": ["postcss@8.5.1", "", { "dependencies": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ=="],
+ "postcss": ["postcss@8.5.3", "", { "dependencies": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A=="],
"postcss-import": ["postcss-import@15.1.0", "", { "dependencies": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", "resolve": "^1.1.7" }, "peerDependencies": { "postcss": "^8.0.0" } }, "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew=="],
@@ -2930,7 +2889,7 @@
"postgres": ["postgres@3.4.5", "", {}, "sha512-cDWgoah1Gez9rN3H4165peY9qfpEo+SA61oQv65O3cRUE1pOEoJWwddwcqKE8XZYjbblOJlYDlLV4h67HrEVDg=="],
- "postgres-array": ["postgres-array@3.0.2", "", {}, "sha512-6faShkdFugNQCLwucjPcY5ARoW1SlbnrZjmGl0IrrqewpvxvhSLHimCVzqeuULCbG0fQv7Dtk1yDbG3xv7Veog=="],
+ "postgres-array": ["postgres-array@3.0.4", "", {}, "sha512-nAUSGfSDGOaOAEGwqsRY27GPOea7CNipJPOA7lPbdEpx5Kg3qzdP0AaWC5MlhTWV9s4hFX39nomVZ+C4tnGOJQ=="],
"postgres-bytea": ["postgres-bytea@3.0.0", "", { "dependencies": { "obuf": "~1.1.2" } }, "sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw=="],
@@ -2964,7 +2923,7 @@
"properties": ["properties@1.2.1", "", {}, "sha512-qYNxyMj1JeW54i/EWEFsM1cVwxJbtgPp8+0Wg9XjNaK6VE/c4oRi6PNu5p7w1mNXEIQIjV5Wwn8v8Gz82/QzdQ=="],
- "property-information": ["property-information@6.5.0", "", {}, "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig=="],
+ "property-information": ["property-information@7.0.0", "", {}, "sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg=="],
"proto-list": ["proto-list@1.2.4", "", {}, "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA=="],
@@ -2980,6 +2939,8 @@
"qrcode-terminal": ["qrcode-terminal@0.11.0", "", { "bin": { "qrcode-terminal": "./bin/qrcode-terminal.js" } }, "sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ=="],
+ "quansync": ["quansync@0.2.8", "", {}, "sha512-4+saucphJMazjt7iOM27mbFCk+D9dd/zmgMDCzRZ8MEoBfYp7lAvoN38et/phRQF6wOPMy/OROBGgoWeSKyluA=="],
+
"query-string": ["query-string@7.1.3", "", { "dependencies": { "decode-uri-component": "^0.2.2", "filter-obj": "^1.1.0", "split-on-first": "^1.0.0", "strict-uri-encode": "^2.0.0" } }, "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg=="],
"querystringify": ["querystringify@2.2.0", "", {}, "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="],
@@ -3018,7 +2979,7 @@
"react-is": ["react-is@18.3.1", "", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="],
- "react-medium-image-zoom": ["react-medium-image-zoom@5.2.13", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-KcBL4OsoUQJgIFh6vQgt/6sRGqDy6bQBcsbhGD2tsy4B5Pw3dWrboocVOyIm76RRALEZ6Qwp3EDvIvfEv0m5sg=="],
+ "react-medium-image-zoom": ["react-medium-image-zoom@5.2.14", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-nfTVYcAUnBzXQpPDcZL+cG/e6UceYUIG+zDcnemL7jtAqbJjVVkA85RgneGtJeni12dTyiRPZVM6Szkmwd/o8w=="],
"react-native": ["react-native@0.76.5", "", { "dependencies": { "@jest/create-cache-key-function": "^29.6.3", "@react-native/assets-registry": "0.76.5", "@react-native/codegen": "0.76.5", "@react-native/community-cli-plugin": "0.76.5", "@react-native/gradle-plugin": "0.76.5", "@react-native/js-polyfills": "0.76.5", "@react-native/normalize-colors": "0.76.5", "@react-native/virtualized-lists": "0.76.5", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", "babel-jest": "^29.7.0", "babel-plugin-syntax-hermes-parser": "^0.23.1", "base64-js": "^1.5.1", "chalk": "^4.0.0", "commander": "^12.0.0", "event-target-shim": "^5.0.1", "flow-enums-runtime": "^0.0.6", "glob": "^7.1.1", "invariant": "^2.2.4", "jest-environment-node": "^29.6.3", "jsc-android": "^250231.0.0", "memoize-one": "^5.0.0", "metro-runtime": "^0.81.0", "metro-source-map": "^0.81.0", "mkdirp": "^0.5.1", "nullthrows": "^1.1.1", "pretty-format": "^29.7.0", "promise": "^8.3.0", "react-devtools-core": "^5.3.1", "react-refresh": "^0.14.0", "regenerator-runtime": "^0.13.2", "scheduler": "0.24.0-canary-efb381bbf-20230505", "semver": "^7.1.3", "stacktrace-parser": "^0.1.10", "whatwg-fetch": "^3.0.0", "ws": "^6.2.3", "yargs": "^17.6.2" }, "peerDependencies": { "@types/react": "^18.2.6", "react": "^18.2.0" }, "optionalPeers": ["@types/react"], "bin": { "react-native": "cli.js" } }, "sha512-op2p2kB+lqMF1D7AdX4+wvaR0OPFbvWYs+VBE7bwsb99Cn9xISrLRLAgFflZedQsa5HvnOGrULhtnmItbIKVVw=="],
@@ -3066,11 +3027,11 @@
"readable-stream": ["readable-stream@4.7.0", "", { "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", "events": "^3.3.0", "process": "^0.11.10", "string_decoder": "^1.3.0" } }, "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg=="],
- "readdirp": ["readdirp@4.1.1", "", {}, "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw=="],
+ "readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="],
"readline": ["readline@1.3.0", "", {}, "sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg=="],
- "recast": ["recast@0.21.5", "", { "dependencies": { "ast-types": "0.15.2", "esprima": "~4.0.0", "source-map": "~0.6.1", "tslib": "^2.0.1" } }, "sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg=="],
+ "recast": ["recast@0.20.5", "", { "dependencies": { "ast-types": "0.14.2", "esprima": "~4.0.0", "source-map": "~0.6.1", "tslib": "^2.0.1" } }, "sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ=="],
"recharts": ["recharts@2.15.1", "", { "dependencies": { "clsx": "^2.0.0", "eventemitter3": "^4.0.1", "lodash": "^4.17.21", "react-is": "^18.3.1", "react-smooth": "^4.0.4", "recharts-scale": "^0.4.4", "tiny-invariant": "^1.3.1", "victory-vendor": "^36.6.8" }, "peerDependencies": { "react": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-v8PUTUlyiDe56qUj82w/EDVuzEFXwEHp9/xOowGAZwfLjB9uAy3GllQVIYMWF6nU+qibx85WF75zD7AjqoT54Q=="],
@@ -3110,7 +3071,7 @@
"remark": ["remark@15.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "remark-parse": "^11.0.0", "remark-stringify": "^11.0.0", "unified": "^11.0.0" } }, "sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A=="],
- "remark-gfm": ["remark-gfm@4.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-gfm": "^3.0.0", "micromark-extension-gfm": "^3.0.0", "remark-parse": "^11.0.0", "remark-stringify": "^11.0.0", "unified": "^11.0.0" } }, "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA=="],
+ "remark-gfm": ["remark-gfm@4.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-gfm": "^3.0.0", "micromark-extension-gfm": "^3.0.0", "remark-parse": "^11.0.0", "remark-stringify": "^11.0.0", "unified": "^11.0.0" } }, "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg=="],
"remark-mdx": ["remark-mdx@3.1.0", "", { "dependencies": { "mdast-util-mdx": "^3.0.0", "micromark-extension-mdxjs": "^3.0.0" } }, "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA=="],
@@ -3126,7 +3087,7 @@
"require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="],
- "require-in-the-middle": ["require-in-the-middle@7.5.0", "", { "dependencies": { "debug": "^4.3.5", "module-details-from-path": "^1.0.3", "resolve": "^1.22.8" } }, "sha512-/Tvpny/RVVicqlYTKwt/GtpZRsPG1CmJNhxVKGz+Sy/4MONfXCVNK69MFgGKdUt0/324q3ClI2dICcPgISrC8g=="],
+ "require-in-the-middle": ["require-in-the-middle@7.5.2", "", { "dependencies": { "debug": "^4.3.5", "module-details-from-path": "^1.0.3", "resolve": "^1.22.8" } }, "sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ=="],
"requireg": ["requireg@0.2.2", "", { "dependencies": { "nested-error-stacks": "~2.0.1", "rc": "~1.2.7", "resolve": "~1.7.1" } }, "sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg=="],
@@ -3148,11 +3109,11 @@
"restore-cursor": ["restore-cursor@3.1.0", "", { "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA=="],
- "reusify": ["reusify@1.0.4", "", {}, "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="],
+ "reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="],
- "rimraf": ["rimraf@3.0.2", "", { "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" } }, "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA=="],
+ "rimraf": ["rimraf@2.6.3", "", { "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "./bin.js" } }, "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA=="],
- "rollup": ["rollup@4.32.1", "", { "dependencies": { "@types/estree": "1.0.6" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.32.1", "@rollup/rollup-android-arm64": "4.32.1", "@rollup/rollup-darwin-arm64": "4.32.1", "@rollup/rollup-darwin-x64": "4.32.1", "@rollup/rollup-freebsd-arm64": "4.32.1", "@rollup/rollup-freebsd-x64": "4.32.1", "@rollup/rollup-linux-arm-gnueabihf": "4.32.1", "@rollup/rollup-linux-arm-musleabihf": "4.32.1", "@rollup/rollup-linux-arm64-gnu": "4.32.1", "@rollup/rollup-linux-arm64-musl": "4.32.1", "@rollup/rollup-linux-loongarch64-gnu": "4.32.1", "@rollup/rollup-linux-powerpc64le-gnu": "4.32.1", "@rollup/rollup-linux-riscv64-gnu": "4.32.1", "@rollup/rollup-linux-s390x-gnu": "4.32.1", "@rollup/rollup-linux-x64-gnu": "4.32.1", "@rollup/rollup-linux-x64-musl": "4.32.1", "@rollup/rollup-win32-arm64-msvc": "4.32.1", "@rollup/rollup-win32-ia32-msvc": "4.32.1", "@rollup/rollup-win32-x64-msvc": "4.32.1", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-z+aeEsOeEa3mEbS1Tjl6sAZ8NE3+AalQz1RJGj81M+fizusbdDMoEJwdJNHfaB40Scr4qNu+welOfes7maKonA=="],
+ "rollup": ["rollup@4.35.0", "", { "dependencies": { "@types/estree": "1.0.6" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.35.0", "@rollup/rollup-android-arm64": "4.35.0", "@rollup/rollup-darwin-arm64": "4.35.0", "@rollup/rollup-darwin-x64": "4.35.0", "@rollup/rollup-freebsd-arm64": "4.35.0", "@rollup/rollup-freebsd-x64": "4.35.0", "@rollup/rollup-linux-arm-gnueabihf": "4.35.0", "@rollup/rollup-linux-arm-musleabihf": "4.35.0", "@rollup/rollup-linux-arm64-gnu": "4.35.0", "@rollup/rollup-linux-arm64-musl": "4.35.0", "@rollup/rollup-linux-loongarch64-gnu": "4.35.0", "@rollup/rollup-linux-powerpc64le-gnu": "4.35.0", "@rollup/rollup-linux-riscv64-gnu": "4.35.0", "@rollup/rollup-linux-s390x-gnu": "4.35.0", "@rollup/rollup-linux-x64-gnu": "4.35.0", "@rollup/rollup-linux-x64-musl": "4.35.0", "@rollup/rollup-win32-arm64-msvc": "4.35.0", "@rollup/rollup-win32-ia32-msvc": "4.35.0", "@rollup/rollup-win32-x64-msvc": "4.35.0", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-kg6oI4g+vc41vePJyO6dHt/yl0Rz3Thv0kJeVQ3D1kS3E5XSuKbPc29G4IpT/Kv1KQwgHVcN+HtyS+HYLNSvQg=="],
"rrweb-cssom": ["rrweb-cssom@0.8.0", "", {}, "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw=="],
@@ -3166,8 +3127,6 @@
"safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="],
- "safe-regex-test": ["safe-regex-test@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-regex": "^1.2.1" } }, "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw=="],
-
"safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="],
"sax": ["sax@1.4.1", "", {}, "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg=="],
@@ -3188,7 +3147,7 @@
"selfsigned": ["selfsigned@2.4.1", "", { "dependencies": { "@types/node-forge": "^1.3.0", "node-forge": "^1" } }, "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q=="],
- "semver": ["semver@7.7.0", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ=="],
+ "semver": ["semver@7.7.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA=="],
"send": ["send@0.19.1", "", { "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", "on-finished": "2.4.1", "range-parser": "~1.2.1", "statuses": "2.0.1" } }, "sha512-p4rRk4f23ynFEfcD9LA0xRYngj+IyGiEYyqqOak8kaN0TvNmuxC2dcVeBn62GpCeR2CpWqyHCNScTP91QbAVFg=="],
@@ -3200,10 +3159,6 @@
"server-only": ["server-only@0.0.1", "", {}, "sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA=="],
- "set-cookie-parser": ["set-cookie-parser@2.7.1", "", {}, "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ=="],
-
- "set-function-length": ["set-function-length@1.2.2", "", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2" } }, "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg=="],
-
"setimmediate": ["setimmediate@1.0.5", "", {}, "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="],
"setprototypeof": ["setprototypeof@1.2.0", "", {}, "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="],
@@ -3222,7 +3177,7 @@
"shell-quote": ["shell-quote@1.8.2", "", {}, "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA=="],
- "shiki": ["shiki@2.3.1", "", { "dependencies": { "@shikijs/core": "2.3.1", "@shikijs/engine-javascript": "2.3.1", "@shikijs/engine-oniguruma": "2.3.1", "@shikijs/langs": "2.3.1", "@shikijs/themes": "2.3.1", "@shikijs/types": "2.3.1", "@shikijs/vscode-textmate": "^10.0.1", "@types/hast": "^3.0.4" } }, "sha512-bD1XuVAyZBVxHiPlO/m2nM2F5g8G5MwSZHNYx+ArpcOW52+fCN6peGP5gG61O0gZpzUVbImeR3ar8cF+Z5WM8g=="],
+ "shiki": ["shiki@2.5.0", "", { "dependencies": { "@shikijs/core": "2.5.0", "@shikijs/engine-javascript": "2.5.0", "@shikijs/engine-oniguruma": "2.5.0", "@shikijs/langs": "2.5.0", "@shikijs/themes": "2.5.0", "@shikijs/types": "2.5.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ=="],
"shimmer": ["shimmer@1.2.1", "", {}, "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw=="],
@@ -3280,7 +3235,7 @@
"stacktrace-js": ["stacktrace-js@2.0.2", "", { "dependencies": { "error-stack-parser": "^2.0.6", "stack-generator": "^2.0.5", "stacktrace-gps": "^3.0.4" } }, "sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg=="],
- "stacktrace-parser": ["stacktrace-parser@0.1.10", "", { "dependencies": { "type-fest": "^0.7.1" } }, "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg=="],
+ "stacktrace-parser": ["stacktrace-parser@0.1.11", "", { "dependencies": { "type-fest": "^0.7.1" } }, "sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg=="],
"standardwebhooks": ["standardwebhooks@1.0.0", "", { "dependencies": { "@stablelib/base64": "^1.0.0", "fast-sha256": "^1.3.0" } }, "sha512-BbHGOQK9olHPMvQNHWul6MYlrRTAOKn03rOe4A8O3CLWhNf4YHBqq2HJKKC+sfqpxiBY52pNeesD6jIiLDz8jg=="],
@@ -3288,8 +3243,6 @@
"stream-buffers": ["stream-buffers@2.2.0", "", {}, "sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg=="],
- "stream-slice": ["stream-slice@0.1.2", "", {}, "sha512-QzQxpoacatkreL6jsxnVb7X5R/pGw9OUv2qWTYWnmLpg4NdN31snPy/f3TdQE1ZUXaThRvj1Zw4/OGg0ZkaLMA=="],
-
"streamsearch": ["streamsearch@1.1.0", "", {}, "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg=="],
"strict-uri-encode": ["strict-uri-encode@2.0.0", "", {}, "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ=="],
@@ -3318,7 +3271,7 @@
"strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="],
- "strnum": ["strnum@1.0.5", "", {}, "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA=="],
+ "strnum": ["strnum@1.1.2", "", {}, "sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA=="],
"structured-headers": ["structured-headers@0.4.1", "", {}, "sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg=="],
@@ -3342,7 +3295,7 @@
"supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="],
- "swr": ["swr@2.3.0", "", { "dependencies": { "dequal": "^2.0.3", "use-sync-external-store": "^1.4.0" }, "peerDependencies": { "react": "^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-NyZ76wA4yElZWBHzSgEJc28a0u6QZvhb6w0azeL2k7+Q1gAzVK+IqQYXhVOC/mzi+HZIozrZvBVeSeOZNR2bqA=="],
+ "swr": ["swr@2.3.3", "", { "dependencies": { "dequal": "^2.0.3", "use-sync-external-store": "^1.4.0" }, "peerDependencies": { "react": "^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-dshNvs3ExOqtZ6kJBaAsabhPdHyeY4P2cKwRCniDVifBMoG/SVI7tfLWqPXriVspf2Rg4tPzXJTnwaihIeFw2A=="],
"symbol-tree": ["symbol-tree@3.2.4", "", {}, "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="],
@@ -3368,9 +3321,9 @@
"terminal-link": ["terminal-link@3.0.0", "", { "dependencies": { "ansi-escapes": "^5.0.0", "supports-hyperlinks": "^2.2.0" } }, "sha512-flFL3m4wuixmf6IfhFJd1YPiLiMuxEc8uHRM1buzIeZPm22Au2pDqBJQgdo7n1WfPU1ONFGv7YDwpFBmHGF6lg=="],
- "terser": ["terser@5.37.0", "", { "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, "bin": { "terser": "bin/terser" } }, "sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA=="],
+ "terser": ["terser@5.39.0", "", { "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, "bin": { "terser": "bin/terser" } }, "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw=="],
- "terser-webpack-plugin": ["terser-webpack-plugin@5.3.11", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", "serialize-javascript": "^6.0.2", "terser": "^5.31.1" }, "peerDependencies": { "webpack": "^5.1.0" } }, "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ=="],
+ "terser-webpack-plugin": ["terser-webpack-plugin@5.3.14", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", "serialize-javascript": "^6.0.2", "terser": "^5.31.1" }, "peerDependencies": { "webpack": "^5.1.0" } }, "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw=="],
"test-exclude": ["test-exclude@6.0.0", "", { "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", "minimatch": "^3.0.4" } }, "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w=="],
@@ -3388,11 +3341,11 @@
"tinyexec": ["tinyexec@0.3.2", "", {}, "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA=="],
- "tinyglobby": ["tinyglobby@0.2.10", "", { "dependencies": { "fdir": "^6.4.2", "picomatch": "^4.0.2" } }, "sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew=="],
+ "tinyglobby": ["tinyglobby@0.2.12", "", { "dependencies": { "fdir": "^6.4.3", "picomatch": "^4.0.2" } }, "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww=="],
- "tldts": ["tldts@6.1.75", "", { "dependencies": { "tldts-core": "^6.1.75" }, "bin": { "tldts": "bin/cli.js" } }, "sha512-+lFzEXhpl7JXgWYaXcB6DqTYXbUArvrWAE/5ioq/X3CdWLbDjpPP4XTrQBmEJ91y3xbe4Fkw7Lxv4P3GWeJaNg=="],
+ "tldts": ["tldts@6.1.84", "", { "dependencies": { "tldts-core": "^6.1.84" }, "bin": { "tldts": "bin/cli.js" } }, "sha512-aRGIbCIF3teodtUFAYSdQONVmDRy21REM3o6JnqWn5ZkQBJJ4gHxhw6OfwQ+WkSAi3ASamrS4N4nyazWx6uTYg=="],
- "tldts-core": ["tldts-core@6.1.75", "", {}, "sha512-AOvV5YYIAFFBfransBzSTyztkc3IMfz5Eq3YluaRiEu55nn43Fzaufx70UqEKYr8BoLCach4q8g/bg6e5+/aFw=="],
+ "tldts-core": ["tldts-core@6.1.84", "", {}, "sha512-NaQa1W76W2aCGjXybvnMYzGSM4x8fvG2AN/pla7qxcg0ZHbooOPhA8kctmOZUDfZyhDL27OGNbwAeig8P4p1vg=="],
"tmp": ["tmp@0.0.33", "", { "dependencies": { "os-tmpdir": "~1.0.2" } }, "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw=="],
@@ -3404,7 +3357,7 @@
"toidentifier": ["toidentifier@1.0.1", "", {}, "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="],
- "tough-cookie": ["tough-cookie@5.1.0", "", { "dependencies": { "tldts": "^6.1.32" } }, "sha512-rvZUv+7MoBYTiDmFPBrhL7Ujx9Sk+q9wwm22x8c8T5IJaR+Wsyc7TNxbVxo84kZoRJZZMazowFLqpankBEQrGg=="],
+ "tough-cookie": ["tough-cookie@5.1.2", "", { "dependencies": { "tldts": "^6.1.32" } }, "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A=="],
"tr46": ["tr46@5.0.0", "", { "dependencies": { "punycode": "^2.3.1" } }, "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g=="],
@@ -3422,7 +3375,7 @@
"tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
- "tsup": ["tsup@8.3.6", "", { "dependencies": { "bundle-require": "^5.0.0", "cac": "^6.7.14", "chokidar": "^4.0.1", "consola": "^3.2.3", "debug": "^4.3.7", "esbuild": "^0.24.0", "joycon": "^3.1.1", "picocolors": "^1.1.1", "postcss-load-config": "^6.0.1", "resolve-from": "^5.0.0", "rollup": "^4.24.0", "source-map": "0.8.0-beta.0", "sucrase": "^3.35.0", "tinyexec": "^0.3.1", "tinyglobby": "^0.2.9", "tree-kill": "^1.2.2" }, "peerDependencies": { "@microsoft/api-extractor": "^7.36.0", "@swc/core": "^1", "postcss": "^8.4.12", "typescript": ">=4.5.0" }, "optionalPeers": ["@microsoft/api-extractor", "@swc/core", "postcss", "typescript"], "bin": { "tsup": "dist/cli-default.js", "tsup-node": "dist/cli-node.js" } }, "sha512-XkVtlDV/58S9Ye0JxUUTcrQk4S+EqlOHKzg6Roa62rdjL1nGWNUstG0xgI4vanHdfIpjP448J8vlN0oK6XOJ5g=="],
+ "tsup": ["tsup@8.4.0", "", { "dependencies": { "bundle-require": "^5.1.0", "cac": "^6.7.14", "chokidar": "^4.0.3", "consola": "^3.4.0", "debug": "^4.4.0", "esbuild": "^0.25.0", "joycon": "^3.1.1", "picocolors": "^1.1.1", "postcss-load-config": "^6.0.1", "resolve-from": "^5.0.0", "rollup": "^4.34.8", "source-map": "0.8.0-beta.0", "sucrase": "^3.35.0", "tinyexec": "^0.3.2", "tinyglobby": "^0.2.11", "tree-kill": "^1.2.2" }, "peerDependencies": { "@microsoft/api-extractor": "^7.36.0", "@swc/core": "^1", "postcss": "^8.4.12", "typescript": ">=4.5.0" }, "optionalPeers": ["@microsoft/api-extractor", "@swc/core", "postcss", "typescript"], "bin": { "tsup": "dist/cli-default.js", "tsup-node": "dist/cli-node.js" } }, "sha512-b+eZbPCjz10fRryaAA7C8xlIHnf8VnsaRqydheLIqwG/Mcpfk8Z5zp3HayX7GaTygkigHl5cBUs+IhcySiIexQ=="],
"turbo": ["turbo@2.4.0", "", { "optionalDependencies": { "turbo-darwin-64": "2.4.0", "turbo-darwin-arm64": "2.4.0", "turbo-linux-64": "2.4.0", "turbo-linux-arm64": "2.4.0", "turbo-windows-64": "2.4.0", "turbo-windows-arm64": "2.4.0" }, "bin": { "turbo": "bin/turbo" } }, "sha512-ah/yQp2oMif1X0u7fBJ4MLMygnkbKnW5O8SG6pJvloPCpHfFoZctkSVQiJ3VnvNTq71V2JJIdwmOeu1i34OQyg=="],
@@ -3434,8 +3387,6 @@
"turbo-linux-arm64": ["turbo-linux-arm64@2.4.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-c3En99xMguc/Pdtk/rZP53LnDdw0W6lgUc04he8r8F+UHYSNvgzHh0WGXXmCC6lGbBH72kPhhGx4bAwyvi7dug=="],
- "turbo-stream": ["turbo-stream@2.4.0", "", {}, "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g=="],
-
"turbo-windows-64": ["turbo-windows-64@2.4.0", "", { "os": "win32", "cpu": "x64" }, "sha512-/gOORuOlyA8JDPzyA16CD3wvyRcuBFePa1URAnFUof9hXQmKxK0VvSDO79cYZFsJSchCKNJpckUS0gYxGsWwoA=="],
"turbo-windows-arm64": ["turbo-windows-arm64@2.4.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-/DJIdTFijEMM5LSiEpSfarDOMOlYqJV+EzmppqWtHqDsOLF4hbbIBH9sJR6OOp5dURAu5eURBYdmvBRz9Lo6TA=="],
@@ -3444,7 +3395,7 @@
"type-fest": ["type-fest@0.7.1", "", {}, "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg=="],
- "typescript": ["typescript@5.7.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw=="],
+ "typescript": ["typescript@5.8.2", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ=="],
"ua-parser-js": ["ua-parser-js@1.0.40", "", { "bin": { "ua-parser-js": "script/cli.js" } }, "sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew=="],
@@ -3452,7 +3403,9 @@
"ulid": ["ulid@2.3.0", "", { "bin": { "ulid": "./bin/cli.js" } }, "sha512-keqHubrlpvT6G2wH0OEfSW4mquYRcbe/J8NMmveoQOjUqmo+hXtO+ORCpWhdbZ7k72UtY61BL7haGxW6enBnjw=="],
- "undici": ["undici@6.21.1", "", {}, "sha512-q/1rj5D0/zayJB2FraXdaWxbhWiNKDvu8naDT2dl1yTlvJp4BLtOcp2a5BvgGNQpYYJzau7tf1WgKv3b+7mqpQ=="],
+ "uncrypto": ["uncrypto@0.1.3", "", {}, "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q=="],
+
+ "undici": ["undici@6.21.2", "", {}, "sha512-uROZWze0R0itiAKVPsYhFov9LxrPMHLMEQFszeI2gCN6bnIIZ8twzBCJcN2LJrBBLfrP0t1FW0g+JmKVl8Vk1g=="],
"undici-types": ["undici-types@6.20.0", "", {}, "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg=="],
@@ -3494,15 +3447,13 @@
"unpipe": ["unpipe@1.0.0", "", {}, "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="],
- "update-browserslist-db": ["update-browserslist-db@1.1.2", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg=="],
-
- "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="],
+ "update-browserslist-db": ["update-browserslist-db@1.1.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw=="],
"url-parse": ["url-parse@1.5.10", "", { "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" } }, "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ=="],
"use-callback-ref": ["use-callback-ref@1.3.3", "", { "dependencies": { "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg=="],
- "use-intl": ["use-intl@3.26.3", "", { "dependencies": { "@formatjs/fast-memoize": "^2.2.0", "intl-messageformat": "^10.5.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0" } }, "sha512-yY0a2YseO17cKwHA9M6fcpiEJ2Uo81DEU0NOUxNTp6lJVNOuI6nULANPVVht6IFdrYFtlsMmMoc97+Eq9/Tnng=="],
+ "use-intl": ["use-intl@3.26.5", "", { "dependencies": { "@formatjs/fast-memoize": "^2.2.0", "intl-messageformat": "^10.5.14" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0" } }, "sha512-OdsJnC/znPvHCHLQH/duvQNXnP1w0hPfS+tkSi3mAbfjYBGh4JnyfdwkQBfIVf7t8gs9eSX/CntxUMvtKdG2MQ=="],
"use-latest-callback": ["use-latest-callback@0.2.3", "", { "peerDependencies": { "react": ">=16.8" } }, "sha512-7vI3fBuyRcP91pazVboc4qu+6ZqM8izPWX9k7cRnT8hbD5svslcknsh3S9BUhaK11OmgTV4oWZZVSeQAiV53SQ=="],
@@ -3510,8 +3461,6 @@
"use-sync-external-store": ["use-sync-external-store@1.4.0", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw=="],
- "util": ["util@0.12.5", "", { "dependencies": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", "is-generator-function": "^1.0.7", "is-typed-array": "^1.1.3", "which-typed-array": "^1.1.2" } }, "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA=="],
-
"util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="],
"utils-merge": ["utils-merge@1.0.1", "", {}, "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="],
@@ -3544,13 +3493,11 @@
"wcwidth": ["wcwidth@1.0.1", "", { "dependencies": { "defaults": "^1.0.3" } }, "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg=="],
- "web-encoding": ["web-encoding@1.1.5", "", { "dependencies": { "util": "^0.12.3" }, "optionalDependencies": { "@zxing/text-encoding": "0.9.0" } }, "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA=="],
-
"web-streams-polyfill": ["web-streams-polyfill@3.3.3", "", {}, "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw=="],
"webidl-conversions": ["webidl-conversions@7.0.0", "", {}, "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="],
- "webpack": ["webpack@5.97.1", "", { "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.6", "@webassemblyjs/ast": "^1.14.1", "@webassemblyjs/wasm-edit": "^1.14.1", "@webassemblyjs/wasm-parser": "^1.14.1", "acorn": "^8.14.0", "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", "schema-utils": "^3.2.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.3.10", "watchpack": "^2.4.1", "webpack-sources": "^3.2.3" }, "bin": { "webpack": "bin/webpack.js" } }, "sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg=="],
+ "webpack": ["webpack@5.98.0", "", { "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.6", "@webassemblyjs/ast": "^1.14.1", "@webassemblyjs/wasm-edit": "^1.14.1", "@webassemblyjs/wasm-parser": "^1.14.1", "acorn": "^8.14.0", "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", "schema-utils": "^4.3.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.3.11", "watchpack": "^2.4.1", "webpack-sources": "^3.2.3" }, "bin": { "webpack": "bin/webpack.js" } }, "sha512-UFynvx+gM44Gv9qFgj0acCQK2VE1CtdfwFdimkapco3hlPCJ/zeq73n2yVKimVbtm+TnApIugGhLJnkU6gjYXA=="],
"webpack-sources": ["webpack-sources@3.2.3", "", {}, "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w=="],
@@ -3560,7 +3507,7 @@
"whatwg-mimetype": ["whatwg-mimetype@4.0.0", "", {}, "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg=="],
- "whatwg-url": ["whatwg-url@14.1.0", "", { "dependencies": { "tr46": "^5.0.0", "webidl-conversions": "^7.0.0" } }, "sha512-jlf/foYIKywAt3x/XWKZ/3rz8OSJPiWktjmk891alJUEjiVxKX9LEO92qH3hv4aJ0mN3MWPvGMCy8jQi95xK4w=="],
+ "whatwg-url": ["whatwg-url@14.1.1", "", { "dependencies": { "tr46": "^5.0.0", "webidl-conversions": "^7.0.0" } }, "sha512-mDGf9diDad/giZ/Sm9Xi2YcyzaFpbdLpJPr+E9fSkyQ7KpQD4SdFcugkRQYzhmfI4KeV4Qpnn2sKPdo+kmsgRQ=="],
"whatwg-url-without-unicode": ["whatwg-url-without-unicode@8.0.0-3", "", { "dependencies": { "buffer": "^5.4.3", "punycode": "^2.1.1", "webidl-conversions": "^5.0.0" } }, "sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig=="],
@@ -3568,9 +3515,7 @@
"which-pm": ["which-pm@3.0.1", "", { "dependencies": { "load-yaml-file": "^0.2.0" } }, "sha512-v2JrMq0waAI4ju1xU5x3blsxBBMgdgZve580iYMN5frDaLGjbA24fok7wKCsya8KLVO19Ju4XDc5+zTZCJkQfg=="],
- "which-typed-array": ["which-typed-array@1.1.18", "", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.3", "for-each": "^0.3.3", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" } }, "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA=="],
-
- "wonka": ["wonka@6.3.4", "", {}, "sha512-CjpbqNtBGNAeyNS/9W6q3kSkKE52+FjIj7AkFlLr11s/VWGUu6a2CdYSdGxocIhIVjaW/zchesBQUKPVU69Cqg=="],
+ "wonka": ["wonka@6.3.5", "", {}, "sha512-SSil+ecw6B4/Dm7Pf2sAshKQ5hWFvfyGlfPbEd6A14dOH6VDjrmbY86u6nZvy9omGwwIPFR8V41+of1EezgoUw=="],
"wordwrapjs": ["wordwrapjs@5.1.0", "", {}, "sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg=="],
@@ -3582,7 +3527,7 @@
"write-file-atomic": ["write-file-atomic@2.4.3", "", { "dependencies": { "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", "signal-exit": "^3.0.2" } }, "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ=="],
- "ws": ["ws@8.18.0", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw=="],
+ "ws": ["ws@8.18.1", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w=="],
"xcode": ["xcode@3.0.1", "", { "dependencies": { "simple-plist": "^1.1.0", "uuid": "^7.0.3" } }, "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA=="],
@@ -3612,11 +3557,11 @@
"yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="],
- "zod": ["zod@3.24.1", "", {}, "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A=="],
+ "zod": ["zod@3.24.2", "", {}, "sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ=="],
"zod-error": ["zod-error@1.5.0", "", { "dependencies": { "zod": "^3.20.2" } }, "sha512-zzopKZ/skI9iXpqCEPj+iLCKl9b88E43ehcU+sbRoHuwGd9F1IDVGQ70TyO6kmfiRL1g4IXkjsXK+g1gLYl4WQ=="],
- "zod-to-json-schema": ["zod-to-json-schema@3.24.1", "", { "peerDependencies": { "zod": "^3.24.1" } }, "sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w=="],
+ "zod-to-json-schema": ["zod-to-json-schema@3.24.3", "", { "peerDependencies": { "zod": "^3.24.1" } }, "sha512-HIAfWdYIt1sssHfYZFCXp4rU1w2r8hVVXYIlmoa0r0gABLs5di3RCqPU5DDROogVz1pAdYBaz7HK5n9pSUNs3A=="],
"zod-validation-error": ["zod-validation-error@1.5.0", "", { "peerDependencies": { "zod": "^3.18.0" } }, "sha512-/7eFkAI4qV0tcxMBB/3+d2c1P6jzzZYdYSlBuAklzMuCrJu5bzJfHS0yVAS87dRHVlhftd6RFJDIvv03JgkSbw=="],
@@ -3624,11 +3569,11 @@
"@asamuzakjp/css-color/lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="],
- "@babel/core/@babel/parser": ["@babel/parser@7.26.7", "", { "dependencies": { "@babel/types": "^7.26.7" }, "bin": "./bin/babel-parser.js" }, "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w=="],
+ "@babel/core/@babel/parser": ["@babel/parser@7.26.10", "", { "dependencies": { "@babel/types": "^7.26.10" }, "bin": "./bin/babel-parser.js" }, "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA=="],
"@babel/core/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="],
- "@babel/generator/@babel/parser": ["@babel/parser@7.26.7", "", { "dependencies": { "@babel/types": "^7.26.7" }, "bin": "./bin/babel-parser.js" }, "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w=="],
+ "@babel/generator/@babel/parser": ["@babel/parser@7.26.10", "", { "dependencies": { "@babel/types": "^7.26.10" }, "bin": "./bin/babel-parser.js" }, "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA=="],
"@babel/helper-compilation-targets/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="],
@@ -3642,15 +3587,13 @@
"@babel/preset-env/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="],
- "@babel/register/make-dir": ["make-dir@2.1.0", "", { "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" } }, "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA=="],
-
"@babel/runtime/regenerator-runtime": ["regenerator-runtime@0.14.1", "", {}, "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="],
- "@babel/template/@babel/parser": ["@babel/parser@7.26.7", "", { "dependencies": { "@babel/types": "^7.26.7" }, "bin": "./bin/babel-parser.js" }, "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w=="],
+ "@babel/template/@babel/parser": ["@babel/parser@7.26.10", "", { "dependencies": { "@babel/types": "^7.26.10" }, "bin": "./bin/babel-parser.js" }, "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA=="],
- "@babel/traverse/@babel/parser": ["@babel/parser@7.26.7", "", { "dependencies": { "@babel/types": "^7.26.7" }, "bin": "./bin/babel-parser.js" }, "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w=="],
+ "@babel/traverse/@babel/parser": ["@babel/parser@7.26.10", "", { "dependencies": { "@babel/types": "^7.26.10" }, "bin": "./bin/babel-parser.js" }, "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA=="],
- "@babel/traverse--for-generate-function-map/@babel/parser": ["@babel/parser@7.26.7", "", { "dependencies": { "@babel/types": "^7.26.7" }, "bin": "./bin/babel-parser.js" }, "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w=="],
+ "@babel/traverse--for-generate-function-map/@babel/parser": ["@babel/parser@7.26.10", "", { "dependencies": { "@babel/types": "^7.26.10" }, "bin": "./bin/babel-parser.js" }, "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA=="],
"@changesets/changelog-github/dotenv": ["dotenv@8.6.0", "", {}, "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g=="],
@@ -3660,7 +3603,7 @@
"@expo/cli/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
- "@expo/cli/form-data": ["form-data@3.0.2", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "mime-types": "^2.1.12" } }, "sha512-sJe+TQb2vIaIyO783qN6BlMYWMw3WBOHA1Ay2qxsnjuafEOQFJ2JakedOQirT6D5XPRxDvS7AHYyem9fTpb4LQ=="],
+ "@expo/cli/form-data": ["form-data@3.0.3", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "mime-types": "^2.1.35" } }, "sha512-q5YBMeWy6E2Un0nMGWMgI65MAKtaylxfNJGJxpGh45YDciZB4epbWpaAfImil6CPAPTYB4sh0URQNDRIZG5F2w=="],
"@expo/cli/fs-extra": ["fs-extra@8.1.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g=="],
@@ -3706,7 +3649,7 @@
"@expo/json-file/@babel/code-frame": ["@babel/code-frame@7.10.4", "", { "dependencies": { "@babel/highlight": "^7.10.4" } }, "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg=="],
- "@expo/metro-config/@babel/parser": ["@babel/parser@7.26.7", "", { "dependencies": { "@babel/types": "^7.26.7" }, "bin": "./bin/babel-parser.js" }, "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w=="],
+ "@expo/metro-config/@babel/parser": ["@babel/parser@7.26.10", "", { "dependencies": { "@babel/types": "^7.26.10" }, "bin": "./bin/babel-parser.js" }, "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA=="],
"@expo/metro-config/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
@@ -3740,6 +3683,8 @@
"@expo/xcpretty/js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="],
+ "@formatjs/ecma402-abstract/@formatjs/intl-localematcher": ["@formatjs/intl-localematcher@0.6.0", "", { "dependencies": { "tslib": "2" } }, "sha512-4rB4g+3hESy1bHSBG3tDFaMY2CH67iT7yne1e+0CLTsGLDcmoEWWpJjjpWVaYgYfYuohIRuo0E+N536gd2ZHZA=="],
+
"@isaacs/cliui/string-width": ["string-width@5.1.2", "", { "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" } }, "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA=="],
"@isaacs/cliui/strip-ansi": ["strip-ansi@7.1.0", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ=="],
@@ -3774,7 +3719,9 @@
"@languine/web/drizzle-orm": ["drizzle-orm@0.39.1", "", { "peerDependencies": { "@aws-sdk/client-rds-data": ">=3", "@cloudflare/workers-types": ">=4", "@electric-sql/pglite": ">=0.2.0", "@libsql/client": ">=0.10.0", "@libsql/client-wasm": ">=0.10.0", "@neondatabase/serverless": ">=0.10.0", "@op-engineering/op-sqlite": ">=2", "@opentelemetry/api": "^1.4.1", "@planetscale/database": ">=1", "@prisma/client": "*", "@tidbcloud/serverless": "*", "@types/better-sqlite3": "*", "@types/pg": "*", "@types/react": ">=18", "@types/sql.js": "*", "@vercel/postgres": ">=0.8.0", "@xata.io/client": "*", "better-sqlite3": ">=7", "bun-types": "*", "expo-sqlite": ">=14.0.0", "knex": "*", "kysely": "*", "mysql2": ">=2", "pg": ">=8", "postgres": ">=3", "react": ">=18", "sql.js": ">=1", "sqlite3": ">=5" }, "optionalPeers": ["@aws-sdk/client-rds-data", "@cloudflare/workers-types", "@electric-sql/pglite", "@libsql/client", "@libsql/client-wasm", "@neondatabase/serverless", "@op-engineering/op-sqlite", "@opentelemetry/api", "@planetscale/database", "@prisma/client", "@tidbcloud/serverless", "@types/better-sqlite3", "@types/pg", "@types/react", "@types/sql.js", "@vercel/postgres", "@xata.io/client", "better-sqlite3", "bun-types", "expo-sqlite", "knex", "kysely", "mysql2", "pg", "postgres", "react", "sql.js", "sqlite3"] }, "sha512-2bDHlzTY31IDmrYn8i+ZZrxK8IyBD4mPZ7JmZdVDQj2tpBZXs/gxB/1kK5pSvkjxPUMNOVsTnoGkSltgjuJwcA=="],
- "@languine/web/languine": ["languine@file:packages/cli", { "dependencies": { "@clack/prompts": "^0.10.0", "@trigger.dev/sdk": "3.3.13", "@trpc/client": "11.0.0-rc.700", "@trpc/server": "11.0.0-rc.700", "@types/xml2js": "^0.4.14", "chalk": "^5.4.1", "csv-parse": "^5.6.0", "csv-stringify": "^6.5.2", "dedent": "^1.5.3", "dotenv": "^16.4.7", "fast-glob": "^3.3.3", "fast-xml-parser": "^4.5.1", "gettext-parser": "^8.0.0", "jsdom": "^26.0.0", "json5": "^2.2.3", "jsonrepair": "^3.11.2", "open": "^10.1.0", "plist": "^3.1.0", "properties": "^1.2.1", "rambda": "^9.4.2", "simple-git": "^3.27.0", "superjson": "^2.2.2", "table-layout": "^4.1.1", "xliff": "^6.2.1", "xml2js": "^0.6.2", "yaml": "^2.7.0", "zod": "^3.24.1" }, "devDependencies": { "@types/gettext-parser": "^4.0.4", "@types/mdast": "^4.0.4", "@types/plist": "^3.0.5", "tsup": "^8.3.6", "typescript": "^5.7.3" }, "bin": "dist/index.js" }],
+ "@languine/web/languine": ["languine@file:packages/cli", { "dependencies": { "@clack/prompts": "^0.10.0", "@trigger.dev/sdk": "3.3.13", "@trpc/client": "11.0.0-rc.700", "@trpc/server": "11.0.0-rc.700", "@types/xml2js": "^0.4.14", "chalk": "^5.4.1", "csv-parse": "^5.6.0", "csv-stringify": "^6.5.2", "dedent": "^1.5.3", "dotenv": "^16.4.7", "fast-glob": "^3.3.3", "fast-xml-parser": "^4.5.1", "gettext-parser": "^8.0.0", "jscodeshift": "^0.15.1", "jsdom": "^26.0.0", "json2php": "^0.0.12", "json5": "^2.2.3", "jsonrepair": "^3.11.2", "open": "^10.1.0", "php-parser": "^3.1.5", "plist": "^3.1.0", "preferred-pm": "^4.1.1", "properties": "^1.2.1", "rambda": "^9.4.2", "simple-git": "^3.27.0", "superjson": "^2.2.2", "table-layout": "^4.1.1", "xliff": "^6.2.1", "xml2js": "^0.6.2", "yaml": "^2.7.0", "zod": "^3.24.1" }, "devDependencies": { "@types/gettext-parser": "^4.0.4", "@types/jscodeshift": "^0.11.11", "@types/mdast": "^4.0.4", "@types/plist": "^3.0.5", "tsup": "^8.3.6", "typescript": "^5.7.3" }, "bin": "dist/index.js" }],
+
+ "@languine/web/zod": ["zod@3.24.1", "", {}, "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A=="],
"@manypkg/find-root/@types/node": ["@types/node@12.20.55", "", {}, "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ=="],
@@ -3792,20 +3739,34 @@
"@next/mdx/source-map": ["source-map@0.7.4", "", {}, "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA=="],
- "@polar-sh/adapter-utils/@polar-sh/sdk": ["@polar-sh/sdk@0.21.3", "", { "dependencies": { "standardwebhooks": "^1.0.0" }, "peerDependencies": { "zod": ">= 3" } }, "sha512-ZdsZmO3T+cwRDpRKdbnXRKofrUFF4fibs9deD697BGbqoeBeRqR2KlMb8WkgMhG5qw6Q4voo6YLZ9AOxUgG5FQ=="],
+ "@polar-sh/adapter-utils/@polar-sh/sdk": ["@polar-sh/sdk@0.29.3", "", { "dependencies": { "standardwebhooks": "^1.0.0" }, "peerDependencies": { "@modelcontextprotocol/sdk": "^1.5.0", "zod": ">= 3" }, "optionalPeers": ["@modelcontextprotocol/sdk"], "bin": { "mcp": "bin/mcp-server.js" } }, "sha512-Tia7lAvp/8iULspCmO8ZzjbJlb06X3FAjk+fNp/fqRSmgrH1BC0Cy5q6qsEOX9lhsGZy0b+5AFJRUbYz4m1y3g=="],
+
+ "@polar-sh/nextjs/@polar-sh/sdk": ["@polar-sh/sdk@0.29.3", "", { "dependencies": { "standardwebhooks": "^1.0.0" }, "peerDependencies": { "@modelcontextprotocol/sdk": "^1.5.0", "zod": ">= 3" }, "optionalPeers": ["@modelcontextprotocol/sdk"], "bin": { "mcp": "bin/mcp-server.js" } }, "sha512-Tia7lAvp/8iULspCmO8ZzjbJlb06X3FAjk+fNp/fqRSmgrH1BC0Cy5q6qsEOX9lhsGZy0b+5AFJRUbYz4m1y3g=="],
+
+ "@radix-ui/react-navigation-menu/@radix-ui/react-collection": ["@radix-ui/react-collection@1.1.2", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", "@radix-ui/react-primitive": "2.0.2", "@radix-ui/react-slot": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-9z54IEKRxIa9VityapoEYMuByaG42iSy1ZXlY2KcuLSEtq8x4987/N6m15ppoMffgZX72gER2uHe1D9Y6Unlcw=="],
+
+ "@radix-ui/react-navigation-menu/@radix-ui/react-dismissable-layer": ["@radix-ui/react-dismissable-layer@1.1.5", "", { "dependencies": { "@radix-ui/primitive": "1.1.1", "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-primitive": "2.0.2", "@radix-ui/react-use-callback-ref": "1.1.0", "@radix-ui/react-use-escape-keydown": "1.1.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-E4TywXY6UsXNRhFrECa5HAvE5/4BFcGyfTyK36gP+pAW1ed7UTK4vKwdr53gAJYwqbfCWC6ATvJa3J3R/9+Qrg=="],
+
+ "@radix-ui/react-navigation-menu/@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.0.2", "", { "dependencies": { "@radix-ui/react-slot": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w=="],
+
+ "@radix-ui/react-navigation-menu/@radix-ui/react-visually-hidden": ["@radix-ui/react-visually-hidden@1.1.2", "", { "dependencies": { "@radix-ui/react-primitive": "2.0.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-1SzA4ns2M1aRlvxErqhLHsBHoS5eI5UUcI2awAMgGUp4LoaoWOKYmvqDY2s/tltuPkh3Yk77YF/r3IRj+Amx4Q=="],
- "@polar-sh/nextjs/@polar-sh/sdk": ["@polar-sh/sdk@0.21.3", "", { "dependencies": { "standardwebhooks": "^1.0.0" }, "peerDependencies": { "zod": ">= 3" } }, "sha512-ZdsZmO3T+cwRDpRKdbnXRKofrUFF4fibs9deD697BGbqoeBeRqR2KlMb8WkgMhG5qw6Q4voo6YLZ9AOxUgG5FQ=="],
+ "@radix-ui/react-progress/@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.0.2", "", { "dependencies": { "@radix-ui/react-slot": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w=="],
+
+ "@radix-ui/react-scroll-area/@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.0.2", "", { "dependencies": { "@radix-ui/react-slot": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w=="],
"@react-email/render/prettier": ["prettier@3.4.2", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ=="],
- "@react-native/babel-plugin-codegen/@react-native/codegen": ["@react-native/codegen@0.76.6", "", { "dependencies": { "@babel/parser": "^7.25.3", "glob": "^7.1.1", "hermes-parser": "0.23.1", "invariant": "^2.2.4", "jscodeshift": "^0.14.0", "mkdirp": "^0.5.1", "nullthrows": "^1.1.1", "yargs": "^17.6.2" }, "peerDependencies": { "@babel/preset-env": "^7.1.6" } }, "sha512-BABb3e5G/+hyQYEYi0AODWh2km2d8ERoASZr6Hv90pVXdUHRYR+yxCatX7vSd9rnDUYndqRTzD0hZWAucPNAKg=="],
+ "@react-native/babel-plugin-codegen/@react-native/codegen": ["@react-native/codegen@0.76.7", "", { "dependencies": { "@babel/parser": "^7.25.3", "glob": "^7.1.1", "hermes-parser": "0.23.1", "invariant": "^2.2.4", "jscodeshift": "^0.14.0", "mkdirp": "^0.5.1", "nullthrows": "^1.1.1", "yargs": "^17.6.2" }, "peerDependencies": { "@babel/preset-env": "^7.1.6" } }, "sha512-FAn585Ll65YvkSrKDyAcsdjHhhAGiMlSTUpHh0x7J5ntudUns+voYms0xMP+pEPt0XuLdjhD7zLIIlAWP407+g=="],
"@react-native/babel-preset/babel-plugin-syntax-hermes-parser": ["babel-plugin-syntax-hermes-parser@0.25.1", "", { "dependencies": { "hermes-parser": "0.25.1" } }, "sha512-IVNpGzboFLfXZUAwkLFcI/bnqVbwky0jP3eBno4HKtqvQJAHBLdgxiG6lQ4to0+Q/YCN3PO0od5NZwIKyY4REQ=="],
- "@react-native/codegen/@babel/parser": ["@babel/parser@7.26.7", "", { "dependencies": { "@babel/types": "^7.26.7" }, "bin": "./bin/babel-parser.js" }, "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w=="],
+ "@react-native/codegen/@babel/parser": ["@babel/parser@7.26.10", "", { "dependencies": { "@babel/types": "^7.26.10" }, "bin": "./bin/babel-parser.js" }, "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA=="],
"@react-native/codegen/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="],
+ "@react-native/codegen/jscodeshift": ["jscodeshift@0.14.0", "", { "dependencies": { "@babel/core": "^7.13.16", "@babel/parser": "^7.13.16", "@babel/plugin-proposal-class-properties": "^7.13.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", "@babel/plugin-proposal-optional-chaining": "^7.13.12", "@babel/plugin-transform-modules-commonjs": "^7.13.8", "@babel/preset-flow": "^7.13.13", "@babel/preset-typescript": "^7.13.0", "@babel/register": "^7.13.16", "babel-core": "^7.0.0-bridge.0", "chalk": "^4.1.2", "flow-parser": "0.*", "graceful-fs": "^4.2.4", "micromatch": "^4.0.4", "neo-async": "^2.5.0", "node-dir": "^0.1.17", "recast": "^0.21.0", "temp": "^0.8.4", "write-file-atomic": "^2.3.0" }, "peerDependencies": { "@babel/preset-env": "^7.1.6" }, "bin": { "jscodeshift": "bin/jscodeshift.js" } }, "sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA=="],
+
"@react-native/community-cli-plugin/@react-native/dev-middleware": ["@react-native/dev-middleware@0.76.5", "", { "dependencies": { "@isaacs/ttlcache": "^1.4.1", "@react-native/debugger-frontend": "0.76.5", "chrome-launcher": "^0.15.2", "chromium-edge-launcher": "^0.2.0", "connect": "^3.6.5", "debug": "^2.2.0", "nullthrows": "^1.1.1", "open": "^7.0.3", "selfsigned": "^2.4.1", "serve-static": "^1.13.1", "ws": "^6.2.3" } }, "sha512-f8eimsxpkvMgJia7POKoUu9uqjGF6KgkxX4zqr/a6eoR1qdEAWUd6PonSAqtag3PAqvEaJpB99gLH2ZJI1nDGg=="],
"@react-native/community-cli-plugin/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
@@ -3820,17 +3781,19 @@
"@react-native/metro-babel-transformer/@react-native/babel-preset": ["@react-native/babel-preset@0.76.5", "", { "dependencies": { "@babel/core": "^7.25.2", "@babel/plugin-proposal-export-default-from": "^7.24.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-default-from": "^7.24.7", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-transform-arrow-functions": "^7.24.7", "@babel/plugin-transform-async-generator-functions": "^7.25.4", "@babel/plugin-transform-async-to-generator": "^7.24.7", "@babel/plugin-transform-block-scoping": "^7.25.0", "@babel/plugin-transform-class-properties": "^7.25.4", "@babel/plugin-transform-classes": "^7.25.4", "@babel/plugin-transform-computed-properties": "^7.24.7", "@babel/plugin-transform-destructuring": "^7.24.8", "@babel/plugin-transform-flow-strip-types": "^7.25.2", "@babel/plugin-transform-for-of": "^7.24.7", "@babel/plugin-transform-function-name": "^7.25.1", "@babel/plugin-transform-literals": "^7.25.2", "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", "@babel/plugin-transform-modules-commonjs": "^7.24.8", "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", "@babel/plugin-transform-numeric-separator": "^7.24.7", "@babel/plugin-transform-object-rest-spread": "^7.24.7", "@babel/plugin-transform-optional-catch-binding": "^7.24.7", "@babel/plugin-transform-optional-chaining": "^7.24.8", "@babel/plugin-transform-parameters": "^7.24.7", "@babel/plugin-transform-private-methods": "^7.24.7", "@babel/plugin-transform-private-property-in-object": "^7.24.7", "@babel/plugin-transform-react-display-name": "^7.24.7", "@babel/plugin-transform-react-jsx": "^7.25.2", "@babel/plugin-transform-react-jsx-self": "^7.24.7", "@babel/plugin-transform-react-jsx-source": "^7.24.7", "@babel/plugin-transform-regenerator": "^7.24.7", "@babel/plugin-transform-runtime": "^7.24.7", "@babel/plugin-transform-shorthand-properties": "^7.24.7", "@babel/plugin-transform-spread": "^7.24.7", "@babel/plugin-transform-sticky-regex": "^7.24.7", "@babel/plugin-transform-typescript": "^7.25.2", "@babel/plugin-transform-unicode-regex": "^7.24.7", "@babel/template": "^7.25.0", "@react-native/babel-plugin-codegen": "0.76.5", "babel-plugin-syntax-hermes-parser": "^0.25.1", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" } }, "sha512-1Nu5Um4EogOdppBLI4pfupkteTjWfmI0hqW8ezWTg7Bezw0FtBj8yS8UYVd3wTnDFT9A5mA2VNoNUqomJnvj2A=="],
- "@remix-run/server-runtime/cookie": ["cookie@0.6.0", "", {}, "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw=="],
+ "@react-navigation/core/nanoid": ["nanoid@3.3.8", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w=="],
- "@remix-run/server-runtime/source-map": ["source-map@0.7.4", "", {}, "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA=="],
+ "@react-navigation/native/nanoid": ["nanoid@3.3.8", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w=="],
+
+ "@react-navigation/routers/nanoid": ["nanoid@3.3.8", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w=="],
"@supabase/node-fetch/whatwg-url": ["whatwg-url@5.0.0", "", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="],
"@trigger.dev/core/zod": ["zod@3.23.8", "", {}, "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g=="],
- "@types/babel__core/@babel/parser": ["@babel/parser@7.26.7", "", { "dependencies": { "@babel/types": "^7.26.7" }, "bin": "./bin/babel-parser.js" }, "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w=="],
+ "@types/babel__core/@babel/parser": ["@babel/parser@7.26.10", "", { "dependencies": { "@babel/types": "^7.26.10" }, "bin": "./bin/babel-parser.js" }, "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA=="],
- "@types/babel__template/@babel/parser": ["@babel/parser@7.26.7", "", { "dependencies": { "@babel/types": "^7.26.7" }, "bin": "./bin/babel-parser.js" }, "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w=="],
+ "@types/babel__template/@babel/parser": ["@babel/parser@7.26.10", "", { "dependencies": { "@babel/types": "^7.26.10" }, "bin": "./bin/babel-parser.js" }, "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA=="],
"@types/react-test-renderer/@types/react": ["@types/react@18.3.18", "", { "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" } }, "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ=="],
@@ -3868,6 +3831,8 @@
"chromium-edge-launcher/mkdirp": ["mkdirp@1.0.4", "", { "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="],
+ "chromium-edge-launcher/rimraf": ["rimraf@3.0.2", "", { "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" } }, "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA=="],
+
"compression/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="],
"compression/negotiator": ["negotiator@0.6.4", "", {}, "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w=="],
@@ -3884,7 +3849,9 @@
"del/p-map": ["p-map@4.0.0", "", { "dependencies": { "aggregate-error": "^3.0.0" } }, "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ=="],
- "drizzle-kit/esbuild": ["esbuild@0.19.11", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.19.11", "@esbuild/android-arm": "0.19.11", "@esbuild/android-arm64": "0.19.11", "@esbuild/android-x64": "0.19.11", "@esbuild/darwin-arm64": "0.19.11", "@esbuild/darwin-x64": "0.19.11", "@esbuild/freebsd-arm64": "0.19.11", "@esbuild/freebsd-x64": "0.19.11", "@esbuild/linux-arm": "0.19.11", "@esbuild/linux-arm64": "0.19.11", "@esbuild/linux-ia32": "0.19.11", "@esbuild/linux-loong64": "0.19.11", "@esbuild/linux-mips64el": "0.19.11", "@esbuild/linux-ppc64": "0.19.11", "@esbuild/linux-riscv64": "0.19.11", "@esbuild/linux-s390x": "0.19.11", "@esbuild/linux-x64": "0.19.11", "@esbuild/netbsd-x64": "0.19.11", "@esbuild/openbsd-x64": "0.19.11", "@esbuild/sunos-x64": "0.19.11", "@esbuild/win32-arm64": "0.19.11", "@esbuild/win32-ia32": "0.19.11", "@esbuild/win32-x64": "0.19.11" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA=="],
+ "del/rimraf": ["rimraf@3.0.2", "", { "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" } }, "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA=="],
+
+ "drizzle-kit/esbuild": ["esbuild@0.19.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.19.12", "@esbuild/android-arm": "0.19.12", "@esbuild/android-arm64": "0.19.12", "@esbuild/android-x64": "0.19.12", "@esbuild/darwin-arm64": "0.19.12", "@esbuild/darwin-x64": "0.19.12", "@esbuild/freebsd-arm64": "0.19.12", "@esbuild/freebsd-x64": "0.19.12", "@esbuild/linux-arm": "0.19.12", "@esbuild/linux-arm64": "0.19.12", "@esbuild/linux-ia32": "0.19.12", "@esbuild/linux-loong64": "0.19.12", "@esbuild/linux-mips64el": "0.19.12", "@esbuild/linux-ppc64": "0.19.12", "@esbuild/linux-riscv64": "0.19.12", "@esbuild/linux-s390x": "0.19.12", "@esbuild/linux-x64": "0.19.12", "@esbuild/netbsd-x64": "0.19.12", "@esbuild/openbsd-x64": "0.19.12", "@esbuild/sunos-x64": "0.19.12", "@esbuild/win32-arm64": "0.19.12", "@esbuild/win32-ia32": "0.19.12", "@esbuild/win32-x64": "0.19.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg=="],
"editorconfig/commander": ["commander@10.0.1", "", {}, "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug=="],
@@ -3932,8 +3899,6 @@
"finalhandler/statuses": ["statuses@1.5.0", "", {}, "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA=="],
- "find-cache-dir/make-dir": ["make-dir@2.1.0", "", { "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" } }, "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA=="],
-
"find-cache-dir/pkg-dir": ["pkg-dir@3.0.0", "", { "dependencies": { "find-up": "^3.0.0" } }, "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw=="],
"fumadocs/@types/node": ["@types/node@22.10.2", "", { "dependencies": { "undici-types": "~6.20.0" } }, "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ=="],
@@ -3944,9 +3909,11 @@
"fumadocs-core/shiki": ["shiki@1.29.2", "", { "dependencies": { "@shikijs/core": "1.29.2", "@shikijs/engine-javascript": "1.29.2", "@shikijs/engine-oniguruma": "1.29.2", "@shikijs/langs": "1.29.2", "@shikijs/themes": "1.29.2", "@shikijs/types": "1.29.2", "@shikijs/vscode-textmate": "^10.0.1", "@types/hast": "^3.0.4" } }, "sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg=="],
+ "fumadocs-mdx/esbuild": ["esbuild@0.24.2", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.24.2", "@esbuild/android-arm": "0.24.2", "@esbuild/android-arm64": "0.24.2", "@esbuild/android-x64": "0.24.2", "@esbuild/darwin-arm64": "0.24.2", "@esbuild/darwin-x64": "0.24.2", "@esbuild/freebsd-arm64": "0.24.2", "@esbuild/freebsd-x64": "0.24.2", "@esbuild/linux-arm": "0.24.2", "@esbuild/linux-arm64": "0.24.2", "@esbuild/linux-ia32": "0.24.2", "@esbuild/linux-loong64": "0.24.2", "@esbuild/linux-mips64el": "0.24.2", "@esbuild/linux-ppc64": "0.24.2", "@esbuild/linux-riscv64": "0.24.2", "@esbuild/linux-s390x": "0.24.2", "@esbuild/linux-x64": "0.24.2", "@esbuild/netbsd-arm64": "0.24.2", "@esbuild/netbsd-x64": "0.24.2", "@esbuild/openbsd-arm64": "0.24.2", "@esbuild/openbsd-x64": "0.24.2", "@esbuild/sunos-x64": "0.24.2", "@esbuild/win32-arm64": "0.24.2", "@esbuild/win32-ia32": "0.24.2", "@esbuild/win32-x64": "0.24.2" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA=="],
+
"fumadocs-ui/lucide-react": ["lucide-react@0.469.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-28vvUnnKQ/dBwiCQtwJw7QauYnE7yd2Cyp4tTTJpvglX4EMpbflcdBgrgToX2j71B3YvugK/NH3BGUk+E/p/Fw=="],
- "fumadocs-ui/postcss-selector-parser": ["postcss-selector-parser@7.0.0", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ=="],
+ "fumadocs-ui/postcss-selector-parser": ["postcss-selector-parser@7.1.0", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA=="],
"hoist-non-react-statics/react-is": ["react-is@16.13.1", "", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="],
@@ -3954,7 +3921,9 @@
"import-fresh/resolve-from": ["resolve-from@3.0.0", "", {}, "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw=="],
- "istanbul-lib-instrument/@babel/parser": ["@babel/parser@7.26.7", "", { "dependencies": { "@babel/types": "^7.26.7" }, "bin": "./bin/babel-parser.js" }, "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w=="],
+ "istanbul-lib-instrument/@babel/parser": ["@babel/parser@7.26.10", "", { "dependencies": { "@babel/types": "^7.26.10" }, "bin": "./bin/babel-parser.js" }, "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA=="],
+
+ "istanbul-lib-report/make-dir": ["make-dir@4.0.0", "", { "dependencies": { "semver": "^7.5.3" } }, "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw=="],
"istanbul-lib-source-maps/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="],
@@ -4030,21 +3999,29 @@
"js-beautify/glob": ["glob@10.4.5", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg=="],
- "jscodeshift/@babel/parser": ["@babel/parser@7.26.7", "", { "dependencies": { "@babel/types": "^7.26.7" }, "bin": "./bin/babel-parser.js" }, "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w=="],
+ "jscodeshift/@babel/parser": ["@babel/parser@7.26.10", "", { "dependencies": { "@babel/types": "^7.26.10" }, "bin": "./bin/babel-parser.js" }, "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA=="],
"jscodeshift/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
+ "jscodeshift/recast": ["recast@0.23.11", "", { "dependencies": { "ast-types": "^0.16.1", "esprima": "~4.0.0", "source-map": "~0.6.1", "tiny-invariant": "^1.3.3", "tslib": "^2.0.1" } }, "sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA=="],
+
"languine/@clack/prompts": ["@clack/prompts@0.10.0", "", { "dependencies": { "@clack/core": "0.4.1", "picocolors": "^1.0.0", "sisteransi": "^1.0.5" } }, "sha512-H3rCl6CwW1NdQt9rE3n373t7o5cthPv7yUoxF2ytZvyvlJv89C5RYMJu83Hed8ODgys5vpBU0GKxIRG83jd8NQ=="],
+ "languine/@trigger.dev/sdk": ["@trigger.dev/sdk@3.3.13", "", { "dependencies": { "@opentelemetry/api": "1.9.0", "@opentelemetry/api-logs": "0.52.1", "@opentelemetry/semantic-conventions": "1.25.1", "@trigger.dev/core": "3.3.13", "chalk": "^5.2.0", "cronstrue": "^2.21.0", "debug": "^4.3.4", "evt": "^2.4.13", "slug": "^6.0.0", "terminal-link": "^3.0.0", "ulid": "^2.3.0", "uuid": "^9.0.0", "ws": "^8.11.0" }, "peerDependencies": { "zod": "^3.0.0" } }, "sha512-iXtHMnzvzmPfBk7+whpWOElBJt6viCoA3r8xgrrrurj8oxjIVe4UvdDiB7wbUJJ44WROWEb0wVKyQut1L/FwQQ=="],
+
+ "languine/@types/jscodeshift": ["@types/jscodeshift@0.11.11", "", { "dependencies": { "ast-types": "^0.14.1", "recast": "^0.20.3" } }, "sha512-d7CAfFGOupj5qCDqMODXxNz2/NwCv/Lha78ZFbnr6qpk3K98iSB8I+ig9ERE2+EeYML352VMRsjPyOpeA+04eQ=="],
+
"lighthouse-logger/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="],
"lightningcss/detect-libc": ["detect-libc@1.0.3", "", { "bin": { "detect-libc": "./bin/detect-libc.js" } }, "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg=="],
"log-symbols/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
+ "make-dir/semver": ["semver@5.7.2", "", { "bin": { "semver": "bin/semver" } }, "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="],
+
"mdast-util-find-and-replace/escape-string-regexp": ["escape-string-regexp@5.0.0", "", {}, "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="],
- "metro/@babel/parser": ["@babel/parser@7.26.7", "", { "dependencies": { "@babel/types": "^7.26.7" }, "bin": "./bin/babel-parser.js" }, "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w=="],
+ "metro/@babel/parser": ["@babel/parser@7.26.10", "", { "dependencies": { "@babel/types": "^7.26.10" }, "bin": "./bin/babel-parser.js" }, "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA=="],
"metro/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
@@ -4070,7 +4047,7 @@
"metro-symbolicate/source-map": ["source-map@0.5.7", "", {}, "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="],
- "metro-transform-worker/@babel/parser": ["@babel/parser@7.26.7", "", { "dependencies": { "@babel/types": "^7.26.7" }, "bin": "./bin/babel-parser.js" }, "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w=="],
+ "metro-transform-worker/@babel/parser": ["@babel/parser@7.26.10", "", { "dependencies": { "@babel/types": "^7.26.10" }, "bin": "./bin/babel-parser.js" }, "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA=="],
"micromatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="],
@@ -4230,8 +4207,6 @@
"tar/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="],
- "temp/rimraf": ["rimraf@2.6.3", "", { "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "./bin.js" } }, "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA=="],
-
"tempy/is-stream": ["is-stream@2.0.1", "", {}, "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="],
"tempy/type-fest": ["type-fest@0.16.0", "", {}, "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg=="],
@@ -4248,8 +4223,6 @@
"unist-util-remove/unist-util-visit-parents": ["unist-util-visit-parents@5.1.3", "", { "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } }, "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg=="],
- "webpack/schema-utils": ["schema-utils@3.3.0", "", { "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" } }, "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg=="],
-
"whatwg-encoding/iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="],
"whatwg-url-without-unicode/buffer": ["buffer@5.7.1", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="],
@@ -4268,8 +4241,6 @@
"@babel/highlight/chalk/supports-color": ["supports-color@5.5.0", "", { "dependencies": { "has-flag": "^3.0.0" } }, "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="],
- "@babel/register/make-dir/semver": ["semver@5.7.2", "", { "bin": { "semver": "bin/semver" } }, "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="],
-
"@esbuild-kit/core-utils/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.18.20", "", { "os": "android", "cpu": "arm" }, "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw=="],
"@esbuild-kit/core-utils/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.18.20", "", { "os": "android", "cpu": "arm64" }, "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ=="],
@@ -4394,16 +4365,36 @@
"@languine/web/languine/@clack/prompts": ["@clack/prompts@0.10.0", "", { "dependencies": { "@clack/core": "0.4.1", "picocolors": "^1.0.0", "sisteransi": "^1.0.5" } }, "sha512-H3rCl6CwW1NdQt9rE3n373t7o5cthPv7yUoxF2ytZvyvlJv89C5RYMJu83Hed8ODgys5vpBU0GKxIRG83jd8NQ=="],
+ "@languine/web/languine/@trigger.dev/sdk": ["@trigger.dev/sdk@3.3.13", "", { "dependencies": { "@opentelemetry/api": "1.9.0", "@opentelemetry/api-logs": "0.52.1", "@opentelemetry/semantic-conventions": "1.25.1", "@trigger.dev/core": "3.3.13", "chalk": "^5.2.0", "cronstrue": "^2.21.0", "debug": "^4.3.4", "evt": "^2.4.13", "slug": "^6.0.0", "terminal-link": "^3.0.0", "ulid": "^2.3.0", "uuid": "^9.0.0", "ws": "^8.11.0" }, "peerDependencies": { "zod": "^3.0.0" } }, "sha512-iXtHMnzvzmPfBk7+whpWOElBJt6viCoA3r8xgrrrurj8oxjIVe4UvdDiB7wbUJJ44WROWEb0wVKyQut1L/FwQQ=="],
+
+ "@languine/web/languine/@types/jscodeshift": ["@types/jscodeshift@0.11.11", "", { "dependencies": { "ast-types": "^0.14.1", "recast": "^0.20.3" } }, "sha512-d7CAfFGOupj5qCDqMODXxNz2/NwCv/Lha78ZFbnr6qpk3K98iSB8I+ig9ERE2+EeYML352VMRsjPyOpeA+04eQ=="],
+
+ "@languine/web/languine/zod": ["zod@3.24.2", "", {}, "sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ=="],
+
"@manypkg/find-root/find-up/locate-path": ["locate-path@5.0.0", "", { "dependencies": { "p-locate": "^4.1.0" } }, "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="],
- "@react-native/babel-plugin-codegen/@react-native/codegen/@babel/parser": ["@babel/parser@7.26.7", "", { "dependencies": { "@babel/types": "^7.26.7" }, "bin": "./bin/babel-parser.js" }, "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w=="],
+ "@radix-ui/react-navigation-menu/@radix-ui/react-collection/@radix-ui/react-slot": ["@radix-ui/react-slot@1.1.2", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ=="],
+
+ "@radix-ui/react-navigation-menu/@radix-ui/react-primitive/@radix-ui/react-slot": ["@radix-ui/react-slot@1.1.2", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ=="],
+
+ "@radix-ui/react-progress/@radix-ui/react-primitive/@radix-ui/react-slot": ["@radix-ui/react-slot@1.1.2", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ=="],
+
+ "@radix-ui/react-scroll-area/@radix-ui/react-primitive/@radix-ui/react-slot": ["@radix-ui/react-slot@1.1.2", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ=="],
+
+ "@react-native/babel-plugin-codegen/@react-native/codegen/@babel/parser": ["@babel/parser@7.26.10", "", { "dependencies": { "@babel/types": "^7.26.10" }, "bin": "./bin/babel-parser.js" }, "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA=="],
"@react-native/babel-plugin-codegen/@react-native/codegen/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="],
+ "@react-native/babel-plugin-codegen/@react-native/codegen/jscodeshift": ["jscodeshift@0.14.0", "", { "dependencies": { "@babel/core": "^7.13.16", "@babel/parser": "^7.13.16", "@babel/plugin-proposal-class-properties": "^7.13.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", "@babel/plugin-proposal-optional-chaining": "^7.13.12", "@babel/plugin-transform-modules-commonjs": "^7.13.8", "@babel/preset-flow": "^7.13.13", "@babel/preset-typescript": "^7.13.0", "@babel/register": "^7.13.16", "babel-core": "^7.0.0-bridge.0", "chalk": "^4.1.2", "flow-parser": "0.*", "graceful-fs": "^4.2.4", "micromatch": "^4.0.4", "neo-async": "^2.5.0", "node-dir": "^0.1.17", "recast": "^0.21.0", "temp": "^0.8.4", "write-file-atomic": "^2.3.0" }, "peerDependencies": { "@babel/preset-env": "^7.1.6" }, "bin": { "jscodeshift": "bin/jscodeshift.js" } }, "sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA=="],
+
"@react-native/babel-preset/babel-plugin-syntax-hermes-parser/hermes-parser": ["hermes-parser@0.25.1", "", { "dependencies": { "hermes-estree": "0.25.1" } }, "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA=="],
"@react-native/codegen/glob/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="],
+ "@react-native/codegen/jscodeshift/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
+
+ "@react-native/codegen/jscodeshift/recast": ["recast@0.21.5", "", { "dependencies": { "ast-types": "0.15.2", "esprima": "~4.0.0", "source-map": "~0.6.1", "tslib": "^2.0.1" } }, "sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg=="],
+
"@react-native/community-cli-plugin/@react-native/dev-middleware/@react-native/debugger-frontend": ["@react-native/debugger-frontend@0.76.5", "", {}, "sha512-5gtsLfBaSoa9WP8ToDb/8NnDBLZjv4sybQQj7rDKytKOdsXm3Pr2y4D7x7GQQtP1ZQRqzU0X0OZrhRz9xNnOqA=="],
"@react-native/community-cli-plugin/@react-native/dev-middleware/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="],
@@ -4440,7 +4431,7 @@
"@supabase/node-fetch/whatwg-url/webidl-conversions": ["webidl-conversions@3.0.1", "", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="],
- "babel-plugin-istanbul/istanbul-lib-instrument/@babel/parser": ["@babel/parser@7.26.7", "", { "dependencies": { "@babel/types": "^7.26.7" }, "bin": "./bin/babel-parser.js" }, "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w=="],
+ "babel-plugin-istanbul/istanbul-lib-instrument/@babel/parser": ["@babel/parser@7.26.10", "", { "dependencies": { "@babel/types": "^7.26.10" }, "bin": "./bin/babel-parser.js" }, "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA=="],
"babel-plugin-istanbul/istanbul-lib-instrument/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="],
@@ -4456,6 +4447,8 @@
"chromium-edge-launcher/is-wsl/is-docker": ["is-docker@2.2.1", "", { "bin": { "is-docker": "cli.js" } }, "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="],
+ "chromium-edge-launcher/rimraf/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="],
+
"compression/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="],
"connect/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="],
@@ -4472,51 +4465,53 @@
"default-gateway/execa/signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="],
- "drizzle-kit/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.19.11", "", { "os": "aix", "cpu": "ppc64" }, "sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g=="],
+ "del/rimraf/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="],
+
+ "drizzle-kit/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.19.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA=="],
- "drizzle-kit/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.19.11", "", { "os": "android", "cpu": "arm" }, "sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw=="],
+ "drizzle-kit/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.19.12", "", { "os": "android", "cpu": "arm" }, "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w=="],
- "drizzle-kit/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.19.11", "", { "os": "android", "cpu": "arm64" }, "sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q=="],
+ "drizzle-kit/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.19.12", "", { "os": "android", "cpu": "arm64" }, "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA=="],
- "drizzle-kit/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.19.11", "", { "os": "android", "cpu": "x64" }, "sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg=="],
+ "drizzle-kit/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.19.12", "", { "os": "android", "cpu": "x64" }, "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew=="],
- "drizzle-kit/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.19.11", "", { "os": "darwin", "cpu": "arm64" }, "sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ=="],
+ "drizzle-kit/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.19.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g=="],
- "drizzle-kit/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.19.11", "", { "os": "darwin", "cpu": "x64" }, "sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g=="],
+ "drizzle-kit/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.19.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A=="],
- "drizzle-kit/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.19.11", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA=="],
+ "drizzle-kit/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.19.12", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA=="],
- "drizzle-kit/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.19.11", "", { "os": "freebsd", "cpu": "x64" }, "sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw=="],
+ "drizzle-kit/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.19.12", "", { "os": "freebsd", "cpu": "x64" }, "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg=="],
- "drizzle-kit/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.19.11", "", { "os": "linux", "cpu": "arm" }, "sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q=="],
+ "drizzle-kit/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.19.12", "", { "os": "linux", "cpu": "arm" }, "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w=="],
- "drizzle-kit/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.19.11", "", { "os": "linux", "cpu": "arm64" }, "sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg=="],
+ "drizzle-kit/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.19.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA=="],
- "drizzle-kit/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.19.11", "", { "os": "linux", "cpu": "ia32" }, "sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA=="],
+ "drizzle-kit/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.19.12", "", { "os": "linux", "cpu": "ia32" }, "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA=="],
- "drizzle-kit/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.19.11", "", { "os": "linux", "cpu": "none" }, "sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg=="],
+ "drizzle-kit/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.19.12", "", { "os": "linux", "cpu": "none" }, "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA=="],
- "drizzle-kit/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.19.11", "", { "os": "linux", "cpu": "none" }, "sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg=="],
+ "drizzle-kit/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.19.12", "", { "os": "linux", "cpu": "none" }, "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w=="],
- "drizzle-kit/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.19.11", "", { "os": "linux", "cpu": "ppc64" }, "sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA=="],
+ "drizzle-kit/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.19.12", "", { "os": "linux", "cpu": "ppc64" }, "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg=="],
- "drizzle-kit/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.19.11", "", { "os": "linux", "cpu": "none" }, "sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ=="],
+ "drizzle-kit/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.19.12", "", { "os": "linux", "cpu": "none" }, "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg=="],
- "drizzle-kit/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.19.11", "", { "os": "linux", "cpu": "s390x" }, "sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q=="],
+ "drizzle-kit/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.19.12", "", { "os": "linux", "cpu": "s390x" }, "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg=="],
- "drizzle-kit/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.19.11", "", { "os": "linux", "cpu": "x64" }, "sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA=="],
+ "drizzle-kit/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.19.12", "", { "os": "linux", "cpu": "x64" }, "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg=="],
- "drizzle-kit/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.19.11", "", { "os": "none", "cpu": "x64" }, "sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ=="],
+ "drizzle-kit/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.19.12", "", { "os": "none", "cpu": "x64" }, "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA=="],
- "drizzle-kit/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.19.11", "", { "os": "openbsd", "cpu": "x64" }, "sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw=="],
+ "drizzle-kit/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.19.12", "", { "os": "openbsd", "cpu": "x64" }, "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw=="],
- "drizzle-kit/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.19.11", "", { "os": "sunos", "cpu": "x64" }, "sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ=="],
+ "drizzle-kit/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.19.12", "", { "os": "sunos", "cpu": "x64" }, "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA=="],
- "drizzle-kit/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.19.11", "", { "os": "win32", "cpu": "arm64" }, "sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ=="],
+ "drizzle-kit/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.19.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A=="],
- "drizzle-kit/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.19.11", "", { "os": "win32", "cpu": "ia32" }, "sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg=="],
+ "drizzle-kit/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.19.12", "", { "os": "win32", "cpu": "ia32" }, "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ=="],
- "drizzle-kit/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.19.11", "", { "os": "win32", "cpu": "x64" }, "sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw=="],
+ "drizzle-kit/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.19.12", "", { "os": "win32", "cpu": "x64" }, "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA=="],
"expo-modules-autolinking/fs-extra/jsonfile": ["jsonfile@6.1.0", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ=="],
@@ -4528,8 +4523,6 @@
"finalhandler/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="],
- "find-cache-dir/make-dir/semver": ["semver@5.7.2", "", { "bin": { "semver": "bin/semver" } }, "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="],
-
"find-cache-dir/pkg-dir/find-up": ["find-up@3.0.0", "", { "dependencies": { "locate-path": "^3.0.0" } }, "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg=="],
"fumadocs-core/@shikijs/rehype/@shikijs/types": ["@shikijs/types@1.29.2", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.1", "@types/hast": "^3.0.4" } }, "sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw=="],
@@ -4546,6 +4539,56 @@
"fumadocs-core/shiki/@shikijs/types": ["@shikijs/types@1.29.2", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.1", "@types/hast": "^3.0.4" } }, "sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw=="],
+ "fumadocs-mdx/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.24.2", "", { "os": "aix", "cpu": "ppc64" }, "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA=="],
+
+ "fumadocs-mdx/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.24.2", "", { "os": "android", "cpu": "arm" }, "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q=="],
+
+ "fumadocs-mdx/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.24.2", "", { "os": "android", "cpu": "arm64" }, "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg=="],
+
+ "fumadocs-mdx/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.24.2", "", { "os": "android", "cpu": "x64" }, "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw=="],
+
+ "fumadocs-mdx/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.24.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA=="],
+
+ "fumadocs-mdx/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.24.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA=="],
+
+ "fumadocs-mdx/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.24.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg=="],
+
+ "fumadocs-mdx/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.24.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q=="],
+
+ "fumadocs-mdx/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.24.2", "", { "os": "linux", "cpu": "arm" }, "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA=="],
+
+ "fumadocs-mdx/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.24.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg=="],
+
+ "fumadocs-mdx/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.24.2", "", { "os": "linux", "cpu": "ia32" }, "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw=="],
+
+ "fumadocs-mdx/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.24.2", "", { "os": "linux", "cpu": "none" }, "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ=="],
+
+ "fumadocs-mdx/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.24.2", "", { "os": "linux", "cpu": "none" }, "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw=="],
+
+ "fumadocs-mdx/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.24.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw=="],
+
+ "fumadocs-mdx/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.24.2", "", { "os": "linux", "cpu": "none" }, "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q=="],
+
+ "fumadocs-mdx/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.24.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw=="],
+
+ "fumadocs-mdx/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.24.2", "", { "os": "linux", "cpu": "x64" }, "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q=="],
+
+ "fumadocs-mdx/esbuild/@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.24.2", "", { "os": "none", "cpu": "arm64" }, "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw=="],
+
+ "fumadocs-mdx/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.24.2", "", { "os": "none", "cpu": "x64" }, "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw=="],
+
+ "fumadocs-mdx/esbuild/@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.24.2", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A=="],
+
+ "fumadocs-mdx/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.24.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA=="],
+
+ "fumadocs-mdx/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.24.2", "", { "os": "sunos", "cpu": "x64" }, "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig=="],
+
+ "fumadocs-mdx/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.24.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ=="],
+
+ "fumadocs-mdx/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.24.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA=="],
+
+ "fumadocs-mdx/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.24.2", "", { "os": "win32", "cpu": "x64" }, "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg=="],
+
"fumadocs/next/@next/env": ["@next/env@15.1.2", "", {}, "sha512-Hm3jIGsoUl6RLB1vzY+dZeqb+/kWPZ+h34yiWxW0dV87l8Im/eMOwpOA+a0L78U0HM04syEjXuRlCozqpwuojQ=="],
"fumadocs/next/@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@15.1.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-b9TN7q+j5/7+rGLhFAVZiKJGIASuo8tWvInGfAd8wsULjB1uNGRCj1z1WZwwPWzVQbIKWFYqc+9L7W09qwt52w=="],
@@ -4622,6 +4665,12 @@
"js-beautify/glob/jackspeak": ["jackspeak@3.4.3", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw=="],
+ "jscodeshift/recast/ast-types": ["ast-types@0.16.1", "", { "dependencies": { "tslib": "^2.0.1" } }, "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg=="],
+
+ "jscodeshift/recast/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="],
+
+ "languine/@trigger.dev/sdk/@trigger.dev/core": ["@trigger.dev/core@3.3.13", "", { "dependencies": { "@electric-sql/client": "1.0.0-beta.1", "@google-cloud/precise-date": "^4.0.0", "@jsonhero/path": "^1.0.21", "@opentelemetry/api": "1.9.0", "@opentelemetry/api-logs": "0.52.1", "@opentelemetry/exporter-logs-otlp-http": "0.52.1", "@opentelemetry/exporter-trace-otlp-http": "0.52.1", "@opentelemetry/instrumentation": "0.52.1", "@opentelemetry/resources": "1.25.1", "@opentelemetry/sdk-logs": "0.52.1", "@opentelemetry/sdk-node": "0.52.1", "@opentelemetry/sdk-trace-base": "1.25.1", "@opentelemetry/sdk-trace-node": "1.25.1", "@opentelemetry/semantic-conventions": "1.25.1", "dequal": "^2.0.3", "eventsource": "^3.0.5", "eventsource-parser": "^3.0.0", "execa": "^8.0.1", "humanize-duration": "^3.27.3", "jose": "^5.4.0", "nanoid": "^3.3.4", "socket.io-client": "4.7.5", "superjson": "^2.2.1", "zod": "3.23.8", "zod-error": "1.5.0", "zod-validation-error": "^1.5.0" } }, "sha512-3VU4YMS+RVCkfVXeUKSWlkVszgFK44tIknR9sHLYgetI714L3tgH47XBXJ3+/ZV5Y9Vvv6O6pRIuV7EEhzbexg=="],
+
"lighthouse-logger/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="],
"metro-babel-transformer/hermes-parser/hermes-estree": ["hermes-estree@0.25.1", "", {}, "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw=="],
@@ -4640,14 +4689,12 @@
"minipass-pipeline/minipass/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="],
- "my-app/languine/@babel/parser": ["@babel/parser@7.26.7", "", { "dependencies": { "@babel/types": "^7.26.7" }, "bin": "./bin/babel-parser.js" }, "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w=="],
+ "my-app/languine/@babel/parser": ["@babel/parser@7.26.10", "", { "dependencies": { "@babel/types": "^7.26.10" }, "bin": "./bin/babel-parser.js" }, "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA=="],
"my-app/languine/glob": ["glob@11.0.1", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^4.0.1", "minimatch": "^10.0.0", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^2.0.0" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw=="],
"my-app/languine/jiti": ["jiti@2.4.2", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A=="],
- "my-app/languine/preferred-pm": ["preferred-pm@4.1.0", "", { "dependencies": { "find-up-simple": "^1.0.0", "find-yarn-workspace-root2": "1.2.16", "which-pm": "^3.0.0" } }, "sha512-cNKMVcSvE3hZBRukdRsvPtlUaM2fYLFbIvBz620XaDA5SjHsCRsAjNE2baI90Hh7QvJIjCHJYnpPtyqJ1/kOjQ=="],
-
"my-app/react-dom/scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="],
"node-dir/minimatch/brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="],
@@ -4662,7 +4709,7 @@
"react-email-starter/@react-email/components/@react-email/render": ["@react-email/render@1.0.3", "", { "dependencies": { "html-to-text": "9.0.5", "prettier": "3.3.3", "react-promise-suspense": "0.3.4" }, "peerDependencies": { "react": "^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-VQ8g4SuIq/jWdfBTdTjb7B8Np0jj+OoD7VebfdHhLTZzVQKesR2aigpYqE/ZXmwj4juVxDm8T2b6WIIu48rPCg=="],
- "react-email-starter/@types/react-dom/@types/react": ["@types/react@19.0.8", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw=="],
+ "react-email-starter/@types/react-dom/@types/react": ["@types/react@19.0.10", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g=="],
"react-email-starter/react-email/@babel/core": ["@babel/core@7.24.5", "", { "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.2", "@babel/generator": "^7.24.5", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-module-transforms": "^7.24.5", "@babel/helpers": "^7.24.5", "@babel/parser": "^7.24.5", "@babel/template": "^7.24.0", "@babel/traverse": "^7.24.5", "@babel/types": "^7.24.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA=="],
@@ -4672,7 +4719,7 @@
"react-email-starter/react-email/next": ["next@15.0.4", "", { "dependencies": { "@next/env": "15.0.4", "@swc/counter": "0.1.3", "@swc/helpers": "0.5.13", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "15.0.4", "@next/swc-darwin-x64": "15.0.4", "@next/swc-linux-arm64-gnu": "15.0.4", "@next/swc-linux-arm64-musl": "15.0.4", "@next/swc-linux-x64-gnu": "15.0.4", "@next/swc-linux-x64-musl": "15.0.4", "@next/swc-win32-arm64-msvc": "15.0.4", "@next/swc-win32-x64-msvc": "15.0.4", "sharp": "^0.33.5" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.41.2", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-66855b96-20241106 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-66855b96-20241106 || ^19.0.0", "sass": "^1.3.0" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-nuy8FH6M1FG0lktGotamQDCXhh5hZ19Vo0ht1AOIQWrYJLP598TIUagKtvJrfJ5AGwB/WmDqkKaKhMpVifvGPA=="],
- "react-email/@babel/core/@babel/parser": ["@babel/parser@7.26.7", "", { "dependencies": { "@babel/types": "^7.26.7" }, "bin": "./bin/babel-parser.js" }, "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w=="],
+ "react-email/@babel/core/@babel/parser": ["@babel/parser@7.26.10", "", { "dependencies": { "@babel/types": "^7.26.10" }, "bin": "./bin/babel-parser.js" }, "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA=="],
"react-email/@babel/core/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="],
@@ -4772,14 +4819,8 @@
"tar/fs-minipass/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="],
- "temp/rimraf/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="],
-
"test-exclude/minimatch/brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="],
- "webpack/schema-utils/ajv": ["ajv@6.12.6", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="],
-
- "webpack/schema-utils/ajv-keywords": ["ajv-keywords@3.5.2", "", { "peerDependencies": { "ajv": "^6.9.1" } }, "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ=="],
-
"@babel/highlight/chalk/ansi-styles/color-convert": ["color-convert@1.9.3", "", { "dependencies": { "color-name": "1.1.3" } }, "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="],
"@babel/highlight/chalk/supports-color/has-flag": ["has-flag@3.0.0", "", {}, "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="],
@@ -4812,14 +4853,24 @@
"@jest/reporters/glob/minimatch/brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="],
+ "@languine/web/languine/@trigger.dev/sdk/@trigger.dev/core": ["@trigger.dev/core@3.3.13", "", { "dependencies": { "@electric-sql/client": "1.0.0-beta.1", "@google-cloud/precise-date": "^4.0.0", "@jsonhero/path": "^1.0.21", "@opentelemetry/api": "1.9.0", "@opentelemetry/api-logs": "0.52.1", "@opentelemetry/exporter-logs-otlp-http": "0.52.1", "@opentelemetry/exporter-trace-otlp-http": "0.52.1", "@opentelemetry/instrumentation": "0.52.1", "@opentelemetry/resources": "1.25.1", "@opentelemetry/sdk-logs": "0.52.1", "@opentelemetry/sdk-node": "0.52.1", "@opentelemetry/sdk-trace-base": "1.25.1", "@opentelemetry/sdk-trace-node": "1.25.1", "@opentelemetry/semantic-conventions": "1.25.1", "dequal": "^2.0.3", "eventsource": "^3.0.5", "eventsource-parser": "^3.0.0", "execa": "^8.0.1", "humanize-duration": "^3.27.3", "jose": "^5.4.0", "nanoid": "^3.3.4", "socket.io-client": "4.7.5", "superjson": "^2.2.1", "zod": "3.23.8", "zod-error": "1.5.0", "zod-validation-error": "^1.5.0" } }, "sha512-3VU4YMS+RVCkfVXeUKSWlkVszgFK44tIknR9sHLYgetI714L3tgH47XBXJ3+/ZV5Y9Vvv6O6pRIuV7EEhzbexg=="],
+
"@manypkg/find-root/find-up/locate-path/p-locate": ["p-locate@4.1.0", "", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="],
"@react-native/babel-plugin-codegen/@react-native/codegen/glob/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="],
+ "@react-native/babel-plugin-codegen/@react-native/codegen/jscodeshift/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
+
+ "@react-native/babel-plugin-codegen/@react-native/codegen/jscodeshift/recast": ["recast@0.21.5", "", { "dependencies": { "ast-types": "0.15.2", "esprima": "~4.0.0", "source-map": "~0.6.1", "tslib": "^2.0.1" } }, "sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg=="],
+
"@react-native/babel-preset/babel-plugin-syntax-hermes-parser/hermes-parser/hermes-estree": ["hermes-estree@0.25.1", "", {}, "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw=="],
"@react-native/codegen/glob/minimatch/brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="],
+ "@react-native/codegen/jscodeshift/recast/ast-types": ["ast-types@0.15.2", "", { "dependencies": { "tslib": "^2.0.1" } }, "sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg=="],
+
+ "@react-native/codegen/jscodeshift/recast/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="],
+
"@react-native/community-cli-plugin/@react-native/dev-middleware/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="],
"@react-native/community-cli-plugin/@react-native/dev-middleware/open/is-docker": ["is-docker@2.2.1", "", { "bin": { "is-docker": "cli.js" } }, "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="],
@@ -4830,6 +4881,8 @@
"@react-native/metro-babel-transformer/@react-native/babel-preset/babel-plugin-syntax-hermes-parser/hermes-parser": ["hermes-parser@0.25.1", "", { "dependencies": { "hermes-estree": "0.25.1" } }, "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA=="],
+ "chromium-edge-launcher/rimraf/glob/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="],
+
"default-gateway/execa/cross-spawn/path-key": ["path-key@2.0.1", "", {}, "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw=="],
"default-gateway/execa/cross-spawn/semver": ["semver@5.7.2", "", { "bin": { "semver": "bin/semver" } }, "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="],
@@ -4840,6 +4893,8 @@
"default-gateway/execa/npm-run-path/path-key": ["path-key@2.0.1", "", {}, "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw=="],
+ "del/rimraf/glob/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="],
+
"find-cache-dir/pkg-dir/find-up/locate-path": ["locate-path@3.0.0", "", { "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" } }, "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A=="],
"fumadocs-core/shiki/@shikijs/engine-javascript/oniguruma-to-es": ["oniguruma-to-es@2.3.0", "", { "dependencies": { "emoji-regex-xs": "^1.0.0", "regex": "^5.1.1", "regex-recursion": "^5.1.1" } }, "sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g=="],
@@ -4862,19 +4917,19 @@
"jest-runtime/glob/minimatch/brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="],
- "my-app/languine/glob/jackspeak": ["jackspeak@4.0.2", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" } }, "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw=="],
+ "languine/@trigger.dev/sdk/@trigger.dev/core/zod": ["zod@3.23.8", "", {}, "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g=="],
+
+ "my-app/languine/glob/jackspeak": ["jackspeak@4.1.0", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" } }, "sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw=="],
"my-app/languine/glob/minimatch": ["minimatch@10.0.1", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ=="],
"my-app/languine/glob/path-scurry": ["path-scurry@2.0.0", "", { "dependencies": { "lru-cache": "^11.0.0", "minipass": "^7.1.2" } }, "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg=="],
- "my-app/languine/preferred-pm/which-pm": ["which-pm@3.0.0", "", { "dependencies": { "load-yaml-file": "^0.2.0" } }, "sha512-ysVYmw6+ZBhx3+ZkcPwRuJi38ZOTLJJ33PSHaitLxSKUMsh0LkKd0nC69zZCwt5D+AYUcMK2hhw4yWny20vSGg=="],
-
"pkg-dir/find-up/locate-path/p-locate": ["p-locate@4.1.0", "", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="],
"react-email-starter/@react-email/components/@react-email/render/prettier": ["prettier@3.3.3", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew=="],
- "react-email-starter/react-email/@babel/core/@babel/parser": ["@babel/parser@7.26.7", "", { "dependencies": { "@babel/types": "^7.26.7" }, "bin": "./bin/babel-parser.js" }, "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w=="],
+ "react-email-starter/react-email/@babel/core/@babel/parser": ["@babel/parser@7.26.10", "", { "dependencies": { "@babel/types": "^7.26.10" }, "bin": "./bin/babel-parser.js" }, "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA=="],
"react-email-starter/react-email/@babel/core/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="],
@@ -4954,10 +5009,6 @@
"tailwindcss/chokidar/readdirp/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="],
- "temp/rimraf/glob/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="],
-
- "webpack/schema-utils/ajv/json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="],
-
"@babel/highlight/chalk/ansi-styles/color-convert/color-name": ["color-name@1.1.3", "", {}, "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="],
"@expo/cli/ora/chalk/ansi-styles/color-convert": ["color-convert@1.9.3", "", { "dependencies": { "color-name": "1.1.3" } }, "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="],
@@ -4976,14 +5027,24 @@
"@expo/package-manager/ora/cli-cursor/restore-cursor/signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="],
+ "@languine/web/languine/@trigger.dev/sdk/@trigger.dev/core/zod": ["zod@3.23.8", "", {}, "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g=="],
+
"@react-native/babel-plugin-codegen/@react-native/codegen/glob/minimatch/brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="],
+ "@react-native/babel-plugin-codegen/@react-native/codegen/jscodeshift/recast/ast-types": ["ast-types@0.15.2", "", { "dependencies": { "tslib": "^2.0.1" } }, "sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg=="],
+
+ "@react-native/babel-plugin-codegen/@react-native/codegen/jscodeshift/recast/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="],
+
"@react-native/metro-babel-transformer/@react-native/babel-preset/babel-plugin-syntax-hermes-parser/hermes-parser/hermes-estree": ["hermes-estree@0.25.1", "", {}, "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw=="],
+ "chromium-edge-launcher/rimraf/glob/minimatch/brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="],
+
"default-gateway/execa/cross-spawn/shebang-command/shebang-regex": ["shebang-regex@1.0.0", "", {}, "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ=="],
"default-gateway/execa/cross-spawn/which/isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="],
+ "del/rimraf/glob/minimatch/brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="],
+
"find-cache-dir/pkg-dir/find-up/locate-path/p-locate": ["p-locate@3.0.0", "", { "dependencies": { "p-limit": "^2.0.0" } }, "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ=="],
"find-cache-dir/pkg-dir/find-up/locate-path/path-exists": ["path-exists@3.0.0", "", {}, "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ=="],
@@ -4994,8 +5055,6 @@
"my-app/languine/glob/path-scurry/lru-cache": ["lru-cache@11.0.2", "", {}, "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA=="],
- "temp/rimraf/glob/minimatch/brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="],
-
"@expo/cli/ora/chalk/ansi-styles/color-convert/color-name": ["color-name@1.1.3", "", {}, "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="],
"@expo/cli/ora/cli-cursor/restore-cursor/onetime/mimic-fn": ["mimic-fn@1.2.0", "", {}, "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="],
diff --git a/examples/ja/languine.json b/examples/ja/languine.json
new file mode 100644
index 00000000..5d7908b7
--- /dev/null
+++ b/examples/ja/languine.json
@@ -0,0 +1,16 @@
+{
+ "locale": {
+ "source": "en",
+ "targets": [
+ "ja",
+ "sv"
+ ]
+ },
+ "files": {
+ "json": {
+ "include": [
+ "src/locales/[locale].json"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/examples/ja/languine.lock b/examples/ja/languine.lock
new file mode 100644
index 00000000..5bc3a026
--- /dev/null
+++ b/examples/ja/languine.lock
@@ -0,0 +1,1796 @@
+version: 1
+files:
+ src/locales/en.json:
+ admin.activity.asset-management: 177512b9add0b40c38dad61838bf7d79
+ admin.activity.page-description: a514b7d785e4c4bfbdda6d51ee249dae
+ admin.activity.page-title: 0af652d4c797a0c6b75cff690129f572
+ admin.activity.tabs.recent-transactions: 7dcf626108cff172a473f896edb4e4a5
+ admin.activity.tabs.all-events: 1aafb073a1a78e52e044177f67da6615
+ admin.activity.view-all: b99a4bc8c7ecdb5caaeee49de859c4df
+ admin.bonds.burn-form.amount.amount-label: b2f40690858b404ed10e62bdf422c704
+ admin.bonds.burn-form.amount.available-balance: 1ffc1c904a2ff558869bfbbb0189f568
+ admin.bonds.burn-form.amount.description: 7b2bdac16ef466f0c8ed0881e2a5a68b
+ admin.bonds.burn-form.amount.title: 034f1f16f32db94ee6659289fdcaa4e8
+ admin.bonds.burn-form.button-label: b68e5744214cfc7b9952dc7051c57f64
+ admin.bonds.burn-form.description: 4135df08bf718f0ddd26882c0af91f82
+ admin.bonds.burn-form.summary.amount-label: b2f40690858b404ed10e62bdf422c704
+ admin.bonds.burn-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ admin.bonds.burn-form.summary.burn-description: 00a210a592d9dfdda0c40b509bbac3ce
+ admin.bonds.burn-form.summary.burn-title: 11635778f116ce6922f6068638a39028
+ admin.bonds.burn-form.summary.description: 257f30507f300d31fd6f9830e9e7ca9d
+ admin.bonds.burn-form.summary.title: efd63552d423e55585e0decff1af2e9f
+ admin.bonds.burn-form.title: 11635778f116ce6922f6068638a39028
+ admin.bonds.burn-form.trigger-label: 11635778f116ce6922f6068638a39028
+ admin.bonds.charts.asset-statistics-title: e117a0fa6d1102a4b1c678be9ba8662a
+ admin.bonds.create-form.basics.decimals-label: 2b417805040de3a3df31c8fd3626b57c
+ admin.bonds.create-form.basics.description: b0742cacc1c17a8794e7f651b762cd8a
+ admin.bonds.create-form.basics.isin-label: d03440b351474d0b1a3f851c3453e8de
+ admin.bonds.create-form.basics.isin-placeholder: a6842cfe527618d92aa58224a1b4bdd1
+ admin.bonds.create-form.basics.name-label: 006fff97d9814f16f47094b92d84d530
+ admin.bonds.create-form.basics.name-placeholder: 26a5cef6b6295d08e072fe733bec429d
+ admin.bonds.create-form.basics.symbol-label: 02c86eb2792f3262c21d030a87e19793
+ admin.bonds.create-form.basics.symbol-placeholder: 0c886633cc0ae5805b99ac04fc8d8c57
+ admin.bonds.create-form.basics.title: 807402b2447c57bd90060f83ba51c561
+ admin.bonds.create-form.button-label: b38c95d64d359f3d59cad0069599499a
+ admin.bonds.create-form.configuration.cap-description: 82b7fe1f7cfda8c9e489661cf1b0d016
+ admin.bonds.create-form.configuration.cap-label: f04f4fa8773b053c388af823485c70ea
+ admin.bonds.create-form.configuration.description: 377c0ceb37533c6f3a30568045963324
+ admin.bonds.create-form.configuration.face-value-description: 8359efae5642725a87ec694fb7c63676
+ admin.bonds.create-form.configuration.face-value-label: 9648169bfdd6e7a7dc351cd67d6cad72
+ admin.bonds.create-form.configuration.maturity-date-label: 0e205b0497cc6814692de018ab2ab3f9
+ admin.bonds.create-form.configuration.title: f8a901f4f21ee6409e5c5fb8100180fd
+ admin.bonds.create-form.configuration.underlying-asset-description: 1925f8f66c852c579a49dd45ece2ea92
+ admin.bonds.create-form.configuration.underlying-asset-label: 7b350ed595b03937afb12262eb0f0960
+ admin.bonds.create-form.description: 2867ea15b4c62680596f429502ee26ac
+ admin.bonds.create-form.summary.asset-basics-description: d6b6e2223792a9724f82f6cd54edfc45
+ admin.bonds.create-form.summary.asset-basics-title: 807402b2447c57bd90060f83ba51c561
+ admin.bonds.create-form.summary.cap-label: f04f4fa8773b053c388af823485c70ea
+ admin.bonds.create-form.summary.configuration-description: 4f9b26aae8d6aa509738292dbf277c0e
+ admin.bonds.create-form.summary.configuration-title: f8a901f4f21ee6409e5c5fb8100180fd
+ admin.bonds.create-form.summary.decimals-label: 2b417805040de3a3df31c8fd3626b57c
+ admin.bonds.create-form.summary.description: 5c4286f4bcc28dc4376a4fe859de2431
+ admin.bonds.create-form.summary.face-value-label: 9648169bfdd6e7a7dc351cd67d6cad72
+ admin.bonds.create-form.summary.isin-label: d03440b351474d0b1a3f851c3453e8de
+ admin.bonds.create-form.summary.maturity-date-label: 0e205b0497cc6814692de018ab2ab3f9
+ admin.bonds.create-form.summary.name-label: 49ee3087348e8d44e1feda1917443987
+ admin.bonds.create-form.summary.symbol-label: 02c86eb2792f3262c21d030a87e19793
+ admin.bonds.create-form.summary.title: 7a347de1c6bc1d7b6abbf6bef2f05646
+ admin.bonds.create-form.summary.underlying-asset-label: 7b350ed595b03937afb12262eb0f0960
+ admin.bonds.create-form.summary.error-duplicate: ff2cc246c800bf8188db507538240fbc
+ admin.bonds.create-form.title: e9da0b3cdedca192d5912869d0b1a506
+ admin.bonds.create-form.trigger-label: b38c95d64d359f3d59cad0069599499a
+ admin.bonds.details.bond-details-description: 6fe654c414bea421430a6e5714f8d072
+ admin.bonds.details.contract-address: d7e1286efec604c15ddab7ef2b290021
+ admin.bonds.details.creator: ef1d00d8a237a1bbe431e1091f5715fb
+ admin.bonds.details.decimals: 2b417805040de3a3df31c8fd3626b57c
+ admin.bonds.details.details-page-description: 251f2c1338c55dda4a44eb39a80119bd
+ admin.bonds.details.details-page-title: 10627983af012986942742dd5c395d41
+ admin.bonds.details.isin: d03440b351474d0b1a3f851c3453e8de
+ admin.bonds.details.name: 49ee3087348e8d44e1feda1917443987
+ admin.bonds.details.ownership-concentration: e90da81b8fd18fc54589986f308f5257
+ admin.bonds.details.ownership-concentration-info: b90d646020637b7ba884ed881516b76c
+ admin.bonds.details.symbol: 02c86eb2792f3262c21d030a87e19793
+ admin.bonds.details.total-supply: 1ecae95c3c8f236721cce5b740b2deaa
+ admin.bonds.details.total-supply-info: 2138711f691fc996de09dbdbbe64b888
+ admin.bonds.events.events-page-description: 74bfa3b3059aae49e2d5f6133da5843b
+ admin.bonds.events.events-page-title: 1e2a7b7b6ebe4d77c942463f560e60b3
+ admin.bonds.grant-role-form.address.address-label: 2f2c367f2d983a644073e56b65450d07
+ admin.bonds.grant-role-form.address.description: 1f43ded6b233f15cc30303f2208f2c43
+ admin.bonds.grant-role-form.address.manual-placeholder: 3d97f638880bade26500cbcd3d1c7bdf
+ admin.bonds.grant-role-form.address.manual-toggle: 9155c6f94f857b0d309c17621bcc128f
+ admin.bonds.grant-role-form.address.search-placeholder: 0b04832b113b2d7bcde8d214587f5879
+ admin.bonds.grant-role-form.address.search-toggle: 79a26d6aa989e2bc91a4adfe055a87ea
+ admin.bonds.grant-role-form.address.title: 1997616495719b4fc3787ba946a3f29e
+ admin.bonds.grant-role-form.button-label: 8bf93064b20e5563e57b77d8c7248c2c
+ admin.bonds.grant-role-form.description: e470b2493fd45aa303f48dd8babf8ca5
+ admin.bonds.grant-role-form.roles.description: 957b070312674eb7701105aa8fb577c1
+ admin.bonds.grant-role-form.roles.title: 8e5722429436e163eae9180dfd1f3454
+ admin.bonds.grant-role-form.summary.admin-address-label: 01467d85d5db44b441098e721f4178ca
+ admin.bonds.grant-role-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ admin.bonds.grant-role-form.summary.description: 9e8f2a5b336124448c3b8a5fe43c6f80
+ admin.bonds.grant-role-form.summary.grant-description: f1891b1b2f31dd5b3bbd0e304e5aa914
+ admin.bonds.grant-role-form.summary.grant-title: a642a0c57033418f58cb99b1cbef03fa
+ admin.bonds.grant-role-form.summary.roles-label: a5cd3ed116608dac017f14c046ea56bf
+ admin.bonds.grant-role-form.summary.title: 613eda63424c1855fbea7d6f52be5538
+ admin.bonds.grant-role-form.title: a642a0c57033418f58cb99b1cbef03fa
+ admin.bonds.manage.actions.mint: ca8a196f97a48b2bb489f3e849a68418
+ admin.bonds.manage.actions.burn: 11635778f116ce6922f6068638a39028
+ admin.bonds.manage.actions.pause: 105b296a83f9c105355403f3332af50f
+ admin.bonds.manage.actions.unpause: 648ff76ea7617136d7a5e0cbff92606f
+ admin.bonds.manage.actions.grant-role: bac0578e46858f11520c7e9bee9a99b8
+ admin.bonds.manage.actions.top-up: fe78ae36bcc34ca65ee09c476aa18354
+ admin.bonds.manage.actions.withdraw: 1906bcf11935ff012a66bb1e1ab12699
+ admin.bonds.manage.actions.mature: c4c379f627f36930fe794eb5e2a63d74
+ admin.bonds.manage.manage: 34e34c43ec6b943c10a3cc1a1a16fb11
+ admin.bonds.mint-form.amount.amount-label: b2f40690858b404ed10e62bdf422c704
+ admin.bonds.mint-form.amount.description: de023495109b6579a169c08395cd7b79
+ admin.bonds.mint-form.amount.title: 034f1f16f32db94ee6659289fdcaa4e8
+ admin.bonds.mint-form.recipients.title: 8f419c48506f3cf74a150f1f5257d6e7
+ admin.bonds.mint-form.recipients.description: 8a988479c1cfbc8efd6ac24eefeca58f
+ admin.bonds.mint-form.button-label: a56a33e9d62236e12e5f461161692098
+ admin.bonds.mint-form.description: 2211849262ac534b3a9fe5293a913a74
+ admin.bonds.mint-form.summary.amount-label: b2f40690858b404ed10e62bdf422c704
+ admin.bonds.mint-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ admin.bonds.mint-form.summary.description: 51b13c1547989e0a4c7d173cf623dbfa
+ admin.bonds.mint-form.summary.mint-description: 7dc13461b1dea02487b94a2c813dd921
+ admin.bonds.mint-form.summary.mint-title: ca8a196f97a48b2bb489f3e849a68418
+ admin.bonds.mint-form.summary.title: 7aa68f5c56e88b9f265aed105098eca2
+ admin.bonds.mint-form.title: ca8a196f97a48b2bb489f3e849a68418
+ admin.bonds.mint-form.trigger-label: ca8a196f97a48b2bb489f3e849a68418
+ admin.bonds.pause-form.pause.button-label: 7775d162c76dbb2ba95f7b69109e371b
+ admin.bonds.pause-form.pause.description: 30ab74766762fff4c3ca0aed20a5cd39
+ admin.bonds.pause-form.pause.title: 21acbbdbfe1a25a5b1fe048a857cdc72
+ admin.bonds.pause-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ admin.bonds.pause-form.summary.current-state-label: 48358648336d501e2336d5360a559533
+ admin.bonds.pause-form.summary.description: b67014d6fcaab53aaff5da952ccf8d37
+ admin.bonds.pause-form.summary.pause-description: 235595e65afe8600c98393abfad6940c
+ admin.bonds.pause-form.summary.pause-title: 105b296a83f9c105355403f3332af50f
+ admin.bonds.pause-form.summary.state-active: 4d3d769b812b6faa6b76e1a8abaece2d
+ admin.bonds.pause-form.summary.state-paused: e99180abf47a8b3a856e0bcb2656990a
+ admin.bonds.pause-form.summary.target-state-label: f700b6febc2ba7f13df9e88e0c0b3a5f
+ admin.bonds.pause-form.summary.title: 73ce5baae076cd663117259d8581e7cc
+ admin.bonds.pause-form.unpause.button-label: c0c4ee2db5445d612d70f9759ce018ae
+ admin.bonds.pause-form.unpause.description: 9d6d0992343d378e035f0714bd4c4778
+ admin.bonds.pause-form.unpause.title: ec5d507df6f0997ebeef2a36c74970c3
+ admin.bonds.related-actions.decrease-supply.description: 112ef82d75127985c8c5bc023b8eedd5
+ admin.bonds.related-actions.decrease-supply.title: d303b147694533461cca87fa2aba8aa2
+ admin.bonds.related-actions.increase-supply.description: 40dd3387c8d704ce436d88f59b28ab7f
+ admin.bonds.related-actions.increase-supply.title: 511690dfe4e1c90c69ecfe87e092ebf8
+ admin.bonds.related-actions.title: 0a5bafcb047751c696456bbf5f2ff673
+ admin.bonds.table.actions-header: 06df33001c1d7187fdd81ea1f5b277aa
+ admin.bonds.table.address-header: dd7bf230fde8d4836917806aff6a6b27
+ admin.bonds.table.asset-management: 177512b9add0b40c38dad61838bf7d79
+ admin.bonds.table.name-header: 49ee3087348e8d44e1feda1917443987
+ admin.bonds.table.page-description: 2c03586967df69dcde168da0cf88e920
+ admin.bonds.table.page-title: 02874ad9feff5092f18b841f8be055cf
+ admin.bonds.table.private-header: 47f9082fc380ca62d531096aa1d110f1
+ admin.bonds.table.private-status: 47f9082fc380ca62d531096aa1d110f1
+ admin.bonds.table.public-status: 3d067bedfe2f4677470dd6ccf64d05ed
+ admin.bonds.table.related-actions.issue-new.description: e44ca2106a431321e5def542ebf7aa7d
+ admin.bonds.table.related-actions.issue-new.title: 7c0e6619fc4ec60325fedb518b433011
+ admin.bonds.table.related-actions.mechanics.button: d59048f21fd887ad520398ce677be586
+ admin.bonds.table.related-actions.mechanics.description: 1fe5eb3d1ab777244ba0bf3fe4ded59f
+ admin.bonds.table.related-actions.mechanics.title: e5661db766c7cdf1582e97e3d1b0e0ea
+ admin.bonds.table.related-actions.title: a2005fe8651d38ccc7a7e285d2e51db8
+ admin.bonds.table.related-actions.usecases.button: 1819001b72329e2ef5799fe504238035
+ admin.bonds.table.related-actions.usecases.description: 38f7199cb47c175c86a21550365eb9a4
+ admin.bonds.table.related-actions.usecases.title: f4abb8248062c95051454f4f60d290a3
+ admin.bonds.table.status-header: ec53a8c4f07baed5d8825072c89799be
+ admin.bonds.table.symbol-header: 02c86eb2792f3262c21d030a87e19793
+ admin.bonds.table.topinfo-description: 02f83369cc0b4196389a63173ca6394a
+ admin.bonds.table.topinfo-title: 9c7082a1716b0aaa413358023fab9f05
+ admin.bonds.table.total-supply-header: 1ecae95c3c8f236721cce5b740b2deaa
+ admin.bonds.tabs.details: 3ec365dd533ddb7ef3d1c111186ce872
+ admin.bonds.tabs.events: 87f9f735a1d36793ceaecd4e47124b63
+ admin.bonds.tabs.holders: b099a5b6f9f22eac61e7e3176ff002c7
+ admin.bonds.tabs.permissions: d08ccf52b4cdd08e41cfb99ec42e0b29
+ admin.bonds.top-up-form.trigger-label: 1b25fcd2acf8f03e781eb8a90d526084
+ admin.bonds.top-up-form.title: fe78ae36bcc34ca65ee09c476aa18354
+ admin.bonds.top-up-form.description: 9093934e1686ad126e32e39451ea9084
+ admin.bonds.top-up-form.button-label: 1b25fcd2acf8f03e781eb8a90d526084
+ admin.bonds.top-up-form.steps.amount.title: b532ac7cec0ae5c3f43336a77ac1ed25
+ admin.bonds.top-up-form.steps.amount.description: c2982143100545ac7b6b0f4850effb4c
+ admin.bonds.top-up-form.steps.amount.amount.label: b2f40690858b404ed10e62bdf422c704
+ admin.bonds.top-up-form.steps.amount.amount.description: 3264b21be18b58cfb8e674aed782d748
+ admin.bonds.top-up-form.steps.summary.title: df87a9f67b9ead221cee4e4fc8f61140
+ admin.bonds.top-up-form.steps.summary.description: fe38577c53b471a1db82f07f555f0599
+ admin.bonds.top-up-form.steps.summary.amount-label: b2f40690858b404ed10e62bdf422c704
+ admin.bonds.top-up-form.steps.summary.asset-label: 7b350ed595b03937afb12262eb0f0960
+ admin.bonds.top-up-form.steps.summary.pincode.label: 807b32b36687ebcc5e82a5d1c1e2a0f2
+ admin.bonds.top-up-form.steps.summary.pincode.description: 6f4fd4afdebf3d2fc0fbe7c8fedb635a
+ admin.bonds.withdraw-form.trigger-label: 9d5dbce7d87cede9e0224bb3a48ca1d7
+ admin.bonds.withdraw-form.title: 1906bcf11935ff012a66bb1e1ab12699
+ admin.bonds.withdraw-form.description: 2dc13824b46ead3e09350ef66a3ae6a5
+ admin.bonds.withdraw-form.button-label: 9d5dbce7d87cede9e0224bb3a48ca1d7
+ admin.bonds.withdraw-form.steps.recipient.title: 8874514d5a5785a774a05021d6891f45
+ admin.bonds.withdraw-form.steps.recipient.description: ada3cde593f5a1d632d9ee2ae39fe075
+ admin.bonds.withdraw-form.steps.recipient.label: 5d6103b662f41b07e10687f03aca8fdc
+ admin.bonds.withdraw-form.steps.recipient.placeholder: bac6577277b4e58051e20a5be9075c0b
+ admin.bonds.withdraw-form.steps.recipient.search-instead: 79a26d6aa989e2bc91a4adfe055a87ea
+ admin.bonds.withdraw-form.steps.recipient.manual-instead: 9155c6f94f857b0d309c17621bcc128f
+ admin.bonds.withdraw-form.steps.amount.title: b532ac7cec0ae5c3f43336a77ac1ed25
+ admin.bonds.withdraw-form.steps.amount.description: 15b07676d24a34aba91704afe494a795
+ admin.bonds.withdraw-form.steps.amount.amount.label: b2f40690858b404ed10e62bdf422c704
+ admin.bonds.withdraw-form.steps.amount.amount.description: 8efb6dc8b1fd2288a1803683eaf92fd3
+ admin.bonds.withdraw-form.steps.summary.title: 9e721e4b0c583c1354368c0f6b593e2e
+ admin.bonds.withdraw-form.steps.summary.description: 2fb4cc38bb8c9e4f49e723ef74567663
+ admin.bonds.withdraw-form.steps.summary.recipient-label: 5d6103b662f41b07e10687f03aca8fdc
+ admin.bonds.withdraw-form.steps.summary.amount-label: b2f40690858b404ed10e62bdf422c704
+ admin.bonds.withdraw-form.steps.summary.asset-label: 7b350ed595b03937afb12262eb0f0960
+ admin.bonds.withdraw-form.steps.summary.pincode.label: 807b32b36687ebcc5e82a5d1c1e2a0f2
+ admin.bonds.withdraw-form.steps.summary.pincode.description: 6f4fd4afdebf3d2fc0fbe7c8fedb635a
+ admin.bonds.mature-form.trigger-label: c4c379f627f36930fe794eb5e2a63d74
+ admin.bonds.mature-form.title: 0b6257946a70252e449d7802abbf38c5
+ admin.bonds.mature-form.description: f6c210387a1f441e007cb4f1b2a16b5e
+ admin.bonds.mature-form.button-label: 0b6257946a70252e449d7802abbf38c5
+ admin.bonds.mature-form.summary.title: 49c58fddccd109d98e5bee3c288687f2
+ admin.bonds.mature-form.summary.description: 7b5cce5a81e39fb9d40ee15c6f232593
+ admin.bonds.mature-form.summary.mature-title: c4c379f627f36930fe794eb5e2a63d74
+ admin.bonds.mature-form.summary.mature-description: 6780d2dfe1c60c58473076fc8acdff33
+ admin.bonds.mature-form.summary.asset-label: 7a3b691731db2969498907b960183633
+ admin.cryptocurrencies.burn-form.amount.amount-label: b2f40690858b404ed10e62bdf422c704
+ admin.cryptocurrencies.burn-form.amount.available-balance: 1ffc1c904a2ff558869bfbbb0189f568
+ admin.cryptocurrencies.burn-form.amount.description: 7b2bdac16ef466f0c8ed0881e2a5a68b
+ admin.cryptocurrencies.burn-form.amount.title: 034f1f16f32db94ee6659289fdcaa4e8
+ admin.cryptocurrencies.burn-form.button-label: b68e5744214cfc7b9952dc7051c57f64
+ admin.cryptocurrencies.burn-form.description: eaf555f302974fd462f7302492d52a23
+ admin.cryptocurrencies.burn-form.summary.amount-label: b2f40690858b404ed10e62bdf422c704
+ admin.cryptocurrencies.burn-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ admin.cryptocurrencies.burn-form.summary.burn-description: 00a210a592d9dfdda0c40b509bbac3ce
+ admin.cryptocurrencies.burn-form.summary.burn-title: 11635778f116ce6922f6068638a39028
+ admin.cryptocurrencies.burn-form.summary.description: 257f30507f300d31fd6f9830e9e7ca9d
+ admin.cryptocurrencies.burn-form.summary.title: efd63552d423e55585e0decff1af2e9f
+ admin.cryptocurrencies.burn-form.title: 11635778f116ce6922f6068638a39028
+ admin.cryptocurrencies.burn-form.trigger-label: 11635778f116ce6922f6068638a39028
+ admin.cryptocurrencies.charts.asset-statistics-title: e117a0fa6d1102a4b1c678be9ba8662a
+ admin.cryptocurrencies.create-form.basics.decimals-label: 2b417805040de3a3df31c8fd3626b57c
+ admin.cryptocurrencies.create-form.basics.description: 12c94d87d53adb8188f706ba741c0002
+ admin.cryptocurrencies.create-form.basics.isin-label: d03440b351474d0b1a3f851c3453e8de
+ admin.cryptocurrencies.create-form.basics.isin-placeholder: 0f01286bb299bacd39f76828df9e64a5
+ admin.cryptocurrencies.create-form.basics.name-label: 49ee3087348e8d44e1feda1917443987
+ admin.cryptocurrencies.create-form.basics.name-placeholder: d023ec040f79f1a9b2ac960b43785089
+ admin.cryptocurrencies.create-form.basics.symbol-label: 02c86eb2792f3262c21d030a87e19793
+ admin.cryptocurrencies.create-form.basics.symbol-placeholder: 4b9169eb3e07e0e885eb62f7bfc41a33
+ admin.cryptocurrencies.create-form.basics.title: 87cabb0c5e5abac7a37df3f21bf09d17
+ admin.cryptocurrencies.create-form.button-label: 3e15a776bcf13c6c55f1dba304804bac
+ admin.cryptocurrencies.create-form.configuration.description: 2325573841d981d35143e13a19fbf5d1
+ admin.cryptocurrencies.create-form.configuration.initial-supply-description: de01307111ed9250d01951178971e503
+ admin.cryptocurrencies.create-form.configuration.initial-supply-label: 4f6f26332f9363855504abe6fc797354
+ admin.cryptocurrencies.create-form.configuration.title: 254f642527b45bc260048e30704edb39
+ admin.cryptocurrencies.create-form.description: e1b87c5568b752a23e5c6768a8cd35b0
+ admin.cryptocurrencies.create-form.summary.asset-basics-description: 8c1b1f7b456f832a2b00d3352b7542c5
+ admin.cryptocurrencies.create-form.summary.asset-basics-title: 7f5c9260cb98413030db829edc806293
+ admin.cryptocurrencies.create-form.summary.configuration-description: df7b72ef2345288f05ab0096f535c5b4
+ admin.cryptocurrencies.create-form.summary.configuration-title: 254f642527b45bc260048e30704edb39
+ admin.cryptocurrencies.create-form.summary.decimals-label: 2b417805040de3a3df31c8fd3626b57c
+ admin.cryptocurrencies.create-form.summary.description: a819eefda8014fcdf03859c0cc4a25cd
+ admin.cryptocurrencies.create-form.summary.initial-supply-label: 4f6f26332f9363855504abe6fc797354
+ admin.cryptocurrencies.create-form.summary.isin-label: d03440b351474d0b1a3f851c3453e8de
+ admin.cryptocurrencies.create-form.summary.name-label: 49ee3087348e8d44e1feda1917443987
+ admin.cryptocurrencies.create-form.summary.no: bafd7322c6e97d25b6299b5d6fe8920b
+ admin.cryptocurrencies.create-form.summary.private-label: 47f9082fc380ca62d531096aa1d110f1
+ admin.cryptocurrencies.create-form.summary.symbol-label: 02c86eb2792f3262c21d030a87e19793
+ admin.cryptocurrencies.create-form.summary.title: 7a347de1c6bc1d7b6abbf6bef2f05646
+ admin.cryptocurrencies.create-form.summary.yes: 93cba07454f06a4a960172bbd6e2a435
+ admin.cryptocurrencies.create-form.summary.error-duplicate: 85cf0ed8a0e00370b46bf434f73b97b2
+ admin.cryptocurrencies.create-form.title: 82011c781a201b4efcdaec70460023b0
+ admin.cryptocurrencies.create-form.trigger-label: 3e15a776bcf13c6c55f1dba304804bac
+ admin.cryptocurrencies.details.contract-address: d7e1286efec604c15ddab7ef2b290021
+ admin.cryptocurrencies.details.creator: ef1d00d8a237a1bbe431e1091f5715fb
+ admin.cryptocurrencies.details.cryptocurrency-details-description: 8d320431488cb42f57d36f8554024810
+ admin.cryptocurrencies.details.decimals: 2b417805040de3a3df31c8fd3626b57c
+ admin.cryptocurrencies.details.details-page-description: 251f2c1338c55dda4a44eb39a80119bd
+ admin.cryptocurrencies.details.details-page-title: 10627983af012986942742dd5c395d41
+ admin.cryptocurrencies.details.name: 49ee3087348e8d44e1feda1917443987
+ admin.cryptocurrencies.details.ownership-concentration: e90da81b8fd18fc54589986f308f5257
+ admin.cryptocurrencies.details.ownership-concentration-info: b90d646020637b7ba884ed881516b76c
+ admin.cryptocurrencies.details.symbol: 02c86eb2792f3262c21d030a87e19793
+ admin.cryptocurrencies.details.total-supply: 1ecae95c3c8f236721cce5b740b2deaa
+ admin.cryptocurrencies.details.total-supply-info: 2138711f691fc996de09dbdbbe64b888
+ admin.cryptocurrencies.events.events-page-description: 6b90fd0a4943ac68576fe950e47826d9
+ admin.cryptocurrencies.events.events-page-title: 1e2a7b7b6ebe4d77c942463f560e60b3
+ admin.cryptocurrencies.grant-role-form.address.address-label: 2f2c367f2d983a644073e56b65450d07
+ admin.cryptocurrencies.grant-role-form.address.description: 1f43ded6b233f15cc30303f2208f2c43
+ admin.cryptocurrencies.grant-role-form.address.manual-placeholder: 3d97f638880bade26500cbcd3d1c7bdf
+ admin.cryptocurrencies.grant-role-form.address.manual-toggle: 9155c6f94f857b0d309c17621bcc128f
+ admin.cryptocurrencies.grant-role-form.address.search-placeholder: 0b04832b113b2d7bcde8d214587f5879
+ admin.cryptocurrencies.grant-role-form.address.search-toggle: 79a26d6aa989e2bc91a4adfe055a87ea
+ admin.cryptocurrencies.grant-role-form.address.title: 1997616495719b4fc3787ba946a3f29e
+ admin.cryptocurrencies.grant-role-form.button-label: 8bf93064b20e5563e57b77d8c7248c2c
+ admin.cryptocurrencies.grant-role-form.description: e470b2493fd45aa303f48dd8babf8ca5
+ admin.cryptocurrencies.grant-role-form.roles.description: 957b070312674eb7701105aa8fb577c1
+ admin.cryptocurrencies.grant-role-form.roles.title: 8e5722429436e163eae9180dfd1f3454
+ admin.cryptocurrencies.grant-role-form.summary.admin-address-label: 01467d85d5db44b441098e721f4178ca
+ admin.cryptocurrencies.grant-role-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ admin.cryptocurrencies.grant-role-form.summary.description: 9e8f2a5b336124448c3b8a5fe43c6f80
+ admin.cryptocurrencies.grant-role-form.summary.grant-description: f1891b1b2f31dd5b3bbd0e304e5aa914
+ admin.cryptocurrencies.grant-role-form.summary.grant-title: a642a0c57033418f58cb99b1cbef03fa
+ admin.cryptocurrencies.grant-role-form.summary.roles-label: a5cd3ed116608dac017f14c046ea56bf
+ admin.cryptocurrencies.grant-role-form.summary.title: 613eda63424c1855fbea7d6f52be5538
+ admin.cryptocurrencies.grant-role-form.title: a642a0c57033418f58cb99b1cbef03fa
+ admin.cryptocurrencies.manage.actions.grant-role: a642a0c57033418f58cb99b1cbef03fa
+ admin.cryptocurrencies.manage.actions.mint: ca8a196f97a48b2bb489f3e849a68418
+ admin.cryptocurrencies.manage.manage: 34e34c43ec6b943c10a3cc1a1a16fb11
+ admin.cryptocurrencies.mint-form.amount.amount-label: b2f40690858b404ed10e62bdf422c704
+ admin.cryptocurrencies.mint-form.amount.description: de023495109b6579a169c08395cd7b79
+ admin.cryptocurrencies.mint-form.amount.title: 034f1f16f32db94ee6659289fdcaa4e8
+ admin.cryptocurrencies.mint-form.recipients.title: 8f419c48506f3cf74a150f1f5257d6e7
+ admin.cryptocurrencies.mint-form.recipients.description: 8a988479c1cfbc8efd6ac24eefeca58f
+ admin.cryptocurrencies.mint-form.button-label: a56a33e9d62236e12e5f461161692098
+ admin.cryptocurrencies.mint-form.description: d1b127bb6c5b92b2fb8247fc3b05cd58
+ admin.cryptocurrencies.mint-form.summary.amount-label: b2f40690858b404ed10e62bdf422c704
+ admin.cryptocurrencies.mint-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ admin.cryptocurrencies.mint-form.summary.description: 51b13c1547989e0a4c7d173cf623dbfa
+ admin.cryptocurrencies.mint-form.summary.mint-description: 7dc13461b1dea02487b94a2c813dd921
+ admin.cryptocurrencies.mint-form.summary.mint-title: ca8a196f97a48b2bb489f3e849a68418
+ admin.cryptocurrencies.mint-form.summary.title: 7aa68f5c56e88b9f265aed105098eca2
+ admin.cryptocurrencies.mint-form.title: ca8a196f97a48b2bb489f3e849a68418
+ admin.cryptocurrencies.mint-form.trigger-label: ca8a196f97a48b2bb489f3e849a68418
+ admin.cryptocurrencies.related-actions.increase-supply.description: d4edb7869f8043845a41fb0a3d4175fb
+ admin.cryptocurrencies.related-actions.increase-supply.title: f8730cec73aec466d31a1619c9977929
+ admin.cryptocurrencies.related-actions.title: 0a5bafcb047751c696456bbf5f2ff673
+ admin.cryptocurrencies.table.actions-header: 06df33001c1d7187fdd81ea1f5b277aa
+ admin.cryptocurrencies.table.address-header: dd7bf230fde8d4836917806aff6a6b27
+ admin.cryptocurrencies.table.asset-management: 177512b9add0b40c38dad61838bf7d79
+ admin.cryptocurrencies.table.name-header: 49ee3087348e8d44e1feda1917443987
+ admin.cryptocurrencies.table.page-description: 94cc72cab1ddaea6cc06b5d226ea23cd
+ admin.cryptocurrencies.table.page-title: 69ab3e648e5586bd2a099fc9b21b7440
+ admin.cryptocurrencies.table.private-header: 47f9082fc380ca62d531096aa1d110f1
+ admin.cryptocurrencies.table.private-status: 47f9082fc380ca62d531096aa1d110f1
+ admin.cryptocurrencies.table.public-status: 3d067bedfe2f4677470dd6ccf64d05ed
+ admin.cryptocurrencies.table.related-actions.issue-new.description: 1a0c32a918f8cf4aa9f8ceca4a0c19db
+ admin.cryptocurrencies.table.related-actions.issue-new.title: aecff45251b7bd3904933981d3fb6915
+ admin.cryptocurrencies.table.related-actions.mechanics.button: d59048f21fd887ad520398ce677be586
+ admin.cryptocurrencies.table.related-actions.mechanics.description: 91a9fd4b06db3e7208bbca5b5d5c5f68
+ admin.cryptocurrencies.table.related-actions.mechanics.title: ab607c63c3666ec8b7d1a853a613bf7b
+ admin.cryptocurrencies.table.related-actions.title: a2005fe8651d38ccc7a7e285d2e51db8
+ admin.cryptocurrencies.table.related-actions.usecases.button: 1819001b72329e2ef5799fe504238035
+ admin.cryptocurrencies.table.related-actions.usecases.description: 0684d67339d6594ff0776c2029dc7f41
+ admin.cryptocurrencies.table.related-actions.usecases.title: d4f78c154449e3c5348c883dac052bf3
+ admin.cryptocurrencies.table.symbol-header: 02c86eb2792f3262c21d030a87e19793
+ admin.cryptocurrencies.table.topinfo-description: 32f6c295a1eb4b1917c52640a63c9fd6
+ admin.cryptocurrencies.table.topinfo-title: 808b05e1459f37a892dbbf0b7ff4f09c
+ admin.cryptocurrencies.table.total-supply-header: 7ca9416c0e8045c2d9561012e42c4d15
+ admin.cryptocurrencies.tabs.details: 3ec365dd533ddb7ef3d1c111186ce872
+ admin.cryptocurrencies.tabs.events: 87f9f735a1d36793ceaecd4e47124b63
+ admin.cryptocurrencies.tabs.holders: b099a5b6f9f22eac61e7e3176ff002c7
+ admin.cryptocurrencies.tabs.permissions: d08ccf52b4cdd08e41cfb99ec42e0b29
+ admin.cryptocurrencies.tabs.underlying-assets: 513b5e27362967b94ab332c4f3790a4f
+ admin.dashboard.charts.asset-activity.burn: 11635778f116ce6922f6068638a39028
+ admin.dashboard.charts.asset-activity.description: 0af652d4c797a0c6b75cff690129f572
+ admin.dashboard.charts.asset-activity.mint: ca8a196f97a48b2bb489f3e849a68418
+ admin.dashboard.charts.asset-activity.title: 0af652d4c797a0c6b75cff690129f572
+ admin.dashboard.charts.asset-activity.transfer: 6950810f0d2bba97a6f710c7b965b84e
+ admin.dashboard.charts.asset-types.bonds: b98e3a37b62f7207c8a0a27e0c0d8777
+ admin.dashboard.charts.asset-types.cryptocurrencies: 69ab3e648e5586bd2a099fc9b21b7440
+ admin.dashboard.charts.asset-types.equities: f38992a52cef8611666b2db431b493a6
+ admin.dashboard.charts.asset-types.funds: d42b2bb7ac17fc34a099909c0a2f1de9
+ admin.dashboard.charts.asset-types.stablecoins: 2f7d136a5b9efb222650243b1d38b6ff
+ admin.dashboard.charts.assets-supply.description: cebd7e01de0cd31b3c8f27428ab5ac76
+ admin.dashboard.charts.assets-supply.label: 9aedeaf1f77b8642abe528503b8c5de8
+ admin.dashboard.charts.assets-supply.title: cebd7e01de0cd31b3c8f27428ab5ac76
+ admin.dashboard.charts.transaction-history.description: ed431c9f4d10a2ead0eb3643f5e33f33
+ admin.dashboard.charts.transaction-history.label: 31112aca11d0e9e6eb7db96f317dda49
+ admin.dashboard.charts.transaction-history.title: ed431c9f4d10a2ead0eb3643f5e33f33
+ admin.dashboard.charts.users-history.description: 44fb29646871b901dd1d53849d62a43e
+ admin.dashboard.charts.users-history.label: f9aae5fda8d810a29f12d1e61b4ab25f
+ admin.dashboard.charts.users-history.title: 44fb29646871b901dd1d53849d62a43e
+ admin.dashboard.page.asset-management: 177512b9add0b40c38dad61838bf7d79
+ admin.dashboard.page.description: 0205b0dd64032285b929ef0dd5c6ac11
+ admin.dashboard.page.latest-events-heading: 8b0807a79d36ca9fece2ab62e26bdd9f
+ admin.dashboard.page.my-portfolio: 654b240dd044565e9ba2ff98858003c3
+ admin.dashboard.page.stats-heading: 452a7601dbc6f2c38aa89e68bda8b603
+ admin.dashboard.page.title: 2938c7f7e560ed972f8a4f68e80ff834
+ admin.dashboard.table.latest-events.view-all: 0b4db271fc4624853e634ef6882ea8be
+ admin.dashboard.widgets.assets.label: 9aedeaf1f77b8642abe528503b8c5de8
+ admin.dashboard.widgets.assets.subtext: d982ec82265596eb2db78fcfcb180bf8
+ admin.dashboard.widgets.transactions.label: 31112aca11d0e9e6eb7db96f317dda49
+ admin.dashboard.widgets.transactions.subtext: 2fad55667c83a280f2147280d9351aaf
+ admin.dashboard.widgets.users.label: f9aae5fda8d810a29f12d1e61b4ab25f
+ admin.dashboard.widgets.users.subtext: ab1de1f85e9569bc8a08cb994779e3a9
+ admin.equities.burn-form.amount.amount-label: b2f40690858b404ed10e62bdf422c704
+ admin.equities.burn-form.amount.available-balance: 1ffc1c904a2ff558869bfbbb0189f568
+ admin.equities.burn-form.amount.description: 7b2bdac16ef466f0c8ed0881e2a5a68b
+ admin.equities.burn-form.amount.title: 034f1f16f32db94ee6659289fdcaa4e8
+ admin.equities.burn-form.button-label: b68e5744214cfc7b9952dc7051c57f64
+ admin.equities.burn-form.description: 5ba720f26c3b6842cbf80129d2fafd3b
+ admin.equities.burn-form.summary.amount-label: b2f40690858b404ed10e62bdf422c704
+ admin.equities.burn-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ admin.equities.burn-form.summary.burn-description: 00a210a592d9dfdda0c40b509bbac3ce
+ admin.equities.burn-form.summary.burn-title: 11635778f116ce6922f6068638a39028
+ admin.equities.burn-form.summary.description: 257f30507f300d31fd6f9830e9e7ca9d
+ admin.equities.burn-form.summary.title: efd63552d423e55585e0decff1af2e9f
+ admin.equities.burn-form.title: 11635778f116ce6922f6068638a39028
+ admin.equities.burn-form.trigger-label: 11635778f116ce6922f6068638a39028
+ admin.equities.charts.asset-statistics-title: e117a0fa6d1102a4b1c678be9ba8662a
+ admin.equities.create-form.basics.decimals-label: 2b417805040de3a3df31c8fd3626b57c
+ admin.equities.create-form.basics.description: 12c94d87d53adb8188f706ba741c0002
+ admin.equities.create-form.basics.isin-label: d03440b351474d0b1a3f851c3453e8de
+ admin.equities.create-form.basics.isin-placeholder: 0dfa559977db1e6a4345aec498b77112
+ admin.equities.create-form.basics.name-label: 49ee3087348e8d44e1feda1917443987
+ admin.equities.create-form.basics.name-placeholder: e13b591494c8b09125e52b9de6e448af
+ admin.equities.create-form.basics.symbol-label: 02c86eb2792f3262c21d030a87e19793
+ admin.equities.create-form.basics.symbol-placeholder: bbf472b37eeddcdfdbca7cd3e6d8ca94
+ admin.equities.create-form.basics.title: 87cabb0c5e5abac7a37df3f21bf09d17
+ admin.equities.create-form.button-label: d496cdfdec3d654ef92ca471980789d8
+ admin.equities.create-form.configuration.category-blend-equity: 0eaaa36b984c9773310dcc172a531c1f
+ admin.equities.create-form.configuration.category-communication-services: fe647a13f093fce98ed8ba1340f63b18
+ admin.equities.create-form.configuration.category-consumer-discretionary: 042cabbd998bc59d3c57fcf290fb0a2b
+ admin.equities.create-form.configuration.category-consumer-staples: 235a5366a1bc856beeca1056c4408319
+ admin.equities.create-form.configuration.category-convertible-preferred-stock: 2bc4e642c966d757897fdf90f86affd2
+ admin.equities.create-form.configuration.category-cumulative-preferred-stock: 9c312dbfca11175e925321e364133ad1
+ admin.equities.create-form.configuration.category-distressed-equity: d873e0bc39f8b51b993c6799e59927ab
+ admin.equities.create-form.configuration.category-domestic-equity: 7e6a5d61cea9f6192955b115cff77df0
+ admin.equities.create-form.configuration.category-dual-class-shares: 9501bbb4e9ccd745df13858007c74a8d
+ admin.equities.create-form.configuration.category-emerging-market-equity: 4bd7c29950dab18e428095d66acd4676
+ admin.equities.create-form.configuration.category-energy: 5cc28f31113ec7cd7e546b836ccae2b9
+ admin.equities.create-form.configuration.category-esop-shares: 459f2f1d1417b0acbd7c054429a45ae2
+ admin.equities.create-form.configuration.category-financials: 5974cb9ed1e0bf75d06d24c0004be0ab
+ admin.equities.create-form.configuration.category-frontier-market-equity: 3808c1a4865e568babf05bdcde00240f
+ admin.equities.create-form.configuration.category-global-equity: e13b591494c8b09125e52b9de6e448af
+ admin.equities.create-form.configuration.category-growth-capital: 02e51efb9504845d3648f67c41069d9a
+ admin.equities.create-form.configuration.category-growth-equity: c444b52c4b8f23e3596530b471176e02
+ admin.equities.create-form.configuration.category-healthcare: 4ee2a6c7bb7c40af94c5a15dbf7eb673
+ admin.equities.create-form.configuration.category-income-equity: 6c6ea75e344138193fc628425f396171
+ admin.equities.create-form.configuration.category-industrials: fc649afd5dd543f74114a778f65bd784
+ admin.equities.create-form.configuration.category-international-equity: 04272ebf1f1f4ba83747db56fa665c67
+ admin.equities.create-form.configuration.category-large-cap-equity: 55aab89be70dc2581d1efe93c64a918f
+ admin.equities.create-form.configuration.category-leveraged-buyouts: dbfad47b68c18955111eaa8577d25744
+ admin.equities.create-form.configuration.category-materials: 23ce0eb7d180f3dc8391d4af48572d21
+ admin.equities.create-form.configuration.category-mezzanine-financing: 1c21db1dc1868547339e2b4340f350d6
+ admin.equities.create-form.configuration.category-micro-cap-equity: 4a1c40ea31329f893e28f98c5ef143ab
+ admin.equities.create-form.configuration.category-mid-cap-equity: 6da88898a850d172dd58aa2a2cb7015c
+ admin.equities.create-form.configuration.category-non-cumulative-preferred-stock: 4c18eb8a0a449ead90463370b670a39e
+ admin.equities.create-form.configuration.category-non-voting-common-stock: df873e6464d096a1c87741708eb301ab
+ admin.equities.create-form.configuration.category-real-estate: d84514acf6dd2dbbac51a77bd394e0ac
+ admin.equities.create-form.configuration.category-redeemable-preferred-stock: aee344c322a853ea23c20016f2636131
+ admin.equities.create-form.configuration.category-restricted-stock: bc35a6a1f0a172c9a9eb37d50497b120
+ admin.equities.create-form.configuration.category-small-cap-equity: 3907887bc96eac902d350db42926a294
+ admin.equities.create-form.configuration.category-technology: e7e767d7c0e58b16e57d3ab16150db80
+ admin.equities.create-form.configuration.category-tracking-stocks: 78a4b060a6cebcee077d380acede7b36
+ admin.equities.create-form.configuration.category-utilities: ceba282b7418b7f199798b645e1cba56
+ admin.equities.create-form.configuration.category-value-equity: 32e30f464e7364fe3c9f1480d1926a93
+ admin.equities.create-form.configuration.category-venture-capital: 5b49036c3dd8d6a67be3f15f112b35b1
+ admin.equities.create-form.configuration.category-voting-common-stock: f60852c83716623161e8e216821bfa51
+ admin.equities.create-form.configuration.class-common-equity: 63332e00e867f47dd0935678c9278476
+ admin.equities.create-form.configuration.class-geographic-equity: 9da343a3fb22b9e464cf58c2911bde4a
+ admin.equities.create-form.configuration.class-investment-stage-private-equity: bb2f0ece0a276c60091b7461df28b957
+ admin.equities.create-form.configuration.class-investment-style-equity: 0a6088d60e88ddaf8be0944394a5e4f3
+ admin.equities.create-form.configuration.class-market-capitalization-equity: 72f4b37e819bada7f80550e8fc869873
+ admin.equities.create-form.configuration.class-preferred-equity: 3a877176973c9a36f8249e6a93b01b8c
+ admin.equities.create-form.configuration.class-sector-industry-equity: 78a4ba8e2400b2ffa54598198a690b49
+ admin.equities.create-form.configuration.class-special-classes-equity: 2d8fb5bb729e69be72b24063b30a4f18
+ admin.equities.create-form.configuration.description: 16bf643cbab577271523fee6edd72151
+ admin.equities.create-form.configuration.equity-category-label: d811b12c53c87e0800a25bc7fdeebaf7
+ admin.equities.create-form.configuration.equity-class-label: a06e72e39c8ed95abe56e03d728a9aba
+ admin.equities.create-form.configuration.title: 254f642527b45bc260048e30704edb39
+ admin.equities.create-form.description: 5de469c5efa5ff4fdb1c9f415fd09abe
+ admin.equities.create-form.summary.asset-basics-description: 8c1b1f7b456f832a2b00d3352b7542c5
+ admin.equities.create-form.summary.asset-basics-title: 7f5c9260cb98413030db829edc806293
+ admin.equities.create-form.summary.category-blend-equity: 0eaaa36b984c9773310dcc172a531c1f
+ admin.equities.create-form.summary.category-communication-services: fe647a13f093fce98ed8ba1340f63b18
+ admin.equities.create-form.summary.category-consumer-discretionary: 042cabbd998bc59d3c57fcf290fb0a2b
+ admin.equities.create-form.summary.category-consumer-staples: 235a5366a1bc856beeca1056c4408319
+ admin.equities.create-form.summary.category-convertible-preferred-stock: 2bc4e642c966d757897fdf90f86affd2
+ admin.equities.create-form.summary.category-cumulative-preferred-stock: 9c312dbfca11175e925321e364133ad1
+ admin.equities.create-form.summary.category-distressed-equity: d873e0bc39f8b51b993c6799e59927ab
+ admin.equities.create-form.summary.category-domestic-equity: 7e6a5d61cea9f6192955b115cff77df0
+ admin.equities.create-form.summary.category-dual-class-shares: 9501bbb4e9ccd745df13858007c74a8d
+ admin.equities.create-form.summary.category-emerging-market-equity: 4bd7c29950dab18e428095d66acd4676
+ admin.equities.create-form.summary.category-energy: 5cc28f31113ec7cd7e546b836ccae2b9
+ admin.equities.create-form.summary.category-esop-shares: 459f2f1d1417b0acbd7c054429a45ae2
+ admin.equities.create-form.summary.category-financials: 5974cb9ed1e0bf75d06d24c0004be0ab
+ admin.equities.create-form.summary.category-frontier-market-equity: 3808c1a4865e568babf05bdcde00240f
+ admin.equities.create-form.summary.category-global-equity: e13b591494c8b09125e52b9de6e448af
+ admin.equities.create-form.summary.category-growth-capital: 02e51efb9504845d3648f67c41069d9a
+ admin.equities.create-form.summary.category-growth-equity: c444b52c4b8f23e3596530b471176e02
+ admin.equities.create-form.summary.category-healthcare: 4ee2a6c7bb7c40af94c5a15dbf7eb673
+ admin.equities.create-form.summary.category-income-equity: 6c6ea75e344138193fc628425f396171
+ admin.equities.create-form.summary.category-industrials: fc649afd5dd543f74114a778f65bd784
+ admin.equities.create-form.summary.category-international-equity: 04272ebf1f1f4ba83747db56fa665c67
+ admin.equities.create-form.summary.category-large-cap-equity: 55aab89be70dc2581d1efe93c64a918f
+ admin.equities.create-form.summary.category-leveraged-buyouts: dbfad47b68c18955111eaa8577d25744
+ admin.equities.create-form.summary.category-materials: 23ce0eb7d180f3dc8391d4af48572d21
+ admin.equities.create-form.summary.category-mezzanine-financing: 1c21db1dc1868547339e2b4340f350d6
+ admin.equities.create-form.summary.category-micro-cap-equity: 4a1c40ea31329f893e28f98c5ef143ab
+ admin.equities.create-form.summary.category-mid-cap-equity: 6da88898a850d172dd58aa2a2cb7015c
+ admin.equities.create-form.summary.category-non-cumulative-preferred-stock: 4c18eb8a0a449ead90463370b670a39e
+ admin.equities.create-form.summary.category-non-voting-common-stock: df873e6464d096a1c87741708eb301ab
+ admin.equities.create-form.summary.category-real-estate: d84514acf6dd2dbbac51a77bd394e0ac
+ admin.equities.create-form.summary.category-redeemable-preferred-stock: aee344c322a853ea23c20016f2636131
+ admin.equities.create-form.summary.category-restricted-stock: bc35a6a1f0a172c9a9eb37d50497b120
+ admin.equities.create-form.summary.category-small-cap-equity: 3907887bc96eac902d350db42926a294
+ admin.equities.create-form.summary.category-technology: e7e767d7c0e58b16e57d3ab16150db80
+ admin.equities.create-form.summary.category-tracking-stocks: 78a4b060a6cebcee077d380acede7b36
+ admin.equities.create-form.summary.category-utilities: ceba282b7418b7f199798b645e1cba56
+ admin.equities.create-form.summary.category-value-equity: 32e30f464e7364fe3c9f1480d1926a93
+ admin.equities.create-form.summary.category-venture-capital: 5b49036c3dd8d6a67be3f15f112b35b1
+ admin.equities.create-form.summary.category-voting-common-stock: f60852c83716623161e8e216821bfa51
+ admin.equities.create-form.summary.class-common-equity: 63332e00e867f47dd0935678c9278476
+ admin.equities.create-form.summary.class-geographic-equity: 9da343a3fb22b9e464cf58c2911bde4a
+ admin.equities.create-form.summary.class-investment-stage-private-equity: bb2f0ece0a276c60091b7461df28b957
+ admin.equities.create-form.summary.class-investment-style-equity: 0a6088d60e88ddaf8be0944394a5e4f3
+ admin.equities.create-form.summary.class-market-capitalization-equity: 72f4b37e819bada7f80550e8fc869873
+ admin.equities.create-form.summary.class-preferred-equity: 3a877176973c9a36f8249e6a93b01b8c
+ admin.equities.create-form.summary.class-sector-industry-equity: 78a4ba8e2400b2ffa54598198a690b49
+ admin.equities.create-form.summary.class-special-classes-equity: 2d8fb5bb729e69be72b24063b30a4f18
+ admin.equities.create-form.summary.configuration-description: af4264b173d2ce9efcc7326c00e10696
+ admin.equities.create-form.summary.configuration-title: 254f642527b45bc260048e30704edb39
+ admin.equities.create-form.summary.decimals-label: 2b417805040de3a3df31c8fd3626b57c
+ admin.equities.create-form.summary.description: c43e796c11bd5bb4abef0a821391abc9
+ admin.equities.create-form.summary.equity-category-label: d811b12c53c87e0800a25bc7fdeebaf7
+ admin.equities.create-form.summary.equity-class-label: a06e72e39c8ed95abe56e03d728a9aba
+ admin.equities.create-form.summary.isin-label: d03440b351474d0b1a3f851c3453e8de
+ admin.equities.create-form.summary.name-label: 49ee3087348e8d44e1feda1917443987
+ admin.equities.create-form.summary.symbol-label: 02c86eb2792f3262c21d030a87e19793
+ admin.equities.create-form.summary.title: 7a347de1c6bc1d7b6abbf6bef2f05646
+ admin.equities.create-form.summary.error-duplicate: fbb49dd2c42b1ef20ddf3b49c5a92af5
+ admin.equities.create-form.title: 417efeb627ea6ba7547dd18c033dd1b9
+ admin.equities.create-form.trigger-label: ca8a196f97a48b2bb489f3e849a68418
+ admin.equities.details.contract-address: d7e1286efec604c15ddab7ef2b290021
+ admin.equities.details.creator: ef1d00d8a237a1bbe431e1091f5715fb
+ admin.equities.details.decimals: 2b417805040de3a3df31c8fd3626b57c
+ admin.equities.details.details-page-description: 251f2c1338c55dda4a44eb39a80119bd
+ admin.equities.details.details-page-title: 10627983af012986942742dd5c395d41
+ admin.equities.details.equity-details-description: 38192376538e467957c9f8db7ed5fc60
+ admin.equities.details.isin: d03440b351474d0b1a3f851c3453e8de
+ admin.equities.details.name: 49ee3087348e8d44e1feda1917443987
+ admin.equities.details.ownership-concentration: e90da81b8fd18fc54589986f308f5257
+ admin.equities.details.ownership-concentration-info: b90d646020637b7ba884ed881516b76c
+ admin.equities.details.symbol: 02c86eb2792f3262c21d030a87e19793
+ admin.equities.details.total-supply: 1ecae95c3c8f236721cce5b740b2deaa
+ admin.equities.details.total-supply-info: 2138711f691fc996de09dbdbbe64b888
+ admin.equities.events.events-page-description: a9bde6e42d94886b4e04f0a3fa80783e
+ admin.equities.events.events-page-title: 1e2a7b7b6ebe4d77c942463f560e60b3
+ admin.equities.grant-role-form.address.address-label: 2f2c367f2d983a644073e56b65450d07
+ admin.equities.grant-role-form.address.description: 1f43ded6b233f15cc30303f2208f2c43
+ admin.equities.grant-role-form.address.manual-placeholder: 3d97f638880bade26500cbcd3d1c7bdf
+ admin.equities.grant-role-form.address.manual-toggle: 9155c6f94f857b0d309c17621bcc128f
+ admin.equities.grant-role-form.address.search-placeholder: 0b04832b113b2d7bcde8d214587f5879
+ admin.equities.grant-role-form.address.search-toggle: 79a26d6aa989e2bc91a4adfe055a87ea
+ admin.equities.grant-role-form.address.title: 1997616495719b4fc3787ba946a3f29e
+ admin.equities.grant-role-form.button-label: 8bf93064b20e5563e57b77d8c7248c2c
+ admin.equities.grant-role-form.description: e470b2493fd45aa303f48dd8babf8ca5
+ admin.equities.grant-role-form.roles.description: 957b070312674eb7701105aa8fb577c1
+ admin.equities.grant-role-form.roles.title: 8e5722429436e163eae9180dfd1f3454
+ admin.equities.grant-role-form.summary.admin-address-label: 01467d85d5db44b441098e721f4178ca
+ admin.equities.grant-role-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ admin.equities.grant-role-form.summary.description: 9e8f2a5b336124448c3b8a5fe43c6f80
+ admin.equities.grant-role-form.summary.grant-description: f1891b1b2f31dd5b3bbd0e304e5aa914
+ admin.equities.grant-role-form.summary.grant-title: a642a0c57033418f58cb99b1cbef03fa
+ admin.equities.grant-role-form.summary.roles-label: a5cd3ed116608dac017f14c046ea56bf
+ admin.equities.grant-role-form.summary.title: 613eda63424c1855fbea7d6f52be5538
+ admin.equities.grant-role-form.title: a642a0c57033418f58cb99b1cbef03fa
+ admin.equities.manage.actions.mint: ca8a196f97a48b2bb489f3e849a68418
+ admin.equities.manage.actions.burn: 11635778f116ce6922f6068638a39028
+ admin.equities.manage.actions.pause: 105b296a83f9c105355403f3332af50f
+ admin.equities.manage.actions.unpause: 648ff76ea7617136d7a5e0cbff92606f
+ admin.equities.manage.actions.grant-role: bac0578e46858f11520c7e9bee9a99b8
+ admin.equities.manage.manage: 34e34c43ec6b943c10a3cc1a1a16fb11
+ admin.equities.mint-form.amount.amount-label: b2f40690858b404ed10e62bdf422c704
+ admin.equities.mint-form.amount.description: de023495109b6579a169c08395cd7b79
+ admin.equities.mint-form.amount.title: 034f1f16f32db94ee6659289fdcaa4e8
+ admin.equities.mint-form.recipients.title: 8f419c48506f3cf74a150f1f5257d6e7
+ admin.equities.mint-form.recipients.description: 8a988479c1cfbc8efd6ac24eefeca58f
+ admin.equities.mint-form.button-label: a56a33e9d62236e12e5f461161692098
+ admin.equities.mint-form.description: 70b203fcfdc73686cc7ebb2a6d122be9
+ admin.equities.mint-form.summary.amount-label: b2f40690858b404ed10e62bdf422c704
+ admin.equities.mint-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ admin.equities.mint-form.summary.description: 51b13c1547989e0a4c7d173cf623dbfa
+ admin.equities.mint-form.summary.mint-description: 7dc13461b1dea02487b94a2c813dd921
+ admin.equities.mint-form.summary.mint-title: ca8a196f97a48b2bb489f3e849a68418
+ admin.equities.mint-form.summary.title: 7aa68f5c56e88b9f265aed105098eca2
+ admin.equities.mint-form.title: ca8a196f97a48b2bb489f3e849a68418
+ admin.equities.mint-form.trigger-label: ca8a196f97a48b2bb489f3e849a68418
+ admin.equities.pause-form.pause.button-label: 7775d162c76dbb2ba95f7b69109e371b
+ admin.equities.pause-form.pause.description: b8c67492cc48364c2b6618c4483850a3
+ admin.equities.pause-form.pause.title: e7e7f69f6d1780ae4be54bd1d515049e
+ admin.equities.pause-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ admin.equities.pause-form.summary.current-state-label: 48358648336d501e2336d5360a559533
+ admin.equities.pause-form.summary.description: b67014d6fcaab53aaff5da952ccf8d37
+ admin.equities.pause-form.summary.pause-description: 235595e65afe8600c98393abfad6940c
+ admin.equities.pause-form.summary.pause-title: 105b296a83f9c105355403f3332af50f
+ admin.equities.pause-form.summary.state-active: 4d3d769b812b6faa6b76e1a8abaece2d
+ admin.equities.pause-form.summary.state-paused: e99180abf47a8b3a856e0bcb2656990a
+ admin.equities.pause-form.summary.target-state-label: f700b6febc2ba7f13df9e88e0c0b3a5f
+ admin.equities.pause-form.summary.title: 73ce5baae076cd663117259d8581e7cc
+ admin.equities.pause-form.unpause.button-label: c0c4ee2db5445d612d70f9759ce018ae
+ admin.equities.pause-form.unpause.description: 5c0188751c939b9cb3ae363102b29429
+ admin.equities.pause-form.unpause.title: 337f3e3d17e1523ac48e15855bbe68bf
+ admin.equities.related-actions.decrease-supply.description: 0cdf7792ae4e7e60eed7d7de6a07e42b
+ admin.equities.related-actions.decrease-supply.title: 5f063f7a86abe1279de4a0486e70a265
+ admin.equities.related-actions.increase-supply.description: ab7575076ec897c351ec9d8fdc9ddde3
+ admin.equities.related-actions.increase-supply.title: 5d4c8beac547ef1127d12ad09b53ea04
+ admin.equities.related-actions.title: 0a5bafcb047751c696456bbf5f2ff673
+ admin.equities.table.actions-header: 06df33001c1d7187fdd81ea1f5b277aa
+ admin.equities.table.address-header: dd7bf230fde8d4836917806aff6a6b27
+ admin.equities.table.asset-management: 177512b9add0b40c38dad61838bf7d79
+ admin.equities.table.category-blend-equity: 0eaaa36b984c9773310dcc172a531c1f
+ admin.equities.table.category-communication-services: fe647a13f093fce98ed8ba1340f63b18
+ admin.equities.table.category-consumer-discretionary: 042cabbd998bc59d3c57fcf290fb0a2b
+ admin.equities.table.category-consumer-staples: 235a5366a1bc856beeca1056c4408319
+ admin.equities.table.category-convertible-preferred-stock: 2bc4e642c966d757897fdf90f86affd2
+ admin.equities.table.category-cumulative-preferred-stock: 9c312dbfca11175e925321e364133ad1
+ admin.equities.table.category-distressed-equity: d873e0bc39f8b51b993c6799e59927ab
+ admin.equities.table.category-domestic-equity: 7e6a5d61cea9f6192955b115cff77df0
+ admin.equities.table.category-dual-class-shares: 9501bbb4e9ccd745df13858007c74a8d
+ admin.equities.table.category-emerging-market-equity: 4bd7c29950dab18e428095d66acd4676
+ admin.equities.table.category-energy: 5cc28f31113ec7cd7e546b836ccae2b9
+ admin.equities.table.category-esop-shares: 459f2f1d1417b0acbd7c054429a45ae2
+ admin.equities.table.category-financials: 5974cb9ed1e0bf75d06d24c0004be0ab
+ admin.equities.table.category-frontier-market-equity: 3808c1a4865e568babf05bdcde00240f
+ admin.equities.table.category-global-equity: e13b591494c8b09125e52b9de6e448af
+ admin.equities.table.category-growth-capital: 02e51efb9504845d3648f67c41069d9a
+ admin.equities.table.category-growth-equity: c444b52c4b8f23e3596530b471176e02
+ admin.equities.table.category-header: d811b12c53c87e0800a25bc7fdeebaf7
+ admin.equities.table.category-healthcare: 4ee2a6c7bb7c40af94c5a15dbf7eb673
+ admin.equities.table.category-income-equity: 6c6ea75e344138193fc628425f396171
+ admin.equities.table.category-industrials: fc649afd5dd543f74114a778f65bd784
+ admin.equities.table.category-international-equity: 04272ebf1f1f4ba83747db56fa665c67
+ admin.equities.table.category-large-cap-equity: 55aab89be70dc2581d1efe93c64a918f
+ admin.equities.table.category-leveraged-buyouts: dbfad47b68c18955111eaa8577d25744
+ admin.equities.table.category-materials: 23ce0eb7d180f3dc8391d4af48572d21
+ admin.equities.table.category-mezzanine-financing: 1c21db1dc1868547339e2b4340f350d6
+ admin.equities.table.category-micro-cap-equity: 4a1c40ea31329f893e28f98c5ef143ab
+ admin.equities.table.category-mid-cap-equity: 6da88898a850d172dd58aa2a2cb7015c
+ admin.equities.table.category-non-cumulative-preferred-stock: 4c18eb8a0a449ead90463370b670a39e
+ admin.equities.table.category-non-voting-common-stock: df873e6464d096a1c87741708eb301ab
+ admin.equities.table.category-real-estate: d84514acf6dd2dbbac51a77bd394e0ac
+ admin.equities.table.category-redeemable-preferred-stock: aee344c322a853ea23c20016f2636131
+ admin.equities.table.category-restricted-stock: bc35a6a1f0a172c9a9eb37d50497b120
+ admin.equities.table.category-small-cap-equity: 3907887bc96eac902d350db42926a294
+ admin.equities.table.category-technology: e7e767d7c0e58b16e57d3ab16150db80
+ admin.equities.table.category-tracking-stocks: 78a4b060a6cebcee077d380acede7b36
+ admin.equities.table.category-utilities: ceba282b7418b7f199798b645e1cba56
+ admin.equities.table.category-value-equity: 32e30f464e7364fe3c9f1480d1926a93
+ admin.equities.table.category-venture-capital: 5b49036c3dd8d6a67be3f15f112b35b1
+ admin.equities.table.category-voting-common-stock: f60852c83716623161e8e216821bfa51
+ admin.equities.table.class-common-equity: 63332e00e867f47dd0935678c9278476
+ admin.equities.table.class-geographic-equity: 9da343a3fb22b9e464cf58c2911bde4a
+ admin.equities.table.class-header: a06e72e39c8ed95abe56e03d728a9aba
+ admin.equities.table.class-investment-stage-private-equity: bb2f0ece0a276c60091b7461df28b957
+ admin.equities.table.class-investment-style-equity: 0a6088d60e88ddaf8be0944394a5e4f3
+ admin.equities.table.class-market-capitalization-equity: 72f4b37e819bada7f80550e8fc869873
+ admin.equities.table.class-preferred-equity: 3a877176973c9a36f8249e6a93b01b8c
+ admin.equities.table.class-sector-industry-equity: 78a4ba8e2400b2ffa54598198a690b49
+ admin.equities.table.class-special-classes-equity: 2d8fb5bb729e69be72b24063b30a4f18
+ admin.equities.table.name-header: 49ee3087348e8d44e1feda1917443987
+ admin.equities.table.page-description: bde6fd99db59e74c43e9bedcd11325c6
+ admin.equities.table.page-title: f38992a52cef8611666b2db431b493a6
+ admin.equities.table.private-header: 47f9082fc380ca62d531096aa1d110f1
+ admin.equities.table.private-status: 47f9082fc380ca62d531096aa1d110f1
+ admin.equities.table.public-status: 3d067bedfe2f4677470dd6ccf64d05ed
+ admin.equities.table.related-actions.issue-new.description: 49a674762d1bbd09f569109cf4dcb9d2
+ admin.equities.table.related-actions.issue-new.title: c26e20ba03d4fc5d24f205984133c335
+ admin.equities.table.related-actions.mechanics.button: d59048f21fd887ad520398ce677be586
+ admin.equities.table.related-actions.mechanics.description: b3ba4f7ae1f1a7c0f34726570a9d3497
+ admin.equities.table.related-actions.mechanics.title: 3d91d55a4e1dc959e167b160da31b123
+ admin.equities.table.related-actions.title: a2005fe8651d38ccc7a7e285d2e51db8
+ admin.equities.table.related-actions.usecases.button: 1819001b72329e2ef5799fe504238035
+ admin.equities.table.related-actions.usecases.description: 6b7891184939d1061f7f2066946788bf
+ admin.equities.table.related-actions.usecases.title: 657bc203cf279921b6b737a75c58a8e5
+ admin.equities.table.status-header: ec53a8c4f07baed5d8825072c89799be
+ admin.equities.table.symbol-header: 02c86eb2792f3262c21d030a87e19793
+ admin.equities.table.topinfo-description: 733a23481639c91d4b0af1e4605bbfb5
+ admin.equities.table.topinfo-title: 312c92df8efe98841244aa0d8d46425d
+ admin.equities.table.total-supply-header: 7ca9416c0e8045c2d9561012e42c4d15
+ admin.equities.tabs.details: 3ec365dd533ddb7ef3d1c111186ce872
+ admin.equities.tabs.events: 87f9f735a1d36793ceaecd4e47124b63
+ admin.equities.tabs.holders: b099a5b6f9f22eac61e7e3176ff002c7
+ admin.equities.tabs.permissions: d08ccf52b4cdd08e41cfb99ec42e0b29
+ admin.equities.tabs.underlying-assets: 513b5e27362967b94ab332c4f3790a4f
+ admin.funds.burn-form.amount.amount-label: b2f40690858b404ed10e62bdf422c704
+ admin.funds.burn-form.amount.available-balance: 1ffc1c904a2ff558869bfbbb0189f568
+ admin.funds.burn-form.amount.description: 7b2bdac16ef466f0c8ed0881e2a5a68b
+ admin.funds.burn-form.amount.title: 034f1f16f32db94ee6659289fdcaa4e8
+ admin.funds.burn-form.button-label: b68e5744214cfc7b9952dc7051c57f64
+ admin.funds.burn-form.description: eaf555f302974fd462f7302492d52a23
+ admin.funds.burn-form.summary.amount-label: b2f40690858b404ed10e62bdf422c704
+ admin.funds.burn-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ admin.funds.burn-form.summary.burn-description: 00a210a592d9dfdda0c40b509bbac3ce
+ admin.funds.burn-form.summary.burn-title: 11635778f116ce6922f6068638a39028
+ admin.funds.burn-form.summary.description: 257f30507f300d31fd6f9830e9e7ca9d
+ admin.funds.burn-form.summary.title: efd63552d423e55585e0decff1af2e9f
+ admin.funds.burn-form.title: 11635778f116ce6922f6068638a39028
+ admin.funds.burn-form.trigger-label: 11635778f116ce6922f6068638a39028
+ admin.funds.charts.asset-statistics-title: e117a0fa6d1102a4b1c678be9ba8662a
+ admin.funds.create-form.basics.decimals-label: 2b417805040de3a3df31c8fd3626b57c
+ admin.funds.create-form.basics.description: 12c94d87d53adb8188f706ba741c0002
+ admin.funds.create-form.basics.isin-label: d03440b351474d0b1a3f851c3453e8de
+ admin.funds.create-form.basics.isin-placeholder: 0dfa559977db1e6a4345aec498b77112
+ admin.funds.create-form.basics.name-label: 49ee3087348e8d44e1feda1917443987
+ admin.funds.create-form.basics.name-placeholder: 7271f9a544b0a7782c7c66951fe270b0
+ admin.funds.create-form.basics.symbol-label: 02c86eb2792f3262c21d030a87e19793
+ admin.funds.create-form.basics.symbol-placeholder: ce5b8b6bda60deed2b234d93562954b8
+ admin.funds.create-form.basics.title: 87cabb0c5e5abac7a37df3f21bf09d17
+ admin.funds.create-form.button-label: 09acc2618c648e5193d0a282ebd8ee98
+ admin.funds.create-form.configuration.basis-points: ecf6fbc4690b6ecd2245d8db1602bda7
+ admin.funds.create-form.configuration.category-activist: a8fd83594a106729f90966e72f37c4c3
+ admin.funds.create-form.configuration.category-commodity-trading: 4731655fefba80ad83e2e58d6b1ea475
+ admin.funds.create-form.configuration.category-convertible-arbitrage: f0dcd1639c70e8c9871dcbf61056716e
+ admin.funds.create-form.configuration.category-credit: 0a90b1bc4078f74b6f0d117ec7df65af
+ admin.funds.create-form.configuration.category-currency-fx: 62262702970556e4fa72cba40127ba79
+ admin.funds.create-form.configuration.category-distressed-debt: b5ce6fafe90e9f0471cb08323ff10d87
+ admin.funds.create-form.configuration.category-emerging-markets: 0bce80143cb901200d9a331930aa0315
+ admin.funds.create-form.configuration.category-equity-hedge: 12d80e656cb60894af7aa5dc1305929e
+ admin.funds.create-form.configuration.category-event-driven: 332aea2c3b181c2813e98cd15565f1a4
+ admin.funds.create-form.configuration.category-fixed-income-arbitrage: 89f72e7512bf37940cd49cc89716d671
+ admin.funds.create-form.configuration.category-fund-of-funds: 7aaee74a3665cd4a8ba22a5ffe79e3fb
+ admin.funds.create-form.configuration.category-global-macro: 461e523cc8a7756c432e9b76aeffdbd0
+ admin.funds.create-form.configuration.category-high-frequency-trading: 8d04661bdf9e9836d2656846b8b794ac
+ admin.funds.create-form.configuration.category-managed-futures-cta: 77aa47d8c57c2e852e7de24cd9397af0
+ admin.funds.create-form.configuration.category-market-neutral: 30ca0be7230bba8d8ee4665092ac296a
+ admin.funds.create-form.configuration.category-merger-arbitrage: 543773a0e037ccbfadfcef93766139ea
+ admin.funds.create-form.configuration.category-multi-strategy: 18c9ba45c2e92465265ca1e290f46882
+ admin.funds.create-form.configuration.category-private-equity: 0fd952d87e4e3278142724029db405f1
+ admin.funds.create-form.configuration.category-quantitative-systematic: 7236b47ee7d8046e8bacf6703d9c4519
+ admin.funds.create-form.configuration.category-relative-value: 600933bd6d59b689f21ace25350e259b
+ admin.funds.create-form.configuration.category-statistical-arbitrage: 4d79b7be69782938b1091e827909a851
+ admin.funds.create-form.configuration.category-structured-credit: 0e050efdf7ef3750f1d901672069bc16
+ admin.funds.create-form.configuration.category-venture-capital: bb5358d3e2cd921596959bbf207c9c57
+ admin.funds.create-form.configuration.class-absolute-return: 723e5e447f47ec3b3ecaac02c96759f5
+ admin.funds.create-form.configuration.class-core-blend: f886122dd3e486be812429dcef4d6769
+ admin.funds.create-form.configuration.class-diversified: af2ae384b7ff97b6331dfb3e504ed418
+ admin.funds.create-form.configuration.class-early-stage: ff1d710b7167e5809b29489e541b715a
+ admin.funds.create-form.configuration.class-factor-based: 07ad48718e751ae8f6131e31879007ae
+ admin.funds.create-form.configuration.class-growth-focused: 454a3a7e176ea6fdc836c4af1813ba76
+ admin.funds.create-form.configuration.class-income-focused: 55e824f033563a005b2696ca36a96a07
+ admin.funds.create-form.configuration.class-large-cap: f27cf8788ce7983eebc3d3e068b5cab8
+ admin.funds.create-form.configuration.class-long-equity: c8095df6243a33321e0e33b7ca5e2f83
+ admin.funds.create-form.configuration.class-long-short-equity: ef0a6ef70f0a7f2beba0fede51ac44d5
+ admin.funds.create-form.configuration.class-market-neutral: 30ca0be7230bba8d8ee4665092ac296a
+ admin.funds.create-form.configuration.class-mid-cap: d93c46f608c702218a6d5f2eb5ed233b
+ admin.funds.create-form.configuration.class-momentum-oriented: 9db4f3bf659aa791a5504761d1f4a63d
+ admin.funds.create-form.configuration.class-opportunistic: 608b78c79e4f1e603430b0ad35ba1aac
+ admin.funds.create-form.configuration.class-pre-series-b: 3e756d15b8aa1d3e3daf2a10b5c3b011
+ admin.funds.create-form.configuration.class-quantitative-algorithmic: beaba5efdb9bda6a2c6093035b9efa18
+ admin.funds.create-form.configuration.class-regional: 9c1c6794d4b1fb6ed518d57daa87b628
+ admin.funds.create-form.configuration.class-sector-specific: 425dfb5ca354f727eb9dc72e552f321e
+ admin.funds.create-form.configuration.class-seed-pre-seed: ac63eb417853e416ec6b7f1dd51c1eed
+ admin.funds.create-form.configuration.class-series-b-late-stage: dec87a76066c04a350366847d785e1bb
+ admin.funds.create-form.configuration.class-short-equity: 7713f016b57a04145bbf2a1b8a6c327f
+ admin.funds.create-form.configuration.class-small-cap: b138794f2a164dcc1e75a341e9038e00
+ admin.funds.create-form.configuration.class-tactical-asset-allocation: 2d4caf9ca83e1cf6d9ea54c52e073659
+ admin.funds.create-form.configuration.class-value-focused: 51fd7ec62b8b6f6d37caea889d482bb0
+ admin.funds.create-form.configuration.description: 6dcb4cdfdc223c6977b8f8ea6a6474e1
+ admin.funds.create-form.configuration.fund-category-label: ef9629654a1b4cada586a98a32b10fd9
+ admin.funds.create-form.configuration.fund-class-label: d68a93558515e11bbe82ebc19f38a4f5
+ admin.funds.create-form.configuration.management-fee-description: 5619c8ea9d3c8e99ec4b43ab8c85bd4f
+ admin.funds.create-form.configuration.management-fee-label: 071bb32822e9bf25542b28f8f0676bb3
+ admin.funds.create-form.configuration.title: b8da1b5f2ab9241cc4dc231bbc8a7190
+ admin.funds.create-form.description: 81a20494d7181bcfe45cd075b5f42e4d
+ admin.funds.create-form.summary.asset-basics-description: 8c1b1f7b456f832a2b00d3352b7542c5
+ admin.funds.create-form.summary.asset-basics-title: 7f5c9260cb98413030db829edc806293
+ admin.funds.create-form.summary.basis-points: ecf6fbc4690b6ecd2245d8db1602bda7
+ admin.funds.create-form.summary.category-activist: a8fd83594a106729f90966e72f37c4c3
+ admin.funds.create-form.summary.category-commodity-trading: 4731655fefba80ad83e2e58d6b1ea475
+ admin.funds.create-form.summary.category-convertible-arbitrage: f0dcd1639c70e8c9871dcbf61056716e
+ admin.funds.create-form.summary.category-credit: 0a90b1bc4078f74b6f0d117ec7df65af
+ admin.funds.create-form.summary.category-currency-fx: 62262702970556e4fa72cba40127ba79
+ admin.funds.create-form.summary.category-distressed-debt: b5ce6fafe90e9f0471cb08323ff10d87
+ admin.funds.create-form.summary.category-emerging-markets: 0bce80143cb901200d9a331930aa0315
+ admin.funds.create-form.summary.category-equity-hedge: 12d80e656cb60894af7aa5dc1305929e
+ admin.funds.create-form.summary.category-event-driven: 332aea2c3b181c2813e98cd15565f1a4
+ admin.funds.create-form.summary.category-fixed-income-arbitrage: 89f72e7512bf37940cd49cc89716d671
+ admin.funds.create-form.summary.category-fund-of-funds: 7aaee74a3665cd4a8ba22a5ffe79e3fb
+ admin.funds.create-form.summary.category-global-macro: 461e523cc8a7756c432e9b76aeffdbd0
+ admin.funds.create-form.summary.category-high-frequency-trading: 8d04661bdf9e9836d2656846b8b794ac
+ admin.funds.create-form.summary.category-managed-futures-cta: 77aa47d8c57c2e852e7de24cd9397af0
+ admin.funds.create-form.summary.category-market-neutral: 30ca0be7230bba8d8ee4665092ac296a
+ admin.funds.create-form.summary.category-merger-arbitrage: 543773a0e037ccbfadfcef93766139ea
+ admin.funds.create-form.summary.category-multi-strategy: 18c9ba45c2e92465265ca1e290f46882
+ admin.funds.create-form.summary.category-private-equity: 0fd952d87e4e3278142724029db405f1
+ admin.funds.create-form.summary.category-quantitative-systematic: 7236b47ee7d8046e8bacf6703d9c4519
+ admin.funds.create-form.summary.category-relative-value: 600933bd6d59b689f21ace25350e259b
+ admin.funds.create-form.summary.category-statistical-arbitrage: 4d79b7be69782938b1091e827909a851
+ admin.funds.create-form.summary.category-structured-credit: 0e050efdf7ef3750f1d901672069bc16
+ admin.funds.create-form.summary.category-venture-capital: bb5358d3e2cd921596959bbf207c9c57
+ admin.funds.create-form.summary.class-absolute-return: 723e5e447f47ec3b3ecaac02c96759f5
+ admin.funds.create-form.summary.class-core-blend: f886122dd3e486be812429dcef4d6769
+ admin.funds.create-form.summary.class-diversified: af2ae384b7ff97b6331dfb3e504ed418
+ admin.funds.create-form.summary.class-early-stage: ff1d710b7167e5809b29489e541b715a
+ admin.funds.create-form.summary.class-factor-based: 07ad48718e751ae8f6131e31879007ae
+ admin.funds.create-form.summary.class-growth-focused: 454a3a7e176ea6fdc836c4af1813ba76
+ admin.funds.create-form.summary.class-income-focused: 55e824f033563a005b2696ca36a96a07
+ admin.funds.create-form.summary.class-large-cap: f27cf8788ce7983eebc3d3e068b5cab8
+ admin.funds.create-form.summary.class-long-equity: c8095df6243a33321e0e33b7ca5e2f83
+ admin.funds.create-form.summary.class-long-short-equity: ef0a6ef70f0a7f2beba0fede51ac44d5
+ admin.funds.create-form.summary.class-market-neutral: 30ca0be7230bba8d8ee4665092ac296a
+ admin.funds.create-form.summary.class-mid-cap: d93c46f608c702218a6d5f2eb5ed233b
+ admin.funds.create-form.summary.class-momentum-oriented: 9db4f3bf659aa791a5504761d1f4a63d
+ admin.funds.create-form.summary.class-opportunistic: 608b78c79e4f1e603430b0ad35ba1aac
+ admin.funds.create-form.summary.class-pre-series-b: 3e756d15b8aa1d3e3daf2a10b5c3b011
+ admin.funds.create-form.summary.class-quantitative-algorithmic: beaba5efdb9bda6a2c6093035b9efa18
+ admin.funds.create-form.summary.class-regional: 9c1c6794d4b1fb6ed518d57daa87b628
+ admin.funds.create-form.summary.class-sector-specific: 425dfb5ca354f727eb9dc72e552f321e
+ admin.funds.create-form.summary.class-seed-pre-seed: ac63eb417853e416ec6b7f1dd51c1eed
+ admin.funds.create-form.summary.class-series-b-late-stage: dec87a76066c04a350366847d785e1bb
+ admin.funds.create-form.summary.class-short-equity: 7713f016b57a04145bbf2a1b8a6c327f
+ admin.funds.create-form.summary.class-small-cap: b138794f2a164dcc1e75a341e9038e00
+ admin.funds.create-form.summary.class-tactical-asset-allocation: 2d4caf9ca83e1cf6d9ea54c52e073659
+ admin.funds.create-form.summary.class-value-focused: 51fd7ec62b8b6f6d37caea889d482bb0
+ admin.funds.create-form.summary.configuration-description: d147e01067bddb251ad6b07a0b5a5b91
+ admin.funds.create-form.summary.configuration-title: b8da1b5f2ab9241cc4dc231bbc8a7190
+ admin.funds.create-form.summary.decimals-label: 2b417805040de3a3df31c8fd3626b57c
+ admin.funds.create-form.summary.description: 847b14fe948ec6a12bd84a8e50c27b72
+ admin.funds.create-form.summary.fund-category-label: ef9629654a1b4cada586a98a32b10fd9
+ admin.funds.create-form.summary.fund-class-label: d68a93558515e11bbe82ebc19f38a4f5
+ admin.funds.create-form.summary.isin-label: d03440b351474d0b1a3f851c3453e8de
+ admin.funds.create-form.summary.management-fee-label: 071bb32822e9bf25542b28f8f0676bb3
+ admin.funds.create-form.summary.name-label: 49ee3087348e8d44e1feda1917443987
+ admin.funds.create-form.summary.symbol-label: 02c86eb2792f3262c21d030a87e19793
+ admin.funds.create-form.summary.title: 7a347de1c6bc1d7b6abbf6bef2f05646
+ admin.funds.create-form.summary.error-duplicate: 29a62f7286081887df7d5d74b2b1429c
+ admin.funds.create-form.title: 7a40b4873bad8ef6238ef9cc5777b441
+ admin.funds.create-form.trigger-label: 09acc2618c648e5193d0a282ebd8ee98
+ admin.funds.details.contract-address: d7e1286efec604c15ddab7ef2b290021
+ admin.funds.details.creator: ef1d00d8a237a1bbe431e1091f5715fb
+ admin.funds.details.decimals: 2b417805040de3a3df31c8fd3626b57c
+ admin.funds.details.details-page-description: 251f2c1338c55dda4a44eb39a80119bd
+ admin.funds.details.details-page-title: 10627983af012986942742dd5c395d41
+ admin.funds.details.fund-details-description: 38192376538e467957c9f8db7ed5fc60
+ admin.funds.details.isin: d03440b351474d0b1a3f851c3453e8de
+ admin.funds.details.name: 49ee3087348e8d44e1feda1917443987
+ admin.funds.details.ownership-concentration: e90da81b8fd18fc54589986f308f5257
+ admin.funds.details.ownership-concentration-info: b90d646020637b7ba884ed881516b76c
+ admin.funds.details.symbol: 02c86eb2792f3262c21d030a87e19793
+ admin.funds.details.total-supply: 1ecae95c3c8f236721cce5b740b2deaa
+ admin.funds.details.total-supply-info: 2138711f691fc996de09dbdbbe64b888
+ admin.funds.events.events-page-description: 74bfa3b3059aae49e2d5f6133da5843b
+ admin.funds.events.events-page-title: 1e2a7b7b6ebe4d77c942463f560e60b3
+ admin.funds.grant-role-form.address.address-label: 2f2c367f2d983a644073e56b65450d07
+ admin.funds.grant-role-form.address.description: 1f43ded6b233f15cc30303f2208f2c43
+ admin.funds.grant-role-form.address.manual-placeholder: 3d97f638880bade26500cbcd3d1c7bdf
+ admin.funds.grant-role-form.address.manual-toggle: 9155c6f94f857b0d309c17621bcc128f
+ admin.funds.grant-role-form.address.search-placeholder: 0b04832b113b2d7bcde8d214587f5879
+ admin.funds.grant-role-form.address.search-toggle: 79a26d6aa989e2bc91a4adfe055a87ea
+ admin.funds.grant-role-form.address.title: 1997616495719b4fc3787ba946a3f29e
+ admin.funds.grant-role-form.button-label: 8bf93064b20e5563e57b77d8c7248c2c
+ admin.funds.grant-role-form.description: e470b2493fd45aa303f48dd8babf8ca5
+ admin.funds.grant-role-form.roles.description: 957b070312674eb7701105aa8fb577c1
+ admin.funds.grant-role-form.roles.title: 8e5722429436e163eae9180dfd1f3454
+ admin.funds.grant-role-form.summary.admin-address-label: 01467d85d5db44b441098e721f4178ca
+ admin.funds.grant-role-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ admin.funds.grant-role-form.summary.description: 9e8f2a5b336124448c3b8a5fe43c6f80
+ admin.funds.grant-role-form.summary.grant-description: f1891b1b2f31dd5b3bbd0e304e5aa914
+ admin.funds.grant-role-form.summary.grant-title: a642a0c57033418f58cb99b1cbef03fa
+ admin.funds.grant-role-form.summary.roles-label: a5cd3ed116608dac017f14c046ea56bf
+ admin.funds.grant-role-form.summary.title: 613eda63424c1855fbea7d6f52be5538
+ admin.funds.grant-role-form.title: a642a0c57033418f58cb99b1cbef03fa
+ admin.funds.manage.actions.mint: ca8a196f97a48b2bb489f3e849a68418
+ admin.funds.manage.actions.burn: 11635778f116ce6922f6068638a39028
+ admin.funds.manage.actions.pause: 105b296a83f9c105355403f3332af50f
+ admin.funds.manage.actions.unpause: 648ff76ea7617136d7a5e0cbff92606f
+ admin.funds.manage.actions.grant-role: bac0578e46858f11520c7e9bee9a99b8
+ admin.funds.manage.manage: 34e34c43ec6b943c10a3cc1a1a16fb11
+ admin.funds.mint-form.amount.amount-label: b2f40690858b404ed10e62bdf422c704
+ admin.funds.mint-form.amount.description: de023495109b6579a169c08395cd7b79
+ admin.funds.mint-form.amount.title: 034f1f16f32db94ee6659289fdcaa4e8
+ admin.funds.mint-form.recipients.title: 8f419c48506f3cf74a150f1f5257d6e7
+ admin.funds.mint-form.recipients.description: 8a988479c1cfbc8efd6ac24eefeca58f
+ admin.funds.mint-form.button-label: a56a33e9d62236e12e5f461161692098
+ admin.funds.mint-form.description: d0641b440a7208fa5c07ec33bbd05b9c
+ admin.funds.mint-form.summary.amount-label: b2f40690858b404ed10e62bdf422c704
+ admin.funds.mint-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ admin.funds.mint-form.summary.description: 51b13c1547989e0a4c7d173cf623dbfa
+ admin.funds.mint-form.summary.mint-description: 7dc13461b1dea02487b94a2c813dd921
+ admin.funds.mint-form.summary.mint-title: ca8a196f97a48b2bb489f3e849a68418
+ admin.funds.mint-form.summary.title: 7aa68f5c56e88b9f265aed105098eca2
+ admin.funds.mint-form.title: ca8a196f97a48b2bb489f3e849a68418
+ admin.funds.mint-form.trigger-label: ca8a196f97a48b2bb489f3e849a68418
+ admin.funds.pause-form.pause.button-label: 7775d162c76dbb2ba95f7b69109e371b
+ admin.funds.pause-form.pause.description: 560e96f860294a47a655af6ccb111300
+ admin.funds.pause-form.pause.title: 682eac3ab2e1c679f0ba8b72f9426941
+ admin.funds.pause-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ admin.funds.pause-form.summary.current-state-label: 48358648336d501e2336d5360a559533
+ admin.funds.pause-form.summary.description: b67014d6fcaab53aaff5da952ccf8d37
+ admin.funds.pause-form.summary.pause-description: 235595e65afe8600c98393abfad6940c
+ admin.funds.pause-form.summary.pause-title: 105b296a83f9c105355403f3332af50f
+ admin.funds.pause-form.summary.state-active: 4d3d769b812b6faa6b76e1a8abaece2d
+ admin.funds.pause-form.summary.state-paused: e99180abf47a8b3a856e0bcb2656990a
+ admin.funds.pause-form.summary.target-state-label: f700b6febc2ba7f13df9e88e0c0b3a5f
+ admin.funds.pause-form.summary.title: 73ce5baae076cd663117259d8581e7cc
+ admin.funds.pause-form.unpause.button-label: c0c4ee2db5445d612d70f9759ce018ae
+ admin.funds.pause-form.unpause.description: 35b730fb53eb59c47833ae7d34e007d3
+ admin.funds.pause-form.unpause.title: e14de48cf9ee2a82f6be9b176efc633b
+ admin.funds.related-actions.decrease-supply.description: 112ef82d75127985c8c5bc023b8eedd5
+ admin.funds.related-actions.decrease-supply.title: d303b147694533461cca87fa2aba8aa2
+ admin.funds.related-actions.increase-supply.description: 40dd3387c8d704ce436d88f59b28ab7f
+ admin.funds.related-actions.increase-supply.title: 511690dfe4e1c90c69ecfe87e092ebf8
+ admin.funds.related-actions.title: 0a5bafcb047751c696456bbf5f2ff673
+ admin.funds.table.actions-header: 06df33001c1d7187fdd81ea1f5b277aa
+ admin.funds.table.address-header: dd7bf230fde8d4836917806aff6a6b27
+ admin.funds.table.asset-management: 177512b9add0b40c38dad61838bf7d79
+ admin.funds.table.assets-under-management-header: f15183c5a6be743d77dba87b74d6bcc0
+ admin.funds.table.category-activist: a8fd83594a106729f90966e72f37c4c3
+ admin.funds.table.category-commodity-trading: 4731655fefba80ad83e2e58d6b1ea475
+ admin.funds.table.category-convertible-arbitrage: f0dcd1639c70e8c9871dcbf61056716e
+ admin.funds.table.category-credit: 0a90b1bc4078f74b6f0d117ec7df65af
+ admin.funds.table.category-currency-fx: 62262702970556e4fa72cba40127ba79
+ admin.funds.table.category-distressed-debt: b5ce6fafe90e9f0471cb08323ff10d87
+ admin.funds.table.category-emerging-markets: 0bce80143cb901200d9a331930aa0315
+ admin.funds.table.category-equity-hedge: 12d80e656cb60894af7aa5dc1305929e
+ admin.funds.table.category-event-driven: 332aea2c3b181c2813e98cd15565f1a4
+ admin.funds.table.category-fixed-income-arbitrage: 89f72e7512bf37940cd49cc89716d671
+ admin.funds.table.category-fund-of-funds: 7aaee74a3665cd4a8ba22a5ffe79e3fb
+ admin.funds.table.category-global-macro: 461e523cc8a7756c432e9b76aeffdbd0
+ admin.funds.table.category-header: ef9629654a1b4cada586a98a32b10fd9
+ admin.funds.table.category-high-frequency-trading: 8d04661bdf9e9836d2656846b8b794ac
+ admin.funds.table.category-managed-futures-cta: 77aa47d8c57c2e852e7de24cd9397af0
+ admin.funds.table.category-market-neutral: 30ca0be7230bba8d8ee4665092ac296a
+ admin.funds.table.category-merger-arbitrage: 543773a0e037ccbfadfcef93766139ea
+ admin.funds.table.category-multi-strategy: 18c9ba45c2e92465265ca1e290f46882
+ admin.funds.table.category-private-equity: 0fd952d87e4e3278142724029db405f1
+ admin.funds.table.category-quantitative-systematic: 7236b47ee7d8046e8bacf6703d9c4519
+ admin.funds.table.category-relative-value: 600933bd6d59b689f21ace25350e259b
+ admin.funds.table.category-statistical-arbitrage: 4d79b7be69782938b1091e827909a851
+ admin.funds.table.category-structured-credit: 0e050efdf7ef3750f1d901672069bc16
+ admin.funds.table.category-venture-capital: bb5358d3e2cd921596959bbf207c9c57
+ admin.funds.table.class-absolute-return: 723e5e447f47ec3b3ecaac02c96759f5
+ admin.funds.table.class-core-blend: f886122dd3e486be812429dcef4d6769
+ admin.funds.table.class-diversified: af2ae384b7ff97b6331dfb3e504ed418
+ admin.funds.table.class-early-stage: ff1d710b7167e5809b29489e541b715a
+ admin.funds.table.class-factor-based: 07ad48718e751ae8f6131e31879007ae
+ admin.funds.table.class-growth-focused: 454a3a7e176ea6fdc836c4af1813ba76
+ admin.funds.table.class-header: d68a93558515e11bbe82ebc19f38a4f5
+ admin.funds.table.class-income-focused: 55e824f033563a005b2696ca36a96a07
+ admin.funds.table.class-large-cap: f27cf8788ce7983eebc3d3e068b5cab8
+ admin.funds.table.class-long-equity: c8095df6243a33321e0e33b7ca5e2f83
+ admin.funds.table.class-long-short-equity: ef0a6ef70f0a7f2beba0fede51ac44d5
+ admin.funds.table.class-market-neutral: 30ca0be7230bba8d8ee4665092ac296a
+ admin.funds.table.class-mid-cap: d93c46f608c702218a6d5f2eb5ed233b
+ admin.funds.table.class-momentum-oriented: 9db4f3bf659aa791a5504761d1f4a63d
+ admin.funds.table.class-opportunistic: 608b78c79e4f1e603430b0ad35ba1aac
+ admin.funds.table.class-pre-series-b: 3e756d15b8aa1d3e3daf2a10b5c3b011
+ admin.funds.table.class-quantitative-algorithmic: beaba5efdb9bda6a2c6093035b9efa18
+ admin.funds.table.class-regional: 9c1c6794d4b1fb6ed518d57daa87b628
+ admin.funds.table.class-sector-specific: 425dfb5ca354f727eb9dc72e552f321e
+ admin.funds.table.class-seed-pre-seed: ac63eb417853e416ec6b7f1dd51c1eed
+ admin.funds.table.class-series-b-late-stage: dec87a76066c04a350366847d785e1bb
+ admin.funds.table.class-short-equity: 7713f016b57a04145bbf2a1b8a6c327f
+ admin.funds.table.class-small-cap: b138794f2a164dcc1e75a341e9038e00
+ admin.funds.table.class-tactical-asset-allocation: 2d4caf9ca83e1cf6d9ea54c52e073659
+ admin.funds.table.class-value-focused: 51fd7ec62b8b6f6d37caea889d482bb0
+ admin.funds.table.management-fee-header: 071bb32822e9bf25542b28f8f0676bb3
+ admin.funds.table.name-header: 49ee3087348e8d44e1feda1917443987
+ admin.funds.table.page-description: abc957d7c400835a7b021d6efd1d64af
+ admin.funds.table.page-title: d42b2bb7ac17fc34a099909c0a2f1de9
+ admin.funds.table.private-header: 47f9082fc380ca62d531096aa1d110f1
+ admin.funds.table.private-status: 47f9082fc380ca62d531096aa1d110f1
+ admin.funds.table.public-status: 3d067bedfe2f4677470dd6ccf64d05ed
+ admin.funds.table.related-actions.issue-new.description: 3cf8cf23e43b158a805b480c89f9ae00
+ admin.funds.table.related-actions.issue-new.title: 09acc2618c648e5193d0a282ebd8ee98
+ admin.funds.table.related-actions.mechanics.button: d59048f21fd887ad520398ce677be586
+ admin.funds.table.related-actions.mechanics.description: d1dd62b93653a868bcfa9b1266ef899d
+ admin.funds.table.related-actions.mechanics.title: 5cabf6f2119449d0a059724a57f9a1bd
+ admin.funds.table.related-actions.title: a2005fe8651d38ccc7a7e285d2e51db8
+ admin.funds.table.related-actions.usecases.button: 1819001b72329e2ef5799fe504238035
+ admin.funds.table.related-actions.usecases.description: 2fca312534342e18677e2776a5a36ce6
+ admin.funds.table.related-actions.usecases.title: 5cb617d22da857ea5d75209d6b70acb4
+ admin.funds.table.status-header: ec53a8c4f07baed5d8825072c89799be
+ admin.funds.table.symbol-header: 02c86eb2792f3262c21d030a87e19793
+ admin.funds.table.topinfo-description: 6fe711b5b1a17c8cbc33a96dc55d8dea
+ admin.funds.table.topinfo-title: 29bb67fc502cc282055b5c9721ef9fcb
+ admin.funds.table.total-supply-header: 7ca9416c0e8045c2d9561012e42c4d15
+ admin.funds.tabs.details: 3ec365dd533ddb7ef3d1c111186ce872
+ admin.funds.tabs.events: 87f9f735a1d36793ceaecd4e47124b63
+ admin.funds.tabs.holders: b099a5b6f9f22eac61e7e3176ff002c7
+ admin.funds.tabs.permissions: d08ccf52b4cdd08e41cfb99ec42e0b29
+ admin.funds.tabs.underlying-assets: 513b5e27362967b94ab332c4f3790a4f
+ admin.platform.settings.platform-management: bf6ba0d41ffdc7a03e03f87c569e0c3a
+ admin.sidebar.asset-designer: aaafe0ea551fc6b5888b36c5ffc9961a
+ admin.sidebar.asset-management.asset-activity: 0af652d4c797a0c6b75cff690129f572
+ admin.sidebar.asset-management.bonds: b98e3a37b62f7207c8a0a27e0c0d8777
+ admin.sidebar.asset-management.cryptocurrencies: 69ab3e648e5586bd2a099fc9b21b7440
+ admin.sidebar.asset-management.dashboard: 2938c7f7e560ed972f8a4f68e80ff834
+ admin.sidebar.asset-management.equities: f38992a52cef8611666b2db431b493a6
+ admin.sidebar.asset-management.funds: d42b2bb7ac17fc34a099909c0a2f1de9
+ admin.sidebar.asset-management.group-title: 177512b9add0b40c38dad61838bf7d79
+ admin.sidebar.asset-management.stablecoins: 2f7d136a5b9efb222650243b1d38b6ff
+ admin.sidebar.asset-management.view-all: 0b4db271fc4624853e634ef6882ea8be
+ admin.sidebar.asset-types.bond: 7a3b691731db2969498907b960183633
+ admin.sidebar.asset-types.cryptocurrency: 4c11904ee0b793fc10046d533cae723e
+ admin.sidebar.asset-types.equity: d9df825203724a2f3412de3fc7a7a2be
+ admin.sidebar.asset-types.fund: c1098dd48f0fb20eeea79235055d02ca
+ admin.sidebar.asset-types.stablecoin: 0501a2e331bfc725e5ea1728a8de9098
+ admin.sidebar.platform-management.group-title: bf6ba0d41ffdc7a03e03f87c569e0c3a
+ admin.sidebar.platform-management.settings: f4f70727dc34561dfde1a3c529b6205c
+ admin.sidebar.platform-management.user-management: dd73732ca9c03f026b85fa08e24b4f98
+ admin.sidebar.portfolio-management.dashboard: 2938c7f7e560ed972f8a4f68e80ff834
+ admin.sidebar.portfolio-management.group-title: 654b240dd044565e9ba2ff98858003c3
+ admin.sidebar.portfolio-management.my-activity: c9ddda1b1f76481bd82fa329a6ad4bc8
+ admin.sidebar.portfolio-management.my-assets: c13bec88b2b106c9a25dc6c64c2eb243
+ admin.stablecoins.burn-form.amount.amount-label: b2f40690858b404ed10e62bdf422c704
+ admin.stablecoins.burn-form.amount.available-balance: 1ffc1c904a2ff558869bfbbb0189f568
+ admin.stablecoins.burn-form.amount.description: 7b2bdac16ef466f0c8ed0881e2a5a68b
+ admin.stablecoins.burn-form.amount.title: 034f1f16f32db94ee6659289fdcaa4e8
+ admin.stablecoins.burn-form.button-label: b68e5744214cfc7b9952dc7051c57f64
+ admin.stablecoins.burn-form.description: eaf555f302974fd462f7302492d52a23
+ admin.stablecoins.burn-form.summary.amount-label: b2f40690858b404ed10e62bdf422c704
+ admin.stablecoins.burn-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ admin.stablecoins.burn-form.summary.burn-description: 00a210a592d9dfdda0c40b509bbac3ce
+ admin.stablecoins.burn-form.summary.burn-title: 11635778f116ce6922f6068638a39028
+ admin.stablecoins.burn-form.summary.description: 257f30507f300d31fd6f9830e9e7ca9d
+ admin.stablecoins.burn-form.summary.title: efd63552d423e55585e0decff1af2e9f
+ admin.stablecoins.burn-form.title: 11635778f116ce6922f6068638a39028
+ admin.stablecoins.burn-form.trigger-label: 11635778f116ce6922f6068638a39028
+ admin.stablecoins.charts.asset-statistics-title: e117a0fa6d1102a4b1c678be9ba8662a
+ admin.stablecoins.collateral.collateral-proof-expiration: 5198e2bc405535aad56a94422b38900d
+ admin.stablecoins.collateral.collateral-proof-expiration-info: f6555aaa8b654a51f1393870a462dd14
+ admin.stablecoins.collateral.collateral-proof-validity: 4f48427723be78cbcfd4953a0bd8a5e0
+ admin.stablecoins.collateral.collateral-proof-validity-info: 9f0d16c468c7a0d538b854bc8e3ed88e
+ admin.stablecoins.collateral.committed-collateral-ratio: afba56ee94f8cbbf330b824025590d54
+ admin.stablecoins.collateral.committed-collateral-ratio-info: 6afbb0b3a3291b77b6a9327a6830c3d0
+ admin.stablecoins.collateral.proven-collateral: 4a5246705413a3e19b6d065424a9bd7e
+ admin.stablecoins.collateral.proven-collateral-info: f2f0d268f82d2db9208d231dd00768cd
+ admin.stablecoins.collateral.required-collateral-threshold: f1ee26eef3bc5812b931febd6e701739
+ admin.stablecoins.collateral.required-collateral-threshold-info: 1473265ad1f6947fc701ddd8a229f5b9
+ admin.stablecoins.create-form.basics.decimals-label: 2b417805040de3a3df31c8fd3626b57c
+ admin.stablecoins.create-form.basics.description: 12c94d87d53adb8188f706ba741c0002
+ admin.stablecoins.create-form.basics.isin-label: d03440b351474d0b1a3f851c3453e8de
+ admin.stablecoins.create-form.basics.isin-placeholder: 5ce6498408e628e24d0adaa3f05d99c9
+ admin.stablecoins.create-form.basics.name-label: 49ee3087348e8d44e1feda1917443987
+ admin.stablecoins.create-form.basics.name-placeholder: 1d69fd574e2cc5d6c75e6250671fe4cf
+ admin.stablecoins.create-form.basics.symbol-label: 02c86eb2792f3262c21d030a87e19793
+ admin.stablecoins.create-form.basics.symbol-placeholder: 9ff0ceaed2d507591981be28fa7bfa59
+ admin.stablecoins.create-form.basics.title: 87cabb0c5e5abac7a37df3f21bf09d17
+ admin.stablecoins.create-form.button-label: 35a6a544456ca20488e29b5a41e37bfc
+ admin.stablecoins.create-form.configuration.collateral-proof-validity-label: 26474433a06130575098ff6e0c2ef190
+ admin.stablecoins.create-form.configuration.description: 2ee59bbec7ce7504ea2cd856f4d42604
+ admin.stablecoins.create-form.configuration.title: 254f642527b45bc260048e30704edb39
+ admin.stablecoins.create-form.description: 80f356a1213ad1473d043a5ae620af0e
+ admin.stablecoins.create-form.summary.asset-basics-description: 8c1b1f7b456f832a2b00d3352b7542c5
+ admin.stablecoins.create-form.summary.asset-basics-title: 7f5c9260cb98413030db829edc806293
+ admin.stablecoins.create-form.summary.collateral-proof-validity-label: 26474433a06130575098ff6e0c2ef190
+ admin.stablecoins.create-form.summary.configuration-description: df7b72ef2345288f05ab0096f535c5b4
+ admin.stablecoins.create-form.summary.configuration-title: 254f642527b45bc260048e30704edb39
+ admin.stablecoins.create-form.summary.decimals-label: 2b417805040de3a3df31c8fd3626b57c
+ admin.stablecoins.create-form.summary.description: 0ef25f61bca990e05d074482bcc994f8
+ admin.stablecoins.create-form.summary.isin-label: d03440b351474d0b1a3f851c3453e8de
+ admin.stablecoins.create-form.summary.name-label: 49ee3087348e8d44e1feda1917443987
+ admin.stablecoins.create-form.summary.seconds: 783e8e29e6a8c3e22baa58a19420eb4f
+ admin.stablecoins.create-form.summary.symbol-label: 02c86eb2792f3262c21d030a87e19793
+ admin.stablecoins.create-form.summary.title: 0ef25f61bca990e05d074482bcc994f8
+ admin.stablecoins.create-form.summary.error-duplicate: e498beafef6344c71285123d84892130
+ admin.stablecoins.create-form.title: 6dd350c2fb3cc793a8f5c23e83cb9635
+ admin.stablecoins.create-form.trigger-label: 35a6a544456ca20488e29b5a41e37bfc
+ admin.stablecoins.details.contract-address: d7e1286efec604c15ddab7ef2b290021
+ admin.stablecoins.details.creator: ef1d00d8a237a1bbe431e1091f5715fb
+ admin.stablecoins.details.decimals: 2b417805040de3a3df31c8fd3626b57c
+ admin.stablecoins.details.details-page-description: 251f2c1338c55dda4a44eb39a80119bd
+ admin.stablecoins.details.details-page-title: 10627983af012986942742dd5c395d41
+ admin.stablecoins.details.isin: d03440b351474d0b1a3f851c3453e8de
+ admin.stablecoins.details.name: 49ee3087348e8d44e1feda1917443987
+ admin.stablecoins.details.ownership-concentration: e90da81b8fd18fc54589986f308f5257
+ admin.stablecoins.details.ownership-concentration-info: b90d646020637b7ba884ed881516b76c
+ admin.stablecoins.details.stablecoin-details-description: 01e3bb4c6aabf8a93b85da878974b523
+ admin.stablecoins.details.symbol: 02c86eb2792f3262c21d030a87e19793
+ admin.stablecoins.details.total-burned: 53f3dba1a782979bb3223db81a9557df
+ admin.stablecoins.details.total-burned-info: e9cc1186d2b4f917dde2d91c41823f5b
+ admin.stablecoins.details.total-holders: 117dccbc2e4ce3b3ce71c530bd61060f
+ admin.stablecoins.details.total-holders-info: b6da72dd95ff5fad30840b1e3166cf97
+ admin.stablecoins.details.total-supply: 1ecae95c3c8f236721cce5b740b2deaa
+ admin.stablecoins.details.total-supply-info: 2138711f691fc996de09dbdbbe64b888
+ admin.stablecoins.events.events-page-description: 6b90fd0a4943ac68576fe950e47826d9
+ admin.stablecoins.events.events-page-title: 1e2a7b7b6ebe4d77c942463f560e60b3
+ admin.stablecoins.grant-role-form.address.address-label: 2f2c367f2d983a644073e56b65450d07
+ admin.stablecoins.grant-role-form.address.description: 1f43ded6b233f15cc30303f2208f2c43
+ admin.stablecoins.grant-role-form.address.manual-placeholder: 3d97f638880bade26500cbcd3d1c7bdf
+ admin.stablecoins.grant-role-form.address.manual-toggle: 9155c6f94f857b0d309c17621bcc128f
+ admin.stablecoins.grant-role-form.address.search-placeholder: 0b04832b113b2d7bcde8d214587f5879
+ admin.stablecoins.grant-role-form.address.search-toggle: 79a26d6aa989e2bc91a4adfe055a87ea
+ admin.stablecoins.grant-role-form.address.title: 1997616495719b4fc3787ba946a3f29e
+ admin.stablecoins.grant-role-form.button-label: 8bf93064b20e5563e57b77d8c7248c2c
+ admin.stablecoins.grant-role-form.description: e470b2493fd45aa303f48dd8babf8ca5
+ admin.stablecoins.grant-role-form.roles.description: 957b070312674eb7701105aa8fb577c1
+ admin.stablecoins.grant-role-form.roles.title: 8e5722429436e163eae9180dfd1f3454
+ admin.stablecoins.grant-role-form.summary.admin-address-label: 01467d85d5db44b441098e721f4178ca
+ admin.stablecoins.grant-role-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ admin.stablecoins.grant-role-form.summary.description: 9e8f2a5b336124448c3b8a5fe43c6f80
+ admin.stablecoins.grant-role-form.summary.grant-description: f1891b1b2f31dd5b3bbd0e304e5aa914
+ admin.stablecoins.grant-role-form.summary.grant-title: a642a0c57033418f58cb99b1cbef03fa
+ admin.stablecoins.grant-role-form.summary.roles-label: a5cd3ed116608dac017f14c046ea56bf
+ admin.stablecoins.grant-role-form.summary.title: 613eda63424c1855fbea7d6f52be5538
+ admin.stablecoins.grant-role-form.title: a642a0c57033418f58cb99b1cbef03fa
+ admin.stablecoins.manage.actions.burn: 11635778f116ce6922f6068638a39028
+ admin.stablecoins.manage.actions.grant-role: a642a0c57033418f58cb99b1cbef03fa
+ admin.stablecoins.manage.actions.mint: ca8a196f97a48b2bb489f3e849a68418
+ admin.stablecoins.manage.actions.pause: 105b296a83f9c105355403f3332af50f
+ admin.stablecoins.manage.actions.unpause: 648ff76ea7617136d7a5e0cbff92606f
+ admin.stablecoins.manage.actions.update-collateral: f3b7824a339c8a003b6994bce1c8f90a
+ admin.stablecoins.manage.actions.transfer: 6950810f0d2bba97a6f710c7b965b84e
+ admin.stablecoins.manage.manage: 34e34c43ec6b943c10a3cc1a1a16fb11
+ admin.stablecoins.mint-form.amount.amount-label: b2f40690858b404ed10e62bdf422c704
+ admin.stablecoins.mint-form.amount.collateral-available: 110f8aeca39ff5035625eb9b1175a609
+ admin.stablecoins.mint-form.amount.description: de023495109b6579a169c08395cd7b79
+ admin.stablecoins.mint-form.amount.title: 034f1f16f32db94ee6659289fdcaa4e8
+ admin.stablecoins.mint-form.recipients.title: 8f419c48506f3cf74a150f1f5257d6e7
+ admin.stablecoins.mint-form.recipients.description: 8a988479c1cfbc8efd6ac24eefeca58f
+ admin.stablecoins.mint-form.button-label: a56a33e9d62236e12e5f461161692098
+ admin.stablecoins.mint-form.description: 14e9b674d547071d62ad8332fc43b1b9
+ admin.stablecoins.mint-form.summary.amount-label: b2f40690858b404ed10e62bdf422c704
+ admin.stablecoins.mint-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ admin.stablecoins.mint-form.summary.description: 51b13c1547989e0a4c7d173cf623dbfa
+ admin.stablecoins.mint-form.summary.mint-description: 7dc13461b1dea02487b94a2c813dd921
+ admin.stablecoins.mint-form.summary.mint-title: ca8a196f97a48b2bb489f3e849a68418
+ admin.stablecoins.mint-form.summary.title: 7aa68f5c56e88b9f265aed105098eca2
+ admin.stablecoins.mint-form.title: ca8a196f97a48b2bb489f3e849a68418
+ admin.stablecoins.mint-form.trigger-label: ca8a196f97a48b2bb489f3e849a68418
+ admin.stablecoins.pause-form.pause.button-label: 7775d162c76dbb2ba95f7b69109e371b
+ admin.stablecoins.pause-form.pause.description: 446c87e200c5f670453f9f6c1dd3deaa
+ admin.stablecoins.pause-form.pause.title: a2ccfbfdc3765cc7b29a7b1e16dae33a
+ admin.stablecoins.pause-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ admin.stablecoins.pause-form.summary.current-state-label: 48358648336d501e2336d5360a559533
+ admin.stablecoins.pause-form.summary.description: b67014d6fcaab53aaff5da952ccf8d37
+ admin.stablecoins.pause-form.summary.pause-description: 235595e65afe8600c98393abfad6940c
+ admin.stablecoins.pause-form.summary.pause-title: 105b296a83f9c105355403f3332af50f
+ admin.stablecoins.pause-form.summary.state-active: 4d3d769b812b6faa6b76e1a8abaece2d
+ admin.stablecoins.pause-form.summary.state-paused: e99180abf47a8b3a856e0bcb2656990a
+ admin.stablecoins.pause-form.summary.target-state-label: f700b6febc2ba7f13df9e88e0c0b3a5f
+ admin.stablecoins.pause-form.summary.title: 73ce5baae076cd663117259d8581e7cc
+ admin.stablecoins.pause-form.unpause.button-label: c0c4ee2db5445d612d70f9759ce018ae
+ admin.stablecoins.pause-form.unpause.description: 913aedb4c12881d76148150bdedf9cab
+ admin.stablecoins.pause-form.unpause.title: 1ec7428ae48b1a1d1116da993b3045b4
+ admin.stablecoins.related-actions.decrease-supply.description: c685286f49a3980f41a7a1a28535bbfc
+ admin.stablecoins.related-actions.decrease-supply.title: d9c20f809740c93ee82f9561c4a5d1a1
+ admin.stablecoins.related-actions.increase-supply.description: 8832454636888d09ffd457cb86778046
+ admin.stablecoins.related-actions.increase-supply.title: 765fa1cd6896f4cb878517371ba11c2a
+ admin.stablecoins.related-actions.title: 0a5bafcb047751c696456bbf5f2ff673
+ admin.stablecoins.related-actions.update-collateral.description: d609f7dd28c76a3ddcdf8082180b9b72
+ admin.stablecoins.related-actions.update-collateral.title: dd71e441c341791bff80175e1c21c73f
+ admin.stablecoins.table.actions-header: 06df33001c1d7187fdd81ea1f5b277aa
+ admin.stablecoins.table.address-header: dd7bf230fde8d4836917806aff6a6b27
+ admin.stablecoins.table.asset-management: 177512b9add0b40c38dad61838bf7d79
+ admin.stablecoins.table.committed-collateral-header: 7b561d2b6c4a5642db35332822d170a8
+ admin.stablecoins.table.name-header: 49ee3087348e8d44e1feda1917443987
+ admin.stablecoins.table.page-description: 14b1a69fc7f3d2f9ce42a9e58f4fbb94
+ admin.stablecoins.table.page-title: 9402b88637cc074f3185da6dd3b5f9c8
+ admin.stablecoins.table.private-header: 47f9082fc380ca62d531096aa1d110f1
+ admin.stablecoins.table.private-status: 47f9082fc380ca62d531096aa1d110f1
+ admin.stablecoins.table.public-status: 3d067bedfe2f4677470dd6ccf64d05ed
+ admin.stablecoins.table.related-actions.issue-new.description: c18506de879417d3ac7ea6d5a898a59b
+ admin.stablecoins.table.related-actions.issue-new.title: 35a6a544456ca20488e29b5a41e37bfc
+ admin.stablecoins.table.related-actions.mechanics.button: d59048f21fd887ad520398ce677be586
+ admin.stablecoins.table.related-actions.mechanics.description: 11dc745585d5e80683d8d6b9cc280737
+ admin.stablecoins.table.related-actions.mechanics.title: 1e611122e6b3fa0a646908d46fe483b3
+ admin.stablecoins.table.related-actions.title: a2005fe8651d38ccc7a7e285d2e51db8
+ admin.stablecoins.table.related-actions.usecases.button: 1819001b72329e2ef5799fe504238035
+ admin.stablecoins.table.related-actions.usecases.description: facfab3650eeada3c11de0d087f61116
+ admin.stablecoins.table.related-actions.usecases.title: 5cb617d22da857ea5d75209d6b70acb4
+ admin.stablecoins.table.status-header: ec53a8c4f07baed5d8825072c89799be
+ admin.stablecoins.table.symbol-header: 02c86eb2792f3262c21d030a87e19793
+ admin.stablecoins.table.topinfo-description: c19137c40d26f0ed7b3133cb9b437578
+ admin.stablecoins.table.topinfo-title: 6f6022eaec5ef1ee3228ec932584ae1e
+ admin.stablecoins.table.total-supply-header: 7ca9416c0e8045c2d9561012e42c4d15
+ admin.stablecoins.tabs.details: 3ec365dd533ddb7ef3d1c111186ce872
+ admin.stablecoins.tabs.events: 87f9f735a1d36793ceaecd4e47124b63
+ admin.stablecoins.tabs.holders: b099a5b6f9f22eac61e7e3176ff002c7
+ admin.stablecoins.tabs.permissions: d08ccf52b4cdd08e41cfb99ec42e0b29
+ admin.stablecoins.tabs.underlying-assets: 513b5e27362967b94ab332c4f3790a4f
+ admin.stablecoins.update-collateral-form.amount.amount-label: b2f40690858b404ed10e62bdf422c704
+ admin.stablecoins.update-collateral-form.amount.description: 79a739dfe12982ffa4bc0b5a76c849bc
+ admin.stablecoins.update-collateral-form.amount.title: 034f1f16f32db94ee6659289fdcaa4e8
+ admin.stablecoins.update-collateral-form.button-label: 331e2ff7a16d07ba0f10673d9f0801b3
+ admin.stablecoins.update-collateral-form.description: e4a73a6a6ebac6950c9c8ccb7f0c7dab
+ admin.stablecoins.update-collateral-form.summary.amount-label: b2f40690858b404ed10e62bdf422c704
+ admin.stablecoins.update-collateral-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ admin.stablecoins.update-collateral-form.summary.description: 74f625587d80792b76410d7fb047abf0
+ admin.stablecoins.update-collateral-form.summary.title: 41833cf558e94378b4f89ddc317e3951
+ admin.stablecoins.update-collateral-form.summary.update-description: a99898b1871f524694fae5a393bcce47
+ admin.stablecoins.update-collateral-form.summary.update-title: f3b7824a339c8a003b6994bce1c8f90a
+ admin.stablecoins.update-collateral-form.title: dd71e441c341791bff80175e1c21c73f
+ admin.stablecoins.update-collateral-form.trigger-label: dd71e441c341791bff80175e1c21c73f
+ admin.users.banned_reason: 2c0a5680f5a30d18540bfb65a23f7e63
+ admin.users.columns.email: ce8ae9da5b7cd6c3df2929543a9af92d
+ admin.users.columns.kyc_status: 04c850a81052df23680d00d2aa1d891e
+ admin.users.columns.last_activity: bc5188ca43d423ba3730e4c030609d6e
+ admin.users.columns.name: 49ee3087348e8d44e1feda1917443987
+ admin.users.columns.role: bbbabdbe1b262f75d99d62880b953be1
+ admin.users.columns.status: ec53a8c4f07baed5d8825072c89799be
+ admin.users.columns.wallet: 156e132b014314b1eae89410e54bcc8c
+ admin.users.detail.edit_user: ed29920fade587761581f737fff44155
+ admin.users.detail.charts.transaction-history-last-month.title: 1b362a69bb5610f7110e8727a04aa6b9
+ admin.users.detail.charts.transaction-history-last-month.description: 7e55e2762aa8aa600b79add382caf96e
+ admin.users.detail.charts.transaction-history-last-year.title: b5db8dbcd9904973e2a3aa699c671ab8
+ admin.users.detail.charts.transaction-history-last-year.description: 5a3aebd98735589619e369e55d4cf674
+ admin.users.detail.fields.asset_supply: fce5ea1f98b0ccadb1cdb32e22f04d68
+ admin.users.detail.fields.created_at: 5f2b9345f9bbd74079b99d6fcf461408
+ admin.users.detail.fields.email: ce8ae9da5b7cd6c3df2929543a9af92d
+ admin.users.detail.fields.last_activity: bc5188ca43d423ba3730e4c030609d6e
+ admin.users.detail.fields.last_login: a235efe8452eee7c9cbdb6dbe3d6b978
+ admin.users.detail.fields.name: 49ee3087348e8d44e1feda1917443987
+ admin.users.detail.fields.status: ec53a8c4f07baed5d8825072c89799be
+ admin.users.detail.fields.transactions: 31112aca11d0e9e6eb7db96f317dda49
+ admin.users.detail.fields.verified_at: f3b51254827bd09f30accc598f65d682
+ admin.users.detail.fields.wallet: 156e132b014314b1eae89410e54bcc8c
+ admin.users.detail.platform-management: bf6ba0d41ffdc7a03e03f87c569e0c3a
+ admin.users.detail.tabs.details: 3ec365dd533ddb7ef3d1c111186ce872
+ admin.users.detail.tabs.holdings: 063215beb567e666b3c937ae83163e92
+ admin.users.detail.tabs.latest-events: 8b0807a79d36ca9fece2ab62e26bdd9f
+ admin.users.detail.tabs.permissions: d08ccf52b4cdd08e41cfb99ec42e0b29
+ admin.users.detail.values.asset_supply: fce5ea1f98b0ccadb1cdb32e22f04d68
+ admin.users.detail.values.created_at: 5f2b9345f9bbd74079b99d6fcf461408
+ admin.users.detail.values.email: ce8ae9da5b7cd6c3df2929543a9af92d
+ admin.users.detail.values.last_activity: bc5188ca43d423ba3730e4c030609d6e
+ admin.users.detail.values.last_login: a235efe8452eee7c9cbdb6dbe3d6b978
+ admin.users.detail.values.name: 49ee3087348e8d44e1feda1917443987
+ admin.users.detail.values.never: 6e7b34fa59e1bd229b207892956dc41c
+ admin.users.detail.values.not_verified: 1e410e1b9903e7a99b93857f536b7e1d
+ admin.users.detail.values.status: ec53a8c4f07baed5d8825072c89799be
+ admin.users.detail.values.transactions: 31112aca11d0e9e6eb7db96f317dda49
+ admin.users.detail.values.verified_at: f3b51254827bd09f30accc598f65d682
+ admin.users.detail.values.wallet: 156e132b014314b1eae89410e54bcc8c
+ admin.users.holdings.title: 063215beb567e666b3c937ae83163e92
+ admin.users.holdings.table.actions-header: 004bf6c9a40003140292e97330236c53
+ admin.users.holdings.table.balance-header: 99a808d8d16122d70e44bd7f709d30fb
+ admin.users.holdings.table.holder-type-header: a1fa27779242b4902f7ae3bdd5c6d508
+ admin.users.holdings.table.last-activity-header: bc5188ca43d423ba3730e4c030609d6e
+ admin.users.holdings.table.name-header: 49ee3087348e8d44e1feda1917443987
+ admin.users.holdings.table.status-header: ec53a8c4f07baed5d8825072c89799be
+ admin.users.holdings.table.symbol-header: 02c86eb2792f3262c21d030a87e19793
+ admin.users.holdings.table.type-header: a929f2ae00fe5ccc912c986064cc7f95
+ admin.users.latest-events.title: 8b0807a79d36ca9fece2ab62e26bdd9f
+ admin.users.latest-events.view-all: 95cc62dbab1792d532f132c46a767920
+ admin.users.kyc_status.notVerified: 1e410e1b9903e7a99b93857f536b7e1d
+ admin.users.kyc_status.verified: 3f68e67dc6c397aaa9d1c24c356f754f
+ admin.users.page-description: 479491b080e378ec92640f51b23616fb
+ admin.users.page-title: f9aae5fda8d810a29f12d1e61b4ab25f
+ admin.users.platform-management: bf6ba0d41ffdc7a03e03f87c569e0c3a
+ admin.users.roles.admin: e3afed0047b08059d0fada10f400c1e5
+ admin.users.roles.issuer: 51360304ea03557e79bdf5ff9cd2e234
+ admin.users.roles.user: 8f9bfe9d1345237cb3b2b205864da075
+ admin.users.status.active: 4d3d769b812b6faa6b76e1a8abaece2d
+ admin.users.status.banned: a6f2b2df29609876b609c318bdbdf9a1
+ admin.users.title: f9aae5fda8d810a29f12d1e61b4ab25f
+ admin.charts.asset-type-formatter.bonds: b98e3a37b62f7207c8a0a27e0c0d8777
+ admin.charts.asset-type-formatter.cryptocurrencies: 69ab3e648e5586bd2a099fc9b21b7440
+ admin.charts.asset-type-formatter.equities: f38992a52cef8611666b2db431b493a6
+ admin.charts.asset-type-formatter.funds: d42b2bb7ac17fc34a099909c0a2f1de9
+ admin.charts.asset-type-formatter.stablecoins: 2f7d136a5b9efb222650243b1d38b6ff
+ admin.asset-holders-tab.actions-header: 06df33001c1d7187fdd81ea1f5b277aa
+ admin.asset-holders-tab.balance-header: 99a808d8d16122d70e44bd7f709d30fb
+ admin.asset-holders-tab.block-form.block-button-label: f58f963b0e689acb9b2527c067da8356
+ admin.asset-holders-tab.block-form.block-description: ca195616f62f784f0e86968609da8597
+ admin.asset-holders-tab.block-form.block-title: 537b1d8e81389718c2eec0431a2da71b
+ admin.asset-holders-tab.block-form.block-trigger-label: e1e4c8c9ccd9fc39c391da4bcd093fb2
+ admin.asset-holders-tab.block-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ admin.asset-holders-tab.block-form.summary.block-title: e1e4c8c9ccd9fc39c391da4bcd093fb2
+ admin.asset-holders-tab.block-form.summary.current-state-label: 48358648336d501e2336d5360a559533
+ admin.asset-holders-tab.block-form.summary.description: 91ee93efa49b10c84f89659bfa7dbf5a
+ admin.asset-holders-tab.block-form.summary.operation-description: 88952257feaa2f90740a22773ef8a301
+ admin.asset-holders-tab.block-form.summary.state-active: 4d3d769b812b6faa6b76e1a8abaece2d
+ admin.asset-holders-tab.block-form.summary.state-blocked: 4ecc0d90eec1cea3e9db96583a1bb9c2
+ admin.asset-holders-tab.block-form.summary.target-state-label: f700b6febc2ba7f13df9e88e0c0b3a5f
+ admin.asset-holders-tab.block-form.summary.title: 6f6bb5fcfcedf3c82139ae1c14647c25
+ admin.asset-holders-tab.block-form.summary.unblock-title: 193cb08a65f200adaa4f9c35f7e41154
+ admin.asset-holders-tab.block-form.unblock-button-label: 08100863ba5891938659360206b843b5
+ admin.asset-holders-tab.block-form.unblock-description: ea163d2e5c304409e239580160dfc369
+ admin.asset-holders-tab.block-form.unblock-title: 2866ac502ce2b26d93e92a5aa7cf7e8c
+ admin.asset-holders-tab.block-form.unblock-trigger-label: 193cb08a65f200adaa4f9c35f7e41154
+ admin.asset-holders-tab.freeze-form.amount.amount-label: b2f40690858b404ed10e62bdf422c704
+ admin.asset-holders-tab.freeze-form.amount.balance-description: 070ac564ae926fc343f2e2cef8bad5bb
+ admin.asset-holders-tab.freeze-form.amount.description: de56efc27849c6dff8e25c16c2df6691
+ admin.asset-holders-tab.freeze-form.amount.title: 034f1f16f32db94ee6659289fdcaa4e8
+ admin.asset-holders-tab.freeze-form.button-label: bd93411be72ef0106bf8958f329b6e6b
+ admin.asset-holders-tab.freeze-form.description: 10691e514d0c89e51ec69078c012f6ba
+ admin.asset-holders-tab.freeze-form.summary.amount-label: b2f40690858b404ed10e62bdf422c704
+ admin.asset-holders-tab.freeze-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ admin.asset-holders-tab.freeze-form.summary.description: 077712e4fe0cd9ac7ef02fb7d4af7f36
+ admin.asset-holders-tab.freeze-form.summary.freeze-title: 65467087a19145f43129bba42781aea0
+ admin.asset-holders-tab.freeze-form.summary.operation-description: a29bede7dcd927dfc97627a6c3174a9b
+ admin.asset-holders-tab.freeze-form.summary.title: ab93a5d0a8161b53dfa9862f0c345db4
+ admin.asset-holders-tab.freeze-form.title: df572203a7e157ed2e96b52d2d53759c
+ admin.asset-holders-tab.freeze-form.trigger-label: 65467087a19145f43129bba42781aea0
+ admin.asset-holders-tab.frozen-header: 68abcc3d0869f8a52c2b286b3c511dd3
+ admin.asset-holders-tab.holders-page-description: 63df54cbae03a513d77cf827ac554f1d
+ admin.asset-holders-tab.holders-page-title: d9cda786b4e9ab189b45d1406947b201
+ admin.asset-holders-tab.holder-type-header: a1fa27779242b4902f7ae3bdd5c6d508
+ admin.asset-holders-tab.last-activity-header: bc5188ca43d423ba3730e4c030609d6e
+ admin.asset-holders-tab.status-header: ec53a8c4f07baed5d8825072c89799be
+ admin.asset-holders-tab.wallet-header: 156e132b014314b1eae89410e54bcc8c
+ admin.asset-permissions-tab.actions-header: 06df33001c1d7187fdd81ea1f5b277aa
+ admin.asset-permissions-tab.edit-form.button-label: bac1979c6af398082d23c5b4f5b5e8e0
+ admin.asset-permissions-tab.edit-form.description: 0b1e37ef2b280eef3df04d090dd41805
+ admin.asset-permissions-tab.edit-form.roles.description: 77166df11097d6a3bb3d80756a743ff0
+ admin.asset-permissions-tab.edit-form.roles.title: 92ca08873572adb2d29541d634fc2be7
+ admin.asset-permissions-tab.edit-form.summary.current-roles-label: 3a28112c268b9b40580067b9bccd0d58
+ admin.asset-permissions-tab.edit-form.summary.description: 382a6edb1dcdae325e62e90fe5a1b6be
+ admin.asset-permissions-tab.edit-form.summary.new-roles-label: 1afab3a4173d043f9ab4605413fd7636
+ admin.asset-permissions-tab.edit-form.summary.operation-description: 4ed33a508b936aaa9f22dc6f1fb09395
+ admin.asset-permissions-tab.edit-form.summary.title: 6891cfdaf48d3419ce894620c9c0b748
+ admin.asset-permissions-tab.edit-form.summary.update-title: 436a859163dceb6dfc35cd643a2111f1
+ admin.asset-permissions-tab.edit-form.summary.user-label: 8f9bfe9d1345237cb3b2b205864da075
+ admin.asset-permissions-tab.edit-form.title: f0f41ea52c10655bd2ba851058298f97
+ admin.asset-permissions-tab.edit-form.trigger-label: 36cf870af0eef60e782fec9d6bfb95a8
+ admin.asset-permissions-tab.last-activity-header: 6307dd2f57d3f7f949eca03a2a54f6e0
+ admin.asset-permissions-tab.page-description: 74bc44638128d27188155f889ec5d62d
+ admin.asset-permissions-tab.page-title: 204c77a1491843210aaf71128c08cfad
+ admin.asset-permissions-tab.permissions-page-description: 1dc78fb9f643e7726adaafb73a5a0401
+ admin.asset-permissions-tab.permissions-page-title: 204c77a1491843210aaf71128c08cfad
+ admin.asset-permissions-tab.revoke-all-form.button-label: 45b0f1a04cca4b303e1ca69829c4651a
+ admin.asset-permissions-tab.revoke-all-form.description: 828b3440f25504d64cb1d23c41547c50
+ admin.asset-permissions-tab.revoke-all-form.summary.description: 9ac0ec060233522043c648ad9b1f7295
+ admin.asset-permissions-tab.revoke-all-form.summary.operation-description: 1af45fcae4348816a126be7d7a37d26e
+ admin.asset-permissions-tab.revoke-all-form.summary.revoke-title: c2cb1774806c9fe2d134221195ae3496
+ admin.asset-permissions-tab.revoke-all-form.summary.roles-to-revoke-label: 533a3577c9b8989ffae9e3900e077f8a
+ admin.asset-permissions-tab.revoke-all-form.summary.title: 7a347de1c6bc1d7b6abbf6bef2f05646
+ admin.asset-permissions-tab.revoke-all-form.summary.user-label: 8f9bfe9d1345237cb3b2b205864da075
+ admin.asset-permissions-tab.revoke-all-form.title: 0672707ea98faeab5034e3706237bfcc
+ admin.asset-permissions-tab.revoke-all-form.trigger-label: c2cb1774806c9fe2d134221195ae3496
+ admin.asset-permissions-tab.roles-header: a5cd3ed116608dac017f14c046ea56bf
+ admin.asset-permissions-tab.table-title: d08ccf52b4cdd08e41cfb99ec42e0b29
+ admin.asset-permissions-tab.wallet-header: 156e132b014314b1eae89410e54bcc8c
+ asset-management: 177512b9add0b40c38dad61838bf7d79
+ asset-type.bond: 7a3b691731db2969498907b960183633
+ asset-type.stablecoin: 0501a2e331bfc725e5ea1728a8de9098
+ asset-type.equity: d9df825203724a2f3412de3fc7a7a2be
+ asset-type.cryptocurrency: 4c11904ee0b793fc10046d533cae723e
+ asset-type.fund: c1098dd48f0fb20eeea79235055d02ca
+ asset-status.active: 4d3d769b812b6faa6b76e1a8abaece2d
+ asset-status.paused: e99180abf47a8b3a856e0bcb2656990a
+ asset-status.blocked: 4ecc0d90eec1cea3e9db96583a1bb9c2
+ auth.account: 08bd40c7543007ad06e4fce31618f6ec
+ auth.add-account: 1f78ae0500c549603a85262981982518
+ auth.already-have-account: 21bdc5689c12595ae14298354d5550d5
+ auth.avatar: 32036005d1f6ed59803ba3e13c80993e
+ auth.avatar-description: c8f5cec1cca3398c428d8f3e40c78e7b
+ auth.avatar-instructions: e8b54ad90af18d0524e1d7ed2a85f8c4
+ auth.change-password: 8f1e77e0d2be21da93cd4d9a939148f7
+ auth.change-password-description: aca77fc3fe5a46de34a6a16238dfcebf
+ auth.change-password-instructions: 9314a77b365ea98c193a7e7537d27c16
+ auth.change-password-success: 9bc75a1c6d94e70e8b96d8d59115c0bf
+ auth.current-password: 4bc28f132d571b160ba407e143915de2
+ auth.current-password-placeholder: a454262ec02348608cdf5c73ef3f992b
+ auth.current-session: c620aba920847791d92fee85fd52208d
+ auth.delete-account: bee04ef1315b3f9562be34e2e28a7831
+ auth.delete-account-description: 98499cdd327a7477f65d822e085d696b
+ auth.delete-account-email: 644b3ef8c4e09c9a409d7c987850d272
+ auth.delete-account-instructions: 1d5dfb6d7fbffd533fd1c3f028e58e34
+ auth.delete-account-not-fresh: 0e11bc62594319513432d0802a2ea5e2
+ auth.delete-account-success: cdac6e038678e7fde876bb5b4b06c116
+ auth.disabled-credentials-description: 9d9fb655d2415c410742929bf5148fc9
+ auth.dont-have-account: a5f61298da21626d0f490ebd06ecd811
+ auth.email: ce8ae9da5b7cd6c3df2929543a9af92d
+ auth.email-description: adb752af25dfcb4f350a2432b2ba78e1
+ auth.email-instructions: 8f5e0f5301f9c2aa765ebc8a142f9dbc
+ auth.email-placeholder: 0bc74af958460034621b0b7257bc178b
+ auth.email-verification: ae3bf409b7047299d860de058118f8e4
+ auth.email-verify-change: 754d1630d4db197e64cff8740689f942
+ auth.failed-to-validate: fa7c2c1185ef4b841e4eb5118b5bf522
+ auth.forgot-password: 9ec54ec336b65da6179cf750de33ecd7
+ auth.forgot-password-action: 733ae3eecadd5777cea5ce9a32379d7a
+ auth.forgot-password-description: 2468adf0e9c17ccdb922afd26c90820c
+ auth.forgot-password-email: 0d611a99a2b6139072bbbf5f10f3bc28
+ auth.forgot-password-link: 01a569ddc6cf67ddec2a683f0a5f5956
+ auth.link: 97e7c9a7d06eac006a28bf05467fcc8b
+ auth.magic-link: fcbd31cec3e5d1d3f51db229362467eb
+ auth.magic-link-action: cd33b6cae1502d925b7c38d4ff43c5ac
+ auth.magic-link-description: f98c66f29b795d68c32be177e558f30f
+ auth.magic-link-email: 82b881910c019e3a75e6557ee89cf5b7
+ auth.name: 49ee3087348e8d44e1feda1917443987
+ auth.name-description: db541a9f1700ce0f78d462a7ecb21a48
+ auth.name-instructions: 1d9872bc27d142b25b907943cf7a0675
+ auth.name-placeholder: 4c2a904bafba06591225113ad17b5cec
+ auth.new-password: ae3bb2a1ac61750150b606298091d38a
+ auth.new-password-placeholder: bbddd6ba0948d79e55486e615a265b56
+ auth.passkey: 816da2672a1205347a4ae8e9eb25f0bd
+ auth.password: dc647eb65e6711e155375218212b3964
+ auth.password-description: d33329ec0c775d62b858bf4db5084a69
+ auth.password-instructions: 9314a77b365ea98c193a7e7537d27c16
+ auth.password-placeholder: e8d28194f9b3498d21fbda21321d0226
+ auth.pincode-form.name-label: c2d3a824b74ba6b9d459542106ea5e81
+ auth.pincode-form.pincode-label: b24b02b4891848b998020073afa52d9c
+ auth.pincode-form.setting-up: 7f1650ee875e9a88e5b2c0899dbca37d
+ auth.pincode-form.submit: afbf8375e2309f2a64e18911ffa9fd98
+ auth.provider-link-success: eda8c1cee8b710eeff65c10574bd108a
+ auth.provider-unlink-success: 4f8c335dcb86a03f3f04d6c2a7b50645
+ auth.providers: ebb4c7315a13fbb6d59f702992052318
+ auth.providers-description: bce05168fd5bab0f0cb80dfd2293dfe8
+ auth.providers-loading-error: 1d6f0554e732b9999daa0184d3fb9be0
+ auth.remember-me: 878530871f0db73f004f5bd6591eeb76
+ auth.reset-password: 6072e83b7f35887c76e64920bd370f4a
+ auth.reset-password-action: 6c9025c5d284889adb27111824de57e0
+ auth.reset-password-description: fb74f25b8e31caa0541f56be5e89d08b
+ auth.reset-password-invalid-token: f5b8fcf8e7d16873a6f43796b6c619f5
+ auth.reset-password-success: b086e39450cc1801a75d6eb86f9642b8
+ auth.revoke: 21313f76b111bc0df501bf89fc96ba46
+ auth.save: c9cc8cce247e49bae79f15173ce97354
+ auth.sessions: a9c4b6c9fbd990849d1f128dfc4ed3e7
+ auth.sessions-description: 84d33a513406e51ce0be6f7046b0705a
+ auth.set-password: af214972865d03cc4eb63ed9f0b75554
+ auth.set-password-description: c1914344a145a09324886746adb6ef4d
+ auth.set-password-email-sent: c1914344a145a09324886746adb6ef4d
+ auth.settings: f4f70727dc34561dfde1a3c529b6205c
+ auth.sign-in: f2fdea440d768b85591e936a803c3631
+ auth.sign-in-action: 99dea78007133396a7b8ed70578ac6ae
+ auth.sign-in-description: dffc023a39b961ea424d84bfcaa35ecf
+ auth.sign-in-username-description: cceaf351d0e9e19522edd2bb32d0d869
+ auth.sign-in-with: 10fc35c1207dfc5711e182221e2bcbcf
+ auth.sign-out: 375e08625a2c38089b9e3a60f0e68325
+ auth.sign-up: d67850bd126f070221dcfd5fa6317043
+ auth.sign-up-action: 2fdfd506efea08144c0794c32ca8250a
+ auth.sign-up-description: 59662631c17b489090002ce3cc7221f3
+ auth.sign-up-email: 1bfdea4b3c28f272245b479442b6c21e
+ auth.signin.description: dffc023a39b961ea424d84bfcaa35ecf
+ auth.signin.email.label: ce8ae9da5b7cd6c3df2929543a9af92d
+ auth.signin.email.placeholder: 0bc74af958460034621b0b7257bc178b
+ auth.signin.no-account: a5f61298da21626d0f490ebd06ecd811
+ auth.signin.password.label: dc647eb65e6711e155375218212b3964
+ auth.signin.remember-me: 878530871f0db73f004f5bd6591eeb76
+ auth.signin.sign-in-with-passkey: edcae31bd47384a0899d9a9d0c1c653c
+ auth.signin.sign-up: d9776f0775997b2e698c6975420b5c5d
+ auth.signin.submit: b6d4223e60986fa4c9af77ee5f7149c5
+ auth.signin.submitting: 4381b667ecfd06041db1ee258f98ec83
+ auth.signin.title: 15cb3b43610751d8b2e241abfba63e10
+ auth.signup.description: d1a07de2ccf5a5b84e56f60271b89dff
+ auth.signup.email.label: ce8ae9da5b7cd6c3df2929543a9af92d
+ auth.signup.email.placeholder: 944e0f9326b732dee56d5d8b85d87e88
+ auth.signup.error.generic: a25c753ee3e4be15ec0daa5a40deb7b8
+ auth.signup.have-account: 21bdc5689c12595ae14298354d5550d5
+ auth.signup.name.label: 49ee3087348e8d44e1feda1917443987
+ auth.signup.name.placeholder: 71c5c094022f88148074f353b5084a61
+ auth.signup.page.alert.description: 5c7e19a9edd78fe6b09a3dd8ce7d7ca8
+ auth.signup.page.alert.title: a684babfec49e1fd7c54cc312bc36849
+ auth.signup.password.label: dc647eb65e6711e155375218212b3964
+ auth.signup.sign-in: b6d4223e60986fa4c9af77ee5f7149c5
+ auth.signup.submit: 42369faa6a6b243aac58683f3874bf99
+ auth.signup.submitting: 29dfe0f071ce461d8f9d671d1864351b
+ auth.signup.title: 2fdfd506efea08144c0794c32ca8250a
+ auth.signup.wallet-pin.label: 7f1fab2d71015f5b0d72306593058b9a
+ auth.signup.wallet-pin-confirm.label: 431fa740b6ab5034cd82d2bcfe916206
+ auth.unlink: c1a39b6a60f8b2f87e23d60ab649d994
+ auth.username: f6039d44b29456b20f8f373155ae4973
+ auth.username-description: 0c88986397d088646f31cc5c728070e6
+ auth.username-instructions: 1d9872bc27d142b25b907943cf7a0675
+ auth.username-placeholder: 4c2a904bafba06591225113ad17b5cec
+ auth.username-sign-in-placeholder: c8b1d00cf350d4af96cd763852d9c520
+ auth.wallet-security.pincode-instruction: 1835fd81901c702bdfe2f09ec8e37cbd
+ auth.wallet-security.pincode-set: a5c7192ea095028d2c5958503263f57c
+ auth.wallet-security.setup-pincode: afbf8375e2309f2a64e18911ffa9fd98
+ auth.wallet-security.verification-description: 6d416e6359291fc4163564cd91f20a66
+ auth.wallet-security.verification-required: 701f8281f0bad533563d46c082fa45f2
+ auth.wrong-role.description: 71e3a48127b41103924a109e915bd5dc
+ auth.wrong-role.go-to-portfolio: 2e62ec9b6c3c559c8a430439b71dc1bb
+ auth.wrong-role.title: d5591d98b2f74d48205cfba7803045cf
+ components.active-pill.active: 4d3d769b812b6faa6b76e1a8abaece2d
+ components.active-pill.paused: e99180abf47a8b3a856e0bcb2656990a
+ components.address-avatar.avatar: 32036005d1f6ed59803ba3e13c80993e
+ components.area-chart.info-icon-label: 4059b0251f66a18cb56f544728796875
+ components.asset-events-table.asset: 26e9054be7f40079575582b7ad3f7363
+ components.asset-events-table.detail-sheet.asset: 26e9054be7f40079575582b7ad3f7363
+ components.asset-events-table.detail-sheet.asset-type: a929f2ae00fe5ccc912c986064cc7f95
+ components.asset-events-table.detail-sheet.date: 44749712dbec183e983dcd78a7736c41
+ components.asset-events-table.detail-sheet.details-button: 3ec365dd533ddb7ef3d1c111186ce872
+ components.asset-events-table.detail-sheet.details-for-event: 3fa5319884c97c84f64cf07ca94a467e
+ components.asset-events-table.detail-sheet.sender: 8aace3ec18d83874d22850b7eee93c7d
+ components.asset-events-table.detail-sheet.transaction-hash: a0bd1db035c6e85fbe6f3cbbf3ff28ee
+ components.asset-events-table.details.account: 08bd40c7543007ad06e4fce31618f6ec
+ components.asset-events-table.details.amount: b2f40690858b404ed10e62bdf422c704
+ components.asset-events-table.details.bond-amount: c005ebb0e21d228e8d61165619fa5069
+ components.asset-events-table.details.burned: 26087341433e59614e8a48d71b91f72e
+ components.asset-events-table.details.details-header: 3ec365dd533ddb7ef3d1c111186ce872
+ components.asset-events-table.details.from: 5da618e8e4b89c66fe86e32cdafde142
+ components.asset-events-table.details.holder: d6a0bc72fe7314bf9e5a823476464f35
+ components.asset-events-table.details.new-admin-role: 546b35c9a5b41896e2d229b753a04eaf
+ components.asset-events-table.details.new-amount: cf3f4c0e26e1e2964a476165857d9bed
+ components.asset-events-table.details.new-mint: 143e14ee77afe1288b4090f8c2c2c448
+ components.asset-events-table.details.old-amount: b42a778c3cbe1f1247debf555b363f39
+ components.asset-events-table.details.previous-admin-role: 336958fe5d2e80487d7c793df2cea82f
+ components.asset-events-table.details.role: bbbabdbe1b262f75d99d62880b953be1
+ components.asset-events-table.details.to: e12167aa0a7698e6ebc92b4ce3909b53
+ components.asset-events-table.details.token: 459a6f79ad9b13cbcb5f692d2cc7a94d
+ components.asset-events-table.details.underlying-amount: f11b1fbf64fc1e9b11050bed63f97868
+ components.asset-events-table.details.user: 8f9bfe9d1345237cb3b2b205864da075
+ components.asset-events-table.details.value: 689202409e48743b914713f96d93947c
+ components.asset-events-table.event: a4ecfc70574394990cf17bd83df499f7
+ components.asset-events-table.events: 87f9f735a1d36793ceaecd4e47124b63
+ components.asset-events-table.sender: 8aace3ec18d83874d22850b7eee93c7d
+ components.asset-events-table.timestamp: a3d5de3eac8bb00ae86fd1a1005f1500
+ components.asset-status-pill.blocked: 4ecc0d90eec1cea3e9db96583a1bb9c2
+ components.asset-type-icon.bond-initials: fc37fbde490e37c1258738a18b9aa4c7
+ components.asset-type-icon.cryptocurrency-initials: aa53ca0b650dfd85c4f59fa156f7a2cc
+ components.asset-type-icon.equity-initials: 2dcbad7477fd40561e8b8198f173bd47
+ components.asset-type-icon.fund-initials: d9d729a2fc731c33ea1360682d73aad5
+ components.asset-type-icon.not-available-initials: d4cd0dabcf4caa22ad92fab40844c786
+ components.asset-type-icon.stablecoin-initials: 6a65edb0cc17d66c677814115b1477f5
+ components.charts.assets.asset-distribution: 1eec46c77577b5bc13860d676fef6804
+ components.charts.assets.asset-distribution-description: f2f637627e48036150f1a99adbdf4397
+ components.charts.assets.asset-distribution-no-data: a0502bbe7d57c0a11e1534095da08374
+ components.charts.assets.collateral-ratio.description: 7c2b795ab5e7407ae5a5dbc2618c5b4f
+ components.charts.assets.collateral-ratio.label: 402c0bb389fdb67267e5ced7921d5fbf
+ components.charts.assets.collateral-ratio.no-data: a174e0686d26c92d56bf13366f54f84c
+ components.charts.assets.free-collateral-ratio.label: b24ce0cd392a5b0b8dedc66c25213594
+ components.charts.assets.last-updated: ffbb3331182cbfda3ccea5bb0c3eea46
+ components.charts.assets.total-supply.description: 2c73005a0303bc52d3f4285cc4a71104
+ components.charts.assets.total-supply.label: 1ecae95c3c8f236721cce5b740b2deaa
+ components.charts.assets.total-supply.no-data: 81b8d7f38f15cfa0b46a1ff4eb2977fd
+ components.charts.assets.total-supply.title: 1ecae95c3c8f236721cce5b740b2deaa
+ components.charts.assets.total-supply-changed.burned-label: ab0498ab3bff0c238ab63e7712ac768d
+ components.charts.assets.total-supply-changed.description: 939eba4c0adec489ab9b92fedf758045
+ components.charts.assets.total-supply-changed.minted-label: 59834e22049f8aacc9266205b3a383bb
+ components.charts.assets.total-supply-changed.no-data: 81b8d7f38f15cfa0b46a1ff4eb2977fd
+ components.charts.assets.total-supply-changed.title: 4c51118029494e03ce25e4a441f189e0
+ components.charts.assets.total-transfers.description: e0ab3c1d889397e1cfc43894feb45e33
+ components.charts.assets.total-transfers.label: 6bcffe1abc54f96bc94f3f3f9f9041f4
+ components.charts.assets.total-transfers.no-data: 81b8d7f38f15cfa0b46a1ff4eb2977fd
+ components.charts.assets.total-transfers.title: 6bcffe1abc54f96bc94f3f3f9f9041f4
+ components.charts.assets.total-volume.description: 63c6f61111bba523da47d2483ce1f1ea
+ components.charts.assets.total-volume.label: ea4cacf786de47ee79720980514c48d5
+ components.charts.assets.total-volume.no-data: 81b8d7f38f15cfa0b46a1ff4eb2977fd
+ components.charts.assets.total-volume.title: ea4cacf786de47ee79720980514c48d5
+ components.charts.assets.used-collateral-ratio.label: fd8f656590df4b2d2b217b060b7204d3
+ components.charts.assets.wallet-distribution: 12fddd8518a4b9e4d5a921eb94641950
+ components.charts.assets.wallet-distribution-description: ebc7b0c11d01b59739f27b425e91a5a1
+ components.charts.assets.wallet-distribution-no-data: 4721df9d7dc81aa627608bf42a932f83
+ components.charts.assets.asset-type-pluralizer.bond: b98e3a37b62f7207c8a0a27e0c0d8777
+ components.charts.assets.asset-type-pluralizer.cryptocurrency: 69ab3e648e5586bd2a099fc9b21b7440
+ components.charts.assets.asset-type-pluralizer.equity: f38992a52cef8611666b2db431b493a6
+ components.charts.assets.asset-type-pluralizer.fund: d42b2bb7ac17fc34a099909c0a2f1de9
+ components.charts.assets.asset-type-pluralizer.stablecoin: 2f7d136a5b9efb222650243b1d38b6ff
+ components.data-table.clear-filters: 0b275442d6556cff30b75f37f1918899
+ components.data-table.details: 3ec365dd533ddb7ef3d1c111186ce872
+ components.data-table.export: 0095a9fa74d1713e43e370a7d7846224
+ components.data-table.failed-export: 333c2c4c5a38fab8b89363198aa44ed8
+ components.data-table.go-to-first-page: e987e3128b4e18b03c5a22b0b0e9167a
+ components.data-table.go-to-last-page: 261e818736ac3798b888949dd433e318
+ components.data-table.go-to-next-page: 406b6936d95a8acd48be844ec706e22c
+ components.data-table.go-to-previous-page: bbaeea4b59d37bd6e0927044f9a00047
+ components.data-table.hide: 62a5e490880a92eef74f167d9dc6dca0
+ components.data-table.no-results: c49c29bb6656c1f25f2cfac84f83b5ba
+ components.data-table.no-results-found: 3f24537d9d26ddf4fd334a881e46a0ec
+ components.data-table.open-menu: 64d2cc43035360eddf790efbef5ddb30
+ components.data-table.page-info: 6f529b774b7c272d521e88f08c71f88d
+ components.data-table.reset: 526d688f37a86d3c3f27d0c5016eb71d
+ components.data-table.rows-per-page: 3995e76cfbc85dea7472c8a1aa627244
+ components.data-table.search: 2a37324bb4c331c859044121df3f576b
+ components.data-table.selected: ef7de3f485174ff47f061ad27d83d0ee
+ components.data-table.selected-rows-info: 7880fc7cbb41a35ec8c8050ef9572bdf
+ components.data-table.sort-ascending: d92d368b3816cbebce22d2a6061ad023
+ components.data-table.sort-descending: dc9e5578170aa844b435017e3d32e1f7
+ components.data-table.toggle-columns: d0668b5ebbdf76b695cb8b0defdb5f66
+ components.data-table.view: 4351cfebe4b61d8aa5efa1d020710005
+ components.detail-grid.info-icon-label: 0f68b904e33d9ac04605aecc958bcf52
+ components.form.assets.default-placeholder: 59d5d61e9e9b2dc33a0211623cc4fe11
+ components.form.assets.loading: 8524de963f07201e5c086830d370797f
+ components.form.assets.no-asset-found: 244c9fb877941479e9505f2c6b536b4e
+ components.form.assets.search-placeholder: 071ed23daa1c788c05da3586ecc2f7b2
+ components.form.button.next: 10ac3d04253ef7e1ddc73e6091c0cd55
+ components.form.button.previous: dd1f775e443ff3b9a89270713580a51b
+ components.form.button.processing: 21d104a54fc71a19a325c7305327f1d2
+ components.form.button.send-transaction: 5882456ac7d6cb3b72ebb749ea2ae795
+ components.form.button.sending-transaction: 838f5dfdf348bac768f078b5eab87211
+ components.form.input.letters-only: 3018601c9aef68d0a7338681c25a8dc6
+ components.form.input.password-min-length: 9da13f69c73b4142f65417777996e658
+ components.form.input.pin-code-length: fedcd7c1d5f6887e66c9eb0d89adac89
+ components.form.input.pin-code-match: e32be2f902a7704ce34defa42d7cc2b0
+ components.form.input.valid-email: 6fc78ea6908a7cbd0b36f7bc468b4275
+ components.form.progress.completed-step: 11da564a254921897afcf5f9f1082860
+ components.form.progress.current-step: efd1e491da96a6b4c7e3e2363b06bcc3
+ components.form.progress.step-of-total: 5dd5b5cd70ce1c14f436a43f0329ec17
+ components.form.progress.upcoming-step: 39507017a22973e79ed5b93883d56716
+ components.form.select.default-placeholder: 59d5d61e9e9b2dc33a0211623cc4fe11
+ components.form.summary.security-confirmation.description: 8e87234caab8c307b46ab3a30de6fa7e
+ components.form.summary.security-confirmation.title: e8d114789088add86b335f55c9b3fbaf
+ components.form.users.default-placeholder: 59d5d61e9e9b2dc33a0211623cc4fe11
+ components.form.users.loading: 8524de963f07201e5c086830d370797f
+ components.form.users.no-user-found: 60290ae81e1a542e7ac5b7d87846deac
+ components.form.users.search-placeholder: dc17b447650377fa087e1237ed452c34
+ components.form.pincode-dialog.title: 502e7d8e83097a1e726112cf13e842a8
+ components.form.pincode-dialog.description: 270fcb334b1eca6a3475504fbebfd3b7
+ components.logo.alt-text: 0ca5471816725ad71ffdeca830e37eb0
+ components.search.assets-section: 9aedeaf1f77b8642abe528503b8c5de8
+ components.search.no-results: e576c23d915755d83e2d1f47bd9f6c22
+ components.search.placeholder: ddb5fad6d85b5b6a32faa3012cd3b981
+ components.search.users-section: f9aae5fda8d810a29f12d1e61b4ab25f
+ components.transaction-details.blob-gas-price-label: d1b6efe73a5f82be48fac142a002c2d5
+ components.transaction-details.blob-gas-used-label: 8c5a1f00dd1fff4ff27d906c76388b98
+ components.transaction-details.block-hash-label: 696440cdffe7cdbf3e773880447dbf3f
+ components.transaction-details.block-number-label: 0845a5f7fbe242ef2472a78cc5ecae4d
+ components.transaction-details.contract-label: f49498143b94e78415d06029763412b9
+ components.transaction-details.created-at-label: 5f2b9345f9bbd74079b99d6fcf461408
+ components.transaction-details.description: b7dbc7a69204d7c8380f8330a7393ca9
+ components.transaction-details.effective-gas-price-label: 66c7e395847d79266a7237e2cbafa061
+ components.transaction-details.from-label: 5da618e8e4b89c66fe86e32cdafde142
+ components.transaction-details.function-label: 86408593c34af77fdd90df932f8b5261
+ components.transaction-details.gas-used-label: 1dfbd8f46096c224fd125cc90beb4e79
+ components.transaction-details.receipt-title: d6d7c5a3f130174a472f0768c912a796
+ components.transaction-details.revert-reason-label: 8482be07627a454f1caa2ea7525e5661
+ components.transaction-details.status-label: ec53a8c4f07baed5d8825072c89799be
+ components.transaction-details.title: 31112aca11d0e9e6eb7db96f317dda49
+ components.transaction-details.transaction-hash-label: 979ffbf91e93b405e1e64f7a00f47ac1
+ components.transaction-details.transaction-index-label: 14dd0250cc299408af5886ed54a3b7b7
+ components.transaction-details.transaction-title: 1b0ffaae3973401f71cd000ab9f7856e
+ components.transaction-details.trigger-label: 3ec365dd533ddb7ef3d1c111186ce872
+ components.transaction-details.type-label: a1fa27779242b4902f7ae3bdd5c6d508
+ components.transaction-hash.view-on-explorer: 239587ba27ff078565f05bc22c6b1e34
+ components.transactions-history.title: 31112aca11d0e9e6eb7db96f317dda49
+ components.transactions-history.description: 266d7b1e1e38458dc8721f8526d5c562
+ components.transactions-history.chart-label: 1b0ffaae3973401f71cd000ab9f7856e
+ components.transactions-table.columns.actions: 06df33001c1d7187fdd81ea1f5b277aa
+ components.transactions-table.columns.created-at: a3d5de3eac8bb00ae86fd1a1005f1500
+ components.transactions-table.columns.contract: f49498143b94e78415d06029763412b9
+ components.transactions-table.columns.function: 86408593c34af77fdd90df932f8b5261
+ components.transactions-table.columns.from: 5da618e8e4b89c66fe86e32cdafde142
+ components.transactions-table.columns.status: ec53a8c4f07baed5d8825072c89799be
+ components.transactions-table.columns.transaction-hash: a0bd1db035c6e85fbe6f3cbbf3ff28ee
+ error.error-id: 69e9e13ca4e079dd3d988bc404306884
+ error.go-home: 382c69628e6c1c196feec18cba47b6a9
+ error.title: c6701602de1528fd79d5eff3e8eb1edd
+ error.try-again: f915a95e609bbd517a8a1e7bdcceef37
+ error.unknown-error: aee9784c03b80d38d3271cde2b252b8d
+ error.validation-errors: bad0d8a56996a16e9cdac5335080e167
+ error.cryptocurrency.duplicate: 75650bc331531dd6d5398504dc7ccfe2
+ error.stablecoin.duplicate: 7b6fe5f5dee3e17b95bf22ef3c6de1b7
+ error.bond.duplicate: 0da4991a0329e482537ef74739226c34
+ error.equity.duplicate: d036cfd229c4f2a6058cff3c1156bba5
+ error.fund.duplicate: 08fe82e8146b6034248445be0ec5cf0d
+ holder-type.admin: e3afed0047b08059d0fada10f400c1e5
+ holder-type.creator-owner: 5439f356b537a6081aabf0ab5ead403d
+ holder-type.regular: 5f404f1ee823982aae0e492bbeabe2d5
+ holder-type.supply-manager: b0b82823b10ee1538db2bcfc0a89be7f
+ layout.header.app-description: b66a3f5e7ce9d50507f6935435e5f4a9
+ layout.header.app-name: 0ca5471816725ad71ffdeca830e37eb0
+ layout.header.home: 8cf04a9734132302f96da8e113e80ce5
+ layout.header.issuer-portal: 05e93ee934950bba9b453434d9ad6ff3
+ layout.navigation.admin: 05e93ee934950bba9b453434d9ad6ff3
+ layout.navigation.home: 8cf04a9734132302f96da8e113e80ce5
+ layout.navigation.portfolio: 654b240dd044565e9ba2ff98858003c3
+ layout.user-dropdown.documentation: 5b6cf869265c13af8566f192b4ab3d2a
+ layout.user-dropdown.logout: 4394c8d8e63c470de62ced3ae85de5ae
+ layout.user-dropdown.pending-transactions: d20ab843371da5dfa95bb6212a9f6aeb
+ portfolio.dashboard.page-title: d4f859a96c13f551a2771b7fc3a78d38
+ portfolio.dashboard.portfolio-management: 6c5ab982f3620a6b2ff8dfc4b0f7e342
+ portfolio.dashboard.my-assets: 73fe13baa319e5c115fdc62077f0e1ec
+ portfolio.dashboard.latest-events: 8b0807a79d36ca9fece2ab62e26bdd9f
+ portfolio.activity.page-description: bd7b3322b15dd585fb1b8a886fbb608c
+ portfolio.activity.page-title: ecfc2dffe568c10a67dbc6d3724cfde2
+ portfolio.activity.portfolio-management: 6c5ab982f3620a6b2ff8dfc4b0f7e342
+ portfolio.activity.tabs.recent-transactions: 7dcf626108cff172a473f896edb4e4a5
+ portfolio.activity.tabs.all-events: 1aafb073a1a78e52e044177f67da6615
+ portfolio.asset-types.bond: 7a3b691731db2969498907b960183633
+ portfolio.asset-types.cryptocurrency: 4c11904ee0b793fc10046d533cae723e
+ portfolio.asset-types.equity: d9df825203724a2f3412de3fc7a7a2be
+ portfolio.asset-types.fund: c1098dd48f0fb20eeea79235055d02ca
+ portfolio.asset-types.stablecoin: 0501a2e331bfc725e5ea1728a8de9098
+ portfolio.asset-types.unknown: 88183b946cc5f0e8c96b2e66e1c74a7e
+ portfolio.greeting.morning: 4e44298897ed12cdc10e5302fa781688
+ portfolio.greeting.afternoon: b6e124621131d20640f582f097eb1d41
+ portfolio.greeting.evening: 0a28b30e5d84d83d385b6b9afd5661ae
+ portfolio.greeting.you-have: 00db7aae85aecb79c75afca7daa8f22e
+ portfolio.my-assets.description: 50d864b6c3f2b1f8fe74e7b6c901e73a
+ portfolio.my-assets.portfolio-management: 6c5ab982f3620a6b2ff8dfc4b0f7e342
+ portfolio.my-assets.title: 73fe13baa319e5c115fdc62077f0e1ec
+ portfolio.my-assets.table.actions-header: 004bf6c9a40003140292e97330236c53
+ portfolio.my-assets.table.balance-header: 99a808d8d16122d70e44bd7f709d30fb
+ portfolio.my-assets.table.name-header: 49ee3087348e8d44e1feda1917443987
+ portfolio.my-assets.table.status-header: ec53a8c4f07baed5d8825072c89799be
+ portfolio.my-assets.table.symbol-header: 02c86eb2792f3262c21d030a87e19793
+ portfolio.my-assets.table.type-header: a1fa27779242b4902f7ae3bdd5c6d508
+ portfolio.my-assets.stablecoin.transfer-form.trigger-label: 6950810f0d2bba97a6f710c7b965b84e
+ portfolio.my-assets.stablecoin.transfer-form.title: 397d273b10f182fdea2b7c6dc6c1ccbd
+ portfolio.my-assets.stablecoin.transfer-form.description: dcebd1895fa3902c8fbe9b1160bfe087
+ portfolio.my-assets.stablecoin.transfer-form.button-label: 6950810f0d2bba97a6f710c7b965b84e
+ portfolio.my-assets.stablecoin.transfer-form.amount.title: 034f1f16f32db94ee6659289fdcaa4e8
+ portfolio.my-assets.stablecoin.transfer-form.amount.description: c1021c36236769dd26df6b07f6664845
+ portfolio.my-assets.stablecoin.transfer-form.amount.value-label: b2f40690858b404ed10e62bdf422c704
+ portfolio.my-assets.stablecoin.transfer-form.amount.balance-available: 1ffc1c904a2ff558869bfbbb0189f568
+ portfolio.my-assets.stablecoin.transfer-form.recipients.title: 02f7b3d88cc9000cb4bad2c9d0024120
+ portfolio.my-assets.stablecoin.transfer-form.recipients.description: 249dd372007496d4ff8eaa4567900eca
+ portfolio.my-assets.stablecoin.transfer-form.recipients.address-label: 68a242517f0a82d394c03990b9693f1f
+ portfolio.my-assets.stablecoin.transfer-form.recipients.address-placeholder: 0b04832b113b2d7bcde8d214587f5879
+ portfolio.my-assets.stablecoin.transfer-form.recipients.search-user-link: 79a26d6aa989e2bc91a4adfe055a87ea
+ portfolio.my-assets.stablecoin.transfer-form.recipients.manual-entry-link: 9155c6f94f857b0d309c17621bcc128f
+ portfolio.my-assets.stablecoin.transfer-form.summary.title: 9a70d04b8aa584ec566fb222399890cc
+ portfolio.my-assets.stablecoin.transfer-form.summary.description: c995dd4ec604c097500f5e2eea88e165
+ portfolio.my-assets.stablecoin.transfer-form.summary.transfer-title: 6950810f0d2bba97a6f710c7b965b84e
+ portfolio.my-assets.stablecoin.transfer-form.summary.transfer-description: 9ac5a90bb6fff285888a1fb40b933ebd
+ portfolio.my-assets.stablecoin.transfer-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ portfolio.my-assets.stablecoin.transfer-form.summary.value-label: b2f40690858b404ed10e62bdf422c704
+ portfolio.my-assets.stablecoin.transfer-form.summary.recipient-label: 5d6103b662f41b07e10687f03aca8fdc
+ portfolio.my-assets.fund.transfer-form.trigger-label: 6950810f0d2bba97a6f710c7b965b84e
+ portfolio.my-assets.fund.transfer-form.title: 7442d78e69353894e4db358afc5a1349
+ portfolio.my-assets.fund.transfer-form.description: bbf671d4846157c9e3d7b7c95f098f3d
+ portfolio.my-assets.fund.transfer-form.button-label: 6950810f0d2bba97a6f710c7b965b84e
+ portfolio.my-assets.fund.transfer-form.amount.title: 034f1f16f32db94ee6659289fdcaa4e8
+ portfolio.my-assets.fund.transfer-form.amount.description: c1021c36236769dd26df6b07f6664845
+ portfolio.my-assets.fund.transfer-form.amount.value-label: b2f40690858b404ed10e62bdf422c704
+ portfolio.my-assets.fund.transfer-form.amount.balance-available: 1ffc1c904a2ff558869bfbbb0189f568
+ portfolio.my-assets.fund.transfer-form.recipients.title: 02f7b3d88cc9000cb4bad2c9d0024120
+ portfolio.my-assets.fund.transfer-form.recipients.description: 249dd372007496d4ff8eaa4567900eca
+ portfolio.my-assets.fund.transfer-form.recipients.address-label: 68a242517f0a82d394c03990b9693f1f
+ portfolio.my-assets.fund.transfer-form.recipients.address-placeholder: 0b04832b113b2d7bcde8d214587f5879
+ portfolio.my-assets.fund.transfer-form.recipients.search-user-link: 79a26d6aa989e2bc91a4adfe055a87ea
+ portfolio.my-assets.fund.transfer-form.recipients.manual-entry-link: 9155c6f94f857b0d309c17621bcc128f
+ portfolio.my-assets.fund.transfer-form.summary.title: 9a70d04b8aa584ec566fb222399890cc
+ portfolio.my-assets.fund.transfer-form.summary.description: c995dd4ec604c097500f5e2eea88e165
+ portfolio.my-assets.fund.transfer-form.summary.transfer-title: 6950810f0d2bba97a6f710c7b965b84e
+ portfolio.my-assets.fund.transfer-form.summary.transfer-description: 9ac5a90bb6fff285888a1fb40b933ebd
+ portfolio.my-assets.fund.transfer-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ portfolio.my-assets.fund.transfer-form.summary.value-label: b2f40690858b404ed10e62bdf422c704
+ portfolio.my-assets.fund.transfer-form.summary.recipient-label: 5d6103b662f41b07e10687f03aca8fdc
+ portfolio.my-assets.equity.transfer-form.trigger-label: 6950810f0d2bba97a6f710c7b965b84e
+ portfolio.my-assets.equity.transfer-form.title: 757d3cf98a3d84c048bb3c3866df8154
+ portfolio.my-assets.equity.transfer-form.description: dc440d523633ec108ba60be100dba2e3
+ portfolio.my-assets.equity.transfer-form.button-label: 6950810f0d2bba97a6f710c7b965b84e
+ portfolio.my-assets.equity.transfer-form.amount.title: 034f1f16f32db94ee6659289fdcaa4e8
+ portfolio.my-assets.equity.transfer-form.amount.description: c1021c36236769dd26df6b07f6664845
+ portfolio.my-assets.equity.transfer-form.amount.value-label: b2f40690858b404ed10e62bdf422c704
+ portfolio.my-assets.equity.transfer-form.amount.balance-available: 1ffc1c904a2ff558869bfbbb0189f568
+ portfolio.my-assets.equity.transfer-form.recipients.title: 02f7b3d88cc9000cb4bad2c9d0024120
+ portfolio.my-assets.equity.transfer-form.recipients.description: 249dd372007496d4ff8eaa4567900eca
+ portfolio.my-assets.equity.transfer-form.recipients.address-label: 68a242517f0a82d394c03990b9693f1f
+ portfolio.my-assets.equity.transfer-form.recipients.address-placeholder: 0b04832b113b2d7bcde8d214587f5879
+ portfolio.my-assets.equity.transfer-form.recipients.search-user-link: 79a26d6aa989e2bc91a4adfe055a87ea
+ portfolio.my-assets.equity.transfer-form.recipients.manual-entry-link: 9155c6f94f857b0d309c17621bcc128f
+ portfolio.my-assets.equity.transfer-form.summary.title: 9a70d04b8aa584ec566fb222399890cc
+ portfolio.my-assets.equity.transfer-form.summary.description: c995dd4ec604c097500f5e2eea88e165
+ portfolio.my-assets.equity.transfer-form.summary.transfer-title: 6950810f0d2bba97a6f710c7b965b84e
+ portfolio.my-assets.equity.transfer-form.summary.transfer-description: 9ac5a90bb6fff285888a1fb40b933ebd
+ portfolio.my-assets.equity.transfer-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ portfolio.my-assets.equity.transfer-form.summary.value-label: b2f40690858b404ed10e62bdf422c704
+ portfolio.my-assets.equity.transfer-form.summary.recipient-label: 5d6103b662f41b07e10687f03aca8fdc
+ portfolio.my-assets.cryptocurrency.transfer-form.trigger-label: 6950810f0d2bba97a6f710c7b965b84e
+ portfolio.my-assets.cryptocurrency.transfer-form.title: 49cec803a7a0a2e54c4d4f2e571c6848
+ portfolio.my-assets.cryptocurrency.transfer-form.description: 2e6438570af82868df1b0acfaeceb0ef
+ portfolio.my-assets.cryptocurrency.transfer-form.button-label: 6950810f0d2bba97a6f710c7b965b84e
+ portfolio.my-assets.cryptocurrency.transfer-form.amount.title: b2f40690858b404ed10e62bdf422c704
+ portfolio.my-assets.cryptocurrency.transfer-form.amount.description: d72d6e7e4d6209a2bc1843ae7bc1c634
+ portfolio.my-assets.cryptocurrency.transfer-form.amount.amount-label: b2f40690858b404ed10e62bdf422c704
+ portfolio.my-assets.cryptocurrency.transfer-form.amount.balance-description: 3d90a0c19f968b2ee43b5ac5ec9721db
+ portfolio.my-assets.cryptocurrency.transfer-form.recipients.title: 02f7b3d88cc9000cb4bad2c9d0024120
+ portfolio.my-assets.cryptocurrency.transfer-form.recipients.description: 249dd372007496d4ff8eaa4567900eca
+ portfolio.my-assets.cryptocurrency.transfer-form.recipients.address-label: 68a242517f0a82d394c03990b9693f1f
+ portfolio.my-assets.cryptocurrency.transfer-form.recipients.address-placeholder: 0b04832b113b2d7bcde8d214587f5879
+ portfolio.my-assets.cryptocurrency.transfer-form.recipients.search-user-link: 79a26d6aa989e2bc91a4adfe055a87ea
+ portfolio.my-assets.cryptocurrency.transfer-form.recipients.manual-entry-link: 9155c6f94f857b0d309c17621bcc128f
+ portfolio.my-assets.cryptocurrency.transfer-form.summary.title: 9a70d04b8aa584ec566fb222399890cc
+ portfolio.my-assets.cryptocurrency.transfer-form.summary.description: c995dd4ec604c097500f5e2eea88e165
+ portfolio.my-assets.cryptocurrency.transfer-form.summary.transfer-title: 6950810f0d2bba97a6f710c7b965b84e
+ portfolio.my-assets.cryptocurrency.transfer-form.summary.transfer-description: 9ac5a90bb6fff285888a1fb40b933ebd
+ portfolio.my-assets.cryptocurrency.transfer-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ portfolio.my-assets.cryptocurrency.transfer-form.summary.value-label: b2f40690858b404ed10e62bdf422c704
+ portfolio.my-assets.cryptocurrency.transfer-form.summary.recipient-label: 5d6103b662f41b07e10687f03aca8fdc
+ portfolio.my-assets.bond.transfer-form.trigger-label: 6950810f0d2bba97a6f710c7b965b84e
+ portfolio.my-assets.bond.transfer-form.title: 72fbda490a6ae69599c0ff508d4a6c3f
+ portfolio.my-assets.bond.transfer-form.description: 53184cca95897818d8d0e2b08767f86f
+ portfolio.my-assets.bond.transfer-form.button-label: 6950810f0d2bba97a6f710c7b965b84e
+ portfolio.my-assets.bond.transfer-form.amount.title: b2f40690858b404ed10e62bdf422c704
+ portfolio.my-assets.bond.transfer-form.amount.description: d72d6e7e4d6209a2bc1843ae7bc1c634
+ portfolio.my-assets.bond.transfer-form.amount.amount-label: b2f40690858b404ed10e62bdf422c704
+ portfolio.my-assets.bond.transfer-form.amount.balance-description: 3d90a0c19f968b2ee43b5ac5ec9721db
+ portfolio.my-assets.bond.transfer-form.recipients.title: 02f7b3d88cc9000cb4bad2c9d0024120
+ portfolio.my-assets.bond.transfer-form.recipients.description: 249dd372007496d4ff8eaa4567900eca
+ portfolio.my-assets.bond.transfer-form.recipients.address-label: 68a242517f0a82d394c03990b9693f1f
+ portfolio.my-assets.bond.transfer-form.recipients.address-placeholder: 0b04832b113b2d7bcde8d214587f5879
+ portfolio.my-assets.bond.transfer-form.recipients.search-user-link: 79a26d6aa989e2bc91a4adfe055a87ea
+ portfolio.my-assets.bond.transfer-form.recipients.manual-entry-link: 9155c6f94f857b0d309c17621bcc128f
+ portfolio.my-assets.bond.transfer-form.summary.title: 9a70d04b8aa584ec566fb222399890cc
+ portfolio.my-assets.bond.transfer-form.summary.description: c995dd4ec604c097500f5e2eea88e165
+ portfolio.my-assets.bond.transfer-form.summary.transfer-title: 6950810f0d2bba97a6f710c7b965b84e
+ portfolio.my-assets.bond.transfer-form.summary.transfer-description: 9ac5a90bb6fff285888a1fb40b933ebd
+ portfolio.my-assets.bond.transfer-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ portfolio.my-assets.bond.transfer-form.summary.value-label: b2f40690858b404ed10e62bdf422c704
+ portfolio.my-assets.bond.transfer-form.summary.recipient-label: 5d6103b662f41b07e10687f03aca8fdc
+ portfolio.my-assets.bond.redeem-form.trigger-label: 81ed4dcb851fefbbbc791eeef4cd97a2
+ portfolio.my-assets.bond.redeem-form.title: c906cace39132a4813df90baadb72f9d
+ portfolio.my-assets.bond.redeem-form.description: 1817d6bd0f678bfb83560c5f1e5a96f0
+ portfolio.my-assets.bond.redeem-form.button-label: 88e86cabf209fcda4638a515b096e6e3
+ portfolio.my-assets.bond.redeem-form.amount.title: 034f1f16f32db94ee6659289fdcaa4e8
+ portfolio.my-assets.bond.redeem-form.amount.description: 40ba5daa4ef0c333396df0bbccfdaeba
+ portfolio.my-assets.bond.redeem-form.amount.amount-label: b2f40690858b404ed10e62bdf422c704
+ portfolio.my-assets.bond.redeem-form.amount.balance-description: 3d90a0c19f968b2ee43b5ac5ec9721db
+ portfolio.my-assets.bond.redeem-form.summary.title: cc6f05e208f78a19cedf7701bfebea1f
+ portfolio.my-assets.bond.redeem-form.summary.description: f285b7c3eeb78b39fdb23892b6eb57e1
+ portfolio.my-assets.bond.redeem-form.summary.redeem-title: 81ed4dcb851fefbbbc791eeef4cd97a2
+ portfolio.my-assets.bond.redeem-form.summary.redeem-description: 529da86b1d83996dd968137a851abdf4
+ portfolio.my-assets.bond.redeem-form.summary.asset-label: 26e9054be7f40079575582b7ad3f7363
+ portfolio.my-assets.bond.redeem-form.summary.value-label: b2f40690858b404ed10e62bdf422c704
+ portfolio.settings.profile.portfolio-management: 6c5ab982f3620a6b2ff8dfc4b0f7e342
+ portfolio.settings.profile.title: cce99c598cfdb9773ab041d54c3d973a
+ portfolio.transfer-form.asset-types: 7a8f32058273f93cf158d8ce39ba40ad
+ portfolio.transfer-form.amount.amount-label: b2f40690858b404ed10e62bdf422c704
+ portfolio.transfer-form.amount.balance-description: b5397350cbd6dcc4fe899771c728f5d1
+ portfolio.transfer-form.amount.description: c1021c36236769dd26df6b07f6664845
+ portfolio.transfer-form.amount.title: 034f1f16f32db94ee6659289fdcaa4e8
+ portfolio.transfer-form.amount.decimals-label: 2b417805040de3a3df31c8fd3626b57c
+ portfolio.transfer-form.amount.decimals-description: 40c2cb81262e02bdaa27049e773eda2b
+ portfolio.transfer-form.description: f734631d30ed6c61f228314b4c4d0fef
+ portfolio.transfer-form.recipients.description: 121576e6c032ae5dbfb878d1b91e14c7
+ portfolio.transfer-form.recipients.title: 8f419c48506f3cf74a150f1f5257d6e7
+ portfolio.transfer-form.recipients.wallet-address-label: a45e5458e44f09f0c4b7682ce8e5b1cc
+ portfolio.transfer-form.select-asset.asset-description: 39f9d35a12ea95fc93e7a53a3ae348b5
+ portfolio.transfer-form.select-asset.asset-label: 26e9054be7f40079575582b7ad3f7363
+ portfolio.transfer-form.select-asset.description: 939a56a4b02eec703a286fb1f8f0a4ee
+ portfolio.transfer-form.select-asset.title: 06f171040c9716e17aad00cc5d6e30b8
+ portfolio.transfer-form.select-asset.trigger-label: 27fc69d3cb8297972e252a38b700456b
+ portfolio.transfer-form.summary.description: cba2fa49a91ac25f8f1128210fad3176
+ portfolio.transfer-form.summary.title: 9a70d04b8aa584ec566fb222399890cc
+ portfolio.transfer-form.transfer: 6950810f0d2bba97a6f710c7b965b84e
+ portfolio.transfer-form.transferring: 7dcd22b96a9090c921e232ddf9252381
+ theme.dark: a18366b217ebf811ad1886e4f4f865b2
+ theme.light: 9914a0ce04a7b7b6a8e39bec55064b82
+ theme.switch-to-mode: 66a8b43baa23b85e40869726ded57e76
+ theme.system: a45da96d0bf6575970f2d27af22be28a
+ theme.toggle-label: 5a9663b09544b4cfe12a13a805d7ac2b
+ transactions.sending: a77ce5034d7c6afa02bfcbea4d40c251
+ transactions.success: ee98c8f635776468110d8ac38b7ad0d9
diff --git a/examples/ja/src/locales/en.json b/examples/ja/src/locales/en.json
new file mode 100644
index 00000000..647f3362
--- /dev/null
+++ b/examples/ja/src/locales/en.json
@@ -0,0 +1,2495 @@
+{
+ "admin": {
+ "activity": {
+ "asset-management": "Asset management",
+ "page-description": "Track activity across all assets.",
+ "page-title": "Asset activity",
+ "tabs": {
+ "recent-transactions": "Recent transactions",
+ "all-events": "All events"
+ },
+ "view-all": "View all transactions in the explorer"
+ },
+ "bonds": {
+ "burn-form": {
+ "amount": {
+ "amount-label": "Amount",
+ "available-balance": "Available balance: {balance}",
+ "description": "Input the amount you wish to burn.",
+ "title": "Enter Amount"
+ },
+ "button-label": "Burn Assets",
+ "description": "Permanently remove bond tokens from circulation to reduce supply.",
+ "summary": {
+ "amount-label": "Amount",
+ "asset-label": "Asset",
+ "burn-description": "Burning operation details",
+ "burn-title": "Burn",
+ "description": "Verify the details of your burn before proceeding.",
+ "title": "Review and confirm burn"
+ },
+ "title": "Burn",
+ "trigger-label": "Burn"
+ },
+ "charts": {
+ "asset-statistics-title": "Asset statistics"
+ },
+ "create-form": {
+ "basics": {
+ "decimals-label": "Decimals",
+ "description": "Enter the basic details of the bond",
+ "isin-label": "ISIN",
+ "isin-placeholder": "e.g. US000000AA00",
+ "name-label": "Asset name",
+ "name-placeholder": "e.g. Company XYZ Bond 2023",
+ "symbol-label": "Symbol",
+ "symbol-placeholder": "e.g. XYZ23",
+ "title": "Basic information"
+ },
+ "button-label": "Issue a new bond",
+ "configuration": {
+ "cap-description": "Maximum amount of tokens that can be issued",
+ "cap-label": "Maximum supply",
+ "description": "Configure the properties of the bond",
+ "face-value-description": "Nominal value of a single bond unit",
+ "face-value-label": "Face value",
+ "maturity-date-label": "Maturity date",
+ "title": "Bond configuration",
+ "underlying-asset-description": "Address of the asset that backs this bond",
+ "underlying-asset-label": "Underlying asset"
+ },
+ "description": "Issue a new bond on the blockchain",
+ "summary": {
+ "asset-basics-description": "Basic information about the bond",
+ "asset-basics-title": "Basic information",
+ "cap-label": "Maximum supply",
+ "configuration-description": "Technical configuration of the bond",
+ "configuration-title": "Bond configuration",
+ "decimals-label": "Decimals",
+ "description": "Review the bond details before creating",
+ "face-value-label": "Face value",
+ "isin-label": "ISIN",
+ "maturity-date-label": "Maturity date",
+ "name-label": "Name",
+ "symbol-label": "Symbol",
+ "title": "Review and confirm",
+ "underlying-asset-label": "Underlying asset",
+ "error-duplicate": "A Bond with the same details already exists. Please try again with at least one different parameter."
+ },
+ "title": "Create new bond",
+ "trigger-label": "Issue a new bond"
+ },
+ "details": {
+ "bond-details-description": "Details for the bond",
+ "contract-address": "Contract address",
+ "creator": "Creator",
+ "decimals": "Decimals",
+ "details-page-description": "Explore comprehensive data and metrics for {name}.",
+ "details-page-title": "{name} Details",
+ "isin": "ISIN",
+ "name": "Name",
+ "ownership-concentration": "Ownership concentration",
+ "ownership-concentration-info": "Percentage owned by the top 5 holders",
+ "symbol": "Symbol",
+ "total-supply": "Total supply",
+ "total-supply-info": "The total supply of the token"
+ },
+ "events": {
+ "events-page-description": "Track all events related to {name} bond.",
+ "events-page-title": "{name} Events"
+ },
+ "grant-role-form": {
+ "address": {
+ "address-label": "Admin Wallet Address",
+ "description": "Search for a user by their name or email, or manually enter a wallet address.",
+ "manual-placeholder": "0x0000000000000000000000000000000000000000",
+ "manual-toggle": "Enter address manually...",
+ "search-placeholder": "Search for a user",
+ "search-toggle": "Search for a user instead...",
+ "title": "Select New Admin"
+ },
+ "button-label": "Assign Roles",
+ "description": "Assign administrative permissions to a new user.",
+ "roles": {
+ "description": "Choose the roles to grant to the new admin. At least one role must be selected.",
+ "title": "Select Admin Roles"
+ },
+ "summary": {
+ "admin-address-label": "Admin Address",
+ "asset-label": "Asset",
+ "description": "Verify the details of your role grant before proceeding.",
+ "grant-description": "Granting role operation details",
+ "grant-title": "Grant Role",
+ "roles-label": "Roles",
+ "title": "Review and confirm role grant"
+ },
+ "title": "Grant Role"
+ },
+ "manage": {
+ "actions": {
+ "mint": "Mint",
+ "burn": "Burn",
+ "pause": "Pause",
+ "unpause": "Unpause",
+ "grant-role": "Grant role",
+ "top-up": "Top up underlying asset",
+ "withdraw": "Withdraw underlying asset",
+ "mature": "Mature"
+ },
+ "manage": "Manage"
+ },
+ "mint-form": {
+ "amount": {
+ "amount-label": "Amount",
+ "description": "Input the amount you wish to mint.",
+ "title": "Enter Amount"
+ },
+ "recipients": {
+ "title": "Select Recipients",
+ "description": "Choose who will receive the minted tokens"
+ },
+ "button-label": "Mint Assets",
+ "description": "Issue new tokens to increase the bond's circulating supply.",
+ "summary": {
+ "amount-label": "Amount",
+ "asset-label": "Asset",
+ "description": "Verify the details of your mint before proceeding.",
+ "mint-description": "Minting operation details",
+ "mint-title": "Mint",
+ "title": "Review and confirm mint"
+ },
+ "title": "Mint",
+ "trigger-label": "Mint"
+ },
+ "pause-form": {
+ "pause": {
+ "button-label": "Pause Transactions",
+ "description": "Temporarily halt all transactions and interactions for this bond.",
+ "title": "Pause Bond Transactions"
+ },
+ "summary": {
+ "asset-label": "Asset",
+ "current-state-label": "Current state",
+ "description": "Verify the details of your pause operation before proceeding.",
+ "pause-description": "Pausing operation details",
+ "pause-title": "Pause",
+ "state-active": "Active",
+ "state-paused": "Paused",
+ "target-state-label": "Target state",
+ "title": "Review and confirm pause operation"
+ },
+ "unpause": {
+ "button-label": "Resume Transactions",
+ "description": "Resume transactions and interactions for this bond.",
+ "title": "Resume Bond Transactions"
+ }
+ },
+ "related-actions": {
+ "decrease-supply": {
+ "description": "A bond manager can reduce the total supply through bond redemption at maturity or early repurchase programs.",
+ "title": "Redeem Bonds"
+ },
+ "increase-supply": {
+ "description": "A bond manager can issue new bonds through primary issuance or tap issuance with defined face value and maturity.",
+ "title": "Issue Bonds"
+ },
+ "title": "Related actions"
+ },
+ "table": {
+ "actions-header": "Actions",
+ "address-header": "Address",
+ "asset-management": "Asset management",
+ "name-header": "Name",
+ "page-description": "Create, view, and manage bond assets on the blockchain",
+ "page-title": "Bonds Management",
+ "private-header": "Private",
+ "private-status": "Private",
+ "public-status": "Public",
+ "related-actions": {
+ "issue-new": {
+ "description": "Create and launch a new bond with defined maturity, coupon rates, and face value. Streamline bond issuance with automated interest payments and redemption schedules.",
+ "title": "Issue new bond"
+ },
+ "mechanics": {
+ "button": "Learn more",
+ "description": "Learn how to manage bond parameters, interest distributions, maturity dates, and redemption processes for fixed-income securities.",
+ "title": "Bond mechanics"
+ },
+ "title": "Related Actions",
+ "usecases": {
+ "button": "Explore",
+ "description": "Explore applications in fixed-income markets, from corporate debt to structured products. Maximize efficiency in interest payments, maturity management, and regulatory compliance.",
+ "title": "Bond usecases"
+ }
+ },
+ "status-header": "Status",
+ "symbol-header": "Symbol",
+ "topinfo-description": "Digital bonds represent traditional fixed-income securities securely on blockchain, backed by real-world collateral. They combine blockchain transparency with predictable returns, redemption at maturity, and automated yield distribution. This Bond asset ensures secure issuance, precise maturity management, comprehensive compliance capabilities, and investor-friendly redemption processes tailored specifically for financial institutions.",
+ "topinfo-title": "A digital fixed-income security asset",
+ "total-supply-header": "Total supply"
+ },
+ "tabs": {
+ "details": "Details",
+ "events": "Events",
+ "holders": "Holders",
+ "permissions": "Permissions"
+ },
+ "top-up-form": {
+ "trigger-label": "Top up",
+ "title": "Top up underlying asset",
+ "description": "Add more underlying asset to your bond",
+ "button-label": "Top up",
+ "steps": {
+ "amount": {
+ "title": "Enter amount",
+ "description": "Specify the amount to top up the underlying asset.",
+ "amount": {
+ "label": "Amount",
+ "description": "Enter the amount to top up"
+ }
+ },
+ "summary": {
+ "title": "Review and confirm top-up",
+ "description": "Verify the details of your top-up before proceeding.",
+ "amount-label": "Amount",
+ "asset-label": "Underlying asset",
+ "pincode": {
+ "label": "PIN Code",
+ "description": "Enter your PIN code to confirm the transaction"
+ }
+ }
+ }
+ },
+ "withdraw-form": {
+ "trigger-label": "Withdraw",
+ "title": "Withdraw underlying asset",
+ "description": "Withdraw underlying asset from your bond",
+ "button-label": "Withdraw",
+ "steps": {
+ "recipient": {
+ "title": "Select recipient",
+ "description": "Choose who will receive the underlying asset.",
+ "label": "Recipient",
+ "placeholder": "Search for a user or enter address",
+ "search-instead": "Search for a user instead...",
+ "manual-instead": "Enter address manually..."
+ },
+ "amount": {
+ "title": "Enter amount",
+ "description": "Specify the amount to withdraw.",
+ "amount": {
+ "label": "Amount",
+ "description": "Enter the amount to withdraw"
+ }
+ },
+ "summary": {
+ "title": "Review and confirm withdrawal",
+ "description": "Verify the details of your withdrawal before proceeding.",
+ "recipient-label": "Recipient",
+ "amount-label": "Amount",
+ "asset-label": "Underlying asset",
+ "pincode": {
+ "label": "PIN Code",
+ "description": "Enter your PIN code to confirm the transaction"
+ }
+ }
+ }
+ },
+ "mature-form": {
+ "trigger-label": "Mature",
+ "title": "Mature Bond",
+ "description": "Mature your bond and receive the underlying asset",
+ "button-label": "Mature Bond",
+ "summary": {
+ "title": "Review and confirm maturity",
+ "description": "Verify the details of your bond maturity before proceeding.",
+ "mature-title": "Mature",
+ "mature-description": "Bond maturity details",
+ "asset-label": "Bond"
+ }
+ }
+ },
+ "cryptocurrencies": {
+ "burn-form": {
+ "amount": {
+ "amount-label": "Amount",
+ "available-balance": "Available balance: {balance}",
+ "description": "Input the amount you wish to burn.",
+ "title": "Enter Amount"
+ },
+ "button-label": "Burn Assets",
+ "description": "Permanently remove tokens from circulation to reduce supply.",
+ "summary": {
+ "amount-label": "Amount",
+ "asset-label": "Asset",
+ "burn-description": "Burning operation details",
+ "burn-title": "Burn",
+ "description": "Verify the details of your burn before proceeding.",
+ "title": "Review and confirm burn"
+ },
+ "title": "Burn",
+ "trigger-label": "Burn"
+ },
+ "charts": {
+ "asset-statistics-title": "Asset statistics"
+ },
+ "create-form": {
+ "basics": {
+ "decimals-label": "Decimals",
+ "description": "Define essential details such as name, symbol, and visibility.",
+ "isin-label": "ISIN",
+ "isin-placeholder": "CRYPTO123456",
+ "name-label": "Name",
+ "name-placeholder": "Bitcoin",
+ "symbol-label": "Symbol",
+ "symbol-placeholder": "BTC",
+ "title": "Basic Information"
+ },
+ "button-label": "Issue a new cryptocurrency",
+ "configuration": {
+ "description": "Specify advanced settings for your cryptocurrency.",
+ "initial-supply-description": "The amount of tokens to mint at creation",
+ "initial-supply-label": "Initial Supply",
+ "title": "Configuration"
+ },
+ "description": "Define and launch a new cryptocurrency asset.",
+ "summary": {
+ "asset-basics-description": "Basic asset information and settings.",
+ "asset-basics-title": "Asset Basics",
+ "configuration-description": "Asset supply and additional settings.",
+ "configuration-title": "Configuration",
+ "decimals-label": "Decimals",
+ "description": "Review and confirm the details of your new cryptocurrency before creation.",
+ "initial-supply-label": "Initial Supply",
+ "isin-label": "ISIN",
+ "name-label": "Name",
+ "no": "No",
+ "private-label": "Private",
+ "symbol-label": "Symbol",
+ "title": "Review and confirm",
+ "yes": "Yes",
+ "error-duplicate": "A Cryptocurrency with the same details already exists. Please try again with at least one different parameter."
+ },
+ "title": "Create Cryptocurrency",
+ "trigger-label": "Issue a new cryptocurrency"
+ },
+ "details": {
+ "contract-address": "Contract address",
+ "creator": "Creator",
+ "cryptocurrency-details-description": "Details for the cryptocurrency",
+ "decimals": "Decimals",
+ "details-page-description": "Explore comprehensive data and metrics for {name}.",
+ "details-page-title": "{name} Details",
+ "name": "Name",
+ "ownership-concentration": "Ownership concentration",
+ "ownership-concentration-info": "Percentage owned by the top 5 holders",
+ "symbol": "Symbol",
+ "total-supply": "Total supply",
+ "total-supply-info": "The total supply of the token"
+ },
+ "events": {
+ "events-page-description": "Track historical activities and transactions involving {name}.",
+ "events-page-title": "{name} Events"
+ },
+ "grant-role-form": {
+ "address": {
+ "address-label": "Admin Wallet Address",
+ "description": "Search for a user by their name or email, or manually enter a wallet address.",
+ "manual-placeholder": "0x0000000000000000000000000000000000000000",
+ "manual-toggle": "Enter address manually...",
+ "search-placeholder": "Search for a user",
+ "search-toggle": "Search for a user instead...",
+ "title": "Select New Admin"
+ },
+ "button-label": "Assign Roles",
+ "description": "Assign administrative permissions to a new user.",
+ "roles": {
+ "description": "Choose the roles to grant to the new admin. At least one role must be selected.",
+ "title": "Select Admin Roles"
+ },
+ "summary": {
+ "admin-address-label": "Admin Address",
+ "asset-label": "Asset",
+ "description": "Verify the details of your role grant before proceeding.",
+ "grant-description": "Granting role operation details",
+ "grant-title": "Grant Role",
+ "roles-label": "Roles",
+ "title": "Review and confirm role grant"
+ },
+ "title": "Grant Role"
+ },
+ "manage": {
+ "actions": {
+ "grant-role": "Grant Role",
+ "mint": "Mint"
+ },
+ "manage": "Manage"
+ },
+ "mint-form": {
+ "amount": {
+ "amount-label": "Amount",
+ "description": "Input the amount you wish to mint.",
+ "title": "Enter Amount"
+ },
+ "recipients": {
+ "title": "Select Recipients",
+ "description": "Choose who will receive the minted tokens"
+ },
+ "button-label": "Mint Assets",
+ "description": "Issue new tokens to increase the cryptocurrency's circulating supply.",
+ "summary": {
+ "amount-label": "Amount",
+ "asset-label": "Asset",
+ "description": "Verify the details of your mint before proceeding.",
+ "mint-description": "Minting operation details",
+ "mint-title": "Mint",
+ "title": "Review and confirm mint"
+ },
+ "title": "Mint",
+ "trigger-label": "Mint"
+ },
+ "related-actions": {
+ "increase-supply": {
+ "description": "A token manager can mint new tokens according to the tokenomics plan and emission schedule.",
+ "title": "Mint Tokens"
+ },
+ "title": "Related actions"
+ },
+ "table": {
+ "actions-header": "Actions",
+ "address-header": "Address",
+ "asset-management": "Asset management",
+ "name-header": "Name",
+ "page-description": "Overview and administrative actions for your cryptocurrency assets.",
+ "page-title": "Cryptocurrencies",
+ "private-header": "Private",
+ "private-status": "Private",
+ "public-status": "Public",
+ "related-actions": {
+ "issue-new": {
+ "description": "Create and launch a new cryptocurrency token with customizable parameters and security features. Streamline token deployment with configurable supply mechanisms and transfer controls.",
+ "title": "Issue new cryptocurrency"
+ },
+ "mechanics": {
+ "button": "Learn more",
+ "description": "Learn how to manage token economics, supply controls, transfer restrictions, and security features for your cryptocurrency.",
+ "title": "Token mechanics"
+ },
+ "title": "Related Actions",
+ "usecases": {
+ "button": "Explore",
+ "description": "Explore applications in digital payments, rewards systems, and tokenized services. Maximize utility through programmable transactions and institutional-grade security features.",
+ "title": "Cryptocurrency usecases"
+ }
+ },
+ "symbol-header": "Symbol",
+ "topinfo-description": "CryptoCurrency assets are customizable digital instruments offering controlled minting, robust security, and full regulatory compliance, ideal for institutional use. They streamline financial operations through programmable transactions, enhanced transparency, and integrated meta-transactions for improved usability. Key features include role-based access management, secure issuance, and easy integration into institutional payment processes.",
+ "topinfo-title": "A customizable and secure digital asset",
+ "total-supply-header": "Total Supply"
+ },
+ "tabs": {
+ "details": "Details",
+ "events": "Events",
+ "holders": "Holders",
+ "permissions": "Permissions",
+ "underlying-assets": "Underlying assets"
+ }
+ },
+ "dashboard": {
+ "charts": {
+ "asset-activity": {
+ "burn": "Burn",
+ "description": "Asset activity",
+ "mint": "Mint",
+ "title": "Asset activity",
+ "transfer": "Transfer"
+ },
+ "asset-types": {
+ "bonds": "Bonds",
+ "cryptocurrencies": "Cryptocurrencies",
+ "equities": "Equities",
+ "funds": "Funds",
+ "stablecoins": "Stablecoins"
+ },
+ "assets-supply": {
+ "description": "Assets supply",
+ "label": "Assets",
+ "title": "Assets supply"
+ },
+ "transaction-history": {
+ "description": "Transaction history",
+ "label": "Transactions",
+ "title": "Transaction history"
+ },
+ "users-history": {
+ "description": "Users history",
+ "label": "Users",
+ "title": "Users history"
+ }
+ },
+ "page": {
+ "asset-management": "Asset management",
+ "description": "Welcome to the dashboard",
+ "latest-events-heading": "Latest events",
+ "my-portfolio": "My portfolio",
+ "stats-heading": "Stats",
+ "title": "Dashboard"
+ },
+ "table": {
+ "latest-events": {
+ "view-all": "View all"
+ }
+ },
+ "widgets": {
+ "assets": {
+ "label": "Assets",
+ "subtext": "{bonds} bonds {cryptocurrencies} cryptocurrencies, {equities} equities, {funds} funds, {stableCoins} stablecoins"
+ },
+ "transactions": {
+ "label": "Transactions",
+ "subtext": "{count} transactions processed in the last {days} days"
+ },
+ "users": {
+ "label": "Users",
+ "subtext": "{count} users in the last {days} days"
+ }
+ }
+ },
+ "equities": {
+ "burn-form": {
+ "amount": {
+ "amount-label": "Amount",
+ "available-balance": "Available balance: {balance}",
+ "description": "Input the amount you wish to burn.",
+ "title": "Enter Amount"
+ },
+ "button-label": "Burn Assets",
+ "description": "Permanently remove equity tokens from circulation to reduce supply.",
+ "summary": {
+ "amount-label": "Amount",
+ "asset-label": "Asset",
+ "burn-description": "Burning operation details",
+ "burn-title": "Burn",
+ "description": "Verify the details of your burn before proceeding.",
+ "title": "Review and confirm burn"
+ },
+ "title": "Burn",
+ "trigger-label": "Burn"
+ },
+ "charts": {
+ "asset-statistics-title": "Asset statistics"
+ },
+ "create-form": {
+ "basics": {
+ "decimals-label": "Decimals",
+ "description": "Define essential details such as name, symbol, and visibility.",
+ "isin-label": "ISIN",
+ "isin-placeholder": "US1234567890",
+ "name-label": "Name",
+ "name-placeholder": "Global Equity",
+ "symbol-label": "Symbol",
+ "symbol-placeholder": "GLEQ",
+ "title": "Basic Information"
+ },
+ "button-label": "Issue a new equity",
+ "configuration": {
+ "category-blend-equity": "Blend Equity",
+ "category-communication-services": "Communication Services",
+ "category-consumer-discretionary": "Consumer Discretionary",
+ "category-consumer-staples": "Consumer Staples",
+ "category-convertible-preferred-stock": "Convertible Preferred Stock",
+ "category-cumulative-preferred-stock": "Cumulative Preferred Stock",
+ "category-distressed-equity": "Distressed Equity",
+ "category-domestic-equity": "Domestic Equity",
+ "category-dual-class-shares": "Dual-Class Shares",
+ "category-emerging-market-equity": "Emerging Market Equity",
+ "category-energy": "Energy",
+ "category-esop-shares": "Employee Stock Ownership Plan (ESOP) Shares",
+ "category-financials": "Financials",
+ "category-frontier-market-equity": "Frontier Market Equity",
+ "category-global-equity": "Global Equity",
+ "category-growth-capital": "Growth Capital",
+ "category-growth-equity": "Growth Equity",
+ "category-healthcare": "Healthcare",
+ "category-income-equity": "Income Equity",
+ "category-industrials": "Industrials",
+ "category-international-equity": "International Equity",
+ "category-large-cap-equity": "Large-Cap Equity",
+ "category-leveraged-buyouts": "Leveraged Buyouts (LBOs)",
+ "category-materials": "Materials",
+ "category-mezzanine-financing": "Mezzanine Financing",
+ "category-micro-cap-equity": "Micro-Cap Equity",
+ "category-mid-cap-equity": "Mid-Cap Equity",
+ "category-non-cumulative-preferred-stock": "Non-Cumulative Preferred Stock",
+ "category-non-voting-common-stock": "Non-Voting Common Stock",
+ "category-real-estate": "Real Estate",
+ "category-redeemable-preferred-stock": "Redeemable Preferred Stock",
+ "category-restricted-stock": "Restricted Stock",
+ "category-small-cap-equity": "Small-Cap Equity",
+ "category-technology": "Technology",
+ "category-tracking-stocks": "Tracking Stocks",
+ "category-utilities": "Utilities",
+ "category-value-equity": "Value Equity",
+ "category-venture-capital": "Venture Capital",
+ "category-voting-common-stock": "Voting Common Stock",
+ "class-common-equity": "Common Equity",
+ "class-geographic-equity": "Geographic Equity",
+ "class-investment-stage-private-equity": "Investment Stage (Private Equity)",
+ "class-investment-style-equity": "Investment Style Equity",
+ "class-market-capitalization-equity": "Market Capitalization Equity",
+ "class-preferred-equity": "Preferred Equity",
+ "class-sector-industry-equity": "Sector/Industry Equity",
+ "class-special-classes-equity": "Special Classes of Equity",
+ "description": "Configure the equity classification details",
+ "equity-category-label": "Equity Category",
+ "equity-class-label": "Equity Class",
+ "title": "Configuration"
+ },
+ "description": "Issue a new equity on the blockchain",
+ "summary": {
+ "asset-basics-description": "Basic asset information and settings.",
+ "asset-basics-title": "Asset Basics",
+ "category-blend-equity": "Blend Equity",
+ "category-communication-services": "Communication Services",
+ "category-consumer-discretionary": "Consumer Discretionary",
+ "category-consumer-staples": "Consumer Staples",
+ "category-convertible-preferred-stock": "Convertible Preferred Stock",
+ "category-cumulative-preferred-stock": "Cumulative Preferred Stock",
+ "category-distressed-equity": "Distressed Equity",
+ "category-domestic-equity": "Domestic Equity",
+ "category-dual-class-shares": "Dual-Class Shares",
+ "category-emerging-market-equity": "Emerging Market Equity",
+ "category-energy": "Energy",
+ "category-esop-shares": "Employee Stock Ownership Plan (ESOP) Shares",
+ "category-financials": "Financials",
+ "category-frontier-market-equity": "Frontier Market Equity",
+ "category-global-equity": "Global Equity",
+ "category-growth-capital": "Growth Capital",
+ "category-growth-equity": "Growth Equity",
+ "category-healthcare": "Healthcare",
+ "category-income-equity": "Income Equity",
+ "category-industrials": "Industrials",
+ "category-international-equity": "International Equity",
+ "category-large-cap-equity": "Large-Cap Equity",
+ "category-leveraged-buyouts": "Leveraged Buyouts (LBOs)",
+ "category-materials": "Materials",
+ "category-mezzanine-financing": "Mezzanine Financing",
+ "category-micro-cap-equity": "Micro-Cap Equity",
+ "category-mid-cap-equity": "Mid-Cap Equity",
+ "category-non-cumulative-preferred-stock": "Non-Cumulative Preferred Stock",
+ "category-non-voting-common-stock": "Non-Voting Common Stock",
+ "category-real-estate": "Real Estate",
+ "category-redeemable-preferred-stock": "Redeemable Preferred Stock",
+ "category-restricted-stock": "Restricted Stock",
+ "category-small-cap-equity": "Small-Cap Equity",
+ "category-technology": "Technology",
+ "category-tracking-stocks": "Tracking Stocks",
+ "category-utilities": "Utilities",
+ "category-value-equity": "Value Equity",
+ "category-venture-capital": "Venture Capital",
+ "category-voting-common-stock": "Voting Common Stock",
+ "class-common-equity": "Common Equity",
+ "class-geographic-equity": "Geographic Equity",
+ "class-investment-stage-private-equity": "Investment Stage (Private Equity)",
+ "class-investment-style-equity": "Investment Style Equity",
+ "class-market-capitalization-equity": "Market Capitalization Equity",
+ "class-preferred-equity": "Preferred Equity",
+ "class-sector-industry-equity": "Sector/Industry Equity",
+ "class-special-classes-equity": "Special Classes of Equity",
+ "configuration-description": "Equity classification details.",
+ "configuration-title": "Configuration",
+ "decimals-label": "Decimals",
+ "description": "Review and confirm the details of your new equity before creation.",
+ "equity-category-label": "Equity Category",
+ "equity-class-label": "Equity Class",
+ "isin-label": "ISIN",
+ "name-label": "Name",
+ "symbol-label": "Symbol",
+ "title": "Review and confirm",
+ "error-duplicate": "An Equity with the same details already exists. Please try again with at least one different parameter."
+ },
+ "title": "Create new equity",
+ "trigger-label": "Mint"
+ },
+ "details": {
+ "contract-address": "Contract address",
+ "creator": "Creator",
+ "decimals": "Decimals",
+ "details-page-description": "Explore comprehensive data and metrics for {name}.",
+ "details-page-title": "{name} Details",
+ "equity-details-description": "Details for the equity",
+ "isin": "ISIN",
+ "name": "Name",
+ "ownership-concentration": "Ownership concentration",
+ "ownership-concentration-info": "Percentage owned by the top 5 holders",
+ "symbol": "Symbol",
+ "total-supply": "Total supply",
+ "total-supply-info": "The total supply of the token"
+ },
+ "events": {
+ "events-page-description": "Track all events related to {name} equity.",
+ "events-page-title": "{name} Events"
+ },
+ "grant-role-form": {
+ "address": {
+ "address-label": "Admin Wallet Address",
+ "description": "Search for a user by their name or email, or manually enter a wallet address.",
+ "manual-placeholder": "0x0000000000000000000000000000000000000000",
+ "manual-toggle": "Enter address manually...",
+ "search-placeholder": "Search for a user",
+ "search-toggle": "Search for a user instead...",
+ "title": "Select New Admin"
+ },
+ "button-label": "Assign Roles",
+ "description": "Assign administrative permissions to a new user.",
+ "roles": {
+ "description": "Choose the roles to grant to the new admin. At least one role must be selected.",
+ "title": "Select Admin Roles"
+ },
+ "summary": {
+ "admin-address-label": "Admin Address",
+ "asset-label": "Asset",
+ "description": "Verify the details of your role grant before proceeding.",
+ "grant-description": "Granting role operation details",
+ "grant-title": "Grant Role",
+ "roles-label": "Roles",
+ "title": "Review and confirm role grant"
+ },
+ "title": "Grant Role"
+ },
+ "manage": {
+ "actions": {
+ "mint": "Mint",
+ "burn": "Burn",
+ "pause": "Pause",
+ "unpause": "Unpause",
+ "grant-role": "Grant role"
+ },
+ "manage": "Manage"
+ },
+ "mint-form": {
+ "amount": {
+ "amount-label": "Amount",
+ "description": "Input the amount you wish to mint.",
+ "title": "Enter Amount"
+ },
+ "recipients": {
+ "title": "Select Recipients",
+ "description": "Choose who will receive the minted tokens"
+ },
+ "button-label": "Mint Assets",
+ "description": "Issue new tokens to increase the equity's circulating supply.",
+ "summary": {
+ "amount-label": "Amount",
+ "asset-label": "Asset",
+ "description": "Verify the details of your mint before proceeding.",
+ "mint-description": "Minting operation details",
+ "mint-title": "Mint",
+ "title": "Review and confirm mint"
+ },
+ "title": "Mint",
+ "trigger-label": "Mint"
+ },
+ "pause-form": {
+ "pause": {
+ "button-label": "Pause Transactions",
+ "description": "Temporarily halt all transactions and interactions for this equity.",
+ "title": "Pause Equity Transactions"
+ },
+ "summary": {
+ "asset-label": "Asset",
+ "current-state-label": "Current state",
+ "description": "Verify the details of your pause operation before proceeding.",
+ "pause-description": "Pausing operation details",
+ "pause-title": "Pause",
+ "state-active": "Active",
+ "state-paused": "Paused",
+ "target-state-label": "Target state",
+ "title": "Review and confirm pause operation"
+ },
+ "unpause": {
+ "button-label": "Resume Transactions",
+ "description": "Resume transactions and interactions for this equity.",
+ "title": "Resume Equity Transactions"
+ }
+ },
+ "related-actions": {
+ "decrease-supply": {
+ "description": "An equity manager can reduce the total supply of shares through a buyback program or capital reduction.",
+ "title": "Reduce Share Supply"
+ },
+ "increase-supply": {
+ "description": "An equity manager can issue new shares through various mechanisms like rights issues, private placements, or stock splits.",
+ "title": "Issue New Shares"
+ },
+ "title": "Related actions"
+ },
+ "table": {
+ "actions-header": "Actions",
+ "address-header": "Address",
+ "asset-management": "Asset management",
+ "category-blend-equity": "Blend Equity",
+ "category-communication-services": "Communication Services",
+ "category-consumer-discretionary": "Consumer Discretionary",
+ "category-consumer-staples": "Consumer Staples",
+ "category-convertible-preferred-stock": "Convertible Preferred Stock",
+ "category-cumulative-preferred-stock": "Cumulative Preferred Stock",
+ "category-distressed-equity": "Distressed Equity",
+ "category-domestic-equity": "Domestic Equity",
+ "category-dual-class-shares": "Dual-Class Shares",
+ "category-emerging-market-equity": "Emerging Market Equity",
+ "category-energy": "Energy",
+ "category-esop-shares": "Employee Stock Ownership Plan (ESOP) Shares",
+ "category-financials": "Financials",
+ "category-frontier-market-equity": "Frontier Market Equity",
+ "category-global-equity": "Global Equity",
+ "category-growth-capital": "Growth Capital",
+ "category-growth-equity": "Growth Equity",
+ "category-header": "Equity Category",
+ "category-healthcare": "Healthcare",
+ "category-income-equity": "Income Equity",
+ "category-industrials": "Industrials",
+ "category-international-equity": "International Equity",
+ "category-large-cap-equity": "Large-Cap Equity",
+ "category-leveraged-buyouts": "Leveraged Buyouts (LBOs)",
+ "category-materials": "Materials",
+ "category-mezzanine-financing": "Mezzanine Financing",
+ "category-micro-cap-equity": "Micro-Cap Equity",
+ "category-mid-cap-equity": "Mid-Cap Equity",
+ "category-non-cumulative-preferred-stock": "Non-Cumulative Preferred Stock",
+ "category-non-voting-common-stock": "Non-Voting Common Stock",
+ "category-real-estate": "Real Estate",
+ "category-redeemable-preferred-stock": "Redeemable Preferred Stock",
+ "category-restricted-stock": "Restricted Stock",
+ "category-small-cap-equity": "Small-Cap Equity",
+ "category-technology": "Technology",
+ "category-tracking-stocks": "Tracking Stocks",
+ "category-utilities": "Utilities",
+ "category-value-equity": "Value Equity",
+ "category-venture-capital": "Venture Capital",
+ "category-voting-common-stock": "Voting Common Stock",
+ "class-common-equity": "Common Equity",
+ "class-geographic-equity": "Geographic Equity",
+ "class-header": "Equity Class",
+ "class-investment-stage-private-equity": "Investment Stage (Private Equity)",
+ "class-investment-style-equity": "Investment Style Equity",
+ "class-market-capitalization-equity": "Market Capitalization Equity",
+ "class-preferred-equity": "Preferred Equity",
+ "class-sector-industry-equity": "Sector/Industry Equity",
+ "class-special-classes-equity": "Special Classes of Equity",
+ "name-header": "Name",
+ "page-description": "Overview and administrative actions for your equity assets.",
+ "page-title": "Equities",
+ "private-header": "Private",
+ "private-status": "Private",
+ "public-status": "Public",
+ "related-actions": {
+ "issue-new": {
+ "description": "Create and launch a new equity token with defined share classes and ownership rights. Streamline equity issuance to support shareholder distribution and corporate governance.",
+ "title": "Issue new equity tokens"
+ },
+ "mechanics": {
+ "button": "Learn more",
+ "description": "Learn how to manage shareholder rights, voting mechanisms, dividend distributions, and equity ownership structures.",
+ "title": "Equity mechanics"
+ },
+ "title": "Related Actions",
+ "usecases": {
+ "button": "Explore",
+ "description": "Explore applications in corporate equity management, from share issuance to stakeholder governance. Maximize efficiency in equity administration, voting rights, and dividend distribution.",
+ "title": "Equity usecases"
+ }
+ },
+ "status-header": "Status",
+ "symbol-header": "Symbol",
+ "topinfo-description": "Equity assets digitize traditional equity securities, combining advanced blockchain capabilities with robust governance and compliance tools. Designed for institutional investors, they offer secure equity issuance, shareholder voting rights, detailed access controls, and regulatory compliance mechanisms. This asset simplifies equity management, enhances transparency, and ensures secure investor participation.",
+ "topinfo-title": "Institutional-grade digital equity management",
+ "total-supply-header": "Total Supply"
+ },
+ "tabs": {
+ "details": "Details",
+ "events": "Events",
+ "holders": "Holders",
+ "permissions": "Permissions",
+ "underlying-assets": "Underlying assets"
+ }
+ },
+ "funds": {
+ "burn-form": {
+ "amount": {
+ "amount-label": "Amount",
+ "available-balance": "Available balance: {balance}",
+ "description": "Input the amount you wish to burn.",
+ "title": "Enter Amount"
+ },
+ "button-label": "Burn Assets",
+ "description": "Permanently remove tokens from circulation to reduce supply.",
+ "summary": {
+ "amount-label": "Amount",
+ "asset-label": "Asset",
+ "burn-description": "Burning operation details",
+ "burn-title": "Burn",
+ "description": "Verify the details of your burn before proceeding.",
+ "title": "Review and confirm burn"
+ },
+ "title": "Burn",
+ "trigger-label": "Burn"
+ },
+ "charts": {
+ "asset-statistics-title": "Asset statistics"
+ },
+ "create-form": {
+ "basics": {
+ "decimals-label": "Decimals",
+ "description": "Define essential details such as name, symbol, and visibility.",
+ "isin-label": "ISIN",
+ "isin-placeholder": "US1234567890",
+ "name-label": "Name",
+ "name-placeholder": "Global Growth Fund",
+ "symbol-label": "Symbol",
+ "symbol-placeholder": "GGF",
+ "title": "Basic Information"
+ },
+ "button-label": "Issue a new fund",
+ "configuration": {
+ "basis-points": "bps",
+ "category-activist": "Activist",
+ "category-commodity-trading": "Commodity Trading",
+ "category-convertible-arbitrage": "Convertible Arbitrage",
+ "category-credit": "Credit",
+ "category-currency-fx": "Currency / FX",
+ "category-distressed-debt": "Distressed Debt",
+ "category-emerging-markets": "Emerging Markets",
+ "category-equity-hedge": "Equity Hedge",
+ "category-event-driven": "Event-Driven",
+ "category-fixed-income-arbitrage": "Fixed Income Arbitrage",
+ "category-fund-of-funds": "Fund of Funds",
+ "category-global-macro": "Global Macro",
+ "category-high-frequency-trading": "High-Frequency Trading (HFT)",
+ "category-managed-futures-cta": "Managed Futures / CTA",
+ "category-market-neutral": "Market Neutral",
+ "category-merger-arbitrage": "Merger Arbitrage",
+ "category-multi-strategy": "Multi-Strategy",
+ "category-private-equity": "Private Equity (PE)",
+ "category-quantitative-systematic": "Quantitative/Systematic",
+ "category-relative-value": "Relative Value",
+ "category-statistical-arbitrage": "Statistical Arbitrage",
+ "category-structured-credit": "Structured Credit",
+ "category-venture-capital": "Venture Capital (VC)",
+ "class-absolute-return": "Absolute Return",
+ "class-core-blend": "Core / Blend",
+ "class-diversified": "Diversified",
+ "class-early-stage": "Early Stage",
+ "class-factor-based": "Factor-Based",
+ "class-growth-focused": "Growth-Focused",
+ "class-income-focused": "Income-Focused",
+ "class-large-cap": "Large-Cap",
+ "class-long-equity": "Long Equity (Long Only)",
+ "class-long-short-equity": "Long/Short Equity",
+ "class-market-neutral": "Market Neutral",
+ "class-mid-cap": "Mid-Cap",
+ "class-momentum-oriented": "Momentum-Oriented",
+ "class-opportunistic": "Opportunistic",
+ "class-pre-series-b": "Pre-Series B",
+ "class-quantitative-algorithmic": "Quantitative / Algorithmic",
+ "class-regional": "Regional",
+ "class-sector-specific": "Sector-Specific",
+ "class-seed-pre-seed": "Seed / Pre-Seed",
+ "class-series-b-late-stage": "Series B / Late Stage",
+ "class-short-equity": "Short Equity",
+ "class-small-cap": "Small-Cap",
+ "class-tactical-asset-allocation": "Tactical Asset Allocation",
+ "class-value-focused": "Value-Focused",
+ "description": "Specify fund category, class, and management fee.",
+ "fund-category-label": "Fund Category",
+ "fund-class-label": "Fund Class",
+ "management-fee-description": "Annual management fee in basis points (100 bps = 1%)",
+ "management-fee-label": "Management Fee",
+ "title": "Fund Configuration"
+ },
+ "description": "Define and launch a new fund asset.",
+ "summary": {
+ "asset-basics-description": "Basic asset information and settings.",
+ "asset-basics-title": "Asset Basics",
+ "basis-points": "bps",
+ "category-activist": "Activist",
+ "category-commodity-trading": "Commodity Trading",
+ "category-convertible-arbitrage": "Convertible Arbitrage",
+ "category-credit": "Credit",
+ "category-currency-fx": "Currency / FX",
+ "category-distressed-debt": "Distressed Debt",
+ "category-emerging-markets": "Emerging Markets",
+ "category-equity-hedge": "Equity Hedge",
+ "category-event-driven": "Event-Driven",
+ "category-fixed-income-arbitrage": "Fixed Income Arbitrage",
+ "category-fund-of-funds": "Fund of Funds",
+ "category-global-macro": "Global Macro",
+ "category-high-frequency-trading": "High-Frequency Trading (HFT)",
+ "category-managed-futures-cta": "Managed Futures / CTA",
+ "category-market-neutral": "Market Neutral",
+ "category-merger-arbitrage": "Merger Arbitrage",
+ "category-multi-strategy": "Multi-Strategy",
+ "category-private-equity": "Private Equity (PE)",
+ "category-quantitative-systematic": "Quantitative/Systematic",
+ "category-relative-value": "Relative Value",
+ "category-statistical-arbitrage": "Statistical Arbitrage",
+ "category-structured-credit": "Structured Credit",
+ "category-venture-capital": "Venture Capital (VC)",
+ "class-absolute-return": "Absolute Return",
+ "class-core-blend": "Core / Blend",
+ "class-diversified": "Diversified",
+ "class-early-stage": "Early Stage",
+ "class-factor-based": "Factor-Based",
+ "class-growth-focused": "Growth-Focused",
+ "class-income-focused": "Income-Focused",
+ "class-large-cap": "Large-Cap",
+ "class-long-equity": "Long Equity (Long Only)",
+ "class-long-short-equity": "Long/Short Equity",
+ "class-market-neutral": "Market Neutral",
+ "class-mid-cap": "Mid-Cap",
+ "class-momentum-oriented": "Momentum-Oriented",
+ "class-opportunistic": "Opportunistic",
+ "class-pre-series-b": "Pre-Series B",
+ "class-quantitative-algorithmic": "Quantitative / Algorithmic",
+ "class-regional": "Regional",
+ "class-sector-specific": "Sector-Specific",
+ "class-seed-pre-seed": "Seed / Pre-Seed",
+ "class-series-b-late-stage": "Series B / Late Stage",
+ "class-short-equity": "Short Equity",
+ "class-small-cap": "Small-Cap",
+ "class-tactical-asset-allocation": "Tactical Asset Allocation",
+ "class-value-focused": "Value-Focused",
+ "configuration-description": "Fund category, class, and fee settings.",
+ "configuration-title": "Fund Configuration",
+ "decimals-label": "Decimals",
+ "description": "Review and confirm the details of your new fund before creation.",
+ "fund-category-label": "Fund Category",
+ "fund-class-label": "Fund Class",
+ "isin-label": "ISIN",
+ "management-fee-label": "Management Fee",
+ "name-label": "Name",
+ "symbol-label": "Symbol",
+ "title": "Review and confirm",
+ "error-duplicate": "A Fund with the same details already exists. Please try again with at least one different parameter."
+ },
+ "title": "Create Fund",
+ "trigger-label": "Issue a new fund"
+ },
+ "details": {
+ "contract-address": "Contract address",
+ "creator": "Creator",
+ "decimals": "Decimals",
+ "details-page-description": "Explore comprehensive data and metrics for {name}.",
+ "details-page-title": "{name} Details",
+ "fund-details-description": "Details for the equity",
+ "isin": "ISIN",
+ "name": "Name",
+ "ownership-concentration": "Ownership concentration",
+ "ownership-concentration-info": "Percentage owned by the top 5 holders",
+ "symbol": "Symbol",
+ "total-supply": "Total supply",
+ "total-supply-info": "The total supply of the token"
+ },
+ "events": {
+ "events-page-description": "Track all events related to {name} bond.",
+ "events-page-title": "{name} Events"
+ },
+ "grant-role-form": {
+ "address": {
+ "address-label": "Admin Wallet Address",
+ "description": "Search for a user by their name or email, or manually enter a wallet address.",
+ "manual-placeholder": "0x0000000000000000000000000000000000000000",
+ "manual-toggle": "Enter address manually...",
+ "search-placeholder": "Search for a user",
+ "search-toggle": "Search for a user instead...",
+ "title": "Select New Admin"
+ },
+ "button-label": "Assign Roles",
+ "description": "Assign administrative permissions to a new user.",
+ "roles": {
+ "description": "Choose the roles to grant to the new admin. At least one role must be selected.",
+ "title": "Select Admin Roles"
+ },
+ "summary": {
+ "admin-address-label": "Admin Address",
+ "asset-label": "Asset",
+ "description": "Verify the details of your role grant before proceeding.",
+ "grant-description": "Granting role operation details",
+ "grant-title": "Grant Role",
+ "roles-label": "Roles",
+ "title": "Review and confirm role grant"
+ },
+ "title": "Grant Role"
+ },
+ "manage": {
+ "actions": {
+ "mint": "Mint",
+ "burn": "Burn",
+ "pause": "Pause",
+ "unpause": "Unpause",
+ "grant-role": "Grant role"
+ },
+ "manage": "Manage"
+ },
+ "mint-form": {
+ "amount": {
+ "amount-label": "Amount",
+ "description": "Input the amount you wish to mint.",
+ "title": "Enter Amount"
+ },
+ "recipients": {
+ "title": "Select Recipients",
+ "description": "Choose who will receive the minted tokens"
+ },
+ "button-label": "Mint Assets",
+ "description": "Issue new tokens to increase the fund's circulating supply.",
+ "summary": {
+ "amount-label": "Amount",
+ "asset-label": "Asset",
+ "description": "Verify the details of your mint before proceeding.",
+ "mint-description": "Minting operation details",
+ "mint-title": "Mint",
+ "title": "Review and confirm mint"
+ },
+ "title": "Mint",
+ "trigger-label": "Mint"
+ },
+ "pause-form": {
+ "pause": {
+ "button-label": "Pause Transactions",
+ "description": "Temporarily halt all transactions and interactions for this fund.",
+ "title": "Pause Fund Transactions"
+ },
+ "summary": {
+ "asset-label": "Asset",
+ "current-state-label": "Current state",
+ "description": "Verify the details of your pause operation before proceeding.",
+ "pause-description": "Pausing operation details",
+ "pause-title": "Pause",
+ "state-active": "Active",
+ "state-paused": "Paused",
+ "target-state-label": "Target state",
+ "title": "Review and confirm pause operation"
+ },
+ "unpause": {
+ "button-label": "Resume Transactions",
+ "description": "Resume transactions and interactions for this fund.",
+ "title": "Resume Fund Transactions"
+ }
+ },
+ "related-actions": {
+ "decrease-supply": {
+ "description": "A bond manager can reduce the total supply through bond redemption at maturity or early repurchase programs.",
+ "title": "Redeem Bonds"
+ },
+ "increase-supply": {
+ "description": "A bond manager can issue new bonds through primary issuance or tap issuance with defined face value and maturity.",
+ "title": "Issue Bonds"
+ },
+ "title": "Related actions"
+ },
+ "table": {
+ "actions-header": "Actions",
+ "address-header": "Address",
+ "asset-management": "Asset management",
+ "assets-under-management-header": "AUM",
+ "category-activist": "Activist",
+ "category-commodity-trading": "Commodity Trading",
+ "category-convertible-arbitrage": "Convertible Arbitrage",
+ "category-credit": "Credit",
+ "category-currency-fx": "Currency / FX",
+ "category-distressed-debt": "Distressed Debt",
+ "category-emerging-markets": "Emerging Markets",
+ "category-equity-hedge": "Equity Hedge",
+ "category-event-driven": "Event-Driven",
+ "category-fixed-income-arbitrage": "Fixed Income Arbitrage",
+ "category-fund-of-funds": "Fund of Funds",
+ "category-global-macro": "Global Macro",
+ "category-header": "Fund Category",
+ "category-high-frequency-trading": "High-Frequency Trading (HFT)",
+ "category-managed-futures-cta": "Managed Futures / CTA",
+ "category-market-neutral": "Market Neutral",
+ "category-merger-arbitrage": "Merger Arbitrage",
+ "category-multi-strategy": "Multi-Strategy",
+ "category-private-equity": "Private Equity (PE)",
+ "category-quantitative-systematic": "Quantitative/Systematic",
+ "category-relative-value": "Relative Value",
+ "category-statistical-arbitrage": "Statistical Arbitrage",
+ "category-structured-credit": "Structured Credit",
+ "category-venture-capital": "Venture Capital (VC)",
+ "class-absolute-return": "Absolute Return",
+ "class-core-blend": "Core / Blend",
+ "class-diversified": "Diversified",
+ "class-early-stage": "Early Stage",
+ "class-factor-based": "Factor-Based",
+ "class-growth-focused": "Growth-Focused",
+ "class-header": "Fund Class",
+ "class-income-focused": "Income-Focused",
+ "class-large-cap": "Large-Cap",
+ "class-long-equity": "Long Equity (Long Only)",
+ "class-long-short-equity": "Long/Short Equity",
+ "class-market-neutral": "Market Neutral",
+ "class-mid-cap": "Mid-Cap",
+ "class-momentum-oriented": "Momentum-Oriented",
+ "class-opportunistic": "Opportunistic",
+ "class-pre-series-b": "Pre-Series B",
+ "class-quantitative-algorithmic": "Quantitative / Algorithmic",
+ "class-regional": "Regional",
+ "class-sector-specific": "Sector-Specific",
+ "class-seed-pre-seed": "Seed / Pre-Seed",
+ "class-series-b-late-stage": "Series B / Late Stage",
+ "class-short-equity": "Short Equity",
+ "class-small-cap": "Small-Cap",
+ "class-tactical-asset-allocation": "Tactical Asset Allocation",
+ "class-value-focused": "Value-Focused",
+ "management-fee-header": "Management Fee",
+ "name-header": "Name",
+ "page-description": "Overview and administrative actions for your fund assets.",
+ "page-title": "Funds",
+ "private-header": "Private",
+ "private-status": "Private",
+ "public-status": "Public",
+ "related-actions": {
+ "issue-new": {
+ "description": "Create and launch a new fund with defined parameters and asset backing. Streamline fund deployment to support new investment opportunities and market segments.",
+ "title": "Issue a new fund"
+ },
+ "mechanics": {
+ "button": "Learn more",
+ "description": "Learn how to adjust key fund parameters, asset allocation methods, and management fee structures.",
+ "title": "Fund mechanics"
+ },
+ "title": "Related Actions",
+ "usecases": {
+ "button": "Explore",
+ "description": "Explore the practical applications and integrations of digital funds. Maximize utility across investment management, asset tokenization, and institutional finance ecosystems.",
+ "title": "Usecases"
+ }
+ },
+ "status-header": "Status",
+ "symbol-header": "Symbol",
+ "topinfo-description": "Fund assets digitize investment fund shares, offering automated management fee collection, investor governance, and comprehensive regulatory compliance. Ideal for financial institutions, they streamline administrative processes, ensure transparent fee management, and enable secure investor voting. The contract provides strong security, customizable fund attributes, and enhanced operational efficiency.",
+ "topinfo-title": "Digital asset for institutional fund management",
+ "total-supply-header": "Total Supply"
+ },
+ "tabs": {
+ "details": "Details",
+ "events": "Events",
+ "holders": "Holders",
+ "permissions": "Permissions",
+ "underlying-assets": "Underlying assets"
+ }
+ },
+ "platform": {
+ "settings": {
+ "platform-management": "Platform management"
+ }
+ },
+ "sidebar": {
+ "asset-designer": "Asset Designer",
+ "asset-management": {
+ "asset-activity": "Asset activity",
+ "bonds": "Bonds",
+ "cryptocurrencies": "Cryptocurrencies",
+ "dashboard": "Dashboard",
+ "equities": "Equities",
+ "funds": "Funds",
+ "group-title": "Asset management",
+ "stablecoins": "Stablecoins",
+ "view-all": "View all"
+ },
+ "asset-types": {
+ "bond": "Bond",
+ "cryptocurrency": "Cryptocurrency",
+ "equity": "Equity",
+ "fund": "Fund",
+ "stablecoin": "Stablecoin"
+ },
+ "platform-management": {
+ "group-title": "Platform management",
+ "settings": "Settings",
+ "user-management": "User management"
+ },
+ "portfolio-management": {
+ "dashboard": "Dashboard",
+ "group-title": "My portfolio",
+ "my-activity": "My activity",
+ "my-assets": "My assets"
+ }
+ },
+ "stablecoins": {
+ "burn-form": {
+ "amount": {
+ "amount-label": "Amount",
+ "available-balance": "Available balance: {balance}",
+ "description": "Input the amount you wish to burn.",
+ "title": "Enter Amount"
+ },
+ "button-label": "Burn Assets",
+ "description": "Permanently remove tokens from circulation to reduce supply.",
+ "summary": {
+ "amount-label": "Amount",
+ "asset-label": "Asset",
+ "burn-description": "Burning operation details",
+ "burn-title": "Burn",
+ "description": "Verify the details of your burn before proceeding.",
+ "title": "Review and confirm burn"
+ },
+ "title": "Burn",
+ "trigger-label": "Burn"
+ },
+ "charts": {
+ "asset-statistics-title": "Asset statistics"
+ },
+ "collateral": {
+ "collateral-proof-expiration": "Collateral proof expiration",
+ "collateral-proof-expiration-info": "From this point the collateral proof is invalid",
+ "collateral-proof-validity": "Collateral proof validity",
+ "collateral-proof-validity-info": "How long the collateral proof is valid for",
+ "committed-collateral-ratio": "Committed collateral ratio",
+ "committed-collateral-ratio-info": "The ratio of the collateral committed to the total supply of the token",
+ "proven-collateral": "Proven collateral",
+ "proven-collateral-info": "The amount of collateral that has been proven to be held by the token",
+ "required-collateral-threshold": "Required collateral threshold",
+ "required-collateral-threshold-info": "The amount of collateral that must be proven"
+ },
+ "create-form": {
+ "basics": {
+ "decimals-label": "Decimals",
+ "description": "Define essential details such as name, symbol, and visibility.",
+ "isin-label": "ISIN",
+ "isin-placeholder": "DEFI4EVER2024",
+ "name-label": "Name",
+ "name-placeholder": "TotallyNotTether",
+ "symbol-label": "Symbol",
+ "symbol-placeholder": "SAFU",
+ "title": "Basic Information"
+ },
+ "button-label": "Issue a new stablecoin",
+ "configuration": {
+ "collateral-proof-validity-label": "Collateral Proof Validity",
+ "description": "Specify advanced settings like collateral proof validity.",
+ "title": "Configuration"
+ },
+ "description": "Define and launch a new stablecoin asset.",
+ "summary": {
+ "asset-basics-description": "Basic asset information and settings.",
+ "asset-basics-title": "Asset Basics",
+ "collateral-proof-validity-label": "Collateral Proof Validity",
+ "configuration-description": "Asset supply and additional settings.",
+ "configuration-title": "Configuration",
+ "decimals-label": "Decimals",
+ "description": "Review and confirm the details of your new stablecoin before creation.",
+ "isin-label": "ISIN",
+ "name-label": "Name",
+ "seconds": "seconds",
+ "symbol-label": "Symbol",
+ "title": "Review and confirm the details of your new stablecoin before creation.",
+ "error-duplicate": "A Stablecoin with the same details already exists. Please try again with at least one different parameter."
+ },
+ "title": "Create Stablecoin",
+ "trigger-label": "Issue a new stablecoin"
+ },
+ "details": {
+ "contract-address": "Contract address",
+ "creator": "Creator",
+ "decimals": "Decimals",
+ "details-page-description": "Explore comprehensive data and metrics for {name}.",
+ "details-page-title": "{name} Details",
+ "isin": "ISIN",
+ "name": "Name",
+ "ownership-concentration": "Ownership concentration",
+ "ownership-concentration-info": "Percentage owned by the top 5 holders",
+ "stablecoin-details-description": "Details for the stablecoin",
+ "symbol": "Symbol",
+ "total-burned": "Burned supply",
+ "total-burned-info": "Amount of tokens permanently removed from circulation",
+ "total-holders": "# of holders",
+ "total-holders-info": "Amount of addresses currently holding the assets",
+ "total-supply": "Total supply",
+ "total-supply-info": "The total supply of the token"
+ },
+ "events": {
+ "events-page-description": "Track historical activities and transactions involving {name}.",
+ "events-page-title": "{name} Events"
+ },
+ "grant-role-form": {
+ "address": {
+ "address-label": "Admin Wallet Address",
+ "description": "Search for a user by their name or email, or manually enter a wallet address.",
+ "manual-placeholder": "0x0000000000000000000000000000000000000000",
+ "manual-toggle": "Enter address manually...",
+ "search-placeholder": "Search for a user",
+ "search-toggle": "Search for a user instead...",
+ "title": "Select New Admin"
+ },
+ "button-label": "Assign Roles",
+ "description": "Assign administrative permissions to a new user.",
+ "roles": {
+ "description": "Choose the roles to grant to the new admin. At least one role must be selected.",
+ "title": "Select Admin Roles"
+ },
+ "summary": {
+ "admin-address-label": "Admin Address",
+ "asset-label": "Asset",
+ "description": "Verify the details of your role grant before proceeding.",
+ "grant-description": "Granting role operation details",
+ "grant-title": "Grant Role",
+ "roles-label": "Roles",
+ "title": "Review and confirm role grant"
+ },
+ "title": "Grant Role"
+ },
+ "manage": {
+ "actions": {
+ "burn": "Burn",
+ "grant-role": "Grant Role",
+ "mint": "Mint",
+ "pause": "Pause",
+ "unpause": "Unpause",
+ "update-collateral": "Update Collateral",
+ "transfer": "Transfer"
+ },
+ "manage": "Manage"
+ },
+ "mint-form": {
+ "amount": {
+ "amount-label": "Amount",
+ "collateral-available": "Collateral available: {collateral}",
+ "description": "Input the amount you wish to mint.",
+ "title": "Enter Amount"
+ },
+ "recipients": {
+ "title": "Select Recipients",
+ "description": "Choose who will receive the minted tokens"
+ },
+ "button-label": "Mint Assets",
+ "description": "Issue new tokens to increase the stablecoin's circulating supply.",
+ "summary": {
+ "amount-label": "Amount",
+ "asset-label": "Asset",
+ "description": "Verify the details of your mint before proceeding.",
+ "mint-description": "Minting operation details",
+ "mint-title": "Mint",
+ "title": "Review and confirm mint"
+ },
+ "title": "Mint",
+ "trigger-label": "Mint"
+ },
+ "pause-form": {
+ "pause": {
+ "button-label": "Pause Transactions",
+ "description": "Temporarily halt all transactions and interactions for this stablecoin.",
+ "title": "Pause Stablecoin Transactions"
+ },
+ "summary": {
+ "asset-label": "Asset",
+ "current-state-label": "Current state",
+ "description": "Verify the details of your pause operation before proceeding.",
+ "pause-description": "Pausing operation details",
+ "pause-title": "Pause",
+ "state-active": "Active",
+ "state-paused": "Paused",
+ "target-state-label": "Target state",
+ "title": "Review and confirm pause operation"
+ },
+ "unpause": {
+ "button-label": "Resume Transactions",
+ "description": "Resume transactions and interactions for this stablecoin.",
+ "title": "Resume Stablecoin Transactions"
+ }
+ },
+ "related-actions": {
+ "decrease-supply": {
+ "description": "A supply manager can burn existing stablecoins, provided sufficient collateral is available.",
+ "title": "Decrease the supply"
+ },
+ "increase-supply": {
+ "description": "A supply manager can mint new stablecoins, provided sufficient collateral is available.",
+ "title": "Increase the supply"
+ },
+ "title": "Related actions",
+ "update-collateral": {
+ "description": "A supply manager needs to refresh and verify the collateral backing the stablecoin. This ensures the asset remains fully collateralized at all times.",
+ "title": "Update collateral"
+ }
+ },
+ "table": {
+ "actions-header": "Actions",
+ "address-header": "Address",
+ "asset-management": "Asset management",
+ "committed-collateral-header": "Collateral consumed",
+ "name-header": "Name",
+ "page-description": "Overview and administrative actions for your stablecoin assets.",
+ "page-title": "Stable Coins",
+ "private-header": "Private",
+ "private-status": "Private",
+ "public-status": "Public",
+ "related-actions": {
+ "issue-new": {
+ "description": "Create and launch a new stablecoin with defined parameters and collateral backing. Streamline token deployment to support new projects and market segments.",
+ "title": "Issue a new stablecoin"
+ },
+ "mechanics": {
+ "button": "Learn more",
+ "description": "Learn how to adjust key stablecoin parameters, collateralization methods, and stability mechanisms.",
+ "title": "Stablecoin mechanics"
+ },
+ "title": "Related Actions",
+ "usecases": {
+ "button": "Explore",
+ "description": "Explore the practical applications and integrations of stablecoins. Maximize utility across payments, savings, lending, and decentralized finance ecosystems.",
+ "title": "Usecases"
+ }
+ },
+ "status-header": "Status",
+ "symbol-header": "Symbol",
+ "topinfo-description": "Stablecoins are digital currencies designed to maintain a stable value by being backed by real-world assets or reserves. They offer the advantages of digital assets — such as speed, transparency, and programmability — while avoiding price volatility typically associated with cryptocurrencies. This StableCoin contract ensures every token issued is fully collateralized, providing institutions with secure, auditable, and reliable digital money management. Key features include collateral-backed issuance, comprehensive role-based controls, robust pause mechanisms, and regulatory compliance capabilities.",
+ "topinfo-title": "A secure and collateralized digital currency",
+ "total-supply-header": "Total Supply"
+ },
+ "tabs": {
+ "details": "Details",
+ "events": "Events",
+ "holders": "Holders",
+ "permissions": "Permissions",
+ "underlying-assets": "Underlying assets"
+ },
+ "update-collateral-form": {
+ "amount": {
+ "amount-label": "Amount",
+ "description": "Input the amount you wish to update the collateral to. Ensure the amount is bigger or equal to the current supply.",
+ "title": "Enter Amount"
+ },
+ "button-label": "Update Collateral Amount",
+ "description": "Adjust the collateral backing the stablecoin to reflect current requirements.",
+ "summary": {
+ "amount-label": "Amount",
+ "asset-label": "Asset",
+ "description": "Verify the details of your update proven collateral before proceeding.",
+ "title": "Review and confirm update proven collateral",
+ "update-description": "Updating collateral operation details",
+ "update-title": "Update Collateral"
+ },
+ "title": "Update collateral",
+ "trigger-label": "Update collateral"
+ }
+ },
+ "users": {
+ "banned_reason": "Banned for {reason}",
+ "columns": {
+ "email": "Email",
+ "kyc_status": "KYC Status",
+ "last_activity": "Last activity",
+ "name": "Name",
+ "role": "Role",
+ "status": "Status",
+ "wallet": "Wallet"
+ },
+ "detail": {
+ "edit_user": "Edit user",
+ "charts": {
+ "transaction-history-last-month": {
+ "title": "Transactions volume / day",
+ "description": "Showing transactions over the last month"
+ },
+ "transaction-history-last-year": {
+ "title": "Transactions volume / month",
+ "description": "Showing transactions over the last year"
+ }
+ },
+ "fields": {
+ "asset_supply": "Asset supply",
+ "created_at": "Created at",
+ "email": "Email",
+ "last_activity": "Last activity",
+ "last_login": "Last login",
+ "name": "Name",
+ "status": "Status",
+ "transactions": "Transactions",
+ "verified_at": "Verified at",
+ "wallet": "Wallet"
+ },
+ "platform-management": "Platform management",
+ "tabs": {
+ "details": "Details",
+ "holdings": "Holdings",
+ "latest-events": "Latest events",
+ "permissions": "Permissions"
+ },
+ "values": {
+ "asset_supply": "Asset supply",
+ "created_at": "Created at",
+ "email": "Email",
+ "last_activity": "Last activity",
+ "last_login": "Last login",
+ "name": "Name",
+ "never": "Never",
+ "not_verified": "Not Verified",
+ "status": "Status",
+ "transactions": "Transactions",
+ "verified_at": "Verified at",
+ "wallet": "Wallet"
+ }
+ },
+ "holdings": {
+ "title": "Holdings",
+ "table": {
+ "actions-header": "Action",
+ "balance-header": "Balance",
+ "holder-type-header": "Type",
+ "last-activity-header": "Last activity",
+ "name-header": "Name",
+ "status-header": "Status",
+ "symbol-header": "Symbol",
+ "type-header": "Asset type"
+ }
+ },
+ "latest-events": {
+ "title": "Latest events",
+ "view-all": "View more events"
+ },
+ "kyc_status": {
+ "notVerified": "Not Verified",
+ "verified": "Verified"
+ },
+ "page-description": "Manage users and their roles",
+ "page-title": "Users",
+ "platform-management": "Platform management",
+ "roles": {
+ "admin": "Admin",
+ "issuer": "Issuer",
+ "user": "User"
+ },
+ "status": {
+ "active": "Active",
+ "banned": "Banned"
+ },
+ "title": "Users"
+ },
+ "charts": {
+ "asset-type-formatter": {
+ "bonds": "Bonds",
+ "cryptocurrencies": "Cryptocurrencies",
+ "equities": "Equities",
+ "funds": "Funds",
+ "stablecoins": "Stablecoins"
+ }
+ },
+ "asset-holders-tab": {
+ "actions-header": "Actions",
+ "balance-header": "Balance",
+ "block-form": {
+ "block-button-label": "Block User",
+ "block-description": "Prevent this user from performing any transactions or interactions.",
+ "block-title": "Block User Transactions",
+ "block-trigger-label": "Block",
+ "summary": {
+ "asset-label": "Asset",
+ "block-title": "Block",
+ "current-state-label": "Current state",
+ "description": "Verify the details of your block operation before proceeding.",
+ "operation-description": "Block operation details",
+ "state-active": "Active",
+ "state-blocked": "Blocked",
+ "target-state-label": "Target state",
+ "title": "Review and confirm block operation",
+ "unblock-title": "Unblock"
+ },
+ "unblock-button-label": "Unblock User",
+ "unblock-description": "Restore this user's ability to transact and interact.",
+ "unblock-title": "Restore User Transactions",
+ "unblock-trigger-label": "Unblock"
+ },
+ "freeze-form": {
+ "amount": {
+ "amount-label": "Amount",
+ "balance-description": "Available balance: {balance} Currently frozen: {frozen}",
+ "description": "Input the amount you wish to freeze.",
+ "title": "Enter Amount"
+ },
+ "button-label": "Freeze Funds",
+ "description": "Temporarily restrict a user's access to their funds.",
+ "summary": {
+ "amount-label": "Amount",
+ "asset-label": "Asset",
+ "description": "Verify the details of your freeze operation before proceeding.",
+ "freeze-title": "Freeze",
+ "operation-description": "Freezing operation details",
+ "title": "Review and confirm freeze operation"
+ },
+ "title": "Restrict User Funds",
+ "trigger-label": "Freeze"
+ },
+ "frozen-header": "Frozen",
+ "holders-page-description": "View wallets holding {name}, including balances and statuses.",
+ "holders-page-title": "{name} Holders",
+ "holder-type-header": "Type",
+ "last-activity-header": "Last activity",
+ "status-header": "Status",
+ "wallet-header": "Wallet"
+ },
+ "asset-permissions-tab": {
+ "actions-header": "Actions",
+ "edit-form": {
+ "button-label": "Edit Permissions",
+ "description": "Update the permissions and access levels assigned to this user.",
+ "roles": {
+ "description": "Choose the roles to assign to this user. At least one role must be selected.",
+ "title": "Select User Roles"
+ },
+ "summary": {
+ "current-roles-label": "Current roles",
+ "description": "Verify the details before proceeding. This action will change the roles for the user.",
+ "new-roles-label": "New roles",
+ "operation-description": "Updating roles operation details",
+ "title": "Review and confirm new roles",
+ "update-title": "Update Roles",
+ "user-label": "User"
+ },
+ "title": "Modify User Permissions",
+ "trigger-label": "Edit Roles"
+ },
+ "last-activity-header": "Last Activity",
+ "page-description": "Permission management for {name} stablecoin",
+ "page-title": "{name} Permissions",
+ "permissions-page-description": "Manage user roles and access rights for {name}.",
+ "permissions-page-title": "{name} Permissions",
+ "revoke-all-form": {
+ "button-label": "Revoke Access",
+ "description": "Completely revoke this user's access and permissions.",
+ "summary": {
+ "description": "Verify the details before proceeding. This action will revoke all permissions for the user.",
+ "operation-description": "Revoking all permissions operation details",
+ "revoke-title": "Revoke All",
+ "roles-to-revoke-label": "Roles to revoke",
+ "title": "Review and confirm",
+ "user-label": "User"
+ },
+ "title": "Remove All User Access",
+ "trigger-label": "Revoke All"
+ },
+ "roles-header": "Roles",
+ "table-title": "Permissions",
+ "wallet-header": "Wallet"
+ }
+ },
+ "asset-management": "Asset management",
+ "asset-type": {
+ "bond": "Bond",
+ "stablecoin": "Stablecoin",
+ "equity": "Equity",
+ "cryptocurrency": "Cryptocurrency",
+ "fund": "Fund"
+ },
+ "asset-status": {
+ "active": "Active",
+ "paused": "Paused",
+ "blocked": "Blocked"
+ },
+ "auth": {
+ "account": "Account",
+ "add-account": "Add Account",
+ "already-have-account": "Already have an account?",
+ "avatar": "Avatar",
+ "avatar-description": "Click on the avatar to upload a custom one from your files.",
+ "avatar-instructions": "An avatar is optional but strongly recommended.",
+ "change-password": "Change Password",
+ "change-password-description": "Enter your current password and a new password.",
+ "change-password-instructions": "Please use 8 characters at minimum.",
+ "change-password-success": "Your password has been changed.",
+ "current-password": "Current Password",
+ "current-password-placeholder": "Enter your current password",
+ "current-session": "Current Session",
+ "delete-account": "Delete Account",
+ "delete-account-description": "Permanently remove your account and all of its contents. This WILL remove your access to your private key and you WILL lose access to your assets! This action is not reversible, so please continue with caution.",
+ "delete-account-email": "Please check your email to verify the deletion of your account.",
+ "delete-account-instructions": "Please confirm the deletion of your account. This action is not reversible, so please continue with caution.",
+ "delete-account-not-fresh": "You must be recently logged in to delete your account.",
+ "delete-account-success": "Your account has been deleted.",
+ "disabled-credentials-description": "Choose a provider to login to your account",
+ "dont-have-account": "Don't have an account?",
+ "email": "Email",
+ "email-description": "Enter the email address you want to use to log in.",
+ "email-instructions": "Please use a valid email address.",
+ "email-placeholder": "m@example.com",
+ "email-verification": "Please check your email for the verification link.",
+ "email-verify-change": "Please check your email to verify the change.",
+ "failed-to-validate": "Failed to validate",
+ "forgot-password": "Forgot Password",
+ "forgot-password-action": "Send reset link",
+ "forgot-password-description": "Enter your email to reset your password",
+ "forgot-password-email": "Check your email for the password reset link.",
+ "forgot-password-link": "Forgot your password?",
+ "link": "Link",
+ "magic-link": "Magic Link",
+ "magic-link-action": "Send magic link",
+ "magic-link-description": "Enter your email to receive a magic link",
+ "magic-link-email": "Check your email for the magic link",
+ "name": "Name",
+ "name-description": "Please enter your full name, or a display name.",
+ "name-instructions": "Please use 32 characters at maximum.",
+ "name-placeholder": "John Doe",
+ "new-password": "New Password",
+ "new-password-placeholder": "Enter your new password",
+ "passkey": "Passkey",
+ "password": "Password",
+ "password-description": "Enter your current password.",
+ "password-instructions": "Please use 8 characters at minimum.",
+ "password-placeholder": "Enter your password",
+ "pincode-form": {
+ "name-label": "Pincode Name",
+ "pincode-label": "Pincode",
+ "setting-up": "Setting up...",
+ "submit": "Setup Pincode"
+ },
+ "provider-link-success": "Provider linked successfully.",
+ "provider-unlink-success": "Provider unlinked successfully.",
+ "providers": "Providers",
+ "providers-description": "Connect your account with a third-party service.",
+ "providers-loading-error": "Could not load account info",
+ "remember-me": "Remember me",
+ "reset-password": "Reset Password",
+ "reset-password-action": "Save new password",
+ "reset-password-description": "Enter your new password below",
+ "reset-password-invalid-token": "Invalid reset password link",
+ "reset-password-success": "Password reset successfully",
+ "revoke": "Revoke",
+ "save": "Save",
+ "sessions": "Sessions",
+ "sessions-description": "Manage your active sessions and revoke access.",
+ "set-password": "Set Password",
+ "set-password-description": "Check your email to set your password.",
+ "set-password-email-sent": "Check your email to set your password.",
+ "settings": "Settings",
+ "sign-in": "Sign In",
+ "sign-in-action": "Login",
+ "sign-in-description": "Enter your email below to login to your account",
+ "sign-in-username-description": "Enter your username below to login to your account",
+ "sign-in-with": "Sign in with",
+ "sign-out": "Sign Out",
+ "sign-up": "Sign Up",
+ "sign-up-action": "Create an account",
+ "sign-up-description": "Enter your information to create an account",
+ "sign-up-email": "Check your email for the verification link.",
+ "signin": {
+ "description": "Enter your email below to login to your account",
+ "email": {
+ "label": "Email",
+ "placeholder": "m@example.com"
+ },
+ "no-account": "Don't have an account?",
+ "password": {
+ "label": "Password"
+ },
+ "remember-me": "Remember me",
+ "sign-in-with-passkey": "Sign in with passkey",
+ "sign-up": "Sign up",
+ "submit": "Sign in",
+ "submitting": "Signing in...",
+ "title": "Login to your account"
+ },
+ "signup": {
+ "description": "Enter the information below to create your account and managed blockchain wallet",
+ "email": {
+ "label": "Email",
+ "placeholder": "wolf@wallstreet.com"
+ },
+ "error": {
+ "generic": "An error occurred"
+ },
+ "have-account": "Already have an account?",
+ "name": {
+ "label": "Name",
+ "placeholder": "Warren Buffett Jr."
+ },
+ "page": {
+ "alert": {
+ "description": "The first user to sign up will be the given the admin role. You can add other admins later.",
+ "title": "Just created this dAPP?"
+ }
+ },
+ "password": {
+ "label": "Password"
+ },
+ "sign-in": "Sign in",
+ "submit": "Create account",
+ "submitting": "Creating account...",
+ "title": "Create an account",
+ "wallet-pin": {
+ "label": "Choose a secure wallet PIN code"
+ },
+ "wallet-pin-confirm": {
+ "label": "Confirm wallet PIN code"
+ }
+ },
+ "unlink": "Unlink",
+ "username": "Username",
+ "username-description": "Enter the username you want to use to log in.",
+ "username-instructions": "Please use 32 characters at maximum.",
+ "username-placeholder": "John Doe",
+ "username-sign-in-placeholder": "Username or email",
+ "wallet-security": {
+ "pincode-instruction": "Enter a 6-digit pincode to secure your wallet.",
+ "pincode-set": "Pincode set successfully",
+ "setup-pincode": "Setup Pincode",
+ "verification-description": "Please set up a pincode to secure your wallet.",
+ "verification-required": "Verification Required"
+ },
+ "wrong-role": {
+ "description": "You don't have the required role to access this page. Please sign in with an account that has the appropriate permissions.",
+ "go-to-portfolio": "Go to portfolio",
+ "title": "You are not authorized to access this page"
+ }
+ },
+ "components": {
+ "active-pill": {
+ "active": "Active",
+ "paused": "Paused"
+ },
+ "address-avatar": {
+ "avatar": "Avatar"
+ },
+ "area-chart": {
+ "info-icon-label": "Info"
+ },
+ "asset-events-table": {
+ "asset": "Asset",
+ "detail-sheet": {
+ "asset": "Asset",
+ "asset-type": "Asset type",
+ "date": "Date",
+ "details-button": "Details",
+ "details-for-event": "Details for {event} event",
+ "sender": "Sender",
+ "transaction-hash": "Transaction Hash"
+ },
+ "details": {
+ "account": "Account",
+ "amount": "Amount",
+ "bond-amount": "Bond Amount",
+ "burned": "Burned",
+ "details-header": "Details",
+ "from": "From",
+ "holder": "Holder",
+ "new-admin-role": "New Admin Role",
+ "new-amount": "New Amount",
+ "new-mint": "New Mint",
+ "old-amount": "Old Amount",
+ "previous-admin-role": "Previous Admin Role",
+ "role": "Role",
+ "to": "To",
+ "token": "Token",
+ "underlying-amount": "Underlying Amount",
+ "user": "User",
+ "value": "Value"
+ },
+ "event": "Event",
+ "events": "Events",
+ "sender": "Sender",
+ "timestamp": "Timestamp"
+ },
+ "asset-status-pill": {
+ "blocked": "Blocked"
+ },
+ "asset-type-icon": {
+ "bond-initials": "BN",
+ "cryptocurrency-initials": "CC",
+ "equity-initials": "EQ",
+ "fund-initials": "FN",
+ "not-available-initials": "NA",
+ "stablecoin-initials": "SC"
+ },
+ "charts": {
+ "assets": {
+ "asset-distribution": "Asset Distribution",
+ "asset-distribution-description": "Portfolio allocation by asset type",
+ "asset-distribution-no-data": "No asset data available",
+ "collateral-ratio": {
+ "description": "Amount of collateral free vs used",
+ "label": "Collateral Ratio",
+ "no-data": "No collateral data available"
+ },
+ "free-collateral-ratio": {
+ "label": "Free"
+ },
+ "last-updated": "Last updated",
+ "total-supply": {
+ "description": "Showing the total supply of the token",
+ "label": "Total supply",
+ "no-data": "No data available in this window",
+ "title": "Total supply"
+ },
+ "total-supply-changed": {
+ "burned-label": "Total burned",
+ "description": "Showing the supply change of the token",
+ "minted-label": "Total minted",
+ "no-data": "No data available in this window",
+ "title": "Supply changes"
+ },
+ "total-transfers": {
+ "description": "Showing the total transfers of the token",
+ "label": "Total transfers",
+ "no-data": "No data available in this window",
+ "title": "Total transfers"
+ },
+ "total-volume": {
+ "description": "Showing the total volume of the token",
+ "label": "Total volume",
+ "no-data": "No data available in this window",
+ "title": "Total volume"
+ },
+ "used-collateral-ratio": {
+ "label": "Committed"
+ },
+ "wallet-distribution": "Wallet Distribution",
+ "wallet-distribution-description": "Amount of holders vs the amounts they hold",
+ "wallet-distribution-no-data": "No wallet data available",
+ "asset-type-pluralizer": {
+ "bond": "Bonds",
+ "cryptocurrency": "Cryptocurrencies",
+ "equity": "Equities",
+ "fund": "Funds",
+ "stablecoin": "Stablecoins"
+ }
+ }
+ },
+ "data-table": {
+ "clear-filters": "Clear filters",
+ "details": "Details",
+ "export": "Export",
+ "failed-export": "Failed to export data",
+ "go-to-first-page": "Go to first page",
+ "go-to-last-page": "Go to last page",
+ "go-to-next-page": "Go to next page",
+ "go-to-previous-page": "Go to previous page",
+ "hide": "Hide",
+ "no-results": "No results",
+ "no-results-found": "No results found.",
+ "open-menu": "Open menu",
+ "page-info": "Page {current} of {total}",
+ "reset": "Reset",
+ "rows-per-page": "Rows per page",
+ "search": "Search...",
+ "selected": "selected",
+ "selected-rows-info": "{selected} of {total} row(s) selected.",
+ "sort-ascending": "Sort Ascending",
+ "sort-descending": "Sort Descending",
+ "toggle-columns": "Toggle columns",
+ "view": "View"
+ },
+ "detail-grid": {
+ "info-icon-label": "Additional information"
+ },
+ "form": {
+ "assets": {
+ "default-placeholder": "Select an option",
+ "loading": "Loading...",
+ "no-asset-found": "No asset found.",
+ "search-placeholder": "Search for an asset..."
+ },
+ "button": {
+ "next": "Next",
+ "previous": "Previous",
+ "processing": "Processing...",
+ "send-transaction": "Send transaction",
+ "sending-transaction": "Sending transaction..."
+ },
+ "input": {
+ "letters-only": "Please enter letters only",
+ "password-min-length": "Password must be at least 6 characters long",
+ "pin-code-length": "PIN code must be exactly 6 digits",
+ "pin-code-match": "PIN codes don't match",
+ "valid-email": "Please enter a valid email address"
+ },
+ "progress": {
+ "completed-step": "Completed step",
+ "current-step": "Current step",
+ "step-of-total": "Step {current} of {total}",
+ "upcoming-step": "Upcoming step"
+ },
+ "select": {
+ "default-placeholder": "Select an option"
+ },
+ "summary": {
+ "security-confirmation": {
+ "description": "Enter your pin code to confirm and sign the transaction.",
+ "title": "Security Confirmation"
+ }
+ },
+ "users": {
+ "default-placeholder": "Select an option",
+ "loading": "Loading...",
+ "no-user-found": "No user found.",
+ "search-placeholder": "Search for a user..."
+ },
+ "pincode-dialog": {
+ "title": "Enter your pincode to confirm",
+ "description": "To sign the transaction, please enter your pincode for verification and authorization."
+ }
+ },
+ "logo": {
+ "alt-text": "SettleMint"
+ },
+ "search": {
+ "assets-section": "Assets",
+ "no-results": "No results found",
+ "placeholder": "Search for assets or users...",
+ "users-section": "Users"
+ },
+ "transaction-details": {
+ "blob-gas-price-label": "Blob gas price",
+ "blob-gas-used-label": "Blob gas used",
+ "block-hash-label": "Block hash",
+ "block-number-label": "Block number",
+ "contract-label": "Contract",
+ "created-at-label": "Created at",
+ "description": "View the details of a transaction",
+ "effective-gas-price-label": "Effective gas price",
+ "from-label": "From",
+ "function-label": "Function",
+ "gas-used-label": "Gas used",
+ "receipt-title": "Receipt",
+ "revert-reason-label": "Revert reason",
+ "status-label": "Status",
+ "title": "Transactions",
+ "transaction-hash-label": "Transaction hash",
+ "transaction-index-label": "Transaction index",
+ "transaction-title": "Transaction",
+ "trigger-label": "Details",
+ "type-label": "Type"
+ },
+ "transaction-hash": {
+ "view-on-explorer": "View on the explorer"
+ },
+ "transactions-history": {
+ "title": "Transactions",
+ "description": "Showing transactions over the last {interval}",
+ "chart-label": "Transaction"
+ },
+ "transactions-table": {
+ "columns": {
+ "actions": "Actions",
+ "created-at": "Timestamp",
+ "contract": "Contract",
+ "function": "Function",
+ "from": "From",
+ "status": "Status",
+ "transaction-hash": "Transaction Hash"
+ }
+ }
+ },
+ "error": {
+ "error-id": "Error ID",
+ "go-home": "Go home",
+ "title": "Something went wrong!",
+ "try-again": "Try again",
+ "unknown-error": "Unknown error",
+ "validation-errors": "Validation errors",
+ "cryptocurrency": {
+ "duplicate": "A Cryptocurrency with these details already exists. Please change at least one of the details."
+ },
+ "stablecoin": {
+ "duplicate": "A Stablecoin with these details already exists. Please change at least one of the details."
+ },
+ "bond": {
+ "duplicate": "A Bond with these details already exists. Please change at least one of the details."
+ },
+ "equity": {
+ "duplicate": "An Equity with these details already exists. Please change at least one of the details."
+ },
+ "fund": {
+ "duplicate": "A Fund with these details already exists. Please change at least one of the details."
+ }
+ },
+ "holder-type": {
+ "admin": "Admin",
+ "creator-owner": "Creator / Owner",
+ "regular": "Regular Holder",
+ "supply-manager": "Supply Manager"
+ },
+ "layout": {
+ "header": {
+ "app-description": "Asset Tokenization",
+ "app-name": "SettleMint",
+ "home": "Home",
+ "issuer-portal": "Issuer portal"
+ },
+ "navigation": {
+ "admin": "Issuer portal",
+ "home": "Home",
+ "portfolio": "My portfolio"
+ },
+ "user-dropdown": {
+ "documentation": "Documentation",
+ "logout": "Log out",
+ "pending-transactions": "Pending Transactions"
+ }
+ },
+ "portfolio": {
+ "dashboard": {
+ "page-title": "Portfolio",
+ "portfolio-management": "Portfolio management",
+ "my-assets": "My Assets",
+ "latest-events": "Latest events"
+ },
+ "activity": {
+ "page-description": "Your activity on chain",
+ "page-title": "Activity",
+ "portfolio-management": "Portfolio management",
+ "tabs": {
+ "recent-transactions": "Recent transactions",
+ "all-events": "All events"
+ }
+ },
+ "asset-types": {
+ "bond": "Bond",
+ "cryptocurrency": "Cryptocurrency",
+ "equity": "Equity",
+ "fund": "Fund",
+ "stablecoin": "Stablecoin",
+ "unknown": "Unknown"
+ },
+ "greeting": {
+ "morning": "Good morning",
+ "afternoon": "Good afternoon",
+ "evening": "Good evening",
+ "you-have": "You have"
+ },
+ "my-assets": {
+ "description": "View and manage your digital assets",
+ "portfolio-management": "Portfolio management",
+ "title": "My Assets",
+ "table": {
+ "actions-header": "Action",
+ "balance-header": "Balance",
+ "name-header": "Name",
+ "status-header": "Status",
+ "symbol-header": "Symbol",
+ "type-header": "Type"
+ },
+ "stablecoin": {
+ "transfer-form": {
+ "trigger-label": "Transfer",
+ "title": "Transfer Stablecoin",
+ "description": "Transfer your stablecoin tokens to another address",
+ "button-label": "Transfer",
+ "amount": {
+ "title": "Enter Amount",
+ "description": "Specify the amount you want to transfer",
+ "value-label": "Amount",
+ "balance-available": "Available balance: {balance}"
+ },
+ "recipients": {
+ "title": "Select Recipient",
+ "description": "Choose who will receive the tokens",
+ "address-label": "Recipient Address",
+ "address-placeholder": "Search for a user",
+ "search-user-link": "Search for a user instead...",
+ "manual-entry-link": "Enter address manually..."
+ },
+ "summary": {
+ "title": "Review and confirm transfer",
+ "description": "Verify the details of your transfer before proceeding",
+ "transfer-title": "Transfer",
+ "transfer-description": "Transfer operation details",
+ "asset-label": "Asset",
+ "value-label": "Amount",
+ "recipient-label": "Recipient"
+ }
+ }
+ },
+ "fund": {
+ "transfer-form": {
+ "trigger-label": "Transfer",
+ "title": "Transfer Fund",
+ "description": "Transfer your fund tokens to another address",
+ "button-label": "Transfer",
+ "amount": {
+ "title": "Enter Amount",
+ "description": "Specify the amount you want to transfer",
+ "value-label": "Amount",
+ "balance-available": "Available balance: {balance}"
+ },
+ "recipients": {
+ "title": "Select Recipient",
+ "description": "Choose who will receive the tokens",
+ "address-label": "Recipient Address",
+ "address-placeholder": "Search for a user",
+ "search-user-link": "Search for a user instead...",
+ "manual-entry-link": "Enter address manually..."
+ },
+ "summary": {
+ "title": "Review and confirm transfer",
+ "description": "Verify the details of your transfer before proceeding",
+ "transfer-title": "Transfer",
+ "transfer-description": "Transfer operation details",
+ "asset-label": "Asset",
+ "value-label": "Amount",
+ "recipient-label": "Recipient"
+ }
+ }
+ },
+ "equity": {
+ "transfer-form": {
+ "trigger-label": "Transfer",
+ "title": "Transfer Equity",
+ "description": "Transfer your equity tokens to another address",
+ "button-label": "Transfer",
+ "amount": {
+ "title": "Enter Amount",
+ "description": "Specify the amount you want to transfer",
+ "value-label": "Amount",
+ "balance-available": "Available balance: {balance}"
+ },
+ "recipients": {
+ "title": "Select Recipient",
+ "description": "Choose who will receive the tokens",
+ "address-label": "Recipient Address",
+ "address-placeholder": "Search for a user",
+ "search-user-link": "Search for a user instead...",
+ "manual-entry-link": "Enter address manually..."
+ },
+ "summary": {
+ "title": "Review and confirm transfer",
+ "description": "Verify the details of your transfer before proceeding",
+ "transfer-title": "Transfer",
+ "transfer-description": "Transfer operation details",
+ "asset-label": "Asset",
+ "value-label": "Amount",
+ "recipient-label": "Recipient"
+ }
+ }
+ },
+ "cryptocurrency": {
+ "transfer-form": {
+ "trigger-label": "Transfer",
+ "title": "Transfer Cryptocurrency",
+ "description": "Transfer your cryptocurrency tokens to another address",
+ "button-label": "Transfer",
+ "amount": {
+ "title": "Amount",
+ "description": "Enter the amount of tokens you want to transfer",
+ "amount-label": "Amount",
+ "balance-description": "Available balance:"
+ },
+ "recipients": {
+ "title": "Select Recipient",
+ "description": "Choose who will receive the tokens",
+ "address-label": "Recipient Address",
+ "address-placeholder": "Search for a user",
+ "search-user-link": "Search for a user instead...",
+ "manual-entry-link": "Enter address manually..."
+ },
+ "summary": {
+ "title": "Review and confirm transfer",
+ "description": "Verify the details of your transfer before proceeding",
+ "transfer-title": "Transfer",
+ "transfer-description": "Transfer operation details",
+ "asset-label": "Asset",
+ "value-label": "Amount",
+ "recipient-label": "Recipient"
+ }
+ }
+ },
+ "bond": {
+ "transfer-form": {
+ "trigger-label": "Transfer",
+ "title": "Transfer bond",
+ "description": "Transfer your bond tokens to another address",
+ "button-label": "Transfer",
+ "amount": {
+ "title": "Amount",
+ "description": "Enter the amount of tokens you want to transfer",
+ "amount-label": "Amount",
+ "balance-description": "Available balance:"
+ },
+ "recipients": {
+ "title": "Select Recipient",
+ "description": "Choose who will receive the tokens",
+ "address-label": "Recipient Address",
+ "address-placeholder": "Search for a user",
+ "search-user-link": "Search for a user instead...",
+ "manual-entry-link": "Enter address manually..."
+ },
+ "summary": {
+ "title": "Review and confirm transfer",
+ "description": "Verify the details of your transfer before proceeding",
+ "transfer-title": "Transfer",
+ "transfer-description": "Transfer operation details",
+ "asset-label": "Asset",
+ "value-label": "Amount",
+ "recipient-label": "Recipient"
+ }
+ },
+ "redeem-form": {
+ "trigger-label": "Redeem",
+ "title": "Redeem Bond",
+ "description": "Redeem your bond tokens for the underlying asset.",
+ "button-label": "Redeem Assets",
+ "amount": {
+ "title": "Enter Amount",
+ "description": "Input the amount you wish to redeem.",
+ "amount-label": "Amount",
+ "balance-description": "Available balance:"
+ },
+ "summary": {
+ "title": "Review and confirm redemption",
+ "description": "Verify the details of your redemption before proceeding",
+ "redeem-title": "Redeem",
+ "redeem-description": "Redemption operation details",
+ "asset-label": "Asset",
+ "value-label": "Amount"
+ }
+ }
+ }
+ },
+ "settings": {
+ "profile": {
+ "portfolio-management": "Portfolio management",
+ "title": "Profile"
+ }
+ },
+ "transfer-form": {
+ "asset-types": "{type} {name} ({symbol})",
+ "amount": {
+ "amount-label": "Amount",
+ "balance-description": "Balance:",
+ "description": "Specify the amount you want to transfer",
+ "title": "Enter Amount",
+ "decimals-label": "Decimals",
+ "decimals-description": "Number of decimal places for the token"
+ },
+ "description": "Easily transfer an amount of {type} {name} ({symbol}) by selecting a recipient and specifying the amount.",
+ "recipients": {
+ "description": "Enter a wallet address to send tokens directly.",
+ "title": "Select Recipients",
+ "wallet-address-label": "Wallet Address"
+ },
+ "select-asset": {
+ "asset-description": "Select an asset from your portfolio",
+ "asset-label": "Asset",
+ "description": "Choose the asset you want to transfer",
+ "title": "Select Asset",
+ "trigger-label": "Transfer Assets"
+ },
+ "summary": {
+ "description": "Verify the details of your transfer before proceeding. Ensure the recipient and amount are correct.",
+ "title": "Review and confirm transfer"
+ },
+ "transfer": "Transfer",
+ "transferring": "Transferring..."
+ }
+ },
+ "theme": {
+ "dark": "Dark",
+ "light": "Light",
+ "switch-to-mode": "Switch to {mode} mode",
+ "system": "System",
+ "toggle-label": "Toggle theme"
+ },
+ "transactions": {
+ "sending": "Sending transaction",
+ "success": "Transaction successfully processed"
+ }
+ }
\ No newline at end of file
diff --git a/examples/ja/src/locales/ja.json b/examples/ja/src/locales/ja.json
new file mode 100644
index 00000000..06820dcc
--- /dev/null
+++ b/examples/ja/src/locales/ja.json
@@ -0,0 +1,2495 @@
+{
+ "admin": {
+ "activity": {
+ "asset-management": "資産管理",
+ "page-description": "すべての資産にわたる活動を追跡します。",
+ "page-title": "資産活動",
+ "tabs": {
+ "recent-transactions": "最近の取引",
+ "all-events": "すべてのイベント"
+ },
+ "view-all": "エクスプローラーで全取引を表示"
+ },
+ "bonds": {
+ "burn-form": {
+ "amount": {
+ "amount-label": "金額",
+ "available-balance": "利用可能残高: {balance}",
+ "description": "焼却したい金額を入力してください。",
+ "title": "金額を入力"
+ },
+ "button-label": "資産を焼却",
+ "description": "供給を減らすために、債券トークンを流通から永久に除去します。",
+ "summary": {
+ "amount-label": "金額",
+ "asset-label": "資産",
+ "burn-description": "焼却操作の詳細",
+ "burn-title": "焼却",
+ "description": "進む前に焼却の詳細を確認してください。",
+ "title": "焼却を確認して承認"
+ },
+ "title": "焼却",
+ "trigger-label": "焼却"
+ },
+ "charts": {
+ "asset-statistics-title": "資産統計"
+ },
+ "create-form": {
+ "basics": {
+ "decimals-label": "小数点",
+ "description": "債券の基本情報を入力してください",
+ "isin-label": "ISIN",
+ "isin-placeholder": "例: US000000AA00",
+ "name-label": "資産名",
+ "name-placeholder": "例: 会社XYZ債券2023",
+ "symbol-label": "シンボル",
+ "symbol-placeholder": "例: XYZ23",
+ "title": "基本情報"
+ },
+ "button-label": "新しい債券を発行",
+ "configuration": {
+ "cap-description": "発行可能なトークンの最大数",
+ "cap-label": "最大供給量",
+ "description": "債券の特性を設定",
+ "face-value-description": "単一債券単位の名目価値",
+ "face-value-label": "額面価値",
+ "maturity-date-label": "満期日",
+ "title": "債券設定",
+ "underlying-asset-description": "この債券を裏付ける資産のアドレス",
+ "underlying-asset-label": "基礎資産"
+ },
+ "description": "ブロックチェーン上で新しい債券を発行",
+ "summary": {
+ "asset-basics-description": "債券に関する基本情報",
+ "asset-basics-title": "基本情報",
+ "cap-label": "最大供給量",
+ "configuration-description": "債券の技術的設定",
+ "configuration-title": "債券設定",
+ "decimals-label": "小数点",
+ "description": "作成前に債券の詳細を確認",
+ "face-value-label": "額面価値",
+ "isin-label": "ISIN",
+ "maturity-date-label": "満期日",
+ "name-label": "名前",
+ "symbol-label": "シンボル",
+ "title": "確認して承認",
+ "underlying-asset-label": "基礎資産",
+ "error-duplicate": "同じ詳細の債券が既に存在します。少なくとも1つの異なるパラメータで再試行してください。"
+ },
+ "title": "新しい債券を作成",
+ "trigger-label": "新しい債券を発行"
+ },
+ "details": {
+ "bond-details-description": "債券の詳細",
+ "contract-address": "契約アドレス",
+ "creator": "作成者",
+ "decimals": "小数点",
+ "details-page-description": "{name}の包括的なデータと指標を探索します。",
+ "details-page-title": "{name}の詳細",
+ "isin": "ISIN",
+ "name": "名前",
+ "ownership-concentration": "所有権集中",
+ "ownership-concentration-info": "上位5人の保有者による所有割合",
+ "symbol": "シンボル",
+ "total-supply": "総供給量",
+ "total-supply-info": "トークンの総供給量"
+ },
+ "events": {
+ "events-page-description": "{name}債券に関連するすべてのイベントを追跡します。",
+ "events-page-title": "{name}のイベント"
+ },
+ "grant-role-form": {
+ "address": {
+ "address-label": "管理者ウォレットアドレス",
+ "description": "名前またはメールアドレスでユーザーを検索するか、ウォレットアドレスを手動で入力します。",
+ "manual-placeholder": "0x0000000000000000000000000000000000000000",
+ "manual-toggle": "アドレスを手動で入力...",
+ "search-placeholder": "ユーザーを検索",
+ "search-toggle": "代わりにユーザーを検索...",
+ "title": "新しい管理者を選択"
+ },
+ "button-label": "役割を割り当て",
+ "description": "新しいユーザーに管理権限を割り当てます。",
+ "roles": {
+ "description": "新しい管理者に付与する役割を選択します。少なくとも1つの役割を選択する必要があります。",
+ "title": "管理者役割を選択"
+ },
+ "summary": {
+ "admin-address-label": "管理者アドレス",
+ "asset-label": "資産",
+ "description": "進む前に役割付与の詳細を確認してください。",
+ "grant-description": "役割付与操作の詳細",
+ "grant-title": "役割を付与",
+ "roles-label": "役割",
+ "title": "役割付与を確認して承認"
+ },
+ "title": "役割を付与"
+ },
+ "manage": {
+ "actions": {
+ "mint": "ミント",
+ "burn": "焼却",
+ "pause": "一時停止",
+ "unpause": "再開",
+ "grant-role": "役割を付与",
+ "top-up": "基礎資産を補充",
+ "withdraw": "基礎資産を引き出す",
+ "mature": "満期"
+ },
+ "manage": "管理"
+ },
+ "mint-form": {
+ "amount": {
+ "amount-label": "金額",
+ "description": "ミントしたい金額を入力してください。",
+ "title": "金額を入力"
+ },
+ "recipients": {
+ "title": "受取人を選択",
+ "description": "ミントされたトークンを受け取る人を選んでください"
+ },
+ "button-label": "資産をミント",
+ "description": "債券の流通供給を増やすために新しいトークンを発行します。",
+ "summary": {
+ "amount-label": "金額",
+ "asset-label": "資産",
+ "description": "進む前にミントの詳細を確認してください。",
+ "mint-description": "ミント操作の詳細",
+ "mint-title": "ミント",
+ "title": "ミントを確認して承認する"
+ },
+ "title": "ミント",
+ "trigger-label": "ミント"
+ },
+ "pause-form": {
+ "pause": {
+ "button-label": "取引を一時停止",
+ "description": "この債券のすべての取引と相互作用を一時的に停止します。",
+ "title": "債券取引を一時停止"
+ },
+ "summary": {
+ "asset-label": "資産",
+ "current-state-label": "現在の状態",
+ "description": "進む前に一時停止操作の詳細を確認してください。",
+ "pause-description": "一時停止操作の詳細",
+ "pause-title": "一時停止",
+ "state-active": "アクティブ",
+ "state-paused": "一時停止中",
+ "target-state-label": "ターゲット状態",
+ "title": "一時停止操作を確認して承認する"
+ },
+ "unpause": {
+ "button-label": "取引を再開",
+ "description": "この債券の取引と相互作用を再開します。",
+ "title": "債券取引を再開"
+ }
+ },
+ "related-actions": {
+ "decrease-supply": {
+ "description": "債券管理者は、満期時の債券償還や早期買い戻しプログラムを通じて総供給を減少させることができます。",
+ "title": "債券を償還"
+ },
+ "increase-supply": {
+ "description": "債券管理者は、定義された額面と満期を持つ新しい債券をプライマリー発行またはタップ発行を通じて発行できます。",
+ "title": "債券を発行"
+ },
+ "title": "関連アクション"
+ },
+ "table": {
+ "actions-header": "アクション",
+ "address-header": "アドレス",
+ "asset-management": "資産管理",
+ "name-header": "名前",
+ "page-description": "ブロックチェーン上で債券資産を作成、表示、管理します",
+ "page-title": "債券管理",
+ "private-header": "プライベート",
+ "private-status": "プライベート",
+ "public-status": "パブリック",
+ "related-actions": {
+ "issue-new": {
+ "description": "定義された満期、クーポン金利、額面を持つ新しい債券を作成して発行します。自動利息支払いと償還スケジュールで債券発行を効率化します。",
+ "title": "新しい債券を発行"
+ },
+ "mechanics": {
+ "button": "詳細を学ぶ",
+ "description": "固定収入証券の債券パラメータ、利息分配、満期日、および償還プロセスを管理する方法を学びます。",
+ "title": "債券メカニクス"
+ },
+ "title": "関連アクション",
+ "usecases": {
+ "button": "探る",
+ "description": "企業債務から構造化商品まで、固定収入市場でのアプリケーションを探ります。利息支払い、満期管理、および規制遵守の効率を最大化します。",
+ "title": "債券ユースケース"
+ }
+ },
+ "status-header": "ステータス",
+ "symbol-header": "シンボル",
+ "topinfo-description": "デジタル債券は、実世界の担保に裏打ちされた伝統的な固定収入証券をブロックチェーン上で安全に表現します。ブロックチェーンの透明性と予測可能なリターン、満期時の償還、自動利回り分配を組み合わせています。この債券資産は、安全な発行、正確な満期管理、包括的なコンプライアンス機能、金融機関向けに特別に調整された投資家に優しい償還プロセスを保証します。",
+ "topinfo-title": "デジタル固定収入証券資産",
+ "total-supply-header": "総供給"
+ },
+ "tabs": {
+ "details": "詳細",
+ "events": "イベント",
+ "holders": "保有者",
+ "permissions": "権限"
+ },
+ "top-up-form": {
+ "trigger-label": "追加",
+ "title": "基礎資産を追加",
+ "description": "債券に基礎資産をさらに追加します",
+ "button-label": "追加",
+ "steps": {
+ "amount": {
+ "title": "金額を入力",
+ "description": "基礎資産を追加する金額を指定してください。",
+ "amount": {
+ "label": "金額",
+ "description": "追加する金額を入力"
+ }
+ },
+ "summary": {
+ "title": "追加を確認して承認する",
+ "description": "進む前に追加の詳細を確認してください。",
+ "amount-label": "金額",
+ "asset-label": "基礎資産",
+ "pincode": {
+ "label": "PINコード",
+ "description": "取引を確認するためにPINコードを入力してください"
+ }
+ }
+ }
+ },
+ "withdraw-form": {
+ "trigger-label": "引き出す",
+ "title": "基礎資産を引き出す",
+ "description": "債券から基礎資産を引き出します",
+ "button-label": "引き出す",
+ "steps": {
+ "recipient": {
+ "title": "受取人を選択",
+ "description": "基礎資産を受け取る人を選んでください。",
+ "label": "受取人",
+ "placeholder": "ユーザーを検索するか、アドレスを入力",
+ "search-instead": "代わりにユーザーを検索...",
+ "manual-instead": "アドレスを手動で入力..."
+ },
+ "amount": {
+ "title": "金額を入力",
+ "description": "引き出す金額を指定してください。",
+ "amount": {
+ "label": "金額",
+ "description": "引き出す金額を入力"
+ }
+ },
+ "summary": {
+ "title": "引き出しを確認して承認する",
+ "description": "進む前に引き出しの詳細を確認してください。",
+ "recipient-label": "受取人",
+ "amount-label": "金額",
+ "asset-label": "基礎資産",
+ "pincode": {
+ "label": "PINコード",
+ "description": "取引を確認するためにPINコードを入力してください"
+ }
+ }
+ }
+ },
+ "mature-form": {
+ "trigger-label": "満期",
+ "title": "満期債券",
+ "description": "債券を満期にし、基礎資産を受け取る",
+ "button-label": "満期債券",
+ "summary": {
+ "title": "満期を確認して確定する",
+ "description": "進む前に債券の満期の詳細を確認してください。",
+ "mature-title": "満期",
+ "mature-description": "債券満期の詳細",
+ "asset-label": "債券"
+ }
+ }
+ },
+ "cryptocurrencies": {
+ "burn-form": {
+ "amount": {
+ "amount-label": "金額",
+ "available-balance": "利用可能残高: {balance}",
+ "description": "燃やしたい金額を入力してください。",
+ "title": "金額を入力"
+ },
+ "button-label": "資産を燃やす",
+ "description": "供給を減らすためにトークンを流通から永久に削除します。",
+ "summary": {
+ "amount-label": "金額",
+ "asset-label": "資産",
+ "burn-description": "燃焼操作の詳細",
+ "burn-title": "燃やす",
+ "description": "進む前に燃焼の詳細を確認してください。",
+ "title": "燃焼を確認して確定する"
+ },
+ "title": "燃やす",
+ "trigger-label": "燃やす"
+ },
+ "charts": {
+ "asset-statistics-title": "資産統計"
+ },
+ "create-form": {
+ "basics": {
+ "decimals-label": "小数点以下の桁数",
+ "description": "名前、シンボル、可視性などの重要な詳細を定義します。",
+ "isin-label": "ISIN",
+ "isin-placeholder": "CRYPTO123456",
+ "name-label": "名前",
+ "name-placeholder": "ビットコイン",
+ "symbol-label": "シンボル",
+ "symbol-placeholder": "BTC",
+ "title": "基本情報"
+ },
+ "button-label": "新しい暗号通貨を発行する",
+ "configuration": {
+ "description": "暗号通貨の高度な設定を指定します。",
+ "initial-supply-description": "作成時にミントするトークンの量",
+ "initial-supply-label": "初期供給",
+ "title": "設定"
+ },
+ "description": "新しい暗号通貨資産を定義して立ち上げます。",
+ "summary": {
+ "asset-basics-description": "基本的な資産情報と設定。",
+ "asset-basics-title": "資産の基本",
+ "configuration-description": "資産供給と追加設定。",
+ "configuration-title": "設定",
+ "decimals-label": "小数点以下の桁数",
+ "description": "作成前に新しい暗号通貨の詳細を確認して確定します。",
+ "initial-supply-label": "初期供給",
+ "isin-label": "ISIN",
+ "name-label": "名前",
+ "no": "いいえ",
+ "private-label": "プライベート",
+ "symbol-label": "シンボル",
+ "title": "確認して確定する",
+ "yes": "はい",
+ "error-duplicate": "同じ詳細の暗号通貨が既に存在します。少なくとも1つの異なるパラメータで再試行してください。"
+ },
+ "title": "暗号通貨を作成する",
+ "trigger-label": "新しい暗号通貨を発行する"
+ },
+ "details": {
+ "contract-address": "契約アドレス",
+ "creator": "作成者",
+ "cryptocurrency-details-description": "暗号通貨の詳細",
+ "decimals": "小数点以下の桁数",
+ "details-page-description": "{name}の包括的なデータと指標を探索します。",
+ "details-page-title": "{name}の詳細",
+ "name": "名前",
+ "ownership-concentration": "所有権集中",
+ "ownership-concentration-info": "上位5人の保有者による所有割合",
+ "symbol": "シンボル",
+ "total-supply": "総供給",
+ "total-supply-info": "トークンの総供給量"
+ },
+ "events": {
+ "events-page-description": "{name}に関する歴史的な活動と取引を追跡します。",
+ "events-page-title": "{name}のイベント"
+ },
+ "grant-role-form": {
+ "address": {
+ "address-label": "管理者ウォレットアドレス",
+ "description": "名前またはメールでユーザーを検索するか、ウォレットアドレスを手動で入力します。",
+ "manual-placeholder": "0x0000000000000000000000000000000000000000",
+ "manual-toggle": "アドレスを手動で入力...",
+ "search-placeholder": "ユーザーを検索",
+ "search-toggle": "代わりにユーザーを検索...",
+ "title": "新しい管理者を選択"
+ },
+ "button-label": "役割を割り当てる",
+ "description": "新しいユーザーに管理者権限を割り当てます。",
+ "roles": {
+ "description": "新しい管理者に付与する役割を選択します。少なくとも1つの役割を選択する必要があります。",
+ "title": "管理者役割を選択"
+ },
+ "summary": {
+ "admin-address-label": "管理者アドレス",
+ "asset-label": "資産",
+ "description": "進む前に役割付与の詳細を確認してください。",
+ "grant-description": "役割付与操作の詳細",
+ "grant-title": "役割を付与する",
+ "roles-label": "役割",
+ "title": "役割付与を確認して確定する"
+ },
+ "title": "役割を付与する"
+ },
+ "manage": {
+ "actions": {
+ "grant-role": "役割を付与する",
+ "mint": "ミント"
+ },
+ "manage": "管理"
+ },
+ "mint-form": {
+ "amount": {
+ "amount-label": "金額",
+ "description": "ミントしたい金額を入力してください。",
+ "title": "金額を入力"
+ },
+ "recipients": {
+ "title": "受取人を選択",
+ "description": "ミントされたトークンを受け取る人を選択します"
+ },
+ "button-label": "資産をミントする",
+ "description": "暗号通貨の流通供給を増やすために新しいトークンを発行します。",
+ "summary": {
+ "amount-label": "金額",
+ "asset-label": "資産",
+ "description": "進む前にミントの詳細を確認してください。",
+ "mint-description": "ミンティング操作の詳細",
+ "mint-title": "ミント",
+ "title": "ミントを確認して承認する"
+ },
+ "title": "ミント",
+ "trigger-label": "ミント"
+ },
+ "related-actions": {
+ "increase-supply": {
+ "description": "トークンマネージャーは、トークノミクスプランと発行スケジュールに従って新しいトークンをミントできます。",
+ "title": "トークンをミントする"
+ },
+ "title": "関連アクション"
+ },
+ "table": {
+ "actions-header": "アクション",
+ "address-header": "アドレス",
+ "asset-management": "資産管理",
+ "name-header": "名前",
+ "page-description": "あなたの暗号資産に関する概要と管理アクション。",
+ "page-title": "暗号通貨",
+ "private-header": "プライベート",
+ "private-status": "プライベート",
+ "public-status": "パブリック",
+ "related-actions": {
+ "issue-new": {
+ "description": "カスタマイズ可能なパラメータとセキュリティ機能を備えた新しい暗号通貨トークンを作成して立ち上げます。設定可能な供給メカニズムと移転制御を使用してトークンの展開を効率化します。",
+ "title": "新しい暗号通貨を発行する"
+ },
+ "mechanics": {
+ "button": "詳細を学ぶ",
+ "description": "あなたの暗号通貨のトークン経済、供給制御、移転制限、およびセキュリティ機能を管理する方法を学びます。",
+ "title": "トークンメカニクス"
+ },
+ "title": "関連アクション",
+ "usecases": {
+ "button": "探る",
+ "description": "デジタル決済、報酬システム、トークン化されたサービスのアプリケーションを探ります。プログラム可能な取引と機関レベルのセキュリティ機能を通じてユーティリティを最大化します。",
+ "title": "暗号通貨のユースケース"
+ }
+ },
+ "symbol-header": "シンボル",
+ "topinfo-description": "暗号通貨資産は、制御されたミンティング、堅牢なセキュリティ、および完全な規制遵守を提供するカスタマイズ可能なデジタルインストゥルメントであり、機関での使用に最適です。プログラム可能な取引、透明性の向上、使いやすさの向上のための統合メタトランザクションを通じて、金融業務を効率化します。主な機能には、役割ベースのアクセス管理、安全な発行、および機関の支払いプロセスへの簡単な統合が含まれます。",
+ "topinfo-title": "カスタマイズ可能で安全なデジタル資産",
+ "total-supply-header": "総供給量"
+ },
+ "tabs": {
+ "details": "詳細",
+ "events": "イベント",
+ "holders": "保有者",
+ "permissions": "権限",
+ "underlying-assets": "基礎資産"
+ }
+ },
+ "dashboard": {
+ "charts": {
+ "asset-activity": {
+ "burn": "バーン",
+ "description": "資産活動",
+ "mint": "ミント",
+ "title": "資産活動",
+ "transfer": "移転"
+ },
+ "asset-types": {
+ "bonds": "債券",
+ "cryptocurrencies": "暗号通貨",
+ "equities": "株式",
+ "funds": "ファンド",
+ "stablecoins": "ステーブルコイン"
+ },
+ "assets-supply": {
+ "description": "資産供給",
+ "label": "資産",
+ "title": "資産供給"
+ },
+ "transaction-history": {
+ "description": "取引履歴",
+ "label": "取引",
+ "title": "取引履歴"
+ },
+ "users-history": {
+ "description": "ユーザー履歴",
+ "label": "ユーザー",
+ "title": "ユーザー履歴"
+ }
+ },
+ "page": {
+ "asset-management": "資産管理",
+ "description": "ダッシュボードへようこそ",
+ "latest-events-heading": "最新のイベント",
+ "my-portfolio": "マイポートフォリオ",
+ "stats-heading": "統計",
+ "title": "ダッシュボード"
+ },
+ "table": {
+ "latest-events": {
+ "view-all": "すべて表示"
+ }
+ },
+ "widgets": {
+ "assets": {
+ "label": "資産",
+ "subtext": "{bonds} 債券 {cryptocurrencies} 暗号通貨、{equities} 株式、{funds} ファンド、{stableCoins} ステーブルコイン"
+ },
+ "transactions": {
+ "label": "取引",
+ "subtext": "過去 {days} 日間に処理された {count} 件の取引"
+ },
+ "users": {
+ "label": "ユーザー",
+ "subtext": "過去 {days} 日間に {count} 人のユーザー"
+ }
+ }
+ },
+ "equities": {
+ "burn-form": {
+ "amount": {
+ "amount-label": "金額",
+ "available-balance": "利用可能残高: {balance}",
+ "description": "バーンしたい金額を入力してください。",
+ "title": "金額を入力"
+ },
+ "button-label": "資産をバーンする",
+ "description": "供給を減らすために、株式トークンを流通から永久に削除します。",
+ "summary": {
+ "amount-label": "金額",
+ "asset-label": "資産",
+ "burn-description": "バーン操作の詳細",
+ "burn-title": "バーン",
+ "description": "進む前にバーンの詳細を確認してください。",
+ "title": "バーンを確認して承認する"
+ },
+ "title": "バーン",
+ "trigger-label": "バーン"
+ },
+ "charts": {
+ "asset-statistics-title": "資産統計"
+ },
+ "create-form": {
+ "basics": {
+ "decimals-label": "小数点",
+ "description": "名前、シンボル、可視性などの基本的な詳細を定義します。",
+ "isin-label": "ISIN",
+ "isin-placeholder": "US1234567890",
+ "name-label": "名前",
+ "name-placeholder": "グローバル株式",
+ "symbol-label": "シンボル",
+ "symbol-placeholder": "GLEQ",
+ "title": "基本情報"
+ },
+ "button-label": "新しい株式を発行する",
+ "configuration": {
+ "category-blend-equity": "ブレンド株式",
+ "category-communication-services": "通信サービス",
+ "category-consumer-discretionary": "消費者裁量",
+ "category-consumer-staples": "消費者必需品",
+ "category-convertible-preferred-stock": "転換優先株",
+ "category-cumulative-preferred-stock": "累積優先株",
+ "category-distressed-equity": "困難な株式",
+ "category-domestic-equity": "国内株式",
+ "category-dual-class-shares": "デュアルクラス株式",
+ "category-emerging-market-equity": "新興市場株式",
+ "category-energy": "エネルギー",
+ "category-esop-shares": "従業員持株制度(ESOP)株式",
+ "category-financials": "金融",
+ "category-frontier-market-equity": "フロンティア市場株式",
+ "category-global-equity": "グローバル株式",
+ "category-growth-capital": "成長資本",
+ "category-growth-equity": "成長株式",
+ "category-healthcare": "ヘルスケア",
+ "category-income-equity": "インカム株式",
+ "category-industrials": "産業",
+ "category-international-equity": "国際株式",
+ "category-large-cap-equity": "大型株式",
+ "category-leveraged-buyouts": "レバレッジド・バイアウト(LBO)",
+ "category-materials": "素材",
+ "category-mezzanine-financing": "メザニンファイナンス",
+ "category-micro-cap-equity": "マイクロキャップ株式",
+ "category-mid-cap-equity": "ミッドキャップ株式",
+ "category-non-cumulative-preferred-stock": "非累積優先株",
+ "category-non-voting-common-stock": "無投票普通株",
+ "category-real-estate": "不動産",
+ "category-redeemable-preferred-stock": "償還可能優先株",
+ "category-restricted-stock": "制限付き株式",
+ "category-small-cap-equity": "小型株式",
+ "category-technology": "テクノロジー",
+ "category-tracking-stocks": "トラッキング株",
+ "category-utilities": "公共事業",
+ "category-value-equity": "バリュー株式",
+ "category-venture-capital": "ベンチャーキャピタル",
+ "category-voting-common-stock": "投票権のある普通株",
+ "class-common-equity": "普通株式",
+ "class-geographic-equity": "地理的株式",
+ "class-investment-stage-private-equity": "投資段階(プライベートエクイティ)",
+ "class-investment-style-equity": "投資スタイル株式",
+ "class-market-capitalization-equity": "時価総額株式",
+ "class-preferred-equity": "優先株式",
+ "class-sector-industry-equity": "セクター/業界株式",
+ "class-special-classes-equity": "特別株式",
+ "description": "株式分類の詳細を設定する",
+ "equity-category-label": "株式カテゴリー",
+ "equity-class-label": "株式クラス",
+ "title": "設定"
+ },
+ "description": "ブロックチェーン上に新しい株式を発行する",
+ "summary": {
+ "asset-basics-description": "基本的な資産情報と設定。",
+ "asset-basics-title": "資産の基本",
+ "category-blend-equity": "ブレンド株式",
+ "category-communication-services": "通信サービス",
+ "category-consumer-discretionary": "消費者裁量",
+ "category-consumer-staples": "消費者必需品",
+ "category-convertible-preferred-stock": "転換優先株",
+ "category-cumulative-preferred-stock": "累積優先株",
+ "category-distressed-equity": "困難な株式",
+ "category-domestic-equity": "国内株式",
+ "category-dual-class-shares": "デュアルクラス株式",
+ "category-emerging-market-equity": "新興市場株式",
+ "category-energy": "エネルギー",
+ "category-esop-shares": "従業員持株制度(ESOP)株式",
+ "category-financials": "金融",
+ "category-frontier-market-equity": "フロンティア市場株式",
+ "category-global-equity": "グローバル株式",
+ "category-growth-capital": "成長資本",
+ "category-growth-equity": "成長株式",
+ "category-healthcare": "ヘルスケア",
+ "category-income-equity": "インカム株式",
+ "category-industrials": "産業",
+ "category-international-equity": "国際株式",
+ "category-large-cap-equity": "大型株式",
+ "category-leveraged-buyouts": "レバレッジド・バイアウト(LBO)",
+ "category-materials": "素材",
+ "category-mezzanine-financing": "メザニンファイナンス",
+ "category-micro-cap-equity": "マイクロキャップ株式",
+ "category-mid-cap-equity": "ミッドキャップ株式",
+ "category-non-cumulative-preferred-stock": "非累積優先株",
+ "category-non-voting-common-stock": "無投票普通株",
+ "category-real-estate": "不動産",
+ "category-redeemable-preferred-stock": "償還可能優先株",
+ "category-restricted-stock": "制限付き株式",
+ "category-small-cap-equity": "小型株式",
+ "category-technology": "テクノロジー",
+ "category-tracking-stocks": "トラッキング株",
+ "category-utilities": "公共事業",
+ "category-value-equity": "バリュー株式",
+ "category-venture-capital": "ベンチャーキャピタル",
+ "category-voting-common-stock": "投票権のある普通株",
+ "class-common-equity": "普通株式",
+ "class-geographic-equity": "地理的株式",
+ "class-investment-stage-private-equity": "投資段階(プライベートエクイティ)",
+ "class-investment-style-equity": "投資スタイル株式",
+ "class-market-capitalization-equity": "時価総額株式",
+ "class-preferred-equity": "優先株式",
+ "class-sector-industry-equity": "セクター/業界株式",
+ "class-special-classes-equity": "特別株式",
+ "configuration-description": "株式分類の詳細。",
+ "configuration-title": "設定",
+ "decimals-label": "小数点",
+ "description": "新しい株式の作成前に詳細を確認して確認してください。",
+ "equity-category-label": "株式カテゴリー",
+ "equity-class-label": "株式クラス",
+ "isin-label": "ISIN",
+ "name-label": "名前",
+ "symbol-label": "シンボル",
+ "title": "レビューと確認",
+ "error-duplicate": "同じ詳細のエクイティが既に存在します。少なくとも1つの異なるパラメータで再試行してください。"
+ },
+ "title": "新しいエクイティを作成",
+ "trigger-label": "ミント"
+ },
+ "details": {
+ "contract-address": "契約アドレス",
+ "creator": "作成者",
+ "decimals": "小数点以下の桁数",
+ "details-page-description": "{name}の包括的なデータと指標を探索します。",
+ "details-page-title": "{name}の詳細",
+ "equity-details-description": "エクイティの詳細",
+ "isin": "ISIN",
+ "name": "名前",
+ "ownership-concentration": "所有権集中",
+ "ownership-concentration-info": "上位5名の保有者による所有割合",
+ "symbol": "シンボル",
+ "total-supply": "総供給量",
+ "total-supply-info": "トークンの総供給量"
+ },
+ "events": {
+ "events-page-description": "{name}エクイティに関連するすべてのイベントを追跡します。",
+ "events-page-title": "{name}のイベント"
+ },
+ "grant-role-form": {
+ "address": {
+ "address-label": "管理者ウォレットアドレス",
+ "description": "ユーザーの名前またはメールアドレスで検索するか、ウォレットアドレスを手動で入力してください。",
+ "manual-placeholder": "0x0000000000000000000000000000000000000000",
+ "manual-toggle": "アドレスを手動で入力...",
+ "search-placeholder": "ユーザーを検索",
+ "search-toggle": "代わりにユーザーを検索...",
+ "title": "新しい管理者を選択"
+ },
+ "button-label": "役割を割り当てる",
+ "description": "新しいユーザーに管理権限を割り当てます。",
+ "roles": {
+ "description": "新しい管理者に付与する役割を選択してください。少なくとも1つの役割を選択する必要があります。",
+ "title": "管理者役割を選択"
+ },
+ "summary": {
+ "admin-address-label": "管理者アドレス",
+ "asset-label": "資産",
+ "description": "進む前に役割付与の詳細を確認してください。",
+ "grant-description": "役割付与操作の詳細",
+ "grant-title": "役割を付与",
+ "roles-label": "役割",
+ "title": "役割付与をレビューして確認"
+ },
+ "title": "役割を付与"
+ },
+ "manage": {
+ "actions": {
+ "mint": "ミント",
+ "burn": "バーン",
+ "pause": "一時停止",
+ "unpause": "再開",
+ "grant-role": "役割を付与"
+ },
+ "manage": "管理"
+ },
+ "mint-form": {
+ "amount": {
+ "amount-label": "金額",
+ "description": "ミントしたい金額を入力してください。",
+ "title": "金額を入力"
+ },
+ "recipients": {
+ "title": "受取人を選択",
+ "description": "ミントされたトークンを受け取る人を選択してください。"
+ },
+ "button-label": "資産をミント",
+ "description": "エクイティの流通供給量を増やすために新しいトークンを発行します。",
+ "summary": {
+ "amount-label": "金額",
+ "asset-label": "資産",
+ "description": "進む前にミントの詳細を確認してください。",
+ "mint-description": "ミント操作の詳細",
+ "mint-title": "ミント",
+ "title": "ミントをレビューして確認"
+ },
+ "title": "ミント",
+ "trigger-label": "ミント"
+ },
+ "pause-form": {
+ "pause": {
+ "button-label": "トランザクションを一時停止",
+ "description": "このエクイティのすべてのトランザクションとインタラクションを一時的に停止します。",
+ "title": "エクイティトランザクションを一時停止"
+ },
+ "summary": {
+ "asset-label": "資産",
+ "current-state-label": "現在の状態",
+ "description": "進む前に一時停止操作の詳細を確認してください。",
+ "pause-description": "一時停止操作の詳細",
+ "pause-title": "一時停止",
+ "state-active": "アクティブ",
+ "state-paused": "一時停止中",
+ "target-state-label": "ターゲット状態",
+ "title": "一時停止操作をレビューして確認"
+ },
+ "unpause": {
+ "button-label": "トランザクションを再開",
+ "description": "このエクイティのトランザクションとインタラクションを再開します。",
+ "title": "エクイティトランザクションを再開"
+ }
+ },
+ "related-actions": {
+ "decrease-supply": {
+ "description": "エクイティマネージャーは、買い戻しプログラムや資本削減を通じて株式の総供給量を減少させることができます。",
+ "title": "株式供給量を減少"
+ },
+ "increase-supply": {
+ "description": "エクイティマネージャーは、権利発行、プライベートプレースメント、または株式分割などのさまざまなメカニズムを通じて新しい株式を発行できます。",
+ "title": "新しい株式を発行"
+ },
+ "title": "関連アクション"
+ },
+ "table": {
+ "actions-header": "アクション",
+ "address-header": "アドレス",
+ "asset-management": "資産管理",
+ "category-blend-equity": "エクイティをブレンド",
+ "category-communication-services": "通信サービス",
+ "category-consumer-discretionary": "消費者裁量",
+ "category-consumer-staples": "消費者必需品",
+ "category-convertible-preferred-stock": "転換優先株",
+ "category-cumulative-preferred-stock": "累積優先株",
+ "category-distressed-equity": "困難なエクイティ",
+ "category-domestic-equity": "国内エクイティ",
+ "category-dual-class-shares": "二重クラス株式",
+ "category-emerging-market-equity": "新興市場エクイティ",
+ "category-energy": "エネルギー",
+ "category-esop-shares": "従業員株式所有計画(ESOP)株式",
+ "category-financials": "金融",
+ "category-frontier-market-equity": "フロンティア市場エクイティ",
+ "category-global-equity": "グローバルエクイティ",
+ "category-growth-capital": "成長資本",
+ "category-growth-equity": "成長エクイティ",
+ "category-header": "エクイティカテゴリ",
+ "category-healthcare": "ヘルスケア",
+ "category-income-equity": "インカムエクイティ",
+ "category-industrials": "産業",
+ "category-international-equity": "国際エクイティ",
+ "category-large-cap-equity": "大型株エクイティ",
+ "category-leveraged-buyouts": "レバレッジドバイアウト(LBO)",
+ "category-materials": "素材",
+ "category-mezzanine-financing": "メザニンファイナンス",
+ "category-micro-cap-equity": "マイクロキャップエクイティ",
+ "category-mid-cap-equity": "ミッドキャップエクイティ",
+ "category-non-cumulative-preferred-stock": "非累積優先株",
+ "category-non-voting-common-stock": "無投票普通株",
+ "category-real-estate": "不動産",
+ "category-redeemable-preferred-stock": "償還可能優先株",
+ "category-restricted-stock": "制限付き株式",
+ "category-small-cap-equity": "小型株エクイティ",
+ "category-technology": "テクノロジー",
+ "category-tracking-stocks": "トラッキングストック",
+ "category-utilities": "ユーティリティ",
+ "category-value-equity": "バリューエクイティ",
+ "category-venture-capital": "ベンチャーキャピタル",
+ "category-voting-common-stock": "投票普通株",
+ "class-common-equity": "普通株式",
+ "class-geographic-equity": "地理的エクイティ",
+ "class-header": "エクイティクラス",
+ "class-investment-stage-private-equity": "投資ステージ(プライベートエクイティ)",
+ "class-investment-style-equity": "投資スタイルエクイティ",
+ "class-market-capitalization-equity": "時価総額エクイティ",
+ "class-preferred-equity": "優先エクイティ",
+ "class-sector-industry-equity": "セクター/業界エクイティ",
+ "class-special-classes-equity": "特別クラスのエクイティ",
+ "name-header": "名前",
+ "page-description": "あなたのエクイティ資産に関する概要と管理アクション。",
+ "page-title": "エクイティ",
+ "private-header": "プライベート",
+ "private-status": "プライベート",
+ "public-status": "パブリック",
+ "related-actions": {
+ "issue-new": {
+ "description": "定義された株式クラスと所有権を持つ新しいエクイティトークンを作成し、発行を簡素化して株主配分と企業ガバナンスをサポートします。",
+ "title": "新しいエクイティトークンを発行"
+ },
+ "mechanics": {
+ "button": "詳細を学ぶ",
+ "description": "株主の権利、投票メカニズム、配当分配、エクイティ所有構造を管理する方法を学びます。",
+ "title": "エクイティメカニクス"
+ },
+ "title": "関連アクション",
+ "usecases": {
+ "button": "探る",
+ "description": "株式発行からステークホルダーガバナンスまで、企業エクイティ管理におけるアプリケーションを探ります。エクイティ管理、投票権、配当分配の効率を最大化します。",
+ "title": "エクイティユースケース"
+ }
+ },
+ "status-header": "ステータス",
+ "symbol-header": "シンボル",
+ "topinfo-description": "エクイティ資産は、従来のエクイティ証券をデジタル化し、高度なブロックチェーン機能と堅牢なガバナンスおよびコンプライアンスツールを組み合わせています。機関投資家向けに設計されており、安全なエクイティ発行、株主投票権、詳細なアクセス制御、および規制遵守メカニズムを提供します。この資産はエクイティ管理を簡素化し、透明性を高め、安全な投資家参加を確保します。",
+ "topinfo-title": "機関グレードのデジタルエクイティ管理",
+ "total-supply-header": "総供給量"
+ },
+ "tabs": {
+ "details": "詳細",
+ "events": "イベント",
+ "holders": "保有者",
+ "permissions": "権限",
+ "underlying-assets": "基礎資産"
+ }
+ },
+ "funds": {
+ "burn-form": {
+ "amount": {
+ "amount-label": "金額",
+ "available-balance": "利用可能残高: {balance}",
+ "description": "焼却したい金額を入力してください。",
+ "title": "金額を入力"
+ },
+ "button-label": "資産を焼却",
+ "description": "供給を減らすためにトークンを循環から永久に削除します。",
+ "summary": {
+ "amount-label": "金額",
+ "asset-label": "資産",
+ "burn-description": "焼却操作の詳細",
+ "burn-title": "焼却",
+ "description": "進む前に焼却の詳細を確認してください。",
+ "title": "焼却を確認して確認"
+ },
+ "title": "焼却",
+ "trigger-label": "焼却"
+ },
+ "charts": {
+ "asset-statistics-title": "資産統計"
+ },
+ "create-form": {
+ "basics": {
+ "decimals-label": "小数点",
+ "description": "名前、シンボル、可視性などの基本的な詳細を定義します。",
+ "isin-label": "ISIN",
+ "isin-placeholder": "US1234567890",
+ "name-label": "名前",
+ "name-placeholder": "グローバル成長ファンド",
+ "symbol-label": "シンボル",
+ "symbol-placeholder": "GGF",
+ "title": "基本情報"
+ },
+ "button-label": "新しいファンドを発行",
+ "configuration": {
+ "basis-points": "bps",
+ "category-activist": "アクティビスト",
+ "category-commodity-trading": "商品取引",
+ "category-convertible-arbitrage": "転換アービトラージ",
+ "category-credit": "クレジット",
+ "category-currency-fx": "通貨 / FX",
+ "category-distressed-debt": "困難な債務",
+ "category-emerging-markets": "新興市場",
+ "category-equity-hedge": "エクイティヘッジ",
+ "category-event-driven": "イベント駆動型",
+ "category-fixed-income-arbitrage": "固定収入アービトラージ",
+ "category-fund-of-funds": "ファンドオブファンズ",
+ "category-global-macro": "グローバルマクロ",
+ "category-high-frequency-trading": "高頻度取引(HFT)",
+ "category-managed-futures-cta": "マネージドフューチャーズ / CTA",
+ "category-market-neutral": "市場中立",
+ "category-merger-arbitrage": "合併アービトラージ",
+ "category-multi-strategy": "マルチストラテジー",
+ "category-private-equity": "プライベートエクイティ (PE)",
+ "category-quantitative-systematic": "定量的/システマティック",
+ "category-relative-value": "相対価値",
+ "category-statistical-arbitrage": "統計的アービトラージ",
+ "category-structured-credit": "ストラクチャードクレジット",
+ "category-venture-capital": "ベンチャーキャピタル (VC)",
+ "class-absolute-return": "絶対リターン",
+ "class-core-blend": "コア / ブレンド",
+ "class-diversified": "分散型",
+ "class-early-stage": "初期段階",
+ "class-factor-based": "ファクターベース",
+ "class-growth-focused": "成長重視",
+ "class-income-focused": "収入重視",
+ "class-large-cap": "大規模株",
+ "class-long-equity": "ロングエクイティ (ロングオンリー)",
+ "class-long-short-equity": "ロング/ショートエクイティ",
+ "class-market-neutral": "マーケットニュートラル",
+ "class-mid-cap": "中型株",
+ "class-momentum-oriented": "モメンタム指向",
+ "class-opportunistic": "オポチュニスティック",
+ "class-pre-series-b": "プレシリーズB",
+ "class-quantitative-algorithmic": "定量的 / アルゴリズミック",
+ "class-regional": "地域別",
+ "class-sector-specific": "セクター特化",
+ "class-seed-pre-seed": "シード / プレシード",
+ "class-series-b-late-stage": "シリーズB / 後期段階",
+ "class-short-equity": "ショートエクイティ",
+ "class-small-cap": "小型株",
+ "class-tactical-asset-allocation": "戦術的資産配分",
+ "class-value-focused": "バリュー重視",
+ "description": "ファンドのカテゴリ、クラス、管理手数料を指定してください。",
+ "fund-category-label": "ファンドカテゴリ",
+ "fund-class-label": "ファンドクラス",
+ "management-fee-description": "年間管理手数料(ベーシスポイントで、100bps = 1%)",
+ "management-fee-label": "管理手数料",
+ "title": "ファンド構成"
+ },
+ "description": "新しいファンド資産を定義して立ち上げます。",
+ "summary": {
+ "asset-basics-description": "基本的な資産情報と設定。",
+ "asset-basics-title": "資産の基本",
+ "basis-points": "bps",
+ "category-activist": "アクティビスト",
+ "category-commodity-trading": "商品取引",
+ "category-convertible-arbitrage": "転換社債アービトラージ",
+ "category-credit": "クレジット",
+ "category-currency-fx": "通貨 / FX",
+ "category-distressed-debt": "困難な債務",
+ "category-emerging-markets": "新興市場",
+ "category-equity-hedge": "エクイティヘッジ",
+ "category-event-driven": "イベントドリブン",
+ "category-fixed-income-arbitrage": "固定収入アービトラージ",
+ "category-fund-of-funds": "ファンドオブファンズ",
+ "category-global-macro": "グローバルマクロ",
+ "category-high-frequency-trading": "高頻度取引 (HFT)",
+ "category-managed-futures-cta": "マネージドフューチャーズ / CTA",
+ "category-market-neutral": "マーケットニュートラル",
+ "category-merger-arbitrage": "合併アービトラージ",
+ "category-multi-strategy": "マルチストラテジー",
+ "category-private-equity": "プライベートエクイティ (PE)",
+ "category-quantitative-systematic": "定量的/システマティック",
+ "category-relative-value": "相対価値",
+ "category-statistical-arbitrage": "統計的アービトラージ",
+ "category-structured-credit": "ストラクチャードクレジット",
+ "category-venture-capital": "ベンチャーキャピタル (VC)",
+ "class-absolute-return": "絶対リターン",
+ "class-core-blend": "コア / ブレンド",
+ "class-diversified": "分散型",
+ "class-early-stage": "初期段階",
+ "class-factor-based": "ファクターベース",
+ "class-growth-focused": "成長重視",
+ "class-income-focused": "収入重視",
+ "class-large-cap": "大規模株",
+ "class-long-equity": "ロングエクイティ (ロングオンリー)",
+ "class-long-short-equity": "ロング/ショートエクイティ",
+ "class-market-neutral": "マーケットニュートラル",
+ "class-mid-cap": "中型株",
+ "class-momentum-oriented": "モメンタム指向",
+ "class-opportunistic": "オポチュニスティック",
+ "class-pre-series-b": "プレシリーズB",
+ "class-quantitative-algorithmic": "定量的 / アルゴリズミック",
+ "class-regional": "地域別",
+ "class-sector-specific": "セクター特化",
+ "class-seed-pre-seed": "シード / プレシード",
+ "class-series-b-late-stage": "シリーズB / 後期段階",
+ "class-short-equity": "ショートエクイティ",
+ "class-small-cap": "小型株",
+ "class-tactical-asset-allocation": "戦術的資産配分",
+ "class-value-focused": "バリュー重視",
+ "configuration-description": "ファンドのカテゴリ、クラス、手数料設定。",
+ "configuration-title": "ファンド構成",
+ "decimals-label": "小数点",
+ "description": "新しいファンドの詳細を作成前に確認してください。",
+ "fund-category-label": "ファンドカテゴリ",
+ "fund-class-label": "ファンドクラス",
+ "isin-label": "ISIN",
+ "management-fee-label": "管理手数料",
+ "name-label": "名前",
+ "symbol-label": "シンボル",
+ "title": "確認して承認",
+ "error-duplicate": "同じ詳細のファンドはすでに存在します。少なくとも1つの異なるパラメータで再試行してください。"
+ },
+ "title": "ファンドを作成",
+ "trigger-label": "新しいファンドを発行"
+ },
+ "details": {
+ "contract-address": "契約アドレス",
+ "creator": "作成者",
+ "decimals": "小数点以下の桁数",
+ "details-page-description": "{name}の包括的なデータと指標を探る。",
+ "details-page-title": "{name}の詳細",
+ "fund-details-description": "株式の詳細",
+ "isin": "ISIN",
+ "name": "名前",
+ "ownership-concentration": "所有権の集中",
+ "ownership-concentration-info": "上位5名の保有者による所有割合",
+ "symbol": "シンボル",
+ "total-supply": "総供給量",
+ "total-supply-info": "トークンの総供給量"
+ },
+ "events": {
+ "events-page-description": "{name}債券に関連するすべてのイベントを追跡。",
+ "events-page-title": "{name}のイベント"
+ },
+ "grant-role-form": {
+ "address": {
+ "address-label": "管理者ウォレットアドレス",
+ "description": "名前またはメールアドレスでユーザーを検索するか、ウォレットアドレスを手動で入力します。",
+ "manual-placeholder": "0x0000000000000000000000000000000000000000",
+ "manual-toggle": "アドレスを手動で入力...",
+ "search-placeholder": "ユーザーを検索",
+ "search-toggle": "代わりにユーザーを検索...",
+ "title": "新しい管理者を選択"
+ },
+ "button-label": "役割を割り当てる",
+ "description": "新しいユーザーに管理権限を割り当てます。",
+ "roles": {
+ "description": "新しい管理者に付与する役割を選択します。少なくとも1つの役割を選択する必要があります。",
+ "title": "管理者役割を選択"
+ },
+ "summary": {
+ "admin-address-label": "管理者アドレス",
+ "asset-label": "資産",
+ "description": "進む前に役割付与の詳細を確認してください。",
+ "grant-description": "役割付与操作の詳細",
+ "grant-title": "役割を付与",
+ "roles-label": "役割",
+ "title": "役割付与を確認して確認する"
+ },
+ "title": "役割を付与"
+ },
+ "manage": {
+ "actions": {
+ "mint": "ミント",
+ "burn": "バーン",
+ "pause": "一時停止",
+ "unpause": "再開",
+ "grant-role": "役割を付与"
+ },
+ "manage": "管理"
+ },
+ "mint-form": {
+ "amount": {
+ "amount-label": "金額",
+ "description": "ミントしたい金額を入力してください。",
+ "title": "金額を入力"
+ },
+ "recipients": {
+ "title": "受取人を選択",
+ "description": "ミントされたトークンを受け取る人を選択します。"
+ },
+ "button-label": "資産をミント",
+ "description": "ファンドの流通供給量を増やすために新しいトークンを発行します。",
+ "summary": {
+ "amount-label": "金額",
+ "asset-label": "資産",
+ "description": "進む前にミントの詳細を確認してください。",
+ "mint-description": "ミント操作の詳細",
+ "mint-title": "ミント",
+ "title": "ミントを確認して確認する"
+ },
+ "title": "ミント",
+ "trigger-label": "ミント"
+ },
+ "pause-form": {
+ "pause": {
+ "button-label": "取引を一時停止",
+ "description": "このファンドのすべての取引と相互作用を一時的に停止します。",
+ "title": "ファンド取引を一時停止"
+ },
+ "summary": {
+ "asset-label": "資産",
+ "current-state-label": "現在の状態",
+ "description": "進む前に一時停止操作の詳細を確認してください。",
+ "pause-description": "一時停止操作の詳細",
+ "pause-title": "一時停止",
+ "state-active": "アクティブ",
+ "state-paused": "一時停止中",
+ "target-state-label": "ターゲット状態",
+ "title": "一時停止操作を確認して確認する"
+ },
+ "unpause": {
+ "button-label": "取引を再開",
+ "description": "このファンドの取引と相互作用を再開します。",
+ "title": "ファンド取引を再開"
+ }
+ },
+ "related-actions": {
+ "decrease-supply": {
+ "description": "債券マネージャーは、満期時の債券償還や早期買い戻しプログラムを通じて総供給量を減少させることができます。",
+ "title": "債券を償還"
+ },
+ "increase-supply": {
+ "description": "債券マネージャーは、定義された額面と満期を持つ新しい債券をプライマリー発行またはタップ発行を通じて発行できます。",
+ "title": "債券を発行"
+ },
+ "title": "関連アクション"
+ },
+ "table": {
+ "actions-header": "アクション",
+ "address-header": "アドレス",
+ "asset-management": "資産管理",
+ "assets-under-management-header": "運用資産残高(AUM)",
+ "category-activist": "アクティビスト",
+ "category-commodity-trading": "商品取引",
+ "category-convertible-arbitrage": "転換アービトラージ",
+ "category-credit": "クレジット",
+ "category-currency-fx": "通貨 / FX",
+ "category-distressed-debt": "困難な債務",
+ "category-emerging-markets": "新興市場",
+ "category-equity-hedge": "株式ヘッジ",
+ "category-event-driven": "イベント駆動型",
+ "category-fixed-income-arbitrage": "固定収入アービトラージ",
+ "category-fund-of-funds": "ファンド・オブ・ファンズ",
+ "category-global-macro": "グローバルマクロ",
+ "category-header": "ファンドカテゴリ",
+ "category-high-frequency-trading": "高頻度取引(HFT)",
+ "category-managed-futures-cta": "運用先物 / CTA",
+ "category-market-neutral": "市場中立",
+ "category-merger-arbitrage": "合併アービトラージ",
+ "category-multi-strategy": "マルチストラテジー",
+ "category-private-equity": "プライベートエクイティ(PE)",
+ "category-quantitative-systematic": "定量的/体系的",
+ "category-relative-value": "相対価値",
+ "category-statistical-arbitrage": "統計的アービトラージ",
+ "category-structured-credit": "構造化クレジット",
+ "category-venture-capital": "ベンチャーキャピタル (VC)",
+ "class-absolute-return": "絶対リターン",
+ "class-core-blend": "コア / ブレンド",
+ "class-diversified": "多様化",
+ "class-early-stage": "初期段階",
+ "class-factor-based": "ファクターベース",
+ "class-growth-focused": "成長重視",
+ "class-header": "ファンドクラス",
+ "class-income-focused": "収入重視",
+ "class-large-cap": "大型株",
+ "class-long-equity": "ロングエクイティ (ロングのみ)",
+ "class-long-short-equity": "ロング/ショートエクイティ",
+ "class-market-neutral": "マーケットニュートラル",
+ "class-mid-cap": "中型株",
+ "class-momentum-oriented": "モメンタム指向",
+ "class-opportunistic": "機会主義的",
+ "class-pre-series-b": "プレシリーズB",
+ "class-quantitative-algorithmic": "定量的 / アルゴリズミック",
+ "class-regional": "地域別",
+ "class-sector-specific": "セクター特化",
+ "class-seed-pre-seed": "シード / プレシード",
+ "class-series-b-late-stage": "シリーズB / 後期段階",
+ "class-short-equity": "ショートエクイティ",
+ "class-small-cap": "小型株",
+ "class-tactical-asset-allocation": "戦術的資産配分",
+ "class-value-focused": "価値重視",
+ "management-fee-header": "管理手数料",
+ "name-header": "名前",
+ "page-description": "あなたのファンド資産に関する概要と管理アクション。",
+ "page-title": "ファンド",
+ "private-header": "プライベート",
+ "private-status": "プライベート",
+ "public-status": "パブリック",
+ "related-actions": {
+ "issue-new": {
+ "description": "定義されたパラメータと資産の裏付けを持つ新しいファンドを作成し、立ち上げます。新しい投資機会や市場セグメントを支援するためにファンドの展開を効率化します。",
+ "title": "新しいファンドを発行する"
+ },
+ "mechanics": {
+ "button": "詳細を学ぶ",
+ "description": "主要なファンドパラメータ、資産配分方法、管理手数料構造を調整する方法を学びます。",
+ "title": "ファンドメカニクス"
+ },
+ "title": "関連アクション",
+ "usecases": {
+ "button": "探る",
+ "description": "デジタルファンドの実用的な応用と統合を探ります。投資管理、資産トークン化、機関金融エコシステム全体でのユーティリティを最大化します。",
+ "title": "ユースケース"
+ }
+ },
+ "status-header": "ステータス",
+ "symbol-header": "シンボル",
+ "topinfo-description": "ファンド資産は投資ファンドの株式をデジタル化し、自動管理手数料の徴収、投資家ガバナンス、包括的な規制遵守を提供します。金融機関に最適で、管理プロセスを効率化し、透明な手数料管理を確保し、安全な投資家投票を可能にします。契約は強力なセキュリティ、カスタマイズ可能なファンド属性、および向上した運用効率を提供します。",
+ "topinfo-title": "機関ファンド管理のためのデジタル資産",
+ "total-supply-header": "総供給量"
+ },
+ "tabs": {
+ "details": "詳細",
+ "events": "イベント",
+ "holders": "保有者",
+ "permissions": "権限",
+ "underlying-assets": "基礎資産"
+ }
+ },
+ "platform": {
+ "settings": {
+ "platform-management": "プラットフォーム管理"
+ }
+ },
+ "sidebar": {
+ "asset-designer": "資産デザイナー",
+ "asset-management": {
+ "asset-activity": "資産活動",
+ "bonds": "債券",
+ "cryptocurrencies": "暗号通貨",
+ "dashboard": "ダッシュボード",
+ "equities": "株式",
+ "funds": "ファンド",
+ "group-title": "資産管理",
+ "stablecoins": "ステーブルコイン",
+ "view-all": "すべて表示"
+ },
+ "asset-types": {
+ "bond": "債券",
+ "cryptocurrency": "暗号通貨",
+ "equity": "株式",
+ "fund": "ファンド",
+ "stablecoin": "ステーブルコイン"
+ },
+ "platform-management": {
+ "group-title": "プラットフォーム管理",
+ "settings": "設定",
+ "user-management": "ユーザー管理"
+ },
+ "portfolio-management": {
+ "dashboard": "ダッシュボード",
+ "group-title": "マイポートフォリオ",
+ "my-activity": "マイ活動",
+ "my-assets": "マイ資産"
+ }
+ },
+ "stablecoins": {
+ "burn-form": {
+ "amount": {
+ "amount-label": "金額",
+ "available-balance": "利用可能残高: {balance}",
+ "description": "燃焼したい金額を入力してください。",
+ "title": "金額を入力"
+ },
+ "button-label": "資産を燃焼する",
+ "description": "供給を減らすためにトークンを循環から永久に削除します。",
+ "summary": {
+ "amount-label": "金額",
+ "asset-label": "資産",
+ "burn-description": "燃焼操作の詳細",
+ "burn-title": "燃焼",
+ "description": "進む前に燃焼の詳細を確認してください。",
+ "title": "燃焼を確認し、確認する"
+ },
+ "title": "燃焼",
+ "trigger-label": "燃焼"
+ },
+ "charts": {
+ "asset-statistics-title": "資産統計"
+ },
+ "collateral": {
+ "collateral-proof-expiration": "担保証明の有効期限",
+ "collateral-proof-expiration-info": "この時点から担保証明は無効です",
+ "collateral-proof-validity": "担保証明の有効性",
+ "collateral-proof-validity-info": "担保証明が有効な期間",
+ "committed-collateral-ratio": "コミットされた担保比率",
+ "committed-collateral-ratio-info": "トークンの総供給に対するコミットされた担保の比率",
+ "proven-collateral": "証明された担保",
+ "proven-collateral-info": "トークンによって保有されていることが証明された担保の金額",
+ "required-collateral-threshold": "必要な担保の閾値",
+ "required-collateral-threshold-info": "証明されなければならない担保の金額"
+ },
+ "create-form": {
+ "basics": {
+ "decimals-label": "小数点",
+ "description": "名前、シンボル、可視性などの基本的な詳細を定義します。",
+ "isin-label": "ISIN",
+ "isin-placeholder": "DEFI4EVER2024",
+ "name-label": "名前",
+ "name-placeholder": "TotallyNotTether",
+ "symbol-label": "シンボル",
+ "symbol-placeholder": "SAFU",
+ "title": "基本情報"
+ },
+ "button-label": "新しいステーブルコインを発行する",
+ "configuration": {
+ "collateral-proof-validity-label": "担保証明の有効性",
+ "description": "担保証明の有効性などの高度な設定を指定します。",
+ "title": "設定"
+ },
+ "description": "新しいステーブルコイン資産を定義して立ち上げます。",
+ "summary": {
+ "asset-basics-description": "基本的な資産情報と設定。",
+ "asset-basics-title": "資産の基本",
+ "collateral-proof-validity-label": "担保証明の有効性",
+ "configuration-description": "資産供給と追加設定。",
+ "configuration-title": "設定",
+ "decimals-label": "小数点",
+ "description": "作成前に新しいステーブルコインの詳細を確認して承認します。",
+ "isin-label": "ISIN",
+ "name-label": "名前",
+ "seconds": "秒",
+ "symbol-label": "シンボル",
+ "title": "作成前に新しいステーブルコインの詳細を確認して承認します。",
+ "error-duplicate": "同じ詳細のステーブルコインがすでに存在します。少なくとも1つの異なるパラメータで再試行してください。"
+ },
+ "title": "ステーブルコインを作成",
+ "trigger-label": "新しいステーブルコインを発行する"
+ },
+ "details": {
+ "contract-address": "契約アドレス",
+ "creator": "作成者",
+ "decimals": "小数点",
+ "details-page-description": "{name}の包括的なデータと指標を探索します。",
+ "details-page-title": "{name}の詳細",
+ "isin": "ISIN",
+ "name": "名前",
+ "ownership-concentration": "所有権集中",
+ "ownership-concentration-info": "上位5人の保有者による所有割合",
+ "stablecoin-details-description": "ステーブルコインの詳細",
+ "symbol": "シンボル",
+ "total-burned": "バーンされた供給",
+ "total-burned-info": "流通から永久に除去されたトークンの量",
+ "total-holders": "#の保有者",
+ "total-holders-info": "現在資産を保有しているアドレスの数",
+ "total-supply": "総供給量",
+ "total-supply-info": "トークンの総供給量"
+ },
+ "events": {
+ "events-page-description": "{name}に関する過去の活動と取引を追跡します。",
+ "events-page-title": "{name}のイベント"
+ },
+ "grant-role-form": {
+ "address": {
+ "address-label": "管理者ウォレットアドレス",
+ "description": "名前またはメールアドレスでユーザーを検索するか、手動でウォレットアドレスを入力します。",
+ "manual-placeholder": "0x0000000000000000000000000000000000000000",
+ "manual-toggle": "アドレスを手動で入力...",
+ "search-placeholder": "ユーザーを検索",
+ "search-toggle": "代わりにユーザーを検索...",
+ "title": "新しい管理者を選択"
+ },
+ "button-label": "役割を割り当てる",
+ "description": "新しいユーザーに管理権限を割り当てます。",
+ "roles": {
+ "description": "新しい管理者に付与する役割を選択します。少なくとも1つの役割を選択する必要があります。",
+ "title": "管理者役割を選択"
+ },
+ "summary": {
+ "admin-address-label": "管理者アドレス",
+ "asset-label": "資産",
+ "description": "進む前に役割付与の詳細を確認します。",
+ "grant-description": "役割付与操作の詳細",
+ "grant-title": "役割を付与",
+ "roles-label": "役割",
+ "title": "役割付与を確認して承認します。"
+ },
+ "title": "役割を付与"
+ },
+ "manage": {
+ "actions": {
+ "burn": "バーン",
+ "grant-role": "役割を付与",
+ "mint": "ミント",
+ "pause": "一時停止",
+ "unpause": "再開",
+ "update-collateral": "担保を更新",
+ "transfer": "転送"
+ },
+ "manage": "管理"
+ },
+ "mint-form": {
+ "amount": {
+ "amount-label": "金額",
+ "collateral-available": "利用可能な担保: {collateral}",
+ "description": "ミントしたい金額を入力してください。",
+ "title": "金額を入力"
+ },
+ "recipients": {
+ "title": "受取人を選択",
+ "description": "ミントされたトークンを受け取る人を選択します。"
+ },
+ "button-label": "資産をミント",
+ "description": "ステーブルコインの流通供給を増やすために新しいトークンを発行します。",
+ "summary": {
+ "amount-label": "金額",
+ "asset-label": "資産",
+ "description": "進む前にミントの詳細を確認します。",
+ "mint-description": "ミント操作の詳細",
+ "mint-title": "ミント",
+ "title": "ミントを確認して承認します。"
+ },
+ "title": "ミント",
+ "trigger-label": "ミント"
+ },
+ "pause-form": {
+ "pause": {
+ "button-label": "取引を一時停止",
+ "description": "このステーブルコインのすべての取引と相互作用を一時的に停止します。",
+ "title": "ステーブルコイン取引を一時停止"
+ },
+ "summary": {
+ "asset-label": "資産",
+ "current-state-label": "現在の状態",
+ "description": "操作を進める前に、一時停止操作の詳細を確認してください。",
+ "pause-description": "一時停止操作の詳細",
+ "pause-title": "一時停止",
+ "state-active": "アクティブ",
+ "state-paused": "一時停止中",
+ "target-state-label": "ターゲット状態",
+ "title": "一時停止操作を確認して承認する"
+ },
+ "unpause": {
+ "button-label": "取引を再開する",
+ "description": "このステーブルコインの取引とインタラクションを再開します。",
+ "title": "ステーブルコイン取引を再開する"
+ }
+ },
+ "related-actions": {
+ "decrease-supply": {
+ "description": "供給マネージャーは、十分な担保がある場合に既存のステーブルコインを焼却できます。",
+ "title": "供給を減少させる"
+ },
+ "increase-supply": {
+ "description": "供給マネージャーは、十分な担保がある場合に新しいステーブルコインを発行できます。",
+ "title": "供給を増加させる"
+ },
+ "title": "関連アクション",
+ "update-collateral": {
+ "description": "供給マネージャーは、ステーブルコインを支える担保を更新し、確認する必要があります。これにより、資産が常に完全に担保されていることが保証されます。",
+ "title": "担保を更新する"
+ }
+ },
+ "table": {
+ "actions-header": "アクション",
+ "address-header": "アドレス",
+ "asset-management": "資産管理",
+ "committed-collateral-header": "消費された担保",
+ "name-header": "名前",
+ "page-description": "あなたのステーブルコイン資産に関する概要と管理アクション。",
+ "page-title": "ステーブルコイン",
+ "private-header": "プライベート",
+ "private-status": "プライベート",
+ "public-status": "パブリック",
+ "related-actions": {
+ "issue-new": {
+ "description": "定義されたパラメータと担保を持つ新しいステーブルコインを作成して立ち上げます。新しいプロジェクトや市場セグメントをサポートするためにトークンの展開を効率化します。",
+ "title": "新しいステーブルコインを発行する"
+ },
+ "mechanics": {
+ "button": "詳細を学ぶ",
+ "description": "主要なステーブルコインのパラメータ、担保化方法、安定性メカニズムを調整する方法を学びます。",
+ "title": "ステーブルコインのメカニクス"
+ },
+ "title": "関連アクション",
+ "usecases": {
+ "button": "探る",
+ "description": "ステーブルコインの実用的なアプリケーションと統合を探ります。支払い、貯蓄、貸付、分散型金融エコシステム全体でのユーティリティを最大化します。",
+ "title": "ユースケース"
+ }
+ },
+ "status-header": "ステータス",
+ "symbol-header": "シンボル",
+ "topinfo-description": "ステーブルコインは、実世界の資産や準備金によって裏付けられた安定した価値を維持するように設計されたデジタル通貨です。これにより、スピード、透明性、プログラム可能性などのデジタル資産の利点を享受しつつ、暗号通貨に通常伴う価格の変動を回避します。このステーブルコイン契約は、発行されるすべてのトークンが完全に担保されていることを保証し、機関に安全で監査可能な信頼性の高いデジタルマネー管理を提供します。主な機能には、担保に裏付けられた発行、包括的な役割ベースの制御、堅牢な一時停止メカニズム、および規制遵守機能が含まれます。",
+ "topinfo-title": "安全で担保されたデジタル通貨",
+ "total-supply-header": "総供給量"
+ },
+ "tabs": {
+ "details": "詳細",
+ "events": "イベント",
+ "holders": "保有者",
+ "permissions": "権限",
+ "underlying-assets": "基礎資産"
+ },
+ "update-collateral-form": {
+ "amount": {
+ "amount-label": "金額",
+ "description": "担保を更新したい金額を入力してください。金額は現在の供給量以上であることを確認してください。",
+ "title": "金額を入力"
+ },
+ "button-label": "担保金額を更新する",
+ "description": "ステーブルコインを支える担保を現在の要件に合わせて調整します。",
+ "summary": {
+ "amount-label": "金額",
+ "asset-label": "資産",
+ "description": "進める前に、更新された担保の詳細を確認してください。",
+ "title": "更新された担保を確認して承認する",
+ "update-description": "担保更新操作の詳細",
+ "update-title": "担保を更新する"
+ },
+ "title": "担保を更新する",
+ "trigger-label": "担保を更新する"
+ }
+ },
+ "users": {
+ "banned_reason": "理由により禁止されています {reason}",
+ "columns": {
+ "email": "メール",
+ "kyc_status": "KYCステータス",
+ "last_activity": "最終活動",
+ "name": "名前",
+ "role": "役割",
+ "status": "ステータス",
+ "wallet": "ウォレット"
+ },
+ "detail": {
+ "edit_user": "ユーザーを編集する",
+ "charts": {
+ "transaction-history-last-month": {
+ "title": "取引量 / 日",
+ "description": "過去1ヶ月の取引を表示"
+ },
+ "transaction-history-last-year": {
+ "title": "取引量 / 月",
+ "description": "過去1年の取引を表示"
+ }
+ },
+ "fields": {
+ "asset_supply": "資産供給",
+ "created_at": "作成日時",
+ "email": "メール",
+ "last_activity": "最終活動",
+ "last_login": "最終ログイン",
+ "name": "名前",
+ "status": "決して",
+ "transactions": "未確認",
+ "verified_at": "ステータス",
+ "wallet": "取引"
+ },
+ "platform-management": "確認日時",
+ "tabs": {
+ "details": "ウォレット",
+ "holdings": "保有資産",
+ "latest-events": "最新のイベント",
+ "permissions": "権限"
+ },
+ "values": {
+ "asset_supply": "資産供給",
+ "created_at": "作成日時",
+ "email": "メール",
+ "last_activity": "最終活動",
+ "last_login": "最終ログイン",
+ "name": "名前",
+ "never": "決して",
+ "not_verified": "未確認",
+ "status": "ステータス",
+ "transactions": "取引",
+ "verified_at": "確認日時",
+ "wallet": "ウォレット"
+ }
+ },
+ "holdings": {
+ "title": "保有資産",
+ "table": {
+ "actions-header": "アクション",
+ "balance-header": "残高",
+ "holder-type-header": "タイプ",
+ "last-activity-header": "最終活動",
+ "name-header": "名前",
+ "status-header": "ステータス",
+ "symbol-header": "シンボル",
+ "type-header": "資産タイプ"
+ }
+ },
+ "latest-events": {
+ "title": "最新のイベント",
+ "view-all": "さらにイベントを見る"
+ },
+ "kyc_status": {
+ "notVerified": "未確認",
+ "verified": "確認済み"
+ },
+ "page-description": "ユーザーとその役割を管理する",
+ "page-title": "ユーザー",
+ "platform-management": "プラットフォーム管理",
+ "roles": {
+ "admin": "管理者",
+ "issuer": "発行者",
+ "user": "ユーザー"
+ },
+ "status": {
+ "active": "アクティブ",
+ "banned": "禁止"
+ },
+ "title": "ユーザー"
+ },
+ "charts": {
+ "asset-type-formatter": {
+ "bonds": "債券",
+ "cryptocurrencies": "暗号通貨",
+ "equities": "株式",
+ "funds": "ファンド",
+ "stablecoins": "ステーブルコイン"
+ }
+ },
+ "asset-holders-tab": {
+ "actions-header": "アクション",
+ "balance-header": "残高",
+ "block-form": {
+ "block-button-label": "ユーザーをブロック",
+ "block-description": "このユーザーが取引や相互作用を行うのを防ぎます。",
+ "block-title": "ユーザー取引をブロック",
+ "block-trigger-label": "ブロック",
+ "summary": {
+ "asset-label": "資産",
+ "block-title": "ブロック",
+ "current-state-label": "現在の状態",
+ "description": "進む前にブロック操作の詳細を確認してください。",
+ "operation-description": "ブロック操作の詳細",
+ "state-active": "アクティブ",
+ "state-blocked": "ブロック済み",
+ "target-state-label": "ターゲット状態",
+ "title": "ブロック操作を確認して承認する",
+ "unblock-title": "アンブロック"
+ },
+ "unblock-button-label": "ユーザーのアンブロック",
+ "unblock-description": "このユーザーの取引および相互作用の能力を復元します。",
+ "unblock-title": "ユーザー取引を復元",
+ "unblock-trigger-label": "アンブロック"
+ },
+ "freeze-form": {
+ "amount": {
+ "amount-label": "金額",
+ "balance-description": "利用可能な残高: {balance} 現在凍結中: {frozen}",
+ "description": "凍結したい金額を入力してください。",
+ "title": "金額を入力"
+ },
+ "button-label": "資金を凍結",
+ "description": "ユーザーの資金へのアクセスを一時的に制限します。",
+ "summary": {
+ "amount-label": "金額",
+ "asset-label": "資産",
+ "description": "進む前に凍結操作の詳細を確認してください。",
+ "freeze-title": "凍結",
+ "operation-description": "凍結操作の詳細",
+ "title": "凍結操作を確認して承認する"
+ },
+ "title": "ユーザー資金を制限",
+ "trigger-label": "凍結"
+ },
+ "frozen-header": "凍結済み",
+ "holders-page-description": "残高とステータスを含む{name}を保有するウォレットを表示します。",
+ "holders-page-title": "{name} 保有者",
+ "holder-type-header": "タイプ",
+ "last-activity-header": "最終活動",
+ "status-header": "ステータス",
+ "wallet-header": "ウォレット"
+ },
+ "asset-permissions-tab": {
+ "actions-header": "アクション",
+ "edit-form": {
+ "button-label": "権限を編集",
+ "description": "このユーザーに割り当てられた権限とアクセスレベルを更新します。",
+ "roles": {
+ "description": "このユーザーに割り当てる役割を選択してください。少なくとも1つの役割を選択する必要があります。",
+ "title": "ユーザー役割を選択"
+ },
+ "summary": {
+ "current-roles-label": "現在の役割",
+ "description": "進む前に詳細を確認してください。この操作はユーザーの役割を変更します。",
+ "new-roles-label": "新しい役割",
+ "operation-description": "役割更新操作の詳細",
+ "title": "新しい役割を確認して承認する",
+ "update-title": "役割を更新",
+ "user-label": "ユーザー"
+ },
+ "title": "ユーザー権限を変更",
+ "trigger-label": "役割を編集"
+ },
+ "last-activity-header": "最終活動",
+ "page-description": "{name} ステーブルコインの権限管理",
+ "page-title": "{name} 権限",
+ "permissions-page-description": "{name}のユーザー役割とアクセス権を管理します。",
+ "permissions-page-title": "{name} 権限",
+ "revoke-all-form": {
+ "button-label": "アクセスを取り消す",
+ "description": "このユーザーのアクセスと権限を完全に取り消します。",
+ "summary": {
+ "description": "進む前に詳細を確認してください。この操作はユーザーのすべての権限を取り消します。",
+ "operation-description": "すべての権限を取り消す操作の詳細",
+ "revoke-title": "すべてを取り消す",
+ "roles-to-revoke-label": "取り消す役割",
+ "title": "確認して承認する",
+ "user-label": "ユーザー"
+ },
+ "title": "すべてのユーザーアクセスを削除",
+ "trigger-label": "すべてを取り消す"
+ },
+ "roles-header": "役割",
+ "table-title": "権限",
+ "wallet-header": "ウォレット"
+ }
+ },
+ "asset-management": "資産管理",
+ "asset-type": {
+ "bond": "ボンド",
+ "stablecoin": "ステーブルコイン",
+ "equity": "株式",
+ "cryptocurrency": "暗号通貨",
+ "fund": "ファンド"
+ },
+ "asset-status": {
+ "active": "アクティブ",
+ "paused": "一時停止",
+ "blocked": "ブロック"
+ },
+ "auth": {
+ "account": "アカウント",
+ "add-account": "アカウントを追加",
+ "already-have-account": "すでにアカウントをお持ちですか?",
+ "avatar": "アバター",
+ "avatar-description": "アバターをクリックして、ファイルからカスタムアバターをアップロードします。",
+ "avatar-instructions": "アバターは任意ですが、強く推奨されます。",
+ "change-password": "パスワードを変更",
+ "change-password-description": "現在のパスワードと新しいパスワードを入力してください。",
+ "change-password-instructions": "最低8文字を使用してください。",
+ "change-password-success": "パスワードが変更されました。",
+ "current-password": "現在のパスワード",
+ "current-password-placeholder": "現在のパスワードを入力してください",
+ "current-session": "現在のセッション",
+ "delete-account": "アカウントを削除",
+ "delete-account-description": "アカウントとそのすべての内容を永久に削除します。これにより、プライベートキーへのアクセスが失われ、資産へのアクセスも失われます!この操作は元に戻せないため、注意して続行してください。",
+ "delete-account-email": "アカウントの削除を確認するためにメールを確認してください。",
+ "delete-account-instructions": "アカウントの削除を確認してください。この操作は元に戻せないため、注意して続行してください。",
+ "delete-account-not-fresh": "アカウントを削除するには、最近ログインしている必要があります。",
+ "delete-account-success": "アカウントが削除されました。",
+ "disabled-credentials-description": "アカウントにログインするためのプロバイダーを選択",
+ "dont-have-account": "アカウントをお持ちでないですか?",
+ "email": "メールアドレス",
+ "email-description": "ログインに使用するメールアドレスを入力してください。",
+ "email-instructions": "有効なメールアドレスを使用してください。",
+ "email-placeholder": "m@example.com",
+ "email-verification": "確認リンクのためにメールを確認してください。",
+ "email-verify-change": "変更を確認するためにメールを確認してください。",
+ "failed-to-validate": "検証に失敗しました",
+ "forgot-password": "パスワードを忘れた",
+ "forgot-password-action": "リセットリンクを送信",
+ "forgot-password-description": "パスワードをリセットするためにメールを入力してください",
+ "forgot-password-email": "パスワードリセットリンクのためにメールを確認してください。",
+ "forgot-password-link": "パスワードを忘れましたか?",
+ "link": "リンク",
+ "magic-link": "マジックリンク",
+ "magic-link-action": "マジックリンクを送信",
+ "magic-link-description": "マジックリンクを受け取るためにメールを入力してください",
+ "magic-link-email": "マジックリンクのためにメールを確認してください",
+ "name": "名前",
+ "name-description": "フルネームまたは表示名を入力してください。",
+ "name-instructions": "最大32文字を使用してください。",
+ "name-placeholder": "ジョン・ドー",
+ "new-password": "新しいパスワード",
+ "new-password-placeholder": "新しいパスワードを入力してください",
+ "passkey": "パスキー",
+ "password": "パスワード",
+ "password-description": "現在のパスワードを入力してください。",
+ "password-instructions": "最低8文字を使用してください。",
+ "password-placeholder": "パスワードを入力してください",
+ "pincode-form": {
+ "name-label": "ピンコード名",
+ "pincode-label": "ピンコード",
+ "setting-up": "設定中...",
+ "submit": "ピンコードを設定"
+ },
+ "provider-link-success": "プロバイダーが正常にリンクされました。",
+ "provider-unlink-success": "プロバイダーが正常にリンク解除されました。",
+ "providers": "プロバイダー",
+ "providers-description": "アカウントをサードパーティサービスに接続します。",
+ "providers-loading-error": "アカウント情報を読み込めませんでした",
+ "remember-me": "私を覚えておいてください",
+ "reset-password": "パスワードをリセット",
+ "reset-password-action": "新しいパスワードを保存",
+ "reset-password-description": "以下に新しいパスワードを入力してください",
+ "reset-password-invalid-token": "無効なリセットパスワードリンク",
+ "reset-password-success": "パスワードが正常にリセットされました",
+ "revoke": "取り消す",
+ "save": "保存",
+ "sessions": "セッション",
+ "sessions-description": "アクティブなセッションを管理し、アクセスを取り消します。",
+ "set-password": "パスワードを設定",
+ "set-password-description": "パスワードを設定するためにメールを確認してください。",
+ "set-password-email-sent": "パスワードを設定するためにメールを確認してください。",
+ "settings": "設定",
+ "sign-in": "サインイン",
+ "sign-in-action": "ログイン",
+ "sign-in-description": "アカウントにログインするために以下にメールを入力してください",
+ "sign-in-username-description": "アカウントにログインするために以下にユーザー名を入力してください",
+ "sign-in-with": "でサインイン",
+ "sign-out": "サインアウト",
+ "sign-up": "サインアップ",
+ "sign-up-action": "アカウントを作成",
+ "sign-up-description": "アカウントを作成するために情報を入力してください",
+ "sign-up-email": "確認リンクのためにメールを確認してください。",
+ "signin": {
+ "description": "アカウントにログインするために以下にメールを入力してください",
+ "email": {
+ "label": "メールアドレス",
+ "placeholder": "m@example.com"
+ },
+ "no-account": "アカウントをお持ちでないですか?",
+ "password": {
+ "label": "パスワード"
+ },
+ "remember-me": "私を覚えておいてください",
+ "sign-in-with-passkey": "パスキーでサインイン",
+ "sign-up": "サインアップ",
+ "submit": "サインイン",
+ "submitting": "サインイン中...",
+ "title": "アカウントにログイン"
+ },
+ "signup": {
+ "description": "以下の情報を入力してアカウントと管理されたブロックチェーンウォレットを作成してください",
+ "email": {
+ "label": "メールアドレス",
+ "placeholder": "wolf@wallstreet.com"
+ },
+ "error": {
+ "generic": "エラーが発生しました"
+ },
+ "have-account": "すでにアカウントをお持ちですか?",
+ "name": {
+ "label": "名前",
+ "placeholder": "ウォーレン・バフェット・ジュニア"
+ },
+ "page": {
+ "alert": {
+ "description": "最初にサインアップしたユーザーには管理者の役割が与えられます。他の管理者は後で追加できます。",
+ "title": "このdAPPを作成したばかりですか?"
+ }
+ },
+ "password": {
+ "label": "パスワード"
+ },
+ "sign-in": "サインイン",
+ "submit": "アカウントを作成",
+ "submitting": "アカウントを作成しています...",
+ "title": "アカウントを作成する",
+ "wallet-pin": {
+ "label": "安全なウォレットのPINコードを選択してください"
+ },
+ "wallet-pin-confirm": {
+ "label": "ウォレットのPINコードを確認"
+ }
+ },
+ "unlink": "リンク解除",
+ "username": "ユーザー名",
+ "username-description": "ログインに使用するユーザー名を入力してください。",
+ "username-instructions": "最大32文字を使用してください。",
+ "username-placeholder": "ジョン・ドー",
+ "username-sign-in-placeholder": "ユーザー名またはメールアドレス",
+ "wallet-security": {
+ "pincode-instruction": "ウォレットを保護するために6桁のPINコードを入力してください。",
+ "pincode-set": "PINコードが正常に設定されました",
+ "setup-pincode": "PINコードの設定",
+ "verification-description": "ウォレットを保護するためにPINコードを設定してください。",
+ "verification-required": "確認が必要です"
+ },
+ "wrong-role": {
+ "description": "このページにアクセスするための必要な役割を持っていません。適切な権限を持つアカウントでサインインしてください。",
+ "go-to-portfolio": "ポートフォリオに移動",
+ "title": "このページにアクセスする権限がありません"
+ }
+ },
+ "components": {
+ "active-pill": {
+ "active": "アクティブ",
+ "paused": "一時停止中"
+ },
+ "address-avatar": {
+ "avatar": "アバター"
+ },
+ "area-chart": {
+ "info-icon-label": "情報"
+ },
+ "asset-events-table": {
+ "asset": "資産",
+ "detail-sheet": {
+ "asset": "資産",
+ "asset-type": "資産タイプ",
+ "date": "日付",
+ "details-button": "詳細",
+ "details-for-event": "{event}イベントの詳細",
+ "sender": "送信者",
+ "transaction-hash": "トランザクションハッシュ"
+ },
+ "details": {
+ "account": "アカウント",
+ "amount": "金額",
+ "bond-amount": "債券金額",
+ "burned": "焼却済み",
+ "details-header": "詳細",
+ "from": "から",
+ "holder": "保有者",
+ "new-admin-role": "新しい管理者役割",
+ "new-amount": "新しい金額",
+ "new-mint": "新しいミント",
+ "old-amount": "古い金額",
+ "previous-admin-role": "以前の管理者役割",
+ "role": "役割",
+ "to": "宛先",
+ "token": "トークン",
+ "underlying-amount": "基礎金額",
+ "user": "ユーザー",
+ "value": "値"
+ },
+ "event": "イベント",
+ "events": "イベント",
+ "sender": "送信者",
+ "timestamp": "タイムスタンプ"
+ },
+ "asset-status-pill": {
+ "blocked": "ブロック済み"
+ },
+ "asset-type-icon": {
+ "bond-initials": "BN",
+ "cryptocurrency-initials": "CC",
+ "equity-initials": "EQ",
+ "fund-initials": "FN",
+ "not-available-initials": "NA",
+ "stablecoin-initials": "SC"
+ },
+ "charts": {
+ "assets": {
+ "asset-distribution": "資産分配",
+ "asset-distribution-description": "資産タイプ別のポートフォリオ配分",
+ "asset-distribution-no-data": "利用可能な資産データはありません",
+ "collateral-ratio": {
+ "description": "使用されていない担保の金額と使用されている担保の金額",
+ "label": "担保比率",
+ "no-data": "利用可能な担保データはありません"
+ },
+ "free-collateral-ratio": {
+ "label": "フリー"
+ },
+ "last-updated": "最終更新",
+ "total-supply": {
+ "description": "トークンの総供給量を表示しています",
+ "label": "総供給量",
+ "no-data": "このウィンドウにはデータがありません",
+ "title": "総供給量"
+ },
+ "total-supply-changed": {
+ "burned-label": "総焼却量",
+ "description": "トークンの供給変化を表示しています",
+ "minted-label": "総ミント量",
+ "no-data": "このウィンドウにはデータがありません",
+ "title": "供給の変化"
+ },
+ "total-transfers": {
+ "description": "トークンの総転送量を表示しています",
+ "label": "総転送量",
+ "no-data": "このウィンドウにはデータがありません",
+ "title": "総転送量"
+ },
+ "total-volume": {
+ "description": "トークンの総ボリュームを表示しています",
+ "label": "総ボリューム",
+ "no-data": "このウィンドウにはデータがありません",
+ "title": "総ボリューム"
+ },
+ "used-collateral-ratio": {
+ "label": "コミット済み"
+ },
+ "wallet-distribution": "ウォレット分配",
+ "wallet-distribution-description": "保有者の数と保有している金額",
+ "wallet-distribution-no-data": "ウォレットデータは利用できません",
+ "asset-type-pluralizer": {
+ "bond": "債券",
+ "cryptocurrency": "暗号通貨",
+ "equity": "株式",
+ "fund": "ファンド",
+ "stablecoin": "ステーブルコイン"
+ }
+ }
+ },
+ "data-table": {
+ "clear-filters": "フィルターをクリア",
+ "details": "詳細",
+ "export": "エクスポート",
+ "failed-export": "データのエクスポートに失敗しました",
+ "go-to-first-page": "最初のページに移動",
+ "go-to-last-page": "最後のページに移動",
+ "go-to-next-page": "次のページに移動",
+ "go-to-previous-page": "前のページに移動",
+ "hide": "非表示",
+ "no-results": "結果なし",
+ "no-results-found": "結果が見つかりませんでした。",
+ "open-menu": "メニューを開く",
+ "page-info": "ページ {current} / {total}",
+ "reset": "リセット",
+ "rows-per-page": "ページあたりの行数",
+ "search": "検索...",
+ "selected": "選択済み",
+ "selected-rows-info": "{selected} / {total} 行が選択されています。",
+ "sort-ascending": "昇順に並べ替え",
+ "sort-descending": "降順に並べ替え",
+ "toggle-columns": "列を切り替える",
+ "view": "表示"
+ },
+ "detail-grid": {
+ "info-icon-label": "追加情報"
+ },
+ "form": {
+ "assets": {
+ "default-placeholder": "オプションを選択",
+ "loading": "読み込み中...",
+ "no-asset-found": "資産が見つかりませんでした。",
+ "search-placeholder": "資産を検索..."
+ },
+ "button": {
+ "next": "次へ",
+ "previous": "前へ",
+ "processing": "処理中...",
+ "send-transaction": "トランザクションを送信",
+ "sending-transaction": "トランザクションを送信中..."
+ },
+ "input": {
+ "letters-only": "文字のみを入力してください",
+ "password-min-length": "パスワードは6文字以上である必要があります",
+ "pin-code-length": "PINコードは正確に6桁である必要があります",
+ "pin-code-match": "PINコードが一致しません",
+ "valid-email": "有効なメールアドレスを入力してください"
+ },
+ "progress": {
+ "completed-step": "ステップ完了",
+ "current-step": "現在のステップ",
+ "step-of-total": "ステップ {current} / {total}",
+ "upcoming-step": "次のステップ"
+ },
+ "select": {
+ "default-placeholder": "オプションを選択"
+ },
+ "summary": {
+ "security-confirmation": {
+ "description": "トランザクションを確認し署名するには、PINコードを入力してください。",
+ "title": "セキュリティ確認"
+ }
+ },
+ "users": {
+ "default-placeholder": "オプションを選択",
+ "loading": "読み込み中...",
+ "no-user-found": "ユーザーが見つかりませんでした。",
+ "search-placeholder": "ユーザーを検索..."
+ },
+ "pincode-dialog": {
+ "title": "確認のためにPINコードを入力してください",
+ "description": "トランザクションを署名するには、確認と承認のためにPINコードを入力してください。"
+ }
+ },
+ "logo": {
+ "alt-text": "SettleMint"
+ },
+ "search": {
+ "assets-section": "資産",
+ "no-results": "結果が見つかりませんでした",
+ "placeholder": "資産またはユーザーを検索...",
+ "users-section": "ユーザー"
+ },
+ "transaction-details": {
+ "blob-gas-price-label": "Blobガス価格",
+ "blob-gas-used-label": "Blobガス使用量",
+ "block-hash-label": "ブロックハッシュ",
+ "block-number-label": "ブロック番号",
+ "contract-label": "契約",
+ "created-at-label": "作成日時",
+ "description": "トランザクションの詳細を表示",
+ "effective-gas-price-label": "実効ガス価格",
+ "from-label": "送信元",
+ "function-label": "関数",
+ "gas-used-label": "使用したガス",
+ "receipt-title": "領収書",
+ "revert-reason-label": "リバート理由",
+ "status-label": "ステータス",
+ "title": "トランザクション",
+ "transaction-hash-label": "トランザクションハッシュ",
+ "transaction-index-label": "トランザクションインデックス",
+ "transaction-title": "トランザクション",
+ "trigger-label": "詳細",
+ "type-label": "タイプ"
+ },
+ "transaction-hash": {
+ "view-on-explorer": "エクスプローラーで表示"
+ },
+ "transactions-history": {
+ "title": "トランザクション",
+ "description": "過去 {interval} のトランザクションを表示",
+ "chart-label": "トランザクション"
+ },
+ "transactions-table": {
+ "columns": {
+ "actions": "アクション",
+ "created-at": "タイムスタンプ",
+ "contract": "契約",
+ "function": "関数",
+ "from": "送信元",
+ "status": "ステータス",
+ "transaction-hash": "トランザクションハッシュ"
+ }
+ }
+ },
+ "error": {
+ "error-id": "エラーID",
+ "go-home": "ホームに戻る",
+ "title": "何かがうまくいきませんでした!",
+ "try-again": "再試行",
+ "unknown-error": "不明なエラー",
+ "validation-errors": "検証エラー",
+ "cryptocurrency": {
+ "duplicate": "これらの詳細を持つ暗号通貨はすでに存在します。少なくとも1つの詳細を変更してください。"
+ },
+ "stablecoin": {
+ "duplicate": "これらの詳細を持つステーブルコインはすでに存在します。少なくとも1つの詳細を変更してください。"
+ },
+ "bond": {
+ "duplicate": "これらの詳細を持つ債券はすでに存在します。少なくとも1つの詳細を変更してください。"
+ },
+ "equity": {
+ "duplicate": "これらの詳細を持つ株式はすでに存在します。少なくとも1つの詳細を変更してください。"
+ },
+ "fund": {
+ "duplicate": "これらの詳細を持つファンドはすでに存在します。少なくとも1つの詳細を変更してください。"
+ }
+ },
+ "holder-type": {
+ "admin": "管理者",
+ "creator-owner": "作成者 / 所有者",
+ "regular": "一般保有者",
+ "supply-manager": "供給管理者"
+ },
+ "layout": {
+ "header": {
+ "app-description": "資産トークン化",
+ "app-name": "セットルミント",
+ "home": "ホーム",
+ "issuer-portal": "発行者ポータル"
+ },
+ "navigation": {
+ "admin": "発行者ポータル",
+ "home": "ホーム",
+ "portfolio": "マイポートフォリオ"
+ },
+ "user-dropdown": {
+ "documentation": "ドキュメント",
+ "logout": "ログアウト",
+ "pending-transactions": "保留中の取引"
+ }
+ },
+ "portfolio": {
+ "dashboard": {
+ "page-title": "ポートフォリオ",
+ "portfolio-management": "ポートフォリオ管理",
+ "my-assets": "マイ資産",
+ "latest-events": "最新のイベント"
+ },
+ "activity": {
+ "page-description": "あなたのチェーン上の活動",
+ "page-title": "活動",
+ "portfolio-management": "ポートフォリオ管理",
+ "tabs": {
+ "recent-transactions": "最近の取引",
+ "all-events": "すべてのイベント"
+ }
+ },
+ "asset-types": {
+ "bond": "債券",
+ "cryptocurrency": "暗号通貨",
+ "equity": "株式",
+ "fund": "ファンド",
+ "stablecoin": "ステーブルコイン",
+ "unknown": "不明"
+ },
+ "greeting": {
+ "morning": "おはようございます",
+ "afternoon": "こんにちは",
+ "evening": "こんばんは",
+ "you-have": "あなたは持っています"
+ },
+ "my-assets": {
+ "description": "デジタル資産を表示および管理する",
+ "portfolio-management": "ポートフォリオ管理",
+ "title": "マイ資産",
+ "table": {
+ "actions-header": "アクション",
+ "balance-header": "残高",
+ "name-header": "名前",
+ "status-header": "ステータス",
+ "symbol-header": "シンボル",
+ "type-header": "タイプ"
+ },
+ "stablecoin": {
+ "transfer-form": {
+ "trigger-label": "転送",
+ "title": "ステーブルコインを転送",
+ "description": "あなたのステーブルコイントークンを別のアドレスに転送します",
+ "button-label": "転送",
+ "amount": {
+ "title": "金額を入力",
+ "description": "転送したい金額を指定してください",
+ "value-label": "金額",
+ "balance-available": "利用可能な残高: {balance}"
+ },
+ "recipients": {
+ "title": "受取人を選択",
+ "description": "トークンを受け取る人を選択してください",
+ "address-label": "受取人アドレス",
+ "address-placeholder": "ユーザーを検索",
+ "search-user-link": "代わりにユーザーを検索...",
+ "manual-entry-link": "アドレスを手動で入力..."
+ },
+ "summary": {
+ "title": "転送を確認してレビュー",
+ "description": "進む前に転送の詳細を確認してください",
+ "transfer-title": "転送",
+ "transfer-description": "転送操作の詳細",
+ "asset-label": "資産",
+ "value-label": "金額",
+ "recipient-label": "受取人"
+ }
+ }
+ },
+ "fund": {
+ "transfer-form": {
+ "trigger-label": "転送",
+ "title": "ファンドを転送",
+ "description": "あなたのファンドトークンを別のアドレスに転送します",
+ "button-label": "転送",
+ "amount": {
+ "title": "金額を入力",
+ "description": "転送したい金額を指定してください",
+ "value-label": "金額",
+ "balance-available": "利用可能な残高: {balance}"
+ },
+ "recipients": {
+ "title": "受取人を選択",
+ "description": "トークンを受け取る人を選択してください",
+ "address-label": "受取人アドレス",
+ "address-placeholder": "ユーザーを検索",
+ "search-user-link": "代わりにユーザーを検索...",
+ "manual-entry-link": "アドレスを手動で入力..."
+ },
+ "summary": {
+ "title": "転送を確認してレビュー",
+ "description": "進む前に転送の詳細を確認してください",
+ "transfer-title": "転送",
+ "transfer-description": "転送操作の詳細",
+ "asset-label": "資産",
+ "value-label": "金額",
+ "recipient-label": "受取人"
+ }
+ }
+ },
+ "equity": {
+ "transfer-form": {
+ "trigger-label": "転送",
+ "title": "株式を転送",
+ "description": "あなたの株式トークンを別のアドレスに転送します",
+ "button-label": "転送",
+ "amount": {
+ "title": "金額を入力",
+ "description": "転送したい金額を指定してください",
+ "value-label": "金額",
+ "balance-available": "利用可能な残高: {balance}"
+ },
+ "recipients": {
+ "title": "受取人を選択",
+ "description": "トークンを受け取る人を選択してください",
+ "address-label": "受取人アドレス",
+ "address-placeholder": "ユーザーを検索",
+ "search-user-link": "代わりにユーザーを検索...",
+ "manual-entry-link": "アドレスを手動で入力..."
+ },
+ "summary": {
+ "title": "転送を確認して承認する",
+ "description": "進む前に転送の詳細を確認してください",
+ "transfer-title": "転送",
+ "transfer-description": "転送操作の詳細",
+ "asset-label": "資産",
+ "value-label": "金額",
+ "recipient-label": "受取人"
+ }
+ }
+ },
+ "cryptocurrency": {
+ "transfer-form": {
+ "trigger-label": "転送",
+ "title": "暗号通貨を転送",
+ "description": "暗号通貨トークンを別のアドレスに転送します",
+ "button-label": "転送",
+ "amount": {
+ "title": "金額",
+ "description": "転送したいトークンの金額を入力してください",
+ "amount-label": "金額",
+ "balance-description": "利用可能残高:"
+ },
+ "recipients": {
+ "title": "受取人を選択",
+ "description": "トークンを受け取る人を選択してください",
+ "address-label": "受取人アドレス",
+ "address-placeholder": "ユーザーを検索",
+ "search-user-link": "代わりにユーザーを検索...",
+ "manual-entry-link": "アドレスを手動で入力..."
+ },
+ "summary": {
+ "title": "転送を確認して承認する",
+ "description": "進む前に転送の詳細を確認してください",
+ "transfer-title": "転送",
+ "transfer-description": "転送操作の詳細",
+ "asset-label": "資産",
+ "value-label": "金額",
+ "recipient-label": "受取人"
+ }
+ }
+ },
+ "bond": {
+ "transfer-form": {
+ "trigger-label": "引き換え",
+ "title": "債券を引き換え",
+ "description": "債券トークンを基礎資産に引き換えます。",
+ "button-label": "資産を引き換え",
+ "amount": {
+ "title": "金額を入力",
+ "description": "引き換えたい金額を入力してください。",
+ "amount-label": "金額",
+ "balance-description": "利用可能残高:"
+ },
+ "recipients": {
+ "title": "引き換えを確認して承認する",
+ "description": "進む前に引き換えの詳細を確認してください",
+ "address-label": "引き換え",
+ "address-placeholder": "引き換え操作の詳細",
+ "search-user-link": "資産",
+ "manual-entry-link": "金額"
+ },
+ "summary": {
+ "title": "ポートフォリオ管理",
+ "description": "プロフィール",
+ "transfer-title": "{type} {name} ({symbol})",
+ "transfer-description": "金額",
+ "asset-label": "残高:",
+ "value-label": "転送したい金額を指定してください",
+ "recipient-label": "金額を入力"
+ }
+ },
+ "redeem-form": {
+ "trigger-label": "小数点",
+ "title": "トークンの小数点以下の桁数",
+ "description": "受取人を選択し、金額を指定することで、{type} {name} ({symbol})の金額を簡単に転送できます。",
+ "button-label": "トークンを直接送信するためのウォレットアドレスを入力してください。",
+ "amount": {
+ "title": "受取人を選択",
+ "description": "ウォレットアドレス",
+ "amount-label": "ポートフォリオから資産を選択",
+ "balance-description": "資産"
+ },
+ "summary": {
+ "title": "転送したい資産を選択してください",
+ "description": "資産を選択",
+ "redeem-title": "資産を転送",
+ "redeem-description": "進む前に転送の詳細を確認してください。受取人と金額が正しいことを確認してください。",
+ "asset-label": "転送を確認して承認する",
+ "value-label": "転送"
+ }
+ }
+ }
+ },
+ "settings": {
+ "profile": {
+ "portfolio-management": "転送中...",
+ "title": "ダーク"
+ }
+ },
+ "transfer-form": {
+ "asset-types": "ライト",
+ "amount": {
+ "amount-label": "{mode}モードに切り替え",
+ "balance-description": "システム",
+ "description": "テーマを切り替え",
+ "title": "トランザクションを送信中",
+ "decimals-label": "トランザクションが正常に処理されました",
+ "decimals-description": "トークンの小数点以下の桁数"
+ },
+ "description": "{type} {name} ({symbol}) の金額を受取人を選択し、金額を指定することで簡単に転送できます。",
+ "recipients": {
+ "description": "トークンを直接送信するためのウォレットアドレスを入力してください。",
+ "title": "受取人を選択",
+ "wallet-address-label": "ウォレットアドレス"
+ },
+ "select-asset": {
+ "asset-description": "ポートフォリオから資産を選択",
+ "asset-label": "資産",
+ "description": "転送したい資産を選択してください",
+ "title": "資産を選択",
+ "trigger-label": "資産を転送"
+ },
+ "summary": {
+ "description": "進む前に転送の詳細を確認してください。受取人と金額が正しいことを確認してください。",
+ "title": "転送を確認して確認する"
+ },
+ "transfer": "転送",
+ "transferring": "転送中..."
+ }
+ },
+ "theme": {
+ "dark": "ダーク",
+ "light": "ライト",
+ "switch-to-mode": "{mode} モードに切り替え",
+ "system": "システム",
+ "toggle-label": "テーマを切り替え"
+ },
+ "transactions": {
+ "sending": "トランザクションを送信中",
+ "success": "トランザクションが正常に処理されました"
+ }
+}
diff --git a/examples/ja/src/locales/sv.json b/examples/ja/src/locales/sv.json
new file mode 100644
index 00000000..787bed8d
--- /dev/null
+++ b/examples/ja/src/locales/sv.json
@@ -0,0 +1,2495 @@
+{
+ "admin": {
+ "activity": {
+ "asset-management": "Tillgångshantering",
+ "page-description": "Spåra aktivitet över alla tillgångar.",
+ "page-title": "Tillgångsaktivitet",
+ "tabs": {
+ "recent-transactions": "Senaste transaktioner",
+ "all-events": "Alla händelser"
+ },
+ "view-all": "Visa alla transaktioner i utforskaren"
+ },
+ "bonds": {
+ "burn-form": {
+ "amount": {
+ "amount-label": "Belopp",
+ "available-balance": "Tillgängligt saldo: {balance}",
+ "description": "Ange det belopp du vill bränna.",
+ "title": "Ange belopp"
+ },
+ "button-label": "Bränn tillgångar",
+ "description": "Ta bort obligations tokens permanent från cirkulation för att minska utbudet.",
+ "summary": {
+ "amount-label": "Belopp",
+ "asset-label": "Tillgång",
+ "burn-description": "Detaljer om bränningsoperationen",
+ "burn-title": "Bränn",
+ "description": "Verifiera detaljerna för din bränning innan du fortsätter.",
+ "title": "Granska och bekräfta bränning"
+ },
+ "title": "Bränn",
+ "trigger-label": "Bränn"
+ },
+ "charts": {
+ "asset-statistics-title": "Tillgångsstatistik"
+ },
+ "create-form": {
+ "basics": {
+ "decimals-label": "Decimaler",
+ "description": "Ange grundläggande detaljer om obligationen",
+ "isin-label": "ISIN",
+ "isin-placeholder": "t.ex. US000000AA00",
+ "name-label": "Tillgångens namn",
+ "name-placeholder": "t.ex. Företag XYZ Obligation 2023",
+ "symbol-label": "Symbol",
+ "symbol-placeholder": "t.ex. XYZ23",
+ "title": "Grundläggande information"
+ },
+ "button-label": "Utfärda en ny obligation",
+ "configuration": {
+ "cap-description": "Maximalt antal tokens som kan utfärdas",
+ "cap-label": "Maximalt utbud",
+ "description": "Konfigurera egenskaperna för obligationen",
+ "face-value-description": "Nominellt värde av en enskild obligationsenhet",
+ "face-value-label": "Nominellt värde",
+ "maturity-date-label": "Förfallodatum",
+ "title": "Obligationskonfiguration",
+ "underlying-asset-description": "Adress till den tillgång som stöder denna obligation",
+ "underlying-asset-label": "Underliggande tillgång"
+ },
+ "description": "Utfärda en ny obligation på blockkedjan",
+ "summary": {
+ "asset-basics-description": "Grundläggande information om obligationen",
+ "asset-basics-title": "Grundläggande information",
+ "cap-label": "Maximalt utbud",
+ "configuration-description": "Teknisk konfiguration av obligationen",
+ "configuration-title": "Obligationskonfiguration",
+ "decimals-label": "Decimaler",
+ "description": "Granska obligationsdetaljerna innan du skapar",
+ "face-value-label": "Nominellt värde",
+ "isin-label": "ISIN",
+ "maturity-date-label": "Förfallodatum",
+ "name-label": "Namn",
+ "symbol-label": "Symbol",
+ "title": "Granska och bekräfta",
+ "underlying-asset-label": "Underliggande tillgång",
+ "error-duplicate": "En obligation med samma detaljer finns redan. Vänligen försök igen med minst en annan parameter."
+ },
+ "title": "Skapa ny obligation",
+ "trigger-label": "Utfärda en ny obligation"
+ },
+ "details": {
+ "bond-details-description": "Detaljer för obligationen",
+ "contract-address": "Kontraktsadress",
+ "creator": "Skapare",
+ "decimals": "Decimaler",
+ "details-page-description": "Utforska omfattande data och mätvärden för {name}.",
+ "details-page-title": "{name} Detaljer",
+ "isin": "ISIN",
+ "name": "Namn",
+ "ownership-concentration": "Ägar koncentration",
+ "ownership-concentration-info": "Procentandel ägd av de 5 största innehavarna",
+ "symbol": "Symbol",
+ "total-supply": "Totalt utbud",
+ "total-supply-info": "Det totala utbudet av token"
+ },
+ "events": {
+ "events-page-description": "Spåra alla händelser relaterade till {name} obligation.",
+ "events-page-title": "{name} Händelser"
+ },
+ "grant-role-form": {
+ "address": {
+ "address-label": "Admin plånboksadress",
+ "description": "Sök efter en användare med deras namn eller e-post, eller ange manuellt en plånboksadress.",
+ "manual-placeholder": "0x0000000000000000000000000000000000000000",
+ "manual-toggle": "Ange adress manuellt...",
+ "search-placeholder": "Sök efter en användare",
+ "search-toggle": "Sök istället efter en användare...",
+ "title": "Välj ny administratör"
+ },
+ "button-label": "Tilldela roller",
+ "description": "Tilldela administrativa behörigheter till en ny användare.",
+ "roles": {
+ "description": "Välj roller att bevilja till den nya administratören. Minst en roll måste väljas.",
+ "title": "Välj adminroller"
+ },
+ "summary": {
+ "admin-address-label": "Adminadress",
+ "asset-label": "Tillgång",
+ "description": "Verifiera detaljerna för din rolltilldelning innan du fortsätter.",
+ "grant-description": "Detaljer om tilldelning av rolloperation",
+ "grant-title": "Tilldela roll",
+ "roles-label": "Roller",
+ "title": "Granska och bekräfta rolltilldelning"
+ },
+ "title": "Tilldela roll"
+ },
+ "manage": {
+ "actions": {
+ "mint": "Prägla",
+ "burn": "Bränn",
+ "pause": "Pausa",
+ "unpause": "Återuppta",
+ "grant-role": "Tilldela roll",
+ "top-up": "Topp upp underliggande tillgång",
+ "withdraw": "Ta ut underliggande tillgång",
+ "mature": "Mognad"
+ },
+ "manage": "Hantera"
+ },
+ "mint-form": {
+ "amount": {
+ "amount-label": "Belopp",
+ "description": "Ange det belopp du vill prägla.",
+ "title": "Ange belopp"
+ },
+ "recipients": {
+ "title": "Välj mottagare",
+ "description": "Välj vem som ska ta emot de präglade token"
+ },
+ "button-label": "Prägla tillgångar",
+ "description": "Utfärda nya token för att öka obligationens cirkulerande utbud.",
+ "summary": {
+ "amount-label": "Belopp",
+ "asset-label": "Tillgång",
+ "description": "Verifiera detaljerna för din präglingsoperation innan du fortsätter.",
+ "mint-description": "Detaljer för präglingsoperation",
+ "mint-title": "Prägla",
+ "title": "Granska och bekräfta präglingsoperation"
+ },
+ "title": "Prägla",
+ "trigger-label": "Prägla"
+ },
+ "pause-form": {
+ "pause": {
+ "button-label": "Pausa transaktioner",
+ "description": "Tillfälligt stoppa alla transaktioner och interaktioner för denna obligation.",
+ "title": "Pausa obligations transaktioner"
+ },
+ "summary": {
+ "asset-label": "Tillgång",
+ "current-state-label": "Aktuellt tillstånd",
+ "description": "Verifiera detaljerna för din pausoperation innan du fortsätter.",
+ "pause-description": "Detaljer för pausoperation",
+ "pause-title": "Pausa",
+ "state-active": "Aktiv",
+ "state-paused": "Pausad",
+ "target-state-label": "Måltillstånd",
+ "title": "Granska och bekräfta pausoperation"
+ },
+ "unpause": {
+ "button-label": "Återuppta transaktioner",
+ "description": "Återuppta transaktioner och interaktioner för denna obligation.",
+ "title": "Återuppta obligations transaktioner"
+ }
+ },
+ "related-actions": {
+ "decrease-supply": {
+ "description": "En obligationsförvaltare kan minska det totala utbudet genom inlösen av obligationer vid förfall eller program för tidig återköp.",
+ "title": "Lösa in obligationer"
+ },
+ "increase-supply": {
+ "description": "En obligationsförvaltare kan utfärda nya obligationer genom primärutgivning eller tap-utgivning med definierat nominellt värde och förfall.",
+ "title": "Utfärda obligationer"
+ },
+ "title": "Relaterade åtgärder"
+ },
+ "table": {
+ "actions-header": "Åtgärder",
+ "address-header": "Adress",
+ "asset-management": "Tillgångshantering",
+ "name-header": "Namn",
+ "page-description": "Skapa, visa och hantera obligations tillgångar på blockchain",
+ "page-title": "Obligationshantering",
+ "private-header": "Privat",
+ "private-status": "Privat",
+ "public-status": "Offentlig",
+ "related-actions": {
+ "issue-new": {
+ "description": "Skapa och lansera en ny obligation med definierat förfall, kupongräntor och nominellt värde. Effektivisera obligationsutgivning med automatiserade räntebetalningar och inlösenscheman.",
+ "title": "Utfärda ny obligation"
+ },
+ "mechanics": {
+ "button": "Läs mer",
+ "description": "Lär dig hur du hanterar obligationsparametrar, räntefördelningar, förfallodatum och inlösensprocesser för räntebärande värdepapper.",
+ "title": "Obligationsmekanik"
+ },
+ "title": "Relaterade åtgärder",
+ "usecases": {
+ "button": "Utforska",
+ "description": "Utforska tillämpningar på räntebärande marknader, från företags skuld till strukturerade produkter. Maximera effektiviteten i räntebetalningar, förvaltningshantering och efterlevnad av regler.",
+ "title": "Obligationsanvändningar"
+ }
+ },
+ "status-header": "Status",
+ "symbol-header": "Symbol",
+ "topinfo-description": "Digitala obligationer representerar traditionella räntebärande värdepapper på ett säkert sätt på blockchain, stödda av verkliga säkerheter. De kombinerar blockchain-transparens med förutsägbara avkastningar, inlösen vid förfall och automatiserad avkastningsdistribution. Denna obligations tillgång säkerställer säker utgivning, exakt förvaltningshantering, omfattande efterlevnadsförmågor och investerarevänliga inlösensprocesser skräddarsydda specifikt för finansiella institutioner.",
+ "topinfo-title": "En digital räntebärande värdepappers tillgång",
+ "total-supply-header": "Totalt utbud"
+ },
+ "tabs": {
+ "details": "Detaljer",
+ "events": "Händelser",
+ "holders": "Innehavare",
+ "permissions": "Behörigheter"
+ },
+ "top-up-form": {
+ "trigger-label": "Fyll på",
+ "title": "Fyll på underliggande tillgång",
+ "description": "Lägg till mer underliggande tillgång till din obligation",
+ "button-label": "Fyll på",
+ "steps": {
+ "amount": {
+ "title": "Ange belopp",
+ "description": "Ange det belopp som ska fyllas på den underliggande tillgången.",
+ "amount": {
+ "label": "Belopp",
+ "description": "Ange beloppet som ska fyllas på"
+ }
+ },
+ "summary": {
+ "title": "Granska och bekräfta påfyllning",
+ "description": "Verifiera detaljerna för din påfyllning innan du fortsätter.",
+ "amount-label": "Belopp",
+ "asset-label": "Underliggande tillgång",
+ "pincode": {
+ "label": "PIN-kod",
+ "description": "Ange din PIN-kod för att bekräfta transaktionen"
+ }
+ }
+ }
+ },
+ "withdraw-form": {
+ "trigger-label": "Ta ut",
+ "title": "Ta ut underliggande tillgång",
+ "description": "Ta ut underliggande tillgång från din obligation",
+ "button-label": "Ta ut",
+ "steps": {
+ "recipient": {
+ "title": "Välj mottagare",
+ "description": "Välj vem som ska ta emot den underliggande tillgången.",
+ "label": "Mottagare",
+ "placeholder": "Sök efter en användare eller ange adress",
+ "search-instead": "Sök efter en användare istället...",
+ "manual-instead": "Ange adress manuellt..."
+ },
+ "amount": {
+ "title": "Ange belopp",
+ "description": "Ange det belopp som ska tas ut.",
+ "amount": {
+ "label": "Belopp",
+ "description": "Ange beloppet som ska tas ut"
+ }
+ },
+ "summary": {
+ "title": "Granska och bekräfta uttag",
+ "description": "Verifiera detaljerna för ditt uttag innan du fortsätter.",
+ "recipient-label": "Mottagare",
+ "amount-label": "Belopp",
+ "asset-label": "Underliggande tillgång",
+ "pincode": {
+ "label": "PIN-kod",
+ "description": "Ange din PIN-kod för att bekräfta transaktionen"
+ }
+ }
+ }
+ },
+ "mature-form": {
+ "trigger-label": "Mognad",
+ "title": "Mogen obligation",
+ "description": "Mognad din obligation och ta emot den underliggande tillgången",
+ "button-label": "Mognad Obligation",
+ "summary": {
+ "title": "Granska och bekräfta mognad",
+ "description": "Verifiera detaljerna för din obligationsmognad innan du fortsätter.",
+ "mature-title": "Mognad",
+ "mature-description": "Detaljer om obligationsmognad",
+ "asset-label": "Obligation"
+ }
+ }
+ },
+ "cryptocurrencies": {
+ "burn-form": {
+ "amount": {
+ "amount-label": "Belopp",
+ "available-balance": "Tillgängligt saldo: {balance}",
+ "description": "Ange det belopp du vill bränna.",
+ "title": "Ange belopp"
+ },
+ "button-label": "Bränn tillgångar",
+ "description": "Ta bort tokens permanent från cirkulation för att minska utbudet.",
+ "summary": {
+ "amount-label": "Belopp",
+ "asset-label": "Tillgång",
+ "burn-description": "Detaljer om bränningsoperation",
+ "burn-title": "Bränn",
+ "description": "Verifiera detaljerna för din bränning innan du fortsätter.",
+ "title": "Granska och bekräfta bränning"
+ },
+ "title": "Bränn",
+ "trigger-label": "Bränn"
+ },
+ "charts": {
+ "asset-statistics-title": "Tillgångsstatistik"
+ },
+ "create-form": {
+ "basics": {
+ "decimals-label": "Decimaler",
+ "description": "Definiera viktiga detaljer såsom namn, symbol och synlighet.",
+ "isin-label": "ISIN",
+ "isin-placeholder": "CRYPTO123456",
+ "name-label": "Namn",
+ "name-placeholder": "Bitcoin",
+ "symbol-label": "Symbol",
+ "symbol-placeholder": "BTC",
+ "title": "Grundläggande information"
+ },
+ "button-label": "Utfärda en ny kryptovaluta",
+ "configuration": {
+ "description": "Specificera avancerade inställningar för din kryptovaluta.",
+ "initial-supply-description": "Antalet tokens att prägla vid skapandet",
+ "initial-supply-label": "Initialt utbud",
+ "title": "Konfiguration"
+ },
+ "description": "Definiera och lansera en ny kryptovaluta tillgång.",
+ "summary": {
+ "asset-basics-description": "Grundläggande tillgångsinformation och inställningar.",
+ "asset-basics-title": "Tillgångsgrunder",
+ "configuration-description": "Tillgångsutbud och ytterligare inställningar.",
+ "configuration-title": "Konfiguration",
+ "decimals-label": "Decimaler",
+ "description": "Granska och bekräfta detaljerna för din nya kryptovaluta innan skapandet.",
+ "initial-supply-label": "Initialt utbud",
+ "isin-label": "ISIN",
+ "name-label": "Namn",
+ "no": "Nej",
+ "private-label": "Privat",
+ "symbol-label": "Symbol",
+ "title": "Granska och bekräfta",
+ "yes": "Ja",
+ "error-duplicate": "En kryptovaluta med samma detaljer finns redan. Försök igen med minst en annan parameter."
+ },
+ "title": "Skapa kryptovaluta",
+ "trigger-label": "Utfärda en ny kryptovaluta"
+ },
+ "details": {
+ "contract-address": "Kontraktsadress",
+ "creator": "Skapare",
+ "cryptocurrency-details-description": "Detaljer för kryptovalutan",
+ "decimals": "Decimaler",
+ "details-page-description": "Utforska omfattande data och mätvärden för {name}.",
+ "details-page-title": "{name} Detaljer",
+ "name": "Namn",
+ "ownership-concentration": "Ägar koncentration",
+ "ownership-concentration-info": "Procentandel ägd av de 5 största innehavarna",
+ "symbol": "Symbol",
+ "total-supply": "Totalt utbud",
+ "total-supply-info": "Det totala utbudet av token"
+ },
+ "events": {
+ "events-page-description": "Spåra historiska aktiviteter och transaktioner som involverar {name}.",
+ "events-page-title": "{name} Händelser"
+ },
+ "grant-role-form": {
+ "address": {
+ "address-label": "Admin plånboksadress",
+ "description": "Sök efter en användare med deras namn eller e-post, eller ange en plånboksadress manuellt.",
+ "manual-placeholder": "0x0000000000000000000000000000000000000000",
+ "manual-toggle": "Ange adress manuellt...",
+ "search-placeholder": "Sök efter en användare",
+ "search-toggle": "Sök efter en användare istället...",
+ "title": "Välj ny administratör"
+ },
+ "button-label": "Tilldela roller",
+ "description": "Tilldela administrativa behörigheter till en ny användare.",
+ "roles": {
+ "description": "Välj de roller som ska beviljas den nya administratören. Minst en roll måste väljas.",
+ "title": "Välj adminroller"
+ },
+ "summary": {
+ "admin-address-label": "Adminadress",
+ "asset-label": "Tillgång",
+ "description": "Verifiera detaljerna för din rollbeviljande innan du fortsätter.",
+ "grant-description": "Detaljer om beviljande av rolloperation",
+ "grant-title": "Bevilja roll",
+ "roles-label": "Roller",
+ "title": "Granska och bekräfta rollbeviljande"
+ },
+ "title": "Bevilja roll"
+ },
+ "manage": {
+ "actions": {
+ "grant-role": "Bevilja roll",
+ "mint": "Prägla"
+ },
+ "manage": "Hantera"
+ },
+ "mint-form": {
+ "amount": {
+ "amount-label": "Belopp",
+ "description": "Ange det belopp du vill prägla.",
+ "title": "Ange belopp"
+ },
+ "recipients": {
+ "title": "Välj mottagare",
+ "description": "Välj vem som ska ta emot de präglade tokens"
+ },
+ "button-label": "Prägla tillgångar",
+ "description": "Utfärda nya tokens för att öka kryptovalutans cirkulerande utbud.",
+ "summary": {
+ "amount-label": "Belopp",
+ "asset-label": "Tillgång",
+ "description": "Verifiera detaljerna för din prägling innan du fortsätter.",
+ "mint-description": "Detaljer om myntningsoperationer",
+ "mint-title": "Mynta",
+ "title": "Granska och bekräfta myntning"
+ },
+ "title": "Mynta",
+ "trigger-label": "Mynta"
+ },
+ "related-actions": {
+ "increase-supply": {
+ "description": "En tokenhanterare kan mynta nya tokens enligt tokenomics-planen och emissionsschemat.",
+ "title": "Mynta tokens"
+ },
+ "title": "Relaterade åtgärder"
+ },
+ "table": {
+ "actions-header": "Åtgärder",
+ "address-header": "Adress",
+ "asset-management": "Tillgångshantering",
+ "name-header": "Namn",
+ "page-description": "Översikt och administrativa åtgärder för dina kryptovaluta-tillgångar.",
+ "page-title": "Kryptovalutor",
+ "private-header": "Privat",
+ "private-status": "Privat",
+ "public-status": "Offentlig",
+ "related-actions": {
+ "issue-new": {
+ "description": "Skapa och lansera en ny kryptovalutatoken med anpassningsbara parametrar och säkerhetsfunktioner. Effektivisera tokenutplacering med konfigurerbara leveransmekanismer och överföringskontroller.",
+ "title": "Utfärda ny kryptovaluta"
+ },
+ "mechanics": {
+ "button": "Lär dig mer",
+ "description": "Lär dig hur du hanterar tokenekonomi, leveranskontroller, överföringsbegränsningar och säkerhetsfunktioner för din kryptovaluta.",
+ "title": "Tokenmekanik"
+ },
+ "title": "Relaterade åtgärder",
+ "usecases": {
+ "button": "Utforska",
+ "description": "Utforska applikationer inom digitala betalningar, belöningssystem och tokeniserade tjänster. Maximera nyttan genom programmerbara transaktioner och säkerhetsfunktioner av institutionell kvalitet.",
+ "title": "Kryptovaluta-användningsfall"
+ }
+ },
+ "symbol-header": "Symbol",
+ "topinfo-description": "Kryptovaluta-tillgångar är anpassningsbara digitala instrument som erbjuder kontrollerad myntning, robust säkerhet och fullständig efterlevnad av regler, idealiska för institutionellt bruk. De effektiviserar finansiella operationer genom programmerbara transaktioner, ökad transparens och integrerade meta-transaktioner för förbättrad användbarhet. Nyckelfunktioner inkluderar rollbaserad åtkomsthantering, säker utfärdande och enkel integration i institutionella betalningsprocesser.",
+ "topinfo-title": "En anpassningsbar och säker digital tillgång",
+ "total-supply-header": "Total tillgång"
+ },
+ "tabs": {
+ "details": "Detaljer",
+ "events": "Händelser",
+ "holders": "Innehavare",
+ "permissions": "Behörigheter",
+ "underlying-assets": "Underliggande tillgångar"
+ }
+ },
+ "dashboard": {
+ "charts": {
+ "asset-activity": {
+ "burn": "Bränn",
+ "description": "Tillgångsaktivitet",
+ "mint": "Mynta",
+ "title": "Tillgångsaktivitet",
+ "transfer": "Överför"
+ },
+ "asset-types": {
+ "bonds": "Obligationer",
+ "cryptocurrencies": "Kryptovalutor",
+ "equities": "Aktier",
+ "funds": "Fonder",
+ "stablecoins": "Stabila mynt"
+ },
+ "assets-supply": {
+ "description": "Tillgångar leverans",
+ "label": "Tillgångar",
+ "title": "Tillgångar leverans"
+ },
+ "transaction-history": {
+ "description": "Transaktionshistorik",
+ "label": "Transaktioner",
+ "title": "Transaktionshistorik"
+ },
+ "users-history": {
+ "description": "Användarhistorik",
+ "label": "Användare",
+ "title": "Användarhistorik"
+ }
+ },
+ "page": {
+ "asset-management": "Tillgångshantering",
+ "description": "Välkommen till instrumentpanelen",
+ "latest-events-heading": "Senaste händelser",
+ "my-portfolio": "Min portfölj",
+ "stats-heading": "Statistik",
+ "title": "Instrumentpanel"
+ },
+ "table": {
+ "latest-events": {
+ "view-all": "Visa alla"
+ }
+ },
+ "widgets": {
+ "assets": {
+ "label": "Tillgångar",
+ "subtext": "{bonds} obligationer {cryptocurrencies} kryptovalutor, {equities} aktier, {funds} fonder, {stableCoins} stabila mynt"
+ },
+ "transactions": {
+ "label": "Transaktioner",
+ "subtext": "{count} transaktioner bearbetade under de senaste {days} dagarna"
+ },
+ "users": {
+ "label": "Användare",
+ "subtext": "{count} användare under de senaste {days} dagarna"
+ }
+ }
+ },
+ "equities": {
+ "burn-form": {
+ "amount": {
+ "amount-label": "Belopp",
+ "available-balance": "Tillgängligt saldo: {balance}",
+ "description": "Ange det belopp du vill bränna.",
+ "title": "Ange belopp"
+ },
+ "button-label": "Bränn tillgångar",
+ "description": "Ta permanent bort aktietokens från cirkulation för att minska tillgången.",
+ "summary": {
+ "amount-label": "Belopp",
+ "asset-label": "Tillgång",
+ "burn-description": "Detaljer om bränningsoperationer",
+ "burn-title": "Bränn",
+ "description": "Verifiera detaljerna för din bränning innan du fortsätter.",
+ "title": "Granska och bekräfta bränning"
+ },
+ "title": "Bränn",
+ "trigger-label": "Bränn"
+ },
+ "charts": {
+ "asset-statistics-title": "Tillgångsstatistik"
+ },
+ "create-form": {
+ "basics": {
+ "decimals-label": "Decimaler",
+ "description": "Definiera viktiga detaljer som namn, symbol och synlighet.",
+ "isin-label": "ISIN",
+ "isin-placeholder": "US1234567890",
+ "name-label": "Namn",
+ "name-placeholder": "Global Equity",
+ "symbol-label": "Symbol",
+ "symbol-placeholder": "GLEQ",
+ "title": "Grundläggande information"
+ },
+ "button-label": "Utfärda en ny aktie",
+ "configuration": {
+ "category-blend-equity": "Blanda aktier",
+ "category-communication-services": "Kommunikationstjänster",
+ "category-consumer-discretionary": "Konsumentdiskretionära varor",
+ "category-consumer-staples": "Konsumentvaror",
+ "category-convertible-preferred-stock": "Konvertibla preferensaktier",
+ "category-cumulative-preferred-stock": "Kumulativa preferensaktier",
+ "category-distressed-equity": "Nödlidande aktier",
+ "category-domestic-equity": "Inhemska aktier",
+ "category-dual-class-shares": "Dubbla aktieslag",
+ "category-emerging-market-equity": "Tillväxtmarknadsaktier",
+ "category-energy": "Energi",
+ "category-esop-shares": "Aktieägarplan (ESOP) aktier",
+ "category-financials": "Finans",
+ "category-frontier-market-equity": "Gränsmarknadsaktier",
+ "category-global-equity": "Global aktie",
+ "category-growth-capital": "Tillväxtkapital",
+ "category-growth-equity": "Tillväxtaktier",
+ "category-healthcare": "Hälsovård",
+ "category-income-equity": "Inkomstaktier",
+ "category-industrials": "Industrier",
+ "category-international-equity": "Internationella aktier",
+ "category-large-cap-equity": "Stora aktier",
+ "category-leveraged-buyouts": "Belånade uppköp (LBO)",
+ "category-materials": "Material",
+ "category-mezzanine-financing": "Mezzaninefinansiering",
+ "category-micro-cap-equity": "Mikroaktier",
+ "category-mid-cap-equity": "Medelstora aktier",
+ "category-non-cumulative-preferred-stock": "Icke-kumulativa preferensaktier",
+ "category-non-voting-common-stock": "Icke-röstberättigade stamaktier",
+ "category-real-estate": "Fastigheter",
+ "category-redeemable-preferred-stock": "Inlösbara preferensaktier",
+ "category-restricted-stock": "Begränsade aktier",
+ "category-small-cap-equity": "Små aktier",
+ "category-technology": "Teknologi",
+ "category-tracking-stocks": "Spårningsaktier",
+ "category-utilities": "Verktyg",
+ "category-value-equity": "Värdeaktier",
+ "category-venture-capital": "Riskkapital",
+ "category-voting-common-stock": "Röstberättigade stamaktier",
+ "class-common-equity": "Vanliga aktier",
+ "class-geographic-equity": "Geografiska aktier",
+ "class-investment-stage-private-equity": "Investeringsstadium (Private Equity)",
+ "class-investment-style-equity": "Investeringsstil aktier",
+ "class-market-capitalization-equity": "Marknadskapitalisering aktier",
+ "class-preferred-equity": "Preferensaktier",
+ "class-sector-industry-equity": "Sektor/Bransch aktier",
+ "class-special-classes-equity": "Speciella aktieslag",
+ "description": "Konfigurera detaljer för aktieklassificering",
+ "equity-category-label": "Aktiekategori",
+ "equity-class-label": "Aktieslag",
+ "title": "Konfiguration"
+ },
+ "description": "Utfärda en ny aktie på blockkedjan",
+ "summary": {
+ "asset-basics-description": "Grundläggande tillgångsinformation och inställningar.",
+ "asset-basics-title": "Tillgångsgrundläggande",
+ "category-blend-equity": "Blandade aktier",
+ "category-communication-services": "Kommunikationstjänster",
+ "category-consumer-discretionary": "Konsumentdiskretionära varor",
+ "category-consumer-staples": "Konsumentvaror",
+ "category-convertible-preferred-stock": "Konvertibla preferensaktier",
+ "category-cumulative-preferred-stock": "Kumulativa preferensaktier",
+ "category-distressed-equity": "Nödlidande aktier",
+ "category-domestic-equity": "Inhemska aktier",
+ "category-dual-class-shares": "Dubbla aktieslag",
+ "category-emerging-market-equity": "Tillväxtmarknadsaktier",
+ "category-energy": "Energi",
+ "category-esop-shares": "Aktieägarplan (ESOP) aktier",
+ "category-financials": "Finans",
+ "category-frontier-market-equity": "Gränsmarknadsaktier",
+ "category-global-equity": "Global aktie",
+ "category-growth-capital": "Tillväxtkapital",
+ "category-growth-equity": "Tillväxtaktier",
+ "category-healthcare": "Hälsovård",
+ "category-income-equity": "Inkomstaktier",
+ "category-industrials": "Industrier",
+ "category-international-equity": "Internationella aktier",
+ "category-large-cap-equity": "Stora aktier",
+ "category-leveraged-buyouts": "Belånade uppköp (LBO)",
+ "category-materials": "Material",
+ "category-mezzanine-financing": "Mezzaninefinansiering",
+ "category-micro-cap-equity": "Mikroaktier",
+ "category-mid-cap-equity": "Medelstora aktier",
+ "category-non-cumulative-preferred-stock": "Icke-kumulativa preferensaktier",
+ "category-non-voting-common-stock": "Icke-röstberättigade stamaktier",
+ "category-real-estate": "Fastigheter",
+ "category-redeemable-preferred-stock": "Inlösbara preferensaktier",
+ "category-restricted-stock": "Begränsade aktier",
+ "category-small-cap-equity": "Små aktier",
+ "category-technology": "Teknologi",
+ "category-tracking-stocks": "Spårningsaktier",
+ "category-utilities": "Verktyg",
+ "category-value-equity": "Värdeaktier",
+ "category-venture-capital": "Riskkapital",
+ "category-voting-common-stock": "Röstberättigade stamaktier",
+ "class-common-equity": "Vanliga aktier",
+ "class-geographic-equity": "Geografiska aktier",
+ "class-investment-stage-private-equity": "Investeringsstadium (Private Equity)",
+ "class-investment-style-equity": "Investeringsstil aktier",
+ "class-market-capitalization-equity": "Marknadskapitalisering aktier",
+ "class-preferred-equity": "Preferensaktier",
+ "class-sector-industry-equity": "Sektor/Bransch aktier",
+ "class-special-classes-equity": "Speciella aktieslag",
+ "configuration-description": "Detaljer om aktieklassificering.",
+ "configuration-title": "Konfiguration",
+ "decimals-label": "Decimaler",
+ "description": "Granska och bekräfta detaljerna för din nya aktie innan skapande.",
+ "equity-category-label": "Aktiekategori",
+ "equity-class-label": "Aktieslag",
+ "isin-label": "ISIN",
+ "name-label": "Namn",
+ "symbol-label": "Symbol",
+ "title": "Granska och bekräfta",
+ "error-duplicate": "En aktie med samma detaljer finns redan. Vänligen försök igen med minst en annan parameter."
+ },
+ "title": "Skapa ny aktie",
+ "trigger-label": "Prägla"
+ },
+ "details": {
+ "contract-address": "Kontraktsadress",
+ "creator": "Skapare",
+ "decimals": "Decimaler",
+ "details-page-description": "Utforska omfattande data och mätvärden för {name}.",
+ "details-page-title": "{name} Detaljer",
+ "equity-details-description": "Detaljer för aktien",
+ "isin": "ISIN",
+ "name": "Namn",
+ "ownership-concentration": "Ägandekoncentration",
+ "ownership-concentration-info": "Procentandel ägd av de 5 största innehavarna",
+ "symbol": "Symbol",
+ "total-supply": "Total utbud",
+ "total-supply-info": "Det totala utbudet av token"
+ },
+ "events": {
+ "events-page-description": "Spåra alla händelser relaterade till {name} aktie.",
+ "events-page-title": "{name} Händelser"
+ },
+ "grant-role-form": {
+ "address": {
+ "address-label": "Admin plånboksadress",
+ "description": "Sök efter en användare med deras namn eller e-post, eller ange en plånboksadress manuellt.",
+ "manual-placeholder": "0x0000000000000000000000000000000000000000",
+ "manual-toggle": "Ange adress manuellt...",
+ "search-placeholder": "Sök efter en användare",
+ "search-toggle": "Sök istället efter en användare...",
+ "title": "Välj Ny Admin"
+ },
+ "button-label": "Tilldela Roller",
+ "description": "Tilldela administrativa behörigheter till en ny användare.",
+ "roles": {
+ "description": "Välj de roller som ska beviljas till den nya administratören. Minst en roll måste väljas.",
+ "title": "Välj Admin Roller"
+ },
+ "summary": {
+ "admin-address-label": "Admin Adress",
+ "asset-label": "Tillgång",
+ "description": "Verifiera detaljerna för din rolltilldelning innan du fortsätter.",
+ "grant-description": "Detaljer för rolltilldelningsoperation",
+ "grant-title": "Bevilja Roll",
+ "roles-label": "Roller",
+ "title": "Granska och bekräfta rolltilldelning"
+ },
+ "title": "Bevilja Roll"
+ },
+ "manage": {
+ "actions": {
+ "mint": "Prägla",
+ "burn": "Bränna",
+ "pause": "Pausa",
+ "unpause": "Återuppta",
+ "grant-role": "Bevilja roll"
+ },
+ "manage": "Hantera"
+ },
+ "mint-form": {
+ "amount": {
+ "amount-label": "Belopp",
+ "description": "Ange det belopp du vill prägla.",
+ "title": "Ange Belopp"
+ },
+ "recipients": {
+ "title": "Välj Mottagare",
+ "description": "Välj vem som ska ta emot de präglade token"
+ },
+ "button-label": "Prägla Tillgångar",
+ "description": "Utfärda nya token för att öka aktiens cirkulerande utbud.",
+ "summary": {
+ "amount-label": "Belopp",
+ "asset-label": "Tillgång",
+ "description": "Verifiera detaljerna för din prägling innan du fortsätter.",
+ "mint-description": "Detaljer för präglingoperation",
+ "mint-title": "Prägla",
+ "title": "Granska och bekräfta prägling"
+ },
+ "title": "Prägla",
+ "trigger-label": "Prägla"
+ },
+ "pause-form": {
+ "pause": {
+ "button-label": "Pausa Transaktioner",
+ "description": "Tillfälligt stoppa alla transaktioner och interaktioner för denna aktie.",
+ "title": "Pausa Aktie Transaktioner"
+ },
+ "summary": {
+ "asset-label": "Tillgång",
+ "current-state-label": "Aktuellt tillstånd",
+ "description": "Verifiera detaljerna för din pausoperation innan du fortsätter.",
+ "pause-description": "Pausoperation detaljer",
+ "pause-title": "Pausa",
+ "state-active": "Aktiv",
+ "state-paused": "Pausad",
+ "target-state-label": "Mål tillstånd",
+ "title": "Granska och bekräfta pausoperation"
+ },
+ "unpause": {
+ "button-label": "Återuppta Transaktioner",
+ "description": "Återuppta transaktioner och interaktioner för denna aktie.",
+ "title": "Återuppta Aktie Transaktioner"
+ }
+ },
+ "related-actions": {
+ "decrease-supply": {
+ "description": "En aktiechef kan minska det totala utbudet av aktier genom ett återköpsprogram eller kapitalminskning.",
+ "title": "Minska Aktiesupply"
+ },
+ "increase-supply": {
+ "description": "En aktiechef kan utfärda nya aktier genom olika mekanismer som rättighetsutgivningar, privata placeringar eller aktiesplitter.",
+ "title": "Utfärda Nya Aktier"
+ },
+ "title": "Relaterade åtgärder"
+ },
+ "table": {
+ "actions-header": "Åtgärder",
+ "address-header": "Adress",
+ "asset-management": "Tillgångshantering",
+ "category-blend-equity": "Blanda Aktie",
+ "category-communication-services": "Kommunikationstjänster",
+ "category-consumer-discretionary": "Konsumentdiskretionära varor",
+ "category-consumer-staples": "Konsumentvaror",
+ "category-convertible-preferred-stock": "Konvertibla Preferensaktier",
+ "category-cumulative-preferred-stock": "Kumulativa Preferensaktier",
+ "category-distressed-equity": "Nödlidande Aktie",
+ "category-domestic-equity": "Inhemsk Aktie",
+ "category-dual-class-shares": "Dual-Class Aktier",
+ "category-emerging-market-equity": "Framväxande Marknadsaktier",
+ "category-energy": "Energi",
+ "category-esop-shares": "Anställd Aktiebesittningsplan (ESOP) Aktier",
+ "category-financials": "Finans",
+ "category-frontier-market-equity": "Gränsmarknadsaktier",
+ "category-global-equity": "Global Aktie",
+ "category-growth-capital": "Tillväxtkapital",
+ "category-growth-equity": "Tillväxtkapital",
+ "category-header": "Aktiekategori",
+ "category-healthcare": "Sjukvård",
+ "category-income-equity": "Inkomstkapital",
+ "category-industrials": "Industrier",
+ "category-international-equity": "Internationellt kapital",
+ "category-large-cap-equity": "Stora företag",
+ "category-leveraged-buyouts": "Belånade uppköp (LBO)",
+ "category-materials": "Material",
+ "category-mezzanine-financing": "Mezzaninefinansiering",
+ "category-micro-cap-equity": "Mikroföretag",
+ "category-mid-cap-equity": "Medelstora företag",
+ "category-non-cumulative-preferred-stock": "Icke-kumulativ preferensaktie",
+ "category-non-voting-common-stock": "Icke-röstberättigad stamaktie",
+ "category-real-estate": "Fastigheter",
+ "category-redeemable-preferred-stock": "Inlösenpreferensaktie",
+ "category-restricted-stock": "Begränsad aktie",
+ "category-small-cap-equity": "Små företag",
+ "category-technology": "Teknik",
+ "category-tracking-stocks": "Spårningsaktier",
+ "category-utilities": "Verktyg",
+ "category-value-equity": "Värdeaktier",
+ "category-venture-capital": "Riskkapital",
+ "category-voting-common-stock": "Röstberättigad stamaktie",
+ "class-common-equity": "Stamaktier",
+ "class-geographic-equity": "Geografiskt kapital",
+ "class-header": "Aktieklass",
+ "class-investment-stage-private-equity": "Investeringsstadium (Private Equity)",
+ "class-investment-style-equity": "Investeringsstil kapital",
+ "class-market-capitalization-equity": "Marknadskapitalisering kapital",
+ "class-preferred-equity": "Preferenskapital",
+ "class-sector-industry-equity": "Sektor/Bransch kapital",
+ "class-special-classes-equity": "Speciella aktieklasser",
+ "name-header": "Namn",
+ "page-description": "Översikt och administrativa åtgärder för dina aktietillgångar.",
+ "page-title": "Aktier",
+ "private-header": "Privat",
+ "private-status": "Privat",
+ "public-status": "Offentlig",
+ "related-actions": {
+ "issue-new": {
+ "description": "Skapa och lansera en ny aktietoken med definierade aktieklasser och äganderättigheter. Effektivisera aktieutgivning för att stödja aktieägarutdelning och bolagsstyrning.",
+ "title": "Utfärda nya aktietokens"
+ },
+ "mechanics": {
+ "button": "Läs mer",
+ "description": "Lär dig hur du hanterar aktieägares rättigheter, röstmekanismer, utdelningsutdelningar och aktieägarstrukturer.",
+ "title": "Aktiekonstruktioner"
+ },
+ "title": "Relaterade åtgärder",
+ "usecases": {
+ "button": "Utforska",
+ "description": "Utforska tillämpningar inom företagskapitalförvaltning, från aktieutgivning till intressentstyrning. Maximera effektiviteten i aktieadministration, röstningsrättigheter och utdelningsutdelning.",
+ "title": "Aktieanvändningsfall"
+ }
+ },
+ "status-header": "Status",
+ "symbol-header": "Symbol",
+ "topinfo-description": "Aktietillgångar digitaliserar traditionella aktiesäkerheter, kombinerar avancerade blockchain-funktioner med robusta styrnings- och efterlevnadsverktyg. Designade för institutionella investerare, erbjuder de säker aktieutgivning, aktieägares röstningsrättigheter, detaljerade åtkomstkontroller och mekanismer för regulatorisk efterlevnad. Denna tillgång förenklar kapitalförvaltning, ökar transparensen och säkerställer säker investerardeltagande.",
+ "topinfo-title": "Institutionell digital kapitalförvaltning",
+ "total-supply-header": "Total tillgång"
+ },
+ "tabs": {
+ "details": "Detaljer",
+ "events": "Händelser",
+ "holders": "Innehavare",
+ "permissions": "Behörigheter",
+ "underlying-assets": "Underliggande tillgångar"
+ }
+ },
+ "funds": {
+ "burn-form": {
+ "amount": {
+ "amount-label": "Belopp",
+ "available-balance": "Tillgängligt saldo: {balance}",
+ "description": "Ange det belopp du vill bränna.",
+ "title": "Ange belopp"
+ },
+ "button-label": "Bränn tillgångar",
+ "description": "Ta bort tokens permanent från cirkulation för att minska utbudet.",
+ "summary": {
+ "amount-label": "Belopp",
+ "asset-label": "Tillgång",
+ "burn-description": "Detaljer om brännoperationen",
+ "burn-title": "Bränn",
+ "description": "Verifiera detaljerna för din bränning innan du fortsätter.",
+ "title": "Granska och bekräfta bränning"
+ },
+ "title": "Bränn",
+ "trigger-label": "Bränn"
+ },
+ "charts": {
+ "asset-statistics-title": "Tillgångsstatistik"
+ },
+ "create-form": {
+ "basics": {
+ "decimals-label": "Decimaler",
+ "description": "Definiera viktiga detaljer såsom namn, symbol och synlighet.",
+ "isin-label": "ISIN",
+ "isin-placeholder": "SE1234567890",
+ "name-label": "Namn",
+ "name-placeholder": "Global Growth Fund",
+ "symbol-label": "Symbol",
+ "symbol-placeholder": "GGF",
+ "title": "Grundläggande information"
+ },
+ "button-label": "Utfärda en ny fond",
+ "configuration": {
+ "basis-points": "bps",
+ "category-activist": "Aktivist",
+ "category-commodity-trading": "Råvaruhandel",
+ "category-convertible-arbitrage": "Konvertibel arbitrage",
+ "category-credit": "Kredit",
+ "category-currency-fx": "Valuta / FX",
+ "category-distressed-debt": "Nödlån",
+ "category-emerging-markets": "Framväxande marknader",
+ "category-equity-hedge": "Aktiehedge",
+ "category-event-driven": "Händelsedriven",
+ "category-fixed-income-arbitrage": "Räntearbitrage",
+ "category-fund-of-funds": "Fond av fonder",
+ "category-global-macro": "Global makro",
+ "category-high-frequency-trading": "Högfrekvenshandel (HFT)",
+ "category-managed-futures-cta": "Förvaltade terminer / CTA",
+ "category-market-neutral": "Marknadsneutral",
+ "category-merger-arbitrage": "Fusion arbitrage",
+ "category-multi-strategy": "Multi-Strategi",
+ "category-private-equity": "Privat Kapital (PE)",
+ "category-quantitative-systematic": "Kvantitativ/Systematisk",
+ "category-relative-value": "Relativ Värde",
+ "category-statistical-arbitrage": "Statistisk Arbitrage",
+ "category-structured-credit": "Strukturerad Kredit",
+ "category-venture-capital": "Riskkapital (VC)",
+ "class-absolute-return": "Absolut Avkastning",
+ "class-core-blend": "Kärna / Blandning",
+ "class-diversified": "Diversifierad",
+ "class-early-stage": "Tidigt Skede",
+ "class-factor-based": "Faktorbasi",
+ "class-growth-focused": "Tillväxtfokuserad",
+ "class-income-focused": "Inkomstfokuserad",
+ "class-large-cap": "Stora Företag",
+ "class-long-equity": "Lång Aktier (Endast Lång)",
+ "class-long-short-equity": "Lång/Kort Aktier",
+ "class-market-neutral": "Marknadsneutral",
+ "class-mid-cap": "Medelstora Företag",
+ "class-momentum-oriented": "Momentum-orienterad",
+ "class-opportunistic": "Opportunistisk",
+ "class-pre-series-b": "Pre-Series B",
+ "class-quantitative-algorithmic": "Kvantitativ / Algoritmisk",
+ "class-regional": "Regional",
+ "class-sector-specific": "Sektor-Specifik",
+ "class-seed-pre-seed": "Frö / Pre-Frö",
+ "class-series-b-late-stage": "Series B / Sen Skede",
+ "class-short-equity": "Kort Aktier",
+ "class-small-cap": "Små Företag",
+ "class-tactical-asset-allocation": "Taktisk Tillgångsallokering",
+ "class-value-focused": "Värde-fokuserad",
+ "description": "Specificera fondkategori, klass och förvaltningsavgift.",
+ "fund-category-label": "Fondkategori",
+ "fund-class-label": "Fondklass",
+ "management-fee-description": "Årlig förvaltningsavgift i baspunkter (100 bps = 1%)",
+ "management-fee-label": "Förvaltningsavgift",
+ "title": "Fondkonfiguration"
+ },
+ "description": "Definiera och lansera en ny fondtillgång.",
+ "summary": {
+ "asset-basics-description": "Grundläggande tillgångsinformation och inställningar.",
+ "asset-basics-title": "Tillgångsgrundläggande",
+ "basis-points": "bps",
+ "category-activist": "Aktivist",
+ "category-commodity-trading": "Råvaruhandel",
+ "category-convertible-arbitrage": "Konvertibel Arbitrage",
+ "category-credit": "Kredit",
+ "category-currency-fx": "Valuta / FX",
+ "category-distressed-debt": "Nödlån",
+ "category-emerging-markets": "Framväxande Marknader",
+ "category-equity-hedge": "Aktiehedge",
+ "category-event-driven": "Händelsedriven",
+ "category-fixed-income-arbitrage": "Räntebärande Arbitrage",
+ "category-fund-of-funds": "Fond av Fonder",
+ "category-global-macro": "Global Makro",
+ "category-high-frequency-trading": "Högfrekvent Handel (HFT)",
+ "category-managed-futures-cta": "Förvaltade Terminer / CTA",
+ "category-market-neutral": "Marknadsneutral",
+ "category-merger-arbitrage": "Fusion Arbitrage",
+ "category-multi-strategy": "Multi-Strategi",
+ "category-private-equity": "Privat Kapital (PE)",
+ "category-quantitative-systematic": "Kvantitativ/Systematisk",
+ "category-relative-value": "Relativ Värde",
+ "category-statistical-arbitrage": "Statistisk Arbitrage",
+ "category-structured-credit": "Strukturerad Kredit",
+ "category-venture-capital": "Riskkapital (VC)",
+ "class-absolute-return": "Absolut Avkastning",
+ "class-core-blend": "Kärna / Blandning",
+ "class-diversified": "Diversifierad",
+ "class-early-stage": "Tidigt Skede",
+ "class-factor-based": "Faktorbasi",
+ "class-growth-focused": "Tillväxtfokuserad",
+ "class-income-focused": "Inkomstfokuserad",
+ "class-large-cap": "Stora Företag",
+ "class-long-equity": "Lång Aktier (Endast Lång)",
+ "class-long-short-equity": "Lång/Kort Aktier",
+ "class-market-neutral": "Marknadsneutral",
+ "class-mid-cap": "Medelstora Företag",
+ "class-momentum-oriented": "Momentum-orienterad",
+ "class-opportunistic": "Opportunistisk",
+ "class-pre-series-b": "Pre-Series B",
+ "class-quantitative-algorithmic": "Kvantitativ / Algoritmisk",
+ "class-regional": "Regional",
+ "class-sector-specific": "Sektor-Specifik",
+ "class-seed-pre-seed": "Frö / Pre-Frö",
+ "class-series-b-late-stage": "Series B / Sen Skede",
+ "class-short-equity": "Kort Aktier",
+ "class-small-cap": "Små Företag",
+ "class-tactical-asset-allocation": "Taktisk Tillgångsallokering",
+ "class-value-focused": "Värde-fokuserad",
+ "configuration-description": "Fondkategori, klass och avgiftsinställningar.",
+ "configuration-title": "Fondkonfiguration",
+ "decimals-label": "Decimaler",
+ "description": "Granska och bekräfta detaljerna för din nya fond innan skapande.",
+ "fund-category-label": "Fondkategori",
+ "fund-class-label": "Fondklass",
+ "isin-label": "ISIN",
+ "management-fee-label": "Förvaltningsavgift",
+ "name-label": "Namn",
+ "symbol-label": "Symbol",
+ "title": "Granska och bekräfta",
+ "error-duplicate": "En fond med samma detaljer finns redan. Vänligen försök igen med minst en annan parameter."
+ },
+ "title": "Skapa Fond",
+ "trigger-label": "Utfärda en ny fond"
+ },
+ "details": {
+ "contract-address": "Kontraktsadress",
+ "creator": "Skapare",
+ "decimals": "Decimaler",
+ "details-page-description": "Utforska omfattande data och mätvärden för {name}.",
+ "details-page-title": "{name} Detaljer",
+ "fund-details-description": "Detaljer för aktien",
+ "isin": "ISIN",
+ "name": "Namn",
+ "ownership-concentration": "Ägandekoncentration",
+ "ownership-concentration-info": "Procentandel ägd av de 5 största innehavarna",
+ "symbol": "Symbol",
+ "total-supply": "Totalt utbud",
+ "total-supply-info": "Det totala utbudet av token"
+ },
+ "events": {
+ "events-page-description": "Spåra alla händelser relaterade till {name} obligation.",
+ "events-page-title": "{name} Händelser"
+ },
+ "grant-role-form": {
+ "address": {
+ "address-label": "Administratörs plånboksadress",
+ "description": "Sök efter en användare med deras namn eller e-post, eller ange en plånboksadress manuellt.",
+ "manual-placeholder": "0x0000000000000000000000000000000000000000",
+ "manual-toggle": "Ange adress manuellt...",
+ "search-placeholder": "Sök efter en användare",
+ "search-toggle": "Sök istället efter en användare...",
+ "title": "Välj Ny Administratör"
+ },
+ "button-label": "Tilldela Roller",
+ "description": "Tilldela administrativa behörigheter till en ny användare.",
+ "roles": {
+ "description": "Välj de roller som ska beviljas den nya administratören. Minst en roll måste väljas.",
+ "title": "Välj Administratörsroller"
+ },
+ "summary": {
+ "admin-address-label": "Administratörsadress",
+ "asset-label": "Tillgång",
+ "description": "Verifiera detaljerna för din rolltilldelning innan du fortsätter.",
+ "grant-description": "Detaljer för tilldelning av rolloperation",
+ "grant-title": "Tilldela Roll",
+ "roles-label": "Roller",
+ "title": "Granska och bekräfta rolltilldelning"
+ },
+ "title": "Tilldela Roll"
+ },
+ "manage": {
+ "actions": {
+ "mint": "Prägla",
+ "burn": "Bränna",
+ "pause": "Pausa",
+ "unpause": "Återuppta",
+ "grant-role": "Tilldela roll"
+ },
+ "manage": "Hantera"
+ },
+ "mint-form": {
+ "amount": {
+ "amount-label": "Belopp",
+ "description": "Ange det belopp du vill prägla.",
+ "title": "Ange Belopp"
+ },
+ "recipients": {
+ "title": "Välj Mottagare",
+ "description": "Välj vem som ska ta emot de präglade token"
+ },
+ "button-label": "Prägla Tillgångar",
+ "description": "Utfärda nya token för att öka fondens cirkulerande utbud.",
+ "summary": {
+ "amount-label": "Belopp",
+ "asset-label": "Tillgång",
+ "description": "Verifiera detaljerna för din prägling innan du fortsätter.",
+ "mint-description": "Detaljer för präglingoperation",
+ "mint-title": "Prägla",
+ "title": "Granska och bekräfta prägling"
+ },
+ "title": "Prägla",
+ "trigger-label": "Prägla"
+ },
+ "pause-form": {
+ "pause": {
+ "button-label": "Pausa Transaktioner",
+ "description": "Tillfälligt stoppa alla transaktioner och interaktioner för denna fond.",
+ "title": "Pausa Fondtransaktioner"
+ },
+ "summary": {
+ "asset-label": "Tillgång",
+ "current-state-label": "Aktuellt tillstånd",
+ "description": "Verifiera detaljerna för din pausoperation innan du fortsätter.",
+ "pause-description": "Pausoperationens detaljer",
+ "pause-title": "Pausa",
+ "state-active": "Aktiv",
+ "state-paused": "Pausad",
+ "target-state-label": "Måltillstånd",
+ "title": "Granska och bekräfta pausoperation"
+ },
+ "unpause": {
+ "button-label": "Återuppta Transaktioner",
+ "description": "Återuppta transaktioner och interaktioner för denna fond.",
+ "title": "Återuppta Fondtransaktioner"
+ }
+ },
+ "related-actions": {
+ "decrease-supply": {
+ "description": "En obligationsförvaltare kan minska det totala utbudet genom obligationinlösen vid förfall eller tidiga återköpsprogram.",
+ "title": "Lösa In Obligationer"
+ },
+ "increase-supply": {
+ "description": "En obligationsförvaltare kan utfärda nya obligationer genom primärutgivning eller tap-utgivning med definierat nominellt värde och förfall.",
+ "title": "Utfärda Obligationer"
+ },
+ "title": "Relaterade åtgärder"
+ },
+ "table": {
+ "actions-header": "Åtgärder",
+ "address-header": "Adress",
+ "asset-management": "Tillgångsförvaltning",
+ "assets-under-management-header": "AUM",
+ "category-activist": "Aktivist",
+ "category-commodity-trading": "Råvaruhandel",
+ "category-convertible-arbitrage": "Konvertibel Arbitrage",
+ "category-credit": "Kredit",
+ "category-currency-fx": "Valuta / FX",
+ "category-distressed-debt": "Nödlidande Skuld",
+ "category-emerging-markets": "Framväxande Marknader",
+ "category-equity-hedge": "Aktiehedge",
+ "category-event-driven": "Händelsedriven",
+ "category-fixed-income-arbitrage": "Fasta Inkomster Arbitrage",
+ "category-fund-of-funds": "Fond av Fonder",
+ "category-global-macro": "Global Makro",
+ "category-header": "Fondkategori",
+ "category-high-frequency-trading": "Högfrekvent Handel (HFT)",
+ "category-managed-futures-cta": "Förvaltade Terminer / CTA",
+ "category-market-neutral": "Marknadsneutral",
+ "category-merger-arbitrage": "Fusion Arbitrage",
+ "category-multi-strategy": "Multi-Strategi",
+ "category-private-equity": "Privat Kapital (PE)",
+ "category-quantitative-systematic": "Kvantitativ/Systematisk",
+ "category-relative-value": "Relativt Värde",
+ "category-statistical-arbitrage": "Statistisk Arbitrage",
+ "category-structured-credit": "Strukturerad Kredit",
+ "category-venture-capital": "Riskkapital (VC)",
+ "class-absolute-return": "Absolut Avkastning",
+ "class-core-blend": "Kärna / Blandning",
+ "class-diversified": "Diversifierad",
+ "class-early-stage": "Tidig Fas",
+ "class-factor-based": "Faktorbasiert",
+ "class-growth-focused": "Tillväxtfokuserad",
+ "class-header": "Fondklass",
+ "class-income-focused": "Inkomstfokuserad",
+ "class-large-cap": "Stora Företag",
+ "class-long-equity": "Lång Aktie (Endast Lång)",
+ "class-long-short-equity": "Lång/Kort Aktie",
+ "class-market-neutral": "Marknadsneutral",
+ "class-mid-cap": "Medelstora Företag",
+ "class-momentum-oriented": "Momentum-orienterad",
+ "class-opportunistic": "Opportunistisk",
+ "class-pre-series-b": "Pre-Series B",
+ "class-quantitative-algorithmic": "Kvantitativ / Algoritmisk",
+ "class-regional": "Regional",
+ "class-sector-specific": "Sektor-specifik",
+ "class-seed-pre-seed": "Seed / Pre-Seed",
+ "class-series-b-late-stage": "Series B / Sen Fas",
+ "class-short-equity": "Kort Aktie",
+ "class-small-cap": "Små Företag",
+ "class-tactical-asset-allocation": "Taktisk Tillgångsallokering",
+ "class-value-focused": "Värdefokuserad",
+ "management-fee-header": "Förvaltningsavgift",
+ "name-header": "Namn",
+ "page-description": "Översikt och administrativa åtgärder för dina fondtillgångar.",
+ "page-title": "Fonder",
+ "private-header": "Privat",
+ "private-status": "Privat",
+ "public-status": "Offentlig",
+ "related-actions": {
+ "issue-new": {
+ "description": "Skapa och lansera en ny fond med definierade parametrar och tillgångsstöd. Effektivisera fondutplacering för att stödja nya investeringsmöjligheter och marknadssegment.",
+ "title": "Utfärda en ny fond"
+ },
+ "mechanics": {
+ "button": "Läs mer",
+ "description": "Lär dig hur du justerar viktiga fondparametrar, tillgångsallokeringsmetoder och strukturer för förvaltningsavgifter.",
+ "title": "Fondmekanik"
+ },
+ "title": "Relaterade Åtgärder",
+ "usecases": {
+ "button": "Utforska",
+ "description": "Utforska de praktiska tillämpningarna och integrationerna av digitala fonder. Maximera nyttan över investeringshantering, tillgångstokenisering och institutionella finansieringssystem.",
+ "title": "Användningsfall"
+ }
+ },
+ "status-header": "Status",
+ "symbol-header": "Symbol",
+ "topinfo-description": "Fondtillgångar digitaliserar investeringsfondandelar, erbjuder automatiserad insamling av förvaltningsavgifter, investerargovernance och omfattande regulatorisk efterlevnad. Idealiskt för finansiella institutioner, effektiviserar de administrativa processer, säkerställer transparent avgiftshantering och möjliggör säker investerarröstning. Kontraktet erbjuder stark säkerhet, anpassningsbara fondattribut och förbättrad operationell effektivitet.",
+ "topinfo-title": "Digital tillgång för institutionell fondhantering",
+ "total-supply-header": "Total Utbud"
+ },
+ "tabs": {
+ "details": "Detaljer",
+ "events": "Händelser",
+ "holders": "Innehavare",
+ "permissions": "Behörigheter",
+ "underlying-assets": "Underliggande tillgångar"
+ }
+ },
+ "platform": {
+ "settings": {
+ "platform-management": "Plattformsförvaltning"
+ }
+ },
+ "sidebar": {
+ "asset-designer": "Tillgångsdesigner",
+ "asset-management": {
+ "asset-activity": "Tillgångsaktivitet",
+ "bonds": "Obligationer",
+ "cryptocurrencies": "Kryptovalutor",
+ "dashboard": "Instrumentpanel",
+ "equities": "Aktier",
+ "funds": "Fonder",
+ "group-title": "Tillgångsförvaltning",
+ "stablecoins": "Stablecoins",
+ "view-all": "Visa alla"
+ },
+ "asset-types": {
+ "bond": "Obligation",
+ "cryptocurrency": "Kryptovaluta",
+ "equity": "Aktie",
+ "fund": "Fond",
+ "stablecoin": "Stablecoin"
+ },
+ "platform-management": {
+ "group-title": "Plattformsförvaltning",
+ "settings": "Inställningar",
+ "user-management": "Användarhantering"
+ },
+ "portfolio-management": {
+ "dashboard": "Instrumentpanel",
+ "group-title": "Min portfölj",
+ "my-activity": "Min aktivitet",
+ "my-assets": "Mina tillgångar"
+ }
+ },
+ "stablecoins": {
+ "burn-form": {
+ "amount": {
+ "amount-label": "Belopp",
+ "available-balance": "Tillgängligt saldo: {balance}",
+ "description": "Ange det belopp du vill bränna.",
+ "title": "Ange Belopp"
+ },
+ "button-label": "Bränn Tillgångar",
+ "description": "Ta bort tokens permanent från cirkulation för att minska utbudet.",
+ "summary": {
+ "amount-label": "Belopp",
+ "asset-label": "Tillgång",
+ "burn-description": "Detaljer om bränningsoperationen",
+ "burn-title": "Bränn",
+ "description": "Verifiera detaljerna för din bränning innan du fortsätter.",
+ "title": "Granska och bekräfta bränning"
+ },
+ "title": "Bränn",
+ "trigger-label": "Bränn"
+ },
+ "charts": {
+ "asset-statistics-title": "Tillgångsstatistik"
+ },
+ "collateral": {
+ "collateral-proof-expiration": "Utgång för säkerhetsbevis",
+ "collateral-proof-expiration-info": "Från denna punkt är säkerhetsbeviset ogiltigt",
+ "collateral-proof-validity": "Säkerhetsbevis giltighet",
+ "collateral-proof-validity-info": "Hur länge säkerhetsbeviset är giltigt",
+ "committed-collateral-ratio": "Åtagna säkerhetsförhållande",
+ "committed-collateral-ratio-info": "Förhållandet mellan den säkerhet som åtagits och det totala utbudet av token",
+ "proven-collateral": "Bevisad säkerhet",
+ "proven-collateral-info": "Den mängd säkerhet som har bevisats hållas av token",
+ "required-collateral-threshold": "Krav på säkerhetströskel",
+ "required-collateral-threshold-info": "Den mängd säkerhet som måste bevisas"
+ },
+ "create-form": {
+ "basics": {
+ "decimals-label": "Decimaler",
+ "description": "Definiera viktiga detaljer som namn, symbol och synlighet.",
+ "isin-label": "ISIN",
+ "isin-placeholder": "DEFI4EVER2024",
+ "name-label": "Namn",
+ "name-placeholder": "TotallyNotTether",
+ "symbol-label": "Symbol",
+ "symbol-placeholder": "SAFU",
+ "title": "Grundläggande information"
+ },
+ "button-label": "Utfärda en ny stabilcoin",
+ "configuration": {
+ "collateral-proof-validity-label": "Bevis på säkerhets giltighet",
+ "description": "Specificera avancerade inställningar som giltighet för säkerhetsbevis.",
+ "title": "Konfiguration"
+ },
+ "description": "Definiera och lansera en ny stabilcoin-tillgång.",
+ "summary": {
+ "asset-basics-description": "Grundläggande tillgångsinformation och inställningar.",
+ "asset-basics-title": "Tillgångsgrundläggande",
+ "collateral-proof-validity-label": "Bevis på säkerhets giltighet",
+ "configuration-description": "Tillgångsupply och ytterligare inställningar.",
+ "configuration-title": "Konfiguration",
+ "decimals-label": "Decimaler",
+ "description": "Granska och bekräfta detaljerna för din nya stabilcoin innan skapandet.",
+ "isin-label": "ISIN",
+ "name-label": "Namn",
+ "seconds": "sekunder",
+ "symbol-label": "Symbol",
+ "title": "Granska och bekräfta detaljerna för din nya stabilcoin innan skapandet.",
+ "error-duplicate": "En stabilcoin med samma detaljer finns redan. Vänligen försök igen med minst en annan parameter."
+ },
+ "title": "Skapa stabilcoin",
+ "trigger-label": "Utfärda en ny stabilcoin"
+ },
+ "details": {
+ "contract-address": "Kontraktsadress",
+ "creator": "Skapare",
+ "decimals": "Decimaler",
+ "details-page-description": "Utforska omfattande data och mått för {name}.",
+ "details-page-title": "{name} Detaljer",
+ "isin": "ISIN",
+ "name": "Namn",
+ "ownership-concentration": "Ägandekoncentration",
+ "ownership-concentration-info": "Procentandel ägd av de fem största innehavarna",
+ "stablecoin-details-description": "Detaljer för stabilcoinen",
+ "symbol": "Symbol",
+ "total-burned": "Bränd tillgång",
+ "total-burned-info": "Mängd tokens som permanent har tagits bort från cirkulation",
+ "total-holders": "# av innehavare",
+ "total-holders-info": "Mängd adresser som för närvarande håller tillgångarna",
+ "total-supply": "Total tillgång",
+ "total-supply-info": "Den totala tillgången av token"
+ },
+ "events": {
+ "events-page-description": "Spåra historiska aktiviteter och transaktioner som involverar {name}.",
+ "events-page-title": "{name} Händelser"
+ },
+ "grant-role-form": {
+ "address": {
+ "address-label": "Admin plånboksadress",
+ "description": "Sök efter en användare med deras namn eller e-post, eller ange manuellt en plånboksadress.",
+ "manual-placeholder": "0x0000000000000000000000000000000000000000",
+ "manual-toggle": "Ange adress manuellt...",
+ "search-placeholder": "Sök efter en användare",
+ "search-toggle": "Sök efter en användare istället...",
+ "title": "Välj ny admin"
+ },
+ "button-label": "Tilldela roller",
+ "description": "Tilldela administrativa behörigheter till en ny användare.",
+ "roles": {
+ "description": "Välj de roller som ska beviljas den nya administratören. Minst en roll måste väljas.",
+ "title": "Välj adminroller"
+ },
+ "summary": {
+ "admin-address-label": "Adminadress",
+ "asset-label": "Tillgång",
+ "description": "Verifiera detaljerna för din rollbeviljande innan du fortsätter.",
+ "grant-description": "Detaljer för beviljande av rolloperation",
+ "grant-title": "Bevilja roll",
+ "roles-label": "Roller",
+ "title": "Granska och bekräfta rollbeviljande"
+ },
+ "title": "Bevilja roll"
+ },
+ "manage": {
+ "actions": {
+ "burn": "Bränna",
+ "grant-role": "Bevilja roll",
+ "mint": "Prägla",
+ "pause": "Pausa",
+ "unpause": "Återuppta",
+ "update-collateral": "Uppdatera säkerhet",
+ "transfer": "Överföra"
+ },
+ "manage": "Hantera"
+ },
+ "mint-form": {
+ "amount": {
+ "amount-label": "Mängd",
+ "collateral-available": "Tillgänglig säkerhet: {collateral}",
+ "description": "Ange den mängd du vill prägla.",
+ "title": "Ange mängd"
+ },
+ "recipients": {
+ "title": "Välj mottagare",
+ "description": "Välj vem som ska ta emot de präglade tokens"
+ },
+ "button-label": "Prägla tillgångar",
+ "description": "Utfärda nya tokens för att öka stabilcoinens cirkulerande tillgång.",
+ "summary": {
+ "amount-label": "Mängd",
+ "asset-label": "Tillgång",
+ "description": "Verifiera detaljerna för din prägling innan du fortsätter.",
+ "mint-description": "Detaljer för präglingoperation",
+ "mint-title": "Prägla",
+ "title": "Granska och bekräfta prägling"
+ },
+ "title": "Prägla",
+ "trigger-label": "Prägla"
+ },
+ "pause-form": {
+ "pause": {
+ "button-label": "Pausa transaktioner",
+ "description": "Tillfälligt stoppa alla transaktioner och interaktioner för denna stabilcoin.",
+ "title": "Pausa stabilcointransaktioner"
+ },
+ "summary": {
+ "asset-label": "Tillgång",
+ "current-state-label": "Aktuell status",
+ "description": "Verifiera detaljerna för din pausoperation innan du fortsätter.",
+ "pause-description": "Pausoperationens detaljer",
+ "pause-title": "Pausa",
+ "state-active": "Aktiv",
+ "state-paused": "Pausad",
+ "target-state-label": "Målstatus",
+ "title": "Granska och bekräfta pausoperationen"
+ },
+ "unpause": {
+ "button-label": "Återuppta transaktioner",
+ "description": "Återuppta transaktioner och interaktioner för denna stablecoin.",
+ "title": "Återuppta Stablecoin-transaktioner"
+ }
+ },
+ "related-actions": {
+ "decrease-supply": {
+ "description": "En tillgångschef kan bränna befintliga stablecoins, förutsatt att tillräcklig säkerhet finns.",
+ "title": "Minska tillgången"
+ },
+ "increase-supply": {
+ "description": "En tillgångschef kan prägla nya stablecoins, förutsatt att tillräcklig säkerhet finns.",
+ "title": "Öka tillgången"
+ },
+ "title": "Relaterade åtgärder",
+ "update-collateral": {
+ "description": "En tillgångschef behöver uppdatera och verifiera säkerheten som stöder stablecoin. Detta säkerställer att tillgången alltid är fullt säkerställd.",
+ "title": "Uppdatera säkerhet"
+ }
+ },
+ "table": {
+ "actions-header": "Åtgärder",
+ "address-header": "Adress",
+ "asset-management": "Tillgångshantering",
+ "committed-collateral-header": "Förbrukad säkerhet",
+ "name-header": "Namn",
+ "page-description": "Översikt och administrativa åtgärder för dina stablecoin-tillgångar.",
+ "page-title": "Stable Coins",
+ "private-header": "Privat",
+ "private-status": "Privat",
+ "public-status": "Offentlig",
+ "related-actions": {
+ "issue-new": {
+ "description": "Skapa och lansera en ny stablecoin med definierade parametrar och säkerhet. Effektivisera tokenutplacering för att stödja nya projekt och marknadssegment.",
+ "title": "Utfärda en ny stablecoin"
+ },
+ "mechanics": {
+ "button": "Lär dig mer",
+ "description": "Lär dig hur du justerar viktiga stablecoin-parametrar, säkerhetsmetoder och stabilitetsmekanismer.",
+ "title": "Stablecoin-mekanik"
+ },
+ "title": "Relaterade åtgärder",
+ "usecases": {
+ "button": "Utforska",
+ "description": "Utforska de praktiska tillämpningarna och integrationerna av stablecoins. Maximera nyttan över betalningar, sparande, utlåning och decentraliserade finanssystem.",
+ "title": "Användningsfall"
+ }
+ },
+ "status-header": "Status",
+ "symbol-header": "Symbol",
+ "topinfo-description": "Stablecoins är digitala valutor som är utformade för att upprätthålla ett stabilt värde genom att vara stödda av verkliga tillgångar eller reserver. De erbjuder fördelarna med digitala tillgångar — såsom hastighet, transparens och programmerbarhet — samtidigt som de undviker prisvolatilitet som vanligtvis är förknippad med kryptovalutor. Detta StableCoin-kontrakt säkerställer att varje utfärdad token är fullt säkerställd, vilket ger institutioner säker, reviderbar och pålitlig digital penhantering. Nyckelfunktioner inkluderar säkerhetsstödd utfärdande, omfattande rollbaserade kontroller, robusta pausmekanismer och efterlevnad av regler.",
+ "topinfo-title": "En säker och säkerställd digital valuta",
+ "total-supply-header": "Total tillgång"
+ },
+ "tabs": {
+ "details": "Detaljer",
+ "events": "Händelser",
+ "holders": "Innehavare",
+ "permissions": "Behörigheter",
+ "underlying-assets": "Underliggande tillgångar"
+ },
+ "update-collateral-form": {
+ "amount": {
+ "amount-label": "Belopp",
+ "description": "Ange det belopp du vill uppdatera säkerheten till. Se till att beloppet är större än eller lika med den nuvarande tillgången.",
+ "title": "Ange belopp"
+ },
+ "button-label": "Uppdatera säkerhetsbelopp",
+ "description": "Justera säkerheten som stöder stablecoin för att återspegla aktuella krav.",
+ "summary": {
+ "amount-label": "Belopp",
+ "asset-label": "Tillgång",
+ "description": "Verifiera detaljerna för din uppdatering av bevisad säkerhet innan du fortsätter.",
+ "title": "Granska och bekräfta uppdatering av bevisad säkerhet",
+ "update-description": "Uppdaterar detaljer för säkerhetsoperationen",
+ "update-title": "Uppdatera säkerhet"
+ },
+ "title": "Uppdatera säkerhet",
+ "trigger-label": "Uppdatera säkerhet"
+ }
+ },
+ "users": {
+ "banned_reason": "Bannad för {reason}",
+ "columns": {
+ "email": "E-post",
+ "kyc_status": "KYC-status",
+ "last_activity": "Senaste aktivitet",
+ "name": "Namn",
+ "role": "Roll",
+ "status": "Status",
+ "wallet": "Plånbok"
+ },
+ "detail": {
+ "edit_user": "Redigera användare",
+ "charts": {
+ "transaction-history-last-month": {
+ "title": "Transaktionsvolym / dag",
+ "description": "Visar transaktioner under den senaste månaden"
+ },
+ "transaction-history-last-year": {
+ "title": "Transaktionsvolym / månad",
+ "description": "Visar transaktioner under det senaste året"
+ }
+ },
+ "fields": {
+ "asset_supply": "Tillgångstillgång",
+ "created_at": "Skapad den",
+ "email": "E-post",
+ "last_activity": "Senaste aktivitet",
+ "last_login": "Senaste inloggning",
+ "name": "Namn",
+ "status": "Aldrig",
+ "transactions": "Ej verifierad",
+ "verified_at": "Status",
+ "wallet": "Transaktioner"
+ },
+ "platform-management": "Verifierad den",
+ "tabs": {
+ "details": "Plånbok",
+ "holdings": "Innehav",
+ "latest-events": "Senaste händelser",
+ "permissions": "Behörigheter"
+ },
+ "values": {
+ "asset_supply": "Tillgångsförsörjning",
+ "created_at": "Skapad den",
+ "email": "E-post",
+ "last_activity": "Senaste aktivitet",
+ "last_login": "Senaste inloggning",
+ "name": "Namn",
+ "never": "Aldrig",
+ "not_verified": "Ej verifierad",
+ "status": "Status",
+ "transactions": "Transaktioner",
+ "verified_at": "Verifierad den",
+ "wallet": "Plånbok"
+ }
+ },
+ "holdings": {
+ "title": "Innehav",
+ "table": {
+ "actions-header": "Åtgärd",
+ "balance-header": "Balans",
+ "holder-type-header": "Typ",
+ "last-activity-header": "Senaste aktivitet",
+ "name-header": "Namn",
+ "status-header": "Status",
+ "symbol-header": "Symbol",
+ "type-header": "Tillgångstyp"
+ }
+ },
+ "latest-events": {
+ "title": "Senaste händelser",
+ "view-all": "Visa fler händelser"
+ },
+ "kyc_status": {
+ "notVerified": "Ej verifierad",
+ "verified": "Verifierad"
+ },
+ "page-description": "Hantera användare och deras roller",
+ "page-title": "Användare",
+ "platform-management": "Plattformsadministration",
+ "roles": {
+ "admin": "Admin",
+ "issuer": "Utfärdare",
+ "user": "Användare"
+ },
+ "status": {
+ "active": "Aktiv",
+ "banned": "Avstängd"
+ },
+ "title": "Användare"
+ },
+ "charts": {
+ "asset-type-formatter": {
+ "bonds": "Obligationer",
+ "cryptocurrencies": "Kryptovalutor",
+ "equities": "Aktier",
+ "funds": "Fonder",
+ "stablecoins": "Stabila mynt"
+ }
+ },
+ "asset-holders-tab": {
+ "actions-header": "Åtgärder",
+ "balance-header": "Balans",
+ "block-form": {
+ "block-button-label": "Blockera användare",
+ "block-description": "Förhindra att denna användare utför några transaktioner eller interaktioner.",
+ "block-title": "Blockera användartransaktioner",
+ "block-trigger-label": "Blockera",
+ "summary": {
+ "asset-label": "Tillgång",
+ "block-title": "Blockera",
+ "current-state-label": "Aktuellt tillstånd",
+ "description": "Verifiera detaljerna för din blockering innan du fortsätter.",
+ "operation-description": "Detaljer för blockering",
+ "state-active": "Aktiv",
+ "state-blocked": "Blockerad",
+ "target-state-label": "Mål tillstånd",
+ "title": "Granska och bekräfta blockering",
+ "unblock-title": "Avblockera"
+ },
+ "unblock-button-label": "Avblockera användare",
+ "unblock-description": "Återställ denna användares möjlighet att transagera och interagera.",
+ "unblock-title": "Återställ användartransaktioner",
+ "unblock-trigger-label": "Avblockera"
+ },
+ "freeze-form": {
+ "amount": {
+ "amount-label": "Belopp",
+ "balance-description": "Tillgänglig balans: {balance} För närvarande fryst: {frozen}",
+ "description": "Ange det belopp du vill frysa.",
+ "title": "Ange belopp"
+ },
+ "button-label": "Frys fonder",
+ "description": "Tillfälligt begränsa en användares tillgång till sina fonder.",
+ "summary": {
+ "amount-label": "Belopp",
+ "asset-label": "Tillgång",
+ "description": "Verifiera detaljerna för din frysningsoperation innan du fortsätter.",
+ "freeze-title": "Frys",
+ "operation-description": "Detaljer för frysningsoperation",
+ "title": "Granska och bekräfta frysningsoperation"
+ },
+ "title": "Begränsa användarfonder",
+ "trigger-label": "Frys"
+ },
+ "frozen-header": "Fryst",
+ "holders-page-description": "Visa plånböcker som innehåller {name}, inklusive saldon och status.",
+ "holders-page-title": "{name} Innehavare",
+ "holder-type-header": "Typ",
+ "last-activity-header": "Senaste aktivitet",
+ "status-header": "Status",
+ "wallet-header": "Plånbok"
+ },
+ "asset-permissions-tab": {
+ "actions-header": "Åtgärder",
+ "edit-form": {
+ "button-label": "Redigera behörigheter",
+ "description": "Uppdatera de behörigheter och åtkomstnivåer som tilldelats denna användare.",
+ "roles": {
+ "description": "Välj roller att tilldela denna användare. Minst en roll måste väljas.",
+ "title": "Välj användarroller"
+ },
+ "summary": {
+ "current-roles-label": "Aktuella roller",
+ "description": "Verifiera detaljerna innan du fortsätter. Denna åtgärd kommer att ändra rollerna för användaren.",
+ "new-roles-label": "Nya roller",
+ "operation-description": "Detaljer för uppdatering av roller",
+ "title": "Granska och bekräfta nya roller",
+ "update-title": "Uppdatera roller",
+ "user-label": "Användare"
+ },
+ "title": "Ändra användarbehörigheter",
+ "trigger-label": "Redigera roller"
+ },
+ "last-activity-header": "Senaste aktivitet",
+ "page-description": "Behörighetsadministration för {name} stabila mynt",
+ "page-title": "{name} Behörigheter",
+ "permissions-page-description": "Hantera användarroller och åtkomsträttigheter för {name}.",
+ "permissions-page-title": "{name} Behörigheter",
+ "revoke-all-form": {
+ "button-label": "Återkalla åtkomst",
+ "description": "Helt återkalla denna användares åtkomst och behörigheter.",
+ "summary": {
+ "description": "Verifiera detaljerna innan du fortsätter. Denna åtgärd kommer att återkalla alla behörigheter för användaren.",
+ "operation-description": "Detaljer för återkallande av alla behörigheter",
+ "revoke-title": "Återkalla alla",
+ "roles-to-revoke-label": "Roller att återkalla",
+ "title": "Granska och bekräfta",
+ "user-label": "Användare"
+ },
+ "title": "Ta bort all användartillgång",
+ "trigger-label": "Återkalla alla"
+ },
+ "roles-header": "Roller",
+ "table-title": "Behörigheter",
+ "wallet-header": "Plånbok"
+ }
+ },
+ "asset-management": "Tillgångshantering",
+ "asset-type": {
+ "bond": "Obligation",
+ "stablecoin": "Stabil mynt",
+ "equity": "Aktie",
+ "cryptocurrency": "Kryptovaluta",
+ "fund": "Fond"
+ },
+ "asset-status": {
+ "active": "Aktiv",
+ "paused": "Pausad",
+ "blocked": "Blockerad"
+ },
+ "auth": {
+ "account": "Konto",
+ "add-account": "Lägg till konto",
+ "already-have-account": "Har du redan ett konto?",
+ "avatar": "Avatar",
+ "avatar-description": "Klicka på avataren för att ladda upp en anpassad från dina filer.",
+ "avatar-instructions": "En avatar är valfri men starkt rekommenderad.",
+ "change-password": "Ändra lösenord",
+ "change-password-description": "Ange ditt nuvarande lösenord och ett nytt lösenord.",
+ "change-password-instructions": "Vänligen använd minst 8 tecken.",
+ "change-password-success": "Ditt lösenord har ändrats.",
+ "current-password": "Nuvarande lösenord",
+ "current-password-placeholder": "Ange ditt nuvarande lösenord",
+ "current-session": "Aktuell session",
+ "delete-account": "Ta bort konto",
+ "delete-account-description": "Ta bort ditt konto permanent och allt innehåll. Detta kommer ATT ta bort din åtkomst till din privata nyckel och du KOMMER att förlora åtkomst till dina tillgångar! Denna åtgärd är inte reversibel, så vänligen fortsätt med försiktighet.",
+ "delete-account-email": "Vänligen kontrollera din e-post för att verifiera borttagningen av ditt konto.",
+ "delete-account-instructions": "Vänligen bekräfta borttagningen av ditt konto. Denna åtgärd är inte reversibel, så vänligen fortsätt med försiktighet.",
+ "delete-account-not-fresh": "Du måste vara nyligen inloggad för att ta bort ditt konto.",
+ "delete-account-success": "Ditt konto har tagits bort.",
+ "disabled-credentials-description": "Välj en leverantör för att logga in på ditt konto",
+ "dont-have-account": "Har du inget konto?",
+ "email": "E-post",
+ "email-description": "Ange den e-postadress du vill använda för att logga in.",
+ "email-instructions": "Vänligen använd en giltig e-postadress.",
+ "email-placeholder": "m@example.com",
+ "email-verification": "Vänligen kontrollera din e-post för verifieringslänken.",
+ "email-verify-change": "Vänligen kontrollera din e-post för att verifiera ändringen.",
+ "failed-to-validate": "Misslyckades med att validera",
+ "forgot-password": "Glömt lösenord",
+ "forgot-password-action": "Skicka återställningslänk",
+ "forgot-password-description": "Ange din e-post för att återställa ditt lösenord",
+ "forgot-password-email": "Kontrollera din e-post för återställningslänken.",
+ "forgot-password-link": "Glömt ditt lösenord?",
+ "link": "Länk",
+ "magic-link": "Magisk länk",
+ "magic-link-action": "Skicka magisk länk",
+ "magic-link-description": "Ange din e-post för att ta emot en magisk länk",
+ "magic-link-email": "Kontrollera din e-post för den magiska länken",
+ "name": "Namn",
+ "name-description": "Vänligen ange ditt fullständiga namn eller ett visningsnamn.",
+ "name-instructions": "Vänligen använd högst 32 tecken.",
+ "name-placeholder": "John Doe",
+ "new-password": "Nytt lösenord",
+ "new-password-placeholder": "Ange ditt nya lösenord",
+ "passkey": "Nyckel",
+ "password": "Lösenord",
+ "password-description": "Ange ditt nuvarande lösenord.",
+ "password-instructions": "Vänligen använd minst 8 tecken.",
+ "password-placeholder": "Ange ditt lösenord",
+ "pincode-form": {
+ "name-label": "Pincode namn",
+ "pincode-label": "Pincode",
+ "setting-up": "Sätter upp...",
+ "submit": "Ställ in Pincode"
+ },
+ "provider-link-success": "Leverantör kopplad framgångsrikt.",
+ "provider-unlink-success": "Leverantör avkopplad framgångsrikt.",
+ "providers": "Leverantörer",
+ "providers-description": "Anslut ditt konto med en tredjepartstjänst.",
+ "providers-loading-error": "Kunde inte ladda kontoinformation",
+ "remember-me": "Kom ihåg mig",
+ "reset-password": "Återställ lösenord",
+ "reset-password-action": "Spara nytt lösenord",
+ "reset-password-description": "Ange ditt nya lösenord nedan",
+ "reset-password-invalid-token": "Ogiltig återställningslänk för lösenord",
+ "reset-password-success": "Lösenord återställt framgångsrikt",
+ "revoke": "Återkalla",
+ "save": "Spara",
+ "sessions": "Sessioner",
+ "sessions-description": "Hantera dina aktiva sessioner och återkalla åtkomst.",
+ "set-password": "Ställ in lösenord",
+ "set-password-description": "Kontrollera din e-post för att ställa in ditt lösenord.",
+ "set-password-email-sent": "Kontrollera din e-post för att ställa in ditt lösenord.",
+ "settings": "Inställningar",
+ "sign-in": "Logga in",
+ "sign-in-action": "Logga in",
+ "sign-in-description": "Ange din e-post nedan för att logga in på ditt konto",
+ "sign-in-username-description": "Ange ditt användarnamn nedan för att logga in på ditt konto",
+ "sign-in-with": "Logga in med",
+ "sign-out": "Logga ut",
+ "sign-up": "Registrera dig",
+ "sign-up-action": "Skapa ett konto",
+ "sign-up-description": "Ange din information för att skapa ett konto",
+ "sign-up-email": "Kontrollera din e-post för verifieringslänken.",
+ "signin": {
+ "description": "Ange din e-post nedan för att logga in på ditt konto",
+ "email": {
+ "label": "E-post",
+ "placeholder": "m@example.com"
+ },
+ "no-account": "Har du inget konto?",
+ "password": {
+ "label": "Lösenord"
+ },
+ "remember-me": "Kom ihåg mig",
+ "sign-in-with-passkey": "Logga in med nyckel",
+ "sign-up": "Registrera dig",
+ "submit": "Logga in",
+ "submitting": "Loggar in...",
+ "title": "Logga in på ditt konto"
+ },
+ "signup": {
+ "description": "Ange informationen nedan för att skapa ditt konto och hanterade blockchain-plånbok",
+ "email": {
+ "label": "E-post",
+ "placeholder": "wolf@wallstreet.com"
+ },
+ "error": {
+ "generic": "Ett fel inträffade"
+ },
+ "have-account": "Har du redan ett konto?",
+ "name": {
+ "label": "Namn",
+ "placeholder": "Warren Buffett Jr."
+ },
+ "page": {
+ "alert": {
+ "description": "Den första användaren som registrerar sig kommer att ges administratörsrollen. Du kan lägga till andra administratörer senare.",
+ "title": "Har du just skapat denna dAPP?"
+ }
+ },
+ "password": {
+ "label": "Lösenord"
+ },
+ "sign-in": "Logga in",
+ "submit": "Skapa konto",
+ "submitting": "Skapar konto...",
+ "title": "Skapa ett konto",
+ "wallet-pin": {
+ "label": "Välj en säker plånbok PIN-kod"
+ },
+ "wallet-pin-confirm": {
+ "label": "Bekräfta plånbok PIN-kod"
+ }
+ },
+ "unlink": "Koppla bort",
+ "username": "Användarnamn",
+ "username-description": "Ange det användarnamn du vill använda för att logga in.",
+ "username-instructions": "Vänligen använd högst 32 tecken.",
+ "username-placeholder": "John Doe",
+ "username-sign-in-placeholder": "Användarnamn eller e-post",
+ "wallet-security": {
+ "pincode-instruction": "Ange en 6-siffrig PIN-kod för att säkra din plånbok.",
+ "pincode-set": "PIN-kod inställd framgångsrikt",
+ "setup-pincode": "Ställ in PIN-kod",
+ "verification-description": "Vänligen ställ in en PIN-kod för att säkra din plånbok.",
+ "verification-required": "Verifiering krävs"
+ },
+ "wrong-role": {
+ "description": "Du har inte den nödvändiga rollen för att få åtkomst till denna sida. Vänligen logga in med ett konto som har lämpliga behörigheter.",
+ "go-to-portfolio": "Gå till portfölj",
+ "title": "Du är inte auktoriserad att få åtkomst till denna sida"
+ }
+ },
+ "components": {
+ "active-pill": {
+ "active": "Aktiv",
+ "paused": "Pausad"
+ },
+ "address-avatar": {
+ "avatar": "Avatar"
+ },
+ "area-chart": {
+ "info-icon-label": "Info"
+ },
+ "asset-events-table": {
+ "asset": "Tillgång",
+ "detail-sheet": {
+ "asset": "Tillgång",
+ "asset-type": "Tillgångstyp",
+ "date": "Datum",
+ "details-button": "Detaljer",
+ "details-for-event": "Detaljer för {event} händelse",
+ "sender": "Avsändare",
+ "transaction-hash": "Transaktionshash"
+ },
+ "details": {
+ "account": "Konto",
+ "amount": "Belopp",
+ "bond-amount": "Obligationsbelopp",
+ "burned": "Bränd",
+ "details-header": "Detaljer",
+ "from": "Från",
+ "holder": "Innehavare",
+ "new-admin-role": "Ny administratörsroll",
+ "new-amount": "Nytt belopp",
+ "new-mint": "Ny mint",
+ "old-amount": "Gammalt belopp",
+ "previous-admin-role": "Tidigare administratörsroll",
+ "role": "Roll",
+ "to": "Till",
+ "token": "Token",
+ "underlying-amount": "Underliggande belopp",
+ "user": "Användare",
+ "value": "Värde"
+ },
+ "event": "Händelse",
+ "events": "Händelser",
+ "sender": "Avsändare",
+ "timestamp": "Tidsstämpel"
+ },
+ "asset-status-pill": {
+ "blocked": "Blockerad"
+ },
+ "asset-type-icon": {
+ "bond-initials": "BN",
+ "cryptocurrency-initials": "CC",
+ "equity-initials": "EQ",
+ "fund-initials": "FN",
+ "not-available-initials": "NA",
+ "stablecoin-initials": "SC"
+ },
+ "charts": {
+ "assets": {
+ "asset-distribution": "Tillgångsfördelning",
+ "asset-distribution-description": "Portföljallokering efter tillgångstyp",
+ "asset-distribution-no-data": "Ingen tillgångsdata tillgänglig",
+ "collateral-ratio": {
+ "description": "Belopp av säkerhet som är fri vs använd",
+ "label": "Säkerhetskvot",
+ "no-data": "Ingen säkerhetsdata tillgänglig"
+ },
+ "free-collateral-ratio": {
+ "label": "Fri"
+ },
+ "last-updated": "Senast uppdaterad",
+ "total-supply": {
+ "description": "Visar den totala tillgången av token",
+ "label": "Total tillgång",
+ "no-data": "Ingen data tillgänglig i detta fönster",
+ "title": "Total tillgång"
+ },
+ "total-supply-changed": {
+ "burned-label": "Totalt bränt",
+ "description": "Visar förändringen i tillgången av token",
+ "minted-label": "Totalt mintat",
+ "no-data": "Ingen data tillgänglig i detta fönster",
+ "title": "Förändringar i tillgång"
+ },
+ "total-transfers": {
+ "description": "Visar de totala överföringarna av token",
+ "label": "Totala överföringar",
+ "no-data": "Ingen data tillgänglig i detta fönster",
+ "title": "Totala överföringar"
+ },
+ "total-volume": {
+ "description": "Visar den totala volymen av token",
+ "label": "Total volym",
+ "no-data": "Ingen data tillgänglig i detta fönster",
+ "title": "Total volym"
+ },
+ "used-collateral-ratio": {
+ "label": "Åtagit"
+ },
+ "wallet-distribution": "Plånboksfördelning",
+ "wallet-distribution-description": "Antal innehavare vs de belopp de har",
+ "wallet-distribution-no-data": "Ingen plånboksdata tillgänglig",
+ "asset-type-pluralizer": {
+ "bond": "Obligationer",
+ "cryptocurrency": "Kryptovalutor",
+ "equity": "Aktier",
+ "fund": "Fonder",
+ "stablecoin": "Stabila mynt"
+ }
+ }
+ },
+ "data-table": {
+ "clear-filters": "Rensa filter",
+ "details": "Detaljer",
+ "export": "Exportera",
+ "failed-export": "Misslyckades med att exportera data",
+ "go-to-first-page": "Gå till första sidan",
+ "go-to-last-page": "Gå till sista sidan",
+ "go-to-next-page": "Gå till nästa sida",
+ "go-to-previous-page": "Gå till föregående sida",
+ "hide": "Dölj",
+ "no-results": "Inga resultat",
+ "no-results-found": "Inga resultat hittades.",
+ "open-menu": "Öppna meny",
+ "page-info": "Sida {current} av {total}",
+ "reset": "Återställ",
+ "rows-per-page": "Rader per sida",
+ "search": "Sök...",
+ "selected": "valda",
+ "selected-rows-info": "{selected} av {total} rad(er) valda.",
+ "sort-ascending": "Sortera stigande",
+ "sort-descending": "Sortera fallande",
+ "toggle-columns": "Växla kolumner",
+ "view": "Visa"
+ },
+ "detail-grid": {
+ "info-icon-label": "Ytterligare information"
+ },
+ "form": {
+ "assets": {
+ "default-placeholder": "Välj ett alternativ",
+ "loading": "Laddar...",
+ "no-asset-found": "Ingen tillgång hittades.",
+ "search-placeholder": "Sök efter en tillgång..."
+ },
+ "button": {
+ "next": "Nästa",
+ "previous": "Föregående",
+ "processing": "Bearbetar...",
+ "send-transaction": "Skicka transaktion",
+ "sending-transaction": "Skickar transaktion..."
+ },
+ "input": {
+ "letters-only": "Vänligen ange endast bokstäver",
+ "password-min-length": "Lösenordet måste vara minst 6 tecken långt",
+ "pin-code-length": "PIN-koden måste vara exakt 6 siffror",
+ "pin-code-match": "PIN-koderna matchar inte",
+ "valid-email": "Vänligen ange en giltig e-postadress"
+ },
+ "progress": {
+ "completed-step": "Avslutad steg",
+ "current-step": "Aktuellt steg",
+ "step-of-total": "Steg {current} av {total}",
+ "upcoming-step": "Kommande steg"
+ },
+ "select": {
+ "default-placeholder": "Välj ett alternativ"
+ },
+ "summary": {
+ "security-confirmation": {
+ "description": "Ange din PIN-kod för att bekräfta och signera transaktionen.",
+ "title": "Säkerhetsbekräftelse"
+ }
+ },
+ "users": {
+ "default-placeholder": "Välj ett alternativ",
+ "loading": "Laddar...",
+ "no-user-found": "Ingen användare hittades.",
+ "search-placeholder": "Sök efter en användare..."
+ },
+ "pincode-dialog": {
+ "title": "Ange din PIN-kod för att bekräfta",
+ "description": "För att signera transaktionen, vänligen ange din PIN-kod för verifiering och auktorisering."
+ }
+ },
+ "logo": {
+ "alt-text": "SettleMint"
+ },
+ "search": {
+ "assets-section": "Tillgångar",
+ "no-results": "Inga resultat hittades",
+ "placeholder": "Sök efter tillgångar eller användare...",
+ "users-section": "Användare"
+ },
+ "transaction-details": {
+ "blob-gas-price-label": "Blob gaspris",
+ "blob-gas-used-label": "Blob gas använt",
+ "block-hash-label": "Blockhash",
+ "block-number-label": "Blocknummer",
+ "contract-label": "Kontrakt",
+ "created-at-label": "Skapad den",
+ "description": "Visa detaljerna för en transaktion",
+ "effective-gas-price-label": "Effektivt gaspris",
+ "from-label": "Från",
+ "function-label": "Funktion",
+ "gas-used-label": "Gas använt",
+ "receipt-title": "Kvitto",
+ "revert-reason-label": "Återställningsorsak",
+ "status-label": "Status",
+ "title": "Transaktioner",
+ "transaction-hash-label": "Transaktionshash",
+ "transaction-index-label": "Transaktionsindex",
+ "transaction-title": "Transaktion",
+ "trigger-label": "Detaljer",
+ "type-label": "Typ"
+ },
+ "transaction-hash": {
+ "view-on-explorer": "Visa på utforskaren"
+ },
+ "transactions-history": {
+ "title": "Transaktioner",
+ "description": "Visar transaktioner under de senaste {interval}",
+ "chart-label": "Transaktion"
+ },
+ "transactions-table": {
+ "columns": {
+ "actions": "Åtgärder",
+ "created-at": "Tidsstämpel",
+ "contract": "Kontrakt",
+ "function": "Funktion",
+ "from": "Från",
+ "status": "Status",
+ "transaction-hash": "Transaktionshash"
+ }
+ }
+ },
+ "error": {
+ "error-id": "Fel-ID",
+ "go-home": "Gå hem",
+ "title": "Något gick fel!",
+ "try-again": "Försök igen",
+ "unknown-error": "Okänt fel",
+ "validation-errors": "Valideringsfel",
+ "cryptocurrency": {
+ "duplicate": "En kryptovaluta med dessa detaljer finns redan. Vänligen ändra minst en av detaljerna."
+ },
+ "stablecoin": {
+ "duplicate": "Ett stabilt mynt med dessa detaljer finns redan. Vänligen ändra minst en av detaljerna."
+ },
+ "bond": {
+ "duplicate": "Ett obligation med dessa uppgifter finns redan. Vänligen ändra minst en av uppgifterna."
+ },
+ "equity": {
+ "duplicate": "Ett eget kapital med dessa uppgifter finns redan. Vänligen ändra minst en av uppgifterna."
+ },
+ "fund": {
+ "duplicate": "En fond med dessa uppgifter finns redan. Vänligen ändra minst en av uppgifterna."
+ }
+ },
+ "holder-type": {
+ "admin": "Admin",
+ "creator-owner": "Skapare / Ägare",
+ "regular": "Regelbunden Innehavare",
+ "supply-manager": "Leveranschef"
+ },
+ "layout": {
+ "header": {
+ "app-description": "Tillgångstokenisering",
+ "app-name": "SettleMint",
+ "home": "Hem",
+ "issuer-portal": "Utgivarpanel"
+ },
+ "navigation": {
+ "admin": "Utgivarpanel",
+ "home": "Hem",
+ "portfolio": "Min portfölj"
+ },
+ "user-dropdown": {
+ "documentation": "Dokumentation",
+ "logout": "Logga ut",
+ "pending-transactions": "Väntande Transaktioner"
+ }
+ },
+ "portfolio": {
+ "dashboard": {
+ "page-title": "Portfölj",
+ "portfolio-management": "Portföljhantering",
+ "my-assets": "Mina Tillgångar",
+ "latest-events": "Senaste händelser"
+ },
+ "activity": {
+ "page-description": "Din aktivitet på kedjan",
+ "page-title": "Aktivitet",
+ "portfolio-management": "Portföljhantering",
+ "tabs": {
+ "recent-transactions": "Senaste transaktioner",
+ "all-events": "Alla händelser"
+ }
+ },
+ "asset-types": {
+ "bond": "Obligation",
+ "cryptocurrency": "Kryptovaluta",
+ "equity": "Eget kapital",
+ "fund": "Fond",
+ "stablecoin": "Stabilcoin",
+ "unknown": "Okänd"
+ },
+ "greeting": {
+ "morning": "God morgon",
+ "afternoon": "God eftermiddag",
+ "evening": "God kväll",
+ "you-have": "Du har"
+ },
+ "my-assets": {
+ "description": "Visa och hantera dina digitala tillgångar",
+ "portfolio-management": "Portföljhantering",
+ "title": "Mina Tillgångar",
+ "table": {
+ "actions-header": "Åtgärd",
+ "balance-header": "Saldo",
+ "name-header": "Namn",
+ "status-header": "Status",
+ "symbol-header": "Symbol",
+ "type-header": "Typ"
+ },
+ "stablecoin": {
+ "transfer-form": {
+ "trigger-label": "Överför",
+ "title": "Överför Stabilcoin",
+ "description": "Överför dina stabilcoin-tokens till en annan adress",
+ "button-label": "Överför",
+ "amount": {
+ "title": "Ange belopp",
+ "description": "Specificera det belopp du vill överföra",
+ "value-label": "Belopp",
+ "balance-available": "Tillgängligt saldo: {balance}"
+ },
+ "recipients": {
+ "title": "Välj mottagare",
+ "description": "Välj vem som ska ta emot token",
+ "address-label": "Mottagaradress",
+ "address-placeholder": "Sök efter en användare",
+ "search-user-link": "Sök efter en användare istället...",
+ "manual-entry-link": "Ange adress manuellt..."
+ },
+ "summary": {
+ "title": "Granska och bekräfta överföring",
+ "description": "Verifiera uppgifterna för din överföring innan du fortsätter",
+ "transfer-title": "Överför",
+ "transfer-description": "Överföringsoperationens detaljer",
+ "asset-label": "Tillgång",
+ "value-label": "Belopp",
+ "recipient-label": "Mottagare"
+ }
+ }
+ },
+ "fund": {
+ "transfer-form": {
+ "trigger-label": "Överför",
+ "title": "Överför Fond",
+ "description": "Överför dina fondtokens till en annan adress",
+ "button-label": "Överför",
+ "amount": {
+ "title": "Ange belopp",
+ "description": "Specificera det belopp du vill överföra",
+ "value-label": "Belopp",
+ "balance-available": "Tillgängligt saldo: {balance}"
+ },
+ "recipients": {
+ "title": "Välj mottagare",
+ "description": "Välj vem som ska ta emot token",
+ "address-label": "Mottagaradress",
+ "address-placeholder": "Sök efter en användare",
+ "search-user-link": "Sök efter en användare istället...",
+ "manual-entry-link": "Ange adress manuellt..."
+ },
+ "summary": {
+ "title": "Granska och bekräfta överföring",
+ "description": "Verifiera uppgifterna för din överföring innan du fortsätter",
+ "transfer-title": "Överför",
+ "transfer-description": "Överföringsoperationens detaljer",
+ "asset-label": "Tillgång",
+ "value-label": "Belopp",
+ "recipient-label": "Mottagare"
+ }
+ }
+ },
+ "equity": {
+ "transfer-form": {
+ "trigger-label": "Överför",
+ "title": "Överför Eget Kapital",
+ "description": "Överför dina eget kapital-tokens till en annan adress",
+ "button-label": "Överför",
+ "amount": {
+ "title": "Ange belopp",
+ "description": "Specificera det belopp du vill överföra",
+ "value-label": "Belopp",
+ "balance-available": "Tillgängligt saldo: {balance}"
+ },
+ "recipients": {
+ "title": "Välj mottagare",
+ "description": "Välj vem som ska ta emot token",
+ "address-label": "Mottagaradress",
+ "address-placeholder": "Sök efter en användare",
+ "search-user-link": "Sök efter en användare istället...",
+ "manual-entry-link": "Ange adress manuellt..."
+ },
+ "summary": {
+ "title": "Granska och bekräfta överföring",
+ "description": "Verifiera detaljerna för din överföring innan du fortsätter",
+ "transfer-title": "Överför",
+ "transfer-description": "Överföringsoperationens detaljer",
+ "asset-label": "Tillgång",
+ "value-label": "Belopp",
+ "recipient-label": "Mottagare"
+ }
+ }
+ },
+ "cryptocurrency": {
+ "transfer-form": {
+ "trigger-label": "Överför",
+ "title": "Överför kryptovaluta",
+ "description": "Överför dina kryptovalutatokens till en annan adress",
+ "button-label": "Överför",
+ "amount": {
+ "title": "Belopp",
+ "description": "Ange beloppet av tokens du vill överföra",
+ "amount-label": "Belopp",
+ "balance-description": "Tillgängligt saldo:"
+ },
+ "recipients": {
+ "title": "Välj mottagare",
+ "description": "Välj vem som ska ta emot tokens",
+ "address-label": "Mottagaradress",
+ "address-placeholder": "Sök efter en användare",
+ "search-user-link": "Sök efter en användare istället...",
+ "manual-entry-link": "Ange adress manuellt..."
+ },
+ "summary": {
+ "title": "Granska och bekräfta överföring",
+ "description": "Verifiera detaljerna för din överföring innan du fortsätter",
+ "transfer-title": "Överför",
+ "transfer-description": "Överföringsoperationens detaljer",
+ "asset-label": "Tillgång",
+ "value-label": "Belopp",
+ "recipient-label": "Mottagare"
+ }
+ }
+ },
+ "bond": {
+ "transfer-form": {
+ "trigger-label": "Överför",
+ "title": "Överför obligation",
+ "description": "Överför dina obligationstokens till en annan adress",
+ "button-label": "Överför",
+ "amount": {
+ "title": "Belopp",
+ "description": "Ange beloppet av tokens du vill överföra",
+ "amount-label": "Belopp",
+ "balance-description": "Tillgängligt saldo:"
+ },
+ "recipients": {
+ "title": "Välj mottagare",
+ "description": "Välj vem som ska ta emot tokens",
+ "address-label": "Mottagaradress",
+ "address-placeholder": "Sök efter en användare",
+ "search-user-link": "Sök efter en användare istället...",
+ "manual-entry-link": "Ange adress manuellt..."
+ },
+ "summary": {
+ "title": "Granska och bekräfta överföring",
+ "description": "Verifiera detaljerna för din överföring innan du fortsätter",
+ "transfer-title": "Överför",
+ "transfer-description": "Överföringsoperationens detaljer",
+ "asset-label": "Tillgång",
+ "value-label": "Belopp",
+ "recipient-label": "Mottagare"
+ }
+ },
+ "redeem-form": {
+ "trigger-label": "Lösa in",
+ "title": "Lösa in obligation",
+ "description": "Lös in dina obligationstokens för den underliggande tillgången.",
+ "button-label": "Lösa in tillgångar",
+ "amount": {
+ "title": "Ange belopp",
+ "description": "Ange det belopp du vill lösa in.",
+ "amount-label": "Belopp",
+ "balance-description": "Tillgängligt saldo:"
+ },
+ "summary": {
+ "title": "Granska och bekräfta inlösen",
+ "description": "Verifiera detaljerna för din inlösen innan du fortsätter",
+ "redeem-title": "Lösa in",
+ "redeem-description": "Inlösningsoperationens detaljer",
+ "asset-label": "Tillgång",
+ "value-label": "Belopp"
+ }
+ }
+ }
+ },
+ "settings": {
+ "profile": {
+ "portfolio-management": "Portföljhantering",
+ "title": "Profil"
+ }
+ },
+ "transfer-form": {
+ "asset-types": "{type} {name} ({symbol})",
+ "amount": {
+ "amount-label": "Belopp",
+ "balance-description": "Saldo:",
+ "description": "Specificera det belopp du vill överföra",
+ "title": "Ange belopp",
+ "decimals-label": "Decimaler",
+ "decimals-description": "Antal decimaler för token"
+ },
+ "description": "Överför enkelt ett belopp av {type} {name} ({symbol}) genom att välja en mottagare och specificera beloppet.",
+ "recipients": {
+ "description": "Ange en plånboksadress för att skicka tokens direkt.",
+ "title": "Välj mottagare",
+ "wallet-address-label": "Plånboksadress"
+ },
+ "select-asset": {
+ "asset-description": "Välj en tillgång från din portfölj",
+ "asset-label": "Tillgång",
+ "description": "Välj den tillgång du vill överföra",
+ "title": "Välj tillgång",
+ "trigger-label": "Överför tillgångar"
+ },
+ "summary": {
+ "description": "Verifiera detaljerna för din överföring innan du fortsätter. Se till att mottagaren och beloppet är korrekta.",
+ "title": "Granska och bekräfta överföring"
+ },
+ "transfer": "Överför",
+ "transferring": "Överföring pågår..."
+ }
+ },
+ "theme": {
+ "dark": "Mörk",
+ "light": "Ljus",
+ "switch-to-mode": "Byt till {mode} läge",
+ "system": "System",
+ "toggle-label": "Växla tema"
+ },
+ "transactions": {
+ "sending": "Skickar transaktion",
+ "success": "Transaktion har behandlats framgångsrikt"
+ }
+}
diff --git a/examples/multiple/languine.json b/examples/multiple/languine.json
new file mode 100644
index 00000000..3f4d1a25
--- /dev/null
+++ b/examples/multiple/languine.json
@@ -0,0 +1,16 @@
+{
+ "locale": {
+ "source": "en",
+ "targets": [
+ "sv",
+ "en"
+ ]
+ },
+ "files": {
+ "json": {
+ "include": [
+ "src/locales/[locale]/*.json"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/examples/multiple/languine.lock b/examples/multiple/languine.lock
new file mode 100644
index 00000000..d389b88d
--- /dev/null
+++ b/examples/multiple/languine.lock
@@ -0,0 +1,12 @@
+version: 1
+files:
+ src/locales/en/hero.json:
+ hero.title: eaa915e5e764b18f0c68e0b8c5edae1f
+ hero.description: 9a6903167c131aa085d3eb1e5b06ff9b
+ hero.cta: f88b12c6e29f09d28dc74104cf8eb0bd
+ src/locales/en/menu.json:
+ menu.home: 43eea8e8ea25503a477a5443ff8292af
+ menu.about: 8f7f4c1ce7a4f933663d10543562b096
+ menu.contact: bbaff12800505b22a853e8b7f4eb6a22
+ menu.login: 99dea78007133396a7b8ed70578ac6ae
+ menu.register: 0ba7583639a274c434bbe6ef797115a4
diff --git a/examples/multiple/src/locales/en/hero.json b/examples/multiple/src/locales/en/hero.json
new file mode 100644
index 00000000..970702ea
--- /dev/null
+++ b/examples/multiple/src/locales/en/hero.json
@@ -0,0 +1,7 @@
+{
+ "hero": {
+ "title": "Hero Title",
+ "description": "Hero Description",
+ "cta": "Hero CTA"
+ }
+}
diff --git a/examples/multiple/src/locales/en/menu.json b/examples/multiple/src/locales/en/menu.json
new file mode 100644
index 00000000..1d7cfa23
--- /dev/null
+++ b/examples/multiple/src/locales/en/menu.json
@@ -0,0 +1,9 @@
+{
+ "menu": {
+ "home": "Home2",
+ "about": "About",
+ "contact": "Contact",
+ "login": "Login",
+ "register": "Register"
+ }
+}
diff --git a/examples/multiple/src/locales/sv/hero.json b/examples/multiple/src/locales/sv/hero.json
new file mode 100644
index 00000000..cb175801
--- /dev/null
+++ b/examples/multiple/src/locales/sv/hero.json
@@ -0,0 +1,7 @@
+{
+ "hero": {
+ "title": "Hjälte Titel2",
+ "description": "Hjälte Beskrivning",
+ "cta": "Hjälte CTA"
+ }
+}
diff --git a/examples/multiple/src/locales/sv/menu.json b/examples/multiple/src/locales/sv/menu.json
new file mode 100644
index 00000000..9a0ef28b
--- /dev/null
+++ b/examples/multiple/src/locales/sv/menu.json
@@ -0,0 +1,9 @@
+{
+ "menu": {
+ "about": "Om2",
+ "contact": "Kontakt2",
+ "login": "Logga in2",
+ "register": "Registrera2",
+ "home": "Hem2"
+ }
+}
diff --git a/examples/next-international/languine.json b/examples/next-international/languine.json
index ff2733d6..3a0c4511 100644
--- a/examples/next-international/languine.json
+++ b/examples/next-international/languine.json
@@ -1,8 +1,7 @@
{
- "projectId": "prj_q6gs5qsa091c2ex3ucdhjd95",
"locale": {
"source": "en",
- "targets": ["sv", "de"]
+ "targets": ["sv", "de", "fr", "it", "es", "pl", "no", "nl", "fi", "pt"]
},
"files": {
"ts": {
diff --git a/examples/next-international/languine.lock b/examples/next-international/languine.lock
index c62c067a..be8f3e41 100644
--- a/examples/next-international/languine.lock
+++ b/examples/next-international/languine.lock
@@ -1,16 +1,6 @@
version: 1
files:
locales/en.ts:
- hello: 8b1a9953c4611296a827abf8c47804d7
- welcome: 0d1ea4aafcf7aeec186e17aa1db6fb7e
- about.you: 0f164b8f901c34b60a9404edfbd936df
- scope.test: 22ee036710eb3575335c189c521fcdda
- scope.more.test: 22ee036710eb3575335c189c521fcdda
- scope.more.param: 12997ce10673c868d3216cede2fe8402
- scope.more.and.more.test: 22ee036710eb3575335c189c521fcdda
- scope.more.stars#one: d5c2b1f0808fcda59bdb56533bce44b3
- scope.more.stars#other: 4c75358e31702976a0fb81eae353fea5
- missing.translation.in.fr: d585ba23d44a6353781d3af2ed8425c5
- cows#one: 04b75fc47a0f8ef2efb80a771382e37f
- cows#other: 6e870695c85d05f4fbee4603c8bb32b9
- languine.hello: 32577afe238d06352e0499d3ddf2879c
+ web.home.hero.announcement: ea5f65285f88f63e92e063ba338eb638
+ web.home.hero.title: 87848172d8e4cfd6db9f6b7b455581a9
+ web.home.hero.description: 6af7262a0bdcc4f277a65507537d1101
diff --git a/examples/next-international/locales/de.ts b/examples/next-international/locales/de.ts
index ff3aa56b..83527745 100644
--- a/examples/next-international/locales/de.ts
+++ b/examples/next-international/locales/de.ts
@@ -1,15 +1,11 @@
export default {
- hello: "Hallo",
- welcome: "Hallo {name}!",
- "about.you": "Hallo {name}! Du bist {age} Jahre alt",
- "scope.test": "Ein Bereich",
- "scope.more.test": "Ein Bereich",
- "scope.more.param": "Ein Bereich mit {param}",
- "scope.more.and.more.test": "Ein Bereich",
- "scope.more.stars#one": "1 Stern auf GitHub",
- "scope.more.stars#other": "{count} Sterne auf GitHub",
- "missing.translation.in.fr": "Das sollte funktionieren",
- "cows#one": "Eine Kuh",
- "cows#other": "{count} Kühe",
- "languine.hello": "Hallo Languine"
+ web: {
+ home: {
+ hero: {
+ announcement: "Lesen Sie unseren neuesten Artikel",
+ title: "Transformieren Sie Ihre Geschäftsabläufe noch heute",
+ description: "In der heutigen schnelllebigen Welt verdient Ihr Unternehmen besser als veraltete Handelssysteme. Unsere innovative Plattform optimiert die Abläufe, reduziert die Komplexität und hilft kleinen Unternehmen, in der modernen Wirtschaft erfolgreich zu sein."
+ }
+ }
+ }
} as const;
diff --git a/examples/next-international/locales/en.ts b/examples/next-international/locales/en.ts
index 4a9b0099..278aa581 100644
--- a/examples/next-international/locales/en.ts
+++ b/examples/next-international/locales/en.ts
@@ -1,15 +1,12 @@
export default {
- hello: "Hello",
- welcome: "Hello {name}!",
- "about.you": "Hello {name}! You are {age} years old",
- "scope.test": "A scope",
- "scope.more.test": "A scope",
- "scope.more.param": "A scope with {param}",
- "scope.more.and.more.test": "A scope",
- "scope.more.stars#one": "1 star on GitHub",
- "scope.more.stars#other": "{count} stars on GitHub",
- "missing.translation.in.fr": "This should work",
- "cows#one": "A cow",
- "cows#other": "{count} cows",
- "languine.hello": "Hello Languine",
-} as const;
+ web: {
+ home: {
+ hero: {
+ announcement: "Read our latest article",
+ title: "Transform Your Business Operations Today",
+ description:
+ "In today's fast-paced world, your business deserves better than outdated trading systems. Our innovative platform streamlines operations, reduces complexity, and helps small businesses thrive in the modern economy.",
+ },
+ },
+ },
+};
diff --git a/examples/next-international/locales/es.ts b/examples/next-international/locales/es.ts
new file mode 100644
index 00000000..62ce8a51
--- /dev/null
+++ b/examples/next-international/locales/es.ts
@@ -0,0 +1,11 @@
+export default {
+ web: {
+ home: {
+ hero: {
+ announcement: "¡Hola {name}! Tienes {age} años",
+ title: "Transforma las Operaciones de Tu Negocio Hoy",
+ description: "En el mundo acelerado de hoy, tu negocio merece algo mejor que sistemas de comercio obsoletos. Nuestra plataforma innovadora optimiza las operaciones, reduce la complejidad y ayuda a las pequeñas empresas a prosperar en la economía moderna."
+ }
+ }
+ }
+} as const;
diff --git a/examples/next-international/locales/fi.ts b/examples/next-international/locales/fi.ts
new file mode 100644
index 00000000..e9c88459
--- /dev/null
+++ b/examples/next-international/locales/fi.ts
@@ -0,0 +1,11 @@
+export default {
+ web: {
+ home: {
+ hero: {
+ announcement: "Hei {name}! Olet {age} vuotta vanha",
+ title: "Muuta liiketoimintasi toimintoja tänään",
+ description: "Nykyajan nopeassa maailmassa liiketoimintasi ansaitsee parempaa kuin vanhentuneet kaupankäyntijärjestelmät. Innovatiivinen alustamme virtaviivaistaa toimintoja, vähentää monimutkaisuutta ja auttaa pieniä yrityksiä menestymään nykyaikaisessa taloudessa."
+ }
+ }
+ }
+} as const;
diff --git a/examples/next-international/locales/fr.ts b/examples/next-international/locales/fr.ts
new file mode 100644
index 00000000..a7f92aa9
--- /dev/null
+++ b/examples/next-international/locales/fr.ts
@@ -0,0 +1,11 @@
+export default {
+ web: {
+ home: {
+ hero: {
+ announcement: "Bonjour {name} ! Vous avez {age} ans",
+ title: "Transformez vos opérations commerciales dès aujourd'hui",
+ description: "Dans le monde rapide d'aujourd'hui, votre entreprise mérite mieux que des systèmes de trading obsolètes. Notre plateforme innovante simplifie les opérations, réduit la complexité et aide les petites entreprises à prospérer dans l'économie moderne."
+ }
+ }
+ }
+} as const;
diff --git a/examples/next-international/locales/it.ts b/examples/next-international/locales/it.ts
new file mode 100644
index 00000000..541bf92d
--- /dev/null
+++ b/examples/next-international/locales/it.ts
@@ -0,0 +1,12 @@
+export default {
+ web: {
+ home: {
+ hero: {
+ announcement: "Ciao {name}! Hai {age} anni",
+ title: "Trasforma le operazioni della tua azienda oggi",
+ description:
+ "Nel mondo frenetico di oggi, la tua azienda merita di meglio rispetto ai sistemi di trading obsoleti. La nostra piattaforma innovativa semplifica le operazioni, riduce la complessità e aiuta le piccole imprese a prosperare nell'economia moderna.",
+ },
+ },
+ },
+} as const;
diff --git a/examples/next-international/locales/nl.ts b/examples/next-international/locales/nl.ts
new file mode 100644
index 00000000..5765e966
--- /dev/null
+++ b/examples/next-international/locales/nl.ts
@@ -0,0 +1,11 @@
+export default {
+ web: {
+ home: {
+ hero: {
+ announcement: "Hallo {name}! Je bent {age} jaar oud",
+ title: "Transformeer Vandaag Je Bedrijfsvoering",
+ description: "In de snelle wereld van vandaag verdient je bedrijf beter dan verouderde handelssystemen. Ons innovatieve platform stroomlijnt de operaties, vermindert complexiteit en helpt kleine bedrijven te gedijen in de moderne economie."
+ }
+ }
+ }
+} as const;
diff --git a/examples/next-international/locales/no.ts b/examples/next-international/locales/no.ts
new file mode 100644
index 00000000..0ed71d57
--- /dev/null
+++ b/examples/next-international/locales/no.ts
@@ -0,0 +1,11 @@
+export default {
+ web: {
+ home: {
+ hero: {
+ announcement: "Hei {name}! Du er {age} år gammel",
+ title: "Transformér dine forretningsoperasjoner i dag",
+ description: "I dagens raske verden fortjener virksomheten din bedre enn utdaterte handelssystemer. Vår innovative plattform strømlinjeformer operasjoner, reduserer kompleksitet og hjelper små bedrifter med å blomstre i den moderne økonomien."
+ }
+ }
+ }
+} as const;
diff --git a/examples/next-international/locales/pl.ts b/examples/next-international/locales/pl.ts
new file mode 100644
index 00000000..fcf196b8
--- /dev/null
+++ b/examples/next-international/locales/pl.ts
@@ -0,0 +1,6 @@
+export default {
+ "web.home.hero.announcement": "Cześć {name}! Masz {age} lat",
+ "web.home.hero.title": "222",
+ "web.home.hero.description":
+ "W dzisiejszym szybkim świecie, Twoja firma zasługuje na więcej niż przestarzałe systemy handlowe. Nasza innowacyjna platforma usprawnia operacje, redukuje złożoność i pomaga małym firmom rozwijać się w nowoczesnej gospodarce.",
+} as const;
diff --git a/examples/next-international/locales/pt.ts b/examples/next-international/locales/pt.ts
new file mode 100644
index 00000000..62b663dc
--- /dev/null
+++ b/examples/next-international/locales/pt.ts
@@ -0,0 +1,11 @@
+export default {
+ web: {
+ home: {
+ hero: {
+ announcement: "Olá {name}! Você tem {age} anos",
+ title: "Transforme as Operações do Seu Negócio Hoje",
+ description: "No mundo acelerado de hoje, seu negócio merece mais do que sistemas de comércio ultrapassados. Nossa plataforma inovadora simplifica as operações, reduz a complexidade e ajuda pequenas empresas a prosperar na economia moderna."
+ }
+ }
+ }
+} as const;
diff --git a/examples/next-international/locales/sv.ts b/examples/next-international/locales/sv.ts
index 261e7261..81cbd95d 100644
--- a/examples/next-international/locales/sv.ts
+++ b/examples/next-international/locales/sv.ts
@@ -1,17 +1,11 @@
export default {
- "welcome.title": "Välkommen till appen",
- "welcome.description": "Detta är en beskrivning av appen",
- hello: "Hej",
- welcome: "Hej {name}!",
- "about.you": "Hej {name}! Du är {age} år gammal",
- "scope.test": "Ett omfång",
- "scope.more.test": "Ett omfång",
- "scope.more.param": "Ett omfång med {param}",
- "scope.more.and.more.test": "Ett omfång",
- "scope.more.stars#one": "1 stjärna på GitHub",
- "scope.more.stars#other": "{count} stjärnor på GitHub",
- "missing.translation.in.fr": "Detta borde fungera",
- "cows#one": "En ko",
- "cows#other": "{count} kor",
- "languine.hello": "Hej Languine"
+ web: {
+ home: {
+ hero: {
+ announcement: "Läs vår senaste artikel",
+ title: "Transformera dina affärsverksamheter idag",
+ description: "I dagens snabba värld förtjänar ditt företag bättre än föråldrade handelssystem. Vår innovativa plattform effektiviserar verksamheten, minskar komplexiteten och hjälper småföretag att blomstra i den moderna ekonomin."
+ }
+ }
+ }
} as const;
diff --git a/examples/next-intl/languine.lock b/examples/next-intl/languine.lock
index 4690ad4e..ce71815c 100644
--- a/examples/next-intl/languine.lock
+++ b/examples/next-intl/languine.lock
@@ -9,3 +9,20 @@ files:
HomePage.rich: 5b52f7ec9c36ff4e7529db7dee960271
HomePage.number: 3ec19f117576c611e4c7cdefb1e45670
HomePage.date: 3d3fb4ee4f80c4cef43a32d21ddb53ef
+ HomePage.testimonials.title: c8b70f7b83d0741ffe501fee665d5a2a
+ HomePage.testimonials.items[0].title: f857211672176537a843eab7be70d2ba
+ HomePage.testimonials.items[0].description: c50d4192eaf731e898ab4ad3d668360e
+ HomePage.testimonials.items[0].author.name: 9f2b80ed9fac811de9393e6eb3cc1501
+ HomePage.testimonials.items[0].author.image: 384183481f44944e652a4ad2c34afa3b
+ HomePage.testimonials.items[1].title: 61e9280329f934d79c77a0100a5e1246
+ HomePage.testimonials.items[1].description: 9f3f18fa18f5434a1c76f6740c48e58e
+ HomePage.testimonials.items[1].author.name: 695037b11203c0b0a77a3d6b47ba71ea
+ HomePage.testimonials.items[1].author.image: ffaedc70a04f4c785275d9a6b751dfab
+ HomePage.testimonials.items[2].title: caa65639a0b4bea79e610021c161952c
+ HomePage.testimonials.items[2].description: d700e9f790660381b21e3a02d8caa688
+ HomePage.testimonials.items[2].author.name: 63651b303126a9017bbdab177f35182b
+ HomePage.testimonials.items[2].author.image: 7f91ce2781e18537fb6229eaaf770b13
+ HomePage.testimonials.items[3].title: 035ef73f1fa9e97e62e031aeacc22f4c
+ HomePage.testimonials.items[3].description: 1bafa43ea32ca115e49d29b76afd9a3e
+ HomePage.testimonials.items[3].author.name: 45d4151f6e3685afdf8cd11459f2e0d7
+ HomePage.testimonials.items[3].author.image: d4027431de0c0b3cb1fd77ba67a638b7
diff --git a/examples/next-intl/messages/de.json b/examples/next-intl/messages/de.json
index e0756e2c..3a816f89 100644
--- a/examples/next-intl/messages/de.json
+++ b/examples/next-intl/messages/de.json
@@ -7,6 +7,43 @@
"escaped": "Escape geschweifte Klammern mit einfachen Anführungszeichen (z.B. '{name}')",
"rich": "Bitte beziehen Sie sich auf die Richtlinien.",
"number": "Verfügbar ab {price, number, currency}",
- "date": "Bestellt am {orderDate, date, medium}"
+ "date": "Bestellt am {orderDate, date, medium}",
+ "testimonials": {
+ "title": "Hören Sie von unserer florierenden Gemeinschaft",
+ "items": [
+ {
+ "title": "Beste Entscheidung",
+ "description": "Unser Ziel war es, den Handel für KMUs zu optimieren, um ihn einfacher und schneller als je zuvor zu gestalten, und das haben wir gemeinsam erreicht.",
+ "author": {
+ "name": "Hayden Bleasel",
+ "image": "https://github.com/haydenbleasel.png"
+ }
+ },
+ {
+ "title": "Wendepunkt",
+ "description": "Diese Plattform hat revolutioniert, wie wir unsere täglichen Abläufe handhaben. Die Effizienzgewinne waren bemerkenswert.",
+ "author": {
+ "name": "Lee Robinson",
+ "image": "https://github.com/leerob.png"
+ }
+ },
+ {
+ "title": "Übertraf die Erwartungen",
+ "description": "Die Implementierung verlief reibungslos und die Ergebnisse waren sofort sichtbar. Unser Team hat sich schnell angepasst und die Produktivität ist gestiegen.",
+ "author": {
+ "name": "shadcn",
+ "image": "https://github.com/shadcn.png"
+ }
+ },
+ {
+ "title": "Hervorragender Support",
+ "description": "Die Plattform ist nicht nur leistungsstark, sondern das Kundenserviceteam war auch außergewöhnlich darin, uns zu helfen, ihr Potenzial zu maximieren.",
+ "author": {
+ "name": "Pontus Abrahamsson",
+ "image": "https://github.com/pontusab.png"
+ }
+ }
+ ]
+ }
}
}
diff --git a/examples/next-intl/messages/en.json b/examples/next-intl/messages/en.json
index ed48a95f..a9e986fa 100644
--- a/examples/next-intl/messages/en.json
+++ b/examples/next-intl/messages/en.json
@@ -7,6 +7,43 @@
"escaped": "Escape curly braces with single quotes (e.g. '{name'})",
"rich": "Please refer to the guidelines.",
"number": "Available from {price, number, currency}",
- "date": "Ordered on {orderDate, date, medium}"
+ "date": "Ordered on {orderDate, date, medium}",
+ "testimonials": {
+ "title": "Hear from Our Thriving Community",
+ "items": [
+ {
+ "title": "Best decision",
+ "description": "Our goal was to streamline SMB trade, making it easier and faster than ever and we did it together.",
+ "author": {
+ "name": "Hayden Bleasel",
+ "image": "https://github.com/haydenbleasel.png"
+ }
+ },
+ {
+ "title": "Game changer",
+ "description": "This platform revolutionized how we handle our day-to-day operations. The efficiency gains have been remarkable.",
+ "author": {
+ "name": "Lee Robinson",
+ "image": "https://github.com/leerob.png"
+ }
+ },
+ {
+ "title": "Exceeded expectations",
+ "description": "Implementation was smooth and the results were immediate. Our team adapted quickly and productivity soared.",
+ "author": {
+ "name": "shadcn",
+ "image": "https://github.com/shadcn.png"
+ }
+ },
+ {
+ "title": "Outstanding support",
+ "description": "Not only is the platform powerful, but the customer support team has been exceptional in helping us maximize its potential.",
+ "author": {
+ "name": "Pontus Abrahamsson",
+ "image": "https://github.com/pontusab.png"
+ }
+ }
+ ]
+ }
}
}
diff --git a/examples/transform/languine.json b/examples/transform/languine.json
new file mode 100644
index 00000000..e89af2c6
--- /dev/null
+++ b/examples/transform/languine.json
@@ -0,0 +1,16 @@
+{
+ "projectId": "prj_bhwxxqg6fpepzgoelhqcje9b",
+ "locale": {
+ "source": "en",
+ "targets": [
+ "es"
+ ]
+ },
+ "files": {
+ "json": {
+ "include": [
+ "src/locales/[locale].json"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/examples/transform/src/components/example.tsx b/examples/transform/src/components/example.tsx
new file mode 100644
index 00000000..3c33d214
--- /dev/null
+++ b/examples/transform/src/components/example.tsx
@@ -0,0 +1,99 @@
+import React, { useState } from "react";
+
+interface UserProfile {
+ name: string;
+ notifications: number;
+ lastLogin: Date;
+ preferences: {
+ theme: "light" | "dark";
+ language: string;
+ };
+}
+
+export function UserDashboard() {
+ const [user, setUser] = useState({
+ name: "Alice Johnson",
+ notifications: 5,
+ lastLogin: new Date(),
+ preferences: {
+ theme: "light",
+ language: "en",
+ },
+ });
+
+ return (
+
+ {/* Welcome message with dynamic name */}
+
Welcome back, {user.name}!
+
+ {/* Notification section with pluralization */}
+
+
+ Notification Center
+
+
+ You have {user.notifications} unread notification
+ {user.notifications !== 1 ? "s" : ""}
+
+
+
+
+ {/* Preferences section with nested content */}
+
+
+ Your Preferences
+
+
+
+ Current theme:
+ {user.preferences.theme} mode
+
+
+
+ Interface language:
+
+ {user.preferences.language === "en" ? "English" : "Other"}
+
+
+
+
+ Last login: {user.lastLogin.toLocaleDateString()}
+
+
+
+ {/* Action buttons with different states */}
+
+
+
+
+
+ {/* Footer with complex message */}
+
+
+ );
+}
diff --git a/examples/transform/src/components/header.tsx b/examples/transform/src/components/header.tsx
new file mode 100644
index 00000000..21c1549a
--- /dev/null
+++ b/examples/transform/src/components/header.tsx
@@ -0,0 +1,27 @@
+import React from "react";
+
+export function Header() {
+ return (
+
+ );
+}
diff --git a/examples/transform/src/components/hero.tsx b/examples/transform/src/components/hero.tsx
new file mode 100644
index 00000000..3f5d4dfa
--- /dev/null
+++ b/examples/transform/src/components/hero.tsx
@@ -0,0 +1,17 @@
+import React from "react";
+
+export function Hero() {
+ return (
+
+
This is a hero text about our startup!
+
And this is the best description about it.
+
+
+
+
+
+
+
![This is a great hero of our startup]()
+
+ );
+}
diff --git a/examples/transform/src/components/react-native.tsx b/examples/transform/src/components/react-native.tsx
new file mode 100644
index 00000000..f6c603dc
--- /dev/null
+++ b/examples/transform/src/components/react-native.tsx
@@ -0,0 +1,100 @@
+import React from "react";
+import {
+ Alert,
+ StyleSheet,
+ Text,
+ TextInput,
+ TouchableOpacity,
+ View,
+} from "react-native";
+
+export const ProfileScreen = () => {
+ const handleSubmit = () => {
+ Alert.alert("Success", "Your profile has been updated successfully!", [
+ { text: "OK", onPress: () => console.log("OK Pressed") },
+ ]);
+ };
+
+ return (
+
+ My Profile
+
+
+ Full Name
+
+
+ Bio
+
+
+
+ Your bio should be at least 50 characters long
+
+
+
+ Save Changes
+
+
+ Last updated: Yesterday at 2:30 PM
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ padding: 20,
+ backgroundColor: "#fff",
+ },
+ title: {
+ fontSize: 24,
+ fontWeight: "bold",
+ marginBottom: 20,
+ textAlign: "center",
+ },
+ form: {
+ flex: 1,
+ },
+ label: {
+ fontSize: 16,
+ fontWeight: "600",
+ marginBottom: 8,
+ },
+ input: {
+ borderWidth: 1,
+ borderColor: "#ddd",
+ borderRadius: 8,
+ padding: 12,
+ marginBottom: 16,
+ },
+ multiline: {
+ height: 100,
+ textAlignVertical: "top",
+ },
+ hint: {
+ fontSize: 12,
+ color: "#666",
+ marginBottom: 20,
+ },
+ button: {
+ backgroundColor: "#007AFF",
+ padding: 16,
+ borderRadius: 8,
+ alignItems: "center",
+ },
+ buttonText: {
+ color: "#fff",
+ fontSize: 16,
+ fontWeight: "600",
+ },
+ footer: {
+ marginTop: 20,
+ textAlign: "center",
+ color: "#666",
+ fontSize: 12,
+ },
+});
diff --git a/package.json b/package.json
index ca946b5f..888a126b 100644
--- a/package.json
+++ b/package.json
@@ -19,6 +19,7 @@
"@changesets/changelog-github": "^0.5.0",
"@changesets/cli": "^2.27.12",
"@types/bun": "^1.2.2",
+ "@types/jscodeshift": "^0.12.0",
"turbo": "2.4.0",
"typescript": "^5.7.3"
},
diff --git a/packages/cli/package.json b/packages/cli/package.json
index 66e4671e..c05cf7b5 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -1,6 +1,6 @@
{
"name": "languine",
- "version": "3.0.6",
+ "version": "3.1.2",
"type": "module",
"bin": "dist/index.js",
"main": "dist/config.js",
@@ -34,6 +34,7 @@
"fast-glob": "^3.3.3",
"fast-xml-parser": "^4.5.1",
"gettext-parser": "^8.0.0",
+ "jscodeshift": "^0.15.1",
"jsdom": "^26.0.0",
"json2php": "^0.0.12",
"json5": "^2.2.3",
@@ -54,6 +55,7 @@
},
"devDependencies": {
"@types/gettext-parser": "^4.0.4",
+ "@types/jscodeshift": "^0.11.11",
"@types/mdast": "^4.0.4",
"@types/plist": "^3.0.5",
"tsup": "^8.3.6",
diff --git a/packages/cli/src/commands/overrides/index.ts b/packages/cli/src/commands/overrides/index.ts
new file mode 100644
index 00000000..d8feee91
--- /dev/null
+++ b/packages/cli/src/commands/overrides/index.ts
@@ -0,0 +1,28 @@
+import { select } from "@clack/prompts";
+import { isCancel } from "@clack/prompts";
+import { pullCommand } from "./pull.js";
+
+export async function commands(subCommand?: string) {
+ if (subCommand) {
+ switch (subCommand) {
+ case "pull":
+ await pullCommand();
+ break;
+ default:
+ console.error("Unknown overrides subcommand:", subCommand);
+ process.exit(1);
+ }
+ return;
+ }
+
+ const overridesCommand = await select({
+ message: "What would you like to do?",
+ options: [{ value: "pull", label: "Pull overrides from the server" }],
+ });
+
+ if (isCancel(overridesCommand)) {
+ process.exit(0);
+ }
+
+ await commands(overridesCommand as string);
+}
diff --git a/packages/cli/src/commands/overrides/pull.ts b/packages/cli/src/commands/overrides/pull.ts
new file mode 100644
index 00000000..8353e847
--- /dev/null
+++ b/packages/cli/src/commands/overrides/pull.ts
@@ -0,0 +1,162 @@
+import { mkdir } from "node:fs/promises";
+import { readFile, writeFile } from "node:fs/promises";
+import { dirname, join } from "node:path";
+import { createParser } from "@/parsers/index.ts";
+import type { Config } from "@/types.js";
+import { client } from "@/utils/api.js";
+import { loadConfig } from "@/utils/config.ts";
+import { loadSession } from "@/utils/session.js";
+import { intro, outro, spinner } from "@clack/prompts";
+import chalk from "chalk";
+import { z } from "zod";
+
+interface Translation {
+ translationKey: string;
+ translatedText: string;
+ sourceFile: string;
+ targetLanguage: string;
+ sourceFormat: string;
+}
+
+type GroupedOverrides = Record>;
+
+const argsSchema = z.array(z.string()).transform((args) => {
+ const localesIndex = args.findIndex((arg) => arg.startsWith("--locales="));
+ return {
+ locales:
+ localesIndex !== -1 ? args[localesIndex].slice(9).split(",") : undefined,
+ };
+});
+
+// Helper function to get target file path
+function getTargetPath(
+ sourceFile: string,
+ locale: string,
+ config: Config,
+): string {
+ // Find the matching file format configuration based on the source file extension
+ const sourceExt = sourceFile.split(".").pop() || "";
+ const fileFormat = Object.entries(config.files).find(([format]) => {
+ // Check if the format matches the file extension
+ // Handle special cases like 'ts' matching '.ts' files
+ return format === sourceExt;
+ });
+
+ if (!fileFormat) {
+ throw new Error(`No matching file configuration found for ${sourceFile}`);
+ }
+
+ // Get the first include pattern
+ const pattern = fileFormat[1].include[0];
+ const globPattern = typeof pattern === "string" ? pattern : pattern.glob;
+
+ if (globPattern.includes("*")) {
+ // If the pattern contains a wildcard, it's a directory-based pattern
+ // Replace [locale] in the directory structure and keep the source filename
+ const sourceFilename = sourceFile.split("/").pop() || "";
+ const targetDir = dirname(globPattern).replace("[locale]", locale);
+ return join(targetDir, sourceFilename);
+ }
+
+ // If no wildcard, it's a file-based pattern
+ // Simply replace [locale] in the entire pattern
+ return globPattern.replace("[locale]", locale);
+}
+
+export async function pullCommand(args: string[] = []) {
+ intro("Pull translation overrides");
+
+ // Check authentication
+ const session = loadSession();
+ if (!session) {
+ console.log(chalk.yellow("You need to be logged in to pull overrides."));
+ process.exit(1);
+ }
+
+ // Load config
+ const config = await loadConfig();
+ if (!config) {
+ outro(
+ chalk.red(
+ "No configuration file found. Run 'languine init' to create one.",
+ ),
+ );
+ process.exit(1);
+ }
+
+ const { locales } = argsSchema.parse(args);
+ const targetLocales = locales || config.locale.targets;
+
+ const s = spinner();
+ s.start("Pulling overrides...");
+
+ try {
+ const overrides = await client.translate.getOverriddenTranslations.query({
+ projectId: config.projectId!,
+ });
+
+ // Group overrides by source file and target language
+ const groupedOverrides = overrides.reduce(
+ (acc: GroupedOverrides, override: Translation) => {
+ if (!acc[override.sourceFile]) {
+ acc[override.sourceFile] = {};
+ }
+ if (!acc[override.sourceFile][override.targetLanguage]) {
+ acc[override.sourceFile][override.targetLanguage] = [];
+ }
+ acc[override.sourceFile][override.targetLanguage].push(override);
+ return acc;
+ },
+ {} as GroupedOverrides,
+ );
+
+ // Process each source file that has overrides
+ for (const [sourceFile, localeOverrides] of Object.entries(
+ groupedOverrides,
+ )) {
+ // Process each locale that has overrides for this file
+ for (const [locale, overridesForLocale] of Object.entries(
+ localeOverrides as Record,
+ )) {
+ if (!targetLocales.includes(locale)) continue;
+ if (overridesForLocale.length === 0) continue;
+
+ const targetPath = getTargetPath(sourceFile, locale, config);
+ const parser = createParser({
+ type: overridesForLocale[0].sourceFormat,
+ });
+
+ // Create directory if it doesn't exist
+ await mkdir(dirname(targetPath), { recursive: true });
+
+ // Read existing translations or create empty object
+ let existingTranslations: Record = {};
+ try {
+ const content = await readFile(targetPath, "utf-8");
+ existingTranslations = await parser.parse(content);
+ } catch (error) {
+ // File doesn't exist or can't be parsed, use empty object
+ }
+
+ // Apply overrides
+ for (const override of overridesForLocale) {
+ existingTranslations[override.translationKey] =
+ override.translatedText;
+ }
+
+ // Write back to file
+ const serialized = await parser.serialize(locale, existingTranslations);
+ await writeFile(targetPath, serialized);
+ }
+ }
+
+ s.stop("Overrides pulled successfully");
+ outro(
+ chalk.green("Overrides have been applied to your translation files."),
+ );
+ } catch (error) {
+ s.stop("Failed to pull overrides");
+ outro(chalk.red(`Error: ${(error as Error).message}`));
+ process.exit(1);
+ }
+}
diff --git a/packages/cli/src/commands/run.ts b/packages/cli/src/commands/run.ts
index 48a462ab..4be2e108 100644
--- a/packages/cli/src/commands/run.ts
+++ b/packages/cli/src/commands/run.ts
@@ -1,8 +1,11 @@
import { commands as authCommands } from "@/commands/auth/index.ts";
import { commands as initCommands } from "@/commands/init.ts";
import { localeCommand } from "@/commands/locale.ts";
+import { commands as overridesCommands } from "@/commands/overrides/index.ts";
import { syncCommand } from "@/commands/sync.ts";
+import { transformCommand } from "@/commands/transform.ts";
import { translateCommand } from "@/commands/translate.ts";
+import { commands as translationsCommands } from "@/commands/translations/index.ts";
import { isCancel, select } from "@clack/prompts";
import chalk from "chalk";
@@ -76,6 +79,21 @@ const COMMANDS: Record = {
["remove ", "Remove target locales"],
],
},
+ overrides: {
+ description: "Manage translation overrides",
+ usage: "languine overrides ",
+ subcommands: [["pull", "Pull overrides from the server"]],
+ },
+ translations: {
+ description: "Manage translations",
+ usage: "languine translations ",
+ subcommands: [["delete", "Delete all translation keys for the project"]],
+ },
+ transform: {
+ description: "Transform files",
+ usage: "languine transform ",
+ subcommands: [["", "Directory containing React components"]],
+ },
};
function showHelp(command?: keyof typeof COMMANDS) {
@@ -162,6 +180,7 @@ export async function runCommands() {
{ value: "init", label: "Initialize a new Languine configuration" },
{ value: "auth", label: "Manage authentication" },
{ value: "translate", label: "Translate files" },
+ { value: "transform", label: "Transform files" },
{
value: "sync",
label: "Sync deleted keys between source and target files",
@@ -170,6 +189,14 @@ export async function runCommands() {
value: "locale",
label: "Manage target locales",
},
+ {
+ value: "overrides",
+ label: "Manage translation overrides",
+ },
+ {
+ value: "translations",
+ label: "Manage translations",
+ },
{
value: "help",
label: "Show help for a command",
@@ -202,6 +229,15 @@ export async function runCommands() {
case "locale":
await localeCommand();
break;
+ case "transform":
+ await transformCommand();
+ break;
+ case "overrides":
+ await overridesCommands();
+ break;
+ case "translations":
+ await translationsCommands();
+ break;
}
return;
}
@@ -231,10 +267,23 @@ export async function runCommands() {
await localeCommand([subCommand, ...args].filter(Boolean));
break;
}
- default:
+ case "transform": {
+ await transformCommand([subCommand, ...args].filter(Boolean));
+ break;
+ }
+ case "overrides": {
+ await overridesCommands(subCommand);
+ break;
+ }
+ case "translations": {
+ await translationsCommands(subCommand, args);
+ break;
+ }
+ default: {
console.error(chalk.red(`Unknown command: ${mainCommand}`));
showHelp();
process.exit(1);
+ }
}
return;
}
@@ -254,6 +303,14 @@ export async function runCommands() {
value: "locale",
label: "Manage target locales",
},
+ {
+ value: "overrides",
+ label: "Manage translation overrides",
+ },
+ {
+ value: "translations",
+ label: "Manage translations",
+ },
{
value: "help",
label: "Show help for a command",
@@ -286,5 +343,11 @@ export async function runCommands() {
case "locale":
await localeCommand();
break;
+ case "overrides":
+ await overridesCommands();
+ break;
+ case "translations":
+ await translationsCommands();
+ break;
}
}
diff --git a/packages/cli/src/commands/transform.ts b/packages/cli/src/commands/transform.ts
new file mode 100644
index 00000000..99c81e27
--- /dev/null
+++ b/packages/cli/src/commands/transform.ts
@@ -0,0 +1,139 @@
+import * as path from "node:path";
+import { fileURLToPath } from "node:url";
+import { loadConfig } from "@/utils/config.ts";
+import { getAPIKey } from "@/utils/session.ts";
+import { intro, note, outro, spinner } from "@clack/prompts";
+import fastGlob from "fast-glob";
+import { run } from "jscodeshift/src/Runner.js";
+import { simpleGit } from "simple-git";
+import { z } from "zod";
+
+const __dirname = path.dirname(fileURLToPath(import.meta.url));
+const git = simpleGit();
+
+const argsSchema = z.array(z.string()).transform((args) => {
+ // Helper function to find value for a flag
+ const getFlagValue = (flag: string) => {
+ for (let i = 0; i < args.length - 1; i++) {
+ if (args[i] === flag && !args[i + 1].startsWith("--")) {
+ return args[i + 1];
+ }
+ }
+ return undefined;
+ };
+
+ return {
+ directory: args[0],
+ apiKey: getFlagValue("--api-key"),
+ projectId: getFlagValue("--project-id"),
+ };
+});
+
+export async function transformCommand(args: string[] = []) {
+ const {
+ directory,
+ apiKey: overrideApiKey,
+ projectId: overrideProjectId,
+ } = argsSchema.parse(args);
+
+ if (!directory) {
+ console.error("Error: Directory argument is required");
+ process.exit(1);
+ }
+
+ if (overrideApiKey) {
+ process.env.LANGUINE_API_KEY = overrideApiKey;
+ }
+
+ const apiKey = getAPIKey();
+
+ if (!apiKey) {
+ throw new Error("No API key found. Please run `languine login` first.");
+ }
+
+ intro("🔍 Starting transformation process");
+
+ const spin = spinner();
+
+ try {
+ // Check for uncommitted changes
+ const status = await git.status();
+ if (
+ status.modified.length > 0 ||
+ status.not_added.length > 0 ||
+ status.staged.length > 0
+ ) {
+ note(
+ "You have uncommitted changes. Please commit or stash your changes before running the transform command.",
+ "Error",
+ );
+ process.exit(1);
+ }
+
+ // Load config file from working directory
+ const config = await loadConfig();
+
+ // If config is null, it means init was just run and we should exit
+ if (!config) {
+ process.exit(0);
+ }
+
+ const projectId =
+ overrideProjectId || config.projectId || process.env.LANGUINE_PROJECT_ID;
+
+ if (!projectId) {
+ note(
+ "Missing project ID. Get one at https://languine.ai/login \nand provide it via --project-id, config file, or LANGUINE_PROJECT_ID",
+ "Error",
+ );
+ process.exit(1);
+ }
+
+ const sourceLocale = config.locale.source;
+
+ if (!sourceLocale) {
+ note(
+ "Missing source locale in config file. Please run `languine init` to set up your locales.",
+ "Error",
+ );
+ process.exit(1);
+ }
+
+ spin.start("Finding files to transform");
+
+ // Find all React component files
+ const files = await fastGlob(["**/*.tsx", "**/*.jsx"], {
+ cwd: directory,
+ absolute: true,
+ ignore: ["**/node_modules/**", "**/.*/**", "**/dist/**", "**/build/**"],
+ });
+
+ spin.stop(`Found ${files.length} files to transform`);
+
+ if (files.length === 0) {
+ outro("No files found in the specified directory");
+ return;
+ }
+
+ // Run the transform
+ const result = await run(
+ path.join(__dirname, "../dist/utils/transform.js"),
+ files,
+ {
+ parser: "tsx",
+ silent: true,
+ },
+ );
+
+ if (!result.ok) {
+ throw new Error("Transform failed");
+ }
+
+ spin.stop("Transformation complete");
+ outro(`✨ Successfully processed ${files.length} files`);
+ } catch (error) {
+ spin.stop("Error during transformation");
+ console.error("Error:", error);
+ process.exit(1);
+ }
+}
diff --git a/packages/cli/src/commands/translate.ts b/packages/cli/src/commands/translate.ts
index 94738356..3d22d96b 100644
--- a/packages/cli/src/commands/translate.ts
+++ b/packages/cli/src/commands/translate.ts
@@ -289,42 +289,9 @@ export async function translateCommand(args: string[] = []) {
commitLink: gitInfo?.commitLink,
});
- if (error?.code === "LANGUAGES_LIMIT_REACHED") {
- s.stop();
- note(
- "Languages limit reached. Upgrade your plan to increase your limit.",
- "Limit reached",
- );
-
- const shouldUpgrade = await select({
- message: "Would you like to upgrade your plan now?",
- options: [
- { label: "Upgrade plan", value: "upgrade" },
- { label: "Cancel", value: "cancel" },
- ],
- });
-
- if (shouldUpgrade === "upgrade") {
- if (meta?.plan === "free") {
- await open(
- `${LANGUINE_BASE_URL}/${meta?.organizationId}/default/settings?tab=billing&modal=plan&tier=${Number(meta?.tier) + 1}`,
- );
- } else {
- await open(
- `${LANGUINE_BASE_URL}/api/portal?id=${meta?.polarCustomerId}`,
- );
- }
-
- note("Run `languine translate` again to continue.", "What's next?");
- }
-
- process.exit(1);
- }
-
if (
error?.code === "DOCUMENT_LIMIT_REACHED" ||
- error?.code === "KEY_LIMIT_REACHED" ||
- error?.code === "LANGUAGES_LIMIT_REACHED"
+ error?.code === "KEY_LIMIT_REACHED"
) {
s.stop();
@@ -341,12 +308,6 @@ export async function translateCommand(args: string[] = []) {
"Limit reached",
);
break;
- case "LANGUAGES_LIMIT_REACHED":
- note(
- "Languages limit reached. Upgrade your plan to increase your limit.",
- "Limit reached",
- );
- break;
}
const shouldUpgrade = await select({
diff --git a/packages/cli/src/commands/translations/delete.ts b/packages/cli/src/commands/translations/delete.ts
new file mode 100644
index 00000000..9dea3be2
--- /dev/null
+++ b/packages/cli/src/commands/translations/delete.ts
@@ -0,0 +1,141 @@
+import { unlink, writeFile } from "node:fs/promises";
+import { join } from "node:path";
+import { client } from "@/utils/api.js";
+import { loadConfig } from "@/utils/config.ts";
+import { configFile } from "@/utils/config.ts";
+import { transformLocalePath } from "@/utils/path.js";
+import { loadSession } from "@/utils/session.ts";
+import { confirm, intro, outro, spinner } from "@clack/prompts";
+import chalk from "chalk";
+import glob from "fast-glob";
+import { z } from "zod";
+
+const argsSchema = z.array(z.string()).transform((args) => {
+ return {
+ force: args.includes("--force"),
+ };
+});
+
+export async function deleteCommand(args: string[] = []) {
+ const { force } = argsSchema.parse(args);
+
+ intro("Delete all translation files");
+
+ // Check authentication
+ const session = loadSession();
+ if (!session) {
+ console.log(
+ chalk.yellow("You need to be logged in to delete translations."),
+ );
+ process.exit(1);
+ }
+
+ if (!force) {
+ const shouldProceed = await confirm({
+ message: chalk.yellow(
+ "⚠️ This will delete all target translation files and remote translations. Are you sure you want to proceed?",
+ ),
+ });
+
+ if (!shouldProceed) {
+ outro("Operation cancelled");
+ process.exit(0);
+ }
+ }
+
+ const s = spinner();
+ s.start("Deleting translation files...");
+
+ try {
+ // Load config file
+ const config = await loadConfig();
+ const { path: configPath } = await configFile();
+
+ if (!config) {
+ throw new Error(
+ "Configuration file not found. Please run `languine init` to create one.",
+ );
+ }
+
+ if (!config.projectId) {
+ throw new Error(
+ "Missing project ID. Please set it in your configuration file.",
+ );
+ }
+
+ // Delete remote translations first
+ try {
+ await client.translate.deleteTranslations.mutate({
+ projectId: config.projectId,
+ });
+ s.message("Remote translations deleted");
+ } catch (error) {
+ console.error(chalk.red("Failed to delete remote translations"));
+ throw error;
+ }
+
+ const { source: sourceLocale, targets: targetLocales } = config.locale;
+ let deletedCount = 0;
+
+ // Process each file configuration to delete local files
+ for (const [type, fileConfig] of Object.entries(config.files)) {
+ const { include } = fileConfig;
+
+ // Process each file pattern
+ for (const pattern of include) {
+ const globPattern =
+ typeof pattern === "object" ? pattern.glob : pattern;
+ const sourcePattern = globPattern.replace("[locale]", sourceLocale);
+
+ // Find all matching source files
+ const sourceFiles = await glob(sourcePattern, { absolute: true });
+
+ for (const sourceFilePath of sourceFiles) {
+ // Process each target locale
+ for (const targetLocale of targetLocales) {
+ try {
+ const targetPath = transformLocalePath(
+ sourceFilePath,
+ sourceLocale,
+ targetLocale,
+ process.cwd(),
+ );
+
+ // Delete the target file
+ await unlink(targetPath);
+ deletedCount++;
+ s.message(`Deleted file for ${targetLocale}`);
+ } catch (error) {
+ // Ignore file not found errors
+ if ((error as NodeJS.ErrnoException).code !== "ENOENT") {
+ console.error(
+ chalk.red(`Failed to delete file for ${targetLocale}`),
+ );
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // Empty the languine.lock file
+ try {
+ const lockPath = join(process.cwd(), "languine.lock");
+ await writeFile(lockPath, "", "utf-8");
+ s.message("Cleared languine.lock file");
+ } catch (error) {
+ console.error(chalk.red("Failed to clear languine.lock file"));
+ }
+
+ s.stop("Translation files deleted successfully");
+ outro(
+ chalk.green(
+ `Deleted ${deletedCount} translation ${deletedCount === 1 ? "file" : "files"} and remote translations.`,
+ ),
+ );
+ } catch (error) {
+ s.stop("Failed to delete translation files");
+ outro(chalk.red(`Error: ${(error as Error).message}`));
+ process.exit(1);
+ }
+}
diff --git a/packages/cli/src/commands/translations/index.ts b/packages/cli/src/commands/translations/index.ts
new file mode 100644
index 00000000..f49ed1ab
--- /dev/null
+++ b/packages/cli/src/commands/translations/index.ts
@@ -0,0 +1,11 @@
+import { deleteCommand } from "./delete.js";
+
+export async function commands(subCommand?: string, args: string[] = []) {
+ switch (subCommand) {
+ case "delete":
+ await deleteCommand(args);
+ break;
+ default:
+ throw new Error('Please specify a subcommand: "delete"');
+ }
+}
diff --git a/packages/cli/src/parsers/__tests__/javascript.test.ts b/packages/cli/src/parsers/__tests__/javascript.test.ts
index 26bf4145..c0b50ea9 100644
--- a/packages/cli/src/parsers/__tests__/javascript.test.ts
+++ b/packages/cli/src/parsers/__tests__/javascript.test.ts
@@ -222,6 +222,155 @@ describe("JavaScript/TypeScript Parser", () => {
`export default {\n b: "second",\n a: "first",\n c: "third"\n} as const;\n`,
);
});
+
+ test("handles TypeScript dictionary format with type imports", async () => {
+ const input = `import type { Dictionary } from "../types";
+
+const dictionary: Dictionary = {
+ web: {
+ home: {
+ hero: {
+ title: "Welcome",
+ description: "This is a test"
+ }
+ }
+ }
+};
+
+export default dictionary;`;
+ const result = await parser.parse(input);
+ expect(result).toEqual({
+ "web.home.hero.title": "Welcome",
+ "web.home.hero.description": "This is a test",
+ });
+ });
+
+ test("handles TypeScript dictionary format with multiple imports", async () => {
+ const input = `import type { Dictionary } from "../types";
+import type { OtherType } from "./other";
+
+const dictionary: Dictionary = {
+ web: {
+ home: {
+ title: "Hello"
+ }
+ }
+};
+
+export default dictionary;`;
+ const result = await parser.parse(input);
+ expect(result).toEqual({
+ "web.home.title": "Hello",
+ });
+ });
+
+ test("handles TypeScript dictionary format with comments", async () => {
+ const input = `import type { Dictionary } from "../types";
+
+// Main dictionary
+const dictionary: Dictionary = {
+ // Web section
+ web: {
+ /* Home page translations */
+ home: {
+ title: "Welcome"
+ }
+ }
+};
+
+export default dictionary;`;
+ const result = await parser.parse(input);
+ expect(result).toEqual({
+ "web.home.title": "Welcome",
+ });
+ });
+
+ test("handles different variable names for dictionary", async () => {
+ const input = `import type { Dictionary } from "../types";
+
+const translations: Dictionary = {
+ web: {
+ title: "Hello"
+ }
+};
+
+export default translations;`;
+ const result = await parser.parse(input);
+ expect(result).toEqual({
+ "web.title": "Hello",
+ });
+ });
+
+ test("handles different type names for dictionary", async () => {
+ const input = `import type { Translations } from "../types";
+
+const dictionary: Translations = {
+ web: {
+ title: "Hello"
+ }
+};
+
+export default dictionary;`;
+ const result = await parser.parse(input);
+ expect(result).toEqual({
+ "web.title": "Hello",
+ });
+ });
+
+ test("handles different variable and type names", async () => {
+ const input = `import type { LocaleMessages } from "./types";
+
+const messages: LocaleMessages = {
+ web: {
+ title: "Hello"
+ }
+};
+
+export default messages;`;
+ const result = await parser.parse(input);
+ expect(result).toEqual({
+ "web.title": "Hello",
+ });
+ });
+
+ test("handles type annotation from different import path", async () => {
+ const input = `import type { I18nDictionary } from "@/i18n/types";
+
+const i18n: I18nDictionary = {
+ web: {
+ title: "Hello"
+ }
+};
+
+export default i18n;`;
+ const result = await parser.parse(input);
+ expect(result).toEqual({
+ "web.title": "Hello",
+ });
+ });
+
+ test("handles direct dictionary definition without type annotations", async () => {
+ const input = `const dictionary = {
+ web: {
+ home: {
+ hero: {
+ announcement: "Read our latest article",
+ title: "Transform Your Business Operations Today",
+ description: "In today's fast-paced world, your business deserves better than outdated trading systems. Our innovative platform streamlines operations, reduces complexity, and helps small businesses thrive in the modern economy."
+ }
+ }
+ }
+};
+
+export default dictionary;`;
+ const result = await parser.parse(input);
+ expect(result).toEqual({
+ "web.home.hero.announcement": "Read our latest article",
+ "web.home.hero.title": "Transform Your Business Operations Today",
+ "web.home.hero.description":
+ "In today's fast-paced world, your business deserves better than outdated trading systems. Our innovative platform streamlines operations, reduces complexity, and helps small businesses thrive in the modern economy.",
+ });
+ });
});
describe("serialize", () => {
diff --git a/packages/cli/src/parsers/__tests__/json.test.ts b/packages/cli/src/parsers/__tests__/json.test.ts
index e237fdab..e720e346 100644
--- a/packages/cli/src/parsers/__tests__/json.test.ts
+++ b/packages/cli/src/parsers/__tests__/json.test.ts
@@ -38,6 +38,47 @@ describe("JSON Parser", () => {
});
});
+ test("parses arrays and preserves array structure", async () => {
+ const input = `{
+ "testimonials": {
+ "title": "Hear from Our Thriving Community",
+ "items": [
+ {
+ "title": "Best decision",
+ "description": "Our goal was to streamline SMB trade, making it easier and faster than ever and we did it together.",
+ "author": {
+ "name": "Hayden Bleasel",
+ "image": "https://github.com/haydenbleasel.png"
+ }
+ },
+ {
+ "title": "Game changer",
+ "description": "This platform revolutionized how we handle our day-to-day operations. The efficiency gains have been remarkable.",
+ "author": {
+ "name": "Lee Robinson",
+ "image": "https://github.com/leerob.png"
+ }
+ }
+ ]
+ }
+ }`;
+ const result = await parser.parse(input);
+ expect(result).toEqual({
+ "testimonials.title": "Hear from Our Thriving Community",
+ "testimonials.items[0].title": "Best decision",
+ "testimonials.items[0].description":
+ "Our goal was to streamline SMB trade, making it easier and faster than ever and we did it together.",
+ "testimonials.items[0].author.name": "Hayden Bleasel",
+ "testimonials.items[0].author.image":
+ "https://github.com/haydenbleasel.png",
+ "testimonials.items[1].title": "Game changer",
+ "testimonials.items[1].description":
+ "This platform revolutionized how we handle our day-to-day operations. The efficiency gains have been remarkable.",
+ "testimonials.items[1].author.name": "Lee Robinson",
+ "testimonials.items[1].author.image": "https://github.com/leerob.png",
+ });
+ });
+
test("repairs malformed JSON", async () => {
const input = `{
hello: "world",
@@ -184,5 +225,48 @@ describe("JSON Parser", () => {
const result = await parser.serialize("en", translations);
expect(JSON.parse(result)).toEqual({});
});
+
+ test("serializes arrays correctly", async () => {
+ const input = {
+ "testimonials.title": "Hear from Our Thriving Community",
+ "testimonials.items[0].title": "Best decision",
+ "testimonials.items[0].description":
+ "Our goal was to streamline SMB trade, making it easier and faster than ever and we did it together.",
+ "testimonials.items[0].author.name": "Hayden Bleasel",
+ "testimonials.items[0].author.image":
+ "https://github.com/haydenbleasel.png",
+ "testimonials.items[1].title": "Game changer",
+ "testimonials.items[1].description":
+ "This platform revolutionized how we handle our day-to-day operations. The efficiency gains have been remarkable.",
+ "testimonials.items[1].author.name": "Lee Robinson",
+ "testimonials.items[1].author.image": "https://github.com/leerob.png",
+ };
+ const result = await parser.serialize("en", input);
+ expect(JSON.parse(result)).toEqual({
+ testimonials: {
+ title: "Hear from Our Thriving Community",
+ items: [
+ {
+ title: "Best decision",
+ description:
+ "Our goal was to streamline SMB trade, making it easier and faster than ever and we did it together.",
+ author: {
+ name: "Hayden Bleasel",
+ image: "https://github.com/haydenbleasel.png",
+ },
+ },
+ {
+ title: "Game changer",
+ description:
+ "This platform revolutionized how we handle our day-to-day operations. The efficiency gains have been remarkable.",
+ author: {
+ name: "Lee Robinson",
+ image: "https://github.com/leerob.png",
+ },
+ },
+ ],
+ },
+ });
+ });
});
});
diff --git a/packages/cli/src/parsers/core/flatten.ts b/packages/cli/src/parsers/core/flatten.ts
index 997bdbfa..e2787af0 100644
--- a/packages/cli/src/parsers/core/flatten.ts
+++ b/packages/cli/src/parsers/core/flatten.ts
@@ -14,7 +14,22 @@ export function flatten(
for (const [key, value] of Object.entries(obj)) {
const newKey = prefix ? `${prefix}.${key}` : key;
- if (typeof value === "object" && value !== null) {
+ if (Array.isArray(value)) {
+ value.forEach((item, index) => {
+ if (typeof item === "object" && item !== null) {
+ Object.assign(
+ result,
+ flatten(item as Record, `${newKey}[${index}]`),
+ );
+ } else if (typeof item === "string") {
+ result[`${newKey}[${index}]`] = item;
+ } else {
+ throw new Error(
+ `Invalid translation value at "${newKey}[${index}]": expected string or object, got ${typeof item}`,
+ );
+ }
+ });
+ } else if (typeof value === "object" && value !== null) {
Object.assign(result, flatten(value as Record, newKey));
} else if (typeof value === "string") {
result[newKey] = value;
@@ -39,16 +54,35 @@ export function unflatten(
const result: Record = {};
for (const [key, value] of Object.entries(obj)) {
- const parts = key.split(".");
+ const parts = key.split(/\.|\[|\]/).filter(Boolean);
let current = result;
for (let i = 0; i < parts.length - 1; i++) {
const part = parts[i];
- current[part] = current[part] || {};
- current = current[part] as Record;
+ const nextPart = parts[i + 1];
+ const isNextPartArrayIndex = /^\d+$/.test(nextPart);
+
+ if (!(part in current)) {
+ current[part] = isNextPartArrayIndex ? [] : {};
+ }
+
+ if (Array.isArray(current[part]) && isNextPartArrayIndex) {
+ const index = Number.parseInt(nextPart, 10);
+ if (!(index in (current[part] as unknown[]))) {
+ (current[part] as unknown[])[index] = {};
+ }
+ current = (current[part] as unknown[])[index] as Record<
+ string,
+ unknown
+ >;
+ i++; // Skip the array index part
+ } else {
+ current = current[part] as Record;
+ }
}
- current[parts[parts.length - 1]] = value;
+ const lastPart = parts[parts.length - 1];
+ current[lastPart] = value;
}
return result;
diff --git a/packages/cli/src/parsers/formats/javascript.ts b/packages/cli/src/parsers/formats/javascript.ts
index 1d0f1c43..f22b45d2 100644
--- a/packages/cli/src/parsers/formats/javascript.ts
+++ b/packages/cli/src/parsers/formats/javascript.ts
@@ -165,17 +165,53 @@ export class JavaScriptParser extends BaseParser {
private preprocessInput(input: string): string {
let processed = input.trim();
- if (processed.startsWith("export default")) {
- processed = processed.slice("export default".length).trim();
- }
+ // Remove TypeScript imports first
+ processed = processed.replace(
+ /^import\s+[^;]+;(\s*import\s+[^;]+;)*\s*/m,
+ "",
+ );
- if (processed.endsWith("as const;")) {
- processed = processed.slice(0, -"as const;".length).trim();
- } else if (processed.endsWith("as const")) {
- processed = processed.slice(0, -"as const".length).trim();
+ // Extract the object literal from variable declaration or export
+ const objectMatch = processed.match(
+ /(?:const\s+\w+(?:\s*:\s*\w+)?\s*=\s*)?({[\s\S]*?})\s*(?:;|\s*as\s+const\s*;)?$/,
+ );
+ if (objectMatch) {
+ processed = objectMatch[1];
+ } else {
+ // Handle export default cases
+ if (processed.includes("export default")) {
+ // Try to match direct object export with optional 'as const'
+ const directExportMatch = processed.match(
+ /export\s+default\s+({[\s\S]*?})\s*(?:as\s+const)?\s*;?$/,
+ );
+ if (directExportMatch) {
+ processed = directExportMatch[1];
+ } else {
+ // Try to match variable export
+ const exportMatch = processed.match(/export\s+default\s+(\w+)\s*;?/);
+ if (exportMatch) {
+ // Find the variable declaration that matches the exported identifier
+ const varName = exportMatch[1];
+ const varMatch = processed.match(
+ new RegExp(
+ `const\\s+${varName}(?:\\s*:\\s*\\w+)?\\s*=\\s*({[\\s\\S]*?})\\s*;`,
+ ),
+ );
+ if (varMatch) {
+ processed = varMatch[1];
+ }
+ }
+ }
+ }
}
- return processed;
+ // Clean up any remaining 'as const'
+ processed = processed.replace(/\s+as\s+const\s*;?$/, "");
+
+ // Remove any trailing semicolons
+ processed = processed.replace(/;$/, "");
+
+ return processed.trim();
}
private evaluateJavaScript(input: string): unknown {
diff --git a/packages/cli/src/utils/config.ts b/packages/cli/src/utils/config.ts
index 405b4f50..2e90b7e2 100644
--- a/packages/cli/src/utils/config.ts
+++ b/packages/cli/src/utils/config.ts
@@ -1,5 +1,6 @@
import { readFile, readdir } from "node:fs/promises";
import { resolve } from "node:path";
+import { commands as initCommands } from "@/commands/init.js";
import type { Config } from "@/types.js";
import { outro } from "@clack/prompts";
import chalk from "chalk";
@@ -18,6 +19,19 @@ export async function configFile() {
};
}
+/**
+ * Check if configuration exists and run init if needed
+ */
+export async function ensureConfig(): Promise {
+ const { path: filePath } = await configFile();
+
+ try {
+ await readFile(filePath, "utf-8");
+ } catch (error) {
+ await initCommands();
+ }
+}
+
/**
* Load the configuration file (languine.json) from the current working directory.
*/
@@ -26,13 +40,8 @@ export async function loadConfig(): Promise {
const { path: filePath } = await configFile();
const env = loadEnv(workingDir);
- if (!filePath) {
- outro(
- chalk.red(`Could not find ${CONFIG_NAME}. Run 'languine init' first.`),
- );
-
- process.exit(1);
- }
+ // Ensure configuration exists
+ await ensureConfig();
try {
const content = await readFile(filePath, "utf-8");
diff --git a/packages/cli/src/utils/transform.ts b/packages/cli/src/utils/transform.ts
new file mode 100644
index 00000000..34719f6e
--- /dev/null
+++ b/packages/cli/src/utils/transform.ts
@@ -0,0 +1,1407 @@
+import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
+import path from "node:path";
+import type { API, FileInfo, JSCodeshift, Node, Path } from "jscodeshift";
+import { client } from "./api.ts";
+import { loadConfig } from "./config.ts";
+
+// Core types and interfaces
+interface ASTNode extends Node {
+ type: string;
+ name?: string;
+ value?: string;
+ object?: ASTNode;
+ property?: ASTNode;
+ computed?: boolean;
+}
+
+interface CollectedTranslation {
+ originalKey: string;
+ value: string;
+ type: "text" | "attribute" | "link";
+ functionName: string;
+ elementKey: string;
+}
+
+interface TransformState {
+ translations: Record>;
+ elementCounts: Record;
+ collectedTranslations: CollectedTranslation[];
+ keyMap: Record;
+ apiKeys: Record;
+}
+
+interface SelectPattern {
+ pattern: string;
+ variable: string;
+}
+
+/**
+ * Service for transforming JSX/TSX files to use translations.
+ * Handles extraction of text content, attributes, and dynamic content.
+ */
+export class TransformService {
+ // State management
+ private state: TransformState = {
+ translations: {},
+ elementCounts: {},
+ collectedTranslations: [],
+ keyMap: {},
+ apiKeys: {},
+ };
+
+ // Constants
+ private readonly SKIP_ATTRIBUTES = new Set([
+ "href",
+ "src",
+ "id",
+ "className",
+ "class",
+ "key",
+ "name",
+ "type",
+ "value",
+ "for",
+ "role",
+ "target",
+ "rel",
+ "aria-labelledby",
+ "aria-describedby",
+ "data-testid",
+ "style",
+ "width",
+ "height",
+ "size",
+ "maxLength",
+ "min",
+ "max",
+ "pattern",
+ "tabIndex",
+ ]);
+
+ // Cache for performance optimization
+ private readonly translationCache = new Map();
+ private readonly functionNameCache = new Map();
+ private readonly elementTypeCache = new Map();
+ private translationFile = "";
+ private projectId = "";
+ private sourceLocale = "";
+
+ constructor() {
+ this.run();
+ }
+
+ async run() {
+ const config = await loadConfig();
+
+ const projectId = config.projectId || process.env.LANGUINE_PROJECT_ID;
+
+ if (!projectId) {
+ throw new Error("Project ID is required");
+ }
+
+ this.projectId = projectId;
+ this.sourceLocale = config.locale.source;
+
+ // Get the target folder from config
+ const jsonConfig = config.files.json;
+ if (!jsonConfig || !jsonConfig.include || jsonConfig.include.length === 0) {
+ throw new Error("No JSON file configuration found in languine.json");
+ }
+
+ // Get the first include pattern and replace [locale] with source locale
+ const pattern = jsonConfig.include[0];
+ const globPattern = typeof pattern === "string" ? pattern : pattern.glob;
+ const targetPath = globPattern.replace("[locale]", this.sourceLocale);
+
+ // Ensure the directory exists
+ const dir = path.dirname(targetPath);
+ if (!existsSync(dir)) {
+ mkdirSync(dir, { recursive: true });
+ }
+
+ this.translationFile = path.resolve(targetPath);
+ this.loadTranslations();
+ }
+
+ // Public API
+ public async transform(file: FileInfo, api: API): Promise {
+ try {
+ const j = api.jscodeshift;
+ const source = this.cleanSource(file.source);
+ const root = j(source);
+ const componentName = this.getComponentName(file.path);
+
+ this.resetState();
+ await this.processTranslations(j, root, componentName);
+ await this.saveTranslations();
+
+ return root.toSource({ quote: "double" });
+ } catch (error) {
+ console.error(`Error transforming file ${file.path}:`, error);
+ throw new Error(
+ `Failed to transform file: ${error instanceof Error ? error.message : "Unknown error"}`,
+ );
+ }
+ }
+
+ // Main Processing Methods
+ private async processTranslations(
+ j: JSCodeshift,
+ root: ReturnType,
+ componentName: string,
+ ): Promise {
+ try {
+ // First collect all translations
+ await this.collectTranslations(j, root, componentName);
+
+ // Generate API keys for all collected translations
+ const apiKeys = await this.generateAPIKeys(
+ this.state.collectedTranslations,
+ );
+ this.state.apiKeys = apiKeys;
+
+ // Update keyMap with API keys where available
+ for (const translation of this.state.collectedTranslations) {
+ const apiKey = apiKeys[translation.originalKey];
+ if (apiKey) {
+ this.state.keyMap[translation.originalKey] = apiKey;
+ }
+ }
+
+ // Now transform with the generated keys
+ await this.transformWithGeneratedKeys(j, root, componentName);
+ } catch (error) {
+ console.error("Error in processTranslations:", error);
+ throw new Error(
+ `Failed to process translations: ${error instanceof Error ? error.message : "Unknown error"}`,
+ );
+ }
+ }
+
+ private async collectTranslations(
+ j: JSCodeshift,
+ root: ReturnType,
+ componentName: string,
+ ): Promise {
+ try {
+ const elements = root.find("JSXElement");
+ for (const path of elements.paths()) {
+ this.collectFromJSXElement(path, componentName);
+ }
+
+ for (const path of root.find(j.StringLiteral).paths()) {
+ this.collectFromStringLiteral(path, componentName);
+ }
+ } catch (error) {
+ console.error("Error in collectTranslations:", error);
+ throw new Error(
+ `Failed to collect translations: ${error instanceof Error ? error.message : "Unknown error"}`,
+ );
+ }
+ }
+
+ // Translation Management Methods
+ private loadTranslations(): void {
+ if (existsSync(this.translationFile)) {
+ try {
+ const existingTranslations = JSON.parse(
+ readFileSync(this.translationFile, "utf-8"),
+ );
+ this.state.translations = { ...existingTranslations };
+ } catch (error) {
+ console.warn(
+ "Failed to parse existing translations, starting fresh:",
+ error,
+ );
+ }
+ }
+ }
+
+ private async saveTranslations(): Promise<
+ Record>
+ > {
+ try {
+ const transformedTranslations = this.buildTransformedTranslations();
+ const finalTranslations = await this.mergePreviousTranslations(
+ transformedTranslations,
+ );
+
+ // Ensure the directory exists
+ const dir = path.dirname(this.translationFile);
+ if (!existsSync(dir)) {
+ mkdirSync(dir, { recursive: true });
+ }
+
+ writeFileSync(
+ this.translationFile,
+ JSON.stringify(finalTranslations, null, 2),
+ );
+ return transformedTranslations;
+ } catch (error) {
+ console.error("Error saving translations:", error);
+ throw new Error(
+ `Failed to save translations: ${error instanceof Error ? error.message : "Unknown error"}`,
+ );
+ }
+ }
+
+ private async mergePreviousTranslations(
+ newTranslations: Record>,
+ ): Promise>> {
+ if (!existsSync(this.translationFile)) {
+ return newTranslations;
+ }
+
+ try {
+ const content = readFileSync(this.translationFile, "utf-8");
+ if (!content.trim()) {
+ return newTranslations;
+ }
+
+ const existingTranslations = JSON.parse(content);
+ if (
+ typeof existingTranslations !== "object" ||
+ existingTranslations === null
+ ) {
+ console.warn("Invalid translations file format, starting fresh");
+ return newTranslations;
+ }
+
+ const mergedTranslations: Record> = {
+ ...existingTranslations,
+ };
+
+ for (const [component, translations] of Object.entries(newTranslations)) {
+ if (!mergedTranslations[component]) {
+ mergedTranslations[component] = {};
+ }
+ mergedTranslations[component] = {
+ ...mergedTranslations[component],
+ ...translations,
+ };
+ }
+
+ return mergedTranslations;
+ } catch (error) {
+ console.warn("Failed to merge with existing translations:", error);
+ return newTranslations;
+ }
+ }
+
+ // State Management Methods
+ private resetState(): void {
+ this.state.collectedTranslations.length = 0;
+ this.state.keyMap = {};
+ this.state.apiKeys = {};
+ this.translationCache.clear();
+ this.functionNameCache.clear();
+ this.elementTypeCache.clear();
+ }
+
+ private buildTransformedTranslations(): Record<
+ string,
+ Record
+ > {
+ const transformedTranslations: Record> = {};
+ const seenValues = new Map();
+
+ // First pass: Process items with API keys
+ for (const item of this.state.collectedTranslations) {
+ const apiKey = this.state.apiKeys[item.originalKey];
+ if (apiKey) {
+ const [component, ...keyParts] = apiKey.split(".");
+ const descriptiveKey = keyParts.join(".");
+
+ if (!transformedTranslations[component]) {
+ transformedTranslations[component] = {};
+ }
+
+ if (!seenValues.has(item.value)) {
+ transformedTranslations[component][descriptiveKey] = item.value;
+ seenValues.set(item.value, descriptiveKey);
+ }
+ }
+ }
+
+ // Second pass: Process remaining items using original keys (should be rare)
+ for (const item of this.state.collectedTranslations) {
+ if (
+ !this.state.apiKeys[item.originalKey] &&
+ !seenValues.has(item.value)
+ ) {
+ const [component, ...keyParts] = item.originalKey.split(".");
+ const simpleKey = keyParts.join(".");
+
+ if (!transformedTranslations[component]) {
+ transformedTranslations[component] = {};
+ }
+
+ transformedTranslations[component][simpleKey] = item.value;
+ seenValues.set(item.value, simpleKey);
+ }
+ }
+
+ return transformedTranslations;
+ }
+
+ // File Processing Methods
+ private cleanSource(source: string): string {
+ return source.replace(/return\s*\(\s*(<[\s\S]*?>)\s*\)\s*;/g, "return $1;");
+ }
+
+ private getComponentName(filePath: string): string {
+ return path.basename(filePath).replace(/\.[jt]sx?$/, "");
+ }
+
+ private collectFromJSXElement(path: Path, componentName: string): void {
+ try {
+ const node = path.node as Node & {
+ children?: Array;
+ };
+ const children = node.children || [];
+
+ for (const child of children) {
+ if (child.type === "JSXText") {
+ const text = child.value || "";
+ if (text.trim()) {
+ const cleanText = this.cleanupText(text);
+ if (cleanText.length >= 2 && /[a-zA-Z]/.test(cleanText)) {
+ const isLink = this.isInsideLink(path);
+ const key = this.getNextKey(
+ componentName,
+ isLink ? "link" : "text",
+ path,
+ );
+ this.storeTranslation(componentName, key, cleanText, path);
+ }
+ }
+ }
+ }
+ } catch (error) {
+ console.error("Error in collectFromJSXElement:", error);
+ throw new Error(
+ `Failed to collect from JSX element: ${error instanceof Error ? error.message : "Unknown error"}`,
+ );
+ }
+ }
+
+ private collectFromStringLiteral(path: Path, componentName: string): void {
+ try {
+ const parent = path.parent.node as Node & {
+ type?: string;
+ name?: { name?: string };
+ };
+
+ if (parent.type !== "JSXAttribute") return;
+
+ const text = path.node.value;
+ if (!text || text.length < 2 || !/[a-zA-Z]/.test(text)) {
+ return;
+ }
+
+ const cleanText = this.cleanupText(text);
+ const attrName = parent.name?.name;
+ if (attrName && this.SKIP_ATTRIBUTES.has(attrName)) {
+ return;
+ }
+
+ const key = this.getNextKey(componentName, "attribute", path);
+ if (!key) return;
+
+ this.storeTranslation(componentName, key, cleanText, path);
+ } catch (error) {
+ console.error("Error in collectFromStringLiteral:", error);
+ throw new Error(
+ `Failed to collect from string literal: ${error instanceof Error ? error.message : "Unknown error"}`,
+ );
+ }
+ }
+
+ private storeTranslation(
+ componentName: string,
+ key: string,
+ value: string,
+ path: Path,
+ ): void {
+ try {
+ const functionName = this.getFunctionName(path);
+ const originalKey = `${functionName}.${key}`;
+
+ // Check if we've already seen this value
+ const existingTranslation = this.state.collectedTranslations.find(
+ (t) => t.value === value,
+ );
+
+ if (existingTranslation) {
+ // If we have an API key for the existing translation, use that
+ const existingTranslationApiKey =
+ this.state.apiKeys[existingTranslation.originalKey];
+ if (existingTranslationApiKey) {
+ this.state.keyMap[originalKey] = existingTranslationApiKey;
+ } else {
+ // Otherwise use the existing key mapping
+ this.state.keyMap[originalKey] =
+ this.state.keyMap[existingTranslation.originalKey];
+ }
+ } else {
+ // Check if we already have an API key for this translation
+ const currentTranslationApiKey = this.state.apiKeys[originalKey];
+ if (currentTranslationApiKey) {
+ this.state.keyMap[originalKey] = currentTranslationApiKey;
+ } else {
+ this.state.collectedTranslations.push({
+ originalKey,
+ value,
+ type: this.getElementType(path) === "a" ? "link" : "text",
+ functionName,
+ elementKey: key,
+ });
+ // Store the full key with functionName prefix
+ this.state.keyMap[originalKey] = originalKey;
+ }
+ }
+ } catch (error) {
+ console.error("Error in storeTranslation:", error);
+ throw new Error(
+ `Failed to store translation: ${error instanceof Error ? error.message : "Unknown error"}`,
+ );
+ }
+ }
+
+ // AST Transformation Methods
+ private async transformWithGeneratedKeys(
+ j: JSCodeshift,
+ root: ReturnType,
+ componentName: string,
+ ): Promise {
+ try {
+ await this.transformJSXElements(j, root, componentName);
+ await this.transformStringLiterals(j, root, componentName);
+
+ const savedTranslations = await this.saveTranslations();
+ } catch (error) {
+ console.error("Error transforming with generated keys:", error);
+ if (error instanceof Error) {
+ console.error("Error details:", {
+ message: error.message,
+ stack: error.stack,
+ });
+ }
+ throw error;
+ }
+ }
+
+ private async transformJSXElements(
+ j: JSCodeshift,
+ root: ReturnType,
+ componentName: string,
+ ): Promise {
+ try {
+ const elements = root.find("JSXElement");
+ for (const path of elements.paths()) {
+ this.transformJSXElement(j, path, componentName);
+ }
+ } catch (error) {
+ console.error("Error in transformJSXElements:", error);
+ throw new Error(
+ `Failed to transform JSX elements: ${error instanceof Error ? error.message : "Unknown error"}`,
+ );
+ }
+ }
+
+ private async transformStringLiterals(
+ j: JSCodeshift,
+ root: ReturnType,
+ componentName: string,
+ ): Promise {
+ try {
+ for (const path of root.find(j.StringLiteral).paths()) {
+ this.handleStringLiteral(j, root, path, componentName);
+ }
+ } catch (error) {
+ console.error("Error in transformStringLiterals:", error);
+ throw new Error(
+ `Failed to transform string literals: ${error instanceof Error ? error.message : "Unknown error"}`,
+ );
+ }
+ }
+
+ // JSX Element Processing Methods
+ private transformJSXElement(
+ j: JSCodeshift,
+ path: Path,
+ componentName: string,
+ ): void {
+ try {
+ const node = path.node as Node & {
+ children?: Array;
+ };
+ const children = node.children || [];
+
+ for (let i = 0; i < children.length; i++) {
+ const child = children[i];
+ i = this.processJSXChild(j, children, i, path, componentName);
+ }
+ } catch (error) {
+ console.error("Error in transformJSXElement:", error);
+ throw new Error(
+ `Failed to transform JSX element: ${error instanceof Error ? error.message : "Unknown error"}`,
+ );
+ }
+ }
+
+ private processJSXChild(
+ j: JSCodeshift,
+ children: Array,
+ index: number,
+ path: Path,
+ componentName: string,
+ ): number {
+ try {
+ const child = children[index];
+
+ if (child.type === "JSXExpressionContainer") {
+ return this.handleJSXExpression(
+ j,
+ children,
+ index,
+ path,
+ componentName,
+ );
+ }
+
+ if (child.type === "JSXText") {
+ return this.handleJSXText(j, children, index, path, componentName);
+ }
+
+ return index;
+ } catch (error) {
+ console.error("Error in processJSXChild:", error);
+ throw new Error(
+ `Failed to process JSX child: ${error instanceof Error ? error.message : "Unknown error"}`,
+ );
+ }
+ }
+
+ // Translation Creation Methods
+ private createSelectTranslation(
+ j: JSCodeshift,
+ selectPattern: SelectPattern,
+ path: Path,
+ componentName: string,
+ ): Node {
+ try {
+ const key = this.getNextKey(componentName, "text", path);
+ const functionName = this.getFunctionName(path);
+ const originalKey = `${functionName}.${key}`;
+
+ this.storeTranslation(componentName, key, selectPattern.pattern, path);
+
+ // Use the API-generated key if available, otherwise use the original key
+ const mappedKey =
+ this.state.apiKeys[originalKey] ||
+ this.state.keyMap[originalKey] ||
+ originalKey;
+
+ return this.createTranslationNode(j, mappedKey, {
+ [this.getSimplifiedKey(selectPattern.variable)]:
+ this.createMemberExpression(selectPattern.variable.split(".")),
+ });
+ } catch (error) {
+ console.error("Error in createSelectTranslation:", error);
+ throw new Error(
+ `Failed to create select translation: ${error instanceof Error ? error.message : "Unknown error"}`,
+ );
+ }
+ }
+
+ private createVariableWithTextTranslation(
+ j: JSCodeshift,
+ varName: string,
+ textAfter: string,
+ path: Path,
+ componentName: string,
+ ): Node {
+ try {
+ const key = this.getNextKey(componentName, "text", path);
+ const simplifiedKey = this.getSimplifiedKey(varName);
+ const template = `{${simplifiedKey}}${textAfter}`;
+ const functionName = this.getFunctionName(path);
+ const originalKey = `${functionName}.${key}`;
+
+ this.storeTranslation(componentName, key, template, path);
+
+ // Use the API-generated key if available, otherwise use the original key
+ const mappedKey =
+ this.state.apiKeys[originalKey] ||
+ this.state.keyMap[originalKey] ||
+ originalKey;
+
+ return this.createTranslationNode(j, mappedKey, {
+ [simplifiedKey]: this.createMemberExpression(varName.split(".")),
+ });
+ } catch (error) {
+ console.error("Error in createVariableWithTextTranslation:", error);
+ throw new Error(
+ `Failed to create variable with text translation: ${error instanceof Error ? error.message : "Unknown error"}`,
+ );
+ }
+ }
+
+ private createTranslationNode(
+ j: JSCodeshift,
+ key: string,
+ variables: Record,
+ ): Node {
+ try {
+ return j.jsxExpressionContainer(
+ j.callExpression(j.identifier("t"), [
+ j.literal(key),
+ {
+ type: "ObjectExpression",
+ properties: Object.entries(variables).map(([name, value]) => ({
+ type: "ObjectProperty",
+ key: { type: "Identifier", name } as unknown as Node,
+ value: value as unknown as Node,
+ shorthand: false,
+ computed: false,
+ })),
+ } as unknown as Node,
+ ]),
+ );
+ } catch (error) {
+ console.error("Error in createTranslationNode:", error);
+ throw new Error(
+ `Failed to create translation node: ${error instanceof Error ? error.message : "Unknown error"}`,
+ );
+ }
+ }
+
+ // Utility Methods
+ private getElementType(path: Path): string {
+ try {
+ // Check cache first
+ const cacheKey = path.node.type;
+ if (this.elementTypeCache.has(cacheKey)) {
+ return this.elementTypeCache.get(cacheKey)!;
+ }
+
+ let current = path;
+ while (current) {
+ const node = current.node as Node & {
+ type?: string;
+ openingElement?: {
+ name?: { name?: string };
+ };
+ };
+
+ if (node.type === "JSXElement") {
+ const elementName = node.openingElement?.name?.name?.toLowerCase();
+ if (elementName) {
+ this.elementTypeCache.set(cacheKey, elementName);
+ return elementName;
+ }
+ }
+ current = current.parent;
+ }
+ return "text";
+ } catch (error) {
+ console.error("Error in getElementType:", error);
+ return "text"; // Fallback to text type on error
+ }
+ }
+
+ private cleanupText(text: string): string {
+ return text.replace(/[\n\r\s\t]+/g, " ").trim();
+ }
+
+ private getFunctionName(path: Path): string {
+ try {
+ // Check cache first
+ const cacheKey = path.node.type;
+ if (this.functionNameCache.has(cacheKey)) {
+ return this.functionNameCache.get(cacheKey)!;
+ }
+
+ let current = path;
+ while (current) {
+ const node = current.node as Node & {
+ type?: string;
+ id?: { name?: string };
+ };
+
+ if (
+ node.type === "FunctionDeclaration" ||
+ node.type === "FunctionExpression" ||
+ node.type === "ArrowFunctionExpression"
+ ) {
+ if (node.id?.name) {
+ this.functionNameCache.set(cacheKey, node.id.name);
+ return node.id.name;
+ }
+ const parent = current.parent?.node as Node & {
+ type?: string;
+ id?: { name?: string };
+ key?: { name?: string };
+ };
+ if (parent?.type === "VariableDeclarator" && parent.id?.name) {
+ this.functionNameCache.set(cacheKey, parent.id.name);
+ return parent.id.name;
+ }
+ if (parent?.type === "Property" && parent.key?.name) {
+ this.functionNameCache.set(cacheKey, parent.key.name);
+ return parent.key.name;
+ }
+ }
+ current = current.parent;
+ }
+ return "unknown";
+ } catch (error) {
+ console.error("Error in getFunctionName:", error);
+ return "unknown"; // Fallback to unknown on error
+ }
+ }
+
+ private getNextKey(componentName: string, type: string, path: Path): string {
+ try {
+ const elementName = this.getElementName(path);
+
+ // Get or initialize counter for this element name
+ if (!this.state.elementCounts[elementName]) {
+ this.state.elementCounts[elementName] = 0;
+ }
+ this.state.elementCounts[elementName]++;
+
+ // Generate a temporary key for this element
+ const tempKey =
+ this.state.elementCounts[elementName] === 1
+ ? elementName
+ : `${elementName}_${this.state.elementCounts[elementName] - 1}`;
+
+ // Check if we have an API-generated key for this element
+ const functionName = this.getFunctionName(path);
+ const originalKey = `${functionName}.${tempKey}`;
+ const apiKey = this.state.apiKeys[originalKey];
+
+ // If we have an API key, extract just the key part (after the component prefix)
+ if (apiKey) {
+ const keyParts = apiKey.split(".");
+ return keyParts[keyParts.length - 1];
+ }
+
+ return tempKey;
+ } catch (error) {
+ console.error("Error in getNextKey:", error);
+ return "unknown"; // Fallback to unknown on error
+ }
+ }
+
+ private getElementName(path: Path): string {
+ try {
+ const node = path.node as Node & {
+ type?: string;
+ openingElement?: { name?: { name?: string } };
+ name?: { name?: string };
+ };
+
+ // For JSXElements, get the element name (e.g., 'div', 'span', etc.)
+ if (node.type === "JSXElement" && node.openingElement?.name?.name) {
+ return node.openingElement.name.name.toLowerCase();
+ }
+
+ // For attributes, get the attribute name
+ if (path.parent?.node?.type === "JSXAttribute") {
+ const attrNode = path.parent.node as Node & {
+ name?: { name?: string };
+ };
+ return attrNode.name?.name || "attr";
+ }
+
+ // For text nodes, use 'text'
+ if (node.type === "JSXText") {
+ return "text";
+ }
+
+ // For string literals not in attributes, use 'string'
+ if (node.type === "StringLiteral") {
+ return "string";
+ }
+
+ return "unknown";
+ } catch (error) {
+ console.error("Error in getElementName:", error);
+ return "unknown"; // Fallback to unknown on error
+ }
+ }
+
+ private createSelectPattern(
+ node: Node & {
+ expression?: {
+ type: string;
+ test?: {
+ type: string;
+ left?: { type: string; value?: string };
+ operator?: string;
+ right?: { type: string; value?: string };
+ };
+ consequent?: { value?: string };
+ alternate?: { value?: string };
+ };
+ },
+ ): { pattern: string | null; variable: string | null } {
+ try {
+ if (
+ node.type === "JSXExpressionContainer" &&
+ node.expression &&
+ node.expression.type === "ConditionalExpression"
+ ) {
+ const { test, consequent, alternate } = node.expression;
+
+ if (
+ test?.type === "BinaryExpression" &&
+ test.operator === "===" &&
+ test.left &&
+ test.right?.value &&
+ consequent?.value &&
+ alternate?.value
+ ) {
+ const fullPath = this.getFullPath(test.left);
+ const condition = test.right.value;
+ const trueValue = consequent.value;
+ const falseValue = alternate.value;
+ const simplifiedKey = this.getSimplifiedKey(fullPath);
+
+ return {
+ pattern: `{${simplifiedKey}, select, ${condition} {${trueValue}} other {${falseValue}}}`,
+ variable: fullPath,
+ };
+ }
+ }
+ return { pattern: null, variable: null };
+ } catch (error) {
+ console.error("Error in createSelectPattern:", error);
+ return { pattern: null, variable: null }; // Return null on error
+ }
+ }
+
+ private getFullPath(node: ASTNode): string {
+ try {
+ const parts: string[] = [];
+ let current: ASTNode | undefined = node;
+
+ while (current) {
+ if (current.type === "Identifier" && current.name) {
+ parts.unshift(current.name);
+ } else if (current.type === "MemberExpression") {
+ if (
+ current.property &&
+ current.property.type === "Identifier" &&
+ current.property.name
+ ) {
+ parts.unshift(current.property.name);
+ }
+ current = current.object;
+ continue;
+ }
+ break;
+ }
+
+ return parts.join(".");
+ } catch (error) {
+ console.error("Error in getFullPath:", error);
+ return "unknown"; // Fallback to unknown on error
+ }
+ }
+
+ private getSimplifiedKey(path: string): string {
+ try {
+ const parts = path.split(".");
+ return parts[parts.length - 1];
+ } catch (error) {
+ console.error("Error in getSimplifiedKey:", error);
+ return path; // Fallback to original path on error
+ }
+ }
+
+ private createMemberExpression(parts: string[]): ASTNode {
+ try {
+ return parts.reduce(
+ (acc: ASTNode, curr: string, idx: number): ASTNode => {
+ if (idx === 0) {
+ return {
+ type: "Identifier",
+ name: curr,
+ } as ASTNode;
+ }
+ return {
+ type: "MemberExpression",
+ object: acc,
+ property: {
+ type: "Identifier",
+ name: curr,
+ } as ASTNode,
+ computed: false,
+ } as ASTNode;
+ },
+ { type: "Identifier", name: parts[0] } as ASTNode,
+ );
+ } catch (error) {
+ console.error("Error in createMemberExpression:", error);
+ throw new Error(
+ `Failed to create member expression: ${error instanceof Error ? error.message : "Unknown error"}`,
+ );
+ }
+ }
+
+ private getVariableName(
+ node: Node & { expression?: unknown },
+ ): string | null {
+ try {
+ if (node.type === "JSXExpressionContainer" && node.expression) {
+ const expression = node.expression as {
+ type: string;
+ object?: {
+ type: string;
+ object?: { type: string; name?: string };
+ property?: { type: string; name?: string };
+ name?: string;
+ };
+ property?: { type: string; name?: string };
+ };
+ if (expression.type === "MemberExpression") {
+ const object = expression.object;
+ const property = expression.property;
+
+ if (
+ object?.type === "MemberExpression" &&
+ property?.type === "Identifier"
+ ) {
+ const parentObject = object.object;
+ const parentProperty = object.property;
+ if (
+ parentObject?.type === "Identifier" &&
+ parentObject.name &&
+ parentProperty?.type === "Identifier" &&
+ parentProperty.name &&
+ property.name
+ ) {
+ return `${parentObject.name}.${parentProperty.name}.${property.name}`;
+ }
+ }
+
+ if (
+ object?.type === "Identifier" &&
+ object.name &&
+ property?.type === "Identifier" &&
+ property.name
+ ) {
+ return `${object.name}.${property.name}`;
+ }
+ }
+ }
+ return null;
+ } catch (error) {
+ console.error("Error in getVariableName:", error);
+ return null; // Return null on error
+ }
+ }
+
+ private isInsideLink(path: Path): boolean {
+ try {
+ let current = path;
+ while (current) {
+ const node = current.node as Node & {
+ type?: string;
+ openingElement?: {
+ name?: { name?: string };
+ };
+ };
+
+ if (
+ node.type === "JSXElement" &&
+ node.openingElement?.name?.name === "a"
+ ) {
+ return true;
+ }
+ current = current.parent;
+ }
+ return false;
+ } catch (error) {
+ console.error("Error in isInsideLink:", error);
+ return false; // Fallback to false on error
+ }
+ }
+
+ private createJSXText(j: JSCodeshift, text: string): Node {
+ return {
+ type: "JSXText",
+ value: text,
+ };
+ }
+
+ private handleStringLiteral(
+ j: JSCodeshift,
+ root: ReturnType,
+ path: Path,
+ componentName: string,
+ ): void {
+ try {
+ const parent = path.parent.node as Node & {
+ type?: string;
+ name?: { name?: string };
+ };
+
+ if (parent.type !== "JSXAttribute") return;
+
+ const text = path.node.value;
+ if (!text || text.length < 2 || !/[a-zA-Z]/.test(text)) {
+ return;
+ }
+
+ const cleanText = this.cleanupText(text);
+ const attrName = parent.name?.name;
+ if (attrName && this.SKIP_ATTRIBUTES.has(attrName)) {
+ return;
+ }
+
+ const key = this.getNextKey(componentName, "attribute", path);
+ if (!key) return;
+
+ const functionName = this.getFunctionName(path);
+ const originalKey = `${functionName}.${key}`;
+
+ this.storeTranslation(componentName, key, cleanText, path);
+
+ // Use the API-generated key if available, otherwise use keyMap or original key
+ const mappedKey =
+ this.state.apiKeys[originalKey] ||
+ this.state.keyMap[originalKey] ||
+ originalKey;
+
+ const replacement = j.jsxExpressionContainer(
+ j.callExpression(j.identifier("t"), [j.literal(mappedKey)]),
+ );
+
+ root
+ .find(j.StringLiteral)
+ .filter((p: Path) => p.node.value === text)
+ .replaceWith(replacement);
+ } catch (error) {
+ console.error("Error in handleStringLiteral:", error);
+ throw new Error(
+ `Failed to handle string literal: ${error instanceof Error ? error.message : "Unknown error"}`,
+ );
+ }
+ }
+
+ private handleJSXExpression(
+ j: JSCodeshift,
+ children: Array,
+ index: number,
+ path: Path,
+ componentName: string,
+ ): number {
+ try {
+ const child = children[index];
+ const selectPattern = this.createSelectPattern(child);
+
+ if (selectPattern.pattern && selectPattern.variable) {
+ children[index] = this.createSelectTranslation(
+ j,
+ selectPattern as { pattern: string; variable: string },
+ path,
+ componentName,
+ );
+ return index;
+ }
+
+ const varName = this.getVariableName(child);
+ if (varName) {
+ const nextChild = children[index + 1];
+ const textAfter =
+ nextChild?.type === "JSXText" ? nextChild.value || "" : "";
+
+ if (textAfter) {
+ children[index] = this.createVariableWithTextTranslation(
+ j,
+ varName,
+ textAfter,
+ path,
+ componentName,
+ );
+ return index + 1;
+ }
+ }
+
+ return index;
+ } catch (error) {
+ console.error("Error in handleJSXExpression:", error);
+ return index; // Return original index on error
+ }
+ }
+
+ private handleJSXText(
+ j: JSCodeshift,
+ children: Array,
+ index: number,
+ path: Path,
+ componentName: string,
+ ): number {
+ try {
+ const child = children[index];
+ const text = child.value || "";
+ if (!text.trim()) return index;
+
+ const { hasVariables, nextIndex, variables } = this.collectVariables(
+ children,
+ index,
+ );
+
+ if (hasVariables) {
+ return this.handleTextWithVariables(
+ j,
+ children,
+ index,
+ nextIndex,
+ variables,
+ path,
+ componentName,
+ );
+ }
+
+ return this.handleSimpleText(
+ j,
+ children,
+ index,
+ text,
+ path,
+ componentName,
+ );
+ } catch (error) {
+ console.error("Error in handleJSXText:", error);
+ return index; // Return original index on error
+ }
+ }
+
+ private collectVariables(
+ children: Array,
+ startIndex: number,
+ ): {
+ hasVariables: boolean;
+ nextIndex: number;
+ variables: Array<{ name: string; node: Node; pluralCondition?: Node }>;
+ } {
+ try {
+ const variables: Array<{
+ name: string;
+ node: Node;
+ pluralCondition?: Node;
+ }> = [];
+ let nextIndex = startIndex + 1;
+ let hasVariables = false;
+
+ while (nextIndex < children.length) {
+ const nextChild = children[nextIndex];
+ if (nextChild.type === "JSXExpressionContainer") {
+ const varName = this.getVariableName(nextChild);
+ if (varName) {
+ variables.push({
+ name: varName,
+ node: nextChild,
+ });
+ hasVariables = true;
+ nextIndex++;
+
+ if (nextIndex < children.length) {
+ const afterNode = children[nextIndex];
+ if (afterNode.type === "JSXText" && afterNode.value) {
+ nextIndex++;
+ }
+ }
+ continue;
+ }
+ }
+ break;
+ }
+
+ return { hasVariables, nextIndex, variables };
+ } catch (error) {
+ console.error("Error in collectVariables:", error);
+ return { hasVariables: false, nextIndex: startIndex + 1, variables: [] }; // Return safe default on error
+ }
+ }
+
+ private handleTextWithVariables(
+ j: JSCodeshift,
+ children: Array,
+ startIndex: number,
+ endIndex: number,
+ variables: Array<{ name: string; node: Node; pluralCondition?: Node }>,
+ path: Path,
+ componentName: string,
+ ): number {
+ try {
+ const parts = children.slice(startIndex, endIndex).map((node, index) => {
+ if (node.type === "JSXText") {
+ const text = this.cleanupText(node.value || "");
+ // If next node is a variable and current text doesn't end with a space
+ // and the text is not empty, add a space
+ const nextNode = children[startIndex + index + 1];
+ if (
+ nextNode?.type === "JSXExpressionContainer" &&
+ text &&
+ !text.endsWith(" ")
+ ) {
+ return `${text} `;
+ }
+ return text;
+ }
+ const varName = this.getVariableName(node);
+ if (!varName) return "";
+ const simplifiedKey = this.getSimplifiedKey(varName);
+ return `{${simplifiedKey}}`;
+ });
+
+ const combinedText = parts.join("").trim();
+
+ if (combinedText) {
+ const key = this.getNextKey(componentName, "text", path);
+ const functionName = this.getFunctionName(path);
+ const originalKey = `${functionName}.${key}`;
+
+ // Find if we already have this translation
+ const existingTranslation = this.state.collectedTranslations.find(
+ (t) => t.value === combinedText,
+ );
+
+ // Use the API key if available, either from the existing translation or the current one
+ const mappedKey = existingTranslation
+ ? this.state.apiKeys[existingTranslation.originalKey] ||
+ this.state.keyMap[existingTranslation.originalKey]
+ : this.state.apiKeys[originalKey] ||
+ this.state.keyMap[originalKey] ||
+ originalKey;
+
+ const variablesObj = {
+ type: "ObjectExpression",
+ properties: variables.map(({ name }) => ({
+ type: "ObjectProperty",
+ key: { type: "Identifier", name: this.getSimplifiedKey(name) },
+ value: this.createMemberExpression(name.split(".")),
+ shorthand: false,
+ computed: false,
+ })),
+ } as unknown as Node;
+
+ const replacement = j.jsxExpressionContainer(
+ j.callExpression(j.identifier("t"), [
+ j.literal(mappedKey),
+ variablesObj,
+ ]),
+ );
+
+ children.splice(startIndex, endIndex - startIndex, replacement);
+ }
+
+ return endIndex - 1;
+ } catch (error) {
+ console.error("Error in handleTextWithVariables:", error);
+ return endIndex - 1; // Return original endIndex on error
+ }
+ }
+
+ private handleSimpleText(
+ j: JSCodeshift,
+ children: Array,
+ index: number,
+ text: string,
+ path: Path,
+ componentName: string,
+ ): number {
+ const cleanText = this.cleanupText(text);
+ if (cleanText.length >= 2 && /[a-zA-Z]/.test(cleanText)) {
+ const isLink = this.isInsideLink(path);
+ const key = this.getNextKey(
+ componentName,
+ isLink ? "link" : "text",
+ path,
+ );
+ const functionName = this.getFunctionName(path);
+ const originalKey = `${functionName}.${key}`;
+
+ this.storeTranslation(componentName, key, cleanText, path);
+
+ // Use API key if available, otherwise use keyMap or original key
+ const mappedKey =
+ this.state.apiKeys[originalKey] ||
+ this.state.keyMap[originalKey] ||
+ originalKey;
+
+ const replacement = j.jsxExpressionContainer(
+ j.callExpression(j.identifier("t"), [j.literal(mappedKey)]),
+ );
+
+ const leadingSpace = text.match(/^\s*\n\s*/)?.[0] || "";
+ const trailingSpace = text.match(/\s*\n\s*$/)?.[0] || "";
+
+ if (leadingSpace || trailingSpace) {
+ const nodes: Node[] = [];
+ if (leadingSpace) nodes.push(this.createJSXText(j, leadingSpace));
+ nodes.push(replacement);
+ if (trailingSpace) nodes.push(this.createJSXText(j, trailingSpace));
+ children.splice(index, 1, ...nodes);
+ } else {
+ children[index] = replacement;
+ }
+ }
+
+ return index;
+ }
+
+ private async generateAPIKeys(
+ translations: CollectedTranslation[],
+ ): Promise> {
+ try {
+ const result = await client.jobs.startTransformJob.mutate({
+ projectId: this.projectId,
+ translations: translations.map((t) => ({
+ key: t.originalKey,
+ value: t.value,
+ })),
+ });
+
+ // Create a map of original keys to API-generated keys
+ const keys: Record = {};
+
+ // The API returns an array of objects with newKeys
+ if (result && Array.isArray(result) && result.length > 0) {
+ translations.forEach((translation, index) => {
+ if (result[index]?.key) {
+ keys[translation.originalKey] = result[index].key;
+ } else {
+ console.warn(
+ `No API key generated for: ${translation.originalKey}`,
+ );
+ }
+ });
+ } else {
+ }
+
+ return keys;
+ } catch (error) {
+ console.error("Error generating API keys:", error);
+ throw new Error(
+ `Failed to generate API keys: ${error instanceof Error ? error.message : "Unknown error"}`,
+ );
+ }
+ }
+}
+
+export default async function transform(
+ file: FileInfo,
+ api: API,
+): Promise {
+ const transformer = new TransformService();
+
+ return transformer.transform(file, api);
+}
diff --git a/packages/cli/tsup.config.ts b/packages/cli/tsup.config.ts
index 1e9a253a..635008ca 100644
--- a/packages/cli/tsup.config.ts
+++ b/packages/cli/tsup.config.ts
@@ -3,5 +3,5 @@ import { defineConfig } from "tsup";
export default defineConfig({
dts: true,
format: "esm",
- entry: ["src/index.ts"],
+ entry: ["src/index.ts", "src/utils/transform.ts"],
});
diff --git a/packages/cli/types/jscodeshift.d.ts b/packages/cli/types/jscodeshift.d.ts
new file mode 100644
index 00000000..a6ce3eb7
--- /dev/null
+++ b/packages/cli/types/jscodeshift.d.ts
@@ -0,0 +1,76 @@
+declare module "jscodeshift" {
+ export interface Node {
+ type: string;
+ value?: string;
+ loc?: {
+ start: { line: number; column: number };
+ end: { line: number; column: number };
+ };
+ source?: { value: string };
+ }
+
+ export interface JSXNode extends Node {
+ type: "JSXText" | "JSXAttribute" | "JSXExpressionContainer";
+ value: string;
+ }
+
+ export interface ImportNode extends Node {
+ type: "ImportDeclaration";
+ source: { value: string };
+ }
+
+ export interface Path {
+ value: T;
+ node: T;
+ parent: Path;
+ }
+
+ export interface JSCodeshift {
+ (source: string): Collection;
+ (paths: Path[]): Collection;
+ JSXText: string;
+ StringLiteral: string;
+ ImportDeclaration: string;
+ jsxExpressionContainer: (expression: Node) => Node;
+ callExpression: (callee: Node, args: Node[]) => Node;
+ identifier: (name: string) => Node;
+ literal: (value: string) => Node;
+ importDeclaration: (specifiers: Node[], source: Node) => Node;
+ importSpecifier: (local: Node) => Node;
+ }
+
+ export interface API {
+ jscodeshift: JSCodeshift;
+ }
+
+ export interface Collection {
+ find(type: Type | string): Collection;
+ filter(fn: (path: Path) => boolean): Collection;
+ forEach(fn: (path: Path) => void): void;
+ size(): number;
+ paths(): Path[];
+ get(): { node: { program: { body: Node[] } } };
+ replaceWith(node: Node): void;
+ toSource(options?: Options): string;
+ at(index: number): Collection;
+ }
+
+ export interface FileInfo {
+ path: string;
+ source: string;
+ }
+
+ export interface Type {
+ name: string;
+ }
+
+ export interface Options {
+ quote?: "single" | "double";
+ }
+
+ export default function transform(
+ file: FileInfo,
+ api: API,
+ options: Options,
+ ): string;
+}