@ascencia/id-core 0.1.0-rc.1 → 0.1.0-rc.2

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.
Files changed (3) hide show
  1. package/README.md +13 -3
  2. package/package.json +2 -2
  3. package/src/client.ts +13 -1
package/README.md CHANGED
@@ -41,12 +41,22 @@ alors chez vous et le navigateur ne reçoit qu'un cookie.
41
41
 
42
42
  ## TypeScript
43
43
 
44
- Le paquet est publié en **source TypeScript**. Les bundlers modernes le
45
- transpilent sans rien faire ; avec Next.js, l'ajouter à `transpilePackages` :
44
+ Les paquets sont publiés en **source TypeScript**, sans étape de compilation.
45
+ Avec Next.js, il faut donc les transpiler — et **déclarer toute la chaîne, pas
46
+ seulement ce qu'on importe** :
46
47
 
47
48
  ```ts
48
49
  // next.config.ts
49
- transpilePackages: ['@ascencia/id-core'],
50
+ transpilePackages: [
51
+ '@ascencia/id-rbac', // dépendance de core et server, jamais importée
52
+ '@ascencia/id-core',
53
+ '@ascencia/id-server',
54
+ ],
50
55
  ```
51
56
 
57
+ `@ascencia/id-rbac` est le piège : on ne l'importe jamais soi-même, donc on
58
+ l'oublie. Le typecheck reste vert — il lit le TypeScript — et c'est le bundler
59
+ qui échoue, sur un `Unexpected token` au milieu d'un fichier qu'on n'a pas
60
+ écrit.
61
+
52
62
  MIT · [Documentation](https://id.ascencia.re/help)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ascencia/id-core",
3
- "version": "0.1.0-rc.1",
3
+ "version": "0.1.0-rc.2",
4
4
  "description": "Client OIDC d'Ascencia ID – agnostique de tout framework, zéro dépendance runtime.",
5
5
  "type": "module",
6
6
  "main": "./src/index.ts",
@@ -20,7 +20,7 @@
20
20
  "LICENSE"
21
21
  ],
22
22
  "dependencies": {
23
- "@ascencia/id-rbac": "0.1.0-rc.1"
23
+ "@ascencia/id-rbac": "0.1.0-rc.2"
24
24
  },
25
25
  "license": "MIT",
26
26
  "repository": {
package/src/client.ts CHANGED
@@ -33,7 +33,19 @@ import type {
33
33
  User,
34
34
  } from './types';
35
35
 
36
- const DEFAULT_SCOPES = ['openid', 'profile', 'email', 'ascencia.roles'];
36
+ /*
37
+ * `ascencia.perms` est dans les défauts, et ce n'est pas du confort.
38
+ *
39
+ * `AscenciaContext.can()` est l'API principale du SDK, et elle lit la
40
+ * revendication `perms` — que seul ce scope fait émettre. Sans lui, `can()`
41
+ * rend **false pour tout**, sans erreur, sans avertissement : l'application
42
+ * refuse tout le monde et rien n'explique pourquoi.
43
+ *
44
+ * Constaté en branchant la première application cliente. Une API principale
45
+ * qui ne marche pas avec les réglages par défaut n'est pas un réglage à
46
+ * documenter, c'est un défaut à corriger.
47
+ */
48
+ const DEFAULT_SCOPES = ['openid', 'profile', 'email', 'ascencia.roles', 'ascencia.perms'];
37
49
  const DEFAULT_SKEW_SECONDS = 60;
38
50
  const DEFAULT_CONTEXT_TTL_MS = 60_000;
39
51