@owlmeans/client-auth 0.1.18-rc.36 → 0.1.18-rc.38
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 +2 -2
- package/agent-meta/manifest.json +2 -2
- package/agent-meta/skills/client-auth/SKILL.md +5 -1
- package/build/components/dispatcher/component.d.ts.map +1 -1
- package/build/components/dispatcher/component.js +13 -2
- package/build/components/dispatcher/component.js.map +1 -1
- package/package.json +22 -22
- package/src/components/dispatcher/component.tsx +15 -2
- package/src/manager/README.md +1 -1
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@ legacy). The server-side counterpart is `@owlmeans/server-auth`.
|
|
|
12
12
|
## Installation
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
|
-
bun add @owlmeans/client-auth@^0.1.18-rc.
|
|
15
|
+
bun add @owlmeans/client-auth@^0.1.18-rc.38
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
## Concepts
|
|
@@ -319,7 +319,7 @@ This package ships embedded agent skills under `agent-meta/`. After installing y
|
|
|
319
319
|
your project's skill store (`.agents/skills/`):
|
|
320
320
|
|
|
321
321
|
```sh
|
|
322
|
-
npx @owlmeans/agent-skills@^0.1.18-rc.
|
|
322
|
+
npx @owlmeans/agent-skills@^0.1.18-rc.28
|
|
323
323
|
```
|
|
324
324
|
|
|
325
325
|
The embedded files are version-matched to this package release. Do not edit them
|
package/agent-meta/manifest.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 2,
|
|
3
3
|
"package": "@owlmeans/client-auth",
|
|
4
|
-
"version": "0.1.18-rc.
|
|
5
|
-
"generatedAt": "2026-09-
|
|
4
|
+
"version": "0.1.18-rc.38",
|
|
5
|
+
"generatedAt": "2026-09-18T18:24:55.973Z",
|
|
6
6
|
"canonicalRepo": "https://github.com/owlmeans/common",
|
|
7
7
|
"entries": [
|
|
8
8
|
{
|
|
@@ -8,7 +8,7 @@ user-invocable: false
|
|
|
8
8
|
# @owlmeans/client-auth
|
|
9
9
|
|
|
10
10
|
**Layer:** Client
|
|
11
|
-
**Install:** `"@owlmeans/client-auth": "^0.1.18-rc.
|
|
11
|
+
**Install:** `"@owlmeans/client-auth": "^0.1.18-rc.38"` in `dependencies`
|
|
12
12
|
|
|
13
13
|
Five subpaths, five jobs:
|
|
14
14
|
|
|
@@ -146,6 +146,10 @@ a web application only calls these when it builds its context by hand.
|
|
|
146
146
|
`persist()` / `restore()` / `hasPersistentState()` / `cleanUpState()`. They keep the type, stage
|
|
147
147
|
and allowance in the `FLOW_STATE` resource under an id this package owns and does not export —
|
|
148
148
|
restore before submitting the credential, and clean up after.
|
|
149
|
+
- After a sign-in, `DispatcherHOC.navigate` resumes a landing suspended in `@owlmeans/client-flow`
|
|
150
|
+
(`resumeSuspendedFlow`, one-shot, an entrypoint alias plus its query) before it falls back to `HOME`;
|
|
151
|
+
it is read BEFORE `alias` is defaulted to `HOME`. Login plugins that navigate on their own do the same
|
|
152
|
+
— see `login-plugins`.
|
|
149
153
|
- The browser ends up holding an ordinary OwlMeans bearer token whichever provider issued the
|
|
150
154
|
login. Product authorization stays server-side, in entrypoint gates and handler checks — never in
|
|
151
155
|
client-only state.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/dispatcher/component.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA2B,cAAc,EAAE,MAAM,YAAY,CAAA;AAczE,eAAO,MAAM,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/dispatcher/component.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA2B,cAAc,EAAE,MAAM,YAAY,CAAA;AAczE,eAAO,MAAM,aAAa,EAAE,cAyF3B,CAAA"}
|
|
@@ -4,14 +4,25 @@ import { AUTH_QUERY, DISPATCHER } from '@owlmeans/auth';
|
|
|
4
4
|
import { HOME } from '@owlmeans/context';
|
|
5
5
|
import { DEFAULT_ALIAS, DEFAULT_ENTITY } from '../../consts.js';
|
|
6
6
|
import { useNavigate } from '@owlmeans/client';
|
|
7
|
-
import { DEFAULT_ALIAS as FLOW_SERVICE } from '@owlmeans/client-flow';
|
|
7
|
+
import { DEFAULT_ALIAS as FLOW_SERVICE, resumeSuspendedFlow } from '@owlmeans/client-flow';
|
|
8
8
|
import { FLOW_PLACEHOLDER, OidcAuthStep, STD_OIDC_FLOW } from '@owlmeans/flow';
|
|
9
9
|
import { SERVICE_PARAM } from '@owlmeans/web-flow';
|
|
10
10
|
export const DispatcherHOC = Renderer => ({ context, params, alias, query, payload }) => {
|
|
11
11
|
const [forwarding, setForwarding] = useState();
|
|
12
12
|
const navigator = useNavigate();
|
|
13
13
|
const navigate = useCallback(async () => {
|
|
14
|
-
|
|
14
|
+
if (alias == null || alias === DISPATCHER) {
|
|
15
|
+
// A sign-in that started elsewhere — a device or authorization-code consent screen, most
|
|
16
|
+
// commonly — suspended itself here before leaving. Resuming it takes priority over the
|
|
17
|
+
// ordinary HOME landing, and does so BEFORE `alias` is overwritten, because once it is
|
|
18
|
+
// `HOME` there is no way back to tell the two cases apart.
|
|
19
|
+
const landing = await resumeSuspendedFlow(context);
|
|
20
|
+
if (landing != null) {
|
|
21
|
+
await navigator.navigate(context.entrypoint(landing.entrypoint), { query: landing.query });
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
alias = HOME;
|
|
25
|
+
}
|
|
15
26
|
const module = context.entrypoint(alias);
|
|
16
27
|
if (alias === HOME) {
|
|
17
28
|
params = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../../src/components/dispatcher/component.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAGxD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C,OAAO,EAAE,aAAa,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../../src/components/dispatcher/component.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@owlmeans/client-auth",
|
|
3
|
-
"version": "0.1.18-rc.
|
|
3
|
+
"version": "0.1.18-rc.38",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -50,26 +50,26 @@
|
|
|
50
50
|
}
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@owlmeans/auth": "^0.1.18-rc.
|
|
54
|
-
"@owlmeans/auth-common": "^0.1.18-rc.
|
|
55
|
-
"@owlmeans/basic-envelope": "^0.1.18-rc.
|
|
56
|
-
"@owlmeans/basic-keys": "^0.1.18-rc.
|
|
57
|
-
"@owlmeans/client": "^0.1.18-rc.
|
|
58
|
-
"@owlmeans/client-context": "^0.1.18-rc.
|
|
59
|
-
"@owlmeans/client-entrypoint": "^0.1.18-rc.
|
|
60
|
-
"@owlmeans/client-flow": "^0.1.18-rc.
|
|
61
|
-
"@owlmeans/client-resource": "^0.1.18-rc.
|
|
62
|
-
"@owlmeans/client-socket": "^0.1.18-rc.
|
|
63
|
-
"@owlmeans/config": "^0.1.18-rc.
|
|
64
|
-
"@owlmeans/context": "^0.1.18-rc.
|
|
65
|
-
"@owlmeans/did": "^0.1.18-rc.
|
|
66
|
-
"@owlmeans/entrypoint": "^0.1.18-rc.
|
|
67
|
-
"@owlmeans/error": "^0.1.18-rc.
|
|
68
|
-
"@owlmeans/flow": "^0.1.18-rc.
|
|
69
|
-
"@owlmeans/i18n": "^0.1.18-rc.
|
|
70
|
-
"@owlmeans/resource": "^0.1.18-rc.
|
|
71
|
-
"@owlmeans/socket": "^0.1.18-rc.
|
|
72
|
-
"@owlmeans/web-flow": "^0.1.18-rc.
|
|
53
|
+
"@owlmeans/auth": "^0.1.18-rc.27",
|
|
54
|
+
"@owlmeans/auth-common": "^0.1.18-rc.29",
|
|
55
|
+
"@owlmeans/basic-envelope": "^0.1.18-rc.28",
|
|
56
|
+
"@owlmeans/basic-keys": "^0.1.18-rc.30",
|
|
57
|
+
"@owlmeans/client": "^0.1.18-rc.32",
|
|
58
|
+
"@owlmeans/client-context": "^0.1.18-rc.30",
|
|
59
|
+
"@owlmeans/client-entrypoint": "^0.1.18-rc.29",
|
|
60
|
+
"@owlmeans/client-flow": "^0.1.18-rc.34",
|
|
61
|
+
"@owlmeans/client-resource": "^0.1.18-rc.29",
|
|
62
|
+
"@owlmeans/client-socket": "^0.1.18-rc.30",
|
|
63
|
+
"@owlmeans/config": "^0.1.18-rc.29",
|
|
64
|
+
"@owlmeans/context": "^0.1.18-rc.25",
|
|
65
|
+
"@owlmeans/did": "^0.1.18-rc.28",
|
|
66
|
+
"@owlmeans/entrypoint": "^0.1.18-rc.28",
|
|
67
|
+
"@owlmeans/error": "^0.1.18-rc.27",
|
|
68
|
+
"@owlmeans/flow": "^0.1.18-rc.30",
|
|
69
|
+
"@owlmeans/i18n": "^0.1.18-rc.28",
|
|
70
|
+
"@owlmeans/resource": "^0.1.18-rc.27",
|
|
71
|
+
"@owlmeans/socket": "^0.1.18-rc.25",
|
|
72
|
+
"@owlmeans/web-flow": "^0.1.18-rc.33",
|
|
73
73
|
"@scure/base": "^2.3.0"
|
|
74
74
|
},
|
|
75
75
|
"peerDependencies": {
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
},
|
|
79
79
|
"devDependencies": {
|
|
80
80
|
"@owlmeans/dep-config": "workspace:*",
|
|
81
|
-
"@owlmeans/test-auth": "^0.1.18-rc.
|
|
81
|
+
"@owlmeans/test-auth": "^0.1.18-rc.28",
|
|
82
82
|
"@types/bun": "^1.4.0",
|
|
83
83
|
"@types/react": "^19.2.17",
|
|
84
84
|
"nodemon": "^3.1.14",
|
|
@@ -9,7 +9,7 @@ import type { AuthService } from '@owlmeans/auth-common'
|
|
|
9
9
|
import { useNavigate } from '@owlmeans/client'
|
|
10
10
|
import type { AbstractRequest } from '@owlmeans/entrypoint'
|
|
11
11
|
import type { FlowService } from '@owlmeans/client-flow'
|
|
12
|
-
import { DEFAULT_ALIAS as FLOW_SERVICE } from '@owlmeans/client-flow'
|
|
12
|
+
import { DEFAULT_ALIAS as FLOW_SERVICE, resumeSuspendedFlow } from '@owlmeans/client-flow'
|
|
13
13
|
import { FLOW_PLACEHOLDER, OidcAuthStep, STD_OIDC_FLOW } from '@owlmeans/flow'
|
|
14
14
|
import { SERVICE_PARAM } from '@owlmeans/web-flow'
|
|
15
15
|
|
|
@@ -18,7 +18,20 @@ export const DispatcherHOC: TDispatcherHOC = Renderer => ({ context, params, ali
|
|
|
18
18
|
|
|
19
19
|
const navigator = useNavigate()
|
|
20
20
|
const navigate = useCallback(async () => {
|
|
21
|
-
|
|
21
|
+
if (alias == null || alias === DISPATCHER) {
|
|
22
|
+
// A sign-in that started elsewhere — a device or authorization-code consent screen, most
|
|
23
|
+
// commonly — suspended itself here before leaving. Resuming it takes priority over the
|
|
24
|
+
// ordinary HOME landing, and does so BEFORE `alias` is overwritten, because once it is
|
|
25
|
+
// `HOME` there is no way back to tell the two cases apart.
|
|
26
|
+
const landing = await resumeSuspendedFlow(context)
|
|
27
|
+
if (landing != null) {
|
|
28
|
+
await navigator.navigate(
|
|
29
|
+
context.entrypoint<ClientEntrypoint<string>>(landing.entrypoint), { query: landing.query }
|
|
30
|
+
)
|
|
31
|
+
return
|
|
32
|
+
}
|
|
33
|
+
alias = HOME
|
|
34
|
+
}
|
|
22
35
|
const module = context.entrypoint<ClientEntrypoint<string>>(alias)
|
|
23
36
|
if (alias === HOME) {
|
|
24
37
|
params = {}
|
package/src/manager/README.md
CHANGED
|
@@ -37,7 +37,7 @@ Comprehensive error handling for authentication scenarios:
|
|
|
37
37
|
This manager is part of the `@owlmeans/client-auth` package:
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
|
-
npm install @owlmeans/client-auth@^0.1.18-rc.
|
|
40
|
+
npm install @owlmeans/client-auth@^0.1.18-rc.38
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
## API Reference
|