@nest-boot/row-level-security 7.2.1 → 7.2.2

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.
@@ -7,7 +7,7 @@ export type { PolicyOptions } from "../interfaces/policy-options.interface";
7
7
  *
8
8
  * When `property` and `context` are provided, the decorator derives default
9
9
  * `USING` and `WITH CHECK` expressions that compare the mapped database column
10
- * against `app.get_context(context, null::<column type>)`.
10
+ * against a PostgreSQL-deparsed `app.get_context(context::text, NULL::<column type>)`.
11
11
  */
12
12
  export declare function Policy(options: PolicyOptions): ClassDecorator;
13
13
  /** Returns static policy metadata entries already attached to a class. */
@@ -6,7 +6,10 @@ exports.getPolicyDefinitions = getPolicyDefinitions;
6
6
  exports.addPolicyMetadata = addPolicyMetadata;
7
7
  const policy_command_enum_1 = require("../enums/policy-command.enum");
8
8
  const policy_mode_enum_1 = require("../enums/policy-mode.enum");
9
+ const assert_identifier_1 = require("../utils/assert-identifier");
9
10
  const escape_sql_literal_1 = require("../utils/escape-sql-literal");
11
+ const is_postgres_keyword_requiring_quote_1 = require("../utils/is-postgres-keyword-requiring-quote");
12
+ const normalize_postgres_type_alias_1 = require("../utils/normalize-postgres-type-alias");
10
13
  const quote_identifier_1 = require("../utils/quote-identifier");
11
14
  const policyMetadata = new WeakMap();
12
15
  /**
@@ -14,7 +17,7 @@ const policyMetadata = new WeakMap();
14
17
  *
15
18
  * When `property` and `context` are provided, the decorator derives default
16
19
  * `USING` and `WITH CHECK` expressions that compare the mapped database column
17
- * against `app.get_context(context, null::<column type>)`.
20
+ * against a PostgreSQL-deparsed `app.get_context(context::text, NULL::<column type>)`.
18
21
  */
19
22
  function Policy(options) {
20
23
  const name = normalizeOption(options.name, "Policy name is required");
@@ -153,7 +156,15 @@ function createPolicyContextExpression(entityMetadata, propertyName, contextName
153
156
  const property = getPropertyMetadata(entityMetadata, propertyName);
154
157
  const columnName = getPropertyColumnName(entityMetadata, propertyName, property);
155
158
  const contextType = getPropertyContextType(entityMetadata, propertyName, property);
156
- return `((select app.get_context('${(0, escape_sql_literal_1.escapeSqlLiteral)(contextName)}', null::${contextType})) = ${(0, quote_identifier_1.quoteIdentifier)(columnName)})`;
159
+ return `(( SELECT app.get_context('${(0, escape_sql_literal_1.escapeSqlLiteral)(contextName)}'::text, NULL::${contextType}) AS get_context) = ${formatDeparsedIdentifier(columnName)})`;
160
+ }
161
+ function formatDeparsedIdentifier(identifier) {
162
+ (0, assert_identifier_1.assertIdentifier)(identifier);
163
+ if (/^[a-z_][a-z0-9_]*$/.test(identifier) &&
164
+ !(0, is_postgres_keyword_requiring_quote_1.isPostgresKeywordRequiringQuote)(identifier)) {
165
+ return identifier;
166
+ }
167
+ return (0, quote_identifier_1.quoteIdentifier)(identifier);
157
168
  }
158
169
  function getPropertyMetadata(entityMetadata, propertyName) {
159
170
  const property = entityMetadata.properties?.[propertyName];
@@ -216,7 +227,7 @@ function normalizePostgresType(entityMetadata, propertyName, postgresType) {
216
227
  if (!/^[A-Za-z0-9_."()[\],\s[\]]+$/.test(normalized)) {
217
228
  throw new Error(`Policy property "${propertyName}" on entity ${entityMetadata.entityName} has an unsupported database column type: ${postgresType}`);
218
229
  }
219
- return normalized;
230
+ return (0, normalize_postgres_type_alias_1.normalizePostgresTypeAlias)(normalized);
220
231
  }
221
232
  function mapPropertyTypeToPostgresType(propertyType) {
222
233
  const normalized = propertyType?.trim().toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"policy.decorator.js","sourceRoot":"","sources":["../../src/decorators/policy.decorator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy.decorator.js","sourceRoot":"","sources":["../../src/decorators/policy.decorator.ts"],"names":[],"mappings":"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"}
@@ -98,7 +98,7 @@ describe("Policy decorator", () => {
98
98
  name: "workspace_member_user_select_policy",
99
99
  mode: policy_mode_enum_1.PolicyMode.PERMISSIVE,
100
100
  command: policy_command_enum_1.PolicyCommand.SELECT,
101
- using: `((select app.get_context('user_id', null::bigint)) = "user_id")`,
101
+ using: `(( SELECT app.get_context('user_id'::text, NULL::bigint) AS get_context) = user_id)`,
102
102
  roles: [],
103
103
  },
104
104
  ]);
@@ -128,7 +128,7 @@ describe("Policy decorator", () => {
128
128
  name: "workspace_member_user_select_policy",
129
129
  mode: policy_mode_enum_1.PolicyMode.PERMISSIVE,
130
130
  command: policy_command_enum_1.PolicyCommand.SELECT,
131
- using: `((select app.get_context('user_id', null::bigint)) = "user_id")`,
131
+ using: `(( SELECT app.get_context('user_id'::text, NULL::bigint) AS get_context) = user_id)`,
132
132
  roles: [],
133
133
  },
134
134
  ]);
@@ -240,7 +240,7 @@ describe("Policy decorator", () => {
240
240
  name: "workspace_member_user_insert_policy",
241
241
  mode: policy_mode_enum_1.PolicyMode.PERMISSIVE,
242
242
  command: policy_command_enum_1.PolicyCommand.INSERT,
243
- withCheck: `((select app.get_context('user_id', null::bigint)) = "user_id")`,
243
+ withCheck: `(( SELECT app.get_context('user_id'::text, NULL::bigint) AS get_context) = user_id)`,
244
244
  roles: [],
245
245
  },
246
246
  ]);
@@ -266,8 +266,8 @@ describe("Policy decorator", () => {
266
266
  },
267
267
  })[0]).toMatchObject({
268
268
  name: "workspace_member_workspace_all_policy",
269
- using: `((select app.get_context('tenant_id', null::integer)) = "workspace_id")`,
270
- withCheck: `((select app.get_context('tenant_id', null::integer)) = "workspace_id")`,
269
+ using: `(( SELECT app.get_context('tenant_id'::text, NULL::integer) AS get_context) = workspace_id)`,
270
+ withCheck: `(( SELECT app.get_context('tenant_id'::text, NULL::integer) AS get_context) = workspace_id)`,
271
271
  });
272
272
  });
273
273
  it.each([
@@ -297,7 +297,59 @@ describe("Policy decorator", () => {
297
297
  },
298
298
  },
299
299
  })[0]).toMatchObject({
300
- using: `((select app.get_context('context_value', null::${postgresType})) = "context_value")`,
300
+ using: `(( SELECT app.get_context('context_value'::text, NULL::${postgresType}) AS get_context) = context_value)`,
301
+ });
302
+ });
303
+ it.each([
304
+ ["int", "integer"],
305
+ ["varchar(255)", "character varying"],
306
+ ["timestamptz", "timestamp with time zone"],
307
+ ])("canonicalizes %s database column type aliases in generated expressions", (columnType, postgresType) => {
308
+ let WorkspaceMember = class WorkspaceMember {
309
+ };
310
+ WorkspaceMember = __decorate([
311
+ (0, policy_decorator_1.Policy)({
312
+ command: policy_command_enum_1.PolicyCommand.SELECT,
313
+ property: "workspace",
314
+ context: "workspace_id",
315
+ })
316
+ ], WorkspaceMember);
317
+ expect((0, policy_decorator_1.getPolicyDefinitions)(WorkspaceMember, {
318
+ entityName: "WorkspaceMember",
319
+ schemaName: "public",
320
+ tableName: "workspace_member",
321
+ properties: {
322
+ workspace: {
323
+ fieldName: "workspace_id",
324
+ columnTypes: [columnType],
325
+ },
326
+ },
327
+ })[0]).toMatchObject({
328
+ using: `(( SELECT app.get_context('workspace_id'::text, NULL::${postgresType}) AS get_context) = workspace_id)`,
329
+ });
330
+ });
331
+ it.each(["authorization", "between", "binary", "order"])("preserves quotes for PostgreSQL keyword column name %s", (fieldName) => {
332
+ let WorkspaceMember = class WorkspaceMember {
333
+ };
334
+ WorkspaceMember = __decorate([
335
+ (0, policy_decorator_1.Policy)({
336
+ command: policy_command_enum_1.PolicyCommand.SELECT,
337
+ property: "order",
338
+ context: "order_id",
339
+ })
340
+ ], WorkspaceMember);
341
+ expect((0, policy_decorator_1.getPolicyDefinitions)(WorkspaceMember, {
342
+ entityName: "WorkspaceMember",
343
+ schemaName: "public",
344
+ tableName: "workspace_member",
345
+ properties: {
346
+ order: {
347
+ fieldName,
348
+ columnTypes: ["integer"],
349
+ },
350
+ },
351
+ })[0]).toMatchObject({
352
+ using: `(( SELECT app.get_context('order_id'::text, NULL::integer) AS get_context) = "${fieldName}")`,
301
353
  });
302
354
  });
303
355
  it("infers target primary key metadata from a primary property marker", () => {
@@ -328,7 +380,7 @@ describe("Policy decorator", () => {
328
380
  },
329
381
  },
330
382
  })[0]).toMatchObject({
331
- using: `((select app.get_context('user_id', null::uuid)) = "user_id")`,
383
+ using: `(( SELECT app.get_context('user_id'::text, NULL::uuid) AS get_context) = user_id)`,
332
384
  });
333
385
  });
334
386
  it("rejects an empty policy name when provided", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"policy.decorator.spec.js","sourceRoot":"","sources":["../../src/decorators/policy.decorator.spec.ts"],"names":[],"mappings":";;;;;;;;AAAA,sEAA6D;AAC7D,gEAAuD;AACvD,yDAI4B;AAE5B,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QAMxD,IAAM,eAAe,GAArB,MAAM,eAAe;SAAG,CAAA;QAAlB,eAAe;YALpB,IAAA,yBAAM,EAAC;gBACN,IAAI,EAAE,qCAAqC;gBAC3C,OAAO,EAAE,mCAAa,CAAC,MAAM;gBAC7B,KAAK,EAAE,iEAAiE;aACzE,CAAC;WACI,eAAe,CAAG;QAExB,MAAM,CAAC,IAAA,oCAAiB,EAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC;YACjD;gBACE,IAAI,EAAE,qCAAqC;gBAC3C,IAAI,EAAE,6BAAU,CAAC,UAAU;gBAC3B,OAAO,EAAE,mCAAa,CAAC,MAAM;gBAC7B,KAAK,EAAE,iEAAiE;gBACxE,KAAK,EAAE,EAAE;aACV;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QAYtD,IAAM,eAAe,GAArB,MAAM,eAAe;SAAG,CAAA;QAAlB,eAAe;YAXpB,IAAA,yBAAM,EAAC;gBACN,IAAI,EAAE,qCAAqC;gBAC3C,OAAO,EAAE,mCAAa,CAAC,MAAM;gBAC7B,KAAK,EAAE,iEAAiE;aACzE,CAAC;YACD,IAAA,yBAAM,EAAC;gBACN,IAAI,EAAE,sBAAsB;gBAC5B,OAAO,EAAE,mCAAa,CAAC,GAAG;gBAC1B,KAAK,EAAE,wEAAwE;gBAC/E,SAAS,EAAE,wEAAwE;aACpF,CAAC;WACI,eAAe,CAAG;QAExB,MAAM,CACJ,IAAA,oCAAiB,EAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAChE,CAAC,OAAO,CAAC,CAAC,sBAAsB,EAAE,qCAAqC,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAMxC,IAAM,eAAe,GAArB,MAAM,eAAe;SAAG,CAAA;QAAlB,eAAe;YALpB,IAAA,yBAAM,EAAC;gBACN,IAAI,EAAE,wBAAwB;gBAC9B,IAAI,EAAE,6BAAU,CAAC,WAAW;gBAC5B,KAAK,EAAE,mEAAmE;aAC3E,CAAC;WACI,eAAe,CAAG;QAExB,MAAM,CAAC,IAAA,oCAAiB,EAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YAC1D,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,6BAAU,CAAC,WAAW;YAC5B,OAAO,EAAE,mCAAa,CAAC,GAAG;SAC3B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAOhE,IAAM,eAAe,GAArB,MAAM,eAAe;SAAG,CAAA;QAAlB,eAAe;YANpB,IAAA,yBAAM,EAAC;gBACN,IAAI,EAAE,qCAAqC;gBAC3C,OAAO,EAAE,mCAAa,CAAC,MAAM;gBAC7B,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,SAAS;aACnB,CAAC;WACI,eAAe,CAAG;QAExB,MAAM,CACJ,IAAA,uCAAoB,EAAC,eAAe,EAAE;YACpC,UAAU,EAAE,iBAAiB;YAC7B,UAAU,EAAE,QAAQ;YACpB,SAAS,EAAE,kBAAkB;YAC7B,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,UAAU,EAAE,CAAC,SAAS,CAAC;oBACvB,WAAW,EAAE,CAAC,SAAS,CAAC;oBACxB,UAAU,EAAE;wBACV,WAAW,EAAE,CAAC,IAAI,CAAC;wBACnB,UAAU,EAAE;4BACV,EAAE,EAAE;gCACF,WAAW,EAAE,CAAC,QAAQ,CAAC;6BACxB;yBACF;qBACF;iBACF;aACF;SACF,CAAC,CACH,CAAC,OAAO,CAAC;YACR;gBACE,IAAI,EAAE,qCAAqC;gBAC3C,IAAI,EAAE,6BAAU,CAAC,UAAU;gBAC3B,OAAO,EAAE,mCAAa,CAAC,MAAM;gBAC7B,KAAK,EAAE,iEAAiE;gBACxE,KAAK,EAAE,EAAE;aACV;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAM3E,IAAM,eAAe,GAArB,MAAM,eAAe;SAAG,CAAA;QAAlB,eAAe;YALpB,IAAA,yBAAM,EAAC;gBACN,OAAO,EAAE,mCAAa,CAAC,MAAM;gBAC7B,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,SAAS;aACnB,CAAC;WACI,eAAe,CAAG;QAExB,MAAM,CACJ,IAAA,uCAAoB,EAAC,eAAe,EAAE;YACpC,UAAU,EAAE,iBAAiB;YAC7B,UAAU,EAAE,QAAQ;YACpB,SAAS,EAAE,kBAAkB;YAC7B,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,UAAU,EAAE,CAAC,SAAS,CAAC;oBACvB,WAAW,EAAE,CAAC,QAAQ,CAAC;iBACxB;aACF;SACF,CAAC,CACH,CAAC,OAAO,CAAC;YACR;gBACE,IAAI,EAAE,qCAAqC;gBAC3C,IAAI,EAAE,6BAAU,CAAC,UAAU;gBAC3B,OAAO,EAAE,mCAAa,CAAC,MAAM;gBAC7B,KAAK,EAAE,iEAAiE;gBACxE,KAAK,EAAE,EAAE;aACV;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAK5D,IAAM,eAAe,GAArB,MAAM,eAAe;SAAG,CAAA;QAAlB,eAAe;YAJpB,IAAA,yBAAM,EAAC;gBACN,OAAO,EAAE,mCAAa,CAAC,MAAM;gBAC7B,KAAK,EAAE,MAAM;aACd,CAAC;WACI,eAAe,CAAG;QAExB,MAAM,CACJ,IAAA,uCAAoB,EAAC,eAAe,EAAE;YACpC,UAAU,EAAE,iBAAiB;YAC7B,UAAU,EAAE,QAAQ;YACpB,SAAS,EAAE,kBAAkB;SAC9B,CAAC,CACH,CAAC,OAAO,CAAC;YACR;gBACE,IAAI,EAAE,gCAAgC;gBACtC,IAAI,EAAE,6BAAU,CAAC,UAAU;gBAC3B,OAAO,EAAE,mCAAa,CAAC,MAAM;gBAC7B,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,EAAE;aACV;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAQ9E,IAAM,eAAe,GAArB,MAAM,eAAe;SAAG,CAAA;QAAlB,eAAe;YAPpB,IAAA,yBAAM,EAAC;gBACN,IAAI,EAAE,+BAA+B;gBACrC,QAAQ,EAAE,WAAW;gBACrB,OAAO,EAAE,WAAW;gBACpB,KAAK,EAAE,MAAM;gBACb,SAAS,EAAE,OAAO;aACnB,CAAC;WACI,eAAe,CAAG;QAExB,MAAM,CACJ,IAAA,uCAAoB,EAAC,eAAe,EAAE;YACpC,UAAU,EAAE,iBAAiB;YAC7B,UAAU,EAAE,QAAQ;YACpB,SAAS,EAAE,kBAAkB;YAC7B,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,UAAU,EAAE,CAAC,cAAc,CAAC;oBAC5B,WAAW,EAAE,CAAC,QAAQ,CAAC;iBACxB;aACF;SACF,CAAC,CACH,CAAC,OAAO,CAAC;YACR;gBACE,IAAI,EAAE,+BAA+B;gBACrC,IAAI,EAAE,6BAAU,CAAC,UAAU;gBAC3B,OAAO,EAAE,mCAAa,CAAC,GAAG;gBAC1B,KAAK,EAAE,MAAM;gBACb,SAAS,EAAE,OAAO;gBAClB,KAAK,EAAE,EAAE;aACV;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAO/C,IAAM,eAAe,GAArB,MAAM,eAAe;SAAG,CAAA;QAAlB,eAAe;YANpB,IAAA,yBAAM,EAAC;gBACN,OAAO,EAAE,mCAAa,CAAC,MAAM;gBAC7B,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC;aACnC,CAAC;WACI,eAAe,CAAG;QAExB,MAAM,CACJ,IAAA,uCAAoB,EAAC,eAAe,EAAE;YACpC,UAAU,EAAE,iBAAiB;YAC7B,UAAU,EAAE,QAAQ;YACpB,SAAS,EAAE,kBAAkB;YAC7B,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,UAAU,EAAE,CAAC,SAAS,CAAC;oBACvB,WAAW,EAAE,CAAC,QAAQ,CAAC;iBACxB;aACF;SACF,CAAC,CAAC,CAAC,CAAC,CACN,CAAC,aAAa,CAAC;YACd,IAAI,EAAE,4DAA4D;YAClE,KAAK,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC;SACnC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAM/D,IAAM,eAAe,GAArB,MAAM,eAAe;SAAG,CAAA;QAAlB,eAAe;YALpB,IAAA,yBAAM,EAAC;gBACN,OAAO,EAAE,mCAAa,CAAC,MAAM;gBAC7B,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,SAAS;aACnB,CAAC;WACI,eAAe,CAAG;QAExB,MAAM,CACJ,IAAA,uCAAoB,EAAC,eAAe,EAAE;YACpC,UAAU,EAAE,iBAAiB;YAC7B,UAAU,EAAE,QAAQ;YACpB,SAAS,EAAE,kBAAkB;YAC7B,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,UAAU,EAAE,CAAC,SAAS,CAAC;oBACvB,WAAW,EAAE,CAAC,QAAQ,CAAC;iBACxB;aACF;SACF,CAAC,CACH,CAAC,OAAO,CAAC;YACR;gBACE,IAAI,EAAE,qCAAqC;gBAC3C,IAAI,EAAE,6BAAU,CAAC,UAAU;gBAC3B,OAAO,EAAE,mCAAa,CAAC,MAAM;gBAC7B,SAAS,EAAE,iEAAiE;gBAC5E,KAAK,EAAE,EAAE;aACV;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QAKpE,IAAM,eAAe,GAArB,MAAM,eAAe;SAAG,CAAA;QAAlB,eAAe;YAJpB,IAAA,yBAAM,EAAC;gBACN,QAAQ,EAAE,WAAW;gBACrB,OAAO,EAAE,WAAW;aACrB,CAAC;WACI,eAAe,CAAG;QAExB,MAAM,CACJ,IAAA,uCAAoB,EAAC,eAAe,EAAE;YACpC,UAAU,EAAE,iBAAiB;YAC7B,UAAU,EAAE,QAAQ;YACpB,SAAS,EAAE,kBAAkB;YAC7B,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,UAAU,EAAE,CAAC,cAAc,CAAC;oBAC5B,WAAW,EAAE,QAAQ;iBACtB;aACF;SACF,CAAC,CAAC,CAAC,CAAC,CACN,CAAC,aAAa,CAAC;YACd,IAAI,EAAE,uCAAuC;YAC7C,KAAK,EAAE,yEAAyE;YAChF,SAAS,EAAE,yEAAyE;SACrF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC;QACN,CAAC,QAAQ,EAAE,QAAQ,CAAC;QACpB,CAAC,SAAS,EAAE,SAAS,CAAC;QACtB,CAAC,MAAM,EAAE,0BAA0B,CAAC;QACpC,CAAC,MAAM,EAAE,MAAM,CAAC;QAChB,CAAC,MAAM,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC,gDAAgD,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE;QAM1E,IAAM,eAAe,GAArB,MAAM,eAAe;SAAG,CAAA;QAAlB,eAAe;YALpB,IAAA,yBAAM,EAAC;gBACN,OAAO,EAAE,mCAAa,CAAC,MAAM;gBAC7B,QAAQ,EAAE,cAAc;gBACxB,OAAO,EAAE,eAAe;aACzB,CAAC;WACI,eAAe,CAAG;QAExB,MAAM,CACJ,IAAA,uCAAoB,EAAC,eAAe,EAAE;YACpC,UAAU,EAAE,iBAAiB;YAC7B,UAAU,EAAE,QAAQ;YACpB,SAAS,EAAE,kBAAkB;YAC7B,UAAU,EAAE;gBACV,YAAY,EAAE;oBACZ,SAAS,EAAE,eAAe;oBAC1B,IAAI;iBACL;aACF;SACF,CAAC,CAAC,CAAC,CAAC,CACN,CAAC,aAAa,CAAC;YACd,KAAK,EAAE,mDAAmD,YAAY,uBAAuB;SAC9F,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAM3E,IAAM,eAAe,GAArB,MAAM,eAAe;SAAG,CAAA;QAAlB,eAAe;YALpB,IAAA,yBAAM,EAAC;gBACN,OAAO,EAAE,mCAAa,CAAC,MAAM;gBAC7B,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,SAAS;aACnB,CAAC;WACI,eAAe,CAAG;QAExB,MAAM,CACJ,IAAA,uCAAoB,EAAC,eAAe,EAAE;YACpC,UAAU,EAAE,iBAAiB;YAC7B,UAAU,EAAE,QAAQ;YACpB,SAAS,EAAE,kBAAkB;YAC7B,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,UAAU,EAAE,CAAC,SAAS,CAAC;oBACvB,UAAU,EAAE;wBACV,UAAU,EAAE;4BACV,EAAE,EAAE;gCACF,OAAO,EAAE,IAAI;gCACb,WAAW,EAAE,MAAM;6BACpB;yBACF;qBACF;iBACF;aACF;SACF,CAAC,CAAC,CAAC,CAAC,CACN,CAAC,aAAa,CAAC;YACd,KAAK,EAAE,+DAA+D;SACvE,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,GAAG,EAAE,CACV,IAAA,yBAAM,EAAC;YACL,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,wEAAwE;SAChF,CAAC,CACH,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,GAAG,EAAE,CACV,IAAA,yBAAM,EAAC;YACL,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,mCAAa,CAAC,MAAM;SAC9B,CAAC,CACH,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,CAAC,GAAG,EAAE,CACV,IAAA,yBAAM,EAAC;YACL,IAAI,EAAE,sBAAsB;YAC5B,QAAQ,EAAE,WAAW;SACtB,CAAC,CACH,CAAC,OAAO,CAAC,uDAAuD,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,GAAG,EAAE,CACV,IAAA,yBAAM,EAAC;YACL,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,mCAAa,CAAC,MAAM;YAC7B,KAAK,EAAE,wEAAwE;YAC/E,SAAS,EAAE,wEAAwE;SACpF,CAAC,CACH,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC;QACN;YACE,0BAA0B;YAC1B,GAAG,EAAE,CACH,IAAA,yBAAM,EAAC;gBACL,OAAO,EAAE,mCAAa,CAAC,MAAM;gBAC7B,KAAK,EAAE,MAAM;gBACb,SAAS,EAAE,MAAM;aAClB,CAAC;YACJ,wCAAwC;SACzC;QACD;YACE,iCAAiC;YACjC,GAAG,EAAE,CACH,IAAA,yBAAM,EAAC;gBACL,OAAO,EAAE,mCAAa,CAAC,MAAM;aAC9B,CAAC;YACJ,yCAAyC;SAC1C;QACD;YACE,+BAA+B;YAC/B,GAAG,EAAE,CACH,IAAA,yBAAM,EAAC;gBACL,IAAI,EAAE,6BAA6B;aACpC,CAAC;YACJ,kDAAkD;SACnD;KACF,CAAC,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE;QAChD,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC;QACN;YACE,2BAA2B;YAC3B;gBACE,UAAU,EAAE,EAAE;aACf;YACD,gEAAgE;SACjE;QACD;YACE,uBAAuB;YACvB;gBACE,UAAU,EAAE;oBACV,IAAI,EAAE;wBACJ,UAAU,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;wBACpC,WAAW,EAAE,CAAC,QAAQ,CAAC;qBACxB;iBACF;aACF;YACD,8FAA8F;SAC/F;QACD;YACE,mCAAmC;YACnC;gBACE,UAAU,EAAE;oBACV,IAAI,EAAE;wBACJ,UAAU,EAAE,CAAC,SAAS,CAAC;wBACvB,UAAU,EAAE;4BACV,WAAW,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC;4BAC/B,UAAU,EAAE;gCACV,EAAE,EAAE;oCACF,WAAW,EAAE,CAAC,QAAQ,CAAC;iCACxB;gCACD,QAAQ,EAAE;oCACR,WAAW,EAAE,CAAC,QAAQ,CAAC;iCACxB;6BACF;yBACF;qBACF;iBACF;aACF;YACD,qGAAqG;SACtG;QACD;YACE,qCAAqC;YACrC;gBACE,UAAU,EAAE;oBACV,IAAI,EAAE;wBACJ,UAAU,EAAE,CAAC,SAAS,CAAC;wBACvB,UAAU,EAAE;4BACV,WAAW,EAAE,CAAC,IAAI,CAAC;4BACnB,UAAU,EAAE,EAAE;yBACf;qBACF;iBACF;aACF;YACD,0FAA0F;SAC3F;QACD;YACE,uBAAuB;YACvB;gBACE,UAAU,EAAE;oBACV,IAAI,EAAE;wBACJ,UAAU,EAAE,CAAC,SAAS,CAAC;wBACvB,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;qBAChC;iBACF;aACF;YACD,mGAAmG;SACpG;QACD;YACE,kCAAkC;YAClC;gBACE,UAAU,EAAE;oBACV,IAAI,EAAE;wBACJ,UAAU,EAAE,CAAC,SAAS,CAAC;wBACvB,WAAW,EAAE,CAAC,0BAA0B,CAAC;qBAC1C;iBACF;aACF;YACD,oHAAoH;SACrH;QACD;YACE,8BAA8B;YAC9B;gBACE,UAAU,EAAE;oBACV,IAAI,EAAE;wBACJ,UAAU,EAAE,CAAC,SAAS,CAAC;wBACvB,IAAI,EAAE,SAAS;qBAChB;iBACF;aACF;YACD,qFAAqF;SACtF;KACF,CAAC,CAAC,iCAAiC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;QAMjE,IAAM,eAAe,GAArB,MAAM,eAAe;SAAG,CAAA;QAAlB,eAAe;YALpB,IAAA,yBAAM,EAAC;gBACN,OAAO,EAAE,mCAAa,CAAC,MAAM;gBAC7B,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,SAAS;aACnB,CAAC;WACI,eAAe,CAAG;QAExB,MAAM,CAAC,GAAG,EAAE,CACV,IAAA,uCAAoB,EAAC,eAAe,EAAE;YACpC,UAAU,EAAE,iBAAiB;YAC7B,UAAU,EAAE,QAAQ;YACpB,SAAS,EAAE,kBAAkB;YAC7B,GAAG,QAAQ;SACZ,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"policy.decorator.spec.js","sourceRoot":"","sources":["../../src/decorators/policy.decorator.spec.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@ const create_policy_down_sql_1 = require("./utils/create-policy-down-sql");
10
10
  const create_policy_privilege_down_sql_statements_1 = require("./utils/create-policy-privilege-down-sql-statements");
11
11
  const create_policy_role_sql_statements_1 = require("./utils/create-policy-role-sql-statements");
12
12
  const create_policy_up_sql_statements_1 = require("./utils/create-policy-up-sql-statements");
13
+ const is_postgres_keyword_requiring_quote_1 = require("./utils/is-postgres-keyword-requiring-quote");
14
+ const normalize_postgres_type_alias_1 = require("./utils/normalize-postgres-type-alias");
13
15
  /** MikroORM TypeScript migration generator that injects generated RLS SQL. */
14
16
  class RowLevelSecurityMigrationGenerator extends migrations_1.TSMigrationGenerator {
15
17
  async generate(diff, path, name) {
@@ -249,7 +251,341 @@ function normalizePolicyCommand(command) {
249
251
  return command ?? policy_command_enum_1.PolicyCommand.ALL;
250
252
  }
251
253
  function normalizePolicyExpression(expression) {
252
- return expression?.trim() ?? "";
254
+ const normalized = expression?.trim();
255
+ if (!normalized) {
256
+ return "";
257
+ }
258
+ return normalizePostgresExpression(normalized);
259
+ }
260
+ function normalizePostgresExpression(expression) {
261
+ const normalized = stripSelectProjectionAliases(mapSqlOutsideQuotedTokens(expression.replace(/'((?:''|[^'])*)'::text\b/gi, "'$1'"), normalizePostgresExpressionSegment).trim());
262
+ return stripRedundantJsonOperandParentheses(stripRedundantOuterParentheses(normalized));
263
+ }
264
+ function normalizePostgresExpressionSegment(segment) {
265
+ return normalizeSqlOperatorSpacing(normalizeNullTypeCasts(segment
266
+ .replace(/\s+/g, " ")
267
+ .replace(/\b(select|and|or|not|is|true|false|null|as)\b/gi, (match) => match.toLowerCase())
268
+ .replace(/\s*,\s*/g, ", ")))
269
+ .replace(/\(\s+/g, "(")
270
+ .replace(/\s+\)/g, ")");
271
+ }
272
+ function normalizeNullTypeCasts(segment) {
273
+ return segment
274
+ .replace(/\bnull::(?:character\s+varying|varchar)(?:\s*\([^)]*\))?/gi, "null::character varying")
275
+ .replace(/\bnull::(?:timestamp\s+with\s+time\s+zone|timestamptz)\b/gi, "null::timestamp with time zone")
276
+ .replace(/\bnull::([a-z_][a-z0-9_.]*)/gi, (_match, type) => `null::${(0, normalize_postgres_type_alias_1.normalizePostgresTypeAlias)(type.toLowerCase())}`);
277
+ }
278
+ function normalizeSqlOperatorSpacing(segment) {
279
+ const jsonOperators = [];
280
+ const protectedSegment = segment.replace(/\s*(#>>|#>|->>|->|@>|<@)\s*/g, (_match, operator) => {
281
+ const placeholder = `__rls_json_operator_${String(jsonOperators.length)}__`;
282
+ jsonOperators.push(` ${operator} `);
283
+ return placeholder;
284
+ });
285
+ return protectedSegment
286
+ .replace(/\s*(<>|!=|<=|>=|=|<|>)\s*/g, (_match, operator) => ` ${operator === "!=" ? "<>" : operator} `)
287
+ .replace(/__rls_json_operator_(\d+)__/g, (_match, index) => jsonOperators[Number(index)]);
288
+ }
289
+ function stripSelectProjectionAliases(expression) {
290
+ let normalized = "";
291
+ const selectDepths = new Set();
292
+ let depth = 0;
293
+ let index = 0;
294
+ while (index < expression.length) {
295
+ const character = expression[index];
296
+ if (character === "'") {
297
+ const literalEnd = readSqlStringLiteralEnd(expression, index);
298
+ normalized += expression.slice(index, literalEnd);
299
+ index = literalEnd;
300
+ continue;
301
+ }
302
+ if (character === '"') {
303
+ const identifierEnd = readQuotedIdentifierEnd(expression, index);
304
+ normalized += expression.slice(index, identifierEnd);
305
+ index = identifierEnd;
306
+ continue;
307
+ }
308
+ if (character === "(") {
309
+ depth += 1;
310
+ normalized += character;
311
+ index += 1;
312
+ continue;
313
+ }
314
+ if (character === ")") {
315
+ selectDepths.delete(depth);
316
+ depth -= 1;
317
+ normalized += character;
318
+ index += 1;
319
+ continue;
320
+ }
321
+ const wordEnd = readSqlWordEnd(expression, index);
322
+ if (wordEnd > index) {
323
+ const word = expression.slice(index, wordEnd);
324
+ const lowerWord = word.toLowerCase();
325
+ if (lowerWord === "select") {
326
+ selectDepths.add(depth);
327
+ }
328
+ if (lowerWord === "as" && selectDepths.has(depth)) {
329
+ const aliasEnd = readSelectProjectionAliasEnd(expression, wordEnd);
330
+ if (aliasEnd !== undefined) {
331
+ normalized = normalized.replace(/\s+$/, "");
332
+ index = aliasEnd;
333
+ continue;
334
+ }
335
+ }
336
+ normalized += word;
337
+ index = wordEnd;
338
+ continue;
339
+ }
340
+ normalized += character;
341
+ index += 1;
342
+ }
343
+ return normalized;
344
+ }
345
+ function readSelectProjectionAliasEnd(expression, startIndex) {
346
+ const aliasStart = skipSqlWhitespace(expression, startIndex);
347
+ const aliasEnd = readSqlIdentifierEnd(expression, aliasStart);
348
+ if (aliasEnd === aliasStart) {
349
+ return undefined;
350
+ }
351
+ const nextIndex = skipSqlWhitespace(expression, aliasEnd);
352
+ return expression[nextIndex] === ")" ? nextIndex : undefined;
353
+ }
354
+ function stripRedundantOuterParentheses(expression) {
355
+ let normalized = expression;
356
+ while (isWrappedInParentheses(normalized)) {
357
+ normalized = normalized.slice(1, -1).trim();
358
+ }
359
+ return normalized;
360
+ }
361
+ function stripRedundantJsonOperandParentheses(expression) {
362
+ let normalized = expression;
363
+ let previous;
364
+ do {
365
+ previous = normalized;
366
+ normalized = stripRedundantJsonOperandParenthesesOnce(normalized);
367
+ } while (normalized !== previous);
368
+ return normalized;
369
+ }
370
+ function stripRedundantJsonOperandParenthesesOnce(expression) {
371
+ const removals = new Set();
372
+ const parenthesisPairs = findParenthesisPairs(expression);
373
+ for (const [start, end] of parenthesisPairs) {
374
+ const innerExpression = expression.slice(start + 1, end);
375
+ if (hasTopLevelJsonOperator(innerExpression) &&
376
+ (hasComparisonOperatorBefore(expression, start) ||
377
+ hasComparisonOperatorAfter(expression, end))) {
378
+ removals.add(start);
379
+ removals.add(end);
380
+ }
381
+ }
382
+ if (removals.size === 0) {
383
+ return expression;
384
+ }
385
+ return [...expression]
386
+ .filter((_character, index) => !removals.has(index))
387
+ .join("");
388
+ }
389
+ function isWrappedInParentheses(expression) {
390
+ if (!expression.startsWith("(") || !expression.endsWith(")")) {
391
+ return false;
392
+ }
393
+ let depth = 0;
394
+ let index = 0;
395
+ while (index < expression.length) {
396
+ const character = expression[index];
397
+ if (character === "'") {
398
+ index = readSqlStringLiteralEnd(expression, index);
399
+ continue;
400
+ }
401
+ if (character === '"') {
402
+ index = readQuotedIdentifierEnd(expression, index);
403
+ continue;
404
+ }
405
+ if (character === "(") {
406
+ depth += 1;
407
+ }
408
+ else if (character === ")") {
409
+ depth -= 1;
410
+ if (depth === 0 && index < expression.length - 1) {
411
+ return false;
412
+ }
413
+ }
414
+ if (depth < 0) {
415
+ return false;
416
+ }
417
+ index += 1;
418
+ }
419
+ return depth === 0;
420
+ }
421
+ function findParenthesisPairs(expression) {
422
+ const pairs = [];
423
+ const stack = [];
424
+ let index = 0;
425
+ while (index < expression.length) {
426
+ const character = expression[index];
427
+ if (character === "'") {
428
+ index = readSqlStringLiteralEnd(expression, index);
429
+ continue;
430
+ }
431
+ if (character === '"') {
432
+ index = readQuotedIdentifierEnd(expression, index);
433
+ continue;
434
+ }
435
+ if (character === "(") {
436
+ stack.push(index);
437
+ }
438
+ else if (character === ")") {
439
+ const start = stack.pop();
440
+ if (start !== undefined) {
441
+ pairs.push([start, index]);
442
+ }
443
+ }
444
+ index += 1;
445
+ }
446
+ return pairs;
447
+ }
448
+ function hasTopLevelJsonOperator(expression) {
449
+ let depth = 0;
450
+ let index = 0;
451
+ while (index < expression.length) {
452
+ const character = expression[index];
453
+ if (character === "'") {
454
+ index = readSqlStringLiteralEnd(expression, index);
455
+ continue;
456
+ }
457
+ if (character === '"') {
458
+ index = readQuotedIdentifierEnd(expression, index);
459
+ continue;
460
+ }
461
+ if (character === "(") {
462
+ depth += 1;
463
+ index += 1;
464
+ continue;
465
+ }
466
+ if (character === ")") {
467
+ depth -= 1;
468
+ index += 1;
469
+ continue;
470
+ }
471
+ if (depth === 0) {
472
+ const jsonOperator = readJsonOperatorAt(expression, index);
473
+ if (jsonOperator) {
474
+ return true;
475
+ }
476
+ }
477
+ index += 1;
478
+ }
479
+ return false;
480
+ }
481
+ function hasComparisonOperatorBefore(expression, startIndex) {
482
+ const operatorEnd = skipSqlWhitespaceBackwards(expression, startIndex - 1) + 1;
483
+ return ["<>", "!=", "<=", ">=", "=", "<", ">"].some((operator) => expression.slice(operatorEnd - operator.length, operatorEnd) === operator);
484
+ }
485
+ function hasComparisonOperatorAfter(expression, endIndex) {
486
+ const operatorStart = skipSqlWhitespace(expression, endIndex + 1);
487
+ return Boolean(readComparisonOperatorAt(expression, operatorStart));
488
+ }
489
+ function mapSqlOutsideQuotedTokens(expression, transform) {
490
+ const parts = [];
491
+ let segmentStart = 0;
492
+ let index = 0;
493
+ while (index < expression.length) {
494
+ if (expression[index] !== "'" && expression[index] !== '"') {
495
+ index += 1;
496
+ continue;
497
+ }
498
+ parts.push(transform(expression.slice(segmentStart, index)));
499
+ if (expression[index] === "'") {
500
+ const literalStart = index;
501
+ index = readSqlStringLiteralEnd(expression, index);
502
+ parts.push(expression.slice(literalStart, index));
503
+ }
504
+ else {
505
+ const identifierStart = index;
506
+ index = readQuotedIdentifierEnd(expression, index);
507
+ parts.push(normalizeQuotedIdentifier(expression.slice(identifierStart, index)));
508
+ }
509
+ segmentStart = index;
510
+ }
511
+ parts.push(transform(expression.slice(segmentStart)));
512
+ return parts.join("");
513
+ }
514
+ function normalizeQuotedIdentifier(identifierToken) {
515
+ const identifier = identifierToken.slice(1, -1).replace(/""/g, '"');
516
+ if (/^[a-z_][a-z0-9_]*$/.test(identifier) &&
517
+ !(0, is_postgres_keyword_requiring_quote_1.isPostgresKeywordRequiringQuote)(identifier)) {
518
+ return identifier;
519
+ }
520
+ return identifierToken;
521
+ }
522
+ function readSqlStringLiteralEnd(expression, startIndex) {
523
+ let index = startIndex + 1;
524
+ while (index < expression.length) {
525
+ if (expression[index] !== "'") {
526
+ index += 1;
527
+ continue;
528
+ }
529
+ if (expression[index + 1] === "'") {
530
+ index += 2;
531
+ continue;
532
+ }
533
+ index += 1;
534
+ break;
535
+ }
536
+ return index;
537
+ }
538
+ function readQuotedIdentifierEnd(expression, startIndex) {
539
+ let index = startIndex + 1;
540
+ while (index < expression.length) {
541
+ if (expression[index] !== '"') {
542
+ index += 1;
543
+ continue;
544
+ }
545
+ if (expression[index + 1] === '"') {
546
+ index += 2;
547
+ continue;
548
+ }
549
+ index += 1;
550
+ break;
551
+ }
552
+ return index;
553
+ }
554
+ function readSqlIdentifierEnd(expression, startIndex) {
555
+ if (expression[startIndex] === '"') {
556
+ return readQuotedIdentifierEnd(expression, startIndex);
557
+ }
558
+ return readSqlWordEnd(expression, startIndex);
559
+ }
560
+ function readJsonOperatorAt(expression, startIndex) {
561
+ return ["#>>", "->>", "#>", "->", "@>", "<@"].find((operator) => expression.startsWith(operator, startIndex));
562
+ }
563
+ function readComparisonOperatorAt(expression, startIndex) {
564
+ return ["<>", "!=", "<=", ">=", "=", "<", ">"].find((operator) => expression.startsWith(operator, startIndex));
565
+ }
566
+ function readSqlWordEnd(expression, startIndex) {
567
+ if (!/[a-z_]/i.test(expression[startIndex] ?? "")) {
568
+ return startIndex;
569
+ }
570
+ let index = startIndex + 1;
571
+ while (/[a-z0-9_$]/i.test(expression[index] ?? "")) {
572
+ index += 1;
573
+ }
574
+ return index;
575
+ }
576
+ function skipSqlWhitespace(expression, startIndex) {
577
+ let index = startIndex;
578
+ while (/\s/.test(expression[index] ?? "")) {
579
+ index += 1;
580
+ }
581
+ return index;
582
+ }
583
+ function skipSqlWhitespaceBackwards(expression, startIndex) {
584
+ let index = startIndex;
585
+ while (/\s/.test(expression[index] ?? "")) {
586
+ index -= 1;
587
+ }
588
+ return index;
253
589
  }
254
590
  function normalizePolicyRoles(roles) {
255
591
  return [