@arcblock/did-connect-service 4.1.11 → 4.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/dist/_generated/asset-bytes.js +1 -1
  2. package/dist/_generated/asset-manifest.js +3 -3
  3. package/dist/_generated/login-bundle-string.d.ts +1 -1
  4. package/dist/_generated/login-bundle-string.d.ts.map +1 -1
  5. package/dist/_generated/login-bundle-string.js +1 -1
  6. package/dist/_generated/login-bundle-string.js.map +1 -1
  7. package/dist/access/change-role.d.ts +48 -0
  8. package/dist/access/change-role.d.ts.map +1 -0
  9. package/dist/access/change-role.js +52 -0
  10. package/dist/access/change-role.js.map +1 -0
  11. package/dist/assets/admin-core.a63bbc69.js +1464 -0
  12. package/dist/assets/admin-extra.143b5774.js +2543 -0
  13. package/dist/assets/admin-extra.5b309e5e.js +2547 -0
  14. package/dist/assets/login.4404e695.js +720 -0
  15. package/dist/assets/login.76c483c2.js +720 -0
  16. package/dist/assets/login.bb9f8b03.js +720 -0
  17. package/dist/assets/login.fa25f37a.js +720 -0
  18. package/dist/handler-errors.d.ts +118 -0
  19. package/dist/handler-errors.d.ts.map +1 -0
  20. package/dist/handler-errors.js +38 -0
  21. package/dist/handler-errors.js.map +1 -0
  22. package/dist/handlers/access-key-connect-handler.d.ts.map +1 -1
  23. package/dist/handlers/access-key-connect-handler.js +2 -1
  24. package/dist/handlers/access-key-connect-handler.js.map +1 -1
  25. package/dist/handlers/admin-instance-handler.d.ts.map +1 -1
  26. package/dist/handlers/admin-instance-handler.js +2 -1
  27. package/dist/handlers/admin-instance-handler.js.map +1 -1
  28. package/dist/handlers/auth-handler.d.ts.map +1 -1
  29. package/dist/handlers/auth-handler.js +32 -9
  30. package/dist/handlers/auth-handler.js.map +1 -1
  31. package/dist/handlers/branding-handler.d.ts.map +1 -1
  32. package/dist/handlers/branding-handler.js +12 -9
  33. package/dist/handlers/branding-handler.js.map +1 -1
  34. package/dist/handlers/did-connect-handler.d.ts.map +1 -1
  35. package/dist/handlers/did-connect-handler.js +6 -5
  36. package/dist/handlers/did-connect-handler.js.map +1 -1
  37. package/dist/handlers/email-login-handler.d.ts +1 -1
  38. package/dist/handlers/email-login-handler.d.ts.map +1 -1
  39. package/dist/handlers/email-login-handler.js +63 -12
  40. package/dist/handlers/email-login-handler.js.map +1 -1
  41. package/dist/handlers/federation-admin-handler.d.ts.map +1 -1
  42. package/dist/handlers/federation-admin-handler.js +48 -45
  43. package/dist/handlers/federation-admin-handler.js.map +1 -1
  44. package/dist/handlers/oauth-handler.d.ts.map +1 -1
  45. package/dist/handlers/oauth-handler.js +23 -12
  46. package/dist/handlers/oauth-handler.js.map +1 -1
  47. package/dist/handlers/passkey-handler.d.ts.map +1 -1
  48. package/dist/handlers/passkey-handler.js +5 -4
  49. package/dist/handlers/passkey-handler.js.map +1 -1
  50. package/dist/handlers/team-handler.d.ts.map +1 -1
  51. package/dist/handlers/team-handler.js +19 -19
  52. package/dist/handlers/team-handler.js.map +1 -1
  53. package/dist/http/security-headers.d.ts +38 -0
  54. package/dist/http/security-headers.d.ts.map +1 -0
  55. package/dist/http/security-headers.js +67 -0
  56. package/dist/http/security-headers.js.map +1 -0
  57. package/dist/identity/refresh-tokens.d.ts +21 -0
  58. package/dist/identity/refresh-tokens.d.ts.map +1 -0
  59. package/dist/identity/refresh-tokens.js +45 -0
  60. package/dist/identity/refresh-tokens.js.map +1 -0
  61. package/dist/identity/session-context.d.ts +12 -0
  62. package/dist/identity/session-context.d.ts.map +1 -1
  63. package/dist/identity/session-context.js +12 -0
  64. package/dist/identity/session-context.js.map +1 -1
  65. package/dist/identity/session-tokens.d.ts +15 -0
  66. package/dist/identity/session-tokens.d.ts.map +1 -0
  67. package/dist/identity/session-tokens.js +15 -0
  68. package/dist/identity/session-tokens.js.map +1 -0
  69. package/dist/locale.d.ts +1 -1
  70. package/dist/locale.d.ts.map +1 -1
  71. package/dist/og/ssrf-guard.d.ts.map +1 -1
  72. package/dist/og/ssrf-guard.js +21 -3
  73. package/dist/og/ssrf-guard.js.map +1 -1
  74. package/dist/og/templates.d.ts.map +1 -1
  75. package/dist/og/templates.js +33 -4
  76. package/dist/og/templates.js.map +1 -1
  77. package/dist/pages/admin/i18n.d.ts.map +1 -1
  78. package/dist/pages/admin/i18n.js +33 -9
  79. package/dist/pages/admin/i18n.js.map +1 -1
  80. package/dist/pages/admin/scripts/api-client.d.ts +1 -1
  81. package/dist/pages/admin/scripts/api-client.d.ts.map +1 -1
  82. package/dist/pages/admin/scripts/api-client.js +4 -4
  83. package/dist/pages/admin/scripts/utils.d.ts +1 -1
  84. package/dist/pages/admin/scripts/utils.d.ts.map +1 -1
  85. package/dist/pages/admin/scripts/utils.js +7 -8
  86. package/dist/pages/admin/scripts/utils.js.map +1 -1
  87. package/dist/pages/admin/tab-access-keys.d.ts +1 -1
  88. package/dist/pages/admin/tab-access-keys.d.ts.map +1 -1
  89. package/dist/pages/admin/tab-access-keys.js +4 -4
  90. package/dist/pages/admin/tab-invitations.d.ts +1 -1
  91. package/dist/pages/admin/tab-invitations.d.ts.map +1 -1
  92. package/dist/pages/admin/tab-invitations.js +2 -2
  93. package/dist/pages/admin/tab-members.d.ts +1 -1
  94. package/dist/pages/admin/tab-members.d.ts.map +1 -1
  95. package/dist/pages/admin/tab-members.js +7 -3
  96. package/dist/pages/admin/tab-members.js.map +1 -1
  97. package/dist/pages/admin/tab-profile-accounts.js +1 -1
  98. package/dist/pages/admin-instances-page.d.ts +1 -1
  99. package/dist/pages/admin-instances-page.d.ts.map +1 -1
  100. package/dist/pages/admin-instances-page.js +195 -65
  101. package/dist/pages/admin-instances-page.js.map +1 -1
  102. package/dist/pages/gen-access-key-page.d.ts +1 -1
  103. package/dist/pages/gen-access-key-page.d.ts.map +1 -1
  104. package/dist/pages/gen-access-key-page.js +163 -35
  105. package/dist/pages/gen-access-key-page.js.map +1 -1
  106. package/dist/pages/homepage.d.ts.map +1 -1
  107. package/dist/pages/homepage.js +0 -4
  108. package/dist/pages/homepage.js.map +1 -1
  109. package/dist/pages/invite-page.d.ts +1 -1
  110. package/dist/pages/invite-page.d.ts.map +1 -1
  111. package/dist/pages/invite-page.js +91 -21
  112. package/dist/pages/invite-page.js.map +1 -1
  113. package/dist/pages/oauth-callback-page.d.ts.map +1 -1
  114. package/dist/pages/oauth-callback-page.js +7 -3
  115. package/dist/pages/oauth-callback-page.js.map +1 -1
  116. package/dist/store/d1-store.d.ts +55 -1
  117. package/dist/store/d1-store.d.ts.map +1 -1
  118. package/dist/store/d1-store.js +162 -9
  119. package/dist/store/d1-store.js.map +1 -1
  120. package/migrations/0011_refresh_tokens.sql +23 -0
  121. package/package.json +5 -5
@@ -16,7 +16,9 @@
16
16
  */
17
17
  import { signV2 } from "@arcblock/jwt";
18
18
  import { invalidateFedConfigCache } from "../blocklet-service.js";
19
+ import { handlerError } from "../handler-errors.js";
19
20
  import { DELEGATION_EXPIRY_SECONDS, normalizeSecretKey, resolveWalletIdentity } from "../identity/wallet-identity.js";
21
+ import { detectLocale } from "../locale.js";
20
22
  import { consoleLogger } from "../logger.js";
21
23
  const FEDERATION_DELEGATION_CLAIMS = ["authPrincipal", "profile", "signature", "asset", "verifiableCredential"];
22
24
  const PREFIX = "/.well-known/service/api/team/admin/federation";
@@ -57,10 +59,11 @@ export class FederationAdminHandler {
57
59
  return null;
58
60
  const rest = url.pathname.slice(PREFIX.length) || "/";
59
61
  const method = request.method;
62
+ const locale = detectLocale(request);
60
63
  // All federation operations require admin+
61
64
  const isAdmin = caller.role === "owner" || caller.role === "admin";
62
65
  if (!isAdmin) {
63
- return jsonResponse({ error: "Admin access required" }, 403);
66
+ return jsonResponse({ error: handlerError("adminAccessRequired", locale) }, 403);
64
67
  }
65
68
  // Snapshot ip once; private methods read caller.ip via FederationCaller.
66
69
  const fedCaller = {
@@ -73,42 +76,42 @@ export class FederationAdminHandler {
73
76
  }
74
77
  if (rest === "/enable" && method === "POST") {
75
78
  const body = await request.json();
76
- return this.enable(body, fedCaller);
79
+ return this.enable(body, fedCaller, locale);
77
80
  }
78
81
  if (rest === "/join" && method === "POST") {
79
82
  const body = await request.json();
80
- return this.join(body, request, fedCaller);
83
+ return this.join(body, request, fedCaller, locale);
81
84
  }
82
85
  if (rest === "/toggle" && method === "PUT") {
83
86
  const body = await request.json();
84
- return this.toggleSelf(body, fedCaller);
87
+ return this.toggleSelf(body, fedCaller, locale);
85
88
  }
86
89
  // Site-specific routes: /sites/:did, /sites/:did/approve, /sites/:did/toggle
87
90
  const approveMatch = rest.match(/^\/sites\/([^/]+)\/approve$/);
88
91
  if (approveMatch && method === "POST") {
89
- return this.approveSite(decodeURIComponent(approveMatch[1]), fedCaller);
92
+ return this.approveSite(decodeURIComponent(approveMatch[1]), fedCaller, locale);
90
93
  }
91
94
  const siteToggleMatch = rest.match(/^\/sites\/([^/]+)\/toggle$/);
92
95
  if (siteToggleMatch && method === "PUT") {
93
96
  const body = await request.json();
94
- return this.toggleMember(decodeURIComponent(siteToggleMatch[1]), body, fedCaller);
97
+ return this.toggleMember(decodeURIComponent(siteToggleMatch[1]), body, fedCaller, locale);
95
98
  }
96
99
  const siteMatch = rest.match(/^\/sites\/([^/]+)$/);
97
100
  if (siteMatch && method === "PUT") {
98
101
  const body = (await request.json());
99
- return this.updateSite(decodeURIComponent(siteMatch[1]), body, fedCaller);
102
+ return this.updateSite(decodeURIComponent(siteMatch[1]), body, fedCaller, locale);
100
103
  }
101
104
  if (siteMatch && method === "DELETE") {
102
- return this.removeSite(decodeURIComponent(siteMatch[1]), fedCaller);
105
+ return this.removeSite(decodeURIComponent(siteMatch[1]), fedCaller, locale);
103
106
  }
104
107
  if (rest === "/delegation" && method === "POST") {
105
- return this.regenerateDelegation(fedCaller);
108
+ return this.regenerateDelegation(fedCaller, locale);
106
109
  }
107
110
  if (rest === "/disband" && method === "POST") {
108
- return this.disband(fedCaller);
111
+ return this.disband(fedCaller, locale);
109
112
  }
110
113
  if (rest === "/leave" && method === "POST") {
111
- return this.leave(fedCaller);
114
+ return this.leave(fedCaller, locale);
112
115
  }
113
116
  return null;
114
117
  }
@@ -238,11 +241,11 @@ export class FederationAdminHandler {
238
241
  async getStatus() {
239
242
  return jsonResponse(await this.buildStatusResponse());
240
243
  }
241
- async enable(body, caller) {
244
+ async enable(body, caller, locale) {
242
245
  // Check if already in a federation
243
246
  const existingRole = await this.store.getSetting(this.instanceDid, "federation:role");
244
247
  if (existingRole) {
245
- return jsonResponse({ error: "Already in a federation. Leave or disband first." }, 409);
248
+ return jsonResponse({ error: handlerError("alreadyInFederationLeaveOrDisband", locale) }, 409);
246
249
  }
247
250
  const masterUrl = body.url ? normalizeOrigin(body.url) : "";
248
251
  const name = body.name ?? "";
@@ -286,24 +289,24 @@ export class FederationAdminHandler {
286
289
  /**
287
290
  * Sub-site initiates join request. Finds master by URL, writes pending entry.
288
291
  */
289
- async join(body, request, caller) {
292
+ async join(body, request, caller, locale) {
290
293
  if (!body.masterUrl) {
291
- return jsonResponse({ error: "masterUrl is required" }, 400);
294
+ return jsonResponse({ error: handlerError("masterUrlRequired", locale) }, 400);
292
295
  }
293
296
  // Check if already in a federation
294
297
  const existingRole = await this.store.getSetting(this.instanceDid, "federation:role");
295
298
  if (existingRole) {
296
- return jsonResponse({ error: "Already in a federation. Leave first." }, 409);
299
+ return jsonResponse({ error: handlerError("alreadyInFederationLeaveFirst", locale) }, 409);
297
300
  }
298
301
  // Find the master group by URL (handles member-URL transparent redirect)
299
302
  const group = await this.findMasterGroupByUrl(body.masterUrl);
300
303
  if (!group) {
301
- return jsonResponse({ error: "Target site has not enabled federation" }, 400);
304
+ return jsonResponse({ error: handlerError("targetNotEnabledFederation", locale) }, 400);
302
305
  }
303
306
  // Check this site isn't already in the group
304
307
  const existingSite = await this.store.getSetting(group.groupScope, `site:${this.instanceDid}`);
305
308
  if (existingSite) {
306
- return jsonResponse({ error: "Already in this federation group" }, 409);
309
+ return jsonResponse({ error: handlerError("alreadyInThisGroup", locale) }, 409);
307
310
  }
308
311
  // Derive sub-site's URL from request origin and name from D1 branding
309
312
  const siteUrl = new URL(request.url).origin;
@@ -336,22 +339,22 @@ export class FederationAdminHandler {
336
339
  return jsonResponse(await this.buildStatusResponse());
337
340
  }
338
341
  /** Master approves a pending member. Generates delegation and activates. */
339
- async approveSite(did, caller) {
342
+ async approveSite(did, caller, locale) {
340
343
  const role = await this.store.getSetting(this.instanceDid, "federation:role");
341
344
  if (role !== "master") {
342
- return jsonResponse({ error: "Only master can approve sites" }, 403);
345
+ return jsonResponse({ error: handlerError("onlyMasterCanApprove", locale) }, 403);
343
346
  }
344
347
  const groupScope = await this.getGroupScope();
345
348
  if (!groupScope) {
346
- return jsonResponse({ error: "Federation not configured" }, 400);
349
+ return jsonResponse({ error: handlerError("federationNotConfigured", locale) }, 400);
347
350
  }
348
351
  const siteRaw = await this.store.getSetting(groupScope, `site:${did}`);
349
352
  if (!siteRaw) {
350
- return jsonResponse({ error: "Site not found" }, 404);
353
+ return jsonResponse({ error: handlerError("siteNotFound", locale) }, 404);
351
354
  }
352
355
  const site = JSON.parse(siteRaw);
353
356
  if (site.status !== "pending") {
354
- return jsonResponse({ error: "Site is not in pending state" }, 400);
357
+ return jsonResponse({ error: handlerError("siteNotPending", locale) }, 400);
355
358
  }
356
359
  // Generate per-member delegation
357
360
  const masterSk = await this.store.getSetting(this.instanceDid, "app:sk");
@@ -390,10 +393,10 @@ export class FederationAdminHandler {
390
393
  return jsonResponse(await this.buildStatusResponse());
391
394
  }
392
395
  /** Member self-toggles federation on/off. */
393
- async toggleSelf(body, caller) {
396
+ async toggleSelf(body, caller, locale) {
394
397
  const role = await this.store.getSetting(this.instanceDid, "federation:role");
395
398
  if (role !== "member") {
396
- return jsonResponse({ error: "Toggle is only available for member sites" }, 400);
399
+ return jsonResponse({ error: handlerError("toggleOnlyForMembers", locale) }, 400);
397
400
  }
398
401
  const enabledStr = body.enabled ? "true" : "false";
399
402
  await this.store.setSetting(this.instanceDid, "federation:enabled", enabledStr, caller.did);
@@ -416,19 +419,19 @@ export class FederationAdminHandler {
416
419
  return jsonResponse(await this.buildStatusResponse());
417
420
  }
418
421
  /** Master toggles a member site on/off. */
419
- async toggleMember(did, body, caller) {
422
+ async toggleMember(did, body, caller, locale) {
420
423
  const role = await this.store.getSetting(this.instanceDid, "federation:role");
421
424
  if (role !== "master") {
422
- return jsonResponse({ error: "Only master can toggle member sites" }, 403);
425
+ return jsonResponse({ error: handlerError("onlyMasterCanToggle", locale) }, 403);
423
426
  }
424
427
  // Verify the site exists and is approved
425
428
  const groupScope = await this.getGroupScope();
426
429
  if (!groupScope) {
427
- return jsonResponse({ error: "Federation not configured" }, 400);
430
+ return jsonResponse({ error: handlerError("federationNotConfigured", locale) }, 400);
428
431
  }
429
432
  const siteRaw = await this.store.getSetting(groupScope, `site:${did}`);
430
433
  if (!siteRaw) {
431
- return jsonResponse({ error: "Site not found" }, 404);
434
+ return jsonResponse({ error: handlerError("siteNotFound", locale) }, 404);
432
435
  }
433
436
  const enabledStr = body.enabled ? "true" : "false";
434
437
  await this.store.setSetting(did, "federation:enabled", enabledStr, caller.did);
@@ -444,18 +447,18 @@ export class FederationAdminHandler {
444
447
  });
445
448
  return jsonResponse(await this.buildStatusResponse());
446
449
  }
447
- async updateSite(did, body, caller) {
450
+ async updateSite(did, body, caller, locale) {
448
451
  const role = await this.store.getSetting(this.instanceDid, "federation:role");
449
452
  if (role !== "master") {
450
- return jsonResponse({ error: "Only master can update sites" }, 403);
453
+ return jsonResponse({ error: handlerError("onlyMasterCanUpdate", locale) }, 403);
451
454
  }
452
455
  const groupScope = await this.getGroupScope();
453
456
  if (!groupScope) {
454
- return jsonResponse({ error: "Federation not configured" }, 400);
457
+ return jsonResponse({ error: handlerError("federationNotConfigured", locale) }, 400);
455
458
  }
456
459
  const existing = await this.store.getSetting(groupScope, `site:${did}`);
457
460
  if (!existing) {
458
- return jsonResponse({ error: "Site not found" }, 404);
461
+ return jsonResponse({ error: handlerError("siteNotFound", locale) }, 404);
459
462
  }
460
463
  const site = JSON.parse(existing);
461
464
  const changes = {};
@@ -479,17 +482,17 @@ export class FederationAdminHandler {
479
482
  return jsonResponse(await this.buildStatusResponse());
480
483
  }
481
484
  /** Remove a site (master rejects pending or removes approved member). */
482
- async removeSite(did, caller) {
485
+ async removeSite(did, caller, locale) {
483
486
  const role = await this.store.getSetting(this.instanceDid, "federation:role");
484
487
  if (role !== "master") {
485
- return jsonResponse({ error: "Only master can remove sites" }, 403);
488
+ return jsonResponse({ error: handlerError("onlyMasterCanRemove", locale) }, 403);
486
489
  }
487
490
  if (did === this.instanceDid) {
488
- return jsonResponse({ error: "Cannot remove master site. Use disband instead." }, 400);
491
+ return jsonResponse({ error: handlerError("cannotRemoveMaster", locale) }, 400);
489
492
  }
490
493
  const groupScope = await this.getGroupScope();
491
494
  if (!groupScope) {
492
- return jsonResponse({ error: "Federation not configured" }, 400);
495
+ return jsonResponse({ error: handlerError("federationNotConfigured", locale) }, 400);
493
496
  }
494
497
  // Purge tickets
495
498
  const siteValue = await this.store.getSetting(groupScope, `site:${did}`);
@@ -512,14 +515,14 @@ export class FederationAdminHandler {
512
515
  invalidateFedConfigCache(did);
513
516
  return jsonResponse(await this.buildStatusResponse());
514
517
  }
515
- async regenerateDelegation(caller) {
518
+ async regenerateDelegation(caller, locale) {
516
519
  const role = await this.store.getSetting(this.instanceDid, "federation:role");
517
520
  if (role !== "master") {
518
- return jsonResponse({ error: "Only master can regenerate delegation" }, 403);
521
+ return jsonResponse({ error: handlerError("onlyMasterCanRegenerate", locale) }, 403);
519
522
  }
520
523
  const groupScope = await this.getGroupScope();
521
524
  if (!groupScope) {
522
- return jsonResponse({ error: "Federation not configured" }, 400);
525
+ return jsonResponse({ error: handlerError("federationNotConfigured", locale) }, 400);
523
526
  }
524
527
  const identity = resolveWalletIdentity(this.appSk, this.appPsk);
525
528
  const signerAddress = identity.permanentWallet.address;
@@ -542,14 +545,14 @@ export class FederationAdminHandler {
542
545
  });
543
546
  return jsonResponse(await this.buildStatusResponse());
544
547
  }
545
- async disband(caller) {
548
+ async disband(caller, locale) {
546
549
  const role = await this.store.getSetting(this.instanceDid, "federation:role");
547
550
  if (role !== "master") {
548
- return jsonResponse({ error: "Only master can disband federation" }, 403);
551
+ return jsonResponse({ error: handlerError("onlyMasterCanDisband", locale) }, 403);
549
552
  }
550
553
  const groupScope = await this.getGroupScope();
551
554
  if (!groupScope) {
552
- return jsonResponse({ error: "Federation not configured" }, 400);
555
+ return jsonResponse({ error: handlerError("federationNotConfigured", locale) }, 400);
553
556
  }
554
557
  const siteRows = await this.store.listSettingsByPrefix(groupScope, "site:");
555
558
  // Clean up instance-level settings for all sites
@@ -587,10 +590,10 @@ export class FederationAdminHandler {
587
590
  });
588
591
  return jsonResponse(await this.buildStatusResponse());
589
592
  }
590
- async leave(caller) {
593
+ async leave(caller, locale) {
591
594
  const role = await this.store.getSetting(this.instanceDid, "federation:role");
592
595
  if (role !== "member") {
593
- return jsonResponse({ error: "Only members can leave federation" }, 400);
596
+ return jsonResponse({ error: handlerError("onlyMembersCanLeave", locale) }, 400);
594
597
  }
595
598
  const groupScope = await this.getGroupScope();
596
599
  if (groupScope) {
@@ -1 +1 @@
1
- {"version":3,"file":"federation-admin-handler.js","sourceRoot":"","sources":["../../src/handlers/federation-admin-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"federation-admin-handler.js","sourceRoot":"","sources":["../../src/handlers/federation-admin-handler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-handler.d.ts","sourceRoot":"","sources":["../../src/handlers/oauth-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAK9E,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAQ1D,OAAO,KAAK,EAAE,YAAY,EAAqC,MAAM,4BAA4B,CAAC;AAElG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGpD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,CAAC;IAC/C,yDAAyD;IACzD,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,EAAE,CAAC,EAAE,QAAQ,CAAC;IACd,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAaD,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,EAAE,mBAAmB;IAKxC,6DAA6D;IAC7D,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAInD;;;OAGG;IACG,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAsD7E,4EAA4E;YAC9D,gBAAgB;IA0B9B,4EAA4E;YAC9D,WAAW;IAiDzB,kEAAkE;YACpD,cAAc;IA2E5B;;;;OAIG;YACW,oBAAoB;IAgTlC,4DAA4D;YAC9C,cAAc;IA0L5B,kEAAkE;YACpD,UAAU;IAiDxB,wEAAwE;YAC1D,YAAY;IAyC1B;;;OAGG;YACW,iBAAiB;IA6E/B,+CAA+C;YACjC,cAAc;IAgB5B,wDAAwD;YAC1C,kBAAkB;IAUhC,oFAAoF;IACpF,OAAO,CAAC,cAAc;IAKtB,uFAAuF;IACvF,OAAO,CAAC,aAAa;IAarB,gEAAgE;YAClD,YAAY;CAS3B"}
1
+ {"version":3,"file":"oauth-handler.d.ts","sourceRoot":"","sources":["../../src/handlers/oauth-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAM9E,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAQ1D,OAAO,KAAK,EAAE,YAAY,EAAqC,MAAM,4BAA4B,CAAC;AAElG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGpD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,CAAC;IAC/C,yDAAyD;IACzD,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,EAAE,CAAC,EAAE,QAAQ,CAAC;IACd,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAaD,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,EAAE,mBAAmB;IAKxC,6DAA6D;IAC7D,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAInD;;;OAGG;IACG,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAsD7E,4EAA4E;YAC9D,gBAAgB;IA0B9B,4EAA4E;YAC9D,WAAW;IAiDzB,kEAAkE;YACpD,cAAc;IA2E5B;;;;OAIG;YACW,oBAAoB;IA2TlC,4DAA4D;YAC9C,cAAc;IA+L5B,kEAAkE;YACpD,UAAU;IAiDxB,wEAAwE;YAC1D,YAAY;IAyC1B;;;OAGG;YACW,iBAAiB;IA6E/B,+CAA+C;YACjC,cAAc;IAgB5B,wDAAwD;YAC1C,kBAAkB;IAUhC,oFAAoF;IACpF,OAAO,CAAC,cAAc;IAKtB,uFAAuF;IACvF,OAAO,CAAC,aAAa;IAarB,gEAAgE;YAClD,YAAY;CAS3B"}
@@ -18,7 +18,8 @@ import { NATIVE_OAUTH_CALLBACK_PATH } from "../constants.js";
18
18
  import { ensureInstanceMembership } from "../identity/auto-membership.js";
19
19
  import { deriveDID } from "../identity/federation.js";
20
20
  import { fetchGravatarUrl } from "../identity/gravatar.js";
21
- import { signJWT, verifyJWT } from "../identity/jwt.js";
21
+ import { verifyJWT } from "../identity/jwt.js";
22
+ import { issueSessionTokens } from "../identity/session-tokens.js";
22
23
  import { consoleLogger } from "../logger.js";
23
24
  import { AppleAdapter } from "../oauth-adapters/apple.js";
24
25
  import { Auth0Adapter } from "../oauth-adapters/auth0.js";
@@ -472,7 +473,12 @@ export class OAuthHandler {
472
473
  };
473
474
  if (jwtUser?.fullName)
474
475
  jwtPayload.fullName = jwtUser.fullName;
475
- const jwt = await signJWT(jwtPayload, this.options.jwtSecret, this.options.jwtExpiresIn);
476
+ // Mints a real refresh-token-family row (via issueSessionTokens) for internal
477
+ // consistency even though neither branch below surfaces `refreshToken` yet — see
478
+ // issue #121's phased plan: the mobile query param and the redirect/cookie path
479
+ // both deliberately keep today's shape (session JWT only) until a later phase
480
+ // wires the refresh token through end to end.
481
+ const { sessionToken: jwt } = await issueSessionTokens(jwtPayload, primaryDid, { jwtSecret: this.options.jwtSecret, jwtExpiresIn: this.options.jwtExpiresIn }, store);
476
482
  // Native / mobile callback via Apple Universal Links:
477
483
  // When `returnUrl` is backend self-origin + https + the shared native
478
484
  // OAuth callback path, the caller is a native iOS app driving
@@ -493,12 +499,13 @@ export class OAuthHandler {
493
499
  // no-referrer` + short JWT TTL. A PKCE-style short-TTL exchange code
494
500
  // (iOS POSTs to a follow-up exchange endpoint for the real JWT) is a
495
501
  // planned follow-up that drops the JWT-in-URL surface entirely.
496
- // - The current `signOauthCallback` design signs a single jwt and uses
497
- // it for both session and refresh; mobile path intentionally OMITS a
498
- // `refreshToken` query item rather than echo the same value and risk
499
- // a downstream client treating it as a real refresh token. When the
500
- // handler grows an independent short-TTL access + long-TTL refresh
501
- // pair, the mobile path will surface them both.
502
+ // - `issueSessionTokens()` now mints an independent refresh token
503
+ // alongside the session JWT (issue #121), but the mobile path still
504
+ // intentionally OMITS a `refreshToken` query item here the client
505
+ // side (Swift `NativeOAuthFlow`/`ConnectSession`) doesn't persist or
506
+ // act on one yet, so surfacing it would just be an unused opaque
507
+ // string through a live delegate callback with no consumer. A later
508
+ // phase adds the query param once iOS is ready to store and use it.
502
509
  let isMobileCallback = false;
503
510
  try {
504
511
  const ru = new URL(returnUrl);
@@ -691,7 +698,7 @@ export class OAuthHandler {
691
698
  };
692
699
  if (jwtUser?.fullName)
693
700
  jwtPayload.fullName = jwtUser.fullName;
694
- const jwt = await signJWT(jwtPayload, this.options.jwtSecret, this.options.jwtExpiresIn);
701
+ const { sessionToken: jwt, refreshToken } = await issueSessionTokens(jwtPayload, primaryDid, { jwtSecret: this.options.jwtSecret, jwtExpiresIn: this.options.jwtExpiresIn }, store);
695
702
  let cookie = `${this.options.cookieName}=${jwt}; Path=/; Secure; SameSite=Lax; Max-Age=${this.options.jwtExpiresIn}`;
696
703
  const cookieDomain = typeof this.options.rpID === "string" ? this.options.rpID : undefined;
697
704
  if (cookieDomain?.includes("."))
@@ -705,7 +712,7 @@ export class OAuthHandler {
705
712
  if (invitationId) {
706
713
  headers.append("Set-Cookie", "pending_invitation=; Path=/; Max-Age=0; Secure; SameSite=Lax");
707
714
  }
708
- return new Response(JSON.stringify({ ok: true, sessionToken: jwt, refreshToken: jwt, did: primaryDid }), {
715
+ return new Response(JSON.stringify({ ok: true, sessionToken: jwt, refreshToken, did: primaryDid }), {
709
716
  status: 200,
710
717
  headers,
711
718
  });
@@ -922,9 +929,13 @@ function jsonResponse(data, status = 200) {
922
929
  headers: { "Content-Type": "application/json", "Cache-Control": "private, no-store" },
923
930
  });
924
931
  }
932
+ /** Escape string for safe embedding inside <script> — prevents XSS breakout. */
933
+ function escapeForScript(s) {
934
+ return s.replace(/<\/(script)/gi, "<\\/$1");
935
+ }
925
936
  function renderCallbackError(origin, error) {
926
- const errorJson = JSON.stringify(error);
927
- const originJson = JSON.stringify(origin);
937
+ const errorJson = escapeForScript(JSON.stringify(error));
938
+ const originJson = escapeForScript(JSON.stringify(origin));
928
939
  const html = `<!DOCTYPE html>
929
940
  <html><head><style>
930
941
  body{margin:0;min-height:100vh;display:flex;align-items:center;justify-content:center;background:#0a0a0b;color:#9394a1;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:14px}