@arcaelas/dynamite 1.0.10 → 1.0.13

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 (105) hide show
  1. package/LICENSE.txt +32 -0
  2. package/README.txt +206 -0
  3. package/package.json +5 -4
  4. package/src/@types/index.d.ts +96 -0
  5. package/src/@types/index.js +9 -0
  6. package/{build/src → src}/core/client.d.ts +4 -0
  7. package/{build/src → src}/core/client.js +14 -2
  8. package/src/core/table.d.ts +98 -0
  9. package/src/core/table.js +459 -0
  10. package/src/core/wrapper.d.ts +17 -0
  11. package/src/core/wrapper.js +46 -0
  12. package/src/decorators/belongs_to.d.ts +1 -0
  13. package/src/decorators/belongs_to.js +24 -0
  14. package/src/decorators/created_at.d.ts +1 -0
  15. package/{build/src → src}/decorators/created_at.js +0 -7
  16. package/src/decorators/default.d.ts +1 -0
  17. package/{build/src → src}/decorators/default.js +2 -12
  18. package/src/decorators/has_many.d.ts +1 -0
  19. package/src/decorators/has_many.js +24 -0
  20. package/{build/src → src}/decorators/index.d.ts +4 -1
  21. package/src/decorators/index.js +36 -0
  22. package/src/decorators/index_sort.d.ts +12 -0
  23. package/src/decorators/index_sort.js +43 -0
  24. package/src/decorators/mutate.d.ts +2 -0
  25. package/{build/src → src}/decorators/mutate.js +2 -11
  26. package/src/decorators/name.d.ts +1 -0
  27. package/src/decorators/name.js +28 -0
  28. package/src/decorators/not_null.d.ts +1 -0
  29. package/{build/src → src}/decorators/not_null.js +0 -7
  30. package/src/decorators/primary_key.d.ts +6 -0
  31. package/src/decorators/primary_key.js +30 -0
  32. package/src/decorators/updated_at.d.ts +12 -0
  33. package/src/decorators/updated_at.js +26 -0
  34. package/src/decorators/validate.d.ts +1 -0
  35. package/{build/src → src}/decorators/validate.js +0 -7
  36. package/{build/src → src}/index.d.ts +9 -0
  37. package/{build/src → src}/index.js +14 -5
  38. package/{build/src → src}/utils/batch-relations.js +2 -1
  39. package/src/utils/circular-detector.d.ts +82 -0
  40. package/src/utils/circular-detector.js +209 -0
  41. package/src/utils/memory-manager.d.ts +42 -0
  42. package/src/utils/memory-manager.js +108 -0
  43. package/{build/src → src}/utils/projection.js +3 -2
  44. package/src/utils/relations.d.ts +17 -0
  45. package/src/utils/relations.js +166 -0
  46. package/src/utils/security-validator.d.ts +49 -0
  47. package/src/utils/security-validator.js +152 -0
  48. package/src/utils/throttle-manager.d.ts +78 -0
  49. package/src/utils/throttle-manager.js +196 -0
  50. package/src/utils/transaction-manager.d.ts +88 -0
  51. package/src/utils/transaction-manager.js +298 -0
  52. package/build/__tests__/crud.spec.d.ts +0 -7
  53. package/build/__tests__/crud.spec.js +0 -287
  54. package/build/__tests__/crud.spec.js.map +0 -1
  55. package/build/__tests__/debug-decorators.spec.d.ts +0 -7
  56. package/build/__tests__/debug-decorators.spec.js +0 -143
  57. package/build/__tests__/debug-decorators.spec.js.map +0 -1
  58. package/build/__tests__/decorators.spec.d.ts +0 -7
  59. package/build/__tests__/decorators.spec.js +0 -203
  60. package/build/__tests__/decorators.spec.js.map +0 -1
  61. package/build/__tests__/instance-crud.spec.d.ts +0 -7
  62. package/build/__tests__/instance-crud.spec.js +0 -184
  63. package/build/__tests__/instance-crud.spec.js.map +0 -1
  64. package/build/src/core/client.js.map +0 -1
  65. package/build/src/core/table.d.ts +0 -164
  66. package/build/src/core/table.js +0 -406
  67. package/build/src/core/table.js.map +0 -1
  68. package/build/src/core/wrapper.d.ts +0 -54
  69. package/build/src/core/wrapper.js +0 -27
  70. package/build/src/core/wrapper.js.map +0 -1
  71. package/build/src/decorators/created_at.d.ts +0 -8
  72. package/build/src/decorators/created_at.js.map +0 -1
  73. package/build/src/decorators/default.d.ts +0 -8
  74. package/build/src/decorators/default.js.map +0 -1
  75. package/build/src/decorators/index.js +0 -26
  76. package/build/src/decorators/index.js.map +0 -1
  77. package/build/src/decorators/index_sort.d.ts +0 -8
  78. package/build/src/decorators/index_sort.js +0 -30
  79. package/build/src/decorators/index_sort.js.map +0 -1
  80. package/build/src/decorators/mutate.d.ts +0 -9
  81. package/build/src/decorators/mutate.js.map +0 -1
  82. package/build/src/decorators/name.d.ts +0 -8
  83. package/build/src/decorators/name.js +0 -42
  84. package/build/src/decorators/name.js.map +0 -1
  85. package/build/src/decorators/not_null.d.ts +0 -8
  86. package/build/src/decorators/not_null.js.map +0 -1
  87. package/build/src/decorators/primary_key.d.ts +0 -8
  88. package/build/src/decorators/primary_key.js +0 -26
  89. package/build/src/decorators/primary_key.js.map +0 -1
  90. package/build/src/decorators/updated_at.d.ts +0 -8
  91. package/build/src/decorators/updated_at.js +0 -18
  92. package/build/src/decorators/updated_at.js.map +0 -1
  93. package/build/src/decorators/validate.d.ts +0 -8
  94. package/build/src/decorators/validate.js.map +0 -1
  95. package/build/src/index.js.map +0 -1
  96. package/build/src/utils/batch-relations.js.map +0 -1
  97. package/build/src/utils/naming.js.map +0 -1
  98. package/build/src/utils/projection.js.map +0 -1
  99. package/build/src/utils/relations.d.ts +0 -23
  100. package/build/src/utils/relations.js +0 -205
  101. package/build/src/utils/relations.js.map +0 -1
  102. /package/{build/src → src}/utils/batch-relations.d.ts +0 -0
  103. /package/{build/src → src}/utils/naming.d.ts +0 -0
  104. /package/{build/src → src}/utils/naming.js +0 -0
  105. /package/{build/src → src}/utils/projection.d.ts +0 -0
@@ -1,42 +0,0 @@
1
- "use strict";
2
- /**
3
- * @file name.ts
4
- * @descripcion Decorador @Name para tablas y columnas
5
- * @autor Miguel Alejandro
6
- * @fecha 2025-01-27
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.default = Name;
10
- const wrapper_1 = require("../core/wrapper");
11
- const naming_1 = require("../utils/naming");
12
- /** Decorador para establecer nombres personalizados de tablas y columnas */
13
- function Name(label) {
14
- (!label || typeof label !== "string") &&
15
- (() => {
16
- throw new TypeError("@Name requiere una cadena no vacía");
17
- })();
18
- return (target, prop) => {
19
- const ctor = prop === undefined ? target : target.constructor;
20
- const entry = (0, wrapper_1.ensureConfig)(ctor, (0, naming_1.toSnakePlural)(ctor.name));
21
- if (prop === undefined) {
22
- const auto = (0, naming_1.toSnakePlural)(ctor.name);
23
- entry.name !== auto &&
24
- entry.name !== label &&
25
- entry.name &&
26
- (() => {
27
- throw new Error(`La clase ${ctor.name} ya tiene un @Name distinto (${entry.name})`);
28
- })();
29
- entry.name = label;
30
- }
31
- else {
32
- const col = (0, wrapper_1.ensureColumn)(entry, prop, label);
33
- col.name &&
34
- col.name !== label &&
35
- (() => {
36
- throw new Error(`La columna '${String(prop)}' ya tiene @Name distinto (${col.name})`);
37
- })();
38
- col.name = label;
39
- }
40
- };
41
- }
42
- //# sourceMappingURL=name.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"name.js","sourceRoot":"","sources":["../../../src/decorators/name.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAMH,uBAiCC;AArCD,6CAA6D;AAC7D,4CAAgD;AAEhD,4EAA4E;AAC5E,SAAwB,IAAI,CAC1B,KAAa;IAEb,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;QACnC,CAAC,GAAG,EAAE;YACJ,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;QAC5D,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,CAAC,MAAW,EAAE,IAAsB,EAAQ,EAAE;QACnD,MAAM,IAAI,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;QAC9D,MAAM,KAAK,GAAG,IAAA,sBAAY,EAAC,IAAI,EAAE,IAAA,sBAAa,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,IAAA,sBAAa,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,KAAK,CAAC,IAAI,KAAK,IAAI;gBACjB,KAAK,CAAC,IAAI,KAAK,KAAK;gBACpB,KAAK,CAAC,IAAI;gBACV,CAAC,GAAG,EAAE;oBACJ,MAAM,IAAI,KAAK,CACb,YAAY,IAAI,CAAC,IAAI,gCAAgC,KAAK,CAAC,IAAI,GAAG,CACnE,CAAC;gBACJ,CAAC,CAAC,EAAE,CAAC;YACP,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,IAAA,sBAAY,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC7C,GAAG,CAAC,IAAI;gBACN,GAAG,CAAC,IAAI,KAAK,KAAK;gBAClB,CAAC,GAAG,EAAE;oBACJ,MAAM,IAAI,KAAK,CACb,eAAe,MAAM,CAAC,IAAI,CAAC,8BAA8B,GAAG,CAAC,IAAI,GAAG,CACrE,CAAC;gBACJ,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;QACnB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * @file not_null.ts
3
- * @descripcion Decorador @NotNull para validación no-null
4
- * @autor Miguel Alejandro
5
- * @fecha 2025-01-27
6
- */
7
- /** Decorador para validar que el valor no sea nulo, indefinido o string vacío */
8
- export default function NotNull(): PropertyDecorator;
@@ -1 +0,0 @@
1
- {"version":3,"file":"not_null.js","sourceRoot":"","sources":["../../../src/decorators/not_null.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;AAKH,0BAOC;AAVD,0DAAkC;AAElC,iFAAiF;AACjF,SAAwB,OAAO;IAC7B,OAAQ,kBAAgB,CACtB,CAAC,KAAU,EAAE,EAAE,CACb,KAAK,KAAK,IAAI;QACd,KAAK,KAAK,SAAS;QACnB,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CACrD,CAAC;AACJ,CAAC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * @file primary_key.ts
3
- * @descripcion Decorador @PrimaryKey para clave primaria compuesta
4
- * @autor Miguel Alejandro
5
- * @fecha 2025-01-27
6
- */
7
- /** Decorador para marcar propiedad como clave primaria compuesta (Index + IndexSort) */
8
- export default function PrimaryKey(name?: string): PropertyDecorator;
@@ -1,26 +0,0 @@
1
- "use strict";
2
- /**
3
- * @file primary_key.ts
4
- * @descripcion Decorador @PrimaryKey para clave primaria compuesta
5
- * @autor Miguel Alejandro
6
- * @fecha 2025-01-27
7
- */
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.default = PrimaryKey;
13
- const index_1 = __importDefault(require("./index"));
14
- const index_sort_1 = __importDefault(require("./index_sort"));
15
- /** Decorador para marcar propiedad como clave primaria compuesta (Index + IndexSort) */
16
- function PrimaryKey(name = "primary") {
17
- (typeof name !== "string" || !name.trim()) &&
18
- (() => {
19
- throw new TypeError("@PrimaryKey requiere un nombre de índice válido");
20
- })();
21
- return (target, prop) => {
22
- (0, index_1.default)()(target, prop);
23
- (0, index_sort_1.default)()(target, prop);
24
- };
25
- }
26
- //# sourceMappingURL=primary_key.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"primary_key.js","sourceRoot":"","sources":["../../../src/decorators/primary_key.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;AAMH,6BASC;AAbD,oDAA4B;AAC5B,8DAAqC;AAErC,wFAAwF;AACxF,SAAwB,UAAU,CAAC,IAAI,GAAG,SAAS;IACjD,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACxC,CAAC,GAAG,EAAE;YACJ,MAAM,IAAI,SAAS,CAAC,iDAAiD,CAAC,CAAC;QACzE,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,CAAC,MAAc,EAAE,IAAqB,EAAQ,EAAE;QACrD,IAAA,eAAK,GAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtB,IAAA,oBAAS,GAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC;AACJ,CAAC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * @file updated_at.ts
3
- * @descripcion Decorador @UpdatedAt para timestamp de actualización
4
- * @autor Miguel Alejandro
5
- * @fecha 2025-01-27
6
- */
7
- /** Decorador para establecer timestamp automático de actualización */
8
- export default function UpdatedAt(): PropertyDecorator;
@@ -1,18 +0,0 @@
1
- "use strict";
2
- /**
3
- * @file updated_at.ts
4
- * @descripcion Decorador @UpdatedAt para timestamp de actualización
5
- * @autor Miguel Alejandro
6
- * @fecha 2025-01-27
7
- */
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.default = UpdatedAt;
13
- const mutate_1 = __importDefault(require("./mutate"));
14
- /** Decorador para establecer timestamp automático de actualización */
15
- function UpdatedAt() {
16
- return (0, mutate_1.default)(() => new Date().toISOString());
17
- }
18
- //# sourceMappingURL=updated_at.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"updated_at.js","sourceRoot":"","sources":["../../../src/decorators/updated_at.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;AAKH,4BAEC;AALD,sDAA8B;AAE9B,sEAAsE;AACtE,SAAwB,SAAS;IAC/B,OAAO,IAAA,gBAAM,EAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AAChD,CAAC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * @file validate.ts
3
- * @descripcion Decorador @Validate para validaciones
4
- * @autor Miguel Alejandro
5
- * @fecha 2025-01-27
6
- */
7
- /** Decorador para aplicar validaciones a propiedades */
8
- export default function Validate(validators: ((v: unknown) => true | string) | ((v: unknown) => true | string)[]): PropertyDecorator;
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/decorators/validate.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAMH,2BAkBC;AAtBD,6CAA4E;AAC5E,4CAAgD;AAEhD,wDAAwD;AACxD,SAAwB,QAAQ,CAC9B,UAEqC;IAErC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACnE,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,UAAU,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,SAAS,CAAC,8BAA8B,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,CAAC,MAAc,EAAE,IAAqB,EAAQ,EAAE;QACrD,MAAM,IAAI,GAAI,MAAc,CAAC,WAAW,CAAC;QACzC,MAAM,KAAK,GAAG,IAAA,sBAAY,EAAC,IAAI,EAAE,IAAA,sBAAa,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,IAAA,sBAAY,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC;QACpB,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3B,CAAC,MAAM,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG;YACzD,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAC;AACJ,CAAC;AAED,6EAA6E;AAC7E,SAAS,aAAa,CAAC,KAAU,EAAE,GAAW,EAAE,IAAqB;IACnE,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE;QACjC,GAAG;YACD,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QACD,GAAG,CAAC,GAAY;YACd,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,eAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YACjC,GAAG;gBACD,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS;oBAC5C,CAAC,CAAC,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU;wBACjC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE;wBACf,CAAC,CAAC,GAAG,CAAC,OAAO;oBACf,CAAC,CAAC,GAAG,CAAC;YACV,IAAI,GAAG,CAAC,MAAM;gBAAE,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM;oBAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACzD,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACjB,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;oBAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;oBACjB,CAAC,KAAK,IAAI;wBACR,CAAC,GAAG,EAAE;4BACJ,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;wBACpE,CAAC,CAAC,EAAE,CAAC;gBACT,CAAC;YACH,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QAClB,CAAC;QACD,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;AACL,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,eAAe;AACf,wCAAyC;AAAhC,kGAAA,QAAQ,OAAA;AACjB,sCAAgD;AAAvC,+GAAA,OAAO,OAAS;AAEzB,yDAAyD;AAEzD,aAAa;AACb,sDAA+D;AAAtD,wHAAA,OAAO,OAAa;AAC7B,gDAA0D;AAAjD,mHAAA,OAAO,OAAW;AAC3B,4CAAsD;AAA7C,+GAAA,OAAO,OAAS;AACzB,sDAA+D;AAAtD,wHAAA,OAAO,OAAa;AAC7B,8CAAwD;AAA/C,iHAAA,OAAO,OAAU;AAC1B,0CAAoD;AAA3C,6GAAA,OAAO,OAAQ;AACxB,kDAA2D;AAAlD,oHAAA,OAAO,OAAW;AAC3B,wDAAiE;AAAxD,0HAAA,OAAO,OAAc;AAC9B,sDAA+D;AAAtD,wHAAA,OAAO,OAAa;AAC7B,kDAA4D;AAAnD,qHAAA,OAAO,OAAY;AAE5B,YAAY;AACZ,+CAAuD;AAA9C,sGAAA,SAAS,OAAA;AAAE,oGAAA,OAAO,OAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"batch-relations.js","sourceRoot":"","sources":["../../../src/utils/batch-relations.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"naming.js","sourceRoot":"","sources":["../../../src/utils/naming.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;AAKH,sCAEC;AALD,0DAAkC;AAElC,wEAAwE;AACxE,SAAgB,aAAa,CAAC,KAAa;IACzC,OAAO,IAAA,mBAAS,EAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC/E,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../src/utils/projection.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,0CAA0C;AACnC,MAAM,eAAe,GAAG,CAC7B,UAAqB,EACrB,IAAU,EACU,EAAE;IACtB,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAEnD,qCAAqC;IACrC,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CACvC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAC7D,CAAC;IAEF,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACzE,CAAC,CAAC;AAZW,QAAA,eAAe,mBAY1B;AAEF,gDAAgD;AACzC,MAAM,0BAA0B,GAAG,CACxC,OAAY,EACZ,cAAyB,EACf,EAAE;IACZ,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;IAEjD,wCAAwC;IACxC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CACnC,CAAC,CAAC,WAAW,EAAE,OAAO,CAAgB,EAAE,EAAE;QACxC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAE5B,yBAAyB;QACzB,IAAI,OAAO,EAAE,UAAU;YAAE,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5D,IAAI,OAAO,EAAE,QAAQ;YAAE,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC,CACF,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC,CAAC;AAlBW,QAAA,0BAA0B,8BAkBrC;AAEF,oDAAoD;AAC7C,MAAM,kBAAkB,GAAG,CAChC,KAAU,EACV,QAAuC,EAC7B,EAAE;IACZ,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAa,CAAC;IAE5D,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC,MAAM,CACnB,CAAC,GAAW,EAAE,EAAE,CACd,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK;gBAC5B,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CACjD,CAAC;QAEJ,KAAK,MAAM;YACT,OAAO,OAAO,CAAC,MAAM,CACnB,CAAC,GAAW,EAAE,EAAE,CACd,CAAC,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAChE,CAAC;QAEJ,KAAK,QAAQ,CAAC;QACd;YACE,OAAO,OAAO,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAzBW,QAAA,kBAAkB,sBAyB7B"}
@@ -1,23 +0,0 @@
1
- /**
2
- * @file relations.ts
3
- * @descripcion Sistema de relaciones completo ultra-conciso
4
- * @autor Miguel Alejandro
5
- * @fecha 2025-01-27
6
- */
7
- /** Decorador @hasMany para relaciones 1:N */
8
- export declare const hasMany: (targetModel: () => any, foreignKey: string, localKey?: string) => (target: any, propertyKey: string) => void;
9
- /** Decorador @belongsTo para relaciones N:1 */
10
- export declare const belongsTo: (targetModel: () => any, localKey: string, foreignKey?: string) => (target: any, propertyKey: string) => void;
11
- /** Automatic optimized includes processing with transparent batch loading */
12
- export declare const processIncludes: (Model: any, items: any[], include: any, depth?: number) => Promise<any[]>;
13
- /** Clear relation cache for specific model */
14
- export declare const clearRelationCache: (Model: any) => boolean;
15
- /** Start the cleanup interval */
16
- export declare const startCleanupInterval: () => void;
17
- /** Stop the cleanup interval */
18
- export declare const stopCleanupInterval: () => void;
19
- /** Separar opciones de query e include */
20
- export declare const separateQueryOptions: (options: any) => {
21
- queryOptions: any;
22
- includeOptions: any;
23
- };
@@ -1,205 +0,0 @@
1
- "use strict";
2
- /**
3
- * @file relations.ts
4
- * @descripcion Sistema de relaciones completo ultra-conciso
5
- * @autor Miguel Alejandro
6
- * @fecha 2025-01-27
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.separateQueryOptions = exports.stopCleanupInterval = exports.startCleanupInterval = exports.clearRelationCache = exports.processIncludes = exports.belongsTo = exports.hasMany = void 0;
10
- const wrapper_1 = require("../core/wrapper");
11
- const naming_1 = require("./naming");
12
- const relCache = new Map();
13
- /** Decorador @hasMany para relaciones 1:N */
14
- const hasMany = (targetModel, foreignKey, localKey = "id") => (target, propertyKey) => {
15
- // Registrar metadatos de relación
16
- (0, wrapper_1.ensureConfig)(target.constructor, (0, naming_1.toSnakePlural)(target.constructor.name)).relations.set(propertyKey, {
17
- type: "hasMany",
18
- targetModel,
19
- foreignKey,
20
- localKey,
21
- });
22
- // Definir getter dinámico para la propiedad de relación
23
- Object.defineProperty(target, propertyKey, {
24
- get: function () {
25
- // Intentar obtener datos cargados previamente
26
- const cached = this[`_${propertyKey}`];
27
- if (cached !== undefined)
28
- return cached;
29
- // Si no hay datos cargados, retornar array vacío (lazy loading no implementado aquí)
30
- console.warn(`Relación ${propertyKey} no cargada. Use includes en la consulta.`);
31
- return [];
32
- },
33
- configurable: true,
34
- enumerable: false,
35
- });
36
- };
37
- exports.hasMany = hasMany;
38
- /** Decorador @belongsTo para relaciones N:1 */
39
- const belongsTo = (targetModel, localKey, foreignKey = "id") => (target, propertyKey) => {
40
- // Registrar metadatos de relación
41
- (0, wrapper_1.ensureConfig)(target.constructor, (0, naming_1.toSnakePlural)(target.constructor.name)).relations.set(propertyKey, {
42
- type: "belongsTo",
43
- targetModel,
44
- localKey,
45
- foreignKey,
46
- });
47
- // Definir getter dinámico para la propiedad de relación
48
- Object.defineProperty(target, propertyKey, {
49
- get: function () {
50
- // Intentar obtener datos cargados previamente
51
- const cached = this[`_${propertyKey}`];
52
- if (cached !== undefined)
53
- return cached;
54
- // Si no hay datos cargados, retornar null (lazy loading no implementado aquí)
55
- console.warn(`Relación ${propertyKey} no cargada. Use includes en la consulta.`);
56
- return null;
57
- },
58
- configurable: true,
59
- enumerable: false,
60
- });
61
- };
62
- exports.belongsTo = belongsTo;
63
- /** Automatic batch loading for hasMany relations */
64
- const batchLoadHasMany = async (Model, items, relation) => {
65
- const { targetModel, foreignKey, localKey } = relation;
66
- const TargetModel = targetModel();
67
- const parentKeys = items.map((item) => item[localKey]).filter(Boolean);
68
- if (!parentKeys.length)
69
- return new Map();
70
- const relatedItems = await TargetModel.where({
71
- [foreignKey]: { in: parentKeys },
72
- });
73
- const grouped = new Map();
74
- relatedItems.forEach((item) => {
75
- const key = item[foreignKey];
76
- if (!grouped.has(key))
77
- grouped.set(key, []);
78
- grouped.get(key).push(item);
79
- });
80
- return grouped;
81
- };
82
- /** Automatic batch loading for belongsTo relations with TTL cache */
83
- const batchLoadBelongsTo = async (Model, items, relation) => {
84
- const { targetModel, localKey, foreignKey } = relation;
85
- const TargetModel = targetModel();
86
- const cacheKey = `${TargetModel.name}_belongsTo`;
87
- const cache = relCache.get(cacheKey) || new Map();
88
- relCache.set(cacheKey, cache);
89
- const now = Date.now();
90
- const keysToFetch = [];
91
- const cachedResults = new Map();
92
- items.forEach((item) => {
93
- const key = item[localKey];
94
- if (!key)
95
- return;
96
- const cached = cache.get(key);
97
- if (cached && cached.expires > now) {
98
- cachedResults.set(key, cached.data);
99
- }
100
- else {
101
- keysToFetch.push(key);
102
- }
103
- });
104
- if (keysToFetch.length) {
105
- console.log("DEBUG: batchLoadBelongsTo fetching keys:", keysToFetch, "for foreignKey:", foreignKey);
106
- console.log("DEBUG: TargetModel:", TargetModel.name);
107
- try {
108
- const fetchedItems = await TargetModel.where({
109
- [foreignKey]: { in: keysToFetch },
110
- });
111
- console.log("DEBUG: batchLoadBelongsTo fetched items:", fetchedItems.length);
112
- const expires = now + 300000;
113
- fetchedItems.forEach((item) => {
114
- const key = item[foreignKey];
115
- cache.set(key, { data: item, expires });
116
- cachedResults.set(key, item);
117
- });
118
- }
119
- catch (error) {
120
- console.error("DEBUG: batchLoadBelongsTo error:", error);
121
- throw error;
122
- }
123
- }
124
- return cachedResults;
125
- };
126
- /** Automatic optimized includes processing with transparent batch loading */
127
- const processIncludes = async (Model, items, include, depth = 0) => {
128
- if (!include || depth > 10 || !items.length)
129
- return items;
130
- const meta = Model.getMeta();
131
- // Process all relations in parallel with automatic batching
132
- const relationPromises = Object.entries(include).map(async ([relationKey, relationOptions]) => {
133
- const relation = meta.relations.get(relationKey);
134
- if (!relation)
135
- return;
136
- let relatedData;
137
- // Automatic batch loading based on relation type
138
- if (relation.type === "hasMany") {
139
- relatedData = await batchLoadHasMany(Model, items, relation);
140
- }
141
- else {
142
- relatedData = await batchLoadBelongsTo(Model, items, relation);
143
- }
144
- // Assign relations to items using private properties for getters
145
- items.forEach((item) => {
146
- const key = item[relation.localKey];
147
- const related = relatedData.get(key);
148
- // Almacenar en propiedad privada que el getter dinámico busca
149
- item[`_${relationKey}`] =
150
- relation.type === "hasMany" ? related || [] : related || null;
151
- });
152
- // Recursive processing for nested includes
153
- if (relationOptions?.include && relatedData.size) {
154
- const allRelated = Array.from(relatedData.values())
155
- .flat()
156
- .filter(Boolean);
157
- const TargetModel = relation.targetModel();
158
- await (0, exports.processIncludes)(TargetModel, allRelated, relationOptions.include, depth + 1);
159
- }
160
- });
161
- await Promise.all(relationPromises);
162
- return items;
163
- };
164
- exports.processIncludes = processIncludes;
165
- /** Auto cleanup expired cache entries */
166
- const cleanupExpiredCache = () => {
167
- const now = Date.now();
168
- relCache.forEach((cache, modelKey) => {
169
- cache.forEach((entry, key) => {
170
- if (entry.expires <= now)
171
- cache.delete(key);
172
- });
173
- if (cache.size === 0)
174
- relCache.delete(modelKey);
175
- });
176
- };
177
- /** Clear relation cache for specific model */
178
- const clearRelationCache = (Model) => relCache.delete(`${Model.name}_belongsTo`);
179
- exports.clearRelationCache = clearRelationCache;
180
- // Auto cleanup every 5 minutes
181
- let cleanupInterval = null;
182
- /** Start the cleanup interval */
183
- const startCleanupInterval = () => {
184
- if (!cleanupInterval) {
185
- cleanupInterval = setInterval(cleanupExpiredCache, 300000);
186
- }
187
- };
188
- exports.startCleanupInterval = startCleanupInterval;
189
- /** Stop the cleanup interval */
190
- const stopCleanupInterval = () => {
191
- if (cleanupInterval) {
192
- clearInterval(cleanupInterval);
193
- cleanupInterval = null;
194
- }
195
- };
196
- exports.stopCleanupInterval = stopCleanupInterval;
197
- // Auto-start cleanup interval
198
- (0, exports.startCleanupInterval)();
199
- /** Separar opciones de query e include */
200
- const separateQueryOptions = (options) => {
201
- const { include, ...queryOptions } = options;
202
- return { queryOptions, includeOptions: include };
203
- };
204
- exports.separateQueryOptions = separateQueryOptions;
205
- //# sourceMappingURL=relations.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"relations.js","sourceRoot":"","sources":["../../../src/utils/relations.ts"],"names":[],"mappings":"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"}
File without changes
File without changes
File without changes
File without changes