@arcaelas/dynamite 1.0.29 → 3.1.0

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 (142) hide show
  1. package/README.md +13 -13
  2. package/{src → build/cjs}/@types/index.d.ts +26 -1
  3. package/build/cjs/@types/index.js.map +1 -0
  4. package/{src → build/cjs}/core/client.d.ts +22 -19
  5. package/build/cjs/core/client.js +384 -0
  6. package/build/cjs/core/client.js.map +1 -0
  7. package/build/cjs/core/decorator.d.ts +50 -0
  8. package/build/cjs/core/decorator.js +52 -0
  9. package/build/cjs/core/decorator.js.map +1 -0
  10. package/build/cjs/core/table.d.ts +73 -0
  11. package/build/cjs/core/table.js +953 -0
  12. package/build/cjs/core/table.js.map +1 -0
  13. package/build/cjs/decorators/hooks.d.ts +35 -0
  14. package/build/cjs/decorators/hooks.js +50 -0
  15. package/build/cjs/decorators/hooks.js.map +1 -0
  16. package/build/cjs/decorators/indexes.d.ts +20 -0
  17. package/build/cjs/decorators/indexes.js +45 -0
  18. package/build/cjs/decorators/indexes.js.map +1 -0
  19. package/{src → build/cjs}/decorators/relations.d.ts +8 -7
  20. package/{src → build/cjs}/decorators/relations.js +9 -8
  21. package/build/cjs/decorators/relations.js.map +1 -0
  22. package/build/cjs/decorators/timestamps.d.ts +20 -0
  23. package/build/cjs/decorators/timestamps.js +34 -0
  24. package/build/cjs/decorators/timestamps.js.map +1 -0
  25. package/build/cjs/decorators/transforms.d.ts +41 -0
  26. package/build/cjs/decorators/transforms.js +98 -0
  27. package/build/cjs/decorators/transforms.js.map +1 -0
  28. package/{src → build/cjs}/index.d.ts +7 -3
  29. package/{src → build/cjs}/index.js +15 -6
  30. package/build/cjs/index.js.map +1 -0
  31. package/build/cjs/package.json +1 -0
  32. package/build/cjs/test/basic.d.ts +1 -0
  33. package/build/cjs/test/basic.js +248 -0
  34. package/build/cjs/test/basic.js.map +1 -0
  35. package/build/cjs/test/bulk.d.ts +1 -0
  36. package/build/cjs/test/bulk.js +108 -0
  37. package/build/cjs/test/bulk.js.map +1 -0
  38. package/build/cjs/test/contracts.d.ts +1 -0
  39. package/build/cjs/test/contracts.js +343 -0
  40. package/build/cjs/test/contracts.js.map +1 -0
  41. package/build/cjs/test/filters.d.ts +1 -0
  42. package/build/cjs/test/filters.js +190 -0
  43. package/build/cjs/test/filters.js.map +1 -0
  44. package/build/cjs/test/hooks.d.ts +1 -0
  45. package/build/cjs/test/hooks.js +191 -0
  46. package/build/cjs/test/hooks.js.map +1 -0
  47. package/build/cjs/test/index.js +38 -0
  48. package/build/cjs/test/index.js.map +1 -0
  49. package/build/cjs/test/query_scan.d.ts +1 -0
  50. package/build/cjs/test/query_scan.js +195 -0
  51. package/build/cjs/test/query_scan.js.map +1 -0
  52. package/build/cjs/test/relations.d.ts +1 -0
  53. package/build/cjs/test/relations.js +246 -0
  54. package/build/cjs/test/relations.js.map +1 -0
  55. package/build/cjs/test/transactions.d.ts +1 -0
  56. package/build/cjs/test/transactions.js +145 -0
  57. package/build/cjs/test/transactions.js.map +1 -0
  58. package/{src → build/cjs}/utils/relations.js +1 -8
  59. package/build/cjs/utils/relations.js.map +1 -0
  60. package/build/cjs/utils/ulid.d.ts +10 -0
  61. package/build/cjs/utils/ulid.js +55 -0
  62. package/build/cjs/utils/ulid.js.map +1 -0
  63. package/build/esm/@types/index.d.ts +213 -0
  64. package/build/esm/@types/index.js +8 -0
  65. package/build/esm/@types/index.js.map +1 -0
  66. package/build/esm/core/client.d.ts +96 -0
  67. package/build/esm/core/client.js +375 -0
  68. package/build/esm/core/client.js.map +1 -0
  69. package/build/esm/core/decorator.d.ts +50 -0
  70. package/build/esm/core/decorator.js +47 -0
  71. package/build/esm/core/decorator.js.map +1 -0
  72. package/build/esm/core/table.d.ts +73 -0
  73. package/build/esm/core/table.js +950 -0
  74. package/build/esm/core/table.js.map +1 -0
  75. package/build/esm/decorators/hooks.d.ts +35 -0
  76. package/build/esm/decorators/hooks.js +47 -0
  77. package/build/esm/decorators/hooks.js.map +1 -0
  78. package/build/esm/decorators/indexes.d.ts +20 -0
  79. package/build/esm/decorators/indexes.js +42 -0
  80. package/build/esm/decorators/indexes.js.map +1 -0
  81. package/build/esm/decorators/relations.d.ts +75 -0
  82. package/build/esm/decorators/relations.js +112 -0
  83. package/build/esm/decorators/relations.js.map +1 -0
  84. package/build/esm/decorators/timestamps.d.ts +20 -0
  85. package/build/esm/decorators/timestamps.js +31 -0
  86. package/build/esm/decorators/timestamps.js.map +1 -0
  87. package/build/esm/decorators/transforms.d.ts +41 -0
  88. package/build/esm/decorators/transforms.js +92 -0
  89. package/build/esm/decorators/transforms.js.map +1 -0
  90. package/build/esm/index.d.ts +19 -0
  91. package/build/esm/index.js +26 -0
  92. package/build/esm/index.js.map +1 -0
  93. package/build/esm/package.json +1 -0
  94. package/build/esm/test/basic.d.ts +1 -0
  95. package/build/esm/test/basic.js +245 -0
  96. package/build/esm/test/basic.js.map +1 -0
  97. package/build/esm/test/bulk.d.ts +1 -0
  98. package/build/esm/test/bulk.js +105 -0
  99. package/build/esm/test/bulk.js.map +1 -0
  100. package/build/esm/test/contracts.d.ts +1 -0
  101. package/build/esm/test/contracts.js +340 -0
  102. package/build/esm/test/contracts.js.map +1 -0
  103. package/build/esm/test/filters.d.ts +1 -0
  104. package/build/esm/test/filters.js +187 -0
  105. package/build/esm/test/filters.js.map +1 -0
  106. package/build/esm/test/hooks.d.ts +1 -0
  107. package/build/esm/test/hooks.js +188 -0
  108. package/build/esm/test/hooks.js.map +1 -0
  109. package/build/esm/test/index.d.ts +1 -0
  110. package/build/esm/test/index.js +33 -0
  111. package/build/esm/test/index.js.map +1 -0
  112. package/build/esm/test/query_scan.d.ts +1 -0
  113. package/build/esm/test/query_scan.js +192 -0
  114. package/build/esm/test/query_scan.js.map +1 -0
  115. package/build/esm/test/relations.d.ts +1 -0
  116. package/build/esm/test/relations.js +243 -0
  117. package/build/esm/test/relations.js.map +1 -0
  118. package/build/esm/test/transactions.d.ts +1 -0
  119. package/build/esm/test/transactions.js +142 -0
  120. package/build/esm/test/transactions.js.map +1 -0
  121. package/build/esm/utils/relations.d.ts +42 -0
  122. package/build/esm/utils/relations.js +207 -0
  123. package/build/esm/utils/relations.js.map +1 -0
  124. package/build/esm/utils/ulid.d.ts +10 -0
  125. package/build/esm/utils/ulid.js +52 -0
  126. package/build/esm/utils/ulid.js.map +1 -0
  127. package/package.json +31 -9
  128. package/src/core/client.js +0 -296
  129. package/src/core/decorator.d.ts +0 -29
  130. package/src/core/decorator.js +0 -103
  131. package/src/core/table.d.ts +0 -81
  132. package/src/core/table.js +0 -892
  133. package/src/decorators/indexes.d.ts +0 -38
  134. package/src/decorators/indexes.js +0 -59
  135. package/src/decorators/timestamps.d.ts +0 -54
  136. package/src/decorators/timestamps.js +0 -72
  137. package/src/decorators/transforms.d.ts +0 -99
  138. package/src/decorators/transforms.js +0 -166
  139. package/src/index.test.js +0 -37
  140. /package/{src → build/cjs}/@types/index.js +0 -0
  141. /package/{src/index.test.d.ts → build/cjs/test/index.d.ts} +0 -0
  142. /package/{src → build/cjs}/utils/relations.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.js","sourceRoot":"","sources":["../../../src/core/table.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @file hooks.ts
3
+ * @description Lifecycle hook decorators: @BeforeCreate, @AfterCreate, @BeforeUpdate, @AfterUpdate, @BeforeDestroy, @AfterDestroy
4
+ * @description Decoradores de hooks de ciclo de vida: @BeforeCreate, @AfterCreate, @BeforeUpdate, @AfterUpdate, @BeforeDestroy, @AfterDestroy
5
+ */
6
+ /**
7
+ * @description Runs before the record is created (opt-in via { hook: true }). `this` is the instance and may be mutated.
8
+ * @description Se ejecuta antes de crear el registro (opt-in con { hook: true }). `this` es la instancia y puede mutarse.
9
+ */
10
+ export declare const BeforeCreate: () => (target: any, property_key: string | symbol) => void;
11
+ /**
12
+ * @description Runs after the record is created (opt-in via { hook: true }). `this` is the persisted instance.
13
+ * @description Se ejecuta después de crear el registro (opt-in con { hook: true }). `this` es la instancia persistida.
14
+ */
15
+ export declare const AfterCreate: () => (target: any, property_key: string | symbol) => void;
16
+ /**
17
+ * @description Runs before the record is updated (opt-in via { hook: true }). Receives the changes delta as argument.
18
+ * @description Se ejecuta antes de actualizar el registro (opt-in con { hook: true }). Recibe el delta de cambios como argumento.
19
+ */
20
+ export declare const BeforeUpdate: () => (target: any, property_key: string | symbol) => void;
21
+ /**
22
+ * @description Runs after the record is updated (opt-in via { hook: true }). Receives the changes delta as argument.
23
+ * @description Se ejecuta después de actualizar el registro (opt-in con { hook: true }). Recibe el delta de cambios como argumento.
24
+ */
25
+ export declare const AfterUpdate: () => (target: any, property_key: string | symbol) => void;
26
+ /**
27
+ * @description Runs before the record is destroyed (opt-in via { hook: true }). `this` is the instance to remove.
28
+ * @description Se ejecuta antes de eliminar el registro (opt-in con { hook: true }). `this` es la instancia a eliminar.
29
+ */
30
+ export declare const BeforeDestroy: () => (target: any, property_key: string | symbol) => void;
31
+ /**
32
+ * @description Runs after the record is destroyed (opt-in via { hook: true }). `this` is the removed instance.
33
+ * @description Se ejecuta después de eliminar el registro (opt-in con { hook: true }). `this` es la instancia eliminada.
34
+ */
35
+ export declare const AfterDestroy: () => (target: any, property_key: string | symbol) => void;
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @file hooks.ts
3
+ * @description Lifecycle hook decorators: @BeforeCreate, @AfterCreate, @BeforeUpdate, @AfterUpdate, @BeforeDestroy, @AfterDestroy
4
+ * @description Decoradores de hooks de ciclo de vida: @BeforeCreate, @AfterCreate, @BeforeUpdate, @AfterUpdate, @BeforeDestroy, @AfterDestroy
5
+ */
6
+ import { getSchema } from "../core/decorator.js";
7
+ /**
8
+ * @description Builds a method decorator that registers the method as a lifecycle hook of the given type.
9
+ * @description Construye un decorador de método que registra el método como hook de ciclo de vida del tipo dado.
10
+ * @param type Lifecycle hook type / Tipo de hook de ciclo de vida
11
+ */
12
+ function hook(type) {
13
+ return () => (target, property_key) => {
14
+ getSchema(target.constructor).hooks[type].push(String(property_key));
15
+ };
16
+ }
17
+ /**
18
+ * @description Runs before the record is created (opt-in via { hook: true }). `this` is the instance and may be mutated.
19
+ * @description Se ejecuta antes de crear el registro (opt-in con { hook: true }). `this` es la instancia y puede mutarse.
20
+ */
21
+ export const BeforeCreate = hook('beforeCreate');
22
+ /**
23
+ * @description Runs after the record is created (opt-in via { hook: true }). `this` is the persisted instance.
24
+ * @description Se ejecuta después de crear el registro (opt-in con { hook: true }). `this` es la instancia persistida.
25
+ */
26
+ export const AfterCreate = hook('afterCreate');
27
+ /**
28
+ * @description Runs before the record is updated (opt-in via { hook: true }). Receives the changes delta as argument.
29
+ * @description Se ejecuta antes de actualizar el registro (opt-in con { hook: true }). Recibe el delta de cambios como argumento.
30
+ */
31
+ export const BeforeUpdate = hook('beforeUpdate');
32
+ /**
33
+ * @description Runs after the record is updated (opt-in via { hook: true }). Receives the changes delta as argument.
34
+ * @description Se ejecuta después de actualizar el registro (opt-in con { hook: true }). Recibe el delta de cambios como argumento.
35
+ */
36
+ export const AfterUpdate = hook('afterUpdate');
37
+ /**
38
+ * @description Runs before the record is destroyed (opt-in via { hook: true }). `this` is the instance to remove.
39
+ * @description Se ejecuta antes de eliminar el registro (opt-in con { hook: true }). `this` es la instancia a eliminar.
40
+ */
41
+ export const BeforeDestroy = hook('beforeDestroy');
42
+ /**
43
+ * @description Runs after the record is destroyed (opt-in via { hook: true }). `this` is the removed instance.
44
+ * @description Se ejecuta después de eliminar el registro (opt-in con { hook: true }). `this` es la instancia eliminada.
45
+ */
46
+ export const AfterDestroy = hook('afterDestroy');
47
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/decorators/hooks.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C;;;;GAIG;AACH,SAAS,IAAI,CAAC,IAAc;IAC1B,OAAO,GAAG,EAAE,CAAC,CAAC,MAAW,EAAE,YAA6B,EAAQ,EAAE;QAChE,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;AAEjD;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;AAE/C;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;AAEjD;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;AAE/C;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;AAEnD;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @file indexes.ts
3
+ * @description Index decorators: @Index, @IndexSort, @PrimaryKey
4
+ * @description Decoradores de índices: @Index, @IndexSort, @PrimaryKey
5
+ */
6
+ /**
7
+ * @description Marks a property as Partition Key for a GSI
8
+ * @description Marca una propiedad como Partition Key de un GSI
9
+ */
10
+ export declare const Index: (...params: any[]) => (target: any, propertyKey: string | symbol) => void;
11
+ /**
12
+ * @description Marks a property as Sort Key
13
+ * @description Marca una propiedad como Sort Key
14
+ */
15
+ export declare const IndexSort: (...params: any[]) => (target: any, propertyKey: string | symbol) => void;
16
+ /**
17
+ * @description Primary key: Default(ulid) + NotNull + ULID validation + Index + IndexSort
18
+ * @description Clave primaria: Default(ulid) + NotNull + validación ULID + Index + IndexSort
19
+ */
20
+ export declare const PrimaryKey: (...params: any[]) => (target: any, propertyKey: string | symbol) => void;
@@ -0,0 +1,42 @@
1
+ /**
2
+ * @file indexes.ts
3
+ * @description Index decorators: @Index, @IndexSort, @PrimaryKey
4
+ * @description Decoradores de índices: @Index, @IndexSort, @PrimaryKey
5
+ */
6
+ import { decorator, SCHEMA } from "../core/decorator.js";
7
+ import { ulid } from "../utils/ulid.js";
8
+ const ULID_RE = /^[0-9A-HJKMNP-TV-Z]{26}$/;
9
+ /**
10
+ * @description Marks a property as Partition Key for a GSI
11
+ * @description Marca una propiedad como Partition Key de un GSI
12
+ */
13
+ export const Index = decorator((_schema, col) => {
14
+ col.store.index = true;
15
+ });
16
+ /**
17
+ * @description Marks a property as Sort Key
18
+ * @description Marca una propiedad como Sort Key
19
+ */
20
+ export const IndexSort = decorator((_schema, col) => {
21
+ col.store.indexSort = true;
22
+ });
23
+ /**
24
+ * @description Primary key: Default(ulid) + NotNull + ULID validation + Index + IndexSort
25
+ * @description Clave primaria: Default(ulid) + NotNull + validación ULID + Index + IndexSort
26
+ */
27
+ export const PrimaryKey = decorator((table_class, col) => {
28
+ const schema = table_class[SCHEMA];
29
+ // Metadata: Index + primaryKey (IndexSort only when separate SK exists)
30
+ col.store.index = true;
31
+ col.store.primaryKey = true;
32
+ schema.primary_key = col.name;
33
+ // Set pipeline: immutable after first assignment, Default(ulid), validate ULID format
34
+ col.set.push((next, current) => {
35
+ const value = current ?? next ?? ulid();
36
+ if (typeof value !== 'string' || !ULID_RE.test(value)) {
37
+ throw new Error(`Invalid ULID for ${col.name}: '${value}'`);
38
+ }
39
+ return value;
40
+ });
41
+ });
42
+ //# sourceMappingURL=indexes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexes.js","sourceRoot":"","sources":["../../../src/decorators/indexes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,MAAM,OAAO,GAAG,0BAA0B,CAAC;AAE3C;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;IAC9C,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;AACzB,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;IAClD,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE;IACvD,MAAM,MAAM,GAAI,WAAmB,CAAC,MAAM,CAAC,CAAC;IAE5C,wEAAwE;IACxE,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;IACvB,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC;IAE9B,sFAAsF;IACtF,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,OAAY,EAAE,EAAE;QACvC,MAAM,KAAK,GAAG,OAAO,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * @file relations.ts
3
+ * @description Decoradores de relaciones: @HasMany, @HasOne, @BelongsTo, @ManyToMany
4
+ * @autor Miguel Alejandro
5
+ * @fecha 2025-01-28
6
+ */
7
+ /**
8
+ * @description Decorador para relaciones uno a muchos (1:N)
9
+ * @param model Función que retorna la clase del modelo relacionado
10
+ * @param foreignKey Clave foránea en el modelo relacionado
11
+ * @param localKey Clave local (por defecto 'id')
12
+ * @example
13
+ * ```typescript
14
+ * class User extends Table<User> {
15
+ * @PrimaryKey() id: string;
16
+ *
17
+ * @HasMany(() => Post, 'id_user', 'id')
18
+ * declare posts: HasMany<Post>;
19
+ * }
20
+ * ```
21
+ */
22
+ export declare const HasMany: (...params: any[]) => (target: any, propertyKey: string | symbol) => void;
23
+ /**
24
+ * @description Decorador para relaciones uno a uno (1:1)
25
+ * @param model Función que retorna la clase del modelo relacionado
26
+ * @param foreignKey Clave foránea en el modelo relacionado
27
+ * @param localKey Clave local (por defecto 'id')
28
+ * @example
29
+ * ```typescript
30
+ * class User extends Table<User> {
31
+ * @PrimaryKey() id: string;
32
+ *
33
+ * @HasOne(() => Profile, 'id_user', 'id')
34
+ * declare profile: HasOne<Profile>;
35
+ * }
36
+ * ```
37
+ */
38
+ export declare const HasOne: (...params: any[]) => (target: any, propertyKey: string | symbol) => void;
39
+ /**
40
+ * @description Many-to-one relation (N:1)
41
+ * @description Relación muchos a uno (N:1)
42
+ * @param model () => RelatedClass
43
+ * @param foreignKey Key in the related model (default 'id')
44
+ * @param localKey Key in the current model that references the parent
45
+ * @example
46
+ * ```typescript
47
+ * class Post extends Table<Post> {
48
+ * @PrimaryKey() id: string;
49
+ * @Default('') id_user: string;
50
+ *
51
+ * @BelongsTo(() => User, 'id', 'id_user')
52
+ * declare author: NonAttribute<User>;
53
+ * }
54
+ * ```
55
+ */
56
+ export declare const BelongsTo: (...params: any[]) => (target: any, propertyKey: string | symbol) => void;
57
+ /**
58
+ * @description Decorador para relaciones muchos a muchos (N:M)
59
+ * @param model Función que retorna la clase del modelo relacionado
60
+ * @param pivotTable Nombre de la tabla pivot
61
+ * @param foreignKey Clave foránea en la tabla pivot que apunta al modelo actual
62
+ * @param relatedKey Clave foránea en la tabla pivot que apunta al modelo relacionado
63
+ * @param localKey Clave local (por defecto 'id')
64
+ * @param relatedPK Clave primaria del modelo relacionado (por defecto 'id')
65
+ * @example
66
+ * ```typescript
67
+ * class User extends Table<User> {
68
+ * @PrimaryKey() id: string;
69
+ *
70
+ * @ManyToMany(() => Role, 'users_roles', 'user_id', 'role_id')
71
+ * declare roles: NonAttribute<Role[]>;
72
+ * }
73
+ * ```
74
+ */
75
+ export declare const ManyToMany: (...params: any[]) => (target: any, propertyKey: string | symbol) => void;
@@ -0,0 +1,112 @@
1
+ /**
2
+ * @file relations.ts
3
+ * @description Decoradores de relaciones: @HasMany, @HasOne, @BelongsTo, @ManyToMany
4
+ * @autor Miguel Alejandro
5
+ * @fecha 2025-01-28
6
+ */
7
+ import { decorator } from "../core/decorator.js";
8
+ /**
9
+ * @description Decorador para relaciones uno a muchos (1:N)
10
+ * @param model Función que retorna la clase del modelo relacionado
11
+ * @param foreignKey Clave foránea en el modelo relacionado
12
+ * @param localKey Clave local (por defecto 'id')
13
+ * @example
14
+ * ```typescript
15
+ * class User extends Table<User> {
16
+ * @PrimaryKey() id: string;
17
+ *
18
+ * @HasMany(() => Post, 'id_user', 'id')
19
+ * declare posts: HasMany<Post>;
20
+ * }
21
+ * ```
22
+ */
23
+ export const HasMany = decorator((_schema, col, params) => {
24
+ const [model, foreignKey, localKey = 'id'] = params;
25
+ col.store.relation = {
26
+ type: 'HasMany',
27
+ model,
28
+ foreignKey,
29
+ localKey
30
+ };
31
+ });
32
+ /**
33
+ * @description Decorador para relaciones uno a uno (1:1)
34
+ * @param model Función que retorna la clase del modelo relacionado
35
+ * @param foreignKey Clave foránea en el modelo relacionado
36
+ * @param localKey Clave local (por defecto 'id')
37
+ * @example
38
+ * ```typescript
39
+ * class User extends Table<User> {
40
+ * @PrimaryKey() id: string;
41
+ *
42
+ * @HasOne(() => Profile, 'id_user', 'id')
43
+ * declare profile: HasOne<Profile>;
44
+ * }
45
+ * ```
46
+ */
47
+ export const HasOne = decorator((_schema, col, params) => {
48
+ const [model, foreignKey, localKey = 'id'] = params;
49
+ col.store.relation = {
50
+ type: 'HasOne',
51
+ model,
52
+ foreignKey,
53
+ localKey
54
+ };
55
+ });
56
+ /**
57
+ * @description Many-to-one relation (N:1)
58
+ * @description Relación muchos a uno (N:1)
59
+ * @param model () => RelatedClass
60
+ * @param foreignKey Key in the related model (default 'id')
61
+ * @param localKey Key in the current model that references the parent
62
+ * @example
63
+ * ```typescript
64
+ * class Post extends Table<Post> {
65
+ * @PrimaryKey() id: string;
66
+ * @Default('') id_user: string;
67
+ *
68
+ * @BelongsTo(() => User, 'id', 'id_user')
69
+ * declare author: NonAttribute<User>;
70
+ * }
71
+ * ```
72
+ */
73
+ export const BelongsTo = decorator((_schema, col, params) => {
74
+ const [model, foreignKey = 'id', localKey = 'id'] = params;
75
+ col.store.relation = {
76
+ type: 'BelongsTo',
77
+ model,
78
+ foreignKey,
79
+ localKey
80
+ };
81
+ });
82
+ /**
83
+ * @description Decorador para relaciones muchos a muchos (N:M)
84
+ * @param model Función que retorna la clase del modelo relacionado
85
+ * @param pivotTable Nombre de la tabla pivot
86
+ * @param foreignKey Clave foránea en la tabla pivot que apunta al modelo actual
87
+ * @param relatedKey Clave foránea en la tabla pivot que apunta al modelo relacionado
88
+ * @param localKey Clave local (por defecto 'id')
89
+ * @param relatedPK Clave primaria del modelo relacionado (por defecto 'id')
90
+ * @example
91
+ * ```typescript
92
+ * class User extends Table<User> {
93
+ * @PrimaryKey() id: string;
94
+ *
95
+ * @ManyToMany(() => Role, 'users_roles', 'user_id', 'role_id')
96
+ * declare roles: NonAttribute<Role[]>;
97
+ * }
98
+ * ```
99
+ */
100
+ export const ManyToMany = decorator((_schema, col, params) => {
101
+ const [model, pivotTable, foreignKey, relatedKey, localKey = 'id', relatedPK = 'id'] = params;
102
+ col.store.relation = {
103
+ type: 'ManyToMany',
104
+ model,
105
+ foreignKey,
106
+ relatedKey,
107
+ pivotTable,
108
+ localKey,
109
+ relatedPK
110
+ };
111
+ });
112
+ //# sourceMappingURL=relations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relations.js","sourceRoot":"","sources":["../../../src/decorators/relations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;IACxD,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;IACpD,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG;QACnB,IAAI,EAAE,SAAS;QACf,KAAK;QACL,UAAU;QACV,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;IACvD,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;IACpD,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG;QACnB,IAAI,EAAE,QAAQ;QACd,KAAK;QACL,UAAU;QACV,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;IAC1D,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;IAC3D,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG;QACnB,IAAI,EAAE,WAAW;QACjB,KAAK;QACL,UAAU;QACV,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;IAC3D,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,GAAG,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;IAC9F,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG;QACnB,IAAI,EAAE,YAAY;QAClB,KAAK;QACL,UAAU;QACV,UAAU;QACV,UAAU;QACV,QAAQ;QACR,SAAS;KACV,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @file timestamps.ts
3
+ * @description Timestamp decorators: @CreatedAt, @UpdatedAt, @DeleteAt
4
+ * @description Decoradores de timestamps: @CreatedAt, @UpdatedAt, @DeleteAt
5
+ */
6
+ /**
7
+ * @description Auto-sets creation timestamp. Default + immutable after first assignment.
8
+ * @description Timestamp de creación automático. Default + inmutable tras primera asignación.
9
+ */
10
+ export declare const CreatedAt: (...params: any[]) => (target: any, propertyKey: string | symbol) => void;
11
+ /**
12
+ * @description Auto-updates timestamp on every write. Always overwrites.
13
+ * @description Timestamp que se actualiza en cada escritura. Siempre sobreescribe.
14
+ */
15
+ export declare const UpdatedAt: (...params: any[]) => (target: any, propertyKey: string | symbol) => void;
16
+ /**
17
+ * @description Marks column as soft delete flag. Used by destroy() and where().
18
+ * @description Marca columna como flag de soft delete. Usado por destroy() y where().
19
+ */
20
+ export declare const DeleteAt: (...params: any[]) => (target: any, propertyKey: string | symbol) => void;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @file timestamps.ts
3
+ * @description Timestamp decorators: @CreatedAt, @UpdatedAt, @DeleteAt
4
+ * @description Decoradores de timestamps: @CreatedAt, @UpdatedAt, @DeleteAt
5
+ */
6
+ import { decorator } from "../core/decorator.js";
7
+ /**
8
+ * @description Auto-sets creation timestamp. Default + immutable after first assignment.
9
+ * @description Timestamp de creación automático. Default + inmutable tras primera asignación.
10
+ */
11
+ export const CreatedAt = decorator((_schema, col) => {
12
+ col.store.createdAt = true;
13
+ // Default in set: assigns now() when nullish. Preserves existing value (immutable).
14
+ col.set.push((next, current) => current ?? next ?? new Date().toISOString());
15
+ });
16
+ /**
17
+ * @description Auto-updates timestamp on every write. Always overwrites.
18
+ * @description Timestamp que se actualiza en cada escritura. Siempre sobreescribe.
19
+ */
20
+ export const UpdatedAt = decorator((_schema, col) => {
21
+ col.store.updatedAt = true;
22
+ col.set.push((next) => next ?? new Date().toISOString());
23
+ });
24
+ /**
25
+ * @description Marks column as soft delete flag. Used by destroy() and where().
26
+ * @description Marca columna como flag de soft delete. Usado por destroy() y where().
27
+ */
28
+ export const DeleteAt = decorator((_schema, col) => {
29
+ col.store.softDelete = true;
30
+ });
31
+ //# sourceMappingURL=timestamps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timestamps.js","sourceRoot":"","sources":["../../../src/decorators/timestamps.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;IAClD,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;IAC3B,oFAAoF;IACpF,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,OAAY,EAAE,EAAE,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AACzF,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;IAClD,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;IAC3B,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AAChE,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;IACjD,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;AAC9B,CAAC,CAAC,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * @file transforms.ts
3
+ * @description Primitive decorators: @Get, @Set, @Validate. Composed: @Default, @NotNull, @Name
4
+ * @description Decoradores primitivos: @Get, @Set, @Validate. Compuestos: @Default, @NotNull, @Name
5
+ */
6
+ /**
7
+ * @description Output pipeline -- transforms value on read
8
+ * @description Pipeline de salida -- transforma el valor al leer
9
+ * @param fn (current) => any
10
+ */
11
+ export declare const Get: (...params: any[]) => (target: any, propertyKey: string | symbol) => void;
12
+ /**
13
+ * @description Input pipeline -- transforms value on write
14
+ * @description Pipeline de entrada -- transforma el valor al escribir
15
+ * @param fn (next, current) => any
16
+ */
17
+ export declare const Set: (...params: any[]) => (target: any, propertyKey: string | symbol) => void;
18
+ /**
19
+ * @description Validates value on write. Returns true to pass, or string as error message.
20
+ * @description Valida valor al escribir. Retorna true para pasar, o string como mensaje de error.
21
+ * @param validators (next, current) => true | string
22
+ */
23
+ export declare const Validate: (...params: any[]) => (target: any, propertyKey: string | symbol) => void;
24
+ /**
25
+ * @description Assigns default value when nullish. Lives in set pipeline.
26
+ * @description Asigna valor default cuando es nullish. Vive en el set pipeline.
27
+ * @param val Static value or () => value
28
+ */
29
+ export declare const Default: (val: any) => (target: any, propertyKey: string | symbol) => void;
30
+ /**
31
+ * @description Rejects null, undefined, and empty string. Composed from @Validate.
32
+ * @description Rechaza null, undefined y string vacío. Compuesto desde @Validate.
33
+ * @param msg Optional error message
34
+ */
35
+ export declare const NotNull: (msg?: string) => (target: any, propertyKey: string | symbol) => void;
36
+ /**
37
+ * @description Renames table (on class) or column (on property)
38
+ * @description Renombra tabla (en clase) o columna (en propiedad)
39
+ * @param label Custom name
40
+ */
41
+ export declare function Name(label: string): ClassDecorator & PropertyDecorator;
@@ -0,0 +1,92 @@
1
+ /**
2
+ * @file transforms.ts
3
+ * @description Primitive decorators: @Get, @Set, @Validate. Composed: @Default, @NotNull, @Name
4
+ * @description Decoradores primitivos: @Get, @Set, @Validate. Compuestos: @Default, @NotNull, @Name
5
+ */
6
+ import { decorator, getSchema } from "../core/decorator.js";
7
+ /**
8
+ * @description Output pipeline -- transforms value on read
9
+ * @description Pipeline de salida -- transforma el valor al leer
10
+ * @param fn (current) => any
11
+ */
12
+ export const Get = decorator((_schema, col, params) => {
13
+ col.get.push(params[0]);
14
+ });
15
+ /**
16
+ * @description Input pipeline -- transforms value on write
17
+ * @description Pipeline de entrada -- transforma el valor al escribir
18
+ * @param fn (next, current) => any
19
+ */
20
+ export const Set = decorator((_schema, col, params) => {
21
+ col.set.push(params[0]);
22
+ });
23
+ /**
24
+ * @description Validates value on write. Returns true to pass, or string as error message.
25
+ * @description Valida valor al escribir. Retorna true para pasar, o string como mensaje de error.
26
+ * @param validators (next, current) => true | string
27
+ */
28
+ export const Validate = decorator((_schema, col, params) => {
29
+ const validators = params[0];
30
+ const list = Array.isArray(validators) ? validators : [validators];
31
+ if (!list.length || list.some((v) => typeof v !== 'function')) {
32
+ throw new TypeError('@Validate requires functions');
33
+ }
34
+ col.set.push((next, current) => {
35
+ for (const fn of list) {
36
+ const result = fn(next, current);
37
+ if (result !== true) {
38
+ throw new Error(typeof result === 'string' ? result : `Validation failed for '${col.name}'`);
39
+ }
40
+ }
41
+ return next;
42
+ });
43
+ });
44
+ /**
45
+ * @description Assigns default value when nullish. Lives in set pipeline.
46
+ * @description Asigna valor default cuando es nullish. Vive en el set pipeline.
47
+ * @param val Static value or () => value
48
+ */
49
+ export const Default = (val) => {
50
+ const fn = typeof val === 'function'
51
+ ? (next) => next ?? val()
52
+ : (next) => next ?? val;
53
+ return Set(fn);
54
+ };
55
+ /**
56
+ * @description Rejects null, undefined, and empty string. Composed from @Validate.
57
+ * @description Rechaza null, undefined y string vacío. Compuesto desde @Validate.
58
+ * @param msg Optional error message
59
+ */
60
+ export const NotNull = (msg) => {
61
+ return Validate((next) => {
62
+ if (next === null || next === undefined || (typeof next === 'string' && next.trim() === '')) {
63
+ return typeof msg === 'string' ? msg : false;
64
+ }
65
+ return true;
66
+ });
67
+ };
68
+ /**
69
+ * @description Renames table (on class) or column (on property)
70
+ * @description Renombra tabla (en clase) o columna (en propiedad)
71
+ * @param label Custom name
72
+ */
73
+ export function Name(label) {
74
+ if (!label || typeof label !== 'string') {
75
+ throw new TypeError('@Name requires a non-empty string');
76
+ }
77
+ return (target, prop) => {
78
+ const ctor = prop === undefined ? target : target.constructor;
79
+ const schema = getSchema(ctor);
80
+ if (prop === undefined) {
81
+ schema.name = label;
82
+ }
83
+ else {
84
+ const key = String(prop);
85
+ if (!schema.columns[key]) {
86
+ schema.columns[key] = { name: key, get: [], set: [], store: {} };
87
+ }
88
+ schema.columns[key].name = label;
89
+ }
90
+ };
91
+ }
92
+ //# sourceMappingURL=transforms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transforms.js","sourceRoot":"","sources":["../../../src/decorators/transforms.ts"],"names":[],"mappings":"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"}