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
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cockroach-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 { CockroachSession } from '../session.ts';\nimport type { CockroachTable } from '../table.ts';\n\nexport class CockroachCountBuilder<\n\tTSession extends CockroachSession<any, any, any>,\n> extends SQL<number> implements Promise<number>, SQLWrapper {\n\tprivate sql: SQL<number>;\n\tprivate token?: NeonAuthToken;\n\n\tstatic override readonly [entityKind]: string = 'CockroachCountBuilder';\n\t[Symbol.toStringTag] = 'CockroachCountBuilder';\n\n\tprivate session: TSession;\n\n\tprivate static buildEmbeddedCount(\n\t\tsource: CockroachTable | 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: CockroachTable | 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: CockroachTable | SQL | SQLWrapper;\n\t\t\tfilters?: SQL<unknown>;\n\t\t\tsession: TSession;\n\t\t},\n\t) {\n\t\tsuper(CockroachCountBuilder.buildEmbeddedCount(params.source, params.filters).queryChunks);\n\n\t\tthis.mapWith(Number);\n\n\t\tthis.session = params.session;\n\n\t\tthis.sql = CockroachCountBuilder.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,8BAEH,eAAmD;AAAA,EAuB5D,YACU,QAKR;AACD,UAAM,sBAAsB,mBAAmB,OAAO,QAAQ,OAAO,OAAO,EAAE,WAAW;AANhF;AAQT,SAAK,QAAQ,MAAM;AAEnB,SAAK,UAAU,OAAO;AAEtB,SAAK,MAAM,sBAAsB;AAAA,MAChC,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/cockroach-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 { CockroachSession } from '../session.ts';\nimport type { CockroachTable } from '../table.ts';\nimport type { CockroachViewBase } from '../view-base.ts';\n\nexport class CockroachCountBuilder<\n\tTSession extends CockroachSession<any, any, any>,\n> extends SQL<number> implements Promise<number>, SQLWrapper {\n\tprivate sql: SQL<number>;\n\tprivate token?: NeonAuthToken;\n\n\tstatic override readonly [entityKind]: string = 'CockroachCountBuilder';\n\t[Symbol.toStringTag] = 'CockroachCountBuilder';\n\n\tprivate session: TSession;\n\n\tprivate static buildEmbeddedCount(\n\t\tsource: CockroachTable | CockroachViewBase | 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: CockroachTable | CockroachViewBase | 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: CockroachTable | CockroachViewBase | SQL | SQLWrapper;\n\t\t\tfilters?: SQL<unknown>;\n\t\t\tsession: TSession;\n\t\t},\n\t) {\n\t\tsuper(CockroachCountBuilder.buildEmbeddedCount(params.source, params.filters).queryChunks);\n\n\t\tthis.mapWith(Number);\n\n\t\tthis.session = params.session;\n\n\t\tthis.sql = CockroachCountBuilder.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,8BAEH,eAAmD;AAAA,EAuB5D,YACU,QAKR;AACD,UAAM,sBAAsB,mBAAmB,OAAO,QAAQ,OAAO,OAAO,EAAE,WAAW;AANhF;AAQT,SAAK,QAAQ,MAAM;AAEnB,SAAK,UAAU,OAAO;AAEtB,SAAK,MAAM,sBAAsB;AAAA,MAChC,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 { CockroachSession } from "../session.cjs";
5
5
  import type { CockroachTable } from "../table.cjs";
6
+ import type { CockroachViewBase } from "../view-base.cjs";
6
7
  export declare class CockroachCountBuilder<TSession extends CockroachSession<any, any, any>> extends SQL<number> implements Promise<number>, SQLWrapper {
7
8
  readonly params: {
8
- source: CockroachTable | SQL | SQLWrapper;
9
+ source: CockroachTable | CockroachViewBase | SQL | SQLWrapper;
9
10
  filters?: SQL<unknown>;
10
11
  session: TSession;
11
12
  };
@@ -17,7 +18,7 @@ export declare class CockroachCountBuilder<TSession extends CockroachSession<any
17
18
  private static buildEmbeddedCount;
18
19
  private static buildCount;
19
20
  constructor(params: {
20
- source: CockroachTable | SQL | SQLWrapper;
21
+ source: CockroachTable | CockroachViewBase | 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 { CockroachSession } from "../session.js";
5
5
  import type { CockroachTable } from "../table.js";
6
+ import type { CockroachViewBase } from "../view-base.js";
6
7
  export declare class CockroachCountBuilder<TSession extends CockroachSession<any, any, any>> extends SQL<number> implements Promise<number>, SQLWrapper {
7
8
  readonly params: {
8
- source: CockroachTable | SQL | SQLWrapper;
9
+ source: CockroachTable | CockroachViewBase | SQL | SQLWrapper;
9
10
  filters?: SQL<unknown>;
10
11
  session: TSession;
11
12
  };
@@ -17,7 +18,7 @@ export declare class CockroachCountBuilder<TSession extends CockroachSession<any
17
18
  private static buildEmbeddedCount;
18
19
  private static buildCount;
19
20
  constructor(params: {
20
- source: CockroachTable | SQL | SQLWrapper;
21
+ source: CockroachTable | CockroachViewBase | SQL | SQLWrapper;
21
22
  filters?: SQL<unknown>;
22
23
  session: TSession;
23
24
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cockroach-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 { CockroachSession } from '../session.ts';\nimport type { CockroachTable } from '../table.ts';\n\nexport class CockroachCountBuilder<\n\tTSession extends CockroachSession<any, any, any>,\n> extends SQL<number> implements Promise<number>, SQLWrapper {\n\tprivate sql: SQL<number>;\n\tprivate token?: NeonAuthToken;\n\n\tstatic override readonly [entityKind]: string = 'CockroachCountBuilder';\n\t[Symbol.toStringTag] = 'CockroachCountBuilder';\n\n\tprivate session: TSession;\n\n\tprivate static buildEmbeddedCount(\n\t\tsource: CockroachTable | 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: CockroachTable | 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: CockroachTable | SQL | SQLWrapper;\n\t\t\tfilters?: SQL<unknown>;\n\t\t\tsession: TSession;\n\t\t},\n\t) {\n\t\tsuper(CockroachCountBuilder.buildEmbeddedCount(params.source, params.filters).queryChunks);\n\n\t\tthis.mapWith(Number);\n\n\t\tthis.session = params.session;\n\n\t\tthis.sql = CockroachCountBuilder.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,8BAEH,IAAmD;AAAA,EAuB5D,YACU,QAKR;AACD,UAAM,sBAAsB,mBAAmB,OAAO,QAAQ,OAAO,OAAO,EAAE,WAAW;AANhF;AAQT,SAAK,QAAQ,MAAM;AAEnB,SAAK,UAAU,OAAO;AAEtB,SAAK,MAAM,sBAAsB;AAAA,MAChC,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/cockroach-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 { CockroachSession } from '../session.ts';\nimport type { CockroachTable } from '../table.ts';\nimport type { CockroachViewBase } from '../view-base.ts';\n\nexport class CockroachCountBuilder<\n\tTSession extends CockroachSession<any, any, any>,\n> extends SQL<number> implements Promise<number>, SQLWrapper {\n\tprivate sql: SQL<number>;\n\tprivate token?: NeonAuthToken;\n\n\tstatic override readonly [entityKind]: string = 'CockroachCountBuilder';\n\t[Symbol.toStringTag] = 'CockroachCountBuilder';\n\n\tprivate session: TSession;\n\n\tprivate static buildEmbeddedCount(\n\t\tsource: CockroachTable | CockroachViewBase | 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: CockroachTable | CockroachViewBase | 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: CockroachTable | CockroachViewBase | SQL | SQLWrapper;\n\t\t\tfilters?: SQL<unknown>;\n\t\t\tsession: TSession;\n\t\t},\n\t) {\n\t\tsuper(CockroachCountBuilder.buildEmbeddedCount(params.source, params.filters).queryChunks);\n\n\t\tthis.mapWith(Number);\n\n\t\tthis.session = params.session;\n\n\t\tthis.sql = CockroachCountBuilder.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,8BAEH,IAAmD;AAAA,EAuB5D,YACU,QAKR;AACD,UAAM,sBAAsB,mBAAmB,OAAO,QAAQ,OAAO,OAAO,EAAE,WAAW;AANhF;AAQT,SAAK,QAAQ,MAAM;AAEnB,SAAK,UAAU,OAAO;AAEtB,SAAK,MAAM,sBAAsB;AAAA,MAChC,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 CockroachSchema {
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.cockroachTableWithSchema)(name, columns, extraConfig, this.schemaName);
38
+ table[import_table.EnableRLS] = true;
39
+ return table;
40
+ })
41
+ });
35
42
  }
36
43
  static [import_entity.entityKind] = "CockroachSchema";
37
44
  isExisting = false;
@@ -71,7 +78,7 @@ function isCockroachSchema(obj) {
71
78
  function cockroachSchema(name) {
72
79
  if (name === "public") {
73
80
  throw new Error(
74
- `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`
81
+ `You can't specify 'public' as schema name. Postgres is using public schema by default. If you want to use 'public' schema, just use cockroachTable() instead of creating a schema`
75
82
  );
76
83
  }
77
84
  return new CockroachSchema(name);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cockroach-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 {\n\ttype CockroachEnum,\n\ttype CockroachEnumObject,\n\tcockroachEnumObjectWithSchema,\n\tcockroachEnumWithSchema,\n} from './columns/enum.ts';\nimport { type cockroachSequence, cockroachSequenceWithSchema } from './sequence.ts';\nimport { type CockroachTableFn, cockroachTableWithSchema } from './table.ts';\nimport {\n\ttype cockroachMaterializedView,\n\tcockroachMaterializedViewWithSchema,\n\ttype cockroachView,\n\tcockroachViewWithSchema,\n} from './view.ts';\n\nexport class CockroachSchema<TName extends string = string> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'CockroachSchema';\n\n\tisExisting: boolean = false;\n\tconstructor(\n\t\tpublic readonly schemaName: TName,\n\t) {}\n\n\ttable: CockroachTableFn<TName> = ((name, columns, extraConfig) => {\n\t\treturn cockroachTableWithSchema(name, columns, extraConfig, this.schemaName);\n\t});\n\n\tview = ((name, columns) => {\n\t\treturn cockroachViewWithSchema(name, columns, this.schemaName);\n\t}) as typeof cockroachView;\n\n\tmaterializedView = ((name, columns) => {\n\t\treturn cockroachMaterializedViewWithSchema(name, columns, this.schemaName);\n\t}) as typeof cockroachMaterializedView;\n\n\tpublic enum<U extends string, T extends Readonly<[U, ...U[]]>>(\n\t\tenumName: string,\n\t\tvalues: T | Writable<T>,\n\t): CockroachEnum<Writable<T>>;\n\n\tpublic enum<E extends Record<string, string>>(\n\t\tenumName: string,\n\t\tenumObj: NonArray<E>,\n\t): CockroachEnumObject<E>;\n\n\tpublic enum(enumName: any, input: any): any {\n\t\treturn Array.isArray(input)\n\t\t\t? cockroachEnumWithSchema(\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: cockroachEnumObjectWithSchema(enumName, input, this.schemaName);\n\t}\n\n\tsequence: typeof cockroachSequence = ((name, options) => {\n\t\treturn cockroachSequenceWithSchema(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 isCockroachSchema(obj: unknown): obj is CockroachSchema {\n\treturn is(obj, CockroachSchema);\n}\n\nexport function cockroachSchema<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 CockroachSchema(name);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA+B;AAC/B,iBAA0C;AAE1C,kBAKO;AACP,sBAAoE;AACpE,mBAAgE;AAChE,kBAKO;AAEA,MAAM,gBAAqE;AAAA,EAIjF,YACiB,YACf;AADe;AAAA,EACd;AAAA,EALH,QAAiB,wBAAU,IAAY;AAAA,EAEvC,aAAsB;AAAA,EAKtB,SAAkC,CAAC,MAAM,SAAS,gBAAgB;AACjE,eAAO,uCAAyB,MAAM,SAAS,aAAa,KAAK,UAAU;AAAA,EAC5E;AAAA,EAEA,QAAQ,CAAC,MAAM,YAAY;AAC1B,eAAO,qCAAwB,MAAM,SAAS,KAAK,UAAU;AAAA,EAC9D;AAAA,EAEA,oBAAoB,CAAC,MAAM,YAAY;AACtC,eAAO,iDAAoC,MAAM,SAAS,KAAK,UAAU;AAAA,EAC1E;AAAA,EAYO,KAAK,UAAe,OAAiB;AAC3C,WAAO,MAAM,QAAQ,KAAK,QACvB;AAAA,MACD;AAAA,MACA,CAAC,GAAG,KAAK;AAAA,MACT,KAAK;AAAA,IACN,QACE,2CAA8B,UAAU,OAAO,KAAK,UAAU;AAAA,EAClE;AAAA,EAEA,YAAsC,CAAC,MAAM,YAAY;AACxD,eAAO,6CAA4B,MAAM,SAAS,KAAK,UAAU;AAAA,EAClE;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,kBAAkB,KAAsC;AACvE,aAAO,kBAAG,KAAK,eAAe;AAC/B;AAEO,SAAS,gBAAkC,MAAS;AAC1D,MAAI,SAAS,UAAU;AACtB,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO,IAAI,gBAAgB,IAAI;AAChC;","names":[]}
1
+ {"version":3,"sources":["../../src/cockroach-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 {\n\ttype CockroachEnum,\n\ttype CockroachEnumObject,\n\tcockroachEnumObjectWithSchema,\n\tcockroachEnumWithSchema,\n} from './columns/enum.ts';\nimport { type cockroachSequence, cockroachSequenceWithSchema } from './sequence.ts';\nimport { type CockroachTableFn, type CockroachTableFnInternal, cockroachTableWithSchema, EnableRLS } from './table.ts';\nimport {\n\ttype cockroachMaterializedView,\n\tcockroachMaterializedViewWithSchema,\n\ttype cockroachView,\n\tcockroachViewWithSchema,\n} from './view.ts';\n\nexport class CockroachSchema<TName extends string = string> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'CockroachSchema';\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 = cockroachTableWithSchema(name, columns, extraConfig, this.schemaName);\n\t\t\t\ttable[EnableRLS] = true;\n\n\t\t\t\treturn table;\n\t\t\t}) as CockroachTableFnInternal<TName>,\n\t\t});\n\t}\n\n\ttable: CockroachTableFn<TName> = ((name, columns, extraConfig) => {\n\t\treturn cockroachTableWithSchema(name, columns, extraConfig, this.schemaName);\n\t}) as CockroachTableFn<TName>;\n\n\tview = ((name, columns) => {\n\t\treturn cockroachViewWithSchema(name, columns, this.schemaName);\n\t}) as typeof cockroachView;\n\n\tmaterializedView = ((name, columns) => {\n\t\treturn cockroachMaterializedViewWithSchema(name, columns, this.schemaName);\n\t}) as typeof cockroachMaterializedView;\n\n\tpublic enum<U extends string, T extends Readonly<[U, ...U[]]>>(\n\t\tenumName: string,\n\t\tvalues: T | Writable<T>,\n\t): CockroachEnum<Writable<T>>;\n\n\tpublic enum<E extends Record<string, string>>(\n\t\tenumName: string,\n\t\tenumObj: NonArray<E>,\n\t): CockroachEnumObject<E>;\n\n\tpublic enum(enumName: any, input: any): any {\n\t\treturn Array.isArray(input)\n\t\t\t? cockroachEnumWithSchema(\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: cockroachEnumObjectWithSchema(enumName, input, this.schemaName);\n\t}\n\n\tsequence: typeof cockroachSequence = ((name, options) => {\n\t\treturn cockroachSequenceWithSchema(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 isCockroachSchema(obj: unknown): obj is CockroachSchema {\n\treturn is(obj, CockroachSchema);\n}\n\nexport function cockroachSchema<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 cockroachTable() instead of creating a schema`,\n\t\t);\n\t}\n\n\treturn new CockroachSchema(name);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA+B;AAC/B,iBAA0C;AAE1C,kBAKO;AACP,sBAAoE;AACpE,mBAA0G;AAC1G,kBAKO;AAEA,MAAM,gBAAqE;AAAA,EAIjF,YACiB,YACf;AADe;AAEhB,SAAK,QAAQ,OAAO,OAAO,KAAK,OAAO;AAAA,MACtC,UAAU,CAAC,MAAM,SAAS,gBAAgB;AACzC,cAAM,YAAQ,uCAAyB,MAAM,SAAS,aAAa,KAAK,UAAU;AAClF,cAAM,sBAAS,IAAI;AAEnB,eAAO;AAAA,MACR;AAAA,IACD,CAAC;AAAA,EACF;AAAA,EAdA,QAAiB,wBAAU,IAAY;AAAA,EAEvC,aAAsB;AAAA,EActB,SAAkC,CAAC,MAAM,SAAS,gBAAgB;AACjE,eAAO,uCAAyB,MAAM,SAAS,aAAa,KAAK,UAAU;AAAA,EAC5E;AAAA,EAEA,QAAQ,CAAC,MAAM,YAAY;AAC1B,eAAO,qCAAwB,MAAM,SAAS,KAAK,UAAU;AAAA,EAC9D;AAAA,EAEA,oBAAoB,CAAC,MAAM,YAAY;AACtC,eAAO,iDAAoC,MAAM,SAAS,KAAK,UAAU;AAAA,EAC1E;AAAA,EAYO,KAAK,UAAe,OAAiB;AAC3C,WAAO,MAAM,QAAQ,KAAK,QACvB;AAAA,MACD;AAAA,MACA,CAAC,GAAG,KAAK;AAAA,MACT,KAAK;AAAA,IACN,QACE,2CAA8B,UAAU,OAAO,KAAK,UAAU;AAAA,EAClE;AAAA,EAEA,YAAsC,CAAC,MAAM,YAAY;AACxD,eAAO,6CAA4B,MAAM,SAAS,KAAK,UAAU;AAAA,EAClE;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,kBAAkB,KAAsC;AACvE,aAAO,kBAAG,KAAK,eAAe;AAC/B;AAEO,SAAS,gBAAkC,MAAS;AAC1D,MAAI,SAAS,UAAU;AACtB,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO,IAAI,gBAAgB,IAAI;AAChC;","names":[]}
@@ -5,7 +5,7 @@ import {
5
5
  cockroachEnumWithSchema
6
6
  } from "./columns/enum.js";
7
7
  import { cockroachSequenceWithSchema } from "./sequence.js";
8
- import { cockroachTableWithSchema } from "./table.js";
8
+ import { cockroachTableWithSchema, EnableRLS } from "./table.js";
9
9
  import {
10
10
  cockroachMaterializedViewWithSchema,
11
11
  cockroachViewWithSchema
@@ -13,6 +13,13 @@ import {
13
13
  class CockroachSchema {
14
14
  constructor(schemaName) {
15
15
  this.schemaName = schemaName;
16
+ this.table = Object.assign(this.table, {
17
+ withRLS: ((name, columns, extraConfig) => {
18
+ const table = cockroachTableWithSchema(name, columns, extraConfig, this.schemaName);
19
+ table[EnableRLS] = true;
20
+ return table;
21
+ })
22
+ });
16
23
  }
17
24
  static [entityKind] = "CockroachSchema";
18
25
  isExisting = false;
@@ -52,7 +59,7 @@ function isCockroachSchema(obj) {
52
59
  function cockroachSchema(name) {
53
60
  if (name === "public") {
54
61
  throw new Error(
55
- `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`
62
+ `You can't specify 'public' as schema name. Postgres is using public schema by default. If you want to use 'public' schema, just use cockroachTable() instead of creating a schema`
56
63
  );
57
64
  }
58
65
  return new CockroachSchema(name);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cockroach-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 {\n\ttype CockroachEnum,\n\ttype CockroachEnumObject,\n\tcockroachEnumObjectWithSchema,\n\tcockroachEnumWithSchema,\n} from './columns/enum.ts';\nimport { type cockroachSequence, cockroachSequenceWithSchema } from './sequence.ts';\nimport { type CockroachTableFn, cockroachTableWithSchema } from './table.ts';\nimport {\n\ttype cockroachMaterializedView,\n\tcockroachMaterializedViewWithSchema,\n\ttype cockroachView,\n\tcockroachViewWithSchema,\n} from './view.ts';\n\nexport class CockroachSchema<TName extends string = string> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'CockroachSchema';\n\n\tisExisting: boolean = false;\n\tconstructor(\n\t\tpublic readonly schemaName: TName,\n\t) {}\n\n\ttable: CockroachTableFn<TName> = ((name, columns, extraConfig) => {\n\t\treturn cockroachTableWithSchema(name, columns, extraConfig, this.schemaName);\n\t});\n\n\tview = ((name, columns) => {\n\t\treturn cockroachViewWithSchema(name, columns, this.schemaName);\n\t}) as typeof cockroachView;\n\n\tmaterializedView = ((name, columns) => {\n\t\treturn cockroachMaterializedViewWithSchema(name, columns, this.schemaName);\n\t}) as typeof cockroachMaterializedView;\n\n\tpublic enum<U extends string, T extends Readonly<[U, ...U[]]>>(\n\t\tenumName: string,\n\t\tvalues: T | Writable<T>,\n\t): CockroachEnum<Writable<T>>;\n\n\tpublic enum<E extends Record<string, string>>(\n\t\tenumName: string,\n\t\tenumObj: NonArray<E>,\n\t): CockroachEnumObject<E>;\n\n\tpublic enum(enumName: any, input: any): any {\n\t\treturn Array.isArray(input)\n\t\t\t? cockroachEnumWithSchema(\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: cockroachEnumObjectWithSchema(enumName, input, this.schemaName);\n\t}\n\n\tsequence: typeof cockroachSequence = ((name, options) => {\n\t\treturn cockroachSequenceWithSchema(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 isCockroachSchema(obj: unknown): obj is CockroachSchema {\n\treturn is(obj, CockroachSchema);\n}\n\nexport function cockroachSchema<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 CockroachSchema(name);\n}\n"],"mappings":"AAAA,SAAS,YAAY,UAAU;AAC/B,SAAS,KAAK,WAA4B;AAE1C;AAAA,EAGC;AAAA,EACA;AAAA,OACM;AACP,SAAiC,mCAAmC;AACpE,SAAgC,gCAAgC;AAChE;AAAA,EAEC;AAAA,EAEA;AAAA,OACM;AAEA,MAAM,gBAAqE;AAAA,EAIjF,YACiB,YACf;AADe;AAAA,EACd;AAAA,EALH,QAAiB,UAAU,IAAY;AAAA,EAEvC,aAAsB;AAAA,EAKtB,SAAkC,CAAC,MAAM,SAAS,gBAAgB;AACjE,WAAO,yBAAyB,MAAM,SAAS,aAAa,KAAK,UAAU;AAAA,EAC5E;AAAA,EAEA,QAAQ,CAAC,MAAM,YAAY;AAC1B,WAAO,wBAAwB,MAAM,SAAS,KAAK,UAAU;AAAA,EAC9D;AAAA,EAEA,oBAAoB,CAAC,MAAM,YAAY;AACtC,WAAO,oCAAoC,MAAM,SAAS,KAAK,UAAU;AAAA,EAC1E;AAAA,EAYO,KAAK,UAAe,OAAiB;AAC3C,WAAO,MAAM,QAAQ,KAAK,IACvB;AAAA,MACD;AAAA,MACA,CAAC,GAAG,KAAK;AAAA,MACT,KAAK;AAAA,IACN,IACE,8BAA8B,UAAU,OAAO,KAAK,UAAU;AAAA,EAClE;AAAA,EAEA,YAAsC,CAAC,MAAM,YAAY;AACxD,WAAO,4BAA4B,MAAM,SAAS,KAAK,UAAU;AAAA,EAClE;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,kBAAkB,KAAsC;AACvE,SAAO,GAAG,KAAK,eAAe;AAC/B;AAEO,SAAS,gBAAkC,MAAS;AAC1D,MAAI,SAAS,UAAU;AACtB,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO,IAAI,gBAAgB,IAAI;AAChC;","names":[]}
1
+ {"version":3,"sources":["../../src/cockroach-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 {\n\ttype CockroachEnum,\n\ttype CockroachEnumObject,\n\tcockroachEnumObjectWithSchema,\n\tcockroachEnumWithSchema,\n} from './columns/enum.ts';\nimport { type cockroachSequence, cockroachSequenceWithSchema } from './sequence.ts';\nimport { type CockroachTableFn, type CockroachTableFnInternal, cockroachTableWithSchema, EnableRLS } from './table.ts';\nimport {\n\ttype cockroachMaterializedView,\n\tcockroachMaterializedViewWithSchema,\n\ttype cockroachView,\n\tcockroachViewWithSchema,\n} from './view.ts';\n\nexport class CockroachSchema<TName extends string = string> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'CockroachSchema';\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 = cockroachTableWithSchema(name, columns, extraConfig, this.schemaName);\n\t\t\t\ttable[EnableRLS] = true;\n\n\t\t\t\treturn table;\n\t\t\t}) as CockroachTableFnInternal<TName>,\n\t\t});\n\t}\n\n\ttable: CockroachTableFn<TName> = ((name, columns, extraConfig) => {\n\t\treturn cockroachTableWithSchema(name, columns, extraConfig, this.schemaName);\n\t}) as CockroachTableFn<TName>;\n\n\tview = ((name, columns) => {\n\t\treturn cockroachViewWithSchema(name, columns, this.schemaName);\n\t}) as typeof cockroachView;\n\n\tmaterializedView = ((name, columns) => {\n\t\treturn cockroachMaterializedViewWithSchema(name, columns, this.schemaName);\n\t}) as typeof cockroachMaterializedView;\n\n\tpublic enum<U extends string, T extends Readonly<[U, ...U[]]>>(\n\t\tenumName: string,\n\t\tvalues: T | Writable<T>,\n\t): CockroachEnum<Writable<T>>;\n\n\tpublic enum<E extends Record<string, string>>(\n\t\tenumName: string,\n\t\tenumObj: NonArray<E>,\n\t): CockroachEnumObject<E>;\n\n\tpublic enum(enumName: any, input: any): any {\n\t\treturn Array.isArray(input)\n\t\t\t? cockroachEnumWithSchema(\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: cockroachEnumObjectWithSchema(enumName, input, this.schemaName);\n\t}\n\n\tsequence: typeof cockroachSequence = ((name, options) => {\n\t\treturn cockroachSequenceWithSchema(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 isCockroachSchema(obj: unknown): obj is CockroachSchema {\n\treturn is(obj, CockroachSchema);\n}\n\nexport function cockroachSchema<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 cockroachTable() instead of creating a schema`,\n\t\t);\n\t}\n\n\treturn new CockroachSchema(name);\n}\n"],"mappings":"AAAA,SAAS,YAAY,UAAU;AAC/B,SAAS,KAAK,WAA4B;AAE1C;AAAA,EAGC;AAAA,EACA;AAAA,OACM;AACP,SAAiC,mCAAmC;AACpE,SAA+D,0BAA0B,iBAAiB;AAC1G;AAAA,EAEC;AAAA,EAEA;AAAA,OACM;AAEA,MAAM,gBAAqE;AAAA,EAIjF,YACiB,YACf;AADe;AAEhB,SAAK,QAAQ,OAAO,OAAO,KAAK,OAAO;AAAA,MACtC,UAAU,CAAC,MAAM,SAAS,gBAAgB;AACzC,cAAM,QAAQ,yBAAyB,MAAM,SAAS,aAAa,KAAK,UAAU;AAClF,cAAM,SAAS,IAAI;AAEnB,eAAO;AAAA,MACR;AAAA,IACD,CAAC;AAAA,EACF;AAAA,EAdA,QAAiB,UAAU,IAAY;AAAA,EAEvC,aAAsB;AAAA,EActB,SAAkC,CAAC,MAAM,SAAS,gBAAgB;AACjE,WAAO,yBAAyB,MAAM,SAAS,aAAa,KAAK,UAAU;AAAA,EAC5E;AAAA,EAEA,QAAQ,CAAC,MAAM,YAAY;AAC1B,WAAO,wBAAwB,MAAM,SAAS,KAAK,UAAU;AAAA,EAC9D;AAAA,EAEA,oBAAoB,CAAC,MAAM,YAAY;AACtC,WAAO,oCAAoC,MAAM,SAAS,KAAK,UAAU;AAAA,EAC1E;AAAA,EAYO,KAAK,UAAe,OAAiB;AAC3C,WAAO,MAAM,QAAQ,KAAK,IACvB;AAAA,MACD;AAAA,MACA,CAAC,GAAG,KAAK;AAAA,MACT,KAAK;AAAA,IACN,IACE,8BAA8B,UAAU,OAAO,KAAK,UAAU;AAAA,EAClE;AAAA,EAEA,YAAsC,CAAC,MAAM,YAAY;AACxD,WAAO,4BAA4B,MAAM,SAAS,KAAK,UAAU;AAAA,EAClE;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,kBAAkB,KAAsC;AACvE,SAAO,GAAG,KAAK,eAAe;AAC/B;AAEO,SAAS,gBAAkC,MAAS;AAC1D,MAAI,SAAS,UAAU;AACtB,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO,IAAI,gBAAgB,IAAI;AAChC;","names":[]}
@@ -80,13 +80,34 @@ function cockroachTableWithSchema(name, columns, extraConfig, schema, baseName =
80
80
  }
81
81
  });
82
82
  }
83
- const cockroachTable = (name, columns, extraConfig) => {
83
+ const cockroachTableInternal = (name, columns, extraConfig) => {
84
84
  return cockroachTableWithSchema(name, columns, extraConfig, void 0);
85
85
  };
86
+ const cockroachTableWithRLS = (name, columns, extraConfig) => {
87
+ const table = cockroachTableWithSchema(name, columns, extraConfig, void 0);
88
+ table[EnableRLS] = true;
89
+ return table;
90
+ };
91
+ const cockroachTable = Object.assign(cockroachTableInternal, {
92
+ withRLS: cockroachTableWithRLS
93
+ });
86
94
  function cockroachTableCreator(customizeTableName) {
87
- return (name, columns, extraConfig) => {
95
+ const fn = (name, columns, extraConfig) => {
88
96
  return cockroachTableWithSchema(customizeTableName(name), columns, extraConfig, void 0, name);
89
97
  };
98
+ return Object.assign(fn, {
99
+ withRLS: ((name, columns, extraConfig) => {
100
+ const table = cockroachTableWithSchema(
101
+ customizeTableName(name),
102
+ columns,
103
+ extraConfig,
104
+ void 0,
105
+ name
106
+ );
107
+ table[EnableRLS] = true;
108
+ return table;
109
+ })
110
+ });
90
111
  }
91
112
  // Annotate the CommonJS export names for ESM import in node:
92
113
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cockroach-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 { type CockroachColumnsBuilders, getCockroachColumnBuilders } from './columns/all.ts';\nimport type {\n\tCockroachColumn,\n\tCockroachColumns,\n\tCockroachColumnWithArrayBuilder,\n\tExtraConfigColumn,\n} from './columns/common.ts';\nimport type { ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { AnyIndexBuilder } from './indexes.ts';\nimport type { CockroachPolicy } from './policies.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type CockroachTableExtraConfigValue =\n\t| AnyIndexBuilder\n\t| CheckBuilder\n\t| ForeignKeyBuilder\n\t| PrimaryKeyBuilder\n\t| UniqueConstraintBuilder\n\t| CockroachPolicy;\n\nexport type CockroachTableExtraConfig = Record<\n\tstring,\n\tCockroachTableExtraConfigValue\n>;\n\nexport type TableConfig = TableConfigBase<CockroachColumns>;\n\n/** @internal */\nexport const InlineForeignKeys = Symbol.for('drizzle:CockroachInlineForeignKeys');\n/** @internal */\nexport const EnableRLS = Symbol.for('drizzle:EnableRLS');\n\nexport class CockroachTable<T extends TableConfig = TableConfig> extends Table<T> {\n\tstatic override readonly [entityKind]: string = 'CockroachTable';\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]:\n\t\t| ((self: Record<string, CockroachColumn>) => CockroachTableExtraConfig)\n\t\t| undefined = undefined;\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigColumns]: Record<string, ExtraConfigColumn> = {};\n}\n\nexport type AnyCockroachTable<TPartial extends Partial<TableConfig> = {}> = CockroachTable<\n\tUpdateTableConfig<TableConfig, TPartial>\n>;\n\nexport type CockroachTableWithColumns<T extends TableConfig> =\n\t& CockroachTable<T>\n\t& T['columns']\n\t& InferTableColumnsModels<T['columns']>\n\t& {\n\t\tenableRLS: () => Omit<\n\t\t\tCockroachTableWithColumns<T>,\n\t\t\t'enableRLS'\n\t\t>;\n\t};\n\n/** @internal */\nexport function cockroachTableWithSchema<\n\tTTableName extends string,\n\tTSchemaName extends string | undefined,\n\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n>(\n\tname: TTableName,\n\tcolumns: TColumnsMap | ((columnTypes: CockroachColumnsBuilders) => TColumnsMap),\n\textraConfig:\n\t\t| ((\n\t\t\tself: BuildExtraConfigColumns<TTableName, TColumnsMap, 'cockroach'>,\n\t\t) => CockroachTableExtraConfig | CockroachTableExtraConfigValue[])\n\t\t| undefined,\n\tschema: TSchemaName,\n\tbaseName = name,\n): CockroachTableWithColumns<{\n\tname: TTableName;\n\tschema: TSchemaName;\n\tcolumns: BuildColumns<TTableName, TColumnsMap, 'cockroach'>;\n\tdialect: 'cockroach';\n}> {\n\tconst rawTable = new CockroachTable<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'cockroach'>;\n\t\tdialect: 'cockroach';\n\t}>(name, schema, baseName);\n\n\tconst parsedColumns: TColumnsMap = typeof columns === 'function' ? columns(getCockroachColumnBuilders()) : columns;\n\n\tconst builtColumns = Object.fromEntries(\n\t\tObject.entries(parsedColumns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as CockroachColumnWithArrayBuilder;\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, 'cockroach'>;\n\n\tconst builtColumnsForExtraConfig = Object.fromEntries(\n\t\tObject.entries(parsedColumns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as CockroachColumnWithArrayBuilder;\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, 'cockroach'>;\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[CockroachTable.Symbol.ExtraConfigBuilder] = extraConfig as any;\n\t}\n\n\treturn Object.assign(table, {\n\t\tenableRLS: () => {\n\t\t\ttable[CockroachTable.Symbol.EnableRLS] = true;\n\t\t\treturn table as CockroachTableWithColumns<{\n\t\t\t\tname: TTableName;\n\t\t\t\tschema: TSchemaName;\n\t\t\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'cockroach'>;\n\t\t\t\tdialect: 'cockroach';\n\t\t\t}>;\n\t\t},\n\t}) as any;\n}\n\nexport interface CockroachTableFn<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, 'cockroach'>,\n\t\t) => CockroachTableExtraConfigValue[],\n\t): CockroachTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'cockroach'>;\n\t\tdialect: 'cockroach';\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: CockroachColumnsBuilders) => TColumnsMap,\n\t\textraConfig?: (\n\t\t\tself: BuildExtraConfigColumns<TTableName, TColumnsMap, 'cockroach'>,\n\t\t) => CockroachTableExtraConfigValue[],\n\t): CockroachTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'cockroach'>;\n\t\tdialect: 'cockroach';\n\t}>;\n}\n\nexport const cockroachTable: CockroachTableFn = (name, columns, extraConfig) => {\n\treturn cockroachTableWithSchema(name, columns, extraConfig, undefined);\n};\n\nexport function cockroachTableCreator(customizeTableName: (name: string) => string): CockroachTableFn {\n\treturn (name, columns, extraConfig) => {\n\t\treturn cockroachTableWithSchema(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,iBAA0E;AA6BnE,MAAM,oBAAoB,OAAO,IAAI,oCAAoC;AAEzE,MAAM,YAAY,OAAO,IAAI,mBAAmB;AAEhD,MAAM,uBAA4D,mBAAS;AAAA,EACjF,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,IAE1B;AAAA;AAAA,EAGf,CAAU,mBAAM,OAAO,kBAAkB,IAAuC,CAAC;AAClF;AAkBO,SAAS,yBAKf,MACA,SACA,aAKA,QACA,WAAW,MAMT;AACF,QAAM,WAAW,IAAI,eAKlB,MAAM,QAAQ,QAAQ;AAEzB,QAAM,gBAA6B,OAAO,YAAY,aAAa,YAAQ,uCAA2B,CAAC,IAAI;AAE3G,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,eAAe,OAAO,kBAAkB,IAAI;AAAA,EACnD;AAEA,SAAO,OAAO,OAAO,OAAO;AAAA,IAC3B,WAAW,MAAM;AAChB,YAAM,eAAe,OAAO,SAAS,IAAI;AACzC,aAAO;AAAA,IAMR;AAAA,EACD,CAAC;AACF;AAoCO,MAAM,iBAAmC,CAAC,MAAM,SAAS,gBAAgB;AAC/E,SAAO,yBAAyB,MAAM,SAAS,aAAa,MAAS;AACtE;AAEO,SAAS,sBAAsB,oBAAgE;AACrG,SAAO,CAAC,MAAM,SAAS,gBAAgB;AACtC,WAAO,yBAAyB,mBAAmB,IAAI,GAAkB,SAAS,aAAa,QAAW,IAAI;AAAA,EAC/G;AACD;","names":["name"]}
1
+ {"version":3,"sources":["../../src/cockroach-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 { type CockroachColumnsBuilders, getCockroachColumnBuilders } from './columns/all.ts';\nimport type {\n\tCockroachColumn,\n\tCockroachColumns,\n\tCockroachColumnWithArrayBuilder,\n\tExtraConfigColumn,\n} from './columns/common.ts';\nimport type { ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { AnyIndexBuilder } from './indexes.ts';\nimport type { CockroachPolicy } from './policies.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type CockroachTableExtraConfigValue =\n\t| AnyIndexBuilder\n\t| CheckBuilder\n\t| ForeignKeyBuilder\n\t| PrimaryKeyBuilder\n\t| UniqueConstraintBuilder\n\t| CockroachPolicy;\n\nexport type CockroachTableExtraConfig = Record<\n\tstring,\n\tCockroachTableExtraConfigValue\n>;\n\nexport type TableConfig = TableConfigBase<CockroachColumns>;\n\n/** @internal */\nexport const InlineForeignKeys = Symbol.for('drizzle:CockroachInlineForeignKeys');\n/** @internal */\nexport const EnableRLS = Symbol.for('drizzle:EnableRLS');\n\nexport class CockroachTable<T extends TableConfig = TableConfig> extends Table<T> {\n\tstatic override readonly [entityKind]: string = 'CockroachTable';\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]:\n\t\t| ((self: Record<string, CockroachColumn>) => CockroachTableExtraConfig)\n\t\t| undefined = undefined;\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigColumns]: Record<string, ExtraConfigColumn> = {};\n}\n\nexport type AnyCockroachTable<TPartial extends Partial<TableConfig> = {}> = CockroachTable<\n\tUpdateTableConfig<TableConfig, TPartial>\n>;\n\nexport type CockroachTableWithColumns<T extends TableConfig> =\n\t& CockroachTable<T>\n\t& T['columns']\n\t& InferTableColumnsModels<T['columns']>\n\t& {\n\t\tenableRLS: () => Omit<\n\t\t\tCockroachTableWithColumns<T>,\n\t\t\t'enableRLS'\n\t\t>;\n\t};\n\n/** @internal */\nexport function cockroachTableWithSchema<\n\tTTableName extends string,\n\tTSchemaName extends string | undefined,\n\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n>(\n\tname: TTableName,\n\tcolumns: TColumnsMap | ((columnTypes: CockroachColumnsBuilders) => TColumnsMap),\n\textraConfig:\n\t\t| ((\n\t\t\tself: BuildExtraConfigColumns<TTableName, TColumnsMap, 'cockroach'>,\n\t\t) => CockroachTableExtraConfig | CockroachTableExtraConfigValue[])\n\t\t| undefined,\n\tschema: TSchemaName,\n\tbaseName = name,\n): CockroachTableWithColumns<{\n\tname: TTableName;\n\tschema: TSchemaName;\n\tcolumns: BuildColumns<TTableName, TColumnsMap, 'cockroach'>;\n\tdialect: 'cockroach';\n}> {\n\tconst rawTable = new CockroachTable<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'cockroach'>;\n\t\tdialect: 'cockroach';\n\t}>(name, schema, baseName);\n\n\tconst parsedColumns: TColumnsMap = typeof columns === 'function' ? columns(getCockroachColumnBuilders()) : columns;\n\n\tconst builtColumns = Object.fromEntries(\n\t\tObject.entries(parsedColumns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as CockroachColumnWithArrayBuilder;\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, 'cockroach'>;\n\n\tconst builtColumnsForExtraConfig = Object.fromEntries(\n\t\tObject.entries(parsedColumns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as CockroachColumnWithArrayBuilder;\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, 'cockroach'>;\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[CockroachTable.Symbol.ExtraConfigBuilder] = extraConfig as any;\n\t}\n\n\treturn Object.assign(table, {\n\t\tenableRLS: () => {\n\t\t\ttable[CockroachTable.Symbol.EnableRLS] = true;\n\t\t\treturn table as CockroachTableWithColumns<{\n\t\t\t\tname: TTableName;\n\t\t\t\tschema: TSchemaName;\n\t\t\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'cockroach'>;\n\t\t\t\tdialect: 'cockroach';\n\t\t\t}>;\n\t\t},\n\t}) as any;\n}\n\nexport interface CockroachTableFnInternal<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, 'cockroach'>,\n\t\t) => CockroachTableExtraConfigValue[],\n\t): CockroachTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'cockroach'>;\n\t\tdialect: 'cockroach';\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: CockroachColumnsBuilders) => TColumnsMap,\n\t\textraConfig?: (\n\t\t\tself: BuildExtraConfigColumns<TTableName, TColumnsMap, 'cockroach'>,\n\t\t) => CockroachTableExtraConfigValue[],\n\t): CockroachTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'cockroach'>;\n\t\tdialect: 'cockroach';\n\t}>;\n}\n\nexport interface CockroachTableFn<TSchema extends string | undefined = undefined>\n\textends CockroachTableFnInternal<TSchema>\n{\n\twithRLS: CockroachTableFnInternal<TSchema>;\n}\n\nconst cockroachTableInternal: CockroachTableFnInternal = (name, columns, extraConfig) => {\n\treturn cockroachTableWithSchema(name, columns, extraConfig, undefined);\n};\n\nconst cockroachTableWithRLS: CockroachTableFn['withRLS'] = (name, columns, extraConfig) => {\n\tconst table = cockroachTableWithSchema(name, columns, extraConfig, undefined);\n\ttable[EnableRLS] = true;\n\n\treturn table;\n};\n\nexport const cockroachTable: CockroachTableFn = Object.assign(cockroachTableInternal, {\n\twithRLS: cockroachTableWithRLS,\n});\n\nexport function cockroachTableCreator(customizeTableName: (name: string) => string): CockroachTableFn {\n\tconst fn: CockroachTableFnInternal = (name, columns, extraConfig) => {\n\t\treturn cockroachTableWithSchema(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 = cockroachTableWithSchema(\n\t\t\t\tcustomizeTableName(name) as typeof name,\n\t\t\t\tcolumns,\n\t\t\t\textraConfig,\n\t\t\t\tundefined,\n\t\t\t\tname,\n\t\t\t);\n\t\t\ttable[EnableRLS] = true;\n\n\t\t\treturn table;\n\t\t}) as CockroachTableFnInternal,\n\t});\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAC3B,mBAKO;AAEP,iBAA0E;AA6BnE,MAAM,oBAAoB,OAAO,IAAI,oCAAoC;AAEzE,MAAM,YAAY,OAAO,IAAI,mBAAmB;AAEhD,MAAM,uBAA4D,mBAAS;AAAA,EACjF,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,IAE1B;AAAA;AAAA,EAGf,CAAU,mBAAM,OAAO,kBAAkB,IAAuC,CAAC;AAClF;AAkBO,SAAS,yBAKf,MACA,SACA,aAKA,QACA,WAAW,MAMT;AACF,QAAM,WAAW,IAAI,eAKlB,MAAM,QAAQ,QAAQ;AAEzB,QAAM,gBAA6B,OAAO,YAAY,aAAa,YAAQ,uCAA2B,CAAC,IAAI;AAE3G,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,eAAe,OAAO,kBAAkB,IAAI;AAAA,EACnD;AAEA,SAAO,OAAO,OAAO,OAAO;AAAA,IAC3B,WAAW,MAAM;AAChB,YAAM,eAAe,OAAO,SAAS,IAAI;AACzC,aAAO;AAAA,IAMR;AAAA,EACD,CAAC;AACF;AA0CA,MAAM,yBAAmD,CAAC,MAAM,SAAS,gBAAgB;AACxF,SAAO,yBAAyB,MAAM,SAAS,aAAa,MAAS;AACtE;AAEA,MAAM,wBAAqD,CAAC,MAAM,SAAS,gBAAgB;AAC1F,QAAM,QAAQ,yBAAyB,MAAM,SAAS,aAAa,MAAS;AAC5E,QAAM,SAAS,IAAI;AAEnB,SAAO;AACR;AAEO,MAAM,iBAAmC,OAAO,OAAO,wBAAwB;AAAA,EACrF,SAAS;AACV,CAAC;AAEM,SAAS,sBAAsB,oBAAgE;AACrG,QAAM,KAA+B,CAAC,MAAM,SAAS,gBAAgB;AACpE,WAAO,yBAAyB,mBAAmB,IAAI,GAAkB,SAAS,aAAa,QAAW,IAAI;AAAA,EAC/G;AAEA,SAAO,OAAO,OAAO,IAAI;AAAA,IACxB,UAAU,CAAC,MAAM,SAAS,gBAAgB;AACzC,YAAM,QAAQ;AAAA,QACb,mBAAmB,IAAI;AAAA,QACvB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AACA,YAAM,SAAS,IAAI;AAEnB,aAAO;AAAA,IACR;AAAA,EACD,CAAC;AACF;","names":["name"]}
@@ -19,7 +19,7 @@ export type AnyCockroachTable<TPartial extends Partial<TableConfig> = {}> = Cock
19
19
  export type CockroachTableWithColumns<T extends TableConfig> = CockroachTable<T> & T['columns'] & InferTableColumnsModels<T['columns']> & {
20
20
  enableRLS: () => Omit<CockroachTableWithColumns<T>, 'enableRLS'>;
21
21
  };
22
- export interface CockroachTableFn<TSchema extends string | undefined = undefined> {
22
+ export interface CockroachTableFnInternal<TSchema extends string | undefined = undefined> {
23
23
  <TTableName extends string, TColumnsMap extends Record<string, ColumnBuilderBase>>(name: TTableName, columns: TColumnsMap, extraConfig?: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'cockroach'>) => CockroachTableExtraConfigValue[]): CockroachTableWithColumns<{
24
24
  name: TTableName;
25
25
  schema: TSchema;
@@ -33,5 +33,8 @@ export interface CockroachTableFn<TSchema extends string | undefined = undefined
33
33
  dialect: 'cockroach';
34
34
  }>;
35
35
  }
36
+ export interface CockroachTableFn<TSchema extends string | undefined = undefined> extends CockroachTableFnInternal<TSchema> {
37
+ withRLS: CockroachTableFnInternal<TSchema>;
38
+ }
36
39
  export declare const cockroachTable: CockroachTableFn;
37
40
  export declare function cockroachTableCreator(customizeTableName: (name: string) => string): CockroachTableFn;
@@ -19,7 +19,7 @@ export type AnyCockroachTable<TPartial extends Partial<TableConfig> = {}> = Cock
19
19
  export type CockroachTableWithColumns<T extends TableConfig> = CockroachTable<T> & T['columns'] & InferTableColumnsModels<T['columns']> & {
20
20
  enableRLS: () => Omit<CockroachTableWithColumns<T>, 'enableRLS'>;
21
21
  };
22
- export interface CockroachTableFn<TSchema extends string | undefined = undefined> {
22
+ export interface CockroachTableFnInternal<TSchema extends string | undefined = undefined> {
23
23
  <TTableName extends string, TColumnsMap extends Record<string, ColumnBuilderBase>>(name: TTableName, columns: TColumnsMap, extraConfig?: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'cockroach'>) => CockroachTableExtraConfigValue[]): CockroachTableWithColumns<{
24
24
  name: TTableName;
25
25
  schema: TSchema;
@@ -33,5 +33,8 @@ export interface CockroachTableFn<TSchema extends string | undefined = undefined
33
33
  dialect: 'cockroach';
34
34
  }>;
35
35
  }
36
+ export interface CockroachTableFn<TSchema extends string | undefined = undefined> extends CockroachTableFnInternal<TSchema> {
37
+ withRLS: CockroachTableFnInternal<TSchema>;
38
+ }
36
39
  export declare const cockroachTable: CockroachTableFn;
37
40
  export declare function cockroachTableCreator(customizeTableName: (name: string) => string): CockroachTableFn;
@@ -54,13 +54,34 @@ function cockroachTableWithSchema(name, columns, extraConfig, schema, baseName =
54
54
  }
55
55
  });
56
56
  }
57
- const cockroachTable = (name, columns, extraConfig) => {
57
+ const cockroachTableInternal = (name, columns, extraConfig) => {
58
58
  return cockroachTableWithSchema(name, columns, extraConfig, void 0);
59
59
  };
60
+ const cockroachTableWithRLS = (name, columns, extraConfig) => {
61
+ const table = cockroachTableWithSchema(name, columns, extraConfig, void 0);
62
+ table[EnableRLS] = true;
63
+ return table;
64
+ };
65
+ const cockroachTable = Object.assign(cockroachTableInternal, {
66
+ withRLS: cockroachTableWithRLS
67
+ });
60
68
  function cockroachTableCreator(customizeTableName) {
61
- return (name, columns, extraConfig) => {
69
+ const fn = (name, columns, extraConfig) => {
62
70
  return cockroachTableWithSchema(customizeTableName(name), columns, extraConfig, void 0, name);
63
71
  };
72
+ return Object.assign(fn, {
73
+ withRLS: ((name, columns, extraConfig) => {
74
+ const table = cockroachTableWithSchema(
75
+ customizeTableName(name),
76
+ columns,
77
+ extraConfig,
78
+ void 0,
79
+ name
80
+ );
81
+ table[EnableRLS] = true;
82
+ return table;
83
+ })
84
+ });
64
85
  }
65
86
  export {
66
87
  CockroachTable,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cockroach-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 { type CockroachColumnsBuilders, getCockroachColumnBuilders } from './columns/all.ts';\nimport type {\n\tCockroachColumn,\n\tCockroachColumns,\n\tCockroachColumnWithArrayBuilder,\n\tExtraConfigColumn,\n} from './columns/common.ts';\nimport type { ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { AnyIndexBuilder } from './indexes.ts';\nimport type { CockroachPolicy } from './policies.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type CockroachTableExtraConfigValue =\n\t| AnyIndexBuilder\n\t| CheckBuilder\n\t| ForeignKeyBuilder\n\t| PrimaryKeyBuilder\n\t| UniqueConstraintBuilder\n\t| CockroachPolicy;\n\nexport type CockroachTableExtraConfig = Record<\n\tstring,\n\tCockroachTableExtraConfigValue\n>;\n\nexport type TableConfig = TableConfigBase<CockroachColumns>;\n\n/** @internal */\nexport const InlineForeignKeys = Symbol.for('drizzle:CockroachInlineForeignKeys');\n/** @internal */\nexport const EnableRLS = Symbol.for('drizzle:EnableRLS');\n\nexport class CockroachTable<T extends TableConfig = TableConfig> extends Table<T> {\n\tstatic override readonly [entityKind]: string = 'CockroachTable';\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]:\n\t\t| ((self: Record<string, CockroachColumn>) => CockroachTableExtraConfig)\n\t\t| undefined = undefined;\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigColumns]: Record<string, ExtraConfigColumn> = {};\n}\n\nexport type AnyCockroachTable<TPartial extends Partial<TableConfig> = {}> = CockroachTable<\n\tUpdateTableConfig<TableConfig, TPartial>\n>;\n\nexport type CockroachTableWithColumns<T extends TableConfig> =\n\t& CockroachTable<T>\n\t& T['columns']\n\t& InferTableColumnsModels<T['columns']>\n\t& {\n\t\tenableRLS: () => Omit<\n\t\t\tCockroachTableWithColumns<T>,\n\t\t\t'enableRLS'\n\t\t>;\n\t};\n\n/** @internal */\nexport function cockroachTableWithSchema<\n\tTTableName extends string,\n\tTSchemaName extends string | undefined,\n\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n>(\n\tname: TTableName,\n\tcolumns: TColumnsMap | ((columnTypes: CockroachColumnsBuilders) => TColumnsMap),\n\textraConfig:\n\t\t| ((\n\t\t\tself: BuildExtraConfigColumns<TTableName, TColumnsMap, 'cockroach'>,\n\t\t) => CockroachTableExtraConfig | CockroachTableExtraConfigValue[])\n\t\t| undefined,\n\tschema: TSchemaName,\n\tbaseName = name,\n): CockroachTableWithColumns<{\n\tname: TTableName;\n\tschema: TSchemaName;\n\tcolumns: BuildColumns<TTableName, TColumnsMap, 'cockroach'>;\n\tdialect: 'cockroach';\n}> {\n\tconst rawTable = new CockroachTable<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'cockroach'>;\n\t\tdialect: 'cockroach';\n\t}>(name, schema, baseName);\n\n\tconst parsedColumns: TColumnsMap = typeof columns === 'function' ? columns(getCockroachColumnBuilders()) : columns;\n\n\tconst builtColumns = Object.fromEntries(\n\t\tObject.entries(parsedColumns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as CockroachColumnWithArrayBuilder;\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, 'cockroach'>;\n\n\tconst builtColumnsForExtraConfig = Object.fromEntries(\n\t\tObject.entries(parsedColumns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as CockroachColumnWithArrayBuilder;\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, 'cockroach'>;\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[CockroachTable.Symbol.ExtraConfigBuilder] = extraConfig as any;\n\t}\n\n\treturn Object.assign(table, {\n\t\tenableRLS: () => {\n\t\t\ttable[CockroachTable.Symbol.EnableRLS] = true;\n\t\t\treturn table as CockroachTableWithColumns<{\n\t\t\t\tname: TTableName;\n\t\t\t\tschema: TSchemaName;\n\t\t\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'cockroach'>;\n\t\t\t\tdialect: 'cockroach';\n\t\t\t}>;\n\t\t},\n\t}) as any;\n}\n\nexport interface CockroachTableFn<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, 'cockroach'>,\n\t\t) => CockroachTableExtraConfigValue[],\n\t): CockroachTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'cockroach'>;\n\t\tdialect: 'cockroach';\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: CockroachColumnsBuilders) => TColumnsMap,\n\t\textraConfig?: (\n\t\t\tself: BuildExtraConfigColumns<TTableName, TColumnsMap, 'cockroach'>,\n\t\t) => CockroachTableExtraConfigValue[],\n\t): CockroachTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'cockroach'>;\n\t\tdialect: 'cockroach';\n\t}>;\n}\n\nexport const cockroachTable: CockroachTableFn = (name, columns, extraConfig) => {\n\treturn cockroachTableWithSchema(name, columns, extraConfig, undefined);\n};\n\nexport function cockroachTableCreator(customizeTableName: (name: string) => string): CockroachTableFn {\n\treturn (name, columns, extraConfig) => {\n\t\treturn cockroachTableWithSchema(customizeTableName(name) as typeof name, columns, extraConfig, undefined, name);\n\t};\n}\n"],"mappings":"AACA,SAAS,kBAAkB;AAC3B;AAAA,EAEC;AAAA,OAGM;AAEP,SAAwC,kCAAkC;AA6BnE,MAAM,oBAAoB,OAAO,IAAI,oCAAoC;AAEzE,MAAM,YAAY,OAAO,IAAI,mBAAmB;AAEhD,MAAM,uBAA4D,MAAS;AAAA,EACjF,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,IAE1B;AAAA;AAAA,EAGf,CAAU,MAAM,OAAO,kBAAkB,IAAuC,CAAC;AAClF;AAkBO,SAAS,yBAKf,MACA,SACA,aAKA,QACA,WAAW,MAMT;AACF,QAAM,WAAW,IAAI,eAKlB,MAAM,QAAQ,QAAQ;AAEzB,QAAM,gBAA6B,OAAO,YAAY,aAAa,QAAQ,2BAA2B,CAAC,IAAI;AAE3G,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,eAAe,OAAO,kBAAkB,IAAI;AAAA,EACnD;AAEA,SAAO,OAAO,OAAO,OAAO;AAAA,IAC3B,WAAW,MAAM;AAChB,YAAM,eAAe,OAAO,SAAS,IAAI;AACzC,aAAO;AAAA,IAMR;AAAA,EACD,CAAC;AACF;AAoCO,MAAM,iBAAmC,CAAC,MAAM,SAAS,gBAAgB;AAC/E,SAAO,yBAAyB,MAAM,SAAS,aAAa,MAAS;AACtE;AAEO,SAAS,sBAAsB,oBAAgE;AACrG,SAAO,CAAC,MAAM,SAAS,gBAAgB;AACtC,WAAO,yBAAyB,mBAAmB,IAAI,GAAkB,SAAS,aAAa,QAAW,IAAI;AAAA,EAC/G;AACD;","names":["name"]}
1
+ {"version":3,"sources":["../../src/cockroach-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 { type CockroachColumnsBuilders, getCockroachColumnBuilders } from './columns/all.ts';\nimport type {\n\tCockroachColumn,\n\tCockroachColumns,\n\tCockroachColumnWithArrayBuilder,\n\tExtraConfigColumn,\n} from './columns/common.ts';\nimport type { ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { AnyIndexBuilder } from './indexes.ts';\nimport type { CockroachPolicy } from './policies.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type CockroachTableExtraConfigValue =\n\t| AnyIndexBuilder\n\t| CheckBuilder\n\t| ForeignKeyBuilder\n\t| PrimaryKeyBuilder\n\t| UniqueConstraintBuilder\n\t| CockroachPolicy;\n\nexport type CockroachTableExtraConfig = Record<\n\tstring,\n\tCockroachTableExtraConfigValue\n>;\n\nexport type TableConfig = TableConfigBase<CockroachColumns>;\n\n/** @internal */\nexport const InlineForeignKeys = Symbol.for('drizzle:CockroachInlineForeignKeys');\n/** @internal */\nexport const EnableRLS = Symbol.for('drizzle:EnableRLS');\n\nexport class CockroachTable<T extends TableConfig = TableConfig> extends Table<T> {\n\tstatic override readonly [entityKind]: string = 'CockroachTable';\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]:\n\t\t| ((self: Record<string, CockroachColumn>) => CockroachTableExtraConfig)\n\t\t| undefined = undefined;\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigColumns]: Record<string, ExtraConfigColumn> = {};\n}\n\nexport type AnyCockroachTable<TPartial extends Partial<TableConfig> = {}> = CockroachTable<\n\tUpdateTableConfig<TableConfig, TPartial>\n>;\n\nexport type CockroachTableWithColumns<T extends TableConfig> =\n\t& CockroachTable<T>\n\t& T['columns']\n\t& InferTableColumnsModels<T['columns']>\n\t& {\n\t\tenableRLS: () => Omit<\n\t\t\tCockroachTableWithColumns<T>,\n\t\t\t'enableRLS'\n\t\t>;\n\t};\n\n/** @internal */\nexport function cockroachTableWithSchema<\n\tTTableName extends string,\n\tTSchemaName extends string | undefined,\n\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n>(\n\tname: TTableName,\n\tcolumns: TColumnsMap | ((columnTypes: CockroachColumnsBuilders) => TColumnsMap),\n\textraConfig:\n\t\t| ((\n\t\t\tself: BuildExtraConfigColumns<TTableName, TColumnsMap, 'cockroach'>,\n\t\t) => CockroachTableExtraConfig | CockroachTableExtraConfigValue[])\n\t\t| undefined,\n\tschema: TSchemaName,\n\tbaseName = name,\n): CockroachTableWithColumns<{\n\tname: TTableName;\n\tschema: TSchemaName;\n\tcolumns: BuildColumns<TTableName, TColumnsMap, 'cockroach'>;\n\tdialect: 'cockroach';\n}> {\n\tconst rawTable = new CockroachTable<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'cockroach'>;\n\t\tdialect: 'cockroach';\n\t}>(name, schema, baseName);\n\n\tconst parsedColumns: TColumnsMap = typeof columns === 'function' ? columns(getCockroachColumnBuilders()) : columns;\n\n\tconst builtColumns = Object.fromEntries(\n\t\tObject.entries(parsedColumns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as CockroachColumnWithArrayBuilder;\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, 'cockroach'>;\n\n\tconst builtColumnsForExtraConfig = Object.fromEntries(\n\t\tObject.entries(parsedColumns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as CockroachColumnWithArrayBuilder;\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, 'cockroach'>;\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[CockroachTable.Symbol.ExtraConfigBuilder] = extraConfig as any;\n\t}\n\n\treturn Object.assign(table, {\n\t\tenableRLS: () => {\n\t\t\ttable[CockroachTable.Symbol.EnableRLS] = true;\n\t\t\treturn table as CockroachTableWithColumns<{\n\t\t\t\tname: TTableName;\n\t\t\t\tschema: TSchemaName;\n\t\t\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'cockroach'>;\n\t\t\t\tdialect: 'cockroach';\n\t\t\t}>;\n\t\t},\n\t}) as any;\n}\n\nexport interface CockroachTableFnInternal<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, 'cockroach'>,\n\t\t) => CockroachTableExtraConfigValue[],\n\t): CockroachTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'cockroach'>;\n\t\tdialect: 'cockroach';\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: CockroachColumnsBuilders) => TColumnsMap,\n\t\textraConfig?: (\n\t\t\tself: BuildExtraConfigColumns<TTableName, TColumnsMap, 'cockroach'>,\n\t\t) => CockroachTableExtraConfigValue[],\n\t): CockroachTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'cockroach'>;\n\t\tdialect: 'cockroach';\n\t}>;\n}\n\nexport interface CockroachTableFn<TSchema extends string | undefined = undefined>\n\textends CockroachTableFnInternal<TSchema>\n{\n\twithRLS: CockroachTableFnInternal<TSchema>;\n}\n\nconst cockroachTableInternal: CockroachTableFnInternal = (name, columns, extraConfig) => {\n\treturn cockroachTableWithSchema(name, columns, extraConfig, undefined);\n};\n\nconst cockroachTableWithRLS: CockroachTableFn['withRLS'] = (name, columns, extraConfig) => {\n\tconst table = cockroachTableWithSchema(name, columns, extraConfig, undefined);\n\ttable[EnableRLS] = true;\n\n\treturn table;\n};\n\nexport const cockroachTable: CockroachTableFn = Object.assign(cockroachTableInternal, {\n\twithRLS: cockroachTableWithRLS,\n});\n\nexport function cockroachTableCreator(customizeTableName: (name: string) => string): CockroachTableFn {\n\tconst fn: CockroachTableFnInternal = (name, columns, extraConfig) => {\n\t\treturn cockroachTableWithSchema(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 = cockroachTableWithSchema(\n\t\t\t\tcustomizeTableName(name) as typeof name,\n\t\t\t\tcolumns,\n\t\t\t\textraConfig,\n\t\t\t\tundefined,\n\t\t\t\tname,\n\t\t\t);\n\t\t\ttable[EnableRLS] = true;\n\n\t\t\treturn table;\n\t\t}) as CockroachTableFnInternal,\n\t});\n}\n"],"mappings":"AACA,SAAS,kBAAkB;AAC3B;AAAA,EAEC;AAAA,OAGM;AAEP,SAAwC,kCAAkC;AA6BnE,MAAM,oBAAoB,OAAO,IAAI,oCAAoC;AAEzE,MAAM,YAAY,OAAO,IAAI,mBAAmB;AAEhD,MAAM,uBAA4D,MAAS;AAAA,EACjF,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,IAE1B;AAAA;AAAA,EAGf,CAAU,MAAM,OAAO,kBAAkB,IAAuC,CAAC;AAClF;AAkBO,SAAS,yBAKf,MACA,SACA,aAKA,QACA,WAAW,MAMT;AACF,QAAM,WAAW,IAAI,eAKlB,MAAM,QAAQ,QAAQ;AAEzB,QAAM,gBAA6B,OAAO,YAAY,aAAa,QAAQ,2BAA2B,CAAC,IAAI;AAE3G,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,eAAe,OAAO,kBAAkB,IAAI;AAAA,EACnD;AAEA,SAAO,OAAO,OAAO,OAAO;AAAA,IAC3B,WAAW,MAAM;AAChB,YAAM,eAAe,OAAO,SAAS,IAAI;AACzC,aAAO;AAAA,IAMR;AAAA,EACD,CAAC;AACF;AA0CA,MAAM,yBAAmD,CAAC,MAAM,SAAS,gBAAgB;AACxF,SAAO,yBAAyB,MAAM,SAAS,aAAa,MAAS;AACtE;AAEA,MAAM,wBAAqD,CAAC,MAAM,SAAS,gBAAgB;AAC1F,QAAM,QAAQ,yBAAyB,MAAM,SAAS,aAAa,MAAS;AAC5E,QAAM,SAAS,IAAI;AAEnB,SAAO;AACR;AAEO,MAAM,iBAAmC,OAAO,OAAO,wBAAwB;AAAA,EACrF,SAAS;AACV,CAAC;AAEM,SAAS,sBAAsB,oBAAgE;AACrG,QAAM,KAA+B,CAAC,MAAM,SAAS,gBAAgB;AACpE,WAAO,yBAAyB,mBAAmB,IAAI,GAAkB,SAAS,aAAa,QAAW,IAAI;AAAA,EAC/G;AAEA,SAAO,OAAO,OAAO,IAAI;AAAA,IACxB,UAAU,CAAC,MAAM,SAAS,gBAAgB;AACzC,YAAM,QAAQ;AAAA,QACb,mBAAmB,IAAI;AAAA,QACvB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AACA,YAAM,SAAS,IAAI;AAEnB,aAAO;AAAA,IACR;AAAA,EACD,CAAC;AACF;","names":["name"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/gel-core/query-builders/count.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { SQL, sql, type SQLWrapper } from '~/sql/sql.ts';\nimport type { GelSession } from '../session.ts';\nimport type { GelTable } from '../table.ts';\n\nexport class GelCountBuilder<\n\tTSession extends GelSession<any, any, any>,\n> extends SQL<number> implements Promise<number>, SQLWrapper {\n\tprivate sql: SQL<number>;\n\n\tstatic override readonly [entityKind]: string = 'GelCountBuilder';\n\t[Symbol.toStringTag] = 'GelCountBuilder';\n\n\tprivate session: TSession;\n\n\tprivate static buildEmbeddedCount(\n\t\tsource: GelTable | 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: GelTable | 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: GelTable | SQL | SQLWrapper;\n\t\t\tfilters?: SQL<unknown>;\n\t\t\tsession: TSession;\n\t\t},\n\t) {\n\t\tsuper(GelCountBuilder.buildEmbeddedCount(params.source, params.filters).queryChunks);\n\n\t\tthis.mapWith(Number);\n\n\t\tthis.session = params.session;\n\n\t\tthis.sql = GelCountBuilder.buildCount(\n\t\t\tparams.source,\n\t\t\tparams.filters,\n\t\t);\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))\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;AAInC,MAAM,wBAEH,eAAmD;AAAA,EAsB5D,YACU,QAKR;AACD,UAAM,gBAAgB,mBAAmB,OAAO,QAAQ,OAAO,OAAO,EAAE,WAAW;AAN1E;AAQT,SAAK,QAAQ,MAAM;AAEnB,SAAK,UAAU,OAAO;AAEtB,SAAK,MAAM,gBAAgB;AAAA,MAC1B,OAAO;AAAA,MACP,OAAO;AAAA,IACR;AAAA,EACD;AAAA,EAtCQ;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,EAqBA,KACC,aACA,YAC+B;AAC/B,WAAO,QAAQ,QAAQ,KAAK,QAAQ,MAAM,KAAK,GAAG,CAAC,EACjD;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/gel-core/query-builders/count.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { SQL, sql, type SQLWrapper } from '~/sql/sql.ts';\nimport type { GelSession } from '../session.ts';\nimport type { GelTable } from '../table.ts';\nimport type { GelViewBase } from '../view-base.ts';\n\nexport class GelCountBuilder<\n\tTSession extends GelSession<any, any, any>,\n> extends SQL<number> implements Promise<number>, SQLWrapper {\n\tprivate sql: SQL<number>;\n\n\tstatic override readonly [entityKind]: string = 'GelCountBuilder';\n\t[Symbol.toStringTag] = 'GelCountBuilder';\n\n\tprivate session: TSession;\n\n\tprivate static buildEmbeddedCount(\n\t\tsource: GelTable | GelViewBase | 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: GelTable | GelViewBase | 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: GelTable | GelViewBase | SQL | SQLWrapper;\n\t\t\tfilters?: SQL<unknown>;\n\t\t\tsession: TSession;\n\t\t},\n\t) {\n\t\tsuper(GelCountBuilder.buildEmbeddedCount(params.source, params.filters).queryChunks);\n\n\t\tthis.mapWith(Number);\n\n\t\tthis.session = params.session;\n\n\t\tthis.sql = GelCountBuilder.buildCount(\n\t\t\tparams.source,\n\t\t\tparams.filters,\n\t\t);\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))\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,wBAEH,eAAmD;AAAA,EAsB5D,YACU,QAKR;AACD,UAAM,gBAAgB,mBAAmB,OAAO,QAAQ,OAAO,OAAO,EAAE,WAAW;AAN1E;AAQT,SAAK,QAAQ,MAAM;AAEnB,SAAK,UAAU,OAAO;AAEtB,SAAK,MAAM,gBAAgB;AAAA,MAC1B,OAAO;AAAA,MACP,OAAO;AAAA,IACR;AAAA,EACD;AAAA,EAtCQ;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,EAqBA,KACC,aACA,YAC+B;AAC/B,WAAO,QAAQ,QAAQ,KAAK,QAAQ,MAAM,KAAK,GAAG,CAAC,EACjD;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":[]}
@@ -2,9 +2,10 @@ import { entityKind } from "../../entity.cjs";
2
2
  import { SQL, type SQLWrapper } from "../../sql/sql.cjs";
3
3
  import type { GelSession } from "../session.cjs";
4
4
  import type { GelTable } from "../table.cjs";
5
+ import type { GelViewBase } from "../view-base.cjs";
5
6
  export declare class GelCountBuilder<TSession extends GelSession<any, any, any>> extends SQL<number> implements Promise<number>, SQLWrapper {
6
7
  readonly params: {
7
- source: GelTable | SQL | SQLWrapper;
8
+ source: GelTable | GelViewBase | SQL | SQLWrapper;
8
9
  filters?: SQL<unknown>;
9
10
  session: TSession;
10
11
  };
@@ -15,7 +16,7 @@ export declare class GelCountBuilder<TSession extends GelSession<any, any, any>>
15
16
  private static buildEmbeddedCount;
16
17
  private static buildCount;
17
18
  constructor(params: {
18
- source: GelTable | SQL | SQLWrapper;
19
+ source: GelTable | GelViewBase | SQL | SQLWrapper;
19
20
  filters?: SQL<unknown>;
20
21
  session: TSession;
21
22
  });
@@ -2,9 +2,10 @@ import { entityKind } from "../../entity.js";
2
2
  import { SQL, type SQLWrapper } from "../../sql/sql.js";
3
3
  import type { GelSession } from "../session.js";
4
4
  import type { GelTable } from "../table.js";
5
+ import type { GelViewBase } from "../view-base.js";
5
6
  export declare class GelCountBuilder<TSession extends GelSession<any, any, any>> extends SQL<number> implements Promise<number>, SQLWrapper {
6
7
  readonly params: {
7
- source: GelTable | SQL | SQLWrapper;
8
+ source: GelTable | GelViewBase | SQL | SQLWrapper;
8
9
  filters?: SQL<unknown>;
9
10
  session: TSession;
10
11
  };
@@ -15,7 +16,7 @@ export declare class GelCountBuilder<TSession extends GelSession<any, any, any>>
15
16
  private static buildEmbeddedCount;
16
17
  private static buildCount;
17
18
  constructor(params: {
18
- source: GelTable | SQL | SQLWrapper;
19
+ source: GelTable | GelViewBase | SQL | SQLWrapper;
19
20
  filters?: SQL<unknown>;
20
21
  session: TSession;
21
22
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/gel-core/query-builders/count.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { SQL, sql, type SQLWrapper } from '~/sql/sql.ts';\nimport type { GelSession } from '../session.ts';\nimport type { GelTable } from '../table.ts';\n\nexport class GelCountBuilder<\n\tTSession extends GelSession<any, any, any>,\n> extends SQL<number> implements Promise<number>, SQLWrapper {\n\tprivate sql: SQL<number>;\n\n\tstatic override readonly [entityKind]: string = 'GelCountBuilder';\n\t[Symbol.toStringTag] = 'GelCountBuilder';\n\n\tprivate session: TSession;\n\n\tprivate static buildEmbeddedCount(\n\t\tsource: GelTable | 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: GelTable | 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: GelTable | SQL | SQLWrapper;\n\t\t\tfilters?: SQL<unknown>;\n\t\t\tsession: TSession;\n\t\t},\n\t) {\n\t\tsuper(GelCountBuilder.buildEmbeddedCount(params.source, params.filters).queryChunks);\n\n\t\tthis.mapWith(Number);\n\n\t\tthis.session = params.session;\n\n\t\tthis.sql = GelCountBuilder.buildCount(\n\t\t\tparams.source,\n\t\t\tparams.filters,\n\t\t);\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))\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;AAInC,MAAM,wBAEH,IAAmD;AAAA,EAsB5D,YACU,QAKR;AACD,UAAM,gBAAgB,mBAAmB,OAAO,QAAQ,OAAO,OAAO,EAAE,WAAW;AAN1E;AAQT,SAAK,QAAQ,MAAM;AAEnB,SAAK,UAAU,OAAO;AAEtB,SAAK,MAAM,gBAAgB;AAAA,MAC1B,OAAO;AAAA,MACP,OAAO;AAAA,IACR;AAAA,EACD;AAAA,EAtCQ;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,EAqBA,KACC,aACA,YAC+B;AAC/B,WAAO,QAAQ,QAAQ,KAAK,QAAQ,MAAM,KAAK,GAAG,CAAC,EACjD;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/gel-core/query-builders/count.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { SQL, sql, type SQLWrapper } from '~/sql/sql.ts';\nimport type { GelSession } from '../session.ts';\nimport type { GelTable } from '../table.ts';\nimport type { GelViewBase } from '../view-base.ts';\n\nexport class GelCountBuilder<\n\tTSession extends GelSession<any, any, any>,\n> extends SQL<number> implements Promise<number>, SQLWrapper {\n\tprivate sql: SQL<number>;\n\n\tstatic override readonly [entityKind]: string = 'GelCountBuilder';\n\t[Symbol.toStringTag] = 'GelCountBuilder';\n\n\tprivate session: TSession;\n\n\tprivate static buildEmbeddedCount(\n\t\tsource: GelTable | GelViewBase | 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: GelTable | GelViewBase | 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: GelTable | GelViewBase | SQL | SQLWrapper;\n\t\t\tfilters?: SQL<unknown>;\n\t\t\tsession: TSession;\n\t\t},\n\t) {\n\t\tsuper(GelCountBuilder.buildEmbeddedCount(params.source, params.filters).queryChunks);\n\n\t\tthis.mapWith(Number);\n\n\t\tthis.session = params.session;\n\n\t\tthis.sql = GelCountBuilder.buildCount(\n\t\t\tparams.source,\n\t\t\tparams.filters,\n\t\t);\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))\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,wBAEH,IAAmD;AAAA,EAsB5D,YACU,QAKR;AACD,UAAM,gBAAgB,mBAAmB,OAAO,QAAQ,OAAO,OAAO,EAAE,WAAW;AAN1E;AAQT,SAAK,QAAQ,MAAM;AAEnB,SAAK,UAAU,OAAO;AAEtB,SAAK,MAAM,gBAAgB;AAAA,MAC1B,OAAO;AAAA,MACP,OAAO;AAAA,IACR;AAAA,EACD;AAAA,EAtCQ;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,EAqBA,KACC,aACA,YAC+B;AAC/B,WAAO,QAAQ,QAAQ,KAAK,QAAQ,MAAM,KAAK,GAAG,CAAC,EACjD;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":[]}