@prisma/orm-extension-supabase 8.0.0-rc.19-dev.5 → 8.0.0-rc.19-dev.7

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/dist/runtime.mjs CHANGED
@@ -1,14 +1,14 @@
1
- import { n as version, t as contract_default } from "./contract-h2Gvfpy1-DglrKhWj.mjs";
1
+ import { n as version, t as contract_default } from "./contract-CjZU4jSN-BrSys3rb.mjs";
2
2
  import { a as isSupabaseRole, n as SupabaseRole, t as SUPABASE_JWT_ROLE_CLAIM } from "./roles-9Ql17Kbb-p1cF6Jlt.mjs";
3
3
  import { blindCast } from "@prisma/orm-framework/utils/casts";
4
4
  import postgresAdapter from "@prisma/orm-target-postgres/adapter/runtime";
5
5
  import postgresDriver, { suppressIdleConnectionErrors } from "@prisma/orm-target-postgres/driver/runtime";
6
+ import { buildPostgresStaticContext } from "@prisma/orm-postgres/internal/static-context";
6
7
  import { buildPostgresQueryMembers } from "@prisma/orm-postgres/internal/transaction-members";
7
8
  import { validatePostgresContract } from "@prisma/orm-postgres/internal/validate-contract";
8
- import { PostgresRuntimeImpl, buildNamespacedNativeEnums, isPgPool } from "@prisma/orm-postgres/runtime";
9
- import { createRawLane, sql } from "@prisma/orm-family-sql/builder/runtime";
9
+ import { PostgresRuntimeImpl, isPgPool } from "@prisma/orm-postgres/runtime";
10
10
  import { checkCollectionClasses, orm, prepareQuery } from "@prisma/orm-family-sql/orm-client";
11
- import { activitySource, createExecutionContext, createSqlExecutionStack, createToSql, lazyActivitySource, withTransaction, withTransactionMembers } from "@prisma/orm-family-sql/runtime";
11
+ import { activitySource, createExecutionContext, createSqlExecutionStack, withTransaction, withTransactionMembers } from "@prisma/orm-family-sql/runtime";
12
12
  import { createTransactionStart, preparedStatementExecute, preparedStatementQuery, transactionStart } from "@prisma/orm-family-sql/runtime/internal/prepared-query";
13
13
  import postgresTarget, { PostgresContractSerializer } from "@prisma/orm-target-postgres/target/runtime";
14
14
  import { ifDefined } from "@prisma/orm-framework/utils/defined";
@@ -44,17 +44,22 @@ const supabaseRuntimeDescriptor = {
44
44
  function supabaseError(code, message, options) {
45
45
  return structuredError(code, message, options);
46
46
  }
47
+ let buildRoleScope;
48
+ /**
49
+ * The operations under `binding` of the runtime `runtime()` returns. Each operation calls `runtime()` when it runs, so a client can build its role scope before its runtime exists; when `runtime()` throws, the operation rejects. For the facade only; the package entry does not export it.
50
+ */
51
+ function roleScope(runtime, binding) {
52
+ return buildRoleScope(runtime, binding);
53
+ }
47
54
  var SupabaseRuntimeImpl = class extends PostgresRuntimeImpl {
48
55
  /**
49
- * Opens a raw connection and applies role + JWT claims via session-scoped set_config.
50
- * On bind failure, destroys the connection before rethrowing — no leaked connections.
51
- * Not on the `SupabaseRuntime` interface; consumed by the facade, not by app code.
56
+ * Opens a raw connection and applies role + JWT claims via session-scoped set_config. On bind failure, destroys the connection before rethrowing — no leaked connections. Every operation of `forRole(binding)` runs on a session opened here.
52
57
  */
53
58
  async openRoleSession(binding) {
54
59
  return (await this.openRoleConnection(binding)).session;
55
60
  }
56
- async openRoleConnection(binding) {
57
- const conn = await this.acquireRawConnection();
61
+ async openRoleConnection(binding, options) {
62
+ const conn = await this.acquireRawConnection(options);
58
63
  try {
59
64
  await conn.execute({
60
65
  sql: "SELECT set_config($1, $2, false)",
@@ -114,75 +119,48 @@ var SupabaseRuntimeImpl = class extends PostgresRuntimeImpl {
114
119
  session
115
120
  };
116
121
  }
117
- /** The activity source the facade gives the role-bound ORM: activities whose statements and transaction run on role sessions bound to `binding`, and content hashes at the `'connection'` scope role sessions run at. Not on the `SupabaseRuntime` interface. */
118
- roleActivitySource(binding) {
119
- return {
120
- startActivity: (activity) => this.startActivityOnRoute(this.roleRoute(binding), activity, void 0),
121
- planContentHash: (plan) => this.planContentHashFor(plan, "connection", void 0)
122
- };
122
+ forRole(binding) {
123
+ return buildRoleScope(() => this, binding);
123
124
  }
124
- roleRoute(binding) {
125
- return {
126
- scope: "connection",
127
- parent: () => void 0,
128
- runtimeWork: true,
129
- query: (plan, options) => this.streamOnRoleSession(binding, (session) => session.query(plan, options)),
130
- execute: (plan, options) => this.executeWithRole(plan, binding, options),
131
- preparedQuery: (statement, params, options) => this.streamOnRoleSession(binding, (session) => session[preparedStatementQuery](statement, params, options)),
132
- preparedExecute: (statement, params, options) => this.executeOnRoleSession(binding, (session) => session[preparedStatementExecute](statement, params, options)),
133
- transaction: (parent) => this.beginRoleTransaction(binding, parent)
125
+ static {
126
+ buildRoleScope = (runtime, binding) => {
127
+ const open = (options) => async () => (await runtime().openRoleConnection(binding, options)).session;
128
+ const scope = {
129
+ query(plan, options) {
130
+ return streamOnSession(open(options), (session) => session.query(plan, options));
131
+ },
132
+ execute(plan, options) {
133
+ return executeOnSession(open(options), (session) => session.execute(plan, options));
134
+ },
135
+ [preparedStatementQuery](statement, params, options) {
136
+ return streamOnSession(open(options), (session) => session[preparedStatementQuery](statement, params, options));
137
+ },
138
+ [preparedStatementExecute](statement, params, options) {
139
+ return executeOnSession(open(options), (session) => session[preparedStatementExecute](statement, params, options));
140
+ },
141
+ connection: open(void 0),
142
+ [activitySource]: {
143
+ startActivity: async (activity) => runtime().startActivityOnRoute(route, activity, void 0),
144
+ planContentHash: async (plan) => runtime().planContentHashFor(plan, "connection", void 0)
145
+ }
146
+ };
147
+ const route = {
148
+ scope: "connection",
149
+ parent: () => void 0,
150
+ runtimeWork: true,
151
+ query: (plan, options) => scope.query(plan, options),
152
+ execute: (plan, options) => scope.execute(plan, options),
153
+ preparedQuery: (statement, params, options) => scope[preparedStatementQuery](statement, params, options),
154
+ preparedExecute: (statement, params, options) => scope[preparedStatementExecute](statement, params, options),
155
+ transaction: (parent) => runtime().beginRoleTransaction(binding, parent)
156
+ };
157
+ return scope;
134
158
  };
135
159
  }
136
160
  async beginRoleTransaction(binding, parent) {
137
- const { conn, session } = await this.openRoleConnection(binding);
161
+ const { conn, session } = await this.openRoleConnection(binding, { activityParent: parent });
138
162
  return this.ownTransaction(session, () => this.beginTransactionOn(conn, session, parent));
139
163
  }
140
- /**
141
- * Opens a role session, queries the plan, then releases after the stream drains.
142
- * On mid-stream error, destroys the session instead of releasing.
143
- */
144
- queryWithRole(plan, binding, options) {
145
- return this.streamOnRoleSession(binding, (session) => session.query(plan, options));
146
- }
147
- executeWithRole(plan, binding, options) {
148
- return this.executeOnRoleSession(binding, (session) => session.execute(plan, options));
149
- }
150
- /** Runs a prepared statement on a role session, as a role-bound query runs. */
151
- preparedQueryWithRole(statement, params, binding, options) {
152
- return this.streamOnRoleSession(binding, (session) => session[preparedStatementQuery](statement, params, options));
153
- }
154
- /** Runs a prepared statement that reports affected rows on a role session. */
155
- preparedExecuteWithRole(statement, params, binding, options) {
156
- return this.executeOnRoleSession(binding, (session) => session[preparedStatementExecute](statement, params, options));
157
- }
158
- streamOnRoleSession(binding, rows) {
159
- const self = this;
160
- const generator = async function* () {
161
- const { session } = await self.openRoleConnection(binding);
162
- let errored = false;
163
- try {
164
- for await (const row of rows(session)) yield row;
165
- } catch (err) {
166
- errored = true;
167
- await session.destroy(err).catch(() => void 0);
168
- throw err;
169
- } finally {
170
- if (!errored) await session.release();
171
- }
172
- };
173
- return new AsyncIterableResult(generator());
174
- }
175
- async executeOnRoleSession(binding, run) {
176
- const { session } = await this.openRoleConnection(binding);
177
- try {
178
- const stats = await run(session);
179
- await session.release();
180
- return stats;
181
- } catch (err) {
182
- await session.destroy(err).catch(() => void 0);
183
- throw err;
184
- }
185
- }
186
164
  runPreparedExecuteAgainstRoleQueryable(prepared, params, queryable, options) {
187
165
  return this.runPreparedExecuteAgainstQueryable(blindCast(prepared), blindCast(params), queryable, {
188
166
  ...options,
@@ -196,9 +174,36 @@ var SupabaseRuntimeImpl = class extends PostgresRuntimeImpl {
196
174
  });
197
175
  }
198
176
  };
177
+ function streamOnSession(open, rows) {
178
+ const generator = async function* () {
179
+ const session = await open();
180
+ let errored = false;
181
+ try {
182
+ for await (const row of rows(session)) yield row;
183
+ } catch (err) {
184
+ errored = true;
185
+ await session.destroy(err).catch(() => void 0);
186
+ throw err;
187
+ } finally {
188
+ if (!errored) await session.release();
189
+ }
190
+ };
191
+ return new AsyncIterableResult(generator());
192
+ }
193
+ async function executeOnSession(open, run) {
194
+ const session = await open();
195
+ try {
196
+ const stats = await run(session);
197
+ await session.release();
198
+ return stats;
199
+ } catch (err) {
200
+ await session.destroy(err).catch(() => void 0);
201
+ throw err;
202
+ }
203
+ }
199
204
  const contractSerializer = new PostgresContractSerializer();
200
205
  function closedClientError() {
201
- return structuredError("DRIVER.NOT_CONNECTED", "Supabase client is closed", {
206
+ return structuredError("DRIVER.NOT_CONNECTED", "Runtime is closed", {
202
207
  why: "close() was called on this client.",
203
208
  fix: "Create a new supabase(...) client.",
204
209
  meta: { extension: "supabase" }
@@ -240,6 +245,14 @@ function algKeyMismatchReason(jwt, kind) {
240
245
  if (kind === "secret" && asymmetric) return `token is signed with ${alg} but this client is configured with jwtSecret (HS256). Current Supabase projects sign with asymmetric keys by default — configure jwksUrl (https://<project>/auth/v1/.well-known/jwks.json) instead of jwtSecret.`;
241
246
  if (kind === "jwks" && alg.startsWith("HS")) return `token is signed with ${alg} (a symmetric algorithm) but this client is configured with jwksUrl. A legacy HS256 Supabase project needs jwtSecret (the JWT_SECRET from \`supabase status\`) instead of jwksUrl.`;
242
247
  }
248
+ function checkPgOption(pg) {
249
+ if (pg === void 0 || typeof pg === "object" && pg !== null && isPgPool(pg)) return;
250
+ throw supabaseError("SUPABASE.CONFIG_INVALID", "The pg option takes a pg.Pool", {
251
+ why: "Each role-bound query needs a connection of its own, which a single pg.Client cannot give.",
252
+ fix: "Pass a pg.Pool as pg, or pass url.",
253
+ meta: { reason: "pg is not a pg.Pool" }
254
+ });
255
+ }
243
256
  function toPool(options) {
244
257
  if (options.pg !== void 0 && isPgPool(options.pg)) return {
245
258
  pool: options.pg,
@@ -287,6 +300,7 @@ function buildExtensionContract() {
287
300
  */
288
301
  async function supabase(options) {
289
302
  const keyMaterial = resolveKeyMaterial(options);
303
+ checkPgOption(options.pg);
290
304
  const contract = validatePostgresContract(options.contract);
291
305
  const stack = createSqlExecutionStack({
292
306
  target: postgresTarget,
@@ -299,20 +313,20 @@ async function supabase(options) {
299
313
  stack
300
314
  });
301
315
  checkCollectionClasses(contract, options.collections);
302
- const rawCodecInferer = stack.adapter.rawCodecInferer;
303
- const toSql = createToSql(stack, contract);
316
+ const { sql: appSql, raw, toSql, enums, nativeEnums } = buildPostgresStaticContext(contract, context, stack);
304
317
  const extContract = buildExtensionContract();
305
318
  const extContext = createExecutionContext({
306
319
  contract: extContract,
307
320
  stack
308
321
  });
322
+ const extStatic = buildPostgresStaticContext(extContract, extContext, stack);
309
323
  let runtimes;
310
324
  let connectError;
311
325
  let closed = false;
312
326
  function getRuntimes() {
313
327
  if (connectError !== void 0) throw connectError.error;
314
- if (closed && runtimes?.ownedPool === void 0) throw closedClientError();
315
328
  if (runtimes !== void 0) return runtimes;
329
+ if (closed) throw closedClientError();
316
330
  const driverDescriptor = stack.driver;
317
331
  if (!driverDescriptor) throw new InternalError("Driver descriptor missing from execution stack");
318
332
  const adapter = stack.adapter.create(stack);
@@ -323,7 +337,8 @@ async function supabase(options) {
323
337
  ...ifDefined("middleware", options.middleware),
324
338
  ...ifDefined("log", options.log),
325
339
  ...ifDefined("mode", options.mode),
326
- closeRefusal: "at-once"
340
+ closeRefusal: "at-once",
341
+ ownsDriver: false
327
342
  };
328
343
  const runtime = new SupabaseRuntimeImpl({
329
344
  context,
@@ -347,6 +362,7 @@ async function supabase(options) {
347
362
  runtimes = {
348
363
  runtime,
349
364
  extRuntime,
365
+ driver,
350
366
  ownedPool
351
367
  };
352
368
  return runtimes;
@@ -368,99 +384,69 @@ async function supabase(options) {
368
384
  }
369
385
  }
370
386
  function buildRoleBoundDb(binding) {
371
- const roleSql = sql({
387
+ const role = roleScope(runtime, binding);
388
+ const roleOrm = orm({
389
+ runtime: role,
372
390
  context,
373
- rawCodecInferer
374
- });
375
- const roleRaw = createRawLane({
376
- context,
377
- rawCodecInferer
391
+ ...ifDefined("collections", options.collections)
378
392
  });
379
393
  const roleBound = {
380
- sql: roleSql,
381
- orm: orm({
382
- runtime: {
383
- query(plan) {
384
- return runtime().queryWithRole(plan, binding);
385
- },
386
- execute(plan) {
387
- return runtime().executeWithRole(plan, binding);
388
- },
389
- connection: () => runtime().openRoleSession(binding),
390
- [activitySource]: lazyActivitySource(() => runtime().roleActivitySource(binding))
391
- },
392
- context,
393
- ...ifDefined("collections", options.collections)
394
- }),
395
- raw: roleRaw,
394
+ sql: appSql,
395
+ orm: roleOrm,
396
+ raw,
396
397
  toSql,
398
+ enums,
399
+ nativeEnums,
397
400
  prepare(declaration, callback) {
398
401
  return prepareQuery(runtime(), declaration, callback);
399
402
  },
400
- [preparedStatementQuery](statement, params, execOptions) {
401
- return runtime().preparedQueryWithRole(statement, params, binding, execOptions);
402
- },
403
- [preparedStatementExecute](statement, params, execOptions) {
404
- return runtime().preparedExecuteWithRole(statement, params, binding, execOptions);
405
- },
406
- query(plan, execOptions) {
407
- return runtime().queryWithRole(plan, binding, execOptions);
408
- },
409
- execute(plan, execOptions) {
410
- return runtime().executeWithRole(plan, binding, execOptions);
411
- },
403
+ query: role.query,
404
+ execute: role.execute,
405
+ [preparedStatementQuery]: role[preparedStatementQuery],
406
+ [preparedStatementExecute]: role[preparedStatementExecute],
412
407
  transaction(fn) {
413
- return withTransaction({ connection: () => runtime().openRoleSession(binding) }, (txCtx) => fn(withTransactionMembers(txCtx, buildPostgresQueryMembers({
414
- context,
415
- collections: options.collections,
416
- rawCodecInferer,
417
- toSql,
418
- prepareRuntime: runtime
419
- }, txCtx))));
408
+ return withTransaction(role, (txCtx) => fn(withTransactionMembers(txCtx, {
409
+ ...buildPostgresQueryMembers({
410
+ context,
411
+ collections: options.collections,
412
+ sql: appSql,
413
+ raw,
414
+ toSql,
415
+ prepareRuntime: runtime
416
+ }, txCtx),
417
+ enums,
418
+ nativeEnums
419
+ })));
420
420
  }
421
421
  };
422
- return Object.assign(roleBound, { [activitySource]: lazyActivitySource(() => runtime().roleActivitySource(binding)) });
422
+ return Object.assign(roleBound, { [activitySource]: role[activitySource] });
423
423
  }
424
424
  const serviceRoleBinding = {
425
425
  role: SupabaseRole.members.ServiceRole,
426
426
  claims: {}
427
427
  };
428
- const extNativeEnums = blindCast(Object.freeze(buildNamespacedNativeEnums(extContract.storage, extContract.domain)));
428
+ const serviceRole = roleScope(extRuntime, serviceRoleBinding);
429
429
  const supabaseInternal = {
430
- sql: sql({
431
- context: extContext,
432
- rawCodecInferer
433
- }),
434
- toSql: createToSql(stack, extContract),
430
+ sql: extStatic.sql,
431
+ toSql: extStatic.toSql,
435
432
  orm: orm({
436
- runtime: {
437
- query(plan) {
438
- return extRuntime().queryWithRole(plan, serviceRoleBinding);
439
- },
440
- execute(plan) {
441
- return extRuntime().executeWithRole(plan, serviceRoleBinding);
442
- },
443
- connection: () => extRuntime().openRoleSession(serviceRoleBinding),
444
- [activitySource]: lazyActivitySource(() => extRuntime().roleActivitySource(serviceRoleBinding))
445
- },
433
+ runtime: serviceRole,
446
434
  context: extContext
447
435
  }),
448
- nativeEnums: extNativeEnums,
449
- query(plan, execOptions) {
450
- return extRuntime().queryWithRole(plan, serviceRoleBinding, execOptions);
451
- },
452
- execute(plan, execOptions) {
453
- return extRuntime().executeWithRole(plan, serviceRoleBinding, execOptions);
454
- }
436
+ nativeEnums: extStatic.nativeEnums,
437
+ query: serviceRole.query,
438
+ execute: serviceRole.execute
455
439
  };
456
440
  let closePromise;
457
- async function closeOwnedRuntime() {
458
- if (runtimes?.ownedPool === void 0) return;
459
- await runtimes.runtime.close();
441
+ async function closeRuntimes() {
442
+ if (runtimes === void 0) return;
443
+ const { runtime, extRuntime, driver, ownedPool } = runtimes;
444
+ await Promise.all([runtime.close(), extRuntime.close()]);
445
+ if (ownedPool !== void 0) await driver.close();
460
446
  }
461
447
  function closeDb() {
462
448
  closed = true;
463
- closePromise ??= closeOwnedRuntime();
449
+ closePromise ??= closeRuntimes();
464
450
  return closePromise;
465
451
  }
466
452
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.mjs","names":[],"sources":["../../../../3-extensions/supabase/dist/runtime.mjs"],"sourcesContent":["import { n as version, t as contract_default } from \"./contract-h2Gvfpy1.mjs\";\nimport { a as isSupabaseRole, n as SupabaseRole, t as SUPABASE_JWT_ROLE_CLAIM } from \"./roles-9Ql17Kbb.mjs\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport postgresAdapter from \"@internal/adapter-postgres/runtime\";\nimport postgresDriver, { suppressIdleConnectionErrors } from \"@internal/driver-postgres/runtime\";\nimport { buildPostgresQueryMembers } from \"@internal/postgres/internal/transaction-members\";\nimport { validatePostgresContract } from \"@internal/postgres/internal/validate-contract\";\nimport { PostgresRuntimeImpl, buildNamespacedNativeEnums, isPgPool } from \"@internal/postgres/runtime\";\nimport { createRawLane, sql } from \"@internal/sql-builder/runtime\";\nimport { checkCollectionClasses, orm, prepareQuery } from \"@internal/sql-orm-client\";\nimport { activitySource, createExecutionContext, createSqlExecutionStack, createToSql, lazyActivitySource, withTransaction, withTransactionMembers } from \"@internal/sql-runtime\";\nimport { createTransactionStart, preparedStatementExecute, preparedStatementQuery, transactionStart } from \"@internal/sql-runtime/internal/prepared-query\";\nimport postgresTarget, { PostgresContractSerializer } from \"@internal/target-postgres/runtime\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { structuredError } from \"@internal/utils/structured-error\";\nimport { createRemoteJWKSet, decodeProtectedHeader, jwtVerify } from \"jose\";\nimport { Pool } from \"pg\";\nimport { AsyncIterableResult } from \"@internal/framework-components/runtime\";\n//#region src/runtime/descriptor.ts\n/**\n* Tells the runtime that the Supabase pack's runtime component is available.\n*\n* When a contract declares the Supabase pack, the runtime checks that a\n* matching descriptor has been registered. Without this, loading a Supabase\n* contract errors with \"pack runtime component missing\". The `supabase()`\n* factory registers this descriptor automatically — app code never needs to\n* reference it directly.\n*/\nconst supabaseRuntimeDescriptor = {\n\tkind: \"extension\",\n\tid: \"supabase\",\n\tversion,\n\tfamilyId: \"sql\",\n\ttargetId: \"postgres\",\n\tcodecs: () => [],\n\tcreate() {\n\t\treturn {\n\t\t\tfamilyId: \"sql\",\n\t\t\ttargetId: \"postgres\"\n\t\t};\n\t}\n};\n//#endregion\n//#region src/runtime/supabase-errors.ts\nfunction supabaseError(code, message, options) {\n\treturn structuredError(code, message, options);\n}\n//#endregion\n//#region src/runtime/supabase-runtime.ts\nvar SupabaseRuntimeImpl = class extends PostgresRuntimeImpl {\n\t/**\n\t* Opens a raw connection and applies role + JWT claims via session-scoped set_config.\n\t* On bind failure, destroys the connection before rethrowing — no leaked connections.\n\t* Not on the `SupabaseRuntime` interface; consumed by the facade, not by app code.\n\t*/\n\tasync openRoleSession(binding) {\n\t\treturn (await this.openRoleConnection(binding)).session;\n\t}\n\tasync openRoleConnection(binding) {\n\t\tconst conn = await this.acquireRawConnection();\n\t\ttry {\n\t\t\tawait conn.execute({\n\t\t\t\tsql: \"SELECT set_config($1, $2, false)\",\n\t\t\t\tparams: [\"role\", binding.role]\n\t\t\t});\n\t\t\tawait conn.execute({\n\t\t\t\tsql: \"SELECT set_config($1, $2, false)\",\n\t\t\t\tparams: [\"request.jwt.claims\", JSON.stringify(binding.claims ?? {})]\n\t\t\t});\n\t\t} catch (err) {\n\t\t\tawait conn.destroy(err).catch(() => void 0);\n\t\t\tthrow err;\n\t\t}\n\t\tconst self = this;\n\t\tconst session = {\n\t\t\t[transactionStart]: createTransactionStart(),\n\t\t\t[activitySource]: self.connectionActivitySource(conn, () => session),\n\t\t\tquery(plan, options) {\n\t\t\t\treturn self.queryAgainstQueryable(plan, conn, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"connection\"\n\t\t\t\t});\n\t\t\t},\n\t\t\texecute(plan, options) {\n\t\t\t\treturn self.executeStatisticsAgainstQueryable(plan, conn, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"connection\"\n\t\t\t\t});\n\t\t\t},\n\t\t\t[preparedStatementQuery](prepared, params, options) {\n\t\t\t\treturn self.runPreparedQueryAgainstRoleQueryable(prepared, params, conn, options);\n\t\t\t},\n\t\t\t[preparedStatementExecute](prepared, params, options) {\n\t\t\t\treturn self.runPreparedExecuteAgainstRoleQueryable(prepared, params, conn, options);\n\t\t\t},\n\t\t\tasync transaction() {\n\t\t\t\treturn self.beginTransactionOn(conn, session, void 0);\n\t\t\t},\n\t\t\t/**\n\t\t\t* Resets all session-local config then releases the connection back to the pool.\n\t\t\t* If RESET ALL fails, destroys the connection instead — pool-poisoning guarantee.\n\t\t\t*/\n\t\t\tasync release() {\n\t\t\t\ttry {\n\t\t\t\t\tawait conn.execute({ sql: \"RESET ALL\" });\n\t\t\t\t\tawait conn.release();\n\t\t\t\t} catch (resetError) {\n\t\t\t\t\tawait conn.destroy(resetError).catch(() => void 0);\n\t\t\t\t}\n\t\t\t},\n\t\t\tasync destroy(reason) {\n\t\t\t\tawait conn.destroy(reason);\n\t\t\t}\n\t\t};\n\t\treturn {\n\t\t\tconn,\n\t\t\tsession\n\t\t};\n\t}\n\t/** The activity source the facade gives the role-bound ORM: activities whose statements and transaction run on role sessions bound to `binding`, and content hashes at the `'connection'` scope role sessions run at. Not on the `SupabaseRuntime` interface. */\n\troleActivitySource(binding) {\n\t\treturn {\n\t\t\tstartActivity: (activity) => this.startActivityOnRoute(this.roleRoute(binding), activity, void 0),\n\t\t\tplanContentHash: (plan) => this.planContentHashFor(plan, \"connection\", void 0)\n\t\t};\n\t}\n\troleRoute(binding) {\n\t\treturn {\n\t\t\tscope: \"connection\",\n\t\t\tparent: () => void 0,\n\t\t\truntimeWork: true,\n\t\t\tquery: (plan, options) => this.streamOnRoleSession(binding, (session) => session.query(plan, options)),\n\t\t\texecute: (plan, options) => this.executeWithRole(plan, binding, options),\n\t\t\tpreparedQuery: (statement, params, options) => this.streamOnRoleSession(binding, (session) => session[preparedStatementQuery](statement, params, options)),\n\t\t\tpreparedExecute: (statement, params, options) => this.executeOnRoleSession(binding, (session) => session[preparedStatementExecute](statement, params, options)),\n\t\t\ttransaction: (parent) => this.beginRoleTransaction(binding, parent)\n\t\t};\n\t}\n\tasync beginRoleTransaction(binding, parent) {\n\t\tconst { conn, session } = await this.openRoleConnection(binding);\n\t\treturn this.ownTransaction(session, () => this.beginTransactionOn(conn, session, parent));\n\t}\n\t/**\n\t* Opens a role session, queries the plan, then releases after the stream drains.\n\t* On mid-stream error, destroys the session instead of releasing.\n\t*/\n\tqueryWithRole(plan, binding, options) {\n\t\treturn this.streamOnRoleSession(binding, (session) => session.query(plan, options));\n\t}\n\texecuteWithRole(plan, binding, options) {\n\t\treturn this.executeOnRoleSession(binding, (session) => session.execute(plan, options));\n\t}\n\t/** Runs a prepared statement on a role session, as a role-bound query runs. */\n\tpreparedQueryWithRole(statement, params, binding, options) {\n\t\treturn this.streamOnRoleSession(binding, (session) => session[preparedStatementQuery](statement, params, options));\n\t}\n\t/** Runs a prepared statement that reports affected rows on a role session. */\n\tpreparedExecuteWithRole(statement, params, binding, options) {\n\t\treturn this.executeOnRoleSession(binding, (session) => session[preparedStatementExecute](statement, params, options));\n\t}\n\tstreamOnRoleSession(binding, rows) {\n\t\tconst self = this;\n\t\tconst generator = async function* () {\n\t\t\tconst { session } = await self.openRoleConnection(binding);\n\t\t\tlet errored = false;\n\t\t\ttry {\n\t\t\t\tfor await (const row of rows(session)) yield row;\n\t\t\t} catch (err) {\n\t\t\t\terrored = true;\n\t\t\t\tawait session.destroy(err).catch(() => void 0);\n\t\t\t\tthrow err;\n\t\t\t} finally {\n\t\t\t\tif (!errored) await session.release();\n\t\t\t}\n\t\t};\n\t\treturn new AsyncIterableResult(generator());\n\t}\n\tasync executeOnRoleSession(binding, run) {\n\t\tconst { session } = await this.openRoleConnection(binding);\n\t\ttry {\n\t\t\tconst stats = await run(session);\n\t\t\tawait session.release();\n\t\t\treturn stats;\n\t\t} catch (err) {\n\t\t\tawait session.destroy(err).catch(() => void 0);\n\t\t\tthrow err;\n\t\t}\n\t}\n\trunPreparedExecuteAgainstRoleQueryable(prepared, params, queryable, options) {\n\t\treturn this.runPreparedExecuteAgainstQueryable(blindCast(prepared), blindCast(params), queryable, {\n\t\t\t...options,\n\t\t\tscope: \"connection\"\n\t\t});\n\t}\n\trunPreparedQueryAgainstRoleQueryable(prepared, params, queryable, options) {\n\t\treturn this.runPreparedQueryAgainstQueryable(blindCast(prepared), blindCast(params), queryable, {\n\t\t\t...options,\n\t\t\tscope: \"connection\"\n\t\t});\n\t}\n};\n//#endregion\n//#region src/runtime/supabase.ts\nconst contractSerializer = new PostgresContractSerializer();\nfunction closedClientError() {\n\treturn structuredError(\"DRIVER.NOT_CONNECTED\", \"Supabase client is closed\", {\n\t\twhy: \"close() was called on this client.\",\n\t\tfix: \"Create a new supabase(...) client.\",\n\t\tmeta: { extension: \"supabase\" }\n\t});\n}\nfunction resolveKeyMaterial(options) {\n\tconst jwtSecret = \"jwtSecret\" in options ? options.jwtSecret : void 0;\n\tconst jwksUrl = \"jwksUrl\" in options ? options.jwksUrl : void 0;\n\tif (jwtSecret !== void 0 && jwksUrl !== void 0) throw supabaseError(\"SUPABASE.CONFIG_INVALID\", \"Provide either jwtSecret or jwksUrl, not both\", { meta: { reason: \"both jwtSecret and jwksUrl provided\" } });\n\tif (jwtSecret !== void 0) return {\n\t\tkind: \"secret\",\n\t\tkey: new TextEncoder().encode(jwtSecret)\n\t};\n\tif (jwksUrl !== void 0) return {\n\t\tkind: \"jwks\",\n\t\tkeyset: createRemoteJWKSet(new URL(jwksUrl))\n\t};\n\tthrow supabaseError(\"SUPABASE.CONFIG_INVALID\", \"Either jwtSecret or jwksUrl is required\", { meta: { reason: \"neither jwtSecret nor jwksUrl provided\" } });\n}\n/**\n* Pre-verification check that the token's signing algorithm can possibly\n* match the configured key material. Without it the mismatch surfaces as a\n* jose internal (\"Key for the ES256 algorithm must be one of type\n* CryptoKey... Received an instance of Uint8Array\") that never names the\n* actual problem: current Supabase projects sign ES256 via JWKS by default,\n* while `supabase status` still prints a JWT_SECRET that only fits legacy\n* HS256 projects. Returns `undefined` when the pairing is plausible or the\n* header is unreadable (jwtVerify then produces the canonical error).\n*/\nfunction algKeyMismatchReason(jwt, kind) {\n\tlet alg;\n\ttry {\n\t\talg = decodeProtectedHeader(jwt).alg;\n\t} catch {\n\t\treturn;\n\t}\n\tif (alg === void 0) return void 0;\n\tconst asymmetric = /^(?:ES|RS|PS)\\d{3}$/.test(alg) || alg === \"EdDSA\" || alg === \"Ed25519\";\n\tif (kind === \"secret\" && asymmetric) return `token is signed with ${alg} but this client is configured with jwtSecret (HS256). Current Supabase projects sign with asymmetric keys by default — configure jwksUrl (https://<project>/auth/v1/.well-known/jwks.json) instead of jwtSecret.`;\n\tif (kind === \"jwks\" && alg.startsWith(\"HS\")) return `token is signed with ${alg} (a symmetric algorithm) but this client is configured with jwksUrl. A legacy HS256 Supabase project needs jwtSecret (the JWT_SECRET from \\`supabase status\\`) instead of jwksUrl.`;\n}\nfunction toPool(options) {\n\tif (options.pg !== void 0 && isPgPool(options.pg)) return {\n\t\tpool: options.pg,\n\t\towned: false\n\t};\n\tif (typeof options.url === \"string\") return {\n\t\tpool: suppressIdleConnectionErrors(new Pool({\n\t\t\tconnectionString: options.url,\n\t\t\tconnectionTimeoutMillis: options.poolOptions?.connectionTimeoutMillis ?? 2e4,\n\t\t\tidleTimeoutMillis: options.poolOptions?.idleTimeoutMillis ?? 3e4\n\t\t})),\n\t\towned: true\n\t};\n}\nfunction withSupabaseDescriptor(extensions) {\n\tconst packs = extensions ?? [];\n\treturn packs.some((pack) => pack.id === supabaseRuntimeDescriptor.id) ? packs : [...packs, supabaseRuntimeDescriptor];\n}\n/**\n* Deserializes the Supabase extension's own emitted contract into a runtime\n* contract: namespaces hydrate into `PostgresSchema` instances (with\n* `qualifyTable`), and each column resolves its codec through the codec\n* registry. Exposed only via `service_role`'s `.supabase`\n* secondary root — never merged into the app contract.\n*/\nfunction buildExtensionContract() {\n\treturn blindCast(contractSerializer.deserializeContract(contract_default));\n}\n/**\n* Creates a Supabase client whose queries run as the role a JWT names. The client infers its\n* contract type from `contract`: a value from `contractFromJson` of `@prisma/orm-postgres/static`\n* for an emitted contract, or a TypeScript-authored contract. A contract is validated once, however\n* many clients are built from it. The pool is created on the first query.\n*\n* @example\n* ```ts\n* import { contractFromJson } from '@prisma/orm-postgres/static';\n* import { supabase } from '@prisma/orm-extension-supabase/runtime';\n* import type { Contract } from './contract.d';\n* import contractJson from './contract.json' with { type: 'json' };\n*\n* export const contract = contractFromJson<Contract>(contractJson);\n* export const db = await supabase({ contract, url, jwtSecret });\n* ```\n*/\nasync function supabase(options) {\n\tconst keyMaterial = resolveKeyMaterial(options);\n\tconst contract = validatePostgresContract(options.contract);\n\tconst stack = createSqlExecutionStack({\n\t\ttarget: postgresTarget,\n\t\tadapter: postgresAdapter,\n\t\tdriver: postgresDriver,\n\t\textensions: withSupabaseDescriptor(options.extensions)\n\t});\n\tconst context = createExecutionContext({\n\t\tcontract,\n\t\tstack\n\t});\n\tcheckCollectionClasses(contract, options.collections);\n\tconst rawCodecInferer = stack.adapter.rawCodecInferer;\n\tconst toSql = createToSql(stack, contract);\n\tconst extContract = buildExtensionContract();\n\tconst extContext = createExecutionContext({\n\t\tcontract: extContract,\n\t\tstack\n\t});\n\tlet runtimes;\n\tlet connectError;\n\tlet closed = false;\n\tfunction getRuntimes() {\n\t\tif (connectError !== void 0) throw connectError.error;\n\t\tif (closed && runtimes?.ownedPool === void 0) throw closedClientError();\n\t\tif (runtimes !== void 0) return runtimes;\n\t\tconst driverDescriptor = stack.driver;\n\t\tif (!driverDescriptor) throw new InternalError(\"Driver descriptor missing from execution stack\");\n\t\tconst adapter = stack.adapter.create(stack);\n\t\tconst driver = driverDescriptor.create({ cursor: { disabled: true } });\n\t\tconst sharedOptions = {\n\t\t\tadapter,\n\t\t\tdriver,\n\t\t\t...ifDefined(\"middleware\", options.middleware),\n\t\t\t...ifDefined(\"log\", options.log),\n\t\t\t...ifDefined(\"mode\", options.mode),\n\t\t\tcloseRefusal: \"at-once\"\n\t\t};\n\t\tconst runtime = new SupabaseRuntimeImpl({\n\t\t\tcontext,\n\t\t\t...sharedOptions,\n\t\t\t...ifDefined(\"verifyMarker\", options.verifyMarker)\n\t\t});\n\t\tconst extRuntime = new SupabaseRuntimeImpl({\n\t\t\tcontext: extContext,\n\t\t\t...sharedOptions,\n\t\t\tverifyMarker: false\n\t\t});\n\t\tconst poolEntry = toPool(options);\n\t\tconst ownedPool = poolEntry?.owned ? poolEntry.pool : void 0;\n\t\tif (poolEntry) driver.connect({\n\t\t\tkind: \"pgPool\",\n\t\t\tpool: poolEntry.pool\n\t\t}).catch(async (err) => {\n\t\t\tconnectError = { error: err };\n\t\t\tawait ownedPool?.end().catch(() => void 0);\n\t\t});\n\t\truntimes = {\n\t\t\truntime,\n\t\t\textRuntime,\n\t\t\townedPool\n\t\t};\n\t\treturn runtimes;\n\t}\n\tconst runtime = () => getRuntimes().runtime;\n\tconst extRuntime = () => getRuntimes().extRuntime;\n\tasync function verifyJwt(jwt) {\n\t\tconst mismatch = algKeyMismatchReason(jwt, keyMaterial.kind);\n\t\tif (mismatch !== void 0) throw supabaseError(\"SUPABASE.JWT_INVALID\", `Invalid JWT: ${mismatch}`, { meta: { reason: mismatch } });\n\t\ttry {\n\t\t\tif (keyMaterial.kind === \"secret\") return await jwtVerify(jwt, keyMaterial.key);\n\t\t\treturn await jwtVerify(jwt, keyMaterial.keyset);\n\t\t} catch (err) {\n\t\t\tconst reason = err instanceof Error ? err.message : String(err);\n\t\t\tthrow supabaseError(\"SUPABASE.JWT_INVALID\", `Invalid JWT: ${reason}`, {\n\t\t\t\tmeta: { reason },\n\t\t\t\tcause: err\n\t\t\t});\n\t\t}\n\t}\n\tfunction buildRoleBoundDb(binding) {\n\t\tconst roleSql = sql({\n\t\t\tcontext,\n\t\t\trawCodecInferer\n\t\t});\n\t\tconst roleRaw = createRawLane({\n\t\t\tcontext,\n\t\t\trawCodecInferer\n\t\t});\n\t\tconst roleBound = {\n\t\t\tsql: roleSql,\n\t\t\torm: orm({\n\t\t\t\truntime: {\n\t\t\t\t\tquery(plan) {\n\t\t\t\t\t\treturn runtime().queryWithRole(plan, binding);\n\t\t\t\t\t},\n\t\t\t\t\texecute(plan) {\n\t\t\t\t\t\treturn runtime().executeWithRole(plan, binding);\n\t\t\t\t\t},\n\t\t\t\t\tconnection: () => runtime().openRoleSession(binding),\n\t\t\t\t\t[activitySource]: lazyActivitySource(() => runtime().roleActivitySource(binding))\n\t\t\t\t},\n\t\t\t\tcontext,\n\t\t\t\t...ifDefined(\"collections\", options.collections)\n\t\t\t}),\n\t\t\traw: roleRaw,\n\t\t\ttoSql,\n\t\t\tprepare(declaration, callback) {\n\t\t\t\treturn prepareQuery(runtime(), declaration, callback);\n\t\t\t},\n\t\t\t[preparedStatementQuery](statement, params, execOptions) {\n\t\t\t\treturn runtime().preparedQueryWithRole(statement, params, binding, execOptions);\n\t\t\t},\n\t\t\t[preparedStatementExecute](statement, params, execOptions) {\n\t\t\t\treturn runtime().preparedExecuteWithRole(statement, params, binding, execOptions);\n\t\t\t},\n\t\t\tquery(plan, execOptions) {\n\t\t\t\treturn runtime().queryWithRole(plan, binding, execOptions);\n\t\t\t},\n\t\t\texecute(plan, execOptions) {\n\t\t\t\treturn runtime().executeWithRole(plan, binding, execOptions);\n\t\t\t},\n\t\t\ttransaction(fn) {\n\t\t\t\treturn withTransaction({ connection: () => runtime().openRoleSession(binding) }, (txCtx) => fn(withTransactionMembers(txCtx, buildPostgresQueryMembers({\n\t\t\t\t\tcontext,\n\t\t\t\t\tcollections: options.collections,\n\t\t\t\t\trawCodecInferer,\n\t\t\t\t\ttoSql,\n\t\t\t\t\tprepareRuntime: runtime\n\t\t\t\t}, txCtx))));\n\t\t\t}\n\t\t};\n\t\treturn Object.assign(roleBound, { [activitySource]: lazyActivitySource(() => runtime().roleActivitySource(binding)) });\n\t}\n\tconst serviceRoleBinding = {\n\t\trole: SupabaseRole.members.ServiceRole,\n\t\tclaims: {}\n\t};\n\tconst extNativeEnums = blindCast(Object.freeze(buildNamespacedNativeEnums(extContract.storage, extContract.domain)));\n\tconst supabaseInternal = {\n\t\tsql: sql({\n\t\t\tcontext: extContext,\n\t\t\trawCodecInferer\n\t\t}),\n\t\ttoSql: createToSql(stack, extContract),\n\t\torm: orm({\n\t\t\truntime: {\n\t\t\t\tquery(plan) {\n\t\t\t\t\treturn extRuntime().queryWithRole(plan, serviceRoleBinding);\n\t\t\t\t},\n\t\t\t\texecute(plan) {\n\t\t\t\t\treturn extRuntime().executeWithRole(plan, serviceRoleBinding);\n\t\t\t\t},\n\t\t\t\tconnection: () => extRuntime().openRoleSession(serviceRoleBinding),\n\t\t\t\t[activitySource]: lazyActivitySource(() => extRuntime().roleActivitySource(serviceRoleBinding))\n\t\t\t},\n\t\t\tcontext: extContext\n\t\t}),\n\t\tnativeEnums: extNativeEnums,\n\t\tquery(plan, execOptions) {\n\t\t\treturn extRuntime().queryWithRole(plan, serviceRoleBinding, execOptions);\n\t\t},\n\t\texecute(plan, execOptions) {\n\t\t\treturn extRuntime().executeWithRole(plan, serviceRoleBinding, execOptions);\n\t\t}\n\t};\n\tlet closePromise;\n\tasync function closeOwnedRuntime() {\n\t\tif (runtimes?.ownedPool === void 0) return;\n\t\tawait runtimes.runtime.close();\n\t}\n\tfunction closeDb() {\n\t\tclosed = true;\n\t\tclosePromise ??= closeOwnedRuntime();\n\t\treturn closePromise;\n\t}\n\treturn {\n\t\tcontext,\n\t\tstack,\n\t\tasync asUser(jwt) {\n\t\t\tconst { payload } = await verifyJwt(jwt);\n\t\t\tconst rawRole = payload[SUPABASE_JWT_ROLE_CLAIM];\n\t\t\tconst roleStr = typeof rawRole === \"string\" ? rawRole : SupabaseRole.members.Authenticated;\n\t\t\treturn buildRoleBoundDb({\n\t\t\t\trole: isSupabaseRole(roleStr) ? roleStr : SupabaseRole.members.Authenticated,\n\t\t\t\tclaims: payload\n\t\t\t});\n\t\t},\n\t\tasAnon() {\n\t\t\treturn buildRoleBoundDb({\n\t\t\t\trole: SupabaseRole.members.Anon,\n\t\t\t\tclaims: {}\n\t\t\t});\n\t\t},\n\t\tasServiceRole() {\n\t\t\treturn {\n\t\t\t\t...buildRoleBoundDb(serviceRoleBinding),\n\t\t\t\tsupabase: supabaseInternal\n\t\t\t};\n\t\t},\n\t\tclose: closeDb,\n\t\t[Symbol.asyncDispose]: closeDb\n\t};\n}\n//#endregion\n//#region src/exports/runtime.ts\nvar runtime_default = supabaseRuntimeDescriptor;\n//#endregion\nexport { SupabaseRuntimeImpl, runtime_default as default, supabase };\n\n//# sourceMappingURL=runtime.mjs.map"],"mappings":"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"}
1
+ {"version":3,"file":"runtime.mjs","names":[],"sources":["../../../../3-extensions/supabase/dist/runtime.mjs"],"sourcesContent":["import { n as version, t as contract_default } from \"./contract-CjZU4jSN.mjs\";\nimport { a as isSupabaseRole, n as SupabaseRole, t as SUPABASE_JWT_ROLE_CLAIM } from \"./roles-9Ql17Kbb.mjs\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport postgresAdapter from \"@internal/adapter-postgres/runtime\";\nimport postgresDriver, { suppressIdleConnectionErrors } from \"@internal/driver-postgres/runtime\";\nimport { buildPostgresStaticContext } from \"@internal/postgres/internal/static-context\";\nimport { buildPostgresQueryMembers } from \"@internal/postgres/internal/transaction-members\";\nimport { validatePostgresContract } from \"@internal/postgres/internal/validate-contract\";\nimport { PostgresRuntimeImpl, isPgPool } from \"@internal/postgres/runtime\";\nimport { checkCollectionClasses, orm, prepareQuery } from \"@internal/sql-orm-client\";\nimport { activitySource, createExecutionContext, createSqlExecutionStack, withTransaction, withTransactionMembers } from \"@internal/sql-runtime\";\nimport { createTransactionStart, preparedStatementExecute, preparedStatementQuery, transactionStart } from \"@internal/sql-runtime/internal/prepared-query\";\nimport postgresTarget, { PostgresContractSerializer } from \"@internal/target-postgres/runtime\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { structuredError } from \"@internal/utils/structured-error\";\nimport { createRemoteJWKSet, decodeProtectedHeader, jwtVerify } from \"jose\";\nimport { Pool } from \"pg\";\nimport { AsyncIterableResult } from \"@internal/framework-components/runtime\";\n//#region src/runtime/descriptor.ts\n/**\n* Tells the runtime that the Supabase pack's runtime component is available.\n*\n* When a contract declares the Supabase pack, the runtime checks that a\n* matching descriptor has been registered. Without this, loading a Supabase\n* contract errors with \"pack runtime component missing\". The `supabase()`\n* factory registers this descriptor automatically — app code never needs to\n* reference it directly.\n*/\nconst supabaseRuntimeDescriptor = {\n\tkind: \"extension\",\n\tid: \"supabase\",\n\tversion,\n\tfamilyId: \"sql\",\n\ttargetId: \"postgres\",\n\tcodecs: () => [],\n\tcreate() {\n\t\treturn {\n\t\t\tfamilyId: \"sql\",\n\t\t\ttargetId: \"postgres\"\n\t\t};\n\t}\n};\n//#endregion\n//#region src/runtime/supabase-errors.ts\nfunction supabaseError(code, message, options) {\n\treturn structuredError(code, message, options);\n}\n//#endregion\n//#region src/runtime/supabase-runtime.ts\nlet buildRoleScope;\n/**\n* The operations under `binding` of the runtime `runtime()` returns. Each operation calls `runtime()` when it runs, so a client can build its role scope before its runtime exists; when `runtime()` throws, the operation rejects. For the facade only; the package entry does not export it.\n*/\nfunction roleScope(runtime, binding) {\n\treturn buildRoleScope(runtime, binding);\n}\nvar SupabaseRuntimeImpl = class extends PostgresRuntimeImpl {\n\t/**\n\t* Opens a raw connection and applies role + JWT claims via session-scoped set_config. On bind failure, destroys the connection before rethrowing — no leaked connections. Every operation of `forRole(binding)` runs on a session opened here.\n\t*/\n\tasync openRoleSession(binding) {\n\t\treturn (await this.openRoleConnection(binding)).session;\n\t}\n\tasync openRoleConnection(binding, options) {\n\t\tconst conn = await this.acquireRawConnection(options);\n\t\ttry {\n\t\t\tawait conn.execute({\n\t\t\t\tsql: \"SELECT set_config($1, $2, false)\",\n\t\t\t\tparams: [\"role\", binding.role]\n\t\t\t});\n\t\t\tawait conn.execute({\n\t\t\t\tsql: \"SELECT set_config($1, $2, false)\",\n\t\t\t\tparams: [\"request.jwt.claims\", JSON.stringify(binding.claims ?? {})]\n\t\t\t});\n\t\t} catch (err) {\n\t\t\tawait conn.destroy(err).catch(() => void 0);\n\t\t\tthrow err;\n\t\t}\n\t\tconst self = this;\n\t\tconst session = {\n\t\t\t[transactionStart]: createTransactionStart(),\n\t\t\t[activitySource]: self.connectionActivitySource(conn, () => session),\n\t\t\tquery(plan, options) {\n\t\t\t\treturn self.queryAgainstQueryable(plan, conn, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"connection\"\n\t\t\t\t});\n\t\t\t},\n\t\t\texecute(plan, options) {\n\t\t\t\treturn self.executeStatisticsAgainstQueryable(plan, conn, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"connection\"\n\t\t\t\t});\n\t\t\t},\n\t\t\t[preparedStatementQuery](prepared, params, options) {\n\t\t\t\treturn self.runPreparedQueryAgainstRoleQueryable(prepared, params, conn, options);\n\t\t\t},\n\t\t\t[preparedStatementExecute](prepared, params, options) {\n\t\t\t\treturn self.runPreparedExecuteAgainstRoleQueryable(prepared, params, conn, options);\n\t\t\t},\n\t\t\tasync transaction() {\n\t\t\t\treturn self.beginTransactionOn(conn, session, void 0);\n\t\t\t},\n\t\t\t/**\n\t\t\t* Resets all session-local config then releases the connection back to the pool.\n\t\t\t* If RESET ALL fails, destroys the connection instead — pool-poisoning guarantee.\n\t\t\t*/\n\t\t\tasync release() {\n\t\t\t\ttry {\n\t\t\t\t\tawait conn.execute({ sql: \"RESET ALL\" });\n\t\t\t\t\tawait conn.release();\n\t\t\t\t} catch (resetError) {\n\t\t\t\t\tawait conn.destroy(resetError).catch(() => void 0);\n\t\t\t\t}\n\t\t\t},\n\t\t\tasync destroy(reason) {\n\t\t\t\tawait conn.destroy(reason);\n\t\t\t}\n\t\t};\n\t\treturn {\n\t\t\tconn,\n\t\t\tsession\n\t\t};\n\t}\n\tforRole(binding) {\n\t\treturn buildRoleScope(() => this, binding);\n\t}\n\tstatic {\n\t\tbuildRoleScope = (runtime, binding) => {\n\t\t\tconst open = (options) => async () => (await runtime().openRoleConnection(binding, options)).session;\n\t\t\tconst scope = {\n\t\t\t\tquery(plan, options) {\n\t\t\t\t\treturn streamOnSession(open(options), (session) => session.query(plan, options));\n\t\t\t\t},\n\t\t\t\texecute(plan, options) {\n\t\t\t\t\treturn executeOnSession(open(options), (session) => session.execute(plan, options));\n\t\t\t\t},\n\t\t\t\t[preparedStatementQuery](statement, params, options) {\n\t\t\t\t\treturn streamOnSession(open(options), (session) => session[preparedStatementQuery](statement, params, options));\n\t\t\t\t},\n\t\t\t\t[preparedStatementExecute](statement, params, options) {\n\t\t\t\t\treturn executeOnSession(open(options), (session) => session[preparedStatementExecute](statement, params, options));\n\t\t\t\t},\n\t\t\t\tconnection: open(void 0),\n\t\t\t\t[activitySource]: {\n\t\t\t\t\tstartActivity: async (activity) => runtime().startActivityOnRoute(route, activity, void 0),\n\t\t\t\t\tplanContentHash: async (plan) => runtime().planContentHashFor(plan, \"connection\", void 0)\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst route = {\n\t\t\t\tscope: \"connection\",\n\t\t\t\tparent: () => void 0,\n\t\t\t\truntimeWork: true,\n\t\t\t\tquery: (plan, options) => scope.query(plan, options),\n\t\t\t\texecute: (plan, options) => scope.execute(plan, options),\n\t\t\t\tpreparedQuery: (statement, params, options) => scope[preparedStatementQuery](statement, params, options),\n\t\t\t\tpreparedExecute: (statement, params, options) => scope[preparedStatementExecute](statement, params, options),\n\t\t\t\ttransaction: (parent) => runtime().beginRoleTransaction(binding, parent)\n\t\t\t};\n\t\t\treturn scope;\n\t\t};\n\t}\n\tasync beginRoleTransaction(binding, parent) {\n\t\tconst { conn, session } = await this.openRoleConnection(binding, { activityParent: parent });\n\t\treturn this.ownTransaction(session, () => this.beginTransactionOn(conn, session, parent));\n\t}\n\trunPreparedExecuteAgainstRoleQueryable(prepared, params, queryable, options) {\n\t\treturn this.runPreparedExecuteAgainstQueryable(blindCast(prepared), blindCast(params), queryable, {\n\t\t\t...options,\n\t\t\tscope: \"connection\"\n\t\t});\n\t}\n\trunPreparedQueryAgainstRoleQueryable(prepared, params, queryable, options) {\n\t\treturn this.runPreparedQueryAgainstQueryable(blindCast(prepared), blindCast(params), queryable, {\n\t\t\t...options,\n\t\t\tscope: \"connection\"\n\t\t});\n\t}\n};\nfunction streamOnSession(open, rows) {\n\tconst generator = async function* () {\n\t\tconst session = await open();\n\t\tlet errored = false;\n\t\ttry {\n\t\t\tfor await (const row of rows(session)) yield row;\n\t\t} catch (err) {\n\t\t\terrored = true;\n\t\t\tawait session.destroy(err).catch(() => void 0);\n\t\t\tthrow err;\n\t\t} finally {\n\t\t\tif (!errored) await session.release();\n\t\t}\n\t};\n\treturn new AsyncIterableResult(generator());\n}\nasync function executeOnSession(open, run) {\n\tconst session = await open();\n\ttry {\n\t\tconst stats = await run(session);\n\t\tawait session.release();\n\t\treturn stats;\n\t} catch (err) {\n\t\tawait session.destroy(err).catch(() => void 0);\n\t\tthrow err;\n\t}\n}\n//#endregion\n//#region src/runtime/supabase.ts\nconst contractSerializer = new PostgresContractSerializer();\nfunction closedClientError() {\n\treturn structuredError(\"DRIVER.NOT_CONNECTED\", \"Runtime is closed\", {\n\t\twhy: \"close() was called on this client.\",\n\t\tfix: \"Create a new supabase(...) client.\",\n\t\tmeta: { extension: \"supabase\" }\n\t});\n}\nfunction resolveKeyMaterial(options) {\n\tconst jwtSecret = \"jwtSecret\" in options ? options.jwtSecret : void 0;\n\tconst jwksUrl = \"jwksUrl\" in options ? options.jwksUrl : void 0;\n\tif (jwtSecret !== void 0 && jwksUrl !== void 0) throw supabaseError(\"SUPABASE.CONFIG_INVALID\", \"Provide either jwtSecret or jwksUrl, not both\", { meta: { reason: \"both jwtSecret and jwksUrl provided\" } });\n\tif (jwtSecret !== void 0) return {\n\t\tkind: \"secret\",\n\t\tkey: new TextEncoder().encode(jwtSecret)\n\t};\n\tif (jwksUrl !== void 0) return {\n\t\tkind: \"jwks\",\n\t\tkeyset: createRemoteJWKSet(new URL(jwksUrl))\n\t};\n\tthrow supabaseError(\"SUPABASE.CONFIG_INVALID\", \"Either jwtSecret or jwksUrl is required\", { meta: { reason: \"neither jwtSecret nor jwksUrl provided\" } });\n}\n/**\n* Pre-verification check that the token's signing algorithm can possibly\n* match the configured key material. Without it the mismatch surfaces as a\n* jose internal (\"Key for the ES256 algorithm must be one of type\n* CryptoKey... Received an instance of Uint8Array\") that never names the\n* actual problem: current Supabase projects sign ES256 via JWKS by default,\n* while `supabase status` still prints a JWT_SECRET that only fits legacy\n* HS256 projects. Returns `undefined` when the pairing is plausible or the\n* header is unreadable (jwtVerify then produces the canonical error).\n*/\nfunction algKeyMismatchReason(jwt, kind) {\n\tlet alg;\n\ttry {\n\t\talg = decodeProtectedHeader(jwt).alg;\n\t} catch {\n\t\treturn;\n\t}\n\tif (alg === void 0) return void 0;\n\tconst asymmetric = /^(?:ES|RS|PS)\\d{3}$/.test(alg) || alg === \"EdDSA\" || alg === \"Ed25519\";\n\tif (kind === \"secret\" && asymmetric) return `token is signed with ${alg} but this client is configured with jwtSecret (HS256). Current Supabase projects sign with asymmetric keys by default — configure jwksUrl (https://<project>/auth/v1/.well-known/jwks.json) instead of jwtSecret.`;\n\tif (kind === \"jwks\" && alg.startsWith(\"HS\")) return `token is signed with ${alg} (a symmetric algorithm) but this client is configured with jwksUrl. A legacy HS256 Supabase project needs jwtSecret (the JWT_SECRET from \\`supabase status\\`) instead of jwksUrl.`;\n}\nfunction checkPgOption(pg) {\n\tif (pg === void 0 || typeof pg === \"object\" && pg !== null && isPgPool(pg)) return;\n\tthrow supabaseError(\"SUPABASE.CONFIG_INVALID\", \"The pg option takes a pg.Pool\", {\n\t\twhy: \"Each role-bound query needs a connection of its own, which a single pg.Client cannot give.\",\n\t\tfix: \"Pass a pg.Pool as pg, or pass url.\",\n\t\tmeta: { reason: \"pg is not a pg.Pool\" }\n\t});\n}\nfunction toPool(options) {\n\tif (options.pg !== void 0 && isPgPool(options.pg)) return {\n\t\tpool: options.pg,\n\t\towned: false\n\t};\n\tif (typeof options.url === \"string\") return {\n\t\tpool: suppressIdleConnectionErrors(new Pool({\n\t\t\tconnectionString: options.url,\n\t\t\tconnectionTimeoutMillis: options.poolOptions?.connectionTimeoutMillis ?? 2e4,\n\t\t\tidleTimeoutMillis: options.poolOptions?.idleTimeoutMillis ?? 3e4\n\t\t})),\n\t\towned: true\n\t};\n}\nfunction withSupabaseDescriptor(extensions) {\n\tconst packs = extensions ?? [];\n\treturn packs.some((pack) => pack.id === supabaseRuntimeDescriptor.id) ? packs : [...packs, supabaseRuntimeDescriptor];\n}\n/**\n* Deserializes the Supabase extension's own emitted contract into a runtime\n* contract: namespaces hydrate into `PostgresSchema` instances (with\n* `qualifyTable`), and each column resolves its codec through the codec\n* registry. Exposed only via `service_role`'s `.supabase`\n* secondary root — never merged into the app contract.\n*/\nfunction buildExtensionContract() {\n\treturn blindCast(contractSerializer.deserializeContract(contract_default));\n}\n/**\n* Creates a Supabase client whose queries run as the role a JWT names. The client infers its\n* contract type from `contract`: a value from `contractFromJson` of `@prisma/orm-postgres/static`\n* for an emitted contract, or a TypeScript-authored contract. A contract is validated once, however\n* many clients are built from it. The pool is created on the first query.\n*\n* @example\n* ```ts\n* import { contractFromJson } from '@prisma/orm-postgres/static';\n* import { supabase } from '@prisma/orm-extension-supabase/runtime';\n* import type { Contract } from './contract.d';\n* import contractJson from './contract.json' with { type: 'json' };\n*\n* export const contract = contractFromJson<Contract>(contractJson);\n* export const db = await supabase({ contract, url, jwtSecret });\n* ```\n*/\nasync function supabase(options) {\n\tconst keyMaterial = resolveKeyMaterial(options);\n\tcheckPgOption(options.pg);\n\tconst contract = validatePostgresContract(options.contract);\n\tconst stack = createSqlExecutionStack({\n\t\ttarget: postgresTarget,\n\t\tadapter: postgresAdapter,\n\t\tdriver: postgresDriver,\n\t\textensions: withSupabaseDescriptor(options.extensions)\n\t});\n\tconst context = createExecutionContext({\n\t\tcontract,\n\t\tstack\n\t});\n\tcheckCollectionClasses(contract, options.collections);\n\tconst { sql: appSql, raw, toSql, enums, nativeEnums } = buildPostgresStaticContext(contract, context, stack);\n\tconst extContract = buildExtensionContract();\n\tconst extContext = createExecutionContext({\n\t\tcontract: extContract,\n\t\tstack\n\t});\n\tconst extStatic = buildPostgresStaticContext(extContract, extContext, stack);\n\tlet runtimes;\n\tlet connectError;\n\tlet closed = false;\n\tfunction getRuntimes() {\n\t\tif (connectError !== void 0) throw connectError.error;\n\t\tif (runtimes !== void 0) return runtimes;\n\t\tif (closed) throw closedClientError();\n\t\tconst driverDescriptor = stack.driver;\n\t\tif (!driverDescriptor) throw new InternalError(\"Driver descriptor missing from execution stack\");\n\t\tconst adapter = stack.adapter.create(stack);\n\t\tconst driver = driverDescriptor.create({ cursor: { disabled: true } });\n\t\tconst sharedOptions = {\n\t\t\tadapter,\n\t\t\tdriver,\n\t\t\t...ifDefined(\"middleware\", options.middleware),\n\t\t\t...ifDefined(\"log\", options.log),\n\t\t\t...ifDefined(\"mode\", options.mode),\n\t\t\tcloseRefusal: \"at-once\",\n\t\t\townsDriver: false\n\t\t};\n\t\tconst runtime = new SupabaseRuntimeImpl({\n\t\t\tcontext,\n\t\t\t...sharedOptions,\n\t\t\t...ifDefined(\"verifyMarker\", options.verifyMarker)\n\t\t});\n\t\tconst extRuntime = new SupabaseRuntimeImpl({\n\t\t\tcontext: extContext,\n\t\t\t...sharedOptions,\n\t\t\tverifyMarker: false\n\t\t});\n\t\tconst poolEntry = toPool(options);\n\t\tconst ownedPool = poolEntry?.owned ? poolEntry.pool : void 0;\n\t\tif (poolEntry) driver.connect({\n\t\t\tkind: \"pgPool\",\n\t\t\tpool: poolEntry.pool\n\t\t}).catch(async (err) => {\n\t\t\tconnectError = { error: err };\n\t\t\tawait ownedPool?.end().catch(() => void 0);\n\t\t});\n\t\truntimes = {\n\t\t\truntime,\n\t\t\textRuntime,\n\t\t\tdriver,\n\t\t\townedPool\n\t\t};\n\t\treturn runtimes;\n\t}\n\tconst runtime = () => getRuntimes().runtime;\n\tconst extRuntime = () => getRuntimes().extRuntime;\n\tasync function verifyJwt(jwt) {\n\t\tconst mismatch = algKeyMismatchReason(jwt, keyMaterial.kind);\n\t\tif (mismatch !== void 0) throw supabaseError(\"SUPABASE.JWT_INVALID\", `Invalid JWT: ${mismatch}`, { meta: { reason: mismatch } });\n\t\ttry {\n\t\t\tif (keyMaterial.kind === \"secret\") return await jwtVerify(jwt, keyMaterial.key);\n\t\t\treturn await jwtVerify(jwt, keyMaterial.keyset);\n\t\t} catch (err) {\n\t\t\tconst reason = err instanceof Error ? err.message : String(err);\n\t\t\tthrow supabaseError(\"SUPABASE.JWT_INVALID\", `Invalid JWT: ${reason}`, {\n\t\t\t\tmeta: { reason },\n\t\t\t\tcause: err\n\t\t\t});\n\t\t}\n\t}\n\tfunction buildRoleBoundDb(binding) {\n\t\tconst role = roleScope(runtime, binding);\n\t\tconst roleOrm = orm({\n\t\t\truntime: role,\n\t\t\tcontext,\n\t\t\t...ifDefined(\"collections\", options.collections)\n\t\t});\n\t\tconst roleBound = {\n\t\t\tsql: appSql,\n\t\t\torm: roleOrm,\n\t\t\traw,\n\t\t\ttoSql,\n\t\t\tenums,\n\t\t\tnativeEnums,\n\t\t\tprepare(declaration, callback) {\n\t\t\t\treturn prepareQuery(runtime(), declaration, callback);\n\t\t\t},\n\t\t\tquery: role.query,\n\t\t\texecute: role.execute,\n\t\t\t[preparedStatementQuery]: role[preparedStatementQuery],\n\t\t\t[preparedStatementExecute]: role[preparedStatementExecute],\n\t\t\ttransaction(fn) {\n\t\t\t\treturn withTransaction(role, (txCtx) => fn(withTransactionMembers(txCtx, {\n\t\t\t\t\t...buildPostgresQueryMembers({\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\tcollections: options.collections,\n\t\t\t\t\t\tsql: appSql,\n\t\t\t\t\t\traw,\n\t\t\t\t\t\ttoSql,\n\t\t\t\t\t\tprepareRuntime: runtime\n\t\t\t\t\t}, txCtx),\n\t\t\t\t\tenums,\n\t\t\t\t\tnativeEnums\n\t\t\t\t})));\n\t\t\t}\n\t\t};\n\t\treturn Object.assign(roleBound, { [activitySource]: role[activitySource] });\n\t}\n\tconst serviceRoleBinding = {\n\t\trole: SupabaseRole.members.ServiceRole,\n\t\tclaims: {}\n\t};\n\tconst serviceRole = roleScope(extRuntime, serviceRoleBinding);\n\tconst supabaseInternal = {\n\t\tsql: extStatic.sql,\n\t\ttoSql: extStatic.toSql,\n\t\torm: orm({\n\t\t\truntime: serviceRole,\n\t\t\tcontext: extContext\n\t\t}),\n\t\tnativeEnums: extStatic.nativeEnums,\n\t\tquery: serviceRole.query,\n\t\texecute: serviceRole.execute\n\t};\n\tlet closePromise;\n\tasync function closeRuntimes() {\n\t\tif (runtimes === void 0) return;\n\t\tconst { runtime, extRuntime, driver, ownedPool } = runtimes;\n\t\tawait Promise.all([runtime.close(), extRuntime.close()]);\n\t\tif (ownedPool !== void 0) await driver.close();\n\t}\n\tfunction closeDb() {\n\t\tclosed = true;\n\t\tclosePromise ??= closeRuntimes();\n\t\treturn closePromise;\n\t}\n\treturn {\n\t\tcontext,\n\t\tstack,\n\t\tasync asUser(jwt) {\n\t\t\tconst { payload } = await verifyJwt(jwt);\n\t\t\tconst rawRole = payload[SUPABASE_JWT_ROLE_CLAIM];\n\t\t\tconst roleStr = typeof rawRole === \"string\" ? rawRole : SupabaseRole.members.Authenticated;\n\t\t\treturn buildRoleBoundDb({\n\t\t\t\trole: isSupabaseRole(roleStr) ? roleStr : SupabaseRole.members.Authenticated,\n\t\t\t\tclaims: payload\n\t\t\t});\n\t\t},\n\t\tasAnon() {\n\t\t\treturn buildRoleBoundDb({\n\t\t\t\trole: SupabaseRole.members.Anon,\n\t\t\t\tclaims: {}\n\t\t\t});\n\t\t},\n\t\tasServiceRole() {\n\t\t\treturn {\n\t\t\t\t...buildRoleBoundDb(serviceRoleBinding),\n\t\t\t\tsupabase: supabaseInternal\n\t\t\t};\n\t\t},\n\t\tclose: closeDb,\n\t\t[Symbol.asyncDispose]: closeDb\n\t};\n}\n//#endregion\n//#region src/exports/runtime.ts\nvar runtime_default = supabaseRuntimeDescriptor;\n//#endregion\nexport { SupabaseRuntimeImpl, runtime_default as default, supabase };\n\n//# sourceMappingURL=runtime.mjs.map"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma/orm-extension-supabase",
3
- "version": "8.0.0-rc.19-dev.5",
3
+ "version": "8.0.0-rc.19-dev.7",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -9,10 +9,10 @@
9
9
  "dist"
10
10
  ],
11
11
  "dependencies": {
12
- "@prisma/orm-family-sql": "8.0.0-rc.19-dev.5",
13
- "@prisma/orm-framework": "8.0.0-rc.19-dev.5",
14
- "@prisma/orm-postgres": "8.0.0-rc.19-dev.5",
15
- "@prisma/orm-toolchain": "8.0.0-rc.19-dev.5",
12
+ "@prisma/orm-family-sql": "8.0.0-rc.19-dev.7",
13
+ "@prisma/orm-framework": "8.0.0-rc.19-dev.7",
14
+ "@prisma/orm-postgres": "8.0.0-rc.19-dev.7",
15
+ "@prisma/orm-toolchain": "8.0.0-rc.19-dev.7",
16
16
  "@standard-schema/spec": "^1.1.0",
17
17
  "@types/node": "26.1.2",
18
18
  "@types/pg": "8.20.4",
@@ -21,15 +21,15 @@
21
21
  "pg": "8.22.0"
22
22
  },
23
23
  "devDependencies": {
24
- "@internal/extension-supabase": "8.0.0-rc.19-dev.5",
25
- "@repo/tsconfig": "8.0.0-rc.19-dev.5",
26
- "@repo/tsdown": "8.0.0-rc.19-dev.5",
27
- "@prisma/orm-target-postgres": "8.0.0-rc.19-dev.5",
24
+ "@internal/extension-supabase": "8.0.0-rc.19-dev.7",
25
+ "@repo/tsconfig": "8.0.0-rc.19-dev.7",
26
+ "@repo/tsdown": "8.0.0-rc.19-dev.7",
27
+ "@prisma/orm-target-postgres": "8.0.0-rc.19-dev.7",
28
28
  "tsdown": "0.22.14",
29
29
  "typescript": "5.9.3"
30
30
  },
31
31
  "peerDependencies": {
32
- "@prisma/orm-target-postgres": "8.0.0-rc.19-dev.5",
32
+ "@prisma/orm-target-postgres": "8.0.0-rc.19-dev.7",
33
33
  "typescript": ">=5.9"
34
34
  },
35
35
  "peerDependenciesMeta": {