@owlmeans/client-auth 0.1.18-rc.12 → 0.1.18-rc.13
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/agent-meta/manifest.json +2 -2
- package/agent-meta/skills/client-auth/SKILL.md +1 -1
- package/build/login/adopt.d.ts +9 -0
- package/build/login/adopt.d.ts.map +1 -1
- package/build/login/adopt.js +11 -0
- package/build/login/adopt.js.map +1 -1
- package/build/login/consts.d.ts +25 -4
- package/build/login/consts.d.ts.map +1 -1
- package/build/login/consts.js +25 -4
- package/build/login/consts.js.map +1 -1
- package/build/login/credit.d.ts +19 -0
- package/build/login/credit.d.ts.map +1 -0
- package/build/login/credit.js +24 -0
- package/build/login/credit.js.map +1 -0
- package/build/login/hook.d.ts +14 -3
- package/build/login/hook.d.ts.map +1 -1
- package/build/login/hook.js +27 -9
- package/build/login/hook.js.map +1 -1
- package/build/login/i18n/be.json +37 -0
- package/build/login/i18n/de.json +37 -0
- package/build/login/i18n/en.json +37 -0
- package/build/login/i18n/es.json +37 -0
- package/build/login/i18n/pl.json +37 -0
- package/build/login/i18n/ru.json +37 -0
- package/build/login/i18n/uk.json +37 -0
- package/build/login/i18n.d.ts +2 -0
- package/build/login/i18n.d.ts.map +1 -0
- package/build/login/i18n.js +25 -0
- package/build/login/i18n.js.map +1 -0
- package/build/login/index.d.ts +7 -0
- package/build/login/index.d.ts.map +1 -1
- package/build/login/index.js +7 -0
- package/build/login/index.js.map +1 -1
- package/build/login/methods.d.ts +25 -0
- package/build/login/methods.d.ts.map +1 -0
- package/build/login/methods.js +97 -0
- package/build/login/methods.js.map +1 -0
- package/build/login/resume.d.ts +20 -0
- package/build/login/resume.d.ts.map +1 -0
- package/build/login/resume.js +33 -0
- package/build/login/resume.js.map +1 -0
- package/build/login/screen.d.ts +4 -0
- package/build/login/screen.d.ts.map +1 -0
- package/build/login/screen.js +63 -0
- package/build/login/screen.js.map +1 -0
- package/build/login/service.d.ts +4 -3
- package/build/login/service.d.ts.map +1 -1
- package/build/login/service.js +57 -4
- package/build/login/service.js.map +1 -1
- package/build/login/surrogate.d.ts +20 -0
- package/build/login/surrogate.d.ts.map +1 -0
- package/build/login/surrogate.js +33 -0
- package/build/login/surrogate.js.map +1 -0
- package/build/login/terms.d.ts +20 -0
- package/build/login/terms.d.ts.map +1 -0
- package/build/login/terms.js +0 -0
- package/build/login/terms.js.map +1 -0
- package/build/login/types.d.ts +123 -1
- package/build/login/types.d.ts.map +1 -1
- package/build/login/types.js +7 -1
- package/build/login/types.js.map +1 -1
- package/build/manager/plugins/basic-ed25519.d.ts.map +1 -1
- package/build/manager/plugins/basic-ed25519.js +1 -0
- package/build/manager/plugins/basic-ed25519.js.map +1 -1
- package/build/manager/plugins/exports.d.ts +2 -0
- package/build/manager/plugins/exports.d.ts.map +1 -1
- package/build/manager/plugins/exports.js +2 -0
- package/build/manager/plugins/exports.js.map +1 -1
- package/build/manager/plugins/index.d.ts +1 -5
- package/build/manager/plugins/index.d.ts.map +1 -1
- package/build/manager/plugins/index.js +9 -1
- package/build/manager/plugins/index.js.map +1 -1
- package/build/manager/plugins/methods.d.ts +10 -0
- package/build/manager/plugins/methods.d.ts.map +1 -0
- package/build/manager/plugins/methods.js +46 -0
- package/build/manager/plugins/methods.js.map +1 -0
- package/build/manager/plugins/re-captcha.d.ts.map +1 -1
- package/build/manager/plugins/re-captcha.js +2 -0
- package/build/manager/plugins/re-captcha.js.map +1 -1
- package/build/manager/plugins/registry.d.ts +20 -0
- package/build/manager/plugins/registry.d.ts.map +1 -0
- package/build/manager/plugins/registry.js +19 -0
- package/build/manager/plugins/registry.js.map +1 -0
- package/build/manager/plugins/tunnel-consumer.d.ts.map +1 -1
- package/build/manager/plugins/tunnel-consumer.js +1 -0
- package/build/manager/plugins/tunnel-consumer.js.map +1 -1
- package/build/manager/plugins/types.d.ts +31 -0
- package/build/manager/plugins/types.d.ts.map +1 -1
- package/package.json +20 -18
- package/src/login/adopt.ts +12 -0
- package/src/login/consts.ts +31 -4
- package/src/login/credit.ts +37 -0
- package/src/login/hook.ts +28 -11
- package/src/login/i18n/be.json +37 -0
- package/src/login/i18n/de.json +37 -0
- package/src/login/i18n/en.json +37 -0
- package/src/login/i18n/es.json +37 -0
- package/src/login/i18n/pl.json +37 -0
- package/src/login/i18n/ru.json +37 -0
- package/src/login/i18n/uk.json +37 -0
- package/src/login/i18n.ts +26 -0
- package/src/login/index.ts +8 -0
- package/src/login/methods.ts +113 -0
- package/src/login/resume.ts +33 -0
- package/src/login/screen.tsx +122 -0
- package/src/login/service.ts +78 -5
- package/src/login/surrogate.ts +45 -0
- package/src/login/terms.ts +0 -0
- package/src/login/types.ts +132 -1
- package/src/manager/plugins/basic-ed25519.tsx +2 -0
- package/src/manager/plugins/exports.ts +2 -0
- package/src/manager/plugins/index.ts +10 -4
- package/src/manager/plugins/methods.ts +52 -0
- package/src/manager/plugins/re-captcha.tsx +3 -0
- package/src/manager/plugins/registry.ts +26 -0
- package/src/manager/plugins/tunnel-consumer.tsx +2 -0
- package/src/manager/plugins/types.ts +32 -0
- package/tests/login.spec.ts +202 -0
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-08-27T21:
|
|
4
|
+
"version": "0.1.18-rc.12",
|
|
5
|
+
"generatedAt": "2026-08-27T21:18:31.379Z",
|
|
6
6
|
"canonicalRepo": "https://github.com/owlmeans/common",
|
|
7
7
|
"entries": [
|
|
8
8
|
{
|
package/build/login/adopt.d.ts
CHANGED
|
@@ -12,4 +12,13 @@ import type { LoginContext } from './types.js';
|
|
|
12
12
|
* moment any of it changes.
|
|
13
13
|
*/
|
|
14
14
|
export declare const adoptToken: (ctx: LoginContext, token: string) => Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* The one path this context's authentication is dropped, and the exact mirror of {@link adoptToken}.
|
|
17
|
+
*
|
|
18
|
+
* `undefined`, not `null`: `undefined` is the declared clearing value, and on the web the auth
|
|
19
|
+
* service reacts to it by navigating to the dispatcher. Everything that signs a user out goes
|
|
20
|
+
* through here — the hook, both browser plugins and the surrogate screen — so there is one place
|
|
21
|
+
* where "signed out" is defined rather than four that agree until one of them changes.
|
|
22
|
+
*/
|
|
23
|
+
export declare const revokeToken: (ctx: LoginContext) => Promise<void>;
|
|
15
24
|
//# sourceMappingURL=adopt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adopt.d.ts","sourceRoot":"","sources":["../../src/login/adopt.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU,QAAe,YAAY,SAAS,MAAM,KAAG,OAAO,CAAC,IAAI,CAE/E,CAAA"}
|
|
1
|
+
{"version":3,"file":"adopt.d.ts","sourceRoot":"","sources":["../../src/login/adopt.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU,QAAe,YAAY,SAAS,MAAM,KAAG,OAAO,CAAC,IAAI,CAE/E,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,QAAe,YAAY,KAAG,OAAO,CAAC,IAAI,CAEjE,CAAA"}
|
package/build/login/adopt.js
CHANGED
|
@@ -14,4 +14,15 @@ import { DEFAULT_ALIAS as AUTH_ALIAS } from '../consts.js';
|
|
|
14
14
|
export const adoptToken = async (ctx, token) => {
|
|
15
15
|
await ctx.service(AUTH_ALIAS).update(token);
|
|
16
16
|
};
|
|
17
|
+
/**
|
|
18
|
+
* The one path this context's authentication is dropped, and the exact mirror of {@link adoptToken}.
|
|
19
|
+
*
|
|
20
|
+
* `undefined`, not `null`: `undefined` is the declared clearing value, and on the web the auth
|
|
21
|
+
* service reacts to it by navigating to the dispatcher. Everything that signs a user out goes
|
|
22
|
+
* through here — the hook, both browser plugins and the surrogate screen — so there is one place
|
|
23
|
+
* where "signed out" is defined rather than four that agree until one of them changes.
|
|
24
|
+
*/
|
|
25
|
+
export const revokeToken = async (ctx) => {
|
|
26
|
+
await ctx.service(AUTH_ALIAS).update(undefined);
|
|
27
|
+
};
|
|
17
28
|
//# sourceMappingURL=adopt.js.map
|
package/build/login/adopt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adopt.js","sourceRoot":"","sources":["../../src/login/adopt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AAG1D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,GAAiB,EAAE,KAAa,EAAiB,EAAE;IAClF,MAAM,GAAG,CAAC,OAAO,CAAc,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC1D,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"adopt.js","sourceRoot":"","sources":["../../src/login/adopt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AAG1D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,GAAiB,EAAE,KAAa,EAAiB,EAAE;IAClF,MAAM,GAAG,CAAC,OAAO,CAAc,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC1D,CAAC,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,GAAiB,EAAiB,EAAE;IACpE,MAAM,GAAG,CAAC,OAAO,CAAc,UAAU,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;AAC9D,CAAC,CAAA"}
|
package/build/login/consts.d.ts
CHANGED
|
@@ -2,17 +2,38 @@ export declare const DEFAULT_ALIAS = "login-service";
|
|
|
2
2
|
export declare const LOGIN_SERVICE = "login-service";
|
|
3
3
|
/** Priority of a plugin that makes no claim about the environment. */
|
|
4
4
|
export declare const DEFAULT_LOGIN_PRIORITY = 0;
|
|
5
|
+
/** Order given to a method that declares none. */
|
|
6
|
+
export declare const DEFAULT_METHOD_ORDER = 100;
|
|
5
7
|
/**
|
|
6
|
-
* Name given to the surrogate login window,
|
|
8
|
+
* Name given to the surrogate login window, the marker it records about itself, and the values the
|
|
9
|
+
* two documents exchange.
|
|
7
10
|
*
|
|
8
|
-
* These
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
+
* These are a wire protocol between two documents that may be running different builds — an opener
|
|
12
|
+
* holding an older bundle and a surrogate freshly loaded, or the reverse. They are therefore fixed,
|
|
13
|
+
* and must never be "tidied" to match a newer vocabulary. That applies to the query names and the
|
|
14
|
+
* message types added later just as much as to the original three.
|
|
11
15
|
*/
|
|
12
16
|
export declare const LOGIN_SURROGATE_NAME = "owlmeans-oidc-login";
|
|
13
17
|
export declare const LOGIN_TOKEN_MESSAGE = "owlmeans:oidc:popup-token";
|
|
18
|
+
export declare const LOGIN_LOGOUT_MESSAGE = "owlmeans:oidc:popup-logout";
|
|
14
19
|
export declare const LOGIN_SURROGATE_MARKER = "_owlmeans-oidc-popup";
|
|
15
20
|
export declare const LOGIN_SURROGATE_FEATURES = "popup=yes,width=520,height=760";
|
|
16
21
|
/** How often a surrogate window is checked for having been closed by the user. */
|
|
17
22
|
export declare const LOGIN_WATCH_INTERVAL = 500;
|
|
23
|
+
/** Carries WHY the surrogate window was opened across the window boundary. */
|
|
24
|
+
export declare const LOGIN_INTENT_QUERY = "intent";
|
|
25
|
+
/**
|
|
26
|
+
* Carries the address the surrogate should run, so the flow parameters the opener's URL held are
|
|
27
|
+
* forwarded rather than discarded.
|
|
28
|
+
*/
|
|
29
|
+
export declare const LOGIN_NEXT_QUERY = "next";
|
|
30
|
+
/**
|
|
31
|
+
* Carries the method the user already chose, one window up.
|
|
32
|
+
*
|
|
33
|
+
* A surrogate acting on it is not an auto-redirect in the "never choose for the user" sense: the
|
|
34
|
+
* choice was made, by a person, in the document that opened this one.
|
|
35
|
+
*/
|
|
36
|
+
export declare const LOGIN_METHOD_QUERY = "method";
|
|
37
|
+
/** Where a browser records that it agreed to one exact set of legal documents. */
|
|
38
|
+
export declare const LOGIN_TERMS_STORAGE = "_owlmeans-login-terms";
|
|
18
39
|
//# sourceMappingURL=consts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../src/login/consts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,kBAAkB,CAAA;AAE5C,eAAO,MAAM,aAAa,kBAAgB,CAAA;AAE1C,sEAAsE;AACtE,eAAO,MAAM,sBAAsB,IAAI,CAAA;AAEvC
|
|
1
|
+
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../src/login/consts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,kBAAkB,CAAA;AAE5C,eAAO,MAAM,aAAa,kBAAgB,CAAA;AAE1C,sEAAsE;AACtE,eAAO,MAAM,sBAAsB,IAAI,CAAA;AAEvC,kDAAkD;AAClD,eAAO,MAAM,oBAAoB,MAAM,CAAA;AAEvC;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,wBAAwB,CAAA;AAEzD,eAAO,MAAM,mBAAmB,8BAA8B,CAAA;AAE9D,eAAO,MAAM,oBAAoB,+BAA+B,CAAA;AAEhE,eAAO,MAAM,sBAAsB,yBAAyB,CAAA;AAE5D,eAAO,MAAM,wBAAwB,mCAAmC,CAAA;AAExE,kFAAkF;AAClF,eAAO,MAAM,oBAAoB,MAAM,CAAA;AAEvC,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB,WAAW,CAAA;AAE1C;;;GAGG;AACH,eAAO,MAAM,gBAAgB,SAAS,CAAA;AAEtC;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,WAAW,CAAA;AAE1C,kFAAkF;AAClF,eAAO,MAAM,mBAAmB,0BAA0B,CAAA"}
|
package/build/login/consts.js
CHANGED
|
@@ -2,17 +2,38 @@ export const DEFAULT_ALIAS = 'login-service';
|
|
|
2
2
|
export const LOGIN_SERVICE = DEFAULT_ALIAS;
|
|
3
3
|
/** Priority of a plugin that makes no claim about the environment. */
|
|
4
4
|
export const DEFAULT_LOGIN_PRIORITY = 0;
|
|
5
|
+
/** Order given to a method that declares none. */
|
|
6
|
+
export const DEFAULT_METHOD_ORDER = 100;
|
|
5
7
|
/**
|
|
6
|
-
* Name given to the surrogate login window,
|
|
8
|
+
* Name given to the surrogate login window, the marker it records about itself, and the values the
|
|
9
|
+
* two documents exchange.
|
|
7
10
|
*
|
|
8
|
-
* These
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
+
* These are a wire protocol between two documents that may be running different builds — an opener
|
|
12
|
+
* holding an older bundle and a surrogate freshly loaded, or the reverse. They are therefore fixed,
|
|
13
|
+
* and must never be "tidied" to match a newer vocabulary. That applies to the query names and the
|
|
14
|
+
* message types added later just as much as to the original three.
|
|
11
15
|
*/
|
|
12
16
|
export const LOGIN_SURROGATE_NAME = 'owlmeans-oidc-login';
|
|
13
17
|
export const LOGIN_TOKEN_MESSAGE = 'owlmeans:oidc:popup-token';
|
|
18
|
+
export const LOGIN_LOGOUT_MESSAGE = 'owlmeans:oidc:popup-logout';
|
|
14
19
|
export const LOGIN_SURROGATE_MARKER = '_owlmeans-oidc-popup';
|
|
15
20
|
export const LOGIN_SURROGATE_FEATURES = 'popup=yes,width=520,height=760';
|
|
16
21
|
/** How often a surrogate window is checked for having been closed by the user. */
|
|
17
22
|
export const LOGIN_WATCH_INTERVAL = 500;
|
|
23
|
+
/** Carries WHY the surrogate window was opened across the window boundary. */
|
|
24
|
+
export const LOGIN_INTENT_QUERY = 'intent';
|
|
25
|
+
/**
|
|
26
|
+
* Carries the address the surrogate should run, so the flow parameters the opener's URL held are
|
|
27
|
+
* forwarded rather than discarded.
|
|
28
|
+
*/
|
|
29
|
+
export const LOGIN_NEXT_QUERY = 'next';
|
|
30
|
+
/**
|
|
31
|
+
* Carries the method the user already chose, one window up.
|
|
32
|
+
*
|
|
33
|
+
* A surrogate acting on it is not an auto-redirect in the "never choose for the user" sense: the
|
|
34
|
+
* choice was made, by a person, in the document that opened this one.
|
|
35
|
+
*/
|
|
36
|
+
export const LOGIN_METHOD_QUERY = 'method';
|
|
37
|
+
/** Where a browser records that it agreed to one exact set of legal documents. */
|
|
38
|
+
export const LOGIN_TERMS_STORAGE = '_owlmeans-login-terms';
|
|
18
39
|
//# sourceMappingURL=consts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/login/consts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAA;AAE5C,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAA;AAE1C,sEAAsE;AACtE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAA;AAEvC
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/login/consts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAA;AAE5C,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAA;AAE1C,sEAAsE;AACtE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAA;AAEvC,kDAAkD;AAClD,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAA;AAEvC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,qBAAqB,CAAA;AAEzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,2BAA2B,CAAA;AAE9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,4BAA4B,CAAA;AAEhE,MAAM,CAAC,MAAM,sBAAsB,GAAG,sBAAsB,CAAA;AAE5D,MAAM,CAAC,MAAM,wBAAwB,GAAG,gCAAgC,CAAA;AAExE,kFAAkF;AAClF,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAA;AAEvC,8EAA8E;AAC9E,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAA;AAE1C;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAA;AAEtC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAA;AAE1C,kFAAkF;AAClF,MAAM,CAAC,MAAM,mBAAmB,GAAG,uBAAuB,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { BrandSettings, LoginCreditConfig } from '@owlmeans/config';
|
|
2
|
+
export interface ResolvedCredit {
|
|
3
|
+
/** Whether "Powered by OwlMeans" is rendered. */
|
|
4
|
+
poweredBy: boolean;
|
|
5
|
+
/** The product and organization line, already composed. Null when there is nothing to say. */
|
|
6
|
+
line: string | null;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* What the bottom of the sign-in screen says.
|
|
10
|
+
*
|
|
11
|
+
* The organization falls back to its slug because an organization record carries no readable name
|
|
12
|
+
* — so "no name" is the ordinary case, not an error, and a screen that rendered an empty line for
|
|
13
|
+
* it would be worse than one that renders the slug.
|
|
14
|
+
*
|
|
15
|
+
* `line` replaces everything when an app supplies it: a product with its own legal wording should
|
|
16
|
+
* not have to defeat a composition rule to use it.
|
|
17
|
+
*/
|
|
18
|
+
export declare const resolveCredit: (cfg?: LoginCreditConfig, brand?: BrandSettings, service?: string) => ResolvedCredit;
|
|
19
|
+
//# sourceMappingURL=credit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credit.d.ts","sourceRoot":"","sources":["../../src/login/credit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAExE,MAAM,WAAW,cAAc;IAC7B,iDAAiD;IACjD,SAAS,EAAE,OAAO,CAAA;IAClB,8FAA8F;IAC9F,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,SAClB,iBAAiB,UAAU,aAAa,YAAY,MAAM,KAC/D,cAeF,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the bottom of the sign-in screen says.
|
|
3
|
+
*
|
|
4
|
+
* The organization falls back to its slug because an organization record carries no readable name
|
|
5
|
+
* — so "no name" is the ordinary case, not an error, and a screen that rendered an empty line for
|
|
6
|
+
* it would be worse than one that renders the slug.
|
|
7
|
+
*
|
|
8
|
+
* `line` replaces everything when an app supplies it: a product with its own legal wording should
|
|
9
|
+
* not have to defeat a composition rule to use it.
|
|
10
|
+
*/
|
|
11
|
+
export const resolveCredit = (cfg, brand, service) => {
|
|
12
|
+
const poweredBy = cfg?.poweredBy ?? true;
|
|
13
|
+
if (cfg?.line != null && cfg.line !== '') {
|
|
14
|
+
return { poweredBy, line: cfg.line };
|
|
15
|
+
}
|
|
16
|
+
const product = cfg?.product ?? brand?.name ?? service ?? null;
|
|
17
|
+
const organization = cfg?.organization ?? brand?.organization
|
|
18
|
+
?? cfg?.entity ?? brand?.entity ?? null;
|
|
19
|
+
const line = product != null && organization != null && product !== organization
|
|
20
|
+
? `${product} — ${organization}`
|
|
21
|
+
: product ?? organization;
|
|
22
|
+
return { poweredBy, line: line != null && line !== '' ? line : null };
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=credit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credit.js","sourceRoot":"","sources":["../../src/login/credit.ts"],"names":[],"mappings":"AASA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,GAAuB,EAAE,KAAqB,EAAE,OAAgB,EAChD,EAAE;IAClB,MAAM,SAAS,GAAG,GAAG,EAAE,SAAS,IAAI,IAAI,CAAA;IACxC,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;QACzC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAA;IACtC,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,EAAE,OAAO,IAAI,KAAK,EAAE,IAAI,IAAI,OAAO,IAAI,IAAI,CAAA;IAC9D,MAAM,YAAY,GAAG,GAAG,EAAE,YAAY,IAAI,KAAK,EAAE,YAAY;WACxD,GAAG,EAAE,MAAM,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,CAAA;IAEzC,MAAM,IAAI,GAAG,OAAO,IAAI,IAAI,IAAI,YAAY,IAAI,IAAI,IAAI,OAAO,KAAK,YAAY;QAC9E,CAAC,CAAC,GAAG,OAAO,MAAM,YAAY,EAAE;QAChC,CAAC,CAAC,OAAO,IAAI,YAAY,CAAA;IAE3B,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;AACvE,CAAC,CAAA"}
|
package/build/login/hook.d.ts
CHANGED
|
@@ -19,8 +19,19 @@ export declare const useLogin: (target?: string) => readonly [string, (event?: M
|
|
|
19
19
|
/**
|
|
20
20
|
* Wiring for a "Log out" control.
|
|
21
21
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
22
|
+
* One control, one handler, no decision — the mirror of {@link useLogin}. Where the session has to
|
|
23
|
+
* be ended (here, or one window up in a surrogate whose storage partition this document cannot
|
|
24
|
+
* reach) is the login plugin's call.
|
|
25
|
+
*
|
|
26
|
+
* NOT async, and nothing is awaited before delegating: logging out of a framed application opens a
|
|
27
|
+
* window, and a window opened after the gesture has finished being handled is eaten by the popup
|
|
28
|
+
* blocker. The surrogate entrypoint is resolved INSIDE the hook for the same reason `useLogin`
|
|
29
|
+
* resolves the dispatcher there.
|
|
30
|
+
*
|
|
31
|
+
* The return shape stays a bare handler rather than `useLogin`'s tuple: a logout control has no
|
|
32
|
+
* address to point at, and every generated application carries a copy of a component that writes
|
|
33
|
+
* `const onLogOut = useLogout()`. `(event?: MouseEvent) => void` is assignable to `() => void`, so
|
|
34
|
+
* `onClick={onLogOut}` keeps compiling everywhere.
|
|
24
35
|
*/
|
|
25
|
-
export declare const useLogout: () => (() => void);
|
|
36
|
+
export declare const useLogout: (target?: string) => ((event?: MouseEvent) => void);
|
|
26
37
|
//# sourceMappingURL=hook.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/login/hook.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAUvC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,QAAQ,YAAa,MAAM,KAAG,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,UAAU,KAAK,IAAI,CAmBxF,CAAA;AAED
|
|
1
|
+
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/login/hook.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAUvC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,QAAQ,YAAa,MAAM,KAAG,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,UAAU,KAAK,IAAI,CAmBxF,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,SAAS,YAAa,MAAM,KAAG,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,KAAK,IAAI,CAcxE,CAAA"}
|
package/build/login/hook.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { useCallback } from 'react';
|
|
2
2
|
import { useContext, useNavigate } from '@owlmeans/client';
|
|
3
3
|
import { DISPATCHER } from '@owlmeans/auth';
|
|
4
|
-
import {
|
|
4
|
+
import { LoginIntent } from './types.js';
|
|
5
5
|
import { LOGIN_SERVICE } from './consts.js';
|
|
6
|
+
import { surrogatePath } from './surrogate.js';
|
|
6
7
|
/**
|
|
7
8
|
* Wiring for a "Log in" control: where it points, and what it does when clicked.
|
|
8
9
|
*
|
|
@@ -40,15 +41,32 @@ export const useLogin = (target) => {
|
|
|
40
41
|
/**
|
|
41
42
|
* Wiring for a "Log out" control.
|
|
42
43
|
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
44
|
+
* One control, one handler, no decision — the mirror of {@link useLogin}. Where the session has to
|
|
45
|
+
* be ended (here, or one window up in a surrogate whose storage partition this document cannot
|
|
46
|
+
* reach) is the login plugin's call.
|
|
47
|
+
*
|
|
48
|
+
* NOT async, and nothing is awaited before delegating: logging out of a framed application opens a
|
|
49
|
+
* window, and a window opened after the gesture has finished being handled is eaten by the popup
|
|
50
|
+
* blocker. The surrogate entrypoint is resolved INSIDE the hook for the same reason `useLogin`
|
|
51
|
+
* resolves the dispatcher there.
|
|
52
|
+
*
|
|
53
|
+
* The return shape stays a bare handler rather than `useLogin`'s tuple: a logout control has no
|
|
54
|
+
* address to point at, and every generated application carries a copy of a component that writes
|
|
55
|
+
* `const onLogOut = useLogout()`. `(event?: MouseEvent) => void` is assignable to `() => void`, so
|
|
56
|
+
* `onClick={onLogOut}` keeps compiling everywhere.
|
|
45
57
|
*/
|
|
46
|
-
export const useLogout = () => {
|
|
58
|
+
export const useLogout = (target) => {
|
|
47
59
|
const context = useContext();
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
60
|
+
const nav = useNavigate();
|
|
61
|
+
const path = surrogatePath(context, { intent: LoginIntent.Logout });
|
|
62
|
+
return useCallback((event) => {
|
|
63
|
+
event?.preventDefault();
|
|
64
|
+
const login = context.service(LOGIN_SERVICE);
|
|
65
|
+
void login.logout({
|
|
66
|
+
// An application whose entrypoint list predates the surrogate route logs out in place.
|
|
67
|
+
url: path ?? '',
|
|
68
|
+
...(target != null ? { navigate: () => { nav.go(target); } } : {}),
|
|
69
|
+
});
|
|
70
|
+
}, [context, path, target]);
|
|
53
71
|
};
|
|
54
72
|
//# sourceMappingURL=hook.js.map
|
package/build/login/hook.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/login/hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAEnC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG1D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/login/hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAEnC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG1D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE9C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,MAAe,EAAmD,EAAE;IAC3F,MAAM,OAAO,GAAG,UAAU,EAA8B,CAAA;IACxD,MAAM,GAAG,GAAG,WAAW,EAAE,CAAA;IACzB,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAmB,UAAU,CAAC,CAAA;IACnE,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,CAAA;IAEjC,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,KAAkB,EAAE,EAAE;QACjD,KAAK,EAAE,cAAc,EAAE,CAAA;QACvB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAe,aAAa,CAAC,CAAA;QAC1D,KAAK,KAAK,CAAC,KAAK,CAAC;YACf,GAAG,EAAE,IAAI;YACT,MAAM;YACN,uFAAuF;YACvF,uCAAuC;YACvC,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,MAAM,IAAI,UAAU,CAAC,CAAA,CAAC,CAAC;SACjD,CAAC,CAAA;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;IAE3B,OAAO,CAAC,IAAI,EAAE,OAAO,CAAU,CAAA;AACjC,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAe,EAAkC,EAAE;IAC3E,MAAM,OAAO,GAAG,UAAU,EAA8B,CAAA;IACxD,MAAM,GAAG,GAAG,WAAW,EAAE,CAAA;IACzB,MAAM,IAAI,GAAG,aAAa,CAAC,OAAkC,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAA;IAE9F,OAAO,WAAW,CAAC,CAAC,KAAkB,EAAE,EAAE;QACxC,KAAK,EAAE,cAAc,EAAE,CAAA;QACvB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAe,aAAa,CAAC,CAAA;QAC1D,KAAK,KAAK,CAAC,MAAM,CAAC;YAChB,uFAAuF;YACvF,GAAG,EAAE,IAAI,IAAI,EAAE;YACf,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClE,CAAC,CAAA;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;AAC7B,CAAC,CAAA"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"login": {
|
|
3
|
+
"title": "Уваход",
|
|
4
|
+
"subtitle": "Абярыце спосаб уваходу.",
|
|
5
|
+
"busy": "Адкрываем акно ўваходу…",
|
|
6
|
+
"empty": "Для гэтай праграмы не наладжаны ніводзін спосаб уваходу.",
|
|
7
|
+
"method": {
|
|
8
|
+
"google": "Працягнуць з Google",
|
|
9
|
+
"oidc": "Працягнуць з {{provider}}",
|
|
10
|
+
"oidc-default": "Увайсці",
|
|
11
|
+
"oidc-client": "Працягнуць з {{provider}}",
|
|
12
|
+
"basic-ed25519": "Увайсці з ключом",
|
|
13
|
+
"pk-supervisor": "Сакрэтны ключ (аператар)",
|
|
14
|
+
"wallet-consumer": "Гаманец OwlMeans ID",
|
|
15
|
+
"one-time-token": "Увайсці па кодзе з ліста",
|
|
16
|
+
"fallback": "Працягнуць з {{method}}"
|
|
17
|
+
},
|
|
18
|
+
"terms": {
|
|
19
|
+
"agreement": "Я прачытаў(-ла) і прымаю {{terms}} і {{privacy}}.",
|
|
20
|
+
"terms": "Умовы карыстання",
|
|
21
|
+
"privacy": "Палітыку прыватнасці",
|
|
22
|
+
"cookies": "Палітыку файлаў cookie",
|
|
23
|
+
"required": "Каб працягнуць, пацвердзіце Умовы карыстання і Палітыку прыватнасці."
|
|
24
|
+
},
|
|
25
|
+
"consent": {
|
|
26
|
+
"required": "Уваход захоўвае сеансавы файл cookie. Прыміце неабходныя файлы cookie, каб працягнуць."
|
|
27
|
+
},
|
|
28
|
+
"credit": {
|
|
29
|
+
"powered": "Працуе на OwlMeans"
|
|
30
|
+
},
|
|
31
|
+
"error": {
|
|
32
|
+
"failed": "Уваход не завершаны. Паспрабуйце яшчэ раз.",
|
|
33
|
+
"blocked": "Акно ўваходу заблакавана. Дазвольце ўсплывальныя вокны для гэтага сайта і паспрабуйце зноў."
|
|
34
|
+
},
|
|
35
|
+
"orphaned": "Уваход выкананы. Можаце закрыць гэтае акно і вярнуцца ў праграму."
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"login": {
|
|
3
|
+
"title": "Anmelden",
|
|
4
|
+
"subtitle": "Wählen Sie, wie Sie fortfahren möchten.",
|
|
5
|
+
"busy": "Anmeldung wird geöffnet…",
|
|
6
|
+
"empty": "Für diese Anwendung ist keine Anmeldemethode konfiguriert.",
|
|
7
|
+
"method": {
|
|
8
|
+
"google": "Mit Google fortfahren",
|
|
9
|
+
"oidc": "Mit {{provider}} fortfahren",
|
|
10
|
+
"oidc-default": "Anmelden",
|
|
11
|
+
"oidc-client": "Mit {{provider}} fortfahren",
|
|
12
|
+
"basic-ed25519": "Mit einem Schlüssel anmelden",
|
|
13
|
+
"pk-supervisor": "Geheimer Schlüssel (Betreiber)",
|
|
14
|
+
"wallet-consumer": "OwlMeans-ID-Wallet",
|
|
15
|
+
"one-time-token": "Mit einem E-Mail-Code anmelden",
|
|
16
|
+
"fallback": "Mit {{method}} fortfahren"
|
|
17
|
+
},
|
|
18
|
+
"terms": {
|
|
19
|
+
"agreement": "Ich habe die {{terms}} und die {{privacy}} gelesen und stimme ihnen zu.",
|
|
20
|
+
"terms": "Allgemeinen Geschäftsbedingungen",
|
|
21
|
+
"privacy": "Datenschutzerklärung",
|
|
22
|
+
"cookies": "Cookie-Richtlinie",
|
|
23
|
+
"required": "Bitte bestätigen Sie die Allgemeinen Geschäftsbedingungen und die Datenschutzerklärung, um fortzufahren."
|
|
24
|
+
},
|
|
25
|
+
"consent": {
|
|
26
|
+
"required": "Bei der Anmeldung wird ein Sitzungs-Cookie gespeichert. Akzeptieren Sie die notwendigen Cookies, um fortzufahren."
|
|
27
|
+
},
|
|
28
|
+
"credit": {
|
|
29
|
+
"powered": "Betrieben mit OwlMeans"
|
|
30
|
+
},
|
|
31
|
+
"error": {
|
|
32
|
+
"failed": "Die Anmeldung wurde nicht abgeschlossen. Bitte versuchen Sie es erneut.",
|
|
33
|
+
"blocked": "Das Anmeldefenster wurde blockiert. Erlauben Sie Pop-ups für diese Website und versuchen Sie es erneut."
|
|
34
|
+
},
|
|
35
|
+
"orphaned": "Angemeldet. Sie können dieses Fenster schließen und in der Anwendung fortfahren."
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"login": {
|
|
3
|
+
"title": "Sign in",
|
|
4
|
+
"subtitle": "Choose how you would like to continue.",
|
|
5
|
+
"busy": "Opening sign-in…",
|
|
6
|
+
"empty": "No sign-in method is configured for this application.",
|
|
7
|
+
"method": {
|
|
8
|
+
"google": "Continue with Google",
|
|
9
|
+
"oidc": "Continue with {{provider}}",
|
|
10
|
+
"oidc-default": "Sign in",
|
|
11
|
+
"oidc-client": "Continue with {{provider}}",
|
|
12
|
+
"basic-ed25519": "Sign in with a key",
|
|
13
|
+
"pk-supervisor": "Secret key (operator)",
|
|
14
|
+
"wallet-consumer": "OwlMeans ID wallet",
|
|
15
|
+
"one-time-token": "Sign in with an email code",
|
|
16
|
+
"fallback": "Continue with {{method}}"
|
|
17
|
+
},
|
|
18
|
+
"terms": {
|
|
19
|
+
"agreement": "I have read and agree to the {{terms}} and the {{privacy}}.",
|
|
20
|
+
"terms": "Terms & Conditions",
|
|
21
|
+
"privacy": "Privacy Policy",
|
|
22
|
+
"cookies": "Cookie Policy",
|
|
23
|
+
"required": "Please confirm the Terms & Conditions and the Privacy Policy to continue."
|
|
24
|
+
},
|
|
25
|
+
"consent": {
|
|
26
|
+
"required": "Signing in stores a session cookie. Accept essential cookies to continue."
|
|
27
|
+
},
|
|
28
|
+
"credit": {
|
|
29
|
+
"powered": "Powered by OwlMeans"
|
|
30
|
+
},
|
|
31
|
+
"error": {
|
|
32
|
+
"failed": "Sign-in did not complete. Please try again.",
|
|
33
|
+
"blocked": "The sign-in window was blocked. Allow pop-ups for this site and try again."
|
|
34
|
+
},
|
|
35
|
+
"orphaned": "Signed in. You can close this window and continue in the application."
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"login": {
|
|
3
|
+
"title": "Iniciar sesión",
|
|
4
|
+
"subtitle": "Elige cómo quieres continuar.",
|
|
5
|
+
"busy": "Abriendo el inicio de sesión…",
|
|
6
|
+
"empty": "No hay ningún método de inicio de sesión configurado para esta aplicación.",
|
|
7
|
+
"method": {
|
|
8
|
+
"google": "Continuar con Google",
|
|
9
|
+
"oidc": "Continuar con {{provider}}",
|
|
10
|
+
"oidc-default": "Iniciar sesión",
|
|
11
|
+
"oidc-client": "Continuar con {{provider}}",
|
|
12
|
+
"basic-ed25519": "Iniciar sesión con una clave",
|
|
13
|
+
"pk-supervisor": "Clave secreta (operador)",
|
|
14
|
+
"wallet-consumer": "Cartera OwlMeans ID",
|
|
15
|
+
"one-time-token": "Iniciar sesión con un código por correo",
|
|
16
|
+
"fallback": "Continuar con {{method}}"
|
|
17
|
+
},
|
|
18
|
+
"terms": {
|
|
19
|
+
"agreement": "He leído y acepto los {{terms}} y la {{privacy}}.",
|
|
20
|
+
"terms": "Términos y Condiciones",
|
|
21
|
+
"privacy": "Política de Privacidad",
|
|
22
|
+
"cookies": "Política de Cookies",
|
|
23
|
+
"required": "Confirma los Términos y Condiciones y la Política de Privacidad para continuar."
|
|
24
|
+
},
|
|
25
|
+
"consent": {
|
|
26
|
+
"required": "Iniciar sesión guarda una cookie de sesión. Acepta las cookies esenciales para continuar."
|
|
27
|
+
},
|
|
28
|
+
"credit": {
|
|
29
|
+
"powered": "Con tecnología de OwlMeans"
|
|
30
|
+
},
|
|
31
|
+
"error": {
|
|
32
|
+
"failed": "El inicio de sesión no se completó. Inténtalo de nuevo.",
|
|
33
|
+
"blocked": "Se bloqueó la ventana de inicio de sesión. Permite las ventanas emergentes para este sitio e inténtalo de nuevo."
|
|
34
|
+
},
|
|
35
|
+
"orphaned": "Sesión iniciada. Puedes cerrar esta ventana y continuar en la aplicación."
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"login": {
|
|
3
|
+
"title": "Zaloguj się",
|
|
4
|
+
"subtitle": "Wybierz sposób, w jaki chcesz kontynuować.",
|
|
5
|
+
"busy": "Otwieranie logowania…",
|
|
6
|
+
"empty": "Dla tej aplikacji nie skonfigurowano żadnej metody logowania.",
|
|
7
|
+
"method": {
|
|
8
|
+
"google": "Kontynuuj z Google",
|
|
9
|
+
"oidc": "Kontynuuj z {{provider}}",
|
|
10
|
+
"oidc-default": "Zaloguj się",
|
|
11
|
+
"oidc-client": "Kontynuuj z {{provider}}",
|
|
12
|
+
"basic-ed25519": "Zaloguj się kluczem",
|
|
13
|
+
"pk-supervisor": "Klucz tajny (operator)",
|
|
14
|
+
"wallet-consumer": "Portfel OwlMeans ID",
|
|
15
|
+
"one-time-token": "Zaloguj się kodem e-mail",
|
|
16
|
+
"fallback": "Kontynuuj z {{method}}"
|
|
17
|
+
},
|
|
18
|
+
"terms": {
|
|
19
|
+
"agreement": "Przeczytałem(-am) i akceptuję {{terms}} oraz {{privacy}}.",
|
|
20
|
+
"terms": "Regulamin",
|
|
21
|
+
"privacy": "Politykę prywatności",
|
|
22
|
+
"cookies": "Politykę plików cookie",
|
|
23
|
+
"required": "Aby kontynuować, potwierdź Regulamin i Politykę prywatności."
|
|
24
|
+
},
|
|
25
|
+
"consent": {
|
|
26
|
+
"required": "Logowanie zapisuje plik cookie sesji. Zaakceptuj niezbędne pliki cookie, aby kontynuować."
|
|
27
|
+
},
|
|
28
|
+
"credit": {
|
|
29
|
+
"powered": "Napędzane przez OwlMeans"
|
|
30
|
+
},
|
|
31
|
+
"error": {
|
|
32
|
+
"failed": "Logowanie nie zostało ukończone. Spróbuj ponownie.",
|
|
33
|
+
"blocked": "Okno logowania zostało zablokowane. Zezwól na wyskakujące okienka dla tej witryny i spróbuj ponownie."
|
|
34
|
+
},
|
|
35
|
+
"orphaned": "Zalogowano. Możesz zamknąć to okno i kontynuować w aplikacji."
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"login": {
|
|
3
|
+
"title": "Вход",
|
|
4
|
+
"subtitle": "Выберите способ входа.",
|
|
5
|
+
"busy": "Открываем окно входа…",
|
|
6
|
+
"empty": "Для этого приложения не настроен ни один способ входа.",
|
|
7
|
+
"method": {
|
|
8
|
+
"google": "Продолжить с Google",
|
|
9
|
+
"oidc": "Продолжить с {{provider}}",
|
|
10
|
+
"oidc-default": "Войти",
|
|
11
|
+
"oidc-client": "Продолжить с {{provider}}",
|
|
12
|
+
"basic-ed25519": "Войти с ключом",
|
|
13
|
+
"pk-supervisor": "Секретный ключ (оператор)",
|
|
14
|
+
"wallet-consumer": "Кошелёк OwlMeans ID",
|
|
15
|
+
"one-time-token": "Войти по коду из письма",
|
|
16
|
+
"fallback": "Продолжить с {{method}}"
|
|
17
|
+
},
|
|
18
|
+
"terms": {
|
|
19
|
+
"agreement": "Я прочитал(а) и принимаю {{terms}} и {{privacy}}.",
|
|
20
|
+
"terms": "Условия использования",
|
|
21
|
+
"privacy": "Политику конфиденциальности",
|
|
22
|
+
"cookies": "Политику файлов cookie",
|
|
23
|
+
"required": "Чтобы продолжить, подтвердите Условия использования и Политику конфиденциальности."
|
|
24
|
+
},
|
|
25
|
+
"consent": {
|
|
26
|
+
"required": "Вход сохраняет сессионный файл cookie. Примите необходимые файлы cookie, чтобы продолжить."
|
|
27
|
+
},
|
|
28
|
+
"credit": {
|
|
29
|
+
"powered": "Работает на OwlMeans"
|
|
30
|
+
},
|
|
31
|
+
"error": {
|
|
32
|
+
"failed": "Вход не завершён. Попробуйте ещё раз.",
|
|
33
|
+
"blocked": "Окно входа заблокировано. Разрешите всплывающие окна для этого сайта и попробуйте снова."
|
|
34
|
+
},
|
|
35
|
+
"orphaned": "Вход выполнен. Можете закрыть это окно и вернуться в приложение."
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"login": {
|
|
3
|
+
"title": "Вхід",
|
|
4
|
+
"subtitle": "Оберіть спосіб входу.",
|
|
5
|
+
"busy": "Відкриваємо вікно входу…",
|
|
6
|
+
"empty": "Для цього застосунку не налаштовано жодного способу входу.",
|
|
7
|
+
"method": {
|
|
8
|
+
"google": "Продовжити з Google",
|
|
9
|
+
"oidc": "Продовжити з {{provider}}",
|
|
10
|
+
"oidc-default": "Увійти",
|
|
11
|
+
"oidc-client": "Продовжити з {{provider}}",
|
|
12
|
+
"basic-ed25519": "Увійти з ключем",
|
|
13
|
+
"pk-supervisor": "Секретний ключ (оператор)",
|
|
14
|
+
"wallet-consumer": "Гаманець OwlMeans ID",
|
|
15
|
+
"one-time-token": "Увійти за кодом з листа",
|
|
16
|
+
"fallback": "Продовжити з {{method}}"
|
|
17
|
+
},
|
|
18
|
+
"terms": {
|
|
19
|
+
"agreement": "Я прочитав(-ла) і приймаю {{terms}} та {{privacy}}.",
|
|
20
|
+
"terms": "Умови користування",
|
|
21
|
+
"privacy": "Політику конфіденційності",
|
|
22
|
+
"cookies": "Політику файлів cookie",
|
|
23
|
+
"required": "Щоб продовжити, підтвердьте Умови користування та Політику конфіденційності."
|
|
24
|
+
},
|
|
25
|
+
"consent": {
|
|
26
|
+
"required": "Вхід зберігає сеансовий файл cookie. Прийміть необхідні файли cookie, щоб продовжити."
|
|
27
|
+
},
|
|
28
|
+
"credit": {
|
|
29
|
+
"powered": "Працює на OwlMeans"
|
|
30
|
+
},
|
|
31
|
+
"error": {
|
|
32
|
+
"failed": "Вхід не завершено. Спробуйте ще раз.",
|
|
33
|
+
"blocked": "Вікно входу заблоковано. Дозвольте спливаючі вікна для цього сайту та спробуйте знову."
|
|
34
|
+
},
|
|
35
|
+
"orphaned": "Вхід виконано. Можете закрити це вікно й повернутися до застосунку."
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/login/i18n.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { addI18nLib } from '@owlmeans/i18n';
|
|
2
|
+
import en from './i18n/en.json' with { type: 'json' };
|
|
3
|
+
import pl from './i18n/pl.json' with { type: 'json' };
|
|
4
|
+
import ru from './i18n/ru.json' with { type: 'json' };
|
|
5
|
+
import be from './i18n/be.json' with { type: 'json' };
|
|
6
|
+
import uk from './i18n/uk.json' with { type: 'json' };
|
|
7
|
+
import es from './i18n/es.json' with { type: 'json' };
|
|
8
|
+
import de from './i18n/de.json' with { type: 'json' };
|
|
9
|
+
/**
|
|
10
|
+
* The sign-in screen's copy, registered into the `auth` library resource.
|
|
11
|
+
*
|
|
12
|
+
* `_addI18n` PUSHES rather than replaces, so this coexists with `@owlmeans/web-client`'s own
|
|
13
|
+
* `auth` registration (which owns `dispatcher.*` and `surrogate.*`) and the two merge by tier and
|
|
14
|
+
* priority. Registering here rather than in a UI package is what lets the plain fallback screen
|
|
15
|
+
* and every styled one read the same keys — so the seven-language rule holds on every path a user
|
|
16
|
+
* can actually reach, not only the pretty one.
|
|
17
|
+
*/
|
|
18
|
+
addI18nLib('en', 'auth', en);
|
|
19
|
+
addI18nLib('pl', 'auth', pl);
|
|
20
|
+
addI18nLib('ru', 'auth', ru);
|
|
21
|
+
addI18nLib('be', 'auth', be);
|
|
22
|
+
addI18nLib('uk', 'auth', uk);
|
|
23
|
+
addI18nLib('es', 'auth', es);
|
|
24
|
+
addI18nLib('de', 'auth', de);
|
|
25
|
+
//# sourceMappingURL=i18n.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/login/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,OAAO,EAAE,MAAM,gBAAgB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AACrD,OAAO,EAAE,MAAM,gBAAgB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AACrD,OAAO,EAAE,MAAM,gBAAgB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AACrD,OAAO,EAAE,MAAM,gBAAgB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AACrD,OAAO,EAAE,MAAM,gBAAgB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AACrD,OAAO,EAAE,MAAM,gBAAgB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AACrD,OAAO,EAAE,MAAM,gBAAgB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAErD;;;;;;;;GAQG;AACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;AAC5B,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;AAC5B,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;AAC5B,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;AAC5B,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;AAC5B,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;AAC5B,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA"}
|