@arcblock/did-connect-service 4.0.4 → 4.0.6

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 (190) hide show
  1. package/assets/fonts/noto-sans-sc-regular.otf +0 -0
  2. package/dist/embedded.d.ts +32 -0
  3. package/dist/embedded.d.ts.map +1 -1
  4. package/dist/embedded.js +3 -0
  5. package/dist/embedded.js.map +1 -1
  6. package/dist/handlers/auth-handler.d.ts +5 -0
  7. package/dist/handlers/auth-handler.d.ts.map +1 -1
  8. package/dist/handlers/auth-handler.js +33 -0
  9. package/dist/handlers/auth-handler.js.map +1 -1
  10. package/dist/handlers/branding-handler.d.ts +17 -0
  11. package/dist/handlers/branding-handler.d.ts.map +1 -1
  12. package/dist/handlers/branding-handler.js +107 -5
  13. package/dist/handlers/branding-handler.js.map +1 -1
  14. package/dist/identity/csrf.d.ts +17 -0
  15. package/dist/identity/csrf.d.ts.map +1 -0
  16. package/dist/identity/csrf.js +56 -0
  17. package/dist/identity/csrf.js.map +1 -0
  18. package/dist/og/emoji.d.ts +12 -0
  19. package/dist/og/emoji.d.ts.map +1 -0
  20. package/dist/og/emoji.js +71 -0
  21. package/dist/og/emoji.js.map +1 -0
  22. package/dist/og/generator.d.ts +3 -0
  23. package/dist/og/generator.d.ts.map +1 -0
  24. package/dist/og/generator.js +338 -0
  25. package/dist/og/generator.js.map +1 -0
  26. package/dist/og/index.d.ts +6 -0
  27. package/dist/og/index.d.ts.map +1 -0
  28. package/dist/og/index.js +4 -0
  29. package/dist/og/index.js.map +1 -0
  30. package/dist/og/passport-svg.d.ts +52 -0
  31. package/dist/og/passport-svg.d.ts.map +1 -0
  32. package/dist/og/passport-svg.js +157 -0
  33. package/dist/og/passport-svg.js.map +1 -0
  34. package/dist/og/ssrf-guard.d.ts +38 -0
  35. package/dist/og/ssrf-guard.d.ts.map +1 -0
  36. package/dist/og/ssrf-guard.js +188 -0
  37. package/dist/og/ssrf-guard.js.map +1 -0
  38. package/dist/og/templates.d.ts +26 -0
  39. package/dist/og/templates.d.ts.map +1 -0
  40. package/dist/og/templates.js +302 -0
  41. package/dist/og/templates.js.map +1 -0
  42. package/dist/og/types.d.ts +74 -0
  43. package/dist/og/types.d.ts.map +1 -0
  44. package/dist/og/types.js +14 -0
  45. package/dist/og/types.js.map +1 -0
  46. package/package.json +18 -4
  47. package/dist/access-key-handler.d.ts +0 -37
  48. package/dist/access-key-handler.d.ts.map +0 -1
  49. package/dist/access-key-handler.js +0 -316
  50. package/dist/access-key-handler.js.map +0 -1
  51. package/dist/access-key-util.d.ts +0 -19
  52. package/dist/access-key-util.d.ts.map +0 -1
  53. package/dist/access-key-util.js +0 -45
  54. package/dist/access-key-util.js.map +0 -1
  55. package/dist/access-policy.d.ts +0 -53
  56. package/dist/access-policy.d.ts.map +0 -1
  57. package/dist/access-policy.js +0 -153
  58. package/dist/access-policy.js.map +0 -1
  59. package/dist/auth-client.d.ts +0 -20
  60. package/dist/auth-client.d.ts.map +0 -1
  61. package/dist/auth-client.js +0 -42
  62. package/dist/auth-client.js.map +0 -1
  63. package/dist/auth-entrypoint.d.ts +0 -45
  64. package/dist/auth-entrypoint.d.ts.map +0 -1
  65. package/dist/auth-entrypoint.js +0 -31
  66. package/dist/auth-entrypoint.js.map +0 -1
  67. package/dist/auth-handler.d.ts +0 -136
  68. package/dist/auth-handler.d.ts.map +0 -1
  69. package/dist/auth-handler.js +0 -408
  70. package/dist/auth-handler.js.map +0 -1
  71. package/dist/auth-rpc-types.d.ts +0 -139
  72. package/dist/auth-rpc-types.d.ts.map +0 -1
  73. package/dist/auth-rpc-types.js +0 -11
  74. package/dist/auth-rpc-types.js.map +0 -1
  75. package/dist/auth-rpc.d.ts +0 -80
  76. package/dist/auth-rpc.d.ts.map +0 -1
  77. package/dist/auth-rpc.js +0 -257
  78. package/dist/auth-rpc.js.map +0 -1
  79. package/dist/auth-worker.d.ts +0 -42
  80. package/dist/auth-worker.d.ts.map +0 -1
  81. package/dist/auth-worker.js +0 -120
  82. package/dist/auth-worker.js.map +0 -1
  83. package/dist/blocklet-js-handler.d.ts +0 -22
  84. package/dist/blocklet-js-handler.d.ts.map +0 -1
  85. package/dist/blocklet-js-handler.js +0 -205
  86. package/dist/blocklet-js-handler.js.map +0 -1
  87. package/dist/branding-handler.d.ts +0 -42
  88. package/dist/branding-handler.d.ts.map +0 -1
  89. package/dist/branding-handler.js +0 -326
  90. package/dist/branding-handler.js.map +0 -1
  91. package/dist/d1-token-storage.d.ts +0 -31
  92. package/dist/d1-token-storage.d.ts.map +0 -1
  93. package/dist/d1-token-storage.js +0 -83
  94. package/dist/d1-token-storage.js.map +0 -1
  95. package/dist/did-connect-handler.d.ts +0 -57
  96. package/dist/did-connect-handler.d.ts.map +0 -1
  97. package/dist/did-connect-handler.js +0 -182
  98. package/dist/did-connect-handler.js.map +0 -1
  99. package/dist/did.d.ts +0 -14
  100. package/dist/did.d.ts.map +0 -1
  101. package/dist/did.js +0 -17
  102. package/dist/did.js.map +0 -1
  103. package/dist/email-login-handler.d.ts +0 -50
  104. package/dist/email-login-handler.d.ts.map +0 -1
  105. package/dist/email-login-handler.js +0 -238
  106. package/dist/email-login-handler.js.map +0 -1
  107. package/dist/federation-utils.d.ts +0 -23
  108. package/dist/federation-utils.d.ts.map +0 -1
  109. package/dist/federation-utils.js +0 -25
  110. package/dist/federation-utils.js.map +0 -1
  111. package/dist/handler.d.ts +0 -90
  112. package/dist/handler.d.ts.map +0 -1
  113. package/dist/handler.js +0 -591
  114. package/dist/handler.js.map +0 -1
  115. package/dist/identity/invitation-util.d.ts +0 -7
  116. package/dist/identity/invitation-util.d.ts.map +0 -1
  117. package/dist/identity/invitation-util.js +0 -66
  118. package/dist/identity/invitation-util.js.map +0 -1
  119. package/dist/instance-role.d.ts +0 -10
  120. package/dist/instance-role.d.ts.map +0 -1
  121. package/dist/instance-role.js +0 -20
  122. package/dist/instance-role.js.map +0 -1
  123. package/dist/jwt.d.ts +0 -7
  124. package/dist/jwt.d.ts.map +0 -1
  125. package/dist/jwt.js +0 -72
  126. package/dist/jwt.js.map +0 -1
  127. package/dist/login-entry.d.ts +0 -9
  128. package/dist/login-entry.d.ts.map +0 -1
  129. package/dist/login-entry.js +0 -9
  130. package/dist/login-entry.js.map +0 -1
  131. package/dist/membership-handler.d.ts +0 -27
  132. package/dist/membership-handler.d.ts.map +0 -1
  133. package/dist/membership-handler.js +0 -111
  134. package/dist/membership-handler.js.map +0 -1
  135. package/dist/oauth-callback-page.d.ts +0 -9
  136. package/dist/oauth-callback-page.d.ts.map +0 -1
  137. package/dist/oauth-callback-page.js +0 -31
  138. package/dist/oauth-callback-page.js.map +0 -1
  139. package/dist/oauth-handler.d.ts +0 -72
  140. package/dist/oauth-handler.d.ts.map +0 -1
  141. package/dist/oauth-handler.js +0 -423
  142. package/dist/oauth-handler.js.map +0 -1
  143. package/dist/page.d.ts +0 -33
  144. package/dist/page.d.ts.map +0 -1
  145. package/dist/page.js +0 -59
  146. package/dist/page.js.map +0 -1
  147. package/dist/pages/auth-script.d.ts +0 -18
  148. package/dist/pages/auth-script.d.ts.map +0 -1
  149. package/dist/pages/auth-script.js +0 -185
  150. package/dist/pages/auth-script.js.map +0 -1
  151. package/dist/pages/design-tokens.d.ts +0 -86
  152. package/dist/pages/design-tokens.d.ts.map +0 -1
  153. package/dist/pages/design-tokens.js +0 -159
  154. package/dist/pages/design-tokens.js.map +0 -1
  155. package/dist/pages/did-connect-script.d.ts +0 -16
  156. package/dist/pages/did-connect-script.d.ts.map +0 -1
  157. package/dist/pages/did-connect-script.js +0 -105
  158. package/dist/pages/did-connect-script.js.map +0 -1
  159. package/dist/pages/shared-styles.d.ts +0 -6
  160. package/dist/pages/shared-styles.d.ts.map +0 -1
  161. package/dist/pages/shared-styles.js +0 -109
  162. package/dist/pages/shared-styles.js.map +0 -1
  163. package/dist/rbac.d.ts +0 -19
  164. package/dist/rbac.d.ts.map +0 -1
  165. package/dist/rbac.js +0 -76
  166. package/dist/rbac.js.map +0 -1
  167. package/dist/session-context.d.ts +0 -35
  168. package/dist/session-context.d.ts.map +0 -1
  169. package/dist/session-context.js +0 -39
  170. package/dist/session-context.js.map +0 -1
  171. package/dist/store.d.ts +0 -222
  172. package/dist/store.d.ts.map +0 -1
  173. package/dist/store.js +0 -1366
  174. package/dist/store.js.map +0 -1
  175. package/dist/team-handler.d.ts +0 -90
  176. package/dist/team-handler.d.ts.map +0 -1
  177. package/dist/team-handler.js +0 -1225
  178. package/dist/team-handler.js.map +0 -1
  179. package/dist/ticket-handler.d.ts +0 -28
  180. package/dist/ticket-handler.d.ts.map +0 -1
  181. package/dist/ticket-handler.js +0 -74
  182. package/dist/ticket-handler.js.map +0 -1
  183. package/dist/wallet-identity.d.ts +0 -32
  184. package/dist/wallet-identity.d.ts.map +0 -1
  185. package/dist/wallet-identity.js +0 -43
  186. package/dist/wallet-identity.js.map +0 -1
  187. package/dist/webauthn.d.ts +0 -65
  188. package/dist/webauthn.d.ts.map +0 -1
  189. package/dist/webauthn.js +0 -112
  190. package/dist/webauthn.js.map +0 -1
@@ -1,109 +0,0 @@
1
- /**
2
- * Shared CSS styles — base component classes for login, invite, and admin pages.
3
- * Design tokens are imported from design-tokens.ts.
4
- */
5
- import { DESIGN_RESET_CSS, DESIGN_TOKENS_CSS } from "./design-tokens.js";
6
- export const SHARED_STYLES = /* css */ `
7
- ${DESIGN_TOKENS_CSS}
8
- ${DESIGN_RESET_CSS}
9
-
10
- body {
11
- min-height: 100vh;
12
- display: flex;
13
- align-items: center;
14
- justify-content: center;
15
- }
16
- .card {
17
- background: var(--bg-card);
18
- border: 1px solid var(--border);
19
- border-radius: var(--radius-lg);
20
- padding: 48px 40px;
21
- max-width: 400px;
22
- width: 100%;
23
- text-align: center;
24
- }
25
- h1 {
26
- font-size: 24px;
27
- font-weight: 600;
28
- margin-bottom: 8px;
29
- color: var(--text-white);
30
- letter-spacing: -0.01em;
31
- line-height: 1.25;
32
- }
33
- .subtitle {
34
- font-size: 14px;
35
- color: var(--text-secondary);
36
- margin-bottom: 24px;
37
- line-height: 1.5;
38
- }
39
- .input {
40
- width: 100%;
41
- height: 36px;
42
- padding: 0 12px;
43
- font-size: 14px;
44
- color: var(--text);
45
- background: var(--bg-input);
46
- border: 1px solid var(--border-strong);
47
- border-radius: var(--radius-sm);
48
- outline: none;
49
- margin-bottom: 16px;
50
- transition: border-color 0.15s ease, box-shadow 0.15s ease;
51
- }
52
- .input:focus { border-color: var(--blue); box-shadow: var(--shadow-focus); }
53
- .input::placeholder { color: var(--text-placeholder); }
54
- .btn {
55
- display: inline-flex;
56
- align-items: center;
57
- justify-content: center;
58
- gap: 6px;
59
- width: 100%;
60
- height: 36px;
61
- padding: 0 16px;
62
- font-size: 14px;
63
- font-weight: 500;
64
- color: #fff;
65
- background: var(--blue);
66
- border: none;
67
- border-radius: var(--radius-sm);
68
- cursor: pointer;
69
- transition: background-color 0.15s ease;
70
- line-height: 1;
71
- }
72
- .btn:hover { background: var(--blue-hover); }
73
- .btn:disabled { opacity: 0.5; cursor: not-allowed; pointer-events: none; }
74
- .btn:focus-visible { box-shadow: var(--shadow-focus); }
75
- .btn svg { width: 18px; height: 18px; }
76
- .btn-secondary {
77
- background: transparent;
78
- border: 1px solid var(--border-strong);
79
- color: var(--text);
80
- }
81
- .btn-secondary:hover { background: var(--bg-hover); border-color: rgba(255,255,255,0.20); }
82
- .btn-danger {
83
- background: var(--red);
84
- }
85
- .btn-danger:hover { background: #c22a2a; }
86
- .status {
87
- margin-top: 16px;
88
- font-size: 13px;
89
- min-height: 20px;
90
- color: var(--text-secondary);
91
- }
92
- .status.error { color: var(--red-text); }
93
- .badge {
94
- display: inline-flex;
95
- align-items: center;
96
- padding: 2px 8px;
97
- border-radius: var(--radius-full);
98
- font-size: 11px;
99
- font-weight: 500;
100
- line-height: 1.45;
101
- white-space: nowrap;
102
- }
103
- .badge-owner { background: var(--blue-light); color: var(--blue-muted); }
104
- .badge-admin { background: var(--info-light); color: var(--info-text); }
105
- .badge-member { background: rgba(255,255,255,0.08); color: var(--text-secondary); }
106
- .badge-guest { background: rgba(255,255,255,0.04); color: var(--text-secondary); font-style: italic; }
107
- .text-muted { color: var(--text-secondary); }
108
- `;
109
- //# sourceMappingURL=shared-styles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared-styles.js","sourceRoot":"","sources":["../../src/pages/shared-styles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEzE,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;IACnC,iBAAiB;IACjB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoGnB,CAAC"}
package/dist/rbac.d.ts DELETED
@@ -1,19 +0,0 @@
1
- /**
2
- * RBAC — Role-Based Access Control for team management.
3
- *
4
- * Fixed 4-tier hierarchy: owner (3) > admin (2) > member (1) > guest (0).
5
- */
6
- import type { Role } from "./types.js";
7
- /**
8
- * Check if a caller with `callerRole` is allowed to perform `action`.
9
- * For actions targeting another user, pass `targetRole`.
10
- */
11
- export declare function hasPermission(callerRole: Role, action: string, targetRole?: Role): boolean;
12
- /**
13
- * Throws if the caller lacks permission. Use in request handlers.
14
- */
15
- export declare function requirePermission(callerRole: Role, action: string, targetRole?: Role): void;
16
- export declare class PermissionError extends Error {
17
- constructor(message: string);
18
- }
19
- //# sourceMappingURL=rbac.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rbac.d.ts","sourceRoot":"","sources":["../src/rbac.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AASvC;;;GAGG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,GAAG,OAAO,CAkD1F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,CAI3F;AAED,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B"}
package/dist/rbac.js DELETED
@@ -1,76 +0,0 @@
1
- /**
2
- * RBAC — Role-Based Access Control for team management.
3
- *
4
- * Fixed 4-tier hierarchy: owner (3) > admin (2) > member (1) > guest (0).
5
- */
6
- const ROLE_LEVEL = {
7
- owner: 3,
8
- admin: 2,
9
- member: 1,
10
- guest: 0,
11
- };
12
- /**
13
- * Check if a caller with `callerRole` is allowed to perform `action`.
14
- * For actions targeting another user, pass `targetRole`.
15
- */
16
- export function hasPermission(callerRole, action, targetRole) {
17
- const level = ROLE_LEVEL[callerRole] ?? 0;
18
- switch (action) {
19
- case "team.list_members":
20
- case "team.view_member":
21
- case "team.create_invitation":
22
- case "team.view_audit_logs":
23
- return level >= 2; // admin+
24
- case "team.delete_invitation":
25
- return level >= 2; // admin+ (handler checks ownership for admin)
26
- case "team.remove_member":
27
- case "team.block_member":
28
- case "team.unblock_member":
29
- if (!targetRole)
30
- return false;
31
- if (callerRole === "owner")
32
- return true;
33
- if (callerRole === "admin")
34
- return ROLE_LEVEL[targetRole] < 2; // admin can only act on member
35
- return false;
36
- case "team.change_role":
37
- case "team.transfer_ownership":
38
- case "access_policy.create":
39
- case "access_policy.update":
40
- case "access_policy.delete":
41
- case "security_rule.create":
42
- case "security_rule.update":
43
- case "security_rule.delete":
44
- return callerRole === "owner";
45
- case "access_policy.list":
46
- case "security_rule.list":
47
- case "settings.view":
48
- case "audit.view":
49
- return level >= 2; // admin+
50
- case "settings.edit":
51
- return callerRole === "owner";
52
- case "accessKey.list":
53
- case "accessKey.view":
54
- case "accessKey.create":
55
- case "accessKey.update":
56
- case "accessKey.delete":
57
- return level >= 0; // all authenticated roles (handler enforces ownership for non-admin)
58
- default:
59
- return level >= 1; // any authenticated user
60
- }
61
- }
62
- /**
63
- * Throws if the caller lacks permission. Use in request handlers.
64
- */
65
- export function requirePermission(callerRole, action, targetRole) {
66
- if (!hasPermission(callerRole, action, targetRole)) {
67
- throw new PermissionError("Insufficient permissions");
68
- }
69
- }
70
- export class PermissionError extends Error {
71
- constructor(message) {
72
- super(message);
73
- this.name = "PermissionError";
74
- }
75
- }
76
- //# sourceMappingURL=rbac.js.map
package/dist/rbac.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"rbac.js","sourceRoot":"","sources":["../src/rbac.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,UAAU,GAAyB;IACvC,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;CACT,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,UAAgB,EAAE,MAAc,EAAE,UAAiB;IAC/E,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAE1C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,mBAAmB,CAAC;QACzB,KAAK,kBAAkB,CAAC;QACxB,KAAK,wBAAwB,CAAC;QAC9B,KAAK,sBAAsB;YACzB,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS;QAE9B,KAAK,wBAAwB;YAC3B,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,8CAA8C;QAEnE,KAAK,oBAAoB,CAAC;QAC1B,KAAK,mBAAmB,CAAC;QACzB,KAAK,qBAAqB;YACxB,IAAI,CAAC,UAAU;gBAAE,OAAO,KAAK,CAAC;YAC9B,IAAI,UAAU,KAAK,OAAO;gBAAE,OAAO,IAAI,CAAC;YACxC,IAAI,UAAU,KAAK,OAAO;gBAAE,OAAO,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,+BAA+B;YAC9F,OAAO,KAAK,CAAC;QAEf,KAAK,kBAAkB,CAAC;QACxB,KAAK,yBAAyB,CAAC;QAC/B,KAAK,sBAAsB,CAAC;QAC5B,KAAK,sBAAsB,CAAC;QAC5B,KAAK,sBAAsB,CAAC;QAC5B,KAAK,sBAAsB,CAAC;QAC5B,KAAK,sBAAsB,CAAC;QAC5B,KAAK,sBAAsB;YACzB,OAAO,UAAU,KAAK,OAAO,CAAC;QAEhC,KAAK,oBAAoB,CAAC;QAC1B,KAAK,oBAAoB,CAAC;QAC1B,KAAK,eAAe,CAAC;QACrB,KAAK,YAAY;YACf,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS;QAE9B,KAAK,eAAe;YAClB,OAAO,UAAU,KAAK,OAAO,CAAC;QAEhC,KAAK,gBAAgB,CAAC;QACtB,KAAK,gBAAgB,CAAC;QACtB,KAAK,kBAAkB,CAAC;QACxB,KAAK,kBAAkB,CAAC;QACxB,KAAK,kBAAkB;YACrB,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,qEAAqE;QAE1F;YACE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,yBAAyB;IAChD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAgB,EAAE,MAAc,EAAE,UAAiB;IACnF,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,eAAe,CAAC,0BAA0B,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF"}
@@ -1,35 +0,0 @@
1
- /**
2
- * SessionContext — unified session identity flowing through HTTP → WebSocket → AUP → AFS exec.
3
- *
4
- * Four auth methods produce the same structure:
5
- * 1. ARC Owner passkey login → authMethod = "passkey"
6
- * 2. Visitor DID Connect → authMethod = "did-connect"
7
- * 3. Access Key bearer token → authMethod = "access-key"
8
- */
9
- import type { CallerIdentity, Role } from "./types.js";
10
- export interface SessionContext {
11
- /** User's DID (owner passkey DID or visitor DID). */
12
- did: string;
13
- /** Public key (base64 for passkey, hex for Ed25519). */
14
- pk?: string;
15
- /** Display name (from users table or DID Connect profile). */
16
- displayName?: string;
17
- /** How this identity was established. */
18
- authMethod: "passkey" | "did-connect" | "access-key";
19
- /** Instance this session targets (filled by instanceResolveMiddleware). */
20
- instanceDid?: string;
21
- /** Role within this instance (from memberships table; system role if no instance). */
22
- role?: Role;
23
- /** DID Space routing key = instanceDid ?? blockletDid ?? blockletId. */
24
- appId?: string;
25
- }
26
- /** Build SessionContext from CallerIdentity + instance resolution result. */
27
- export declare function buildSessionContext(caller: CallerIdentity | null, options?: {
28
- instanceDid?: string;
29
- membershipRole?: Role | null;
30
- appId?: string;
31
- authMethod?: SessionContext["authMethod"];
32
- }): SessionContext | null;
33
- export declare function serializeSessionContext(ctx: SessionContext): string;
34
- export declare function deserializeSessionContext(json: string): SessionContext | null;
35
- //# sourceMappingURL=session-context.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-context.d.ts","sourceRoot":"","sources":["../src/session-context.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,WAAW,cAAc;IAC7B,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAC;IACZ,wDAAwD;IACxD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,yCAAyC;IACzC,UAAU,EAAE,SAAS,GAAG,aAAa,GAAG,YAAY,CAAC;IAErD,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sFAAsF;IACtF,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,6EAA6E;AAC7E,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,cAAc,GAAG,IAAI,EAC7B,OAAO,CAAC,EAAE;IACR,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;CAC3C,GACA,cAAc,GAAG,IAAI,CAavB;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,CAEnE;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAQ7E"}
@@ -1,39 +0,0 @@
1
- /**
2
- * SessionContext — unified session identity flowing through HTTP → WebSocket → AUP → AFS exec.
3
- *
4
- * Four auth methods produce the same structure:
5
- * 1. ARC Owner passkey login → authMethod = "passkey"
6
- * 2. Visitor DID Connect → authMethod = "did-connect"
7
- * 3. Access Key bearer token → authMethod = "access-key"
8
- */
9
- /** Build SessionContext from CallerIdentity + instance resolution result. */
10
- export function buildSessionContext(caller, options) {
11
- if (!caller)
12
- return null;
13
- return {
14
- did: caller.did,
15
- pk: caller.pk,
16
- displayName: caller.displayName,
17
- authMethod: options?.authMethod ?? "passkey",
18
- instanceDid: options?.instanceDid,
19
- role: options?.instanceDid
20
- ? (options.membershipRole ?? "guest") // instance context: membership role or guest
21
- : (caller.role ?? undefined), // system context: system role
22
- appId: options?.appId,
23
- };
24
- }
25
- export function serializeSessionContext(ctx) {
26
- return JSON.stringify(ctx);
27
- }
28
- export function deserializeSessionContext(json) {
29
- try {
30
- const parsed = JSON.parse(json);
31
- if (typeof parsed?.did !== "string")
32
- return null;
33
- return parsed;
34
- }
35
- catch {
36
- return null;
37
- }
38
- }
39
- //# sourceMappingURL=session-context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-context.js","sourceRoot":"","sources":["../src/session-context.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAwBH,6EAA6E;AAC7E,MAAM,UAAU,mBAAmB,CACjC,MAA6B,EAC7B,OAKC;IAED,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO;QACL,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,SAAS;QAC5C,WAAW,EAAE,OAAO,EAAE,WAAW;QACjC,IAAI,EAAE,OAAO,EAAE,WAAW;YACxB,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,CAAC,6CAA6C;YACnF,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC,EAAE,8BAA8B;QAC9D,KAAK,EAAE,OAAO,EAAE,KAAK;KACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,GAAmB;IACzD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,IAAY;IACpD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,OAAO,MAAM,EAAE,GAAG,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACjD,OAAO,MAAwB,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
package/dist/store.d.ts DELETED
@@ -1,222 +0,0 @@
1
- /**
2
- * D1Store — D1-backed storage for passkey auth + team management.
3
- *
4
- * Uses the same schema as blocklet-server (users + connected_accounts tables)
5
- * to ensure interoperability. Unused fields default to null/empty.
6
- */
7
- import type { AccessKeyInfo, AccessPolicyInfo, AuditLogInfo, CreateAccessKeyInput, CreateAccessPolicyInput, CreateAuditLogInput, CreateInvitationInput, CreateSecurityRuleInput, InvitationInfo, MemberInfo, SecurityRuleInfo, StoredAccessKey, StoredConnectedAccount, StoredInvitation, StoredUser, UpdateAccessKeyInput, UpdateAccessPolicyInput, UpdateSecurityRuleInput } from "./types.js";
8
- type RulesCacheEntry = Array<{
9
- id: string;
10
- pathPattern: string;
11
- priority: number;
12
- roles: string | null;
13
- reverse: number;
14
- enabled: number;
15
- }>;
16
- /** @internal Reset all module-level caches — for testing only. */
17
- export declare function _resetForTesting(): void;
18
- export declare class D1Store {
19
- private db;
20
- constructor(db: D1Database);
21
- /** Run schema migration. Idempotent — only executes once per isolate. */
22
- migrate(): Promise<void>;
23
- /** @internal Backwards-compatible alias for migrate(). */
24
- ensureSchema(): Promise<void>;
25
- saveChallenge(id: string, challenge: string, invitationId?: string): Promise<void>;
26
- getChallenge(id: string): Promise<{
27
- challenge: string;
28
- invitationId: string | null;
29
- } | null>;
30
- deleteChallenge(id: string): Promise<void>;
31
- purgeExpiredChallenges(): Promise<void>;
32
- isRegistrationOpen(): Promise<boolean>;
33
- createUser(params: {
34
- did: string;
35
- pk: string;
36
- fullName?: string;
37
- email?: string;
38
- sourceProvider: string;
39
- ip?: string;
40
- domain?: string;
41
- }): Promise<void>;
42
- getUserByDid(did: string): Promise<StoredUser | null>;
43
- updateLastLogin(did: string, ip?: string, domain?: string): Promise<void>;
44
- incrementPasskeyCount(did: string): Promise<void>;
45
- getUserCount(): Promise<number>;
46
- getUsers(opts: {
47
- page: number;
48
- pageSize: number;
49
- role?: string;
50
- search?: string;
51
- approved?: number;
52
- sourceProvider?: string;
53
- }): Promise<{
54
- users: MemberInfo[];
55
- total: number;
56
- }>;
57
- getMemberInfo(did: string): Promise<MemberInfo | null>;
58
- updateUserRole(did: string, role: string): Promise<void>;
59
- updateUserApproval(did: string, approved: boolean): Promise<void>;
60
- updateUserProfile(did: string, fields: {
61
- fullName?: string;
62
- email?: string;
63
- avatar?: string;
64
- }): Promise<void>;
65
- removeUser(did: string): Promise<void>;
66
- setUserInviter(did: string, inviterDid: string): Promise<void>;
67
- /**
68
- * Atomically transfer ownership: set target to owner, caller to admin.
69
- * Uses D1 batch for atomicity.
70
- */
71
- transferOwnership(currentOwnerDid: string, newOwnerDid: string): Promise<void>;
72
- createInvitation(input: CreateInvitationInput): Promise<StoredInvitation>;
73
- getInvitation(id: string): Promise<StoredInvitation | null>;
74
- getInvitations(opts: {
75
- page: number;
76
- pageSize: number;
77
- instanceDid?: string;
78
- }): Promise<{
79
- invitations: InvitationInfo[];
80
- total: number;
81
- }>;
82
- /**
83
- * Atomically increment useCount. Returns false if maxUses already reached.
84
- */
85
- incrementInvitationUseCount(id: string): Promise<boolean>;
86
- updateInvitationStatus(id: string, status: string): Promise<void>;
87
- deleteInvitation(id: string): Promise<void>;
88
- purgeExpiredInvitations(): Promise<void>;
89
- createAuditLog(input: CreateAuditLogInput): Promise<void>;
90
- getAuditLogs(opts: {
91
- page: number;
92
- pageSize: number;
93
- action?: string;
94
- instanceDid?: string;
95
- }): Promise<{
96
- logs: AuditLogInfo[];
97
- total: number;
98
- }>;
99
- getAuditLogsForInstance(instanceDid: string, opts: {
100
- page: number;
101
- pageSize: number;
102
- action?: string;
103
- }): Promise<{
104
- logs: AuditLogInfo[];
105
- total: number;
106
- }>;
107
- getAuditLogById(id: number, instanceDid: string): Promise<AuditLogInfo | null>;
108
- createConnectedAccount(params: {
109
- did: string;
110
- pk: string;
111
- userDid: string;
112
- provider: string;
113
- id: string;
114
- extra: string;
115
- userInfo: string;
116
- ip?: string;
117
- }): Promise<void>;
118
- upsertConnectedAccount(account: {
119
- did: string;
120
- pk: string;
121
- userDid: string;
122
- provider: string;
123
- id: string;
124
- userInfo?: string;
125
- }): Promise<void>;
126
- getConnectedAccountById(credentialId: string): Promise<StoredConnectedAccount | null>;
127
- getConnectedAccountByDid(did: string): Promise<StoredConnectedAccount | null>;
128
- updateCounter(did: string, counter: number): Promise<void>;
129
- getConnectedAccountsByUserDid(userDid: string): Promise<StoredConnectedAccount[]>;
130
- getConnectedAccountByProviderAndUser(provider: string, userDid: string): Promise<StoredConnectedAccount | null>;
131
- deleteConnectedAccount(did: string): Promise<void>;
132
- createAccessKey(input: CreateAccessKeyInput): Promise<StoredAccessKey>;
133
- getAccessKeyById(accessKeyId: string): Promise<AccessKeyInfo | null>;
134
- getAccessKeys(opts: {
135
- page: number;
136
- pageSize: number;
137
- search?: string;
138
- createdBy?: string;
139
- instanceDid?: string;
140
- }): Promise<{
141
- keys: AccessKeyInfo[];
142
- total: number;
143
- }>;
144
- updateAccessKey(accessKeyId: string, input: UpdateAccessKeyInput): Promise<AccessKeyInfo | null>;
145
- deleteAccessKey(accessKeyId: string): Promise<void>;
146
- refreshAccessKeyLastUsed(accessKeyId: string): Promise<void>;
147
- ensureBuiltinPolicies(): Promise<void>;
148
- ensureDefaultRule(): Promise<void>;
149
- getAccessPolicies(instanceDid?: string): Promise<AccessPolicyInfo[]>;
150
- getAccessPolicy(id: string): Promise<AccessPolicyInfo | null>;
151
- createAccessPolicy(input: CreateAccessPolicyInput): Promise<AccessPolicyInfo>;
152
- updateAccessPolicy(id: string, input: UpdateAccessPolicyInput): Promise<AccessPolicyInfo>;
153
- deleteAccessPolicy(id: string): Promise<void>;
154
- getAccessPolicyRuleCount(id: string): Promise<number>;
155
- getSecurityRules(instanceDid?: string): Promise<SecurityRuleInfo[]>;
156
- getSecurityRule(id: string): Promise<SecurityRuleInfo | null>;
157
- createSecurityRule(input: CreateSecurityRuleInput): Promise<SecurityRuleInfo>;
158
- updateSecurityRule(id: string, input: UpdateSecurityRuleInput): Promise<SecurityRuleInfo>;
159
- deleteSecurityRule(id: string): Promise<void>;
160
- createMembership(userDid: string, instanceDid: string, role: string, invitedBy?: string): Promise<void>;
161
- getMembership(userDid: string, instanceDid: string): Promise<{
162
- user_did: string;
163
- instance_did: string;
164
- role: string;
165
- invited_by: string | null;
166
- joined_at: string;
167
- } | null>;
168
- listMemberships(instanceDid: string): Promise<Array<{
169
- user_did: string;
170
- instance_did: string;
171
- role: string;
172
- invited_by: string | null;
173
- joined_at: string;
174
- }>>;
175
- listMembershipsWithUserInfo(instanceDid: string): Promise<Array<{
176
- user_did: string;
177
- instance_did: string;
178
- role: string;
179
- invited_by: string | null;
180
- joined_at: string;
181
- fullName: string | null;
182
- email: string | null;
183
- avatar: string | null;
184
- approved: number;
185
- }>>;
186
- updateMembershipRole(userDid: string, instanceDid: string, role: string): Promise<void>;
187
- deleteMembership(userDid: string, instanceDid: string): Promise<void>;
188
- deleteMembershipsByInstance(instanceDid: string): Promise<void>;
189
- getSetting(instanceDid: string, key: string): Promise<string | null>;
190
- setSetting(instanceDid: string, key: string, value: string): Promise<void>;
191
- listSettings(instanceDid: string): Promise<Array<{
192
- key: string;
193
- value: string | null;
194
- updated_at: string;
195
- }>>;
196
- deleteSetting(instanceDid: string, key: string): Promise<void>;
197
- createVerifyCode(code: string, subject: string, purpose: string): Promise<number>;
198
- consumeVerifyCode(code: string): Promise<{
199
- id: number;
200
- subject: string;
201
- } | null>;
202
- isVerifyCodeSent(subject: string): Promise<boolean>;
203
- markVerifyCodeSent(code: string): Promise<void>;
204
- purgeExpiredVerifyCodes(): Promise<void>;
205
- createLoginTicket(ticket: string, did: string, targetOrigin?: string, ttlSeconds?: number): Promise<void>;
206
- getLoginTicket(ticket: string): Promise<{
207
- ticket: string;
208
- did: string;
209
- target_origin: string | null;
210
- } | null>;
211
- deleteLoginTicket(ticket: string): Promise<void>;
212
- purgeExpiredLoginTickets(): Promise<void>;
213
- seedInstanceDefaults(instanceDid: string): Promise<void>;
214
- getActiveRulesForInstance(instanceDid: string): Promise<RulesCacheEntry>;
215
- /**
216
- * Optimized query for enforcement: returns all enabled rules with inlined policy data.
217
- * Results are cached per-isolate with TTL + write-through invalidation.
218
- */
219
- getActiveRulesWithPolicies(): Promise<RulesCacheEntry>;
220
- }
221
- export {};
222
- //# sourceMappingURL=store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}