@owlmeans/iam 0.1.18-rc.18 → 0.1.18-rc.19

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 CHANGED
@@ -36,7 +36,7 @@ This package ships embedded agent skills under `agent-meta/`. After installing y
36
36
  your project's skill store (`.agents/skills/`):
37
37
 
38
38
  ```sh
39
- npx @owlmeans/agent-skills@^0.1.18-rc.14
39
+ npx @owlmeans/agent-skills@^0.1.18-rc.15
40
40
  ```
41
41
 
42
42
  The embedded files are version-matched to this package release. Do not edit them
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
3
  "package": "@owlmeans/iam",
4
- "version": "0.1.18-rc.18",
5
- "generatedAt": "2026-09-10T23:12:07.509Z",
4
+ "version": "0.1.18-rc.19",
5
+ "generatedAt": "2026-09-12T08:39:52.722Z",
6
6
  "canonicalRepo": "https://github.com/owlmeans/common",
7
7
  "entries": [
8
8
  {
@@ -8,7 +8,7 @@ metadata:
8
8
 
9
9
  # Using `@owlmeans/iam`
10
10
 
11
- **Install:** `"@owlmeans/iam": "^0.1.18-rc.18"` in `dependencies`
11
+ **Install:** `"@owlmeans/iam": "^0.1.18-rc.19"` in `dependencies`
12
12
 
13
13
  Provider-agnostic IAM abstraction: the `IamService` interface, the permission and grant shapes, the
14
14
  gate-param grammar, and `hasPermission`. It contains no implementation and talks to no provider —
@@ -24,22 +24,16 @@ lines.
24
24
  | Export | Description |
25
25
  |--------|-------------|
26
26
  | `appendIam(context, opts?)` | Wires the OIDC guard onto a web context **and** installs the consent-before-sign-in precondition |
27
- | `setupIam(entrypoints, coguards?)` | Wires the same guard onto the entrypoint list, and attaches the dispatcher screen |
27
+ | `withIamGuard(protocolTree, coguards?)` | Returns a decorated immutable protocol tree with IAM's OIDC guard applied |
28
+ | `iamEntrypoints(dispatcherProps?)` | Browser-local OIDC bindings and dispatcher-screen binding |
28
29
  | `requireConsentForLogin(ctx, opts?)` | That precondition on its own, for a context wired some other way |
29
30
  | `CONSENT_LOGIN_PRECONDITION` / `CLIENT_IAM_SERVICE` | The precondition alias and the service alias |
30
31
  | `useLogin` / `useLogout`, `LoginOutcome` / `LoginIntent`, `LoginPlugin` / `LoginService` / … | Re-exported sign-in surface, so an app has one IAM import rather than three |
31
32
  | Everything from `@owlmeans/iam` | The types above, plus `hasPermission` |
32
33
 
33
- Two rules ride on it. **`setupIam` is called exactly once per entrypoint list** — it appends the OIDC
34
- dispatcher entrypoints to the list it is given rather than returning a new one, and then elevates
35
- three aliases in place. **Calling it twice fails silently, it does not throw.** Elevation is
36
- idempotent: it replaces the *first* element carrying the alias and only raises when the alias is
37
- absent (`Entrypoint with alias … not present`, which a list missing the `DISPATCHER` declaration
38
- hits). So a second `setupIam` — or a `setupOidcGuard` from `@owlmeans/web-oidc-rp` called alongside
39
- it — leaves the same declarations in the list twice and re-elevates them, with no error and no
40
- warning, and the dispatcher screen ends up as whatever the later call attached: a parametrised
41
- dispatcher is quietly swapped for the default. An app that calls `setupIam` must therefore not also
42
- call `setupOidcGuard` itself.
34
+ The protocol tree is immutable. Decorate it once with `withIamGuard(protocols)` before binding local
35
+ screens and API callers, then spread `iamEntrypoints()` once into that browser binding list. The
36
+ helper deliberately does not add declarations to a flattened entrypoint array.
43
37
 
44
38
  And the consent precondition sits on `LoginService.begin` rather than on a hook, a screen or a login
45
39
  plugin, because `begin` is the single funnel every sign-in mechanic passes through and the one place
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@owlmeans/iam",
3
- "version": "0.1.18-rc.18",
3
+ "version": "0.1.18-rc.19",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -22,11 +22,11 @@
22
22
  }
23
23
  },
24
24
  "dependencies": {
25
- "@owlmeans/auth": "^0.1.18-rc.11",
26
- "@owlmeans/context": "^0.1.18-rc.10",
27
- "@owlmeans/error": "^0.1.18-rc.10",
28
- "@owlmeans/oidc": "^0.1.18-rc.15",
29
- "@owlmeans/route": "^0.1.18-rc.11"
25
+ "@owlmeans/auth": "^0.1.18-rc.12",
26
+ "@owlmeans/context": "^0.1.18-rc.11",
27
+ "@owlmeans/error": "^0.1.18-rc.11",
28
+ "@owlmeans/oidc": "^0.1.18-rc.24",
29
+ "@owlmeans/route": "^0.1.18-rc.12"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@owlmeans/dep-config": "workspace:*",