@warlock.js/cascade 4.0.93 → 4.0.95

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 (69) hide show
  1. package/cjs/contracts/database-driver.contract.d.ts +71 -0
  2. package/cjs/contracts/database-driver.contract.d.ts.map +1 -1
  3. package/cjs/data-source/data-source.d.ts +6 -4
  4. package/cjs/data-source/data-source.d.ts.map +1 -1
  5. package/cjs/data-source/data-source.js.map +1 -1
  6. package/cjs/drivers/mongodb/mongodb-driver.d.ts +36 -0
  7. package/cjs/drivers/mongodb/mongodb-driver.d.ts.map +1 -1
  8. package/cjs/drivers/mongodb/mongodb-driver.js +69 -0
  9. package/cjs/drivers/mongodb/mongodb-driver.js.map +1 -1
  10. package/cjs/drivers/postgres/postgres-driver.d.ts +41 -0
  11. package/cjs/drivers/postgres/postgres-driver.d.ts.map +1 -1
  12. package/cjs/drivers/postgres/postgres-driver.js +100 -4
  13. package/cjs/drivers/postgres/postgres-driver.js.map +1 -1
  14. package/cjs/migration/migration-runner.d.ts.map +1 -1
  15. package/cjs/migration/migration-runner.js +3 -0
  16. package/cjs/migration/migration-runner.js.map +1 -1
  17. package/cjs/model/model.d.ts +71 -13
  18. package/cjs/model/model.d.ts.map +1 -1
  19. package/cjs/model/model.js +172 -23
  20. package/cjs/model/model.js.map +1 -1
  21. package/cjs/remover/database-remover.d.ts.map +1 -1
  22. package/cjs/remover/database-remover.js +7 -2
  23. package/cjs/remover/database-remover.js.map +1 -1
  24. package/cjs/types.d.ts +244 -0
  25. package/cjs/types.d.ts.map +1 -1
  26. package/cjs/utils/connect-to-database.d.ts +42 -45
  27. package/cjs/utils/connect-to-database.d.ts.map +1 -1
  28. package/cjs/utils/connect-to-database.js.map +1 -1
  29. package/cjs/utils/define-model.d.ts +21 -16
  30. package/cjs/utils/define-model.d.ts.map +1 -1
  31. package/cjs/writer/database-writer.d.ts +1 -1
  32. package/cjs/writer/database-writer.d.ts.map +1 -1
  33. package/cjs/writer/database-writer.js +13 -9
  34. package/cjs/writer/database-writer.js.map +1 -1
  35. package/esm/contracts/database-driver.contract.d.ts +71 -0
  36. package/esm/contracts/database-driver.contract.d.ts.map +1 -1
  37. package/esm/data-source/data-source.d.ts +6 -4
  38. package/esm/data-source/data-source.d.ts.map +1 -1
  39. package/esm/data-source/data-source.js.map +1 -1
  40. package/esm/drivers/mongodb/mongodb-driver.d.ts +36 -0
  41. package/esm/drivers/mongodb/mongodb-driver.d.ts.map +1 -1
  42. package/esm/drivers/mongodb/mongodb-driver.js +69 -0
  43. package/esm/drivers/mongodb/mongodb-driver.js.map +1 -1
  44. package/esm/drivers/postgres/postgres-driver.d.ts +41 -0
  45. package/esm/drivers/postgres/postgres-driver.d.ts.map +1 -1
  46. package/esm/drivers/postgres/postgres-driver.js +100 -4
  47. package/esm/drivers/postgres/postgres-driver.js.map +1 -1
  48. package/esm/migration/migration-runner.d.ts.map +1 -1
  49. package/esm/migration/migration-runner.js +3 -0
  50. package/esm/migration/migration-runner.js.map +1 -1
  51. package/esm/model/model.d.ts +71 -13
  52. package/esm/model/model.d.ts.map +1 -1
  53. package/esm/model/model.js +172 -23
  54. package/esm/model/model.js.map +1 -1
  55. package/esm/remover/database-remover.d.ts.map +1 -1
  56. package/esm/remover/database-remover.js +7 -2
  57. package/esm/remover/database-remover.js.map +1 -1
  58. package/esm/types.d.ts +244 -0
  59. package/esm/types.d.ts.map +1 -1
  60. package/esm/utils/connect-to-database.d.ts +42 -45
  61. package/esm/utils/connect-to-database.d.ts.map +1 -1
  62. package/esm/utils/connect-to-database.js.map +1 -1
  63. package/esm/utils/define-model.d.ts +21 -16
  64. package/esm/utils/define-model.d.ts.map +1 -1
  65. package/esm/writer/database-writer.d.ts +1 -1
  66. package/esm/writer/database-writer.d.ts.map +1 -1
  67. package/esm/writer/database-writer.js +13 -9
  68. package/esm/writer/database-writer.js.map +1 -1
  69. package/package.json +4 -4
@@ -1,3 +1,4 @@
1
+ import type { ModelDefaults } from "../types";
1
2
  import { DriverBlueprintContract } from "./driver-blueprint.contract";
2
3
  import type { MigrationDriverContract } from "./migration-driver.contract";
3
4
  import type { QueryBuilderContract } from "./query-builder.contract";
@@ -79,6 +80,28 @@ export interface DriverContract {
79
80
  * Database blueprint (Information Schema)
80
81
  */
81
82
  readonly blueprint: DriverBlueprintContract;
83
+ /**
84
+ * Driver-specific model defaults.
85
+ *
86
+ * These defaults are applied to all models using this driver,
87
+ * unless overridden by database config or model static properties.
88
+ *
89
+ * Examples:
90
+ * - MongoDB: camelCase naming (createdAt, updatedAt)
91
+ * - PostgreSQL: snake_case naming (created_at, updated_at)
92
+ *
93
+ * @example
94
+ * ```typescript
95
+ * // PostgreSQL driver
96
+ * readonly modelDefaults: Partial<ModelDefaults> = {
97
+ * namingConvention: "snake_case",
98
+ * createdAtColumn: "created_at",
99
+ * updatedAtColumn: "updated_at",
100
+ * timestamps: true,
101
+ * };
102
+ * ```
103
+ */
104
+ readonly modelDefaults?: Partial<ModelDefaults>;
82
105
  /** Whether the underlying connection is currently established. */
83
106
  readonly isConnected: boolean;
84
107
  /** Establish the underlying database connection/pool. */
@@ -105,6 +128,54 @@ export interface DriverContract {
105
128
  updateMany(table: string, filter: Record<string, unknown>, update: UpdateOperations, options?: Record<string, unknown>): Promise<UpdateResult>;
106
129
  /** Replace a single document that matches the provided filter. */
107
130
  replace<T = unknown>(table: string, filter: Record<string, unknown>, document: Record<string, unknown>, options?: Record<string, unknown>): Promise<T | null>;
131
+ /** Find one and update a single document that matches the provided filter and return the updated document */
132
+ findOneAndUpdate<T = unknown>(table: string, filter: Record<string, unknown>, update: Record<string, unknown>, options?: Record<string, unknown>): Promise<T | null>;
133
+ /**
134
+ * Upsert (insert or update) a single document/row.
135
+ *
136
+ * If a document matching the filter exists, it will be updated.
137
+ * If no document matches, a new one will be inserted.
138
+ *
139
+ * @param table - Target table/collection name
140
+ * @param filter - Filter conditions to find existing document
141
+ * @param document - Document data to insert or update
142
+ * @param options - Driver-specific options (conflict columns for SQL, etc.)
143
+ * @returns The upserted document
144
+ *
145
+ * @example
146
+ * ```typescript
147
+ * // PostgreSQL: upsert on unique email
148
+ * await driver.upsert('users', { email: 'user@example.com' }, {
149
+ * email: 'user@example.com',
150
+ * name: 'John Doe',
151
+ * updatedAt: new Date()
152
+ * }, { conflictColumns: ['email'] });
153
+ *
154
+ * // MongoDB: upsert by filter
155
+ * await driver.upsert('users', { email: 'user@example.com' }, {
156
+ * email: 'user@example.com',
157
+ * name: 'John Doe'
158
+ * });
159
+ * ```
160
+ */
161
+ upsert<T = unknown>(table: string, filter: Record<string, unknown>, document: Record<string, unknown>, options?: Record<string, unknown>): Promise<T>;
162
+ /**
163
+ * Find one and delete a single document that matches the provided filter and return the deleted document.
164
+ *
165
+ * @param table - Target table/collection name
166
+ * @param filter - Filter conditions
167
+ * @param options - Optional delete options
168
+ * @returns The deleted document or null if not found
169
+ *
170
+ * @example
171
+ * ```typescript
172
+ * const deleted = await driver.findOneAndDelete('users', { id: 1 });
173
+ * if (deleted) {
174
+ * console.log('Deleted user:', deleted);
175
+ * }
176
+ * ```
177
+ */
178
+ findOneAndDelete<T = unknown>(table: string, filter: Record<string, unknown>, options?: Record<string, unknown>): Promise<T | null>;
108
179
  /** Delete a single document that matches the provided filter. */
109
180
  delete(table: string, filter?: Record<string, unknown>, options?: Record<string, unknown>): Promise<number>;
110
181
  /** Delete documents/rows matching the filter. */
@@ -1 +1 @@
1
- {"version":3,"file":"database-driver.contract.d.ts","sourceRoot":"","sources":["../../src/contracts/database-driver.contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,yCAAyC;AACzC,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,cAAc,GAAG,MAAM,CAAC;AAEhE,sDAAsD;AACtD,MAAM,MAAM,mBAAmB,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAE/D,+CAA+C;AAC/C,MAAM,WAAW,yBAAyB,CAAC,QAAQ,GAAG,OAAO;IAC3D,sEAAsE;IACtE,OAAO,EAAE,QAAQ,CAAC;IAClB,8BAA8B;IAC9B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,gCAAgC;IAChC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,+CAA+C;AAC/C,MAAM,MAAM,YAAY,CAAC,SAAS,GAAG,OAAO,IAAI;IAC9C,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,YAAY,GAAG;IACzB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,uBAAuB;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IAClC,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,uBAAuB,CAAC;IAE5C,kEAAkE;IAClE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAE9B,yDAAyD;IACzD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,qDAAqD;IACrD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAElE;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEpE,gEAAgE;IAChE,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAE5D,yDAAyD;IACzD,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzB,2DAA2D;IAC3D,UAAU,CACR,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EACpC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAE3B,iDAAiD;IACjD,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzB,sDAAsD;IACtD,UAAU,CACR,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzB,kEAAkE;IAClE,OAAO,CAAC,CAAC,GAAG,OAAO,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAErB,iEAAiE;IACjE,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB,iDAAiD;IACjD,UAAU,CACR,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB;;;;;;;;;;;;;;;;;;OAkBG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEjF,kDAAkD;IAClD,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAElE,qCAAqC;IACrC,gBAAgB,IAAI,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAEvD,kDAAkD;IAClD,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,EAAE,gBAAgB,EAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzB,kEAAkE;IAClE,WAAW,IAAI,mBAAmB,CAAC;IAEnC,yDAAyD;IACzD,eAAe,IAAI,uBAAuB,CAAC;IAM3C;;;;;;;;;;;;;;;;;OAiBG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhF;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5E;;;;;;;;;;;;;OAaG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE/C;;;;OAIG;IACH,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAMnC;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvC;;;;;;;;;;;OAWG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/C;;;;;;;;;;;;OAYG;IACH,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,sDAAsD;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC"}
1
+ {"version":3,"file":"database-driver.contract.d.ts","sourceRoot":"","sources":["../../src/contracts/database-driver.contract.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import type { DriverContract, IdGeneratorContract } from "../contracts";
2
- import type { DeleteStrategy } from "../types";
3
- import type { ModelDefaultConfig } from "../utils/connect-to-database";
2
+ import type { DeleteStrategy, ModelDefaults } from "../types";
4
3
  /**
5
4
  * Configuration options used when registering a data source.
6
5
  */
@@ -36,9 +35,12 @@ export type DataSourceOptions = {
36
35
  /**
37
36
  * Default model configuration for all models using this data source.
38
37
  *
38
+ * These defaults override driver defaults but are overridden by
39
+ * individual model static properties.
40
+ *
39
41
  * @default undefined
40
42
  */
41
- modelDefaults?: ModelDefaultConfig;
43
+ modelDefaults?: Partial<ModelDefaults>;
42
44
  };
43
45
  /**
44
46
  * Wrapper that couples a driver with its metadata.
@@ -78,7 +80,7 @@ export declare class DataSource {
78
80
  /** Default trash table/collection name for "trash" delete strategy. */
79
81
  readonly defaultTrashTable?: string;
80
82
  /** Default model configuration for all models using this data source. */
81
- readonly modelDefaults?: ModelDefaultConfig;
83
+ readonly modelDefaults?: Partial<ModelDefaults>;
82
84
  /**
83
85
  * Create a new data source.
84
86
  *
@@ -1 +1 @@
1
- {"version":3,"file":"data-source.d.ts","sourceRoot":"","sources":["../../src/data-source/data-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEvE;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,MAAM,EAAE,cAAc,CAAC;IACvB,qEAAqE;IACrE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;;;OASG;IACH,qBAAqB,CAAC,EAAE,cAAc,CAAC;IAEvC;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;OAIG;IACH,aAAa,CAAC,EAAE,kBAAkB,CAAC;CACpC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,UAAU;IACrB,gDAAgD;IAChD,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B,6CAA6C;IAC7C,SAAgB,MAAM,EAAE,cAAc,CAAC;IAEvC,+CAA+C;IAC/C,SAAgB,SAAS,EAAE,OAAO,CAAC;IAEnC,iEAAiE;IACjE,SAAgB,qBAAqB,CAAC,EAAE,cAAc,CAAC;IAEvD,uEAAuE;IACvE,SAAgB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3C,yEAAyE;IACzE,SAAgB,aAAa,CAAC,EAAE,kBAAkB,CAAC;IAEnD;;;;OAIG;gBACgB,OAAO,EAAE,iBAAiB;IAS7C;;;;;;;;;;;;;;;OAeG;IACH,IAAW,WAAW,IAAI,mBAAmB,GAAG,SAAS,CAOxD;CACF"}
1
+ {"version":3,"file":"data-source.d.ts","sourceRoot":"","sources":["../../src/data-source/data-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,MAAM,EAAE,cAAc,CAAC;IACvB,qEAAqE;IACrE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;;;OASG;IACH,qBAAqB,CAAC,EAAE,cAAc,CAAC;IAEvC;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CACxC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,UAAU;IACrB,gDAAgD;IAChD,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B,6CAA6C;IAC7C,SAAgB,MAAM,EAAE,cAAc,CAAC;IAEvC,+CAA+C;IAC/C,SAAgB,SAAS,EAAE,OAAO,CAAC;IAEnC,iEAAiE;IACjE,SAAgB,qBAAqB,CAAC,EAAE,cAAc,CAAC;IAEvD,uEAAuE;IACvE,SAAgB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3C,yEAAyE;IACzE,SAAgB,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAEvD;;;;OAIG;gBACgB,OAAO,EAAE,iBAAiB;IAS7C;;;;;;;;;;;;;;;OAeG;IACH,IAAW,WAAW,IAAI,mBAAmB,GAAG,SAAS,CAOxD;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"data-source.js","sources":["../../src/data-source/data-source.ts"],"sourcesContent":[null],"names":[],"mappings":"aA8CA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBG;MACU,UAAU,CAAA;;AAEL,IAAA,IAAI,CAAS;;AAGb,IAAA,MAAM,CAAiB;;AAGvB,IAAA,SAAS,CAAU;;AAGnB,IAAA,qBAAqB,CAAkB;;AAGvC,IAAA,iBAAiB,CAAU;;AAG3B,IAAA,aAAa,CAAsB;AAEnD;;;;AAIG;AACH,IAAA,WAAA,CAAmB,OAA0B,EAAA;AAC3C,QAAA,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;AAC3D,QAAA,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;AACnD,QAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;KAC5C;AAED;;;;;;;;;;;;;;;AAeG;AACH,IAAA,IAAW,WAAW,GAAA;;AAEpB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAa,CAAC;AAClC,QAAA,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,UAAU,EAAE;AAC/C,YAAA,OAAO,MAAM,CAAC,cAAc,EAAE,CAAC;AAChC,SAAA;AACD,QAAA,OAAO,SAAS,CAAC;KAClB;AACF"}
1
+ {"version":3,"file":"data-source.js","sources":["../../src/data-source/data-source.ts"],"sourcesContent":[null],"names":[],"mappings":"aAgDA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBG;MACU,UAAU,CAAA;;AAEL,IAAA,IAAI,CAAS;;AAGb,IAAA,MAAM,CAAiB;;AAGvB,IAAA,SAAS,CAAU;;AAGnB,IAAA,qBAAqB,CAAkB;;AAGvC,IAAA,iBAAiB,CAAU;;AAG3B,IAAA,aAAa,CAA0B;AAEvD;;;;AAIG;AACH,IAAA,WAAA,CAAmB,OAA0B,EAAA;AAC3C,QAAA,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;AAC3D,QAAA,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;AACnD,QAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;KAC5C;AAED;;;;;;;;;;;;;;;AAeG;AACH,IAAA,IAAW,WAAW,GAAA;;AAEpB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAa,CAAC;AAClC,QAAA,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,UAAU,EAAE;AAC/C,YAAA,OAAO,MAAM,CAAC,cAAc,EAAE,CAAC;AAChC,SAAA;AACD,QAAA,OAAO,SAAS,CAAC;KAClB;AACF"}
@@ -1,5 +1,6 @@
1
1
  import type { ClientSession, Db, MongoClient, MongoClientOptions } from "mongodb";
2
2
  import type { DriverBlueprintContract, DriverContract, DriverEvent, DriverEventListener, DriverTransactionContract, IdGeneratorContract, InsertResult, MigrationDriverContract, QueryBuilderContract, SyncAdapterContract, UpdateResult } from "../../contracts";
3
+ import type { ModelDefaults } from "../../types";
3
4
  import type { MongoDriverOptions } from "./types";
4
5
  /**
5
6
  * MongoDB driver implementation that fulfils the Cascade driver contract.
@@ -24,6 +25,16 @@ export declare class MongoDbDriver implements DriverContract {
24
25
  * The name of this driver.
25
26
  */
26
27
  readonly name = "mongodb";
28
+ /**
29
+ * MongoDB driver model defaults.
30
+ *
31
+ * MongoDB follows NoSQL conventions:
32
+ * - camelCase naming for fields (createdAt, updatedAt, deletedAt)
33
+ * - Manual ID generation (auto-increment id field separate from _id)
34
+ * - Timestamps enabled by default
35
+ * - Trash delete strategy with per-collection trash tables
36
+ */
37
+ readonly modelDefaults: Partial<ModelDefaults>;
27
38
  /**
28
39
  * Create a new MongoDB driver using the supplied connection options.
29
40
  *
@@ -102,6 +113,31 @@ export declare class MongoDbDriver implements DriverContract {
102
113
  * Replace a single document that matches the provided filter.
103
114
  */
104
115
  replace<T = unknown>(table: string, filter: Record<string, unknown>, document: Record<string, unknown>, options?: Record<string, unknown>): Promise<T | null>;
116
+ /**
117
+ * Find one and update a single document that matches the provided filter and return the updated document
118
+ */
119
+ findOneAndUpdate<T = unknown>(table: string, filter: Record<string, unknown>, update: Record<string, unknown>, options?: Record<string, unknown>): Promise<T | null>;
120
+ /**
121
+ * Upsert (insert or update) a single document.
122
+ *
123
+ * Uses MongoDB's findOneAndUpdate with upsert option.
124
+ *
125
+ * @param table - Target collection name
126
+ * @param filter - Filter conditions to find existing document
127
+ * @param document - Document data to insert or update
128
+ * @param options - Optional upsert options
129
+ * @returns The upserted document
130
+ */
131
+ upsert<T = unknown>(table: string, filter: Record<string, unknown>, document: Record<string, unknown>, options?: Record<string, unknown>): Promise<T>;
132
+ /**
133
+ * Find one and delete a single document that matches the provided filter and return the deleted document.
134
+ *
135
+ * @param table - Target collection name
136
+ * @param filter - Filter conditions
137
+ * @param options - Optional delete options
138
+ * @returns The deleted document or null if not found
139
+ */
140
+ findOneAndDelete<T = unknown>(table: string, filter: Record<string, unknown>, options?: Record<string, unknown>): Promise<T | null>;
105
141
  /**
106
142
  * Update multiple documents that match the provided filter.
107
143
  */
@@ -1 +1 @@
1
- {"version":3,"file":"mongodb-driver.d.ts","sourceRoot":"","sources":["../../../src/drivers/mongodb/mongodb-driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mongodb-driver.d.ts","sourceRoot":"","sources":["../../../src/drivers/mongodb/mongodb-driver.ts"],"names":[],"mappings":"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"}
@@ -79,6 +79,26 @@ class MongoDbDriver {
79
79
  * The name of this driver.
80
80
  */
81
81
  name = "mongodb";
82
+ /**
83
+ * MongoDB driver model defaults.
84
+ *
85
+ * MongoDB follows NoSQL conventions:
86
+ * - camelCase naming for fields (createdAt, updatedAt, deletedAt)
87
+ * - Manual ID generation (auto-increment id field separate from _id)
88
+ * - Timestamps enabled by default
89
+ * - Trash delete strategy with per-collection trash tables
90
+ */
91
+ modelDefaults = {
92
+ namingConvention: "camelCase",
93
+ createdAtColumn: "createdAt",
94
+ updatedAtColumn: "updatedAt",
95
+ deletedAtColumn: "deletedAt",
96
+ timestamps: true,
97
+ autoGenerateId: true,
98
+ strictMode: "strip",
99
+ deleteStrategy: "trash",
100
+ trashTable: (table) => `${table}Trash`, // Per-collection trash (usersTrash, productsTrash)
101
+ };
82
102
  /**
83
103
  * Create a new MongoDB driver using the supplied connection options.
84
104
  *
@@ -247,6 +267,55 @@ class MongoDbDriver {
247
267
  const result = await collection.findOneAndReplace(filter, document);
248
268
  return result?.value;
249
269
  }
270
+ /**
271
+ * Find one and update a single document that matches the provided filter and return the updated document
272
+ */
273
+ async findOneAndUpdate(table, filter, update, options) {
274
+ const collection = this.getDatabaseInstance().collection(table);
275
+ const mongoOptions = this.withSession(options);
276
+ const result = await collection.findOneAndUpdate(filter, update, {
277
+ returnDocument: "after",
278
+ ...mongoOptions,
279
+ });
280
+ return result;
281
+ }
282
+ /**
283
+ * Upsert (insert or update) a single document.
284
+ *
285
+ * Uses MongoDB's findOneAndUpdate with upsert option.
286
+ *
287
+ * @param table - Target collection name
288
+ * @param filter - Filter conditions to find existing document
289
+ * @param document - Document data to insert or update
290
+ * @param options - Optional upsert options
291
+ * @returns The upserted document
292
+ */
293
+ async upsert(table, filter, document, options) {
294
+ const collection = this.getDatabaseInstance().collection(table);
295
+ const mongoOptions = this.withSession(options);
296
+ // Use $set to update all fields from document
297
+ const update = { $set: document };
298
+ const result = await collection.findOneAndUpdate(filter, update, {
299
+ upsert: true,
300
+ returnDocument: "after",
301
+ ...mongoOptions,
302
+ });
303
+ return result;
304
+ }
305
+ /**
306
+ * Find one and delete a single document that matches the provided filter and return the deleted document.
307
+ *
308
+ * @param table - Target collection name
309
+ * @param filter - Filter conditions
310
+ * @param options - Optional delete options
311
+ * @returns The deleted document or null if not found
312
+ */
313
+ async findOneAndDelete(table, filter, options) {
314
+ const collection = this.getDatabaseInstance().collection(table);
315
+ const mongoOptions = this.withSession(options);
316
+ const result = await collection.findOneAndDelete(filter, mongoOptions || {});
317
+ return result;
318
+ }
250
319
  /**
251
320
  * Update multiple documents that match the provided filter.
252
321
  */
@@ -1 +1 @@
1
- {"version":3,"file":"mongodb-driver.js","sources":["../../../src/drivers/mongodb/mongodb-driver.ts"],"sourcesContent":[null],"names":["EventEmitter","MongoDBBlueprint","MongoIdGenerator","log","colors","MongoQueryBuilder","dataSourceRegistry","databaseTransactionContext","MongoSyncAdapter","MongoMigrationDriver"],"mappings":"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"}
1
+ {"version":3,"file":"mongodb-driver.js","sources":["../../../src/drivers/mongodb/mongodb-driver.ts"],"sourcesContent":[null],"names":["EventEmitter","MongoDBBlueprint","MongoIdGenerator","log","colors","MongoQueryBuilder","dataSourceRegistry","databaseTransactionContext","MongoSyncAdapter","MongoMigrationDriver"],"mappings":"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"}
@@ -14,6 +14,7 @@ import type { DriverBlueprintContract } from "../../contracts/driver-blueprint.c
14
14
  import type { MigrationDriverContract } from "../../contracts/migration-driver.contract";
15
15
  import type { QueryBuilderContract } from "../../contracts/query-builder.contract";
16
16
  import type { SyncAdapterContract } from "../../contracts/sync-adapter.contract";
17
+ import type { ModelDefaults } from "../../types";
17
18
  import { PostgresDialect } from "./postgres-dialect";
18
19
  import type { PostgresPoolConfig, PostgresQueryResult, PostgresTransactionOptions } from "./types";
19
20
  /**
@@ -60,6 +61,16 @@ export declare class PostgresDriver implements DriverContract {
60
61
  * SQL dialect for PostgreSQL-specific syntax.
61
62
  */
62
63
  readonly dialect: PostgresDialect;
64
+ /**
65
+ * PostgreSQL driver model defaults.
66
+ *
67
+ * PostgreSQL follows SQL conventions:
68
+ * - snake_case naming for columns (created_at, updated_at, deleted_at)
69
+ * - Native AUTO_INCREMENT for IDs (no manual generation)
70
+ * - Timestamps enabled by default
71
+ * - Permanent delete strategy (hard deletes)
72
+ */
73
+ readonly modelDefaults: Partial<ModelDefaults>;
63
74
  /**
64
75
  * Connection pool instance.
65
76
  */
@@ -176,6 +187,15 @@ export declare class PostgresDriver implements DriverContract {
176
187
  * @returns Update result with modified count
177
188
  */
178
189
  update(table: string, filter: Record<string, unknown>, update: UpdateOperations, _options?: Record<string, unknown>): Promise<UpdateResult>;
190
+ /**
191
+ * Find one and update a single row matching the filter and return the updated row
192
+ * @param table - Target table name
193
+ * @param filter - Filter conditions
194
+ * @param update - Update operations ($set, $unset, $inc)
195
+ * @param options - Optional update options
196
+ * @returns The updated row or null
197
+ */
198
+ findOneAndUpdate<T = unknown>(table: string, filter: Record<string, unknown>, update: UpdateOperations, _options?: Record<string, unknown>): Promise<T | null>;
179
199
  /**
180
200
  * Update multiple rows matching the filter.
181
201
  *
@@ -198,6 +218,27 @@ export declare class PostgresDriver implements DriverContract {
198
218
  * @returns The replaced document or null
199
219
  */
200
220
  replace<T = unknown>(table: string, filter: Record<string, unknown>, document: Record<string, unknown>, _options?: Record<string, unknown>): Promise<T | null>;
221
+ /**
222
+ * Upsert (insert or update) a single row.
223
+ *
224
+ * Uses PostgreSQL's INSERT ... ON CONFLICT ... DO UPDATE syntax.
225
+ *
226
+ * @param table - Target table name
227
+ * @param filter - Filter conditions to find existing row (used for conflict detection)
228
+ * @param document - Document data to insert or update
229
+ * @param options - Upsert options (conflictColumns for conflict target)
230
+ * @returns The upserted row
231
+ */
232
+ upsert<T = unknown>(table: string, filter: Record<string, unknown>, document: Record<string, unknown>, options?: Record<string, unknown>): Promise<T>;
233
+ /**
234
+ * Find one and delete a single row matching the filter and return the deleted row.
235
+ *
236
+ * @param table - Target table name
237
+ * @param filter - Filter conditions
238
+ * @param options - Optional delete options
239
+ * @returns The deleted row or null
240
+ */
241
+ findOneAndDelete<T = unknown>(table: string, filter: Record<string, unknown>, _options?: Record<string, unknown>): Promise<T | null>;
201
242
  /**
202
243
  * Delete a single row matching the filter.
203
244
  *
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-driver.d.ts","sourceRoot":"","sources":["../../../src/drivers/postgres/postgres-driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres-driver.d.ts","sourceRoot":"","sources":["../../../src/drivers/postgres/postgres-driver.ts"],"names":[],"mappings":"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"}
@@ -70,6 +70,25 @@ class PostgresDriver {
70
70
  * SQL dialect for PostgreSQL-specific syntax.
71
71
  */
72
72
  dialect = new postgresDialect.PostgresDialect();
73
+ /**
74
+ * PostgreSQL driver model defaults.
75
+ *
76
+ * PostgreSQL follows SQL conventions:
77
+ * - snake_case naming for columns (created_at, updated_at, deleted_at)
78
+ * - Native AUTO_INCREMENT for IDs (no manual generation)
79
+ * - Timestamps enabled by default
80
+ * - Permanent delete strategy (hard deletes)
81
+ */
82
+ modelDefaults = {
83
+ namingConvention: "snake_case",
84
+ createdAtColumn: "created_at",
85
+ updatedAtColumn: "updated_at",
86
+ deletedAtColumn: "deleted_at",
87
+ timestamps: true,
88
+ autoGenerateId: false,
89
+ strictMode: "strip",
90
+ deleteStrategy: "permanent",
91
+ };
73
92
  /**
74
93
  * Connection pool instance.
75
94
  */
@@ -270,7 +289,7 @@ class PostgresDriver {
270
289
  const sql = `INSERT INTO ${quotedTable} (${quotedColumns}) VALUES (${placeholders}) RETURNING *`;
271
290
  const result = await this.query(sql, values);
272
291
  return {
273
- document: this.deserialize(result.rows[0]),
292
+ document: result.rows[0],
274
293
  };
275
294
  }
276
295
  /**
@@ -316,9 +335,7 @@ class PostgresDriver {
316
335
  }
317
336
  const sql = `INSERT INTO ${quotedTable} (${quotedColumns}) VALUES ${valueSets.join(", ")} RETURNING *`;
318
337
  const result = await this.query(sql, params);
319
- return result.rows.map((row) => ({
320
- document: this.deserialize(row),
321
- }));
338
+ return result.rows;
322
339
  }
323
340
  /**
324
341
  * Update a single row matching the filter.
@@ -336,6 +353,21 @@ class PostgresDriver {
336
353
  modifiedCount: result.rowCount ?? 0,
337
354
  };
338
355
  }
356
+ /**
357
+ * Find one and update a single row matching the filter and return the updated row
358
+ * @param table - Target table name
359
+ * @param filter - Filter conditions
360
+ * @param update - Update operations ($set, $unset, $inc)
361
+ * @param options - Optional update options
362
+ * @returns The updated row or null
363
+ */
364
+ async findOneAndUpdate(table, filter, update, _options) {
365
+ const { sql, params } = this.buildUpdateQuery(table, filter, update, 1);
366
+ // Add RETURNING * to get the updated row back
367
+ const sqlWithReturning = `${sql} RETURNING *`;
368
+ const result = await this.query(sqlWithReturning, params);
369
+ return result.rows[0] ?? null;
370
+ }
339
371
  /**
340
372
  * Update multiple rows matching the filter.
341
373
  *
@@ -377,6 +409,70 @@ class PostgresDriver {
377
409
  const result = await this.query(sql, params);
378
410
  return result.rows[0] ?? null;
379
411
  }
412
+ /**
413
+ * Upsert (insert or update) a single row.
414
+ *
415
+ * Uses PostgreSQL's INSERT ... ON CONFLICT ... DO UPDATE syntax.
416
+ *
417
+ * @param table - Target table name
418
+ * @param filter - Filter conditions to find existing row (used for conflict detection)
419
+ * @param document - Document data to insert or update
420
+ * @param options - Upsert options (conflictColumns for conflict target)
421
+ * @returns The upserted row
422
+ */
423
+ async upsert(table, filter, document, options) {
424
+ const serialized = this.serialize(document);
425
+ const columns = Object.keys(serialized);
426
+ const values = Object.values(serialized);
427
+ if (columns.length === 0) {
428
+ throw new Error("Cannot upsert empty document");
429
+ }
430
+ const quotedTable = this.dialect.quoteIdentifier(table);
431
+ const quotedColumns = columns.map((c) => this.dialect.quoteIdentifier(c)).join(", ");
432
+ const placeholders = columns.map((_, i) => this.dialect.placeholder(i + 1)).join(", ");
433
+ // Determine conflict columns from options or filter
434
+ const conflictColumns = options?.conflictColumns ?? Object.keys(filter);
435
+ if (conflictColumns.length === 0) {
436
+ throw new Error("Upsert requires conflictColumns option or filter with columns");
437
+ }
438
+ const quotedConflictColumns = conflictColumns
439
+ .map((c) => this.dialect.quoteIdentifier(c))
440
+ .join(", ");
441
+ // Build UPDATE clause for ON CONFLICT
442
+ // Update all columns except the conflict columns (they stay the same)
443
+ const updateColumns = columns.filter((col) => !conflictColumns.includes(col));
444
+ const setClauses = updateColumns
445
+ .map((col, i) => {
446
+ const valueIndex = columns.indexOf(col) + 1;
447
+ return `${this.dialect.quoteIdentifier(col)} = ${this.dialect.placeholder(valueIndex)}`;
448
+ })
449
+ .join(", ");
450
+ // If there are no columns to update (all columns are conflict columns), use EXCLUDED
451
+ const updateClause = setClauses.length > 0
452
+ ? setClauses
453
+ : columns
454
+ .map((col) => `${this.dialect.quoteIdentifier(col)} = EXCLUDED.${this.dialect.quoteIdentifier(col)}`)
455
+ .join(", ");
456
+ const sql = `INSERT INTO ${quotedTable} (${quotedColumns}) VALUES (${placeholders}) ON CONFLICT (${quotedConflictColumns}) DO UPDATE SET ${updateClause} RETURNING *`;
457
+ const result = await this.query(sql, values);
458
+ return result.rows[0];
459
+ }
460
+ /**
461
+ * Find one and delete a single row matching the filter and return the deleted row.
462
+ *
463
+ * @param table - Target table name
464
+ * @param filter - Filter conditions
465
+ * @param options - Optional delete options
466
+ * @returns The deleted row or null
467
+ */
468
+ async findOneAndDelete(table, filter, _options) {
469
+ const quotedTable = this.dialect.quoteIdentifier(table);
470
+ const { whereClause, whereParams } = this.buildWhereClause(filter, 1);
471
+ // Use ctid for single row deletion with RETURNING
472
+ const sql = `DELETE FROM ${quotedTable} WHERE ctid IN (SELECT ctid FROM ${quotedTable} ${whereClause} LIMIT 1) RETURNING *`;
473
+ const result = await this.query(sql, whereParams);
474
+ return result.rows[0] ? result.rows[0] : null;
475
+ }
380
476
  /**
381
477
  * Delete a single row matching the filter.
382
478
  *