@abyss-project/commons-front-core 7.0.0 → 8.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/README.md +24 -0
- package/catalog/playwright.ci.config.ts +29 -0
- package/catalog/vite.config.ts +6 -1
- package/dist/{AbyssModal.component-Be9980v8.js → AbyssCookieConsentProvider-BhSzVu8P.js} +2393 -2142
- package/dist/CookieConsentSettings.component-DMEAuCVS.js +77 -0
- package/dist/auth/components/AuthHeroLayout/AuthHeroLayout.component.d.ts +39 -0
- package/dist/auth/components/AuthHeroLayout/AuthHeroLayout.component.spec.d.ts +1 -0
- package/dist/auth/components/AuthHeroLayout/auth-hero.context.d.ts +11 -0
- package/dist/auth/components/index.d.ts +3 -0
- package/dist/auth/components/shared/OneTimeCodeField.component.d.ts +6 -2
- package/dist/auth/components/shared/OneTimeCodeField.component.spec.d.ts +1 -0
- package/dist/auth/components/test-support/own-css.d.ts +5 -0
- package/dist/components/layers/Toast/Toast.d.ts +1 -1
- package/dist/components/structure/AppShell/AppShell.d.ts +1 -1
- package/dist/components/structure/test-support/structure-test-harness.d.ts +1 -1
- package/dist/cookie-consent.js +17 -16
- package/dist/{design-theme-BSrfO5Lg.js → design-theme-CvLzOz3p.js} +3469 -3262
- package/dist/fonts.css +1 -1
- package/dist/hooks/use-rich-intl.hook.d.ts +36 -0
- package/dist/{index-DEAXSgTl.js → index-21vSFz6u.js} +2 -2
- package/dist/{index-BLlNcpG3.js → index-6KdfKdSJ.js} +2 -2
- package/dist/{index-C_Sk7zwR.js → index-7HAvRXgu.js} +2 -2
- package/dist/{index-MZi-_cYy.js → index-ASLTmD1Y.js} +2 -2
- package/dist/{index-BzCSI9XW.js → index-BTjzj7mm.js} +2 -2
- package/dist/{index-A5kt29MO.js → index-BVS73U9E.js} +4 -4
- package/dist/{index-Do1fJzj3.js → index-BkfBpYKR.js} +3 -3
- package/dist/{index-CHSMfNLS.js → index-BqIg55B3.js} +4 -4
- package/dist/{index-CqYmPMRC.js → index-Btnmn1iK.js} +4 -4
- package/dist/{index-DwH67Kcz.js → index-BtsnuEJC.js} +25265 -23537
- package/dist/{index-CfGWl_3N.js → index-C92C_oG5.js} +2 -2
- package/dist/{index-CQtuGy2v.js → index-CHGRiRCe.js} +3 -3
- package/dist/{index-Ds5uSeS4.js → index-ClLoBnCN.js} +2 -2
- package/dist/{index-WQz3nM40.js → index-D4Qh2Iww.js} +3 -3
- package/dist/{index-BuzeZTOG.js → index-D5e4uD4k.js} +2 -2
- package/dist/{index-Cnpf4y1o.js → index-D_GWBYM2.js} +1 -1
- package/dist/{index-Dj8ju3uH.js → index-DixNft1u.js} +2 -2
- package/dist/{index-Bkf4H0Hz.js → index-GoHiFeaw.js} +2 -2
- package/dist/{index-BaELetix.js → index-LdiTmDFg.js} +2 -2
- package/dist/{index-DTPUe23x.js → index-Ni4BmFs4.js} +2 -2
- package/dist/{index-CrrfwI5H.js → index-bR-mnNUA.js} +2 -2
- package/dist/{index-l4rCdiSM.js → index-l7FAjaVB.js} +3 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2610 -2232
- package/dist/legacy/components/CookieConsent/AbyssCookieConsentProvider.d.ts +5 -0
- package/dist/legacy/components/CookieConsent/AbyssCookieConsentProvider.spec.d.ts +1 -0
- package/dist/legacy/components/Utils/AbyssErrorPage/AbyssErrorBoundary.component.spec.d.ts +1 -0
- package/dist/legacy/fonts.css +1 -1
- package/dist/legacy.js +206 -205
- package/dist/rum/AbyssRumProvider.d.ts +29 -0
- package/dist/rum/AbyssRumProvider.spec.d.ts +1 -0
- package/dist/rum/feedback-ticket.d.ts +24 -0
- package/dist/rum/index.d.ts +2 -0
- package/dist/theme/augmentation.d.ts +1 -1
- package/dist/theme/components/shared.d.ts +1 -1
- package/dist/theme/create-abyss-theme.d.ts +1 -1
- package/dist/theme/design-theme.d.ts +1 -1
- package/dist/theme/tokens/oklch.d.ts +1 -1
- package/dist/theme/tokens/soft.d.ts +1 -1
- package/dist/translations/en.d.ts +14 -0
- package/dist/translations/fr.d.ts +14 -0
- package/package.json +10 -5
- package/vite.config.ts +1 -1
- package/dist/CookieConsentSettings.component-CE2qOlyC.js +0 -299
- package/test-results/catalog/.last-run.json +0 -4
package/README.md
CHANGED
|
@@ -25,6 +25,30 @@ pnpm add @abyss-project/commons-front-core
|
|
|
25
25
|
|
|
26
26
|
Voir la [documentation produit](https://docs.abyss-project.fr/abyss-project) pour les guides d'utilisation, la configuration du Core, les exemples d'appel et la référence des permissions.
|
|
27
27
|
|
|
28
|
+
## RUM
|
|
29
|
+
|
|
30
|
+
Le RUM navigateur d'un front (SDK `@abyss-project/monitor-browser`, peer `^1.2.0`) se démarre par `AbyssRumProvider`, monté **sous** `AbyssCookieConsentProvider` et, quand le front en a un, sous `AuthProvider` :
|
|
31
|
+
|
|
32
|
+
```tsx
|
|
33
|
+
<AbyssErrorBoundary appName="abyss-cloud">
|
|
34
|
+
<AuthProvider client={authClient}>
|
|
35
|
+
<AbyssCookieConsentProvider consentVersion={COOKIE_CONSENT_VERSION} isAuthenticated={isAuthenticated}>
|
|
36
|
+
<AbyssRumProvider config={buildRumOptions()}>
|
|
37
|
+
<App />
|
|
38
|
+
</AbyssRumProvider>
|
|
39
|
+
</AbyssCookieConsentProvider>
|
|
40
|
+
</AuthProvider>
|
|
41
|
+
</AbyssErrorBoundary>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
- **`config` est requise** (raison de la majeure 8.0.0 : aucun front ne peut oublier son RUM). `config={null}` désactive le RUM explicitement : rien n'est installé. Elle reçoit les options de `AbyssRum.init` (`apiUrl`, `proxyUrl`, `applicationId`, `token`, `release`, `instrumentedOrigins`, `routeResolver`…), sauf `consent`, que le provider fournit.
|
|
45
|
+
- **Une seule initialisation.** `AbyssRum.init` est appelé au premier commit avec une `config` non nulle, une fois, StrictMode compris. Une `config` qui change ensuite est **ignorée** : le SDK vit autant que la page.
|
|
46
|
+
- **Consentement.** Le replay exige la catégorie analytics de `AbyssCookieConsentProvider`, relue à chaque décision du SDK : un consentement donné ou retiré après le démarrage est suivi. Sans provider de consentement, analytics vaut refusé.
|
|
47
|
+
- **Acteur.** Sous `AuthProvider`, l'acteur de la session est l'id de l'utilisateur connecté, `null` à la déconnexion, inchangé pendant le chargement de la session. Sans `AuthProvider`, aucun acteur.
|
|
48
|
+
- **`feedbackTicket`** (`intakeSlug`, `internalTicketSectionId`, `appName`, `sessionUrl(sessionId, offsetMs)`) : chaque retour utilisateur enregistré par Monitor devient un ticket Internal Tickets, par l'intake public d'abyss-console (`fileInternalTicketIntake`, peer `@abyss-project/console` `^12.4.0`, configuré par `AbyssConsoleCore.setConfig` du front). Titre `[<appName>] Retour utilisateur` ; description : le message, l'e-mail, la route et le lien vers la session. Le déclarant est l'e-mail saisi, sinon celui de l'utilisateur connecté ; un retour anonyme sans e-mail ne crée aucun ticket et reste dans Monitor. Un échec de création est journalisé (`console.warn`) et avalé.
|
|
49
|
+
- **`onFeedbackSent`** : rappel du front, appelé pour chaque retour enregistré, après le ticket (créé, sauté ou en échec).
|
|
50
|
+
- **Erreurs de rendu.** `AbyssErrorBoundary` envoie l'erreur qu'il attrape à `AbyssRum.captureError(error, { source: 'error-boundary' })` ; sans RUM démarré, l'appel ne fait rien.
|
|
51
|
+
|
|
28
52
|
## Support
|
|
29
53
|
|
|
30
54
|
Pour toute demande, ouvrir un ticket depuis [l'application Abyss](https://app.abyss-project.fr/dashboard/account/tickets/create).
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { dirname, resolve } from 'path';
|
|
2
|
+
import { fileURLToPath } from 'url';
|
|
3
|
+
import { defineConfig } from '@playwright/test';
|
|
4
|
+
import baseConfig from './playwright.config';
|
|
5
|
+
import { catalogPort } from './catalog-port';
|
|
6
|
+
|
|
7
|
+
// CI run of the catalog checks (`catalog:test:ci`, job `front-core-catalog`): the built catalog
|
|
8
|
+
// (`catalog-dist/`, built by the script just before) served by `vite preview`, instead of the dev
|
|
9
|
+
// server, which transforms every module on demand and makes a shared runner miss its timeouts.
|
|
10
|
+
// Only the specs that carry criteria 15 and 16 run (responsive, mobile-shell): the captures are a
|
|
11
|
+
// human review, produced locally by `catalog:test`, so neither their spec nor the teardown that
|
|
12
|
+
// indexes them runs here.
|
|
13
|
+
const port = catalogPort();
|
|
14
|
+
const packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), '..');
|
|
15
|
+
|
|
16
|
+
export default defineConfig({
|
|
17
|
+
...baseConfig,
|
|
18
|
+
testIgnore: ['**/captures.spec.ts'],
|
|
19
|
+
globalTeardown: undefined,
|
|
20
|
+
workers: 4,
|
|
21
|
+
webServer: {
|
|
22
|
+
command: 'pnpm exec vite preview --config catalog/vite.config.ts',
|
|
23
|
+
cwd: packageRoot,
|
|
24
|
+
url: `http://127.0.0.1:${port}`,
|
|
25
|
+
reuseExistingServer: false,
|
|
26
|
+
timeout: 60_000,
|
|
27
|
+
env: { CATALOG_PORT: String(port) },
|
|
28
|
+
},
|
|
29
|
+
});
|
package/catalog/vite.config.ts
CHANGED
|
@@ -3,7 +3,10 @@ import { defineConfig } from 'vite';
|
|
|
3
3
|
import react from '@vitejs/plugin-react';
|
|
4
4
|
import { catalogPort } from './catalog-port';
|
|
5
5
|
|
|
6
|
-
// The catalog of the design system components
|
|
6
|
+
// The catalog of the design system components, never published. Served by the dev server
|
|
7
|
+
// (`catalog`, `catalog:test`), or built into `catalog-dist/` and served by `vite preview` for the
|
|
8
|
+
// CI run (`catalog:test:ci`): the dev server transforms every module on demand, too slow on a
|
|
9
|
+
// shared runner.
|
|
7
10
|
const port = catalogPort();
|
|
8
11
|
|
|
9
12
|
const MAIN_CORE_SOURCE = resolve(__dirname, '../../abyss_main_core/src');
|
|
@@ -23,5 +26,7 @@ export default defineConfig({
|
|
|
23
26
|
],
|
|
24
27
|
},
|
|
25
28
|
optimizeDeps: { exclude: ['@abyss-project/main'] },
|
|
29
|
+
build: { outDir: resolve(__dirname, '../catalog-dist'), emptyOutDir: true },
|
|
26
30
|
server: { port, strictPort: true, host: '127.0.0.1' },
|
|
31
|
+
preview: { port, strictPort: true, host: '127.0.0.1' },
|
|
27
32
|
});
|