tspace-mysql 1.9.0 → 1.9.1-beta.2

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 (118) hide show
  1. package/README.md +4580 -133
  2. package/dist/lib/config/index.d.ts +2 -2
  3. package/dist/lib/config/index.js +24 -16
  4. package/dist/lib/config/index.js.map +1 -1
  5. package/dist/lib/constants/index.d.ts +10 -1
  6. package/dist/lib/constants/index.js +11 -2
  7. package/dist/lib/constants/index.js.map +1 -1
  8. package/dist/lib/core/Abstracts/AbstractBuilder.d.ts +27 -23
  9. package/dist/lib/core/Abstracts/AbstractBuilder.js +11 -13
  10. package/dist/lib/core/Abstracts/AbstractBuilder.js.map +1 -1
  11. package/dist/lib/core/Abstracts/AbstractDB.d.ts +5 -2
  12. package/dist/lib/core/Abstracts/AbstractDB.js.map +1 -1
  13. package/dist/lib/core/Abstracts/AbstractModel.d.ts +7 -2
  14. package/dist/lib/core/Abstracts/AbstractModel.js.map +1 -1
  15. package/dist/lib/core/Abstracts/AbstractView.js.map +1 -1
  16. package/dist/lib/core/Blueprint.d.ts +37 -17
  17. package/dist/lib/core/Blueprint.js +38 -14
  18. package/dist/lib/core/Blueprint.js.map +1 -1
  19. package/dist/lib/core/Builder.d.ts +314 -42
  20. package/dist/lib/core/Builder.js +686 -391
  21. package/dist/lib/core/Builder.js.map +1 -1
  22. package/dist/lib/core/Cache/DBCache.js +19 -20
  23. package/dist/lib/core/Cache/DBCache.js.map +1 -1
  24. package/dist/lib/core/Cache/MemoryCache.js +3 -3
  25. package/dist/lib/core/Cache/MemoryCache.js.map +1 -1
  26. package/dist/lib/core/Cache/RedisCache.js +27 -17
  27. package/dist/lib/core/Cache/RedisCache.js.map +1 -1
  28. package/dist/lib/core/Cache/index.js +37 -17
  29. package/dist/lib/core/Cache/index.js.map +1 -1
  30. package/dist/lib/core/Contracts/AlterTable.d.ts +152 -0
  31. package/dist/lib/core/Contracts/AlterTable.js +243 -0
  32. package/dist/lib/core/Contracts/AlterTable.js.map +1 -0
  33. package/dist/lib/core/Contracts/Audit.d.ts +1 -1
  34. package/dist/lib/core/Contracts/Audit.js +2 -5
  35. package/dist/lib/core/Contracts/Audit.js.map +1 -1
  36. package/dist/lib/core/Contracts/Logger.d.ts +1 -1
  37. package/dist/lib/core/Contracts/Logger.js.map +1 -1
  38. package/dist/lib/core/DB.d.ts +103 -11
  39. package/dist/lib/core/DB.js +158 -32
  40. package/dist/lib/core/DB.js.map +1 -1
  41. package/dist/lib/core/Decorator.d.ts +144 -16
  42. package/dist/lib/core/Decorator.js +156 -14
  43. package/dist/lib/core/Decorator.js.map +1 -1
  44. package/dist/lib/core/Driver/index.d.ts +50 -14
  45. package/dist/lib/core/Driver/index.js +13 -9
  46. package/dist/lib/core/Driver/index.js.map +1 -1
  47. package/dist/lib/core/Driver/mariadb/MariadbDriver.js +84 -29
  48. package/dist/lib/core/Driver/mariadb/MariadbDriver.js.map +1 -1
  49. package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.d.ts +48 -12
  50. package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.js +189 -28
  51. package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.js.map +1 -1
  52. package/dist/lib/core/Driver/mongodb/MongodbDriver.d.ts +24 -0
  53. package/dist/lib/core/Driver/mongodb/MongodbDriver.js +261 -0
  54. package/dist/lib/core/Driver/mongodb/MongodbDriver.js.map +1 -0
  55. package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.d.ts +141 -0
  56. package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.js +571 -0
  57. package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.js.map +1 -0
  58. package/dist/lib/core/Driver/mysql/MysqlDriver.js +115 -97
  59. package/dist/lib/core/Driver/mysql/MysqlDriver.js.map +1 -1
  60. package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.d.ts +48 -12
  61. package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.js +189 -28
  62. package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.js.map +1 -1
  63. package/dist/lib/core/Driver/postgres/PostgresDriver.js +106 -73
  64. package/dist/lib/core/Driver/postgres/PostgresDriver.js.map +1 -1
  65. package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.d.ts +53 -12
  66. package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.js +318 -48
  67. package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.js.map +1 -1
  68. package/dist/lib/core/Driver/sqlite/SqliteDriver.d.ts +21 -0
  69. package/dist/lib/core/Driver/sqlite/SqliteDriver.js +213 -0
  70. package/dist/lib/core/Driver/sqlite/SqliteDriver.js.map +1 -0
  71. package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.d.ts +146 -0
  72. package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.js +705 -0
  73. package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.js.map +1 -0
  74. package/dist/lib/core/Join.d.ts +63 -5
  75. package/dist/lib/core/Join.js +92 -15
  76. package/dist/lib/core/Join.js.map +1 -1
  77. package/dist/lib/core/JoinModel.d.ts +65 -9
  78. package/dist/lib/core/JoinModel.js +81 -52
  79. package/dist/lib/core/JoinModel.js.map +1 -1
  80. package/dist/lib/core/Meta.d.ts +22 -16
  81. package/dist/lib/core/Meta.js +28 -21
  82. package/dist/lib/core/Meta.js.map +1 -1
  83. package/dist/lib/core/Model.d.ts +644 -134
  84. package/dist/lib/core/Model.js +1361 -631
  85. package/dist/lib/core/Model.js.map +1 -1
  86. package/dist/lib/{tools/index.d.ts → core/Package.d.ts} +11 -3
  87. package/dist/lib/{tools/index.js → core/Package.js} +20 -7
  88. package/dist/lib/core/Package.js.map +1 -0
  89. package/dist/lib/core/Pool.js +42 -30
  90. package/dist/lib/core/Pool.js.map +1 -1
  91. package/dist/lib/core/Queue.d.ts +249 -0
  92. package/dist/lib/core/Queue.js +726 -0
  93. package/dist/lib/core/Queue.js.map +1 -0
  94. package/dist/lib/core/RelationManager.d.ts +4 -4
  95. package/dist/lib/core/RelationManager.js +168 -41
  96. package/dist/lib/core/RelationManager.js.map +1 -1
  97. package/dist/lib/core/Repository.d.ts +73 -207
  98. package/dist/lib/core/Repository.js +122 -234
  99. package/dist/lib/core/Repository.js.map +1 -1
  100. package/dist/lib/core/Schema.d.ts +211 -1
  101. package/dist/lib/core/Schema.js +370 -65
  102. package/dist/lib/core/Schema.js.map +1 -1
  103. package/dist/lib/core/StateManager.d.ts +31 -12
  104. package/dist/lib/core/StateManager.js +11 -5
  105. package/dist/lib/core/StateManager.js.map +1 -1
  106. package/dist/lib/core/UtilityTypes.d.ts +103 -81
  107. package/dist/lib/core/UtilityTypes.js.map +1 -1
  108. package/dist/lib/core/index.d.ts +4 -0
  109. package/dist/lib/core/index.js +6 -2
  110. package/dist/lib/core/index.js.map +1 -1
  111. package/dist/lib/types/decorator/index.d.ts +1 -1
  112. package/dist/lib/types/index.d.ts +120 -30
  113. package/dist/lib/types/repository/index.d.ts +68 -37
  114. package/dist/lib/utils/index.d.ts +13 -2
  115. package/dist/lib/utils/index.js +81 -2
  116. package/dist/lib/utils/index.js.map +1 -1
  117. package/package.json +14 -6
  118. package/dist/lib/tools/index.js.map +0 -1
@@ -37,7 +37,7 @@ exports.DB = void 0;
37
37
  const sql_formatter_1 = require("sql-formatter");
38
38
  const AbstractDB_1 = require("./Abstracts/AbstractDB");
39
39
  const StateManager_1 = require("./StateManager");
40
- const tools_1 = require("../tools");
40
+ const Package_1 = require("../core/Package");
41
41
  const Pool_1 = __importStar(require("./Pool"));
42
42
  /**
43
43
  * The 'DB' class is a component of the database system
@@ -356,20 +356,56 @@ class DB extends AbstractDB_1.AbstractDB {
356
356
  }
357
357
  /**
358
358
  * The 'raw' methid is used to allow for raw sql queries to some method in 'DB' or 'Model'.
359
- * @param {string} sql
360
- * @returns {string} string
359
+ * Creates a raw SQL query with optional parameter bindings.
360
+ *
361
+ * @param sql - The raw SQL string. Use `?` placeholders for parameters.
362
+ * @param parameters - Values to bind to the placeholders.
363
+ * @returns A raw SQL query object.
364
+ *
365
+ * @example
366
+ * // Select a computed column using CONCAT
367
+ * const users = await DB
368
+ * .from('users')
369
+ * .select(
370
+ * 'id',
371
+ * DB.raw(
372
+ * `CONCAT(firstName, ' - ', lastName) AS fullName`
373
+ * // `CONCAT(?, ' - ', ?) AS fullName,['firstName', 'lastName']`
374
+ * )
375
+ * )
376
+ * .findOne();
361
377
  */
362
- raw(sql) {
378
+ raw(sql, parameters = []) {
379
+ if (!parameters.length) {
380
+ return `${this.$constants("RAW")}${sql}`;
381
+ }
382
+ sql = this.$utils.bindingParameters(sql, parameters);
363
383
  return `${this.$constants("RAW")}${sql}`;
364
384
  }
365
385
  /**
366
386
  * The 'raw' methid is used to allow for raw sql queries to some method in 'DB' or 'Model'.
387
+ * Creates a raw SQL query with optional parameter bindings.
388
+ *
367
389
  * @static
368
- * @param {string} sql
369
- * @returns {string} string
390
+ * @param sql - The raw SQL string. Use `?` placeholders for parameters.
391
+ * @param parameters - Values to bind to the placeholders.
392
+ * @returns A raw SQL query object.
393
+ *
394
+ * @example
395
+ * // Select a computed column using CONCAT
396
+ * const users = await DB
397
+ * .from('users')
398
+ * .select(
399
+ * 'id',
400
+ * DB.raw(
401
+ * `CONCAT(firstName, ' - ', lastName) AS fullName`
402
+ * // `CONCAT(?, ' - ', ?) AS fullName,['firstName', 'lastName']`
403
+ * )
404
+ * )
405
+ * .findOne();
370
406
  */
371
- static raw(sql) {
372
- return `${new this().raw(sql)}`;
407
+ static raw(sql, parameters = []) {
408
+ return `${new this().raw(sql, parameters)}`;
373
409
  }
374
410
  /**
375
411
  * The 'freeze' methid is used to freeze the column without any pattern.
@@ -401,10 +437,10 @@ class DB extends AbstractDB_1.AbstractDB {
401
437
  * @property {string} option.password
402
438
  * @returns {Connection}
403
439
  */
404
- async getConnection(options) {
440
+ getConnection(options) {
405
441
  if (options == null) {
406
- const pool = await this.$pool.get();
407
- return await pool.newConnection();
442
+ const pool = new Pool_1.PoolConnection();
443
+ return pool.connect();
408
444
  }
409
445
  const { driver, host, port, database, username: user, password, ...others } = options;
410
446
  const pool = new Pool_1.PoolConnection({
@@ -429,7 +465,7 @@ class DB extends AbstractDB_1.AbstractDB {
429
465
  * @property {string} option.password
430
466
  * @returns {Connection}
431
467
  */
432
- static async getConnection(options) {
468
+ static getConnection(options) {
433
469
  return new this().getConnection(options);
434
470
  }
435
471
  /**
@@ -473,8 +509,7 @@ class DB extends AbstractDB_1.AbstractDB {
473
509
  }
474
510
  return await writer.connection();
475
511
  }
476
- const pool = new Pool_1.PoolConnection().connect();
477
- return await pool.connection();
512
+ return await this.$pool.transaction();
478
513
  }
479
514
  /**
480
515
  * The 'beginTransaction' is a method used to initiate a database transaction within your application's code.
@@ -497,6 +532,92 @@ class DB extends AbstractDB_1.AbstractDB {
497
532
  static async beginTransaction(options) {
498
533
  return await new this().beginTransaction(options);
499
534
  }
535
+ /**
536
+ * Execute a database transaction.
537
+ *
538
+ * This method will:
539
+ * - Acquire a connection from the pool
540
+ * - Start a transaction
541
+ * - Execute the provided handler
542
+ * - Commit if successful
543
+ * - Rollback if any error occurs
544
+ *
545
+ * @template T
546
+ * @param {(conn: TConnection) => Promise<T>} handler - Async function that receives the transaction connection.
547
+ * All queries inside this handler MUST use the provided `conn` instance.
548
+ *
549
+ * @returns {Promise<T>} The result returned from the handler.
550
+ *
551
+ */
552
+ async transaction(handler) {
553
+ const trx = await this.$pool.transaction();
554
+ try {
555
+ await trx.startTransaction();
556
+ const results = await handler(trx);
557
+ await trx.commit();
558
+ return results;
559
+ }
560
+ catch (err) {
561
+ await trx.rollback();
562
+ throw err;
563
+ }
564
+ }
565
+ /**
566
+ * Execute a database transaction.
567
+ *
568
+ * This method will:
569
+ * - Acquire a connection from the pool
570
+ * - Start a transaction
571
+ * - Execute the provided handler
572
+ * - Commit if successful
573
+ * - Rollback if any error occurs
574
+ *
575
+ * @template T
576
+ * @param {(conn: TConnection) => Promise<T>} handler - Async function that receives the transaction connection.
577
+ * All queries inside this handler MUST use the provided `conn` instance.
578
+ *
579
+ * @returns {Promise<T>} The result returned from the handler.
580
+ *
581
+ */
582
+ static async transaction(handler) {
583
+ return await new this().transaction(handler);
584
+ }
585
+ /**
586
+ * The 'getActiveConnections' method is used to return active connections
587
+ *
588
+ * @returns {Promise<number>} this
589
+ */
590
+ async getActiveConnections() {
591
+ const current = await new DB()
592
+ .query(this._queryBuilder().getActiveConnections());
593
+ return Number(current[0]?.Connections || 0);
594
+ }
595
+ /**
596
+ * The 'getActiveConnections' method is used to return active connections
597
+ *
598
+ * @returns {Promise<number>} this
599
+ */
600
+ static async getActiveConnections() {
601
+ return await new this().getActiveConnections();
602
+ }
603
+ /**
604
+ * The 'getMaxConnections' method is used to return max connections
605
+ *
606
+ * @returns {Promise<number>} this
607
+ */
608
+ async getMaxConnections() {
609
+ const current = await new DB()
610
+ .query(this._queryBuilder().getMaxConnections());
611
+ return Number(current[0]?.MaxConnections || 0);
612
+ }
613
+ /**
614
+ * The 'getMaxConnections' method is used to return max connections
615
+ *
616
+ * @returns {Promise<number>} this
617
+ */
618
+ static async getMaxConnections() {
619
+ return await new this().getMaxConnections();
620
+ }
500
621
  /**
501
622
  * The 'removeProperties' method is used to removed some properties.
502
623
  *
@@ -625,15 +746,15 @@ class DB extends AbstractDB_1.AbstractDB {
625
746
  const tables = await this.getTables();
626
747
  const sqlFormatted = (sql) => {
627
748
  const statements = sql
628
- .split(';')
629
- .map(s => s.trim())
749
+ .split(";")
750
+ .map((s) => s.trim())
630
751
  .filter(Boolean);
631
- const formattedStatements = statements.map(stmt => {
632
- if (stmt.includes('(')) {
633
- const firstParen = stmt.indexOf('(');
634
- const lastParen = stmt.lastIndexOf(')');
752
+ const formattedStatements = statements.map((stmt) => {
753
+ if (stmt.includes("(")) {
754
+ const firstParen = stmt.indexOf("(");
755
+ const lastParen = stmt.lastIndexOf(")");
635
756
  if (firstParen === -1 || lastParen === -1)
636
- return stmt + ';';
757
+ return stmt + ";";
637
758
  const prefix = stmt.slice(0, firstParen).trim();
638
759
  let columnsPart = stmt.slice(firstParen + 1, lastParen).trim();
639
760
  const colArray = [];
@@ -641,18 +762,18 @@ class DB extends AbstractDB_1.AbstractDB {
641
762
  let start = 0;
642
763
  for (let i = 0; i < columnsPart.length; i++) {
643
764
  const char = columnsPart[i];
644
- if (char === '(')
765
+ if (char === "(")
645
766
  parenCount++;
646
- if (char === ')')
767
+ if (char === ")")
647
768
  parenCount--;
648
- if (char === ',' && parenCount === 0) {
769
+ if (char === "," && parenCount === 0) {
649
770
  colArray.push(columnsPart.slice(start, i).trim());
650
771
  start = i + 1;
651
772
  }
652
773
  }
653
774
  colArray.push(columnsPart.slice(start).trim());
654
775
  const seen = new Set();
655
- const uniqueColumns = colArray.filter(col => {
776
+ const uniqueColumns = colArray.filter((col) => {
656
777
  const colNameMatch = col.match(/"([\w]+)"/) || col.match(/([\w]+)/);
657
778
  const colName = colNameMatch ? colNameMatch[1] : col;
658
779
  if (seen.has(colName))
@@ -660,14 +781,16 @@ class DB extends AbstractDB_1.AbstractDB {
660
781
  seen.add(colName);
661
782
  return true;
662
783
  });
663
- const formattedColumns = uniqueColumns.map(c => ' ' + c).join(',\n');
784
+ const formattedColumns = uniqueColumns
785
+ .map((c) => " " + c)
786
+ .join(",\n");
664
787
  return `${prefix} (\n${formattedColumns}\n)`;
665
788
  }
666
789
  else {
667
790
  return stmt;
668
791
  }
669
792
  });
670
- return formattedStatements.join(';\n\n');
793
+ return formattedStatements.join(";\n\n");
671
794
  };
672
795
  const backup = (await this._backupToString({ tables, database })).map((b) => {
673
796
  return {
@@ -682,7 +805,10 @@ class DB extends AbstractDB_1.AbstractDB {
682
805
  `\n--`,
683
806
  `-- Dumping data for table '${b.name}'`,
684
807
  `--\n`,
685
- `${b.values().map(v => `${v}`).join(",\n")}`,
808
+ `${b
809
+ .values()
810
+ .map((v) => `${v}`)
811
+ .join(",\n")}`,
686
812
  ].join("\n")
687
813
  : "",
688
814
  };
@@ -711,7 +837,7 @@ class DB extends AbstractDB_1.AbstractDB {
711
837
  sql = [...sql, b.values];
712
838
  }
713
839
  }
714
- tools_1.Tool.fs.writeFileSync(filePath, [...sql, "COMMIT;"].join("\n"));
840
+ Package_1.Package.fs.writeFileSync(filePath, [...sql, "COMMIT;"].join("\n"));
715
841
  return;
716
842
  }
717
843
  /**
@@ -768,7 +894,7 @@ class DB extends AbstractDB_1.AbstractDB {
768
894
  ];
769
895
  for (const b of backup)
770
896
  sql = [...sql, b.table];
771
- tools_1.Tool.fs.writeFileSync(filePath, [...sql, "COMMIT;"].join("\n"));
897
+ Package_1.Package.fs.writeFileSync(filePath, [...sql, "COMMIT;"].join("\n"));
772
898
  return;
773
899
  }
774
900
  /**
@@ -838,7 +964,7 @@ class DB extends AbstractDB_1.AbstractDB {
838
964
  }) + "\n",
839
965
  valueSQL.join(" "),
840
966
  ];
841
- tools_1.Tool.fs.writeFileSync(filePath, [...sql, "COMMIT;"].join("\n"));
967
+ Package_1.Package.fs.writeFileSync(filePath, [...sql, "COMMIT;"].join("\n"));
842
968
  return;
843
969
  }
844
970
  /**
@@ -884,7 +1010,7 @@ class DB extends AbstractDB_1.AbstractDB {
884
1010
  if (connection != null && Object.keys(connection)?.length)
885
1011
  this.connection(connection);
886
1012
  await this.$utils.wait(1000 * 5);
887
- tools_1.Tool.fs.writeFileSync(filePath, (0, sql_formatter_1.format)(sql.join("\n"), {
1013
+ Package_1.Package.fs.writeFileSync(filePath, (0, sql_formatter_1.format)(sql.join("\n"), {
888
1014
  language: "spark",
889
1015
  tabWidth: 2,
890
1016
  linesBetweenQueries: 1,
@@ -1 +1 @@
1
- {"version":3,"file":"DB.js","sourceRoot":"","sources":["../../../src/lib/core/DB.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DB.js","sourceRoot":"","sources":["../../../src/lib/core/DB.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import "reflect-metadata";
2
+ import { Model } from "./Model";
2
3
  import { Blueprint } from "./Blueprint";
3
4
  import type { TRelationOptionsDecorator } from "../types/decorator";
4
5
  import type { TPattern, TValidateSchemaDecorator } from "../types";
5
- import { Model } from "./Model";
6
+ type RelationOptions = TRelationOptionsDecorator;
6
7
  export declare const REFLECT_META: {
7
8
  RELATIONS: {
8
9
  hasOne: string;
@@ -204,8 +205,8 @@ export declare const Column: (blueprint: () => Blueprint) => Function;
204
205
  * for a property. Useful for serialization/deserialization logic (e.g. ORM, DTO).
205
206
  *
206
207
  * @param {Object} options - Transform options.
207
- * @param {(value: unknown) => any | Promise<any>} options.to - Function executed when transforming *to* database/output.
208
- * @param {(value: unknown) => any | Promise<any>} options.from - Function executed when transforming *from* database/input.
208
+ * @param {(value: unknown) => any | Promise<any>} options.to - Function executed when transforming *to* app -> database.
209
+ * @param {(value: unknown) => any | Promise<any>} options.from - Function executed when transforming *from* database -> app.
209
210
  * @returns {Function} A property decorator that stores transform metadata.
210
211
  *
211
212
  * @throws {Error} If the property name cannot be determined.
@@ -267,7 +268,7 @@ export declare const Validate: (validate: TValidateSchemaDecorator) => Function;
267
268
  /**
268
269
  * Decorator to define a HasOne relationship on a model property.
269
270
  *
270
- * @param {TRelationOptionsDecorator} options - Options describing the relation.
271
+ * @param {RelationOptions} options - Options describing the relation.
271
272
  * @returns {Function} A decorator that registers the HasOne relationship.
272
273
  *
273
274
  * @example
@@ -281,11 +282,11 @@ export declare const Validate: (validate: TValidateSchemaDecorator) => Function;
281
282
  *
282
283
  * ```
283
284
  */
284
- export declare const HasOne: (fn: (() => new () => Model) | TRelationOptionsDecorator) => Function;
285
+ export declare const HasOne: (fn: (() => new () => Model) | RelationOptions) => Function;
285
286
  /**
286
287
  * Decorator to define a HasMany relationship on a model property.
287
288
  *
288
- * @param {TRelationOptionsDecorator} options - Options describing the relation.
289
+ * @param {RelationOptions} options - Options describing the relation.
289
290
  * @returns {Function} A decorator that registers the HasMany relationship.
290
291
  *
291
292
  * @example
@@ -299,11 +300,11 @@ export declare const HasOne: (fn: (() => new () => Model) | TRelationOptionsDeco
299
300
  *
300
301
  * ```
301
302
  */
302
- export declare const HasMany: (fn: (() => new () => Model) | TRelationOptionsDecorator) => Function;
303
+ export declare const HasMany: (fn: (() => new () => Model) | RelationOptions) => Function;
303
304
  /**
304
305
  * Decorator to define a BelongsTo relationship on a model property.
305
306
  *
306
- * @param {TRelationOptionsDecorator} options - Options describing the relation.
307
+ * @param {RelationOptions} options - Options describing the relation.
307
308
  * @returns {Function} A decorator that registers the BelongsTo relationship.
308
309
  *
309
310
  * @example
@@ -317,11 +318,11 @@ export declare const HasMany: (fn: (() => new () => Model) | TRelationOptionsDec
317
318
  *
318
319
  * ```
319
320
  */
320
- export declare const BelongsTo: (fn: (() => new () => Model) | TRelationOptionsDecorator) => Function;
321
+ export declare const BelongsTo: (fn: (() => new () => Model) | RelationOptions) => Function;
321
322
  /**
322
323
  * Decorator to define a BelongsToMany (many-to-many) relationship on a model property.
323
324
  *
324
- * @param {TRelationOptionsDecorator} options - Options describing the relation.
325
+ * @param {RelationOptions} options - Options describing the relation.
325
326
  * @returns {Function} A decorator that registers the BelongsToMany relationship.
326
327
  *
327
328
  * @example
@@ -335,7 +336,7 @@ export declare const BelongsTo: (fn: (() => new () => Model) | TRelationOptionsD
335
336
  *
336
337
  * ```
337
338
  */
338
- export declare const BelongsToMany: (fn: (() => new () => Model) | TRelationOptionsDecorator) => Function;
339
+ export declare const BelongsToMany: (fn: (() => new () => Model) | RelationOptions) => Function;
339
340
  /**
340
341
  * Decorator to attach an observer class to a model.
341
342
  *
@@ -514,6 +515,20 @@ export declare const D: {
514
515
  TableSingular: () => ClassDecorator;
515
516
  TablePlural: () => ClassDecorator;
516
517
  UUID: (column?: string) => ClassDecorator;
518
+ /**
519
+ * Decorator to enable automatic timestamps on a model.
520
+ *
521
+ * Stores metadata indicating that `createdAt` and `updatedAt` columns should be handled.
522
+ *
523
+ * @param {{ createdAt: string; updatedAt: string }} [columns] - Optional custom column names for timestamps.
524
+ * @returns {ClassDecorator} A class decorator that enables timestamp metadata.
525
+ *
526
+ * @example
527
+ * ```ts
528
+ * @Timestamp({ createdAt: 'created_at', updatedAt: 'updated_at' })
529
+ * class User extends Model {}
530
+ * ```
531
+ */
517
532
  SoftDelete: (column?: string) => ClassDecorator;
518
533
  Timestamp: (columns?: {
519
534
  createdAt: string;
@@ -522,23 +537,135 @@ export declare const D: {
522
537
  Pattern: (pattern: TPattern) => ClassDecorator;
523
538
  CamelCase: () => ClassDecorator;
524
539
  SnakeCase: () => ClassDecorator;
540
+ /**
541
+ * Decorator to define a database column for a model property.
542
+ *
543
+ * Accepts a `Blueprint` function that defines the column type, constraints, and other attributes.
544
+ * The resulting column schema is stored as metadata on the target class.
545
+ *
546
+ * @param {() => Blueprint} blueprint - A function returning a `Blueprint` instance describing the column.
547
+ * @returns {Function} A property decorator that registers the column schema.
548
+ *
549
+ * @throws {Error} If the property name cannot be determined.
550
+ *
551
+ * @example
552
+ * ```ts
553
+ * class User extends Model {
554
+ *
555
+ * @Column(() => Blueprint.int().notNull().primary().autoIncrement())
556
+ * public id!: number;
557
+ *
558
+ * @Column(() => Blueprint.varchar(50).null())
559
+ * public uuid!: string;
560
+ * }
561
+ *
562
+ * ```
563
+ */
525
564
  Column: (blueprint: () => Blueprint) => Function;
565
+ /**
566
+ * Decorator to attach validation rules to a model property.
567
+ *
568
+ * Accepts a `TValidateSchemaDecorator` object describing the validation rules
569
+ * (e.g., type, required, length, regex match, uniqueness, or custom validation function).
570
+ * The validation schema is stored as metadata on the target class.
571
+ *
572
+ * @param {TValidateSchemaDecorator} validate - An object defining validation rules for the property.
573
+ * @returns {Function} A decorator that registers the validation schema.
574
+ *
575
+ * @example
576
+ * ```ts
577
+ * class User extends Model {
578
+ *
579
+ * @Column(() => Blueprint.int().notNull().primary().autoIncrement())
580
+ * public id!: number;
581
+ *
582
+ * @Column(() => Blueprint.varchar(50).null())
583
+ * public uuid!: string;
584
+ *
585
+ * @Column(() => Blueprint.varchar(50).null())
586
+ * @Validate({
587
+ * type: String,
588
+ * require: true,
589
+ * length: 50,
590
+ * match: /^[a-zA-Z0-9._]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/,
591
+ * unique: true,
592
+ * fn: async (email: string) => {
593
+ * const exists = await new User().where('email',email).exists();
594
+ * if(exists) return `This column "${email}" is dupicate`;
595
+ * return null;
596
+ * }
597
+ * })
598
+ * public email!: string;
599
+ * }
600
+ *
601
+ * ```
602
+ */
526
603
  Validate: (validate: TValidateSchemaDecorator) => Function;
527
- HasOne: (fn: (() => new () => Model) | TRelationOptionsDecorator) => Function;
528
- HasMany: (fn: (() => new () => Model) | TRelationOptionsDecorator) => Function;
529
- BelongsTo: (fn: (() => new () => Model) | TRelationOptionsDecorator) => Function;
530
- BelongsToMany: (fn: (() => new () => Model) | TRelationOptionsDecorator) => Function;
604
+ HasOne: (fn: (() => new () => Model) | RelationOptions) => Function;
605
+ HasMany: (fn: (() => new () => Model) | RelationOptions) => Function;
606
+ BelongsTo: (fn: (() => new () => Model) | RelationOptions) => Function;
607
+ BelongsToMany: (fn: (() => new () => Model) | RelationOptions) => Function;
608
+ /**
609
+ * A decorator factory that registers custom `to` and `from` transform functions
610
+ * for a property. Useful for serialization/deserialization logic (e.g. ORM, DTO).
611
+ *
612
+ * @param {Object} options - Transform options.
613
+ * @param {(value: unknown) => any | Promise<any>} options.to - Function executed when transforming *to* app -> database.
614
+ * @param {(value: unknown) => any | Promise<any>} options.from - Function executed when transforming *from* database -> app.
615
+ * @returns {Function} A property decorator that stores transform metadata.
616
+ *
617
+ * @throws {Error} If the property name cannot be determined.
618
+ *
619
+ * @example
620
+ * ```ts
621
+ * class User {
622
+ * @Transform({
623
+ * to: (v) => JSON.stringify(v),
624
+ * from: (v) => JSON.parse(v),
625
+ * })
626
+ * profile;
627
+ * }
628
+ * ```
629
+ */
531
630
  Transform: ({ to, from }: {
532
631
  to: (value: unknown) => any | Promise<any>;
533
632
  from: (value: unknown) => any | Promise<any>;
534
633
  }) => Function;
634
+ /**
635
+ * Decorator that registers a method as a generic lifecycle hook.
636
+ * Unlike specific hooks such as `@BeforeInsert` or `@AfterUpdate`,
637
+ * this decorator is **multi-purpose** and collects all tagged methods
638
+ * into a single metadata registry (`REFLECT_META.HOOKS`).
639
+ *
640
+ * These hook methods can later be invoked by the ORM/engine at any stage
641
+ * depending on your custom logic.
642
+ *
643
+ * @returns {Function} A method decorator.
644
+ *
645
+ * @throws {Error} If applied to a non-method class member.
646
+ *
647
+ * @example
648
+ * ```ts
649
+ * class User {
650
+ * @Hooks()
651
+ * logAction() {
652
+ * console.log("A lifecycle action happened");
653
+ * }
654
+ * }
655
+ * ```
656
+ *
657
+ * @example
658
+ * // Later, your ORM engine could do:
659
+ * const hooks = Reflect.getMetadata(REFLECT_META.HOOKS, userInstance) || [];
660
+ * for (const hook of hooks) hook.call(userInstance);
661
+ */
662
+ Hooks: () => Function;
535
663
  Observer: (observer: new () => {
536
664
  selected: Function;
537
665
  created: Function;
538
666
  updated: Function;
539
667
  deleted: Function;
540
668
  }) => ClassDecorator;
541
- Hooks: () => Function;
542
669
  BeforeInsert: () => Function;
543
670
  BeforeUpdate: () => Function;
544
671
  BeforeRemove: () => Function;
@@ -546,3 +673,4 @@ export declare const D: {
546
673
  AfterUpdate: () => Function;
547
674
  AfterRemove: () => Function;
548
675
  };
676
+ export {};