@multitenantkit/sdk-supabase 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Supabase Adapter Factory
3
+ *
4
+ * Creates complete adapters bundle for Supabase Edge Functions.
5
+ * Uses Web Crypto API for UUID generation (Deno compatible).
6
+ */
7
+ import type { Adapters, ToolkitOptions } from '@multitenantkit/domain-contracts';
8
+ import type { SupabaseClient } from '@supabase/supabase-js';
9
+ /**
10
+ * Options for creating Supabase adapters
11
+ */
12
+ export interface CreateSupabaseAdaptersOptions<TUserCustomFields, TOrganizationCustomFields, TOrganizationMembershipCustomFields> {
13
+ /** Supabase client instance */
14
+ client: SupabaseClient;
15
+ /** Toolkit options for custom fields and database configuration */
16
+ toolkitOptions?: ToolkitOptions<TUserCustomFields, TOrganizationCustomFields, TOrganizationMembershipCustomFields>;
17
+ }
18
+ /**
19
+ * Create complete Supabase adapters bundle (persistence + system)
20
+ *
21
+ * This is the main factory function for Supabase/Deno environments.
22
+ * It creates all necessary adapters with NO Node.js dependencies.
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * import { createSupabaseAdapters, createUseCases } from '@multitenantkit/sdk-supabase';
27
+ * import { createClient } from '@supabase/supabase-js';
28
+ *
29
+ * const client = createClient(SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY);
30
+ * const adapters = createSupabaseAdapters({ client });
31
+ * const useCases = createUseCases(adapters);
32
+ * ```
33
+ */
34
+ export declare function createSupabaseAdapters<TUserCustomFields = {}, TOrganizationCustomFields = {}, TOrganizationMembershipCustomFields = {}>(options: CreateSupabaseAdaptersOptions<TUserCustomFields, TOrganizationCustomFields, TOrganizationMembershipCustomFields>): Adapters<TUserCustomFields, TOrganizationCustomFields, TOrganizationMembershipCustomFields>;
35
+ //# sourceMappingURL=AdapterFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdapterFactory.d.ts","sourceRoot":"","sources":["../../src/factories/AdapterFactory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACR,QAAQ,EAIR,cAAc,EACjB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAY5D;;GAEG;AACH,MAAM,WAAW,6BAA6B,CAC1C,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,wBAAgB,sBAAsB,CAElC,iBAAiB,GAAG,EAAE,EAEtB,yBAAyB,GAAG,EAAE,EAE9B,mCAAmC,GAAG,EAAE,EAExC,OAAO,EAAE,6BAA6B,CAClC,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,GACF,QAAQ,CAAC,iBAAiB,EAAE,yBAAyB,EAAE,mCAAmC,CAAC,CAwB7F"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Supabase Adapter Factory
3
+ *
4
+ * Creates complete adapters bundle for Supabase Edge Functions.
5
+ * Uses Web Crypto API for UUID generation (Deno compatible).
6
+ */
7
+ import { createSupabaseRepositories } from '@multitenantkit/adapter-persistence-supabase';
8
+ import { WebCryptoUuid } from '@multitenantkit/adapter-system-web-crypto';
9
+ /**
10
+ * Simple clock implementation using standard Date API
11
+ * Deno compatible - no Node.js dependencies
12
+ */
13
+ class WebClock {
14
+ now() {
15
+ return new Date();
16
+ }
17
+ }
18
+ /**
19
+ * Create complete Supabase adapters bundle (persistence + system)
20
+ *
21
+ * This is the main factory function for Supabase/Deno environments.
22
+ * It creates all necessary adapters with NO Node.js dependencies.
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * import { createSupabaseAdapters, createUseCases } from '@multitenantkit/sdk-supabase';
27
+ * import { createClient } from '@supabase/supabase-js';
28
+ *
29
+ * const client = createClient(SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY);
30
+ * const adapters = createSupabaseAdapters({ client });
31
+ * const useCases = createUseCases(adapters);
32
+ * ```
33
+ */
34
+ export function createSupabaseAdapters(options) {
35
+ const { client, toolkitOptions } = options;
36
+ // Create persistence adapters using Supabase repositories
37
+ const persistence = createSupabaseRepositories({ client, toolkitOptions });
38
+ // Create system adapters using Web APIs (Deno compatible)
39
+ const system = {
40
+ clock: new WebClock(),
41
+ uuid: new WebCryptoUuid()
42
+ };
43
+ return {
44
+ persistence: persistence,
45
+ system
46
+ };
47
+ }
48
+ //# sourceMappingURL=AdapterFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdapterFactory.js","sourceRoot":"","sources":["../../src/factories/AdapterFactory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAU1E;;;GAGG;AACH,MAAM,QAAQ;IACV,GAAG;QACC,OAAO,IAAI,IAAI,EAAE,CAAC;IACtB,CAAC;CACJ;AAoBD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,sBAAsB,CAQlC,OAIC;IAED,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IAE3C,0DAA0D;IAC1D,MAAM,WAAW,GAAG,0BAA0B,CAI5C,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IAE9B,0DAA0D;IAC1D,MAAM,MAAM,GAAmB;QAC3B,KAAK,EAAE,IAAI,QAAQ,EAAE;QACrB,IAAI,EAAE,IAAI,aAAa,EAAE;KAC5B,CAAC;IAEF,OAAO;QACH,WAAW,EAAE,WAIZ;QACD,MAAM;KACT,CAAC;AACN,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Use Case Factory for Supabase SDK
3
+ *
4
+ * Creates all use cases with Supabase adapters.
5
+ * Deno compatible - no Node.js dependencies.
6
+ */
7
+ import type { Adapters, ToolkitOptions, UseCases } from '@multitenantkit/domain-contracts';
8
+ /**
9
+ * Factory function to create all use cases
10
+ *
11
+ * @param adapters - Application adapters (repositories, system, etc.)
12
+ * @param toolkitOptions - Optional toolkit options with custom schemas
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * import { createSupabaseAdapters, createUseCases } from '@multitenantkit/sdk-supabase';
17
+ *
18
+ * const adapters = createSupabaseAdapters({ client });
19
+ * const useCases = createUseCases(adapters);
20
+ *
21
+ * // Use the API
22
+ * await useCases.users.createUser.execute(...);
23
+ * ```
24
+ */
25
+ export declare function createUseCases<TUserCustomFields = {}, TOrganizationCustomFields = {}, TOrganizationMembershipCustomFields = {}>(adapters: Adapters<TUserCustomFields, TOrganizationCustomFields, TOrganizationMembershipCustomFields>, toolkitOptions?: ToolkitOptions<TUserCustomFields, TOrganizationCustomFields, TOrganizationMembershipCustomFields>): UseCases;
26
+ //# sourceMappingURL=UseCaseFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UseCaseFactory.d.ts","sourceRoot":"","sources":["../../src/factories/UseCaseFactory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA+BH,OAAO,KAAK,EACR,QAAQ,EAGR,cAAc,EACd,QAAQ,EAEX,MAAM,kCAAkC,CAAC;AA4J1C;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAE1B,iBAAiB,GAAG,EAAE,EAEtB,yBAAyB,GAAG,EAAE,EAE9B,mCAAmC,GAAG,EAAE,EAExC,QAAQ,EAAE,QAAQ,CACd,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,EACD,cAAc,CAAC,EAAE,cAAc,CAC3B,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,CACtC,GACF,QAAQ,CAMV"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Use Case Factory for Supabase SDK
3
+ *
4
+ * Creates all use cases with Supabase adapters.
5
+ * Deno compatible - no Node.js dependencies.
6
+ */
7
+ // Memberships use cases
8
+ import { AcceptOrganizationInvitation, AddOrganizationMember, LeaveOrganization, RemoveOrganizationMember, UpdateOrganizationMemberRole } from '@multitenantkit/domain/organization-memberships';
9
+ // Organizations use cases
10
+ import { ArchiveOrganization, CreateOrganization, DeleteOrganization, GetOrganization, ListOrganizationMembers, RestoreOrganization, TransferOrganizationOwnership, UpdateOrganization } from '@multitenantkit/domain/organizations';
11
+ // Users use cases
12
+ import { CreateUser, DeleteUser, GetUser, ListUserOrganizations, UpdateUser } from '@multitenantkit/domain/users';
13
+ /**
14
+ * Factory function to create user use cases
15
+ */
16
+ function createUserUseCases(adapters, toolkitOptions) {
17
+ return {
18
+ createUser: new CreateUser(adapters),
19
+ getUser: new GetUser(adapters, toolkitOptions),
20
+ updateUser: new UpdateUser(adapters, toolkitOptions),
21
+ listUserOrganizations: new ListUserOrganizations(adapters, toolkitOptions),
22
+ deleteUser: new DeleteUser(adapters, toolkitOptions)
23
+ };
24
+ }
25
+ /**
26
+ * Factory function to create organization use cases
27
+ */
28
+ function createOrganizationUseCases(adapters, toolkitOptions) {
29
+ return {
30
+ createOrganization: new CreateOrganization(adapters, toolkitOptions),
31
+ getOrganization: new GetOrganization(adapters, toolkitOptions),
32
+ updateOrganization: new UpdateOrganization(adapters, toolkitOptions),
33
+ listOrganizationMembers: new ListOrganizationMembers(adapters, toolkitOptions),
34
+ deleteOrganization: new DeleteOrganization(adapters, toolkitOptions),
35
+ archiveOrganization: new ArchiveOrganization(adapters, toolkitOptions),
36
+ restoreOrganization: new RestoreOrganization(adapters, toolkitOptions),
37
+ transferOrganizationOwnership: new TransferOrganizationOwnership(adapters, toolkitOptions)
38
+ };
39
+ }
40
+ /**
41
+ * Factory function to create membership use cases
42
+ */
43
+ function createMembershipUseCases(adapters, toolkitOptions) {
44
+ return {
45
+ addOrganizationMember: new AddOrganizationMember(adapters, toolkitOptions),
46
+ acceptOrganizationInvitation: new AcceptOrganizationInvitation(adapters, toolkitOptions),
47
+ removeOrganizationMember: new RemoveOrganizationMember(adapters),
48
+ updateOrganizationMemberRole: new UpdateOrganizationMemberRole(adapters),
49
+ leaveOrganization: new LeaveOrganization(adapters, toolkitOptions)
50
+ };
51
+ }
52
+ /**
53
+ * Factory function to create all use cases
54
+ *
55
+ * @param adapters - Application adapters (repositories, system, etc.)
56
+ * @param toolkitOptions - Optional toolkit options with custom schemas
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * import { createSupabaseAdapters, createUseCases } from '@multitenantkit/sdk-supabase';
61
+ *
62
+ * const adapters = createSupabaseAdapters({ client });
63
+ * const useCases = createUseCases(adapters);
64
+ *
65
+ * // Use the API
66
+ * await useCases.users.createUser.execute(...);
67
+ * ```
68
+ */
69
+ export function createUseCases(adapters, toolkitOptions) {
70
+ return {
71
+ users: createUserUseCases(adapters, toolkitOptions),
72
+ organizations: createOrganizationUseCases(adapters, toolkitOptions),
73
+ memberships: createMembershipUseCases(adapters, toolkitOptions)
74
+ };
75
+ }
76
+ //# sourceMappingURL=UseCaseFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UseCaseFactory.js","sourceRoot":"","sources":["../../src/factories/UseCaseFactory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wBAAwB;AACxB,OAAO,EACH,4BAA4B,EAC5B,qBAAqB,EACrB,iBAAiB,EACjB,wBAAwB,EACxB,4BAA4B,EAC/B,MAAM,iDAAiD,CAAC;AAEzD,0BAA0B;AAC1B,OAAO,EACH,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,6BAA6B,EAC7B,kBAAkB,EACrB,MAAM,sCAAsC,CAAC;AAC9C,kBAAkB;AAClB,OAAO,EACH,UAAU,EACV,UAAU,EACV,OAAO,EACP,qBAAqB,EACrB,UAAU,EACb,MAAM,8BAA8B,CAAC;AAWtC;;GAEG;AACH,SAAS,kBAAkB,CAQvB,QAIC,EACD,cAIC;IAED,OAAO;QACH,UAAU,EAAE,IAAI,UAAU,CAAoB,QAAe,CAAC;QAC9D,OAAO,EAAE,IAAI,OAAO,CAIlB,QAAe,EAAE,cAAc,CAAC;QAClC,UAAU,EAAE,IAAI,UAAU,CAIxB,QAAe,EAAE,cAAc,CAAC;QAClC,qBAAqB,EAAE,IAAI,qBAAqB,CAC5C,QAAe,EACf,cAAqB,CACxB;QACD,UAAU,EAAE,IAAI,UAAU,CAIxB,QAAe,EAAE,cAAc,CAAC;KACrC,CAAC;AACN,CAAC;AAED;;GAEG;AACH,SAAS,0BAA0B,CAQ/B,QAIC,EACD,cAIC;IAED,OAAO;QACH,kBAAkB,EAAE,IAAI,kBAAkB,CAIxC,QAAe,EAAE,cAAc,CAAC;QAClC,eAAe,EAAE,IAAI,eAAe,CAIlC,QAAe,EAAE,cAAc,CAAC;QAClC,kBAAkB,EAAE,IAAI,kBAAkB,CAIxC,QAAe,EAAE,cAAc,CAAC;QAClC,uBAAuB,EAAE,IAAI,uBAAuB,CAChD,QAAe,EACf,cAAqB,CACxB;QACD,kBAAkB,EAAE,IAAI,kBAAkB,CAIxC,QAAe,EAAE,cAAc,CAAC;QAClC,mBAAmB,EAAE,IAAI,mBAAmB,CAI1C,QAAe,EAAE,cAAc,CAAC;QAClC,mBAAmB,EAAE,IAAI,mBAAmB,CAI1C,QAAe,EAAE,cAAc,CAAC;QAClC,6BAA6B,EAAE,IAAI,6BAA6B,CAI9D,QAAe,EAAE,cAAc,CAAC;KACrC,CAAC;AACN,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB,CAQ7B,QAIC,EACD,cAIC;IAED,OAAO;QACH,qBAAqB,EAAE,IAAI,qBAAqB,CAI9C,QAAe,EAAE,cAAc,CAAC;QAClC,4BAA4B,EAAE,IAAI,4BAA4B,CAI5D,QAAe,EAAE,cAAc,CAAC;QAClC,wBAAwB,EAAE,IAAI,wBAAwB,CAAC,QAAe,CAAC;QACvE,4BAA4B,EAAE,IAAI,4BAA4B,CAAC,QAAe,CAAC;QAC/E,iBAAiB,EAAE,IAAI,iBAAiB,CAItC,QAAe,EAAE,cAAc,CAAC;KACrC,CAAC;AACN,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,cAAc,CAQ1B,QAIC,EACD,cAIC;IAED,OAAO;QACH,KAAK,EAAE,kBAAkB,CAAC,QAAQ,EAAE,cAAc,CAAC;QACnD,aAAa,EAAE,0BAA0B,CAAC,QAAQ,EAAE,cAAc,CAAC;QACnE,WAAW,EAAE,wBAAwB,CAAC,QAAQ,EAAE,cAAc,CAAC;KAClE,CAAC;AACN,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @module @multitenantkit/sdk-supabase
3
+ *
4
+ * MultiTenantKit SDK for Supabase Edge Functions (Deno compatible)
5
+ *
6
+ * This SDK provides everything you need to run MultiTenantKit in Supabase Edge Functions
7
+ * without any Node.js dependencies.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { createSupabaseAdapters, createUseCases } from '@multitenantkit/sdk-supabase';
12
+ * import { createClient } from '@supabase/supabase-js';
13
+ *
14
+ * const client = createClient(SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY);
15
+ * const adapters = createSupabaseAdapters({ client });
16
+ * const useCases = createUseCases(adapters);
17
+ * ```
18
+ */
19
+ export { createSupabaseClient, createSupabaseConfig, createSupabaseRepositories, type SupabaseClient, type SupabaseConfig, type SupabaseFactoryOptions, type SupabaseRepositoryBundle } from '@multitenantkit/adapter-persistence-supabase';
20
+ export { WebCryptoUuid } from '@multitenantkit/adapter-system-web-crypto';
21
+ export { type CreateSupabaseAdaptersOptions, createSupabaseAdapters } from './factories/AdapterFactory';
22
+ export { createUseCases } from './factories/UseCaseFactory';
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EACH,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAChC,MAAM,8CAA8C,CAAC;AAGtD,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAG1E,OAAO,EACH,KAAK,6BAA6B,EAClC,sBAAsB,EACzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @module @multitenantkit/sdk-supabase
3
+ *
4
+ * MultiTenantKit SDK for Supabase Edge Functions (Deno compatible)
5
+ *
6
+ * This SDK provides everything you need to run MultiTenantKit in Supabase Edge Functions
7
+ * without any Node.js dependencies.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { createSupabaseAdapters, createUseCases } from '@multitenantkit/sdk-supabase';
12
+ * import { createClient } from '@supabase/supabase-js';
13
+ *
14
+ * const client = createClient(SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY);
15
+ * const adapters = createSupabaseAdapters({ client });
16
+ * const useCases = createUseCases(adapters);
17
+ * ```
18
+ */
19
+ // Re-export persistence adapter
20
+ export { createSupabaseClient, createSupabaseConfig, createSupabaseRepositories } from '@multitenantkit/adapter-persistence-supabase';
21
+ // Re-export system adapter
22
+ export { WebCryptoUuid } from '@multitenantkit/adapter-system-web-crypto';
23
+ // Export factories
24
+ export { createSupabaseAdapters } from './factories/AdapterFactory';
25
+ export { createUseCases } from './factories/UseCaseFactory';
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,gCAAgC;AAChC,OAAO,EACH,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAK7B,MAAM,8CAA8C,CAAC;AAEtD,2BAA2B;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAE1E,mBAAmB;AACnB,OAAO,EAEH,sBAAsB,EACzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC"}
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "@multitenantkit/sdk-supabase",
3
+ "version": "0.2.1",
4
+ "type": "module",
5
+ "description": "MultiTenantKit SDK for Supabase Edge Functions (Deno compatible)",
6
+ "keywords": [
7
+ "multitenantkit",
8
+ "saas",
9
+ "multi-tenant",
10
+ "multitenancy",
11
+ "supabase",
12
+ "deno",
13
+ "edge-functions",
14
+ "typescript"
15
+ ],
16
+ "author": "",
17
+ "license": "MIT",
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "https://github.com/multitenantkit/multitenantkit.git",
21
+ "directory": "packages/bundles/sdk-supabase"
22
+ },
23
+ "bugs": {
24
+ "url": "https://github.com/multitenantkit/multitenantkit/issues"
25
+ },
26
+ "homepage": "https://github.com/multitenantkit/multitenantkit#readme",
27
+ "publishConfig": {
28
+ "access": "public"
29
+ },
30
+ "main": "./dist/index.js",
31
+ "types": "./dist/index.d.ts",
32
+ "files": [
33
+ "dist",
34
+ "README.md"
35
+ ],
36
+ "exports": {
37
+ ".": {
38
+ "types": "./dist/index.d.ts",
39
+ "import": "./dist/index.js"
40
+ }
41
+ },
42
+ "scripts": {
43
+ "build": "tsc --build",
44
+ "dev": "tsc --build --watch",
45
+ "clean": "rm -rf dist",
46
+ "type-check": "tsc --noEmit"
47
+ },
48
+ "dependencies": {
49
+ "@multitenantkit/domain": "^0.2.1",
50
+ "@multitenantkit/domain-contracts": "^0.2.0",
51
+ "@multitenantkit/adapter-persistence-supabase": "^0.2.1",
52
+ "@multitenantkit/adapter-system-web-crypto": "^0.2.1",
53
+ "@supabase/supabase-js": "^2.39.0"
54
+ },
55
+ "devDependencies": {
56
+ "typescript": "^5.0.0"
57
+ }
58
+ }