@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
@@ -783,12 +783,31 @@ class Model {
783
783
  dataSource = dataSourceRegistry.dataSourceRegistry.get();
784
784
  }
785
785
  // Apply model defaults from data source (only once per model class)
786
- if (!this.hasOwnProperty("_defaultsApplied") && dataSource.modelDefaults) {
787
- this.applyModelDefaults(dataSource.modelDefaults);
786
+ if (!this.hasOwnProperty("_defaultsApplied")) {
787
+ // Merge defaults hierarchy: driver defaults < dataSource modelDefaults
788
+ const driverDefaults = dataSource.driver.modelDefaults || {};
789
+ const dataSourceDefaults = dataSource.modelDefaults || {};
790
+ // Merge with dataSource modelDefaults taking priority over driver defaults
791
+ const mergedDefaults = {
792
+ ...driverDefaults,
793
+ ...dataSourceDefaults,
794
+ };
795
+ // Apply merged defaults to model
796
+ if (Object.keys(mergedDefaults).length > 0) {
797
+ this.applyModelDefaults(mergedDefaults);
798
+ }
788
799
  this._defaultsApplied = true;
789
800
  }
790
801
  return dataSource;
791
802
  }
803
+ /**
804
+ * Generate next id and set it to current model's id
805
+ */
806
+ async generateNextId() {
807
+ const writer = new databaseWriter.DatabaseWriter(this);
808
+ await writer.generateNextId();
809
+ return this.id;
810
+ }
792
811
  /**
793
812
  * Apply model defaults from data source configuration.
794
813
  *
@@ -796,11 +815,22 @@ class Model {
796
815
  * a model accesses its data source. Defaults are only applied if
797
816
  * the model doesn't already have its own value set.
798
817
  *
818
+ * The hierarchy is:
819
+ * 1. Model static property (highest priority - skipped here)
820
+ * 2. Database config modelDefaults (passed here)
821
+ * 3. Driver modelDefaults (merged before passing here)
822
+ * 4. Framework defaults (fallback values in the code)
823
+ *
799
824
  * @param defaults - Model default configuration from data source
800
825
  */
801
826
  static applyModelDefaults(defaults) {
802
827
  // Only apply defaults if model doesn't have its own value
803
- // Note: autoGenerateId is not applied here as it's a driver-level setting
828
+ // ============================================================================
829
+ // ID Generation
830
+ // ============================================================================
831
+ if (defaults.autoGenerateId !== undefined && this.autoGenerateId === undefined) {
832
+ this.autoGenerateId = defaults.autoGenerateId;
833
+ }
804
834
  if (defaults.initialId !== undefined && this.initialId === undefined) {
805
835
  this.initialId = defaults.initialId;
806
836
  }
@@ -813,9 +843,36 @@ class Model {
813
843
  if (defaults.randomIncrement !== undefined && this.randomIncrement === undefined) {
814
844
  this.randomIncrement = defaults.randomIncrement;
815
845
  }
846
+ // ============================================================================
847
+ // Timestamps
848
+ // ============================================================================
849
+ if (defaults.createdAtColumn !== undefined && this.createdAtColumn === undefined) {
850
+ this.createdAtColumn = defaults.createdAtColumn;
851
+ }
852
+ if (defaults.updatedAtColumn !== undefined && this.updatedAtColumn === undefined) {
853
+ this.updatedAtColumn = defaults.updatedAtColumn;
854
+ }
855
+ // ============================================================================
856
+ // Deletion
857
+ // ============================================================================
816
858
  if (defaults.deleteStrategy !== undefined && this.deleteStrategy === undefined) {
817
859
  this.deleteStrategy = defaults.deleteStrategy;
818
860
  }
861
+ if (defaults.deletedAtColumn !== undefined && this.deletedAtColumn === undefined) {
862
+ this.deletedAtColumn = defaults.deletedAtColumn;
863
+ }
864
+ if (defaults.trashTable !== undefined && this.trashTable === undefined) {
865
+ // Handle function-based trash table
866
+ if (typeof defaults.trashTable === "function") {
867
+ this.trashTable = defaults.trashTable(this.table);
868
+ }
869
+ else {
870
+ this.trashTable = defaults.trashTable;
871
+ }
872
+ }
873
+ // ============================================================================
874
+ // Validation
875
+ // ============================================================================
819
876
  if (defaults.strictMode !== undefined && this.strictMode === undefined) {
820
877
  this.strictMode = defaults.strictMode;
821
878
  }
@@ -1105,12 +1162,28 @@ class Model {
1105
1162
  }
1106
1163
  /**
1107
1164
  * Perform atomic operation
1165
+ * Example
1166
+ *
1167
+ * ```typescript
1168
+ * const user = await User.atomic({id: 1}, {$inc: {age: 1}})
1169
+ * Returns user model with updated age
1108
1170
  */
1109
1171
  static async atomic(filter, operations) {
1110
1172
  const dataSource = this.getDataSource();
1111
1173
  const result = await dataSource.driver.atomic(this.table, filter, operations);
1112
1174
  return result.modifiedCount;
1113
1175
  }
1176
+ /**
1177
+ * Find one and update a single record that matches the provided filter and return the updated record
1178
+ * @param filter - Filter conditions
1179
+ * @param update - Update operations ($set, $unset, $inc)
1180
+ * @returns The updated record or null
1181
+ */
1182
+ static async findOneAndUpdate(filter, update) {
1183
+ const dataSource = this.getDataSource();
1184
+ const result = await dataSource.driver.findOneAndUpdate(this.table, filter, update);
1185
+ return result ? new this(result) : null;
1186
+ }
1114
1187
  /**
1115
1188
  * Destroy (delete) the current model instance from the database.
1116
1189
  *
@@ -1391,10 +1464,10 @@ class Model {
1391
1464
  return await this.create({ ...filter, ...data });
1392
1465
  }
1393
1466
  /**
1394
- * Update a record or create it if not found (upsert).
1467
+ * Upsert (insert or update) a record atomically.
1395
1468
  *
1396
- * DOES update existing records with new data.
1397
- * Useful when you want to ensure a record exists with the latest data.
1469
+ * Uses the driver's native upsert operation for atomic insert-or-update.
1470
+ * More efficient than updateOrCreate as it's a single database operation.
1398
1471
  *
1399
1472
  * Includes full Model features:
1400
1473
  * - ID generation (if creating)
@@ -1402,37 +1475,113 @@ class Model {
1402
1475
  * - updatedAt timestamp (always)
1403
1476
  * - Validation & casting
1404
1477
  * - Lifecycle events
1405
- * - Sync operations
1406
1478
  *
1407
- * @param filter - Conditions to find by
1479
+ * @param filter - Conditions to find by (used for conflict detection)
1408
1480
  * @param data - Data to update or create (merged with filter)
1409
- * @returns Promise resolving to updated or created model
1481
+ * @param options - Upsert options (conflictColumns for PostgreSQL, etc.)
1482
+ * @returns Promise resolving to upserted model
1410
1483
  *
1411
1484
  * @example
1412
1485
  * ```typescript
1413
- * // Sync user from external API (update if exists, create if not)
1414
- * const user = await User.updateOrCreate(
1486
+ * // PostgreSQL: upsert on unique email
1487
+ * const user = await User.upsert(
1488
+ * { email: "user@example.com" },
1489
+ * {
1490
+ * email: "user@example.com",
1491
+ * name: "John Updated",
1492
+ * lastSyncedAt: new Date()
1493
+ * },
1494
+ * { conflictColumns: ["email"] }
1495
+ * );
1496
+ *
1497
+ * // MongoDB: upsert by filter
1498
+ * const user = await User.upsert(
1415
1499
  * { externalId: "ext-123" },
1416
1500
  * {
1417
1501
  * externalId: "ext-123",
1418
1502
  * name: "John Updated",
1419
- * email: "john.new@example.com",
1420
- * lastSyncedAt: new Date()
1503
+ * email: "john.new@example.com"
1421
1504
  * }
1422
1505
  * );
1423
- * // User always has latest data from API
1424
1506
  * ```
1425
1507
  */
1426
- static async updateOrCreate(filter, data) {
1427
- // Try to find existing record
1428
- const existing = await this.first(filter);
1429
- if (existing) {
1430
- // Update existing record
1431
- await existing.save({ merge: data });
1432
- return existing;
1508
+ static async upsert(filter, data, options) {
1509
+ const dataSource = this.getDataSource();
1510
+ const mergedData = { ...filter, ...data };
1511
+ // Create a temporary model instance for validation and data preparation
1512
+ const tempModel = new this(mergedData);
1513
+ tempModel.isNew = true;
1514
+ // Emit saving event for validation context
1515
+ await tempModel.emitEvent("saving", {
1516
+ isInsert: true,
1517
+ options,
1518
+ mode: "upsert",
1519
+ });
1520
+ // Add timestamps
1521
+ const createdAtColumn = this.createdAtColumn;
1522
+ const updatedAtColumn = this.updatedAtColumn;
1523
+ if (createdAtColumn !== false && createdAtColumn !== undefined) {
1524
+ // Only set createdAt if not already set (for new records)
1525
+ const createdAtKey = createdAtColumn;
1526
+ if (!mergedData[createdAtKey]) {
1527
+ mergedData[createdAtKey] = new Date();
1528
+ }
1433
1529
  }
1434
- // Create new record with merged data
1435
- return await this.create({ ...filter, ...data });
1530
+ if (updatedAtColumn !== false && updatedAtColumn !== undefined) {
1531
+ const updatedAtKey = updatedAtColumn;
1532
+ mergedData[updatedAtKey] = new Date();
1533
+ }
1534
+ // Emit saving event (using existing event name)
1535
+ await tempModel.emitEvent("saving", { filter, data: mergedData, options, mode: "upsert" });
1536
+ // Perform upsert via driver
1537
+ const result = await dataSource.driver.upsert(this.table, filter, mergedData, options);
1538
+ // Create model instance from result
1539
+ const model = new this(result);
1540
+ model.isNew = false;
1541
+ model.dirtyTracker.reset();
1542
+ // Emit saved event (using existing event name)
1543
+ await model.emitEvent("saved", { filter, data: result, options, mode: "upsert" });
1544
+ return model;
1545
+ }
1546
+ /**
1547
+ * Update a record or create it if not found (upsert).
1548
+ *
1549
+ * @deprecated Use `upsert()` instead for better performance and atomicity.
1550
+ * This method is kept for backward compatibility but uses upsert internally.
1551
+ *
1552
+ * @param filter - Conditions to find by
1553
+ * @param data - Data to update or create (merged with filter)
1554
+ * @returns Promise resolving to updated or created model
1555
+ */
1556
+ static async updateOrCreate(filter, data, options) {
1557
+ // Use upsert internally for better performance
1558
+ return await this.upsert(filter, data, options);
1559
+ }
1560
+ /**
1561
+ * Find one and delete a record that matches the filter and return the deleted record.
1562
+ *
1563
+ * @param filter - Filter conditions
1564
+ * @param options - Optional delete options
1565
+ * @returns The deleted model instance or null if not found
1566
+ *
1567
+ * @example
1568
+ * ```typescript
1569
+ * const deleted = await User.findOneAndDelete({ id: 1 });
1570
+ * if (deleted) {
1571
+ * console.log('Deleted user:', deleted.get('name'));
1572
+ * }
1573
+ * ```
1574
+ */
1575
+ static async findOneAndDelete(filter, options) {
1576
+ const dataSource = this.getDataSource();
1577
+ const result = await dataSource.driver.findOneAndDelete(this.table, filter, options);
1578
+ if (!result) {
1579
+ return null;
1580
+ }
1581
+ const model = new this(result);
1582
+ model.isNew = false;
1583
+ model.dirtyTracker.reset();
1584
+ return model;
1436
1585
  }
1437
1586
  /**
1438
1587
  * Returns embedded data for sync operations.
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sources":["../../src/model/model.ts"],"sourcesContent":[null],"names":["ModelEvents","RelationLoader","DatabaseDirtyTracker","getModelFromRegistry","getAllModelsFromRegistry","modelSync","get","only","set","unset","merge","globalModelEvents","dataSourceRegistry","DatabaseRemover","DatabaseRestorer","removeModelFromRegistery","DatabaseWriter"],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sources":["../../src/model/model.ts"],"sourcesContent":[null],"names":["ModelEvents","RelationLoader","DatabaseDirtyTracker","getModelFromRegistry","getAllModelsFromRegistry","modelSync","get","only","set","unset","merge","globalModelEvents","dataSourceRegistry","DatabaseWriter","DatabaseRemover","DatabaseRestorer","removeModelFromRegistery"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"database-remover.d.ts","sourceRoot":"","sources":["../../src/remover/database-remover.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACd,MAAM,wCAAwC,CAAC;AAEhD,OAAO,KAAK,EAAc,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAIxD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,eAAgB,YAAW,eAAe;IACrD,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAE9B,kCAAkC;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoB;IAEzC,oCAAoC;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IAExC,4CAA4C;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IAExC,4BAA4B;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAE/B,6BAA6B;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC;;;;;;;;;;;OAWG;gBACgB,KAAK,EAAE,KAAK;IAS/B;;;;;;OAMG;IACU,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IAiH1E;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;;;;;;OAOG;YACW,WAAW;CAI1B"}
1
+ {"version":3,"file":"database-remover.d.ts","sourceRoot":"","sources":["../../src/remover/database-remover.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACd,MAAM,wCAAwC,CAAC;AAEhD,OAAO,KAAK,EAAc,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAIxD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,eAAgB,YAAW,eAAe;IACrD,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAE9B,kCAAkC;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoB;IAEzC,oCAAoC;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IAExC,4CAA4C;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IAExC,4BAA4B;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAE/B,6BAA6B;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC;;;;;;;;;;;OAWG;gBACgB,KAAK,EAAE,KAAK;IAS/B;;;;;;OAMG;IACU,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IA0H1E;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;;;;;;OAOG;YACW,WAAW;CAI1B"}
@@ -112,8 +112,13 @@ class DatabaseRemover {
112
112
  break;
113
113
  }
114
114
  case "soft": {
115
- // Set deletedAt timestamp
116
- const deletedAtColumn = this.ctor.deletedAtColumn ?? "deletedAt";
115
+ // Set deletedAt timestamp (using resolved column name)
116
+ const deletedAtColumn = this.ctor.deletedAtColumn;
117
+ // Only proceed if deletedAtColumn is configured (not false or undefined)
118
+ if (deletedAtColumn === false || deletedAtColumn === undefined) {
119
+ throw new Error(`Cannot perform soft delete on ${this.ctor.name}: deletedAtColumn is not configured. ` +
120
+ `Set a column name or use a different delete strategy.`);
121
+ }
117
122
  const updateOperations = {
118
123
  $set: { [deletedAtColumn]: new Date() },
119
124
  };
@@ -1 +1 @@
1
- {"version":3,"file":"database-remover.js","sources":["../../src/remover/database-remover.ts"],"sourcesContent":[null],"names":["events","getModelDeletedEvent"],"mappings":"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"}
1
+ {"version":3,"file":"database-remover.js","sources":["../../src/remover/database-remover.ts"],"sourcesContent":[null],"names":["events","getModelDeletedEvent"],"mappings":"2NAYA;;;;;;;;;;;;;;;;;;;AAmBG;MACU,eAAe,CAAA;;AAET,IAAA,KAAK,CAAQ;;AAGb,IAAA,IAAI,CAAoB;;AAGxB,IAAA,UAAU,CAAa;;AAGvB,IAAA,MAAM,CAAiB;;AAGvB,IAAA,KAAK,CAAS;;AAGd,IAAA,UAAU,CAAS;AAEpC;;;;;;;;;;;AAWG;AACH,IAAA,WAAA,CAAmB,KAAY,EAAA;AAC7B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,WAAgC,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;KACxC;AAED;;;;;;AAMG;AACI,IAAA,MAAM,OAAO,CAAC,OAAA,GAA0B,EAAE,EAAA;;AAE/C,QAAA,MAAM,QAAQ,GACZ,OAAO,CAAC,QAAQ;YAChB,IAAI,CAAC,IAAI,CAAC,cAAc;YACxB,IAAI,CAAC,UAAU,CAAC,qBAAqB;AACrC,YAAA,WAAW,CAAC;;AAGd,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YACpB,MAAM,IAAI,KAAK,CACb,CAAkB,eAAA,EAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAmD,iDAAA,CAAA,CACpF,CAAC;AACH,SAAA;AAED,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,eAAe,EAAE;AACpB,YAAA,MAAM,IAAI,KAAK,CACb,CAAA,eAAA,EAAkB,IAAI,CAAC,IAAI,CAAC,IAAI,2BAA2B,IAAI,CAAC,UAAU,CAAA,aAAA,CAAe,CAC1F,CAAC;AACH,SAAA;;AAGD,QAAA,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AACvB,YAAA,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE;gBACrC,QAAQ;gBACR,eAAe;gBACf,UAAU,EAAE,IAAI,CAAC,UAAU;AAC5B,aAAA,CAAC,CAAC;AACJ,SAAA;;QAGD,IAAI,YAAY,GAAG,CAAC,CAAC;AACrB,QAAA,IAAI,WAAgD,CAAC;QAErD,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,GAAG,eAAe,EAAE,CAAC;AAEtD,QAAA,MAAM,OAAO,GAAmC;YAC9C,QAAQ;YACR,eAAe;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;AAEF,QAAA,QAAQ,QAAQ;YACd,KAAK,OAAO,EAAE;;AAEZ,gBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC5C,MAAM,YAAY,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;;gBAG5C,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;;AAGxD,gBAAA,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AACrE,gBAAA,WAAW,GAAG,YAAY,CAAC,QAAmC,CAAC;AAE/D,gBAAA,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;;AAGlC,gBAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC5D,gBAAA,YAAY,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM;AACP,aAAA;YAED,KAAK,WAAW,EAAE;;AAEhB,gBAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC5D,gBAAA,YAAY,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM;AACP,aAAA;YAED,KAAK,MAAM,EAAE;;AAEX,gBAAA,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;;AAGlD,gBAAA,IAAI,eAAe,KAAK,KAAK,IAAI,eAAe,KAAK,SAAS,EAAE;oBAC9D,MAAM,IAAI,KAAK,CACb,CAAA,8BAAA,EAAiC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAuC,qCAAA,CAAA;AACtF,wBAAA,CAAA,qDAAA,CAAuD,CACxD,CAAC;AACH,iBAAA;AAED,gBAAA,MAAM,gBAAgB,GAAqB;oBACzC,IAAI,EAAE,EAAE,CAAC,eAAe,GAAG,IAAI,IAAI,EAAE,EAAE;iBACxC,CAAC;AACF,gBAAA,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;AACpF,gBAAA,YAAY,GAAG,YAAY,CAAC,aAAa,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtD,MAAM;AACP,aAAA;AACF,SAAA;QAED,IAAI,YAAY,KAAK,CAAC,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,CAAqB,kBAAA,EAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAA8B,4BAAA,CAAA,CAAC,CAAC;AACpF,SAAA;AAED,QAAA,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC;;;QAIpC,IAAI,QAAQ,KAAK,MAAM,EAAE;AACvB,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;AACzB,SAAA;;AAGD,QAAA,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACvB,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAChD,SAAA;;AAGD,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AACrB,YAAA,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;AACzB,SAAA;QAED,OAAO;AACL,YAAA,OAAO,EAAE,IAAI;YACb,YAAY;YACZ,QAAQ;YACR,WAAW;SACZ,CAAC;KACH;AAED;;;;;;;;;;;;;;;;;;;AAmBG;AACK,IAAA,kBAAkB,CAAC,YAAqC,EAAA;;QAE9D,OAAO;AACL,YAAA,GAAG,YAAY;YACf,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,aAAa,EAAE,IAAI,CAAC,KAAK;SAC1B,CAAC;KACH;AAED;;;;;;;;;;AAUG;IACK,iBAAiB,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACxB,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC7B,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE;AACrC,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;AAC1C,SAAA;AAED,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,KAAK,OAAO,CAAC;KAC7B;AAED;;;;;;;AAOG;AACK,IAAA,MAAM,WAAW,GAAA;;AAEvB,QAAA,MAAMA,uBAAM,CAAC,UAAU,CAACC,gCAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KACtE;AACF"}
package/cjs/types.d.ts CHANGED
@@ -42,4 +42,248 @@ export type StrictMode = "strip" | "fail" | "allow";
42
42
  * ```
43
43
  */
44
44
  export type DeleteStrategy = "trash" | "permanent" | "soft";
45
+ /**
46
+ * Naming convention for database column names.
47
+ *
48
+ * Different databases have different naming conventions:
49
+ * - `"camelCase"` - MongoDB standard (createdAt, updatedAt, deletedAt)
50
+ * - `"snake_case"` - PostgreSQL/MySQL standard (created_at, updated_at, deleted_at)
51
+ *
52
+ * This affects default column names for timestamps and other system columns.
53
+ *
54
+ * @example
55
+ * ```typescript
56
+ * // PostgreSQL driver defaults
57
+ * namingConvention: "snake_case"
58
+ * // Results in: created_at, updated_at, deleted_at
59
+ *
60
+ * // MongoDB driver defaults
61
+ * namingConvention: "camelCase"
62
+ * // Results in: createdAt, updatedAt, deletedAt
63
+ * ```
64
+ */
65
+ export type NamingConvention = "camelCase" | "snake_case";
66
+ /**
67
+ * Unified model default configuration.
68
+ *
69
+ * These settings define default behaviors for models. The configuration
70
+ * follows a 4-tier hierarchy (highest to lowest precedence):
71
+ *
72
+ * 1. Model static property (explicit override)
73
+ * 2. Database config modelDefaults
74
+ * 3. Driver defaults (SQL vs NoSQL conventions)
75
+ * 4. Framework defaults (fallback values)
76
+ *
77
+ * @example
78
+ * ```typescript
79
+ * // PostgreSQL driver provides defaults:
80
+ * const postgresDefaults: ModelDefaults = {
81
+ * namingConvention: "snake_case",
82
+ * createdAtColumn: "created_at",
83
+ * updatedAtColumn: "updated_at",
84
+ * deletedAtColumn: "deleted_at",
85
+ * timestamps: true,
86
+ * autoGenerateId: false, // SQL handles this
87
+ * };
88
+ *
89
+ * // Override in database config:
90
+ * {
91
+ * modelDefaults: {
92
+ * randomIncrement: true,
93
+ * initialId: 1000,
94
+ * deleteStrategy: "soft",
95
+ * }
96
+ * }
97
+ *
98
+ * // Override in specific model:
99
+ * class User extends Model {
100
+ * public static createdAtColumn = "creation_date"; // Highest priority
101
+ * public static updatedAtColumn = false; // Disable updatedAt
102
+ * }
103
+ * ```
104
+ */
105
+ export type ModelDefaults = {
106
+ /**
107
+ * Auto-generate incremental `id` field on insert (NoSQL only).
108
+ *
109
+ * When enabled, the ID generator creates a sequential integer ID
110
+ * separate from the database's native ID (_id for MongoDB).
111
+ *
112
+ * **Note:** SQL databases use native AUTO_INCREMENT and don't need this.
113
+ *
114
+ * @default true (MongoDB), false (PostgreSQL)
115
+ */
116
+ autoGenerateId?: boolean;
117
+ /**
118
+ * Initial ID value for the first record.
119
+ *
120
+ * @default 1
121
+ *
122
+ * @example
123
+ * ```typescript
124
+ * initialId: 1000 // Start from 1000
125
+ * ```
126
+ */
127
+ initialId?: number;
128
+ /**
129
+ * Randomly generate the initial ID.
130
+ *
131
+ * Can be:
132
+ * - `true`: Generate random ID between 10000-499999
133
+ * - Function: Custom random ID generator
134
+ * - `false`: Use `initialId` or default to 1
135
+ *
136
+ * @default false
137
+ *
138
+ * @example
139
+ * ```typescript
140
+ * randomInitialId: true // Random 10000-499999
141
+ * randomInitialId: () => Math.floor(Math.random() * 1000000)
142
+ * ```
143
+ */
144
+ randomInitialId?: boolean | (() => number);
145
+ /**
146
+ * Amount to increment ID by for each new record.
147
+ *
148
+ * @default 1
149
+ *
150
+ * @example
151
+ * ```typescript
152
+ * incrementIdBy: 5 // Increment by 5
153
+ * ```
154
+ */
155
+ incrementIdBy?: number;
156
+ /**
157
+ * Randomly generate the increment amount.
158
+ *
159
+ * Can be:
160
+ * - `true`: Generate random increment between 1-10
161
+ * - Function: Custom random increment generator
162
+ * - `false`: Use `incrementIdBy` or default to 1
163
+ *
164
+ * @default false
165
+ *
166
+ * @example
167
+ * ```typescript
168
+ * randomIncrement: true // Random 1-10
169
+ * randomIncrement: () => Math.floor(Math.random() * 100)
170
+ * ```
171
+ */
172
+ randomIncrement?: boolean | (() => number);
173
+ /**
174
+ * Enable/disable automatic timestamp management.
175
+ *
176
+ * When enabled, createdAt and updatedAt are automatically managed.
177
+ * When disabled, no timestamps are added.
178
+ *
179
+ * @default true
180
+ */
181
+ timestamps?: boolean;
182
+ /**
183
+ * Column name for creation timestamp.
184
+ *
185
+ * Set to `false` to disable createdAt entirely.
186
+ *
187
+ * @default "createdAt" (MongoDB), "created_at" (PostgreSQL)
188
+ *
189
+ * @example
190
+ * ```typescript
191
+ * createdAtColumn: "creation_date"
192
+ * createdAtColumn: false // Disable
193
+ * ```
194
+ */
195
+ createdAtColumn?: string | false;
196
+ /**
197
+ * Column name for update timestamp.
198
+ *
199
+ * Set to `false` to disable updatedAt entirely.
200
+ *
201
+ * @default "updatedAt" (MongoDB), "updated_at" (PostgreSQL)
202
+ *
203
+ * @example
204
+ * ```typescript
205
+ * updatedAtColumn: "last_modified"
206
+ * updatedAtColumn: false // Disable
207
+ * ```
208
+ */
209
+ updatedAtColumn?: string | false;
210
+ /**
211
+ * Delete strategy for this model.
212
+ *
213
+ * Controls how models are deleted:
214
+ * - `"trash"` - Moves to trash collection, then deletes
215
+ * - `"permanent"` - Direct deletion (hard delete)
216
+ * - `"soft"` - Sets deletedAt timestamp (soft delete)
217
+ *
218
+ * @default "permanent"
219
+ *
220
+ * @example
221
+ * ```typescript
222
+ * deleteStrategy: "soft"
223
+ * ```
224
+ */
225
+ deleteStrategy?: DeleteStrategy;
226
+ /**
227
+ * Column name for soft delete timestamp.
228
+ *
229
+ * Used when delete strategy is "soft".
230
+ * Set to `false` to use a different mechanism.
231
+ *
232
+ * @default "deletedAt" (MongoDB), "deleted_at" (PostgreSQL)
233
+ *
234
+ * @example
235
+ * ```typescript
236
+ * deletedAtColumn: "archived_at"
237
+ * ```
238
+ */
239
+ deletedAtColumn?: string | false;
240
+ /**
241
+ * Trash table/collection name override.
242
+ *
243
+ * Can be:
244
+ * - String: Fixed name for all models
245
+ * - Function: Generate trash table name based on model table
246
+ * - `undefined`: Use default pattern `{table}Trash`
247
+ *
248
+ * Used when delete strategy is "trash".
249
+ *
250
+ * @default undefined (uses {table}Trash pattern)
251
+ *
252
+ * @example
253
+ * ```typescript
254
+ * trashTable: "RecycleBin" // All models use same trash
255
+ * trashTable: (table) => `archive_${table}` // Dynamic naming
256
+ * ```
257
+ */
258
+ trashTable?: string | ((tableName: string) => string);
259
+ /**
260
+ * Strict mode behavior for unknown fields.
261
+ *
262
+ * - `"strip"`: Remove unknown fields silently (default)
263
+ * - `"fail"`: Throw validation error on unknown fields
264
+ * - `"allow"`: Allow unknown fields to pass through
265
+ *
266
+ * @default "strip"
267
+ *
268
+ * @example
269
+ * ```typescript
270
+ * strictMode: "fail" // Strict validation
271
+ * ```
272
+ */
273
+ strictMode?: StrictMode;
274
+ /**
275
+ * Naming convention for database column names.
276
+ *
277
+ * Affects default names for timestamps and other system columns.
278
+ *
279
+ * @default "camelCase" (MongoDB), "snake_case" (PostgreSQL)
280
+ *
281
+ * @example
282
+ * ```typescript
283
+ * namingConvention: "snake_case"
284
+ * // Results in: created_at, updated_at, deleted_at
285
+ * ```
286
+ */
287
+ namingConvention?: NamingConvention;
288
+ };
45
289
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,YAAY,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,MAAM,aAAa,GAAG;IAK1B;;;;;;;;;OASG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;;;;;;;OAeG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAE3C;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;;;;;;;;;;OAeG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAM3C;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAEjC;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAMjC;;;;;;;;;;;;;;OAcG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAEjC;;;;;;;;;;;;;;;;;OAiBG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAMtD;;;;;;;;;;;;;OAaG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAMxB;;;;;;;;;;;;OAYG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC"}