own-auth 0.1.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/dist/auth-engine.d.ts +227 -0
  2. package/dist/auth-engine.d.ts.map +1 -0
  3. package/dist/auth-engine.js +989 -0
  4. package/dist/auth-engine.js.map +1 -0
  5. package/dist/crypto.d.ts +8 -0
  6. package/dist/crypto.d.ts.map +1 -0
  7. package/dist/crypto.js +69 -0
  8. package/dist/crypto.js.map +1 -0
  9. package/dist/errors.d.ts +9 -0
  10. package/dist/errors.d.ts.map +1 -0
  11. package/dist/errors.js +19 -0
  12. package/dist/errors.js.map +1 -0
  13. package/dist/index.d.ts +14 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +7 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/memory-storage.d.ts +54 -0
  18. package/dist/memory-storage.d.ts.map +1 -0
  19. package/dist/memory-storage.js +244 -0
  20. package/dist/memory-storage.js.map +1 -0
  21. package/dist/normalise.d.ts +5 -0
  22. package/dist/normalise.d.ts.map +1 -0
  23. package/dist/normalise.js +18 -0
  24. package/dist/normalise.js.map +1 -0
  25. package/dist/permissions.d.ts +5 -0
  26. package/dist/permissions.d.ts.map +1 -0
  27. package/dist/permissions.js +31 -0
  28. package/dist/permissions.js.map +1 -0
  29. package/dist/providers.d.ts +35 -0
  30. package/dist/providers.d.ts.map +1 -0
  31. package/dist/providers.js +31 -0
  32. package/dist/providers.js.map +1 -0
  33. package/dist/rate-limit.d.ts +20 -0
  34. package/dist/rate-limit.d.ts.map +1 -0
  35. package/dist/rate-limit.js +33 -0
  36. package/dist/rate-limit.js.map +1 -0
  37. package/dist/storage.d.ts +43 -0
  38. package/dist/storage.d.ts.map +1 -0
  39. package/dist/storage.js +2 -0
  40. package/dist/storage.js.map +1 -0
  41. package/dist/types.d.ts +148 -0
  42. package/dist/types.d.ts.map +1 -0
  43. package/dist/types.js +2 -0
  44. package/dist/types.js.map +1 -0
  45. package/package.json +25 -0
@@ -0,0 +1,227 @@
1
+ import { type Permission } from "./permissions.js";
2
+ import { type EmailProvider, type SmsProvider } from "./providers.js";
3
+ import { type RateLimitStore } from "./rate-limit.js";
4
+ import type { AuthStorage } from "./storage.js";
5
+ import type { ApiKey, AuditEvent, CurrentSession, Invitation, JsonRecord, Organisation, OrganisationMember, OrganisationRole, RequestContext, Session, SmsOtpPurpose, TokenType, User, VerifiedApiKey } from "./types.js";
6
+ type TokenTtlConfig = Partial<Record<TokenType, number>>;
7
+ export interface OwnAuthOptions {
8
+ storage?: AuthStorage;
9
+ rateLimitStore?: RateLimitStore;
10
+ emailProvider?: EmailProvider;
11
+ smsProvider?: SmsProvider;
12
+ baseUrl?: string;
13
+ tokenPepper?: string;
14
+ exposeRawTokens?: boolean;
15
+ allowMagicLinkSignup?: boolean;
16
+ allowPhoneSignup?: boolean;
17
+ redirectAllowlist?: string[];
18
+ session?: {
19
+ ttlMs?: number;
20
+ idleTtlMs?: number;
21
+ };
22
+ tokenTtlMs?: TokenTtlConfig;
23
+ sms?: {
24
+ otpTtlMs?: number;
25
+ maxAttempts?: number;
26
+ codeLength?: number;
27
+ };
28
+ password?: {
29
+ minLength?: number;
30
+ };
31
+ }
32
+ export interface SessionResult {
33
+ user: User;
34
+ session: Session;
35
+ sessionToken: string;
36
+ }
37
+ export interface DeliveryResult {
38
+ sent: boolean;
39
+ expiresAt: Date | null;
40
+ token?: string;
41
+ code?: string;
42
+ url?: string;
43
+ }
44
+ export interface CreateUserInput {
45
+ email?: string;
46
+ phone?: string;
47
+ password?: string;
48
+ name?: string;
49
+ imageUrl?: string;
50
+ metadata?: JsonRecord;
51
+ }
52
+ export interface SignUpEmailPasswordInput {
53
+ email: string;
54
+ password: string;
55
+ name?: string;
56
+ metadata?: JsonRecord;
57
+ request?: RequestContext;
58
+ }
59
+ export interface SignInEmailPasswordInput {
60
+ email: string;
61
+ password: string;
62
+ request?: RequestContext;
63
+ }
64
+ export interface RequestTokenInput {
65
+ email: string;
66
+ redirectUrl?: string;
67
+ request?: RequestContext;
68
+ }
69
+ export interface RequestEmailVerificationInput {
70
+ email: string;
71
+ request?: RequestContext;
72
+ }
73
+ export interface VerifyTokenInput {
74
+ token: string;
75
+ request?: RequestContext;
76
+ }
77
+ export interface ResetPasswordInput {
78
+ token: string;
79
+ newPassword: string;
80
+ request?: RequestContext;
81
+ }
82
+ export interface RequestSmsOtpInput {
83
+ phone: string;
84
+ purpose?: SmsOtpPurpose;
85
+ userId?: string;
86
+ request?: RequestContext;
87
+ }
88
+ export interface VerifySmsOtpInput {
89
+ phone: string;
90
+ code: string;
91
+ purpose?: SmsOtpPurpose;
92
+ request?: RequestContext;
93
+ }
94
+ export interface SmsOtpVerificationResult {
95
+ user: User;
96
+ session: Session | null;
97
+ sessionToken: string | null;
98
+ }
99
+ export interface CreateApiKeyInput {
100
+ name: string;
101
+ userId?: string;
102
+ organisationId?: string;
103
+ scopes?: string[];
104
+ expiresAt?: Date;
105
+ metadata?: JsonRecord;
106
+ actorUserId?: string;
107
+ request?: RequestContext;
108
+ }
109
+ export interface CreatedApiKey {
110
+ apiKey: ApiKey;
111
+ rawKey: string;
112
+ }
113
+ export interface CreateOrganisationInput {
114
+ name: string;
115
+ slug?: string;
116
+ ownerUserId: string;
117
+ metadata?: JsonRecord;
118
+ request?: RequestContext;
119
+ }
120
+ export interface InviteMemberInput {
121
+ organisationId: string;
122
+ email: string;
123
+ role?: OrganisationRole;
124
+ invitedByUserId: string;
125
+ request?: RequestContext;
126
+ }
127
+ export interface InvitationResult {
128
+ invitation: Invitation;
129
+ token?: string;
130
+ url?: string;
131
+ }
132
+ export declare class OwnAuth {
133
+ readonly storage: AuthStorage;
134
+ readonly rateLimitStore: RateLimitStore;
135
+ private readonly emailProvider;
136
+ private readonly smsProvider;
137
+ private readonly baseUrl;
138
+ private readonly tokenPepper;
139
+ private readonly exposeRawTokens;
140
+ private readonly allowMagicLinkSignup;
141
+ private readonly allowPhoneSignup;
142
+ private readonly redirectAllowlist;
143
+ private readonly sessionTtlMs;
144
+ private readonly sessionIdleTtlMs;
145
+ private readonly tokenTtls;
146
+ private readonly smsOtpTtlMs;
147
+ private readonly smsMaxAttempts;
148
+ private readonly smsCodeLength;
149
+ private readonly passwordMinLength;
150
+ constructor(options?: OwnAuthOptions);
151
+ createUser(input: CreateUserInput): Promise<User>;
152
+ signUpEmailPassword(input: SignUpEmailPasswordInput): Promise<SessionResult>;
153
+ signInEmailPassword(input: SignInEmailPasswordInput): Promise<SessionResult>;
154
+ getCurrentSession(sessionToken: string): Promise<CurrentSession | null>;
155
+ requireCurrentSession(sessionToken: string): Promise<CurrentSession>;
156
+ signOut(sessionToken: string, context?: RequestContext): Promise<void>;
157
+ revokeAllSessions(userId: string, reason?: string): Promise<number>;
158
+ requestMagicLink(input: RequestTokenInput): Promise<DeliveryResult>;
159
+ verifyMagicLink(input: VerifyTokenInput): Promise<SessionResult>;
160
+ requestEmailVerification(input: RequestEmailVerificationInput): Promise<DeliveryResult>;
161
+ verifyEmail(input: VerifyTokenInput): Promise<User>;
162
+ requestPasswordReset(input: RequestEmailVerificationInput): Promise<DeliveryResult>;
163
+ resetPassword(input: ResetPasswordInput): Promise<User>;
164
+ requestSmsOtp(input: RequestSmsOtpInput): Promise<DeliveryResult>;
165
+ verifySmsOtp(input: VerifySmsOtpInput): Promise<SmsOtpVerificationResult>;
166
+ createApiKey(input: CreateApiKeyInput): Promise<CreatedApiKey>;
167
+ verifyApiKey(rawKey: string, requiredScopes?: string[]): Promise<VerifiedApiKey>;
168
+ revokeApiKey(keyPrefixOrId: string, revokedBy?: string, context?: RequestContext): Promise<ApiKey>;
169
+ createOrganisation(input: CreateOrganisationInput): Promise<{
170
+ organisation: Organisation;
171
+ ownerMembership: OrganisationMember;
172
+ }>;
173
+ updateOrganisation(organisationId: string, input: {
174
+ actorUserId: string;
175
+ name?: string;
176
+ slug?: string;
177
+ metadata?: JsonRecord;
178
+ request?: RequestContext;
179
+ }): Promise<Organisation>;
180
+ inviteMember(input: InviteMemberInput): Promise<InvitationResult>;
181
+ acceptInvitation(input: {
182
+ token: string;
183
+ userId?: string;
184
+ request?: RequestContext;
185
+ }): Promise<{
186
+ invitation: Invitation;
187
+ user: User;
188
+ member: OrganisationMember;
189
+ }>;
190
+ changeMemberRole(input: {
191
+ organisationId: string;
192
+ memberId: string;
193
+ role: OrganisationRole;
194
+ actorUserId: string;
195
+ request?: RequestContext;
196
+ }): Promise<OrganisationMember>;
197
+ removeMember(input: {
198
+ organisationId: string;
199
+ memberId: string;
200
+ actorUserId: string;
201
+ request?: RequestContext;
202
+ }): Promise<OrganisationMember>;
203
+ checkPermission(organisationId: string, userId: string, permission: Permission): Promise<boolean>;
204
+ requirePermission(organisationId: string, userId: string, permission: Permission): Promise<OrganisationMember>;
205
+ listAuditEvents(filter?: {
206
+ userId?: string;
207
+ organisationId?: string;
208
+ apiKeyId?: string;
209
+ }): Promise<AuditEvent[]>;
210
+ private createSession;
211
+ private accountFor;
212
+ private issueToken;
213
+ private consumeToken;
214
+ private hashPasswordInput;
215
+ private hash;
216
+ private delivery;
217
+ private buildUrl;
218
+ private assertRedirectAllowed;
219
+ private extractApiKeyPrefix;
220
+ private rateLimit;
221
+ private assertUserEnabled;
222
+ private audit;
223
+ private uniqueOrganisationSlug;
224
+ }
225
+ export declare function createOwnAuth(options?: OwnAuthOptions): OwnAuth;
226
+ export {};
227
+ //# sourceMappingURL=auth-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-engine.d.ts","sourceRoot":"","sources":["../src/auth-engine.ts"],"names":[],"mappings":"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"}