@multitenantkit/sdk 0.1.1 → 0.1.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"convenience.d.ts","sourceRoot":"","sources":["../src/convenience.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAE/C;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IAClC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAElC;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;CACrB;AA+ED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,wBAAgB,gBAAgB,CAE5B,iBAAiB,GAAG,EAAE,EAEtB,yBAAyB,GAAG,EAAE,EAE9B,mCAAmC,GAAG,EAAE,EAExC,MAAM,CAAC,EACD,cAAc,CACV,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,GACD,qBAAqB,EAC3B,MAAM,CAAC,EACD,cAAc,CACV,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,GACD,qBAAqB,GAC5B,OAAO,CAsDT;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAgB,mBAAmB,CAE/B,iBAAiB,GAAG,EAAE,EAEtB,yBAAyB,GAAG,EAAE,EAE9B,mCAAmC,GAAG,EAAE,EAExC,MAAM,CAAC,EACD,cAAc,CACV,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,GACD,qBAAqB,EAC3B,MAAM,CAAC,EACD,cAAc,CACV,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,GACD,qBAAqB,GAC5B,MAAM,CAsDR"}
1
+ {"version":3,"file":"convenience.d.ts","sourceRoot":"","sources":["../src/convenience.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAE/C;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IAClC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAElC;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;CACrB;AA+ED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,wBAAgB,gBAAgB,CAE5B,iBAAiB,GAAG,EAAE,EAEtB,yBAAyB,GAAG,EAAE,EAE9B,mCAAmC,GAAG,EAAE,EAExC,MAAM,CAAC,EACD,cAAc,CACV,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,GACD,qBAAqB,EAC3B,MAAM,CAAC,EACD,cAAc,CACV,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,GACD,qBAAqB,GAC5B,OAAO,CAoDT;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAgB,mBAAmB,CAE/B,iBAAiB,GAAG,EAAE,EAEtB,yBAAyB,GAAG,EAAE,EAE9B,mCAAmC,GAAG,EAAE,EAExC,MAAM,CAAC,EACD,cAAc,CACV,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,GACD,qBAAqB,EAC3B,MAAM,CAAC,EACD,cAAc,CACV,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,GACD,qBAAqB,GAC5B,MAAM,CAoDR"}
@@ -4,7 +4,7 @@
4
4
  import { createSupabaseAuthService } from '@multitenantkit/adapter-auth-supabase';
5
5
  import { buildExpressApp, buildExpressRouter } from '@multitenantkit/adapter-transport-express';
6
6
  import { buildHandlers } from '@multitenantkit/api-handlers';
7
- import { createJsonAdapters, createMetricsAdapter, createPostgresAdapters, createSystemAdapters, createUseCases } from '@multitenantkit/composition';
7
+ import { createJsonAdapters, createPostgresAdapters, createSystemAdapters, createUseCases } from '@multitenantkit/composition';
8
8
  /**
9
9
  * Detects which parameter is which based on their properties
10
10
  * This allows calling the function with parameters in any order
@@ -116,12 +116,10 @@ export function createExpressApp(param1, param2) {
116
116
  : createPostgresAdapters(undefined, toolkitOptions);
117
117
  // 2. Create system and metrics adapters
118
118
  const systemAdapters = createSystemAdapters();
119
- const metricsAdapter = createMetricsAdapter();
120
119
  // 3. Create use cases with all adapters
121
120
  const useCases = createUseCases({
122
121
  persistence: persistenceAdapters,
123
- system: systemAdapters,
124
- observability: metricsAdapter
122
+ system: systemAdapters
125
123
  }, toolkitOptions);
126
124
  // 4. Build HTTP handlers
127
125
  const handlers = buildHandlers(useCases, toolkitOptions);
@@ -191,12 +189,10 @@ export function createExpressRouter(param1, param2) {
191
189
  : createPostgresAdapters(undefined, toolkitOptions);
192
190
  // 2. Create system and metrics adapters
193
191
  const systemAdapters = createSystemAdapters();
194
- const metricsAdapter = createMetricsAdapter();
195
192
  // 3. Create use cases with all adapters
196
193
  const useCases = createUseCases({
197
194
  persistence: persistenceAdapters,
198
- system: systemAdapters,
199
- observability: metricsAdapter
195
+ system: systemAdapters
200
196
  }, toolkitOptions);
201
197
  // 4. Build HTTP handlers
202
198
  const handlers = buildHandlers(useCases, toolkitOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"convenience.js","sourceRoot":"","sources":["../src/convenience.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"convenience.js","sourceRoot":"","sources":["../src/convenience.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -10,4 +10,5 @@ export * from '@multitenantkit/composition';
10
10
  export * from '@multitenantkit/domain';
11
11
  export * from '@multitenantkit/domain-contracts';
12
12
  export * from './convenience';
13
+ export * from './supabase';
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,mBAAmB,MAAM,uCAAuC,CAAC;AAE7E,OAAO,KAAK,sBAAsB,MAAM,0CAA0C,CAAC;AACnF,OAAO,KAAK,0BAA0B,MAAM,8CAA8C,CAAC;AAE3F,OAAO,KAAK,uBAAuB,MAAM,4CAA4C,CAAC;AACtF,OAAO,KAAK,wBAAwB,MAAM,6CAA6C,CAAC;AAExF,OAAO,KAAK,uBAAuB,MAAM,2CAA2C,CAAC;AACrF,cAAc,+BAA+B,CAAC;AAE9C,cAAc,8BAA8B,CAAC;AAE7C,cAAc,6BAA6B,CAAC;AAE5C,cAAc,wBAAwB,CAAC;AAEvC,cAAc,kCAAkC,CAAC;AAEjD,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,mBAAmB,MAAM,uCAAuC,CAAC;AAE7E,OAAO,KAAK,sBAAsB,MAAM,0CAA0C,CAAC;AACnF,OAAO,KAAK,0BAA0B,MAAM,8CAA8C,CAAC;AAE3F,OAAO,KAAK,uBAAuB,MAAM,4CAA4C,CAAC;AACtF,OAAO,KAAK,wBAAwB,MAAM,6CAA6C,CAAC;AAExF,OAAO,KAAK,uBAAuB,MAAM,2CAA2C,CAAC;AACrF,cAAc,+BAA+B,CAAC;AAE9C,cAAc,8BAA8B,CAAC;AAE7C,cAAc,6BAA6B,CAAC;AAE5C,cAAc,wBAAwB,CAAC;AAEvC,cAAc,kCAAkC,CAAC;AAEjD,cAAc,eAAe,CAAC;AAE9B,cAAc,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -23,4 +23,6 @@ export * from '@multitenantkit/domain';
23
23
  export * from '@multitenantkit/domain-contracts';
24
24
  // Convenience functions for quick setup
25
25
  export * from './convenience';
26
+ // Supabase-specific convenience functions
27
+ export * from './supabase';
26
28
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,qBAAqB;AACrB,qEAAqE;AACrE,gFAAgF;AAEhF,gDAAgD;AAChD,OAAO,KAAK,mBAAmB,MAAM,uCAAuC,CAAC;AAC7E,4EAA4E;AAC5E,OAAO,KAAK,sBAAsB,MAAM,0CAA0C,CAAC;AACnF,OAAO,KAAK,0BAA0B,MAAM,8CAA8C,CAAC;AAC3F,wCAAwC;AACxC,OAAO,KAAK,uBAAuB,MAAM,4CAA4C,CAAC;AACtF,OAAO,KAAK,wBAAwB,MAAM,6CAA6C,CAAC;AACxF,2CAA2C;AAC3C,OAAO,KAAK,uBAAuB,MAAM,2CAA2C,CAAC;AACrF,cAAc,+BAA+B,CAAC;AAC9C,gCAAgC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,+BAA+B;AAC/B,cAAc,6BAA6B,CAAC;AAC5C,sEAAsE;AACtE,cAAc,wBAAwB,CAAC;AACvC,iDAAiD;AACjD,cAAc,kCAAkC,CAAC;AACjD,wCAAwC;AACxC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,qBAAqB;AACrB,qEAAqE;AACrE,gFAAgF;AAEhF,gDAAgD;AAChD,OAAO,KAAK,mBAAmB,MAAM,uCAAuC,CAAC;AAC7E,4EAA4E;AAC5E,OAAO,KAAK,sBAAsB,MAAM,0CAA0C,CAAC;AACnF,OAAO,KAAK,0BAA0B,MAAM,8CAA8C,CAAC;AAC3F,wCAAwC;AACxC,OAAO,KAAK,uBAAuB,MAAM,4CAA4C,CAAC;AACtF,OAAO,KAAK,wBAAwB,MAAM,6CAA6C,CAAC;AACxF,2CAA2C;AAC3C,OAAO,KAAK,uBAAuB,MAAM,2CAA2C,CAAC;AACrF,cAAc,+BAA+B,CAAC;AAC9C,gCAAgC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,+BAA+B;AAC/B,cAAc,6BAA6B,CAAC;AAC5C,sEAAsE;AACtE,cAAc,wBAAwB,CAAC;AACvC,iDAAiD;AACjD,cAAc,kCAAkC,CAAC;AACjD,wCAAwC;AACxC,cAAc,eAAe,CAAC;AAC9B,0CAA0C;AAC1C,cAAc,YAAY,CAAC"}
@@ -0,0 +1,206 @@
1
+ import { createUseCases } from '@multitenantkit/composition';
2
+ import type { Express, Router } from 'express';
3
+ import type { ZodSchema } from 'zod';
4
+ /**
5
+ * Simplified custom fields configuration for Supabase users
6
+ * Only requires the schema, everything else is pre-configured
7
+ */
8
+ export interface SupabaseUserCustomFieldsConfig<TCustomFields> {
9
+ /**
10
+ * Zod schema defining custom fields structure
11
+ */
12
+ customSchema: ZodSchema<TCustomFields>;
13
+ }
14
+ export interface SupabaseOrganizationCustomFieldsConfig<TCustomFields> {
15
+ /**
16
+ * Zod schema defining custom fields structure
17
+ */
18
+ customSchema: ZodSchema<TCustomFields>;
19
+ }
20
+ export interface SupabaseOrganizationMembershipCustomFieldsConfig<TCustomFields> {
21
+ /**
22
+ * Zod schema defining custom fields structure
23
+ */
24
+ customSchema: ZodSchema<TCustomFields>;
25
+ }
26
+ /**
27
+ * Simplified toolkit options for Supabase
28
+ * Pre-configures common Supabase defaults
29
+ */
30
+ export interface SupabaseToolkitOptions<TUserCustomFields = {}, TOrganizationCustomFields = {}, TOrganizationMembershipCustomFields = {}> {
31
+ /**
32
+ * Optional naming strategy (defaults to snake_case for Supabase/PostgreSQL)
33
+ */
34
+ namingStrategy?: 'camelCase' | 'snake_case' | 'kebab-case' | 'PascalCase';
35
+ /**
36
+ * Users configuration (optional, uses Supabase defaults)
37
+ */
38
+ users?: {
39
+ customFields?: SupabaseUserCustomFieldsConfig<TUserCustomFields>;
40
+ };
41
+ /**
42
+ * Organizations configuration (optional, uses Supabase defaults)
43
+ */
44
+ organizations?: {
45
+ customFields?: SupabaseOrganizationCustomFieldsConfig<TOrganizationCustomFields>;
46
+ };
47
+ /**
48
+ * Organization memberships configuration (optional, uses Supabase defaults)
49
+ */
50
+ organizationMemberships?: {
51
+ customFields?: SupabaseOrganizationMembershipCustomFieldsConfig<TOrganizationMembershipCustomFields>;
52
+ };
53
+ }
54
+ /**
55
+ * Create a complete Express application with Supabase defaults
56
+ *
57
+ * This convenience function sets up a fully configured Express app with:
58
+ * - PostgreSQL persistence
59
+ * - Supabase authentication
60
+ * - Pre-configured Supabase defaults (auth.users, raw_user_meta_data, etc.)
61
+ * - All MultiTenantKit routes and middleware
62
+ *
63
+ * @template TUserCustomFields - Custom fields schema for Users
64
+ * @template TOrganizationCustomFields - Custom fields schema for Organizations
65
+ * @template TOrganizationMembershipCustomFields - Custom fields schema for Organization Memberships
66
+ *
67
+ * @param options - Simplified Supabase toolkit options (only custom fields needed)
68
+ * @returns Express application ready to listen on a port
69
+ *
70
+ * @example
71
+ * ```typescript
72
+ * // Minimal setup - no custom fields
73
+ * import { createSupabaseExpressApp } from '@multitenantkit/sdk';
74
+ *
75
+ * const app = createSupabaseExpressApp();
76
+ * app.listen(3000);
77
+ * ```
78
+ *
79
+ * @example
80
+ * ```typescript
81
+ * // With custom fields
82
+ * import { createSupabaseExpressApp } from '@multitenantkit/sdk';
83
+ * import { z } from 'zod';
84
+ *
85
+ * const app = createSupabaseExpressApp({
86
+ * users: {
87
+ * customFields: {
88
+ * customSchema: z.object({
89
+ * firstName: z.string(),
90
+ * lastName: z.string(),
91
+ * phone: z.string().optional()
92
+ * })
93
+ * }
94
+ * },
95
+ * organizations: {
96
+ * customFields: {
97
+ * customSchema: z.object({
98
+ * organizationName: z.string(),
99
+ * industry: z.string().optional(),
100
+ * size: z.string().optional()
101
+ * })
102
+ * }
103
+ * },
104
+ * organizationMemberships: {
105
+ * customFields: {
106
+ * customSchema: z.object({
107
+ * internalRole: z.string().optional()
108
+ * })
109
+ * }
110
+ * }
111
+ * });
112
+ *
113
+ * app.listen(3000);
114
+ * ```
115
+ */
116
+ export declare function createSupabaseExpressApp<TUserCustomFields = {}, TOrganizationCustomFields = {}, TOrganizationMembershipCustomFields = {}>(options?: SupabaseToolkitOptions<TUserCustomFields, TOrganizationCustomFields, TOrganizationMembershipCustomFields>): Express;
117
+ /**
118
+ * Create an Express Router with Supabase defaults
119
+ *
120
+ * Use this when you want to integrate MultiTenantKit into an existing Express application.
121
+ * The router can be mounted at any path in your app.
122
+ *
123
+ * @template TUserCustomFields - Custom fields schema for Users
124
+ * @template TOrganizationCustomFields - Custom fields schema for Organizations
125
+ * @template TOrganizationMembershipCustomFields - Custom fields schema for Organization Memberships
126
+ *
127
+ * @param options - Simplified Supabase toolkit options (only custom fields needed)
128
+ * @returns Express Router with all MultiTenantKit routes
129
+ *
130
+ * @example
131
+ * ```typescript
132
+ * // Add to existing Express app
133
+ * import express from 'express';
134
+ * import { createSupabaseExpressRouter } from '@multitenantkit/sdk';
135
+ *
136
+ * const app = express();
137
+ *
138
+ * // Your existing routes
139
+ * app.get('/api/billing', billingHandler);
140
+ *
141
+ * // Add MultiTenantKit routes under /api/teams
142
+ * const teamsRouter = createSupabaseExpressRouter();
143
+ * app.use('/api/teams', teamsRouter);
144
+ *
145
+ * app.listen(3000);
146
+ * ```
147
+ *
148
+ * @example
149
+ * ```typescript
150
+ * // With custom fields
151
+ * import { createSupabaseExpressRouter } from '@multitenantkit/sdk';
152
+ * import { z } from 'zod';
153
+ *
154
+ * const router = createSupabaseExpressRouter({
155
+ * users: {
156
+ * customFields: {
157
+ * customSchema: z.object({
158
+ * firstName: z.string(),
159
+ * lastName: z.string()
160
+ * })
161
+ * }
162
+ * }
163
+ * });
164
+ * ```
165
+ */
166
+ export declare function createSupabaseExpressRouter<TUserCustomFields = {}, TOrganizationCustomFields = {}, TOrganizationMembershipCustomFields = {}>(options?: SupabaseToolkitOptions<TUserCustomFields, TOrganizationCustomFields, TOrganizationMembershipCustomFields>): Router;
167
+ /**
168
+ * Create use cases with Supabase defaults
169
+ *
170
+ * Use this when you want to use MultiTenantKit use cases directly without Express.
171
+ * Useful for background jobs, CLI tools, or custom transport layers.
172
+ *
173
+ * @template TUserCustomFields - Custom fields schema for Users
174
+ * @template TOrganizationCustomFields - Custom fields schema for Organizations
175
+ * @template TOrganizationMembershipCustomFields - Custom fields schema for Organization Memberships
176
+ *
177
+ * @param options - Simplified Supabase toolkit options (only custom fields needed)
178
+ * @returns Configured use cases ready to execute
179
+ *
180
+ * @example
181
+ * ```typescript
182
+ * // Create use cases for background job
183
+ * import { createSupabaseUseCases } from '@multitenantkit/sdk';
184
+ * import { z } from 'zod';
185
+ *
186
+ * const useCases = createSupabaseUseCases({
187
+ * users: {
188
+ * customFields: {
189
+ * customSchema: z.object({
190
+ * firstName: z.string(),
191
+ * lastName: z.string()
192
+ * })
193
+ * }
194
+ * }
195
+ * });
196
+ *
197
+ * // Use in background job
198
+ * const result = await useCases.users.getUser.execute({
199
+ * userId: 'user-123',
200
+ * requestId: crypto.randomUUID(),
201
+ * actorUserId: 'system'
202
+ * });
203
+ * ```
204
+ */
205
+ export declare function createSupabaseUseCases<TUserCustomFields = {}, TOrganizationCustomFields = {}, TOrganizationMembershipCustomFields = {}>(options?: SupabaseToolkitOptions<TUserCustomFields, TOrganizationCustomFields, TOrganizationMembershipCustomFields>): ReturnType<typeof createUseCases<TUserCustomFields, TOrganizationCustomFields, TOrganizationMembershipCustomFields>>;
206
+ //# sourceMappingURL=supabase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supabase.d.ts","sourceRoot":"","sources":["../src/supabase.ts"],"names":[],"mappings":"AAOA,OAAO,EAGH,cAAc,EACjB,MAAM,6BAA6B,CAAC;AAOrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAErC;;;GAGG;AACH,MAAM,WAAW,8BAA8B,CAAC,aAAa;IACzD;;OAEG;IACH,YAAY,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,sCAAsC,CAAC,aAAa;IACjE;;OAEG;IACH,YAAY,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,gDAAgD,CAAC,aAAa;IAC3E;;OAEG;IACH,YAAY,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;CAC1C;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB,CAEnC,iBAAiB,GAAG,EAAE,EAEtB,yBAAyB,GAAG,EAAE,EAE9B,mCAAmC,GAAG,EAAE;IAExC;;OAEG;IACH,cAAc,CAAC,EAAE,WAAW,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,CAAC;IAE1E;;OAEG;IACH,KAAK,CAAC,EAAE;QACJ,YAAY,CAAC,EAAE,8BAA8B,CAAC,iBAAiB,CAAC,CAAC;KACpE,CAAC;IAEF;;OAEG;IACH,aAAa,CAAC,EAAE;QACZ,YAAY,CAAC,EAAE,sCAAsC,CAAC,yBAAyB,CAAC,CAAC;KACpF,CAAC;IAEF;;OAEG;IACH,uBAAuB,CAAC,EAAE;QACtB,YAAY,CAAC,EAAE,gDAAgD,CAAC,mCAAmC,CAAC,CAAC;KACxG,CAAC;CACL;AAmID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,wBAAgB,wBAAwB,CAEpC,iBAAiB,GAAG,EAAE,EAEtB,yBAAyB,GAAG,EAAE,EAE9B,mCAAmC,GAAG,EAAE,EAExC,OAAO,CAAC,EAAE,sBAAsB,CAC5B,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,GACF,OAAO,CAwCT;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAgB,2BAA2B,CAEvC,iBAAiB,GAAG,EAAE,EAEtB,yBAAyB,GAAG,EAAE,EAE9B,mCAAmC,GAAG,EAAE,EAExC,OAAO,CAAC,EAAE,sBAAsB,CAC5B,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,GACF,MAAM,CAwCR;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,sBAAsB,CAElC,iBAAiB,GAAG,EAAE,EAEtB,yBAAyB,GAAG,EAAE,EAE9B,mCAAmC,GAAG,EAAE,EAExC,OAAO,CAAC,EAAE,sBAAsB,CAC5B,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,GACF,UAAU,CACT,OAAO,cAAc,CACjB,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,CACJ,CA2BA"}
@@ -0,0 +1,313 @@
1
+ // =============================================================================
2
+ // Supabase-specific convenience functions
3
+ // =============================================================================
4
+ import { createSupabaseAuthService } from '@multitenantkit/adapter-auth-supabase';
5
+ import { buildExpressApp, buildExpressRouter } from '@multitenantkit/adapter-transport-express';
6
+ import { buildHandlers } from '@multitenantkit/api-handlers';
7
+ import { createPostgresAdapters, createSystemAdapters, createUseCases } from '@multitenantkit/composition';
8
+ /**
9
+ * Converts simplified Supabase options to full ToolkitOptions
10
+ * Applies Supabase-specific defaults
11
+ */
12
+ function buildSupabaseToolkitOptions(options) {
13
+ const toolkitOptions = {
14
+ namingStrategy: options?.namingStrategy ?? 'snake_case'
15
+ };
16
+ // Configure users with Supabase defaults
17
+ if (options?.users?.customFields) {
18
+ const userCustomFieldsConfig = {
19
+ customSchema: options.users.customFields.customSchema,
20
+ // Map to Supabase's raw_user_meta_data column
21
+ customMapper: {
22
+ toDb: (fields) => ({
23
+ raw_user_meta_data: {
24
+ sub: fields.id,
25
+ email: fields.email,
26
+ ...fields,
27
+ email_verified: true,
28
+ phone_verified: false
29
+ }
30
+ }),
31
+ toDomain: (dbRow) => {
32
+ const metadata = dbRow.raw_user_meta_data || {};
33
+ // biome-ignore lint/correctness/noUnusedVariables: these fields are intentionally extracted to exclude them
34
+ const { sub, email_verified, phone_verified, ...customFields } = metadata;
35
+ return customFields;
36
+ }
37
+ },
38
+ // Map base fields to Supabase columns
39
+ columnMapping: {
40
+ externalId: 'id',
41
+ username: 'email'
42
+ }
43
+ };
44
+ toolkitOptions.users = {
45
+ customFields: userCustomFieldsConfig,
46
+ database: {
47
+ schema: 'auth',
48
+ table: 'users'
49
+ }
50
+ };
51
+ }
52
+ else {
53
+ // No custom fields, but still configure Supabase defaults for users
54
+ toolkitOptions.users = {
55
+ customFields: {
56
+ columnMapping: {
57
+ externalId: 'id',
58
+ username: 'email'
59
+ }
60
+ },
61
+ database: {
62
+ schema: 'auth',
63
+ table: 'users'
64
+ }
65
+ };
66
+ }
67
+ // Configure organizations with Supabase defaults
68
+ if (options?.organizations?.customFields) {
69
+ const orgCustomFieldsConfig = {
70
+ customSchema: options.organizations.customFields.customSchema
71
+ };
72
+ toolkitOptions.organizations = {
73
+ customFields: orgCustomFieldsConfig,
74
+ database: {
75
+ schema: 'public',
76
+ table: 'organizations'
77
+ }
78
+ };
79
+ }
80
+ else {
81
+ // No custom fields, but still configure database defaults
82
+ toolkitOptions.organizations = {
83
+ database: {
84
+ schema: 'public',
85
+ table: 'organizations'
86
+ }
87
+ };
88
+ }
89
+ // Configure organization memberships with Supabase defaults
90
+ if (options?.organizationMemberships?.customFields) {
91
+ const membershipCustomFieldsConfig = {
92
+ customSchema: options.organizationMemberships.customFields.customSchema
93
+ };
94
+ toolkitOptions.organizationMemberships = {
95
+ customFields: membershipCustomFieldsConfig,
96
+ database: {
97
+ schema: 'public',
98
+ table: 'organization_memberships'
99
+ }
100
+ };
101
+ }
102
+ else {
103
+ // No custom fields, but still configure database defaults
104
+ toolkitOptions.organizationMemberships = {
105
+ database: {
106
+ schema: 'public',
107
+ table: 'organization_memberships'
108
+ }
109
+ };
110
+ }
111
+ return toolkitOptions;
112
+ }
113
+ /**
114
+ * Create a complete Express application with Supabase defaults
115
+ *
116
+ * This convenience function sets up a fully configured Express app with:
117
+ * - PostgreSQL persistence
118
+ * - Supabase authentication
119
+ * - Pre-configured Supabase defaults (auth.users, raw_user_meta_data, etc.)
120
+ * - All MultiTenantKit routes and middleware
121
+ *
122
+ * @template TUserCustomFields - Custom fields schema for Users
123
+ * @template TOrganizationCustomFields - Custom fields schema for Organizations
124
+ * @template TOrganizationMembershipCustomFields - Custom fields schema for Organization Memberships
125
+ *
126
+ * @param options - Simplified Supabase toolkit options (only custom fields needed)
127
+ * @returns Express application ready to listen on a port
128
+ *
129
+ * @example
130
+ * ```typescript
131
+ * // Minimal setup - no custom fields
132
+ * import { createSupabaseExpressApp } from '@multitenantkit/sdk';
133
+ *
134
+ * const app = createSupabaseExpressApp();
135
+ * app.listen(3000);
136
+ * ```
137
+ *
138
+ * @example
139
+ * ```typescript
140
+ * // With custom fields
141
+ * import { createSupabaseExpressApp } from '@multitenantkit/sdk';
142
+ * import { z } from 'zod';
143
+ *
144
+ * const app = createSupabaseExpressApp({
145
+ * users: {
146
+ * customFields: {
147
+ * customSchema: z.object({
148
+ * firstName: z.string(),
149
+ * lastName: z.string(),
150
+ * phone: z.string().optional()
151
+ * })
152
+ * }
153
+ * },
154
+ * organizations: {
155
+ * customFields: {
156
+ * customSchema: z.object({
157
+ * organizationName: z.string(),
158
+ * industry: z.string().optional(),
159
+ * size: z.string().optional()
160
+ * })
161
+ * }
162
+ * },
163
+ * organizationMemberships: {
164
+ * customFields: {
165
+ * customSchema: z.object({
166
+ * internalRole: z.string().optional()
167
+ * })
168
+ * }
169
+ * }
170
+ * });
171
+ *
172
+ * app.listen(3000);
173
+ * ```
174
+ */
175
+ export function createSupabaseExpressApp(options) {
176
+ const toolkitOptions = buildSupabaseToolkitOptions(options);
177
+ // 1. Create persistence adapters (PostgreSQL)
178
+ const persistenceAdapters = createPostgresAdapters(undefined, toolkitOptions);
179
+ // 2. Create system and metrics adapters
180
+ const systemAdapters = createSystemAdapters();
181
+ // 3. Create use cases with all adapters
182
+ const useCases = createUseCases({
183
+ persistence: persistenceAdapters,
184
+ system: systemAdapters
185
+ }, toolkitOptions);
186
+ // 4. Build HTTP handlers
187
+ const handlers = buildHandlers(useCases, toolkitOptions);
188
+ // 5. Create Supabase auth service
189
+ const authService = createSupabaseAuthService();
190
+ // 6. Build Express app with all middleware and routes
191
+ const app = buildExpressApp(handlers, authService);
192
+ return app;
193
+ }
194
+ /**
195
+ * Create an Express Router with Supabase defaults
196
+ *
197
+ * Use this when you want to integrate MultiTenantKit into an existing Express application.
198
+ * The router can be mounted at any path in your app.
199
+ *
200
+ * @template TUserCustomFields - Custom fields schema for Users
201
+ * @template TOrganizationCustomFields - Custom fields schema for Organizations
202
+ * @template TOrganizationMembershipCustomFields - Custom fields schema for Organization Memberships
203
+ *
204
+ * @param options - Simplified Supabase toolkit options (only custom fields needed)
205
+ * @returns Express Router with all MultiTenantKit routes
206
+ *
207
+ * @example
208
+ * ```typescript
209
+ * // Add to existing Express app
210
+ * import express from 'express';
211
+ * import { createSupabaseExpressRouter } from '@multitenantkit/sdk';
212
+ *
213
+ * const app = express();
214
+ *
215
+ * // Your existing routes
216
+ * app.get('/api/billing', billingHandler);
217
+ *
218
+ * // Add MultiTenantKit routes under /api/teams
219
+ * const teamsRouter = createSupabaseExpressRouter();
220
+ * app.use('/api/teams', teamsRouter);
221
+ *
222
+ * app.listen(3000);
223
+ * ```
224
+ *
225
+ * @example
226
+ * ```typescript
227
+ * // With custom fields
228
+ * import { createSupabaseExpressRouter } from '@multitenantkit/sdk';
229
+ * import { z } from 'zod';
230
+ *
231
+ * const router = createSupabaseExpressRouter({
232
+ * users: {
233
+ * customFields: {
234
+ * customSchema: z.object({
235
+ * firstName: z.string(),
236
+ * lastName: z.string()
237
+ * })
238
+ * }
239
+ * }
240
+ * });
241
+ * ```
242
+ */
243
+ export function createSupabaseExpressRouter(options) {
244
+ const toolkitOptions = buildSupabaseToolkitOptions(options);
245
+ // 1. Create persistence adapters (PostgreSQL)
246
+ const persistenceAdapters = createPostgresAdapters(undefined, toolkitOptions);
247
+ // 2. Create system and metrics adapters
248
+ const systemAdapters = createSystemAdapters();
249
+ // 3. Create use cases with all adapters
250
+ const useCases = createUseCases({
251
+ persistence: persistenceAdapters,
252
+ system: systemAdapters
253
+ }, toolkitOptions);
254
+ // 4. Build HTTP handlers
255
+ const handlers = buildHandlers(useCases, toolkitOptions);
256
+ // 5. Create Supabase auth service
257
+ const authService = createSupabaseAuthService();
258
+ // 6. Build Express router with routes only (no global middleware)
259
+ const router = buildExpressRouter(handlers, authService);
260
+ return router;
261
+ }
262
+ /**
263
+ * Create use cases with Supabase defaults
264
+ *
265
+ * Use this when you want to use MultiTenantKit use cases directly without Express.
266
+ * Useful for background jobs, CLI tools, or custom transport layers.
267
+ *
268
+ * @template TUserCustomFields - Custom fields schema for Users
269
+ * @template TOrganizationCustomFields - Custom fields schema for Organizations
270
+ * @template TOrganizationMembershipCustomFields - Custom fields schema for Organization Memberships
271
+ *
272
+ * @param options - Simplified Supabase toolkit options (only custom fields needed)
273
+ * @returns Configured use cases ready to execute
274
+ *
275
+ * @example
276
+ * ```typescript
277
+ * // Create use cases for background job
278
+ * import { createSupabaseUseCases } from '@multitenantkit/sdk';
279
+ * import { z } from 'zod';
280
+ *
281
+ * const useCases = createSupabaseUseCases({
282
+ * users: {
283
+ * customFields: {
284
+ * customSchema: z.object({
285
+ * firstName: z.string(),
286
+ * lastName: z.string()
287
+ * })
288
+ * }
289
+ * }
290
+ * });
291
+ *
292
+ * // Use in background job
293
+ * const result = await useCases.users.getUser.execute({
294
+ * userId: 'user-123',
295
+ * requestId: crypto.randomUUID(),
296
+ * actorUserId: 'system'
297
+ * });
298
+ * ```
299
+ */
300
+ export function createSupabaseUseCases(options) {
301
+ const toolkitOptions = buildSupabaseToolkitOptions(options);
302
+ // 1. Create persistence adapters (PostgreSQL)
303
+ const persistenceAdapters = createPostgresAdapters(undefined, toolkitOptions);
304
+ // 2. Create system and metrics adapters
305
+ const systemAdapters = createSystemAdapters();
306
+ // 3. Create and return use cases
307
+ const useCases = createUseCases({
308
+ persistence: persistenceAdapters,
309
+ system: systemAdapters
310
+ }, toolkitOptions);
311
+ return useCases;
312
+ }
313
+ //# sourceMappingURL=supabase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supabase.js","sourceRoot":"","sources":["../src/supabase.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@multitenantkit/sdk",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Complete SDK for building multi-tenant SaaS applications - includes all adapters and options",
5
5
  "keywords": [
6
6
  "multitenantkit",
@@ -61,11 +61,11 @@
61
61
  "@multitenantkit/adapter-system-crypto-uuid": "^0.1.1",
62
62
  "@multitenantkit/adapter-system-system-clock": "^0.1.1",
63
63
  "@multitenantkit/adapter-transport-express": "^0.1.1",
64
- "@multitenantkit/api-handlers": "^0.1.1",
64
+ "@multitenantkit/api-handlers": "^0.1.2",
65
65
  "@multitenantkit/api-contracts": "^0.1.1",
66
66
  "@multitenantkit/domain-contracts": "^0.1.1",
67
- "@multitenantkit/domain": "^0.1.1",
68
- "@multitenantkit/composition": "^0.1.1"
67
+ "@multitenantkit/domain": "^0.1.2",
68
+ "@multitenantkit/composition": "^0.1.2"
69
69
  },
70
70
  "devDependencies": {
71
71
  "typescript": "^5.0.0"