@owlmeans/client-auth 0.1.18-rc.9 → 0.1.19-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. package/README.md +283 -37
  2. package/agent-meta/manifest.json +50 -4
  3. package/agent-meta/skills/client-auth/SKILL.md +84 -55
  4. package/agent-meta/skills/client-auth/parts/login.md +77 -0
  5. package/agent-meta/skills/client-auth/parts/manager.md +37 -0
  6. package/build/components/dispatcher/component.d.ts.map +1 -1
  7. package/build/components/dispatcher/component.js +26 -6
  8. package/build/components/dispatcher/component.js.map +1 -1
  9. package/build/components/dispatcher/types.local.d.ts +7 -0
  10. package/build/components/dispatcher/types.local.d.ts.map +1 -0
  11. package/build/components/dispatcher/types.local.js +2 -0
  12. package/build/components/dispatcher/types.local.js.map +1 -0
  13. package/build/entrypoints.d.ts +7 -0
  14. package/build/entrypoints.d.ts.map +1 -0
  15. package/build/entrypoints.js +7 -0
  16. package/build/entrypoints.js.map +1 -0
  17. package/build/helper.d.ts +2 -1
  18. package/build/helper.d.ts.map +1 -1
  19. package/build/helper.js +28 -5
  20. package/build/helper.js.map +1 -1
  21. package/build/index.d.ts +1 -1
  22. package/build/index.d.ts.map +1 -1
  23. package/build/index.js +1 -1
  24. package/build/index.js.map +1 -1
  25. package/build/login/adopt/types.d.ts +26 -0
  26. package/build/login/adopt/types.d.ts.map +1 -0
  27. package/build/login/adopt/types.js +2 -0
  28. package/build/login/adopt/types.js.map +1 -0
  29. package/build/login/adopt.d.ts +7 -12
  30. package/build/login/adopt.d.ts.map +1 -1
  31. package/build/login/adopt.js +15 -14
  32. package/build/login/adopt.js.map +1 -1
  33. package/build/login/consts.d.ts +89 -4
  34. package/build/login/consts.d.ts.map +1 -1
  35. package/build/login/consts.js +93 -5
  36. package/build/login/consts.js.map +1 -1
  37. package/build/login/consts.local.d.ts +16 -0
  38. package/build/login/consts.local.d.ts.map +1 -0
  39. package/build/login/consts.local.js +30 -0
  40. package/build/login/consts.local.js.map +1 -0
  41. package/build/login/credit/types.d.ts +7 -0
  42. package/build/login/credit/types.d.ts.map +1 -0
  43. package/build/login/credit/types.js +2 -0
  44. package/build/login/credit/types.js.map +1 -0
  45. package/build/login/credit.d.ts +19 -0
  46. package/build/login/credit.d.ts.map +1 -0
  47. package/build/login/credit.js +58 -0
  48. package/build/login/credit.js.map +1 -0
  49. package/build/login/env/types.d.ts +35 -0
  50. package/build/login/env/types.d.ts.map +1 -0
  51. package/build/login/env/types.js +2 -0
  52. package/build/login/env/types.js.map +1 -0
  53. package/build/login/env.d.ts +5 -29
  54. package/build/login/env.d.ts.map +1 -1
  55. package/build/login/env.js +63 -80
  56. package/build/login/env.js.map +1 -1
  57. package/build/login/flow.d.ts +20 -0
  58. package/build/login/flow.d.ts.map +1 -0
  59. package/build/login/flow.js +39 -0
  60. package/build/login/flow.js.map +1 -0
  61. package/build/login/hook.d.ts +30 -4
  62. package/build/login/hook.d.ts.map +1 -1
  63. package/build/login/hook.js +53 -18
  64. package/build/login/hook.js.map +1 -1
  65. package/build/login/i18n/be.json +41 -0
  66. package/build/login/i18n/de.json +41 -0
  67. package/build/login/i18n/en.json +41 -0
  68. package/build/login/i18n/es.json +41 -0
  69. package/build/login/i18n/fr.json +41 -0
  70. package/build/login/i18n/pl.json +41 -0
  71. package/build/login/i18n/ru.json +41 -0
  72. package/build/login/i18n/uk.json +41 -0
  73. package/build/login/i18n.d.ts +2 -0
  74. package/build/login/i18n.d.ts.map +1 -0
  75. package/build/login/i18n.js +27 -0
  76. package/build/login/i18n.js.map +1 -0
  77. package/build/login/index.d.ts +20 -0
  78. package/build/login/index.d.ts.map +1 -1
  79. package/build/login/index.js +11 -0
  80. package/build/login/index.js.map +1 -1
  81. package/build/login/land/types.d.ts +52 -0
  82. package/build/login/land/types.d.ts.map +1 -0
  83. package/build/login/land/types.js +2 -0
  84. package/build/login/land/types.js.map +1 -0
  85. package/build/login/land.d.ts +6 -0
  86. package/build/login/land.d.ts.map +1 -0
  87. package/build/login/land.js +122 -0
  88. package/build/login/land.js.map +1 -0
  89. package/build/login/methods/types.d.ts +30 -0
  90. package/build/login/methods/types.d.ts.map +1 -0
  91. package/build/login/methods/types.js +2 -0
  92. package/build/login/methods/types.js.map +1 -0
  93. package/build/login/methods.d.ts +7 -0
  94. package/build/login/methods.d.ts.map +1 -0
  95. package/build/login/methods.js +87 -0
  96. package/build/login/methods.js.map +1 -0
  97. package/build/login/resume/types.d.ts +24 -0
  98. package/build/login/resume/types.d.ts.map +1 -0
  99. package/build/login/resume/types.js +2 -0
  100. package/build/login/resume/types.js.map +1 -0
  101. package/build/login/resume.d.ts +9 -0
  102. package/build/login/resume.d.ts.map +1 -0
  103. package/build/login/resume.js +38 -0
  104. package/build/login/resume.js.map +1 -0
  105. package/build/login/screen.d.ts +17 -0
  106. package/build/login/screen.d.ts.map +1 -0
  107. package/build/login/screen.js +66 -0
  108. package/build/login/screen.js.map +1 -0
  109. package/build/login/service.d.ts +6 -5
  110. package/build/login/service.d.ts.map +1 -1
  111. package/build/login/service.js +141 -15
  112. package/build/login/service.js.map +1 -1
  113. package/build/login/start/types.d.ts +29 -0
  114. package/build/login/start/types.d.ts.map +1 -0
  115. package/build/login/start/types.js +2 -0
  116. package/build/login/start/types.js.map +1 -0
  117. package/build/login/start.d.ts +5 -0
  118. package/build/login/start.d.ts.map +1 -0
  119. package/build/login/start.js +36 -0
  120. package/build/login/start.js.map +1 -0
  121. package/build/login/surrogate/types.d.ts +9 -0
  122. package/build/login/surrogate/types.d.ts.map +1 -0
  123. package/build/login/surrogate/types.js +2 -0
  124. package/build/login/surrogate/types.js.map +1 -0
  125. package/build/login/surrogate.d.ts +13 -0
  126. package/build/login/surrogate.d.ts.map +1 -0
  127. package/build/login/surrogate.js +33 -0
  128. package/build/login/surrogate.js.map +1 -0
  129. package/build/login/terms/types.d.ts +112 -0
  130. package/build/login/terms/types.d.ts.map +1 -0
  131. package/build/login/terms/types.js +2 -0
  132. package/build/login/terms/types.js.map +1 -0
  133. package/build/login/terms-config.d.ts +65 -0
  134. package/build/login/terms-config.d.ts.map +1 -0
  135. package/build/login/terms-config.js +2 -0
  136. package/build/login/terms-config.js.map +1 -0
  137. package/build/login/terms.d.ts +21 -0
  138. package/build/login/terms.d.ts.map +1 -0
  139. package/build/login/terms.js +235 -0
  140. package/build/login/terms.js.map +1 -0
  141. package/build/login/types.d.ts +223 -16
  142. package/build/login/types.d.ts.map +1 -1
  143. package/build/login/types.js +1 -16
  144. package/build/login/types.js.map +1 -1
  145. package/build/manager/components/authentication/control.js +3 -3
  146. package/build/manager/components/authentication/control.js.map +1 -1
  147. package/build/manager/components/authentication/types.d.ts +2 -2
  148. package/build/manager/components/authentication/types.d.ts.map +1 -1
  149. package/build/manager/components/tunnel-consumer.js +2 -2
  150. package/build/manager/components/tunnel-consumer.js.map +1 -1
  151. package/build/manager/entrypoints.d.ts +11 -0
  152. package/build/manager/entrypoints.d.ts.map +1 -0
  153. package/build/manager/entrypoints.js +17 -0
  154. package/build/manager/entrypoints.js.map +1 -0
  155. package/build/manager/plugins/basic-ed25519.d.ts.map +1 -1
  156. package/build/manager/plugins/basic-ed25519.js +5 -0
  157. package/build/manager/plugins/basic-ed25519.js.map +1 -1
  158. package/build/manager/plugins/exports.d.ts +3 -0
  159. package/build/manager/plugins/exports.d.ts.map +1 -1
  160. package/build/manager/plugins/exports.js +2 -0
  161. package/build/manager/plugins/exports.js.map +1 -1
  162. package/build/manager/plugins/index.d.ts +2 -5
  163. package/build/manager/plugins/index.d.ts.map +1 -1
  164. package/build/manager/plugins/index.js +9 -1
  165. package/build/manager/plugins/index.js.map +1 -1
  166. package/build/manager/plugins/methods.d.ts +6 -0
  167. package/build/manager/plugins/methods.d.ts.map +1 -0
  168. package/build/manager/plugins/methods.js +65 -0
  169. package/build/manager/plugins/methods.js.map +1 -0
  170. package/build/manager/plugins/re-captcha.d.ts.map +1 -1
  171. package/build/manager/plugins/re-captcha.js +5 -0
  172. package/build/manager/plugins/re-captcha.js.map +1 -1
  173. package/build/manager/plugins/registry/types.d.ts +10 -0
  174. package/build/manager/plugins/registry/types.d.ts.map +1 -0
  175. package/build/manager/plugins/registry/types.js +2 -0
  176. package/build/manager/plugins/registry/types.js.map +1 -0
  177. package/build/manager/plugins/registry.d.ts +20 -0
  178. package/build/manager/plugins/registry.d.ts.map +1 -0
  179. package/build/manager/plugins/registry.js +23 -0
  180. package/build/manager/plugins/registry.js.map +1 -0
  181. package/build/manager/plugins/tunnel-consumer.d.ts.map +1 -1
  182. package/build/manager/plugins/tunnel-consumer.js +10 -3
  183. package/build/manager/plugins/tunnel-consumer.js.map +1 -1
  184. package/build/manager/plugins/types.d.ts +53 -0
  185. package/build/manager/plugins/types.d.ts.map +1 -1
  186. package/build/service.js +1 -1
  187. package/build/service.js.map +1 -1
  188. package/package.json +33 -30
  189. package/src/components/dispatcher/component.tsx +37 -14
  190. package/src/components/dispatcher/types.local.ts +7 -0
  191. package/src/entrypoints.ts +10 -0
  192. package/src/helper.ts +31 -5
  193. package/src/index.ts +1 -1
  194. package/src/login/adopt/types.ts +25 -0
  195. package/src/login/adopt.ts +21 -14
  196. package/src/login/consts.local.ts +34 -0
  197. package/src/login/consts.ts +105 -5
  198. package/src/login/credit/types.ts +6 -0
  199. package/src/login/credit.ts +69 -0
  200. package/src/login/env/types.ts +35 -0
  201. package/src/login/env.ts +60 -72
  202. package/src/login/flow.ts +44 -0
  203. package/src/login/hook.ts +58 -22
  204. package/src/login/i18n/be.json +41 -0
  205. package/src/login/i18n/de.json +41 -0
  206. package/src/login/i18n/en.json +41 -0
  207. package/src/login/i18n/es.json +41 -0
  208. package/src/login/i18n/fr.json +41 -0
  209. package/src/login/i18n/pl.json +41 -0
  210. package/src/login/i18n/ru.json +41 -0
  211. package/src/login/i18n/uk.json +41 -0
  212. package/src/login/i18n.ts +29 -0
  213. package/src/login/index.ts +21 -0
  214. package/src/login/land/types.ts +54 -0
  215. package/src/login/land.ts +149 -0
  216. package/src/login/methods/types.ts +32 -0
  217. package/src/login/methods.ts +109 -0
  218. package/src/login/resume/types.ts +24 -0
  219. package/src/login/resume.ts +45 -0
  220. package/src/login/screen.tsx +140 -0
  221. package/src/login/service.ts +181 -18
  222. package/src/login/start/types.ts +30 -0
  223. package/src/login/start.ts +44 -0
  224. package/src/login/surrogate/types.ts +9 -0
  225. package/src/login/surrogate.ts +37 -0
  226. package/src/login/terms/types.ts +126 -0
  227. package/src/login/terms-config.ts +55 -0
  228. package/src/login/terms.ts +315 -0
  229. package/src/login/types.ts +233 -17
  230. package/src/manager/README.md +37 -80
  231. package/src/manager/components/authentication/control.ts +3 -3
  232. package/src/manager/components/authentication/types.ts +2 -2
  233. package/src/manager/components/tunnel-consumer.tsx +2 -2
  234. package/src/manager/entrypoints.ts +18 -0
  235. package/src/manager/plugins/basic-ed25519.tsx +7 -0
  236. package/src/manager/plugins/exports.ts +3 -0
  237. package/src/manager/plugins/index.ts +11 -4
  238. package/src/manager/plugins/methods.ts +74 -0
  239. package/src/manager/plugins/re-captcha.tsx +7 -0
  240. package/src/manager/plugins/registry/types.ts +10 -0
  241. package/src/manager/plugins/registry.ts +33 -0
  242. package/src/manager/plugins/tunnel-consumer.tsx +12 -3
  243. package/src/manager/plugins/types.ts +54 -0
  244. package/src/service.ts +1 -1
  245. package/tests/context.ts +1 -2
  246. package/tests/i18n.spec.ts +68 -0
  247. package/tests/land.spec.ts +292 -0
  248. package/tests/login.spec.ts +332 -0
  249. package/tests/target.spec.ts +210 -0
  250. package/tests/terms-deferred.spec.ts +65 -0
  251. package/tests/terms.spec.ts +314 -0
  252. package/build/.gitkeep +0 -0
  253. package/build/manager/modules.d.ts +0 -2
  254. package/build/manager/modules.d.ts.map +0 -1
  255. package/build/manager/modules.js +0 -16
  256. package/build/manager/modules.js.map +0 -1
  257. package/build/modules.d.ts +0 -4
  258. package/build/modules.d.ts.map +0 -1
  259. package/build/modules.js +0 -9
  260. package/build/modules.js.map +0 -1
  261. package/src/manager/modules.ts +0 -18
  262. package/src/modules.ts +0 -13
@@ -0,0 +1,235 @@
1
+ import { OWLMEANS_COOKIES_URL, OWLMEANS_PRIVACY_URL, OWLMEANS_TERMS_URL } from '@owlmeans/config';
2
+ import { LOGIN_SERVICE, LOGIN_TERMS_STORAGE } from './consts.js';
3
+ import './terms-config.js';
4
+ import { DEFAULT_LABEL } from './consts.local.js';
5
+ export const createLoginTermsHelper = () => {
6
+ /**
7
+ * A stable identity for one set of documents.
8
+ *
9
+ * Acceptance is recorded against it, so changing a URL — or a revision date, or adding a document
10
+ * — re-asks. Cheap and order-independent rather than cryptographic; it only has to change when the
11
+ * content pointer does.
12
+ *
13
+ * With no billing/product/custom documents and no revisions configured, this MUST produce the same
14
+ * digest as before this file grew those fields: `digest([terms, privacy, cookies])`. `terms.spec.ts`
15
+ * pins that byte-identity so no existing user is silently asked to re-accept.
16
+ */
17
+ const digest = (parts) => {
18
+ let hash = 0;
19
+ for (const char of parts.join(' ')) {
20
+ hash = ((hash << 5) - hash + char.charCodeAt(0)) | 0;
21
+ }
22
+ return (hash >>> 0).toString(36);
23
+ };
24
+ const withRevisedAt = (doc, revisedAt) => revisedAt != null ? { ...doc, revisedAt } : doc;
25
+ const resolveTerms = (cfg) => {
26
+ if (cfg === false) {
27
+ return null;
28
+ }
29
+ const terms = cfg?.terms ?? OWLMEANS_TERMS_URL;
30
+ const privacy = cfg?.privacy ?? OWLMEANS_PRIVACY_URL;
31
+ const cookies = cfg?.cookies ?? OWLMEANS_COOKIES_URL;
32
+ const documents = [
33
+ withRevisedAt({ key: 'terms', href: terms, i18nKey: 'login.terms.terms' }, cfg?.revisions?.terms),
34
+ ];
35
+ if (cfg?.billing) {
36
+ const billing = typeof cfg.billing === 'string' ? { href: cfg.billing } : cfg.billing;
37
+ documents.push(withRevisedAt({ key: 'billing', href: billing.href, i18nKey: 'login.terms.billing' }, cfg?.revisions?.billing ?? billing.revisedAt));
38
+ }
39
+ if (cfg?.product) {
40
+ documents.push(withRevisedAt({
41
+ key: 'product', href: cfg.product.href, i18nKey: 'login.terms.product',
42
+ params: { product: cfg.product.name },
43
+ }, cfg.product.revisedAt ?? cfg?.revisions?.product));
44
+ }
45
+ for (const custom of cfg?.documents ?? []) {
46
+ documents.push(withRevisedAt({
47
+ key: custom.key, href: custom.href,
48
+ ...(typeof custom.label === 'string' ? { label: custom.label } : {}),
49
+ ...(custom.label != null && typeof custom.label !== 'string' ? { labelMap: custom.label } : {}),
50
+ ...(custom.i18nKey != null ? { i18nKey: custom.i18nKey } : {}),
51
+ }, custom.revisedAt ?? cfg?.revisions?.[custom.key]));
52
+ }
53
+ // Cookies is disclosed as ITS OWN notice only when the app named a cookie policy explicitly, or
54
+ // when terms/privacy/cookies are ALL still the OwlMeans defaults — never as a silent extra on an
55
+ // app that customized terms and privacy but left cookies unset.
56
+ const allDefault = terms === OWLMEANS_TERMS_URL && privacy === OWLMEANS_PRIVACY_URL
57
+ && cookies === OWLMEANS_COOKIES_URL;
58
+ const includeCookies = cfg?.cookies != null || allDefault;
59
+ const notices = [
60
+ withRevisedAt({ key: 'privacy', href: privacy, i18nKey: 'login.terms.privacy' }, cfg?.revisions?.privacy),
61
+ ...(includeCookies
62
+ ? [withRevisedAt({ key: 'cookies', href: cookies, i18nKey: 'login.terms.cookies' }, cfg?.revisions?.cookies)]
63
+ : []),
64
+ ];
65
+ // The digest input for a plain config (no billing/product/custom/revisions) is BYTE-IDENTICAL to
66
+ // the pre-existing `[terms, privacy, cookies]` — see `terms.spec.ts`.
67
+ const digestInput = [terms, privacy, cookies];
68
+ for (const doc of documents) {
69
+ if (doc.key !== 'terms') {
70
+ digestInput.push(`${doc.key}=${doc.href}`);
71
+ }
72
+ }
73
+ for (const doc of [...documents, ...notices]) {
74
+ if (doc.revisedAt != null) {
75
+ digestInput.push(`${doc.key}@${doc.revisedAt}`);
76
+ }
77
+ }
78
+ const showRevision = cfg?.showRevision === true;
79
+ const revisedAtValues = documents
80
+ .map(doc => doc.revisedAt)
81
+ .filter((value) => value != null);
82
+ const revisedAt = showRevision && revisedAtValues.length > 0
83
+ ? revisedAtValues.reduce((max, value) => value > max ? value : max)
84
+ : undefined;
85
+ return {
86
+ required: cfg?.required ?? true,
87
+ terms, privacy, cookies,
88
+ version: cfg?.version ?? digest(digestInput),
89
+ // Translations are alternate destinations for this canonical revision, not a new agreement.
90
+ documents: documents.map(doc => withLocalizedHrefs(doc, cfg)),
91
+ notices: notices.map(doc => withLocalizedHrefs(doc, cfg)),
92
+ showRevision,
93
+ ...(revisedAt != null ? { revisedAt } : {}),
94
+ };
95
+ };
96
+ const withLocalizedHrefs = (doc, cfg) => {
97
+ const hrefMap = cfg?.localizedHrefs?.[doc.key];
98
+ return hrefMap != null ? { ...doc, hrefMap } : doc;
99
+ };
100
+ const termsHrefOf = (doc, locale) => {
101
+ const localized = locale != null
102
+ ? doc.hrefMap?.[locale] ?? doc.hrefMap?.[locale.toLowerCase()]
103
+ ?? doc.hrefMap?.[locale.split('-')[0].toLowerCase()]
104
+ : undefined;
105
+ return typeof localized === 'string' && localized.trim() !== '' ? localized : doc.href;
106
+ };
107
+ const termsAccepted = (resolved) => {
108
+ if (resolved == null || !resolved.required) {
109
+ return true;
110
+ }
111
+ try {
112
+ return window.localStorage.getItem(LOGIN_TERMS_STORAGE) === resolved.version;
113
+ }
114
+ catch {
115
+ // Storage can be unavailable (private modes, blocked cookies). Refusing to remember is not
116
+ // refusing to proceed: the user is asked again, every time, which is the safe direction.
117
+ return false;
118
+ }
119
+ };
120
+ const acceptTerms = (resolved, accepted) => {
121
+ if (resolved == null) {
122
+ return;
123
+ }
124
+ try {
125
+ if (accepted) {
126
+ window.localStorage.setItem(LOGIN_TERMS_STORAGE, resolved.version);
127
+ }
128
+ else {
129
+ window.localStorage.removeItem(LOGIN_TERMS_STORAGE);
130
+ }
131
+ }
132
+ catch { /* nothing to remember if storage was never available */ }
133
+ };
134
+ const termsLabelResolver = (translate, locale) => (doc) => {
135
+ const fromMap = doc.labelMap != null
136
+ ? (locale != null ? doc.labelMap[locale] : undefined) ?? Object.values(doc.labelMap)[0]
137
+ : undefined;
138
+ let label = doc.label ?? fromMap
139
+ ?? (doc.i18nKey != null ? translate(doc.i18nKey, DEFAULT_LABEL[doc.key] ?? doc.key) : doc.key);
140
+ if (doc.params != null) {
141
+ for (const [key, value] of Object.entries(doc.params)) {
142
+ label = label.split(`{{${key}}}`).join(value);
143
+ }
144
+ }
145
+ return label;
146
+ };
147
+ const termsAcceptanceOf = (resolved, locale) => ({
148
+ documents: resolved.documents.map(doc => ({ key: doc.key, href: termsHrefOf(doc, locale), revisedAt: doc.revisedAt })),
149
+ notices: resolved.notices.map(doc => ({ key: doc.key, href: termsHrefOf(doc, locale), revisedAt: doc.revisedAt })),
150
+ version: resolved.version,
151
+ ...(locale != null ? { locale } : {}),
152
+ });
153
+ const termsDeferred = (ctx) => ctx.hasService(LOGIN_SERVICE)
154
+ && ctx.service(LOGIN_SERVICE).steps()
155
+ .some(step => step.confirmsTerms === true && ctx.hasEntrypoint(step.entrypoint));
156
+ /**
157
+ * Format a list of documents into sentence parts, via `Intl.ListFormat` when it exists ("A, B and
158
+ * C" in the caller's own locale and conjunction word), falling back to a plain ", "/" and " join
159
+ * when it does not (an old runtime with no `Intl.ListFormat`).
160
+ */
161
+ const formatDocumentList = (docs, locale, resolveLabel) => {
162
+ if (docs.length < 1) {
163
+ return [];
164
+ }
165
+ const labels = docs.map(resolveLabel);
166
+ if (typeof Intl !== 'undefined' && typeof Intl.ListFormat === 'function') {
167
+ let cursor = 0;
168
+ const formatter = new Intl.ListFormat(locale, { style: 'long', type: 'conjunction' });
169
+ return formatter.formatToParts(labels).map(part => {
170
+ if (part.type === 'element') {
171
+ const doc = docs[cursor++];
172
+ return { text: part.value, href: termsHrefOf(doc, locale), documentKey: doc.key };
173
+ }
174
+ return { text: part.value };
175
+ });
176
+ }
177
+ const parts = [];
178
+ docs.forEach((doc, index) => {
179
+ if (index > 0) {
180
+ parts.push({ text: index === docs.length - 1 ? ' and ' : ', ' });
181
+ }
182
+ parts.push({ text: labels[index], href: termsHrefOf(doc, locale), documentKey: doc.key });
183
+ });
184
+ return parts;
185
+ };
186
+ const termsSentence = (template, resolved, locale, resolveLabel) => {
187
+ const byKey = (key) => resolved.documents.find(doc => doc.key === key) ?? resolved.notices.find(doc => doc.key === key);
188
+ const placeholder = /\{\{(documents|notices|terms|privacy|cookies)\}\}/g;
189
+ const parts = [];
190
+ let lastIndex = 0;
191
+ let match;
192
+ while ((match = placeholder.exec(template)) != null) {
193
+ if (match.index > lastIndex) {
194
+ parts.push({ text: template.slice(lastIndex, match.index) });
195
+ }
196
+ const token = match[1];
197
+ if (token === 'documents') {
198
+ parts.push(...formatDocumentList(resolved.documents, locale, resolveLabel));
199
+ }
200
+ else if (token === 'notices') {
201
+ parts.push(...formatDocumentList(resolved.notices, locale, resolveLabel));
202
+ }
203
+ else {
204
+ const doc = byKey(token);
205
+ if (doc != null) {
206
+ parts.push({ text: resolveLabel(doc), href: termsHrefOf(doc, locale), documentKey: doc.key });
207
+ }
208
+ }
209
+ lastIndex = placeholder.lastIndex;
210
+ }
211
+ if (lastIndex < template.length) {
212
+ parts.push({ text: template.slice(lastIndex) });
213
+ }
214
+ return parts;
215
+ };
216
+ return {
217
+ resolveTerms, termsAccepted, acceptTerms, termsLabelResolver, termsHrefOf, termsAcceptanceOf, termsDeferred, termsSentence,
218
+ };
219
+ };
220
+ export const loginTermsHelper = createLoginTermsHelper();
221
+ /** @deprecated compat:factory-refactor — use `loginTermsHelper.resolveTerms(…)` */
222
+ export const resolveTerms = (cfg) => loginTermsHelper.resolveTerms(cfg);
223
+ /** @deprecated compat:factory-refactor — use `loginTermsHelper.termsAccepted(…)` */
224
+ export const termsAccepted = (resolved) => loginTermsHelper.termsAccepted(resolved);
225
+ /** @deprecated compat:factory-refactor — use `loginTermsHelper.acceptTerms(…)` */
226
+ export const acceptTerms = (resolved, accepted) => loginTermsHelper.acceptTerms(resolved, accepted);
227
+ /** @deprecated compat:factory-refactor — use `loginTermsHelper.termsLabelResolver(…)` */
228
+ export const termsLabelResolver = (translate, locale) => loginTermsHelper.termsLabelResolver(translate, locale);
229
+ /** @deprecated compat:factory-refactor — use `loginTermsHelper.termsAcceptanceOf(…)` */
230
+ export const termsAcceptanceOf = (resolved, locale) => loginTermsHelper.termsAcceptanceOf(resolved, locale);
231
+ /** @deprecated compat:factory-refactor — use `loginTermsHelper.termsDeferred(…)` */
232
+ export const termsDeferred = (ctx) => loginTermsHelper.termsDeferred(ctx);
233
+ /** @deprecated compat:factory-refactor — use `loginTermsHelper.termsSentence(…)` */
234
+ export const termsSentence = (template, resolved, locale, resolveLabel) => loginTermsHelper.termsSentence(template, resolved, locale, resolveLabel);
235
+ //# sourceMappingURL=terms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terms.js","sourceRoot":"","sources":["../../src/login/terms.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
+ import type { ComponentType, CSSProperties, ReactNode } from 'react';
1
2
  import type { LazyService, BasicContext } from '@owlmeans/context';
3
+ import type { LoginMethodEmphasis, LoginScreenConfig, LoginTermsConfig } from '@owlmeans/config';
4
+ import { LoginOutcome } from './consts.js';
2
5
  /**
3
6
  * The context a login plugin is handed.
4
7
  *
@@ -24,21 +27,6 @@ export interface LoginEnv {
24
27
  /** The window that opened this one is still reachable (COOP severs it permanently). */
25
28
  hasOpener: boolean;
26
29
  }
27
- /** What a stage did, and therefore what the caller must do next. */
28
- export declare enum LoginOutcome {
29
- /** The plugin took the flow over and it is finished. The caller does nothing more. */
30
- Handled = "handled",
31
- /** The plugin did nothing — the caller carries on with its ordinary continuation. */
32
- Passed = "passed",
33
- /** The browser is leaving this document. The caller must not navigate or render. */
34
- Redirected = "redirected",
35
- /** Cannot proceed without a fresh user gesture — the caller renders a sign-in control. */
36
- Gesture = "gesture",
37
- /** Authenticated, but with no channel back to the window that started the flow. */
38
- Orphaned = "orphaned",
39
- /** The attempt ended with no token (blocked window, user closed it, provider refused). */
40
- Failed = "failed"
41
- }
42
30
  export interface LoginRequest {
43
31
  /** Where the login flow starts — a resolved dispatcher path, or the current address. */
44
32
  url: string;
@@ -48,9 +36,26 @@ export interface LoginRequest {
48
36
  * fallback is a full page load of {@link url}.
49
37
  */
50
38
  navigate?: () => void | Promise<void>;
51
- /** Entrypoint alias to return to after login. */
39
+ /**
40
+ * Entrypoint alias to land on once sign-in completes.
41
+ *
42
+ * The facade parks it (`suspendLanding` from `@owlmeans/client-flow`, the record
43
+ * `resumeSuspendedFlow` reads) once the preconditions have passed, and holds {@link navigate}
44
+ * until the write has landed — so the continuation still goes to the dispatcher, whose ordinary
45
+ * post-sign-in landing (`landAfterLogin`: landing hooks, pending steps such as a consent screen,
46
+ * then the suspended landing) ends on this screen. It is never a navigation target of its own:
47
+ * a guarded screen reached before sign-in renders signed out. An attempt that ends without a
48
+ * sign-in (`Blocked`, `Failed`, `Gesture`) discards the parked screen again. A caller with no
49
+ * {@link navigate} leaves the document at once, so its parked screen is best-effort only.
50
+ */
52
51
  target?: string;
53
52
  }
53
+ export interface LogoutRequest {
54
+ /** Where a surrogate logout runs — a resolved surrogate path. */
55
+ url: string;
56
+ /** The in-app continuation once the local session is gone. */
57
+ navigate?: () => void | Promise<void>;
58
+ }
54
59
  /**
55
60
  * A pluggable login mechanic — WHERE the authorization round trip runs.
56
61
  *
@@ -86,6 +91,124 @@ export interface LoginPlugin {
86
91
  authorize: (ctx: LoginContext, url: string, env: LoginEnv) => Promise<LoginOutcome>;
87
92
  /** A bearer token was issued in this document — decide where it goes. */
88
93
  complete: (ctx: LoginContext, token: string, env: LoginEnv) => Promise<LoginOutcome>;
94
+ /**
95
+ * This document ALREADY holds a session — decide whether it is useful here.
96
+ *
97
+ * Absent means `Passed`: keep it and carry on, which is what an ordinary tab has always done.
98
+ * A surrogate hands it back to its opener instead, which is the whole point: a popup that
99
+ * discovers an existing session must sign the framed application in, not display the
100
+ * application to itself.
101
+ *
102
+ * Deliberately not `complete`: "a token was just issued here" and "a token was already here"
103
+ * are different facts, and a silent-refresh plugin will need to tell them apart.
104
+ */
105
+ resume?: (ctx: LoginContext, token: string, env: LoginEnv) => Promise<LoginOutcome>;
106
+ /**
107
+ * Start logout from a user gesture.
108
+ *
109
+ * MUST open any window synchronously, for exactly the reason `begin` must — logging out of a
110
+ * framed application opens a window too. Implement as a NON-async function.
111
+ */
112
+ logout?: (ctx: LoginContext, request: LogoutRequest, env: LoginEnv) => Promise<LoginOutcome>;
113
+ /** The local session is gone in this document — decide what to tell whom. */
114
+ logoutComplete?: (ctx: LoginContext, env: LoginEnv) => Promise<LoginOutcome>;
115
+ }
116
+ /**
117
+ * Something that must be true before a login flow may start.
118
+ *
119
+ * SYNCHRONOUS on purpose. `begin` must not cross a microtask boundary before a plugin's
120
+ * `window.open`, or the popup blocker eats the window. A precondition that has to ask a server
121
+ * belongs somewhere else entirely.
122
+ *
123
+ * Returning false stops the flow and resolves `begin` as {@link LoginOutcome.Gesture} — which
124
+ * already means "cannot proceed without a fresh user gesture; render a control", and is exactly
125
+ * the state a user is in after a blocking dialog has opened over the page.
126
+ */
127
+ export interface LoginPrecondition {
128
+ alias: string;
129
+ /** Higher runs first. Defaults to 0. */
130
+ priority?: number;
131
+ check: (ctx: LoginContext, request: LoginRequest, env: LoginEnv) => boolean;
132
+ }
133
+ /** What a source needs in order to describe the methods it offers. */
134
+ export interface LoginMethodContext {
135
+ context: LoginContext;
136
+ env: LoginEnv;
137
+ /** In-app navigation, when a component supplied it. */
138
+ navigate?: (alias: string, params?: Record<string, string>) => void | Promise<void>;
139
+ }
140
+ /**
141
+ * One way to sign in, as the screen renders it.
142
+ *
143
+ * `start` is what a button calls. It MUST be callable synchronously from a click — branch on
144
+ * `env.embedded && !env.surrogate` first and open any window before the first `await`.
145
+ */
146
+ export interface LoginMethod {
147
+ id: string;
148
+ /** Set when an `AuthenticationPlugin` drives this method. */
149
+ type?: string;
150
+ label?: string;
151
+ i18nKey?: string;
152
+ icon?: string;
153
+ order?: number;
154
+ emphasis?: LoginMethodEmphasis;
155
+ restricted?: boolean;
156
+ params?: Record<string, string>;
157
+ start: (ctx: LoginMethodContext) => Promise<LoginOutcome>;
158
+ }
159
+ export interface LoginMethodSource {
160
+ alias: string;
161
+ list: (ctx: LoginMethodContext) => LoginMethod[];
162
+ }
163
+ /** What every rendering of the sign-in screen accepts, whatever its UI family. */
164
+ export interface LoginScreenProps {
165
+ /** The one thing a consuming application is expected to supply. */
166
+ Logo?: ComponentType<{
167
+ className?: string;
168
+ }> | ReactNode;
169
+ title?: ReactNode;
170
+ subtitle?: ReactNode;
171
+ /**
172
+ * `(key, defaultValue) => string`. A prop, never an implicit context read: a component that
173
+ * reaches for an i18n provider crashes the whole render in an app mounted without one.
174
+ */
175
+ translate?: (key: string, defaultValue: string) => string;
176
+ /**
177
+ * The current language, for `Intl.ListFormat`, locale-keyed document labels and explicit hrefs.
178
+ *
179
+ * A prop for the same reason `translate` is: a component that reaches for an i18n context
180
+ * directly crashes the whole render in an app mounted without one.
181
+ */
182
+ locale?: string;
183
+ /** Replace or reorder what the resolver produced. */
184
+ methods?: LoginMethod[] | ((methods: LoginMethod[]) => LoginMethod[]);
185
+ terms?: LoginTermsConfig | false;
186
+ config?: LoginScreenConfig;
187
+ /** Replaces the composed credit line entirely. */
188
+ footer?: ReactNode;
189
+ className?: string;
190
+ containerClassName?: string;
191
+ /**
192
+ * Inline overrides for the screen's outer box.
193
+ *
194
+ * It exists because the outer box carries its viewport height inline rather than as a utility
195
+ * class, and an escape hatch that a class can no longer provide has to be provided some other
196
+ * way. See the note on the screen itself.
197
+ */
198
+ style?: CSSProperties;
199
+ }
200
+ export type LoginScreenComponent = ComponentType<LoginScreenProps>;
201
+ /**
202
+ * A way to surface a `begin`/`logout` outcome that has no inline screen to render it on.
203
+ *
204
+ * A header "Log in"/"Log out" control (`useLogin`/`useLogout`) fires the facade and forgets the
205
+ * result — it renders nothing of its own, unlike the sign-in screen, which already shows
206
+ * `loginAttemptError` inline. Registering one is how a UI package (`web-panel`, `mui-panel`) gives
207
+ * that control a way to speak — e.g. a toast when {@link LoginOutcome.Blocked} fires. Unregistered,
208
+ * it is silence, which is what a non-DOM host and a screen-mounted flow both already have.
209
+ */
210
+ export interface LoginNotifier {
211
+ (outcome: LoginOutcome, env: LoginEnv): void;
89
212
  }
90
213
  export interface LoginService extends LazyService {
91
214
  registerPlugin: (plugin: LoginPlugin) => void;
@@ -93,12 +216,96 @@ export interface LoginService extends LazyService {
93
216
  plugin: (env?: LoginEnv) => LoginPlugin;
94
217
  /** The environment the cascade is currently selecting on. */
95
218
  env: () => LoginEnv;
219
+ /** Something that must hold before any flow starts. Checked synchronously, in `begin`. */
220
+ registerPrecondition: (precondition: LoginPrecondition) => void;
221
+ /** A source of offerable sign-in methods, scoped to this context. */
222
+ registerMethodSource: (source: LoginMethodSource) => void;
223
+ methods: (ctx: LoginMethodContext) => LoginMethod[];
224
+ /**
225
+ * The screen a dispatcher renders when it cannot proceed.
226
+ *
227
+ * A slot rather than an import, because a relying party (`web-oidc-rp`) must never depend on a
228
+ * UI family (`web-panel` / `mui-panel`) — that edge would force every relying party to pick one.
229
+ */
230
+ registerScreen: (screen: LoginScreenComponent) => void;
231
+ screen: () => LoginScreenComponent | null;
232
+ /** See {@link LoginNotifier}. Replaces any previously registered notifier. */
233
+ registerNotifier: (notifier: LoginNotifier) => void;
234
+ /** Register a post-login step. Replace-by-alias, priority-sorted (higher first). */
235
+ registerStep: (step: LoginStep) => void;
236
+ /** Every registered step, priority-sorted (higher first). */
237
+ steps: () => LoginStep[];
238
+ /** Register a hook that observes a freshly authenticated token. Replace-by-alias, priority-sorted. */
239
+ onLanded: (hook: LoginLandingHook) => void;
240
+ /** Every registered landing hook, priority-sorted (higher first). */
241
+ landingHooks: () => LoginLandingHook[];
96
242
  enter: () => void;
97
243
  begin: (request: LoginRequest) => Promise<LoginOutcome>;
98
244
  authorize: (url: string) => Promise<LoginOutcome>;
99
245
  complete: (token: string) => Promise<LoginOutcome>;
246
+ resume: (token: string) => Promise<LoginOutcome>;
247
+ logout: (request: LogoutRequest) => Promise<LoginOutcome>;
248
+ logoutComplete: () => Promise<LoginOutcome>;
100
249
  /** Adopt an issued bearer token as this context's authentication. */
101
250
  adopt: (token: string) => Promise<void>;
251
+ /** Drop this document's authentication. The single de-adoption path. */
252
+ revoke: () => Promise<void>;
253
+ }
254
+ /**
255
+ * The value shape a landing's `params`/`query` carries.
256
+ *
257
+ * Matches `FlowPayload` (`@owlmeans/flow`) and the `AbstractRequest` params/query fields
258
+ * (`@owlmeans/entrypoint`) structurally, rather than the narrower `Record<string, string>`, so a
259
+ * `LoginLanding` can be built directly from either a `SuspendedLandingRecord`'s query or a
260
+ * dispatcher's own forwarded `params`/`query` without a lossy re-cast at every call site.
261
+ */
262
+ export type LoginLandingParams = Record<string, string | number | boolean | undefined | null>;
263
+ /**
264
+ * A step to run after sign-in completes, before the ordinary landing.
265
+ *
266
+ * Registered by a package that must collect something from a freshly authenticated user before
267
+ * the application resumes wherever it was headed — the marketing-consent screen is the first
268
+ * consumer. `landAfterLogin`/`continueLogin` (./land.js) walk the registered steps in priority
269
+ * order and land on the first one whose `pending` resolves `true`.
270
+ */
271
+ export interface LoginStep {
272
+ alias: string;
273
+ /** Higher runs first. Defaults to 0. */
274
+ priority?: number;
275
+ /** Entrypoint alias to navigate to while this step is pending. */
276
+ entrypoint: string;
277
+ /** Extra query parameters for the landing, alongside the step's own alias. */
278
+ query?: (ctx: LoginContext) => LoginLandingParams | undefined;
279
+ /** Whether this step still has something to collect from the signed-in user. */
280
+ pending: (ctx: LoginContext) => Promise<boolean>;
281
+ /**
282
+ * This step is where the Terms confirmation lives instead of on the sign-in screen.
283
+ *
284
+ * `termsDeferred(ctx)` (`./terms.js`) is true only while a step with this flag is both
285
+ * registered AND bound (`ctx.hasEntrypoint(step.entrypoint)`) — an app that registers the step
286
+ * but never binds its screen keeps the sign-in checkbox, fail-closed.
287
+ */
288
+ confirmsTerms?: boolean;
289
+ /**
290
+ * A `pending` that throws or times out counts as PENDING rather than "not pending".
291
+ *
292
+ * The default (`undefined`/`false`) keeps every existing step fail-open, exactly as before —
293
+ * this flag is for a step whose whole point is to gate the landing on something the person must
294
+ * do (Terms confirmation), where a broken read must show the step rather than let it through.
295
+ */
296
+ required?: boolean;
297
+ }
298
+ /**
299
+ * Observes that a freshly authenticated token has landed — unlike {@link LoginStep}, it never
300
+ * blocks the landing, it only reacts to it, once per distinct token.
301
+ *
302
+ * MUST never throw uncaught: the caller (`landAfterLogin`) bounds and swallows every hook's
303
+ * failure, on a timeout as well as a rejection, so a broken hook can never block sign-in.
304
+ */
305
+ export interface LoginLandingHook {
306
+ alias: string;
307
+ priority?: number;
308
+ landed: (ctx: LoginContext) => Promise<void>;
102
309
  }
103
310
  export interface LoginServiceAppend {
104
311
  login: () => LoginService;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/login/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAElE;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;AAE5C;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,yEAAyE;IACzE,SAAS,EAAE,OAAO,CAAA;IAClB,kGAAkG;IAClG,QAAQ,EAAE,OAAO,CAAA;IACjB,yFAAyF;IACzF,SAAS,EAAE,OAAO,CAAA;IAClB,uFAAuF;IACvF,SAAS,EAAE,OAAO,CAAA;CACnB;AAED,oEAAoE;AACpE,oBAAY,YAAY;IACtB,sFAAsF;IACtF,OAAO,YAAY;IACnB,qFAAqF;IACrF,MAAM,WAAW;IACjB,oFAAoF;IACpF,UAAU,eAAe;IACzB,0FAA0F;IAC1F,OAAO,YAAY;IACnB,mFAAmF;IACnF,QAAQ,aAAa;IACrB,0FAA0F;IAC1F,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,wFAAwF;IACxF,GAAG,EAAE,MAAM,CAAA;IACX;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,uDAAuD;IACvD,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,YAAY,KAAK,OAAO,CAAA;IAEtD;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,KAAK,IAAI,CAAA;IAElD;;;;;OAKG;IACH,KAAK,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;IAEzF,qEAAqE;IACrE,SAAS,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;IAEnF,yEAAyE;IACzE,QAAQ,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;CACrF;AAED,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,cAAc,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAA;IAC7C,uEAAuE;IACvE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,KAAK,WAAW,CAAA;IACvC,6DAA6D;IAC7D,GAAG,EAAE,MAAM,QAAQ,CAAA;IAInB,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,KAAK,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;IACvD,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;IACjD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;IAClD,qEAAqE;IACrE,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACxC;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,YAAY,CAAA;CAC1B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/login/types.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,2 @@
1
- /** What a stage did, and therefore what the caller must do next. */
2
- export var LoginOutcome;
3
- (function (LoginOutcome) {
4
- /** The plugin took the flow over and it is finished. The caller does nothing more. */
5
- LoginOutcome["Handled"] = "handled";
6
- /** The plugin did nothing — the caller carries on with its ordinary continuation. */
7
- LoginOutcome["Passed"] = "passed";
8
- /** The browser is leaving this document. The caller must not navigate or render. */
9
- LoginOutcome["Redirected"] = "redirected";
10
- /** Cannot proceed without a fresh user gesture — the caller renders a sign-in control. */
11
- LoginOutcome["Gesture"] = "gesture";
12
- /** Authenticated, but with no channel back to the window that started the flow. */
13
- LoginOutcome["Orphaned"] = "orphaned";
14
- /** The attempt ended with no token (blocked window, user closed it, provider refused). */
15
- LoginOutcome["Failed"] = "failed";
16
- })(LoginOutcome || (LoginOutcome = {}));
1
+ export {};
17
2
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/login/types.ts"],"names":[],"mappings":"AA6BA,oEAAoE;AACpE,MAAM,CAAN,IAAY,YAaX;AAbD,WAAY,YAAY;IACtB,sFAAsF;IACtF,mCAAmB,CAAA;IACnB,qFAAqF;IACrF,iCAAiB,CAAA;IACjB,oFAAoF;IACpF,yCAAyB,CAAA;IACzB,0FAA0F;IAC1F,mCAAmB,CAAA;IACnB,mFAAmF;IACnF,qCAAqB,CAAA;IACrB,0FAA0F;IAC1F,iCAAiB,CAAA;AACnB,CAAC,EAbW,YAAY,KAAZ,YAAY,QAavB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/login/types.ts"],"names":[],"mappings":""}
@@ -23,7 +23,7 @@ export const makeControl = (context, callback) => {
23
23
  control.beforeAuthenticate = plugins[control.type].beforeAuthenticate;
24
24
  control.afterAuthenticate = plugins[control.type].afterAuthenticate;
25
25
  const module = context.entrypoint(AUTHEN_INIT);
26
- const [allowance] = await module.call({ body: control.request });
26
+ const allowance = await module.call({ body: control.request });
27
27
  control.allowance = allowance;
28
28
  control.updateStage(AuthenticationStage.Authenticate);
29
29
  },
@@ -56,8 +56,8 @@ export const makeControl = (context, callback) => {
56
56
  }
57
57
  // We return back unwrapped challenge
58
58
  credentials.challenge = control.allowance?.challenge;
59
- const [token, status] = await context.entrypoint(AUTHEN_AUTHEN)
60
- .call({ body: credentials });
59
+ const { value: token, outcome: status } = await context.entrypoint(AUTHEN_AUTHEN)
60
+ .invoke({ body: credentials });
61
61
  if (status === EntrypointOutcome.Ok && token.token != null
62
62
  && token.token !== '' && control.afterAuthenticate != null) {
63
63
  const resultingCred = makeEnvelopeModel(token.token, EnvelopeKind.Token).message();
@@ -1 +1 @@
1
- {"version":3,"file":"control.js","sourceRoot":"","sources":["../../../../src/manager/components/authentication/control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"control.js","sourceRoot":"","sources":["../../../../src/manager/components/authentication/control.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import type { AllowanceRequest, AllowanceResponse, AuthCredentials, AuthenticationStage, AuthenticationType, AuthToken } from '@owlmeans/auth';
2
- import type { ModuleContextParams } from '@owlmeans/client';
2
+ import type { EntrypointContextParams } from '@owlmeans/client';
3
3
  import type { FC } from 'react';
4
4
  import type { ClientContext } from '@owlmeans/client';
5
5
  import type { FlowService } from '@owlmeans/client-flow';
6
6
  import type { ResilientError } from '@owlmeans/error';
7
7
  export type ClientAuthType = AuthenticationType | string;
8
- export interface AuthenticationProps extends ModuleContextParams {
8
+ export interface AuthenticationProps extends EntrypointContextParams {
9
9
  type?: ClientAuthType;
10
10
  callback?: AuthenticationCallback;
11
11
  source?: string;