@abyss-project/commons-front-core 5.0.0 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{CookieConsentSettings.component-Qv7WlFv1.js → CookieConsentSettings.component-Da4l2tFQ.js} +1073 -1038
- package/dist/auth/client/abyss-login.d.ts +61 -0
- package/dist/auth/client/abyss-login.spec.d.ts +1 -0
- package/dist/auth/client/auth-refresh-interceptor.d.ts +41 -0
- package/dist/auth/client/auth-refresh-interceptor.spec.d.ts +1 -0
- package/dist/auth/client/index.d.ts +2 -0
- package/dist/auth/client/web-bridge.d.ts +10 -5
- package/dist/auth/components/RequireSession/RequireSession.component.d.ts +17 -0
- package/dist/auth/components/RequireSession/RequireSession.component.spec.d.ts +1 -0
- package/dist/auth/components/RequireSession/RequireSession.logout.spec.d.ts +1 -0
- package/dist/auth/components/SecuritySettings/sections/PasswordSection.component.d.ts +0 -2
- package/dist/auth/components/SessionBoundary/AbyssSessionBoundary.component.d.ts +27 -0
- package/dist/auth/components/SessionBoundary/AbyssSessionBoundary.component.spec.d.ts +1 -0
- package/dist/auth/components/SessionErrorScreen/SessionErrorScreen.component.d.ts +27 -0
- package/dist/auth/components/index.d.ts +6 -0
- package/dist/auth-client.js +33 -22
- package/dist/components/Inputs/CloudImport/CloudImport.component.d.ts +4 -0
- package/dist/components/Inputs/CloudImport/CloudImportFile.component.spec.d.ts +1 -0
- package/dist/components/Inputs/CloudImport/cloud-accept.d.ts +13 -0
- package/dist/components/Inputs/CloudImport/cloud-accept.spec.d.ts +1 -0
- package/dist/components/Support/support-status-timeline.logic.d.ts +2 -2
- package/dist/cookie-consent.js +1 -1
- package/dist/hooks/use-rich-intl.hook.d.ts +28 -2
- package/dist/{index-CS_grWE4.js → index-2EY2JNir.js} +4 -4
- package/dist/{index-C8PVDVGQ.js → index-B3yNQeWK.js} +2 -2
- package/dist/{index-C2RWcbVl.js → index-B7dA6I-R.js} +2 -2
- package/dist/{index-CDUED8YP.js → index-B8jAaZFi.js} +2 -2
- package/dist/{index-Cl8WUtRw.js → index-BB8-EZF4.js} +2 -2
- package/dist/{index-B2u_xNxk.js → index-BI9lpDsi.js} +2 -2
- package/dist/{index-BuIwrS34.js → index-BM0yX2Iz.js} +2 -2
- package/dist/{index-Y2TnZBi8.js → index-Bw5kKOog.js} +4 -4
- package/dist/{index-D5ylhtng.js → index-C8lLApSB.js} +2 -2
- package/dist/{index-D1N8_Qim.js → index-CEJ4iiA5.js} +4 -4
- package/dist/{index-BFEmh_EV.js → index-CLFBr4MF.js} +2 -2
- package/dist/{index-5owlFn6W.js → index-CZRRt2kg.js} +2 -2
- package/dist/{index-BsFPvS1n.js → index-Cb-sJiqp.js} +2 -2
- package/dist/{index-C_-NoOPN.js → index-CxKeAkSY.js} +2 -2
- package/dist/{index-B0h04i9u.js → index-CxfOutZw.js} +3 -3
- package/dist/{index-oKfJH01a.js → index-CzlzF3eF.js} +3 -3
- package/dist/{index-1CoDaadD.js → index-CzpB9qD9.js} +1 -1
- package/dist/{index-CLz2EEY4.js → index-D1QkFZiF.js} +3 -3
- package/dist/{index-B4Ff-AfL.js → index-DI9IV0Ew.js} +19209 -18897
- package/dist/{index-BG716EPB.js → index-Dc_oDJTw.js} +3 -3
- package/dist/{index-DHCXtcI7.js → index-HfP5qfTf.js} +2 -2
- package/dist/{index-Ci4SXMFB.js → index-Kbs9OrDN.js} +2 -2
- package/dist/index.js +261 -246
- package/dist/internal/lazy-value.d.ts +11 -0
- package/dist/internal/lazy-value.spec.d.ts +1 -0
- package/dist/lazy-value-Co76vxsM.js +7 -0
- package/dist/load-safety.spec.d.ts +1 -0
- package/dist/translations/en.d.ts +13 -0
- package/dist/translations/fr.d.ts +13 -0
- package/dist/use-auth.hook-oRxzI95f.js +469 -0
- package/package.json +3 -3
- package/dist/use-auth.hook-BLaU_u8T.js +0 -391
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { AbyssService } from '@abyss-project/main';
|
|
2
|
+
import { AuthClient } from './auth-client';
|
|
3
|
+
/** Where a web satellite sends its users to sign in: abyss-main's single login page. */
|
|
4
|
+
export interface AbyssLoginTarget {
|
|
5
|
+
/** abyss-main's web origin (`VITE_ABYSS_URL`), with or without a trailing `/`. */
|
|
6
|
+
abyssSite: string;
|
|
7
|
+
/** The satellite asking: abyss-main brings the user back to its site once signed in. */
|
|
8
|
+
service: AbyssService;
|
|
9
|
+
/**
|
|
10
|
+
* The satellite page to come back to (`pathname + search`, see `currentReturnPath`). Absent:
|
|
11
|
+
* abyss-main brings the user back to the satellite's home page.
|
|
12
|
+
*/
|
|
13
|
+
redirectPath?: string;
|
|
14
|
+
}
|
|
15
|
+
/** `sessionStorage` key of the guard against redirect loops (one automatic redirect per tab). */
|
|
16
|
+
export declare const LOGIN_REDIRECT_GUARD_KEY = "abyss-login-redirect";
|
|
17
|
+
/** A tab back from the login page still signed out within this delay does not redirect again. */
|
|
18
|
+
export declare const LOGIN_REDIRECT_GUARD_TTL_MS = 300000;
|
|
19
|
+
/**
|
|
20
|
+
* `<abyssSite>/auth/login?abyss_service=<service>[&redirect_path=<redirectPath>]`, each value
|
|
21
|
+
* percent-encoded (`&`, `+`, `#`, `%` and `/` included) so that abyss-main reads back the exact path.
|
|
22
|
+
*/
|
|
23
|
+
export declare const buildAbyssLoginUrl: ({ abyssSite, service, redirectPath, }: AbyssLoginTarget) => string;
|
|
24
|
+
/**
|
|
25
|
+
* The page to come back to after signing in: `pathname + search`. The hash is dropped on purpose:
|
|
26
|
+
* it never reaches abyss-main's server-side checks and no satellite route depends on it.
|
|
27
|
+
*/
|
|
28
|
+
export declare const currentReturnPath: (location?: Pick<Location, "pathname" | "search">) => string;
|
|
29
|
+
/**
|
|
30
|
+
* `true` while this tab was sent to the login page less than `LOGIN_REDIRECT_GUARD_TTL_MS` ago. An
|
|
31
|
+
* expired or unreadable guard is removed.
|
|
32
|
+
*/
|
|
33
|
+
export declare const readLoginRedirectGuard: () => boolean;
|
|
34
|
+
/** Forgets the guard: the session is back, or the user asked to try again. */
|
|
35
|
+
export declare const clearLoginRedirectGuard: () => void;
|
|
36
|
+
/**
|
|
37
|
+
* The user asked to sign in (a **Sign in** button): leaves for abyss-main's login page. The guard
|
|
38
|
+
* is left as it is: it only counts automatic redirects (D8), so an explicit click never turns a
|
|
39
|
+
* later protected page into the "still signed out" screen.
|
|
40
|
+
*/
|
|
41
|
+
export declare const redirectToAbyssLogin: (target: AbyssLoginTarget) => void;
|
|
42
|
+
/**
|
|
43
|
+
* The automatic redirect of a protected page opened without a session (`RequireSession`): sets the
|
|
44
|
+
* guard (now), then leaves for abyss-main's login page.
|
|
45
|
+
*/
|
|
46
|
+
export declare const autoRedirectToAbyssLogin: (target: AbyssLoginTarget) => void;
|
|
47
|
+
/**
|
|
48
|
+
* `true` once `logoutToAbyss` started: the ANONYMOUS state that follows is this sign-out, not a
|
|
49
|
+
* session to restore, and must not redirect again (with this page's `redirect_path`).
|
|
50
|
+
*/
|
|
51
|
+
export declare const isLeavingForAbyssLogin: () => boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Revokes the session (abyss-main's single web session: every web service is signed out), then
|
|
54
|
+
* opens abyss-main's login page for this service, without `redirect_path`: signing in again brings
|
|
55
|
+
* the user to the service's home page. The page is marked as leaving first
|
|
56
|
+
* (`isLeavingForAbyssLogin`), so that `RequireSession` does not answer the sign-out with a redirect
|
|
57
|
+
* of its own, back to the page being left (CA8). The page is left even if the revocation call
|
|
58
|
+
* failed (the session is forgotten locally either way, `AuthClient.logout`); the failure still
|
|
59
|
+
* rejects.
|
|
60
|
+
*/
|
|
61
|
+
export declare const logoutToAbyss: (client: AuthClient, { abyssSite, service }: Omit<AbyssLoginTarget, "redirectPath">) => Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { AuthClient } from './auth-client';
|
|
2
|
+
/** The request config an axios error carries, as far as the replay reads and writes it. */
|
|
3
|
+
interface ReplayableRequest {
|
|
4
|
+
url?: string;
|
|
5
|
+
headers?: Record<string, unknown>;
|
|
6
|
+
/** Set on the one replay of a request that met an expired access token. */
|
|
7
|
+
abyssAuthReplayed?: boolean;
|
|
8
|
+
}
|
|
9
|
+
interface RejectedRequest {
|
|
10
|
+
config?: ReplayableRequest;
|
|
11
|
+
response?: {
|
|
12
|
+
status?: number;
|
|
13
|
+
data?: {
|
|
14
|
+
error?: {
|
|
15
|
+
message?: string;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The parts of an axios instance the interceptor uses. Structural: every SDK core bundles its own
|
|
22
|
+
* axios, whose types are not the same declarations.
|
|
23
|
+
*/
|
|
24
|
+
export interface AuthRefreshAxios {
|
|
25
|
+
interceptors: {
|
|
26
|
+
response: {
|
|
27
|
+
use(onFulfilled: null, onRejected: (error: RejectedRequest) => Promise<unknown>): number;
|
|
28
|
+
eject(id: number): void;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
request(config: ReplayableRequest): Promise<unknown>;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* On every given axios instance (the SDK cores of the app: `AbyssCore.axios`, its own core, the
|
|
35
|
+
* other cores it calls): a 401 `Token Expired`, outside abyss-main's `auth/` routes, triggers one
|
|
36
|
+
* `client.refresh()` then one replay with the new access token. A second 401 on the replay, any
|
|
37
|
+
* other 401, or no session after the refresh: the error is propagated as is. Returns the removal
|
|
38
|
+
* of these interceptors.
|
|
39
|
+
*/
|
|
40
|
+
export declare const attachAuthRefreshInterceptor: (client: AuthClient, axiosInstances: readonly AuthRefreshAxios[]) => (() => void);
|
|
41
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import { AuthBridge } from './auth-bridge';
|
|
2
2
|
export declare const GOOGLE_IDENTITY_SCRIPT_URL = "https://accounts.google.com/gsi/client";
|
|
3
3
|
export declare const APPLE_ID_SCRIPT_URL = "https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1.0/en_US/appleid.auth.js";
|
|
4
|
+
/**
|
|
5
|
+
* The provider identifiers of the site. Only abyss-main's login page offers Google and Apple on the
|
|
6
|
+
* web: a web satellite passes none, and `google()` / `apple()` then reject with
|
|
7
|
+
* `AuthBridgeErrorCode.UNSUPPORTED`. Passkeys never depend on them.
|
|
8
|
+
*/
|
|
4
9
|
export interface WebBridgeConfig {
|
|
5
|
-
/** Google OAuth client id (web application type). */
|
|
6
|
-
googleClientId
|
|
7
|
-
/** Apple Services ID of the site. */
|
|
8
|
-
appleServiceId
|
|
10
|
+
/** Google OAuth client id (web application type). Absent: `google()` is unsupported. */
|
|
11
|
+
googleClientId?: string;
|
|
12
|
+
/** Apple Services ID of the site. Absent (or no `appleRedirectUri`): `apple()` is unsupported. */
|
|
13
|
+
appleServiceId?: string;
|
|
9
14
|
/** Return URL declared on the Services ID; required by Apple JS even in popup mode. */
|
|
10
|
-
appleRedirectUri
|
|
15
|
+
appleRedirectUri?: string;
|
|
11
16
|
}
|
|
12
17
|
/** The bridge of every web front: WebAuthn, Google Identity Services, Sign in with Apple JS. */
|
|
13
18
|
export declare const createWebBridge: (config: WebBridgeConfig) => AuthBridge;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { AbyssService } from '@abyss-project/main';
|
|
3
|
+
export type RequireSessionProps = {
|
|
4
|
+
service: AbyssService;
|
|
5
|
+
/** abyss-main's web origin (`VITE_ABYSS_URL`). */
|
|
6
|
+
abyssSite: string;
|
|
7
|
+
children: ReactNode;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Wraps the protected layouts of a web satellite (D1, D8). Signed in: the guard against redirect
|
|
11
|
+
* loops is cleared and the page renders. Signed out: one automatic redirect to abyss-main's login
|
|
12
|
+
* page per tab and per 5 min, back to this exact page (`pathname + search`); signed out again
|
|
13
|
+
* within that delay, or abyss-main unreachable: a terminal screen, never a new redirect. Signed
|
|
14
|
+
* out by `logoutToAbyss`: that function already leaves for the login page, so nothing more here
|
|
15
|
+
* than the loading screen (CA8).
|
|
16
|
+
*/
|
|
17
|
+
export declare const RequireSession: ({ service, abyssSite, children, }: RequireSessionProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/** The policy as a password manager reads it when it generates one (ADR-0059). */
|
|
2
|
-
export declare const PASSWORD_RULES: string;
|
|
3
1
|
/**
|
|
4
2
|
* Changing the password asks for the current one (ADR-0059) and a recent proof of identity (the
|
|
5
3
|
* re-authentication dialog opens past 5 minutes). An account without password (signed up by code,
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { AbyssService, IUser } from '@abyss-project/main';
|
|
3
|
+
export type AbyssSessionBoundaryProps = {
|
|
4
|
+
service: AbyssService;
|
|
5
|
+
/** abyss-main's web origin (`VITE_ABYSS_URL`). */
|
|
6
|
+
abyssSite: string;
|
|
7
|
+
/**
|
|
8
|
+
* Opens the service for the signed-in user before anything renders (`activateService` if
|
|
9
|
+
* needed, `user.me`…): run once per user id. A rejection shows the `prepare-failed` screen.
|
|
10
|
+
*/
|
|
11
|
+
prepare?: (user: IUser) => Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* **Sign out** of the `prepare-failed` screen, when the host signs out its own way (a native app,
|
|
14
|
+
* which has no abyss-main login page to leave for). Absent: `logoutToAbyss`.
|
|
15
|
+
*/
|
|
16
|
+
onSignOut?: () => Promise<void> | void;
|
|
17
|
+
children: ReactNode;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* The root of a web satellite, inside `<AuthProvider>` (D1): restores the session
|
|
21
|
+
* (`client.bootstrap()`) behind the loading screen, then prepares the service for the signed-in
|
|
22
|
+
* user. Signed out, it renders its children: public pages stay reachable, and `<RequireSession>`
|
|
23
|
+
* guards the protected ones. Signed in but offline (a native app started without network, its user
|
|
24
|
+
* restored): the children render unprepared, and the preparation runs once back online, the app
|
|
25
|
+
* staying on screen meanwhile.
|
|
26
|
+
*/
|
|
27
|
+
export declare const AbyssSessionBoundary: ({ service, abyssSite, prepare, onSignOut, children, }: AbyssSessionBoundaryProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { AbyssService } from '@abyss-project/main';
|
|
2
|
+
/** Why a web satellite stops on this screen instead of redirecting (D8). */
|
|
3
|
+
export declare enum SessionErrorReason {
|
|
4
|
+
/** Back from abyss-main's login page still signed out, less than 5 min after leaving for it. */
|
|
5
|
+
STILL_ANONYMOUS = "still-anonymous",
|
|
6
|
+
/** abyss-main could not be reached at launch: no session to restore, no redirect either. */
|
|
7
|
+
UNREACHABLE = "unreachable",
|
|
8
|
+
/** Signed in, but the satellite could not open its service (`activateService`, `user.me`…). */
|
|
9
|
+
PREPARE_FAILED = "prepare-failed"
|
|
10
|
+
}
|
|
11
|
+
export type SessionErrorScreenProps = {
|
|
12
|
+
reason: SessionErrorReason;
|
|
13
|
+
/** The satellite: its name is said when it could not be opened. */
|
|
14
|
+
service: AbyssService;
|
|
15
|
+
/** **Try again**, always offered. */
|
|
16
|
+
onRetry: () => void;
|
|
17
|
+
/** **Sign in**, offered when given. */
|
|
18
|
+
onSignIn?: () => void;
|
|
19
|
+
/** **Sign out**, offered only for `PREPARE_FAILED` (a session exists then). */
|
|
20
|
+
onSignOut?: () => void;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* The terminal screen of a web satellite's session (D8): it says why the page cannot open (a title
|
|
24
|
+
* and one sentence of explanation per reason), and never redirects by itself — every way out is a
|
|
25
|
+
* button.
|
|
26
|
+
*/
|
|
27
|
+
export declare const SessionErrorScreen: ({ reason, service, onRetry, onSignIn, onSignOut, }: SessionErrorScreenProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -9,3 +9,9 @@ export type { ReauthDialogProps } from './ReauthDialog/ReauthDialog.component';
|
|
|
9
9
|
export { AuthReauthHost } from './ReauthDialog/AuthReauthHost.component';
|
|
10
10
|
export { MfaRequirementBanner } from './MfaRequirementBanner/MfaRequirementBanner.component';
|
|
11
11
|
export type { MfaRequirementBannerProps } from './MfaRequirementBanner/MfaRequirementBanner.component';
|
|
12
|
+
export { AbyssSessionBoundary } from './SessionBoundary/AbyssSessionBoundary.component';
|
|
13
|
+
export type { AbyssSessionBoundaryProps } from './SessionBoundary/AbyssSessionBoundary.component';
|
|
14
|
+
export { RequireSession } from './RequireSession/RequireSession.component';
|
|
15
|
+
export type { RequireSessionProps } from './RequireSession/RequireSession.component';
|
|
16
|
+
export { SessionErrorReason, SessionErrorScreen, } from './SessionErrorScreen/SessionErrorScreen.component';
|
|
17
|
+
export type { SessionErrorScreenProps } from './SessionErrorScreen/SessionErrorScreen.component';
|
package/dist/auth-client.js
CHANGED
|
@@ -1,26 +1,37 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { q as e, t as R, u as r, A as E, G as t, L as _, a as o, k as A, j as S, m as T, n as L, g as u, h as i, R as c, U as d, p as h, f as n, b as g, d as I, o as G, s as M, c as O, i as b, l as C, r as P, e as N, v as U } from "./use-auth.hook-oRxzI95f.js";
|
|
2
|
+
import { a as H, A as Y, R as l, b as F, c as y, s as f } from "./token-storage-CbWrBeIP.js";
|
|
3
3
|
export {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
4
|
+
e as APPLE_ID_SCRIPT_URL,
|
|
5
|
+
H as AuthBridgeError,
|
|
6
|
+
Y as AuthBridgeErrorCode,
|
|
7
|
+
R as AuthContext,
|
|
8
|
+
r as AuthProvider,
|
|
9
|
+
E as AuthStatus,
|
|
10
|
+
t as GOOGLE_IDENTITY_SCRIPT_URL,
|
|
11
|
+
_ as LOGIN_REDIRECT_GUARD_KEY,
|
|
12
|
+
o as LOGIN_REDIRECT_GUARD_TTL_MS,
|
|
13
|
+
A as LOST_RESPONSE_LATE_RETRIES_AT_MS,
|
|
14
|
+
S as LOST_RESPONSE_RETRY_DELAYS_MS,
|
|
15
|
+
T as REFRESH_ATTEMPT_TIMEOUT_MS,
|
|
16
|
+
L as REFRESH_LOCK_NAME,
|
|
17
|
+
u as REFRESH_MARGIN_MS,
|
|
18
|
+
i as REFRESH_REPLAY_GRACE_MS,
|
|
19
|
+
l as REFRESH_TOKEN_STORAGE_KEY,
|
|
18
20
|
c as ReauthMethod,
|
|
19
21
|
d as UNREACHABLE_RETRY_MS,
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
h as attachAuthRefreshInterceptor,
|
|
23
|
+
n as autoRedirectToAbyssLogin,
|
|
24
|
+
g as buildAbyssLoginUrl,
|
|
25
|
+
I as clearLoginRedirectGuard,
|
|
26
|
+
G as createAuthClient,
|
|
27
|
+
F as createSecureTokenStorage,
|
|
28
|
+
M as createWebBridge,
|
|
29
|
+
y as createWebTokenStorage,
|
|
30
|
+
O as currentReturnPath,
|
|
31
|
+
b as isLeavingForAbyssLogin,
|
|
32
|
+
C as logoutToAbyss,
|
|
33
|
+
P as readLoginRedirectGuard,
|
|
34
|
+
N as redirectToAbyssLogin,
|
|
35
|
+
f as sha256Hex,
|
|
36
|
+
U as useAuth
|
|
26
37
|
};
|
|
@@ -5,6 +5,10 @@ type Props = {
|
|
|
5
5
|
submitFiles: (cloud: ISpace, files: IFile[]) => void;
|
|
6
6
|
maxSize?: number;
|
|
7
7
|
multiple?: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* The files offered, as the HTML `accept` attribute lists them: MIME types (`application/pdf`),
|
|
10
|
+
* wildcards (`image/*`) and extensions (`.pdf`). Absent or empty: every file.
|
|
11
|
+
*/
|
|
8
12
|
accept?: string[];
|
|
9
13
|
/** Picker state and actions, as returned by `useCloudPicker`. */
|
|
10
14
|
cloudPicker: CloudPicker;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** What the accept check reads of a cloud file. */
|
|
2
|
+
export type AcceptCandidate = {
|
|
3
|
+
name: string;
|
|
4
|
+
mimeType: string | null;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Whether a file passes an `accept` list, read as the HTML `accept` attribute reads its tokens:
|
|
8
|
+
* an extension (`.pdf`) matches the end of the file name, `type/*` any subtype of that top-level
|
|
9
|
+
* type (`image/*` accepts `image/png`, not `video/mp4`), the all-types wildcard any file, any other token the exact MIME type. Case
|
|
10
|
+
* is ignored, an entry may hold several comma-separated tokens, and a file is accepted when one
|
|
11
|
+
* token matches. No token at all (no list, an empty list) accepts every file.
|
|
12
|
+
*/
|
|
13
|
+
export declare const isAcceptedFile: (file: AcceptCandidate, accept: readonly string[] | undefined) => boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -11,10 +11,10 @@ export type SupportTimelinePhaseKey = 'open' | 'in-progress' | 'resolved' | 'clo
|
|
|
11
11
|
* "closed". The exact status is surfaced verbatim elsewhere, so collapsing
|
|
12
12
|
* them loses no information.
|
|
13
13
|
*/
|
|
14
|
-
export declare const
|
|
14
|
+
export declare const getSupportTimelineSteps: () => readonly {
|
|
15
15
|
key: SupportTimelinePhaseKey;
|
|
16
16
|
statuses: readonly SupportTicketStatus[];
|
|
17
|
-
}
|
|
17
|
+
}[];
|
|
18
18
|
/**
|
|
19
19
|
* Index (0-3) of the active phase for a given status. Unknown/unmapped values
|
|
20
20
|
* fall back to the first phase rather than -1, so the rail always renders.
|
package/dist/cookie-consent.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as s, c as a, C as n, a as C, D as i, R as t, V as r, d as A, f as k, r as c, e as l, u as D, b as E, w as I } from "./CookieConsentSettings.component-
|
|
1
|
+
import { A as s, c as a, C as n, a as C, D as i, R as t, V as r, d as A, f as k, r as c, e as l, u as D, b as E, w as I } from "./CookieConsentSettings.component-Da4l2tFQ.js";
|
|
2
2
|
export {
|
|
3
3
|
s as AbyssCookieConsentProvider,
|
|
4
4
|
a as COOKIE_NAME,
|
|
@@ -1846,6 +1846,19 @@ export declare const translations: {
|
|
|
1846
1846
|
'organization-overdue': string;
|
|
1847
1847
|
action: string;
|
|
1848
1848
|
};
|
|
1849
|
+
'session-error': {
|
|
1850
|
+
'still-anonymous': string;
|
|
1851
|
+
unreachable: string;
|
|
1852
|
+
'prepare-failed': string;
|
|
1853
|
+
details: {
|
|
1854
|
+
'still-anonymous': string;
|
|
1855
|
+
unreachable: string;
|
|
1856
|
+
'prepare-failed': string;
|
|
1857
|
+
};
|
|
1858
|
+
retry: string;
|
|
1859
|
+
'sign-in': string;
|
|
1860
|
+
'sign-out': string;
|
|
1861
|
+
};
|
|
1849
1862
|
};
|
|
1850
1863
|
};
|
|
1851
1864
|
en: {
|
|
@@ -3692,12 +3705,25 @@ export declare const translations: {
|
|
|
3692
3705
|
'organization-overdue': string;
|
|
3693
3706
|
action: string;
|
|
3694
3707
|
};
|
|
3708
|
+
'session-error': {
|
|
3709
|
+
'still-anonymous': string;
|
|
3710
|
+
unreachable: string;
|
|
3711
|
+
'prepare-failed': string;
|
|
3712
|
+
details: {
|
|
3713
|
+
'still-anonymous': string;
|
|
3714
|
+
unreachable: string;
|
|
3715
|
+
'prepare-failed': string;
|
|
3716
|
+
};
|
|
3717
|
+
retry: string;
|
|
3718
|
+
'sign-in': string;
|
|
3719
|
+
'sign-out': string;
|
|
3720
|
+
};
|
|
3695
3721
|
};
|
|
3696
3722
|
};
|
|
3697
3723
|
};
|
|
3698
3724
|
export declare const flattenTranslations: {
|
|
3699
|
-
fr: Record<string, string>;
|
|
3700
|
-
en: Record<string, string>;
|
|
3725
|
+
readonly fr: Record<string, string>;
|
|
3726
|
+
readonly en: Record<string, string>;
|
|
3701
3727
|
};
|
|
3702
3728
|
type FlattenObjectKeys<T extends Record<string, unknown>, Key = keyof T> = Key extends string ? T[Key] extends Record<string, unknown> ? `${Key}.${FlattenObjectKeys<T[Key]>}` : `${Key}` : never;
|
|
3703
3729
|
export type ExistingTranslationKey = FlattenObjectKeys<(typeof translations)[UserLanguage.FRENCH]>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { L as be, E as $, C as Pe } from "./index-
|
|
2
|
-
import { p as xe, s as Te, t as h, E as Ve, a as we, L as ye, e as K, h as ve, i as Xe, f as ke, H as $e } from "./index-
|
|
3
|
-
import { cssLanguage as J, css as _e } from "./index-
|
|
4
|
-
import { typescriptLanguage as qe, jsxLanguage as Ce, tsxLanguage as Qe, javascriptLanguage as R, javascript as Ae } from "./index-
|
|
1
|
+
import { L as be, E as $, C as Pe } from "./index-CzpB9qD9.js";
|
|
2
|
+
import { p as xe, s as Te, t as h, E as Ve, a as we, L as ye, e as K, h as ve, i as Xe, f as ke, H as $e } from "./index-DI9IV0Ew.js";
|
|
3
|
+
import { cssLanguage as J, css as _e } from "./index-C8lLApSB.js";
|
|
4
|
+
import { typescriptLanguage as qe, jsxLanguage as Ce, tsxLanguage as Qe, javascriptLanguage as R, javascript as Ae } from "./index-Cb-sJiqp.js";
|
|
5
5
|
const Ye = 54, Me = 1, Re = 55, Ee = 2, Ze = 56, Be = 3, z = 4, ze = 5, X = 6, ee = 7, te = 8, ae = 9, le = 10, We = 11, De = 12, Ne = 13, _ = 57, Ge = 14, W = 58, re = 20, Ie = 22, ne = 23, je = 24, Y = 26, se = 27, Ue = 28, Le = 31, Fe = 34, He = 36, Ke = 37, Je = 0, et = 1, tt = {
|
|
6
6
|
area: !0,
|
|
7
7
|
base: !0,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { L as W, E as i, C as B } from "./index-
|
|
2
|
-
import { s as U, t as n, a as C, L as b, p as E, i as u, f as M, j as v, g as N } from "./index-
|
|
1
|
+
import { L as W, E as i, C as B } from "./index-CzpB9qD9.js";
|
|
2
|
+
import { s as U, t as n, a as C, L as b, p as E, i as u, f as M, j as v, g as N } from "./index-DI9IV0Ew.js";
|
|
3
3
|
const c = 63, D = 64, j = 1, A = 2, y = 3, H = 4, Z = 5, F = 6, I = 7, z = 65, K = 66, J = 8, OO = 9, eO = 10, aO = 11, rO = 12, V = 13, tO = 19, nO = 20, oO = 29, PO = 33, QO = 34, sO = 47, lO = 0, T = 1, g = 2, d = 3, m = 4;
|
|
4
4
|
class s {
|
|
5
5
|
constructor(e, a, r) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as O, L as r, i as b, f as s, s as a, j as t, g as P, t as e } from "./index-
|
|
2
|
-
import { L as n } from "./index-
|
|
1
|
+
import { a as O, L as r, i as b, f as s, s as a, j as t, g as P, t as e } from "./index-DI9IV0Ew.js";
|
|
2
|
+
import { L as n } from "./index-CzpB9qD9.js";
|
|
3
3
|
const S = { __proto__: null, anyref: 34, dataref: 34, eqref: 34, externref: 34, i31ref: 34, funcref: 34, i8: 34, i16: 34, i32: 34, i64: 34, f32: 34, f64: 34 }, i = /* @__PURE__ */ n.deserialize({
|
|
4
4
|
version: 14,
|
|
5
5
|
states: "!^Q]QPOOOqQPO'#CbOOQO'#Cd'#CdOOQO'#Cl'#ClOOQO'#Ch'#ChQ]QPOOOOQO,58|,58|OxQPO,58|OOQO-E6f-E6fOOQO1G.h1G.h",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { P as nt, k as j, l as v, q as st, N as Ae, s as Be, p as it, t as c, T as E, r as ot, L as le, u as at, v as lt, w as ht, x as ft, e as _, h as P, y as T, z as ut, f as Ie, i as dt, A as pt, C as ct, B as mt, F as he, G as gt } from "./index-
|
|
2
|
-
import { html as kt, htmlCompletionSource as Lt } from "./index-
|
|
1
|
+
import { P as nt, k as j, l as v, q as st, N as Ae, s as Be, p as it, t as c, T as E, r as ot, L as le, u as at, v as lt, w as ht, x as ft, e as _, h as P, y as T, z as ut, f as Ie, i as dt, A as pt, C as ct, B as mt, F as he, G as gt } from "./index-DI9IV0Ew.js";
|
|
2
|
+
import { html as kt, htmlCompletionSource as Lt } from "./index-2EY2JNir.js";
|
|
3
3
|
class $ {
|
|
4
4
|
static create(e, r, n, s, i) {
|
|
5
5
|
let o = s + (s << 8) + e + (r << 4) | 0;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { L as s } from "./index-
|
|
2
|
-
import { s as n, t as r, a as o, L as P, i as Q, f as i, c as a, g as c } from "./index-
|
|
1
|
+
import { L as s } from "./index-CzpB9qD9.js";
|
|
2
|
+
import { s as n, t as r, a as o, L as P, i as Q, f as i, c as a, g as c } from "./index-DI9IV0Ew.js";
|
|
3
3
|
const g = n({
|
|
4
4
|
String: r.string,
|
|
5
5
|
Number: r.number,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { L as G, E as A, C as N } from "./index-
|
|
2
|
-
import { s as I, t as p, E as Y, a as j, L as U, e as k, h as Z, i as B, f as D, H as M } from "./index-
|
|
1
|
+
import { L as G, E as A, C as N } from "./index-CzpB9qD9.js";
|
|
2
|
+
import { s as I, t as p, E as Y, a as j, L as U, e as k, h as Z, i as B, f as D, H as M } from "./index-DI9IV0Ew.js";
|
|
3
3
|
const h = 1, F = 2, L = 3, H = 4, K = 5, J = 36, ee = 37, te = 38, Oe = 11, oe = 13;
|
|
4
4
|
function re(e) {
|
|
5
5
|
return e == 45 || e == 46 || e == 58 || e >= 65 && e <= 90 || e == 95 || e >= 97 && e <= 122 || e >= 161;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { L as r } from "./index-
|
|
2
|
-
import { s as e, t as O, a as s, L as X, i as l, f as Y, c as $, j as S, m as o, g as t } from "./index-
|
|
1
|
+
import { L as r } from "./index-CzpB9qD9.js";
|
|
2
|
+
import { s as e, t as O, a as s, L as X, i as l, f as Y, c as $, j as S, m as o, g as t } from "./index-DI9IV0Ew.js";
|
|
3
3
|
const Z = e({
|
|
4
4
|
null: O.null,
|
|
5
5
|
instanceof: O.operatorKeyword,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { a as g, L as P, p as l, s as q, t as r } from "./index-
|
|
2
|
-
import { html as c } from "./index-
|
|
3
|
-
import { javascriptLanguage as i } from "./index-
|
|
4
|
-
import { L as R, E as p } from "./index-
|
|
1
|
+
import { a as g, L as P, p as l, s as q, t as r } from "./index-DI9IV0Ew.js";
|
|
2
|
+
import { html as c } from "./index-2EY2JNir.js";
|
|
3
|
+
import { javascriptLanguage as i } from "./index-Cb-sJiqp.js";
|
|
4
|
+
import { L as R, E as p } from "./index-CzpB9qD9.js";
|
|
5
5
|
const b = 1, $ = 33, m = 34, v = 35, x = 36, W = /* @__PURE__ */ new p((O) => {
|
|
6
6
|
let t = O.pos;
|
|
7
7
|
for (; ; ) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { L as w, E as p, a as Y } from "./index-
|
|
2
|
-
import { s as x, t as r, a as q, L as j, e as G, i as R, f as T, c as E, g as _, o as C, I as U } from "./index-
|
|
1
|
+
import { L as w, E as p, a as Y } from "./index-CzpB9qD9.js";
|
|
2
|
+
import { s as x, t as r, a as q, L as j, e as G, i as R, f as T, c as E, g as _, o as C, I as U } from "./index-DI9IV0Ew.js";
|
|
3
3
|
const V = 122, g = 1, Z = 123, W = 124, b = 2, N = 125, I = 3, F = 4, X = [
|
|
4
4
|
9,
|
|
5
5
|
10,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { a as p, L as u, p as n, s as l, t as e } from "./index-
|
|
2
|
-
import { html as m } from "./index-
|
|
3
|
-
import { javascriptLanguage as b } from "./index-
|
|
4
|
-
import { L as S, a as r } from "./index-
|
|
1
|
+
import { a as p, L as u, p as n, s as l, t as e } from "./index-DI9IV0Ew.js";
|
|
2
|
+
import { html as m } from "./index-2EY2JNir.js";
|
|
3
|
+
import { javascriptLanguage as b } from "./index-Cb-sJiqp.js";
|
|
4
|
+
import { L as S, a as r } from "./index-CzpB9qD9.js";
|
|
5
5
|
const c = /* @__PURE__ */ S.deserialize({
|
|
6
6
|
version: 14,
|
|
7
7
|
states: "%pOVOWOOObQPOOOpOSO'#C_OOOO'#Cp'#CpQVOWOOQxQPOOO!TQQOOQ!YQPOOOOOO,58y,58yO!_OSO,58yOOOO-E6n-E6nO!dQQO'#CqQ{QPOOO!iQPOOQ{QPOOO!qQPOOOOOO1G.e1G.eOOQO,59],59]OOQO-E6o-E6oO!yOpO'#CiO#RO`O'#CiQOQPOOO#ZO#tO'#CmO#fO!bO'#CmOOQO,59T,59TO#qOpO,59TO#vO`O,59TOOOO'#Cr'#CrO#{O#tO,59XOOQO,59X,59XOOOO'#Cs'#CsO$WO!bO,59XOOQO1G.o1G.oOOOO-E6p-E6pOOQO1G.s1G.sOOOO-E6q-E6q",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { L as o, E as a } from "./index-
|
|
2
|
-
import { s as Z, t as Q, a as _, L as q, i as l, f as w, c as r, g as V } from "./index-
|
|
1
|
+
import { L as o, E as a } from "./index-CzpB9qD9.js";
|
|
2
|
+
import { s as Z, t as Q, a as _, L as q, i as l, f as w, c as r, g as V } from "./index-DI9IV0Ew.js";
|
|
3
3
|
const g = 1, R = 2, b = 3, y = 4, T = 5, s = 98, c = 101, v = 102, t = 114, p = 69, X = 48, W = 46, d = 43, f = 45, Y = 35, z = 34, x = 124, U = 60, h = 62;
|
|
4
4
|
function n(O) {
|
|
5
5
|
return O >= 48 && O <= 57;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { L as D, E as h, C as L } from "./index-
|
|
2
|
-
import { s as H, t as n, b as B, a as K, L as M, e as OO, i as eO, f as iO, j as f, g as aO, o as nO, I as rO, d as QO, n as d } from "./index-
|
|
1
|
+
import { L as D, E as h, C as L } from "./index-CzpB9qD9.js";
|
|
2
|
+
import { s as H, t as n, b as B, a as K, L as M, e as OO, i as eO, f as iO, j as f, g as aO, o as nO, I as rO, d as QO, n as d } from "./index-DI9IV0Ew.js";
|
|
3
3
|
const tO = 1, Z = 194, j = 195, oO = 196, x = 197, dO = 198, sO = 199, lO = 200, TO = 2, E = 3, u = 201, SO = 24, pO = 25, qO = 49, gO = 50, PO = 55, mO = 56, $O = 57, hO = 59, cO = 60, fO = 61, XO = 62, yO = 63, zO = 65, WO = 238, vO = 71, RO = 241, kO = 242, _O = 243, xO = 244, uO = 245, UO = 246, bO = 247, VO = 248, Y = 72, GO = 249, wO = 250, ZO = 251, jO = 252, EO = 253, YO = 254, FO = 255, CO = 256, JO = 73, AO = 77, IO = 263, NO = 112, DO = 130, LO = 151, HO = 152, BO = 155, p = 10, q = 13, k = 32, c = 9, _ = 35, KO = 40, MO = 46, R = 123, U = 125, F = 39, C = 34, b = 92, Oe = 111, ee = 120, ie = 78, ae = 117, ne = 85, re = /* @__PURE__ */ new Set([
|
|
4
4
|
pO,
|
|
5
5
|
qO,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { L as M, E as X, a as h, C as E } from "./index-
|
|
2
|
-
import { s as A, t as i, E as C, a as J, n as o, L as I, b as B, d as D, e as u, h as K, i as N, f as H, c as g, j as F, m as OO, g as aO, J as j, x as QO, o as iO, I as eO } from "./index-
|
|
1
|
+
import { L as M, E as X, a as h, C as E } from "./index-CzpB9qD9.js";
|
|
2
|
+
import { s as A, t as i, E as C, a as J, n as o, L as I, b as B, d as D, e as u, h as K, i as N, f as H, c as g, j as F, m as OO, g as aO, J as j, x as QO, o as iO, I as eO } from "./index-DI9IV0Ew.js";
|
|
3
3
|
const $O = 315, rO = 316, v = 1, tO = 2, lO = 3, nO = 4, oO = 317, sO = 319, ZO = 320, PO = 5, pO = 6, cO = 0, q = [
|
|
4
4
|
9,
|
|
5
5
|
10,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { L as o, E as t } from "./index-
|
|
2
|
-
import { s, t as Q, a as j, L as x, i as f, f as c, c as a, j as W, m as S, g as l } from "./index-
|
|
1
|
+
import { L as o, E as t } from "./index-CzpB9qD9.js";
|
|
2
|
+
import { s, t as Q, a as j, L as x, i as f, f as c, c as a, j as W, m as S, g as l } from "./index-DI9IV0Ew.js";
|
|
3
3
|
const r = 1, q = 2, u = 3, n = 82, Z = 76, V = 117, T = 85, z = 97, w = 122, m = 65, b = 90, y = 95, i = 48, Y = 34, v = 40, P = 41, _ = 32, U = 62, p = new t((O) => {
|
|
4
4
|
if (O.next == Z || O.next == T ? O.advance() : O.next == V && (O.advance(), O.next == i + 8 && O.advance()), O.next != n || (O.advance(), O.next != Y)) return;
|
|
5
5
|
O.advance();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { a as t, L as i, i as n, f as $, c as y, g as P, s as X, t as O } from "./index-
|
|
2
|
-
import { defineCSSCompletionSource as m } from "./index-
|
|
3
|
-
import { L as c, E as S } from "./index-
|
|
1
|
+
import { a as t, L as i, i as n, f as $, c as y, g as P, s as X, t as O } from "./index-DI9IV0Ew.js";
|
|
2
|
+
import { defineCSSCompletionSource as m } from "./index-C8lLApSB.js";
|
|
3
|
+
import { L as c, E as S } from "./index-CzpB9qD9.js";
|
|
4
4
|
const f = 110, l = 1, s = 2, r = [
|
|
5
5
|
9,
|
|
6
6
|
10,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { L as v, E as i, C as _ } from "./index-
|
|
2
|
-
import { s as W, t as e, a as g, L as x, f as p, i as U, g as V, c as E } from "./index-
|
|
3
|
-
import { defineCSSCompletionSource as N } from "./index-
|
|
1
|
+
import { L as v, E as i, C as _ } from "./index-CzpB9qD9.js";
|
|
2
|
+
import { s as W, t as e, a as g, L as x, f as p, i as U, g as V, c as E } from "./index-DI9IV0Ew.js";
|
|
3
|
+
import { defineCSSCompletionSource as N } from "./index-C8lLApSB.js";
|
|
4
4
|
const j = 168, X = 169, C = 170, I = 1, D = 2, w = 3, L = 171, F = 172, Y = 4, z = 173, K = 5, A = 174, T = 175, Z = 176, s = 177, G = 6, q = 7, B = 8, H = 9, c = 0, R = [
|
|
5
5
|
9,
|
|
6
6
|
10,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { L as V, E as X } from "./index-
|
|
2
|
-
import { s as d, t as $, a as Z, L as R, p as s, i as t, f as y, c, j as U, g as l } from "./index-
|
|
3
|
-
import { html as w } from "./index-
|
|
1
|
+
import { L as V, E as X } from "./index-CzpB9qD9.js";
|
|
2
|
+
import { s as d, t as $, a as Z, L as R, p as s, i as t, f as y, c, j as U, g as l } from "./index-DI9IV0Ew.js";
|
|
3
|
+
import { html as w } from "./index-2EY2JNir.js";
|
|
4
4
|
const W = 1, p = 2, q = 275, u = 3, b = 276, _ = 277, f = 278, k = 4, m = 5, G = 6, x = 7, z = 8, h = 9, g = 10, v = 11, j = 12, E = 13, I = 14, N = 15, L = 16, F = 17, C = 18, H = 19, A = 20, K = 21, D = 22, B = 23, M = 24, J = 25, OO = 26, $O = 27, QO = 28, iO = 29, aO = 30, TO = 31, PO = 32, XO = 33, SO = 34, cO = 35, eO = 36, oO = 37, _O = 38, zO = 39, nO = 40, rO = 41, YO = 42, VO = 43, dO = 44, ZO = 45, RO = 46, sO = 47, tO = 48, yO = 49, UO = 50, lO = 51, wO = 52, WO = 53, pO = 54, qO = 55, uO = 56, bO = 57, fO = 58, kO = 59, mO = 60, GO = 61, xO = 62, e = 63, hO = 64, gO = 65, vO = 66, jO = {
|
|
5
5
|
abstract: k,
|
|
6
6
|
and: m,
|