drizzle-orm 1.0.0-beta.1-813549e → 1.0.0-beta.1-02522e1

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 (51) hide show
  1. package/cockroach-core/query-builders/count.cjs.map +1 -1
  2. package/cockroach-core/query-builders/count.d.cts +3 -2
  3. package/cockroach-core/query-builders/count.d.ts +3 -2
  4. package/cockroach-core/query-builders/count.js.map +1 -1
  5. package/cockroach-core/schema.cjs +8 -1
  6. package/cockroach-core/schema.cjs.map +1 -1
  7. package/cockroach-core/schema.js +9 -2
  8. package/cockroach-core/schema.js.map +1 -1
  9. package/cockroach-core/table.cjs +23 -2
  10. package/cockroach-core/table.cjs.map +1 -1
  11. package/cockroach-core/table.d.cts +4 -1
  12. package/cockroach-core/table.d.ts +4 -1
  13. package/cockroach-core/table.js +23 -2
  14. package/cockroach-core/table.js.map +1 -1
  15. package/gel-core/query-builders/count.cjs.map +1 -1
  16. package/gel-core/query-builders/count.d.cts +3 -2
  17. package/gel-core/query-builders/count.d.ts +3 -2
  18. package/gel-core/query-builders/count.js.map +1 -1
  19. package/package.json +97 -97
  20. package/pg-core/query-builders/count.cjs.map +1 -1
  21. package/pg-core/query-builders/count.d.cts +3 -2
  22. package/pg-core/query-builders/count.d.ts +3 -2
  23. package/pg-core/query-builders/count.js.map +1 -1
  24. package/pg-core/schema.cjs +7 -0
  25. package/pg-core/schema.cjs.map +1 -1
  26. package/pg-core/schema.js +8 -1
  27. package/pg-core/schema.js.map +1 -1
  28. package/pg-core/table.cjs +16 -8
  29. package/pg-core/table.cjs.map +1 -1
  30. package/pg-core/table.d.cts +5 -4
  31. package/pg-core/table.d.ts +5 -4
  32. package/pg-core/table.js +16 -8
  33. package/pg-core/table.js.map +1 -1
  34. package/relations.cjs +2 -0
  35. package/relations.cjs.map +1 -1
  36. package/relations.d.cts +3 -3
  37. package/relations.d.ts +3 -3
  38. package/relations.js +3 -1
  39. package/relations.js.map +1 -1
  40. package/sql/sql.cjs +0 -6
  41. package/sql/sql.cjs.map +1 -1
  42. package/sql/sql.d.cts +2 -2
  43. package/sql/sql.d.ts +2 -2
  44. package/sql/sql.js +0 -6
  45. package/sql/sql.js.map +1 -1
  46. package/table.cjs +0 -1
  47. package/table.cjs.map +1 -1
  48. package/table.d.cts +2 -3
  49. package/table.d.ts +2 -3
  50. package/table.js +0 -1
  51. package/table.js.map +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drizzle-orm",
3
- "version": "1.0.0-beta.1-813549e",
3
+ "version": "1.0.0-beta.1-02522e1",
4
4
  "description": "Drizzle ORM package for SQL databases",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -721,6 +721,54 @@
721
721
  "types": "./cockroach/session.d.ts",
722
722
  "default": "./cockroach/session.js"
723
723
  },
724
+ "./d1/driver": {
725
+ "import": {
726
+ "types": "./d1/driver.d.ts",
727
+ "default": "./d1/driver.js"
728
+ },
729
+ "require": {
730
+ "types": "./d1/driver.d.cts",
731
+ "default": "./d1/driver.cjs"
732
+ },
733
+ "types": "./d1/driver.d.ts",
734
+ "default": "./d1/driver.js"
735
+ },
736
+ "./d1": {
737
+ "import": {
738
+ "types": "./d1/index.d.ts",
739
+ "default": "./d1/index.js"
740
+ },
741
+ "require": {
742
+ "types": "./d1/index.d.cts",
743
+ "default": "./d1/index.cjs"
744
+ },
745
+ "types": "./d1/index.d.ts",
746
+ "default": "./d1/index.js"
747
+ },
748
+ "./d1/migrator": {
749
+ "import": {
750
+ "types": "./d1/migrator.d.ts",
751
+ "default": "./d1/migrator.js"
752
+ },
753
+ "require": {
754
+ "types": "./d1/migrator.d.cts",
755
+ "default": "./d1/migrator.cjs"
756
+ },
757
+ "types": "./d1/migrator.d.ts",
758
+ "default": "./d1/migrator.js"
759
+ },
760
+ "./d1/session": {
761
+ "import": {
762
+ "types": "./d1/session.d.ts",
763
+ "default": "./d1/session.js"
764
+ },
765
+ "require": {
766
+ "types": "./d1/session.d.cts",
767
+ "default": "./d1/session.cjs"
768
+ },
769
+ "types": "./d1/session.d.ts",
770
+ "default": "./d1/session.js"
771
+ },
724
772
  "./cockroach-core/alias": {
725
773
  "import": {
726
774
  "types": "./cockroach-core/alias.d.ts",
@@ -961,54 +1009,6 @@
961
1009
  "types": "./cockroach-core/view.d.ts",
962
1010
  "default": "./cockroach-core/view.js"
963
1011
  },
964
- "./d1/driver": {
965
- "import": {
966
- "types": "./d1/driver.d.ts",
967
- "default": "./d1/driver.js"
968
- },
969
- "require": {
970
- "types": "./d1/driver.d.cts",
971
- "default": "./d1/driver.cjs"
972
- },
973
- "types": "./d1/driver.d.ts",
974
- "default": "./d1/driver.js"
975
- },
976
- "./d1": {
977
- "import": {
978
- "types": "./d1/index.d.ts",
979
- "default": "./d1/index.js"
980
- },
981
- "require": {
982
- "types": "./d1/index.d.cts",
983
- "default": "./d1/index.cjs"
984
- },
985
- "types": "./d1/index.d.ts",
986
- "default": "./d1/index.js"
987
- },
988
- "./d1/migrator": {
989
- "import": {
990
- "types": "./d1/migrator.d.ts",
991
- "default": "./d1/migrator.js"
992
- },
993
- "require": {
994
- "types": "./d1/migrator.d.cts",
995
- "default": "./d1/migrator.cjs"
996
- },
997
- "types": "./d1/migrator.d.ts",
998
- "default": "./d1/migrator.js"
999
- },
1000
- "./d1/session": {
1001
- "import": {
1002
- "types": "./d1/session.d.ts",
1003
- "default": "./d1/session.js"
1004
- },
1005
- "require": {
1006
- "types": "./d1/session.d.cts",
1007
- "default": "./d1/session.cjs"
1008
- },
1009
- "types": "./d1/session.d.ts",
1010
- "default": "./d1/session.js"
1011
- },
1012
1012
  "./durable-sqlite/driver": {
1013
1013
  "import": {
1014
1014
  "types": "./durable-sqlite/driver.d.ts",
@@ -3517,54 +3517,6 @@
3517
3517
  "types": "./tursodatabase/wasm.d.ts",
3518
3518
  "default": "./tursodatabase/wasm.js"
3519
3519
  },
3520
- "./xata-http/driver": {
3521
- "import": {
3522
- "types": "./xata-http/driver.d.ts",
3523
- "default": "./xata-http/driver.js"
3524
- },
3525
- "require": {
3526
- "types": "./xata-http/driver.d.cts",
3527
- "default": "./xata-http/driver.cjs"
3528
- },
3529
- "types": "./xata-http/driver.d.ts",
3530
- "default": "./xata-http/driver.js"
3531
- },
3532
- "./xata-http": {
3533
- "import": {
3534
- "types": "./xata-http/index.d.ts",
3535
- "default": "./xata-http/index.js"
3536
- },
3537
- "require": {
3538
- "types": "./xata-http/index.d.cts",
3539
- "default": "./xata-http/index.cjs"
3540
- },
3541
- "types": "./xata-http/index.d.ts",
3542
- "default": "./xata-http/index.js"
3543
- },
3544
- "./xata-http/migrator": {
3545
- "import": {
3546
- "types": "./xata-http/migrator.d.ts",
3547
- "default": "./xata-http/migrator.js"
3548
- },
3549
- "require": {
3550
- "types": "./xata-http/migrator.d.cts",
3551
- "default": "./xata-http/migrator.cjs"
3552
- },
3553
- "types": "./xata-http/migrator.d.ts",
3554
- "default": "./xata-http/migrator.js"
3555
- },
3556
- "./xata-http/session": {
3557
- "import": {
3558
- "types": "./xata-http/session.d.ts",
3559
- "default": "./xata-http/session.js"
3560
- },
3561
- "require": {
3562
- "types": "./xata-http/session.d.cts",
3563
- "default": "./xata-http/session.cjs"
3564
- },
3565
- "types": "./xata-http/session.d.ts",
3566
- "default": "./xata-http/session.js"
3567
- },
3568
3520
  "./vercel-postgres/driver": {
3569
3521
  "import": {
3570
3522
  "types": "./vercel-postgres/driver.d.ts",
@@ -3613,6 +3565,54 @@
3613
3565
  "types": "./vercel-postgres/session.d.ts",
3614
3566
  "default": "./vercel-postgres/session.js"
3615
3567
  },
3568
+ "./xata-http/driver": {
3569
+ "import": {
3570
+ "types": "./xata-http/driver.d.ts",
3571
+ "default": "./xata-http/driver.js"
3572
+ },
3573
+ "require": {
3574
+ "types": "./xata-http/driver.d.cts",
3575
+ "default": "./xata-http/driver.cjs"
3576
+ },
3577
+ "types": "./xata-http/driver.d.ts",
3578
+ "default": "./xata-http/driver.js"
3579
+ },
3580
+ "./xata-http": {
3581
+ "import": {
3582
+ "types": "./xata-http/index.d.ts",
3583
+ "default": "./xata-http/index.js"
3584
+ },
3585
+ "require": {
3586
+ "types": "./xata-http/index.d.cts",
3587
+ "default": "./xata-http/index.cjs"
3588
+ },
3589
+ "types": "./xata-http/index.d.ts",
3590
+ "default": "./xata-http/index.js"
3591
+ },
3592
+ "./xata-http/migrator": {
3593
+ "import": {
3594
+ "types": "./xata-http/migrator.d.ts",
3595
+ "default": "./xata-http/migrator.js"
3596
+ },
3597
+ "require": {
3598
+ "types": "./xata-http/migrator.d.cts",
3599
+ "default": "./xata-http/migrator.cjs"
3600
+ },
3601
+ "types": "./xata-http/migrator.d.ts",
3602
+ "default": "./xata-http/migrator.js"
3603
+ },
3604
+ "./xata-http/session": {
3605
+ "import": {
3606
+ "types": "./xata-http/session.d.ts",
3607
+ "default": "./xata-http/session.js"
3608
+ },
3609
+ "require": {
3610
+ "types": "./xata-http/session.d.cts",
3611
+ "default": "./xata-http/session.cjs"
3612
+ },
3613
+ "types": "./xata-http/session.d.ts",
3614
+ "default": "./xata-http/session.js"
3615
+ },
3616
3616
  "./aws-data-api/common": {
3617
3617
  "import": {
3618
3618
  "types": "./aws-data-api/common/index.d.ts",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pg-core/query-builders/count.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { SQL, sql, type SQLWrapper } from '~/sql/sql.ts';\nimport type { NeonAuthToken } from '~/utils.ts';\nimport type { PgSession } from '../session.ts';\nimport type { PgTable } from '../table.ts';\n\nexport class PgCountBuilder<\n\tTSession extends PgSession<any, any, any>,\n> extends SQL<number> implements Promise<number>, SQLWrapper<number> {\n\tprivate sql: SQL<number>;\n\tprivate token?: NeonAuthToken;\n\n\tstatic override readonly [entityKind]: string = 'PgCountBuilder';\n\t[Symbol.toStringTag] = 'PgCountBuilder';\n\n\tprivate session: TSession;\n\n\tprivate static buildEmbeddedCount(\n\t\tsource: PgTable | SQL | SQLWrapper,\n\t\tfilters?: SQL<unknown>,\n\t): SQL<number> {\n\t\treturn sql<number>`(select count(*) from ${source}${sql.raw(' where ').if(filters)}${filters})`;\n\t}\n\n\tprivate static buildCount(\n\t\tsource: PgTable | SQL | SQLWrapper,\n\t\tfilters?: SQL<unknown>,\n\t): SQL<number> {\n\t\treturn sql<number>`select count(*) as count from ${source}${sql.raw(' where ').if(filters)}${filters};`;\n\t}\n\n\tconstructor(\n\t\treadonly params: {\n\t\t\tsource: PgTable | SQL | SQLWrapper;\n\t\t\tfilters?: SQL<unknown>;\n\t\t\tsession: TSession;\n\t\t},\n\t) {\n\t\tsuper(PgCountBuilder.buildEmbeddedCount(params.source, params.filters).queryChunks);\n\n\t\tthis.mapWith(Number);\n\n\t\tthis.session = params.session;\n\n\t\tthis.sql = PgCountBuilder.buildCount(\n\t\t\tparams.source,\n\t\t\tparams.filters,\n\t\t);\n\t}\n\n\t/** @intrnal */\n\tsetToken(token?: NeonAuthToken) {\n\t\tthis.token = token;\n\t\treturn this;\n\t}\n\n\tthen<TResult1 = number, TResult2 = never>(\n\t\tonfulfilled?: ((value: number) => TResult1 | PromiseLike<TResult1>) | null | undefined,\n\t\tonrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined,\n\t): Promise<TResult1 | TResult2> {\n\t\treturn Promise.resolve(this.session.count(this.sql, this.token))\n\t\t\t.then(\n\t\t\t\tonfulfilled,\n\t\t\t\tonrejected,\n\t\t\t);\n\t}\n\n\tcatch(\n\t\tonRejected?: ((reason: any) => any) | null | undefined,\n\t): Promise<number> {\n\t\treturn this.then(undefined, onRejected);\n\t}\n\n\tfinally(onFinally?: (() => void) | null | undefined): Promise<number> {\n\t\treturn this.then(\n\t\t\t(value) => {\n\t\t\t\tonFinally?.();\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\t(reason) => {\n\t\t\t\tonFinally?.();\n\t\t\t\tthrow reason;\n\t\t\t},\n\t\t);\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,iBAA0C;AAKnC,MAAM,uBAEH,eAA2D;AAAA,EAuBpE,YACU,QAKR;AACD,UAAM,eAAe,mBAAmB,OAAO,QAAQ,OAAO,OAAO,EAAE,WAAW;AANzE;AAQT,SAAK,QAAQ,MAAM;AAEnB,SAAK,UAAU,OAAO;AAEtB,SAAK,MAAM,eAAe;AAAA,MACzB,OAAO;AAAA,MACP,OAAO;AAAA,IACR;AAAA,EACD;AAAA,EAvCQ;AAAA,EACA;AAAA,EAER,QAA0B,wBAAU,IAAY;AAAA,EAChD,CAAC,OAAO,WAAW,IAAI;AAAA,EAEf;AAAA,EAER,OAAe,mBACd,QACA,SACc;AACd,WAAO,uCAAoC,MAAM,GAAG,eAAI,IAAI,SAAS,EAAE,GAAG,OAAO,CAAC,GAAG,OAAO;AAAA,EAC7F;AAAA,EAEA,OAAe,WACd,QACA,SACc;AACd,WAAO,+CAA4C,MAAM,GAAG,eAAI,IAAI,SAAS,EAAE,GAAG,OAAO,CAAC,GAAG,OAAO;AAAA,EACrG;AAAA;AAAA,EAsBA,SAAS,OAAuB;AAC/B,SAAK,QAAQ;AACb,WAAO;AAAA,EACR;AAAA,EAEA,KACC,aACA,YAC+B;AAC/B,WAAO,QAAQ,QAAQ,KAAK,QAAQ,MAAM,KAAK,KAAK,KAAK,KAAK,CAAC,EAC7D;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACF;AAAA,EAEA,MACC,YACkB;AAClB,WAAO,KAAK,KAAK,QAAW,UAAU;AAAA,EACvC;AAAA,EAEA,QAAQ,WAA8D;AACrE,WAAO,KAAK;AAAA,MACX,CAAC,UAAU;AACV,oBAAY;AACZ,eAAO;AAAA,MACR;AAAA,MACA,CAAC,WAAW;AACX,oBAAY;AACZ,cAAM;AAAA,MACP;AAAA,IACD;AAAA,EACD;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../src/pg-core/query-builders/count.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { SQL, sql, type SQLWrapper } from '~/sql/sql.ts';\nimport type { NeonAuthToken } from '~/utils.ts';\nimport type { PgSession } from '../session.ts';\nimport type { PgTable } from '../table.ts';\nimport type { PgViewBase } from '../view-base.ts';\n\nexport class PgCountBuilder<\n\tTSession extends PgSession<any, any, any>,\n> extends SQL<number> implements Promise<number>, SQLWrapper<number> {\n\tprivate sql: SQL<number>;\n\tprivate token?: NeonAuthToken;\n\n\tstatic override readonly [entityKind]: string = 'PgCountBuilder';\n\t[Symbol.toStringTag] = 'PgCountBuilder';\n\n\tprivate session: TSession;\n\n\tprivate static buildEmbeddedCount(\n\t\tsource: PgTable | PgViewBase | SQL | SQLWrapper,\n\t\tfilters?: SQL<unknown>,\n\t): SQL<number> {\n\t\treturn sql<number>`(select count(*) from ${source}${sql.raw(' where ').if(filters)}${filters})`;\n\t}\n\n\tprivate static buildCount(\n\t\tsource: PgTable | PgViewBase | SQL | SQLWrapper,\n\t\tfilters?: SQL<unknown>,\n\t): SQL<number> {\n\t\treturn sql<number>`select count(*) as count from ${source}${sql.raw(' where ').if(filters)}${filters};`;\n\t}\n\n\tconstructor(\n\t\treadonly params: {\n\t\t\tsource: PgTable | PgViewBase | SQL | SQLWrapper;\n\t\t\tfilters?: SQL<unknown>;\n\t\t\tsession: TSession;\n\t\t},\n\t) {\n\t\tsuper(PgCountBuilder.buildEmbeddedCount(params.source, params.filters).queryChunks);\n\n\t\tthis.mapWith(Number);\n\n\t\tthis.session = params.session;\n\n\t\tthis.sql = PgCountBuilder.buildCount(\n\t\t\tparams.source,\n\t\t\tparams.filters,\n\t\t);\n\t}\n\n\t/** @intrnal */\n\tsetToken(token?: NeonAuthToken) {\n\t\tthis.token = token;\n\t\treturn this;\n\t}\n\n\tthen<TResult1 = number, TResult2 = never>(\n\t\tonfulfilled?: ((value: number) => TResult1 | PromiseLike<TResult1>) | null | undefined,\n\t\tonrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined,\n\t): Promise<TResult1 | TResult2> {\n\t\treturn Promise.resolve(this.session.count(this.sql, this.token))\n\t\t\t.then(\n\t\t\t\tonfulfilled,\n\t\t\t\tonrejected,\n\t\t\t);\n\t}\n\n\tcatch(\n\t\tonRejected?: ((reason: any) => any) | null | undefined,\n\t): Promise<number> {\n\t\treturn this.then(undefined, onRejected);\n\t}\n\n\tfinally(onFinally?: (() => void) | null | undefined): Promise<number> {\n\t\treturn this.then(\n\t\t\t(value) => {\n\t\t\t\tonFinally?.();\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\t(reason) => {\n\t\t\t\tonFinally?.();\n\t\t\t\tthrow reason;\n\t\t\t},\n\t\t);\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,iBAA0C;AAMnC,MAAM,uBAEH,eAA2D;AAAA,EAuBpE,YACU,QAKR;AACD,UAAM,eAAe,mBAAmB,OAAO,QAAQ,OAAO,OAAO,EAAE,WAAW;AANzE;AAQT,SAAK,QAAQ,MAAM;AAEnB,SAAK,UAAU,OAAO;AAEtB,SAAK,MAAM,eAAe;AAAA,MACzB,OAAO;AAAA,MACP,OAAO;AAAA,IACR;AAAA,EACD;AAAA,EAvCQ;AAAA,EACA;AAAA,EAER,QAA0B,wBAAU,IAAY;AAAA,EAChD,CAAC,OAAO,WAAW,IAAI;AAAA,EAEf;AAAA,EAER,OAAe,mBACd,QACA,SACc;AACd,WAAO,uCAAoC,MAAM,GAAG,eAAI,IAAI,SAAS,EAAE,GAAG,OAAO,CAAC,GAAG,OAAO;AAAA,EAC7F;AAAA,EAEA,OAAe,WACd,QACA,SACc;AACd,WAAO,+CAA4C,MAAM,GAAG,eAAI,IAAI,SAAS,EAAE,GAAG,OAAO,CAAC,GAAG,OAAO;AAAA,EACrG;AAAA;AAAA,EAsBA,SAAS,OAAuB;AAC/B,SAAK,QAAQ;AACb,WAAO;AAAA,EACR;AAAA,EAEA,KACC,aACA,YAC+B;AAC/B,WAAO,QAAQ,QAAQ,KAAK,QAAQ,MAAM,KAAK,KAAK,KAAK,KAAK,CAAC,EAC7D;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACF;AAAA,EAEA,MACC,YACkB;AAClB,WAAO,KAAK,KAAK,QAAW,UAAU;AAAA,EACvC;AAAA,EAEA,QAAQ,WAA8D;AACrE,WAAO,KAAK;AAAA,MACX,CAAC,UAAU;AACV,oBAAY;AACZ,eAAO;AAAA,MACR;AAAA,MACA,CAAC,WAAW;AACX,oBAAY;AACZ,cAAM;AAAA,MACP;AAAA,IACD;AAAA,EACD;AACD;","names":[]}
@@ -3,9 +3,10 @@ import { SQL, type SQLWrapper } from "../../sql/sql.cjs";
3
3
  import type { NeonAuthToken } from "../../utils.cjs";
4
4
  import type { PgSession } from "../session.cjs";
5
5
  import type { PgTable } from "../table.cjs";
6
+ import type { PgViewBase } from "../view-base.cjs";
6
7
  export declare class PgCountBuilder<TSession extends PgSession<any, any, any>> extends SQL<number> implements Promise<number>, SQLWrapper<number> {
7
8
  readonly params: {
8
- source: PgTable | SQL | SQLWrapper;
9
+ source: PgTable | PgViewBase | SQL | SQLWrapper;
9
10
  filters?: SQL<unknown>;
10
11
  session: TSession;
11
12
  };
@@ -17,7 +18,7 @@ export declare class PgCountBuilder<TSession extends PgSession<any, any, any>> e
17
18
  private static buildEmbeddedCount;
18
19
  private static buildCount;
19
20
  constructor(params: {
20
- source: PgTable | SQL | SQLWrapper;
21
+ source: PgTable | PgViewBase | SQL | SQLWrapper;
21
22
  filters?: SQL<unknown>;
22
23
  session: TSession;
23
24
  });
@@ -3,9 +3,10 @@ import { SQL, type SQLWrapper } from "../../sql/sql.js";
3
3
  import type { NeonAuthToken } from "../../utils.js";
4
4
  import type { PgSession } from "../session.js";
5
5
  import type { PgTable } from "../table.js";
6
+ import type { PgViewBase } from "../view-base.js";
6
7
  export declare class PgCountBuilder<TSession extends PgSession<any, any, any>> extends SQL<number> implements Promise<number>, SQLWrapper<number> {
7
8
  readonly params: {
8
- source: PgTable | SQL | SQLWrapper;
9
+ source: PgTable | PgViewBase | SQL | SQLWrapper;
9
10
  filters?: SQL<unknown>;
10
11
  session: TSession;
11
12
  };
@@ -17,7 +18,7 @@ export declare class PgCountBuilder<TSession extends PgSession<any, any, any>> e
17
18
  private static buildEmbeddedCount;
18
19
  private static buildCount;
19
20
  constructor(params: {
20
- source: PgTable | SQL | SQLWrapper;
21
+ source: PgTable | PgViewBase | SQL | SQLWrapper;
21
22
  filters?: SQL<unknown>;
22
23
  session: TSession;
23
24
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pg-core/query-builders/count.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { SQL, sql, type SQLWrapper } from '~/sql/sql.ts';\nimport type { NeonAuthToken } from '~/utils.ts';\nimport type { PgSession } from '../session.ts';\nimport type { PgTable } from '../table.ts';\n\nexport class PgCountBuilder<\n\tTSession extends PgSession<any, any, any>,\n> extends SQL<number> implements Promise<number>, SQLWrapper<number> {\n\tprivate sql: SQL<number>;\n\tprivate token?: NeonAuthToken;\n\n\tstatic override readonly [entityKind]: string = 'PgCountBuilder';\n\t[Symbol.toStringTag] = 'PgCountBuilder';\n\n\tprivate session: TSession;\n\n\tprivate static buildEmbeddedCount(\n\t\tsource: PgTable | SQL | SQLWrapper,\n\t\tfilters?: SQL<unknown>,\n\t): SQL<number> {\n\t\treturn sql<number>`(select count(*) from ${source}${sql.raw(' where ').if(filters)}${filters})`;\n\t}\n\n\tprivate static buildCount(\n\t\tsource: PgTable | SQL | SQLWrapper,\n\t\tfilters?: SQL<unknown>,\n\t): SQL<number> {\n\t\treturn sql<number>`select count(*) as count from ${source}${sql.raw(' where ').if(filters)}${filters};`;\n\t}\n\n\tconstructor(\n\t\treadonly params: {\n\t\t\tsource: PgTable | SQL | SQLWrapper;\n\t\t\tfilters?: SQL<unknown>;\n\t\t\tsession: TSession;\n\t\t},\n\t) {\n\t\tsuper(PgCountBuilder.buildEmbeddedCount(params.source, params.filters).queryChunks);\n\n\t\tthis.mapWith(Number);\n\n\t\tthis.session = params.session;\n\n\t\tthis.sql = PgCountBuilder.buildCount(\n\t\t\tparams.source,\n\t\t\tparams.filters,\n\t\t);\n\t}\n\n\t/** @intrnal */\n\tsetToken(token?: NeonAuthToken) {\n\t\tthis.token = token;\n\t\treturn this;\n\t}\n\n\tthen<TResult1 = number, TResult2 = never>(\n\t\tonfulfilled?: ((value: number) => TResult1 | PromiseLike<TResult1>) | null | undefined,\n\t\tonrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined,\n\t): Promise<TResult1 | TResult2> {\n\t\treturn Promise.resolve(this.session.count(this.sql, this.token))\n\t\t\t.then(\n\t\t\t\tonfulfilled,\n\t\t\t\tonrejected,\n\t\t\t);\n\t}\n\n\tcatch(\n\t\tonRejected?: ((reason: any) => any) | null | undefined,\n\t): Promise<number> {\n\t\treturn this.then(undefined, onRejected);\n\t}\n\n\tfinally(onFinally?: (() => void) | null | undefined): Promise<number> {\n\t\treturn this.then(\n\t\t\t(value) => {\n\t\t\t\tonFinally?.();\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\t(reason) => {\n\t\t\t\tonFinally?.();\n\t\t\t\tthrow reason;\n\t\t\t},\n\t\t);\n\t}\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAC3B,SAAS,KAAK,WAA4B;AAKnC,MAAM,uBAEH,IAA2D;AAAA,EAuBpE,YACU,QAKR;AACD,UAAM,eAAe,mBAAmB,OAAO,QAAQ,OAAO,OAAO,EAAE,WAAW;AANzE;AAQT,SAAK,QAAQ,MAAM;AAEnB,SAAK,UAAU,OAAO;AAEtB,SAAK,MAAM,eAAe;AAAA,MACzB,OAAO;AAAA,MACP,OAAO;AAAA,IACR;AAAA,EACD;AAAA,EAvCQ;AAAA,EACA;AAAA,EAER,QAA0B,UAAU,IAAY;AAAA,EAChD,CAAC,OAAO,WAAW,IAAI;AAAA,EAEf;AAAA,EAER,OAAe,mBACd,QACA,SACc;AACd,WAAO,4BAAoC,MAAM,GAAG,IAAI,IAAI,SAAS,EAAE,GAAG,OAAO,CAAC,GAAG,OAAO;AAAA,EAC7F;AAAA,EAEA,OAAe,WACd,QACA,SACc;AACd,WAAO,oCAA4C,MAAM,GAAG,IAAI,IAAI,SAAS,EAAE,GAAG,OAAO,CAAC,GAAG,OAAO;AAAA,EACrG;AAAA;AAAA,EAsBA,SAAS,OAAuB;AAC/B,SAAK,QAAQ;AACb,WAAO;AAAA,EACR;AAAA,EAEA,KACC,aACA,YAC+B;AAC/B,WAAO,QAAQ,QAAQ,KAAK,QAAQ,MAAM,KAAK,KAAK,KAAK,KAAK,CAAC,EAC7D;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACF;AAAA,EAEA,MACC,YACkB;AAClB,WAAO,KAAK,KAAK,QAAW,UAAU;AAAA,EACvC;AAAA,EAEA,QAAQ,WAA8D;AACrE,WAAO,KAAK;AAAA,MACX,CAAC,UAAU;AACV,oBAAY;AACZ,eAAO;AAAA,MACR;AAAA,MACA,CAAC,WAAW;AACX,oBAAY;AACZ,cAAM;AAAA,MACP;AAAA,IACD;AAAA,EACD;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../src/pg-core/query-builders/count.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { SQL, sql, type SQLWrapper } from '~/sql/sql.ts';\nimport type { NeonAuthToken } from '~/utils.ts';\nimport type { PgSession } from '../session.ts';\nimport type { PgTable } from '../table.ts';\nimport type { PgViewBase } from '../view-base.ts';\n\nexport class PgCountBuilder<\n\tTSession extends PgSession<any, any, any>,\n> extends SQL<number> implements Promise<number>, SQLWrapper<number> {\n\tprivate sql: SQL<number>;\n\tprivate token?: NeonAuthToken;\n\n\tstatic override readonly [entityKind]: string = 'PgCountBuilder';\n\t[Symbol.toStringTag] = 'PgCountBuilder';\n\n\tprivate session: TSession;\n\n\tprivate static buildEmbeddedCount(\n\t\tsource: PgTable | PgViewBase | SQL | SQLWrapper,\n\t\tfilters?: SQL<unknown>,\n\t): SQL<number> {\n\t\treturn sql<number>`(select count(*) from ${source}${sql.raw(' where ').if(filters)}${filters})`;\n\t}\n\n\tprivate static buildCount(\n\t\tsource: PgTable | PgViewBase | SQL | SQLWrapper,\n\t\tfilters?: SQL<unknown>,\n\t): SQL<number> {\n\t\treturn sql<number>`select count(*) as count from ${source}${sql.raw(' where ').if(filters)}${filters};`;\n\t}\n\n\tconstructor(\n\t\treadonly params: {\n\t\t\tsource: PgTable | PgViewBase | SQL | SQLWrapper;\n\t\t\tfilters?: SQL<unknown>;\n\t\t\tsession: TSession;\n\t\t},\n\t) {\n\t\tsuper(PgCountBuilder.buildEmbeddedCount(params.source, params.filters).queryChunks);\n\n\t\tthis.mapWith(Number);\n\n\t\tthis.session = params.session;\n\n\t\tthis.sql = PgCountBuilder.buildCount(\n\t\t\tparams.source,\n\t\t\tparams.filters,\n\t\t);\n\t}\n\n\t/** @intrnal */\n\tsetToken(token?: NeonAuthToken) {\n\t\tthis.token = token;\n\t\treturn this;\n\t}\n\n\tthen<TResult1 = number, TResult2 = never>(\n\t\tonfulfilled?: ((value: number) => TResult1 | PromiseLike<TResult1>) | null | undefined,\n\t\tonrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined,\n\t): Promise<TResult1 | TResult2> {\n\t\treturn Promise.resolve(this.session.count(this.sql, this.token))\n\t\t\t.then(\n\t\t\t\tonfulfilled,\n\t\t\t\tonrejected,\n\t\t\t);\n\t}\n\n\tcatch(\n\t\tonRejected?: ((reason: any) => any) | null | undefined,\n\t): Promise<number> {\n\t\treturn this.then(undefined, onRejected);\n\t}\n\n\tfinally(onFinally?: (() => void) | null | undefined): Promise<number> {\n\t\treturn this.then(\n\t\t\t(value) => {\n\t\t\t\tonFinally?.();\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\t(reason) => {\n\t\t\t\tonFinally?.();\n\t\t\t\tthrow reason;\n\t\t\t},\n\t\t);\n\t}\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAC3B,SAAS,KAAK,WAA4B;AAMnC,MAAM,uBAEH,IAA2D;AAAA,EAuBpE,YACU,QAKR;AACD,UAAM,eAAe,mBAAmB,OAAO,QAAQ,OAAO,OAAO,EAAE,WAAW;AANzE;AAQT,SAAK,QAAQ,MAAM;AAEnB,SAAK,UAAU,OAAO;AAEtB,SAAK,MAAM,eAAe;AAAA,MACzB,OAAO;AAAA,MACP,OAAO;AAAA,IACR;AAAA,EACD;AAAA,EAvCQ;AAAA,EACA;AAAA,EAER,QAA0B,UAAU,IAAY;AAAA,EAChD,CAAC,OAAO,WAAW,IAAI;AAAA,EAEf;AAAA,EAER,OAAe,mBACd,QACA,SACc;AACd,WAAO,4BAAoC,MAAM,GAAG,IAAI,IAAI,SAAS,EAAE,GAAG,OAAO,CAAC,GAAG,OAAO;AAAA,EAC7F;AAAA,EAEA,OAAe,WACd,QACA,SACc;AACd,WAAO,oCAA4C,MAAM,GAAG,IAAI,IAAI,SAAS,EAAE,GAAG,OAAO,CAAC,GAAG,OAAO;AAAA,EACrG;AAAA;AAAA,EAsBA,SAAS,OAAuB;AAC/B,SAAK,QAAQ;AACb,WAAO;AAAA,EACR;AAAA,EAEA,KACC,aACA,YAC+B;AAC/B,WAAO,QAAQ,QAAQ,KAAK,QAAQ,MAAM,KAAK,KAAK,KAAK,KAAK,CAAC,EAC7D;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACF;AAAA,EAEA,MACC,YACkB;AAClB,WAAO,KAAK,KAAK,QAAW,UAAU;AAAA,EACvC;AAAA,EAEA,QAAQ,WAA8D;AACrE,WAAO,KAAK;AAAA,MACX,CAAC,UAAU;AACV,oBAAY;AACZ,eAAO;AAAA,MACR;AAAA,MACA,CAAC,WAAW;AACX,oBAAY;AACZ,cAAM;AAAA,MACP;AAAA,IACD;AAAA,EACD;AACD;","names":[]}
@@ -32,6 +32,13 @@ var import_view = require("./view.cjs");
32
32
  class PgSchema {
33
33
  constructor(schemaName) {
34
34
  this.schemaName = schemaName;
35
+ this.table = Object.assign(this.table, {
36
+ withRLS: ((name, columns, extraConfig) => {
37
+ const table = (0, import_table.pgTableWithSchema)(name, columns, extraConfig, this.schemaName);
38
+ table[import_table.EnableRLS] = true;
39
+ return table;
40
+ })
41
+ });
35
42
  }
36
43
  static [import_entity.entityKind] = "PgSchema";
37
44
  isExisting = false;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/pg-core/schema.ts"],"sourcesContent":["import { entityKind, is } from '~/entity.ts';\nimport { SQL, sql, type SQLWrapper } from '~/sql/sql.ts';\nimport type { NonArray, Writable } from '~/utils.ts';\nimport { type PgEnum, type PgEnumObject, pgEnumObjectWithSchema, pgEnumWithSchema } from './columns/enum.ts';\nimport { type pgSequence, pgSequenceWithSchema } from './sequence.ts';\nimport { type PgTableFn, pgTableWithSchema } from './table.ts';\nimport { type pgMaterializedView, pgMaterializedViewWithSchema, type pgView, pgViewWithSchema } from './view.ts';\n\nexport class PgSchema<TName extends string = string> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'PgSchema';\n\n\tisExisting: boolean = false;\n\tconstructor(\n\t\tpublic readonly schemaName: TName,\n\t) {}\n\n\ttable: PgTableFn<TName> = ((name, columns, extraConfig) => {\n\t\treturn pgTableWithSchema(name, columns, extraConfig, this.schemaName);\n\t});\n\n\tview = ((name, columns) => {\n\t\treturn pgViewWithSchema(name, columns, this.schemaName);\n\t}) as typeof pgView;\n\n\tmaterializedView = ((name, columns) => {\n\t\treturn pgMaterializedViewWithSchema(name, columns, this.schemaName);\n\t}) as typeof pgMaterializedView;\n\n\tpublic enum<U extends string, T extends Readonly<[U, ...U[]]>>(\n\t\tenumName: string,\n\t\tvalues: T | Writable<T>,\n\t): PgEnum<Writable<T>>;\n\n\tpublic enum<E extends Record<string, string>>(\n\t\tenumName: string,\n\t\tenumObj: NonArray<E>,\n\t): PgEnumObject<E>;\n\n\tpublic enum(enumName: any, input: any): any {\n\t\treturn Array.isArray(input)\n\t\t\t? pgEnumWithSchema(\n\t\t\t\tenumName,\n\t\t\t\t[...input] as [string, ...string[]],\n\t\t\t\tthis.schemaName,\n\t\t\t)\n\t\t\t: pgEnumObjectWithSchema(enumName, input, this.schemaName);\n\t}\n\n\tsequence: typeof pgSequence = ((name, options) => {\n\t\treturn pgSequenceWithSchema(name, options, this.schemaName);\n\t});\n\n\tgetSQL(): SQL {\n\t\treturn new SQL([sql.identifier(this.schemaName)]);\n\t}\n\n\tshouldOmitSQLParens(): boolean {\n\t\treturn true;\n\t}\n\n\texisting(): this {\n\t\tthis.isExisting = true;\n\t\treturn this;\n\t}\n}\n\nexport function isPgSchema(obj: unknown): obj is PgSchema {\n\treturn is(obj, PgSchema);\n}\n\nexport function pgSchema<T extends string>(name: T) {\n\tif (name === 'public') {\n\t\tthrow new Error(\n\t\t\t`You can't specify 'public' as schema name. Postgres is using public schema by default. If you want to use 'public' schema, just use pgTable() instead of creating a schema`,\n\t\t);\n\t}\n\n\treturn new PgSchema(name);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA+B;AAC/B,iBAA0C;AAE1C,kBAAyF;AACzF,sBAAsD;AACtD,mBAAkD;AAClD,kBAAqG;AAE9F,MAAM,SAA8D;AAAA,EAI1E,YACiB,YACf;AADe;AAAA,EACd;AAAA,EALH,QAAiB,wBAAU,IAAY;AAAA,EAEvC,aAAsB;AAAA,EAKtB,SAA2B,CAAC,MAAM,SAAS,gBAAgB;AAC1D,eAAO,gCAAkB,MAAM,SAAS,aAAa,KAAK,UAAU;AAAA,EACrE;AAAA,EAEA,QAAQ,CAAC,MAAM,YAAY;AAC1B,eAAO,8BAAiB,MAAM,SAAS,KAAK,UAAU;AAAA,EACvD;AAAA,EAEA,oBAAoB,CAAC,MAAM,YAAY;AACtC,eAAO,0CAA6B,MAAM,SAAS,KAAK,UAAU;AAAA,EACnE;AAAA,EAYO,KAAK,UAAe,OAAiB;AAC3C,WAAO,MAAM,QAAQ,KAAK,QACvB;AAAA,MACD;AAAA,MACA,CAAC,GAAG,KAAK;AAAA,MACT,KAAK;AAAA,IACN,QACE,oCAAuB,UAAU,OAAO,KAAK,UAAU;AAAA,EAC3D;AAAA,EAEA,YAA+B,CAAC,MAAM,YAAY;AACjD,eAAO,sCAAqB,MAAM,SAAS,KAAK,UAAU;AAAA,EAC3D;AAAA,EAEA,SAAc;AACb,WAAO,IAAI,eAAI,CAAC,eAAI,WAAW,KAAK,UAAU,CAAC,CAAC;AAAA,EACjD;AAAA,EAEA,sBAA+B;AAC9B,WAAO;AAAA,EACR;AAAA,EAEA,WAAiB;AAChB,SAAK,aAAa;AAClB,WAAO;AAAA,EACR;AACD;AAEO,SAAS,WAAW,KAA+B;AACzD,aAAO,kBAAG,KAAK,QAAQ;AACxB;AAEO,SAAS,SAA2B,MAAS;AACnD,MAAI,SAAS,UAAU;AACtB,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO,IAAI,SAAS,IAAI;AACzB;","names":[]}
1
+ {"version":3,"sources":["../../src/pg-core/schema.ts"],"sourcesContent":["import { entityKind, is } from '~/entity.ts';\nimport { SQL, sql, type SQLWrapper } from '~/sql/sql.ts';\nimport type { NonArray, Writable } from '~/utils.ts';\nimport { type PgEnum, type PgEnumObject, pgEnumObjectWithSchema, pgEnumWithSchema } from './columns/enum.ts';\nimport { type pgSequence, pgSequenceWithSchema } from './sequence.ts';\nimport { EnableRLS, type PgTableFn, type PgTableFnInternal, pgTableWithSchema } from './table.ts';\nimport { type pgMaterializedView, pgMaterializedViewWithSchema, type pgView, pgViewWithSchema } from './view.ts';\n\nexport class PgSchema<TName extends string = string> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'PgSchema';\n\n\tisExisting: boolean = false;\n\tconstructor(\n\t\tpublic readonly schemaName: TName,\n\t) {\n\t\tthis.table = Object.assign(this.table, {\n\t\t\twithRLS: ((name, columns, extraConfig) => {\n\t\t\t\tconst table = pgTableWithSchema(name, columns, extraConfig, this.schemaName);\n\t\t\t\ttable[EnableRLS] = true;\n\n\t\t\t\treturn table;\n\t\t\t}) as PgTableFnInternal<TName>,\n\t\t});\n\t}\n\n\ttable: PgTableFn<TName> = ((name, columns, extraConfig) => {\n\t\treturn pgTableWithSchema(name, columns, extraConfig, this.schemaName);\n\t}) as PgTableFn<TName>;\n\n\tview = ((name, columns) => {\n\t\treturn pgViewWithSchema(name, columns, this.schemaName);\n\t}) as typeof pgView;\n\n\tmaterializedView = ((name, columns) => {\n\t\treturn pgMaterializedViewWithSchema(name, columns, this.schemaName);\n\t}) as typeof pgMaterializedView;\n\n\tpublic enum<U extends string, T extends Readonly<[U, ...U[]]>>(\n\t\tenumName: string,\n\t\tvalues: T | Writable<T>,\n\t): PgEnum<Writable<T>>;\n\n\tpublic enum<E extends Record<string, string>>(\n\t\tenumName: string,\n\t\tenumObj: NonArray<E>,\n\t): PgEnumObject<E>;\n\n\tpublic enum(enumName: any, input: any): any {\n\t\treturn Array.isArray(input)\n\t\t\t? pgEnumWithSchema(\n\t\t\t\tenumName,\n\t\t\t\t[...input] as [string, ...string[]],\n\t\t\t\tthis.schemaName,\n\t\t\t)\n\t\t\t: pgEnumObjectWithSchema(enumName, input, this.schemaName);\n\t}\n\n\tsequence: typeof pgSequence = ((name, options) => {\n\t\treturn pgSequenceWithSchema(name, options, this.schemaName);\n\t});\n\n\tgetSQL(): SQL {\n\t\treturn new SQL([sql.identifier(this.schemaName)]);\n\t}\n\n\tshouldOmitSQLParens(): boolean {\n\t\treturn true;\n\t}\n\n\texisting(): this {\n\t\tthis.isExisting = true;\n\t\treturn this;\n\t}\n}\n\nexport function isPgSchema(obj: unknown): obj is PgSchema {\n\treturn is(obj, PgSchema);\n}\n\nexport function pgSchema<T extends string>(name: T) {\n\tif (name === 'public') {\n\t\tthrow new Error(\n\t\t\t`You can't specify 'public' as schema name. Postgres is using public schema by default. If you want to use 'public' schema, just use pgTable() instead of creating a schema`,\n\t\t);\n\t}\n\n\treturn new PgSchema(name);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA+B;AAC/B,iBAA0C;AAE1C,kBAAyF;AACzF,sBAAsD;AACtD,mBAAqF;AACrF,kBAAqG;AAE9F,MAAM,SAA8D;AAAA,EAI1E,YACiB,YACf;AADe;AAEhB,SAAK,QAAQ,OAAO,OAAO,KAAK,OAAO;AAAA,MACtC,UAAU,CAAC,MAAM,SAAS,gBAAgB;AACzC,cAAM,YAAQ,gCAAkB,MAAM,SAAS,aAAa,KAAK,UAAU;AAC3E,cAAM,sBAAS,IAAI;AAEnB,eAAO;AAAA,MACR;AAAA,IACD,CAAC;AAAA,EACF;AAAA,EAdA,QAAiB,wBAAU,IAAY;AAAA,EAEvC,aAAsB;AAAA,EActB,SAA2B,CAAC,MAAM,SAAS,gBAAgB;AAC1D,eAAO,gCAAkB,MAAM,SAAS,aAAa,KAAK,UAAU;AAAA,EACrE;AAAA,EAEA,QAAQ,CAAC,MAAM,YAAY;AAC1B,eAAO,8BAAiB,MAAM,SAAS,KAAK,UAAU;AAAA,EACvD;AAAA,EAEA,oBAAoB,CAAC,MAAM,YAAY;AACtC,eAAO,0CAA6B,MAAM,SAAS,KAAK,UAAU;AAAA,EACnE;AAAA,EAYO,KAAK,UAAe,OAAiB;AAC3C,WAAO,MAAM,QAAQ,KAAK,QACvB;AAAA,MACD;AAAA,MACA,CAAC,GAAG,KAAK;AAAA,MACT,KAAK;AAAA,IACN,QACE,oCAAuB,UAAU,OAAO,KAAK,UAAU;AAAA,EAC3D;AAAA,EAEA,YAA+B,CAAC,MAAM,YAAY;AACjD,eAAO,sCAAqB,MAAM,SAAS,KAAK,UAAU;AAAA,EAC3D;AAAA,EAEA,SAAc;AACb,WAAO,IAAI,eAAI,CAAC,eAAI,WAAW,KAAK,UAAU,CAAC,CAAC;AAAA,EACjD;AAAA,EAEA,sBAA+B;AAC9B,WAAO;AAAA,EACR;AAAA,EAEA,WAAiB;AAChB,SAAK,aAAa;AAClB,WAAO;AAAA,EACR;AACD;AAEO,SAAS,WAAW,KAA+B;AACzD,aAAO,kBAAG,KAAK,QAAQ;AACxB;AAEO,SAAS,SAA2B,MAAS;AACnD,MAAI,SAAS,UAAU;AACtB,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO,IAAI,SAAS,IAAI;AACzB;","names":[]}
package/pg-core/schema.js CHANGED
@@ -2,11 +2,18 @@ import { entityKind, is } from "../entity.js";
2
2
  import { SQL, sql } from "../sql/sql.js";
3
3
  import { pgEnumObjectWithSchema, pgEnumWithSchema } from "./columns/enum.js";
4
4
  import { pgSequenceWithSchema } from "./sequence.js";
5
- import { pgTableWithSchema } from "./table.js";
5
+ import { EnableRLS, pgTableWithSchema } from "./table.js";
6
6
  import { pgMaterializedViewWithSchema, pgViewWithSchema } from "./view.js";
7
7
  class PgSchema {
8
8
  constructor(schemaName) {
9
9
  this.schemaName = schemaName;
10
+ this.table = Object.assign(this.table, {
11
+ withRLS: ((name, columns, extraConfig) => {
12
+ const table = pgTableWithSchema(name, columns, extraConfig, this.schemaName);
13
+ table[EnableRLS] = true;
14
+ return table;
15
+ })
16
+ });
10
17
  }
11
18
  static [entityKind] = "PgSchema";
12
19
  isExisting = false;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/pg-core/schema.ts"],"sourcesContent":["import { entityKind, is } from '~/entity.ts';\nimport { SQL, sql, type SQLWrapper } from '~/sql/sql.ts';\nimport type { NonArray, Writable } from '~/utils.ts';\nimport { type PgEnum, type PgEnumObject, pgEnumObjectWithSchema, pgEnumWithSchema } from './columns/enum.ts';\nimport { type pgSequence, pgSequenceWithSchema } from './sequence.ts';\nimport { type PgTableFn, pgTableWithSchema } from './table.ts';\nimport { type pgMaterializedView, pgMaterializedViewWithSchema, type pgView, pgViewWithSchema } from './view.ts';\n\nexport class PgSchema<TName extends string = string> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'PgSchema';\n\n\tisExisting: boolean = false;\n\tconstructor(\n\t\tpublic readonly schemaName: TName,\n\t) {}\n\n\ttable: PgTableFn<TName> = ((name, columns, extraConfig) => {\n\t\treturn pgTableWithSchema(name, columns, extraConfig, this.schemaName);\n\t});\n\n\tview = ((name, columns) => {\n\t\treturn pgViewWithSchema(name, columns, this.schemaName);\n\t}) as typeof pgView;\n\n\tmaterializedView = ((name, columns) => {\n\t\treturn pgMaterializedViewWithSchema(name, columns, this.schemaName);\n\t}) as typeof pgMaterializedView;\n\n\tpublic enum<U extends string, T extends Readonly<[U, ...U[]]>>(\n\t\tenumName: string,\n\t\tvalues: T | Writable<T>,\n\t): PgEnum<Writable<T>>;\n\n\tpublic enum<E extends Record<string, string>>(\n\t\tenumName: string,\n\t\tenumObj: NonArray<E>,\n\t): PgEnumObject<E>;\n\n\tpublic enum(enumName: any, input: any): any {\n\t\treturn Array.isArray(input)\n\t\t\t? pgEnumWithSchema(\n\t\t\t\tenumName,\n\t\t\t\t[...input] as [string, ...string[]],\n\t\t\t\tthis.schemaName,\n\t\t\t)\n\t\t\t: pgEnumObjectWithSchema(enumName, input, this.schemaName);\n\t}\n\n\tsequence: typeof pgSequence = ((name, options) => {\n\t\treturn pgSequenceWithSchema(name, options, this.schemaName);\n\t});\n\n\tgetSQL(): SQL {\n\t\treturn new SQL([sql.identifier(this.schemaName)]);\n\t}\n\n\tshouldOmitSQLParens(): boolean {\n\t\treturn true;\n\t}\n\n\texisting(): this {\n\t\tthis.isExisting = true;\n\t\treturn this;\n\t}\n}\n\nexport function isPgSchema(obj: unknown): obj is PgSchema {\n\treturn is(obj, PgSchema);\n}\n\nexport function pgSchema<T extends string>(name: T) {\n\tif (name === 'public') {\n\t\tthrow new Error(\n\t\t\t`You can't specify 'public' as schema name. Postgres is using public schema by default. If you want to use 'public' schema, just use pgTable() instead of creating a schema`,\n\t\t);\n\t}\n\n\treturn new PgSchema(name);\n}\n"],"mappings":"AAAA,SAAS,YAAY,UAAU;AAC/B,SAAS,KAAK,WAA4B;AAE1C,SAAyC,wBAAwB,wBAAwB;AACzF,SAA0B,4BAA4B;AACtD,SAAyB,yBAAyB;AAClD,SAAkC,8BAA2C,wBAAwB;AAE9F,MAAM,SAA8D;AAAA,EAI1E,YACiB,YACf;AADe;AAAA,EACd;AAAA,EALH,QAAiB,UAAU,IAAY;AAAA,EAEvC,aAAsB;AAAA,EAKtB,SAA2B,CAAC,MAAM,SAAS,gBAAgB;AAC1D,WAAO,kBAAkB,MAAM,SAAS,aAAa,KAAK,UAAU;AAAA,EACrE;AAAA,EAEA,QAAQ,CAAC,MAAM,YAAY;AAC1B,WAAO,iBAAiB,MAAM,SAAS,KAAK,UAAU;AAAA,EACvD;AAAA,EAEA,oBAAoB,CAAC,MAAM,YAAY;AACtC,WAAO,6BAA6B,MAAM,SAAS,KAAK,UAAU;AAAA,EACnE;AAAA,EAYO,KAAK,UAAe,OAAiB;AAC3C,WAAO,MAAM,QAAQ,KAAK,IACvB;AAAA,MACD;AAAA,MACA,CAAC,GAAG,KAAK;AAAA,MACT,KAAK;AAAA,IACN,IACE,uBAAuB,UAAU,OAAO,KAAK,UAAU;AAAA,EAC3D;AAAA,EAEA,YAA+B,CAAC,MAAM,YAAY;AACjD,WAAO,qBAAqB,MAAM,SAAS,KAAK,UAAU;AAAA,EAC3D;AAAA,EAEA,SAAc;AACb,WAAO,IAAI,IAAI,CAAC,IAAI,WAAW,KAAK,UAAU,CAAC,CAAC;AAAA,EACjD;AAAA,EAEA,sBAA+B;AAC9B,WAAO;AAAA,EACR;AAAA,EAEA,WAAiB;AAChB,SAAK,aAAa;AAClB,WAAO;AAAA,EACR;AACD;AAEO,SAAS,WAAW,KAA+B;AACzD,SAAO,GAAG,KAAK,QAAQ;AACxB;AAEO,SAAS,SAA2B,MAAS;AACnD,MAAI,SAAS,UAAU;AACtB,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO,IAAI,SAAS,IAAI;AACzB;","names":[]}
1
+ {"version":3,"sources":["../../src/pg-core/schema.ts"],"sourcesContent":["import { entityKind, is } from '~/entity.ts';\nimport { SQL, sql, type SQLWrapper } from '~/sql/sql.ts';\nimport type { NonArray, Writable } from '~/utils.ts';\nimport { type PgEnum, type PgEnumObject, pgEnumObjectWithSchema, pgEnumWithSchema } from './columns/enum.ts';\nimport { type pgSequence, pgSequenceWithSchema } from './sequence.ts';\nimport { EnableRLS, type PgTableFn, type PgTableFnInternal, pgTableWithSchema } from './table.ts';\nimport { type pgMaterializedView, pgMaterializedViewWithSchema, type pgView, pgViewWithSchema } from './view.ts';\n\nexport class PgSchema<TName extends string = string> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'PgSchema';\n\n\tisExisting: boolean = false;\n\tconstructor(\n\t\tpublic readonly schemaName: TName,\n\t) {\n\t\tthis.table = Object.assign(this.table, {\n\t\t\twithRLS: ((name, columns, extraConfig) => {\n\t\t\t\tconst table = pgTableWithSchema(name, columns, extraConfig, this.schemaName);\n\t\t\t\ttable[EnableRLS] = true;\n\n\t\t\t\treturn table;\n\t\t\t}) as PgTableFnInternal<TName>,\n\t\t});\n\t}\n\n\ttable: PgTableFn<TName> = ((name, columns, extraConfig) => {\n\t\treturn pgTableWithSchema(name, columns, extraConfig, this.schemaName);\n\t}) as PgTableFn<TName>;\n\n\tview = ((name, columns) => {\n\t\treturn pgViewWithSchema(name, columns, this.schemaName);\n\t}) as typeof pgView;\n\n\tmaterializedView = ((name, columns) => {\n\t\treturn pgMaterializedViewWithSchema(name, columns, this.schemaName);\n\t}) as typeof pgMaterializedView;\n\n\tpublic enum<U extends string, T extends Readonly<[U, ...U[]]>>(\n\t\tenumName: string,\n\t\tvalues: T | Writable<T>,\n\t): PgEnum<Writable<T>>;\n\n\tpublic enum<E extends Record<string, string>>(\n\t\tenumName: string,\n\t\tenumObj: NonArray<E>,\n\t): PgEnumObject<E>;\n\n\tpublic enum(enumName: any, input: any): any {\n\t\treturn Array.isArray(input)\n\t\t\t? pgEnumWithSchema(\n\t\t\t\tenumName,\n\t\t\t\t[...input] as [string, ...string[]],\n\t\t\t\tthis.schemaName,\n\t\t\t)\n\t\t\t: pgEnumObjectWithSchema(enumName, input, this.schemaName);\n\t}\n\n\tsequence: typeof pgSequence = ((name, options) => {\n\t\treturn pgSequenceWithSchema(name, options, this.schemaName);\n\t});\n\n\tgetSQL(): SQL {\n\t\treturn new SQL([sql.identifier(this.schemaName)]);\n\t}\n\n\tshouldOmitSQLParens(): boolean {\n\t\treturn true;\n\t}\n\n\texisting(): this {\n\t\tthis.isExisting = true;\n\t\treturn this;\n\t}\n}\n\nexport function isPgSchema(obj: unknown): obj is PgSchema {\n\treturn is(obj, PgSchema);\n}\n\nexport function pgSchema<T extends string>(name: T) {\n\tif (name === 'public') {\n\t\tthrow new Error(\n\t\t\t`You can't specify 'public' as schema name. Postgres is using public schema by default. If you want to use 'public' schema, just use pgTable() instead of creating a schema`,\n\t\t);\n\t}\n\n\treturn new PgSchema(name);\n}\n"],"mappings":"AAAA,SAAS,YAAY,UAAU;AAC/B,SAAS,KAAK,WAA4B;AAE1C,SAAyC,wBAAwB,wBAAwB;AACzF,SAA0B,4BAA4B;AACtD,SAAS,WAAmD,yBAAyB;AACrF,SAAkC,8BAA2C,wBAAwB;AAE9F,MAAM,SAA8D;AAAA,EAI1E,YACiB,YACf;AADe;AAEhB,SAAK,QAAQ,OAAO,OAAO,KAAK,OAAO;AAAA,MACtC,UAAU,CAAC,MAAM,SAAS,gBAAgB;AACzC,cAAM,QAAQ,kBAAkB,MAAM,SAAS,aAAa,KAAK,UAAU;AAC3E,cAAM,SAAS,IAAI;AAEnB,eAAO;AAAA,MACR;AAAA,IACD,CAAC;AAAA,EACF;AAAA,EAdA,QAAiB,UAAU,IAAY;AAAA,EAEvC,aAAsB;AAAA,EActB,SAA2B,CAAC,MAAM,SAAS,gBAAgB;AAC1D,WAAO,kBAAkB,MAAM,SAAS,aAAa,KAAK,UAAU;AAAA,EACrE;AAAA,EAEA,QAAQ,CAAC,MAAM,YAAY;AAC1B,WAAO,iBAAiB,MAAM,SAAS,KAAK,UAAU;AAAA,EACvD;AAAA,EAEA,oBAAoB,CAAC,MAAM,YAAY;AACtC,WAAO,6BAA6B,MAAM,SAAS,KAAK,UAAU;AAAA,EACnE;AAAA,EAYO,KAAK,UAAe,OAAiB;AAC3C,WAAO,MAAM,QAAQ,KAAK,IACvB;AAAA,MACD;AAAA,MACA,CAAC,GAAG,KAAK;AAAA,MACT,KAAK;AAAA,IACN,IACE,uBAAuB,UAAU,OAAO,KAAK,UAAU;AAAA,EAC3D;AAAA,EAEA,YAA+B,CAAC,MAAM,YAAY;AACjD,WAAO,qBAAqB,MAAM,SAAS,KAAK,UAAU;AAAA,EAC3D;AAAA,EAEA,SAAc;AACb,WAAO,IAAI,IAAI,CAAC,IAAI,WAAW,KAAK,UAAU,CAAC,CAAC;AAAA,EACjD;AAAA,EAEA,sBAA+B;AAC9B,WAAO;AAAA,EACR;AAAA,EAEA,WAAiB;AAChB,SAAK,aAAa;AAClB,WAAO;AAAA,EACR;AACD;AAEO,SAAS,WAAW,KAA+B;AACzD,SAAO,GAAG,KAAK,QAAQ;AACxB;AAEO,SAAS,SAA2B,MAAS;AACnD,MAAI,SAAS,UAAU;AACtB,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO,IAAI,SAAS,IAAI;AACzB;","names":[]}
package/pg-core/table.cjs CHANGED
@@ -73,20 +73,28 @@ function pgTableWithSchema(name, columns, extraConfig, schema, baseName = name)
73
73
  if (extraConfig) {
74
74
  table[PgTable.Symbol.ExtraConfigBuilder] = extraConfig;
75
75
  }
76
- return Object.assign(table, {
77
- enableRLS: () => {
78
- table[PgTable.Symbol.EnableRLS] = true;
79
- return table;
80
- }
81
- });
76
+ return table;
82
77
  }
83
- const pgTable = (name, columns, extraConfig) => {
78
+ const pgTableInternal = (name, columns, extraConfig) => {
84
79
  return pgTableWithSchema(name, columns, extraConfig, void 0);
85
80
  };
81
+ const pgTableWithRLS = (name, columns, extraConfig) => {
82
+ const table = pgTableWithSchema(name, columns, extraConfig, void 0);
83
+ table[EnableRLS] = true;
84
+ return table;
85
+ };
86
+ const pgTable = Object.assign(pgTableInternal, { withRLS: pgTableWithRLS });
86
87
  function pgTableCreator(customizeTableName) {
87
- return (name, columns, extraConfig) => {
88
+ const fn = (name, columns, extraConfig) => {
88
89
  return pgTableWithSchema(customizeTableName(name), columns, extraConfig, void 0, name);
89
90
  };
91
+ return Object.assign(fn, {
92
+ withRLS: ((name, columns, extraConfig) => {
93
+ const table = pgTableWithSchema(customizeTableName(name), columns, extraConfig, void 0, name);
94
+ table[EnableRLS] = true;
95
+ return table;
96
+ })
97
+ });
90
98
  }
91
99
  // Annotate the CommonJS export names for ESM import in node:
92
100
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/pg-core/table.ts"],"sourcesContent":["import type { BuildColumns, BuildExtraConfigColumns, ColumnBuilderBase } from '~/column-builder.ts';\nimport { entityKind } from '~/entity.ts';\nimport {\n\ttype InferTableColumnsModels,\n\tTable,\n\ttype TableConfig as TableConfigBase,\n\ttype UpdateTableConfig,\n} from '~/table.ts';\nimport type { CheckBuilder } from './checks.ts';\nimport { getPgColumnBuilders, type PgColumnsBuilders } from './columns/all.ts';\nimport type { ExtraConfigColumn, PgColumn, PgColumnBuilder, PgColumns } from './columns/common.ts';\nimport type { ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { AnyIndexBuilder } from './indexes.ts';\nimport type { PgPolicy } from './policies.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type PgTableExtraConfigValue =\n\t| AnyIndexBuilder\n\t| CheckBuilder\n\t| ForeignKeyBuilder\n\t| PrimaryKeyBuilder\n\t| UniqueConstraintBuilder\n\t| PgPolicy;\n\nexport type PgTableExtraConfig = Record<\n\tstring,\n\tPgTableExtraConfigValue\n>;\n\nexport type TableConfig = TableConfigBase<PgColumns>;\n\n/** @internal */\nexport const InlineForeignKeys = Symbol.for('drizzle:PgInlineForeignKeys');\n/** @internal */\nexport const EnableRLS = Symbol.for('drizzle:EnableRLS');\n\nexport class PgTable<T extends TableConfig = TableConfig> extends Table<T> {\n\tstatic override readonly [entityKind]: string = 'PgTable';\n\n\t/** @internal */\n\tstatic override readonly Symbol = Object.assign({}, Table.Symbol, {\n\t\tInlineForeignKeys: InlineForeignKeys as typeof InlineForeignKeys,\n\t\tEnableRLS: EnableRLS as typeof EnableRLS,\n\t});\n\n\t/**@internal */\n\t[InlineForeignKeys]: ForeignKey[] = [];\n\n\t/** @internal */\n\t[EnableRLS]: boolean = false;\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigBuilder]: ((self: Record<string, PgColumn>) => PgTableExtraConfig) | undefined =\n\t\tundefined;\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigColumns]: Record<string, ExtraConfigColumn> = {};\n}\n\nexport type AnyPgTable<TPartial extends Partial<TableConfig> = {}> = PgTable<UpdateTableConfig<TableConfig, TPartial>>;\n\nexport type PgTableWithColumns<\n\tT extends TableConfig,\n> =\n\t& PgTable<T>\n\t& T['columns']\n\t& InferTableColumnsModels<T['columns']>\n\t& {\n\t\tenableRLS: () => Omit<\n\t\t\tPgTableWithColumns<T>,\n\t\t\t'enableRLS'\n\t\t>;\n\t};\n\n/** @internal */\nexport function pgTableWithSchema<\n\tTTableName extends string,\n\tTSchemaName extends string | undefined,\n\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n>(\n\tname: TTableName,\n\tcolumns: TColumnsMap | ((columnTypes: PgColumnsBuilders) => TColumnsMap),\n\textraConfig:\n\t\t| ((self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig | PgTableExtraConfigValue[])\n\t\t| undefined,\n\tschema: TSchemaName,\n\tbaseName = name,\n): PgTableWithColumns<{\n\tname: TTableName;\n\tschema: TSchemaName;\n\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\tdialect: 'pg';\n}> {\n\tconst rawTable = new PgTable<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>(name, schema, baseName);\n\n\tconst parsedColumns: TColumnsMap = typeof columns === 'function' ? columns(getPgColumnBuilders()) : columns;\n\n\tconst builtColumns = Object.fromEntries(\n\t\tObject.entries(parsedColumns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as PgColumnBuilder;\n\t\t\tcolBuilder.setName(name);\n\t\t\tconst column = colBuilder.build(rawTable);\n\t\t\trawTable[InlineForeignKeys].push(...colBuilder.buildForeignKeys(column, rawTable));\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\n\tconst builtColumnsForExtraConfig = Object.fromEntries(\n\t\tObject.entries(parsedColumns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as PgColumnBuilder;\n\t\t\tcolBuilder.setName(name);\n\t\t\tconst column = colBuilder.buildExtraConfigColumn(rawTable);\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>;\n\n\tconst table = Object.assign(rawTable, builtColumns);\n\n\ttable[Table.Symbol.Columns] = builtColumns;\n\ttable[Table.Symbol.ExtraConfigColumns] = builtColumnsForExtraConfig;\n\n\tif (extraConfig) {\n\t\ttable[PgTable.Symbol.ExtraConfigBuilder] = extraConfig as any;\n\t}\n\n\treturn Object.assign(table, {\n\t\tenableRLS: () => {\n\t\t\ttable[PgTable.Symbol.EnableRLS] = true;\n\t\t\treturn table as PgTableWithColumns<{\n\t\t\t\tname: TTableName;\n\t\t\t\tschema: TSchemaName;\n\t\t\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\t\t\tdialect: 'pg';\n\t\t\t}>;\n\t\t},\n\t}) as any;\n}\n\nexport interface PgTableFn<TSchema extends string | undefined = undefined> {\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig?: (\n\t\t\tself: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>,\n\t\t) => PgTableExtraConfigValue[],\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: (columnTypes: PgColumnsBuilders) => TColumnsMap,\n\t\textraConfig?: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfigValue[],\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n\t/**\n\t * @deprecated The third parameter of pgTable is changing and will only accept an array instead of an object\n\t *\n\t * @example\n\t * Deprecated version:\n\t * ```ts\n\t * export const users = pgTable(\"users\", {\n\t * \tid: integer(),\n\t * }, (t) => ({\n\t * \tidx: index('custom_name').on(t.id)\n\t * }));\n\t * ```\n\t *\n\t * New API:\n\t * ```ts\n\t * export const users = pgTable(\"users\", {\n\t * \tid: integer(),\n\t * }, (t) => [\n\t * \tindex('custom_name').on(t.id)\n\t * ]);\n\t * ```\n\t */\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig: (\n\t\t\tself: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>,\n\t\t) => PgTableExtraConfig,\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n\n\t/**\n\t * @deprecated The third parameter of pgTable is changing and will only accept an array instead of an object\n\t *\n\t * @example\n\t * Deprecated version:\n\t * ```ts\n\t * export const users = pgTable(\"users\", {\n\t * \tid: integer(),\n\t * }, (t) => ({\n\t * \tidx: index('custom_name').on(t.id)\n\t * }));\n\t * ```\n\t *\n\t * New API:\n\t * ```ts\n\t * export const users = pgTable(\"users\", {\n\t * \tid: integer(),\n\t * }, (t) => [\n\t * \tindex('custom_name').on(t.id)\n\t * ]);\n\t * ```\n\t */\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: (columnTypes: PgColumnsBuilders) => TColumnsMap,\n\t\textraConfig: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig,\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n}\n\nexport const pgTable: PgTableFn = (name, columns, extraConfig) => {\n\treturn pgTableWithSchema(name, columns, extraConfig, undefined);\n};\n\nexport function pgTableCreator(customizeTableName: (name: string) => string): PgTableFn {\n\treturn (name, columns, extraConfig) => {\n\t\treturn pgTableWithSchema(customizeTableName(name) as typeof name, columns, extraConfig, undefined, name);\n\t};\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAC3B,mBAKO;AAEP,iBAA4D;AAwBrD,MAAM,oBAAoB,OAAO,IAAI,6BAA6B;AAElE,MAAM,YAAY,OAAO,IAAI,mBAAmB;AAEhD,MAAM,gBAAqD,mBAAS;AAAA,EAC1E,QAA0B,wBAAU,IAAY;AAAA;AAAA,EAGhD,OAAyB,SAAS,OAAO,OAAO,CAAC,GAAG,mBAAM,QAAQ;AAAA,IACjE;AAAA,IACA;AAAA,EACD,CAAC;AAAA;AAAA,EAGD,CAAC,iBAAiB,IAAkB,CAAC;AAAA;AAAA,EAGrC,CAAC,SAAS,IAAa;AAAA;AAAA,EAGvB,CAAU,mBAAM,OAAO,kBAAkB,IACxC;AAAA;AAAA,EAGD,CAAU,mBAAM,OAAO,kBAAkB,IAAuC,CAAC;AAClF;AAkBO,SAAS,kBAKf,MACA,SACA,aAGA,QACA,WAAW,MAMT;AACF,QAAM,WAAW,IAAI,QAKlB,MAAM,QAAQ,QAAQ;AAEzB,QAAM,gBAA6B,OAAO,YAAY,aAAa,YAAQ,gCAAoB,CAAC,IAAI;AAEpG,QAAM,eAAe,OAAO;AAAA,IAC3B,OAAO,QAAQ,aAAa,EAAE,IAAI,CAAC,CAACA,OAAM,cAAc,MAAM;AAC7D,YAAM,aAAa;AACnB,iBAAW,QAAQA,KAAI;AACvB,YAAM,SAAS,WAAW,MAAM,QAAQ;AACxC,eAAS,iBAAiB,EAAE,KAAK,GAAG,WAAW,iBAAiB,QAAQ,QAAQ,CAAC;AACjF,aAAO,CAACA,OAAM,MAAM;AAAA,IACrB,CAAC;AAAA,EACF;AAEA,QAAM,6BAA6B,OAAO;AAAA,IACzC,OAAO,QAAQ,aAAa,EAAE,IAAI,CAAC,CAACA,OAAM,cAAc,MAAM;AAC7D,YAAM,aAAa;AACnB,iBAAW,QAAQA,KAAI;AACvB,YAAM,SAAS,WAAW,uBAAuB,QAAQ;AACzD,aAAO,CAACA,OAAM,MAAM;AAAA,IACrB,CAAC;AAAA,EACF;AAEA,QAAM,QAAQ,OAAO,OAAO,UAAU,YAAY;AAElD,QAAM,mBAAM,OAAO,OAAO,IAAI;AAC9B,QAAM,mBAAM,OAAO,kBAAkB,IAAI;AAEzC,MAAI,aAAa;AAChB,UAAM,QAAQ,OAAO,kBAAkB,IAAI;AAAA,EAC5C;AAEA,SAAO,OAAO,OAAO,OAAO;AAAA,IAC3B,WAAW,MAAM;AAChB,YAAM,QAAQ,OAAO,SAAS,IAAI;AAClC,aAAO;AAAA,IAMR;AAAA,EACD,CAAC;AACF;AA2GO,MAAM,UAAqB,CAAC,MAAM,SAAS,gBAAgB;AACjE,SAAO,kBAAkB,MAAM,SAAS,aAAa,MAAS;AAC/D;AAEO,SAAS,eAAe,oBAAyD;AACvF,SAAO,CAAC,MAAM,SAAS,gBAAgB;AACtC,WAAO,kBAAkB,mBAAmB,IAAI,GAAkB,SAAS,aAAa,QAAW,IAAI;AAAA,EACxG;AACD;","names":["name"]}
1
+ {"version":3,"sources":["../../src/pg-core/table.ts"],"sourcesContent":["import type { BuildColumns, BuildExtraConfigColumns, ColumnBuilderBase } from '~/column-builder.ts';\nimport { entityKind } from '~/entity.ts';\nimport {\n\ttype InferTableColumnsModels,\n\tTable,\n\ttype TableConfig as TableConfigBase,\n\ttype UpdateTableConfig,\n} from '~/table.ts';\nimport type { CheckBuilder } from './checks.ts';\nimport { getPgColumnBuilders, type PgColumnsBuilders } from './columns/all.ts';\nimport type { ExtraConfigColumn, PgColumn, PgColumnBuilder, PgColumns } from './columns/common.ts';\nimport type { ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { AnyIndexBuilder } from './indexes.ts';\nimport type { PgPolicy } from './policies.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type PgTableExtraConfigValue =\n\t| AnyIndexBuilder\n\t| CheckBuilder\n\t| ForeignKeyBuilder\n\t| PrimaryKeyBuilder\n\t| UniqueConstraintBuilder\n\t| PgPolicy;\n\nexport type PgTableExtraConfig = Record<\n\tstring,\n\tPgTableExtraConfigValue\n>;\n\nexport type TableConfig = TableConfigBase<PgColumns>;\n\n/** @internal */\nexport const InlineForeignKeys = Symbol.for('drizzle:PgInlineForeignKeys');\n/** @internal */\nexport const EnableRLS = Symbol.for('drizzle:EnableRLS');\n\nexport class PgTable<T extends TableConfig = TableConfig> extends Table<T> {\n\tstatic override readonly [entityKind]: string = 'PgTable';\n\n\t/** @internal */\n\tstatic override readonly Symbol = Object.assign({}, Table.Symbol, {\n\t\tInlineForeignKeys: InlineForeignKeys as typeof InlineForeignKeys,\n\t\tEnableRLS: EnableRLS as typeof EnableRLS,\n\t});\n\n\t/**@internal */\n\t[InlineForeignKeys]: ForeignKey[] = [];\n\n\t/** @internal */\n\t[EnableRLS]: boolean = false;\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigBuilder]: ((self: Record<string, PgColumn>) => PgTableExtraConfig) | undefined =\n\t\tundefined;\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigColumns]: Record<string, ExtraConfigColumn> = {};\n}\n\nexport type AnyPgTable<TPartial extends Partial<TableConfig> = {}> = PgTable<UpdateTableConfig<TableConfig, TPartial>>;\n\nexport type PgTableWithColumns<\n\tT extends TableConfig,\n> =\n\t& PgTable<T>\n\t& T['columns']\n\t& InferTableColumnsModels<T['columns']>;\n\n/** @internal */\nexport function pgTableWithSchema<\n\tTTableName extends string,\n\tTSchemaName extends string | undefined,\n\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n>(\n\tname: TTableName,\n\tcolumns: TColumnsMap | ((columnTypes: PgColumnsBuilders) => TColumnsMap),\n\textraConfig:\n\t\t| ((self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig | PgTableExtraConfigValue[])\n\t\t| undefined,\n\tschema: TSchemaName,\n\tbaseName = name,\n): PgTableWithColumns<{\n\tname: TTableName;\n\tschema: TSchemaName;\n\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\tdialect: 'pg';\n}> {\n\tconst rawTable = new PgTable<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>(name, schema, baseName);\n\n\tconst parsedColumns: TColumnsMap = typeof columns === 'function' ? columns(getPgColumnBuilders()) : columns;\n\n\tconst builtColumns = Object.fromEntries(\n\t\tObject.entries(parsedColumns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as PgColumnBuilder;\n\t\t\tcolBuilder.setName(name);\n\t\t\tconst column = colBuilder.build(rawTable);\n\t\t\trawTable[InlineForeignKeys].push(...colBuilder.buildForeignKeys(column, rawTable));\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\n\tconst builtColumnsForExtraConfig = Object.fromEntries(\n\t\tObject.entries(parsedColumns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as PgColumnBuilder;\n\t\t\tcolBuilder.setName(name);\n\t\t\tconst column = colBuilder.buildExtraConfigColumn(rawTable);\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>;\n\n\tconst table = Object.assign(rawTable, builtColumns);\n\n\ttable[Table.Symbol.Columns] = builtColumns;\n\ttable[Table.Symbol.ExtraConfigColumns] = builtColumnsForExtraConfig;\n\n\tif (extraConfig) {\n\t\ttable[PgTable.Symbol.ExtraConfigBuilder] = extraConfig as any;\n\t}\n\n\treturn table as any;\n}\n\nexport interface PgTableFnInternal<TSchema extends string | undefined = undefined> {\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig?: (\n\t\t\tself: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>,\n\t\t) => PgTableExtraConfigValue[],\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: (columnTypes: PgColumnsBuilders) => TColumnsMap,\n\t\textraConfig?: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfigValue[],\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n\t/**\n\t * @deprecated The third parameter of pgTable is changing and will only accept an array instead of an object\n\t *\n\t * @example\n\t * Deprecated version:\n\t * ```ts\n\t * export const users = pgTable(\"users\", {\n\t * \tid: integer(),\n\t * }, (t) => ({\n\t * \tidx: index('custom_name').on(t.id)\n\t * }));\n\t * ```\n\t *\n\t * New API:\n\t * ```ts\n\t * export const users = pgTable(\"users\", {\n\t * \tid: integer(),\n\t * }, (t) => [\n\t * \tindex('custom_name').on(t.id)\n\t * ]);\n\t * ```\n\t */\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig: (\n\t\t\tself: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>,\n\t\t) => PgTableExtraConfig,\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n\n\t/**\n\t * @deprecated The third parameter of pgTable is changing and will only accept an array instead of an object\n\t *\n\t * @example\n\t * Deprecated version:\n\t * ```ts\n\t * export const users = pgTable(\"users\", {\n\t * \tid: integer(),\n\t * }, (t) => ({\n\t * \tidx: index('custom_name').on(t.id)\n\t * }));\n\t * ```\n\t *\n\t * New API:\n\t * ```ts\n\t * export const users = pgTable(\"users\", {\n\t * \tid: integer(),\n\t * }, (t) => [\n\t * \tindex('custom_name').on(t.id)\n\t * ]);\n\t * ```\n\t */\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: (columnTypes: PgColumnsBuilders) => TColumnsMap,\n\t\textraConfig: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig,\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n}\n\nexport interface PgTableFn<TSchema extends string | undefined = undefined> extends PgTableFnInternal<TSchema> {\n\twithRLS: PgTableFnInternal<TSchema>;\n}\n\nconst pgTableInternal: PgTableFnInternal = (name, columns, extraConfig) => {\n\treturn pgTableWithSchema(name, columns, extraConfig, undefined);\n};\n\nconst pgTableWithRLS: PgTableFn['withRLS'] = (name, columns, extraConfig) => {\n\tconst table = pgTableWithSchema(name, columns, extraConfig, undefined);\n\ttable[EnableRLS] = true;\n\n\treturn table;\n};\n\nexport const pgTable: PgTableFn = Object.assign(pgTableInternal, { withRLS: pgTableWithRLS });\n\nexport function pgTableCreator(customizeTableName: (name: string) => string): PgTableFn {\n\tconst fn: PgTableFnInternal = (name, columns, extraConfig) => {\n\t\treturn pgTableWithSchema(customizeTableName(name) as typeof name, columns, extraConfig, undefined, name);\n\t};\n\n\treturn Object.assign(fn, {\n\t\twithRLS: ((name, columns, extraConfig) => {\n\t\t\tconst table = pgTableWithSchema(customizeTableName(name) as typeof name, columns, extraConfig, undefined, name);\n\t\t\ttable[EnableRLS] = true;\n\n\t\t\treturn table;\n\t\t}) as PgTableFnInternal,\n\t});\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAC3B,mBAKO;AAEP,iBAA4D;AAwBrD,MAAM,oBAAoB,OAAO,IAAI,6BAA6B;AAElE,MAAM,YAAY,OAAO,IAAI,mBAAmB;AAEhD,MAAM,gBAAqD,mBAAS;AAAA,EAC1E,QAA0B,wBAAU,IAAY;AAAA;AAAA,EAGhD,OAAyB,SAAS,OAAO,OAAO,CAAC,GAAG,mBAAM,QAAQ;AAAA,IACjE;AAAA,IACA;AAAA,EACD,CAAC;AAAA;AAAA,EAGD,CAAC,iBAAiB,IAAkB,CAAC;AAAA;AAAA,EAGrC,CAAC,SAAS,IAAa;AAAA;AAAA,EAGvB,CAAU,mBAAM,OAAO,kBAAkB,IACxC;AAAA;AAAA,EAGD,CAAU,mBAAM,OAAO,kBAAkB,IAAuC,CAAC;AAClF;AAYO,SAAS,kBAKf,MACA,SACA,aAGA,QACA,WAAW,MAMT;AACF,QAAM,WAAW,IAAI,QAKlB,MAAM,QAAQ,QAAQ;AAEzB,QAAM,gBAA6B,OAAO,YAAY,aAAa,YAAQ,gCAAoB,CAAC,IAAI;AAEpG,QAAM,eAAe,OAAO;AAAA,IAC3B,OAAO,QAAQ,aAAa,EAAE,IAAI,CAAC,CAACA,OAAM,cAAc,MAAM;AAC7D,YAAM,aAAa;AACnB,iBAAW,QAAQA,KAAI;AACvB,YAAM,SAAS,WAAW,MAAM,QAAQ;AACxC,eAAS,iBAAiB,EAAE,KAAK,GAAG,WAAW,iBAAiB,QAAQ,QAAQ,CAAC;AACjF,aAAO,CAACA,OAAM,MAAM;AAAA,IACrB,CAAC;AAAA,EACF;AAEA,QAAM,6BAA6B,OAAO;AAAA,IACzC,OAAO,QAAQ,aAAa,EAAE,IAAI,CAAC,CAACA,OAAM,cAAc,MAAM;AAC7D,YAAM,aAAa;AACnB,iBAAW,QAAQA,KAAI;AACvB,YAAM,SAAS,WAAW,uBAAuB,QAAQ;AACzD,aAAO,CAACA,OAAM,MAAM;AAAA,IACrB,CAAC;AAAA,EACF;AAEA,QAAM,QAAQ,OAAO,OAAO,UAAU,YAAY;AAElD,QAAM,mBAAM,OAAO,OAAO,IAAI;AAC9B,QAAM,mBAAM,OAAO,kBAAkB,IAAI;AAEzC,MAAI,aAAa;AAChB,UAAM,QAAQ,OAAO,kBAAkB,IAAI;AAAA,EAC5C;AAEA,SAAO;AACR;AA+GA,MAAM,kBAAqC,CAAC,MAAM,SAAS,gBAAgB;AAC1E,SAAO,kBAAkB,MAAM,SAAS,aAAa,MAAS;AAC/D;AAEA,MAAM,iBAAuC,CAAC,MAAM,SAAS,gBAAgB;AAC5E,QAAM,QAAQ,kBAAkB,MAAM,SAAS,aAAa,MAAS;AACrE,QAAM,SAAS,IAAI;AAEnB,SAAO;AACR;AAEO,MAAM,UAAqB,OAAO,OAAO,iBAAiB,EAAE,SAAS,eAAe,CAAC;AAErF,SAAS,eAAe,oBAAyD;AACvF,QAAM,KAAwB,CAAC,MAAM,SAAS,gBAAgB;AAC7D,WAAO,kBAAkB,mBAAmB,IAAI,GAAkB,SAAS,aAAa,QAAW,IAAI;AAAA,EACxG;AAEA,SAAO,OAAO,OAAO,IAAI;AAAA,IACxB,UAAU,CAAC,MAAM,SAAS,gBAAgB;AACzC,YAAM,QAAQ,kBAAkB,mBAAmB,IAAI,GAAkB,SAAS,aAAa,QAAW,IAAI;AAC9G,YAAM,SAAS,IAAI;AAEnB,aAAO;AAAA,IACR;AAAA,EACD,CAAC;AACF;","names":["name"]}
@@ -16,10 +16,8 @@ export declare class PgTable<T extends TableConfig = TableConfig> extends Table<
16
16
  static readonly [entityKind]: string;
17
17
  }
18
18
  export type AnyPgTable<TPartial extends Partial<TableConfig> = {}> = PgTable<UpdateTableConfig<TableConfig, TPartial>>;
19
- export type PgTableWithColumns<T extends TableConfig> = PgTable<T> & T['columns'] & InferTableColumnsModels<T['columns']> & {
20
- enableRLS: () => Omit<PgTableWithColumns<T>, 'enableRLS'>;
21
- };
22
- export interface PgTableFn<TSchema extends string | undefined = undefined> {
19
+ export type PgTableWithColumns<T extends TableConfig> = PgTable<T> & T['columns'] & InferTableColumnsModels<T['columns']>;
20
+ export interface PgTableFnInternal<TSchema extends string | undefined = undefined> {
23
21
  <TTableName extends string, TColumnsMap extends Record<string, ColumnBuilderBase>>(name: TTableName, columns: TColumnsMap, extraConfig?: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfigValue[]): PgTableWithColumns<{
24
22
  name: TTableName;
25
23
  schema: TSchema;
@@ -89,5 +87,8 @@ export interface PgTableFn<TSchema extends string | undefined = undefined> {
89
87
  dialect: 'pg';
90
88
  }>;
91
89
  }
90
+ export interface PgTableFn<TSchema extends string | undefined = undefined> extends PgTableFnInternal<TSchema> {
91
+ withRLS: PgTableFnInternal<TSchema>;
92
+ }
92
93
  export declare const pgTable: PgTableFn;
93
94
  export declare function pgTableCreator(customizeTableName: (name: string) => string): PgTableFn;
@@ -16,10 +16,8 @@ export declare class PgTable<T extends TableConfig = TableConfig> extends Table<
16
16
  static readonly [entityKind]: string;
17
17
  }
18
18
  export type AnyPgTable<TPartial extends Partial<TableConfig> = {}> = PgTable<UpdateTableConfig<TableConfig, TPartial>>;
19
- export type PgTableWithColumns<T extends TableConfig> = PgTable<T> & T['columns'] & InferTableColumnsModels<T['columns']> & {
20
- enableRLS: () => Omit<PgTableWithColumns<T>, 'enableRLS'>;
21
- };
22
- export interface PgTableFn<TSchema extends string | undefined = undefined> {
19
+ export type PgTableWithColumns<T extends TableConfig> = PgTable<T> & T['columns'] & InferTableColumnsModels<T['columns']>;
20
+ export interface PgTableFnInternal<TSchema extends string | undefined = undefined> {
23
21
  <TTableName extends string, TColumnsMap extends Record<string, ColumnBuilderBase>>(name: TTableName, columns: TColumnsMap, extraConfig?: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfigValue[]): PgTableWithColumns<{
24
22
  name: TTableName;
25
23
  schema: TSchema;
@@ -89,5 +87,8 @@ export interface PgTableFn<TSchema extends string | undefined = undefined> {
89
87
  dialect: 'pg';
90
88
  }>;
91
89
  }
90
+ export interface PgTableFn<TSchema extends string | undefined = undefined> extends PgTableFnInternal<TSchema> {
91
+ withRLS: PgTableFnInternal<TSchema>;
92
+ }
92
93
  export declare const pgTable: PgTableFn;
93
94
  export declare function pgTableCreator(customizeTableName: (name: string) => string): PgTableFn;
package/pg-core/table.js CHANGED
@@ -47,20 +47,28 @@ function pgTableWithSchema(name, columns, extraConfig, schema, baseName = name)
47
47
  if (extraConfig) {
48
48
  table[PgTable.Symbol.ExtraConfigBuilder] = extraConfig;
49
49
  }
50
- return Object.assign(table, {
51
- enableRLS: () => {
52
- table[PgTable.Symbol.EnableRLS] = true;
53
- return table;
54
- }
55
- });
50
+ return table;
56
51
  }
57
- const pgTable = (name, columns, extraConfig) => {
52
+ const pgTableInternal = (name, columns, extraConfig) => {
58
53
  return pgTableWithSchema(name, columns, extraConfig, void 0);
59
54
  };
55
+ const pgTableWithRLS = (name, columns, extraConfig) => {
56
+ const table = pgTableWithSchema(name, columns, extraConfig, void 0);
57
+ table[EnableRLS] = true;
58
+ return table;
59
+ };
60
+ const pgTable = Object.assign(pgTableInternal, { withRLS: pgTableWithRLS });
60
61
  function pgTableCreator(customizeTableName) {
61
- return (name, columns, extraConfig) => {
62
+ const fn = (name, columns, extraConfig) => {
62
63
  return pgTableWithSchema(customizeTableName(name), columns, extraConfig, void 0, name);
63
64
  };
65
+ return Object.assign(fn, {
66
+ withRLS: ((name, columns, extraConfig) => {
67
+ const table = pgTableWithSchema(customizeTableName(name), columns, extraConfig, void 0, name);
68
+ table[EnableRLS] = true;
69
+ return table;
70
+ })
71
+ });
64
72
  }
65
73
  export {
66
74
  EnableRLS,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/pg-core/table.ts"],"sourcesContent":["import type { BuildColumns, BuildExtraConfigColumns, ColumnBuilderBase } from '~/column-builder.ts';\nimport { entityKind } from '~/entity.ts';\nimport {\n\ttype InferTableColumnsModels,\n\tTable,\n\ttype TableConfig as TableConfigBase,\n\ttype UpdateTableConfig,\n} from '~/table.ts';\nimport type { CheckBuilder } from './checks.ts';\nimport { getPgColumnBuilders, type PgColumnsBuilders } from './columns/all.ts';\nimport type { ExtraConfigColumn, PgColumn, PgColumnBuilder, PgColumns } from './columns/common.ts';\nimport type { ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { AnyIndexBuilder } from './indexes.ts';\nimport type { PgPolicy } from './policies.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type PgTableExtraConfigValue =\n\t| AnyIndexBuilder\n\t| CheckBuilder\n\t| ForeignKeyBuilder\n\t| PrimaryKeyBuilder\n\t| UniqueConstraintBuilder\n\t| PgPolicy;\n\nexport type PgTableExtraConfig = Record<\n\tstring,\n\tPgTableExtraConfigValue\n>;\n\nexport type TableConfig = TableConfigBase<PgColumns>;\n\n/** @internal */\nexport const InlineForeignKeys = Symbol.for('drizzle:PgInlineForeignKeys');\n/** @internal */\nexport const EnableRLS = Symbol.for('drizzle:EnableRLS');\n\nexport class PgTable<T extends TableConfig = TableConfig> extends Table<T> {\n\tstatic override readonly [entityKind]: string = 'PgTable';\n\n\t/** @internal */\n\tstatic override readonly Symbol = Object.assign({}, Table.Symbol, {\n\t\tInlineForeignKeys: InlineForeignKeys as typeof InlineForeignKeys,\n\t\tEnableRLS: EnableRLS as typeof EnableRLS,\n\t});\n\n\t/**@internal */\n\t[InlineForeignKeys]: ForeignKey[] = [];\n\n\t/** @internal */\n\t[EnableRLS]: boolean = false;\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigBuilder]: ((self: Record<string, PgColumn>) => PgTableExtraConfig) | undefined =\n\t\tundefined;\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigColumns]: Record<string, ExtraConfigColumn> = {};\n}\n\nexport type AnyPgTable<TPartial extends Partial<TableConfig> = {}> = PgTable<UpdateTableConfig<TableConfig, TPartial>>;\n\nexport type PgTableWithColumns<\n\tT extends TableConfig,\n> =\n\t& PgTable<T>\n\t& T['columns']\n\t& InferTableColumnsModels<T['columns']>\n\t& {\n\t\tenableRLS: () => Omit<\n\t\t\tPgTableWithColumns<T>,\n\t\t\t'enableRLS'\n\t\t>;\n\t};\n\n/** @internal */\nexport function pgTableWithSchema<\n\tTTableName extends string,\n\tTSchemaName extends string | undefined,\n\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n>(\n\tname: TTableName,\n\tcolumns: TColumnsMap | ((columnTypes: PgColumnsBuilders) => TColumnsMap),\n\textraConfig:\n\t\t| ((self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig | PgTableExtraConfigValue[])\n\t\t| undefined,\n\tschema: TSchemaName,\n\tbaseName = name,\n): PgTableWithColumns<{\n\tname: TTableName;\n\tschema: TSchemaName;\n\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\tdialect: 'pg';\n}> {\n\tconst rawTable = new PgTable<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>(name, schema, baseName);\n\n\tconst parsedColumns: TColumnsMap = typeof columns === 'function' ? columns(getPgColumnBuilders()) : columns;\n\n\tconst builtColumns = Object.fromEntries(\n\t\tObject.entries(parsedColumns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as PgColumnBuilder;\n\t\t\tcolBuilder.setName(name);\n\t\t\tconst column = colBuilder.build(rawTable);\n\t\t\trawTable[InlineForeignKeys].push(...colBuilder.buildForeignKeys(column, rawTable));\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\n\tconst builtColumnsForExtraConfig = Object.fromEntries(\n\t\tObject.entries(parsedColumns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as PgColumnBuilder;\n\t\t\tcolBuilder.setName(name);\n\t\t\tconst column = colBuilder.buildExtraConfigColumn(rawTable);\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>;\n\n\tconst table = Object.assign(rawTable, builtColumns);\n\n\ttable[Table.Symbol.Columns] = builtColumns;\n\ttable[Table.Symbol.ExtraConfigColumns] = builtColumnsForExtraConfig;\n\n\tif (extraConfig) {\n\t\ttable[PgTable.Symbol.ExtraConfigBuilder] = extraConfig as any;\n\t}\n\n\treturn Object.assign(table, {\n\t\tenableRLS: () => {\n\t\t\ttable[PgTable.Symbol.EnableRLS] = true;\n\t\t\treturn table as PgTableWithColumns<{\n\t\t\t\tname: TTableName;\n\t\t\t\tschema: TSchemaName;\n\t\t\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\t\t\tdialect: 'pg';\n\t\t\t}>;\n\t\t},\n\t}) as any;\n}\n\nexport interface PgTableFn<TSchema extends string | undefined = undefined> {\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig?: (\n\t\t\tself: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>,\n\t\t) => PgTableExtraConfigValue[],\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: (columnTypes: PgColumnsBuilders) => TColumnsMap,\n\t\textraConfig?: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfigValue[],\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n\t/**\n\t * @deprecated The third parameter of pgTable is changing and will only accept an array instead of an object\n\t *\n\t * @example\n\t * Deprecated version:\n\t * ```ts\n\t * export const users = pgTable(\"users\", {\n\t * \tid: integer(),\n\t * }, (t) => ({\n\t * \tidx: index('custom_name').on(t.id)\n\t * }));\n\t * ```\n\t *\n\t * New API:\n\t * ```ts\n\t * export const users = pgTable(\"users\", {\n\t * \tid: integer(),\n\t * }, (t) => [\n\t * \tindex('custom_name').on(t.id)\n\t * ]);\n\t * ```\n\t */\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig: (\n\t\t\tself: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>,\n\t\t) => PgTableExtraConfig,\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n\n\t/**\n\t * @deprecated The third parameter of pgTable is changing and will only accept an array instead of an object\n\t *\n\t * @example\n\t * Deprecated version:\n\t * ```ts\n\t * export const users = pgTable(\"users\", {\n\t * \tid: integer(),\n\t * }, (t) => ({\n\t * \tidx: index('custom_name').on(t.id)\n\t * }));\n\t * ```\n\t *\n\t * New API:\n\t * ```ts\n\t * export const users = pgTable(\"users\", {\n\t * \tid: integer(),\n\t * }, (t) => [\n\t * \tindex('custom_name').on(t.id)\n\t * ]);\n\t * ```\n\t */\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: (columnTypes: PgColumnsBuilders) => TColumnsMap,\n\t\textraConfig: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig,\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n}\n\nexport const pgTable: PgTableFn = (name, columns, extraConfig) => {\n\treturn pgTableWithSchema(name, columns, extraConfig, undefined);\n};\n\nexport function pgTableCreator(customizeTableName: (name: string) => string): PgTableFn {\n\treturn (name, columns, extraConfig) => {\n\t\treturn pgTableWithSchema(customizeTableName(name) as typeof name, columns, extraConfig, undefined, name);\n\t};\n}\n"],"mappings":"AACA,SAAS,kBAAkB;AAC3B;AAAA,EAEC;AAAA,OAGM;AAEP,SAAS,2BAAmD;AAwBrD,MAAM,oBAAoB,OAAO,IAAI,6BAA6B;AAElE,MAAM,YAAY,OAAO,IAAI,mBAAmB;AAEhD,MAAM,gBAAqD,MAAS;AAAA,EAC1E,QAA0B,UAAU,IAAY;AAAA;AAAA,EAGhD,OAAyB,SAAS,OAAO,OAAO,CAAC,GAAG,MAAM,QAAQ;AAAA,IACjE;AAAA,IACA;AAAA,EACD,CAAC;AAAA;AAAA,EAGD,CAAC,iBAAiB,IAAkB,CAAC;AAAA;AAAA,EAGrC,CAAC,SAAS,IAAa;AAAA;AAAA,EAGvB,CAAU,MAAM,OAAO,kBAAkB,IACxC;AAAA;AAAA,EAGD,CAAU,MAAM,OAAO,kBAAkB,IAAuC,CAAC;AAClF;AAkBO,SAAS,kBAKf,MACA,SACA,aAGA,QACA,WAAW,MAMT;AACF,QAAM,WAAW,IAAI,QAKlB,MAAM,QAAQ,QAAQ;AAEzB,QAAM,gBAA6B,OAAO,YAAY,aAAa,QAAQ,oBAAoB,CAAC,IAAI;AAEpG,QAAM,eAAe,OAAO;AAAA,IAC3B,OAAO,QAAQ,aAAa,EAAE,IAAI,CAAC,CAACA,OAAM,cAAc,MAAM;AAC7D,YAAM,aAAa;AACnB,iBAAW,QAAQA,KAAI;AACvB,YAAM,SAAS,WAAW,MAAM,QAAQ;AACxC,eAAS,iBAAiB,EAAE,KAAK,GAAG,WAAW,iBAAiB,QAAQ,QAAQ,CAAC;AACjF,aAAO,CAACA,OAAM,MAAM;AAAA,IACrB,CAAC;AAAA,EACF;AAEA,QAAM,6BAA6B,OAAO;AAAA,IACzC,OAAO,QAAQ,aAAa,EAAE,IAAI,CAAC,CAACA,OAAM,cAAc,MAAM;AAC7D,YAAM,aAAa;AACnB,iBAAW,QAAQA,KAAI;AACvB,YAAM,SAAS,WAAW,uBAAuB,QAAQ;AACzD,aAAO,CAACA,OAAM,MAAM;AAAA,IACrB,CAAC;AAAA,EACF;AAEA,QAAM,QAAQ,OAAO,OAAO,UAAU,YAAY;AAElD,QAAM,MAAM,OAAO,OAAO,IAAI;AAC9B,QAAM,MAAM,OAAO,kBAAkB,IAAI;AAEzC,MAAI,aAAa;AAChB,UAAM,QAAQ,OAAO,kBAAkB,IAAI;AAAA,EAC5C;AAEA,SAAO,OAAO,OAAO,OAAO;AAAA,IAC3B,WAAW,MAAM;AAChB,YAAM,QAAQ,OAAO,SAAS,IAAI;AAClC,aAAO;AAAA,IAMR;AAAA,EACD,CAAC;AACF;AA2GO,MAAM,UAAqB,CAAC,MAAM,SAAS,gBAAgB;AACjE,SAAO,kBAAkB,MAAM,SAAS,aAAa,MAAS;AAC/D;AAEO,SAAS,eAAe,oBAAyD;AACvF,SAAO,CAAC,MAAM,SAAS,gBAAgB;AACtC,WAAO,kBAAkB,mBAAmB,IAAI,GAAkB,SAAS,aAAa,QAAW,IAAI;AAAA,EACxG;AACD;","names":["name"]}
1
+ {"version":3,"sources":["../../src/pg-core/table.ts"],"sourcesContent":["import type { BuildColumns, BuildExtraConfigColumns, ColumnBuilderBase } from '~/column-builder.ts';\nimport { entityKind } from '~/entity.ts';\nimport {\n\ttype InferTableColumnsModels,\n\tTable,\n\ttype TableConfig as TableConfigBase,\n\ttype UpdateTableConfig,\n} from '~/table.ts';\nimport type { CheckBuilder } from './checks.ts';\nimport { getPgColumnBuilders, type PgColumnsBuilders } from './columns/all.ts';\nimport type { ExtraConfigColumn, PgColumn, PgColumnBuilder, PgColumns } from './columns/common.ts';\nimport type { ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { AnyIndexBuilder } from './indexes.ts';\nimport type { PgPolicy } from './policies.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type PgTableExtraConfigValue =\n\t| AnyIndexBuilder\n\t| CheckBuilder\n\t| ForeignKeyBuilder\n\t| PrimaryKeyBuilder\n\t| UniqueConstraintBuilder\n\t| PgPolicy;\n\nexport type PgTableExtraConfig = Record<\n\tstring,\n\tPgTableExtraConfigValue\n>;\n\nexport type TableConfig = TableConfigBase<PgColumns>;\n\n/** @internal */\nexport const InlineForeignKeys = Symbol.for('drizzle:PgInlineForeignKeys');\n/** @internal */\nexport const EnableRLS = Symbol.for('drizzle:EnableRLS');\n\nexport class PgTable<T extends TableConfig = TableConfig> extends Table<T> {\n\tstatic override readonly [entityKind]: string = 'PgTable';\n\n\t/** @internal */\n\tstatic override readonly Symbol = Object.assign({}, Table.Symbol, {\n\t\tInlineForeignKeys: InlineForeignKeys as typeof InlineForeignKeys,\n\t\tEnableRLS: EnableRLS as typeof EnableRLS,\n\t});\n\n\t/**@internal */\n\t[InlineForeignKeys]: ForeignKey[] = [];\n\n\t/** @internal */\n\t[EnableRLS]: boolean = false;\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigBuilder]: ((self: Record<string, PgColumn>) => PgTableExtraConfig) | undefined =\n\t\tundefined;\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigColumns]: Record<string, ExtraConfigColumn> = {};\n}\n\nexport type AnyPgTable<TPartial extends Partial<TableConfig> = {}> = PgTable<UpdateTableConfig<TableConfig, TPartial>>;\n\nexport type PgTableWithColumns<\n\tT extends TableConfig,\n> =\n\t& PgTable<T>\n\t& T['columns']\n\t& InferTableColumnsModels<T['columns']>;\n\n/** @internal */\nexport function pgTableWithSchema<\n\tTTableName extends string,\n\tTSchemaName extends string | undefined,\n\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n>(\n\tname: TTableName,\n\tcolumns: TColumnsMap | ((columnTypes: PgColumnsBuilders) => TColumnsMap),\n\textraConfig:\n\t\t| ((self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig | PgTableExtraConfigValue[])\n\t\t| undefined,\n\tschema: TSchemaName,\n\tbaseName = name,\n): PgTableWithColumns<{\n\tname: TTableName;\n\tschema: TSchemaName;\n\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\tdialect: 'pg';\n}> {\n\tconst rawTable = new PgTable<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>(name, schema, baseName);\n\n\tconst parsedColumns: TColumnsMap = typeof columns === 'function' ? columns(getPgColumnBuilders()) : columns;\n\n\tconst builtColumns = Object.fromEntries(\n\t\tObject.entries(parsedColumns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as PgColumnBuilder;\n\t\t\tcolBuilder.setName(name);\n\t\t\tconst column = colBuilder.build(rawTable);\n\t\t\trawTable[InlineForeignKeys].push(...colBuilder.buildForeignKeys(column, rawTable));\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\n\tconst builtColumnsForExtraConfig = Object.fromEntries(\n\t\tObject.entries(parsedColumns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as PgColumnBuilder;\n\t\t\tcolBuilder.setName(name);\n\t\t\tconst column = colBuilder.buildExtraConfigColumn(rawTable);\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>;\n\n\tconst table = Object.assign(rawTable, builtColumns);\n\n\ttable[Table.Symbol.Columns] = builtColumns;\n\ttable[Table.Symbol.ExtraConfigColumns] = builtColumnsForExtraConfig;\n\n\tif (extraConfig) {\n\t\ttable[PgTable.Symbol.ExtraConfigBuilder] = extraConfig as any;\n\t}\n\n\treturn table as any;\n}\n\nexport interface PgTableFnInternal<TSchema extends string | undefined = undefined> {\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig?: (\n\t\t\tself: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>,\n\t\t) => PgTableExtraConfigValue[],\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: (columnTypes: PgColumnsBuilders) => TColumnsMap,\n\t\textraConfig?: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfigValue[],\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n\t/**\n\t * @deprecated The third parameter of pgTable is changing and will only accept an array instead of an object\n\t *\n\t * @example\n\t * Deprecated version:\n\t * ```ts\n\t * export const users = pgTable(\"users\", {\n\t * \tid: integer(),\n\t * }, (t) => ({\n\t * \tidx: index('custom_name').on(t.id)\n\t * }));\n\t * ```\n\t *\n\t * New API:\n\t * ```ts\n\t * export const users = pgTable(\"users\", {\n\t * \tid: integer(),\n\t * }, (t) => [\n\t * \tindex('custom_name').on(t.id)\n\t * ]);\n\t * ```\n\t */\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig: (\n\t\t\tself: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>,\n\t\t) => PgTableExtraConfig,\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n\n\t/**\n\t * @deprecated The third parameter of pgTable is changing and will only accept an array instead of an object\n\t *\n\t * @example\n\t * Deprecated version:\n\t * ```ts\n\t * export const users = pgTable(\"users\", {\n\t * \tid: integer(),\n\t * }, (t) => ({\n\t * \tidx: index('custom_name').on(t.id)\n\t * }));\n\t * ```\n\t *\n\t * New API:\n\t * ```ts\n\t * export const users = pgTable(\"users\", {\n\t * \tid: integer(),\n\t * }, (t) => [\n\t * \tindex('custom_name').on(t.id)\n\t * ]);\n\t * ```\n\t */\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: (columnTypes: PgColumnsBuilders) => TColumnsMap,\n\t\textraConfig: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig,\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n}\n\nexport interface PgTableFn<TSchema extends string | undefined = undefined> extends PgTableFnInternal<TSchema> {\n\twithRLS: PgTableFnInternal<TSchema>;\n}\n\nconst pgTableInternal: PgTableFnInternal = (name, columns, extraConfig) => {\n\treturn pgTableWithSchema(name, columns, extraConfig, undefined);\n};\n\nconst pgTableWithRLS: PgTableFn['withRLS'] = (name, columns, extraConfig) => {\n\tconst table = pgTableWithSchema(name, columns, extraConfig, undefined);\n\ttable[EnableRLS] = true;\n\n\treturn table;\n};\n\nexport const pgTable: PgTableFn = Object.assign(pgTableInternal, { withRLS: pgTableWithRLS });\n\nexport function pgTableCreator(customizeTableName: (name: string) => string): PgTableFn {\n\tconst fn: PgTableFnInternal = (name, columns, extraConfig) => {\n\t\treturn pgTableWithSchema(customizeTableName(name) as typeof name, columns, extraConfig, undefined, name);\n\t};\n\n\treturn Object.assign(fn, {\n\t\twithRLS: ((name, columns, extraConfig) => {\n\t\t\tconst table = pgTableWithSchema(customizeTableName(name) as typeof name, columns, extraConfig, undefined, name);\n\t\t\ttable[EnableRLS] = true;\n\n\t\t\treturn table;\n\t\t}) as PgTableFnInternal,\n\t});\n}\n"],"mappings":"AACA,SAAS,kBAAkB;AAC3B;AAAA,EAEC;AAAA,OAGM;AAEP,SAAS,2BAAmD;AAwBrD,MAAM,oBAAoB,OAAO,IAAI,6BAA6B;AAElE,MAAM,YAAY,OAAO,IAAI,mBAAmB;AAEhD,MAAM,gBAAqD,MAAS;AAAA,EAC1E,QAA0B,UAAU,IAAY;AAAA;AAAA,EAGhD,OAAyB,SAAS,OAAO,OAAO,CAAC,GAAG,MAAM,QAAQ;AAAA,IACjE;AAAA,IACA;AAAA,EACD,CAAC;AAAA;AAAA,EAGD,CAAC,iBAAiB,IAAkB,CAAC;AAAA;AAAA,EAGrC,CAAC,SAAS,IAAa;AAAA;AAAA,EAGvB,CAAU,MAAM,OAAO,kBAAkB,IACxC;AAAA;AAAA,EAGD,CAAU,MAAM,OAAO,kBAAkB,IAAuC,CAAC;AAClF;AAYO,SAAS,kBAKf,MACA,SACA,aAGA,QACA,WAAW,MAMT;AACF,QAAM,WAAW,IAAI,QAKlB,MAAM,QAAQ,QAAQ;AAEzB,QAAM,gBAA6B,OAAO,YAAY,aAAa,QAAQ,oBAAoB,CAAC,IAAI;AAEpG,QAAM,eAAe,OAAO;AAAA,IAC3B,OAAO,QAAQ,aAAa,EAAE,IAAI,CAAC,CAACA,OAAM,cAAc,MAAM;AAC7D,YAAM,aAAa;AACnB,iBAAW,QAAQA,KAAI;AACvB,YAAM,SAAS,WAAW,MAAM,QAAQ;AACxC,eAAS,iBAAiB,EAAE,KAAK,GAAG,WAAW,iBAAiB,QAAQ,QAAQ,CAAC;AACjF,aAAO,CAACA,OAAM,MAAM;AAAA,IACrB,CAAC;AAAA,EACF;AAEA,QAAM,6BAA6B,OAAO;AAAA,IACzC,OAAO,QAAQ,aAAa,EAAE,IAAI,CAAC,CAACA,OAAM,cAAc,MAAM;AAC7D,YAAM,aAAa;AACnB,iBAAW,QAAQA,KAAI;AACvB,YAAM,SAAS,WAAW,uBAAuB,QAAQ;AACzD,aAAO,CAACA,OAAM,MAAM;AAAA,IACrB,CAAC;AAAA,EACF;AAEA,QAAM,QAAQ,OAAO,OAAO,UAAU,YAAY;AAElD,QAAM,MAAM,OAAO,OAAO,IAAI;AAC9B,QAAM,MAAM,OAAO,kBAAkB,IAAI;AAEzC,MAAI,aAAa;AAChB,UAAM,QAAQ,OAAO,kBAAkB,IAAI;AAAA,EAC5C;AAEA,SAAO;AACR;AA+GA,MAAM,kBAAqC,CAAC,MAAM,SAAS,gBAAgB;AAC1E,SAAO,kBAAkB,MAAM,SAAS,aAAa,MAAS;AAC/D;AAEA,MAAM,iBAAuC,CAAC,MAAM,SAAS,gBAAgB;AAC5E,QAAM,QAAQ,kBAAkB,MAAM,SAAS,aAAa,MAAS;AACrE,QAAM,SAAS,IAAI;AAEnB,SAAO;AACR;AAEO,MAAM,UAAqB,OAAO,OAAO,iBAAiB,EAAE,SAAS,eAAe,CAAC;AAErF,SAAS,eAAe,oBAAyD;AACvF,QAAM,KAAwB,CAAC,MAAM,SAAS,gBAAgB;AAC7D,WAAO,kBAAkB,mBAAmB,IAAI,GAAkB,SAAS,aAAa,QAAW,IAAI;AAAA,EACxG;AAEA,SAAO,OAAO,OAAO,IAAI;AAAA,IACxB,UAAU,CAAC,MAAM,SAAS,gBAAgB;AACzC,YAAM,QAAQ,kBAAkB,mBAAmB,IAAI,GAAkB,SAAS,aAAa,QAAW,IAAI;AAC9G,YAAM,SAAS,IAAI;AAEnB,aAAO;AAAA,IACR;AAAA,EACD,CAAC;AACF;","names":["name"]}
package/relations.cjs CHANGED
@@ -405,6 +405,8 @@ function mapRelationalRow(row, buildQueryResultSelection, mapColumnValue = (valu
405
405
  decoder = field.decoder;
406
406
  } else if ((0, import_entity.is)(field, import_sql.SQL.Aliased)) {
407
407
  decoder = field.sql.decoder;
408
+ } else if ((0, import_entity.is)(field, import_table.Table) || (0, import_entity.is)(field, import_sql.View)) {
409
+ decoder = import_sql.noopDecoder;
408
410
  } else {
409
411
  decoder = field.getSQL().decoder;
410
412
  }