drizzle-orm 0.40.0-262a7b0 → 0.40.0-bbf78ae

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 (216) hide show
  1. package/aws-data-api/pg/driver.cjs +5 -1
  2. package/aws-data-api/pg/driver.cjs.map +1 -1
  3. package/aws-data-api/pg/driver.d.cts +1 -0
  4. package/aws-data-api/pg/driver.d.ts +1 -0
  5. package/aws-data-api/pg/driver.js +5 -1
  6. package/aws-data-api/pg/driver.js.map +1 -1
  7. package/aws-data-api/pg/session.cjs +15 -4
  8. package/aws-data-api/pg/session.cjs.map +1 -1
  9. package/aws-data-api/pg/session.d.cts +13 -3
  10. package/aws-data-api/pg/session.d.ts +13 -3
  11. package/aws-data-api/pg/session.js +15 -4
  12. package/aws-data-api/pg/session.js.map +1 -1
  13. package/bun-sql/driver.cjs +5 -1
  14. package/bun-sql/driver.cjs.map +1 -1
  15. package/bun-sql/driver.js +5 -1
  16. package/bun-sql/driver.js.map +1 -1
  17. package/bun-sql/session.cjs +21 -9
  18. package/bun-sql/session.cjs.map +1 -1
  19. package/bun-sql/session.d.cts +12 -3
  20. package/bun-sql/session.d.ts +12 -3
  21. package/bun-sql/session.js +21 -9
  22. package/bun-sql/session.js.map +1 -1
  23. package/cache/core/cache.cjs +47 -0
  24. package/cache/core/cache.cjs.map +1 -0
  25. package/cache/core/cache.d.cts +35 -0
  26. package/cache/core/cache.d.ts +35 -0
  27. package/cache/core/cache.js +22 -0
  28. package/cache/core/cache.js.map +1 -0
  29. package/cache/core/index.cjs +23 -0
  30. package/cache/core/index.cjs.map +1 -0
  31. package/cache/core/index.d.cts +1 -0
  32. package/cache/core/index.d.ts +1 -0
  33. package/cache/core/index.js +2 -0
  34. package/cache/core/index.js.map +1 -0
  35. package/cache/core/types.cjs +17 -0
  36. package/cache/core/types.cjs.map +1 -0
  37. package/cache/core/types.d.cts +22 -0
  38. package/cache/core/types.d.ts +22 -0
  39. package/cache/core/types.js +1 -0
  40. package/cache/core/types.js.map +1 -0
  41. package/cache/upstash/cache.cjs +98 -0
  42. package/cache/upstash/cache.cjs.map +1 -0
  43. package/cache/upstash/cache.d.cts +23 -0
  44. package/cache/upstash/cache.d.ts +23 -0
  45. package/cache/upstash/cache.js +73 -0
  46. package/cache/upstash/cache.js.map +1 -0
  47. package/cache/upstash/index.cjs +23 -0
  48. package/cache/upstash/index.cjs.map +1 -0
  49. package/cache/upstash/index.d.cts +1 -0
  50. package/cache/upstash/index.d.ts +1 -0
  51. package/cache/upstash/index.js +2 -0
  52. package/cache/upstash/index.js.map +1 -0
  53. package/neon-http/driver.cjs +9 -2
  54. package/neon-http/driver.cjs.map +1 -1
  55. package/neon-http/driver.d.cts +2 -0
  56. package/neon-http/driver.d.ts +2 -0
  57. package/neon-http/driver.js +9 -2
  58. package/neon-http/driver.js.map +1 -1
  59. package/neon-http/session.cjs +25 -15
  60. package/neon-http/session.cjs.map +1 -1
  61. package/neon-http/session.d.cts +12 -3
  62. package/neon-http/session.d.ts +12 -3
  63. package/neon-http/session.js +25 -15
  64. package/neon-http/session.js.map +1 -1
  65. package/neon-serverless/driver.cjs +9 -2
  66. package/neon-serverless/driver.cjs.map +1 -1
  67. package/neon-serverless/driver.d.cts +2 -0
  68. package/neon-serverless/driver.d.ts +2 -0
  69. package/neon-serverless/driver.js +9 -2
  70. package/neon-serverless/driver.js.map +1 -1
  71. package/neon-serverless/session.cjs +21 -7
  72. package/neon-serverless/session.cjs.map +1 -1
  73. package/neon-serverless/session.d.cts +12 -3
  74. package/neon-serverless/session.d.ts +12 -3
  75. package/neon-serverless/session.js +21 -7
  76. package/neon-serverless/session.js.map +1 -1
  77. package/node-postgres/driver.cjs +9 -2
  78. package/node-postgres/driver.cjs.map +1 -1
  79. package/node-postgres/driver.d.cts +2 -0
  80. package/node-postgres/driver.d.ts +2 -0
  81. package/node-postgres/driver.js +9 -2
  82. package/node-postgres/driver.js.map +1 -1
  83. package/node-postgres/session.cjs +19 -6
  84. package/node-postgres/session.cjs.map +1 -1
  85. package/node-postgres/session.d.cts +13 -3
  86. package/node-postgres/session.d.ts +13 -3
  87. package/node-postgres/session.js +19 -6
  88. package/node-postgres/session.js.map +1 -1
  89. package/package.json +196 -143
  90. package/pg-core/db.cjs +1 -0
  91. package/pg-core/db.cjs.map +1 -1
  92. package/pg-core/db.d.cts +4 -0
  93. package/pg-core/db.d.ts +4 -0
  94. package/pg-core/db.js +1 -0
  95. package/pg-core/db.js.map +1 -1
  96. package/pg-core/query-builders/delete.cjs +6 -1
  97. package/pg-core/query-builders/delete.cjs.map +1 -1
  98. package/pg-core/query-builders/delete.d.cts +2 -1
  99. package/pg-core/query-builders/delete.d.ts +2 -1
  100. package/pg-core/query-builders/delete.js +6 -1
  101. package/pg-core/query-builders/delete.js.map +1 -1
  102. package/pg-core/query-builders/insert.cjs +6 -1
  103. package/pg-core/query-builders/insert.cjs.map +1 -1
  104. package/pg-core/query-builders/insert.d.cts +2 -1
  105. package/pg-core/query-builders/insert.d.ts +2 -1
  106. package/pg-core/query-builders/insert.js +6 -1
  107. package/pg-core/query-builders/insert.js.map +1 -1
  108. package/pg-core/query-builders/select.cjs +31 -5
  109. package/pg-core/query-builders/select.cjs.map +1 -1
  110. package/pg-core/query-builders/select.d.cts +11 -2
  111. package/pg-core/query-builders/select.d.ts +11 -2
  112. package/pg-core/query-builders/select.js +31 -5
  113. package/pg-core/query-builders/select.js.map +1 -1
  114. package/pg-core/query-builders/select.types.cjs.map +1 -1
  115. package/pg-core/query-builders/select.types.d.cts +7 -0
  116. package/pg-core/query-builders/select.types.d.ts +7 -0
  117. package/pg-core/query-builders/update.cjs +6 -1
  118. package/pg-core/query-builders/update.cjs.map +1 -1
  119. package/pg-core/query-builders/update.d.cts +4 -3
  120. package/pg-core/query-builders/update.d.ts +4 -3
  121. package/pg-core/query-builders/update.js +6 -1
  122. package/pg-core/query-builders/update.js.map +1 -1
  123. package/pg-core/session.cjs +58 -1
  124. package/pg-core/session.cjs.map +1 -1
  125. package/pg-core/session.d.cts +14 -3
  126. package/pg-core/session.d.ts +14 -3
  127. package/pg-core/session.js +59 -2
  128. package/pg-core/session.js.map +1 -1
  129. package/pg-core/utils.cjs +16 -0
  130. package/pg-core/utils.cjs.map +1 -1
  131. package/pg-core/utils.d.cts +8 -4
  132. package/pg-core/utils.d.ts +8 -4
  133. package/pg-core/utils.js +16 -1
  134. package/pg-core/utils.js.map +1 -1
  135. package/pg-proxy/driver.cjs +7 -2
  136. package/pg-proxy/driver.cjs.map +1 -1
  137. package/pg-proxy/driver.js +7 -2
  138. package/pg-proxy/driver.js.map +1 -1
  139. package/pg-proxy/session.cjs +15 -5
  140. package/pg-proxy/session.cjs.map +1 -1
  141. package/pg-proxy/session.d.cts +12 -3
  142. package/pg-proxy/session.d.ts +12 -3
  143. package/pg-proxy/session.js +15 -5
  144. package/pg-proxy/session.js.map +1 -1
  145. package/pglite/driver.cjs +9 -2
  146. package/pglite/driver.cjs.map +1 -1
  147. package/pglite/driver.d.cts +2 -0
  148. package/pglite/driver.d.ts +2 -0
  149. package/pglite/driver.js +9 -2
  150. package/pglite/driver.js.map +1 -1
  151. package/pglite/session.cjs +19 -7
  152. package/pglite/session.cjs.map +1 -1
  153. package/pglite/session.d.cts +12 -3
  154. package/pglite/session.d.ts +12 -3
  155. package/pglite/session.js +19 -7
  156. package/pglite/session.js.map +1 -1
  157. package/postgres-js/driver.cjs +5 -1
  158. package/postgres-js/driver.cjs.map +1 -1
  159. package/postgres-js/driver.js +5 -1
  160. package/postgres-js/driver.js.map +1 -1
  161. package/postgres-js/session.cjs +18 -6
  162. package/postgres-js/session.cjs.map +1 -1
  163. package/postgres-js/session.d.cts +12 -3
  164. package/postgres-js/session.d.ts +12 -3
  165. package/postgres-js/session.js +18 -6
  166. package/postgres-js/session.js.map +1 -1
  167. package/prisma/pg/session.cjs +1 -1
  168. package/prisma/pg/session.cjs.map +1 -1
  169. package/prisma/pg/session.js +1 -1
  170. package/prisma/pg/session.js.map +1 -1
  171. package/query-builders/query-builder.cjs.map +1 -1
  172. package/query-builders/query-builder.d.cts +2 -1
  173. package/query-builders/query-builder.d.ts +2 -1
  174. package/query-builders/query-builder.js.map +1 -1
  175. package/sql/sql.cjs +7 -0
  176. package/sql/sql.cjs.map +1 -1
  177. package/sql/sql.js +7 -0
  178. package/sql/sql.js.map +1 -1
  179. package/subquery.cjs +4 -3
  180. package/subquery.cjs.map +1 -1
  181. package/subquery.d.cts +2 -1
  182. package/subquery.d.ts +2 -1
  183. package/subquery.js +4 -3
  184. package/subquery.js.map +1 -1
  185. package/utils.cjs.map +1 -1
  186. package/utils.d.cts +2 -0
  187. package/utils.d.ts +2 -0
  188. package/utils.js.map +1 -1
  189. package/vercel-postgres/driver.cjs +9 -2
  190. package/vercel-postgres/driver.cjs.map +1 -1
  191. package/vercel-postgres/driver.d.cts +2 -0
  192. package/vercel-postgres/driver.d.ts +2 -0
  193. package/vercel-postgres/driver.js +9 -2
  194. package/vercel-postgres/driver.js.map +1 -1
  195. package/vercel-postgres/session.cjs +21 -7
  196. package/vercel-postgres/session.cjs.map +1 -1
  197. package/vercel-postgres/session.d.cts +12 -3
  198. package/vercel-postgres/session.d.ts +12 -3
  199. package/vercel-postgres/session.js +21 -7
  200. package/vercel-postgres/session.js.map +1 -1
  201. package/version.cjs +1 -1
  202. package/version.d.cts +1 -1
  203. package/version.d.ts +1 -1
  204. package/version.js +1 -1
  205. package/xata-http/driver.cjs +7 -2
  206. package/xata-http/driver.cjs.map +1 -1
  207. package/xata-http/driver.d.cts +2 -0
  208. package/xata-http/driver.d.ts +2 -0
  209. package/xata-http/driver.js +7 -2
  210. package/xata-http/driver.js.map +1 -1
  211. package/xata-http/session.cjs +21 -7
  212. package/xata-http/session.cjs.map +1 -1
  213. package/xata-http/session.d.cts +12 -3
  214. package/xata-http/session.d.ts +12 -3
  215. package/xata-http/session.js +21 -7
  216. package/xata-http/session.js.map +1 -1
@@ -1,10 +1,11 @@
1
1
  import type { Client, PoolClient, QueryResult, QueryResultRow } from 'pg';
2
2
  import pg from 'pg';
3
+ import { type Cache } from "../cache/core/index.js";
3
4
  import { entityKind } from "../entity.js";
4
5
  import { type Logger } from "../logger.js";
5
6
  import type { PgDialect } from "../pg-core/dialect.js";
6
7
  import { PgTransaction } from "../pg-core/index.js";
7
- import type { SelectedFieldsOrdered } from "../pg-core/query-builders/select.types.js";
8
+ import type { SelectedFieldsOrdered, WithCacheConfig } from "../pg-core/query-builders/select.types.js";
8
9
  import type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from "../pg-core/session.js";
9
10
  import { PgPreparedQuery, PgSession } from "../pg-core/session.js";
10
11
  import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.js";
@@ -13,6 +14,7 @@ import { type Assume } from "../utils.js";
13
14
  export type NodePgClient = pg.Pool | PoolClient | Client;
14
15
  export declare class NodePgPreparedQuery<T extends PreparedQueryConfig> extends PgPreparedQuery<T> {
15
16
  private client;
17
+ private queryString;
16
18
  private params;
17
19
  private logger;
18
20
  private fields;
@@ -21,12 +23,16 @@ export declare class NodePgPreparedQuery<T extends PreparedQueryConfig> extends
21
23
  static readonly [entityKind]: string;
22
24
  private rawQueryConfig;
23
25
  private queryConfig;
24
- constructor(client: NodePgClient, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, name: string | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined);
26
+ constructor(client: NodePgClient, queryString: string, params: unknown[], logger: Logger, cache: Cache, queryMetadata: {
27
+ type: 'select' | 'update' | 'delete' | 'insert';
28
+ tables: string[];
29
+ } | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, name: string | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined);
25
30
  execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
26
31
  all(placeholderValues?: Record<string, unknown> | undefined): Promise<T['all']>;
27
32
  }
28
33
  export interface NodePgSessionOptions {
29
34
  logger?: Logger;
35
+ cache?: Cache;
30
36
  }
31
37
  export declare class NodePgSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends PgSession<NodePgQueryResultHKT, TFullSchema, TSchema> {
32
38
  private client;
@@ -34,8 +40,12 @@ export declare class NodePgSession<TFullSchema extends Record<string, unknown>,
34
40
  private options;
35
41
  static readonly [entityKind]: string;
36
42
  private logger;
43
+ private cache;
37
44
  constructor(client: NodePgClient, dialect: PgDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: NodePgSessionOptions);
38
- prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => T['execute']): PgPreparedQuery<T>;
45
+ prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => T['execute'], queryMetadata?: {
46
+ type: 'select' | 'update' | 'delete' | 'insert';
47
+ tables: string[];
48
+ }, cacheConfig?: WithCacheConfig): PgPreparedQuery<T>;
39
49
  transaction<T>(transaction: (tx: NodePgTransaction<TFullSchema, TSchema>) => Promise<T>, config?: PgTransactionConfig | undefined): Promise<T>;
40
50
  count(sql: SQL): Promise<number>;
41
51
  }
@@ -1,4 +1,5 @@
1
1
  import pg from "pg";
2
+ import { NoopCache } from "../cache/core/index.js";
2
3
  import { entityKind } from "../entity.js";
3
4
  import { NoopLogger } from "../logger.js";
4
5
  import { PgTransaction } from "../pg-core/index.js";
@@ -8,9 +9,10 @@ import { tracer } from "../tracing.js";
8
9
  import { mapResultRow } from "../utils.js";
9
10
  const { Pool, types } = pg;
10
11
  class NodePgPreparedQuery extends PgPreparedQuery {
11
- constructor(client, queryString, params, logger, fields, name, _isResponseInArrayMode, customResultMapper) {
12
- super({ sql: queryString, params });
12
+ constructor(client, queryString, params, logger, cache, queryMetadata, cacheConfig, fields, name, _isResponseInArrayMode, customResultMapper) {
13
+ super({ sql: queryString, params }, cache, queryMetadata, cacheConfig);
13
14
  this.client = client;
15
+ this.queryString = queryString;
14
16
  this.params = params;
15
17
  this.logger = logger;
16
18
  this.fields = fields;
@@ -77,7 +79,9 @@ class NodePgPreparedQuery extends PgPreparedQuery {
77
79
  "drizzle.query.text": rawQuery.text,
78
80
  "drizzle.query.params": JSON.stringify(params)
79
81
  });
80
- return client.query(rawQuery, params);
82
+ return this.queryWithCache(rawQuery.text, params, async () => {
83
+ return await client.query(rawQuery, params);
84
+ });
81
85
  });
82
86
  }
83
87
  const result = await tracer.startActiveSpan("drizzle.driver.execute", (span) => {
@@ -86,7 +90,9 @@ class NodePgPreparedQuery extends PgPreparedQuery {
86
90
  "drizzle.query.text": query.text,
87
91
  "drizzle.query.params": JSON.stringify(params)
88
92
  });
89
- return client.query(query, params);
93
+ return this.queryWithCache(query.text, params, async () => {
94
+ return await client.query(query, params);
95
+ });
90
96
  });
91
97
  return tracer.startActiveSpan("drizzle.mapResponse", () => {
92
98
  return customResultMapper ? customResultMapper(result.rows) : result.rows.map((row) => mapResultRow(fields, row, joinsNotNullableMap));
@@ -103,7 +109,9 @@ class NodePgPreparedQuery extends PgPreparedQuery {
103
109
  "drizzle.query.text": this.rawQueryConfig.text,
104
110
  "drizzle.query.params": JSON.stringify(params)
105
111
  });
106
- return this.client.query(this.rawQueryConfig, params).then((result) => result.rows);
112
+ return this.queryWithCache(this.rawQueryConfig.text, params, async () => {
113
+ return this.client.query(this.rawQueryConfig, params);
114
+ }).then((result) => result.rows);
107
115
  });
108
116
  });
109
117
  }
@@ -119,15 +127,20 @@ class NodePgSession extends PgSession {
119
127
  this.schema = schema;
120
128
  this.options = options;
121
129
  this.logger = options.logger ?? new NoopLogger();
130
+ this.cache = options.cache ?? new NoopCache();
122
131
  }
123
132
  static [entityKind] = "NodePgSession";
124
133
  logger;
125
- prepareQuery(query, fields, name, isResponseInArrayMode, customResultMapper) {
134
+ cache;
135
+ prepareQuery(query, fields, name, isResponseInArrayMode, customResultMapper, queryMetadata, cacheConfig) {
126
136
  return new NodePgPreparedQuery(
127
137
  this.client,
128
138
  query.sql,
129
139
  query.params,
130
140
  this.logger,
141
+ this.cache,
142
+ queryMetadata,
143
+ cacheConfig,
131
144
  fields,
132
145
  name,
133
146
  isResponseInArrayMode,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/node-postgres/session.ts"],"sourcesContent":["import type { Client, PoolClient, QueryArrayConfig, QueryConfig, QueryResult, QueryResultRow } from 'pg';\nimport pg from 'pg';\nimport { entityKind } from '~/entity.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgTransaction } from '~/pg-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport { PgPreparedQuery, PgSession } from '~/pg-core/session.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL, sql } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nconst { Pool, types } = pg;\n\nexport type NodePgClient = pg.Pool | PoolClient | Client;\n\nexport class NodePgPreparedQuery<T extends PreparedQueryConfig> extends PgPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'NodePgPreparedQuery';\n\n\tprivate rawQueryConfig: QueryConfig;\n\tprivate queryConfig: QueryArrayConfig;\n\n\tconstructor(\n\t\tprivate client: NodePgClient,\n\t\tqueryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t) {\n\t\tsuper({ sql: queryString, params });\n\t\tthis.rawQueryConfig = {\n\t\t\tname,\n\t\t\ttext: queryString,\n\t\t\ttypes: {\n\t\t\t\t// @ts-ignore\n\t\t\t\tgetTypeParser: (typeId, format) => {\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMPTZ) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMP) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.DATE) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.INTERVAL) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn types.getTypeParser(typeId, format);\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t\tthis.queryConfig = {\n\t\t\tname,\n\t\t\ttext: queryString,\n\t\t\trowMode: 'array',\n\t\t\ttypes: {\n\t\t\t\t// @ts-ignore\n\t\t\t\tgetTypeParser: (typeId, format) => {\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMPTZ) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMP) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.DATE) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.INTERVAL) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn types.getTypeParser(typeId, format);\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tthis.logger.logQuery(this.rawQueryConfig.text, params);\n\n\t\t\tconst { fields, rawQueryConfig: rawQuery, client, queryConfig: query, joinsNotNullableMap, customResultMapper } =\n\t\t\t\tthis;\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t\t'drizzle.query.name': rawQuery.name,\n\t\t\t\t\t\t'drizzle.query.text': rawQuery.text,\n\t\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t\t});\n\t\t\t\t\treturn client.query(rawQuery, params);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst result = await tracer.startActiveSpan('drizzle.driver.execute', (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.name': query.name,\n\t\t\t\t\t'drizzle.query.text': query.text,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn client.query(query, params);\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn customResultMapper\n\t\t\t\t\t? customResultMapper(result.rows)\n\t\t\t\t\t: result.rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tall(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tthis.logger.logQuery(this.rawQueryConfig.text, params);\n\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.name': this.rawQueryConfig.name,\n\t\t\t\t\t'drizzle.query.text': this.rawQueryConfig.text,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn this.client.query(this.rawQueryConfig, params).then((result) => result.rows);\n\t\t\t});\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface NodePgSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class NodePgSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgSession<NodePgQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'NodePgSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: NodePgClient,\n\t\tdialect: PgDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: NodePgSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<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[][]) => T['execute'],\n\t): PgPreparedQuery<T> {\n\t\treturn new NodePgPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tname,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: NodePgTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig | undefined,\n\t): Promise<T> {\n\t\tconst session = this.client instanceof Pool // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t? new NodePgSession(await this.client.connect(), this.dialect, this.schema, this.options)\n\t\t\t: this;\n\t\tconst tx = new NodePgTransaction<TFullSchema, TSchema>(this.dialect, session, this.schema);\n\t\tawait tx.execute(sql`begin${config ? sql` ${tx.getTransactionConfigSQL(config)}` : undefined}`);\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (error) {\n\t\t\tawait tx.execute(sql`rollback`);\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tif (this.client instanceof Pool) { // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t\t(session.client as PoolClient).release();\n\t\t\t}\n\t\t}\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<{ rows: [{ count: string }] }>(sql);\n\t\treturn Number(\n\t\t\tres['rows'][0]['count'],\n\t\t);\n\t}\n}\n\nexport class NodePgTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgTransaction<NodePgQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'NodePgTransaction';\n\n\toverride async transaction<T>(transaction: (tx: NodePgTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new NodePgTransaction<TFullSchema, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport interface NodePgQueryResultHKT extends PgQueryResultHKT {\n\ttype: QueryResult<Assume<this['row'], QueryResultRow>>;\n}\n"],"mappings":"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","names":["sql"]}
1
+ {"version":3,"sources":["../../src/node-postgres/session.ts"],"sourcesContent":["import type { Client, PoolClient, QueryArrayConfig, QueryConfig, QueryResult, QueryResultRow } from 'pg';\nimport pg from 'pg';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport { entityKind } from '~/entity.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgTransaction } from '~/pg-core/index.ts';\nimport type { SelectedFieldsOrdered, WithCacheConfig } from '~/pg-core/query-builders/select.types.ts';\nimport type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport { PgPreparedQuery, PgSession } from '~/pg-core/session.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL, sql } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nconst { Pool, types } = pg;\n\nexport type NodePgClient = pg.Pool | PoolClient | Client;\n\nexport class NodePgPreparedQuery<T extends PreparedQueryConfig> extends PgPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'NodePgPreparedQuery';\n\n\tprivate rawQueryConfig: QueryConfig;\n\tprivate queryConfig: QueryArrayConfig;\n\n\tconstructor(\n\t\tprivate client: NodePgClient,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t) {\n\t\tsuper({ sql: queryString, params }, cache, queryMetadata, cacheConfig);\n\t\tthis.rawQueryConfig = {\n\t\t\tname,\n\t\t\ttext: queryString,\n\t\t\ttypes: {\n\t\t\t\t// @ts-ignore\n\t\t\t\tgetTypeParser: (typeId, format) => {\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMPTZ) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMP) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.DATE) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.INTERVAL) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn types.getTypeParser(typeId, format);\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t\tthis.queryConfig = {\n\t\t\tname,\n\t\t\ttext: queryString,\n\t\t\trowMode: 'array',\n\t\t\ttypes: {\n\t\t\t\t// @ts-ignore\n\t\t\t\tgetTypeParser: (typeId, format) => {\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMPTZ) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMP) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.DATE) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.INTERVAL) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn types.getTypeParser(typeId, format);\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tthis.logger.logQuery(this.rawQueryConfig.text, params);\n\n\t\t\tconst { fields, rawQueryConfig: rawQuery, client, queryConfig: query, joinsNotNullableMap, customResultMapper } =\n\t\t\t\tthis;\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t\t'drizzle.query.name': rawQuery.name,\n\t\t\t\t\t\t'drizzle.query.text': rawQuery.text,\n\t\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t\t});\n\t\t\t\t\treturn this.queryWithCache(rawQuery.text, params, async () => {\n\t\t\t\t\t\treturn await client.query(rawQuery, params);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst result = await tracer.startActiveSpan('drizzle.driver.execute', (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.name': query.name,\n\t\t\t\t\t'drizzle.query.text': query.text,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn this.queryWithCache(query.text, params, async () => {\n\t\t\t\t\treturn await client.query(query, params);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn customResultMapper\n\t\t\t\t\t? customResultMapper(result.rows)\n\t\t\t\t\t: result.rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tall(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tthis.logger.logQuery(this.rawQueryConfig.text, params);\n\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.name': this.rawQueryConfig.name,\n\t\t\t\t\t'drizzle.query.text': this.rawQueryConfig.text,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn this.queryWithCache(this.rawQueryConfig.text, params, async () => {\n\t\t\t\t\treturn this.client.query(this.rawQueryConfig, params);\n\t\t\t\t}).then((result) => result.rows);\n\t\t\t});\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface NodePgSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class NodePgSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgSession<NodePgQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'NodePgSession';\n\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: NodePgClient,\n\t\tdialect: PgDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: NodePgSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t}\n\n\tprepareQuery<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[][]) => T['execute'],\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): PgPreparedQuery<T> {\n\t\treturn new NodePgPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\tname,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: NodePgTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig | undefined,\n\t): Promise<T> {\n\t\tconst session = this.client instanceof Pool // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t? new NodePgSession(await this.client.connect(), this.dialect, this.schema, this.options)\n\t\t\t: this;\n\t\tconst tx = new NodePgTransaction<TFullSchema, TSchema>(this.dialect, session, this.schema);\n\t\tawait tx.execute(sql`begin${config ? sql` ${tx.getTransactionConfigSQL(config)}` : undefined}`);\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (error) {\n\t\t\tawait tx.execute(sql`rollback`);\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tif (this.client instanceof Pool) { // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t\t(session.client as PoolClient).release();\n\t\t\t}\n\t\t}\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<{ rows: [{ count: string }] }>(sql);\n\t\treturn Number(\n\t\t\tres['rows'][0]['count'],\n\t\t);\n\t}\n}\n\nexport class NodePgTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgTransaction<NodePgQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'NodePgTransaction';\n\n\toverride async transaction<T>(transaction: (tx: NodePgTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new NodePgTransaction<TFullSchema, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport interface NodePgQueryResultHKT extends PgQueryResultHKT {\n\ttype: QueryResult<Assume<this['row'], QueryResultRow>>;\n}\n"],"mappings":"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","names":["sql"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drizzle-orm",
3
- "version": "0.40.0-262a7b0",
3
+ "version": "0.40.0-bbf78ae",
4
4
  "description": "Drizzle ORM package for SQL databases",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -58,7 +58,6 @@
58
58
  "@tidbcloud/serverless": "*",
59
59
  "@types/better-sqlite3": "*",
60
60
  "@types/pg": "*",
61
- "@types/react": ">=18",
62
61
  "@types/sql.js": "*",
63
62
  "@vercel/postgres": ">=0.8.0",
64
63
  "@xata.io/client": "*",
@@ -70,7 +69,6 @@
70
69
  "mysql2": ">=2",
71
70
  "pg": ">=8",
72
71
  "postgres": ">=3",
73
- "react": ">=18",
74
72
  "sql.js": ">=1",
75
73
  "sqlite3": ">=5",
76
74
  "gel": ">=2"
@@ -148,12 +146,6 @@
148
146
  "@op-engineering/op-sqlite": {
149
147
  "optional": true
150
148
  },
151
- "react": {
152
- "optional": true
153
- },
154
- "@types/react": {
155
- "optional": true
156
- },
157
149
  "@electric-sql/pglite": {
158
150
  "optional": true
159
151
  },
@@ -181,14 +173,15 @@
181
173
  "@planetscale/database": "^1.16.0",
182
174
  "@prisma/client": "5.14.0",
183
175
  "@tidbcloud/serverless": "^0.1.1",
184
- "@types/better-sqlite3": "^7.6.4",
176
+ "@types/better-sqlite3": "^7.6.12",
185
177
  "@types/node": "^20.2.5",
186
178
  "@types/pg": "^8.10.1",
187
179
  "@types/react": "^18.2.45",
188
180
  "@types/sql.js": "^1.4.4",
181
+ "@upstash/redis": "^1.34.3",
189
182
  "@vercel/postgres": "^0.8.0",
190
183
  "@xata.io/client": "^0.29.3",
191
- "better-sqlite3": "^8.4.0",
184
+ "better-sqlite3": "^11.8.1",
192
185
  "bun-types": "^1.2.0",
193
186
  "cpy": "^10.1.0",
194
187
  "expo-sqlite": "^14.0.0",
@@ -3054,6 +3047,66 @@
3054
3047
  "types": "./aws-data-api/pg/session.d.ts",
3055
3048
  "default": "./aws-data-api/pg/session.js"
3056
3049
  },
3050
+ "./cache/core/cache": {
3051
+ "import": {
3052
+ "types": "./cache/core/cache.d.ts",
3053
+ "default": "./cache/core/cache.js"
3054
+ },
3055
+ "require": {
3056
+ "types": "./cache/core/cache.d.cts",
3057
+ "default": "./cache/core/cache.cjs"
3058
+ },
3059
+ "types": "./cache/core/cache.d.ts",
3060
+ "default": "./cache/core/cache.js"
3061
+ },
3062
+ "./cache/core": {
3063
+ "import": {
3064
+ "types": "./cache/core/index.d.ts",
3065
+ "default": "./cache/core/index.js"
3066
+ },
3067
+ "require": {
3068
+ "types": "./cache/core/index.d.cts",
3069
+ "default": "./cache/core/index.cjs"
3070
+ },
3071
+ "types": "./cache/core/index.d.ts",
3072
+ "default": "./cache/core/index.js"
3073
+ },
3074
+ "./cache/core/types": {
3075
+ "import": {
3076
+ "types": "./cache/core/types.d.ts",
3077
+ "default": "./cache/core/types.js"
3078
+ },
3079
+ "require": {
3080
+ "types": "./cache/core/types.d.cts",
3081
+ "default": "./cache/core/types.cjs"
3082
+ },
3083
+ "types": "./cache/core/types.d.ts",
3084
+ "default": "./cache/core/types.js"
3085
+ },
3086
+ "./cache/upstash/cache": {
3087
+ "import": {
3088
+ "types": "./cache/upstash/cache.d.ts",
3089
+ "default": "./cache/upstash/cache.js"
3090
+ },
3091
+ "require": {
3092
+ "types": "./cache/upstash/cache.d.cts",
3093
+ "default": "./cache/upstash/cache.cjs"
3094
+ },
3095
+ "types": "./cache/upstash/cache.d.ts",
3096
+ "default": "./cache/upstash/cache.js"
3097
+ },
3098
+ "./cache/upstash": {
3099
+ "import": {
3100
+ "types": "./cache/upstash/index.d.ts",
3101
+ "default": "./cache/upstash/index.js"
3102
+ },
3103
+ "require": {
3104
+ "types": "./cache/upstash/index.d.cts",
3105
+ "default": "./cache/upstash/index.cjs"
3106
+ },
3107
+ "types": "./cache/upstash/index.d.ts",
3108
+ "default": "./cache/upstash/index.js"
3109
+ },
3057
3110
  "./gel-core/columns/all": {
3058
3111
  "import": {
3059
3112
  "types": "./gel-core/columns/all.d.ts",
@@ -4002,138 +4055,6 @@
4002
4055
  "types": "./mysql-core/query-builders/update.d.ts",
4003
4056
  "default": "./mysql-core/query-builders/update.js"
4004
4057
  },
4005
- "./pg-core/query-builders/count": {
4006
- "import": {
4007
- "types": "./pg-core/query-builders/count.d.ts",
4008
- "default": "./pg-core/query-builders/count.js"
4009
- },
4010
- "require": {
4011
- "types": "./pg-core/query-builders/count.d.cts",
4012
- "default": "./pg-core/query-builders/count.cjs"
4013
- },
4014
- "types": "./pg-core/query-builders/count.d.ts",
4015
- "default": "./pg-core/query-builders/count.js"
4016
- },
4017
- "./pg-core/query-builders/delete": {
4018
- "import": {
4019
- "types": "./pg-core/query-builders/delete.d.ts",
4020
- "default": "./pg-core/query-builders/delete.js"
4021
- },
4022
- "require": {
4023
- "types": "./pg-core/query-builders/delete.d.cts",
4024
- "default": "./pg-core/query-builders/delete.cjs"
4025
- },
4026
- "types": "./pg-core/query-builders/delete.d.ts",
4027
- "default": "./pg-core/query-builders/delete.js"
4028
- },
4029
- "./pg-core/query-builders": {
4030
- "import": {
4031
- "types": "./pg-core/query-builders/index.d.ts",
4032
- "default": "./pg-core/query-builders/index.js"
4033
- },
4034
- "require": {
4035
- "types": "./pg-core/query-builders/index.d.cts",
4036
- "default": "./pg-core/query-builders/index.cjs"
4037
- },
4038
- "types": "./pg-core/query-builders/index.d.ts",
4039
- "default": "./pg-core/query-builders/index.js"
4040
- },
4041
- "./pg-core/query-builders/insert": {
4042
- "import": {
4043
- "types": "./pg-core/query-builders/insert.d.ts",
4044
- "default": "./pg-core/query-builders/insert.js"
4045
- },
4046
- "require": {
4047
- "types": "./pg-core/query-builders/insert.d.cts",
4048
- "default": "./pg-core/query-builders/insert.cjs"
4049
- },
4050
- "types": "./pg-core/query-builders/insert.d.ts",
4051
- "default": "./pg-core/query-builders/insert.js"
4052
- },
4053
- "./pg-core/query-builders/query-builder": {
4054
- "import": {
4055
- "types": "./pg-core/query-builders/query-builder.d.ts",
4056
- "default": "./pg-core/query-builders/query-builder.js"
4057
- },
4058
- "require": {
4059
- "types": "./pg-core/query-builders/query-builder.d.cts",
4060
- "default": "./pg-core/query-builders/query-builder.cjs"
4061
- },
4062
- "types": "./pg-core/query-builders/query-builder.d.ts",
4063
- "default": "./pg-core/query-builders/query-builder.js"
4064
- },
4065
- "./pg-core/query-builders/query": {
4066
- "import": {
4067
- "types": "./pg-core/query-builders/query.d.ts",
4068
- "default": "./pg-core/query-builders/query.js"
4069
- },
4070
- "require": {
4071
- "types": "./pg-core/query-builders/query.d.cts",
4072
- "default": "./pg-core/query-builders/query.cjs"
4073
- },
4074
- "types": "./pg-core/query-builders/query.d.ts",
4075
- "default": "./pg-core/query-builders/query.js"
4076
- },
4077
- "./pg-core/query-builders/raw": {
4078
- "import": {
4079
- "types": "./pg-core/query-builders/raw.d.ts",
4080
- "default": "./pg-core/query-builders/raw.js"
4081
- },
4082
- "require": {
4083
- "types": "./pg-core/query-builders/raw.d.cts",
4084
- "default": "./pg-core/query-builders/raw.cjs"
4085
- },
4086
- "types": "./pg-core/query-builders/raw.d.ts",
4087
- "default": "./pg-core/query-builders/raw.js"
4088
- },
4089
- "./pg-core/query-builders/refresh-materialized-view": {
4090
- "import": {
4091
- "types": "./pg-core/query-builders/refresh-materialized-view.d.ts",
4092
- "default": "./pg-core/query-builders/refresh-materialized-view.js"
4093
- },
4094
- "require": {
4095
- "types": "./pg-core/query-builders/refresh-materialized-view.d.cts",
4096
- "default": "./pg-core/query-builders/refresh-materialized-view.cjs"
4097
- },
4098
- "types": "./pg-core/query-builders/refresh-materialized-view.d.ts",
4099
- "default": "./pg-core/query-builders/refresh-materialized-view.js"
4100
- },
4101
- "./pg-core/query-builders/select": {
4102
- "import": {
4103
- "types": "./pg-core/query-builders/select.d.ts",
4104
- "default": "./pg-core/query-builders/select.js"
4105
- },
4106
- "require": {
4107
- "types": "./pg-core/query-builders/select.d.cts",
4108
- "default": "./pg-core/query-builders/select.cjs"
4109
- },
4110
- "types": "./pg-core/query-builders/select.d.ts",
4111
- "default": "./pg-core/query-builders/select.js"
4112
- },
4113
- "./pg-core/query-builders/select.types": {
4114
- "import": {
4115
- "types": "./pg-core/query-builders/select.types.d.ts",
4116
- "default": "./pg-core/query-builders/select.types.js"
4117
- },
4118
- "require": {
4119
- "types": "./pg-core/query-builders/select.types.d.cts",
4120
- "default": "./pg-core/query-builders/select.types.cjs"
4121
- },
4122
- "types": "./pg-core/query-builders/select.types.d.ts",
4123
- "default": "./pg-core/query-builders/select.types.js"
4124
- },
4125
- "./pg-core/query-builders/update": {
4126
- "import": {
4127
- "types": "./pg-core/query-builders/update.d.ts",
4128
- "default": "./pg-core/query-builders/update.js"
4129
- },
4130
- "require": {
4131
- "types": "./pg-core/query-builders/update.d.cts",
4132
- "default": "./pg-core/query-builders/update.cjs"
4133
- },
4134
- "types": "./pg-core/query-builders/update.d.ts",
4135
- "default": "./pg-core/query-builders/update.js"
4136
- },
4137
4058
  "./pg-core/columns/all": {
4138
4059
  "import": {
4139
4060
  "types": "./pg-core/columns/all.d.ts",
@@ -4530,6 +4451,138 @@
4530
4451
  "types": "./pg-core/columns/varchar.d.ts",
4531
4452
  "default": "./pg-core/columns/varchar.js"
4532
4453
  },
4454
+ "./pg-core/query-builders/count": {
4455
+ "import": {
4456
+ "types": "./pg-core/query-builders/count.d.ts",
4457
+ "default": "./pg-core/query-builders/count.js"
4458
+ },
4459
+ "require": {
4460
+ "types": "./pg-core/query-builders/count.d.cts",
4461
+ "default": "./pg-core/query-builders/count.cjs"
4462
+ },
4463
+ "types": "./pg-core/query-builders/count.d.ts",
4464
+ "default": "./pg-core/query-builders/count.js"
4465
+ },
4466
+ "./pg-core/query-builders/delete": {
4467
+ "import": {
4468
+ "types": "./pg-core/query-builders/delete.d.ts",
4469
+ "default": "./pg-core/query-builders/delete.js"
4470
+ },
4471
+ "require": {
4472
+ "types": "./pg-core/query-builders/delete.d.cts",
4473
+ "default": "./pg-core/query-builders/delete.cjs"
4474
+ },
4475
+ "types": "./pg-core/query-builders/delete.d.ts",
4476
+ "default": "./pg-core/query-builders/delete.js"
4477
+ },
4478
+ "./pg-core/query-builders": {
4479
+ "import": {
4480
+ "types": "./pg-core/query-builders/index.d.ts",
4481
+ "default": "./pg-core/query-builders/index.js"
4482
+ },
4483
+ "require": {
4484
+ "types": "./pg-core/query-builders/index.d.cts",
4485
+ "default": "./pg-core/query-builders/index.cjs"
4486
+ },
4487
+ "types": "./pg-core/query-builders/index.d.ts",
4488
+ "default": "./pg-core/query-builders/index.js"
4489
+ },
4490
+ "./pg-core/query-builders/insert": {
4491
+ "import": {
4492
+ "types": "./pg-core/query-builders/insert.d.ts",
4493
+ "default": "./pg-core/query-builders/insert.js"
4494
+ },
4495
+ "require": {
4496
+ "types": "./pg-core/query-builders/insert.d.cts",
4497
+ "default": "./pg-core/query-builders/insert.cjs"
4498
+ },
4499
+ "types": "./pg-core/query-builders/insert.d.ts",
4500
+ "default": "./pg-core/query-builders/insert.js"
4501
+ },
4502
+ "./pg-core/query-builders/query-builder": {
4503
+ "import": {
4504
+ "types": "./pg-core/query-builders/query-builder.d.ts",
4505
+ "default": "./pg-core/query-builders/query-builder.js"
4506
+ },
4507
+ "require": {
4508
+ "types": "./pg-core/query-builders/query-builder.d.cts",
4509
+ "default": "./pg-core/query-builders/query-builder.cjs"
4510
+ },
4511
+ "types": "./pg-core/query-builders/query-builder.d.ts",
4512
+ "default": "./pg-core/query-builders/query-builder.js"
4513
+ },
4514
+ "./pg-core/query-builders/query": {
4515
+ "import": {
4516
+ "types": "./pg-core/query-builders/query.d.ts",
4517
+ "default": "./pg-core/query-builders/query.js"
4518
+ },
4519
+ "require": {
4520
+ "types": "./pg-core/query-builders/query.d.cts",
4521
+ "default": "./pg-core/query-builders/query.cjs"
4522
+ },
4523
+ "types": "./pg-core/query-builders/query.d.ts",
4524
+ "default": "./pg-core/query-builders/query.js"
4525
+ },
4526
+ "./pg-core/query-builders/raw": {
4527
+ "import": {
4528
+ "types": "./pg-core/query-builders/raw.d.ts",
4529
+ "default": "./pg-core/query-builders/raw.js"
4530
+ },
4531
+ "require": {
4532
+ "types": "./pg-core/query-builders/raw.d.cts",
4533
+ "default": "./pg-core/query-builders/raw.cjs"
4534
+ },
4535
+ "types": "./pg-core/query-builders/raw.d.ts",
4536
+ "default": "./pg-core/query-builders/raw.js"
4537
+ },
4538
+ "./pg-core/query-builders/refresh-materialized-view": {
4539
+ "import": {
4540
+ "types": "./pg-core/query-builders/refresh-materialized-view.d.ts",
4541
+ "default": "./pg-core/query-builders/refresh-materialized-view.js"
4542
+ },
4543
+ "require": {
4544
+ "types": "./pg-core/query-builders/refresh-materialized-view.d.cts",
4545
+ "default": "./pg-core/query-builders/refresh-materialized-view.cjs"
4546
+ },
4547
+ "types": "./pg-core/query-builders/refresh-materialized-view.d.ts",
4548
+ "default": "./pg-core/query-builders/refresh-materialized-view.js"
4549
+ },
4550
+ "./pg-core/query-builders/select": {
4551
+ "import": {
4552
+ "types": "./pg-core/query-builders/select.d.ts",
4553
+ "default": "./pg-core/query-builders/select.js"
4554
+ },
4555
+ "require": {
4556
+ "types": "./pg-core/query-builders/select.d.cts",
4557
+ "default": "./pg-core/query-builders/select.cjs"
4558
+ },
4559
+ "types": "./pg-core/query-builders/select.d.ts",
4560
+ "default": "./pg-core/query-builders/select.js"
4561
+ },
4562
+ "./pg-core/query-builders/select.types": {
4563
+ "import": {
4564
+ "types": "./pg-core/query-builders/select.types.d.ts",
4565
+ "default": "./pg-core/query-builders/select.types.js"
4566
+ },
4567
+ "require": {
4568
+ "types": "./pg-core/query-builders/select.types.d.cts",
4569
+ "default": "./pg-core/query-builders/select.types.cjs"
4570
+ },
4571
+ "types": "./pg-core/query-builders/select.types.d.ts",
4572
+ "default": "./pg-core/query-builders/select.types.js"
4573
+ },
4574
+ "./pg-core/query-builders/update": {
4575
+ "import": {
4576
+ "types": "./pg-core/query-builders/update.d.ts",
4577
+ "default": "./pg-core/query-builders/update.js"
4578
+ },
4579
+ "require": {
4580
+ "types": "./pg-core/query-builders/update.d.cts",
4581
+ "default": "./pg-core/query-builders/update.cjs"
4582
+ },
4583
+ "types": "./pg-core/query-builders/update.d.ts",
4584
+ "default": "./pg-core/query-builders/update.js"
4585
+ },
4533
4586
  "./pg-core/utils/array": {
4534
4587
  "import": {
4535
4588
  "types": "./pg-core/utils/array.d.ts",
package/pg-core/db.cjs CHANGED
@@ -116,6 +116,7 @@ class PgDatabase {
116
116
  $count(source, filters) {
117
117
  return new import_count.PgCountBuilder({ source, filters, session: this.session });
118
118
  }
119
+ $cache;
119
120
  /**
120
121
  * Incorporates a previously defined CTE (using `$with`) into the main query.
121
122
  *