@multitenantkit/adapter-persistence-supabase 0.2.7 → 0.2.9
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.
- package/README.md +91 -86
- package/dist/factory/SupabaseFactory.d.ts +2 -0
- package/dist/factory/SupabaseFactory.d.ts.map +1 -1
- package/dist/factory/SupabaseFactory.js +2 -0
- package/dist/factory/SupabaseFactory.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/repositories/SupabaseOrganizationMembershipRepository.d.ts.map +1 -1
- package/dist/repositories/SupabaseOrganizationMembershipRepository.js +29 -16
- package/dist/repositories/SupabaseOrganizationMembershipRepository.js.map +1 -1
- package/dist/uow/SupabaseUnitOfWork.d.ts +45 -0
- package/dist/uow/SupabaseUnitOfWork.d.ts.map +1 -0
- package/dist/uow/SupabaseUnitOfWork.js +58 -0
- package/dist/uow/SupabaseUnitOfWork.js.map +1 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -10,6 +10,7 @@ Supabase persistence adapter for MultiTenantKit. Works in both **Node.js** and *
|
|
|
10
10
|
- 🔄 Full CRUD operations for Users, Organizations, and OrganizationMemberships
|
|
11
11
|
- 🎨 Custom fields support with column mapping
|
|
12
12
|
- 📄 Pagination support
|
|
13
|
+
- 🔗 Unit of Work pattern support (non-transactional)
|
|
13
14
|
|
|
14
15
|
## Installation
|
|
15
16
|
|
|
@@ -17,65 +18,21 @@ Supabase persistence adapter for MultiTenantKit. Works in both **Node.js** and *
|
|
|
17
18
|
npm install @multitenantkit/adapter-persistence-supabase @supabase/supabase-js
|
|
18
19
|
```
|
|
19
20
|
|
|
21
|
+
> 💡 **For a complete solution** including use cases and system adapters, use `@multitenantkit/sdk-supabase` instead. This package provides only the persistence layer (repositories).
|
|
22
|
+
|
|
20
23
|
## Usage
|
|
21
24
|
|
|
22
|
-
### Quick Start (Recommended)
|
|
25
|
+
### Quick Start with SDK (Recommended)
|
|
26
|
+
|
|
27
|
+
For most users, we recommend using the complete Supabase SDK:
|
|
23
28
|
|
|
24
29
|
```typescript
|
|
25
|
-
import {
|
|
26
|
-
createSupabaseAdapters,
|
|
27
|
-
createUseCases
|
|
28
|
-
} from '@multitenantkit/adapter-persistence-supabase';
|
|
30
|
+
import { createSupabaseAdapters, createUseCases } from '@multitenantkit/sdk-supabase';
|
|
29
31
|
import { createClient } from '@supabase/supabase-js';
|
|
30
32
|
|
|
31
|
-
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
process.env.SUPABASE_SERVICE_ROLE_KEY!
|
|
35
|
-
);
|
|
36
|
-
|
|
37
|
-
// Create all adapters (persistence + system)
|
|
38
|
-
const adapters = createSupabaseAdapters({ client });
|
|
39
|
-
|
|
40
|
-
// Create use cases
|
|
41
|
-
const useCases = createUseCases(adapters);
|
|
42
|
-
|
|
43
|
-
// Use the API
|
|
44
|
-
const result = await useCases.users.createUser.execute(
|
|
45
|
-
{ externalId: 'user-123', username: 'john@example.com' },
|
|
46
|
-
{ requestId: 'req-1', externalId: 'system' }
|
|
47
|
-
);
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
### In Supabase Edge Functions (Deno)
|
|
51
|
-
|
|
52
|
-
```typescript
|
|
53
|
-
// supabase/functions/api/index.ts
|
|
54
|
-
import { createClient } from 'https://esm.sh/@supabase/supabase-js@2';
|
|
55
|
-
import {
|
|
56
|
-
createSupabaseAdapters,
|
|
57
|
-
createUseCases
|
|
58
|
-
} from 'https://esm.sh/@multitenantkit/adapter-persistence-supabase';
|
|
59
|
-
|
|
60
|
-
Deno.serve(async (req) => {
|
|
61
|
-
const client = createClient(
|
|
62
|
-
Deno.env.get('SUPABASE_URL')!,
|
|
63
|
-
Deno.env.get('SUPABASE_SERVICE_ROLE_KEY')!
|
|
64
|
-
);
|
|
65
|
-
|
|
66
|
-
const adapters = createSupabaseAdapters({ client });
|
|
67
|
-
const useCases = createUseCases(adapters);
|
|
68
|
-
|
|
69
|
-
// Handle requests...
|
|
70
|
-
const user = await useCases.users.getUser.execute(
|
|
71
|
-
{ userId: 'user-123' },
|
|
72
|
-
{ requestId: 'req-1', externalId: 'system' }
|
|
73
|
-
);
|
|
74
|
-
|
|
75
|
-
return new Response(JSON.stringify(user), {
|
|
76
|
-
headers: { 'Content-Type': 'application/json' }
|
|
77
|
-
});
|
|
78
|
-
});
|
|
33
|
+
const client = createClient(SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY);
|
|
34
|
+
const { adapters, toolkitOptions } = createSupabaseAdapters({ client });
|
|
35
|
+
const useCases = createUseCases(adapters, toolkitOptions);
|
|
79
36
|
```
|
|
80
37
|
|
|
81
38
|
### Using Repositories Directly
|
|
@@ -126,66 +83,88 @@ const repos = createSupabaseRepositories<UserCustomFields>({
|
|
|
126
83
|
});
|
|
127
84
|
```
|
|
128
85
|
|
|
129
|
-
### Using
|
|
86
|
+
### Using in Supabase Edge Functions (Deno)
|
|
87
|
+
|
|
88
|
+
For Edge Functions, use the complete SDK which handles Deno-specific setup:
|
|
130
89
|
|
|
131
90
|
```typescript
|
|
132
|
-
//
|
|
133
|
-
import {
|
|
134
|
-
import {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
91
|
+
// supabase/functions/api/index.ts
|
|
92
|
+
import { createSupabaseAdapters, createUseCases } from '@multitenantkit/sdk-supabase';
|
|
93
|
+
import { buildEdgeFunction } from '@multitenantkit/adapter-transport-supabase-edge';
|
|
94
|
+
import { createClient } from '@supabase/supabase-js';
|
|
95
|
+
|
|
96
|
+
const client = createClient(
|
|
97
|
+
Deno.env.get('SUPABASE_URL')!,
|
|
98
|
+
Deno.env.get('SUPABASE_SERVICE_ROLE_KEY')!
|
|
99
|
+
);
|
|
100
|
+
|
|
101
|
+
const { adapters, toolkitOptions } = createSupabaseAdapters({ client });
|
|
102
|
+
const useCases = createUseCases(adapters, toolkitOptions);
|
|
103
|
+
// ... build handlers and start server
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Using Repositories Directly (Advanced)
|
|
107
|
+
|
|
108
|
+
For advanced use cases where you only need the repositories:
|
|
109
|
+
|
|
110
|
+
```typescript
|
|
111
|
+
import { createClient } from '@supabase/supabase-js';
|
|
112
|
+
import { SupabaseUserRepository } from '@multitenantkit/adapter-persistence-supabase';
|
|
113
|
+
|
|
114
|
+
const client = createClient(SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY);
|
|
115
|
+
const userRepo = new SupabaseUserRepository(client);
|
|
116
|
+
const user = await userRepo.findByExternalId('user-123');
|
|
149
117
|
```
|
|
150
118
|
|
|
151
119
|
## Database Schema
|
|
152
120
|
|
|
153
|
-
This adapter expects the following tables in your Supabase database
|
|
121
|
+
This adapter expects the following tables in your Supabase database.
|
|
154
122
|
|
|
155
|
-
|
|
123
|
+
> 💡 For a complete migration script with indexes, triggers, and RLS policies, see the `000_full_setup.sql` file in the MultiTenantKit repository.
|
|
124
|
+
|
|
125
|
+
### profiles (users)
|
|
126
|
+
|
|
127
|
+
By default, the SDK uses `public.profiles` instead of `auth.users` because `auth.users` is not accessible via PostgREST.
|
|
156
128
|
|
|
157
129
|
```sql
|
|
158
|
-
create table
|
|
159
|
-
id uuid primary key,
|
|
160
|
-
external_id text
|
|
130
|
+
create table public.profiles (
|
|
131
|
+
id uuid references auth.users(id) on delete cascade primary key,
|
|
132
|
+
external_id text not null,
|
|
161
133
|
username text not null,
|
|
162
134
|
created_at timestamptz not null default now(),
|
|
163
135
|
updated_at timestamptz not null default now(),
|
|
164
|
-
deleted_at timestamptz
|
|
136
|
+
deleted_at timestamptz,
|
|
137
|
+
-- Add your custom fields here
|
|
138
|
+
first_name text,
|
|
139
|
+
last_name text
|
|
165
140
|
);
|
|
166
141
|
```
|
|
167
142
|
|
|
168
143
|
### organizations
|
|
169
144
|
|
|
170
145
|
```sql
|
|
171
|
-
create table organizations (
|
|
172
|
-
id uuid primary key,
|
|
173
|
-
owner_user_id uuid references
|
|
146
|
+
create table public.organizations (
|
|
147
|
+
id uuid primary key default gen_random_uuid(),
|
|
148
|
+
owner_user_id uuid references public.profiles(id),
|
|
174
149
|
created_at timestamptz not null default now(),
|
|
175
150
|
updated_at timestamptz not null default now(),
|
|
176
|
-
|
|
151
|
+
archived_at timestamptz,
|
|
152
|
+
deleted_at timestamptz,
|
|
153
|
+
-- Add your custom fields here
|
|
154
|
+
name text not null,
|
|
155
|
+
slug text unique
|
|
177
156
|
);
|
|
178
157
|
```
|
|
179
158
|
|
|
180
159
|
### organization_memberships
|
|
181
160
|
|
|
182
161
|
```sql
|
|
183
|
-
create table organization_memberships (
|
|
184
|
-
id uuid primary key,
|
|
185
|
-
user_id uuid references
|
|
162
|
+
create table public.organization_memberships (
|
|
163
|
+
id uuid primary key default gen_random_uuid(),
|
|
164
|
+
user_id uuid references public.profiles(id),
|
|
186
165
|
username text not null,
|
|
187
|
-
organization_id uuid references organizations(id),
|
|
188
|
-
role_code text not null
|
|
166
|
+
organization_id uuid not null references public.organizations(id),
|
|
167
|
+
role_code text not null default 'member',
|
|
189
168
|
invited_at timestamptz,
|
|
190
169
|
joined_at timestamptz,
|
|
191
170
|
left_at timestamptz,
|
|
@@ -213,6 +192,32 @@ Creates all repositories with shared configuration.
|
|
|
213
192
|
- `SupabaseOrganizationRepository` - Organization CRUD operations
|
|
214
193
|
- `SupabaseOrganizationMembershipRepository` - Membership CRUD operations
|
|
215
194
|
|
|
195
|
+
### Unit of Work
|
|
196
|
+
|
|
197
|
+
- `SupabaseUnitOfWork` - Unit of Work pattern implementation
|
|
198
|
+
|
|
199
|
+
## Unit of Work (Transaction Support)
|
|
200
|
+
|
|
201
|
+
This adapter includes a `SupabaseUnitOfWork` implementation that follows the Unit of Work pattern.
|
|
202
|
+
|
|
203
|
+
> ⚠️ **Important:** This is a **non-transactional** implementation. The Supabase JS client does not support native database transactions. Operations are executed sequentially without automatic rollback.
|
|
204
|
+
|
|
205
|
+
```typescript
|
|
206
|
+
import { createSupabaseRepositories } from '@multitenantkit/adapter-persistence-supabase';
|
|
207
|
+
|
|
208
|
+
const { uow } = createSupabaseRepositories({ client });
|
|
209
|
+
|
|
210
|
+
// Operations run sequentially (no automatic rollback on failure)
|
|
211
|
+
await uow.transaction(async (repos) => {
|
|
212
|
+
await repos.organizations.insert(organization, context);
|
|
213
|
+
await repos.organizationMemberships.insert(membership, context);
|
|
214
|
+
});
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
For true ACID transactions, consider:
|
|
218
|
+
- Using the PostgreSQL adapter with direct connection (`@multitenantkit/adapter-persistence-postgres`)
|
|
219
|
+
- Implementing RPC/stored procedures in Supabase
|
|
220
|
+
|
|
216
221
|
## Environment Variables
|
|
217
222
|
|
|
218
223
|
| Variable | Description |
|
|
@@ -9,6 +9,7 @@ import type { SupabaseClient } from '@supabase/supabase-js';
|
|
|
9
9
|
import { SupabaseOrganizationMembershipRepository } from '../repositories/SupabaseOrganizationMembershipRepository';
|
|
10
10
|
import { SupabaseOrganizationRepository } from '../repositories/SupabaseOrganizationRepository';
|
|
11
11
|
import { SupabaseUserRepository } from '../repositories/SupabaseUserRepository';
|
|
12
|
+
import { SupabaseUnitOfWork } from '../uow/SupabaseUnitOfWork';
|
|
12
13
|
/**
|
|
13
14
|
* Options for creating Supabase repositories
|
|
14
15
|
*/
|
|
@@ -22,6 +23,7 @@ export interface SupabaseFactoryOptions<TUserCustomFields, TOrganizationCustomFi
|
|
|
22
23
|
* Bundle of Supabase repositories
|
|
23
24
|
*/
|
|
24
25
|
export interface SupabaseRepositoryBundle<TUserCustomFields, TOrganizationCustomFields, TOrganizationMembershipCustomFields> {
|
|
26
|
+
uow: SupabaseUnitOfWork<TUserCustomFields, TOrganizationCustomFields, TOrganizationMembershipCustomFields>;
|
|
25
27
|
userRepository: SupabaseUserRepository<TUserCustomFields>;
|
|
26
28
|
organizationRepository: SupabaseOrganizationRepository<TOrganizationCustomFields>;
|
|
27
29
|
organizationMembershipRepository: SupabaseOrganizationMembershipRepository<TUserCustomFields, TOrganizationCustomFields, TOrganizationMembershipCustomFields>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupabaseFactory.d.ts","sourceRoot":"","sources":["../../src/factory/SupabaseFactory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,wCAAwC,EAAE,MAAM,0DAA0D,CAAC;AACpH,OAAO,EAAE,8BAA8B,EAAE,MAAM,gDAAgD,CAAC;AAChG,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"SupabaseFactory.d.ts","sourceRoot":"","sources":["../../src/factory/SupabaseFactory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,wCAAwC,EAAE,MAAM,0DAA0D,CAAC;AACpH,OAAO,EAAE,8BAA8B,EAAE,MAAM,gDAAgD,CAAC;AAChG,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,sBAAsB,CACnC,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC;IAEnC,+BAA+B;IAC/B,MAAM,EAAE,cAAc,CAAC;IACvB,mEAAmE;IACnE,cAAc,CAAC,EAAE,cAAc,CAC3B,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,CAAC;CACL;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB,CACrC,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC;IAEnC,GAAG,EAAE,kBAAkB,CACnB,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,CAAC;IACF,cAAc,EAAE,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;IAC1D,sBAAsB,EAAE,8BAA8B,CAAC,yBAAyB,CAAC,CAAC;IAClF,gCAAgC,EAAE,wCAAwC,CACtE,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,CAAC;CACL;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CAEtC,iBAAiB,GAAG,EAAE,EAEtB,yBAAyB,GAAG,EAAE,EAE9B,mCAAmC,GAAG,EAAE,EAExC,OAAO,EAAE,sBAAsB,CAC3B,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,GACF,wBAAwB,CACvB,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,CAuBA"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import { SupabaseOrganizationMembershipRepository } from '../repositories/SupabaseOrganizationMembershipRepository';
|
|
8
8
|
import { SupabaseOrganizationRepository } from '../repositories/SupabaseOrganizationRepository';
|
|
9
9
|
import { SupabaseUserRepository } from '../repositories/SupabaseUserRepository';
|
|
10
|
+
import { SupabaseUnitOfWork } from '../uow/SupabaseUnitOfWork';
|
|
10
11
|
/**
|
|
11
12
|
* Create all Supabase repositories
|
|
12
13
|
*
|
|
@@ -25,6 +26,7 @@ import { SupabaseUserRepository } from '../repositories/SupabaseUserRepository';
|
|
|
25
26
|
export function createSupabaseRepositories(options) {
|
|
26
27
|
const { client, toolkitOptions } = options;
|
|
27
28
|
return {
|
|
29
|
+
uow: new SupabaseUnitOfWork(client, toolkitOptions),
|
|
28
30
|
userRepository: new SupabaseUserRepository(client, toolkitOptions),
|
|
29
31
|
organizationRepository: new SupabaseOrganizationRepository(client, toolkitOptions),
|
|
30
32
|
organizationMembershipRepository: new SupabaseOrganizationMembershipRepository(client, toolkitOptions)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupabaseFactory.js","sourceRoot":"","sources":["../../src/factory/SupabaseFactory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,wCAAwC,EAAE,MAAM,0DAA0D,CAAC;AACpH,OAAO,EAAE,8BAA8B,EAAE,MAAM,gDAAgD,CAAC;AAChG,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"SupabaseFactory.js","sourceRoot":"","sources":["../../src/factory/SupabaseFactory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,wCAAwC,EAAE,MAAM,0DAA0D,CAAC;AACpH,OAAO,EAAE,8BAA8B,EAAE,MAAM,gDAAgD,CAAC;AAChG,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AA0C/D;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,0BAA0B,CAQtC,OAIC;IAMD,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IAE3C,OAAO;QACH,GAAG,EAAE,IAAI,kBAAkB,CAIzB,MAAM,EAAE,cAAc,CAAC;QACzB,cAAc,EAAE,IAAI,sBAAsB,CACtC,MAAM,EACN,cAAqB,CACxB;QACD,sBAAsB,EAAE,IAAI,8BAA8B,CACtD,MAAM,EACN,cAAqB,CACxB;QACD,gCAAgC,EAAE,IAAI,wCAAwC,CAI5E,MAAM,EAAE,cAAc,CAAC;KAC5B,CAAC;AACN,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -27,4 +27,5 @@ export { type UserDbRow, UserMapper } from './mappers/UserMapper';
|
|
|
27
27
|
export { SupabaseOrganizationMembershipRepository } from './repositories/SupabaseOrganizationMembershipRepository';
|
|
28
28
|
export { SupabaseOrganizationRepository } from './repositories/SupabaseOrganizationRepository';
|
|
29
29
|
export { SupabaseUserRepository } from './repositories/SupabaseUserRepository';
|
|
30
|
+
export { SupabaseUnitOfWork } from './uow/SupabaseUnitOfWork';
|
|
30
31
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EACH,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,EACtB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACH,0BAA0B,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAChC,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,KAAK,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EACH,KAAK,2BAA2B,EAChC,4BAA4B,EAC/B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,KAAK,SAAS,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlE,OAAO,EAAE,wCAAwC,EAAE,MAAM,yDAAyD,CAAC;AACnH,OAAO,EAAE,8BAA8B,EAAE,MAAM,+CAA+C,CAAC;AAC/F,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EACH,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,EACtB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACH,0BAA0B,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAChC,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,KAAK,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EACH,KAAK,2BAA2B,EAChC,4BAA4B,EAC/B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,KAAK,SAAS,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlE,OAAO,EAAE,wCAAwC,EAAE,MAAM,yDAAyD,CAAC;AACnH,OAAO,EAAE,8BAA8B,EAAE,MAAM,+CAA+C,CAAC;AAC/F,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAG/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -31,4 +31,6 @@ export { UserMapper } from './mappers/UserMapper';
|
|
|
31
31
|
export { SupabaseOrganizationMembershipRepository } from './repositories/SupabaseOrganizationMembershipRepository';
|
|
32
32
|
export { SupabaseOrganizationRepository } from './repositories/SupabaseOrganizationRepository';
|
|
33
33
|
export { SupabaseUserRepository } from './repositories/SupabaseUserRepository';
|
|
34
|
+
// Unit of Work
|
|
35
|
+
export { SupabaseUnitOfWork } from './uow/SupabaseUnitOfWork';
|
|
34
36
|
//# 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;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,2BAA2B;AAC3B,OAAO,EACH,oBAAoB,EACpB,oBAAoB,EAGvB,MAAM,yBAAyB,CAAC;AAEjC,oBAAoB;AACpB,OAAO,EACH,0BAA0B,EAG7B,MAAM,2BAA2B,CAAC;AAEnC,UAAU;AACV,OAAO,EAA0B,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EAEH,4BAA4B,EAC/B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAkB,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElE,eAAe;AACf,OAAO,EAAE,wCAAwC,EAAE,MAAM,yDAAyD,CAAC;AACnH,OAAO,EAAE,8BAA8B,EAAE,MAAM,+CAA+C,CAAC;AAC/F,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,2BAA2B;AAC3B,OAAO,EACH,oBAAoB,EACpB,oBAAoB,EAGvB,MAAM,yBAAyB,CAAC;AAEjC,oBAAoB;AACpB,OAAO,EACH,0BAA0B,EAG7B,MAAM,2BAA2B,CAAC;AAEnC,UAAU;AACV,OAAO,EAA0B,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EAEH,4BAA4B,EAC/B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAkB,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElE,eAAe;AACf,OAAO,EAAE,wCAAwC,EAAE,MAAM,yDAAyD,CAAC;AACnH,OAAO,EAAE,8BAA8B,EAAE,MAAM,+CAA+C,CAAC;AAC/F,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,eAAe;AACf,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupabaseOrganizationMembershipRepository.d.ts","sourceRoot":"","sources":["../../src/repositories/SupabaseOrganizationMembershipRepository.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACR,kBAAkB,EAClB,sBAAsB,EACtB,gCAAgC,EAChC,8BAA8B,EAC9B,eAAe,EACf,cAAc,EACjB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAM5D;;GAEG;AACH,qBAAa,wCAAwC,CAEjD,iBAAiB,GAAG,EAAE,EAEtB,yBAAyB,GAAG,EAAE,EAE9B,mCAAmC,GAAG,EAAE,CAC1C,YACM,gCAAgC,CAC5B,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC;IASD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAP3B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoF;IACjH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAS;gBAG3B,MAAM,EAAE,cAAc,EACvC,cAAc,CAAC,EAAE,cAAc,CAC3B,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC;IAsBL,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,WAAW;IAYb,QAAQ,CACV,EAAE,EAAE,MAAM,GACX,OAAO,CAAC,CAAC,sBAAsB,GAAG,mCAAmC,CAAC,GAAG,IAAI,CAAC;IAc3E,6BAA6B,CAC/B,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,GACvB,OAAO,CAAC,CAAC,sBAAsB,GAAG,mCAAmC,CAAC,GAAG,IAAI,CAAC;IAe3E,+BAA+B,CACjC,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,GACvB,OAAO,CAAC,CAAC,sBAAsB,GAAG,mCAAmC,CAAC,GAAG,IAAI,CAAC;IAe3E,kBAAkB,CACpB,cAAc,EAAE,MAAM,EACtB,UAAU,UAAQ,GACnB,OAAO,CAAC,CAAC,sBAAsB,GAAG,mCAAmC,CAAC,EAAE,CAAC;IAuBtE,8BAA8B,CAChC,cAAc,EAAE,MAAM,EACtB,UAAU,UAAQ,GACnB,OAAO,CACN,8BAA8B,CAC1B,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,EAAE,CACN;IAmBK,uCAAuC,CACzC,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,kBAAkB,GAC7B,OAAO,CACN,eAAe,CACX,8BAA8B,CAC1B,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,CACJ,CACJ;
|
|
1
|
+
{"version":3,"file":"SupabaseOrganizationMembershipRepository.d.ts","sourceRoot":"","sources":["../../src/repositories/SupabaseOrganizationMembershipRepository.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACR,kBAAkB,EAClB,sBAAsB,EACtB,gCAAgC,EAChC,8BAA8B,EAC9B,eAAe,EACf,cAAc,EACjB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAM5D;;GAEG;AACH,qBAAa,wCAAwC,CAEjD,iBAAiB,GAAG,EAAE,EAEtB,yBAAyB,GAAG,EAAE,EAE9B,mCAAmC,GAAG,EAAE,CAC1C,YACM,gCAAgC,CAC5B,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC;IASD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAP3B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoF;IACjH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAS;gBAG3B,MAAM,EAAE,cAAc,EACvC,cAAc,CAAC,EAAE,cAAc,CAC3B,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC;IAsBL,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,WAAW;IAYb,QAAQ,CACV,EAAE,EAAE,MAAM,GACX,OAAO,CAAC,CAAC,sBAAsB,GAAG,mCAAmC,CAAC,GAAG,IAAI,CAAC;IAc3E,6BAA6B,CAC/B,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,GACvB,OAAO,CAAC,CAAC,sBAAsB,GAAG,mCAAmC,CAAC,GAAG,IAAI,CAAC;IAe3E,+BAA+B,CACjC,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,GACvB,OAAO,CAAC,CAAC,sBAAsB,GAAG,mCAAmC,CAAC,GAAG,IAAI,CAAC;IAe3E,kBAAkB,CACpB,cAAc,EAAE,MAAM,EACtB,UAAU,UAAQ,GACnB,OAAO,CAAC,CAAC,sBAAsB,GAAG,mCAAmC,CAAC,EAAE,CAAC;IAuBtE,8BAA8B,CAChC,cAAc,EAAE,MAAM,EACtB,UAAU,UAAQ,GACnB,OAAO,CACN,8BAA8B,CAC1B,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,EAAE,CACN;IAmBK,uCAAuC,CACzC,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,kBAAkB,GAC7B,OAAO,CACN,eAAe,CACX,8BAA8B,CAC1B,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,CACJ,CACJ;IAoJD;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAerB,UAAU,CACZ,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,CAAC,sBAAsB,GAAG,mCAAmC,CAAC,EAAE,CAAC;IActE,OAAO,IAAI,OAAO,CAAC,CAAC,sBAAsB,GAAG,mCAAmC,CAAC,EAAE,CAAC;IAYpF,MAAM,CACR,UAAU,EAAE,sBAAsB,GAAG,mCAAmC,EACxE,QAAQ,CAAC,EAAE,gBAAgB,GAC5B,OAAO,CAAC,IAAI,CAAC;IA4BV,MAAM,CACR,UAAU,EAAE,sBAAsB,GAAG,mCAAmC,EACxE,QAAQ,CAAC,EAAE,gBAAgB,GAC5B,OAAO,CAAC,IAAI,CAAC;IAgCV,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CASvE"}
|
|
@@ -122,36 +122,49 @@ export class SupabaseOrganizationMembershipRepository {
|
|
|
122
122
|
async findByOrganizationWithUserInfoPaginated(organizationId, options) {
|
|
123
123
|
// Build select with joins to users and organizations tables
|
|
124
124
|
// Supabase uses PostgREST syntax for joins via foreign key relationships
|
|
125
|
-
//
|
|
125
|
+
// - Use !left for LEFT JOIN (pending invitations may not have userId yet)
|
|
126
|
+
// - Use !inner for INNER JOIN (organization must exist)
|
|
126
127
|
// Note: This requires foreign key relationships to be set up in Supabase
|
|
127
128
|
const selectWithJoins = `
|
|
128
129
|
*,
|
|
129
|
-
user:${this.usersTableName}
|
|
130
|
-
organization:${this.organizationsTableName}
|
|
130
|
+
user:${this.usersTableName}!left(*),
|
|
131
|
+
organization:${this.organizationsTableName}!inner(*)
|
|
131
132
|
`;
|
|
132
133
|
let query = this.getTable()
|
|
133
134
|
.select(selectWithJoins, { count: 'exact' })
|
|
134
135
|
.eq(this.configHelper.getColumnName('organizationId'), organizationId);
|
|
135
136
|
// Build filter conditions based on options
|
|
136
|
-
|
|
137
|
+
// Match PostgreSQL behavior: combine filters with OR when multiple are specified
|
|
138
|
+
const includeActive = options?.includeActive ?? false;
|
|
139
|
+
const includePending = options?.includePending ?? false;
|
|
140
|
+
const includeRemoved = options?.includeRemoved ?? false;
|
|
141
|
+
// If no filters specified, default to active only
|
|
142
|
+
if (!includeActive && !includePending && !includeRemoved) {
|
|
143
|
+
// Default: active members only
|
|
137
144
|
query = query
|
|
138
145
|
.not(this.configHelper.getColumnName('joinedAt'), 'is', null)
|
|
139
146
|
.is(this.configHelper.getColumnName('leftAt'), null)
|
|
140
147
|
.is(this.configHelper.getColumnName('deletedAt'), null);
|
|
141
148
|
}
|
|
142
|
-
else if (options?.includePending) {
|
|
143
|
-
query = query
|
|
144
|
-
.not(this.configHelper.getColumnName('invitedAt'), 'is', null)
|
|
145
|
-
.is(this.configHelper.getColumnName('joinedAt'), null)
|
|
146
|
-
.is(this.configHelper.getColumnName('leftAt'), null)
|
|
147
|
-
.is(this.configHelper.getColumnName('deletedAt'), null);
|
|
148
|
-
}
|
|
149
149
|
else {
|
|
150
|
-
//
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
150
|
+
// Build OR conditions for status filtering
|
|
151
|
+
// PostgREST supports .or() for combining conditions
|
|
152
|
+
const orConditions = [];
|
|
153
|
+
if (includeActive) {
|
|
154
|
+
// Active: joinedAt NOT NULL, leftAt NULL, deletedAt NULL
|
|
155
|
+
orConditions.push(`and(${this.configHelper.getColumnName('joinedAt')}.not.is.null,${this.configHelper.getColumnName('leftAt')}.is.null,${this.configHelper.getColumnName('deletedAt')}.is.null)`);
|
|
156
|
+
}
|
|
157
|
+
if (includePending) {
|
|
158
|
+
// Pending: invitedAt NOT NULL, joinedAt NULL, leftAt NULL, deletedAt NULL
|
|
159
|
+
orConditions.push(`and(${this.configHelper.getColumnName('invitedAt')}.not.is.null,${this.configHelper.getColumnName('joinedAt')}.is.null,${this.configHelper.getColumnName('leftAt')}.is.null,${this.configHelper.getColumnName('deletedAt')}.is.null)`);
|
|
160
|
+
}
|
|
161
|
+
if (includeRemoved) {
|
|
162
|
+
// Removed: leftAt NOT NULL OR deletedAt NOT NULL
|
|
163
|
+
orConditions.push(`or(${this.configHelper.getColumnName('leftAt')}.not.is.null,${this.configHelper.getColumnName('deletedAt')}.not.is.null)`);
|
|
164
|
+
}
|
|
165
|
+
if (orConditions.length > 0) {
|
|
166
|
+
query = query.or(orConditions.join(','));
|
|
167
|
+
}
|
|
155
168
|
}
|
|
156
169
|
// Apply pagination using page and pageSize
|
|
157
170
|
const page = options?.page ?? 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupabaseOrganizationMembershipRepository.js","sourceRoot":"","sources":["../../src/repositories/SupabaseOrganizationMembershipRepository.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SupabaseOrganizationMembershipRepository.js","sourceRoot":"","sources":["../../src/repositories/SupabaseOrganizationMembershipRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Supabase Unit of Work Implementation
|
|
3
|
+
*
|
|
4
|
+
* IMPORTANT: This is a non-transactional implementation.
|
|
5
|
+
* Supabase JS client does not support native database transactions.
|
|
6
|
+
* Operations are executed sequentially without automatic rollback.
|
|
7
|
+
*
|
|
8
|
+
* For true ACID transactions, consider:
|
|
9
|
+
* - Using PostgreSQL adapter with direct connection
|
|
10
|
+
* - Implementing RPC/stored procedures in Supabase
|
|
11
|
+
*
|
|
12
|
+
* This implementation allows the framework to function with Supabase
|
|
13
|
+
* while acknowledging the transactional limitations.
|
|
14
|
+
*/
|
|
15
|
+
import type { RepositoryBundle, ToolkitOptions, UnitOfWork } from '@multitenantkit/domain-contracts';
|
|
16
|
+
import type { SupabaseClient } from '@supabase/supabase-js';
|
|
17
|
+
/**
|
|
18
|
+
* Supabase-based Unit of Work implementation
|
|
19
|
+
*
|
|
20
|
+
* NOTE: This is a non-transactional implementation that executes
|
|
21
|
+
* operations sequentially. If an operation fails mid-way, previous
|
|
22
|
+
* operations will NOT be rolled back automatically.
|
|
23
|
+
*
|
|
24
|
+
* Generic support for custom fields:
|
|
25
|
+
* @template TUserCustomFields - Custom fields for UserRepository
|
|
26
|
+
* @template TOrganizationCustomFields - Custom fields for OrganizationRepository
|
|
27
|
+
* @template TOrganizationMembershipCustomFields - Custom fields for OrganizationMembershipRepository
|
|
28
|
+
*/
|
|
29
|
+
export declare class SupabaseUnitOfWork<TUserCustomFields = {}, TOrganizationCustomFields = {}, TOrganizationMembershipCustomFields = {}> implements UnitOfWork<TUserCustomFields, TOrganizationCustomFields, TOrganizationMembershipCustomFields> {
|
|
30
|
+
private readonly client;
|
|
31
|
+
private readonly toolkitOptions?;
|
|
32
|
+
constructor(client: SupabaseClient, toolkitOptions?: ToolkitOptions<TUserCustomFields, TOrganizationCustomFields, TOrganizationMembershipCustomFields> | undefined);
|
|
33
|
+
/**
|
|
34
|
+
* Execute work with repository bundle
|
|
35
|
+
*
|
|
36
|
+
* WARNING: This is NOT a true database transaction.
|
|
37
|
+
* Operations are executed sequentially without rollback capability.
|
|
38
|
+
* If an operation fails, previous operations will persist.
|
|
39
|
+
*
|
|
40
|
+
* @param work - Function containing the operations to execute
|
|
41
|
+
* @returns Result of the work function
|
|
42
|
+
*/
|
|
43
|
+
transaction<T>(work: (repos: RepositoryBundle<TUserCustomFields, TOrganizationCustomFields, TOrganizationMembershipCustomFields>) => Promise<T>): Promise<T>;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=SupabaseUnitOfWork.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SupabaseUnitOfWork.d.ts","sourceRoot":"","sources":["../../src/uow/SupabaseUnitOfWork.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACR,gBAAgB,EAChB,cAAc,EACd,UAAU,EACb,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAkB,CAE3B,iBAAiB,GAAG,EAAE,EAEtB,yBAAyB,GAAG,EAAE,EAE9B,mCAAmC,GAAG,EAAE,CAC1C,YACM,UAAU,CACN,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC;IAGD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;gBADf,MAAM,EAAE,cAAc,EACtB,cAAc,CAAC,EAAE,cAAc,CAC5C,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,YAAA;IAGL;;;;;;;;;OASG;IACG,WAAW,CAAC,CAAC,EACf,IAAI,EAAE,CACF,KAAK,EAAE,gBAAgB,CACnB,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,KACA,OAAO,CAAC,CAAC,CAAC,GAChB,OAAO,CAAC,CAAC,CAAC;CAyBhB"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Supabase Unit of Work Implementation
|
|
3
|
+
*
|
|
4
|
+
* IMPORTANT: This is a non-transactional implementation.
|
|
5
|
+
* Supabase JS client does not support native database transactions.
|
|
6
|
+
* Operations are executed sequentially without automatic rollback.
|
|
7
|
+
*
|
|
8
|
+
* For true ACID transactions, consider:
|
|
9
|
+
* - Using PostgreSQL adapter with direct connection
|
|
10
|
+
* - Implementing RPC/stored procedures in Supabase
|
|
11
|
+
*
|
|
12
|
+
* This implementation allows the framework to function with Supabase
|
|
13
|
+
* while acknowledging the transactional limitations.
|
|
14
|
+
*/
|
|
15
|
+
import { SupabaseOrganizationMembershipRepository } from '../repositories/SupabaseOrganizationMembershipRepository';
|
|
16
|
+
import { SupabaseOrganizationRepository } from '../repositories/SupabaseOrganizationRepository';
|
|
17
|
+
import { SupabaseUserRepository } from '../repositories/SupabaseUserRepository';
|
|
18
|
+
/**
|
|
19
|
+
* Supabase-based Unit of Work implementation
|
|
20
|
+
*
|
|
21
|
+
* NOTE: This is a non-transactional implementation that executes
|
|
22
|
+
* operations sequentially. If an operation fails mid-way, previous
|
|
23
|
+
* operations will NOT be rolled back automatically.
|
|
24
|
+
*
|
|
25
|
+
* Generic support for custom fields:
|
|
26
|
+
* @template TUserCustomFields - Custom fields for UserRepository
|
|
27
|
+
* @template TOrganizationCustomFields - Custom fields for OrganizationRepository
|
|
28
|
+
* @template TOrganizationMembershipCustomFields - Custom fields for OrganizationMembershipRepository
|
|
29
|
+
*/
|
|
30
|
+
export class SupabaseUnitOfWork {
|
|
31
|
+
client;
|
|
32
|
+
toolkitOptions;
|
|
33
|
+
constructor(client, toolkitOptions) {
|
|
34
|
+
this.client = client;
|
|
35
|
+
this.toolkitOptions = toolkitOptions;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Execute work with repository bundle
|
|
39
|
+
*
|
|
40
|
+
* WARNING: This is NOT a true database transaction.
|
|
41
|
+
* Operations are executed sequentially without rollback capability.
|
|
42
|
+
* If an operation fails, previous operations will persist.
|
|
43
|
+
*
|
|
44
|
+
* @param work - Function containing the operations to execute
|
|
45
|
+
* @returns Result of the work function
|
|
46
|
+
*/
|
|
47
|
+
async transaction(work) {
|
|
48
|
+
// Create repository bundle with the Supabase client
|
|
49
|
+
const repos = {
|
|
50
|
+
users: new SupabaseUserRepository(this.client, this.toolkitOptions),
|
|
51
|
+
organizations: new SupabaseOrganizationRepository(this.client, this.toolkitOptions),
|
|
52
|
+
organizationMemberships: new SupabaseOrganizationMembershipRepository(this.client, this.toolkitOptions)
|
|
53
|
+
};
|
|
54
|
+
// Execute the work (non-transactional)
|
|
55
|
+
return await work(repos);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=SupabaseUnitOfWork.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SupabaseUnitOfWork.js","sourceRoot":"","sources":["../../src/uow/SupabaseUnitOfWork.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAQH,OAAO,EAAE,wCAAwC,EAAE,MAAM,0DAA0D,CAAC;AACpH,OAAO,EAAE,8BAA8B,EAAE,MAAM,gDAAgD,CAAC;AAChG,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAEhF;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,kBAAkB;IAeN;IACA;IAFrB,YACqB,MAAsB,EACtB,cAIhB;QALgB,WAAM,GAAN,MAAM,CAAgB;QACtB,mBAAc,GAAd,cAAc,CAI9B;IACF,CAAC;IAEJ;;;;;;;;;OASG;IACH,KAAK,CAAC,WAAW,CACb,IAMe;QAEf,oDAAoD;QACpD,MAAM,KAAK,GAIP;YACA,KAAK,EAAE,IAAI,sBAAsB,CAC7B,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,cAAqB,CAC7B;YACD,aAAa,EAAE,IAAI,8BAA8B,CAC7C,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,cAAqB,CAC7B;YACD,uBAAuB,EAAE,IAAI,wCAAwC,CAInE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC;SACtC,CAAC;QAEF,uCAAuC;QACvC,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;CACJ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@multitenantkit/adapter-persistence-supabase",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.9",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Supabase persistence adapter for MultiTenantKit - works in Node.js and Deno/Edge Functions",
|
|
6
6
|
"keywords": [
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"test:coverage": "vitest run --coverage"
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"@multitenantkit/domain": "^0.2.
|
|
58
|
+
"@multitenantkit/domain": "^0.2.8",
|
|
59
59
|
"@multitenantkit/domain-contracts": "^0.2.0",
|
|
60
60
|
"@supabase/supabase-js": "^2.39.0",
|
|
61
61
|
"zod": "^3.22.4"
|