@dailyautomations/auth 1.0.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 (49) hide show
  1. package/dist/client.d.ts +56 -0
  2. package/dist/client.d.ts.map +1 -0
  3. package/dist/client.js +169 -0
  4. package/dist/client.js.map +1 -0
  5. package/dist/errors.d.ts +16 -0
  6. package/dist/errors.d.ts.map +1 -0
  7. package/dist/errors.js +49 -0
  8. package/dist/errors.js.map +1 -0
  9. package/dist/hooks/index.d.ts +7 -0
  10. package/dist/hooks/index.d.ts.map +1 -0
  11. package/dist/hooks/index.js +15 -0
  12. package/dist/hooks/index.js.map +1 -0
  13. package/dist/hooks/useAuth.d.ts +22 -0
  14. package/dist/hooks/useAuth.d.ts.map +1 -0
  15. package/dist/hooks/useAuth.js +221 -0
  16. package/dist/hooks/useAuth.js.map +1 -0
  17. package/dist/hooks/useUser.d.ts +36 -0
  18. package/dist/hooks/useUser.d.ts.map +1 -0
  19. package/dist/hooks/useUser.js +40 -0
  20. package/dist/hooks/useUser.js.map +1 -0
  21. package/dist/identity.d.ts +42 -0
  22. package/dist/identity.d.ts.map +1 -0
  23. package/dist/identity.js +179 -0
  24. package/dist/identity.js.map +1 -0
  25. package/dist/index.d.ts +13 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/index.js +28 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/middleware.d.ts +49 -0
  30. package/dist/middleware.d.ts.map +1 -0
  31. package/dist/middleware.js +116 -0
  32. package/dist/middleware.js.map +1 -0
  33. package/dist/provisioning.d.ts +41 -0
  34. package/dist/provisioning.d.ts.map +1 -0
  35. package/dist/provisioning.js +224 -0
  36. package/dist/provisioning.js.map +1 -0
  37. package/dist/react.d.ts +7 -0
  38. package/dist/react.d.ts.map +1 -0
  39. package/dist/react.js +14 -0
  40. package/dist/react.js.map +1 -0
  41. package/dist/types.d.ts +99 -0
  42. package/dist/types.d.ts.map +1 -0
  43. package/dist/types.js +7 -0
  44. package/dist/types.js.map +1 -0
  45. package/dist/workspace.d.ts +28 -0
  46. package/dist/workspace.d.ts.map +1 -0
  47. package/dist/workspace.js +121 -0
  48. package/dist/workspace.js.map +1 -0
  49. package/package.json +75 -0
@@ -0,0 +1,224 @@
1
+ "use strict";
2
+ /**
3
+ * @daily/auth Provisioning Service
4
+ * Auto-provision workspaces and app registrations for users
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ProvisioningService = void 0;
8
+ const errors_js_1 = require("./errors.js");
9
+ class ProvisioningService {
10
+ supabase;
11
+ appSlug;
12
+ constructor(supabase, appSlug) {
13
+ this.supabase = supabase;
14
+ this.appSlug = appSlug;
15
+ }
16
+ /**
17
+ * Provision a new user with workspace and app registration
18
+ * Called on signup
19
+ */
20
+ async provisionNewUser(userId, email, options) {
21
+ const workspaceName = options?.workspaceName || this.generateWorkspaceName(email);
22
+ const workspaceSlug = options?.workspaceSlug || this.generateSlug(workspaceName);
23
+ try {
24
+ // Create workspace
25
+ const { data: workspace, error: wsError } = await this.supabase
26
+ .from('daily_core.workspaces')
27
+ .insert({
28
+ name: workspaceName,
29
+ slug: workspaceSlug,
30
+ owner_id: userId,
31
+ settings: {},
32
+ })
33
+ .select()
34
+ .single();
35
+ if (wsError) {
36
+ throw new errors_js_1.DailyAuthError('PROVISIONING_FAILED', `Failed to create workspace: ${wsError.message}`);
37
+ }
38
+ // Create workspace membership (owner)
39
+ const { data: membership, error: memberError } = await this.supabase
40
+ .from('daily_core.workspace_members')
41
+ .insert({
42
+ workspace_id: workspace.id,
43
+ user_id: userId,
44
+ role: 'owner',
45
+ })
46
+ .select()
47
+ .single();
48
+ if (memberError) {
49
+ throw new errors_js_1.DailyAuthError('PROVISIONING_FAILED', `Failed to create membership: ${memberError.message}`);
50
+ }
51
+ // Create app registration
52
+ const { data: appReg, error: appError } = await this.supabase
53
+ .from('daily_core.app_registrations')
54
+ .insert({
55
+ workspace_id: workspace.id,
56
+ app_slug: this.appSlug,
57
+ enabled: true,
58
+ settings: options?.appSettings || {},
59
+ })
60
+ .select()
61
+ .single();
62
+ if (appError) {
63
+ throw new errors_js_1.DailyAuthError('PROVISIONING_FAILED', `Failed to create app registration: ${appError.message}`);
64
+ }
65
+ return {
66
+ workspace: {
67
+ id: workspace.id,
68
+ name: workspace.name,
69
+ slug: workspace.slug,
70
+ role: 'owner',
71
+ },
72
+ appRegistration: {
73
+ id: appReg.id,
74
+ appSlug: this.appSlug,
75
+ enabled: true,
76
+ isFirstAccess: true,
77
+ },
78
+ membership: {
79
+ id: membership.id,
80
+ role: 'owner',
81
+ },
82
+ };
83
+ }
84
+ catch (err) {
85
+ if (err instanceof errors_js_1.DailyAuthError)
86
+ throw err;
87
+ throw new errors_js_1.DailyAuthError('PROVISIONING_FAILED', `Provisioning failed: ${err.message}`);
88
+ }
89
+ }
90
+ /**
91
+ * Ensure user has access to current app
92
+ * Creates app_registration if missing (first time on this app)
93
+ */
94
+ async ensureAppAccess(userId) {
95
+ // Get user's primary workspace (first one they own)
96
+ const workspaces = await this.getUserWorkspaces(userId);
97
+ if (workspaces.length === 0) {
98
+ // User has no workspace - shouldn't happen after proper signup
99
+ return {};
100
+ }
101
+ // Use first owned workspace, or first available
102
+ const workspace = workspaces.find((w) => w.role === 'owner') || workspaces[0];
103
+ // Check if app registration exists for this workspace
104
+ const { data: existingReg } = await this.supabase
105
+ .from('daily_core.app_registrations')
106
+ .select('*')
107
+ .eq('workspace_id', workspace.id)
108
+ .eq('app_slug', this.appSlug)
109
+ .single();
110
+ if (existingReg) {
111
+ return {
112
+ workspace,
113
+ appRegistration: {
114
+ id: existingReg.id,
115
+ appSlug: this.appSlug,
116
+ enabled: existingReg.enabled,
117
+ isFirstAccess: false,
118
+ },
119
+ };
120
+ }
121
+ // First time accessing this app - create registration
122
+ const { data: newReg, error } = await this.supabase
123
+ .from('daily_core.app_registrations')
124
+ .insert({
125
+ workspace_id: workspace.id,
126
+ app_slug: this.appSlug,
127
+ enabled: true,
128
+ settings: {},
129
+ })
130
+ .select()
131
+ .single();
132
+ if (error) {
133
+ console.error('Failed to create app registration:', error);
134
+ return { workspace };
135
+ }
136
+ return {
137
+ workspace,
138
+ appRegistration: {
139
+ id: newReg.id,
140
+ appSlug: this.appSlug,
141
+ enabled: true,
142
+ isFirstAccess: true,
143
+ },
144
+ };
145
+ }
146
+ /**
147
+ * Get all workspaces for a user
148
+ */
149
+ async getUserWorkspaces(userId) {
150
+ // Get memberships
151
+ const { data: memberships, error: memberError } = await this.supabase
152
+ .from('daily_core.workspace_members')
153
+ .select('workspace_id, role')
154
+ .eq('user_id', userId);
155
+ if (memberError || !memberships || memberships.length === 0) {
156
+ return [];
157
+ }
158
+ const workspaceIds = memberships.map((m) => m.workspace_id);
159
+ // Get workspace details
160
+ const { data: workspaces, error: wsError } = await this.supabase
161
+ .from('daily_core.workspaces')
162
+ .select('id, name, slug')
163
+ .in('id', workspaceIds);
164
+ if (wsError || !workspaces) {
165
+ return [];
166
+ }
167
+ // Combine data
168
+ return workspaces.map((ws) => {
169
+ const membership = memberships.find((m) => m.workspace_id === ws.id);
170
+ return {
171
+ id: ws.id,
172
+ name: ws.name,
173
+ slug: ws.slug,
174
+ role: (membership?.role || 'member'),
175
+ };
176
+ });
177
+ }
178
+ /**
179
+ * Check if app registration exists for workspace
180
+ */
181
+ async getAppRegistration(workspaceId) {
182
+ const { data, error } = await this.supabase
183
+ .from('daily_core.app_registrations')
184
+ .select('*')
185
+ .eq('workspace_id', workspaceId)
186
+ .eq('app_slug', this.appSlug)
187
+ .single();
188
+ if (error || !data) {
189
+ return null;
190
+ }
191
+ return {
192
+ id: data.id,
193
+ appSlug: this.appSlug,
194
+ enabled: data.enabled,
195
+ isFirstAccess: false,
196
+ };
197
+ }
198
+ /**
199
+ * Generate workspace name from email
200
+ */
201
+ generateWorkspaceName(email) {
202
+ const localPart = email.split('@')[0];
203
+ // Capitalize and clean up
204
+ return localPart
205
+ .replace(/[._-]/g, ' ')
206
+ .replace(/\b\w/g, (c) => c.toUpperCase())
207
+ .trim() + "'s Workspace";
208
+ }
209
+ /**
210
+ * Generate URL-safe slug from name
211
+ */
212
+ generateSlug(name) {
213
+ const base = name
214
+ .toLowerCase()
215
+ .replace(/[']/g, '')
216
+ .replace(/[^a-z0-9]+/g, '-')
217
+ .replace(/^-|-$/g, '');
218
+ // Add random suffix to ensure uniqueness
219
+ const suffix = Math.random().toString(36).substring(2, 6);
220
+ return `${base}-${suffix}`;
221
+ }
222
+ }
223
+ exports.ProvisioningService = ProvisioningService;
224
+ //# sourceMappingURL=provisioning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provisioning.js","sourceRoot":"","sources":["../src/provisioning.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @daily/auth React hooks
3
+ *
4
+ * Import via: import { AuthProvider, useAuth, useUser } from '@daily/auth/react';
5
+ */
6
+ export { AuthProvider, useAuth, useUser, useAuthClient, } from './hooks/index.js';
7
+ //# sourceMappingURL=react.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,YAAY,EACZ,OAAO,EACP,OAAO,EACP,aAAa,GACd,MAAM,kBAAkB,CAAC"}
package/dist/react.js ADDED
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ /**
3
+ * @daily/auth React hooks
4
+ *
5
+ * Import via: import { AuthProvider, useAuth, useUser } from '@daily/auth/react';
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.useAuthClient = exports.useUser = exports.useAuth = exports.AuthProvider = void 0;
9
+ var index_js_1 = require("./hooks/index.js");
10
+ Object.defineProperty(exports, "AuthProvider", { enumerable: true, get: function () { return index_js_1.AuthProvider; } });
11
+ Object.defineProperty(exports, "useAuth", { enumerable: true, get: function () { return index_js_1.useAuth; } });
12
+ Object.defineProperty(exports, "useUser", { enumerable: true, get: function () { return index_js_1.useUser; } });
13
+ Object.defineProperty(exports, "useAuthClient", { enumerable: true, get: function () { return index_js_1.useAuthClient; } });
14
+ //# sourceMappingURL=react.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,6CAK0B;AAJxB,wGAAA,YAAY,OAAA;AACZ,mGAAA,OAAO,OAAA;AACP,mGAAA,OAAO,OAAA;AACP,yGAAA,aAAa,OAAA"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * @daily/auth Types
3
+ * Standard auth toolkit for Daily applications
4
+ */
5
+ import type { User, Session } from '@supabase/supabase-js';
6
+ export type WorkspaceRole = 'owner' | 'admin' | 'member' | 'viewer';
7
+ export type OAuthProvider = 'google' | 'github' | 'azure';
8
+ export interface DailyAuthOptions {
9
+ /** Supabase project URL */
10
+ supabaseUrl: string;
11
+ /** Supabase anon key (client-side) */
12
+ supabaseAnonKey: string;
13
+ /** Service role key for server-side operations (optional) */
14
+ serviceKey?: string;
15
+ /** Auto-create workspace on signup (default: true) */
16
+ autoCreateWorkspace?: boolean;
17
+ /** Default workspace name template */
18
+ workspaceNameTemplate?: (email: string) => string;
19
+ }
20
+ export interface SignUpParams {
21
+ email: string;
22
+ password: string;
23
+ metadata?: {
24
+ displayName?: string;
25
+ avatarUrl?: string;
26
+ [key: string]: unknown;
27
+ };
28
+ /** Custom workspace name (optional) */
29
+ workspaceName?: string;
30
+ }
31
+ export interface SignInParams {
32
+ email: string;
33
+ password: string;
34
+ }
35
+ export interface OAuthParams {
36
+ provider: OAuthProvider;
37
+ redirectTo?: string;
38
+ scopes?: string;
39
+ }
40
+ export interface ResetPasswordParams {
41
+ email: string;
42
+ redirectTo?: string;
43
+ }
44
+ export interface AuthResult {
45
+ user: User | null;
46
+ session: Session | null;
47
+ isNewUser: boolean;
48
+ workspace?: WorkspaceInfo;
49
+ error?: AuthErrorInfo;
50
+ }
51
+ export interface WorkspaceInfo {
52
+ id: string;
53
+ name: string;
54
+ slug: string;
55
+ role: WorkspaceRole;
56
+ }
57
+ export interface AuthErrorInfo {
58
+ code: AuthErrorCode;
59
+ message: string;
60
+ hint?: string;
61
+ }
62
+ export type AuthErrorCode = 'INVALID_CREDENTIALS' | 'EMAIL_NOT_CONFIRMED' | 'EMAIL_ALREADY_EXISTS' | 'WEAK_PASSWORD' | 'WORKSPACE_CREATION_FAILED' | 'RATE_LIMITED' | 'NETWORK_ERROR' | 'UNKNOWN_ERROR';
63
+ export interface JWTPayload {
64
+ sub: string;
65
+ email?: string;
66
+ role?: string;
67
+ aud: string;
68
+ exp: number;
69
+ iat: number;
70
+ }
71
+ export interface AuthMiddlewareOptions {
72
+ supabaseUrl: string;
73
+ supabaseServiceKey: string;
74
+ /** Routes that don't require authentication */
75
+ publicPaths?: string[];
76
+ }
77
+ export interface AuthenticatedRequest {
78
+ user: User;
79
+ session: Session;
80
+ workspace?: WorkspaceInfo;
81
+ }
82
+ export interface AuthState {
83
+ user: User | null;
84
+ session: Session | null;
85
+ workspace: WorkspaceInfo | null;
86
+ isLoading: boolean;
87
+ isAuthenticated: boolean;
88
+ error: AuthErrorInfo | null;
89
+ }
90
+ export interface AuthActions {
91
+ signUp: (params: SignUpParams) => Promise<AuthResult>;
92
+ signIn: (params: SignInParams) => Promise<AuthResult>;
93
+ signInWithOAuth: (params: OAuthParams) => Promise<void>;
94
+ signOut: () => Promise<void>;
95
+ resetPassword: (params: ResetPasswordParams) => Promise<void>;
96
+ switchWorkspace: (workspaceId: string) => Promise<void>;
97
+ }
98
+ export type UseAuthReturn = AuthState & AuthActions;
99
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * @daily/auth Types
4
+ * Standard auth toolkit for Daily applications
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @daily/auth Workspace Service
3
+ * Create and manage workspaces for users
4
+ */
5
+ import type { SupabaseClient } from '@supabase/supabase-js';
6
+ import type { WorkspaceInfo } from './types.js';
7
+ export declare class WorkspaceService {
8
+ private supabase;
9
+ private nameTemplate?;
10
+ constructor(supabase: SupabaseClient, nameTemplate?: ((email: string) => string) | undefined);
11
+ /**
12
+ * Create a workspace for a new user
13
+ */
14
+ createForUser(userId: string, email: string, customName?: string): Promise<WorkspaceInfo>;
15
+ /**
16
+ * Get all workspaces for a user
17
+ */
18
+ getForUser(userId: string): Promise<WorkspaceInfo[]>;
19
+ /**
20
+ * Generate workspace name from email
21
+ */
22
+ private generateName;
23
+ /**
24
+ * Generate URL-safe slug
25
+ */
26
+ private generateSlug;
27
+ }
28
+ //# sourceMappingURL=workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,YAAY,CAAC;AAG/D,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,YAAY,CAAC;gBADb,QAAQ,EAAE,cAAc,EACxB,YAAY,CAAC,GAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,aAAA;IAGlD;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,aAAa,CAAC;IAyDzB;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAkC1D;;OAEG;IACH,OAAO,CAAC,YAAY;IAcpB;;OAEG;IACH,OAAO,CAAC,YAAY;CAUrB"}
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ /**
3
+ * @daily/auth Workspace Service
4
+ * Create and manage workspaces for users
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.WorkspaceService = void 0;
8
+ const errors_js_1 = require("./errors.js");
9
+ class WorkspaceService {
10
+ supabase;
11
+ nameTemplate;
12
+ constructor(supabase, nameTemplate) {
13
+ this.supabase = supabase;
14
+ this.nameTemplate = nameTemplate;
15
+ }
16
+ /**
17
+ * Create a workspace for a new user
18
+ */
19
+ async createForUser(userId, email, customName) {
20
+ const workspaceName = customName || this.generateName(email);
21
+ const workspaceSlug = this.generateSlug(workspaceName);
22
+ try {
23
+ // Create workspace
24
+ const { data: workspace, error: wsError } = await this.supabase
25
+ .from('workspaces')
26
+ .insert({
27
+ name: workspaceName,
28
+ slug: workspaceSlug,
29
+ owner_id: userId,
30
+ settings: {},
31
+ })
32
+ .select()
33
+ .single();
34
+ if (wsError) {
35
+ throw new errors_js_1.DailyAuthError('WORKSPACE_CREATION_FAILED', `Failed to create workspace: ${wsError.message}`);
36
+ }
37
+ // Create membership (owner)
38
+ const { error: memberError } = await this.supabase
39
+ .from('workspace_members')
40
+ .insert({
41
+ workspace_id: workspace.id,
42
+ user_id: userId,
43
+ role: 'owner',
44
+ });
45
+ if (memberError) {
46
+ // Try to clean up workspace
47
+ await this.supabase.from('workspaces').delete().eq('id', workspace.id);
48
+ throw new errors_js_1.DailyAuthError('WORKSPACE_CREATION_FAILED', `Failed to create membership: ${memberError.message}`);
49
+ }
50
+ return {
51
+ id: workspace.id,
52
+ name: workspace.name,
53
+ slug: workspace.slug,
54
+ role: 'owner',
55
+ };
56
+ }
57
+ catch (err) {
58
+ if (err instanceof errors_js_1.DailyAuthError)
59
+ throw err;
60
+ throw new errors_js_1.DailyAuthError('WORKSPACE_CREATION_FAILED', `Workspace creation failed: ${err.message}`);
61
+ }
62
+ }
63
+ /**
64
+ * Get all workspaces for a user
65
+ */
66
+ async getForUser(userId) {
67
+ // Get memberships
68
+ const { data: memberships, error: memberError } = await this.supabase
69
+ .from('workspace_members')
70
+ .select('workspace_id, role')
71
+ .eq('user_id', userId);
72
+ if (memberError || !memberships || memberships.length === 0) {
73
+ return [];
74
+ }
75
+ const workspaceIds = memberships.map((m) => m.workspace_id);
76
+ // Get workspace details
77
+ const { data: workspaces, error: wsError } = await this.supabase
78
+ .from('workspaces')
79
+ .select('id, name, slug')
80
+ .in('id', workspaceIds);
81
+ if (wsError || !workspaces) {
82
+ return [];
83
+ }
84
+ return workspaces.map((ws) => {
85
+ const membership = memberships.find((m) => m.workspace_id === ws.id);
86
+ return {
87
+ id: ws.id,
88
+ name: ws.name,
89
+ slug: ws.slug,
90
+ role: (membership?.role || 'member'),
91
+ };
92
+ });
93
+ }
94
+ /**
95
+ * Generate workspace name from email
96
+ */
97
+ generateName(email) {
98
+ if (this.nameTemplate) {
99
+ return this.nameTemplate(email);
100
+ }
101
+ const localPart = email.split('@')[0];
102
+ return (localPart
103
+ .replace(/[._-]/g, ' ')
104
+ .replace(/\b\w/g, (c) => c.toUpperCase())
105
+ .trim() + "'s Workspace");
106
+ }
107
+ /**
108
+ * Generate URL-safe slug
109
+ */
110
+ generateSlug(name) {
111
+ const base = name
112
+ .toLowerCase()
113
+ .replace(/[']/g, '')
114
+ .replace(/[^a-z0-9]+/g, '-')
115
+ .replace(/^-|-$/g, '');
116
+ const suffix = Math.random().toString(36).substring(2, 6);
117
+ return `${base}-${suffix}`;
118
+ }
119
+ }
120
+ exports.WorkspaceService = WorkspaceService;
121
+ //# sourceMappingURL=workspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,75 @@
1
+ {
2
+ "name": "@dailyautomations/auth",
3
+ "version": "1.0.0",
4
+ "description": "Unified SSO authentication for Daily applications",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "default": "./dist/index.js"
11
+ },
12
+ "./client": {
13
+ "types": "./dist/client.d.ts",
14
+ "default": "./dist/client.js"
15
+ },
16
+ "./middleware": {
17
+ "types": "./dist/middleware.d.ts",
18
+ "default": "./dist/middleware.js"
19
+ },
20
+ "./react": {
21
+ "types": "./dist/react.d.ts",
22
+ "default": "./dist/react.js"
23
+ },
24
+ "./hooks": {
25
+ "types": "./dist/hooks/index.d.ts",
26
+ "default": "./dist/hooks/index.js"
27
+ },
28
+ "./types": {
29
+ "types": "./dist/types.d.ts",
30
+ "default": "./dist/types.js"
31
+ }
32
+ },
33
+ "files": [
34
+ "dist",
35
+ "README.md"
36
+ ],
37
+ "scripts": {
38
+ "build": "tsc",
39
+ "watch": "tsc --watch",
40
+ "test": "vitest",
41
+ "test:coverage": "vitest --coverage",
42
+ "lint": "eslint src --ext .ts,.tsx",
43
+ "typecheck": "tsc --noEmit"
44
+ },
45
+ "keywords": [
46
+ "daily",
47
+ "auth",
48
+ "sso",
49
+ "supabase",
50
+ "authentication"
51
+ ],
52
+ "author": "DailyX Engineering Team",
53
+ "license": "UNLICENSED",
54
+ "dependencies": {
55
+ "@supabase/supabase-js": "^2.0.0"
56
+ },
57
+ "devDependencies": {
58
+ "@types/node": "^20.11.0",
59
+ "@types/react": "^18.2.0",
60
+ "@typescript-eslint/eslint-plugin": "^6.19.0",
61
+ "@typescript-eslint/parser": "^6.19.0",
62
+ "eslint": "^8.56.0",
63
+ "typescript": "^5.3.3",
64
+ "vitest": "^1.2.0"
65
+ },
66
+ "peerDependencies": {
67
+ "@supabase/supabase-js": "^2.0.0",
68
+ "react": ">=18.0.0"
69
+ },
70
+ "peerDependenciesMeta": {
71
+ "react": {
72
+ "optional": true
73
+ }
74
+ }
75
+ }