@betterportal/auth-default 10.6.35 → 10.7.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 (45) hide show
  1. package/lib/account.d.ts.map +1 -1
  2. package/lib/account.js +12 -14
  3. package/lib/account.js.map +1 -1
  4. package/lib/accountUI.d.ts +3 -3
  5. package/lib/accountUI.d.ts.map +1 -1
  6. package/lib/accountUI.js +13 -6
  7. package/lib/accountUI.js.map +1 -1
  8. package/lib/bp-contracts/org.betterportal.auth.default.json +1 -97
  9. package/lib/plugins/service-betterportal-auth-default/.bp-generated/registry.d.ts +0 -36
  10. package/lib/plugins/service-betterportal-auth-default/.bp-generated/registry.d.ts.map +1 -1
  11. package/lib/plugins/service-betterportal-auth-default/bp-routes/login/_renderer.bootstrap5/GET.d.ts +2 -2
  12. package/lib/plugins/service-betterportal-auth-default/bp-routes/login/_renderer.bootstrap5/GET.d.ts.map +1 -1
  13. package/lib/plugins/service-betterportal-auth-default/bp-routes/login/_renderer.bootstrap5/GET.js +27 -14
  14. package/lib/plugins/service-betterportal-auth-default/bp-routes/login/_renderer.bootstrap5/GET.js.map +1 -1
  15. package/lib/plugins/service-betterportal-auth-default/bp-routes/register/_renderer.bootstrap5/GET.d.ts +2 -2
  16. package/lib/plugins/service-betterportal-auth-default/bp-routes/register/_renderer.bootstrap5/GET.d.ts.map +1 -1
  17. package/lib/plugins/service-betterportal-auth-default/bp-routes/register/_renderer.bootstrap5/GET.js +15 -24
  18. package/lib/plugins/service-betterportal-auth-default/bp-routes/register/_renderer.bootstrap5/GET.js.map +1 -1
  19. package/lib/plugins/service-betterportal-auth-default/bp-routes/social/GET.js +1 -1
  20. package/lib/plugins/service-betterportal-auth-default/bp-routes/social/GET.js.map +1 -1
  21. package/lib/plugins/service-betterportal-auth-default/bp-routes/social/_renderer.bootstrap5/GET.d.ts +2 -2
  22. package/lib/plugins/service-betterportal-auth-default/bp-routes/social/_renderer.bootstrap5/GET.d.ts.map +1 -1
  23. package/lib/plugins/service-betterportal-auth-default/bp-routes/social/_renderer.bootstrap5/GET.js +10 -4
  24. package/lib/plugins/service-betterportal-auth-default/bp-routes/social/_renderer.bootstrap5/GET.js.map +1 -1
  25. package/lib/plugins/service-betterportal-auth-default/bp-routes/users/GET.js +3 -3
  26. package/lib/plugins/service-betterportal-auth-default/bp-routes/users/GET.js.map +1 -1
  27. package/lib/plugins/service-betterportal-auth-default/bp-routes/users/_renderer.bootstrap5/GET.d.ts +2 -2
  28. package/lib/plugins/service-betterportal-auth-default/bp-routes/users/_renderer.bootstrap5/GET.d.ts.map +1 -1
  29. package/lib/plugins/service-betterportal-auth-default/bp-routes/users/_renderer.bootstrap5/GET.js +8 -2
  30. package/lib/plugins/service-betterportal-auth-default/bp-routes/users/_renderer.bootstrap5/GET.js.map +1 -1
  31. package/lib/plugins/service-betterportal-auth-default/loginFlow.d.ts +0 -15
  32. package/lib/plugins/service-betterportal-auth-default/loginFlow.d.ts.map +1 -1
  33. package/lib/plugins/service-betterportal-auth-default/loginFlow.js +3 -29
  34. package/lib/plugins/service-betterportal-auth-default/loginFlow.js.map +1 -1
  35. package/lib/plugins/service-betterportal-auth-default/logoutFlow.js +1 -1
  36. package/lib/plugins/service-betterportal-auth-default/logoutFlow.js.map +1 -1
  37. package/lib/plugins/service-betterportal-auth-default/registrationFlow.d.ts +0 -3
  38. package/lib/plugins/service-betterportal-auth-default/registrationFlow.d.ts.map +1 -1
  39. package/lib/plugins/service-betterportal-auth-default/registrationFlow.js +3 -18
  40. package/lib/plugins/service-betterportal-auth-default/registrationFlow.js.map +1 -1
  41. package/lib/schemas/service-betterportal-auth-default.json +1 -1
  42. package/lib/schemas/service-betterportal-auth-default.plugin.json +1 -1
  43. package/lib/social.js +3 -3
  44. package/lib/social.js.map +1 -1
  45. package/package.json +6 -5
@@ -163,8 +163,6 @@ export declare const registry: {
163
163
  schemas: {
164
164
  response: import("anyvali").ObjectSchema<{
165
165
  challenge: import("anyvali").OptionalSchema<import("anyvali").BaseSchema<unknown, import("@betterportal/framework").JsonObject>>;
166
- accountUrl: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
167
- socialUrl: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
168
166
  status: import("anyvali").EnumSchema<readonly ["ok", "error"]>;
169
167
  message: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
170
168
  accessToken: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
@@ -177,11 +175,8 @@ export declare const registry: {
177
175
  name: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
178
176
  }>>;
179
177
  requiresFirstAdmin: import("anyvali").OptionalSchema<import("anyvali").BoolSchema>;
180
- firstAdminUrl: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
181
178
  alreadyLoggedIn: import("anyvali").OptionalSchema<import("anyvali").BoolSchema>;
182
179
  loggedOut: import("anyvali").OptionalSchema<import("anyvali").BoolSchema>;
183
- logoutUrl: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
184
- nextUrl: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
185
180
  }>;
186
181
  query: import("anyvali").ObjectSchema<{
187
182
  action: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
@@ -199,8 +194,6 @@ export declare const registry: {
199
194
  }, Record<string, unknown>, {
200
195
  status: "error" | "ok";
201
196
  challenge?: import("@betterportal/framework").JsonObject | undefined;
202
- accountUrl?: string | undefined;
203
- socialUrl?: string | undefined;
204
197
  message?: string | undefined;
205
198
  accessToken?: string | undefined;
206
199
  refreshToken?: string | undefined;
@@ -212,11 +205,8 @@ export declare const registry: {
212
205
  name?: string | undefined;
213
206
  } | undefined;
214
207
  requiresFirstAdmin?: boolean | undefined;
215
- firstAdminUrl?: string | undefined;
216
208
  alreadyLoggedIn?: boolean | undefined;
217
209
  loggedOut?: boolean | undefined;
218
- logoutUrl?: string | undefined;
219
- nextUrl?: string | undefined;
220
210
  }, import("../index.js").PluginFeature, {
221
211
  [x: string]: unknown;
222
212
  }>;
@@ -262,8 +252,6 @@ export declare const registry: {
262
252
  schemas: {
263
253
  response: import("anyvali").ObjectSchema<{
264
254
  challenge: import("anyvali").OptionalSchema<import("anyvali").BaseSchema<unknown, import("@betterportal/framework").JsonObject>>;
265
- accountUrl: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
266
- socialUrl: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
267
255
  status: import("anyvali").EnumSchema<readonly ["ok", "error"]>;
268
256
  message: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
269
257
  accessToken: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
@@ -276,11 +264,8 @@ export declare const registry: {
276
264
  name: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
277
265
  }>>;
278
266
  requiresFirstAdmin: import("anyvali").OptionalSchema<import("anyvali").BoolSchema>;
279
- firstAdminUrl: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
280
267
  alreadyLoggedIn: import("anyvali").OptionalSchema<import("anyvali").BoolSchema>;
281
268
  loggedOut: import("anyvali").OptionalSchema<import("anyvali").BoolSchema>;
282
- logoutUrl: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
283
- nextUrl: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
284
269
  }>;
285
270
  query: import("anyvali").ObjectSchema<{
286
271
  action: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
@@ -303,8 +288,6 @@ export declare const registry: {
303
288
  }, {
304
289
  status: "error" | "ok";
305
290
  challenge?: import("@betterportal/framework").JsonObject | undefined;
306
- accountUrl?: string | undefined;
307
- socialUrl?: string | undefined;
308
291
  message?: string | undefined;
309
292
  accessToken?: string | undefined;
310
293
  refreshToken?: string | undefined;
@@ -316,11 +299,8 @@ export declare const registry: {
316
299
  name?: string | undefined;
317
300
  } | undefined;
318
301
  requiresFirstAdmin?: boolean | undefined;
319
- firstAdminUrl?: string | undefined;
320
302
  alreadyLoggedIn?: boolean | undefined;
321
303
  loggedOut?: boolean | undefined;
322
- logoutUrl?: string | undefined;
323
- nextUrl?: string | undefined;
324
304
  }, import("../index.js").PluginFeature, {
325
305
  [x: string]: unknown;
326
306
  }>;
@@ -349,8 +329,6 @@ export declare const registry: {
349
329
  }, Record<string, unknown>, {
350
330
  status: "error" | "ok";
351
331
  challenge?: import("@betterportal/framework").JsonObject | undefined;
352
- accountUrl?: string | undefined;
353
- socialUrl?: string | undefined;
354
332
  message?: string | undefined;
355
333
  accessToken?: string | undefined;
356
334
  refreshToken?: string | undefined;
@@ -362,11 +340,8 @@ export declare const registry: {
362
340
  name?: string | undefined;
363
341
  } | undefined;
364
342
  requiresFirstAdmin?: boolean | undefined;
365
- firstAdminUrl?: string | undefined;
366
343
  alreadyLoggedIn?: boolean | undefined;
367
344
  loggedOut?: boolean | undefined;
368
- logoutUrl?: string | undefined;
369
- nextUrl?: string | undefined;
370
345
  }, import("../index.js").PluginFeature, {
371
346
  [x: string]: unknown;
372
347
  }>;
@@ -380,8 +355,6 @@ export declare const registry: {
380
355
  }, {
381
356
  status: "error" | "ok";
382
357
  challenge?: import("@betterportal/framework").JsonObject | undefined;
383
- accountUrl?: string | undefined;
384
- socialUrl?: string | undefined;
385
358
  message?: string | undefined;
386
359
  accessToken?: string | undefined;
387
360
  refreshToken?: string | undefined;
@@ -393,11 +366,8 @@ export declare const registry: {
393
366
  name?: string | undefined;
394
367
  } | undefined;
395
368
  requiresFirstAdmin?: boolean | undefined;
396
- firstAdminUrl?: string | undefined;
397
369
  alreadyLoggedIn?: boolean | undefined;
398
370
  loggedOut?: boolean | undefined;
399
- logoutUrl?: string | undefined;
400
- nextUrl?: string | undefined;
401
371
  }, import("../index.js").PluginFeature, {
402
372
  [x: string]: unknown;
403
373
  }>;
@@ -640,7 +610,6 @@ export declare const registry: {
640
610
  isFirstAdmin: import("anyvali").BoolSchema;
641
611
  }>>;
642
612
  registrationOpen: import("anyvali").OptionalSchema<import("anyvali").BoolSchema>;
643
- loginUrl: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
644
613
  }>;
645
614
  query: import("anyvali").ObjectSchema<{
646
615
  next: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
@@ -658,7 +627,6 @@ export declare const registry: {
658
627
  isFirstAdmin: boolean;
659
628
  } | undefined;
660
629
  registrationOpen?: boolean | undefined;
661
- loginUrl?: string | undefined;
662
630
  }, import("../index.js").PluginFeature, {
663
631
  [x: string]: unknown;
664
632
  }>;
@@ -699,7 +667,6 @@ export declare const registry: {
699
667
  isFirstAdmin: import("anyvali").BoolSchema;
700
668
  }>>;
701
669
  registrationOpen: import("anyvali").OptionalSchema<import("anyvali").BoolSchema>;
702
- loginUrl: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
703
670
  }>;
704
671
  query: import("anyvali").ObjectSchema<{
705
672
  next: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
@@ -730,7 +697,6 @@ export declare const registry: {
730
697
  isFirstAdmin: boolean;
731
698
  } | undefined;
732
699
  registrationOpen?: boolean | undefined;
733
- loginUrl?: string | undefined;
734
700
  }, import("../index.js").PluginFeature, {
735
701
  [x: string]: unknown;
736
702
  }>;
@@ -762,7 +728,6 @@ export declare const registry: {
762
728
  isFirstAdmin: boolean;
763
729
  } | undefined;
764
730
  registrationOpen?: boolean | undefined;
765
- loginUrl?: string | undefined;
766
731
  }, import("../index.js").PluginFeature, {
767
732
  [x: string]: unknown;
768
733
  }>;
@@ -783,7 +748,6 @@ export declare const registry: {
783
748
  isFirstAdmin: boolean;
784
749
  } | undefined;
785
750
  registrationOpen?: boolean | undefined;
786
- loginUrl?: string | undefined;
787
751
  }, import("../index.js").PluginFeature, {
788
752
  [x: string]: unknown;
789
753
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/plugins/service-betterportal-auth-default/.bp-generated/registry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,wBAAwB,MAAM,kDAAkD,CAAC;AAK7F,OAAO,KAAK,sBAAsB,MAAM,gDAAgD,CAAC;AAEzF,OAAO,KAAK,4BAA4B,MAAM,6DAA6D,CAAC;AAI5G,OAAO,KAAK,uBAAuB,MAAM,iDAAiD,CAAC;AAO3F,OAAO,KAAK,yBAAyB,MAAM,mDAAmD,CAAC;AAM/F,OAAO,KAAK,uBAAuB,MAAM,iDAAiD,CAAC;AAI3F,OAAO,KAAK,sBAAsB,MAAM,gDAAgD,CAAC;AAGzF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8KW,CAAC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/plugins/service-betterportal-auth-default/.bp-generated/registry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,wBAAwB,MAAM,kDAAkD,CAAC;AAK7F,OAAO,KAAK,sBAAsB,MAAM,gDAAgD,CAAC;AAEzF,OAAO,KAAK,4BAA4B,MAAM,6DAA6D,CAAC;AAI5G,OAAO,KAAK,uBAAuB,MAAM,iDAAiD,CAAC;AAO3F,OAAO,KAAK,yBAAyB,MAAM,mDAAmD,CAAC;AAM/F,OAAO,KAAK,uBAAuB,MAAM,iDAAiD,CAAC;AAI3F,OAAO,KAAK,sBAAsB,MAAM,gDAAgD,CAAC;AAGzF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8KW,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { HtmlRenderable } from "@betterportal/framework";
1
+ import { type HtmlRenderable, type ViewRenderContext } from "@betterportal/framework";
2
2
  import type { ResponseData } from "../../../loginFlow.js";
3
- export declare function render(data: ResponseData): HtmlRenderable;
3
+ export declare function render(data: ResponseData, ctx: ViewRenderContext): HtmlRenderable;
4
4
  //# sourceMappingURL=GET.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GET.d.ts","sourceRoot":"","sources":["../../../../../../src/plugins/service-betterportal-auth-default/bp-routes/login/_renderer.bootstrap5/GET.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAgD1D,wBAAgB,MAAM,CAAC,IAAI,EAAE,YAAY,GAAG,cAAc,CAmHzD"}
1
+ {"version":3,"file":"GET.d.ts","sourceRoot":"","sources":["../../../../../../src/plugins/service-betterportal-auth-default/bp-routes/login/_renderer.bootstrap5/GET.tsx"],"names":[],"mappings":"AAGA,OAAO,EAA0B,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC9G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAgD1D,wBAAgB,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,iBAAiB,GAAG,cAAc,CA+HjF"}
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "jsx-htmx/jsx-runtime";
2
2
  /** @jsxImportSource jsx-htmx */
3
3
  import { renderChallenge } from "../../../../../accountUI.js";
4
4
  import { js } from "jsx-htmx";
5
+ import { resolveAppAuthRedirect } from "@betterportal/framework";
5
6
  function loginScript() {
6
7
  // IIFE - htmx executes swapped <script> content as a plain script, where a
7
8
  // top-level `return` inside a bare block is a SyntaxError.
@@ -12,7 +13,7 @@ function loginScript() {
12
13
  // the correct HX-Location post-login.
13
14
  const nextInput = form.querySelector('input[name="next"]');
14
15
  if (nextInput) {
15
- nextInput.value = new URLSearchParams(window.location.search).get("next") || "";
16
+ nextInput.value = new URLSearchParams(window.location.search).get("next") || nextInput.value;
16
17
  }
17
18
  form.addEventListener("htmx:before:request", () => {
18
19
  const errEl = document.getElementById("bp-login-error");
@@ -47,38 +48,50 @@ function loginScript() {
47
48
  });
48
49
  })()`);
49
50
  }
50
- export function render(data) {
51
- if (data.challenge)
52
- return renderChallenge(data.challenge, data.accountUrl ?? "/account");
51
+ export function render(data, ctx) {
52
+ const account = ctx.routeUrl({ path: "/account", method: "POST" });
53
+ const accountPage = ctx.routeUrl({ path: "/account" });
54
+ const social = ctx.routeUrl({ path: "/social" });
55
+ const logout = ctx.routeUrl({ path: "/login", query: { action: "logout" } });
56
+ const requestedNext = typeof ctx.request.query.next === "string" ? ctx.request.query.next : undefined;
57
+ const next = resolveAppAuthRedirect(ctx, data.loggedOut ? "afterLogout" : "afterLogin", requestedNext);
58
+ const register = ctx.routeUrl({ path: "/register", query: { next: requestedNext } });
59
+ if (data.challenge) {
60
+ if (!account?.absoluteApiPath)
61
+ throw new Error("Account service route is unavailable");
62
+ return renderChallenge(data.challenge, account.absoluteApiPath, "login.complete", next);
63
+ }
53
64
  if (data.loggedOut) {
54
- const next = data.nextUrl || "/";
55
65
  return (_jsx("div", { class: "container py-5", style: "max-width: 420px;", children: _jsx("div", { class: "card border-0 shadow-sm", children: _jsxs("div", { class: "card-body text-center", children: [_jsx("h3", { class: "card-title mb-1", children: "Signed out" }), _jsx("p", { class: "text-secondary small mb-4", children: "You have been signed out." }), _jsx("a", { class: "btn btn-primary w-100", href: next, children: "Continue" })] }) }) }));
56
66
  }
57
67
  // Zero users -> this deployment still needs its first admin. Soft-redirect to
58
68
  // the register view in-shell; URL bar follows via hx-push-url.
59
- if (data.requiresFirstAdmin && data.firstAdminUrl) {
60
- return (_jsx("div", { "hx-get": data.firstAdminUrl, "hx-trigger": "load", "hx-target": "#bp-main", "hx-swap": "innerHTML", "hx-push-url": "/register", children: _jsx("div", { class: "d-flex justify-content-center py-5", children: _jsx("div", { class: "spinner-border", role: "status", children: _jsx("span", { class: "visually-hidden", children: "Redirecting to first-admin setup..." }) }) }) }));
69
+ if (data.requiresFirstAdmin && register?.absoluteViewPath) {
70
+ return (_jsx("div", { "hx-get": register.absoluteViewPath, "hx-trigger": "load", "hx-target": "#bp-main", "hx-swap": "innerHTML", "hx-push-url": register.uiPath ?? false, children: _jsx("div", { class: "d-flex justify-content-center py-5", children: _jsx("div", { class: "spinner-border", role: "status", children: _jsx("span", { class: "visually-hidden", children: "Redirecting to first-admin setup..." }) }) }) }));
61
71
  }
62
72
  // Already signed in with an explicit destination - go there immediately,
63
73
  // no interstitial. The shell maps the tenant path to its owning service.
64
- if (data.alreadyLoggedIn && data.nextUrl) {
65
- const next = data.nextUrl;
74
+ if (data.alreadyLoggedIn && requestedNext) {
66
75
  return (_jsxs("div", { class: "d-flex justify-content-center py-5", children: [_jsx("div", { class: "spinner-border", role: "status", children: _jsx("span", { class: "visually-hidden", children: "Redirecting..." }) }), _jsx("script", { children: js(`window.htmx.ajax("GET", ${JSON.stringify(next)}, { target: "#bp-main", swap: "innerHTML", push: ${JSON.stringify(next)} })`) })] }));
67
76
  }
68
77
  // Request already carried a valid token - show the signed-in state with a
69
78
  // way out (logout path from app config) instead of a pointless login form.
70
79
  if (data.alreadyLoggedIn) {
71
80
  const displayName = data.user?.name || data.user?.username || data.user?.email || "your account";
72
- return (_jsxs("div", { class: "container py-5", style: "max-width: 420px;", children: [_jsx("div", { class: "card border-0 shadow-sm", children: _jsxs("div", { class: "card-body text-center", children: [_jsx("h3", { class: "card-title mb-1", children: "Already signed in" }), _jsxs("p", { class: "text-secondary small mb-4", children: ["You are signed in as ", _jsx("strong", { children: displayName }), "."] }), _jsx("button", { id: "bp-login-continue", class: "btn btn-primary w-100 mb-2", children: "Continue" }), _jsx("button", { class: "btn btn-outline-secondary w-100", "hx-get": data.logoutUrl || "/login?action=logout", "hx-target": "#bp-main", "hx-swap": "innerHTML", "hx-push-url": "/login?action=logout", children: "Sign out" })] }) }), _jsx("script", { children: js(`(() => {
81
+ return (_jsxs("div", { class: "container py-5", style: "max-width: 420px;", children: [_jsx("div", { class: "card border-0 shadow-sm", children: _jsxs("div", { class: "card-body text-center", children: [_jsx("h3", { class: "card-title mb-1", children: "Already signed in" }), _jsxs("p", { class: "text-secondary small mb-4", children: ["You are signed in as ", _jsx("strong", { children: displayName }), "."] }), _jsx("button", { id: "bp-login-continue", "data-next": next, class: "btn btn-primary w-100 mb-2", children: "Continue" }), _jsx("button", { class: "btn btn-outline-secondary w-100", "hx-get": logout?.absoluteViewPath ?? undefined, "hx-target": "#bp-main", "hx-swap": "innerHTML", "hx-push-url": logout?.uiPath ?? false, children: "Sign out" })] }) }), _jsx("script", { children: js(`(() => {
73
82
  // Honour ?next= the same way the login form does, and soft-navigate
74
83
  // inside the shell. The shell's config_request hook maps the tenant
75
84
  // path to its owning service origin.
76
- const next = new URLSearchParams(window.location.search).get("next") || "/";
77
- document.getElementById("bp-login-continue")?.addEventListener("click", () => {
78
- window.htmx.ajax("GET", next, { target: "#bp-main", swap: "innerHTML", push: next });
85
+ const button = document.getElementById("bp-login-continue");
86
+ const next = button?.dataset.next;
87
+ button?.addEventListener("click", () => {
88
+ if (next) window.htmx.ajax("GET", next, { target: "#bp-main", swap: "innerHTML", push: next });
79
89
  });
80
90
  })()`) })] }));
81
91
  }
82
- return (_jsxs("div", { class: "container py-5", style: "max-width: 420px;", children: [_jsx("div", { class: "card border-0 shadow-sm", children: _jsxs("div", { class: "card-body", children: [_jsx("h3", { class: "card-title mb-1 text-center", children: "Sign in" }), _jsx("p", { class: "text-secondary text-center small mb-4", children: "BetterPortal admin" }), _jsxs("form", { id: "bp-login-form", "hx-post": "this", "hx-headers": '{"Accept":"application/json"}', "hx-swap": "none", onsubmit: "return window.bpLoginSubmit ? window.bpLoginSubmit(event) : false", "hx-on::response-error": "const xhr=event.detail.xhr;let body=null;try{body=JSON.parse(xhr.responseText)}catch(e){};const errEl=document.getElementById('bp-login-error');if(errEl){errEl.textContent=(body&&body.message)||('Login failed (HTTP '+xhr.status+')');errEl.classList.remove('d-none')}", children: [_jsxs("div", { class: "mb-3", children: [_jsx("label", { class: "form-label", children: "Username *" }), _jsx("input", { type: "text", class: "form-control", name: "username", autocomplete: "username", required: true, autofocus: true })] }), _jsxs("div", { class: "mb-3", children: [_jsx("label", { class: "form-label", children: "Password *" }), _jsx("input", { type: "password", class: "form-control", name: "password", autocomplete: "current-password", required: true })] }), _jsx("input", { type: "hidden", name: "next", value: "" }), _jsx("div", { class: "alert alert-danger d-none", id: "bp-login-error" }), _jsx("button", { type: "submit", class: "btn btn-primary w-100", children: "Sign in" })] }), data.socialUrl ? _jsx("a", { class: "d-block mt-3", href: data.socialUrl, "hx-get": data.socialUrl, "hx-target": "#bp-main", children: "Sign in with Google, Microsoft or GitHub" }) : null, data.accountUrl ? _jsx("a", { class: "d-block mt-3", href: data.accountUrl, "hx-get": data.accountUrl, "hx-target": "#bp-main", children: "Register or recover your account" }) : null] }) }), _jsx("script", { children: loginScript() })] }));
92
+ const login = ctx.routeUrl({ path: "/login", method: "POST" })?.absoluteApiPath;
93
+ if (!login)
94
+ throw new Error("Login action route is unavailable");
95
+ return (_jsxs("div", { class: "container py-5", style: "max-width: 420px;", children: [_jsx("div", { class: "card border-0 shadow-sm", children: _jsxs("div", { class: "card-body", children: [_jsx("h3", { class: "card-title mb-1 text-center", children: "Sign in" }), _jsx("p", { class: "text-secondary text-center small mb-4", children: "BetterPortal admin" }), _jsxs("form", { id: "bp-login-form", "data-factor-endpoint": account?.absoluteApiPath ?? undefined, "hx-post": login, "hx-headers": '{"Accept":"application/json"}', "hx-swap": "none", onsubmit: "return window.bpLoginSubmit ? window.bpLoginSubmit(event) : false", "hx-on::response-error": "const xhr=event.detail.xhr;let body=null;try{body=JSON.parse(xhr.responseText)}catch(e){};const errEl=document.getElementById('bp-login-error');if(errEl){errEl.textContent=(body&&body.message)||('Login failed (HTTP '+xhr.status+')');errEl.classList.remove('d-none')}", children: [_jsxs("div", { class: "mb-3", children: [_jsx("label", { class: "form-label", children: "Username *" }), _jsx("input", { type: "text", class: "form-control", name: "username", autocomplete: "username", required: true, autofocus: true })] }), _jsxs("div", { class: "mb-3", children: [_jsx("label", { class: "form-label", children: "Password *" }), _jsx("input", { type: "password", class: "form-control", name: "password", autocomplete: "current-password", required: true })] }), _jsx("input", { type: "hidden", name: "next", value: next }), _jsx("div", { class: "alert alert-danger d-none", id: "bp-login-error" }), _jsx("button", { type: "submit", class: "btn btn-primary w-100", children: "Sign in" })] }), social?.uiPath ? _jsx("a", { class: "d-block mt-3", href: social.uiPath, "hx-get": social.absoluteViewPath ?? undefined, "hx-target": "#bp-main", children: "Sign in with Google, Microsoft or GitHub" }) : null, accountPage?.uiPath ? _jsx("a", { class: "d-block mt-3", href: accountPage.uiPath, "hx-get": accountPage.absoluteViewPath ?? undefined, "hx-target": "#bp-main", children: "Register or recover your account" }) : null] }) }), _jsx("script", { children: loginScript() })] }));
83
96
  }
84
97
  //# sourceMappingURL=GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../../src/plugins/service-betterportal-auth-default/bp-routes/login/_renderer.bootstrap5/GET.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../../src/plugins/service-betterportal-auth-default/bp-routes/login/_renderer.bootstrap5/GET.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { HtmlRenderable } from "@betterportal/framework";
1
+ import type { HtmlRenderable, ViewRenderContext } from "@betterportal/framework";
2
2
  import type { ResponseData } from "../../../registrationFlow.js";
3
- export declare function render(data: ResponseData): HtmlRenderable;
3
+ export declare function render(data: ResponseData, ctx: ViewRenderContext): HtmlRenderable;
4
4
  //# sourceMappingURL=GET.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GET.d.ts","sourceRoot":"","sources":["../../../../../../src/plugins/service-betterportal-auth-default/bp-routes/register/_renderer.bootstrap5/GET.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AA8FjE,wBAAgB,MAAM,CAAC,IAAI,EAAE,YAAY,GAAG,cAAc,CAwCzD"}
1
+ {"version":3,"file":"GET.d.ts","sourceRoot":"","sources":["../../../../../../src/plugins/service-betterportal-auth-default/bp-routes/register/_renderer.bootstrap5/GET.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAoFjE,wBAAgB,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,iBAAiB,GAAG,cAAc,CAyCjF"}
@@ -1,19 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "jsx-htmx/jsx-runtime";
2
2
  /** @jsxImportSource jsx-htmx */
3
3
  import { js } from "jsx-htmx";
4
- /** Tenant-relative path (+query) of an absolute self-origin URL, for hx-push-url. */
5
- function pushPathOf(url, fallback) {
6
- if (!url)
7
- return fallback;
8
- try {
9
- const parsed = new URL(url);
10
- return parsed.pathname + parsed.search;
11
- }
12
- catch {
13
- return fallback;
14
- }
15
- }
16
- /** Client-side confirm-password gate; everything else is server-rendered. */
17
4
  function registerScript() {
18
5
  // IIFE - htmx executes swapped <script> content as a plain script, where a
19
6
  // top-level `return` inside a bare block is a SyntaxError.
@@ -36,28 +23,32 @@ function registerScript() {
36
23
  function redirectStub(url, pushUrl, label) {
37
24
  return (_jsx("div", { "hx-get": url, "hx-trigger": "load delay:1200ms", "hx-target": "#bp-main", "hx-swap": "innerHTML", "hx-push-url": pushUrl, children: _jsx("div", { class: "d-flex justify-content-center py-3", children: _jsx("div", { class: "spinner-border spinner-border-sm", role: "status", children: _jsx("span", { class: "visually-hidden", children: label }) }) }) }));
38
25
  }
39
- function renderForm(data) {
40
- return (_jsxs("div", { class: "container py-5", style: "max-width: 420px;", children: [_jsx("div", { class: "card border-0 shadow-sm", children: _jsxs("div", { class: "card-body", children: [_jsx("h3", { class: "card-title mb-1 text-center", children: "Create first admin" }), _jsx("p", { class: "text-secondary text-center small mb-4", children: "This deployment has no users yet. The account you create here becomes the platform administrator." }), _jsxs("form", { id: "bp-register-form", "hx-post": "this", "hx-target": "#bp-main", "hx-swap": "innerHTML", children: [_jsxs("div", { class: "mb-3", children: [_jsx("label", { class: "form-label", children: "Deployment setup token" }), _jsx("input", { class: "form-control", type: "password", name: "setupToken", required: true, autocomplete: "off" })] }), _jsxs("div", { class: "mb-3", children: [_jsx("label", { class: "form-label", children: "Username *" }), _jsx("input", { type: "text", class: "form-control", name: "username", autocomplete: "username", required: true, autofocus: true })] }), _jsxs("div", { class: "mb-3", children: [_jsx("label", { class: "form-label", children: "Email" }), _jsx("input", { type: "email", class: "form-control", name: "email", autocomplete: "email" })] }), _jsxs("div", { class: "mb-3", children: [_jsxs("label", { class: "form-label", children: ["Password * ", _jsx("span", { class: "text-secondary small", children: "(min 12 chars)" })] }), _jsx("input", { type: "password", class: "form-control", name: "password", autocomplete: "new-password", minlength: "12", required: true })] }), _jsxs("div", { class: "mb-3", children: [_jsx("label", { class: "form-label", children: "Confirm password *" }), _jsx("input", { type: "password", class: "form-control", id: "bp-register-confirm", autocomplete: "new-password", minlength: "12", required: true })] }), _jsx("div", { class: `alert alert-danger ${data.status === "error" && data.message ? "" : "d-none"}`, id: "bp-register-error", children: data.status === "error" ? (data.message ?? "") : "" }), _jsx("button", { type: "submit", class: "btn btn-primary w-100", children: "Create admin account" })] })] }) }), _jsx("script", { children: registerScript() })] }));
26
+ function renderForm(data, ctx) {
27
+ const target = ctx.routeUrl({ path: "/register", method: "POST", query: { next: typeof ctx.request.query.next === "string" ? ctx.request.query.next : undefined } })?.absoluteApiPath;
28
+ if (!target)
29
+ throw new Error("Registration action route is unavailable");
30
+ return (_jsxs("div", { class: "container py-5", style: "max-width: 420px;", children: [_jsx("div", { class: "card border-0 shadow-sm", children: _jsxs("div", { class: "card-body", children: [_jsx("h3", { class: "card-title mb-1 text-center", children: "Create first admin" }), _jsx("p", { class: "text-secondary text-center small mb-4", children: "This deployment has no users yet. The account you create here becomes the platform administrator." }), _jsxs("form", { id: "bp-register-form", "hx-post": target, "hx-target": "#bp-main", "hx-swap": "innerHTML", children: [_jsxs("div", { class: "mb-3", children: [_jsx("label", { class: "form-label", children: "Deployment setup token" }), _jsx("input", { class: "form-control", type: "password", name: "setupToken", required: true, autocomplete: "off" })] }), _jsxs("div", { class: "mb-3", children: [_jsx("label", { class: "form-label", children: "Username *" }), _jsx("input", { type: "text", class: "form-control", name: "username", autocomplete: "username", required: true, autofocus: true })] }), _jsxs("div", { class: "mb-3", children: [_jsx("label", { class: "form-label", children: "Email" }), _jsx("input", { type: "email", class: "form-control", name: "email", autocomplete: "email" })] }), _jsxs("div", { class: "mb-3", children: [_jsxs("label", { class: "form-label", children: ["Password * ", _jsx("span", { class: "text-secondary small", children: "(min 12 chars)" })] }), _jsx("input", { type: "password", class: "form-control", name: "password", autocomplete: "new-password", minlength: "12", required: true })] }), _jsxs("div", { class: "mb-3", children: [_jsx("label", { class: "form-label", children: "Confirm password *" }), _jsx("input", { type: "password", class: "form-control", id: "bp-register-confirm", autocomplete: "new-password", minlength: "12", required: true })] }), _jsx("div", { class: `alert alert-danger ${data.status === "error" && data.message ? "" : "d-none"}`, id: "bp-register-error", children: data.status === "error" ? (data.message ?? "") : "" }), _jsx("button", { type: "submit", class: "btn btn-primary w-100", children: "Create admin account" })] })] }) }), _jsx("script", { children: registerScript() })] }));
41
31
  }
42
- export function render(data) {
32
+ export function render(data, ctx) {
33
+ const login = ctx.routeUrl({ path: "/login", query: { next: typeof ctx.request.query.next === "string" ? ctx.request.query.next : undefined } });
43
34
  // POST success - server-rendered confirmation, then on to sign-in.
44
35
  if (data.status === "ok" && data.user) {
45
- return (_jsx("div", { class: "container py-5", style: "max-width: 420px;", children: _jsx("div", { class: "card border-0 shadow-sm", children: _jsxs("div", { class: "card-body text-center", children: [_jsx("h3", { class: "card-title mb-2", children: "Admin created" }), _jsxs("div", { class: "alert alert-success mb-3", children: [_jsx("strong", { children: data.user.username }), " is now the platform administrator."] }), _jsx("p", { class: "text-secondary small mb-0", children: "Taking you to sign in..." }), data.loginUrl
46
- ? redirectStub(data.loginUrl, pushPathOf(data.loginUrl, "/login"), "Redirecting to sign in...")
47
- : _jsx("a", { class: "btn btn-primary mt-3", href: "/login", children: "Sign in" })] }) }) }));
36
+ return (_jsx("div", { class: "container py-5", style: "max-width: 420px;", children: _jsx("div", { class: "card border-0 shadow-sm", children: _jsxs("div", { class: "card-body text-center", children: [_jsx("h3", { class: "card-title mb-2", children: "Admin created" }), _jsxs("div", { class: "alert alert-success mb-3", children: [_jsx("strong", { children: data.user.username }), " is now the platform administrator."] }), _jsx("p", { class: "text-secondary small mb-0", children: "Taking you to sign in..." }), login?.absoluteViewPath && login.uiPath
37
+ ? redirectStub(login.absoluteViewPath, login.uiPath, "Redirecting to sign in...")
38
+ : _jsx("p", { class: "text-secondary mt-3", children: "Sign in through your app to continue." })] }) }) }));
48
39
  }
49
40
  // POST validation error (rendered via the 400 status view) - form + message.
50
41
  if (data.status === "error") {
51
- return renderForm(data);
42
+ return renderForm(data, ctx);
52
43
  }
53
44
  // GET with users already present - registrations are closed; bounce to login.
54
45
  if (!data.registrationOpen) {
55
- if (data.loginUrl) {
56
- return redirectStub(data.loginUrl, pushPathOf(data.loginUrl, "/login"), "Redirecting to sign in...");
46
+ if (login?.absoluteViewPath && login.uiPath) {
47
+ return redirectStub(login.absoluteViewPath, login.uiPath, "Redirecting to sign in...");
57
48
  }
58
- return (_jsx("div", { class: "container py-5", style: "max-width: 420px;", children: _jsxs("div", { class: "alert alert-secondary", children: ["Registration is closed. ", _jsx("a", { href: "/login", children: "Sign in" }), " instead."] }) }));
49
+ return (_jsx("div", { class: "container py-5", style: "max-width: 420px;", children: _jsx("div", { class: "alert alert-secondary", children: "Registration is closed. Sign in through your app to continue." }) }));
59
50
  }
60
51
  // GET, zero users - the first-admin form.
61
- return renderForm(data);
52
+ return renderForm(data, ctx);
62
53
  }
63
54
  //# sourceMappingURL=GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../../src/plugins/service-betterportal-auth-default/bp-routes/register/_renderer.bootstrap5/GET.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../../src/plugins/service-betterportal-auth-default/bp-routes/register/_renderer.bootstrap5/GET.tsx"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ export default createHandler({ response: ResponseSchema, query: QuerySchema }, (
14
14
  ctx.responseHeaders?.set("Cache-Control", "no-store");
15
15
  ctx.responseHeaders?.set("Referrer-Policy", "no-referrer");
16
16
  try {
17
- return { status: "ok", endpoint: ctx.routeUrl?.("social.index", { absolute: true }) ?? "/social", signedIn: !!ctx.user, code: String(ctx.query.code ?? ""), state: String(ctx.query.state ?? ""), error: String(ctx.query.error ?? ""), connections: socialConnections(ctx.plugin.runtime, { tenantId: ctx.tenant.id, appId: ctx.app.id }).map(c => ({ id: c.id, title: c.kind })) };
17
+ return { status: "ok", signedIn: !!ctx.user, code: String(ctx.query.code ?? ""), state: String(ctx.query.state ?? ""), error: String(ctx.query.error ?? ""), connections: socialConnections(ctx.plugin.runtime, { tenantId: ctx.tenant.id, appId: ctx.app.id }).map(c => ({ id: c.id, title: c.kind })) };
18
18
  }
19
19
  catch (error) {
20
20
  if (!(error instanceof AuthError))
@@ -1 +1 @@
1
- {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../src/plugins/service-betterportal-auth-default/bp-routes/social/GET.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../src/plugins/service-betterportal-auth-default/bp-routes/social/GET.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAmB,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,CAAC;AAC9C,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;AACzD,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACxD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,CAAU,CAAC;AACvI,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3I,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAC/C,eAAe,aAAa,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,GAAG,EAAc,EAAE;IACjG,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;IAClH,IAAI,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;IAC5S,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,YAAY,SAAS,CAAC;YAAE,MAAM,KAAK,CAAC;QAC/C,GAAG,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IACtE,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { HtmlRenderable } from "@betterportal/framework";
2
- export declare function render(data: Record<string, any>): HtmlRenderable;
1
+ import { type HtmlRenderable, type ViewRenderContext } from "@betterportal/framework";
2
+ export declare function render(data: Record<string, any>, ctx: ViewRenderContext): HtmlRenderable;
3
3
  //# sourceMappingURL=GET.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GET.d.ts","sourceRoot":"","sources":["../../../../../../src/plugins/service-betterportal-auth-default/bp-routes/social/_renderer.bootstrap5/GET.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,cAAc,CAmChE"}
1
+ {"version":3,"file":"GET.d.ts","sourceRoot":"","sources":["../../../../../../src/plugins/service-betterportal-auth-default/bp-routes/social/_renderer.bootstrap5/GET.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA0B,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC9G,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,iBAAiB,GAAG,cAAc,CAuCxF"}
@@ -1,8 +1,14 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "jsx-htmx/jsx-runtime";
2
2
  /** @jsxImportSource jsx-htmx */
3
3
  import { js } from "jsx-htmx";
4
- export function render(data) {
5
- return _jsxs("section", { id: "bp-social-ui", class: "container py-4", style: "max-width:540px", "data-endpoint": data.endpoint, "data-code": data.code, "data-state": data.state, children: [_jsx("h2", { children: data.signedIn ? "Link a sign-in provider" : "Sign in" }), _jsx("p", { role: "status", children: data.message ?? (data.error ? "The provider declined sign-in. Try again." : "") }), data.connections.map((c) => _jsxs("button", { class: "btn btn-outline-primary m-2", "data-connection": c.id, "data-action": data.signedIn ? "link" : "start", children: ["Continue with ", c.title] })), _jsx("script", { children: js(`(() => {
4
+ import { resolveAppAuthRedirect } from "@betterportal/framework";
5
+ export function render(data, ctx) {
6
+ const afterLogin = resolveAppAuthRedirect(ctx, "afterLogin", typeof ctx.request.query.next === "string" ? ctx.request.query.next : undefined);
7
+ const endpoint = ctx.routeUrl({ path: "/social", method: "POST" })?.absoluteApiPath;
8
+ const account = ctx.routeUrl({ path: "/account", method: "POST" })?.absoluteApiPath;
9
+ if (!endpoint || !account)
10
+ throw new Error("Social authentication service routes are unavailable");
11
+ return _jsxs("section", { id: "bp-social-ui", class: "container py-4", style: "max-width:540px", "data-endpoint": endpoint, "data-account-endpoint": account, "data-after-login": afterLogin, "data-code": data.code, "data-state": data.state, children: [_jsx("h2", { children: data.signedIn ? "Link a sign-in provider" : "Sign in" }), _jsx("p", { role: "status", children: data.message ?? (data.error ? "The provider declined sign-in. Try again." : "") }), data.connections.map((c) => _jsxs("button", { class: "btn btn-outline-primary m-2", "data-connection": c.id, "data-action": data.signedIn ? "link" : "start", children: ["Continue with ", c.title] })), _jsx("script", { children: js(`(() => {
6
12
  const root = document.getElementById("bp-social-ui"); if (!root) return;
7
13
  const status = root.querySelector('[role="status"]');
8
14
  const api = window.BetterPortalAuth;
@@ -24,11 +30,11 @@ export function render(data) {
24
30
  let result = await send({ action: "complete", id, secret, code: root.dataset.code });
25
31
  if (result.challenge) {
26
32
  const factor = await api.factor(result.challenge); if (!factor) { status.textContent = "Sign-in cancelled."; return; }
27
- result = await send({ action: "login.complete", id: result.challenge.id, secret: result.challenge.secret, ...factor }, result.accountUrl);
33
+ result = await send({ action: "login.complete", id: result.challenge.id, secret: result.challenge.secret, ...factor }, root.dataset.accountEndpoint);
28
34
  }
29
35
  status.textContent = result.message || "Signed in.";
30
36
  if (result.recoveryCodes?.length) { const pre = document.createElement("pre"); pre.textContent = "Save your recovery codes:\\n" + result.recoveryCodes.join("\\n"); status.append(pre); }
31
- if (result.next) { const link = document.createElement("a"); link.href = result.next; link.textContent = "Continue"; link.className = "btn btn-primary d-block"; status.append(link); }
37
+ if (result.authenticated && root.dataset.afterLogin) { const link = document.createElement("a"); link.href = root.dataset.afterLogin; link.textContent = "Continue"; link.className = "btn btn-primary d-block"; status.append(link); }
32
38
  } catch (error) { status.textContent = error.message; }
33
39
  })();
34
40
  })()`) })] });
@@ -1 +1 @@
1
- {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../../src/plugins/service-betterportal-auth-default/bp-routes/social/_renderer.bootstrap5/GET.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAChC,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAE9B,MAAM,UAAU,MAAM,CAAC,IAAyB;IAC9C,OAAO,mBAAS,EAAE,EAAC,cAAc,EAAC,KAAK,EAAC,gBAAgB,EAAC,KAAK,EAAC,iBAAiB,mBAAgB,IAAI,CAAC,QAAQ,eAAa,IAAI,CAAC,IAAI,gBAAc,IAAI,CAAC,KAAK,aACzJ,uBAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,SAAS,GAAM,EAAA,YAAG,IAAI,EAAC,QAAQ,YAAE,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,EAAE,CAAC,GAAK,EACrK,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,kBAAQ,KAAK,EAAC,6BAA6B,qBAAkB,CAAC,CAAC,EAAE,iBAAe,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,+BAAiB,CAAC,CAAC,KAAK,IAAU,CAAC,EACrL,2BAAS,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA6BP,CAAC,GAAU,IACR,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../../src/plugins/service-betterportal-auth-default/bp-routes/social/_renderer.bootstrap5/GET.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAChC,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAA+C,MAAM,yBAAyB,CAAC;AAC9G,MAAM,UAAU,MAAM,CAAC,IAAyB,EAAE,GAAsB;IACtE,MAAM,UAAU,GAAG,sBAAsB,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC9I,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,CAAC;IACpF,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,CAAC;IACpF,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IACnG,OAAO,mBAAS,EAAE,EAAC,cAAc,EAAC,KAAK,EAAC,gBAAgB,EAAC,KAAK,EAAC,iBAAiB,mBAAgB,QAAQ,2BAAyB,OAAO,sBAAoB,UAAU,eAAa,IAAI,CAAC,IAAI,gBAAc,IAAI,CAAC,KAAK,aAClN,uBAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,SAAS,GAAM,EAAA,YAAG,IAAI,EAAC,QAAQ,YAAE,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,EAAE,CAAC,GAAK,EACrK,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,kBAAQ,KAAK,EAAC,6BAA6B,qBAAkB,CAAC,CAAC,EAAE,iBAAe,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,+BAAiB,CAAC,CAAC,KAAK,IAAU,CAAC,EACrL,2BAAS,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA6BP,CAAC,GAAU,IACR,CAAC;AACb,CAAC"}
@@ -21,9 +21,9 @@ export default createHandler({ response: ResponseSchema, query: QuerySchema }, a
21
21
  const users = page.slice(0, 100);
22
22
  const groups = await tx.list("group", dir);
23
23
  return {
24
- nextUrl: page.length > 100 ? ctx.routeUrl?.("users.index", { absolute: true, query: { after: users.at(-1).id, ...(query?.mailAfter ? { mailAfter: query.mailAfter } : {}) } }) ?? "" : "",
25
- mailNextUrl: mailPage.length > 100 ? ctx.routeUrl?.("users.index", { absolute: true, query: { mailAfter: mailPage[99].id, ...(query?.after ? { after: query.after } : {}) } }) ?? "" : "",
26
- registration: policy.registration, status: "ok", endpoint: ctx.routeUrl?.("users.index", { absolute: true }) ?? "/users", isolation: policy.isolation, mode: runtime.identity.storage.mode, roleIds: policy.allowedRoleIds, canManageDirectory: policy.isolation === "app" || policy.canManageDirectory === true,
24
+ nextCursor: page.length > 100 ? users.at(-1).id : "",
25
+ mailNextCursor: mailPage.length > 100 ? mailPage[99].id : "",
26
+ status: "ok", registration: policy.registration, isolation: policy.isolation, mode: runtime.identity.storage.mode, roleIds: policy.allowedRoleIds, canManageDirectory: policy.isolation === "app" || policy.canManageDirectory === true,
27
27
  users: await Promise.all(users.map(async (u) => {
28
28
  const roles = (await tx.get("roles", u.id, scope))?.roles ?? [];
29
29
  const groupRoles = groups.filter(g => g.members.includes(u.id)).flatMap(g => g.appRoles[scope.appId] ?? []);
@@ -1 +1 @@
1
- {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../src/plugins/service-betterportal-auth-default/bp-routes/users/GET.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../src/plugins/service-betterportal-auth-default/bp-routes/users/GET.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import type { HtmlRenderable } from "@betterportal/framework";
2
- export declare function render(data: Record<string, any>): HtmlRenderable;
1
+ import type { HtmlRenderable, ViewRenderContext } from "@betterportal/framework";
2
+ export declare function render(data: Record<string, any>, ctx: ViewRenderContext): HtmlRenderable;
3
3
  //# sourceMappingURL=GET.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GET.d.ts","sourceRoot":"","sources":["../../../../../../src/plugins/service-betterportal-auth-default/bp-routes/users/_renderer.bootstrap5/GET.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,cAAc,CA4FhE"}
1
+ {"version":3,"file":"GET.d.ts","sourceRoot":"","sources":["../../../../../../src/plugins/service-betterportal-auth-default/bp-routes/users/_renderer.bootstrap5/GET.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjF,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,iBAAiB,GAAG,cAAc,CAiGxF"}