@nest-boot/row-level-security 7.2.3 → 7.2.5

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.
Files changed (38) hide show
  1. package/dist/decorators/policy.decorator.d.ts +1 -1
  2. package/dist/decorators/policy.decorator.js +4 -4
  3. package/dist/decorators/policy.decorator.js.map +1 -1
  4. package/dist/decorators/policy.decorator.spec.js +18 -18
  5. package/dist/decorators/policy.decorator.spec.js.map +1 -1
  6. package/dist/index.spec.js +2 -2
  7. package/dist/index.spec.js.map +1 -1
  8. package/dist/interfaces/policy-options.interface.d.ts +1 -1
  9. package/dist/row-level-security-driver.js +1 -1
  10. package/dist/row-level-security-driver.js.map +1 -1
  11. package/dist/row-level-security-driver.spec.js +4 -4
  12. package/dist/row-level-security-driver.spec.js.map +1 -1
  13. package/dist/row-level-security-migration-generator.js +204 -268
  14. package/dist/row-level-security-migration-generator.js.map +1 -1
  15. package/dist/row-level-security-migration-generator.spec.js +108 -38
  16. package/dist/row-level-security-migration-generator.spec.js.map +1 -1
  17. package/dist/row-level-security-migration.d.ts +1 -1
  18. package/dist/row-level-security-migration.js +1 -1
  19. package/dist/row-level-security-migration.js.map +1 -1
  20. package/dist/row-level-security-migration.spec.js +6 -5
  21. package/dist/row-level-security-migration.spec.js.map +1 -1
  22. package/dist/tsconfig.build.tsbuildinfo +1 -1
  23. package/dist/utils/create-policy-bootstrap-sql-statements.d.ts +2 -2
  24. package/dist/utils/create-policy-bootstrap-sql-statements.js +2 -5
  25. package/dist/utils/create-policy-bootstrap-sql-statements.js.map +1 -1
  26. package/dist/utils/create-policy-role-sql-statements.d.ts +4 -4
  27. package/dist/utils/create-policy-role-sql-statements.js +6 -19
  28. package/dist/utils/create-policy-role-sql-statements.js.map +1 -1
  29. package/dist/utils/normalize-postgres-type-alias.spec.d.ts +1 -0
  30. package/dist/utils/normalize-postgres-type-alias.spec.js +28 -0
  31. package/dist/utils/normalize-postgres-type-alias.spec.js.map +1 -0
  32. package/dist/utils/{normalize-postgres-type-alias.js → normalize-postgres-type-alias.util.js} +1 -1
  33. package/dist/utils/normalize-postgres-type-alias.util.js.map +1 -0
  34. package/dist/utils/policy-migration-sql.spec.js +19 -33
  35. package/dist/utils/policy-migration-sql.spec.js.map +1 -1
  36. package/package.json +6 -3
  37. package/dist/utils/normalize-postgres-type-alias.js.map +0 -1
  38. /package/dist/utils/{normalize-postgres-type-alias.d.ts → normalize-postgres-type-alias.util.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"row-level-security-migration-generator.js","sourceRoot":"","sources":["../src/row-level-security-migration-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"row-level-security-migration-generator.js","sourceRoot":"","sources":["../src/row-level-security-migration-generator.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AAEzC,sDAA6D;AAE7D,uDAAyC;AAEzC,oEAAqE;AACrE,qEAA4D;AAC5D,+DAAsD;AAUtD,2GAAoG;AACpG,2EAAqE;AACrE,qHAA6G;AAC7G,iGAImD;AACnD,6FAAsF;AACtF,mGAAwF;AAExF,MAAM,8BAA8B,GAAG,EAAE,CAAC;AAC1C,MAAM,sBAAsB,GAAG,QAAQ,CAAC;AAIxC,8EAA8E;AAC9E,MAAa,kCAAmC,SAAQ,iCAAoB;IAKjE,KAAK,CAAC,QAAQ,CACrB,IAAmB,EACnB,IAAa,EACb,IAAa;QAEb,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,GAAG,EAAE,CACjD,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CACjC,CAAC;IACJ,CAAC;IAED,oGAAoG;IACpG,KAAK,CAAC,uBAAuB,CAAC,IAAmB;QAC/C,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,GAAG,EAAE;YACjD,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC;gBACpC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,MAAM,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,IAAI,EAAE,CAAC;YACrE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,0BAA0B,CACxD,IAAI,EACJ,wBAAwB,CACzB,CAAC;YAEF,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,IAAmB,EACnB,QAA8B;QAE9B,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAChD,MAAM,wBAAwB,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAC3E,MAAM,eAAe,GAAG,kCAAkC,CACxD,wBAAwB,CACzB,CAAC;QAEF,MAAM,yBAAyB,GAC7B,MAAM,IAAI,CAAC,wCAAwC,CAAC,eAAe,CAAC,CAAC;QAEvE,IAAI,CAAC,yBAAyB,GAAG,yBAAyB;YACxD,CAAC,CAAC,wCAAwC,CACtC,yBAAyB,EACzB,eAAe,CAChB;YACH,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,CAAC,6BAA6B,GAAG,yBAAyB,CAAC;QAC/D,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;QAEzD,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,EAAE,CAAC;QAC1B,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,yBAAyB,GAAG,SAAS,CAAC;YAC3C,IAAI,CAAC,6BAA6B,GAAG,SAAS,CAAC;YAC/C,IAAI,CAAC,wBAAwB,GAAG,SAAS,CAAC;QAC5C,CAAC;IACH,CAAC;IAEQ,qBAAqB,CAC5B,SAAiB,EACjB,IAAmB;QAEnB,MAAM,wBAAwB,GAC5B,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC/D,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,0BAA0B,CACxD,IAAI,EACJ,wBAAwB,CACzB,CAAC;QACF,MAAM,oBAAoB,GAAG,IAAI,CAAC,yBAAyB,IAAI,EAAE,CAAC;QAClE,MAAM,wBAAwB,GAC5B,IAAI,CAAC,6BAA6B,IAAI,oBAAoB,CAAC;QAC7D,MAAM,kBAAkB,GAAG,+BAA+B,CACxD,KAAK,EACL,wBAAwB,CACzB,CAAC;QAEF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,OAAO,KAAK,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,UAAU,GAAG;YACjB,EAAE,EAAE;gBACF,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,IAAA,4CAAmB,EAAC,UAAU,CAAC,CAAC;gBAC/D,GAAG,IAAI,CAAC,EAAE;gBACV,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,2EAAkC,GAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjE,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;oBAClB,CAAC,CAAC,IAAA,mEAA+B,EAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;oBAC5D,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,yBAAyB,CAAC,KAAK,CAAC;gBACnC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAC9B,IAAA,6DAA2B,EAAC,UAAU,CAAC,CACxC;aACF;YACD,IAAI,EAAE;gBACJ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,IAAA,4CAAmB,EAAC,UAAU,CAAC,CAAC;gBAC7D,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAC9B,IAAA,oFAAsC,EACpC,UAAU,EACV,oBAAoB,CACrB,CACF;gBACD,GAAG,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC;oBAC/B,CAAC,CAAC,IAAA,qEAAiC,EAAC,kBAAkB,CAAC;oBACvD,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,IAAI,CAAC,IAAI;gBACZ,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,2EAAkC,GAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnE,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;oBACpB,CAAC,CAAC,IAAA,mEAA+B,EAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;oBAC9D,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,yBAAyB,CAAC,OAAO,CAAC;gBACrC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAChC,IAAA,6DAA2B,EAAC,UAAU,CAAC,CACxC;aACF;SACF,CAAC;QAEF,MAAM,aAAa,GAAG,KAAK,CAAC,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAEzE,OAAO,yBAAyB,CAAC,aAAa,CAAC,CAAC;IAClD,CAAC;IAEO,0BAA0B,CAChC,IAAmB,EACnB,wBAAsD;QAEtD,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACpC,OAAO;gBACL,KAAK,EAAE,IAAI,CAAC,4BAA4B,CACtC,IAAI,EACJ,wBAAwB,CACzB;gBACD,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;QAED,MAAM,yBAAyB,GAAG,IAAI,CAAC,yBAAyB,CAAC;QAEjE,OAAO;YACL,KAAK,EAAE,wBAAwB,CAAC,MAAM,CACpC,CAAC,UAAU,EAAE,EAAE,CACb,CAAC,kCAAkC,CACjC,yBAAyB,EACzB,UAAU,CACX,IAAI,4BAA4B,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CACzD;YACD,OAAO,EAAE,yBAAyB,CAAC,MAAM,CACvC,CAAC,UAAU,EAAE,EAAE,CACb,CAAC,kCAAkC,CACjC,wBAAwB,EACxB,UAAU,CACX,CACJ;SACF,CAAC;IACJ,CAAC;IAEO,4BAA4B,CAClC,IAAmB,EACnB,iBAA+C;QAE/C,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnD,OAAO,iBAAiB,CAAC;QAC3B,CAAC;QAED,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAC7C,4BAA4B,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CAClD,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAC1B,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE;QAEnC,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE9C,OAAO,qBAAqB,CAC1B,QAAQ,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE;YAClC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;gBAC1B,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,UAAU,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;YACjD,MAAM,UAAU,GAAG,mBAAmB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAC9D,MAAM,SAAS,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;YAC/C,MAAM,oBAAoB,GAAyB;gBACjD,UAAU;gBACV,UAAU;gBACV,SAAS;gBACT,UAAU,EAAE,cAAc,CAAC,UAAU;aACtC,CAAC;YAEF,OAAO,IAAA,uCAAoB,EACzB,cAAc,CAAC,KAAK,EACpB,oBAAoB,CACrB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBACf,MAAM,UAAU,GAAG,2BAA2B,CAC5C,MAAM,CAAC,IAAI,EACX,aAAa,CACd,CAAC;gBAEF,OAAO;oBACL,UAAU;oBACV,UAAU;oBACV,SAAS;oBACT,UAAU;oBACV,iBAAiB,EAAE,uBAAuB,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC;oBACnE,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,YAAY,EAAE,MAAM,CAAC,YAAY;iBAClC,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAEO,gBAAgB;QACtB,MAAM,MAAM,GAAG,IAAI;aAChB,MAAiE,CAAC;QACrE,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC;QAE5D,OAAO,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;IACpD,CAAC;IAEO,iBAAiB;QACvB,MAAM,MAAM,GAAG,IAAI;aAChB,MAAiE,CAAC;QACrE,MAAM,WAAW,GAAG,CAClB,MAAM,CAAC,WAAW,EAAE,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CACzD,EAAE,MAAM,EAAE,CAAC;QAEZ,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;YAC/B,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,wCAAwC,CACpD,eAAiC;QAEjC,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,MAAM,GAAG,IAAI;aAChB,MAAiE,CAAC;QACrE,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC;QAE5C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAc,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;KAoB5D,CAAC,CAAC;QAEH,OAAO,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC;IAC9E,CAAC;CACF;AA5RD,gFA4RC;AAED,SAAS,yBAAyB,CAAC,aAAqB;IACtD,MAAM,eAAe,GAAG,oDAAoD,CAAC;IAC7E,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;IAE/C,IACE,CAAC,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC;QACxC,CAAC,aAAa,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAC3C,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,aAAa;SACjB,OAAO,CACN,eAAe,EACf,4EAA4E,CAC7E;SACA,OAAO,CAAC,kBAAkB,EAAE,mCAAmC,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,yBAAyB,CAAC,WAAyC;IAC1E,OAAO;QACL,GAAG,IAAI,GAAG,CACR,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,IAAI,EAAE,CAAC,CACnE;KACF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,WAAyC;IACnE,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,sBAAsB,CAAC,WAAyC;IACvE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,IAAA,sDAAkB,EAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,+BAA+B,CACtC,gBAA8C,EAC9C,oBAAkD;IAElD,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAChC,sBAAsB,CAAC,oBAAoB,CAAC,CAC7C,CAAC;IAEF,OAAO,sBAAsB,CAAC,gBAAgB,CAAC,CAAC,MAAM,CACpD,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CACxC,CAAC;AACJ,CAAC;AAED,SAAS,kCAAkC,CACzC,WAAyC;IAEzC,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACtC,UAAU,EAAE,UAAU,CAAC,UAAU;QACjC,SAAS,EAAE,UAAU,CAAC,SAAS;KAChC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,wCAAwC,CAC/C,WAAyC,EACzC,eAAiC;IAEjC,MAAM,SAAS,GAAG,IAAI,GAAG,CACvB,qBAAqB,CAAC,eAAe,CAAC,CAAC,GAAG,CACxC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,SAAS,EAAE,CACpD,CACF,CAAC;IAEF,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CACvC,SAAS,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC,CAClE,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,eAAiC;IAC9D,OAAO;QACL,GAAG,IAAI,GAAG,CACR,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YAC7B,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,SAAS,EAAE;YACxC,KAAK;SACN,CAAC,CACH,CAAC,MAAM,EAAE;KACX,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CACnC,UAAsC,EACtC,KAAe;IAEf,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,sBAAsB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,kCAAkC,CACzC,WAAyC,EACzC,UAAsC;IAEtC,OAAO,WAAW,CAAC,IAAI,CACrB,CAAC,SAAS,EAAE,EAAE,CACZ,+BAA+B,CAAC,SAAS,EAAE,UAAU,CAAC;QACtD,8BAA8B,CAAC,SAAS,EAAE,UAAU,CAAC,CACxD,CAAC;AACJ,CAAC;AAED,SAAS,+BAA+B,CACtC,IAAgC,EAChC,KAAiC;IAEjC,OAAO,CACL,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU;QACpC,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;QAClC,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,CACvC,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAChC,IAAgC,EAChC,KAAiC;IAEjC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;IAEtD,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,oBAAoB,CAAC,UAAsC;IAClE,OAAO,UAAU,CAAC,iBAAiB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,8BAA8B,CACrC,IAAgC,EAChC,KAAiC;IAEjC,OAAO,CACL,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC;QAClE,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC;YAClC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC;QACvC,uBAAuB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;QAChD,uBAAuB,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;QACxD,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACzC,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC/C,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,IAA4B;IACvD,OAAO,IAAI,IAAI,6BAAU,CAAC,UAAU,CAAC;AACvC,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAkC;IAChE,OAAO,OAAO,IAAI,mCAAa,CAAC,GAAG,CAAC;AACtC,CAAC;AAED,SAAS,uBAAuB,CAC9B,IAAwB,EACxB,KAAyB;IAEzB,MAAM,cAAc,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IAEzD,IAAI,cAAc,KAAK,SAAS,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClE,OAAO,cAAc,KAAK,eAAe,CAAC;IAC5C,CAAC;IAED,IAAI,cAAc,KAAK,SAAS,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClE,OAAO,IAAI,EAAE,IAAI,EAAE,KAAK,KAAK,EAAE,IAAI,EAAE,CAAC;IACxC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,yBAAyB,CAAC,UAA8B;IAC/D,MAAM,UAAU,GAAG,UAAU,EAAE,IAAI,EAAE,CAAC;IAEtC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,2BAA2B,CAAC,UAAU,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,2BAA2B,CAAC,UAAkB;IACrD,MAAM,MAAM,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAEpD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CACnB,+BAA+B,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CACxD,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,UAAkB;IAClD,MAAM,MAAM,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAC;IAE1D,IAAI,MAAM,EAAE,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACnE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK;QAC3B,GAAG,EAAE,MAAM,CAAC,GAAG;KAChB,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CAAC,UAAkB;IACxD,MAAM,GAAG,GAAG,kBAAkB,UAAU,EAAE,CAAC;IAE3C,IAAI,CAAC;QACH,OAAO;YACL,GAAG;YACH,SAAS,EAAE,IAAA,wBAAK,EAAC,GAAG,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAoB;SACxE,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,0BAA0B,GAC9B,+BAA+B,CAAC,UAAU,CAAC,CAAC;QAE9C,IAAI,0BAA0B,KAAK,UAAU,EAAE,CAAC;YAC9C,IAAI,CAAC;gBACH,MAAM,mBAAmB,GAAG,kBAAkB,0BAA0B,EAAE,CAAC;gBAE3E,OAAO;oBACL,GAAG,EAAE,mBAAmB;oBACxB,SAAS,EAAE,IAAA,wBAAK,EAAC,mBAAmB,EAAE;wBACpC,gBAAgB,EAAE,IAAI;qBACvB,CAAC,CAAC,CAAC,CAAoB;iBACzB,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,+BAA+B,CAAC,UAAkB;IACzD,qFAAqF;IACrF,OAAO,6BAA6B,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAC3D,OAAO;SACJ,OAAO,CAAC,8BAA8B,EAAE,WAAW,CAAC;SACpD,OAAO,CAAC,wBAAwB,EAAE,UAAU,CAAC,CACjD,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CACpC,UAAkB,EAClB,SAAsC;IAEtC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,OAAO,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAE1D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC9C,YAAY,GAAG,QAAQ,CAAC;QACxB,KAAK,GAAG,QAAQ,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAEtD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,qBAAqB,CAAC,UAAkB,EAAE,UAAkB;IACnE,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;QACnC,OAAO,uBAAuB,CAC5B,UAAU,EACV,UAAU,EACV,6BAA6B,CAAC,UAAU,EAAE,UAAU,CAAC,CACtD,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;QACnC,OAAO,uBAAuB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,yBAAyB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,6BAA6B,CAAC,UAAkB,EAAE,UAAkB;IAC3E,MAAM,WAAW,GAAG,UAAU,GAAG,CAAC,CAAC;IAEnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,WAAW,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,uBAAuB,CAC9B,UAAkB,EAClB,UAAkB,EAClB,qBAAqB,GAAG,KAAK;IAE7B,IAAI,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC;IAE3B,OAAO,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;QACjC,IAAI,qBAAqB,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;YACxD,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QAED,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;YAC9B,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QAED,IAAI,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAClC,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QAED,KAAK,IAAI,CAAC,CAAC;QACX,MAAM;IACR,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,SAA6B;IACxD,OAAO,SAAS,KAAK,SAAS,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,uBAAuB,CAAC,UAAkB,EAAE,UAAkB;IACrE,IAAI,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC;IAE3B,OAAO,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;QACjC,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;YAC9B,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QAED,IAAI,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAClC,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QAED,KAAK,IAAI,CAAC,CAAC;QACX,MAAM;IACR,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,yBAAyB,CAAC,UAAkB,EAAE,UAAkB;IACvE,MAAM,SAAS,GAAG,8BAA8B,CAAC,IAAI,CACnD,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAC7B,EAAE,CAAC,CAAC,CAAC,CAAC;IAEP,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAE9E,OAAO,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC;AAC3E,CAAC;AAUD,SAAS,+BAA+B,CACtC,KAAc,EACd,SAAiB;IAEjB,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,KAAK,KAAK,SAAS;YACxB,CAAC,CAAC,IAAI;YACN,CAAC,CAAE,KAA0C,CAAC;IAClD,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACxB,+BAA+B,CAAC,IAAI,EAAE,SAAS,CAAC,CACjD,CAAC;IACJ,CAAC;IAED,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,+BAA+B,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,IAAI,GAAG,KAAgC,CAAC;IAC9C,MAAM,OAAO,GAA6C,EAAE,CAAC;IAE7D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAE3B,IAAI,QAAQ,KAAK,SAAS,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YAClD,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,OAAO,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACtC,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,OAAO,IAAI,gCAAgC,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9D,OAAO,CAAC,IAAI,CAAC;gBACX,GAAG;gBACH,gCAAgC,CAAC,IAAI,EAAE,SAAS,CAAC;oBAC/C,+BAA+B,CAAC,QAAQ,EAAE,SAAS,CAAC;aACvD,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,iCAAiC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACjE,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC;gBACX,GAAG;gBACH,oCAAoC,CAAC,QAAQ,EAAE,SAAS,CAAC;aAC1D,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,+BAA+B,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,oCAAoC,CAC3C,KAAc,EACd,SAAiB;IAEjB,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,KAAK,KAAK,SAAS;YACxB,CAAC,CAAC,IAAI;YACN,CAAC,CAAE,KAA0C,CAAC;IAClD,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACxB,oCAAoC,CAAC,IAAI,EAAE,SAAS,CAAC,CACtD,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,KAAgC,CAAC;IAC9C,MAAM,OAAO,GAA6C,EAAE,CAAC;IAC7D,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC;IAElD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAE3B,IAAI,QAAQ,KAAK,SAAS,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YAClD,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,MAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,qCAAqC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACrE,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC;gBACX,GAAG;gBACH,oCAAoC,CAAC,QAAQ,EAAE,SAAS,CAAC;aAC1D,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,+BAA+B,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAAa;IAEb,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;QACvE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CACL,yBAAyB,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC;QAClD,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAChC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,yBAAyB,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC;AAC1E,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,GAAG,KAAgC,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;IAE3B,OAAO,CACL,IAAI,CAAC,YAAY,KAAK,IAAI;QAC1B,OAAO,QAAQ,KAAK,QAAQ;QAC5B,qCAAqC,CAAC,QAAQ,CAAC,KAAK,MAAM,CAC3D,CAAC;AACJ,CAAC;AAED,SAAS,gCAAgC,CAAC,KAA8B;IACtE,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC;AAC9D,CAAC;AAED,SAAS,gCAAgC,CACvC,KAA8B,EAC9B,SAAiB;IAEjB,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC;IAEjC,IACE,QAAQ,KAAK,IAAI;QACjB,OAAO,QAAQ,KAAK,QAAQ;QAC5B,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EACvB,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAI,QAAoC,CAAC,KAAK,CAAC;IAC1D,MAAM,GAAG,GAAI,QAAoC,CAAC,GAAG,CAAC;IAEtD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACzD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,yBAAyB,CAChC,KAAc,EACd,IAAW;IAEX,OAAO,CACL,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACpB,KAAiC,CAAC,IAAI,KAAK,IAAI,CACjD,CAAC;AACJ,CAAC;AAED,SAAS,qCAAqC,CAAC,QAAgB;IAC7D,OAAO,IAAA,+DAA0B,EAC/B,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAC5C,CAAC;AACJ,CAAC;AAED,SAAS,iCAAiC,CAAC,QAAgB;IACzD,OAAO,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC7C,CAAC;AAED,SAAS,oBAAoB,CAAC,KAA2B;IACvD,OAAO;QACL,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAC;KAC5E,CAAC,IAAI,EAAE,CAAC;AACX,CAAC;AAED,SAAS,qBAAqB,CAAC,WAAyC;IACtE,OAAO,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC3C,sBAAsB,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAC1E,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,UAAsC;IACpE,OAAO;QACL,UAAU,CAAC,UAAU;QACrB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,UAAU;KACtB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED,SAAS,2BAA2B,CAClC,UAAkB,EAClB,aAA4B;IAE5B,IAAI,UAAU,CAAC,MAAM,IAAI,8BAA8B,EAAE,CAAC;QACxD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO;QACL,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,GAAG,sBAAsB,CAAC,MAAM,CAAC;QAC3D,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,aAAa,CAAC;QACvC,sBAAsB;KACvB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED,SAAS,uBAAuB,CAAC,UAAkB,EAAE,cAAsB;IACzE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;IAE1C,IAAI,UAAU,CAAC,MAAM,GAAG,8BAA8B,EAAE,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,8BAA8B,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,SAAS,CAChB,KAAa,EACb,MAAc,EACd,aAA4B;IAE5B,OAAO,IAAA,wBAAU,EAAC,aAAa,CAAC;SAC7B,MAAM,CAAC,KAAK,CAAC;SACb,MAAM,CAAC,KAAK,CAAC;SACb,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,mCAAmC,CAC1C,GAAc;IAEd,OAAO;QACL,UAAU,EAAE,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,UAAU,EAAE;QAClD,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,IAAI,EACF,GAAG,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,6BAAU,CAAC,WAAW,CAAC,CAAC,CAAC,6BAAU,CAAC,UAAU;QAC3E,OAAO,EAAE,4BAA4B,CAAC,GAAG,CAAC,OAAO,CAAC;QAClD,KAAK,EAAE,GAAG,CAAC,IAAI,IAAI,SAAS;QAC5B,SAAS,EAAE,GAAG,CAAC,UAAU,IAAI,SAAS;QACtC,KAAK,EAAE,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAyB;IACxD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,oBAAoB,CACzB,KAAK;SACF,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;SACrB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC,CACnB,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CAAC,OAAkC;IACtE,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;QACpB,OAAO,mCAAa,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;QACpB,OAAO,mCAAa,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;QACpB,OAAO,mCAAa,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;QACpB,OAAO,mCAAa,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,OAAO,mCAAa,CAAC,GAAG,CAAC;AAC3B,CAAC;AAED,SAAS,sBAAsB,CAC7B,GAAW,EACX,UAAsC;IAEtC,OAAO,IAAI,MAAM,CACf,kDAAkD,2BAA2B,CAC3E,UAAU,CACX,aAAa,EACd,GAAG,CACJ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED,SAAS,2BAA2B,CAAC,UAAsC;IACzE,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC;IAExD,IAAI,UAAU,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACvC,OAAO,mBAAmB,KAAK,EAAE,CAAC;IACpC,CAAC;IAED,OAAO,IAAI,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,KAAK,EAAE,CAAC;AAC/D,CAAC;AAED,SAAS,mBAAmB,CAAC,UAA8B;IACzD,OAAO,CAAC,UAAU,IAAI,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;AACnE,CAAC;AAED,SAAS,YAAY,CAAC,cAAkC;IACtD,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,IAAI,cAAc,CAAC,UAAU,CAAC;IAExE,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,iBAAiB,aAAa,CAAC,cAAc,CAAC,6BAA6B,CAC5E,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,aAAa,CAAC,cAAkC;IACvD,OAAO,CACL,cAAc,CAAC,KAAK,EAAE,IAAI;QAC1B,cAAc,CAAC,SAAS;QACxB,cAAc,CAAC,IAAI;QACnB,eAAe,CAChB,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC"}
@@ -20,7 +20,7 @@ WorkspaceMember = __decorate([
20
20
  (0, policy_decorator_1.Policy)({
21
21
  name: "workspace_member_user_select_policy",
22
22
  command: policy_command_enum_1.PolicyCommand.SELECT,
23
- using: `((select app.get_context('user_id', null::bigint)) = "user_id")`,
23
+ using: `((select current_setting('app.user_id', true)::bigint) = "user_id")`,
24
24
  })
25
25
  ], WorkspaceMember);
26
26
  let WorkspaceMemberWithMultiplePolicies = class WorkspaceMemberWithMultiplePolicies {
@@ -29,12 +29,12 @@ WorkspaceMemberWithMultiplePolicies = __decorate([
29
29
  (0, policy_decorator_1.Policy)({
30
30
  name: "workspace_member_user_select_policy",
31
31
  command: policy_command_enum_1.PolicyCommand.SELECT,
32
- using: `((select app.get_context('user_id', null::bigint)) = "user_id")`,
32
+ using: `((select current_setting('app.user_id', true)::bigint) = "user_id")`,
33
33
  }),
34
34
  (0, policy_decorator_1.Policy)({
35
35
  name: "workspace_member_write_policy",
36
- using: `((select app.get_context('workspace_id', null::bigint)) = "workspace_id")`,
37
- withCheck: `((select app.get_context('workspace_id', null::bigint)) = "workspace_id")`,
36
+ using: `((select current_setting('app.workspace_id', true)::bigint) = "workspace_id")`,
37
+ withCheck: `((select current_setting('app.workspace_id', true)::bigint) = "workspace_id")`,
38
38
  })
39
39
  ], WorkspaceMemberWithMultiplePolicies);
40
40
  let WorkspaceMemberWithGeneratedPolicy = class WorkspaceMemberWithGeneratedPolicy {
@@ -300,7 +300,7 @@ describe("RowLevelSecurityMigrationGenerator", () => {
300
300
  table_name: "workspace_member",
301
301
  permissive: true,
302
302
  command: "r",
303
- qual: "(( SELECT app.get_context('tenant_id'::text, NULL::bigint) AS get_context) = workspace_id)",
303
+ qual: "(( SELECT current_setting('app.tenant_id'::text, true)::bigint) = workspace_id)",
304
304
  with_check: null,
305
305
  roles: ["authenticated"],
306
306
  },
@@ -340,7 +340,7 @@ describe("RowLevelSecurityMigrationGenerator", () => {
340
340
  expect(file).not.toContain("workspace_member_user_select_policy");
341
341
  });
342
342
  it("does not recreate unchanged policies when database expressions are deparsed", async () => {
343
- const execute = createExistingPolicyLookup("(( SELECT app.get_context('user_id'::text, NULL::bigint) AS get_context) = user_id)");
343
+ const execute = createExistingPolicyLookup("(( SELECT (current_setting('app.user_id'::text, true))::bigint AS current_setting) = user_id)");
344
344
  const superGenerate = mockBaseMigrationGenerate();
345
345
  const generator = createGenerator([
346
346
  {
@@ -366,8 +366,8 @@ describe("RowLevelSecurityMigrationGenerator", () => {
366
366
  table_name: "workspace_member_group_member",
367
367
  permissive: true,
368
368
  command: "*",
369
- qual: "(( SELECT app.get_context('workspace_id'::text, NULL::bigint) AS get_context) = workspace_id)",
370
- with_check: "(( SELECT app.get_context('workspace_id'::text, NULL::bigint) AS get_context) = workspace_id)",
369
+ qual: "(( SELECT (current_setting('app.workspace_id'::text, true))::bigint AS current_setting) = workspace_id)",
370
+ with_check: "(( SELECT (current_setting('app.workspace_id'::text, true))::bigint AS current_setting) = workspace_id)",
371
371
  roles: ["authenticated"],
372
372
  },
373
373
  ]));
@@ -397,19 +397,24 @@ describe("RowLevelSecurityMigrationGenerator", () => {
397
397
  });
398
398
  it.each([
399
399
  [
400
- "deparsed-style context call without generated alias",
401
- `(select app.get_context('user_id'::text, null::bigint)) = user_id`,
402
- "(( SELECT app.get_context('user_id'::text, NULL::bigint) AS get_context) = user_id)",
400
+ "deparsed-style context setting call",
401
+ `(select current_setting('app.user_id'::text, true)::bigint) = user_id`,
402
+ "(( SELECT current_setting('app.user_id'::text, true)::bigint) = user_id)",
403
+ ],
404
+ [
405
+ "function name casing and deparsed select alias",
406
+ `(select current_setting('app.user_id'::text, true)::bigint) = user_id`,
407
+ `(( SELECT (CURRENT_SETTING('app.user_id'::text, TRUE))::bigint AS current_setting) = user_id)`,
403
408
  ],
404
409
  [
405
410
  "integer alias and non-keyword identifier quotes",
406
- `((select app.get_context('workspace_id', null::int)) = "workspace_id")`,
407
- "(( SELECT app.get_context('workspace_id'::text, NULL::integer) AS get_context) = workspace_id)",
411
+ `((select current_setting('app.workspace_id', true)::integer) = "workspace_id")`,
412
+ "(( SELECT current_setting('app.workspace_id'::text, true)::integer) = workspace_id)",
408
413
  ],
409
414
  [
410
415
  "PostgreSQL keyword identifier quotes",
411
- `((select app.get_context('order_id', null::integer)) = "order")`,
412
- `(( SELECT app.get_context('order_id'::text, NULL::integer) AS get_context) = "order")`,
416
+ `((select current_setting('app.order_id', true)::integer) = "order")`,
417
+ `(( SELECT current_setting('app.order_id'::text, true)::integer) = "order")`,
413
418
  ],
414
419
  [
415
420
  "keyword casing and string literal casts",
@@ -423,19 +428,44 @@ describe("RowLevelSecurityMigrationGenerator", () => {
423
428
  ],
424
429
  [
425
430
  "varchar context type alias",
426
- `((select app.get_context('tenant_id', null::varchar(255))) = "tenant_id")`,
427
- "(( SELECT app.get_context('tenant_id'::text, NULL::character varying) AS get_context) = tenant_id)",
431
+ `((select current_setting('app.tenant_id', true)::character varying) = "tenant_id")`,
432
+ "(( SELECT current_setting('app.tenant_id'::text, true)::character varying) = tenant_id)",
433
+ ],
434
+ [
435
+ "parser fallback with escaped string literals",
436
+ `note = 'tenant''s ::character varying' AND ((select current_setting('app.tenant_id', true)::character varying) = tenant_id)`,
437
+ `note = 'tenant''s ::character varying' AND (( SELECT current_setting('app.tenant_id'::text, true)::character varying) = tenant_id)`,
438
+ ],
439
+ [
440
+ "parser fallback with quoted identifiers",
441
+ `"tenant::character varying" = ((select current_setting('app.tenant_id', true)::character varying))`,
442
+ `"tenant::character varying" = (( SELECT current_setting('app.tenant_id'::text, true)::character varying))`,
443
+ ],
444
+ [
445
+ "parser fallback with dollar-quoted strings exact match",
446
+ `note = $$::character varying$$ AND ((select current_setting('app.tenant_id', true)::character varying) = tenant_id)`,
447
+ `note = $$::character varying$$ AND ((select current_setting('app.tenant_id', true)::character varying) = tenant_id)`,
448
+ ],
449
+ [
450
+ "array type aliases",
451
+ `scopes::character varying[] = array['admin']::character varying[]`,
452
+ `scopes::varchar[] = array['admin']::varchar[]`,
428
453
  ],
429
454
  [
430
455
  "timestamptz context type alias",
431
- `((select app.get_context('expires_at', null::timestamptz)) > expires_at)`,
432
- "(( SELECT app.get_context('expires_at'::text, NULL::timestamp with time zone) AS get_context) > expires_at)",
456
+ `((select current_setting('app.expires_at', true)::timestamp with time zone) > expires_at)`,
457
+ "(( SELECT current_setting('app.expires_at'::text, true)::timestamp with time zone) > expires_at)",
433
458
  ],
434
459
  [
435
460
  "PostgreSQL canonical not-equals operator",
436
461
  `status != 'deleted'`,
437
462
  `(status <> 'deleted'::text)`,
438
463
  ],
464
+ [
465
+ "unsupported PostgreSQL predicate syntax exact match",
466
+ "deleted_at IS DISTINCT FROM NULL",
467
+ "deleted_at IS DISTINCT FROM NULL",
468
+ ],
439
469
  ])("does not recreate unchanged explicit policies with %s", async (_name, using, databaseQual) => {
440
470
  let WorkspaceMemberWithExplicitPolicy = class WorkspaceMemberWithExplicitPolicy {
441
471
  };
@@ -456,6 +486,41 @@ describe("RowLevelSecurityMigrationGenerator", () => {
456
486
  `cast(user_id as integer) = 1`,
457
487
  `cast(user_id as bigint) = 1`,
458
488
  ],
489
+ [
490
+ "unsupported PostgreSQL predicate syntax",
491
+ "deleted_at IS DISTINCT FROM NULL",
492
+ "created_at IS DISTINCT FROM NULL",
493
+ ],
494
+ [
495
+ "unsupported PostgreSQL predicate syntax is compared with parseable syntax",
496
+ "deleted_at IS DISTINCT FROM NULL",
497
+ "deleted_at IS NULL",
498
+ ],
499
+ [
500
+ "parser fallback still fails after compatibility rewrites",
501
+ "note = $$::character varying$$ AND ((select current_setting('app.tenant_id', true)::character varying) = tenant_id)",
502
+ "note = $tag$::character varying$tag$ AND ((select current_setting('app.tenant_id', true)::character varying) = tenant_id)",
503
+ ],
504
+ [
505
+ "string literal text inside parser fallback expressions changes",
506
+ `note = '::character varying' AND ((select current_setting('app.tenant_id', true)::character varying) = tenant_id)`,
507
+ `note = '::varchar' AND (( SELECT current_setting('app.tenant_id'::text, true)::character varying) = tenant_id)`,
508
+ ],
509
+ [
510
+ "E-string literal text inside parser fallback expressions changes",
511
+ `note = E'foo\\'::character varying' AND ((select current_setting('app.tenant_id', true)::character varying) = tenant_id)`,
512
+ `note = E'foo\\'::varchar' AND (( SELECT current_setting('app.tenant_id'::text, true)::character varying) = tenant_id)`,
513
+ ],
514
+ [
515
+ "quoted text-like type casts change",
516
+ `is_allowed('x'::"Text")`,
517
+ `is_allowed('x')`,
518
+ ],
519
+ [
520
+ "large integer literal changes",
521
+ "id = 9007199254740992",
522
+ "id = 9007199254740993",
523
+ ],
459
524
  ])("recreates changed explicit policies when %s", async (_name, using, databaseQual) => {
460
525
  let WorkspaceMemberWithChangedExplicitPolicy = class WorkspaceMemberWithChangedExplicitPolicy {
461
526
  };
@@ -589,18 +654,20 @@ describe("RowLevelSecurityMigrationGenerator", () => {
589
654
  down: [],
590
655
  });
591
656
  expect(file).toContain("extends RowLevelSecurityMigration");
592
- expect(file).toContain("this.addSql(`do \\$\\$ begin if not exists (select 1 from pg_roles where rolname = 'anonymous') then create role anonymous nologin; end if; end \\$\\$;`);");
593
- expect(file).toContain("this.addSql(`create schema if not exists app;`);");
594
- expect(file).toContain("this.addSql(`create or replace function app.get_context(context_key text, context_type anyelement) returns anyelement as \\$\\$ declare context_value text; begin context_value := current_setting('app.' || context_key, true); if context_value is null or context_value = '' then return null; end if; execute format('select \\$1::%s', pg_typeof(context_type)::text) using context_value into context_type; return context_type; end; \\$\\$ language plpgsql stable;`);");
657
+ expect(file).not.toContain("create schema if not exists app");
658
+ expect(file).not.toContain("grant usage on schema app");
659
+ expect(file).not.toContain("create role anonymous");
660
+ expect(file).not.toContain("grant anonymous to current_user");
661
+ expect(file).not.toContain("app.get_context");
595
662
  expect(file).not.toContain("get_tenant_id()");
596
663
  expect(file).not.toContain("get_policy_context");
597
664
  expect(file).not.toContain("create schema if not exists extensions");
598
665
  expect(file).not.toContain("grant usage on schema extensions");
599
666
  expect(file).toContain('this.addSql(`alter table "public"."workspace_member" enable row level security;`);');
600
667
  expect(file).toContain('this.addSql(`drop policy if exists workspace_member_user_select_policy on "public"."workspace_member";`);');
601
- expect(file).toContain('this.addSql(`create policy workspace_member_user_select_policy on "public"."workspace_member" as permissive for select using ((select app.get_context(\'user_id\', null::bigint)) = "user_id");`);');
668
+ expect(file).toContain('this.addSql(`create policy workspace_member_user_select_policy on "public"."workspace_member" as permissive for select using ((select current_setting(\'app.user_id\', true)::bigint) = "user_id");`);');
602
669
  });
603
- it("creates anonymous and custom policy roles in up and revokes generated grants in down", () => {
670
+ it("grants policy privileges for custom policy roles without role bootstrap SQL", () => {
604
671
  const generator = createGenerator([
605
672
  {
606
673
  class: WorkspaceMemberWithCustomRole,
@@ -611,12 +678,15 @@ describe("RowLevelSecurityMigrationGenerator", () => {
611
678
  up: [],
612
679
  down: [],
613
680
  });
614
- expect(file).toContain("this.addSql(`do \\$\\$ begin if not exists (select 1 from pg_roles where rolname = 'anonymous') then create role anonymous nologin; end if; end \\$\\$;`);");
615
- expect(file).toContain("this.addSql(`do \\$\\$ begin if not exists (select 1 from pg_roles where rolname = 'workspace_admin') then create role workspace_admin nologin; end if; end \\$\\$;`);");
681
+ expect(file).not.toContain("grant usage on schema app");
682
+ expect(file).not.toContain("create role anonymous");
683
+ expect(file).not.toContain("create role workspace_admin");
684
+ expect(file).not.toContain("grant anonymous to current_user");
685
+ expect(file).not.toContain("grant workspace_admin to current_user");
616
686
  expect(file).toContain('this.addSql(`grant select on table "public"."workspace_member" to workspace_admin;`);');
617
687
  expect(file).toContain('this.addSql(`revoke select on table "public"."workspace_member" from workspace_admin;`);');
618
- expect(file).toContain("this.addSql(`revoke usage on schema app from workspace_admin;`);");
619
- expect(file).toContain("this.addSql(`revoke workspace_admin from current_user;`);");
688
+ expect(file).not.toContain("revoke usage on schema app");
689
+ expect(file).not.toContain("revoke workspace_admin from current_user");
620
690
  expect(file).not.toContain("drop role workspace_admin");
621
691
  });
622
692
  it("keeps grants required by pre-existing policies when rolling back added policies", () => {
@@ -649,7 +719,7 @@ describe("RowLevelSecurityMigrationGenerator", () => {
649
719
  expect(file).not.toContain("this.addSql(`revoke usage on schema app from workspace_admin;`);");
650
720
  expect(file).not.toContain("this.addSql(`revoke workspace_admin from current_user;`);");
651
721
  });
652
- it("keeps role grants required by policies outside the generated diff", () => {
722
+ it("keeps schema grants required by policies outside the generated diff", () => {
653
723
  const generator = createGenerator([
654
724
  {
655
725
  class: WorkspaceMemberWithCustomRole,
@@ -728,7 +798,7 @@ describe("RowLevelSecurityMigrationGenerator", () => {
728
798
  });
729
799
  expect(file).toContain("drop policy if exists workspace_member_user_select_policy");
730
800
  expect(file).toContain("create policy workspace_member_user_select_policy on");
731
- expect(file).toContain("using ((select app.get_context('user_id', null::bigint)) = \"user_id\")");
801
+ expect(file).toContain("using ((select current_setting('app.user_id', true)::bigint) = \"user_id\")");
732
802
  expect(file).toContain("for select to authenticated using (false)");
733
803
  });
734
804
  it("matches create table statements for non-public schemas and collection names", () => {
@@ -756,8 +826,8 @@ describe("RowLevelSecurityMigrationGenerator", () => {
756
826
  up: [],
757
827
  down: [],
758
828
  });
759
- expect(file).toContain('this.addSql(`create policy workspace_member_write_policy on "public"."workspace_member" as permissive for all using ((select app.get_context(\'workspace_id\', null::bigint)) = "workspace_id") with check ((select app.get_context(\'workspace_id\', null::bigint)) = "workspace_id");`);');
760
- expect(file).toContain('this.addSql(`create policy workspace_member_user_select_policy on "public"."workspace_member" as permissive for select using ((select app.get_context(\'user_id\', null::bigint)) = "user_id");`);');
829
+ expect(file).toContain('this.addSql(`create policy workspace_member_write_policy on "public"."workspace_member" as permissive for all using ((select current_setting(\'app.workspace_id\', true)::bigint) = "workspace_id") with check ((select current_setting(\'app.workspace_id\', true)::bigint) = "workspace_id");`);');
830
+ expect(file).toContain('this.addSql(`create policy workspace_member_user_select_policy on "public"."workspace_member" as permissive for select using ((select current_setting(\'app.user_id\', true)::bigint) = "user_id");`);');
761
831
  });
762
832
  it("generates property context policy SQL from entity metadata", () => {
763
833
  const generator = createGenerator([
@@ -784,7 +854,7 @@ describe("RowLevelSecurityMigrationGenerator", () => {
784
854
  up: [],
785
855
  down: [],
786
856
  });
787
- expect(file).toContain('this.addSql(`create policy workspace_member_user_select_policy on "public"."workspace_member" as permissive for select using (( SELECT app.get_context(\'user_id\'::text, NULL::bigint) AS get_context) = user_id);`);');
857
+ expect(file).toContain('this.addSql(`create policy workspace_member_user_select_policy on "public"."workspace_member" as permissive for select using ((select current_setting(\'app.user_id\', true)::bigint) = user_id);`);');
788
858
  });
789
859
  it("shortens generated policy names longer than PostgreSQL identifier limit", () => {
790
860
  const generator = createGenerator([
@@ -825,7 +895,7 @@ describe("RowLevelSecurityMigrationGenerator", () => {
825
895
  up: [],
826
896
  down: [],
827
897
  });
828
- expect(file).toContain("app.get_context('workspace_id'::text, NULL::integer)");
898
+ expect(file).toContain("current_setting('app.workspace_id', true)::integer");
829
899
  });
830
900
  it("preserves quoted PostgreSQL keyword column names in generated policies", () => {
831
901
  const generator = createGenerator([
@@ -844,7 +914,7 @@ describe("RowLevelSecurityMigrationGenerator", () => {
844
914
  up: [],
845
915
  down: [],
846
916
  });
847
- expect(file).toContain(`using (( SELECT app.get_context('workspace_id'::text, NULL::integer) AS get_context) = "between")`);
917
+ expect(file).toContain(`using ((select current_setting('app.workspace_id', true)::integer) = "between")`);
848
918
  });
849
919
  it("keeps default MikroORM output for unrelated schema changes", () => {
850
920
  const generator = createGenerator([
@@ -915,7 +985,7 @@ describe("RowLevelSecurityMigrator", () => {
915
985
  table_name: "workspace_member",
916
986
  permissive: true,
917
987
  command: "r",
918
- qual: "(( SELECT app.get_context('tenant_id'::text, NULL::bigint) AS get_context) = workspace_id)",
988
+ qual: "(( SELECT current_setting('app.tenant_id'::text, true)::bigint) = workspace_id)",
919
989
  with_check: null,
920
990
  roles: ["authenticated"],
921
991
  },
@@ -952,8 +1022,8 @@ describe("RowLevelSecurityMigrator", () => {
952
1022
  expect(result.diff).toBe(diff);
953
1023
  expect(result.code).toContain("extends RowLevelSecurityMigration");
954
1024
  expect(result.code).toContain("drop policy if exists workspace_member_workspace_select_policy");
955
- expect(result.code).toContain("app.get_context('workspace_id'::text, NULL::bigint)");
956
- expect(result.code).toContain("app.get_context('tenant_id'::text, NULL::bigint)");
1025
+ expect(result.code).toContain("current_setting('app.workspace_id', true)::bigint");
1026
+ expect(result.code).toContain("current_setting('app.tenant_id'::text, true)::bigint");
957
1027
  expect(result.code.indexOf("drop policy if exists workspace_member_workspace_select_policy")).toBeLessThan(result.code.indexOf("create policy workspace_member_workspace_select_policy"));
958
1028
  expect(storeCurrentSchema).toHaveBeenCalledTimes(1);
959
1029
  }
@@ -1 +1 @@
1
- {"version":3,"file":"row-level-security-migration-generator.spec.js","sourceRoot":"","sources":["../src/row-level-security-migration-generator.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"row-level-security-migration-generator.spec.js","sourceRoot":"","sources":["../src/row-level-security-migration-generator.spec.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { Migration } from "@mikro-orm/migrations";
2
2
  import type { PolicySqlOptions } from "./interfaces/policy-sql-options.interface";
3
3
  /** Base MikroORM migration with convenience helpers for row-level security SQL. */
4
4
  export declare abstract class RowLevelSecurityMigration extends Migration {
5
- /** Adds the shared RLS schema, helper function, roles, and role grants. */
5
+ /** Adds shared RLS bootstrap SQL. Currently no-op; roles are managed outside migrations. */
6
6
  protected addRowLevelSecurityBootstrapSql(roles?: string[]): void;
7
7
  /** Adds SQL that enables RLS and creates the configured policy. */
8
8
  protected addPolicySql(options: PolicySqlOptions): void;
@@ -7,7 +7,7 @@ const create_policy_role_sql_statements_1 = require("./utils/create-policy-role-
7
7
  const create_policy_up_sql_statements_1 = require("./utils/create-policy-up-sql-statements");
8
8
  /** Base MikroORM migration with convenience helpers for row-level security SQL. */
9
9
  class RowLevelSecurityMigration extends migrations_1.Migration {
10
- /** Adds the shared RLS schema, helper function, roles, and role grants. */
10
+ /** Adds shared RLS bootstrap SQL. Currently no-op; roles are managed outside migrations. */
11
11
  addRowLevelSecurityBootstrapSql(roles = []) {
12
12
  for (const sql of (0, create_policy_bootstrap_sql_statements_1.createPolicyBootstrapSqlStatements)()) {
13
13
  this.addSql(sql);
@@ -1 +1 @@
1
- {"version":3,"file":"row-level-security-migration.js","sourceRoot":"","sources":["../src/row-level-security-migration.ts"],"names":[],"mappings":";;;AAAA,sDAAkD;AAGlD,2GAAoG;AACpG,iGAA4F;AAC5F,6FAAsF;AAEtF,mFAAmF;AACnF,MAAsB,yBAA0B,SAAQ,sBAAS;IAC/D,2EAA2E;IACjE,+BAA+B,CAAC,QAAkB,EAAE;QAC5D,KAAK,MAAM,GAAG,IAAI,IAAA,2EAAkC,GAAE,EAAE,CAAC;YACvD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,IAAA,mEAA+B,EAAC,KAAK,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,mEAAmE;IACzD,YAAY,CAAC,OAAyB;QAC9C,KAAK,MAAM,GAAG,IAAI,IAAA,mEAA+B,EAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,IAAA,6DAA2B,EAAC,OAAO,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;CACF;AAtBD,8DAsBC"}
1
+ {"version":3,"file":"row-level-security-migration.js","sourceRoot":"","sources":["../src/row-level-security-migration.ts"],"names":[],"mappings":";;;AAAA,sDAAkD;AAGlD,2GAAoG;AACpG,iGAA4F;AAC5F,6FAAsF;AAEtF,mFAAmF;AACnF,MAAsB,yBAA0B,SAAQ,sBAAS;IAC/D,4FAA4F;IAClF,+BAA+B,CAAC,QAAkB,EAAE;QAC5D,KAAK,MAAM,GAAG,IAAI,IAAA,2EAAkC,GAAE,EAAE,CAAC;YACvD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,IAAA,mEAA+B,EAAC,KAAK,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,mEAAmE;IACzD,YAAY,CAAC,OAAyB;QAC9C,KAAK,MAAM,GAAG,IAAI,IAAA,mEAA+B,EAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,IAAA,6DAA2B,EAAC,OAAO,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;CACF;AAtBD,8DAsBC"}
@@ -10,7 +10,7 @@ class TestRowLevelSecurityMigration extends row_level_security_migration_1.RowLe
10
10
  tableName: "workspace_member",
11
11
  policyName: "workspace_member_user_select_policy",
12
12
  command: policy_command_enum_1.PolicyCommand.SELECT,
13
- using: `((select app.get_context('user_id', null::bigint)) = "user_id")`,
13
+ using: `((select current_setting('app.user_id', true)::bigint) = "user_id")`,
14
14
  });
15
15
  }
16
16
  }
@@ -19,10 +19,11 @@ describe("RowLevelSecurityMigration", () => {
19
19
  const migration = new TestRowLevelSecurityMigration({}, {});
20
20
  migration.up();
21
21
  const queries = migration.getQueries();
22
- expect(queries).toContainEqual(expect.stringContaining("create role anonymous nologin"));
23
- expect(queries).toContainEqual(expect.stringContaining("grant anonymous to current_user"));
24
- expect(queries).toContainEqual(expect.stringContaining("create schema if not exists app"));
25
- expect(queries).toContainEqual(expect.stringContaining("create or replace function app.get_context"));
22
+ expect(queries.join("\n")).not.toContain("create schema if not exists app");
23
+ expect(queries.join("\n")).not.toContain("grant usage on schema app");
24
+ expect(queries.join("\n")).not.toContain("create role anonymous");
25
+ expect(queries.join("\n")).not.toContain("grant anonymous to current_user");
26
+ expect(queries.join("\n")).not.toContain("app.get_context");
26
27
  expect(queries).toContainEqual('alter table "public"."workspace_member" enable row level security;');
27
28
  expect(queries).toContainEqual('drop policy if exists workspace_member_user_select_policy on "public"."workspace_member";');
28
29
  expect(queries).toContainEqual(expect.stringContaining("create policy workspace_member_user_select_policy"));