@multitenantkit/sdk-supabase 0.2.11 → 0.2.12

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.
@@ -5,6 +5,7 @@
5
5
  * All configuration is optional - uses sensible defaults.
6
6
  */
7
7
  import type { ToolkitOptions } from '@multitenantkit/domain-contracts';
8
+ import type { SupabaseClient } from '@supabase/supabase-js';
8
9
  /**
9
10
  * CORS configuration options for Edge Functions
10
11
  */
@@ -42,6 +43,16 @@ export interface EdgeOptions {
42
43
  * Options for createSupabaseEdgeHandler
43
44
  */
44
45
  export interface CreateSupabaseEdgeHandlerOptions<TUserCustomFields, TOrganizationCustomFields, TOrganizationMembershipCustomFields> {
46
+ /**
47
+ * Supabase client instance.
48
+ * **IMPORTANT for Deno/esm.sh**: Pass a client created with createClient
49
+ * imported directly from 'https://esm.sh/@supabase/supabase-js@2' to avoid
50
+ * version conflicts with transitive dependencies.
51
+ *
52
+ * If not provided, will be auto-created from environment variables
53
+ * (works in Node.js, may have issues in Deno via esm.sh).
54
+ */
55
+ client?: SupabaseClient;
45
56
  /**
46
57
  * Toolkit options for custom fields and configuration.
47
58
  * Supabase defaults are applied automatically.
@@ -71,26 +82,28 @@ export interface CreateSupabaseEdgeHandlerOptions<TUserCustomFields, TOrganizati
71
82
  *
72
83
  * @example
73
84
  * ```typescript
74
- * // Simplest usage - zero configuration!
75
- * import { createSupabaseEdgeHandler } from '@multitenantkit/sdk-supabase';
85
+ * // For Deno/esm.sh - pass your own client to avoid version conflicts
86
+ * import { createClient } from 'https://esm.sh/@supabase/supabase-js@2';
87
+ * import { createSupabaseEdgeHandler } from 'https://esm.sh/@multitenantkit/sdk-supabase';
76
88
  *
77
- * const handler = createSupabaseEdgeHandler();
89
+ * const client = createClient(
90
+ * Deno.env.get('PROJECT_URL')!,
91
+ * Deno.env.get('SERVICE_ROLE_KEY')!
92
+ * );
93
+ *
94
+ * const handler = createSupabaseEdgeHandler({ client });
78
95
  * Deno.serve(handler);
79
96
  *
80
97
  * // With custom fields
81
98
  * const handler = createSupabaseEdgeHandler({
99
+ * client,
82
100
  * toolkitOptions: {
83
101
  * users: { customFields: { customSchema: userSchema } }
84
102
  * }
85
103
  * });
86
104
  *
87
- * // With edge options
88
- * const handler = createSupabaseEdgeHandler({
89
- * edgeOptions: {
90
- * basePath: '/multitenantkit',
91
- * cors: { allowOrigin: 'https://myapp.com', ... }
92
- * }
93
- * });
105
+ * // Node.js - auto-creates client from env vars
106
+ * const handler = createSupabaseEdgeHandler();
94
107
  * ```
95
108
  */
96
109
  export declare function createSupabaseEdgeHandler<TUserCustomFields = {}, TOrganizationCustomFields = {}, TOrganizationMembershipCustomFields = {}>(options?: CreateSupabaseEdgeHandlerOptions<TUserCustomFields, TOrganizationCustomFields, TOrganizationMembershipCustomFields>): (request: Request) => Promise<Response>;
@@ -1 +1 @@
1
- {"version":3,"file":"EdgeHandlerFactory.d.ts","sourceRoot":"","sources":["../../src/factories/EdgeHandlerFactory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAIvE;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,iFAAiF;IACjF,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC/B,qDAAqD;IACrD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,uDAAuD;IACvD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC,CAC7C,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC;IAEnC;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAC3B,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,CAAC;IACF;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;CAC7B;AAWD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,yBAAyB,CAErC,iBAAiB,GAAG,EAAE,EAEtB,yBAAyB,GAAG,EAAE,EAE9B,mCAAmC,GAAG,EAAE,EAExC,OAAO,CAAC,EAAE,gCAAgC,CACtC,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,GACF,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CA2BzC"}
1
+ {"version":3,"file":"EdgeHandlerFactory.d.ts","sourceRoot":"","sources":["../../src/factories/EdgeHandlerFactory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI5D;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,iFAAiF;IACjF,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC/B,qDAAqD;IACrD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,uDAAuD;IACvD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC,CAC7C,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC;IAEnC;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAC3B,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,CAAC;IACF;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;CAC7B;AAWD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,yBAAyB,CAErC,iBAAiB,GAAG,EAAE,EAEtB,yBAAyB,GAAG,EAAE,EAE9B,mCAAmC,GAAG,EAAE,EAExC,OAAO,CAAC,EAAE,gCAAgC,CACtC,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,GACF,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAkCzC"}
@@ -35,32 +35,37 @@ const DEFAULT_CORS = {
35
35
  *
36
36
  * @example
37
37
  * ```typescript
38
- * // Simplest usage - zero configuration!
39
- * import { createSupabaseEdgeHandler } from '@multitenantkit/sdk-supabase';
38
+ * // For Deno/esm.sh - pass your own client to avoid version conflicts
39
+ * import { createClient } from 'https://esm.sh/@supabase/supabase-js@2';
40
+ * import { createSupabaseEdgeHandler } from 'https://esm.sh/@multitenantkit/sdk-supabase';
40
41
  *
41
- * const handler = createSupabaseEdgeHandler();
42
+ * const client = createClient(
43
+ * Deno.env.get('PROJECT_URL')!,
44
+ * Deno.env.get('SERVICE_ROLE_KEY')!
45
+ * );
46
+ *
47
+ * const handler = createSupabaseEdgeHandler({ client });
42
48
  * Deno.serve(handler);
43
49
  *
44
50
  * // With custom fields
45
51
  * const handler = createSupabaseEdgeHandler({
52
+ * client,
46
53
  * toolkitOptions: {
47
54
  * users: { customFields: { customSchema: userSchema } }
48
55
  * }
49
56
  * });
50
57
  *
51
- * // With edge options
52
- * const handler = createSupabaseEdgeHandler({
53
- * edgeOptions: {
54
- * basePath: '/multitenantkit',
55
- * cors: { allowOrigin: 'https://myapp.com', ... }
56
- * }
57
- * });
58
+ * // Node.js - auto-creates client from env vars
59
+ * const handler = createSupabaseEdgeHandler();
58
60
  * ```
59
61
  */
60
62
  export function createSupabaseEdgeHandler(options) {
61
- const { toolkitOptions: userToolkitOptions, edgeOptions } = options ?? {};
62
- // 1. Create adapters (auto-creates Supabase client from env vars)
63
- const { adapters, toolkitOptions, client } = createSupabaseAdapters({ toolkitOptions: userToolkitOptions });
63
+ const { client: providedClient, toolkitOptions: userToolkitOptions, edgeOptions } = options ?? {};
64
+ // 1. Create adapters (uses provided client or auto-creates from env vars)
65
+ const { adapters, toolkitOptions, client } = createSupabaseAdapters({
66
+ client: providedClient,
67
+ toolkitOptions: userToolkitOptions
68
+ });
64
69
  // 2. Create use cases
65
70
  const useCases = createUseCases(adapters, toolkitOptions);
66
71
  // 3. Build HTTP handlers
@@ -1 +1 @@
1
- {"version":3,"file":"EdgeHandlerFactory.js","sourceRoot":"","sources":["../../src/factories/EdgeHandlerFactory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AA6DlD;;GAEG;AACH,MAAM,YAAY,GAAgB;IAC9B,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,CAAC;IAC1F,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC;CACrE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,UAAU,yBAAyB,CAQrC,OAIC;IAED,MAAM,EAAE,cAAc,EAAE,kBAAkB,EAAE,WAAW,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAE1E,kEAAkE;IAClE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,sBAAsB,CAIjE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAE1C,sBAAsB;IACtB,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAE1D,yBAAyB;IACzB,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAEzD,iFAAiF;IACjF,MAAM,WAAW,GAAG,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAExD,+CAA+C;IAC/C,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,EAAE,WAAW,EAAE;QACrD,QAAQ,EAAE,WAAW,EAAE,QAAQ,IAAI,MAAM;QACzC,IAAI,EAAE,WAAW,EAAE,IAAI,IAAI,YAAY;QACvC,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,KAAK;KACrC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"EdgeHandlerFactory.js","sourceRoot":"","sources":["../../src/factories/EdgeHandlerFactory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAG7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAuElD;;GAEG;AACH,MAAM,YAAY,GAAgB;IAC9B,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,CAAC;IAC1F,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC;CACrE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,UAAU,yBAAyB,CAQrC,OAIC;IAED,MAAM,EACF,MAAM,EAAE,cAAc,EACtB,cAAc,EAAE,kBAAkB,EAClC,WAAW,EACd,GAAG,OAAO,IAAI,EAAE,CAAC;IAElB,0EAA0E;IAC1E,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,sBAAsB,CAIjE;QACE,MAAM,EAAE,cAAc;QACtB,cAAc,EAAE,kBAAkB;KACrC,CAAC,CAAC;IAEH,sBAAsB;IACtB,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAE1D,yBAAyB;IACzB,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAEzD,iFAAiF;IACjF,MAAM,WAAW,GAAG,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAExD,+CAA+C;IAC/C,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,EAAE,WAAW,EAAE;QACrD,QAAQ,EAAE,WAAW,EAAE,QAAQ,IAAI,MAAM;QACzC,IAAI,EAAE,WAAW,EAAE,IAAI,IAAI,YAAY;QACvC,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,KAAK;KACrC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACnB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@multitenantkit/sdk-supabase",
3
- "version": "0.2.11",
3
+ "version": "0.2.12",
4
4
  "type": "module",
5
5
  "description": "MultiTenantKit SDK for Supabase Edge Functions (Deno compatible)",
6
6
  "keywords": [