@spfn/auth 0.1.0-alpha.0 → 0.1.0-alpha.86

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 (144) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +320 -12
  3. package/dist/adapters/nextjs/api.d.ts +446 -0
  4. package/dist/adapters/nextjs/api.js +3279 -0
  5. package/dist/adapters/nextjs/api.js.map +1 -0
  6. package/dist/adapters/nextjs/server.d.ts +246 -0
  7. package/dist/adapters/nextjs/server.js +3645 -0
  8. package/dist/adapters/nextjs/server.js.map +1 -0
  9. package/dist/client.d.ts +2 -0
  10. package/dist/client.js +1 -0
  11. package/dist/client.js.map +1 -0
  12. package/dist/index.d.ts +14 -0
  13. package/dist/index.js +9098 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/lib/api/auth-codes-verify.d.ts +37 -0
  16. package/dist/lib/api/auth-codes-verify.js +2949 -0
  17. package/dist/lib/api/auth-codes-verify.js.map +1 -0
  18. package/dist/lib/api/auth-codes.d.ts +37 -0
  19. package/dist/lib/api/auth-codes.js +2949 -0
  20. package/dist/lib/api/auth-codes.js.map +1 -0
  21. package/dist/lib/api/auth-exists.d.ts +38 -0
  22. package/dist/lib/api/auth-exists.js +2949 -0
  23. package/dist/lib/api/auth-exists.js.map +1 -0
  24. package/dist/lib/api/auth-invitations-accept.d.ts +38 -0
  25. package/dist/lib/api/auth-invitations-accept.js +2883 -0
  26. package/dist/lib/api/auth-invitations-accept.js.map +1 -0
  27. package/dist/lib/api/auth-invitations-cancel.d.ts +37 -0
  28. package/dist/lib/api/auth-invitations-cancel.js +2883 -0
  29. package/dist/lib/api/auth-invitations-cancel.js.map +1 -0
  30. package/dist/lib/api/auth-invitations-delete.d.ts +36 -0
  31. package/dist/lib/api/auth-invitations-delete.js +2883 -0
  32. package/dist/lib/api/auth-invitations-delete.js.map +1 -0
  33. package/dist/lib/api/auth-invitations-resend.d.ts +37 -0
  34. package/dist/lib/api/auth-invitations-resend.js +2883 -0
  35. package/dist/lib/api/auth-invitations-resend.js.map +1 -0
  36. package/dist/lib/api/auth-invitations.d.ts +109 -0
  37. package/dist/lib/api/auth-invitations.js +2887 -0
  38. package/dist/lib/api/auth-invitations.js.map +1 -0
  39. package/dist/lib/api/auth-keys-rotate.d.ts +37 -0
  40. package/dist/lib/api/auth-keys-rotate.js +2949 -0
  41. package/dist/lib/api/auth-keys-rotate.js.map +1 -0
  42. package/dist/lib/api/auth-login.d.ts +39 -0
  43. package/dist/lib/api/auth-login.js +2949 -0
  44. package/dist/lib/api/auth-login.js.map +1 -0
  45. package/dist/lib/api/auth-logout.d.ts +36 -0
  46. package/dist/lib/api/auth-logout.js +2949 -0
  47. package/dist/lib/api/auth-logout.js.map +1 -0
  48. package/dist/lib/api/auth-me.d.ts +50 -0
  49. package/dist/lib/api/auth-me.js +2949 -0
  50. package/dist/lib/api/auth-me.js.map +1 -0
  51. package/dist/lib/api/auth-password.d.ts +36 -0
  52. package/dist/lib/api/auth-password.js +2949 -0
  53. package/dist/lib/api/auth-password.js.map +1 -0
  54. package/dist/lib/api/auth-register.d.ts +38 -0
  55. package/dist/lib/api/auth-register.js +2949 -0
  56. package/dist/lib/api/auth-register.js.map +1 -0
  57. package/dist/lib/api/index.d.ts +356 -0
  58. package/dist/lib/api/index.js +3261 -0
  59. package/dist/lib/api/index.js.map +1 -0
  60. package/dist/lib/config.d.ts +70 -0
  61. package/dist/lib/config.js +64 -0
  62. package/dist/lib/config.js.map +1 -0
  63. package/dist/lib/contracts/auth.d.ts +302 -0
  64. package/dist/lib/contracts/auth.js +2951 -0
  65. package/dist/lib/contracts/auth.js.map +1 -0
  66. package/dist/lib/contracts/index.d.ts +3 -0
  67. package/dist/lib/contracts/index.js +3190 -0
  68. package/dist/lib/contracts/index.js.map +1 -0
  69. package/dist/lib/contracts/invitation.d.ts +243 -0
  70. package/dist/lib/contracts/invitation.js +2883 -0
  71. package/dist/lib/contracts/invitation.js.map +1 -0
  72. package/dist/lib/crypto.d.ts +76 -0
  73. package/dist/lib/crypto.js +127 -0
  74. package/dist/lib/crypto.js.map +1 -0
  75. package/dist/lib/index.d.ts +4 -0
  76. package/dist/lib/index.js +313 -0
  77. package/dist/lib/index.js.map +1 -0
  78. package/dist/lib/session.d.ts +68 -0
  79. package/dist/lib/session.js +126 -0
  80. package/dist/lib/session.js.map +1 -0
  81. package/dist/lib/types/api.d.ts +45 -0
  82. package/dist/lib/types/api.js +1 -0
  83. package/dist/lib/types/api.js.map +1 -0
  84. package/dist/lib/types/index.d.ts +3 -0
  85. package/dist/lib/types/index.js +2647 -0
  86. package/dist/lib/types/index.js.map +1 -0
  87. package/dist/lib/types/schemas.d.ts +45 -0
  88. package/dist/lib/types/schemas.js +2647 -0
  89. package/dist/lib/types/schemas.js.map +1 -0
  90. package/dist/lib.d.ts +2 -0
  91. package/dist/lib.js +1 -0
  92. package/dist/lib.js.map +1 -0
  93. package/dist/plugin.d.ts +12 -0
  94. package/dist/plugin.js +9081 -0
  95. package/dist/plugin.js.map +1 -0
  96. package/dist/server/entities/index.d.ts +11 -0
  97. package/dist/server/entities/index.js +395 -0
  98. package/dist/server/entities/index.js.map +1 -0
  99. package/dist/server/entities/invitations.d.ts +241 -0
  100. package/dist/server/entities/invitations.js +184 -0
  101. package/dist/server/entities/invitations.js.map +1 -0
  102. package/dist/server/entities/permissions.d.ts +196 -0
  103. package/dist/server/entities/permissions.js +49 -0
  104. package/dist/server/entities/permissions.js.map +1 -0
  105. package/dist/server/entities/role-permissions.d.ts +107 -0
  106. package/dist/server/entities/role-permissions.js +115 -0
  107. package/dist/server/entities/role-permissions.js.map +1 -0
  108. package/dist/server/entities/roles.d.ts +196 -0
  109. package/dist/server/entities/roles.js +50 -0
  110. package/dist/server/entities/roles.js.map +1 -0
  111. package/dist/server/entities/schema.d.ts +14 -0
  112. package/dist/server/entities/schema.js +7 -0
  113. package/dist/server/entities/schema.js.map +1 -0
  114. package/dist/server/entities/user-permissions.d.ts +163 -0
  115. package/dist/server/entities/user-permissions.js +193 -0
  116. package/dist/server/entities/user-permissions.js.map +1 -0
  117. package/dist/server/entities/user-public-keys.d.ts +227 -0
  118. package/dist/server/entities/user-public-keys.js +156 -0
  119. package/dist/server/entities/user-public-keys.js.map +1 -0
  120. package/dist/server/entities/user-social-accounts.d.ts +189 -0
  121. package/dist/server/entities/user-social-accounts.js +149 -0
  122. package/dist/server/entities/user-social-accounts.js.map +1 -0
  123. package/dist/server/entities/users.d.ts +235 -0
  124. package/dist/server/entities/users.js +117 -0
  125. package/dist/server/entities/users.js.map +1 -0
  126. package/dist/server/entities/verification-codes.d.ts +191 -0
  127. package/dist/server/entities/verification-codes.js +49 -0
  128. package/dist/server/entities/verification-codes.js.map +1 -0
  129. package/dist/server/routes/auth/index.d.ts +10 -0
  130. package/dist/server/routes/auth/index.js +4458 -0
  131. package/dist/server/routes/auth/index.js.map +1 -0
  132. package/dist/server/routes/index.d.ts +6 -0
  133. package/dist/server/routes/index.js +6582 -0
  134. package/dist/server/routes/index.js.map +1 -0
  135. package/dist/server/routes/invitations/index.d.ts +10 -0
  136. package/dist/server/routes/invitations/index.js +4395 -0
  137. package/dist/server/routes/invitations/index.js.map +1 -0
  138. package/dist/server.d.ts +1272 -0
  139. package/dist/server.js +2274 -0
  140. package/dist/server.js.map +1 -0
  141. package/migrations/0000_complex_swordsman.sql +167 -0
  142. package/migrations/meta/0000_snapshot.json +1397 -0
  143. package/migrations/meta/_journal.json +13 -0
  144. package/package.json +59 -24
@@ -0,0 +1,243 @@
1
+ import * as _sinclair_typebox from '@sinclair/typebox';
2
+
3
+ /**
4
+ * @spfn/auth - Invitation API Contracts
5
+ *
6
+ * Type-safe API contracts for user invitation operations
7
+ */
8
+ /**
9
+ * GET /_auth/invitations/:token - Get invitation details (public)
10
+ *
11
+ * Retrieves invitation information for acceptance page
12
+ */
13
+ declare const getInvitationContract: {
14
+ readonly method: "GET";
15
+ readonly path: "/_auth/invitations/:token";
16
+ readonly params: _sinclair_typebox.TObject<{
17
+ token: _sinclair_typebox.TString;
18
+ }>;
19
+ readonly response: _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
20
+ success: _sinclair_typebox.TLiteral<true>;
21
+ data: _sinclair_typebox.TObject<{
22
+ email: _sinclair_typebox.TString;
23
+ role: _sinclair_typebox.TString;
24
+ roleDisplayName: _sinclair_typebox.TString;
25
+ invitedBy: _sinclair_typebox.TString;
26
+ expiresAt: _sinclair_typebox.TString;
27
+ metadata: _sinclair_typebox.TOptional<_sinclair_typebox.TAny>;
28
+ }>;
29
+ message: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
30
+ }>, _sinclair_typebox.TObject<{
31
+ success: _sinclair_typebox.TLiteral<false>;
32
+ error: _sinclair_typebox.TObject<{
33
+ code: _sinclair_typebox.TString;
34
+ message: _sinclair_typebox.TString;
35
+ details: _sinclair_typebox.TOptional<_sinclair_typebox.TAny>;
36
+ }>;
37
+ }>]>;
38
+ };
39
+ /**
40
+ * POST /_auth/invitations/accept - Accept invitation (public)
41
+ *
42
+ * Accepts invitation and creates user account with provided credentials
43
+ */
44
+ declare const acceptInvitationContract: {
45
+ readonly method: "POST";
46
+ readonly path: "/_auth/invitations/accept";
47
+ readonly body: _sinclair_typebox.TObject<{
48
+ token: _sinclair_typebox.TString;
49
+ password: _sinclair_typebox.TString;
50
+ publicKey: _sinclair_typebox.TString;
51
+ keyId: _sinclair_typebox.TString;
52
+ fingerprint: _sinclair_typebox.TString;
53
+ algorithm: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"ES256">, _sinclair_typebox.TLiteral<"RS256">]>;
54
+ }>;
55
+ readonly response: _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
56
+ success: _sinclair_typebox.TLiteral<true>;
57
+ data: _sinclair_typebox.TObject<{
58
+ userId: _sinclair_typebox.TNumber;
59
+ email: _sinclair_typebox.TString;
60
+ role: _sinclair_typebox.TString;
61
+ }>;
62
+ message: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
63
+ }>, _sinclair_typebox.TObject<{
64
+ success: _sinclair_typebox.TLiteral<false>;
65
+ error: _sinclair_typebox.TObject<{
66
+ code: _sinclair_typebox.TString;
67
+ message: _sinclair_typebox.TString;
68
+ details: _sinclair_typebox.TOptional<_sinclair_typebox.TAny>;
69
+ }>;
70
+ }>]>;
71
+ };
72
+ /**
73
+ * POST /_auth/invitations - Create new invitation (admin)
74
+ *
75
+ * Creates and sends invitation to new user
76
+ * Requires: admin role or user:invite permission
77
+ */
78
+ declare const createInvitationContract: {
79
+ readonly method: "POST";
80
+ readonly path: "/_auth/invitations";
81
+ readonly body: _sinclair_typebox.TObject<{
82
+ email: _sinclair_typebox.TString;
83
+ roleId: _sinclair_typebox.TNumber;
84
+ expiresInDays: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
85
+ metadata: _sinclair_typebox.TOptional<_sinclair_typebox.TAny>;
86
+ }>;
87
+ readonly response: _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
88
+ success: _sinclair_typebox.TLiteral<true>;
89
+ data: _sinclair_typebox.TObject<{
90
+ id: _sinclair_typebox.TNumber;
91
+ email: _sinclair_typebox.TString;
92
+ token: _sinclair_typebox.TString;
93
+ roleId: _sinclair_typebox.TNumber;
94
+ expiresAt: _sinclair_typebox.TString;
95
+ invitationUrl: _sinclair_typebox.TString;
96
+ }>;
97
+ message: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
98
+ }>, _sinclair_typebox.TObject<{
99
+ success: _sinclair_typebox.TLiteral<false>;
100
+ error: _sinclair_typebox.TObject<{
101
+ code: _sinclair_typebox.TString;
102
+ message: _sinclair_typebox.TString;
103
+ details: _sinclair_typebox.TOptional<_sinclair_typebox.TAny>;
104
+ }>;
105
+ }>]>;
106
+ };
107
+ /**
108
+ * GET /_auth/invitations - List invitations (admin)
109
+ *
110
+ * Retrieves paginated list of invitations with filtering
111
+ * Requires: admin role
112
+ */
113
+ declare const listInvitationsContract: {
114
+ readonly method: "GET";
115
+ readonly path: "/_auth/invitations";
116
+ readonly query: _sinclair_typebox.TObject<{
117
+ status: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"pending">, _sinclair_typebox.TLiteral<"accepted">, _sinclair_typebox.TLiteral<"expired">, _sinclair_typebox.TLiteral<"cancelled">]>>;
118
+ page: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
119
+ limit: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
120
+ }>;
121
+ readonly response: _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
122
+ success: _sinclair_typebox.TLiteral<true>;
123
+ data: _sinclair_typebox.TObject<{
124
+ invitations: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{
125
+ id: _sinclair_typebox.TNumber;
126
+ email: _sinclair_typebox.TString;
127
+ status: _sinclair_typebox.TString;
128
+ role: _sinclair_typebox.TObject<{
129
+ id: _sinclair_typebox.TNumber;
130
+ name: _sinclair_typebox.TString;
131
+ displayName: _sinclair_typebox.TString;
132
+ }>;
133
+ inviter: _sinclair_typebox.TObject<{
134
+ id: _sinclair_typebox.TNumber;
135
+ email: _sinclair_typebox.TString;
136
+ }>;
137
+ createdAt: _sinclair_typebox.TString;
138
+ expiresAt: _sinclair_typebox.TString;
139
+ acceptedAt: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
140
+ cancelledAt: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
141
+ }>>;
142
+ total: _sinclair_typebox.TNumber;
143
+ page: _sinclair_typebox.TNumber;
144
+ limit: _sinclair_typebox.TNumber;
145
+ totalPages: _sinclair_typebox.TNumber;
146
+ }>;
147
+ message: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
148
+ }>, _sinclair_typebox.TObject<{
149
+ success: _sinclair_typebox.TLiteral<false>;
150
+ error: _sinclair_typebox.TObject<{
151
+ code: _sinclair_typebox.TString;
152
+ message: _sinclair_typebox.TString;
153
+ details: _sinclair_typebox.TOptional<_sinclair_typebox.TAny>;
154
+ }>;
155
+ }>]>;
156
+ };
157
+ /**
158
+ * POST /_auth/invitations/cancel - Cancel invitation (admin)
159
+ *
160
+ * Cancels pending invitation
161
+ * Requires: admin role or invitation owner
162
+ */
163
+ declare const cancelInvitationContract: {
164
+ readonly method: "POST";
165
+ readonly path: "/_auth/invitations/cancel";
166
+ readonly body: _sinclair_typebox.TObject<{
167
+ id: _sinclair_typebox.TNumber;
168
+ reason: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
169
+ }>;
170
+ readonly response: _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
171
+ success: _sinclair_typebox.TLiteral<true>;
172
+ data: _sinclair_typebox.TObject<{
173
+ success: _sinclair_typebox.TBoolean;
174
+ cancelledAt: _sinclair_typebox.TString;
175
+ }>;
176
+ message: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
177
+ }>, _sinclair_typebox.TObject<{
178
+ success: _sinclair_typebox.TLiteral<false>;
179
+ error: _sinclair_typebox.TObject<{
180
+ code: _sinclair_typebox.TString;
181
+ message: _sinclair_typebox.TString;
182
+ details: _sinclair_typebox.TOptional<_sinclair_typebox.TAny>;
183
+ }>;
184
+ }>]>;
185
+ };
186
+ /**
187
+ * POST /_auth/invitations/resend - Resend invitation (admin)
188
+ *
189
+ * Resends invitation email and extends expiration
190
+ * Requires: admin role
191
+ */
192
+ declare const resendInvitationContract: {
193
+ readonly method: "POST";
194
+ readonly path: "/_auth/invitations/resend";
195
+ readonly body: _sinclair_typebox.TObject<{
196
+ id: _sinclair_typebox.TNumber;
197
+ expiresInDays: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
198
+ }>;
199
+ readonly response: _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
200
+ success: _sinclair_typebox.TLiteral<true>;
201
+ data: _sinclair_typebox.TObject<{
202
+ success: _sinclair_typebox.TBoolean;
203
+ expiresAt: _sinclair_typebox.TString;
204
+ }>;
205
+ message: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
206
+ }>, _sinclair_typebox.TObject<{
207
+ success: _sinclair_typebox.TLiteral<false>;
208
+ error: _sinclair_typebox.TObject<{
209
+ code: _sinclair_typebox.TString;
210
+ message: _sinclair_typebox.TString;
211
+ details: _sinclair_typebox.TOptional<_sinclair_typebox.TAny>;
212
+ }>;
213
+ }>]>;
214
+ };
215
+ /**
216
+ * DELETE /_auth/invitations/delete - Delete invitation (superadmin)
217
+ *
218
+ * Permanently deletes invitation record
219
+ * Requires: superadmin role
220
+ */
221
+ declare const deleteInvitationContract: {
222
+ readonly method: "POST";
223
+ readonly path: "/_auth/invitations/delete";
224
+ readonly body: _sinclair_typebox.TObject<{
225
+ id: _sinclair_typebox.TNumber;
226
+ }>;
227
+ readonly response: _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
228
+ success: _sinclair_typebox.TLiteral<true>;
229
+ data: _sinclair_typebox.TObject<{
230
+ success: _sinclair_typebox.TBoolean;
231
+ }>;
232
+ message: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
233
+ }>, _sinclair_typebox.TObject<{
234
+ success: _sinclair_typebox.TLiteral<false>;
235
+ error: _sinclair_typebox.TObject<{
236
+ code: _sinclair_typebox.TString;
237
+ message: _sinclair_typebox.TString;
238
+ details: _sinclair_typebox.TOptional<_sinclair_typebox.TAny>;
239
+ }>;
240
+ }>]>;
241
+ };
242
+
243
+ export { acceptInvitationContract, cancelInvitationContract, createInvitationContract, deleteInvitationContract, getInvitationContract, listInvitationsContract, resendInvitationContract };