drizzle-orm 0.33.0-bddd952 → 0.33.0-d496e6f

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 (262) hide show
  1. package/aws-data-api/common/index.d.cts +1 -1
  2. package/aws-data-api/common/index.d.ts +1 -1
  3. package/better-sqlite3/driver.cjs +7 -1
  4. package/better-sqlite3/driver.cjs.map +1 -1
  5. package/better-sqlite3/driver.d.cts +4 -1
  6. package/better-sqlite3/driver.d.ts +4 -1
  7. package/better-sqlite3/driver.js +6 -1
  8. package/better-sqlite3/driver.js.map +1 -1
  9. package/bun-sqlite/driver.cjs +7 -1
  10. package/bun-sqlite/driver.cjs.map +1 -1
  11. package/bun-sqlite/driver.d.cts +4 -1
  12. package/bun-sqlite/driver.d.ts +4 -1
  13. package/bun-sqlite/driver.js +6 -1
  14. package/bun-sqlite/driver.js.map +1 -1
  15. package/expo-sqlite/driver.cjs +7 -1
  16. package/expo-sqlite/driver.cjs.map +1 -1
  17. package/expo-sqlite/driver.d.cts +4 -1
  18. package/expo-sqlite/driver.d.ts +4 -1
  19. package/expo-sqlite/driver.js +6 -1
  20. package/expo-sqlite/driver.js.map +1 -1
  21. package/index.cjs +4 -0
  22. package/index.cjs.map +1 -1
  23. package/index.d.cts +2 -0
  24. package/index.d.ts +2 -0
  25. package/index.js +2 -0
  26. package/index.js.map +1 -1
  27. package/libsql/migrator.cjs +1 -1
  28. package/libsql/migrator.cjs.map +1 -1
  29. package/libsql/migrator.d.cts +1 -1
  30. package/libsql/migrator.d.ts +1 -1
  31. package/libsql/migrator.js +1 -1
  32. package/libsql/migrator.js.map +1 -1
  33. package/libsql/session.cjs +12 -0
  34. package/libsql/session.cjs.map +1 -1
  35. package/libsql/session.d.cts +1 -0
  36. package/libsql/session.d.ts +1 -0
  37. package/libsql/session.js +12 -0
  38. package/libsql/session.js.map +1 -1
  39. package/monodriver.cjs +177 -0
  40. package/monodriver.cjs.map +1 -0
  41. package/monodriver.d.cts +140 -0
  42. package/monodriver.d.ts +140 -0
  43. package/monodriver.js +143 -0
  44. package/monodriver.js.map +1 -0
  45. package/monomigrator.cjs +95 -0
  46. package/monomigrator.cjs.map +1 -0
  47. package/monomigrator.d.cts +15 -0
  48. package/monomigrator.d.ts +15 -0
  49. package/monomigrator.js +61 -0
  50. package/monomigrator.js.map +1 -0
  51. package/mysql-core/db.cjs +4 -0
  52. package/mysql-core/db.cjs.map +1 -1
  53. package/mysql-core/db.d.cts +4 -1
  54. package/mysql-core/db.d.ts +4 -1
  55. package/mysql-core/db.js +4 -0
  56. package/mysql-core/db.js.map +1 -1
  57. package/mysql-core/query-builders/count.cjs +73 -0
  58. package/mysql-core/query-builders/count.cjs.map +1 -0
  59. package/mysql-core/query-builders/count.d.cts +27 -0
  60. package/mysql-core/query-builders/count.d.ts +27 -0
  61. package/mysql-core/query-builders/count.js +49 -0
  62. package/mysql-core/query-builders/count.js.map +1 -0
  63. package/mysql-core/session.cjs +6 -0
  64. package/mysql-core/session.cjs.map +1 -1
  65. package/mysql-core/session.d.cts +1 -0
  66. package/mysql-core/session.d.ts +1 -0
  67. package/mysql-core/session.js +6 -0
  68. package/mysql-core/session.js.map +1 -1
  69. package/mysql-proxy/driver.cjs +7 -1
  70. package/mysql-proxy/driver.cjs.map +1 -1
  71. package/mysql-proxy/driver.d.cts +4 -1
  72. package/mysql-proxy/driver.d.ts +4 -1
  73. package/mysql-proxy/driver.js +6 -1
  74. package/mysql-proxy/driver.js.map +1 -1
  75. package/mysql2/driver.cjs +6 -1
  76. package/mysql2/driver.cjs.map +1 -1
  77. package/mysql2/driver.d.cts +3 -1
  78. package/mysql2/driver.d.ts +3 -1
  79. package/mysql2/driver.js +5 -1
  80. package/mysql2/driver.js.map +1 -1
  81. package/mysql2/migrator.cjs +4 -1
  82. package/mysql2/migrator.cjs.map +1 -1
  83. package/mysql2/migrator.d.cts +1 -1
  84. package/mysql2/migrator.d.ts +1 -1
  85. package/mysql2/migrator.js +4 -1
  86. package/mysql2/migrator.js.map +1 -1
  87. package/neon/index.cjs +23 -0
  88. package/neon/index.cjs.map +1 -0
  89. package/neon/index.d.cts +1 -0
  90. package/neon/index.d.ts +1 -0
  91. package/neon/index.js +2 -0
  92. package/neon/index.js.map +1 -0
  93. package/neon/rls.cjs +67 -0
  94. package/neon/rls.cjs.map +1 -0
  95. package/neon/rls.d.cts +13 -0
  96. package/neon/rls.d.ts +13 -0
  97. package/neon/rls.js +40 -0
  98. package/neon/rls.js.map +1 -0
  99. package/neon-http/session.cjs +6 -0
  100. package/neon-http/session.cjs.map +1 -1
  101. package/neon-http/session.d.cts +2 -1
  102. package/neon-http/session.d.ts +2 -1
  103. package/neon-http/session.js +6 -0
  104. package/neon-http/session.js.map +1 -1
  105. package/neon-serverless/driver.cjs +6 -1
  106. package/neon-serverless/driver.cjs.map +1 -1
  107. package/neon-serverless/driver.d.cts +3 -1
  108. package/neon-serverless/driver.d.ts +3 -1
  109. package/neon-serverless/driver.js +5 -1
  110. package/neon-serverless/driver.js.map +1 -1
  111. package/node-postgres/driver.cjs +6 -1
  112. package/node-postgres/driver.cjs.map +1 -1
  113. package/node-postgres/driver.d.cts +3 -1
  114. package/node-postgres/driver.d.ts +3 -1
  115. package/node-postgres/driver.js +5 -1
  116. package/node-postgres/driver.js.map +1 -1
  117. package/node-postgres/session.cjs +6 -0
  118. package/node-postgres/session.cjs.map +1 -1
  119. package/node-postgres/session.d.cts +2 -1
  120. package/node-postgres/session.d.ts +2 -1
  121. package/node-postgres/session.js +6 -0
  122. package/node-postgres/session.js.map +1 -1
  123. package/op-sqlite/driver.cjs +7 -1
  124. package/op-sqlite/driver.cjs.map +1 -1
  125. package/op-sqlite/driver.d.cts +4 -1
  126. package/op-sqlite/driver.d.ts +4 -1
  127. package/op-sqlite/driver.js +6 -1
  128. package/op-sqlite/driver.js.map +1 -1
  129. package/operations.cjs.map +1 -1
  130. package/package.json +113 -5
  131. package/pg-core/db.cjs +4 -0
  132. package/pg-core/db.cjs.map +1 -1
  133. package/pg-core/db.d.cts +5 -2
  134. package/pg-core/db.d.ts +5 -2
  135. package/pg-core/db.js +4 -0
  136. package/pg-core/db.js.map +1 -1
  137. package/pg-core/index.cjs +4 -0
  138. package/pg-core/index.cjs.map +1 -1
  139. package/pg-core/index.d.cts +2 -0
  140. package/pg-core/index.d.ts +2 -0
  141. package/pg-core/index.js +2 -0
  142. package/pg-core/index.js.map +1 -1
  143. package/pg-core/policies.cjs +52 -0
  144. package/pg-core/policies.cjs.map +1 -0
  145. package/pg-core/policies.d.cts +22 -0
  146. package/pg-core/policies.d.ts +22 -0
  147. package/pg-core/policies.js +27 -0
  148. package/pg-core/policies.js.map +1 -0
  149. package/pg-core/query-builders/count.cjs +73 -0
  150. package/pg-core/query-builders/count.cjs.map +1 -0
  151. package/pg-core/query-builders/count.d.cts +26 -0
  152. package/pg-core/query-builders/count.d.ts +26 -0
  153. package/pg-core/query-builders/count.js +49 -0
  154. package/pg-core/query-builders/count.js.map +1 -0
  155. package/pg-core/roles.cjs +57 -0
  156. package/pg-core/roles.cjs.map +1 -0
  157. package/pg-core/roles.d.cts +13 -0
  158. package/pg-core/roles.d.ts +13 -0
  159. package/pg-core/roles.js +32 -0
  160. package/pg-core/roles.js.map +1 -0
  161. package/pg-core/session.cjs +6 -0
  162. package/pg-core/session.cjs.map +1 -1
  163. package/pg-core/session.d.cts +1 -0
  164. package/pg-core/session.d.ts +1 -0
  165. package/pg-core/session.js +6 -0
  166. package/pg-core/session.js.map +1 -1
  167. package/pg-core/table.cjs.map +1 -1
  168. package/pg-core/table.d.cts +2 -1
  169. package/pg-core/table.d.ts +2 -1
  170. package/pg-core/table.js.map +1 -1
  171. package/pg-core/utils.cjs +23 -2
  172. package/pg-core/utils.cjs.map +1 -1
  173. package/pg-core/utils.d.cts +2 -0
  174. package/pg-core/utils.d.ts +2 -0
  175. package/pg-core/utils.js +23 -2
  176. package/pg-core/utils.js.map +1 -1
  177. package/pg-proxy/driver.cjs +7 -1
  178. package/pg-proxy/driver.cjs.map +1 -1
  179. package/pg-proxy/driver.d.cts +4 -1
  180. package/pg-proxy/driver.d.ts +4 -1
  181. package/pg-proxy/driver.js +6 -1
  182. package/pg-proxy/driver.js.map +1 -1
  183. package/pg-proxy/session.cjs.map +1 -1
  184. package/pg-proxy/session.js.map +1 -1
  185. package/pglite/driver.cjs +6 -1
  186. package/pglite/driver.cjs.map +1 -1
  187. package/pglite/driver.d.cts +3 -1
  188. package/pglite/driver.d.ts +3 -1
  189. package/pglite/driver.js +5 -1
  190. package/pglite/driver.js.map +1 -1
  191. package/pglite/session.cjs +6 -0
  192. package/pglite/session.cjs.map +1 -1
  193. package/pglite/session.d.cts +2 -1
  194. package/pglite/session.d.ts +2 -1
  195. package/pglite/session.js +6 -0
  196. package/pglite/session.js.map +1 -1
  197. package/planetscale-serverless/driver.cjs +7 -1
  198. package/planetscale-serverless/driver.cjs.map +1 -1
  199. package/planetscale-serverless/driver.d.cts +4 -1
  200. package/planetscale-serverless/driver.d.ts +4 -1
  201. package/planetscale-serverless/driver.js +6 -1
  202. package/planetscale-serverless/driver.js.map +1 -1
  203. package/planetscale-serverless/migrator.cjs +4 -1
  204. package/planetscale-serverless/migrator.cjs.map +1 -1
  205. package/planetscale-serverless/migrator.d.cts +1 -1
  206. package/planetscale-serverless/migrator.d.ts +1 -1
  207. package/planetscale-serverless/migrator.js +4 -1
  208. package/planetscale-serverless/migrator.js.map +1 -1
  209. package/planetscale-serverless/session.cjs +6 -0
  210. package/planetscale-serverless/session.cjs.map +1 -1
  211. package/planetscale-serverless/session.d.cts +1 -0
  212. package/planetscale-serverless/session.d.ts +1 -0
  213. package/planetscale-serverless/session.js +6 -0
  214. package/planetscale-serverless/session.js.map +1 -1
  215. package/postgres-js/driver.cjs +7 -1
  216. package/postgres-js/driver.cjs.map +1 -1
  217. package/postgres-js/driver.d.cts +4 -1
  218. package/postgres-js/driver.d.ts +4 -1
  219. package/postgres-js/driver.js +6 -1
  220. package/postgres-js/driver.js.map +1 -1
  221. package/sqlite-core/db.cjs +4 -0
  222. package/sqlite-core/db.cjs.map +1 -1
  223. package/sqlite-core/db.d.cts +4 -1
  224. package/sqlite-core/db.d.ts +4 -1
  225. package/sqlite-core/db.js +4 -0
  226. package/sqlite-core/db.js.map +1 -1
  227. package/sqlite-core/query-builders/count.cjs +72 -0
  228. package/sqlite-core/query-builders/count.cjs.map +1 -0
  229. package/sqlite-core/query-builders/count.d.cts +27 -0
  230. package/sqlite-core/query-builders/count.d.ts +27 -0
  231. package/sqlite-core/query-builders/count.js +48 -0
  232. package/sqlite-core/query-builders/count.js.map +1 -0
  233. package/sqlite-core/session.cjs +4 -0
  234. package/sqlite-core/session.cjs.map +1 -1
  235. package/sqlite-core/session.d.cts +1 -0
  236. package/sqlite-core/session.d.ts +1 -0
  237. package/sqlite-core/session.js +4 -0
  238. package/sqlite-core/session.js.map +1 -1
  239. package/tidb-serverless/driver.cjs +7 -1
  240. package/tidb-serverless/driver.cjs.map +1 -1
  241. package/tidb-serverless/driver.d.cts +4 -1
  242. package/tidb-serverless/driver.d.ts +4 -1
  243. package/tidb-serverless/driver.js +6 -1
  244. package/tidb-serverless/driver.js.map +1 -1
  245. package/tidb-serverless/session.cjs +6 -0
  246. package/tidb-serverless/session.cjs.map +1 -1
  247. package/tidb-serverless/session.d.cts +1 -0
  248. package/tidb-serverless/session.d.ts +1 -0
  249. package/tidb-serverless/session.js +6 -0
  250. package/tidb-serverless/session.js.map +1 -1
  251. package/vercel-postgres/driver.cjs +6 -1
  252. package/vercel-postgres/driver.cjs.map +1 -1
  253. package/vercel-postgres/driver.d.cts +3 -1
  254. package/vercel-postgres/driver.d.ts +3 -1
  255. package/vercel-postgres/driver.js +5 -1
  256. package/vercel-postgres/driver.js.map +1 -1
  257. package/version.cjs +2 -2
  258. package/version.cjs.map +1 -1
  259. package/version.d.cts +2 -2
  260. package/version.d.ts +2 -2
  261. package/version.js +2 -2
  262. package/version.js.map +1 -1
@@ -5,8 +5,10 @@ export * from "./db.js";
5
5
  export * from "./dialect.js";
6
6
  export * from "./foreign-keys.js";
7
7
  export * from "./indexes.js";
8
+ export * from "./policies.js";
8
9
  export * from "./primary-keys.js";
9
10
  export * from "./query-builders/index.js";
11
+ export * from "./roles.js";
10
12
  export * from "./schema.js";
11
13
  export * from "./sequence.js";
12
14
  export * from "./session.js";
package/pg-core/index.js CHANGED
@@ -5,8 +5,10 @@ export * from "./db.js";
5
5
  export * from "./dialect.js";
6
6
  export * from "./foreign-keys.js";
7
7
  export * from "./indexes.js";
8
+ export * from "./policies.js";
8
9
  export * from "./primary-keys.js";
9
10
  export * from "./query-builders/index.js";
11
+ export * from "./roles.js";
10
12
  export * from "./schema.js";
11
13
  export * from "./sequence.js";
12
14
  export * from "./session.js";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/pg-core/index.ts"],"sourcesContent":["export * from './alias.ts';\nexport * from './checks.ts';\nexport * from './columns/index.ts';\nexport * from './db.ts';\nexport * from './dialect.ts';\nexport * from './foreign-keys.ts';\nexport * from './indexes.ts';\nexport * from './primary-keys.ts';\nexport * from './query-builders/index.ts';\nexport * from './schema.ts';\nexport * from './sequence.ts';\nexport * from './session.ts';\nexport * from './subquery.ts';\nexport * from './table.ts';\nexport * from './unique-constraint.ts';\nexport * from './utils.ts';\nexport * from './utils/index.ts';\nexport * from './view-common.ts';\nexport * from './view.ts';\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../src/pg-core/index.ts"],"sourcesContent":["export * from './alias.ts';\nexport * from './checks.ts';\nexport * from './columns/index.ts';\nexport * from './db.ts';\nexport * from './dialect.ts';\nexport * from './foreign-keys.ts';\nexport * from './indexes.ts';\nexport * from './policies.ts';\nexport * from './primary-keys.ts';\nexport * from './query-builders/index.ts';\nexport * from './roles.ts';\nexport * from './schema.ts';\nexport * from './sequence.ts';\nexport * from './session.ts';\nexport * from './subquery.ts';\nexport * from './table.ts';\nexport * from './unique-constraint.ts';\nexport * from './utils.ts';\nexport * from './utils/index.ts';\nexport * from './view-common.ts';\nexport * from './view.ts';\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var policies_exports = {};
20
+ __export(policies_exports, {
21
+ PgPolicy: () => PgPolicy,
22
+ pgPolicy: () => pgPolicy
23
+ });
24
+ module.exports = __toCommonJS(policies_exports);
25
+ var import_entity = require("../entity.cjs");
26
+ class PgPolicy {
27
+ constructor(name, config) {
28
+ this.name = name;
29
+ if (config) {
30
+ this.as = config.as;
31
+ this.for = config.for;
32
+ this.to = config.to;
33
+ this.using = config.using;
34
+ this.withCheck = config.withCheck;
35
+ }
36
+ }
37
+ static [import_entity.entityKind] = "PgPolicy";
38
+ as;
39
+ for;
40
+ to;
41
+ using;
42
+ withCheck;
43
+ }
44
+ function pgPolicy(name, config) {
45
+ return new PgPolicy(name, config);
46
+ }
47
+ // Annotate the CommonJS export names for ESM import in node:
48
+ 0 && (module.exports = {
49
+ PgPolicy,
50
+ pgPolicy
51
+ });
52
+ //# sourceMappingURL=policies.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/pg-core/policies.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport type { PgRole } from './roles.ts';\n\nexport type PgPolicyToOption =\n\t| 'public'\n\t| 'current_role'\n\t| 'current_user'\n\t| 'session_user'\n\t| (string & {})\n\t| PgPolicyToOption[]\n\t| PgRole;\n\nexport interface PgPolicyConfig {\n\tas?: 'permissive' | 'restrictive';\n\tfor?: 'all' | 'select' | 'insert' | 'update' | 'delete';\n\tto?: PgPolicyToOption;\n\tusing?: SQL;\n\twithCheck?: SQL;\n}\n\nexport class PgPolicy implements PgPolicyConfig {\n\tstatic readonly [entityKind]: string = 'PgPolicy';\n\n\treadonly as: PgPolicyConfig['as'];\n\treadonly for: PgPolicyConfig['for'];\n\treadonly to: PgPolicyConfig['to'];\n\treadonly using: PgPolicyConfig['using'];\n\treadonly withCheck: PgPolicyConfig['withCheck'];\n\n\tconstructor(\n\t\treadonly name: string,\n\t\tconfig?: PgPolicyConfig,\n\t) {\n\t\tif (config) {\n\t\t\tthis.as = config.as;\n\t\t\tthis.for = config.for;\n\t\t\tthis.to = config.to;\n\t\t\tthis.using = config.using;\n\t\t\tthis.withCheck = config.withCheck;\n\t\t}\n\t}\n}\n\nexport function pgPolicy(name: string, config?: PgPolicyConfig) {\n\treturn new PgPolicy(name, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAqBpB,MAAM,SAAmC;AAAA,EAS/C,YACU,MACT,QACC;AAFQ;AAGT,QAAI,QAAQ;AACX,WAAK,KAAK,OAAO;AACjB,WAAK,MAAM,OAAO;AAClB,WAAK,KAAK,OAAO;AACjB,WAAK,QAAQ,OAAO;AACpB,WAAK,YAAY,OAAO;AAAA,IACzB;AAAA,EACD;AAAA,EAnBA,QAAiB,wBAAU,IAAY;AAAA,EAE9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAcV;AAEO,SAAS,SAAS,MAAc,QAAyB;AAC/D,SAAO,IAAI,SAAS,MAAM,MAAM;AACjC;","names":[]}
@@ -0,0 +1,22 @@
1
+ import { entityKind } from "../entity.cjs";
2
+ import type { SQL } from "../sql/sql.cjs";
3
+ import type { PgRole } from "./roles.cjs";
4
+ export type PgPolicyToOption = 'public' | 'current_role' | 'current_user' | 'session_user' | (string & {}) | PgPolicyToOption[] | PgRole;
5
+ export interface PgPolicyConfig {
6
+ as?: 'permissive' | 'restrictive';
7
+ for?: 'all' | 'select' | 'insert' | 'update' | 'delete';
8
+ to?: PgPolicyToOption;
9
+ using?: SQL;
10
+ withCheck?: SQL;
11
+ }
12
+ export declare class PgPolicy implements PgPolicyConfig {
13
+ readonly name: string;
14
+ static readonly [entityKind]: string;
15
+ readonly as: PgPolicyConfig['as'];
16
+ readonly for: PgPolicyConfig['for'];
17
+ readonly to: PgPolicyConfig['to'];
18
+ readonly using: PgPolicyConfig['using'];
19
+ readonly withCheck: PgPolicyConfig['withCheck'];
20
+ constructor(name: string, config?: PgPolicyConfig);
21
+ }
22
+ export declare function pgPolicy(name: string, config?: PgPolicyConfig): PgPolicy;
@@ -0,0 +1,22 @@
1
+ import { entityKind } from "../entity.js";
2
+ import type { SQL } from "../sql/sql.js";
3
+ import type { PgRole } from "./roles.js";
4
+ export type PgPolicyToOption = 'public' | 'current_role' | 'current_user' | 'session_user' | (string & {}) | PgPolicyToOption[] | PgRole;
5
+ export interface PgPolicyConfig {
6
+ as?: 'permissive' | 'restrictive';
7
+ for?: 'all' | 'select' | 'insert' | 'update' | 'delete';
8
+ to?: PgPolicyToOption;
9
+ using?: SQL;
10
+ withCheck?: SQL;
11
+ }
12
+ export declare class PgPolicy implements PgPolicyConfig {
13
+ readonly name: string;
14
+ static readonly [entityKind]: string;
15
+ readonly as: PgPolicyConfig['as'];
16
+ readonly for: PgPolicyConfig['for'];
17
+ readonly to: PgPolicyConfig['to'];
18
+ readonly using: PgPolicyConfig['using'];
19
+ readonly withCheck: PgPolicyConfig['withCheck'];
20
+ constructor(name: string, config?: PgPolicyConfig);
21
+ }
22
+ export declare function pgPolicy(name: string, config?: PgPolicyConfig): PgPolicy;
@@ -0,0 +1,27 @@
1
+ import { entityKind } from "../entity.js";
2
+ class PgPolicy {
3
+ constructor(name, config) {
4
+ this.name = name;
5
+ if (config) {
6
+ this.as = config.as;
7
+ this.for = config.for;
8
+ this.to = config.to;
9
+ this.using = config.using;
10
+ this.withCheck = config.withCheck;
11
+ }
12
+ }
13
+ static [entityKind] = "PgPolicy";
14
+ as;
15
+ for;
16
+ to;
17
+ using;
18
+ withCheck;
19
+ }
20
+ function pgPolicy(name, config) {
21
+ return new PgPolicy(name, config);
22
+ }
23
+ export {
24
+ PgPolicy,
25
+ pgPolicy
26
+ };
27
+ //# sourceMappingURL=policies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/pg-core/policies.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport type { PgRole } from './roles.ts';\n\nexport type PgPolicyToOption =\n\t| 'public'\n\t| 'current_role'\n\t| 'current_user'\n\t| 'session_user'\n\t| (string & {})\n\t| PgPolicyToOption[]\n\t| PgRole;\n\nexport interface PgPolicyConfig {\n\tas?: 'permissive' | 'restrictive';\n\tfor?: 'all' | 'select' | 'insert' | 'update' | 'delete';\n\tto?: PgPolicyToOption;\n\tusing?: SQL;\n\twithCheck?: SQL;\n}\n\nexport class PgPolicy implements PgPolicyConfig {\n\tstatic readonly [entityKind]: string = 'PgPolicy';\n\n\treadonly as: PgPolicyConfig['as'];\n\treadonly for: PgPolicyConfig['for'];\n\treadonly to: PgPolicyConfig['to'];\n\treadonly using: PgPolicyConfig['using'];\n\treadonly withCheck: PgPolicyConfig['withCheck'];\n\n\tconstructor(\n\t\treadonly name: string,\n\t\tconfig?: PgPolicyConfig,\n\t) {\n\t\tif (config) {\n\t\t\tthis.as = config.as;\n\t\t\tthis.for = config.for;\n\t\t\tthis.to = config.to;\n\t\t\tthis.using = config.using;\n\t\t\tthis.withCheck = config.withCheck;\n\t\t}\n\t}\n}\n\nexport function pgPolicy(name: string, config?: PgPolicyConfig) {\n\treturn new PgPolicy(name, config);\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAqBpB,MAAM,SAAmC;AAAA,EAS/C,YACU,MACT,QACC;AAFQ;AAGT,QAAI,QAAQ;AACX,WAAK,KAAK,OAAO;AACjB,WAAK,MAAM,OAAO;AAClB,WAAK,KAAK,OAAO;AACjB,WAAK,QAAQ,OAAO;AACpB,WAAK,YAAY,OAAO;AAAA,IACzB;AAAA,EACD;AAAA,EAnBA,QAAiB,UAAU,IAAY;AAAA,EAE9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAcV;AAEO,SAAS,SAAS,MAAc,QAAyB;AAC/D,SAAO,IAAI,SAAS,MAAM,MAAM;AACjC;","names":[]}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var count_exports = {};
20
+ __export(count_exports, {
21
+ PgCountBuilder: () => PgCountBuilder
22
+ });
23
+ module.exports = __toCommonJS(count_exports);
24
+ var import__ = require("../../index.cjs");
25
+ var import_sql = require("../../sql/sql.cjs");
26
+ class PgCountBuilder extends import_sql.SQL {
27
+ constructor(params) {
28
+ super(PgCountBuilder.buildEmbeddedCount(params.source, params.filters).queryChunks);
29
+ this.params = params;
30
+ this.mapWith(Number);
31
+ this.session = params.session;
32
+ this.sql = PgCountBuilder.buildCount(
33
+ params.source,
34
+ params.filters
35
+ );
36
+ }
37
+ sql;
38
+ static [import__.entityKind] = "PgCountBuilder";
39
+ [Symbol.toStringTag] = "PgCountBuilder";
40
+ session;
41
+ static buildEmbeddedCount(source, filters) {
42
+ return import__.sql`(select count(*) from ${source}${import__.sql.raw(" where ").if(filters)}${filters})`;
43
+ }
44
+ static buildCount(source, filters) {
45
+ return import__.sql`select count(*) as count from ${source}${import__.sql.raw(" where ").if(filters)}${filters};`;
46
+ }
47
+ then(onfulfilled, onrejected) {
48
+ return Promise.resolve(this.session.count(this.sql)).then(
49
+ onfulfilled,
50
+ onrejected
51
+ );
52
+ }
53
+ catch(onRejected) {
54
+ return this.then(void 0, onRejected);
55
+ }
56
+ finally(onFinally) {
57
+ return this.then(
58
+ (value) => {
59
+ onFinally?.();
60
+ return value;
61
+ },
62
+ (reason) => {
63
+ onFinally?.();
64
+ throw reason;
65
+ }
66
+ );
67
+ }
68
+ }
69
+ // Annotate the CommonJS export names for ESM import in node:
70
+ 0 && (module.exports = {
71
+ PgCountBuilder
72
+ });
73
+ //# sourceMappingURL=count.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/pg-core/query-builders/count.ts"],"sourcesContent":["import { entityKind, sql } from '~/index.ts';\nimport type { SQLWrapper } from '~/sql/sql.ts';\nimport { SQL } from '~/sql/sql.ts';\nimport type { PgSession } from '../session.ts';\nimport type { PgTable } from '../table.ts';\n\nexport class PgCountBuilder<\n\tTSession extends PgSession<any, any, any>,\n> extends SQL<number> implements Promise<number>, SQLWrapper {\n\tprivate sql: SQL<number>;\n\n\tstatic readonly [entityKind] = 'PgCountBuilder';\n\t[Symbol.toStringTag] = 'PgCountBuilder';\n\n\tprivate session: TSession;\n\n\tprivate static buildEmbeddedCount(\n\t\tsource: PgTable | SQL | SQLWrapper,\n\t\tfilters?: SQL<unknown>,\n\t): SQL<number> {\n\t\treturn sql<number>`(select count(*) from ${source}${sql.raw(' where ').if(filters)}${filters})`;\n\t}\n\n\tprivate static buildCount(\n\t\tsource: PgTable | SQL | SQLWrapper,\n\t\tfilters?: SQL<unknown>,\n\t): SQL<number> {\n\t\treturn sql<number>`select count(*) as count from ${source}${sql.raw(' where ').if(filters)}${filters};`;\n\t}\n\n\tconstructor(\n\t\treadonly params: {\n\t\t\tsource: PgTable | SQL | SQLWrapper;\n\t\t\tfilters?: SQL<unknown>;\n\t\t\tsession: TSession;\n\t\t},\n\t) {\n\t\tsuper(PgCountBuilder.buildEmbeddedCount(params.source, params.filters).queryChunks);\n\n\t\tthis.mapWith(Number);\n\n\t\tthis.session = params.session;\n\n\t\tthis.sql = PgCountBuilder.buildCount(\n\t\t\tparams.source,\n\t\t\tparams.filters,\n\t\t);\n\t}\n\n\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) => never | PromiseLike<never>) | 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,eAAgC;AAEhC,iBAAoB;AAIb,MAAM,uBAEH,eAAmD;AAAA,EAsB5D,YACU,QAKR;AACD,UAAM,eAAe,mBAAmB,OAAO,QAAQ,OAAO,OAAO,EAAE,WAAW;AANzE;AAQT,SAAK,QAAQ,MAAM;AAEnB,SAAK,UAAU,OAAO;AAEtB,SAAK,MAAM,eAAe;AAAA,MACzB,OAAO;AAAA,MACP,OAAO;AAAA,IACR;AAAA,EACD;AAAA,EAtCQ;AAAA,EAER,QAAiB,mBAAU,IAAI;AAAA,EAC/B,CAAC,OAAO,WAAW,IAAI;AAAA,EAEf;AAAA,EAER,OAAe,mBACd,QACA,SACc;AACd,WAAO,qCAAoC,MAAM,GAAG,aAAI,IAAI,SAAS,EAAE,GAAG,OAAO,CAAC,GAAG,OAAO;AAAA,EAC7F;AAAA,EAEA,OAAe,WACd,QACA,SACc;AACd,WAAO,6CAA4C,MAAM,GAAG,aAAI,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":[]}
@@ -0,0 +1,26 @@
1
+ import { entityKind } from "../../index.cjs";
2
+ import type { SQLWrapper } from "../../sql/sql.cjs";
3
+ import { SQL } from "../../sql/sql.cjs";
4
+ import type { PgSession } from "../session.cjs";
5
+ import type { PgTable } from "../table.cjs";
6
+ export declare class PgCountBuilder<TSession extends PgSession<any, any, any>> extends SQL<number> implements Promise<number>, SQLWrapper {
7
+ readonly params: {
8
+ source: PgTable | SQL | SQLWrapper;
9
+ filters?: SQL<unknown>;
10
+ session: TSession;
11
+ };
12
+ private sql;
13
+ static readonly [entityKind] = "PgCountBuilder";
14
+ [Symbol.toStringTag]: string;
15
+ private session;
16
+ private static buildEmbeddedCount;
17
+ private static buildCount;
18
+ constructor(params: {
19
+ source: PgTable | SQL | SQLWrapper;
20
+ filters?: SQL<unknown>;
21
+ session: TSession;
22
+ });
23
+ then<TResult1 = number, TResult2 = never>(onfulfilled?: ((value: number) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined): Promise<TResult1 | TResult2>;
24
+ catch(onRejected?: ((reason: any) => never | PromiseLike<never>) | null | undefined): Promise<number>;
25
+ finally(onFinally?: (() => void) | null | undefined): Promise<number>;
26
+ }
@@ -0,0 +1,26 @@
1
+ import { entityKind } from "../../index.js";
2
+ import type { SQLWrapper } from "../../sql/sql.js";
3
+ import { SQL } from "../../sql/sql.js";
4
+ import type { PgSession } from "../session.js";
5
+ import type { PgTable } from "../table.js";
6
+ export declare class PgCountBuilder<TSession extends PgSession<any, any, any>> extends SQL<number> implements Promise<number>, SQLWrapper {
7
+ readonly params: {
8
+ source: PgTable | SQL | SQLWrapper;
9
+ filters?: SQL<unknown>;
10
+ session: TSession;
11
+ };
12
+ private sql;
13
+ static readonly [entityKind] = "PgCountBuilder";
14
+ [Symbol.toStringTag]: string;
15
+ private session;
16
+ private static buildEmbeddedCount;
17
+ private static buildCount;
18
+ constructor(params: {
19
+ source: PgTable | SQL | SQLWrapper;
20
+ filters?: SQL<unknown>;
21
+ session: TSession;
22
+ });
23
+ then<TResult1 = number, TResult2 = never>(onfulfilled?: ((value: number) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined): Promise<TResult1 | TResult2>;
24
+ catch(onRejected?: ((reason: any) => never | PromiseLike<never>) | null | undefined): Promise<number>;
25
+ finally(onFinally?: (() => void) | null | undefined): Promise<number>;
26
+ }
@@ -0,0 +1,49 @@
1
+ import { entityKind, sql } from "../../index.js";
2
+ import { SQL } from "../../sql/sql.js";
3
+ class PgCountBuilder extends SQL {
4
+ constructor(params) {
5
+ super(PgCountBuilder.buildEmbeddedCount(params.source, params.filters).queryChunks);
6
+ this.params = params;
7
+ this.mapWith(Number);
8
+ this.session = params.session;
9
+ this.sql = PgCountBuilder.buildCount(
10
+ params.source,
11
+ params.filters
12
+ );
13
+ }
14
+ sql;
15
+ static [entityKind] = "PgCountBuilder";
16
+ [Symbol.toStringTag] = "PgCountBuilder";
17
+ session;
18
+ static buildEmbeddedCount(source, filters) {
19
+ return sql`(select count(*) from ${source}${sql.raw(" where ").if(filters)}${filters})`;
20
+ }
21
+ static buildCount(source, filters) {
22
+ return sql`select count(*) as count from ${source}${sql.raw(" where ").if(filters)}${filters};`;
23
+ }
24
+ then(onfulfilled, onrejected) {
25
+ return Promise.resolve(this.session.count(this.sql)).then(
26
+ onfulfilled,
27
+ onrejected
28
+ );
29
+ }
30
+ catch(onRejected) {
31
+ return this.then(void 0, onRejected);
32
+ }
33
+ finally(onFinally) {
34
+ return this.then(
35
+ (value) => {
36
+ onFinally?.();
37
+ return value;
38
+ },
39
+ (reason) => {
40
+ onFinally?.();
41
+ throw reason;
42
+ }
43
+ );
44
+ }
45
+ }
46
+ export {
47
+ PgCountBuilder
48
+ };
49
+ //# sourceMappingURL=count.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/pg-core/query-builders/count.ts"],"sourcesContent":["import { entityKind, sql } from '~/index.ts';\nimport type { SQLWrapper } from '~/sql/sql.ts';\nimport { SQL } from '~/sql/sql.ts';\nimport type { PgSession } from '../session.ts';\nimport type { PgTable } from '../table.ts';\n\nexport class PgCountBuilder<\n\tTSession extends PgSession<any, any, any>,\n> extends SQL<number> implements Promise<number>, SQLWrapper {\n\tprivate sql: SQL<number>;\n\n\tstatic readonly [entityKind] = 'PgCountBuilder';\n\t[Symbol.toStringTag] = 'PgCountBuilder';\n\n\tprivate session: TSession;\n\n\tprivate static buildEmbeddedCount(\n\t\tsource: PgTable | SQL | SQLWrapper,\n\t\tfilters?: SQL<unknown>,\n\t): SQL<number> {\n\t\treturn sql<number>`(select count(*) from ${source}${sql.raw(' where ').if(filters)}${filters})`;\n\t}\n\n\tprivate static buildCount(\n\t\tsource: PgTable | SQL | SQLWrapper,\n\t\tfilters?: SQL<unknown>,\n\t): SQL<number> {\n\t\treturn sql<number>`select count(*) as count from ${source}${sql.raw(' where ').if(filters)}${filters};`;\n\t}\n\n\tconstructor(\n\t\treadonly params: {\n\t\t\tsource: PgTable | SQL | SQLWrapper;\n\t\t\tfilters?: SQL<unknown>;\n\t\t\tsession: TSession;\n\t\t},\n\t) {\n\t\tsuper(PgCountBuilder.buildEmbeddedCount(params.source, params.filters).queryChunks);\n\n\t\tthis.mapWith(Number);\n\n\t\tthis.session = params.session;\n\n\t\tthis.sql = PgCountBuilder.buildCount(\n\t\t\tparams.source,\n\t\t\tparams.filters,\n\t\t);\n\t}\n\n\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) => never | PromiseLike<never>) | 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,YAAY,WAAW;AAEhC,SAAS,WAAW;AAIb,MAAM,uBAEH,IAAmD;AAAA,EAsB5D,YACU,QAKR;AACD,UAAM,eAAe,mBAAmB,OAAO,QAAQ,OAAO,OAAO,EAAE,WAAW;AANzE;AAQT,SAAK,QAAQ,MAAM;AAEnB,SAAK,UAAU,OAAO;AAEtB,SAAK,MAAM,eAAe;AAAA,MACzB,OAAO;AAAA,MACP,OAAO;AAAA,IACR;AAAA,EACD;AAAA,EAtCQ;AAAA,EAER,QAAiB,UAAU,IAAI;AAAA,EAC/B,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":[]}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var roles_exports = {};
20
+ __export(roles_exports, {
21
+ PgRole: () => PgRole,
22
+ pgRole: () => pgRole
23
+ });
24
+ module.exports = __toCommonJS(roles_exports);
25
+ var import_entity = require("../entity.cjs");
26
+ class PgRole {
27
+ constructor(name, config) {
28
+ this.name = name;
29
+ if (config) {
30
+ this.createDb = config.createDb;
31
+ this.createRole = config.createRole;
32
+ this.inherit = config.inherit;
33
+ }
34
+ }
35
+ static [import_entity.entityKind] = "PgRole";
36
+ /** @internal */
37
+ _existing;
38
+ /** @internal */
39
+ createDb;
40
+ /** @internal */
41
+ createRole;
42
+ /** @internal */
43
+ inherit;
44
+ existing() {
45
+ this._existing = true;
46
+ return this;
47
+ }
48
+ }
49
+ function pgRole(name, config) {
50
+ return new PgRole(name, config);
51
+ }
52
+ // Annotate the CommonJS export names for ESM import in node:
53
+ 0 && (module.exports = {
54
+ PgRole,
55
+ pgRole
56
+ });
57
+ //# sourceMappingURL=roles.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/pg-core/roles.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\n\nexport interface PgRoleConfig {\n\tcreateDb?: boolean;\n\tcreateRole?: boolean;\n\tinherit?: boolean;\n}\n\nexport class PgRole implements PgRoleConfig {\n\tstatic readonly [entityKind]: string = 'PgRole';\n\n\t/** @internal */\n\t_existing?: boolean;\n\n\t/** @internal */\n\treadonly createDb: PgRoleConfig['createDb'];\n\t/** @internal */\n\treadonly createRole: PgRoleConfig['createRole'];\n\t/** @internal */\n\treadonly inherit: PgRoleConfig['inherit'];\n\n\tconstructor(\n\t\treadonly name: string,\n\t\tconfig?: PgRoleConfig,\n\t) {\n\t\tif (config) {\n\t\t\tthis.createDb = config.createDb;\n\t\t\tthis.createRole = config.createRole;\n\t\t\tthis.inherit = config.inherit;\n\t\t}\n\t}\n\n\texisting(): this {\n\t\tthis._existing = true;\n\t\treturn this;\n\t}\n}\n\nexport function pgRole(name: string, config?: PgRoleConfig) {\n\treturn new PgRole(name, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAQpB,MAAM,OAA+B;AAAA,EAa3C,YACU,MACT,QACC;AAFQ;AAGT,QAAI,QAAQ;AACX,WAAK,WAAW,OAAO;AACvB,WAAK,aAAa,OAAO;AACzB,WAAK,UAAU,OAAO;AAAA,IACvB;AAAA,EACD;AAAA,EArBA,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAGvC;AAAA;AAAA,EAGS;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA,EAaT,WAAiB;AAChB,SAAK,YAAY;AACjB,WAAO;AAAA,EACR;AACD;AAEO,SAAS,OAAO,MAAc,QAAuB;AAC3D,SAAO,IAAI,OAAO,MAAM,MAAM;AAC/B;","names":[]}
@@ -0,0 +1,13 @@
1
+ import { entityKind } from "../entity.cjs";
2
+ export interface PgRoleConfig {
3
+ createDb?: boolean;
4
+ createRole?: boolean;
5
+ inherit?: boolean;
6
+ }
7
+ export declare class PgRole implements PgRoleConfig {
8
+ readonly name: string;
9
+ static readonly [entityKind]: string;
10
+ constructor(name: string, config?: PgRoleConfig);
11
+ existing(): this;
12
+ }
13
+ export declare function pgRole(name: string, config?: PgRoleConfig): PgRole;
@@ -0,0 +1,13 @@
1
+ import { entityKind } from "../entity.js";
2
+ export interface PgRoleConfig {
3
+ createDb?: boolean;
4
+ createRole?: boolean;
5
+ inherit?: boolean;
6
+ }
7
+ export declare class PgRole implements PgRoleConfig {
8
+ readonly name: string;
9
+ static readonly [entityKind]: string;
10
+ constructor(name: string, config?: PgRoleConfig);
11
+ existing(): this;
12
+ }
13
+ export declare function pgRole(name: string, config?: PgRoleConfig): PgRole;
@@ -0,0 +1,32 @@
1
+ import { entityKind } from "../entity.js";
2
+ class PgRole {
3
+ constructor(name, config) {
4
+ this.name = name;
5
+ if (config) {
6
+ this.createDb = config.createDb;
7
+ this.createRole = config.createRole;
8
+ this.inherit = config.inherit;
9
+ }
10
+ }
11
+ static [entityKind] = "PgRole";
12
+ /** @internal */
13
+ _existing;
14
+ /** @internal */
15
+ createDb;
16
+ /** @internal */
17
+ createRole;
18
+ /** @internal */
19
+ inherit;
20
+ existing() {
21
+ this._existing = true;
22
+ return this;
23
+ }
24
+ }
25
+ function pgRole(name, config) {
26
+ return new PgRole(name, config);
27
+ }
28
+ export {
29
+ PgRole,
30
+ pgRole
31
+ };
32
+ //# sourceMappingURL=roles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/pg-core/roles.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\n\nexport interface PgRoleConfig {\n\tcreateDb?: boolean;\n\tcreateRole?: boolean;\n\tinherit?: boolean;\n}\n\nexport class PgRole implements PgRoleConfig {\n\tstatic readonly [entityKind]: string = 'PgRole';\n\n\t/** @internal */\n\t_existing?: boolean;\n\n\t/** @internal */\n\treadonly createDb: PgRoleConfig['createDb'];\n\t/** @internal */\n\treadonly createRole: PgRoleConfig['createRole'];\n\t/** @internal */\n\treadonly inherit: PgRoleConfig['inherit'];\n\n\tconstructor(\n\t\treadonly name: string,\n\t\tconfig?: PgRoleConfig,\n\t) {\n\t\tif (config) {\n\t\t\tthis.createDb = config.createDb;\n\t\t\tthis.createRole = config.createRole;\n\t\t\tthis.inherit = config.inherit;\n\t\t}\n\t}\n\n\texisting(): this {\n\t\tthis._existing = true;\n\t\treturn this;\n\t}\n}\n\nexport function pgRole(name: string, config?: PgRoleConfig) {\n\treturn new PgRole(name, config);\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAQpB,MAAM,OAA+B;AAAA,EAa3C,YACU,MACT,QACC;AAFQ;AAGT,QAAI,QAAQ;AACX,WAAK,WAAW,OAAO;AACvB,WAAK,aAAa,OAAO;AACzB,WAAK,UAAU,OAAO;AAAA,IACvB;AAAA,EACD;AAAA,EArBA,QAAiB,UAAU,IAAY;AAAA;AAAA,EAGvC;AAAA;AAAA,EAGS;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA,EAaT,WAAiB;AAChB,SAAK,YAAY;AACjB,WAAO;AAAA,EACR;AACD;AAEO,SAAS,OAAO,MAAc,QAAuB;AAC3D,SAAO,IAAI,OAAO,MAAM,MAAM;AAC/B;","names":[]}
@@ -68,6 +68,12 @@ class PgSession {
68
68
  false
69
69
  ).all();
70
70
  }
71
+ async count(sql2) {
72
+ const res = await this.execute(sql2);
73
+ return Number(
74
+ res[0]["count"]
75
+ );
76
+ }
71
77
  }
72
78
  class PgTransaction extends import_db.PgDatabase {
73
79
  constructor(dialect, session, schema, nestedIndex = 0) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/pg-core/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { TransactionRollbackError } from '~/errors.ts';\nimport type { TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport { type Query, type SQL, sql } from '~/sql/index.ts';\nimport { tracer } from '~/tracing.ts';\nimport { PgDatabase } from './db.ts';\nimport type { PgDialect } from './dialect.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface PreparedQueryConfig {\n\texecute: unknown;\n\tall: unknown;\n\tvalues: unknown;\n}\n\nexport abstract class PgPreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {\n\tconstructor(protected query: Query) {}\n\n\tgetQuery(): Query {\n\t\treturn this.query;\n\t}\n\n\tmapResult(response: unknown, _isFromBatch?: boolean): unknown {\n\t\treturn response;\n\t}\n\n\tstatic readonly [entityKind]: string = 'PgPreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tabstract execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;\n\n\t/** @internal */\n\tabstract all(placeholderValues?: Record<string, unknown>): Promise<T['all']>;\n\n\t/** @internal */\n\tabstract isResponseInArrayMode(): boolean;\n}\n\nexport interface PgTransactionConfig {\n\tisolationLevel?: 'read uncommitted' | 'read committed' | 'repeatable read' | 'serializable';\n\taccessMode?: 'read only' | 'read write';\n\tdeferrable?: boolean;\n}\n\nexport abstract class PgSession<\n\tTQueryResult extends PgQueryResultHKT = PgQueryResultHKT,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> {\n\tstatic readonly [entityKind]: string = 'PgSession';\n\n\tconstructor(protected dialect: PgDialect) {}\n\n\tabstract prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => T['execute'],\n\t): PgPreparedQuery<T>;\n\n\texecute<T>(query: SQL): Promise<T> {\n\t\treturn tracer.startActiveSpan('drizzle.operation', () => {\n\t\t\tconst prepared = tracer.startActiveSpan('drizzle.prepareQuery', () => {\n\t\t\t\treturn this.prepareQuery<PreparedQueryConfig & { execute: T }>(\n\t\t\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\t\t\tundefined,\n\t\t\t\t\tundefined,\n\t\t\t\t\tfalse,\n\t\t\t\t);\n\t\t\t});\n\n\t\t\treturn prepared.execute();\n\t\t});\n\t}\n\n\tall<T = unknown>(query: SQL): Promise<T[]> {\n\t\treturn this.prepareQuery<PreparedQueryConfig & { all: T[] }>(\n\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfalse,\n\t\t).all();\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig,\n\t): Promise<T>;\n}\n\nexport abstract class PgTransaction<\n\tTQueryResult extends PgQueryResultHKT,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> extends PgDatabase<TQueryResult, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'PgTransaction';\n\n\tconstructor(\n\t\tdialect: PgDialect,\n\t\tsession: PgSession<any, any, any>,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record<string, unknown>;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record<string, string>;\n\t\t} | undefined,\n\t\tprotected readonly nestedIndex = 0,\n\t) {\n\t\tsuper(dialect, session, schema);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n\n\t/** @internal */\n\tgetTransactionConfigSQL(config: PgTransactionConfig): SQL {\n\t\tconst chunks: string[] = [];\n\t\tif (config.isolationLevel) {\n\t\t\tchunks.push(`isolation level ${config.isolationLevel}`);\n\t\t}\n\t\tif (config.accessMode) {\n\t\t\tchunks.push(config.accessMode);\n\t\t}\n\t\tif (typeof config.deferrable === 'boolean') {\n\t\t\tchunks.push(config.deferrable ? 'deferrable' : 'not deferrable');\n\t\t}\n\t\treturn sql.raw(chunks.join(' '));\n\t}\n\n\tsetTransaction(config: PgTransactionConfig): Promise<void> {\n\t\treturn this.session.execute(sql`set transaction ${this.getTransactionConfigSQL(config)}`);\n\t}\n\n\tabstract override transaction<T>(\n\t\ttransaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T>;\n}\n\nexport interface PgQueryResultHKT {\n\treadonly $brand: 'PgQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n\nexport type PgQueryResultKind<TKind extends PgQueryResultHKT, TRow> = (TKind & {\n\treadonly row: TRow;\n})['type'];\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,oBAAyC;AAGzC,iBAA0C;AAC1C,qBAAuB;AACvB,gBAA2B;AAUpB,MAAe,gBAAwE;AAAA,EAC7F,YAAsB,OAAc;AAAd;AAAA,EAAe;AAAA,EAErC,WAAkB;AACjB,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,UAAU,UAAmB,cAAiC;AAC7D,WAAO;AAAA,EACR;AAAA,EAEA,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAGvC;AASD;AAQO,MAAe,UAIpB;AAAA,EAGD,YAAsB,SAAoB;AAApB;AAAA,EAAqB;AAAA,EAF3C,QAAiB,wBAAU,IAAY;AAAA,EAYvC,QAAW,OAAwB;AAClC,WAAO,sBAAO,gBAAgB,qBAAqB,MAAM;AACxD,YAAM,WAAW,sBAAO,gBAAgB,wBAAwB,MAAM;AACrE,eAAO,KAAK;AAAA,UACX,KAAK,QAAQ,WAAW,KAAK;AAAA,UAC7B;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD,CAAC;AAED,aAAO,SAAS,QAAQ;AAAA,IACzB,CAAC;AAAA,EACF;AAAA,EAEA,IAAiB,OAA0B;AAC1C,WAAO,KAAK;AAAA,MACX,KAAK,QAAQ,WAAW,KAAK;AAAA,MAC7B;AAAA,MACA;AAAA,MACA;AAAA,IACD,EAAE,IAAI;AAAA,EACP;AAMD;AAEO,MAAe,sBAIZ,qBAA+C;AAAA,EAGxD,YACC,SACA,SACU,QAKS,cAAc,GAChC;AACD,UAAM,SAAS,SAAS,MAAM;AAPpB;AAKS;AAAA,EAGpB;AAAA,EAbA,QAAiB,wBAAU,IAAY;AAAA,EAevC,WAAkB;AACjB,UAAM,IAAI,uCAAyB;AAAA,EACpC;AAAA;AAAA,EAGA,wBAAwB,QAAkC;AACzD,UAAM,SAAmB,CAAC;AAC1B,QAAI,OAAO,gBAAgB;AAC1B,aAAO,KAAK,mBAAmB,OAAO,cAAc,EAAE;AAAA,IACvD;AACA,QAAI,OAAO,YAAY;AACtB,aAAO,KAAK,OAAO,UAAU;AAAA,IAC9B;AACA,QAAI,OAAO,OAAO,eAAe,WAAW;AAC3C,aAAO,KAAK,OAAO,aAAa,eAAe,gBAAgB;AAAA,IAChE;AACA,WAAO,eAAI,IAAI,OAAO,KAAK,GAAG,CAAC;AAAA,EAChC;AAAA,EAEA,eAAe,QAA4C;AAC1D,WAAO,KAAK,QAAQ,QAAQ,iCAAsB,KAAK,wBAAwB,MAAM,CAAC,EAAE;AAAA,EACzF;AAKD;","names":[]}
1
+ {"version":3,"sources":["../../src/pg-core/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { TransactionRollbackError } from '~/errors.ts';\nimport type { TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport { type Query, type SQL, sql } from '~/sql/index.ts';\nimport { tracer } from '~/tracing.ts';\nimport { PgDatabase } from './db.ts';\nimport type { PgDialect } from './dialect.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface PreparedQueryConfig {\n\texecute: unknown;\n\tall: unknown;\n\tvalues: unknown;\n}\n\nexport abstract class PgPreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {\n\tconstructor(protected query: Query) {}\n\n\tgetQuery(): Query {\n\t\treturn this.query;\n\t}\n\n\tmapResult(response: unknown, _isFromBatch?: boolean): unknown {\n\t\treturn response;\n\t}\n\n\tstatic readonly [entityKind]: string = 'PgPreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tabstract execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;\n\n\t/** @internal */\n\tabstract all(placeholderValues?: Record<string, unknown>): Promise<T['all']>;\n\n\t/** @internal */\n\tabstract isResponseInArrayMode(): boolean;\n}\n\nexport interface PgTransactionConfig {\n\tisolationLevel?: 'read uncommitted' | 'read committed' | 'repeatable read' | 'serializable';\n\taccessMode?: 'read only' | 'read write';\n\tdeferrable?: boolean;\n}\n\nexport abstract class PgSession<\n\tTQueryResult extends PgQueryResultHKT = PgQueryResultHKT,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> {\n\tstatic readonly [entityKind]: string = 'PgSession';\n\n\tconstructor(protected dialect: PgDialect) {}\n\n\tabstract prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => T['execute'],\n\t): PgPreparedQuery<T>;\n\n\texecute<T>(query: SQL): Promise<T> {\n\t\treturn tracer.startActiveSpan('drizzle.operation', () => {\n\t\t\tconst prepared = tracer.startActiveSpan('drizzle.prepareQuery', () => {\n\t\t\t\treturn this.prepareQuery<PreparedQueryConfig & { execute: T }>(\n\t\t\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\t\t\tundefined,\n\t\t\t\t\tundefined,\n\t\t\t\t\tfalse,\n\t\t\t\t);\n\t\t\t});\n\n\t\t\treturn prepared.execute();\n\t\t});\n\t}\n\n\tall<T = unknown>(query: SQL): Promise<T[]> {\n\t\treturn this.prepareQuery<PreparedQueryConfig & { all: T[] }>(\n\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfalse,\n\t\t).all();\n\t}\n\n\tasync count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<[{ count: string }]>(sql);\n\n\t\treturn Number(\n\t\t\tres[0]['count'],\n\t\t);\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig,\n\t): Promise<T>;\n}\n\nexport abstract class PgTransaction<\n\tTQueryResult extends PgQueryResultHKT,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> extends PgDatabase<TQueryResult, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'PgTransaction';\n\n\tconstructor(\n\t\tdialect: PgDialect,\n\t\tsession: PgSession<any, any, any>,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record<string, unknown>;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record<string, string>;\n\t\t} | undefined,\n\t\tprotected readonly nestedIndex = 0,\n\t) {\n\t\tsuper(dialect, session, schema);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n\n\t/** @internal */\n\tgetTransactionConfigSQL(config: PgTransactionConfig): SQL {\n\t\tconst chunks: string[] = [];\n\t\tif (config.isolationLevel) {\n\t\t\tchunks.push(`isolation level ${config.isolationLevel}`);\n\t\t}\n\t\tif (config.accessMode) {\n\t\t\tchunks.push(config.accessMode);\n\t\t}\n\t\tif (typeof config.deferrable === 'boolean') {\n\t\t\tchunks.push(config.deferrable ? 'deferrable' : 'not deferrable');\n\t\t}\n\t\treturn sql.raw(chunks.join(' '));\n\t}\n\n\tsetTransaction(config: PgTransactionConfig): Promise<void> {\n\t\treturn this.session.execute(sql`set transaction ${this.getTransactionConfigSQL(config)}`);\n\t}\n\n\tabstract override transaction<T>(\n\t\ttransaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T>;\n}\n\nexport interface PgQueryResultHKT {\n\treadonly $brand: 'PgQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n\nexport type PgQueryResultKind<TKind extends PgQueryResultHKT, TRow> = (TKind & {\n\treadonly row: TRow;\n})['type'];\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,oBAAyC;AAGzC,iBAA0C;AAC1C,qBAAuB;AACvB,gBAA2B;AAUpB,MAAe,gBAAwE;AAAA,EAC7F,YAAsB,OAAc;AAAd;AAAA,EAAe;AAAA,EAErC,WAAkB;AACjB,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,UAAU,UAAmB,cAAiC;AAC7D,WAAO;AAAA,EACR;AAAA,EAEA,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAGvC;AASD;AAQO,MAAe,UAIpB;AAAA,EAGD,YAAsB,SAAoB;AAApB;AAAA,EAAqB;AAAA,EAF3C,QAAiB,wBAAU,IAAY;AAAA,EAYvC,QAAW,OAAwB;AAClC,WAAO,sBAAO,gBAAgB,qBAAqB,MAAM;AACxD,YAAM,WAAW,sBAAO,gBAAgB,wBAAwB,MAAM;AACrE,eAAO,KAAK;AAAA,UACX,KAAK,QAAQ,WAAW,KAAK;AAAA,UAC7B;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD,CAAC;AAED,aAAO,SAAS,QAAQ;AAAA,IACzB,CAAC;AAAA,EACF;AAAA,EAEA,IAAiB,OAA0B;AAC1C,WAAO,KAAK;AAAA,MACX,KAAK,QAAQ,WAAW,KAAK;AAAA,MAC7B;AAAA,MACA;AAAA,MACA;AAAA,IACD,EAAE,IAAI;AAAA,EACP;AAAA,EAEA,MAAM,MAAMA,MAA2B;AACtC,UAAM,MAAM,MAAM,KAAK,QAA6BA,IAAG;AAEvD,WAAO;AAAA,MACN,IAAI,CAAC,EAAE,OAAO;AAAA,IACf;AAAA,EACD;AAMD;AAEO,MAAe,sBAIZ,qBAA+C;AAAA,EAGxD,YACC,SACA,SACU,QAKS,cAAc,GAChC;AACD,UAAM,SAAS,SAAS,MAAM;AAPpB;AAKS;AAAA,EAGpB;AAAA,EAbA,QAAiB,wBAAU,IAAY;AAAA,EAevC,WAAkB;AACjB,UAAM,IAAI,uCAAyB;AAAA,EACpC;AAAA;AAAA,EAGA,wBAAwB,QAAkC;AACzD,UAAM,SAAmB,CAAC;AAC1B,QAAI,OAAO,gBAAgB;AAC1B,aAAO,KAAK,mBAAmB,OAAO,cAAc,EAAE;AAAA,IACvD;AACA,QAAI,OAAO,YAAY;AACtB,aAAO,KAAK,OAAO,UAAU;AAAA,IAC9B;AACA,QAAI,OAAO,OAAO,eAAe,WAAW;AAC3C,aAAO,KAAK,OAAO,aAAa,eAAe,gBAAgB;AAAA,IAChE;AACA,WAAO,eAAI,IAAI,OAAO,KAAK,GAAG,CAAC;AAAA,EAChC;AAAA,EAEA,eAAe,QAA4C;AAC1D,WAAO,KAAK,QAAQ,QAAQ,iCAAsB,KAAK,wBAAwB,MAAM,CAAC,EAAE;AAAA,EACzF;AAKD;","names":["sql"]}
@@ -30,6 +30,7 @@ export declare abstract class PgSession<TQueryResult extends PgQueryResultHKT =
30
30
  abstract prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => T['execute']): PgPreparedQuery<T>;
31
31
  execute<T>(query: SQL): Promise<T>;
32
32
  all<T = unknown>(query: SQL): Promise<T[]>;
33
+ count(sql: SQL): Promise<number>;
33
34
  abstract transaction<T>(transaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>, config?: PgTransactionConfig): Promise<T>;
34
35
  }
35
36
  export declare abstract class PgTransaction<TQueryResult extends PgQueryResultHKT, TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema extends TablesRelationalConfig = Record<string, never>> extends PgDatabase<TQueryResult, TFullSchema, TSchema> {
@@ -30,6 +30,7 @@ export declare abstract class PgSession<TQueryResult extends PgQueryResultHKT =
30
30
  abstract prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => T['execute']): PgPreparedQuery<T>;
31
31
  execute<T>(query: SQL): Promise<T>;
32
32
  all<T = unknown>(query: SQL): Promise<T[]>;
33
+ count(sql: SQL): Promise<number>;
33
34
  abstract transaction<T>(transaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>, config?: PgTransactionConfig): Promise<T>;
34
35
  }
35
36
  export declare abstract class PgTransaction<TQueryResult extends PgQueryResultHKT, TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema extends TablesRelationalConfig = Record<string, never>> extends PgDatabase<TQueryResult, TFullSchema, TSchema> {
@@ -43,6 +43,12 @@ class PgSession {
43
43
  false
44
44
  ).all();
45
45
  }
46
+ async count(sql2) {
47
+ const res = await this.execute(sql2);
48
+ return Number(
49
+ res[0]["count"]
50
+ );
51
+ }
46
52
  }
47
53
  class PgTransaction extends PgDatabase {
48
54
  constructor(dialect, session, schema, nestedIndex = 0) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/pg-core/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { TransactionRollbackError } from '~/errors.ts';\nimport type { TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport { type Query, type SQL, sql } from '~/sql/index.ts';\nimport { tracer } from '~/tracing.ts';\nimport { PgDatabase } from './db.ts';\nimport type { PgDialect } from './dialect.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface PreparedQueryConfig {\n\texecute: unknown;\n\tall: unknown;\n\tvalues: unknown;\n}\n\nexport abstract class PgPreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {\n\tconstructor(protected query: Query) {}\n\n\tgetQuery(): Query {\n\t\treturn this.query;\n\t}\n\n\tmapResult(response: unknown, _isFromBatch?: boolean): unknown {\n\t\treturn response;\n\t}\n\n\tstatic readonly [entityKind]: string = 'PgPreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tabstract execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;\n\n\t/** @internal */\n\tabstract all(placeholderValues?: Record<string, unknown>): Promise<T['all']>;\n\n\t/** @internal */\n\tabstract isResponseInArrayMode(): boolean;\n}\n\nexport interface PgTransactionConfig {\n\tisolationLevel?: 'read uncommitted' | 'read committed' | 'repeatable read' | 'serializable';\n\taccessMode?: 'read only' | 'read write';\n\tdeferrable?: boolean;\n}\n\nexport abstract class PgSession<\n\tTQueryResult extends PgQueryResultHKT = PgQueryResultHKT,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> {\n\tstatic readonly [entityKind]: string = 'PgSession';\n\n\tconstructor(protected dialect: PgDialect) {}\n\n\tabstract prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => T['execute'],\n\t): PgPreparedQuery<T>;\n\n\texecute<T>(query: SQL): Promise<T> {\n\t\treturn tracer.startActiveSpan('drizzle.operation', () => {\n\t\t\tconst prepared = tracer.startActiveSpan('drizzle.prepareQuery', () => {\n\t\t\t\treturn this.prepareQuery<PreparedQueryConfig & { execute: T }>(\n\t\t\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\t\t\tundefined,\n\t\t\t\t\tundefined,\n\t\t\t\t\tfalse,\n\t\t\t\t);\n\t\t\t});\n\n\t\t\treturn prepared.execute();\n\t\t});\n\t}\n\n\tall<T = unknown>(query: SQL): Promise<T[]> {\n\t\treturn this.prepareQuery<PreparedQueryConfig & { all: T[] }>(\n\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfalse,\n\t\t).all();\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig,\n\t): Promise<T>;\n}\n\nexport abstract class PgTransaction<\n\tTQueryResult extends PgQueryResultHKT,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> extends PgDatabase<TQueryResult, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'PgTransaction';\n\n\tconstructor(\n\t\tdialect: PgDialect,\n\t\tsession: PgSession<any, any, any>,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record<string, unknown>;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record<string, string>;\n\t\t} | undefined,\n\t\tprotected readonly nestedIndex = 0,\n\t) {\n\t\tsuper(dialect, session, schema);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n\n\t/** @internal */\n\tgetTransactionConfigSQL(config: PgTransactionConfig): SQL {\n\t\tconst chunks: string[] = [];\n\t\tif (config.isolationLevel) {\n\t\t\tchunks.push(`isolation level ${config.isolationLevel}`);\n\t\t}\n\t\tif (config.accessMode) {\n\t\t\tchunks.push(config.accessMode);\n\t\t}\n\t\tif (typeof config.deferrable === 'boolean') {\n\t\t\tchunks.push(config.deferrable ? 'deferrable' : 'not deferrable');\n\t\t}\n\t\treturn sql.raw(chunks.join(' '));\n\t}\n\n\tsetTransaction(config: PgTransactionConfig): Promise<void> {\n\t\treturn this.session.execute(sql`set transaction ${this.getTransactionConfigSQL(config)}`);\n\t}\n\n\tabstract override transaction<T>(\n\t\ttransaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T>;\n}\n\nexport interface PgQueryResultHKT {\n\treadonly $brand: 'PgQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n\nexport type PgQueryResultKind<TKind extends PgQueryResultHKT, TRow> = (TKind & {\n\treadonly row: TRow;\n})['type'];\n"],"mappings":"AAAA,SAAS,kBAAkB;AAC3B,SAAS,gCAAgC;AAGzC,SAA+B,WAAW;AAC1C,SAAS,cAAc;AACvB,SAAS,kBAAkB;AAUpB,MAAe,gBAAwE;AAAA,EAC7F,YAAsB,OAAc;AAAd;AAAA,EAAe;AAAA,EAErC,WAAkB;AACjB,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,UAAU,UAAmB,cAAiC;AAC7D,WAAO;AAAA,EACR;AAAA,EAEA,QAAiB,UAAU,IAAY;AAAA;AAAA,EAGvC;AASD;AAQO,MAAe,UAIpB;AAAA,EAGD,YAAsB,SAAoB;AAApB;AAAA,EAAqB;AAAA,EAF3C,QAAiB,UAAU,IAAY;AAAA,EAYvC,QAAW,OAAwB;AAClC,WAAO,OAAO,gBAAgB,qBAAqB,MAAM;AACxD,YAAM,WAAW,OAAO,gBAAgB,wBAAwB,MAAM;AACrE,eAAO,KAAK;AAAA,UACX,KAAK,QAAQ,WAAW,KAAK;AAAA,UAC7B;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD,CAAC;AAED,aAAO,SAAS,QAAQ;AAAA,IACzB,CAAC;AAAA,EACF;AAAA,EAEA,IAAiB,OAA0B;AAC1C,WAAO,KAAK;AAAA,MACX,KAAK,QAAQ,WAAW,KAAK;AAAA,MAC7B;AAAA,MACA;AAAA,MACA;AAAA,IACD,EAAE,IAAI;AAAA,EACP;AAMD;AAEO,MAAe,sBAIZ,WAA+C;AAAA,EAGxD,YACC,SACA,SACU,QAKS,cAAc,GAChC;AACD,UAAM,SAAS,SAAS,MAAM;AAPpB;AAKS;AAAA,EAGpB;AAAA,EAbA,QAAiB,UAAU,IAAY;AAAA,EAevC,WAAkB;AACjB,UAAM,IAAI,yBAAyB;AAAA,EACpC;AAAA;AAAA,EAGA,wBAAwB,QAAkC;AACzD,UAAM,SAAmB,CAAC;AAC1B,QAAI,OAAO,gBAAgB;AAC1B,aAAO,KAAK,mBAAmB,OAAO,cAAc,EAAE;AAAA,IACvD;AACA,QAAI,OAAO,YAAY;AACtB,aAAO,KAAK,OAAO,UAAU;AAAA,IAC9B;AACA,QAAI,OAAO,OAAO,eAAe,WAAW;AAC3C,aAAO,KAAK,OAAO,aAAa,eAAe,gBAAgB;AAAA,IAChE;AACA,WAAO,IAAI,IAAI,OAAO,KAAK,GAAG,CAAC;AAAA,EAChC;AAAA,EAEA,eAAe,QAA4C;AAC1D,WAAO,KAAK,QAAQ,QAAQ,sBAAsB,KAAK,wBAAwB,MAAM,CAAC,EAAE;AAAA,EACzF;AAKD;","names":[]}
1
+ {"version":3,"sources":["../../src/pg-core/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { TransactionRollbackError } from '~/errors.ts';\nimport type { TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport { type Query, type SQL, sql } from '~/sql/index.ts';\nimport { tracer } from '~/tracing.ts';\nimport { PgDatabase } from './db.ts';\nimport type { PgDialect } from './dialect.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface PreparedQueryConfig {\n\texecute: unknown;\n\tall: unknown;\n\tvalues: unknown;\n}\n\nexport abstract class PgPreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {\n\tconstructor(protected query: Query) {}\n\n\tgetQuery(): Query {\n\t\treturn this.query;\n\t}\n\n\tmapResult(response: unknown, _isFromBatch?: boolean): unknown {\n\t\treturn response;\n\t}\n\n\tstatic readonly [entityKind]: string = 'PgPreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tabstract execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;\n\n\t/** @internal */\n\tabstract all(placeholderValues?: Record<string, unknown>): Promise<T['all']>;\n\n\t/** @internal */\n\tabstract isResponseInArrayMode(): boolean;\n}\n\nexport interface PgTransactionConfig {\n\tisolationLevel?: 'read uncommitted' | 'read committed' | 'repeatable read' | 'serializable';\n\taccessMode?: 'read only' | 'read write';\n\tdeferrable?: boolean;\n}\n\nexport abstract class PgSession<\n\tTQueryResult extends PgQueryResultHKT = PgQueryResultHKT,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> {\n\tstatic readonly [entityKind]: string = 'PgSession';\n\n\tconstructor(protected dialect: PgDialect) {}\n\n\tabstract prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => T['execute'],\n\t): PgPreparedQuery<T>;\n\n\texecute<T>(query: SQL): Promise<T> {\n\t\treturn tracer.startActiveSpan('drizzle.operation', () => {\n\t\t\tconst prepared = tracer.startActiveSpan('drizzle.prepareQuery', () => {\n\t\t\t\treturn this.prepareQuery<PreparedQueryConfig & { execute: T }>(\n\t\t\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\t\t\tundefined,\n\t\t\t\t\tundefined,\n\t\t\t\t\tfalse,\n\t\t\t\t);\n\t\t\t});\n\n\t\t\treturn prepared.execute();\n\t\t});\n\t}\n\n\tall<T = unknown>(query: SQL): Promise<T[]> {\n\t\treturn this.prepareQuery<PreparedQueryConfig & { all: T[] }>(\n\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfalse,\n\t\t).all();\n\t}\n\n\tasync count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<[{ count: string }]>(sql);\n\n\t\treturn Number(\n\t\t\tres[0]['count'],\n\t\t);\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig,\n\t): Promise<T>;\n}\n\nexport abstract class PgTransaction<\n\tTQueryResult extends PgQueryResultHKT,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> extends PgDatabase<TQueryResult, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'PgTransaction';\n\n\tconstructor(\n\t\tdialect: PgDialect,\n\t\tsession: PgSession<any, any, any>,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record<string, unknown>;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record<string, string>;\n\t\t} | undefined,\n\t\tprotected readonly nestedIndex = 0,\n\t) {\n\t\tsuper(dialect, session, schema);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n\n\t/** @internal */\n\tgetTransactionConfigSQL(config: PgTransactionConfig): SQL {\n\t\tconst chunks: string[] = [];\n\t\tif (config.isolationLevel) {\n\t\t\tchunks.push(`isolation level ${config.isolationLevel}`);\n\t\t}\n\t\tif (config.accessMode) {\n\t\t\tchunks.push(config.accessMode);\n\t\t}\n\t\tif (typeof config.deferrable === 'boolean') {\n\t\t\tchunks.push(config.deferrable ? 'deferrable' : 'not deferrable');\n\t\t}\n\t\treturn sql.raw(chunks.join(' '));\n\t}\n\n\tsetTransaction(config: PgTransactionConfig): Promise<void> {\n\t\treturn this.session.execute(sql`set transaction ${this.getTransactionConfigSQL(config)}`);\n\t}\n\n\tabstract override transaction<T>(\n\t\ttransaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T>;\n}\n\nexport interface PgQueryResultHKT {\n\treadonly $brand: 'PgQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n\nexport type PgQueryResultKind<TKind extends PgQueryResultHKT, TRow> = (TKind & {\n\treadonly row: TRow;\n})['type'];\n"],"mappings":"AAAA,SAAS,kBAAkB;AAC3B,SAAS,gCAAgC;AAGzC,SAA+B,WAAW;AAC1C,SAAS,cAAc;AACvB,SAAS,kBAAkB;AAUpB,MAAe,gBAAwE;AAAA,EAC7F,YAAsB,OAAc;AAAd;AAAA,EAAe;AAAA,EAErC,WAAkB;AACjB,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,UAAU,UAAmB,cAAiC;AAC7D,WAAO;AAAA,EACR;AAAA,EAEA,QAAiB,UAAU,IAAY;AAAA;AAAA,EAGvC;AASD;AAQO,MAAe,UAIpB;AAAA,EAGD,YAAsB,SAAoB;AAApB;AAAA,EAAqB;AAAA,EAF3C,QAAiB,UAAU,IAAY;AAAA,EAYvC,QAAW,OAAwB;AAClC,WAAO,OAAO,gBAAgB,qBAAqB,MAAM;AACxD,YAAM,WAAW,OAAO,gBAAgB,wBAAwB,MAAM;AACrE,eAAO,KAAK;AAAA,UACX,KAAK,QAAQ,WAAW,KAAK;AAAA,UAC7B;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD,CAAC;AAED,aAAO,SAAS,QAAQ;AAAA,IACzB,CAAC;AAAA,EACF;AAAA,EAEA,IAAiB,OAA0B;AAC1C,WAAO,KAAK;AAAA,MACX,KAAK,QAAQ,WAAW,KAAK;AAAA,MAC7B;AAAA,MACA;AAAA,MACA;AAAA,IACD,EAAE,IAAI;AAAA,EACP;AAAA,EAEA,MAAM,MAAMA,MAA2B;AACtC,UAAM,MAAM,MAAM,KAAK,QAA6BA,IAAG;AAEvD,WAAO;AAAA,MACN,IAAI,CAAC,EAAE,OAAO;AAAA,IACf;AAAA,EACD;AAMD;AAEO,MAAe,sBAIZ,WAA+C;AAAA,EAGxD,YACC,SACA,SACU,QAKS,cAAc,GAChC;AACD,UAAM,SAAS,SAAS,MAAM;AAPpB;AAKS;AAAA,EAGpB;AAAA,EAbA,QAAiB,UAAU,IAAY;AAAA,EAevC,WAAkB;AACjB,UAAM,IAAI,yBAAyB;AAAA,EACpC;AAAA;AAAA,EAGA,wBAAwB,QAAkC;AACzD,UAAM,SAAmB,CAAC;AAC1B,QAAI,OAAO,gBAAgB;AAC1B,aAAO,KAAK,mBAAmB,OAAO,cAAc,EAAE;AAAA,IACvD;AACA,QAAI,OAAO,YAAY;AACtB,aAAO,KAAK,OAAO,UAAU;AAAA,IAC9B;AACA,QAAI,OAAO,OAAO,eAAe,WAAW;AAC3C,aAAO,KAAK,OAAO,aAAa,eAAe,gBAAgB;AAAA,IAChE;AACA,WAAO,IAAI,IAAI,OAAO,KAAK,GAAG,CAAC;AAAA,EAChC;AAAA,EAEA,eAAe,QAA4C;AAC1D,WAAO,KAAK,QAAQ,QAAQ,sBAAsB,KAAK,wBAAwB,MAAM,CAAC,EAAE;AAAA,EACzF;AAKD;","names":["sql"]}