@selvajs/supabase-provider 0.17.0-beta.4 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -39
- package/dist/auth/SupabaseAuthProvider.d.ts +37 -82
- package/dist/auth/SupabaseAuthProvider.d.ts.map +1 -1
- package/dist/auth/SupabaseAuthProvider.js +62 -114
- package/dist/auth/SupabaseAuthProvider.js.map +1 -1
- package/dist/cli/sync-migrations.js +4 -6
- package/dist/cli/sync-migrations.js.map +1 -1
- package/dist/data/SupabaseAuditQuery.d.ts +3 -3
- package/dist/data/SupabaseAuditQuery.d.ts.map +1 -1
- package/dist/data/SupabaseAuditQuery.js +8 -14
- package/dist/data/SupabaseAuditQuery.js.map +1 -1
- package/dist/data/SupabaseComputeServerStore.d.ts +7 -13
- package/dist/data/SupabaseComputeServerStore.d.ts.map +1 -1
- package/dist/data/SupabaseComputeServerStore.js +15 -39
- package/dist/data/SupabaseComputeServerStore.js.map +1 -1
- package/dist/data/SupabaseDataProvider.d.ts +30 -46
- package/dist/data/SupabaseDataProvider.d.ts.map +1 -1
- package/dist/data/SupabaseDataProvider.js +39 -66
- package/dist/data/SupabaseDataProvider.js.map +1 -1
- package/dist/data/SupabaseDefinitionStore.d.ts +3 -10
- package/dist/data/SupabaseDefinitionStore.d.ts.map +1 -1
- package/dist/data/SupabaseDefinitionStore.js +29 -39
- package/dist/data/SupabaseDefinitionStore.js.map +1 -1
- package/dist/data/SupabaseInviteStore.d.ts +6 -6
- package/dist/data/SupabaseInviteStore.d.ts.map +1 -1
- package/dist/data/SupabaseInviteStore.js +11 -14
- package/dist/data/SupabaseInviteStore.js.map +1 -1
- package/dist/data/SupabaseOrgStore.d.ts +0 -4
- package/dist/data/SupabaseOrgStore.d.ts.map +1 -1
- package/dist/data/SupabaseOrgStore.js +19 -29
- package/dist/data/SupabaseOrgStore.js.map +1 -1
- package/dist/data/SupabaseProjectStore.d.ts +4 -8
- package/dist/data/SupabaseProjectStore.d.ts.map +1 -1
- package/dist/data/SupabaseProjectStore.js +15 -26
- package/dist/data/SupabaseProjectStore.js.map +1 -1
- package/dist/data/SupabaseShareLinkStore.d.ts +4 -9
- package/dist/data/SupabaseShareLinkStore.d.ts.map +1 -1
- package/dist/data/SupabaseShareLinkStore.js +9 -18
- package/dist/data/SupabaseShareLinkStore.js.map +1 -1
- package/dist/data/SupabaseSolveMetricSink.d.ts +13 -14
- package/dist/data/SupabaseSolveMetricSink.d.ts.map +1 -1
- package/dist/data/SupabaseSolveMetricSink.js +13 -14
- package/dist/data/SupabaseSolveMetricSink.js.map +1 -1
- package/dist/data/client.d.ts +25 -54
- package/dist/data/client.d.ts.map +1 -1
- package/dist/data/client.js +6 -14
- package/dist/data/client.js.map +1 -1
- package/dist/data/errors.d.ts.map +1 -1
- package/dist/data/errors.js.map +1 -1
- package/dist/data/migrationHead.d.ts +3 -10
- package/dist/data/migrationHead.d.ts.map +1 -1
- package/dist/data/migrationHead.js +3 -10
- package/dist/data/migrationHead.js.map +1 -1
- package/dist/data/pagination.d.ts +5 -16
- package/dist/data/pagination.d.ts.map +1 -1
- package/dist/data/pagination.js +5 -16
- package/dist/data/pagination.js.map +1 -1
- package/dist/data/query.d.ts +2 -14
- package/dist/data/query.d.ts.map +1 -1
- package/dist/data/query.js +1 -9
- package/dist/data/query.js.map +1 -1
- package/dist/data/rowStamp.d.ts +8 -24
- package/dist/data/rowStamp.d.ts.map +1 -1
- package/dist/data/rowStamp.js +8 -24
- package/dist/data/rowStamp.js.map +1 -1
- package/dist/permissions/SupabasePlatformPermissionStore.d.ts +8 -10
- package/dist/permissions/SupabasePlatformPermissionStore.d.ts.map +1 -1
- package/dist/permissions/SupabasePlatformPermissionStore.js +9 -15
- package/dist/permissions/SupabasePlatformPermissionStore.js.map +1 -1
- package/dist/storage/SupabaseStorageProvider.d.ts +14 -35
- package/dist/storage/SupabaseStorageProvider.d.ts.map +1 -1
- package/dist/storage/SupabaseStorageProvider.js +10 -25
- package/dist/storage/SupabaseStorageProvider.js.map +1 -1
- package/dist/userProfile/SupabaseUserProfileProvider.d.ts.map +1 -1
- package/dist/userProfile/SupabaseUserProfileProvider.js +8 -15
- package/dist/userProfile/SupabaseUserProfileProvider.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupabaseComputeServerStore.d.ts","sourceRoot":"","sources":["../../src/data/SupabaseComputeServerStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EAEnB,KAAK,wBAAwB,EAC7B,KAAK,OAAO,EACZ,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"SupabaseComputeServerStore.d.ts","sourceRoot":"","sources":["../../src/data/SupabaseComputeServerStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EAEnB,KAAK,wBAAwB,EAC7B,KAAK,OAAO,EACZ,MAAM,mBAAmB,CAAC;AAI3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAehD;;;;;;;;;;;;;GAaG;AACH,qBAAa,0BAA2B,YAAW,mBAAmB;IAUpE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAV5B;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBAGf,OAAO,EAAE,YAAY,EACrB,SAAS,CAAC,EAAE,MAAM,YAAA,EACnC,MAAM,CAAC,EAAE,OAAO;IAKX,SAAS,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC;IA6CzF;;;;OAIG;IACG,eAAe,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAYnF,mBAAmB,CACxB,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,mBAAmB,EAAE,EAC9B,eAAe,EAAE,MAAM,GAAG,SAAS,GACjC,OAAO,CAAC,IAAI,CAAC;IA+BV,cAAc,CACnB,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,mBAAmB,EAAE,EAC9B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAC7B,OAAO,CAAC,IAAI,CAAC;IAgCV,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBzF,WAAW,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BpE;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IAkCxB;;;;;OAKG;IACG,aAAa,IAAI,OAAO,CAAC,wBAAwB,CAAC;CA0CxD"}
|
|
@@ -1,24 +1,16 @@
|
|
|
1
1
|
import { isOrgServer, isPlatformServer } from '@selvajs/platform';
|
|
2
2
|
import { NoopLogger } from '@selvajs/platform';
|
|
3
|
-
//
|
|
4
|
-
// `node:crypto`, kept out of the root barrel so client bundles don't pull it in).
|
|
3
|
+
// `node:crypto`-based, so it's a server-only subpath, not the root barrel.
|
|
5
4
|
import { decryptSecret, encryptSecret, isEncryptedSecret } from '@selvajs/platform/computeServer';
|
|
6
5
|
import { mapPostgrestError } from './errors.js';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
// Two separate literal column lists rather than one computed from a flag:
|
|
7
|
+
// supabase-js infers the row type from the literal string, so building it
|
|
8
|
+
// dynamically would degrade the type to `string`. The default list omits
|
|
9
|
+
// `api_key` — decrypting costs one call per row, and `getConfig` normally
|
|
10
|
+
// only needs to report whether a key is set.
|
|
12
11
|
const SERVER_COLUMNS = 'id, scope, owner_org_id, shared_with_all, label, server_url, timeout_ms, retry_count, has_api_key';
|
|
13
|
-
/**
|
|
14
|
-
* Projection for the `includeApiKeys` path — the base columns plus the secret.
|
|
15
|
-
* Spelled out rather than interpolated: supabase-js infers the row type from
|
|
16
|
-
* the literal column string, and a template literal degrades it to `string`.
|
|
17
|
-
*/
|
|
18
12
|
const SERVER_COLUMNS_WITH_KEY = 'id, scope, owner_org_id, shared_with_all, label, server_url, timeout_ms, retry_count, has_api_key, api_key';
|
|
19
|
-
/** Columns from the share join table read in `getConfig`. */
|
|
20
13
|
const SHARE_COLUMNS = 'server_id, org_id';
|
|
21
|
-
/** Columns from the per-org default table read in `getConfig`. */
|
|
22
14
|
const ORG_DEFAULT_COLUMNS = 'org_id, default_server_id';
|
|
23
15
|
/**
|
|
24
16
|
* Compute-server config backed by three tables:
|
|
@@ -38,15 +30,10 @@ export class SupabaseComputeServerStore {
|
|
|
38
30
|
clients;
|
|
39
31
|
secretKey;
|
|
40
32
|
/**
|
|
41
|
-
* `secretKey` (from `SELVA_AT_REST_KEY`) encrypts `api_key`
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
* paths (tests that never touch apiKeys); a store built without a key throws
|
|
46
|
-
* if asked to write or read a secret. Wire it via `SupabaseDataProvider`.
|
|
47
|
-
*
|
|
48
|
-
* `logger` is optional and defaults to `NoopLogger` — this is library code, so
|
|
49
|
-
* it stays silent unless the app wires a real logger in.
|
|
33
|
+
* `secretKey` (from `SELVA_AT_REST_KEY`) encrypts/decrypts `compute_servers.api_key`
|
|
34
|
+
* so the Rhino.Compute credential never sits in the DB as plaintext. Optional
|
|
35
|
+
* only for construction paths that never touch apiKeys — a store built
|
|
36
|
+
* without a key throws if asked to write or read a secret.
|
|
50
37
|
*/
|
|
51
38
|
logger;
|
|
52
39
|
constructor(clients, secretKey, logger) {
|
|
@@ -58,9 +45,6 @@ export class SupabaseComputeServerStore {
|
|
|
58
45
|
const client = this.clients.forRequest(ctx);
|
|
59
46
|
const withKeys = opts.includeApiKeys === true;
|
|
60
47
|
const [serversRes, sharesRes, orgDefRes, platDefRes] = await Promise.all([
|
|
61
|
-
// Two literal selects rather than one interpolated column string:
|
|
62
|
-
// supabase-js derives the row type from the literal, so a computed one
|
|
63
|
-
// resolves to a ParserError instead of a row.
|
|
64
48
|
withKeys
|
|
65
49
|
? client.from('compute_servers').select(SERVER_COLUMNS_WITH_KEY)
|
|
66
50
|
: client.from('compute_servers').select(SERVER_COLUMNS),
|
|
@@ -80,7 +64,6 @@ export class SupabaseComputeServerStore {
|
|
|
80
64
|
throw mapPostgrestError(orgDefRes.error);
|
|
81
65
|
if (platDefRes.error)
|
|
82
66
|
throw mapPostgrestError(platDefRes.error);
|
|
83
|
-
// Build per-server `sharedWith` allowlists from the join table.
|
|
84
67
|
const sharedByServer = new Map();
|
|
85
68
|
for (const row of sharesRes.data ?? []) {
|
|
86
69
|
const list = sharedByServer.get(row.server_id) ?? [];
|
|
@@ -100,10 +83,9 @@ export class SupabaseComputeServerStore {
|
|
|
100
83
|
};
|
|
101
84
|
}
|
|
102
85
|
/**
|
|
103
|
-
*
|
|
104
|
-
* whole-table read
|
|
105
|
-
*
|
|
106
|
-
* unreadable ciphertext yields `undefined` rather than throwing.
|
|
86
|
+
* The solve path's entry point: one row lookup + one decrypt instead of
|
|
87
|
+
* `getConfig`'s whole-table read. An unknown id or unreadable ciphertext
|
|
88
|
+
* yields `undefined` rather than throwing.
|
|
107
89
|
*/
|
|
108
90
|
async getServerApiKey(ctx, serverId) {
|
|
109
91
|
const { data, error } = await this.clients
|
|
@@ -121,7 +103,6 @@ export class SupabaseComputeServerStore {
|
|
|
121
103
|
async savePlatformServers(ctx, servers, defaultServerId) {
|
|
122
104
|
const client = this.clients.forRequest(ctx);
|
|
123
105
|
const platformOnly = servers.filter(isPlatformServer);
|
|
124
|
-
// Replace-all of platform rows.
|
|
125
106
|
const { error: delErr } = await client.from('compute_servers').delete().eq('scope', 'platform');
|
|
126
107
|
if (delErr)
|
|
127
108
|
throw mapPostgrestError(delErr);
|
|
@@ -131,7 +112,6 @@ export class SupabaseComputeServerStore {
|
|
|
131
112
|
.insert(platformOnly.map((s) => serverToRow(this.encryptServerApiKey(s))));
|
|
132
113
|
if (insErr)
|
|
133
114
|
throw mapPostgrestError(insErr);
|
|
134
|
-
// Rebuild the share rows for any non-`all` platform servers.
|
|
135
115
|
const shareRows = platformOnly.flatMap((s) => s.sharedWith === 'all'
|
|
136
116
|
? []
|
|
137
117
|
: s.sharedWith.map((orgId) => ({ server_id: s.id, org_id: orgId })));
|
|
@@ -200,15 +180,14 @@ export class SupabaseComputeServerStore {
|
|
|
200
180
|
}
|
|
201
181
|
async deleteByOrg(ctx, orgId) {
|
|
202
182
|
const client = this.clients.forRequest(ctx);
|
|
203
|
-
//
|
|
204
|
-
//
|
|
183
|
+
// Org soft-delete doesn't trigger the FK cascade from orgs(id), so
|
|
184
|
+
// each dependent table needs an explicit delete here.
|
|
205
185
|
const { error: defErr } = await client
|
|
206
186
|
.from('compute_server_org_defaults')
|
|
207
187
|
.delete()
|
|
208
188
|
.eq('org_id', orgId);
|
|
209
189
|
if (defErr)
|
|
210
190
|
throw mapPostgrestError(defErr);
|
|
211
|
-
// Org-private servers owned by this org.
|
|
212
191
|
const { error: srvErr } = await client
|
|
213
192
|
.from('compute_servers')
|
|
214
193
|
.delete()
|
|
@@ -216,7 +195,6 @@ export class SupabaseComputeServerStore {
|
|
|
216
195
|
.eq('owner_org_id', orgId);
|
|
217
196
|
if (srvErr)
|
|
218
197
|
throw mapPostgrestError(srvErr);
|
|
219
|
-
// Strip this org from any platform server share allowlist.
|
|
220
198
|
const { error: shErr } = await client
|
|
221
199
|
.from('compute_server_shares')
|
|
222
200
|
.delete()
|
|
@@ -256,8 +234,6 @@ export class SupabaseComputeServerStore {
|
|
|
256
234
|
if (!row.api_key)
|
|
257
235
|
return row;
|
|
258
236
|
if (!isEncryptedSecret(row.api_key)) {
|
|
259
|
-
// Legacy/hand-inserted plaintext. Pass through so an existing key
|
|
260
|
-
// keeps working; verifySecrets() flags it for re-save via /admin/compute.
|
|
261
237
|
this.logger.warn('Compute server row has a plaintext api_key; re-save it via /admin/compute so it is stored encrypted', { component: 'selva', serverLabel: row.label, serverId: row.id });
|
|
262
238
|
return row;
|
|
263
239
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupabaseComputeServerStore.js","sourceRoot":"","sources":["../../src/data/SupabaseComputeServerStore.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SupabaseComputeServerStore.js","sourceRoot":"","sources":["../../src/data/SupabaseComputeServerStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,9 +12,9 @@ import { SupabaseShareLinkStore } from './SupabaseShareLinkStore.js';
|
|
|
12
12
|
import { SupabaseUserProfileProvider } from '../userProfile/SupabaseUserProfileProvider.js';
|
|
13
13
|
import { SupabasePlatformPermissionStore } from '../permissions/SupabasePlatformPermissionStore.js';
|
|
14
14
|
/**
|
|
15
|
-
* Composition of every data store for the Supabase backend.
|
|
16
|
-
* `ClientBundle`
|
|
17
|
-
*
|
|
15
|
+
* Composition of every data store for the Supabase backend. Builds one
|
|
16
|
+
* `ClientBundle` and wires every store to it, so all stores in a process
|
|
17
|
+
* share the same pooled clients.
|
|
18
18
|
*/
|
|
19
19
|
export declare class SupabaseDataProvider implements IDataProvider {
|
|
20
20
|
private readonly clients;
|
|
@@ -28,65 +28,49 @@ export declare class SupabaseDataProvider implements IDataProvider {
|
|
|
28
28
|
readonly permissions: SupabasePlatformPermissionStore;
|
|
29
29
|
readonly platformProjectGrants: IPlatformProjectGrantStore;
|
|
30
30
|
readonly auditQuery: SupabaseAuditQuery;
|
|
31
|
-
/** The sink every store emits into — exposed per `IDataProvider.events`. */
|
|
32
31
|
readonly events: IEventSink;
|
|
33
|
-
/**
|
|
34
|
-
* Per-solve timing sink, built from the same client bundle. Exposed so the
|
|
35
|
-
* app's provider wiring can hand it to `SelvaConfig.solveMetrics` without
|
|
36
|
-
* constructing a second Supabase client.
|
|
37
|
-
*/
|
|
32
|
+
/** Built from the same client bundle so wiring `SelvaConfig.solveMetrics` doesn't need a second Supabase client. */
|
|
38
33
|
readonly solveMetrics: SupabaseSolveMetricSink;
|
|
39
34
|
private constructor();
|
|
40
35
|
static fromEnv(env: Record<string, string | undefined>, events?: IEventSink, logger?: ILogger): SupabaseDataProvider;
|
|
41
36
|
static create(opts: BuildClientOptions, events?: IEventSink, secretKey?: Buffer, logger?: ILogger): SupabaseDataProvider;
|
|
42
37
|
/**
|
|
43
|
-
* Build from a pre-existing `ClientBundle
|
|
44
|
-
*
|
|
45
|
-
* `secretKey`
|
|
46
|
-
*
|
|
47
|
-
* plaintext).
|
|
38
|
+
* Build from a pre-existing `ClientBundle` — for tests or callers that need
|
|
39
|
+
* to inject a custom event sink or share a bundle externally. Omit
|
|
40
|
+
* `secretKey` only if the caller never touches compute-server apiKeys:
|
|
41
|
+
* writes without a key throw rather than persist plaintext.
|
|
48
42
|
*/
|
|
49
43
|
static fromBundle(bundle: ClientBundle, events?: IEventSink, secretKey?: Buffer, logger?: ILogger): SupabaseDataProvider;
|
|
50
|
-
/**
|
|
51
|
-
* Expose the underlying bundle so other providers in the same package
|
|
52
|
-
* (storage, user profile, auth) can share one set of clients per process.
|
|
53
|
-
*/
|
|
44
|
+
/** Lets other providers in this package (storage, user profile, auth) share one set of clients per process. */
|
|
54
45
|
getClientBundle(): ClientBundle;
|
|
55
46
|
/**
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
* the
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
* `supabase db push`). Never throws; boot health consumes the report.
|
|
47
|
+
* Calls `selva.migration_head()` (a SECURITY DEFINER RPC shipped in this
|
|
48
|
+
* package's migrations) and compares it to the head this build expects.
|
|
49
|
+
* Three failure shapes: the RPC is missing (handshake migration never
|
|
50
|
+
* applied), the head is empty (no migrations pushed), or the head is
|
|
51
|
+
* lexicographically behind (operator upgraded the app but skipped
|
|
52
|
+
* `supabase db push`). Never throws — boot health consumes the report.
|
|
63
53
|
*/
|
|
64
54
|
verifySchemaVersion(): Promise<SchemaVersionReport>;
|
|
65
|
-
/**
|
|
66
|
-
* No-op: `public.user_profiles` is auto-seeded by the `handle_new_auth_user`
|
|
67
|
-
* trigger on every `auth.users` insert (see `0001_initial.sql`). The data
|
|
68
|
-
* layer always has a row for any authenticated user without per-request work.
|
|
69
|
-
*/
|
|
55
|
+
/** No-op: the `handle_new_auth_user` trigger seeds `user_profiles` on every `auth.users` insert. */
|
|
70
56
|
ensureUser(): Promise<void>;
|
|
71
57
|
/**
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
* the RLS-bypassing service client (this runs as a system erasure op):
|
|
58
|
+
* FK cascade against `auth.users` already removes the profile, memberships,
|
|
59
|
+
* and owned rows. Three classes of personal data aren't reachable by those
|
|
60
|
+
* FKs and get scrubbed here explicitly, with the RLS-bypassing service client:
|
|
76
61
|
*
|
|
77
|
-
* 1. `audit_events` keyed by a plain-text `actor_id` (no FK) —
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
* aggregate value without identifying the person.
|
|
62
|
+
* 1. `audit_events` keyed by a plain-text `actor_id` (no FK) — deleted.
|
|
63
|
+
* 2. The user's email in `invites.email` and in `invite.created` audit
|
|
64
|
+
* payloads (`data->>'email'`). Invite rows are deleted; the audit email
|
|
65
|
+
* is redacted in place — the fact that an invite was created stays, only
|
|
66
|
+
* the PII goes.
|
|
67
|
+
* 3. `solve_metrics.actor_id`, deliberately not FK-cascaded (retention
|
|
68
|
+
* telemetry) — tombstoned to {@link ERASED_ACTOR_ID} so the row's
|
|
69
|
+
* aggregate value survives without identifying the person.
|
|
86
70
|
*
|
|
87
|
-
* Each step tolerates missing rows so
|
|
88
|
-
*
|
|
89
|
-
*
|
|
71
|
+
* Each step tolerates missing rows, so retrying is safe. Email scrubs are
|
|
72
|
+
* skipped when `opts.email` is absent — the caller must capture it before
|
|
73
|
+
* `deleteUser`.
|
|
90
74
|
*/
|
|
91
75
|
onUserDeleted(_ctx: RequestContext, userId: string, opts?: UserErasureOptions): Promise<void>;
|
|
92
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupabaseDataProvider.d.ts","sourceRoot":"","sources":["../../src/data/SupabaseDataProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,aAAa,EACb,UAAU,EACV,0BAA0B,EAC1B,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAA8C,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG7F,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AAC5F,OAAO,EAAE,+BAA+B,EAAE,MAAM,mDAAmD,CAAC;AA6BpG;;;;GAIG;AACH,qBAAa,oBAAqB,YAAW,aAAa;
|
|
1
|
+
{"version":3,"file":"SupabaseDataProvider.d.ts","sourceRoot":"","sources":["../../src/data/SupabaseDataProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,aAAa,EACb,UAAU,EACV,0BAA0B,EAC1B,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAA8C,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG7F,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AAC5F,OAAO,EAAE,+BAA+B,EAAE,MAAM,mDAAmD,CAAC;AA6BpG;;;;GAIG;AACH,qBAAa,oBAAqB,YAAW,aAAa;IAgBxD,OAAO,CAAC,QAAQ,CAAC,OAAO;IAfzB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,uBAAuB,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,0BAA0B,CAAC;IACnD,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,2BAA2B,CAAC;IAClD,QAAQ,CAAC,WAAW,EAAE,+BAA+B,CAAC;IACtD,QAAQ,CAAC,qBAAqB,EAAE,0BAA0B,CAAC;IAC3D,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,oHAAoH;IACpH,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC;IAE/C,OAAO;IAoBP,MAAM,CAAC,OAAO,CACb,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACvC,MAAM,CAAC,EAAE,UAAU,EACnB,MAAM,GAAE,OAA0B,GAChC,oBAAoB;IAmBvB,MAAM,CAAC,MAAM,CACZ,IAAI,EAAE,kBAAkB,EACxB,MAAM,CAAC,EAAE,UAAU,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,GAAE,OAA0B,GAChC,oBAAoB;IAUvB;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAChB,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,UAAU,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,GAAE,OAA0B,GAChC,oBAAoB;IASvB,+GAA+G;IAC/G,eAAe,IAAI,YAAY;IAI/B;;;;;;;OAOG;IACG,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAgDzD,oGAAoG;IAC9F,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;;;;;;;;;;;;;;;;OAiBG;IACG,aAAa,CAClB,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,kBAAkB,GACvB,OAAO,CAAC,IAAI,CAAC;CA0ChB"}
|
|
@@ -14,9 +14,9 @@ import { SupabaseShareLinkStore } from './SupabaseShareLinkStore.js';
|
|
|
14
14
|
import { SupabaseUserProfileProvider } from '../userProfile/SupabaseUserProfileProvider.js';
|
|
15
15
|
import { SupabasePlatformPermissionStore } from '../permissions/SupabasePlatformPermissionStore.js';
|
|
16
16
|
/**
|
|
17
|
-
* Stub until the Supabase implementation lands. Reads and mutations
|
|
18
|
-
*
|
|
19
|
-
* a
|
|
17
|
+
* Stub until the Supabase implementation lands. Reads and mutations throw a
|
|
18
|
+
* 501; cascade hooks are silent no-ops so deleting an org or project doesn't
|
|
19
|
+
* blow up on a deployment without the feature wired.
|
|
20
20
|
*/
|
|
21
21
|
const NOT_IMPLEMENTED_MSG = 'Platform projects are not supported on this deployment yet.';
|
|
22
22
|
const notImplementedGrantStore = {
|
|
@@ -40,9 +40,9 @@ const notImplementedGrantStore = {
|
|
|
40
40
|
}
|
|
41
41
|
};
|
|
42
42
|
/**
|
|
43
|
-
* Composition of every data store for the Supabase backend.
|
|
44
|
-
* `ClientBundle`
|
|
45
|
-
*
|
|
43
|
+
* Composition of every data store for the Supabase backend. Builds one
|
|
44
|
+
* `ClientBundle` and wires every store to it, so all stores in a process
|
|
45
|
+
* share the same pooled clients.
|
|
46
46
|
*/
|
|
47
47
|
export class SupabaseDataProvider {
|
|
48
48
|
clients;
|
|
@@ -56,13 +56,8 @@ export class SupabaseDataProvider {
|
|
|
56
56
|
permissions;
|
|
57
57
|
platformProjectGrants;
|
|
58
58
|
auditQuery;
|
|
59
|
-
/** The sink every store emits into — exposed per `IDataProvider.events`. */
|
|
60
59
|
events;
|
|
61
|
-
/**
|
|
62
|
-
* Per-solve timing sink, built from the same client bundle. Exposed so the
|
|
63
|
-
* app's provider wiring can hand it to `SelvaConfig.solveMetrics` without
|
|
64
|
-
* constructing a second Supabase client.
|
|
65
|
-
*/
|
|
60
|
+
/** Built from the same client bundle so wiring `SelvaConfig.solveMetrics` doesn't need a second Supabase client. */
|
|
66
61
|
solveMetrics;
|
|
67
62
|
constructor(clients, events, secretKey, logger = new NoopLogger()) {
|
|
68
63
|
this.clients = clients;
|
|
@@ -80,12 +75,8 @@ export class SupabaseDataProvider {
|
|
|
80
75
|
this.auditQuery = new SupabaseAuditQuery(clients);
|
|
81
76
|
}
|
|
82
77
|
static fromEnv(env, events, logger = new NoopLogger()) {
|
|
83
|
-
// Bundle-only env parse (URL + anon + service-role) is shared with
|
|
84
|
-
// `clientBundleFromEnv`; the full data provider additionally requires the
|
|
85
|
-
// at-rest key below.
|
|
86
78
|
const bundle = clientBundleFromEnv(env);
|
|
87
|
-
//
|
|
88
|
-
// same guarantee (and same key) as the local provider's on-disk envelope.
|
|
79
|
+
// Same encryption-at-rest guarantee as the local provider's on-disk envelope.
|
|
89
80
|
if (!env.SELVA_AT_REST_KEY) {
|
|
90
81
|
throw new Error('Missing required env var: SELVA_AT_REST_KEY (32-byte hex or base64). ' +
|
|
91
82
|
'Required to encrypt compute-server API keys at rest. ' +
|
|
@@ -99,30 +90,25 @@ export class SupabaseDataProvider {
|
|
|
99
90
|
return new SupabaseDataProvider(bundle, events ?? new SupabaseEventSink(bundle, { logger }), secretKey, logger);
|
|
100
91
|
}
|
|
101
92
|
/**
|
|
102
|
-
* Build from a pre-existing `ClientBundle
|
|
103
|
-
*
|
|
104
|
-
* `secretKey`
|
|
105
|
-
*
|
|
106
|
-
* plaintext).
|
|
93
|
+
* Build from a pre-existing `ClientBundle` — for tests or callers that need
|
|
94
|
+
* to inject a custom event sink or share a bundle externally. Omit
|
|
95
|
+
* `secretKey` only if the caller never touches compute-server apiKeys:
|
|
96
|
+
* writes without a key throw rather than persist plaintext.
|
|
107
97
|
*/
|
|
108
98
|
static fromBundle(bundle, events, secretKey, logger = new NoopLogger()) {
|
|
109
99
|
return new SupabaseDataProvider(bundle, events ?? new SupabaseEventSink(bundle, { logger }), secretKey, logger);
|
|
110
100
|
}
|
|
111
|
-
/**
|
|
112
|
-
* Expose the underlying bundle so other providers in the same package
|
|
113
|
-
* (storage, user profile, auth) can share one set of clients per process.
|
|
114
|
-
*/
|
|
101
|
+
/** Lets other providers in this package (storage, user profile, auth) share one set of clients per process. */
|
|
115
102
|
getClientBundle() {
|
|
116
103
|
return this.clients;
|
|
117
104
|
}
|
|
118
105
|
/**
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
* the
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
* `supabase db push`). Never throws; boot health consumes the report.
|
|
106
|
+
* Calls `selva.migration_head()` (a SECURITY DEFINER RPC shipped in this
|
|
107
|
+
* package's migrations) and compares it to the head this build expects.
|
|
108
|
+
* Three failure shapes: the RPC is missing (handshake migration never
|
|
109
|
+
* applied), the head is empty (no migrations pushed), or the head is
|
|
110
|
+
* lexicographically behind (operator upgraded the app but skipped
|
|
111
|
+
* `supabase db push`). Never throws — boot health consumes the report.
|
|
126
112
|
*/
|
|
127
113
|
async verifySchemaVersion() {
|
|
128
114
|
const expected = EXPECTED_MIGRATION_HEAD;
|
|
@@ -148,9 +134,9 @@ export class SupabaseDataProvider {
|
|
|
148
134
|
message: `The database reports no applied migrations. ${pushHint}`
|
|
149
135
|
};
|
|
150
136
|
}
|
|
151
|
-
// Timestamp prefixes are fixed-width, so
|
|
152
|
-
//
|
|
153
|
-
//
|
|
137
|
+
// Timestamp prefixes are fixed-width, so string comparison is chronological.
|
|
138
|
+
// A head ahead of the app (rolled-back app, newer DB) is tolerated — schema
|
|
139
|
+
// changes are append-only by convention.
|
|
154
140
|
const ok = actual >= expected;
|
|
155
141
|
return {
|
|
156
142
|
ok,
|
|
@@ -170,43 +156,35 @@ export class SupabaseDataProvider {
|
|
|
170
156
|
};
|
|
171
157
|
}
|
|
172
158
|
}
|
|
173
|
-
/**
|
|
174
|
-
* No-op: `public.user_profiles` is auto-seeded by the `handle_new_auth_user`
|
|
175
|
-
* trigger on every `auth.users` insert (see `0001_initial.sql`). The data
|
|
176
|
-
* layer always has a row for any authenticated user without per-request work.
|
|
177
|
-
*/
|
|
159
|
+
/** No-op: the `handle_new_auth_user` trigger seeds `user_profiles` on every `auth.users` insert. */
|
|
178
160
|
async ensureUser() {
|
|
179
|
-
//
|
|
161
|
+
// no-op
|
|
180
162
|
}
|
|
181
163
|
/**
|
|
182
|
-
*
|
|
183
|
-
*
|
|
184
|
-
*
|
|
185
|
-
* the RLS-bypassing service client (this runs as a system erasure op):
|
|
164
|
+
* FK cascade against `auth.users` already removes the profile, memberships,
|
|
165
|
+
* and owned rows. Three classes of personal data aren't reachable by those
|
|
166
|
+
* FKs and get scrubbed here explicitly, with the RLS-bypassing service client:
|
|
186
167
|
*
|
|
187
|
-
* 1. `audit_events` keyed by a plain-text `actor_id` (no FK) —
|
|
188
|
-
*
|
|
189
|
-
*
|
|
190
|
-
*
|
|
191
|
-
*
|
|
192
|
-
*
|
|
193
|
-
*
|
|
194
|
-
*
|
|
195
|
-
* aggregate value without identifying the person.
|
|
168
|
+
* 1. `audit_events` keyed by a plain-text `actor_id` (no FK) — deleted.
|
|
169
|
+
* 2. The user's email in `invites.email` and in `invite.created` audit
|
|
170
|
+
* payloads (`data->>'email'`). Invite rows are deleted; the audit email
|
|
171
|
+
* is redacted in place — the fact that an invite was created stays, only
|
|
172
|
+
* the PII goes.
|
|
173
|
+
* 3. `solve_metrics.actor_id`, deliberately not FK-cascaded (retention
|
|
174
|
+
* telemetry) — tombstoned to {@link ERASED_ACTOR_ID} so the row's
|
|
175
|
+
* aggregate value survives without identifying the person.
|
|
196
176
|
*
|
|
197
|
-
* Each step tolerates missing rows so
|
|
198
|
-
*
|
|
199
|
-
*
|
|
177
|
+
* Each step tolerates missing rows, so retrying is safe. Email scrubs are
|
|
178
|
+
* skipped when `opts.email` is absent — the caller must capture it before
|
|
179
|
+
* `deleteUser`.
|
|
200
180
|
*/
|
|
201
181
|
async onUserDeleted(_ctx, userId, opts) {
|
|
202
182
|
const client = this.clients.serviceClient;
|
|
203
183
|
const email = opts?.email;
|
|
204
|
-
// 1. Audit rows the user authored (actor_id is plain text, no FK cascade).
|
|
205
184
|
const deletedActions = await client.from('audit_events').delete().eq('actor_id', userId);
|
|
206
185
|
if (deletedActions.error) {
|
|
207
186
|
throw new ProviderError(`Failed to erase audit_events for user: ${deletedActions.error.message}`, 500);
|
|
208
187
|
}
|
|
209
|
-
// 3. Anonymize retention telemetry rather than delete it.
|
|
210
188
|
const tombstoned = await client
|
|
211
189
|
.from('solve_metrics')
|
|
212
190
|
.update({ actor_id: ERASED_ACTOR_ID })
|
|
@@ -216,16 +194,11 @@ export class SupabaseDataProvider {
|
|
|
216
194
|
}
|
|
217
195
|
if (!email)
|
|
218
196
|
return;
|
|
219
|
-
//
|
|
220
|
-
// not by FK). `invited_by` cascade only removes invites they SENT.
|
|
197
|
+
// `invited_by` FK cascade only removes invites this user SENT, not ones addressed to them.
|
|
221
198
|
const deletedInvites = await client.from('invites').delete().eq('email', email);
|
|
222
199
|
if (deletedInvites.error) {
|
|
223
200
|
throw new ProviderError(`Failed to erase invites for user email: ${deletedInvites.error.message}`, 500);
|
|
224
201
|
}
|
|
225
|
-
// 2b. Redact the email out of surviving `invite.created` audit payloads
|
|
226
|
-
// (authored by the inviter, so the row itself must survive — only the
|
|
227
|
-
// embedded invitee email is scrubbed). The SQL function rewrites the
|
|
228
|
-
// `email` key in place and returns the redacted row count.
|
|
229
202
|
const redacted = await client.rpc('redact_audit_event_email', { p_email: email });
|
|
230
203
|
if (redacted.error) {
|
|
231
204
|
throw new ProviderError(`Failed to redact audit_events email payloads: ${redacted.error.message}`, 500);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupabaseDataProvider.js","sourceRoot":"","sources":["../../src/data/SupabaseDataProvider.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,EAAgB,MAAM,mBAAmB,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AAC5F,OAAO,EAAE,+BAA+B,EAAE,MAAM,mDAAmD,CAAC;AAEpG;;;;GAIG;AACH,MAAM,mBAAmB,GAAG,6DAA6D,CAAC;AAC1F,MAAM,wBAAwB,GAA+B;IAC5D,aAAa,EAAE,KAAK,IAAI,EAAE;QACzB,MAAM,IAAI,aAAa,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IACnD,CAAC;IACD,cAAc,EAAE,KAAK,IAAI,EAAE;QAC1B,MAAM,IAAI,aAAa,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,EAAE,KAAK,IAAI,EAAE;QAClB,MAAM,IAAI,aAAa,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,EAAE,KAAK,IAAI,EAAE;QAClB,MAAM,IAAI,aAAa,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IACnD,CAAC;IACD,eAAe,EAAE,KAAK,IAAI,EAAE;QAC3B,yEAAyE;IAC1E,CAAC;IACD,kBAAkB,EAAE,KAAK,IAAI,EAAE;QAC9B,yBAAyB;IAC1B,CAAC;CACD,CAAC;AAEF;;;;GAIG;AACH,MAAM,OAAO,oBAAoB;
|
|
1
|
+
{"version":3,"file":"SupabaseDataProvider.js","sourceRoot":"","sources":["../../src/data/SupabaseDataProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,9 @@
|
|
|
1
1
|
import type { IDefinitionStore, IEventSink, DefinitionRecord, DefinitionRecordPatch, DefinitionVersion, RequestContext, DefinitionListOptions, ListOptions, Page, UISchema } from '@selvajs/platform';
|
|
2
2
|
import type { ClientBundle } from './client.js';
|
|
3
3
|
/**
|
|
4
|
-
* Definition metadata + version store backed by Postgres.
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* Deletion protection (§6) is enforced by FK constraints — `live_version_id`
|
|
9
|
-
* and `draft_version_id` are ON DELETE RESTRICT. Trying to delete a
|
|
10
|
-
* referenced version raises 23503 which `mapPostgrestError` turns into a 409.
|
|
11
|
-
*
|
|
12
|
-
* `incrementSolveCount` uses a SQL function for atomic UPDATE — no
|
|
13
|
-
* read-modify-write race like the local provider has.
|
|
4
|
+
* Definition metadata + version store backed by Postgres. `definitions` carries
|
|
5
|
+
* the parent record and the `live`/`draft` channel pointers; `definition_versions`
|
|
6
|
+
* carries the immutable per-upload rows.
|
|
14
7
|
*/
|
|
15
8
|
export declare class SupabaseDefinitionStore implements IDefinitionStore {
|
|
16
9
|
private readonly clients;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupabaseDefinitionStore.d.ts","sourceRoot":"","sources":["../../src/data/SupabaseDefinitionStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EAGrB,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"SupabaseDefinitionStore.d.ts","sourceRoot":"","sources":["../../src/data/SupabaseDefinitionStore.ts"],"names":[],"mappings":"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"}
|