@owlmeans/web-client 0.1.18-rc.3 → 0.1.18-rc.30
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 +19 -16
- package/agent-meta/manifest.json +2 -2
- package/agent-meta/skills/web-client/SKILL.md +28 -48
- package/build/components/dispatcher/component.d.ts.map +1 -1
- package/build/components/dispatcher/component.js +54 -9
- package/build/components/dispatcher/component.js.map +1 -1
- package/build/components/dispatcher/types.d.ts +2 -2
- package/build/components/dispatcher/types.d.ts.map +1 -1
- package/build/context.d.ts.map +1 -1
- package/build/context.js +2 -1
- package/build/context.js.map +1 -1
- package/build/entrypoints.d.ts +16 -0
- package/build/entrypoints.d.ts.map +1 -0
- package/build/entrypoints.js +20 -0
- package/build/entrypoints.js.map +1 -0
- package/build/exports.d.ts +2 -1
- package/build/exports.d.ts.map +1 -1
- package/build/exports.js +1 -1
- package/build/exports.js.map +1 -1
- package/build/i18n/auth-be.json +32 -0
- package/build/i18n/auth-de.json +32 -0
- package/build/i18n/auth-en.json +32 -0
- package/build/i18n/auth-es.json +32 -0
- package/build/i18n/auth-pl.json +32 -0
- package/build/i18n/auth-ru.json +32 -0
- package/build/i18n/auth-uk.json +32 -0
- package/build/index.d.ts +2 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +2 -1
- package/build/index.js.map +1 -1
- package/build/login/consts.d.ts +11 -0
- package/build/login/consts.d.ts.map +1 -0
- package/build/login/consts.js +11 -0
- package/build/login/consts.js.map +1 -0
- package/build/login/index.d.ts +8 -0
- package/build/login/index.d.ts.map +1 -0
- package/build/login/index.js +8 -0
- package/build/login/index.js.map +1 -0
- package/build/login/pump.d.ts +20 -0
- package/build/login/pump.d.ts.map +1 -0
- package/build/login/pump.js +46 -0
- package/build/login/pump.js.map +1 -0
- package/build/login/redirect.d.ts +9 -0
- package/build/login/redirect.d.ts.map +1 -0
- package/build/login/redirect.js +47 -0
- package/build/login/redirect.js.map +1 -0
- package/build/login/screen.d.ts +15 -0
- package/build/login/screen.d.ts.map +1 -0
- package/build/login/screen.js +97 -0
- package/build/login/screen.js.map +1 -0
- package/build/login/service.d.ts +10 -0
- package/build/login/service.d.ts.map +1 -0
- package/build/login/service.js +17 -0
- package/build/login/service.js.map +1 -0
- package/build/login/surrogate.d.ts +21 -0
- package/build/login/surrogate.d.ts.map +1 -0
- package/build/login/surrogate.js +144 -0
- package/build/login/surrogate.js.map +1 -0
- package/build/login/view.d.ts +26 -0
- package/build/login/view.d.ts.map +1 -0
- package/build/login/view.js +73 -0
- package/build/login/view.js.map +1 -0
- package/build/main.d.ts +9 -1
- package/build/main.d.ts.map +1 -1
- package/build/main.js +9 -1
- package/build/main.js.map +1 -1
- package/build/middleware.d.ts.map +1 -1
- package/build/middleware.js +7 -6
- package/build/middleware.js.map +1 -1
- package/build/service.js +1 -1
- package/build/service.js.map +1 -1
- package/build/types.d.ts +2 -1
- package/build/types.d.ts.map +1 -1
- package/package.json +17 -17
- package/src/components/dispatcher/component.tsx +72 -8
- package/src/components/dispatcher/types.ts +2 -2
- package/src/context.ts +2 -2
- package/src/entrypoints.ts +20 -0
- package/src/exports.ts +2 -1
- package/src/i18n/auth-be.json +32 -0
- package/src/i18n/auth-de.json +32 -0
- package/src/i18n/auth-en.json +32 -0
- package/src/i18n/auth-es.json +32 -0
- package/src/i18n/auth-pl.json +32 -0
- package/src/i18n/auth-ru.json +32 -0
- package/src/i18n/auth-uk.json +32 -0
- package/src/index.ts +2 -1
- package/src/login/consts.ts +12 -0
- package/src/login/index.ts +7 -0
- package/src/login/pump.ts +53 -0
- package/src/login/redirect.ts +59 -0
- package/src/login/screen.tsx +119 -0
- package/src/login/service.ts +19 -0
- package/src/login/surrogate.ts +175 -0
- package/src/login/view.tsx +94 -0
- package/src/main.tsx +11 -2
- package/src/middleware.ts +7 -6
- package/src/service.ts +1 -1
- package/src/types.ts +2 -1
- package/build/modules.d.ts +0 -2
- package/build/modules.d.ts.map +0 -1
- package/build/modules.js +0 -8
- package/build/modules.js.map +0 -1
- package/src/modules.ts +0 -9
package/README.md
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
# @owlmeans/web-client
|
|
2
2
|
|
|
3
|
-
React web application bootstrap — context factory,
|
|
3
|
+
React web application bootstrap — context factory, entrypoint/routing utilities, and app renderer for OwlMeans web apps.
|
|
4
4
|
|
|
5
5
|
## Overview
|
|
6
6
|
|
|
7
7
|
- `makeContext(cfg)` — creates the web application context (includes auth, router, and DB services)
|
|
8
8
|
- `renderApp(context)` — mounts the React app to the DOM
|
|
9
|
-
- Re-exports
|
|
9
|
+
- Re-exports entrypoint/routing helpers: `bind`, `bindAll`, `bindScreen`, `route`, `frontend`, `handler`
|
|
10
10
|
- Re-exports route constants: `BASE`, `HOME`, `ROOT`, `GUEST`
|
|
11
|
-
- `
|
|
11
|
+
- `entrypoints` — the base client entrypoints (dispatcher, login surrogate) every web app spreads
|
|
12
|
+
- `ClientProtocolEntrypoint<Protocol>` — the context-bound entrypoint interface inferred from a
|
|
13
|
+
shared protocol declaration; it exposes `call()` / `invoke()` / `url()`
|
|
12
14
|
|
|
13
15
|
## Installation
|
|
14
16
|
|
|
15
17
|
```bash
|
|
16
|
-
bun add @owlmeans/web-client
|
|
18
|
+
bun add @owlmeans/web-client@^0.1.18-rc.23
|
|
17
19
|
```
|
|
18
20
|
|
|
19
21
|
## Usage
|
|
@@ -24,27 +26,28 @@ Bootstrap the app:
|
|
|
24
26
|
import { makeContext, renderApp } from '@owlmeans/web-client'
|
|
25
27
|
|
|
26
28
|
const context = makeContext(config)
|
|
27
|
-
context.
|
|
29
|
+
context.registerEntrypoints(appEntrypoints)
|
|
28
30
|
context.serviceRoute(MANAGER, true)
|
|
29
31
|
renderApp<Config, Context>(context)
|
|
30
32
|
```
|
|
31
33
|
|
|
32
|
-
Define
|
|
34
|
+
Define entrypoints:
|
|
33
35
|
|
|
34
36
|
```typescript
|
|
35
|
-
import {
|
|
37
|
+
import { bindScreen, bindAll } from '@owlmeans/client-entrypoint'
|
|
38
|
+
import { handler } from '@owlmeans/client'
|
|
39
|
+
import { appEntrypoints as protocols } from 'my-app-common'
|
|
36
40
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
41
|
+
appEntrypoints.push(bindScreen(protocols.web.base, handler(PublicLayout)))
|
|
42
|
+
appEntrypoints.push(bindScreen(protocols.web.home, handler(HomeScreen)))
|
|
43
|
+
appEntrypoints.push(...bindAll(protocols.api))
|
|
40
44
|
```
|
|
41
45
|
|
|
42
|
-
|
|
46
|
+
A screen entrypoint carries a renderer, so it is addressed by `url()` and never called over the
|
|
47
|
+
wire. Call an API entrypoint from a component:
|
|
43
48
|
|
|
44
49
|
```typescript
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const [result] = await context.module<Module<MyType>>(moduleAlias)
|
|
50
|
+
const result = await context.entrypoint(appEntrypoints.api.project)
|
|
48
51
|
.call({ params: { id }, body: data })
|
|
49
52
|
```
|
|
50
53
|
|
|
@@ -75,7 +78,7 @@ Component that handles authentication routing (redirect to login, etc.).
|
|
|
75
78
|
- [`@owlmeans/client-context`](../client-context) — `ClientContext` base extended by `makeContext`
|
|
76
79
|
- [`@owlmeans/web-router`](../web-router) — default OwlMeans browser routing plugin registered by `makeContext`
|
|
77
80
|
- [`@owlmeans/web-db`](../web-db) — IndexedDB service registered by `makeContext`
|
|
78
|
-
- [`@owlmeans/client-
|
|
81
|
+
- [`@owlmeans/client-entrypoint`](../client-entrypoint) — protocol binding helpers
|
|
79
82
|
|
|
80
83
|
<!-- owlmeans:agent-guidance:start -->
|
|
81
84
|
## Agent guidance
|
|
@@ -85,7 +88,7 @@ This package ships embedded agent skills under `agent-meta/`. After installing y
|
|
|
85
88
|
your project's skill store (`.agents/skills/`):
|
|
86
89
|
|
|
87
90
|
```sh
|
|
88
|
-
npx @owlmeans/agent-skills
|
|
91
|
+
npx @owlmeans/agent-skills@^0.1.18-rc.18
|
|
89
92
|
```
|
|
90
93
|
|
|
91
94
|
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/web-client",
|
|
4
|
-
"version": "0.1.18-rc.
|
|
5
|
-
"generatedAt": "2026-
|
|
4
|
+
"version": "0.1.18-rc.30",
|
|
5
|
+
"generatedAt": "2026-09-12T13:35:38.912Z",
|
|
6
6
|
"canonicalRepo": "https://github.com/owlmeans/common",
|
|
7
7
|
"entries": [
|
|
8
8
|
{
|
|
@@ -1,59 +1,39 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: web-client
|
|
3
|
-
description:
|
|
4
|
-
user-invocable: false
|
|
3
|
+
description: Bind OwlMeans shared entrypoint protocols in a browser application. Use when registering client routes, attaching React screens, calling API protocols, or configuring the browser context.
|
|
5
4
|
---
|
|
6
5
|
<!-- AUTO-GENERATED — do not edit. Regenerate via sync-agent-meta. -->
|
|
7
6
|
|
|
8
|
-
#
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
## Key Exports
|
|
14
|
-
|
|
15
|
-
| Export | Description |
|
|
16
|
-
|--------|-------------|
|
|
17
|
-
| `renderApp<C, T>(context)` | Mount the React app (routing via the active router plugin — OwlMeans by default) |
|
|
18
|
-
| `elevate(modules, alias, handler)` | Attach a React component (or `handler(Component)`) to an entrypoint |
|
|
19
|
-
| `handler(Component)` | Wrap a React component as an entrypoint handler |
|
|
20
|
-
| `context.registerEntrypoints(modules)` | Register the full entrypoint list on the context |
|
|
21
|
-
| `context.serviceRoute(alias, isDefault?)` | Mark a service's routing root |
|
|
22
|
-
| `router`, `components`, `service`, `i18n`, `helpers`, `errors` | Web-specific helpers |
|
|
23
|
-
| Constants | Default aliases (BASE, HOME) |
|
|
24
|
-
|
|
25
|
-
## Usage
|
|
26
|
-
|
|
27
|
-
### Entry point
|
|
28
|
-
```typescript
|
|
29
|
-
// index.tsx
|
|
30
|
-
import { renderApp } from '@owlmeans/web-client'
|
|
31
|
-
import { makeContext } from './context.js'
|
|
32
|
-
import { appModules } from './modules.js'
|
|
33
|
-
import { MANAGER, MANAGER_API } from 'my-common'
|
|
34
|
-
import config from './config.js'
|
|
35
|
-
|
|
36
|
-
const context = makeContext(config)
|
|
37
|
-
context.registerEntrypoints(appModules)
|
|
38
|
-
context.serviceRoute(MANAGER, true)
|
|
39
|
-
context.serviceRoute(MANAGER_API, true)
|
|
40
|
-
renderApp<Config, Context>(context)
|
|
41
|
-
```
|
|
7
|
+
# Browser protocol entrypoints
|
|
8
|
+
|
|
9
|
+
Shared protocol declarations are immutable. Bind a complete protocol tree for callable API routes,
|
|
10
|
+
then bind frontend declarations to screens.
|
|
42
11
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
import {
|
|
46
|
-
import {
|
|
12
|
+
```ts
|
|
13
|
+
import { bindAll, bindScreen, entrypoints as frameworkEntrypoints, handler } from '@owlmeans/web-panel'
|
|
14
|
+
import { projectEntrypoints, webEntrypoints } from 'project-common'
|
|
15
|
+
import { ProjectScreen } from './screens/project.js'
|
|
16
|
+
|
|
17
|
+
export const appEntrypoints = [
|
|
18
|
+
...frameworkEntrypoints,
|
|
19
|
+
...bindAll(projectEntrypoints),
|
|
20
|
+
bindScreen(webEntrypoints.project, handler(ProjectScreen)),
|
|
21
|
+
]
|
|
22
|
+
```
|
|
47
23
|
|
|
48
|
-
|
|
24
|
+
Call a protocol directly. Its request and response types come from its shared contract.
|
|
49
25
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
26
|
+
```ts
|
|
27
|
+
const project = await context.entrypoint(projectEntrypoints.get).call({
|
|
28
|
+
params: { id: projectId },
|
|
29
|
+
})
|
|
53
30
|
```
|
|
54
31
|
|
|
55
|
-
##
|
|
32
|
+
## Rules
|
|
56
33
|
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
-
|
|
34
|
+
- Declare paths, guards, gates and contracts once in the shared protocol tree.
|
|
35
|
+
- Bind every API declaration the browser calls, including route parents.
|
|
36
|
+
- Use `bindScreen(protocol, handler(Component))` only for frontend route declarations.
|
|
37
|
+
- Do not replace request/response typing at a call site; update the shared contract instead.
|
|
38
|
+
- Keep framework entrypoints and application entrypoints in one registered array, without mutating a
|
|
39
|
+
shared declaration collection.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/dispatcher/component.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/dispatcher/component.tsx"],"names":[],"mappings":"AAUA,eAAO,MAAM,UAAU,6FA+FrB,CAAA"}
|
|
@@ -1,14 +1,27 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { DispatcherHOC } from '@owlmeans/client-auth';
|
|
3
|
-
import { useEffect } from 'react';
|
|
3
|
+
import { useEffect, useState } from 'react';
|
|
4
4
|
import { useI18nLib } from '@owlmeans/client-i18n';
|
|
5
5
|
import { AUTH_QUERY } from '@owlmeans/auth';
|
|
6
|
+
import { FallbackLoginScreen, LoginIntent, LoginOutcome, ResumeAction, resumeAction, } from '@owlmeans/client-auth/login';
|
|
7
|
+
import { LoginSurrogateView, SurrogateStage } from '../../login/view.js';
|
|
6
8
|
import { useContext } from '../../context.js';
|
|
7
|
-
export const Dispatcher = DispatcherHOC(({ provideToken }) => {
|
|
9
|
+
export const Dispatcher = DispatcherHOC(({ provideToken, navigate }) => {
|
|
8
10
|
const context = useContext();
|
|
9
11
|
const [query] = context.router().useSearchParams();
|
|
10
12
|
const t = useI18nLib('auth', 'dispatcher');
|
|
13
|
+
const tAuth = useI18nLib('auth');
|
|
14
|
+
// Read in the component body, not in the effect: `window.name` is set by `window.open` before
|
|
15
|
+
// this document loads and `sessionStorage` carries the marker across the provider round trip, so
|
|
16
|
+
// the answer is already correct at first paint — and a first paint that showed the application
|
|
17
|
+
// before an effect corrected it is the defect this exists to prevent.
|
|
18
|
+
const [env] = useState(() => context.login().env());
|
|
19
|
+
const [outcome, setOutcome] = useState(null);
|
|
20
|
+
// Nothing to return from and nobody signed in: offer the choice rather than starting a flow.
|
|
21
|
+
const [choose, setChoose] = useState(false);
|
|
11
22
|
useEffect(() => {
|
|
23
|
+
// First statement of the effect on purpose: everything below can navigate this window away.
|
|
24
|
+
context.login().enter();
|
|
12
25
|
const token = query.get(AUTH_QUERY);
|
|
13
26
|
if (token != null) {
|
|
14
27
|
const params = {};
|
|
@@ -18,15 +31,47 @@ export const Dispatcher = DispatcherHOC(({ provideToken }) => {
|
|
|
18
31
|
}
|
|
19
32
|
});
|
|
20
33
|
provideToken({ token }, params);
|
|
34
|
+
return;
|
|
21
35
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
36
|
+
void context.auth().authenticated().then(async (authzToken) => {
|
|
37
|
+
if (authzToken == null || authzToken === '') {
|
|
38
|
+
setChoose(true);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
// A session already exists in THIS document. Whether it is useful here, or belongs to the
|
|
42
|
+
// window that opened this one, is the plugin's call — the dispatcher reads no environment.
|
|
43
|
+
const settled = await context.login().resume(authzToken);
|
|
44
|
+
switch (resumeAction(settled)) {
|
|
45
|
+
case ResumeAction.Stop:
|
|
46
|
+
return;
|
|
47
|
+
case ResumeAction.Render:
|
|
48
|
+
setOutcome(settled);
|
|
49
|
+
return;
|
|
50
|
+
default:
|
|
51
|
+
await navigate();
|
|
52
|
+
}
|
|
53
|
+
});
|
|
29
54
|
}, []);
|
|
55
|
+
// A surrogate window never renders the application, whatever else is true. Checked ahead of
|
|
56
|
+
// every other return for exactly that reason.
|
|
57
|
+
//
|
|
58
|
+
// `choose` is the one state this must NOT mask, and it is not an exception to the rule: the
|
|
59
|
+
// login chooser is not the application. A login window with nothing to return from and nobody
|
|
60
|
+
// signed in has exactly one thing left that can move it forward, and that is asking which
|
|
61
|
+
// provider. The surrogate URL normally carries `?method=` so the question is already settled,
|
|
62
|
+
// but a window opened from a bare "Log in" — the framed application's own header button — has no
|
|
63
|
+
// method to send. Returning the "working" panel there left the popup on "Signing you in…"
|
|
64
|
+
// permanently, because nothing was ever going to start.
|
|
65
|
+
if (env.surrogate && !choose) {
|
|
66
|
+
return _jsx(LoginSurrogateView, { intent: LoginIntent.Login, stage: outcome === LoginOutcome.Orphaned ? SurrogateStage.Orphaned
|
|
67
|
+
: outcome === LoginOutcome.Failed ? SurrogateStage.Failed
|
|
68
|
+
: outcome === LoginOutcome.Gesture ? SurrogateStage.Gesture
|
|
69
|
+
: SurrogateStage.Working, onAction: () => window.close(), translate: (key, defaultValue) => tAuth(key, { defaultValue }) });
|
|
70
|
+
}
|
|
71
|
+
if (choose) {
|
|
72
|
+
const Screen = context.login().screen() ?? FallbackLoginScreen;
|
|
73
|
+
return _jsx(Screen, { translate: (key, defaultValue) => tAuth(key, { defaultValue }) });
|
|
74
|
+
}
|
|
30
75
|
return query.has(AUTH_QUERY) ? _jsx("div", { style: {
|
|
31
76
|
width: '100%', // Makes the div occupy the full width
|
|
32
77
|
display: 'flex', // Enables flexbox layout
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../../src/components/dispatcher/component.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../../src/components/dispatcher/component.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { EntrypointContextParams } from "@owlmeans/client";
|
|
2
2
|
import type { DispatcherProps } from "@owlmeans/client-auth";
|
|
3
3
|
import type { PropsWithChildren } from "react";
|
|
4
|
-
export interface ParametrisedProps extends PropsWithChildren<
|
|
4
|
+
export interface ParametrisedProps extends PropsWithChildren<EntrypointContextParams & DispatcherProps> {
|
|
5
5
|
}
|
|
6
6
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/dispatcher/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/dispatcher/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAE9C,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB,CAAC,uBAAuB,GAAG,eAAe,CAAC;CACtG"}
|
package/build/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAUlD,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,OAC7F,CAAC,KACL,CAWF,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,SAAS,GAAG,SAAS,EAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,QACnF,CAAA"}
|
package/build/context.js
CHANGED
|
@@ -6,6 +6,7 @@ import { useContext as useCtx } from '@owlmeans/client';
|
|
|
6
6
|
import { extractPrimaryHost } from './helper.js';
|
|
7
7
|
import { appendWebAuthService } from './service.js';
|
|
8
8
|
import { appendWebRouter } from '@owlmeans/web-router';
|
|
9
|
+
import { appendWebLogin } from './login/service.js';
|
|
9
10
|
export const makeContext = (cfg) => {
|
|
10
11
|
const context = makeClientContext(cfg);
|
|
11
12
|
extractPrimaryHost(context);
|
|
@@ -13,7 +14,7 @@ export const makeContext = (cfg) => {
|
|
|
13
14
|
appendWebDbService(context);
|
|
14
15
|
appendClientResource(context, AUTH_RESOURCE);
|
|
15
16
|
appendWebRouter(context);
|
|
16
|
-
context
|
|
17
|
+
appendWebLogin(context);
|
|
17
18
|
return context;
|
|
18
19
|
};
|
|
19
20
|
export const useContext = () => useCtx();
|
package/build/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,UAAU,IAAI,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,UAAU,IAAI,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,GAAM,EACH,EAAE;IACL,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAM,CAAA;IAC3C,kBAAkB,CAAO,OAAO,CAAC,CAAA;IAEjC,oBAAoB,CAAO,OAAO,CAAC,CAAA;IACnC,kBAAkB,CAAO,OAAO,CAAC,CAAA;IACjC,oBAAoB,CAAO,OAAO,EAAE,aAAa,CAAC,CAAA;IAClD,eAAe,CAAO,OAAO,CAAC,CAAA;IAC9B,cAAc,CAAO,OAAO,CAAC,CAAA;IAE7B,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,GAA4E,EAAE,CACtG,MAAM,EAAO,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bound here rather than in a relying-party package on purpose.
|
|
3
|
+
*
|
|
4
|
+
* The surrogate mechanic is not OIDC-specific — it is "run the login route one window up and hand
|
|
5
|
+
* the result back" — and every web application already spreads this list. Putting the screen here
|
|
6
|
+
* means `web-panel`, `mui-panel` and every generated target gain a working login window with no
|
|
7
|
+
* edit of their own, which is the only way an application that is already deployed can get it.
|
|
8
|
+
*/
|
|
9
|
+
export declare const entrypoints: (import("@owlmeans/client-entrypoint").ClientProtocolEntrypoint<import("@owlmeans/entrypoint").EntrypointProtocol<{
|
|
10
|
+
query: import("@owlmeans/auth").AuthToken;
|
|
11
|
+
}, undefined>> | import("@owlmeans/client-entrypoint").ClientProtocolEntrypoint<import("@owlmeans/entrypoint").EntrypointProtocol<{
|
|
12
|
+
query: import("@owlmeans/auth-common").SurrogateQuery;
|
|
13
|
+
}, undefined>> | import("@owlmeans/client-entrypoint").ClientProtocolEntrypoint<import("@owlmeans/entrypoint").EntrypointProtocol<{
|
|
14
|
+
body: import("@owlmeans/auth").AuthToken;
|
|
15
|
+
}, import("@owlmeans/auth").AuthToken>>)[];
|
|
16
|
+
//# sourceMappingURL=entrypoints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entrypoints.d.ts","sourceRoot":"","sources":["../src/entrypoints.ts"],"names":[],"mappings":"AAOA;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW;;;;;;0CAIvB,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { authProtocols } from '@owlmeans/auth-common';
|
|
2
|
+
import { entrypoints as authBindings } from '@owlmeans/client-auth';
|
|
3
|
+
import { bindScreen } from '@owlmeans/client-entrypoint';
|
|
4
|
+
import { handler } from '@owlmeans/client';
|
|
5
|
+
import { Dispatcher } from './components/dispatcher/component.js';
|
|
6
|
+
import { SurrogateScreen } from './login/screen.js';
|
|
7
|
+
/**
|
|
8
|
+
* Bound here rather than in a relying-party package on purpose.
|
|
9
|
+
*
|
|
10
|
+
* The surrogate mechanic is not OIDC-specific — it is "run the login route one window up and hand
|
|
11
|
+
* the result back" — and every web application already spreads this list. Putting the screen here
|
|
12
|
+
* means `web-panel`, `mui-panel` and every generated target gain a working login window with no
|
|
13
|
+
* edit of their own, which is the only way an application that is already deployed can get it.
|
|
14
|
+
*/
|
|
15
|
+
export const entrypoints = [
|
|
16
|
+
...authBindings,
|
|
17
|
+
bindScreen(authProtocols.dispatcher, handler(Dispatcher)),
|
|
18
|
+
bindScreen(authProtocols.surrogate, handler(SurrogateScreen)),
|
|
19
|
+
];
|
|
20
|
+
//# sourceMappingURL=entrypoints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entrypoints.js","sourceRoot":"","sources":["../src/entrypoints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,GAAG,YAAY;IACf,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACzD,UAAU,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CAC9D,CAAA"}
|
package/build/exports.d.ts
CHANGED
|
@@ -2,8 +2,9 @@ export { handler } from '@owlmeans/client';
|
|
|
2
2
|
export { config } from '@owlmeans/client-context';
|
|
3
3
|
export { service } from '@owlmeans/config';
|
|
4
4
|
export { AppType, HOME, ROOT, BASE, GUEST } from '@owlmeans/context';
|
|
5
|
-
export {
|
|
5
|
+
export { bind, bindAll, bindScreen, provideRequest, stab } from '@owlmeans/client-entrypoint';
|
|
6
6
|
export { route, frontend } from '@owlmeans/route';
|
|
7
|
+
export type { ClientEntrypoint } from '@owlmeans/client-entrypoint';
|
|
7
8
|
export type { ClientEntrypoint as Module } from '@owlmeans/client-entrypoint';
|
|
8
9
|
export type { ClientRoute as Route } from '@owlmeans/client-route';
|
|
9
10
|
//# sourceMappingURL=exports.d.ts.map
|
package/build/exports.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAA;AAC7F,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACjD,YAAY,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,YAAY,EAAE,gBAAgB,IAAI,MAAM,EAAE,MAAM,6BAA6B,CAAA;AAC7E,YAAY,EAAE,WAAW,IAAI,KAAK,EAAE,MAAM,wBAAwB,CAAA"}
|
package/build/exports.js
CHANGED
|
@@ -2,6 +2,6 @@ export { handler } from '@owlmeans/client';
|
|
|
2
2
|
export { config } from '@owlmeans/client-context';
|
|
3
3
|
export { service } from '@owlmeans/config';
|
|
4
4
|
export { AppType, HOME, ROOT, BASE, GUEST } from '@owlmeans/context';
|
|
5
|
-
export {
|
|
5
|
+
export { bind, bindAll, bindScreen, provideRequest, stab } from '@owlmeans/client-entrypoint';
|
|
6
6
|
export { route, frontend } from '@owlmeans/route';
|
|
7
7
|
//# sourceMappingURL=exports.js.map
|
package/build/exports.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAA;AAC7F,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA"}
|
package/build/i18n/auth-be.json
CHANGED
|
@@ -2,5 +2,37 @@
|
|
|
2
2
|
"dispatcher": {
|
|
3
3
|
"loading": "Загрузка...",
|
|
4
4
|
"error": "Не ўдалося прайсці аўтэнтыфікацыю: {{error}}"
|
|
5
|
+
},
|
|
6
|
+
"surrogate": {
|
|
7
|
+
"login": {
|
|
8
|
+
"working": "Выконваем уваход…",
|
|
9
|
+
"gesture": {
|
|
10
|
+
"title": "Працягніце, каб увайсці.",
|
|
11
|
+
"action": "Увайсці"
|
|
12
|
+
},
|
|
13
|
+
"handing": "Гатова. Вяртаемся ў праграму…",
|
|
14
|
+
"orphaned": "Уваход выкананы. Можаце закрыць гэтае акно і вярнуцца ў праграму.",
|
|
15
|
+
"failed": "Не ўдалося завяршыць. Закрыйце гэтае акно і паспрабуйце зноў.",
|
|
16
|
+
"standalone": {
|
|
17
|
+
"title": "Гэтая старонка выкарыстоўваецца для ўваходу з іншага акна.",
|
|
18
|
+
"action": "Адкрыць праграму"
|
|
19
|
+
},
|
|
20
|
+
"close": "Закрыць"
|
|
21
|
+
},
|
|
22
|
+
"logout": {
|
|
23
|
+
"working": "Выконваем выхад…",
|
|
24
|
+
"gesture": {
|
|
25
|
+
"title": "Працягніце, каб выйсці.",
|
|
26
|
+
"action": "Выйсці"
|
|
27
|
+
},
|
|
28
|
+
"handing": "Выхад выкананы. Вяртаемся ў праграму…",
|
|
29
|
+
"orphaned": "Выхад выкананы. Можаце закрыць гэтае акно.",
|
|
30
|
+
"failed": "Выхад тут не завершаны. Можаце закрыць гэтае акно.",
|
|
31
|
+
"standalone": {
|
|
32
|
+
"title": "Гэтая старонка выкарыстоўваецца для выхаду з іншага акна.",
|
|
33
|
+
"action": "Адкрыць праграму"
|
|
34
|
+
},
|
|
35
|
+
"close": "Закрыць"
|
|
36
|
+
}
|
|
5
37
|
}
|
|
6
38
|
}
|
package/build/i18n/auth-de.json
CHANGED
|
@@ -2,5 +2,37 @@
|
|
|
2
2
|
"dispatcher": {
|
|
3
3
|
"loading": "Wird geladen...",
|
|
4
4
|
"error": "Authentifizierung fehlgeschlagen: {{error}}"
|
|
5
|
+
},
|
|
6
|
+
"surrogate": {
|
|
7
|
+
"login": {
|
|
8
|
+
"working": "Anmeldung läuft…",
|
|
9
|
+
"gesture": {
|
|
10
|
+
"title": "Fortfahren, um sich anzumelden.",
|
|
11
|
+
"action": "Anmelden"
|
|
12
|
+
},
|
|
13
|
+
"handing": "Fertig. Zurück zur Anwendung…",
|
|
14
|
+
"orphaned": "Angemeldet. Sie können dieses Fenster schließen und in der Anwendung fortfahren.",
|
|
15
|
+
"failed": "Das wurde nicht abgeschlossen. Schließen Sie dieses Fenster und versuchen Sie es erneut.",
|
|
16
|
+
"standalone": {
|
|
17
|
+
"title": "Diese Seite dient der Anmeldung aus einem anderen Fenster.",
|
|
18
|
+
"action": "Anwendung öffnen"
|
|
19
|
+
},
|
|
20
|
+
"close": "Schließen"
|
|
21
|
+
},
|
|
22
|
+
"logout": {
|
|
23
|
+
"working": "Abmeldung läuft…",
|
|
24
|
+
"gesture": {
|
|
25
|
+
"title": "Fortfahren, um sich abzumelden.",
|
|
26
|
+
"action": "Abmelden"
|
|
27
|
+
},
|
|
28
|
+
"handing": "Abgemeldet. Zurück zur Anwendung…",
|
|
29
|
+
"orphaned": "Abgemeldet. Sie können dieses Fenster schließen.",
|
|
30
|
+
"failed": "Die Abmeldung wurde hier nicht abgeschlossen. Sie können dieses Fenster schließen.",
|
|
31
|
+
"standalone": {
|
|
32
|
+
"title": "Diese Seite dient der Abmeldung aus einem anderen Fenster.",
|
|
33
|
+
"action": "Anwendung öffnen"
|
|
34
|
+
},
|
|
35
|
+
"close": "Schließen"
|
|
36
|
+
}
|
|
5
37
|
}
|
|
6
38
|
}
|
package/build/i18n/auth-en.json
CHANGED
|
@@ -2,5 +2,37 @@
|
|
|
2
2
|
"dispatcher": {
|
|
3
3
|
"loading": "Loading...",
|
|
4
4
|
"error": "Authentication failed: {{error}}"
|
|
5
|
+
},
|
|
6
|
+
"surrogate": {
|
|
7
|
+
"login": {
|
|
8
|
+
"working": "Signing you in…",
|
|
9
|
+
"gesture": {
|
|
10
|
+
"title": "Continue to sign in.",
|
|
11
|
+
"action": "Sign in"
|
|
12
|
+
},
|
|
13
|
+
"handing": "Done. Returning to the application…",
|
|
14
|
+
"orphaned": "Signed in. You can close this window and continue in the application.",
|
|
15
|
+
"failed": "That did not complete. You can close this window and try again.",
|
|
16
|
+
"standalone": {
|
|
17
|
+
"title": "This page is used to sign in from another window.",
|
|
18
|
+
"action": "Open the application"
|
|
19
|
+
},
|
|
20
|
+
"close": "Close"
|
|
21
|
+
},
|
|
22
|
+
"logout": {
|
|
23
|
+
"working": "Signing you out…",
|
|
24
|
+
"gesture": {
|
|
25
|
+
"title": "Continue to sign out.",
|
|
26
|
+
"action": "Sign out"
|
|
27
|
+
},
|
|
28
|
+
"handing": "Signed out. Returning to the application…",
|
|
29
|
+
"orphaned": "Signed out. You can close this window.",
|
|
30
|
+
"failed": "Sign-out did not complete here. You can close this window.",
|
|
31
|
+
"standalone": {
|
|
32
|
+
"title": "This page is used to sign out from another window.",
|
|
33
|
+
"action": "Open the application"
|
|
34
|
+
},
|
|
35
|
+
"close": "Close"
|
|
36
|
+
}
|
|
5
37
|
}
|
|
6
38
|
}
|
package/build/i18n/auth-es.json
CHANGED
|
@@ -2,5 +2,37 @@
|
|
|
2
2
|
"dispatcher": {
|
|
3
3
|
"loading": "Cargando...",
|
|
4
4
|
"error": "Error de autenticación: {{error}}"
|
|
5
|
+
},
|
|
6
|
+
"surrogate": {
|
|
7
|
+
"login": {
|
|
8
|
+
"working": "Iniciando sesión…",
|
|
9
|
+
"gesture": {
|
|
10
|
+
"title": "Continúa para iniciar sesión.",
|
|
11
|
+
"action": "Iniciar sesión"
|
|
12
|
+
},
|
|
13
|
+
"handing": "Listo. Volviendo a la aplicación…",
|
|
14
|
+
"orphaned": "Sesión iniciada. Puedes cerrar esta ventana y continuar en la aplicación.",
|
|
15
|
+
"failed": "No se completó. Cierra esta ventana e inténtalo de nuevo.",
|
|
16
|
+
"standalone": {
|
|
17
|
+
"title": "Esta página se usa para iniciar sesión desde otra ventana.",
|
|
18
|
+
"action": "Abrir la aplicación"
|
|
19
|
+
},
|
|
20
|
+
"close": "Cerrar"
|
|
21
|
+
},
|
|
22
|
+
"logout": {
|
|
23
|
+
"working": "Cerrando sesión…",
|
|
24
|
+
"gesture": {
|
|
25
|
+
"title": "Continúa para cerrar sesión.",
|
|
26
|
+
"action": "Cerrar sesión"
|
|
27
|
+
},
|
|
28
|
+
"handing": "Sesión cerrada. Volviendo a la aplicación…",
|
|
29
|
+
"orphaned": "Sesión cerrada. Puedes cerrar esta ventana.",
|
|
30
|
+
"failed": "El cierre de sesión no se completó aquí. Puedes cerrar esta ventana.",
|
|
31
|
+
"standalone": {
|
|
32
|
+
"title": "Esta página se usa para cerrar sesión desde otra ventana.",
|
|
33
|
+
"action": "Abrir la aplicación"
|
|
34
|
+
},
|
|
35
|
+
"close": "Cerrar"
|
|
36
|
+
}
|
|
5
37
|
}
|
|
6
38
|
}
|
package/build/i18n/auth-pl.json
CHANGED
|
@@ -2,5 +2,37 @@
|
|
|
2
2
|
"dispatcher": {
|
|
3
3
|
"loading": "Ładowanie...",
|
|
4
4
|
"error": "Uwierzytelnianie nie powiodło się: {{error}}"
|
|
5
|
+
},
|
|
6
|
+
"surrogate": {
|
|
7
|
+
"login": {
|
|
8
|
+
"working": "Trwa logowanie…",
|
|
9
|
+
"gesture": {
|
|
10
|
+
"title": "Kontynuuj, aby się zalogować.",
|
|
11
|
+
"action": "Zaloguj się"
|
|
12
|
+
},
|
|
13
|
+
"handing": "Gotowe. Wracamy do aplikacji…",
|
|
14
|
+
"orphaned": "Zalogowano. Możesz zamknąć to okno i kontynuować w aplikacji.",
|
|
15
|
+
"failed": "Nie udało się ukończyć. Zamknij to okno i spróbuj ponownie.",
|
|
16
|
+
"standalone": {
|
|
17
|
+
"title": "Ta strona służy do logowania z innego okna.",
|
|
18
|
+
"action": "Otwórz aplikację"
|
|
19
|
+
},
|
|
20
|
+
"close": "Zamknij"
|
|
21
|
+
},
|
|
22
|
+
"logout": {
|
|
23
|
+
"working": "Trwa wylogowywanie…",
|
|
24
|
+
"gesture": {
|
|
25
|
+
"title": "Kontynuuj, aby się wylogować.",
|
|
26
|
+
"action": "Wyloguj się"
|
|
27
|
+
},
|
|
28
|
+
"handing": "Wylogowano. Wracamy do aplikacji…",
|
|
29
|
+
"orphaned": "Wylogowano. Możesz zamknąć to okno.",
|
|
30
|
+
"failed": "Wylogowanie nie zostało tu ukończone. Możesz zamknąć to okno.",
|
|
31
|
+
"standalone": {
|
|
32
|
+
"title": "Ta strona służy do wylogowania z innego okna.",
|
|
33
|
+
"action": "Otwórz aplikację"
|
|
34
|
+
},
|
|
35
|
+
"close": "Zamknij"
|
|
36
|
+
}
|
|
5
37
|
}
|
|
6
38
|
}
|