@nextsparkjs/core 0.1.0-beta.182 → 0.1.0-beta.184
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/api/keys/CreateApiKeyDialog.d.ts.map +1 -1
- package/dist/components/api/keys/CreateApiKeyDialog.js +20 -4
- package/dist/components/auth/forms/LoginForm.d.ts.map +1 -1
- package/dist/components/auth/forms/LoginForm.js +8 -5
- package/dist/lib/api/keys.d.ts +15 -0
- package/dist/lib/api/keys.d.ts.map +1 -1
- package/dist/lib/api/keys.js +15 -1
- package/dist/lib/config/app.config.d.ts.map +1 -1
- package/dist/lib/config/app.config.js +7 -0
- package/dist/lib/config/config-types.d.ts +12 -0
- package/dist/lib/config/config-types.d.ts.map +1 -1
- package/dist/messages/de/auth.json +2 -0
- package/dist/messages/de/index.d.ts +2 -0
- package/dist/messages/de/index.d.ts.map +1 -1
- package/dist/messages/en/auth.json +3 -1
- package/dist/messages/en/index.d.ts +2 -0
- package/dist/messages/en/index.d.ts.map +1 -1
- package/dist/messages/es/auth.json +2 -0
- package/dist/messages/es/index.d.ts +2 -0
- package/dist/messages/es/index.d.ts.map +1 -1
- package/dist/messages/fr/auth.json +2 -0
- package/dist/messages/fr/index.d.ts +2 -0
- package/dist/messages/fr/index.d.ts.map +1 -1
- package/dist/messages/it/auth.json +2 -0
- package/dist/messages/it/index.d.ts +2 -0
- package/dist/messages/it/index.d.ts.map +1 -1
- package/dist/messages/pt/auth.json +2 -0
- package/dist/messages/pt/index.d.ts +2 -0
- package/dist/messages/pt/index.d.ts.map +1 -1
- package/dist/styles/classes.json +1 -1
- package/dist/templates/app/devtools/api/layout.tsx +11 -32
- package/dist/templates/app/devtools/layout.tsx +3 -1
- package/package.json +2 -2
- package/templates/app/devtools/api/layout.tsx +11 -32
- package/templates/app/devtools/layout.tsx +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateApiKeyDialog.d.ts","sourceRoot":"","sources":["../../../../src/components/api/keys/CreateApiKeyDialog.tsx"],"names":[],"mappings":"AA+BA,UAAU,uBAAuB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC3G;
|
|
1
|
+
{"version":3,"file":"CreateApiKeyDialog.d.ts","sourceRoot":"","sources":["../../../../src/components/api/keys/CreateApiKeyDialog.tsx"],"names":[],"mappings":"AA+BA,UAAU,uBAAuB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC3G;AAuBD,wBAAgB,kBAAkB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,uBAAuB,2CAkRvF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useState } from "react";
|
|
3
|
+
import { useMemo, useState } from "react";
|
|
4
4
|
import { useMutation } from "@tanstack/react-query";
|
|
5
5
|
import { Button } from "../../ui/button.js";
|
|
6
6
|
import { Input } from "../../ui/input.js";
|
|
@@ -26,11 +26,27 @@ import { Badge } from "../../ui/badge.js";
|
|
|
26
26
|
import { Separator } from "../../ui/separator.js";
|
|
27
27
|
import { AlertTriangle, Info } from "lucide-react";
|
|
28
28
|
import { toast } from "sonner";
|
|
29
|
-
import {
|
|
29
|
+
import { SCOPE_CATEGORIES, getApiScopes, getAppApiScopes } from "../../../lib/api/keys.js";
|
|
30
30
|
import { sel } from "../../../lib/test/index.js";
|
|
31
|
+
function useScopeCatalogue() {
|
|
32
|
+
return useMemo(() => {
|
|
33
|
+
const appScopes = Object.keys(getAppApiScopes());
|
|
34
|
+
if (appScopes.length === 0) return SCOPE_CATEGORIES;
|
|
35
|
+
return {
|
|
36
|
+
...SCOPE_CATEGORIES,
|
|
37
|
+
app: {
|
|
38
|
+
name: "Aplicaci\xF3n",
|
|
39
|
+
description: "Scopes que esta aplicaci\xF3n define para sus propias rutas",
|
|
40
|
+
scopes: appScopes
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
}, []);
|
|
44
|
+
}
|
|
31
45
|
function CreateApiKeyDialog({ open, onClose, onSuccess }) {
|
|
32
46
|
const [name, setName] = useState("");
|
|
33
47
|
const [selectedScopes, setSelectedScopes] = useState([]);
|
|
48
|
+
const scopeCatalogue = useScopeCatalogue();
|
|
49
|
+
const scopeLabels = useMemo(() => getApiScopes(), []);
|
|
34
50
|
const [expiresAt, setExpiresAt] = useState("");
|
|
35
51
|
const [expiryOption, setExpiryOption] = useState("never");
|
|
36
52
|
const createApiKey = useMutation({
|
|
@@ -168,7 +184,7 @@ function CreateApiKeyDialog({ open, onClose, onSuccess }) {
|
|
|
168
184
|
/* @__PURE__ */ jsx(Info, { className: "h-4 w-4" }),
|
|
169
185
|
/* @__PURE__ */ jsx(AlertDescription, { children: "Solo puedes asignar permisos que tu rol actual permite. Los permisos no se pueden cambiar despu\xE9s de crear la API key." })
|
|
170
186
|
] }),
|
|
171
|
-
/* @__PURE__ */ jsx("div", { className: "space-y-4", children: Object.entries(
|
|
187
|
+
/* @__PURE__ */ jsx("div", { className: "space-y-4", children: Object.entries(scopeCatalogue).map(([categoryKey, category]) => {
|
|
172
188
|
const isFullySelected = isCategoryFullySelected(category.scopes);
|
|
173
189
|
const isPartiallySelected = isCategoryPartiallySelected(category.scopes);
|
|
174
190
|
return /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
|
|
@@ -208,7 +224,7 @@ function CreateApiKeyDialog({ open, onClose, onSuccess }) {
|
|
|
208
224
|
),
|
|
209
225
|
/* @__PURE__ */ jsxs(Label, { htmlFor: scope, className: "text-sm", children: [
|
|
210
226
|
/* @__PURE__ */ jsx("code", { className: "text-xs bg-muted px-1 py-0.5 rounded mr-2", children: scope }),
|
|
211
|
-
|
|
227
|
+
scopeLabels[scope]
|
|
212
228
|
] })
|
|
213
229
|
] }, scope)) }),
|
|
214
230
|
categoryKey !== "system" && /* @__PURE__ */ jsx(Separator, {})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoginForm.d.ts","sourceRoot":"","sources":["../../../../src/components/auth/forms/LoginForm.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LoginForm.d.ts","sourceRoot":"","sources":["../../../../src/components/auth/forms/LoginForm.tsx"],"names":[],"mappings":"AAqGA,wBAAgB,SAAS,4CA6YxB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useState, useCallback, useRef, useEffect } from "react";
|
|
3
|
+
import { useState, useCallback, useRef, useEffect, useMemo } from "react";
|
|
4
4
|
import Link from "next/link";
|
|
5
5
|
import { useSearchParams } from "next/navigation";
|
|
6
6
|
import { useForm } from "react-hook-form";
|
|
@@ -76,10 +76,12 @@ function getErrorCodeFromMessage(message) {
|
|
|
76
76
|
}
|
|
77
77
|
return "UNKNOWN_ERROR";
|
|
78
78
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
})
|
|
79
|
+
function buildLoginSchema(t) {
|
|
80
|
+
return z.object({
|
|
81
|
+
email: z.string().email({ message: t("login.errors.invalidEmail", { defaultValue: "Invalid email" }) }),
|
|
82
|
+
password: z.string().min(6, t("login.errors.passwordTooShort", { defaultValue: "Password must be at least 6 characters" }))
|
|
83
|
+
});
|
|
84
|
+
}
|
|
83
85
|
function LoginForm() {
|
|
84
86
|
var _a, _b, _c;
|
|
85
87
|
const registrationMode = PUBLIC_AUTH_CONFIG.registration.mode;
|
|
@@ -95,6 +97,7 @@ function LoginForm() {
|
|
|
95
97
|
const { signIn, googleSignIn } = useAuth();
|
|
96
98
|
const { lastMethod, isReady } = useLastAuthMethod();
|
|
97
99
|
const t = useTranslations("auth");
|
|
100
|
+
const loginSchema = useMemo(() => buildLoginSchema(t), [t]);
|
|
98
101
|
const searchParams = useSearchParams();
|
|
99
102
|
const inviteEmail = searchParams.get("email");
|
|
100
103
|
const fromInvite = searchParams.get("fromInvite") === "true";
|
package/dist/lib/api/keys.d.ts
CHANGED
|
@@ -53,6 +53,21 @@ export declare const API_SCOPES: {
|
|
|
53
53
|
readonly '*': "Acceso completo (solo superadmin)";
|
|
54
54
|
};
|
|
55
55
|
export type ApiScope = keyof typeof API_SCOPES;
|
|
56
|
+
/**
|
|
57
|
+
* Every scope this deployment understands: the ones core enforces, plus the ones the app declared
|
|
58
|
+
* in `api.scopes`.
|
|
59
|
+
*
|
|
60
|
+
* A function and not a const because the app's config is merged at load time — and because the
|
|
61
|
+
* ONLY correct answer to "is this scope valid?" is one that includes the app's own. Validating
|
|
62
|
+
* against core's list alone let an app guard a route with a scope no key could ever carry, which
|
|
63
|
+
* does not fail loudly: it quietly makes the wildcard the only key that works.
|
|
64
|
+
*
|
|
65
|
+
* Core's entries win a name collision. An app extends the vocabulary; it does not redefine what
|
|
66
|
+
* `admin:api-keys` means.
|
|
67
|
+
*/
|
|
68
|
+
export declare function getApiScopes(): Record<string, string>;
|
|
69
|
+
/** The scopes an app added, for a UI that wants to group them apart from core's. */
|
|
70
|
+
export declare function getAppApiScopes(): Record<string, string>;
|
|
56
71
|
/**
|
|
57
72
|
* Categorías de scopes para organización en UI
|
|
58
73
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/lib/api/keys.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/lib/api/keys.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,qBAAa,aAAa;IACxB;;;OAGG;WACU,cAAc,IAAI,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAyBrF;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAM9C;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAKzC;;OAEG;WACU,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQlD;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,aAAa,EAAE,MAAM,EAAE,CAAA;KAAE;IAUpF;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM;CAchD;AAED;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;CAsBb,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,UAAU,CAAC;AAE/C;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGrD;AAED,oFAAoF;AACpF,wBAAgB,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAIxD;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;yBAIgC,QAAQ,EAAE;;;;;yBAKV,QAAQ,EAAE;;;;;yBAKtB,QAAQ,EAAE;;;;;yBAKtC,QAAQ,EAAE;;CAErB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,cAAc;;;;CAIjB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASd,CAAC;AAEX;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAmB9F"}
|
package/dist/lib/api/keys.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { API_CONFIG } from "../config/config-sync.js";
|
|
1
2
|
class ApiKeyManager {
|
|
2
3
|
/**
|
|
3
4
|
* Genera una nueva API key con formato seguro
|
|
@@ -44,7 +45,7 @@ class ApiKeyManager {
|
|
|
44
45
|
* Valida que los scopes sean válidos
|
|
45
46
|
*/
|
|
46
47
|
static validateScopes(scopes) {
|
|
47
|
-
const validScopes = Object.keys(
|
|
48
|
+
const validScopes = Object.keys(getApiScopes());
|
|
48
49
|
const invalidScopes = scopes.filter((scope) => !validScopes.includes(scope));
|
|
49
50
|
return {
|
|
50
51
|
valid: invalidScopes.length === 0,
|
|
@@ -86,6 +87,17 @@ const API_SCOPES = {
|
|
|
86
87
|
// Comodín (solo para superadmins)
|
|
87
88
|
"*": "Acceso completo (solo superadmin)"
|
|
88
89
|
};
|
|
90
|
+
function getApiScopes() {
|
|
91
|
+
var _a;
|
|
92
|
+
const appScopes = ((_a = API_CONFIG) == null ? void 0 : _a.scopes) ?? {};
|
|
93
|
+
return { ...appScopes, ...API_SCOPES };
|
|
94
|
+
}
|
|
95
|
+
function getAppApiScopes() {
|
|
96
|
+
var _a;
|
|
97
|
+
const appScopes = ((_a = API_CONFIG) == null ? void 0 : _a.scopes) ?? {};
|
|
98
|
+
const coreNames = Object.keys(API_SCOPES);
|
|
99
|
+
return Object.fromEntries(Object.entries(appScopes).filter(([name]) => !coreNames.includes(name)));
|
|
100
|
+
}
|
|
89
101
|
const SCOPE_CATEGORIES = {
|
|
90
102
|
users: {
|
|
91
103
|
name: "Usuarios",
|
|
@@ -151,5 +163,7 @@ export {
|
|
|
151
163
|
ApiKeyManager,
|
|
152
164
|
RATE_LIMITS,
|
|
153
165
|
SCOPE_CATEGORIES,
|
|
166
|
+
getApiScopes,
|
|
167
|
+
getAppApiScopes,
|
|
154
168
|
getRateLimitForScopes
|
|
155
169
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.config.d.ts","sourceRoot":"","sources":["../../../src/lib/config/app.config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAMxC,eAAO,MAAM,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"app.config.d.ts","sourceRoot":"","sources":["../../../src/lib/config/app.config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAMxC,eAAO,MAAM,kBAAkB,EAAE,SAmfhC,CAAA"}
|
|
@@ -207,6 +207,13 @@ const DEFAULT_APP_CONFIG = {
|
|
|
207
207
|
// API CONFIGURATION
|
|
208
208
|
// =============================================================================
|
|
209
209
|
api: {
|
|
210
|
+
/**
|
|
211
|
+
* Extra scopes THIS app enforces, beyond the ones core ships (`API_SCOPES`). A theme adds its
|
|
212
|
+
* own here so `ApiKeyManager.validateScopes` accepts them and the key-creation UI offers them:
|
|
213
|
+
* a route that guards itself with `integrations:write` needs that scope to be mintable, or the
|
|
214
|
+
* only key its own gate accepts is a wildcard.
|
|
215
|
+
*/
|
|
216
|
+
scopes: {},
|
|
210
217
|
cors: {
|
|
211
218
|
/**
|
|
212
219
|
* Allowed origins for CORS
|
|
@@ -38,6 +38,18 @@ export interface FeaturesConfig {
|
|
|
38
38
|
enableAPIAccess: boolean;
|
|
39
39
|
}
|
|
40
40
|
export interface ApiConfig {
|
|
41
|
+
/**
|
|
42
|
+
* Extra API-key scopes this app understands, as `scope: human description`.
|
|
43
|
+
*
|
|
44
|
+
* Core ships the scopes core itself enforces (see `API_SCOPES`). An app that guards its own
|
|
45
|
+
* routes with its own scope has to be able to REGISTER that scope, or it ends up in the one
|
|
46
|
+
* place worth avoiding: a gate that demands `something:write` while the key system refuses to
|
|
47
|
+
* mint it, so the only key that satisfies the gate is a wildcard — the broadest possible
|
|
48
|
+
* credential, handed out because the narrow one was unavailable.
|
|
49
|
+
*
|
|
50
|
+
* Additive only: an app can add scopes, never remove or redefine core's.
|
|
51
|
+
*/
|
|
52
|
+
scopes?: Record<string, string>;
|
|
41
53
|
cors: {
|
|
42
54
|
allowedOrigins: {
|
|
43
55
|
development: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-types.d.ts","sourceRoot":"","sources":["../../../src/lib/config/config-types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config-types.d.ts","sourceRoot":"","sources":["../../../src/lib/config/config-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,6 +44,8 @@
|
|
|
44
44
|
"rateLimited": "Zu viele Versuche. Bitte versuchen Sie es spaeter erneut",
|
|
45
45
|
"networkError": "Netzwerkverbindungsfehler. Bitte ueberpruefen Sie Ihre Internetverbindung",
|
|
46
46
|
"serverError": "Serverfehler. Bitte versuchen Sie es spaeter erneut",
|
|
47
|
+
"invalidEmail": "Ungueltige E-Mail-Adresse",
|
|
48
|
+
"passwordTooShort": "Das Passwort muss mindestens 6 Zeichen lang sein",
|
|
47
49
|
"google": {
|
|
48
50
|
"invalidCredentials": "Google-Authentifizierungsfehler",
|
|
49
51
|
"userNotFound": "Kein Konto fuer diesen Google-Benutzer gefunden",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/messages/de/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/messages/de/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,wBAoBU"}
|
|
@@ -44,6 +44,8 @@
|
|
|
44
44
|
"rateLimited": "Too many attempts. Please try again later",
|
|
45
45
|
"networkError": "Network connection error. Please check your internet",
|
|
46
46
|
"serverError": "Server error. Please try again later",
|
|
47
|
+
"invalidEmail": "Invalid email",
|
|
48
|
+
"passwordTooShort": "Password must be at least 6 characters",
|
|
47
49
|
"google": {
|
|
48
50
|
"invalidCredentials": "Google authentication failed",
|
|
49
51
|
"userNotFound": "No account found for this Google account",
|
|
@@ -203,4 +205,4 @@
|
|
|
203
205
|
"description": "Something went wrong during authentication. Please try again."
|
|
204
206
|
}
|
|
205
207
|
}
|
|
206
|
-
}
|
|
208
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/messages/en/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/messages/en/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,wBAqBU"}
|
|
@@ -44,6 +44,8 @@
|
|
|
44
44
|
"rateLimited": "Demasiados intentos. Por favor intenta más tarde",
|
|
45
45
|
"networkError": "Error de conexión de red. Por favor verifica tu internet",
|
|
46
46
|
"serverError": "Error del servidor. Por favor intenta más tarde",
|
|
47
|
+
"invalidEmail": "Email inválido",
|
|
48
|
+
"passwordTooShort": "La contraseña debe tener al menos 6 caracteres",
|
|
47
49
|
"google": {
|
|
48
50
|
"invalidCredentials": "Error de autenticación con Google",
|
|
49
51
|
"userNotFound": "No se encontró cuenta para este usuario de Google",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/messages/es/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/messages/es/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,wBAqBU"}
|
|
@@ -44,6 +44,8 @@
|
|
|
44
44
|
"rateLimited": "Trop de tentatives. Veuillez reessayer plus tard",
|
|
45
45
|
"networkError": "Erreur de connexion reseau. Veuillez verifier votre internet",
|
|
46
46
|
"serverError": "Erreur du serveur. Veuillez reessayer plus tard",
|
|
47
|
+
"invalidEmail": "Email invalide",
|
|
48
|
+
"passwordTooShort": "Le mot de passe doit contenir au moins 6 caracteres",
|
|
47
49
|
"google": {
|
|
48
50
|
"invalidCredentials": "Erreur d'authentification avec Google",
|
|
49
51
|
"userNotFound": "Aucun compte trouve pour cet utilisateur Google",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/messages/fr/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/messages/fr/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,wBAoBU"}
|
|
@@ -44,6 +44,8 @@
|
|
|
44
44
|
"rateLimited": "Troppi tentativi. Per favore riprova piu tardi",
|
|
45
45
|
"networkError": "Errore di connessione di rete. Per favore controlla la tua connessione internet",
|
|
46
46
|
"serverError": "Errore del server. Per favore riprova piu tardi",
|
|
47
|
+
"invalidEmail": "Email non valida",
|
|
48
|
+
"passwordTooShort": "La password deve contenere almeno 6 caratteri",
|
|
47
49
|
"google": {
|
|
48
50
|
"invalidCredentials": "Errore di autenticazione con Google",
|
|
49
51
|
"userNotFound": "Nessun account trovato per questo utente Google",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/messages/it/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/messages/it/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,wBAoBU"}
|
|
@@ -44,6 +44,8 @@
|
|
|
44
44
|
"rateLimited": "Muitas tentativas. Por favor tente novamente mais tarde",
|
|
45
45
|
"networkError": "Erro de conexao de rede. Por favor verifique sua internet",
|
|
46
46
|
"serverError": "Erro do servidor. Por favor tente novamente mais tarde",
|
|
47
|
+
"invalidEmail": "Email invalido",
|
|
48
|
+
"passwordTooShort": "A senha deve ter pelo menos 6 caracteres",
|
|
47
49
|
"google": {
|
|
48
50
|
"invalidCredentials": "Erro de autenticacao com Google",
|
|
49
51
|
"userNotFound": "Nenhuma conta encontrada para este usuario do Google",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/messages/pt/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/messages/pt/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,wBAoBU"}
|
package/dist/styles/classes.json
CHANGED
|
@@ -1,44 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* API Explorer Layout
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* and centering (mx-auto).
|
|
4
|
+
* The Explorer is a tool, not a document: it wants the whole content area, while every other
|
|
5
|
+
* DevTools page sits inside the parent layout's centered, padded, max-width container.
|
|
7
6
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* It escapes that container by filling the scroll area it lives in — `absolute inset-0` against
|
|
8
|
+
* the `relative <main>` of the parent layout. What it must NOT do is compute its own size from
|
|
9
|
+
* the viewport: the previous `calc(100vw - 16rem)` assumed the DevTools sidebar is always
|
|
10
|
+
* 16rem, so collapsing that sidebar to a rail left the Explorer 192px narrower than the space
|
|
11
|
+
* it had, and the centering split the difference into dead margins on both sides — the layout
|
|
12
|
+
* got worse exactly when someone made room for it.
|
|
10
13
|
*
|
|
11
|
-
*
|
|
12
|
-
* -
|
|
13
|
-
* - Main content: flex-1 (fills remaining space)
|
|
14
|
-
* - Container: mx-auto p-6 max-w-7xl (centered, padded, max 1280px)
|
|
15
|
-
* - This layout: breaks out to fill full main content area
|
|
14
|
+
* Filling the parent has no such assumption: the sidebar's width, the container's padding and
|
|
15
|
+
* its max-width all stop being this file's business.
|
|
16
16
|
*/
|
|
17
17
|
export default function ApiExplorerLayout({
|
|
18
18
|
children,
|
|
19
19
|
}: {
|
|
20
20
|
children: React.ReactNode
|
|
21
21
|
}) {
|
|
22
|
-
|
|
23
|
-
// margin-left: -50vw + 50% + sidebar/2 adjustment positions at the left edge
|
|
24
|
-
// width: calc(100vw - sidebar) fills to the right edge
|
|
25
|
-
return (
|
|
26
|
-
<div
|
|
27
|
-
className="h-[calc(100vh-4rem)]"
|
|
28
|
-
style={{
|
|
29
|
-
// Position at the left edge of the main content area (right after sidebar)
|
|
30
|
-
position: 'relative',
|
|
31
|
-
left: '50%',
|
|
32
|
-
transform: 'translateX(-50%)',
|
|
33
|
-
width: 'calc(100vw - 16rem)', // 100vw minus DevTools sidebar (w-64 = 16rem)
|
|
34
|
-
maxWidth: 'none',
|
|
35
|
-
marginLeft: 0,
|
|
36
|
-
marginRight: 0,
|
|
37
|
-
marginTop: '-1.5rem', // Negate top padding
|
|
38
|
-
marginBottom: '-1.5rem', // Negate bottom padding
|
|
39
|
-
}}
|
|
40
|
-
>
|
|
41
|
-
{children}
|
|
42
|
-
</div>
|
|
43
|
-
)
|
|
22
|
+
return <div className="absolute inset-0">{children}</div>
|
|
44
23
|
}
|
|
@@ -45,7 +45,9 @@ function DevLayout({ children }: DevLayoutProps) {
|
|
|
45
45
|
<DevtoolsMobileHeader />
|
|
46
46
|
|
|
47
47
|
{/* Content area with scrolling */}
|
|
48
|
-
|
|
48
|
+
{/* `relative` so a full-bleed child route (the API Explorer) can fill this area
|
|
49
|
+
without measuring the sidebar itself. */}
|
|
50
|
+
<main className="relative flex-1 overflow-y-auto overflow-x-hidden">
|
|
49
51
|
<div className="container mx-auto p-6 max-w-7xl">
|
|
50
52
|
{children}
|
|
51
53
|
</div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nextsparkjs/core",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.184",
|
|
4
4
|
"description": "NextSpark - The complete SaaS framework for Next.js",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "NextSpark <hello@nextspark.dev>",
|
|
@@ -470,7 +470,7 @@
|
|
|
470
470
|
"tailwind-merge": "^3.3.1",
|
|
471
471
|
"uuid": "^13.0.0",
|
|
472
472
|
"zod": "^4.1.5",
|
|
473
|
-
"@nextsparkjs/testing": "0.1.0-beta.
|
|
473
|
+
"@nextsparkjs/testing": "0.1.0-beta.184"
|
|
474
474
|
},
|
|
475
475
|
"scripts": {
|
|
476
476
|
"postinstall": "node scripts/postinstall.mjs || true",
|
|
@@ -1,44 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* API Explorer Layout
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* and centering (mx-auto).
|
|
4
|
+
* The Explorer is a tool, not a document: it wants the whole content area, while every other
|
|
5
|
+
* DevTools page sits inside the parent layout's centered, padded, max-width container.
|
|
7
6
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* It escapes that container by filling the scroll area it lives in — `absolute inset-0` against
|
|
8
|
+
* the `relative <main>` of the parent layout. What it must NOT do is compute its own size from
|
|
9
|
+
* the viewport: the previous `calc(100vw - 16rem)` assumed the DevTools sidebar is always
|
|
10
|
+
* 16rem, so collapsing that sidebar to a rail left the Explorer 192px narrower than the space
|
|
11
|
+
* it had, and the centering split the difference into dead margins on both sides — the layout
|
|
12
|
+
* got worse exactly when someone made room for it.
|
|
10
13
|
*
|
|
11
|
-
*
|
|
12
|
-
* -
|
|
13
|
-
* - Main content: flex-1 (fills remaining space)
|
|
14
|
-
* - Container: mx-auto p-6 max-w-7xl (centered, padded, max 1280px)
|
|
15
|
-
* - This layout: breaks out to fill full main content area
|
|
14
|
+
* Filling the parent has no such assumption: the sidebar's width, the container's padding and
|
|
15
|
+
* its max-width all stop being this file's business.
|
|
16
16
|
*/
|
|
17
17
|
export default function ApiExplorerLayout({
|
|
18
18
|
children,
|
|
19
19
|
}: {
|
|
20
20
|
children: React.ReactNode
|
|
21
21
|
}) {
|
|
22
|
-
|
|
23
|
-
// margin-left: -50vw + 50% + sidebar/2 adjustment positions at the left edge
|
|
24
|
-
// width: calc(100vw - sidebar) fills to the right edge
|
|
25
|
-
return (
|
|
26
|
-
<div
|
|
27
|
-
className="h-[calc(100vh-4rem)]"
|
|
28
|
-
style={{
|
|
29
|
-
// Position at the left edge of the main content area (right after sidebar)
|
|
30
|
-
position: 'relative',
|
|
31
|
-
left: '50%',
|
|
32
|
-
transform: 'translateX(-50%)',
|
|
33
|
-
width: 'calc(100vw - 16rem)', // 100vw minus DevTools sidebar (w-64 = 16rem)
|
|
34
|
-
maxWidth: 'none',
|
|
35
|
-
marginLeft: 0,
|
|
36
|
-
marginRight: 0,
|
|
37
|
-
marginTop: '-1.5rem', // Negate top padding
|
|
38
|
-
marginBottom: '-1.5rem', // Negate bottom padding
|
|
39
|
-
}}
|
|
40
|
-
>
|
|
41
|
-
{children}
|
|
42
|
-
</div>
|
|
43
|
-
)
|
|
22
|
+
return <div className="absolute inset-0">{children}</div>
|
|
44
23
|
}
|
|
@@ -45,7 +45,9 @@ function DevLayout({ children }: DevLayoutProps) {
|
|
|
45
45
|
<DevtoolsMobileHeader />
|
|
46
46
|
|
|
47
47
|
{/* Content area with scrolling */}
|
|
48
|
-
|
|
48
|
+
{/* `relative` so a full-bleed child route (the API Explorer) can fill this area
|
|
49
|
+
without measuring the sidebar itself. */}
|
|
50
|
+
<main className="relative flex-1 overflow-y-auto overflow-x-hidden">
|
|
49
51
|
<div className="container mx-auto p-6 max-w-7xl">
|
|
50
52
|
{children}
|
|
51
53
|
</div>
|