drizzle-orm 0.35.3-4cb1bdb → 0.35.3-53e089b
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/neon/rls.cjs +5 -4
- package/neon/rls.cjs.map +1 -1
- package/neon/rls.d.cts +2 -2
- package/neon/rls.d.ts +2 -2
- package/neon/rls.js +2 -1
- package/neon/rls.js.map +1 -1
- package/package.json +30 -2
- package/pg-core/policies.cjs +6 -0
- package/pg-core/policies.cjs.map +1 -1
- package/pg-core/policies.d.cts +2 -0
- package/pg-core/policies.d.ts +2 -0
- package/pg-core/policies.js +6 -0
- package/pg-core/policies.js.map +1 -1
- package/supabase/index.cjs +23 -0
- package/supabase/index.cjs.map +1 -0
- package/supabase/index.d.cts +1 -0
- package/supabase/index.d.ts +1 -0
- package/supabase/index.js +2 -0
- package/supabase/index.js.map +1 -0
- package/supabase/rls.cjs +69 -0
- package/supabase/rls.cjs.map +1 -0
- package/supabase/rls.d.cts +85 -0
- package/supabase/rls.d.ts +85 -0
- package/supabase/rls.js +37 -0
- package/supabase/rls.js.map +1 -0
- package/version.cjs +1 -1
- package/version.d.cts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
package/neon/rls.cjs
CHANGED
|
@@ -26,6 +26,7 @@ __export(rls_exports, {
|
|
|
26
26
|
module.exports = __toCommonJS(rls_exports);
|
|
27
27
|
var import_entity = require("../entity.cjs");
|
|
28
28
|
var import_pg_core = require("../pg-core/index.cjs");
|
|
29
|
+
var import_roles = require("../pg-core/roles.cjs");
|
|
29
30
|
var import_sql = require("../sql/sql.cjs");
|
|
30
31
|
const crudPolicy = (options) => {
|
|
31
32
|
const read = options.read === true ? import_sql.sql`true` : options.read === false || options.read === void 0 ? import_sql.sql`false` : options.read;
|
|
@@ -33,10 +34,10 @@ const crudPolicy = (options) => {
|
|
|
33
34
|
let rolesName = "";
|
|
34
35
|
if (Array.isArray(options.role)) {
|
|
35
36
|
rolesName = options.role.map((it) => {
|
|
36
|
-
return (0, import_entity.is)(it,
|
|
37
|
+
return (0, import_entity.is)(it, import_roles.PgRole) ? it.name : it;
|
|
37
38
|
}).join("-");
|
|
38
39
|
} else {
|
|
39
|
-
rolesName = (0, import_entity.is)(options.role,
|
|
40
|
+
rolesName = (0, import_entity.is)(options.role, import_roles.PgRole) ? options.role.name : options.role;
|
|
40
41
|
}
|
|
41
42
|
return [
|
|
42
43
|
(0, import_pg_core.pgPolicy)(`crud-${rolesName}-policy-insert`, {
|
|
@@ -62,8 +63,8 @@ const crudPolicy = (options) => {
|
|
|
62
63
|
})
|
|
63
64
|
];
|
|
64
65
|
};
|
|
65
|
-
const authenticatedRole = (0,
|
|
66
|
-
const anonymousRole = (0,
|
|
66
|
+
const authenticatedRole = (0, import_roles.pgRole)("authenticated").existing();
|
|
67
|
+
const anonymousRole = (0, import_roles.pgRole)("anonymous").existing();
|
|
67
68
|
const authUid = (userIdColumn) => import_sql.sql`(select auth.user_id() = ${userIdColumn})`;
|
|
68
69
|
// Annotate the CommonJS export names for ESM import in node:
|
|
69
70
|
0 && (module.exports = {
|
package/neon/rls.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/neon/rls.ts"],"sourcesContent":["import { is } from '~/entity.ts';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/neon/rls.ts"],"sourcesContent":["import { is } from '~/entity.ts';\nimport { type AnyPgColumn, pgPolicy, type PgPolicyToOption } from '~/pg-core/index.ts';\nimport { PgRole, pgRole } from '~/pg-core/roles.ts';\nimport { type SQL, sql } from '~/sql/sql.ts';\n\nexport const crudPolicy = (options: {\n\trole: PgPolicyToOption;\n\tread?: SQL | boolean;\n\tmodify?: SQL | boolean;\n}) => {\n\tconst read: SQL = options.read === true\n\t\t? sql`true`\n\t\t: options.read === false || options.read === undefined\n\t\t? sql`false`\n\t\t: options.read;\n\n\tconst modify: SQL = options.modify === true\n\t\t? sql`true`\n\t\t: options.modify === false || options.modify === undefined\n\t\t? sql`false`\n\t\t: options.modify;\n\n\tlet rolesName = '';\n\tif (Array.isArray(options.role)) {\n\t\trolesName = options.role\n\t\t\t.map((it) => {\n\t\t\t\treturn is(it, PgRole) ? it.name : (it as string);\n\t\t\t})\n\t\t\t.join('-');\n\t} else {\n\t\trolesName = is(options.role, PgRole)\n\t\t\t? options.role.name\n\t\t\t: (options.role as string);\n\t}\n\n\treturn [\n\t\tpgPolicy(`crud-${rolesName}-policy-insert`, {\n\t\t\tfor: 'insert',\n\t\t\tto: options.role,\n\t\t\twithCheck: modify,\n\t\t}),\n\t\tpgPolicy(`crud-${rolesName}-policy-update`, {\n\t\t\tfor: 'update',\n\t\t\tto: options.role,\n\t\t\tusing: modify,\n\t\t\twithCheck: modify,\n\t\t}),\n\t\tpgPolicy(`crud-${rolesName}-policy-delete`, {\n\t\t\tfor: 'delete',\n\t\t\tto: options.role,\n\t\t\tusing: modify,\n\t\t}),\n\t\tpgPolicy(`crud-${rolesName}-policy-select`, {\n\t\t\tfor: 'select',\n\t\t\tto: options.role,\n\t\t\tusing: read,\n\t\t}),\n\t];\n};\n\n// These are default roles that Neon will set up.\nexport const authenticatedRole = pgRole('authenticated').existing();\nexport const anonymousRole = pgRole('anonymous').existing();\n\nexport const authUid = (userIdColumn: AnyPgColumn) => sql`(select auth.user_id() = ${userIdColumn})`;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAmB;AACnB,qBAAkE;AAClE,mBAA+B;AAC/B,iBAA8B;AAEvB,MAAM,aAAa,CAAC,YAIrB;AACL,QAAM,OAAY,QAAQ,SAAS,OAChC,uBACA,QAAQ,SAAS,SAAS,QAAQ,SAAS,SAC3C,wBACA,QAAQ;AAEX,QAAM,SAAc,QAAQ,WAAW,OACpC,uBACA,QAAQ,WAAW,SAAS,QAAQ,WAAW,SAC/C,wBACA,QAAQ;AAEX,MAAI,YAAY;AAChB,MAAI,MAAM,QAAQ,QAAQ,IAAI,GAAG;AAChC,gBAAY,QAAQ,KAClB,IAAI,CAAC,OAAO;AACZ,iBAAO,kBAAG,IAAI,mBAAM,IAAI,GAAG,OAAQ;AAAA,IACpC,CAAC,EACA,KAAK,GAAG;AAAA,EACX,OAAO;AACN,oBAAY,kBAAG,QAAQ,MAAM,mBAAM,IAChC,QAAQ,KAAK,OACZ,QAAQ;AAAA,EACb;AAEA,SAAO;AAAA,QACN,yBAAS,QAAQ,SAAS,kBAAkB;AAAA,MAC3C,KAAK;AAAA,MACL,IAAI,QAAQ;AAAA,MACZ,WAAW;AAAA,IACZ,CAAC;AAAA,QACD,yBAAS,QAAQ,SAAS,kBAAkB;AAAA,MAC3C,KAAK;AAAA,MACL,IAAI,QAAQ;AAAA,MACZ,OAAO;AAAA,MACP,WAAW;AAAA,IACZ,CAAC;AAAA,QACD,yBAAS,QAAQ,SAAS,kBAAkB;AAAA,MAC3C,KAAK;AAAA,MACL,IAAI,QAAQ;AAAA,MACZ,OAAO;AAAA,IACR,CAAC;AAAA,QACD,yBAAS,QAAQ,SAAS,kBAAkB;AAAA,MAC3C,KAAK;AAAA,MACL,IAAI,QAAQ;AAAA,MACZ,OAAO;AAAA,IACR,CAAC;AAAA,EACF;AACD;AAGO,MAAM,wBAAoB,qBAAO,eAAe,EAAE,SAAS;AAC3D,MAAM,oBAAgB,qBAAO,WAAW,EAAE,SAAS;AAEnD,MAAM,UAAU,CAAC,iBAA8B,0CAA+B,YAAY;","names":[]}
|
package/neon/rls.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
1
|
+
import { type AnyPgColumn, type PgPolicyToOption } from "../pg-core/index.cjs";
|
|
2
|
+
import { PgRole } from "../pg-core/roles.cjs";
|
|
3
3
|
import { type SQL } from "../sql/sql.cjs";
|
|
4
4
|
export declare const crudPolicy: (options: {
|
|
5
5
|
role: PgPolicyToOption;
|
package/neon/rls.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
1
|
+
import { type AnyPgColumn, type PgPolicyToOption } from "../pg-core/index.js";
|
|
2
|
+
import { PgRole } from "../pg-core/roles.js";
|
|
3
3
|
import { type SQL } from "../sql/sql.js";
|
|
4
4
|
export declare const crudPolicy: (options: {
|
|
5
5
|
role: PgPolicyToOption;
|
package/neon/rls.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { is } from "../entity.js";
|
|
2
|
-
import { pgPolicy
|
|
2
|
+
import { pgPolicy } from "../pg-core/index.js";
|
|
3
|
+
import { PgRole, pgRole } from "../pg-core/roles.js";
|
|
3
4
|
import { sql } from "../sql/sql.js";
|
|
4
5
|
const crudPolicy = (options) => {
|
|
5
6
|
const read = options.read === true ? sql`true` : options.read === false || options.read === void 0 ? sql`false` : options.read;
|
package/neon/rls.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/neon/rls.ts"],"sourcesContent":["import { is } from '~/entity.ts';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/neon/rls.ts"],"sourcesContent":["import { is } from '~/entity.ts';\nimport { type AnyPgColumn, pgPolicy, type PgPolicyToOption } from '~/pg-core/index.ts';\nimport { PgRole, pgRole } from '~/pg-core/roles.ts';\nimport { type SQL, sql } from '~/sql/sql.ts';\n\nexport const crudPolicy = (options: {\n\trole: PgPolicyToOption;\n\tread?: SQL | boolean;\n\tmodify?: SQL | boolean;\n}) => {\n\tconst read: SQL = options.read === true\n\t\t? sql`true`\n\t\t: options.read === false || options.read === undefined\n\t\t? sql`false`\n\t\t: options.read;\n\n\tconst modify: SQL = options.modify === true\n\t\t? sql`true`\n\t\t: options.modify === false || options.modify === undefined\n\t\t? sql`false`\n\t\t: options.modify;\n\n\tlet rolesName = '';\n\tif (Array.isArray(options.role)) {\n\t\trolesName = options.role\n\t\t\t.map((it) => {\n\t\t\t\treturn is(it, PgRole) ? it.name : (it as string);\n\t\t\t})\n\t\t\t.join('-');\n\t} else {\n\t\trolesName = is(options.role, PgRole)\n\t\t\t? options.role.name\n\t\t\t: (options.role as string);\n\t}\n\n\treturn [\n\t\tpgPolicy(`crud-${rolesName}-policy-insert`, {\n\t\t\tfor: 'insert',\n\t\t\tto: options.role,\n\t\t\twithCheck: modify,\n\t\t}),\n\t\tpgPolicy(`crud-${rolesName}-policy-update`, {\n\t\t\tfor: 'update',\n\t\t\tto: options.role,\n\t\t\tusing: modify,\n\t\t\twithCheck: modify,\n\t\t}),\n\t\tpgPolicy(`crud-${rolesName}-policy-delete`, {\n\t\t\tfor: 'delete',\n\t\t\tto: options.role,\n\t\t\tusing: modify,\n\t\t}),\n\t\tpgPolicy(`crud-${rolesName}-policy-select`, {\n\t\t\tfor: 'select',\n\t\t\tto: options.role,\n\t\t\tusing: read,\n\t\t}),\n\t];\n};\n\n// These are default roles that Neon will set up.\nexport const authenticatedRole = pgRole('authenticated').existing();\nexport const anonymousRole = pgRole('anonymous').existing();\n\nexport const authUid = (userIdColumn: AnyPgColumn) => sql`(select auth.user_id() = ${userIdColumn})`;\n"],"mappings":"AAAA,SAAS,UAAU;AACnB,SAA2B,gBAAuC;AAClE,SAAS,QAAQ,cAAc;AAC/B,SAAmB,WAAW;AAEvB,MAAM,aAAa,CAAC,YAIrB;AACL,QAAM,OAAY,QAAQ,SAAS,OAChC,YACA,QAAQ,SAAS,SAAS,QAAQ,SAAS,SAC3C,aACA,QAAQ;AAEX,QAAM,SAAc,QAAQ,WAAW,OACpC,YACA,QAAQ,WAAW,SAAS,QAAQ,WAAW,SAC/C,aACA,QAAQ;AAEX,MAAI,YAAY;AAChB,MAAI,MAAM,QAAQ,QAAQ,IAAI,GAAG;AAChC,gBAAY,QAAQ,KAClB,IAAI,CAAC,OAAO;AACZ,aAAO,GAAG,IAAI,MAAM,IAAI,GAAG,OAAQ;AAAA,IACpC,CAAC,EACA,KAAK,GAAG;AAAA,EACX,OAAO;AACN,gBAAY,GAAG,QAAQ,MAAM,MAAM,IAChC,QAAQ,KAAK,OACZ,QAAQ;AAAA,EACb;AAEA,SAAO;AAAA,IACN,SAAS,QAAQ,SAAS,kBAAkB;AAAA,MAC3C,KAAK;AAAA,MACL,IAAI,QAAQ;AAAA,MACZ,WAAW;AAAA,IACZ,CAAC;AAAA,IACD,SAAS,QAAQ,SAAS,kBAAkB;AAAA,MAC3C,KAAK;AAAA,MACL,IAAI,QAAQ;AAAA,MACZ,OAAO;AAAA,MACP,WAAW;AAAA,IACZ,CAAC;AAAA,IACD,SAAS,QAAQ,SAAS,kBAAkB;AAAA,MAC3C,KAAK;AAAA,MACL,IAAI,QAAQ;AAAA,MACZ,OAAO;AAAA,IACR,CAAC;AAAA,IACD,SAAS,QAAQ,SAAS,kBAAkB;AAAA,MAC3C,KAAK;AAAA,MACL,IAAI,QAAQ;AAAA,MACZ,OAAO;AAAA,IACR,CAAC;AAAA,EACF;AACD;AAGO,MAAM,oBAAoB,OAAO,eAAe,EAAE,SAAS;AAC3D,MAAM,gBAAgB,OAAO,WAAW,EAAE,SAAS;AAEnD,MAAM,UAAU,CAAC,iBAA8B,+BAA+B,YAAY;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "drizzle-orm",
|
|
3
|
-
"version": "0.35.3-
|
|
3
|
+
"version": "0.35.3-53e089b",
|
|
4
4
|
"description": "Drizzle ORM package for SQL databases",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
|
-
"
|
|
7
|
+
"p": "prisma generate --schema src/prisma/schema.prisma",
|
|
8
|
+
"build": "pnpm p && scripts/build.ts",
|
|
8
9
|
"b": "pnpm build",
|
|
9
10
|
"test:types": "cd type-tests && tsc",
|
|
10
11
|
"test": "vitest run",
|
|
@@ -130,6 +131,9 @@
|
|
|
130
131
|
"@libsql/client": {
|
|
131
132
|
"optional": true
|
|
132
133
|
},
|
|
134
|
+
"@libsql/client-wasm": {
|
|
135
|
+
"optional": true
|
|
136
|
+
},
|
|
133
137
|
"@opentelemetry/api": {
|
|
134
138
|
"optional": true
|
|
135
139
|
},
|
|
@@ -2120,6 +2124,30 @@
|
|
|
2120
2124
|
"types": "./sqlite-proxy/session.d.ts",
|
|
2121
2125
|
"default": "./sqlite-proxy/session.js"
|
|
2122
2126
|
},
|
|
2127
|
+
"./supabase": {
|
|
2128
|
+
"import": {
|
|
2129
|
+
"types": "./supabase/index.d.ts",
|
|
2130
|
+
"default": "./supabase/index.js"
|
|
2131
|
+
},
|
|
2132
|
+
"require": {
|
|
2133
|
+
"types": "./supabase/index.d.cts",
|
|
2134
|
+
"default": "./supabase/index.cjs"
|
|
2135
|
+
},
|
|
2136
|
+
"types": "./supabase/index.d.ts",
|
|
2137
|
+
"default": "./supabase/index.js"
|
|
2138
|
+
},
|
|
2139
|
+
"./supabase/rls": {
|
|
2140
|
+
"import": {
|
|
2141
|
+
"types": "./supabase/rls.d.ts",
|
|
2142
|
+
"default": "./supabase/rls.js"
|
|
2143
|
+
},
|
|
2144
|
+
"require": {
|
|
2145
|
+
"types": "./supabase/rls.d.cts",
|
|
2146
|
+
"default": "./supabase/rls.cjs"
|
|
2147
|
+
},
|
|
2148
|
+
"types": "./supabase/rls.d.ts",
|
|
2149
|
+
"default": "./supabase/rls.js"
|
|
2150
|
+
},
|
|
2123
2151
|
"./tidb-serverless/driver": {
|
|
2124
2152
|
"import": {
|
|
2125
2153
|
"types": "./tidb-serverless/driver.d.ts",
|
package/pg-core/policies.cjs
CHANGED
package/pg-core/policies.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/pg-core/policies.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport type { PgRole } from './roles.ts';\n\nexport type PgPolicyToOption =\n\t| 'public'\n\t| 'current_role'\n\t| 'current_user'\n\t| 'session_user'\n\t| (string & {})\n\t| PgPolicyToOption[]\n\t| PgRole;\n\nexport interface PgPolicyConfig {\n\tas?: 'permissive' | 'restrictive';\n\tfor?: 'all' | 'select' | 'insert' | 'update' | 'delete';\n\tto?: PgPolicyToOption;\n\tusing?: SQL;\n\twithCheck?: SQL;\n}\n\nexport class PgPolicy implements PgPolicyConfig {\n\tstatic readonly [entityKind]: string = 'PgPolicy';\n\n\treadonly as: PgPolicyConfig['as'];\n\treadonly for: PgPolicyConfig['for'];\n\treadonly to: PgPolicyConfig['to'];\n\treadonly using: PgPolicyConfig['using'];\n\treadonly withCheck: PgPolicyConfig['withCheck'];\n\n\tconstructor(\n\t\treadonly name: string,\n\t\tconfig?: PgPolicyConfig,\n\t) {\n\t\tif (config) {\n\t\t\tthis.as = config.as;\n\t\t\tthis.for = config.for;\n\t\t\tthis.to = config.to;\n\t\t\tthis.using = config.using;\n\t\t\tthis.withCheck = config.withCheck;\n\t\t}\n\t}\n}\n\nexport function pgPolicy(name: string, config?: PgPolicyConfig) {\n\treturn new PgPolicy(name, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;
|
|
1
|
+
{"version":3,"sources":["../../src/pg-core/policies.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport type { PgRole } from './roles.ts';\nimport type { PgTable } from './table.ts';\n\nexport type PgPolicyToOption =\n\t| 'public'\n\t| 'current_role'\n\t| 'current_user'\n\t| 'session_user'\n\t| (string & {})\n\t| PgPolicyToOption[]\n\t| PgRole;\n\nexport interface PgPolicyConfig {\n\tas?: 'permissive' | 'restrictive';\n\tfor?: 'all' | 'select' | 'insert' | 'update' | 'delete';\n\tto?: PgPolicyToOption;\n\tusing?: SQL;\n\twithCheck?: SQL;\n}\n\nexport class PgPolicy implements PgPolicyConfig {\n\tstatic readonly [entityKind]: string = 'PgPolicy';\n\n\treadonly as: PgPolicyConfig['as'];\n\treadonly for: PgPolicyConfig['for'];\n\treadonly to: PgPolicyConfig['to'];\n\treadonly using: PgPolicyConfig['using'];\n\treadonly withCheck: PgPolicyConfig['withCheck'];\n\n\t/** @internal */\n\t_linkedTable?: PgTable;\n\n\tconstructor(\n\t\treadonly name: string,\n\t\tconfig?: PgPolicyConfig,\n\t) {\n\t\tif (config) {\n\t\t\tthis.as = config.as;\n\t\t\tthis.for = config.for;\n\t\t\tthis.to = config.to;\n\t\t\tthis.using = config.using;\n\t\t\tthis.withCheck = config.withCheck;\n\t\t}\n\t}\n\n\tlink(table: PgTable): this {\n\t\tthis._linkedTable = table;\n\t\treturn this;\n\t}\n}\n\nexport function pgPolicy(name: string, config?: PgPolicyConfig) {\n\treturn new PgPolicy(name, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAsBpB,MAAM,SAAmC;AAAA,EAY/C,YACU,MACT,QACC;AAFQ;AAGT,QAAI,QAAQ;AACX,WAAK,KAAK,OAAO;AACjB,WAAK,MAAM,OAAO;AAClB,WAAK,KAAK,OAAO;AACjB,WAAK,QAAQ,OAAO;AACpB,WAAK,YAAY,OAAO;AAAA,IACzB;AAAA,EACD;AAAA,EAtBA,QAAiB,wBAAU,IAAY;AAAA,EAE9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGT;AAAA,EAeA,KAAK,OAAsB;AAC1B,SAAK,eAAe;AACpB,WAAO;AAAA,EACR;AACD;AAEO,SAAS,SAAS,MAAc,QAAyB;AAC/D,SAAO,IAAI,SAAS,MAAM,MAAM;AACjC;","names":[]}
|
package/pg-core/policies.d.cts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { entityKind } from "../entity.cjs";
|
|
2
2
|
import type { SQL } from "../sql/sql.cjs";
|
|
3
3
|
import type { PgRole } from "./roles.cjs";
|
|
4
|
+
import type { PgTable } from "./table.cjs";
|
|
4
5
|
export type PgPolicyToOption = 'public' | 'current_role' | 'current_user' | 'session_user' | (string & {}) | PgPolicyToOption[] | PgRole;
|
|
5
6
|
export interface PgPolicyConfig {
|
|
6
7
|
as?: 'permissive' | 'restrictive';
|
|
@@ -18,5 +19,6 @@ export declare class PgPolicy implements PgPolicyConfig {
|
|
|
18
19
|
readonly using: PgPolicyConfig['using'];
|
|
19
20
|
readonly withCheck: PgPolicyConfig['withCheck'];
|
|
20
21
|
constructor(name: string, config?: PgPolicyConfig);
|
|
22
|
+
link(table: PgTable): this;
|
|
21
23
|
}
|
|
22
24
|
export declare function pgPolicy(name: string, config?: PgPolicyConfig): PgPolicy;
|
package/pg-core/policies.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { entityKind } from "../entity.js";
|
|
2
2
|
import type { SQL } from "../sql/sql.js";
|
|
3
3
|
import type { PgRole } from "./roles.js";
|
|
4
|
+
import type { PgTable } from "./table.js";
|
|
4
5
|
export type PgPolicyToOption = 'public' | 'current_role' | 'current_user' | 'session_user' | (string & {}) | PgPolicyToOption[] | PgRole;
|
|
5
6
|
export interface PgPolicyConfig {
|
|
6
7
|
as?: 'permissive' | 'restrictive';
|
|
@@ -18,5 +19,6 @@ export declare class PgPolicy implements PgPolicyConfig {
|
|
|
18
19
|
readonly using: PgPolicyConfig['using'];
|
|
19
20
|
readonly withCheck: PgPolicyConfig['withCheck'];
|
|
20
21
|
constructor(name: string, config?: PgPolicyConfig);
|
|
22
|
+
link(table: PgTable): this;
|
|
21
23
|
}
|
|
22
24
|
export declare function pgPolicy(name: string, config?: PgPolicyConfig): PgPolicy;
|
package/pg-core/policies.js
CHANGED
package/pg-core/policies.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/pg-core/policies.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport type { PgRole } from './roles.ts';\n\nexport type PgPolicyToOption =\n\t| 'public'\n\t| 'current_role'\n\t| 'current_user'\n\t| 'session_user'\n\t| (string & {})\n\t| PgPolicyToOption[]\n\t| PgRole;\n\nexport interface PgPolicyConfig {\n\tas?: 'permissive' | 'restrictive';\n\tfor?: 'all' | 'select' | 'insert' | 'update' | 'delete';\n\tto?: PgPolicyToOption;\n\tusing?: SQL;\n\twithCheck?: SQL;\n}\n\nexport class PgPolicy implements PgPolicyConfig {\n\tstatic readonly [entityKind]: string = 'PgPolicy';\n\n\treadonly as: PgPolicyConfig['as'];\n\treadonly for: PgPolicyConfig['for'];\n\treadonly to: PgPolicyConfig['to'];\n\treadonly using: PgPolicyConfig['using'];\n\treadonly withCheck: PgPolicyConfig['withCheck'];\n\n\tconstructor(\n\t\treadonly name: string,\n\t\tconfig?: PgPolicyConfig,\n\t) {\n\t\tif (config) {\n\t\t\tthis.as = config.as;\n\t\t\tthis.for = config.for;\n\t\t\tthis.to = config.to;\n\t\t\tthis.using = config.using;\n\t\t\tthis.withCheck = config.withCheck;\n\t\t}\n\t}\n}\n\nexport function pgPolicy(name: string, config?: PgPolicyConfig) {\n\treturn new PgPolicy(name, config);\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;
|
|
1
|
+
{"version":3,"sources":["../../src/pg-core/policies.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport type { PgRole } from './roles.ts';\nimport type { PgTable } from './table.ts';\n\nexport type PgPolicyToOption =\n\t| 'public'\n\t| 'current_role'\n\t| 'current_user'\n\t| 'session_user'\n\t| (string & {})\n\t| PgPolicyToOption[]\n\t| PgRole;\n\nexport interface PgPolicyConfig {\n\tas?: 'permissive' | 'restrictive';\n\tfor?: 'all' | 'select' | 'insert' | 'update' | 'delete';\n\tto?: PgPolicyToOption;\n\tusing?: SQL;\n\twithCheck?: SQL;\n}\n\nexport class PgPolicy implements PgPolicyConfig {\n\tstatic readonly [entityKind]: string = 'PgPolicy';\n\n\treadonly as: PgPolicyConfig['as'];\n\treadonly for: PgPolicyConfig['for'];\n\treadonly to: PgPolicyConfig['to'];\n\treadonly using: PgPolicyConfig['using'];\n\treadonly withCheck: PgPolicyConfig['withCheck'];\n\n\t/** @internal */\n\t_linkedTable?: PgTable;\n\n\tconstructor(\n\t\treadonly name: string,\n\t\tconfig?: PgPolicyConfig,\n\t) {\n\t\tif (config) {\n\t\t\tthis.as = config.as;\n\t\t\tthis.for = config.for;\n\t\t\tthis.to = config.to;\n\t\t\tthis.using = config.using;\n\t\t\tthis.withCheck = config.withCheck;\n\t\t}\n\t}\n\n\tlink(table: PgTable): this {\n\t\tthis._linkedTable = table;\n\t\treturn this;\n\t}\n}\n\nexport function pgPolicy(name: string, config?: PgPolicyConfig) {\n\treturn new PgPolicy(name, config);\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAsBpB,MAAM,SAAmC;AAAA,EAY/C,YACU,MACT,QACC;AAFQ;AAGT,QAAI,QAAQ;AACX,WAAK,KAAK,OAAO;AACjB,WAAK,MAAM,OAAO;AAClB,WAAK,KAAK,OAAO;AACjB,WAAK,QAAQ,OAAO;AACpB,WAAK,YAAY,OAAO;AAAA,IACzB;AAAA,EACD;AAAA,EAtBA,QAAiB,UAAU,IAAY;AAAA,EAE9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGT;AAAA,EAeA,KAAK,OAAsB;AAC1B,SAAK,eAAe;AACpB,WAAO;AAAA,EACR;AACD;AAEO,SAAS,SAAS,MAAc,QAAyB;AAC/D,SAAO,IAAI,SAAS,MAAM,MAAM;AACjC;","names":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
+
var supabase_exports = {};
|
|
17
|
+
module.exports = __toCommonJS(supabase_exports);
|
|
18
|
+
__reExport(supabase_exports, require("./rls.cjs"), module.exports);
|
|
19
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
20
|
+
0 && (module.exports = {
|
|
21
|
+
...require("./rls.cjs")
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/supabase/index.ts"],"sourcesContent":["export * from './rls.ts';\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,6BAAc,qBAAd;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./rls.cjs";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./rls.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/supabase/index.ts"],"sourcesContent":["export * from './rls.ts';\n"],"mappings":"AAAA,cAAc;","names":[]}
|
package/supabase/rls.cjs
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var rls_exports = {};
|
|
20
|
+
__export(rls_exports, {
|
|
21
|
+
anonRole: () => anonRole,
|
|
22
|
+
authUid: () => authUid,
|
|
23
|
+
authUsers: () => authUsers,
|
|
24
|
+
authenticatedRole: () => authenticatedRole,
|
|
25
|
+
postgresRole: () => postgresRole,
|
|
26
|
+
realtimeMessages: () => realtimeMessages,
|
|
27
|
+
realtimeTopic: () => realtimeTopic,
|
|
28
|
+
serviceRole: () => serviceRole,
|
|
29
|
+
supabaseAuthAdminRole: () => supabaseAuthAdminRole
|
|
30
|
+
});
|
|
31
|
+
module.exports = __toCommonJS(rls_exports);
|
|
32
|
+
var import_pg_core = require("../pg-core/index.cjs");
|
|
33
|
+
var import_roles = require("../pg-core/roles.cjs");
|
|
34
|
+
var import_sql = require("../sql/sql.cjs");
|
|
35
|
+
const anonRole = (0, import_roles.pgRole)("anon").existing();
|
|
36
|
+
const authenticatedRole = (0, import_roles.pgRole)("authenticated").existing();
|
|
37
|
+
const serviceRole = (0, import_roles.pgRole)("service_role").existing();
|
|
38
|
+
const postgresRole = (0, import_roles.pgRole)("postgres_role").existing();
|
|
39
|
+
const supabaseAuthAdminRole = (0, import_roles.pgRole)("supabase_auth_admin").existing();
|
|
40
|
+
const auth = (0, import_pg_core.pgSchema)("auth");
|
|
41
|
+
const authUsers = auth.table("users", {
|
|
42
|
+
id: (0, import_pg_core.uuid)().primaryKey().notNull()
|
|
43
|
+
});
|
|
44
|
+
const realtime = (0, import_pg_core.pgSchema)("realtime");
|
|
45
|
+
const realtimeMessages = realtime.table(
|
|
46
|
+
"messages",
|
|
47
|
+
{
|
|
48
|
+
id: (0, import_pg_core.bigserial)({ mode: "bigint" }).primaryKey(),
|
|
49
|
+
topic: (0, import_pg_core.text)().notNull(),
|
|
50
|
+
extension: (0, import_pg_core.text)({
|
|
51
|
+
enum: ["presence", "broadcast", "postgres_changes"]
|
|
52
|
+
}).notNull()
|
|
53
|
+
}
|
|
54
|
+
);
|
|
55
|
+
const authUid = import_sql.sql`(select ${authUsers.id})`;
|
|
56
|
+
const realtimeTopic = import_sql.sql`${realtimeMessages.topic}`;
|
|
57
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
58
|
+
0 && (module.exports = {
|
|
59
|
+
anonRole,
|
|
60
|
+
authUid,
|
|
61
|
+
authUsers,
|
|
62
|
+
authenticatedRole,
|
|
63
|
+
postgresRole,
|
|
64
|
+
realtimeMessages,
|
|
65
|
+
realtimeTopic,
|
|
66
|
+
serviceRole,
|
|
67
|
+
supabaseAuthAdminRole
|
|
68
|
+
});
|
|
69
|
+
//# sourceMappingURL=rls.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/supabase/rls.ts"],"sourcesContent":["import { bigserial, pgSchema, text, uuid } from '~/pg-core/index.ts';\nimport { pgRole } from '~/pg-core/roles.ts';\nimport { sql } from '~/sql/sql.ts';\n\nexport const anonRole = pgRole('anon').existing();\nexport const authenticatedRole = pgRole('authenticated').existing();\nexport const serviceRole = pgRole('service_role').existing();\nexport const postgresRole = pgRole('postgres_role').existing();\nexport const supabaseAuthAdminRole = pgRole('supabase_auth_admin').existing();\n\n/* ------------------------------ auth schema; ------------------------------ */\nconst auth = pgSchema('auth');\n\nexport const authUsers = auth.table('users', {\n\tid: uuid().primaryKey().notNull(),\n});\n\n/* ------------------------------ realtime schema; ------------------------------ */\nconst realtime = pgSchema('realtime');\n\nexport const realtimeMessages = realtime.table(\n\t'messages',\n\t{\n\t\tid: bigserial({ mode: 'bigint' }).primaryKey(),\n\t\ttopic: text().notNull(),\n\t\textension: text({\n\t\t\tenum: ['presence', 'broadcast', 'postgres_changes'],\n\t\t}).notNull(),\n\t},\n);\n\nexport const authUid = sql`(select ${authUsers.id})`;\nexport const realtimeTopic = sql`${realtimeMessages.topic}`;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAgD;AAChD,mBAAuB;AACvB,iBAAoB;AAEb,MAAM,eAAW,qBAAO,MAAM,EAAE,SAAS;AACzC,MAAM,wBAAoB,qBAAO,eAAe,EAAE,SAAS;AAC3D,MAAM,kBAAc,qBAAO,cAAc,EAAE,SAAS;AACpD,MAAM,mBAAe,qBAAO,eAAe,EAAE,SAAS;AACtD,MAAM,4BAAwB,qBAAO,qBAAqB,EAAE,SAAS;AAG5E,MAAM,WAAO,yBAAS,MAAM;AAErB,MAAM,YAAY,KAAK,MAAM,SAAS;AAAA,EAC5C,QAAI,qBAAK,EAAE,WAAW,EAAE,QAAQ;AACjC,CAAC;AAGD,MAAM,eAAW,yBAAS,UAAU;AAE7B,MAAM,mBAAmB,SAAS;AAAA,EACxC;AAAA,EACA;AAAA,IACC,QAAI,0BAAU,EAAE,MAAM,SAAS,CAAC,EAAE,WAAW;AAAA,IAC7C,WAAO,qBAAK,EAAE,QAAQ;AAAA,IACtB,eAAW,qBAAK;AAAA,MACf,MAAM,CAAC,YAAY,aAAa,kBAAkB;AAAA,IACnD,CAAC,EAAE,QAAQ;AAAA,EACZ;AACD;AAEO,MAAM,UAAU,yBAAc,UAAU,EAAE;AAC1C,MAAM,gBAAgB,iBAAM,iBAAiB,KAAK;","names":[]}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
export declare const anonRole: import("../pg-core/roles.ts").PgRole;
|
|
2
|
+
export declare const authenticatedRole: import("../pg-core/roles.ts").PgRole;
|
|
3
|
+
export declare const serviceRole: import("../pg-core/roles.ts").PgRole;
|
|
4
|
+
export declare const postgresRole: import("../pg-core/roles.ts").PgRole;
|
|
5
|
+
export declare const supabaseAuthAdminRole: import("../pg-core/roles.ts").PgRole;
|
|
6
|
+
export declare const authUsers: import("../pg-core/index.ts").PgTableWithColumns<{
|
|
7
|
+
name: "users";
|
|
8
|
+
schema: "auth";
|
|
9
|
+
columns: {
|
|
10
|
+
id: import("../pg-core/index.ts").PgColumn<{
|
|
11
|
+
name: "id";
|
|
12
|
+
tableName: "users";
|
|
13
|
+
dataType: "string";
|
|
14
|
+
columnType: "PgUUID";
|
|
15
|
+
data: string;
|
|
16
|
+
driverParam: string;
|
|
17
|
+
notNull: true;
|
|
18
|
+
hasDefault: false;
|
|
19
|
+
isPrimaryKey: true;
|
|
20
|
+
isAutoincrement: false;
|
|
21
|
+
hasRuntimeDefault: false;
|
|
22
|
+
enumValues: undefined;
|
|
23
|
+
baseColumn: never;
|
|
24
|
+
generated: undefined;
|
|
25
|
+
}, {}, {}>;
|
|
26
|
+
};
|
|
27
|
+
dialect: "pg";
|
|
28
|
+
}>;
|
|
29
|
+
export declare const realtimeMessages: import("../pg-core/index.ts").PgTableWithColumns<{
|
|
30
|
+
name: "messages";
|
|
31
|
+
schema: "realtime";
|
|
32
|
+
columns: {
|
|
33
|
+
id: import("../pg-core/index.ts").PgColumn<{
|
|
34
|
+
name: "id";
|
|
35
|
+
tableName: "messages";
|
|
36
|
+
dataType: "bigint";
|
|
37
|
+
columnType: "PgBigSerial64";
|
|
38
|
+
data: bigint;
|
|
39
|
+
driverParam: string;
|
|
40
|
+
notNull: true;
|
|
41
|
+
hasDefault: true;
|
|
42
|
+
isPrimaryKey: true;
|
|
43
|
+
isAutoincrement: false;
|
|
44
|
+
hasRuntimeDefault: false;
|
|
45
|
+
enumValues: undefined;
|
|
46
|
+
baseColumn: never;
|
|
47
|
+
generated: undefined;
|
|
48
|
+
}, {}, {}>;
|
|
49
|
+
topic: import("../pg-core/index.ts").PgColumn<{
|
|
50
|
+
name: "topic";
|
|
51
|
+
tableName: "messages";
|
|
52
|
+
dataType: "string";
|
|
53
|
+
columnType: "PgText";
|
|
54
|
+
data: string;
|
|
55
|
+
driverParam: string;
|
|
56
|
+
notNull: true;
|
|
57
|
+
hasDefault: false;
|
|
58
|
+
isPrimaryKey: false;
|
|
59
|
+
isAutoincrement: false;
|
|
60
|
+
hasRuntimeDefault: false;
|
|
61
|
+
enumValues: [string, ...string[]];
|
|
62
|
+
baseColumn: never;
|
|
63
|
+
generated: undefined;
|
|
64
|
+
}, {}, {}>;
|
|
65
|
+
extension: import("../pg-core/index.ts").PgColumn<{
|
|
66
|
+
name: "extension";
|
|
67
|
+
tableName: "messages";
|
|
68
|
+
dataType: "string";
|
|
69
|
+
columnType: "PgText";
|
|
70
|
+
data: "presence" | "broadcast" | "postgres_changes";
|
|
71
|
+
driverParam: string;
|
|
72
|
+
notNull: true;
|
|
73
|
+
hasDefault: false;
|
|
74
|
+
isPrimaryKey: false;
|
|
75
|
+
isAutoincrement: false;
|
|
76
|
+
hasRuntimeDefault: false;
|
|
77
|
+
enumValues: ["presence", "broadcast", "postgres_changes"];
|
|
78
|
+
baseColumn: never;
|
|
79
|
+
generated: undefined;
|
|
80
|
+
}, {}, {}>;
|
|
81
|
+
};
|
|
82
|
+
dialect: "pg";
|
|
83
|
+
}>;
|
|
84
|
+
export declare const authUid: import("../sql/sql.ts").SQL<unknown>;
|
|
85
|
+
export declare const realtimeTopic: import("../sql/sql.ts").SQL<unknown>;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
export declare const anonRole: import("../pg-core/roles.js").PgRole;
|
|
2
|
+
export declare const authenticatedRole: import("../pg-core/roles.js").PgRole;
|
|
3
|
+
export declare const serviceRole: import("../pg-core/roles.js").PgRole;
|
|
4
|
+
export declare const postgresRole: import("../pg-core/roles.js").PgRole;
|
|
5
|
+
export declare const supabaseAuthAdminRole: import("../pg-core/roles.js").PgRole;
|
|
6
|
+
export declare const authUsers: import("../pg-core/index.js").PgTableWithColumns<{
|
|
7
|
+
name: "users";
|
|
8
|
+
schema: "auth";
|
|
9
|
+
columns: {
|
|
10
|
+
id: import("../pg-core/index.js").PgColumn<{
|
|
11
|
+
name: "id";
|
|
12
|
+
tableName: "users";
|
|
13
|
+
dataType: "string";
|
|
14
|
+
columnType: "PgUUID";
|
|
15
|
+
data: string;
|
|
16
|
+
driverParam: string;
|
|
17
|
+
notNull: true;
|
|
18
|
+
hasDefault: false;
|
|
19
|
+
isPrimaryKey: true;
|
|
20
|
+
isAutoincrement: false;
|
|
21
|
+
hasRuntimeDefault: false;
|
|
22
|
+
enumValues: undefined;
|
|
23
|
+
baseColumn: never;
|
|
24
|
+
generated: undefined;
|
|
25
|
+
}, {}, {}>;
|
|
26
|
+
};
|
|
27
|
+
dialect: "pg";
|
|
28
|
+
}>;
|
|
29
|
+
export declare const realtimeMessages: import("../pg-core/index.js").PgTableWithColumns<{
|
|
30
|
+
name: "messages";
|
|
31
|
+
schema: "realtime";
|
|
32
|
+
columns: {
|
|
33
|
+
id: import("../pg-core/index.js").PgColumn<{
|
|
34
|
+
name: "id";
|
|
35
|
+
tableName: "messages";
|
|
36
|
+
dataType: "bigint";
|
|
37
|
+
columnType: "PgBigSerial64";
|
|
38
|
+
data: bigint;
|
|
39
|
+
driverParam: string;
|
|
40
|
+
notNull: true;
|
|
41
|
+
hasDefault: true;
|
|
42
|
+
isPrimaryKey: true;
|
|
43
|
+
isAutoincrement: false;
|
|
44
|
+
hasRuntimeDefault: false;
|
|
45
|
+
enumValues: undefined;
|
|
46
|
+
baseColumn: never;
|
|
47
|
+
generated: undefined;
|
|
48
|
+
}, {}, {}>;
|
|
49
|
+
topic: import("../pg-core/index.js").PgColumn<{
|
|
50
|
+
name: "topic";
|
|
51
|
+
tableName: "messages";
|
|
52
|
+
dataType: "string";
|
|
53
|
+
columnType: "PgText";
|
|
54
|
+
data: string;
|
|
55
|
+
driverParam: string;
|
|
56
|
+
notNull: true;
|
|
57
|
+
hasDefault: false;
|
|
58
|
+
isPrimaryKey: false;
|
|
59
|
+
isAutoincrement: false;
|
|
60
|
+
hasRuntimeDefault: false;
|
|
61
|
+
enumValues: [string, ...string[]];
|
|
62
|
+
baseColumn: never;
|
|
63
|
+
generated: undefined;
|
|
64
|
+
}, {}, {}>;
|
|
65
|
+
extension: import("../pg-core/index.js").PgColumn<{
|
|
66
|
+
name: "extension";
|
|
67
|
+
tableName: "messages";
|
|
68
|
+
dataType: "string";
|
|
69
|
+
columnType: "PgText";
|
|
70
|
+
data: "presence" | "broadcast" | "postgres_changes";
|
|
71
|
+
driverParam: string;
|
|
72
|
+
notNull: true;
|
|
73
|
+
hasDefault: false;
|
|
74
|
+
isPrimaryKey: false;
|
|
75
|
+
isAutoincrement: false;
|
|
76
|
+
hasRuntimeDefault: false;
|
|
77
|
+
enumValues: ["presence", "broadcast", "postgres_changes"];
|
|
78
|
+
baseColumn: never;
|
|
79
|
+
generated: undefined;
|
|
80
|
+
}, {}, {}>;
|
|
81
|
+
};
|
|
82
|
+
dialect: "pg";
|
|
83
|
+
}>;
|
|
84
|
+
export declare const authUid: import("../sql/sql.js").SQL<unknown>;
|
|
85
|
+
export declare const realtimeTopic: import("../sql/sql.js").SQL<unknown>;
|
package/supabase/rls.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { bigserial, pgSchema, text, uuid } from "../pg-core/index.js";
|
|
2
|
+
import { pgRole } from "../pg-core/roles.js";
|
|
3
|
+
import { sql } from "../sql/sql.js";
|
|
4
|
+
const anonRole = pgRole("anon").existing();
|
|
5
|
+
const authenticatedRole = pgRole("authenticated").existing();
|
|
6
|
+
const serviceRole = pgRole("service_role").existing();
|
|
7
|
+
const postgresRole = pgRole("postgres_role").existing();
|
|
8
|
+
const supabaseAuthAdminRole = pgRole("supabase_auth_admin").existing();
|
|
9
|
+
const auth = pgSchema("auth");
|
|
10
|
+
const authUsers = auth.table("users", {
|
|
11
|
+
id: uuid().primaryKey().notNull()
|
|
12
|
+
});
|
|
13
|
+
const realtime = pgSchema("realtime");
|
|
14
|
+
const realtimeMessages = realtime.table(
|
|
15
|
+
"messages",
|
|
16
|
+
{
|
|
17
|
+
id: bigserial({ mode: "bigint" }).primaryKey(),
|
|
18
|
+
topic: text().notNull(),
|
|
19
|
+
extension: text({
|
|
20
|
+
enum: ["presence", "broadcast", "postgres_changes"]
|
|
21
|
+
}).notNull()
|
|
22
|
+
}
|
|
23
|
+
);
|
|
24
|
+
const authUid = sql`(select ${authUsers.id})`;
|
|
25
|
+
const realtimeTopic = sql`${realtimeMessages.topic}`;
|
|
26
|
+
export {
|
|
27
|
+
anonRole,
|
|
28
|
+
authUid,
|
|
29
|
+
authUsers,
|
|
30
|
+
authenticatedRole,
|
|
31
|
+
postgresRole,
|
|
32
|
+
realtimeMessages,
|
|
33
|
+
realtimeTopic,
|
|
34
|
+
serviceRole,
|
|
35
|
+
supabaseAuthAdminRole
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=rls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/supabase/rls.ts"],"sourcesContent":["import { bigserial, pgSchema, text, uuid } from '~/pg-core/index.ts';\nimport { pgRole } from '~/pg-core/roles.ts';\nimport { sql } from '~/sql/sql.ts';\n\nexport const anonRole = pgRole('anon').existing();\nexport const authenticatedRole = pgRole('authenticated').existing();\nexport const serviceRole = pgRole('service_role').existing();\nexport const postgresRole = pgRole('postgres_role').existing();\nexport const supabaseAuthAdminRole = pgRole('supabase_auth_admin').existing();\n\n/* ------------------------------ auth schema; ------------------------------ */\nconst auth = pgSchema('auth');\n\nexport const authUsers = auth.table('users', {\n\tid: uuid().primaryKey().notNull(),\n});\n\n/* ------------------------------ realtime schema; ------------------------------ */\nconst realtime = pgSchema('realtime');\n\nexport const realtimeMessages = realtime.table(\n\t'messages',\n\t{\n\t\tid: bigserial({ mode: 'bigint' }).primaryKey(),\n\t\ttopic: text().notNull(),\n\t\textension: text({\n\t\t\tenum: ['presence', 'broadcast', 'postgres_changes'],\n\t\t}).notNull(),\n\t},\n);\n\nexport const authUid = sql`(select ${authUsers.id})`;\nexport const realtimeTopic = sql`${realtimeMessages.topic}`;\n"],"mappings":"AAAA,SAAS,WAAW,UAAU,MAAM,YAAY;AAChD,SAAS,cAAc;AACvB,SAAS,WAAW;AAEb,MAAM,WAAW,OAAO,MAAM,EAAE,SAAS;AACzC,MAAM,oBAAoB,OAAO,eAAe,EAAE,SAAS;AAC3D,MAAM,cAAc,OAAO,cAAc,EAAE,SAAS;AACpD,MAAM,eAAe,OAAO,eAAe,EAAE,SAAS;AACtD,MAAM,wBAAwB,OAAO,qBAAqB,EAAE,SAAS;AAG5E,MAAM,OAAO,SAAS,MAAM;AAErB,MAAM,YAAY,KAAK,MAAM,SAAS;AAAA,EAC5C,IAAI,KAAK,EAAE,WAAW,EAAE,QAAQ;AACjC,CAAC;AAGD,MAAM,WAAW,SAAS,UAAU;AAE7B,MAAM,mBAAmB,SAAS;AAAA,EACxC;AAAA,EACA;AAAA,IACC,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC,EAAE,WAAW;AAAA,IAC7C,OAAO,KAAK,EAAE,QAAQ;AAAA,IACtB,WAAW,KAAK;AAAA,MACf,MAAM,CAAC,YAAY,aAAa,kBAAkB;AAAA,IACnD,CAAC,EAAE,QAAQ;AAAA,EACZ;AACD;AAEO,MAAM,UAAU,cAAc,UAAU,EAAE;AAC1C,MAAM,gBAAgB,MAAM,iBAAiB,KAAK;","names":[]}
|
package/version.cjs
CHANGED
package/version.d.cts
CHANGED
package/version.d.ts
CHANGED
package/version.js
CHANGED