@companyio/auth-contracts 0.1.7 → 0.1.11

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.
@@ -0,0 +1,405 @@
1
+ import { z } from 'zod';
2
+ export declare const FUEL_ROLES: readonly ["owner", "manager", "staff", "accountant"];
3
+ export declare const FuelRoleSchema: z.ZodEnum<["owner", "manager", "staff", "accountant"]>;
4
+ export type FuelRole = (typeof FUEL_ROLES)[number];
5
+ export declare const ASSIGNABLE_FUEL_ROLES: readonly ["manager", "staff", "accountant"];
6
+ export declare const AssignableFuelRoleSchema: z.ZodEnum<["manager", "staff", "accountant"]>;
7
+ export type AssignableFuelRole = (typeof ASSIGNABLE_FUEL_ROLES)[number];
8
+ export declare const isFuelRole: (value: unknown) => value is FuelRole;
9
+ export declare const isOwnerRole: (role: FuelRole) => role is "owner";
10
+ export declare const canApprove: (role: FuelRole) => role is "owner" | "manager";
11
+ export type User = {
12
+ id: string;
13
+ email: string;
14
+ name: string;
15
+ role: FuelRole;
16
+ isActive: boolean;
17
+ firstName?: string;
18
+ lastName?: string;
19
+ phone?: string;
20
+ bio?: string;
21
+ facebookUrl?: string;
22
+ xUrl?: string;
23
+ linkedinUrl?: string;
24
+ instagramUrl?: string;
25
+ main_business_id: string;
26
+ branch_id: string;
27
+ avatarUrl?: string;
28
+ createdAt: string;
29
+ updatedAt: string;
30
+ };
31
+ export declare const UserSchema: z.ZodObject<{
32
+ id: z.ZodString;
33
+ email: z.ZodString;
34
+ name: z.ZodString;
35
+ role: z.ZodEnum<["owner", "manager", "staff", "accountant"]>;
36
+ isActive: z.ZodBoolean;
37
+ firstName: z.ZodOptional<z.ZodString>;
38
+ lastName: z.ZodOptional<z.ZodString>;
39
+ phone: z.ZodOptional<z.ZodString>;
40
+ bio: z.ZodOptional<z.ZodString>;
41
+ facebookUrl: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>>;
42
+ xUrl: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>>;
43
+ linkedinUrl: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>>;
44
+ instagramUrl: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>>;
45
+ main_business_id: z.ZodString;
46
+ branch_id: z.ZodString;
47
+ avatarUrl: z.ZodOptional<z.ZodString>;
48
+ createdAt: z.ZodString;
49
+ updatedAt: z.ZodString;
50
+ }, "strip", z.ZodTypeAny, {
51
+ id: string;
52
+ email: string;
53
+ name: string;
54
+ role: "owner" | "manager" | "staff" | "accountant";
55
+ isActive: boolean;
56
+ main_business_id: string;
57
+ branch_id: string;
58
+ createdAt: string;
59
+ updatedAt: string;
60
+ firstName?: string | undefined;
61
+ lastName?: string | undefined;
62
+ phone?: string | undefined;
63
+ bio?: string | undefined;
64
+ facebookUrl?: string | undefined;
65
+ xUrl?: string | undefined;
66
+ linkedinUrl?: string | undefined;
67
+ instagramUrl?: string | undefined;
68
+ avatarUrl?: string | undefined;
69
+ }, {
70
+ id: string;
71
+ email: string;
72
+ name: string;
73
+ role: "owner" | "manager" | "staff" | "accountant";
74
+ isActive: boolean;
75
+ main_business_id: string;
76
+ branch_id: string;
77
+ createdAt: string;
78
+ updatedAt: string;
79
+ firstName?: string | undefined;
80
+ lastName?: string | undefined;
81
+ phone?: string | undefined;
82
+ bio?: string | undefined;
83
+ facebookUrl?: string | undefined;
84
+ xUrl?: string | undefined;
85
+ linkedinUrl?: string | undefined;
86
+ instagramUrl?: string | undefined;
87
+ avatarUrl?: string | undefined;
88
+ }>;
89
+ export declare const parseUser: (value: unknown) => User;
90
+ export type Organization = {
91
+ id: string;
92
+ name: string;
93
+ slug: string;
94
+ role: 'owner' | 'admin' | 'member';
95
+ main_business_id: string;
96
+ branch_id: string;
97
+ };
98
+ export declare const OrganizationSchema: z.ZodObject<{
99
+ id: z.ZodString;
100
+ name: z.ZodString;
101
+ slug: z.ZodString;
102
+ role: z.ZodEnum<["owner", "admin", "member"]>;
103
+ main_business_id: z.ZodString;
104
+ branch_id: z.ZodString;
105
+ }, "strip", z.ZodTypeAny, {
106
+ id: string;
107
+ name: string;
108
+ role: "owner" | "admin" | "member";
109
+ main_business_id: string;
110
+ branch_id: string;
111
+ slug: string;
112
+ }, {
113
+ id: string;
114
+ name: string;
115
+ role: "owner" | "admin" | "member";
116
+ main_business_id: string;
117
+ branch_id: string;
118
+ slug: string;
119
+ }>;
120
+ export type AuthSession = {
121
+ accessToken: string;
122
+ expiresAt: number;
123
+ user: User;
124
+ };
125
+ export declare const SessionSchema: z.ZodObject<{
126
+ accessToken: z.ZodString;
127
+ expiresAt: z.ZodNumber;
128
+ user: z.ZodObject<{
129
+ id: z.ZodString;
130
+ email: z.ZodString;
131
+ name: z.ZodString;
132
+ role: z.ZodEnum<["owner", "manager", "staff", "accountant"]>;
133
+ isActive: z.ZodBoolean;
134
+ firstName: z.ZodOptional<z.ZodString>;
135
+ lastName: z.ZodOptional<z.ZodString>;
136
+ phone: z.ZodOptional<z.ZodString>;
137
+ bio: z.ZodOptional<z.ZodString>;
138
+ facebookUrl: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>>;
139
+ xUrl: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>>;
140
+ linkedinUrl: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>>;
141
+ instagramUrl: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>>;
142
+ main_business_id: z.ZodString;
143
+ branch_id: z.ZodString;
144
+ avatarUrl: z.ZodOptional<z.ZodString>;
145
+ createdAt: z.ZodString;
146
+ updatedAt: z.ZodString;
147
+ }, "strip", z.ZodTypeAny, {
148
+ id: string;
149
+ email: string;
150
+ name: string;
151
+ role: "owner" | "manager" | "staff" | "accountant";
152
+ isActive: boolean;
153
+ main_business_id: string;
154
+ branch_id: string;
155
+ createdAt: string;
156
+ updatedAt: string;
157
+ firstName?: string | undefined;
158
+ lastName?: string | undefined;
159
+ phone?: string | undefined;
160
+ bio?: string | undefined;
161
+ facebookUrl?: string | undefined;
162
+ xUrl?: string | undefined;
163
+ linkedinUrl?: string | undefined;
164
+ instagramUrl?: string | undefined;
165
+ avatarUrl?: string | undefined;
166
+ }, {
167
+ id: string;
168
+ email: string;
169
+ name: string;
170
+ role: "owner" | "manager" | "staff" | "accountant";
171
+ isActive: boolean;
172
+ main_business_id: string;
173
+ branch_id: string;
174
+ createdAt: string;
175
+ updatedAt: string;
176
+ firstName?: string | undefined;
177
+ lastName?: string | undefined;
178
+ phone?: string | undefined;
179
+ bio?: string | undefined;
180
+ facebookUrl?: string | undefined;
181
+ xUrl?: string | undefined;
182
+ linkedinUrl?: string | undefined;
183
+ instagramUrl?: string | undefined;
184
+ avatarUrl?: string | undefined;
185
+ }>;
186
+ }, "strip", z.ZodTypeAny, {
187
+ accessToken: string;
188
+ expiresAt: number;
189
+ user: {
190
+ id: string;
191
+ email: string;
192
+ name: string;
193
+ role: "owner" | "manager" | "staff" | "accountant";
194
+ isActive: boolean;
195
+ main_business_id: string;
196
+ branch_id: string;
197
+ createdAt: string;
198
+ updatedAt: string;
199
+ firstName?: string | undefined;
200
+ lastName?: string | undefined;
201
+ phone?: string | undefined;
202
+ bio?: string | undefined;
203
+ facebookUrl?: string | undefined;
204
+ xUrl?: string | undefined;
205
+ linkedinUrl?: string | undefined;
206
+ instagramUrl?: string | undefined;
207
+ avatarUrl?: string | undefined;
208
+ };
209
+ }, {
210
+ accessToken: string;
211
+ expiresAt: number;
212
+ user: {
213
+ id: string;
214
+ email: string;
215
+ name: string;
216
+ role: "owner" | "manager" | "staff" | "accountant";
217
+ isActive: boolean;
218
+ main_business_id: string;
219
+ branch_id: string;
220
+ createdAt: string;
221
+ updatedAt: string;
222
+ firstName?: string | undefined;
223
+ lastName?: string | undefined;
224
+ phone?: string | undefined;
225
+ bio?: string | undefined;
226
+ facebookUrl?: string | undefined;
227
+ xUrl?: string | undefined;
228
+ linkedinUrl?: string | undefined;
229
+ instagramUrl?: string | undefined;
230
+ avatarUrl?: string | undefined;
231
+ };
232
+ }>;
233
+ export declare const parseSession: (value: unknown) => AuthSession;
234
+ export type AuthErrorCode = 'UNAUTHENTICATED' | 'FORBIDDEN' | 'INVALID_REQUEST' | 'NETWORK_ERROR' | 'UNKNOWN';
235
+ export type AuthError = {
236
+ code: AuthErrorCode;
237
+ message: string;
238
+ status?: number;
239
+ };
240
+ export type SignUpInput = {
241
+ name: string;
242
+ email: string;
243
+ password: string;
244
+ businessName: string;
245
+ };
246
+ export declare const SignUpSchema: z.ZodObject<{
247
+ name: z.ZodString;
248
+ email: z.ZodString;
249
+ password: z.ZodString;
250
+ businessName: z.ZodString;
251
+ }, "strip", z.ZodTypeAny, {
252
+ email: string;
253
+ name: string;
254
+ password: string;
255
+ businessName: string;
256
+ }, {
257
+ email: string;
258
+ name: string;
259
+ password: string;
260
+ businessName: string;
261
+ }>;
262
+ export type SignInInput = {
263
+ email: string;
264
+ password: string;
265
+ };
266
+ export declare const SignInSchema: z.ZodObject<{
267
+ email: z.ZodString;
268
+ password: z.ZodString;
269
+ }, "strip", z.ZodTypeAny, {
270
+ email: string;
271
+ password: string;
272
+ }, {
273
+ email: string;
274
+ password: string;
275
+ }>;
276
+ export type UpdateProfileInput = {
277
+ firstName: string;
278
+ lastName: string;
279
+ email: string;
280
+ phone: string;
281
+ bio: string;
282
+ facebookUrl: string;
283
+ xUrl: string;
284
+ linkedinUrl: string;
285
+ instagramUrl: string;
286
+ main_business_id: string;
287
+ branch_id: string;
288
+ };
289
+ export declare const UpdateProfileSchema: z.ZodObject<{
290
+ firstName: z.ZodString;
291
+ lastName: z.ZodString;
292
+ email: z.ZodString;
293
+ phone: z.ZodString;
294
+ bio: z.ZodString;
295
+ facebookUrl: z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>;
296
+ xUrl: z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>;
297
+ linkedinUrl: z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>;
298
+ instagramUrl: z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>;
299
+ main_business_id: z.ZodString;
300
+ branch_id: z.ZodString;
301
+ }, "strip", z.ZodTypeAny, {
302
+ email: string;
303
+ firstName: string;
304
+ lastName: string;
305
+ phone: string;
306
+ bio: string;
307
+ facebookUrl: string;
308
+ xUrl: string;
309
+ linkedinUrl: string;
310
+ instagramUrl: string;
311
+ main_business_id: string;
312
+ branch_id: string;
313
+ }, {
314
+ email: string;
315
+ firstName: string;
316
+ lastName: string;
317
+ phone: string;
318
+ bio: string;
319
+ facebookUrl: string;
320
+ xUrl: string;
321
+ linkedinUrl: string;
322
+ instagramUrl: string;
323
+ main_business_id: string;
324
+ branch_id: string;
325
+ }>;
326
+ export type AuthClientConfig = {
327
+ baseUrl: string;
328
+ clientId: string;
329
+ storage?: TokenStorage;
330
+ fetch?: typeof fetch;
331
+ };
332
+ export interface TokenStorage {
333
+ get(): Promise<string | null>;
334
+ set(token: string): Promise<void>;
335
+ clear(): Promise<void>;
336
+ }
337
+ export type AuthApi = {
338
+ session: AuthSession;
339
+ user: User;
340
+ organizations: Organization[];
341
+ };
342
+ export type CreateInvitation = {
343
+ email: string;
344
+ role: 'admin' | 'member';
345
+ };
346
+ export declare const CreateInvitationSchema: z.ZodObject<{
347
+ email: z.ZodString;
348
+ role: z.ZodDefault<z.ZodEnum<["admin", "member"]>>;
349
+ }, "strip", z.ZodTypeAny, {
350
+ email: string;
351
+ role: "admin" | "member";
352
+ }, {
353
+ email: string;
354
+ role?: "admin" | "member" | undefined;
355
+ }>;
356
+ export type CreateManagedUserInput = {
357
+ name: string;
358
+ email: string;
359
+ password: string;
360
+ role: AssignableFuelRole;
361
+ };
362
+ export declare const CreateManagedUserSchema: z.ZodObject<{
363
+ name: z.ZodString;
364
+ email: z.ZodString;
365
+ password: z.ZodString;
366
+ role: z.ZodEnum<["manager", "staff", "accountant"]>;
367
+ }, "strip", z.ZodTypeAny, {
368
+ email: string;
369
+ name: string;
370
+ role: "manager" | "staff" | "accountant";
371
+ password: string;
372
+ }, {
373
+ email: string;
374
+ name: string;
375
+ role: "manager" | "staff" | "accountant";
376
+ password: string;
377
+ }>;
378
+ export type UpdateManagedUserInput = {
379
+ name?: string;
380
+ email?: string;
381
+ password?: string;
382
+ role?: AssignableFuelRole;
383
+ isActive?: boolean;
384
+ };
385
+ export declare const UpdateManagedUserSchema: z.ZodObject<{
386
+ name: z.ZodOptional<z.ZodString>;
387
+ email: z.ZodOptional<z.ZodString>;
388
+ password: z.ZodOptional<z.ZodString>;
389
+ role: z.ZodOptional<z.ZodEnum<["manager", "staff", "accountant"]>>;
390
+ isActive: z.ZodOptional<z.ZodBoolean>;
391
+ }, "strip", z.ZodTypeAny, {
392
+ email?: string | undefined;
393
+ name?: string | undefined;
394
+ role?: "manager" | "staff" | "accountant" | undefined;
395
+ isActive?: boolean | undefined;
396
+ password?: string | undefined;
397
+ }, {
398
+ email?: string | undefined;
399
+ name?: string | undefined;
400
+ role?: "manager" | "staff" | "accountant" | undefined;
401
+ isActive?: boolean | undefined;
402
+ password?: string | undefined;
403
+ }>;
404
+ export declare const authErrorMessage: (caught: unknown, fallback?: string) => string;
405
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,127 @@
1
+ import { z } from 'zod';
2
+ export const FUEL_ROLES = ['owner', 'manager', 'staff', 'accountant'];
3
+ export const FuelRoleSchema = z.enum(FUEL_ROLES);
4
+ export const ASSIGNABLE_FUEL_ROLES = ['manager', 'staff', 'accountant'];
5
+ export const AssignableFuelRoleSchema = z.enum(ASSIGNABLE_FUEL_ROLES);
6
+ export const isFuelRole = (value) => typeof value === 'string' && FUEL_ROLES.includes(value);
7
+ export const isOwnerRole = (role) => role === 'owner';
8
+ export const canApprove = (role) => role === 'owner' || role === 'manager';
9
+ export const UserSchema = z.object({
10
+ id: z.string(),
11
+ email: z.string().email(),
12
+ name: z.string().min(1),
13
+ role: FuelRoleSchema,
14
+ isActive: z.boolean(),
15
+ firstName: z.string().optional(),
16
+ lastName: z.string().optional(),
17
+ phone: z.string().optional(),
18
+ bio: z.string().max(500).optional(),
19
+ facebookUrl: z.string().url().or(z.literal('')).optional(),
20
+ xUrl: z.string().url().or(z.literal('')).optional(),
21
+ linkedinUrl: z.string().url().or(z.literal('')).optional(),
22
+ instagramUrl: z.string().url().or(z.literal('')).optional(),
23
+ main_business_id: z.string().min(1),
24
+ branch_id: z.string().min(1),
25
+ avatarUrl: z.string().url().optional(),
26
+ createdAt: z.string().datetime(),
27
+ updatedAt: z.string().datetime(),
28
+ });
29
+ export const parseUser = (value) => {
30
+ const parsed = UserSchema.parse(value);
31
+ if (!isFuelRole(parsed.role))
32
+ throw new Error('User role is required.');
33
+ return {
34
+ id: parsed.id,
35
+ email: parsed.email,
36
+ name: parsed.name,
37
+ role: parsed.role,
38
+ isActive: parsed.isActive === true,
39
+ ...(parsed.firstName ? { firstName: parsed.firstName } : {}),
40
+ ...(parsed.lastName ? { lastName: parsed.lastName } : {}),
41
+ ...(parsed.phone ? { phone: parsed.phone } : {}),
42
+ ...(parsed.bio ? { bio: parsed.bio } : {}),
43
+ ...(parsed.facebookUrl ? { facebookUrl: parsed.facebookUrl } : {}),
44
+ ...(parsed.xUrl ? { xUrl: parsed.xUrl } : {}),
45
+ ...(parsed.linkedinUrl ? { linkedinUrl: parsed.linkedinUrl } : {}),
46
+ ...(parsed.instagramUrl ? { instagramUrl: parsed.instagramUrl } : {}),
47
+ main_business_id: parsed.main_business_id,
48
+ branch_id: parsed.branch_id,
49
+ ...(parsed.avatarUrl ? { avatarUrl: parsed.avatarUrl } : {}),
50
+ createdAt: parsed.createdAt,
51
+ updatedAt: parsed.updatedAt,
52
+ };
53
+ };
54
+ export const OrganizationSchema = z.object({
55
+ id: z.string(),
56
+ name: z.string().min(1),
57
+ slug: z.string().min(1),
58
+ role: z.enum(['owner', 'admin', 'member']),
59
+ main_business_id: z.string().min(1),
60
+ branch_id: z.string().min(1),
61
+ });
62
+ export const SessionSchema = z.object({
63
+ accessToken: z.string().min(1),
64
+ expiresAt: z.number().int().positive(),
65
+ user: UserSchema,
66
+ });
67
+ export const parseSession = (value) => {
68
+ const parsed = SessionSchema.parse(value);
69
+ return {
70
+ accessToken: parsed.accessToken,
71
+ expiresAt: parsed.expiresAt,
72
+ user: parseUser(parsed.user),
73
+ };
74
+ };
75
+ export const SignUpSchema = z.object({
76
+ name: z.string().min(1).max(80),
77
+ email: z.string().email(),
78
+ password: z.string().min(8).max(128),
79
+ businessName: z.string().min(1).max(120),
80
+ });
81
+ export const SignInSchema = z.object({
82
+ email: z.string().email(),
83
+ password: z.string().min(1),
84
+ });
85
+ export const UpdateProfileSchema = z.object({
86
+ firstName: z.string().min(1).max(80),
87
+ lastName: z.string().min(1).max(80),
88
+ email: z.string().email(),
89
+ phone: z.string().max(40),
90
+ bio: z.string().max(500),
91
+ facebookUrl: z.string().url().or(z.literal('')),
92
+ xUrl: z.string().url().or(z.literal('')),
93
+ linkedinUrl: z.string().url().or(z.literal('')),
94
+ instagramUrl: z.string().url().or(z.literal('')),
95
+ main_business_id: z.string().min(1),
96
+ branch_id: z.string().min(1),
97
+ });
98
+ export const CreateInvitationSchema = z.object({
99
+ email: z.string().email(),
100
+ role: z.enum(['admin', 'member']).default('member'),
101
+ });
102
+ export const CreateManagedUserSchema = z.object({
103
+ name: z.string().min(1).max(80),
104
+ email: z.string().email(),
105
+ password: z.string().min(8).max(128),
106
+ role: AssignableFuelRoleSchema,
107
+ });
108
+ export const UpdateManagedUserSchema = z.object({
109
+ name: z.string().min(1).max(80).optional(),
110
+ email: z.string().email().optional(),
111
+ password: z.string().min(8).max(128).optional(),
112
+ role: AssignableFuelRoleSchema.optional(),
113
+ isActive: z.boolean().optional(),
114
+ });
115
+ export const authErrorMessage = (caught, fallback = 'The request could not be completed.') => {
116
+ if (caught &&
117
+ typeof caught === 'object' &&
118
+ 'message' in caught &&
119
+ typeof caught.message === 'string' &&
120
+ caught.message.length > 0) {
121
+ return caught.message;
122
+ }
123
+ if (caught instanceof Error && caught.message)
124
+ return caught.message;
125
+ return fallback;
126
+ };
127
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@companyio/auth-contracts",
3
- "version": "0.1.7",
3
+ "version": "0.1.11",
4
4
  "description": "Shared authentication, user, organization, and permission contracts",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",