@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,246 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.default = relations;
13
+ const index_1 = require("../index");
14
+ // -- 4 niveles: Org -> Dept -> Employee -> Task --
15
+ let Org = class Org extends index_1.Table {
16
+ };
17
+ __decorate([
18
+ (0, index_1.PrimaryKey)(),
19
+ __metadata("design:type", Object)
20
+ ], Org.prototype, "id", void 0);
21
+ __decorate([
22
+ (0, index_1.NotNull)(),
23
+ __metadata("design:type", String)
24
+ ], Org.prototype, "name", void 0);
25
+ __decorate([
26
+ (0, index_1.HasMany)(() => Dept, 'org_id', 'id'),
27
+ __metadata("design:type", Object)
28
+ ], Org.prototype, "departments", void 0);
29
+ Org = __decorate([
30
+ (0, index_1.Name)('test_rel_orgs')
31
+ ], Org);
32
+ let Dept = class Dept extends index_1.Table {
33
+ };
34
+ __decorate([
35
+ (0, index_1.PrimaryKey)(),
36
+ __metadata("design:type", Object)
37
+ ], Dept.prototype, "id", void 0);
38
+ __decorate([
39
+ (0, index_1.NotNull)(),
40
+ __metadata("design:type", String)
41
+ ], Dept.prototype, "name", void 0);
42
+ __decorate([
43
+ (0, index_1.Default)(''),
44
+ __metadata("design:type", String)
45
+ ], Dept.prototype, "org_id", void 0);
46
+ __decorate([
47
+ (0, index_1.BelongsTo)(() => Org, 'id', 'org_id'),
48
+ __metadata("design:type", Object)
49
+ ], Dept.prototype, "org", void 0);
50
+ __decorate([
51
+ (0, index_1.HasMany)(() => Employee, 'dept_id', 'id'),
52
+ __metadata("design:type", Object)
53
+ ], Dept.prototype, "employees", void 0);
54
+ Dept = __decorate([
55
+ (0, index_1.Name)('test_rel_depts')
56
+ ], Dept);
57
+ let Employee = class Employee extends index_1.Table {
58
+ };
59
+ __decorate([
60
+ (0, index_1.PrimaryKey)(),
61
+ __metadata("design:type", Object)
62
+ ], Employee.prototype, "id", void 0);
63
+ __decorate([
64
+ (0, index_1.NotNull)(),
65
+ __metadata("design:type", String)
66
+ ], Employee.prototype, "name", void 0);
67
+ __decorate([
68
+ (0, index_1.Default)(''),
69
+ __metadata("design:type", String)
70
+ ], Employee.prototype, "dept_id", void 0);
71
+ __decorate([
72
+ (0, index_1.BelongsTo)(() => Dept, 'id', 'dept_id'),
73
+ __metadata("design:type", Object)
74
+ ], Employee.prototype, "department", void 0);
75
+ __decorate([
76
+ (0, index_1.HasMany)(() => EmpTask, 'employee_id', 'id'),
77
+ __metadata("design:type", Object)
78
+ ], Employee.prototype, "tasks", void 0);
79
+ __decorate([
80
+ (0, index_1.ManyToMany)(() => Project, 'test_rel_emp_projects', 'employee_id', 'project_id'),
81
+ __metadata("design:type", Object)
82
+ ], Employee.prototype, "projects", void 0);
83
+ Employee = __decorate([
84
+ (0, index_1.Name)('test_rel_employees')
85
+ ], Employee);
86
+ let EmpTask = class EmpTask extends index_1.Table {
87
+ };
88
+ __decorate([
89
+ (0, index_1.PrimaryKey)(),
90
+ __metadata("design:type", Object)
91
+ ], EmpTask.prototype, "id", void 0);
92
+ __decorate([
93
+ (0, index_1.NotNull)(),
94
+ __metadata("design:type", String)
95
+ ], EmpTask.prototype, "title", void 0);
96
+ __decorate([
97
+ (0, index_1.Default)(''),
98
+ __metadata("design:type", String)
99
+ ], EmpTask.prototype, "employee_id", void 0);
100
+ __decorate([
101
+ (0, index_1.BelongsTo)(() => Employee, 'id', 'employee_id'),
102
+ __metadata("design:type", Object)
103
+ ], EmpTask.prototype, "employee", void 0);
104
+ EmpTask = __decorate([
105
+ (0, index_1.Name)('test_rel_tasks')
106
+ ], EmpTask);
107
+ let Project = class Project extends index_1.Table {
108
+ };
109
+ __decorate([
110
+ (0, index_1.PrimaryKey)(),
111
+ __metadata("design:type", Object)
112
+ ], Project.prototype, "id", void 0);
113
+ __decorate([
114
+ (0, index_1.NotNull)(),
115
+ __metadata("design:type", String)
116
+ ], Project.prototype, "name", void 0);
117
+ __decorate([
118
+ (0, index_1.ManyToMany)(() => Employee, 'test_rel_emp_projects', 'project_id', 'employee_id'),
119
+ __metadata("design:type", Object)
120
+ ], Project.prototype, "members", void 0);
121
+ Project = __decorate([
122
+ (0, index_1.Name)('test_rel_projects')
123
+ ], Project);
124
+ let passed = 0;
125
+ let failed = 0;
126
+ function assert(label, condition, detail) {
127
+ if (condition) {
128
+ console.log(` OK ${label}`);
129
+ passed++;
130
+ }
131
+ else {
132
+ console.error(` FAIL ${label}${detail ? ` -- ${detail}` : ''}`);
133
+ failed++;
134
+ }
135
+ }
136
+ async function relations() {
137
+ console.log('\n=== RELATIONS ===\n');
138
+ const dynamite = new index_1.Dynamite({
139
+ tables: [Org, Dept, Employee, EmpTask, Project],
140
+ region: 'local',
141
+ endpoint: 'http://localhost:8000',
142
+ credentials: { accessKeyId: 'local', secretAccessKey: 'local' },
143
+ });
144
+ await dynamite.connect();
145
+ await dynamite.sync();
146
+ // -- Seed data --
147
+ const org = await Org.create({ name: 'Acme Corp' });
148
+ const eng = await Dept.create({ name: 'Engineering', org_id: org.id });
149
+ const sales = await Dept.create({ name: 'Sales', org_id: org.id });
150
+ const e1 = await Employee.create({ name: 'Alice', dept_id: eng.id });
151
+ const e2 = await Employee.create({ name: 'Bob', dept_id: eng.id });
152
+ const e3 = await Employee.create({ name: 'Charlie', dept_id: sales.id });
153
+ await EmpTask.create({ title: 'Build API', employee_id: e1.id });
154
+ await EmpTask.create({ title: 'Write tests', employee_id: e1.id });
155
+ await EmpTask.create({ title: 'Code review', employee_id: e2.id });
156
+ await EmpTask.create({ title: 'Close deal', employee_id: e3.id });
157
+ const p1 = await Project.create({ name: 'Project Alpha' });
158
+ const p2 = await Project.create({ name: 'Project Beta' });
159
+ // -- HasMany --
160
+ console.log('-- HasMany --');
161
+ const org_with_depts = await Org.where({ id: org.id }, { include: { departments: true } });
162
+ assert('Org -> departments', org_with_depts[0]?.departments?.length === 2);
163
+ const eng_with_emps = await Dept.where({ id: eng.id }, { include: { employees: true } });
164
+ assert('Dept -> employees', eng_with_emps[0]?.employees?.length === 2);
165
+ // -- BelongsTo --
166
+ console.log('\n-- BelongsTo --');
167
+ const dept_with_org = await Dept.where({ id: eng.id }, { include: { org: true } });
168
+ assert('Dept -> org', dept_with_org[0]?.org?.name === 'Acme Corp');
169
+ const emp_with_dept = await Employee.where({ id: e1.id }, { include: { department: true } });
170
+ assert('Employee -> department', emp_with_dept[0]?.department?.name === 'Engineering');
171
+ // -- HasMany con opciones (limit) --
172
+ console.log('\n-- HasMany con opciones --');
173
+ const e1_tasks_limited = await Employee.where({ id: e1.id }, {
174
+ include: { tasks: { limit: 1 } }
175
+ });
176
+ assert('HasMany con limit:1', e1_tasks_limited[0]?.tasks?.length === 1);
177
+ // -- Include recursivo 2 niveles: Org -> Dept -> Employee --
178
+ console.log('\n-- Include recursivo 2 niveles --');
179
+ const org_2lvl = await Org.where({ id: org.id }, {
180
+ include: {
181
+ departments: {
182
+ include: { employees: true }
183
+ }
184
+ }
185
+ });
186
+ const all_emps = org_2lvl[0]?.departments?.flatMap((d) => d.employees || []);
187
+ assert('Org -> Dept -> Employee (2 niveles)', all_emps?.length === 3);
188
+ // -- Include recursivo 3 niveles: Org -> Dept -> Employee -> Task --
189
+ console.log('\n-- Include recursivo 3 niveles --');
190
+ const org_3lvl = await Org.where({ id: org.id }, {
191
+ include: {
192
+ departments: {
193
+ include: {
194
+ employees: {
195
+ include: { tasks: true }
196
+ }
197
+ }
198
+ }
199
+ }
200
+ });
201
+ const eng_dept = org_3lvl[0]?.departments?.find((d) => d.name === 'Engineering');
202
+ const alice = eng_dept?.employees?.find((e) => e.name === 'Alice');
203
+ assert('3 niveles: Alice tiene 2 tasks', alice?.tasks?.length === 2);
204
+ const bob = eng_dept?.employees?.find((e) => e.name === 'Bob');
205
+ assert('3 niveles: Bob tiene 1 task', bob?.tasks?.length === 1);
206
+ const sales_dept = org_3lvl[0]?.departments?.find((d) => d.name === 'Sales');
207
+ const charlie = sales_dept?.employees?.find((e) => e.name === 'Charlie');
208
+ assert('3 niveles: Charlie tiene 1 task', charlie?.tasks?.length === 1);
209
+ // -- ManyToMany: attach --
210
+ console.log('\n-- ManyToMany --');
211
+ await e1.attach(Project, p1.id);
212
+ await e1.attach(Project, p2.id);
213
+ await e2.attach(Project, p1.id);
214
+ const e1_projects = await Employee.where({ id: e1.id }, { include: { projects: true } });
215
+ assert('attach: Alice tiene 2 projects', e1_projects[0]?.projects?.length === 2);
216
+ const p1_members = await Project.where({ id: p1.id }, { include: { members: true } });
217
+ assert('attach: Project Alpha tiene 2 members', p1_members[0]?.members?.length === 2);
218
+ // -- ManyToMany: detach --
219
+ await e1.detach(Project, p2.id);
220
+ const e1_after_detach = await Employee.where({ id: e1.id }, { include: { projects: true } });
221
+ assert('detach: Alice tiene 1 project', e1_after_detach[0]?.projects?.length === 1);
222
+ // -- ManyToMany: sync --
223
+ await e1.sync(Project, [p2.id]);
224
+ const e1_after_sync = await Employee.where({ id: e1.id }, { include: { projects: true } });
225
+ assert('sync: Alice solo tiene Project Beta', e1_after_sync[0]?.projects?.length === 1);
226
+ assert('sync: es Project Beta', e1_after_sync[0]?.projects?.[0]?.name === 'Project Beta');
227
+ // -- Include recursivo 3 niveles + ManyToMany --
228
+ console.log('\n-- Recursivo + ManyToMany --');
229
+ const org_full = await Org.where({ id: org.id }, {
230
+ include: {
231
+ departments: {
232
+ include: {
233
+ employees: {
234
+ include: { tasks: true, projects: true }
235
+ }
236
+ }
237
+ }
238
+ }
239
+ });
240
+ const eng_full = org_full[0]?.departments?.find((d) => d.name === 'Engineering');
241
+ const alice_full = eng_full?.employees?.find((e) => e.name === 'Alice');
242
+ assert('full tree: Alice tasks + projects', alice_full?.tasks?.length === 2 && alice_full?.projects?.length === 1);
243
+ console.log(`\n Relations: ${passed} passed, ${failed} failed`);
244
+ return failed;
245
+ }
246
+ //# sourceMappingURL=relations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relations.js","sourceRoot":"","sources":["../../../src/test/relations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export default function transactions(): Promise<number>;
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.default = transactions;
13
+ const index_1 = require("../index");
14
+ let Account = class Account extends index_1.Table {
15
+ };
16
+ __decorate([
17
+ (0, index_1.PrimaryKey)(),
18
+ __metadata("design:type", Object)
19
+ ], Account.prototype, "id", void 0);
20
+ __decorate([
21
+ (0, index_1.NotNull)(),
22
+ __metadata("design:type", String)
23
+ ], Account.prototype, "name", void 0);
24
+ __decorate([
25
+ (0, index_1.Default)(() => 0),
26
+ __metadata("design:type", Object)
27
+ ], Account.prototype, "balance", void 0);
28
+ __decorate([
29
+ (0, index_1.CreatedAt)(),
30
+ __metadata("design:type", Object)
31
+ ], Account.prototype, "created_at", void 0);
32
+ Account = __decorate([
33
+ (0, index_1.Name)('test_tx_accounts')
34
+ ], Account);
35
+ let TxLog = class TxLog extends index_1.Table {
36
+ };
37
+ __decorate([
38
+ (0, index_1.PrimaryKey)(),
39
+ __metadata("design:type", Object)
40
+ ], TxLog.prototype, "id", void 0);
41
+ __decorate([
42
+ (0, index_1.Default)(''),
43
+ __metadata("design:type", String)
44
+ ], TxLog.prototype, "account_id", void 0);
45
+ __decorate([
46
+ (0, index_1.Default)(''),
47
+ __metadata("design:type", String)
48
+ ], TxLog.prototype, "action", void 0);
49
+ __decorate([
50
+ (0, index_1.Default)(() => 0),
51
+ __metadata("design:type", Object)
52
+ ], TxLog.prototype, "amount", void 0);
53
+ TxLog = __decorate([
54
+ (0, index_1.Name)('test_tx_logs')
55
+ ], TxLog);
56
+ let passed = 0;
57
+ let failed = 0;
58
+ function assert(label, condition, detail) {
59
+ if (condition) {
60
+ console.log(` OK ${label}`);
61
+ passed++;
62
+ }
63
+ else {
64
+ console.error(` FAIL ${label}${detail ? ` -- ${detail}` : ''}`);
65
+ failed++;
66
+ }
67
+ }
68
+ async function transactions() {
69
+ console.log('\n=== TRANSACTIONS ===\n');
70
+ const dynamite = new index_1.Dynamite({
71
+ tables: [Account, TxLog],
72
+ region: 'local',
73
+ endpoint: 'http://localhost:8000',
74
+ credentials: { accessKeyId: 'local', secretAccessKey: 'local' },
75
+ });
76
+ await dynamite.connect();
77
+ await dynamite.sync();
78
+ // -- Multi-create en tx --
79
+ console.log('-- Multi-create --');
80
+ let a1, a2;
81
+ await dynamite.tx(async (tx) => {
82
+ a1 = await Account.create({ name: 'Alice', balance: 1000 }, { tx });
83
+ a2 = await Account.create({ name: 'Bob', balance: 500 }, { tx });
84
+ });
85
+ assert('tx multi-create: ambos persistidos', a1.__isPersisted && a2.__isPersisted);
86
+ const alice = await Account.first({ id: a1.id });
87
+ const bob = await Account.first({ id: a2.id });
88
+ assert('tx multi-create: Alice en DB', alice?.name === 'Alice' && alice?.balance === 1000);
89
+ assert('tx multi-create: Bob en DB', bob?.name === 'Bob' && bob?.balance === 500);
90
+ // -- Create + increment en tx --
91
+ console.log('\n-- Create + increment --');
92
+ let log1;
93
+ await dynamite.tx(async (tx) => {
94
+ log1 = await TxLog.create({ account_id: a1.id, action: 'deposit', amount: 200 }, { tx });
95
+ await Account.increment('balance', 200, { id: a1.id }, { tx });
96
+ });
97
+ const alice_after = await Account.first({ id: a1.id });
98
+ assert('tx increment: balance +200', alice_after?.balance === 1200);
99
+ assert('tx increment: log creado', log1.__isPersisted === true);
100
+ const log_check = await TxLog.first({ id: log1.id });
101
+ assert('tx increment: log en DB', log_check?.action === 'deposit');
102
+ // -- Transferencia atomica (decrement + increment + log) --
103
+ console.log('\n-- Transferencia atomica --');
104
+ await dynamite.tx(async (tx) => {
105
+ await Account.decrement('balance', 300, { id: a1.id }, { tx });
106
+ await Account.increment('balance', 300, { id: a2.id }, { tx });
107
+ await TxLog.create({ account_id: a1.id, action: 'transfer_out', amount: 300 }, { tx });
108
+ await TxLog.create({ account_id: a2.id, action: 'transfer_in', amount: 300 }, { tx });
109
+ });
110
+ const alice_transfer = await Account.first({ id: a1.id });
111
+ const bob_transfer = await Account.first({ id: a2.id });
112
+ assert('transferencia: Alice 1200-300=900', alice_transfer?.balance === 900);
113
+ assert('transferencia: Bob 500+300=800', bob_transfer?.balance === 800);
114
+ // -- Tx fallida: nada se persiste --
115
+ console.log('\n-- Tx fallida --');
116
+ const alice_before_fail = alice_transfer.balance;
117
+ let failed_account;
118
+ try {
119
+ await dynamite.tx(async (tx) => {
120
+ failed_account = await Account.create({ name: 'Ghost' }, { tx });
121
+ await Account.increment('balance', 99999, { id: a1.id }, { tx });
122
+ throw new Error('Simulated failure');
123
+ });
124
+ }
125
+ catch { }
126
+ assert('tx fallida: instancia no persistida', failed_account.__isPersisted === false);
127
+ const alice_after_fail = await Account.first({ id: a1.id });
128
+ assert('tx fallida: balance intacto', alice_after_fail?.balance === alice_before_fail);
129
+ const ghost = await Account.where({ name: 'Ghost' });
130
+ assert('tx fallida: Ghost no existe', ghost.length === 0);
131
+ // -- Tx con multiples operaciones (>25, auto-chunk) --
132
+ console.log('\n-- Auto-chunk (30 creates) --');
133
+ const ids = [];
134
+ await dynamite.tx(async (tx) => {
135
+ for (let i = 0; i < 30; i++) {
136
+ const acc = await Account.create({ name: `Bulk_${i}`, balance: i }, { tx });
137
+ ids.push(acc.id);
138
+ }
139
+ });
140
+ const bulk_check = await Account.where({ name: { $include: 'Bulk_' } });
141
+ assert('auto-chunk: 30 registros creados', bulk_check.length === 30);
142
+ console.log(`\n Transactions: ${passed} passed, ${failed} failed`);
143
+ return failed;
144
+ }
145
+ //# sourceMappingURL=transactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactions.js","sourceRoot":"","sources":["../../../src/test/transactions.ts"],"names":[],"mappings":"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"}
@@ -190,18 +190,11 @@ const processIncludes = async (items, include, TableClass, depth = 0, queryCache
190
190
  // Guardar en caché
191
191
  queryCache.set(cache_key, data);
192
192
  }
193
- // Asignar datos relacionados a cada item
194
193
  for (const item of items) {
195
194
  const key = String(item[relation.localKey]);
196
- const value = (relation.type === 'HasMany' || relation.type === 'ManyToMany')
195
+ item[relation_key] = (relation.type === 'HasMany' || relation.type === 'ManyToMany')
197
196
  ? data.get(key) ?? []
198
197
  : data.get(key) ?? null;
199
- Object.defineProperty(item, relation_key, {
200
- value,
201
- writable: true,
202
- enumerable: true,
203
- configurable: true
204
- });
205
198
  }
206
199
  // Recursión para includes anidados con caché propagado
207
200
  if (opts.include && data.size) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relations.js","sourceRoot":"","sources":["../../../src/utils/relations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @description ULID (Universally Unique Lexicographically Sortable Identifier) generator.
3
+ * @description Generador de ULID (Identificador Único Lexicográficamente Ordenable).
4
+ *
5
+ * 48 bits timestamp (ms) + 80 bits random, Crockford Base32 encoding.
6
+ * Monotonic within the same millisecond: sequential calls in the same ms produce incrementing IDs.
7
+ *
8
+ * Monotónico dentro del mismo milisegundo: llamadas secuenciales en el mismo ms producen IDs incrementales.
9
+ */
10
+ export declare function ulid(): string;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ /**
3
+ * @description ULID (Universally Unique Lexicographically Sortable Identifier) generator.
4
+ * @description Generador de ULID (Identificador Único Lexicográficamente Ordenable).
5
+ *
6
+ * 48 bits timestamp (ms) + 80 bits random, Crockford Base32 encoding.
7
+ * Monotonic within the same millisecond: sequential calls in the same ms produce incrementing IDs.
8
+ *
9
+ * Monotónico dentro del mismo milisegundo: llamadas secuenciales en el mismo ms producen IDs incrementales.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ulid = ulid;
13
+ const CHARS = '0123456789ABCDEFGHJKMNPQRSTVWXYZ';
14
+ let last_time = 0;
15
+ let last_random_hi = 0;
16
+ let last_random_lo = 0;
17
+ function encode_time(time, len) {
18
+ let str = '';
19
+ for (let i = len; i > 0; i--) {
20
+ str = CHARS[time % 32] + str;
21
+ time = Math.floor(time / 32);
22
+ }
23
+ return str;
24
+ }
25
+ function encode_random() {
26
+ let str = '';
27
+ let hi = last_random_hi;
28
+ let lo = last_random_lo;
29
+ for (let i = 0; i < 8; i++) {
30
+ str = CHARS[lo % 32] + str;
31
+ lo = Math.floor(lo / 32);
32
+ }
33
+ for (let i = 0; i < 8; i++) {
34
+ str = CHARS[hi % 32] + str;
35
+ hi = Math.floor(hi / 32);
36
+ }
37
+ return str;
38
+ }
39
+ function ulid() {
40
+ let now = Date.now();
41
+ if (now === last_time) {
42
+ last_random_lo++;
43
+ if (last_random_lo > 0xFFFFFFFFFF) {
44
+ last_random_lo = 0;
45
+ last_random_hi++;
46
+ }
47
+ }
48
+ else {
49
+ last_time = now;
50
+ last_random_hi = Math.floor(Math.random() * 0xFFFFFFFFFF);
51
+ last_random_lo = Math.floor(Math.random() * 0xFFFFFFFFFF);
52
+ }
53
+ return encode_time(now, 10) + encode_random();
54
+ }
55
+ //# sourceMappingURL=ulid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ulid.js","sourceRoot":"","sources":["../../../src/utils/ulid.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAgCH,oBAgBC;AA9CD,MAAM,KAAK,GAAG,kCAAkC,CAAC;AAEjD,IAAI,SAAS,GAAG,CAAC,CAAC;AAClB,IAAI,cAAc,GAAG,CAAC,CAAC;AACvB,IAAI,cAAc,GAAG,CAAC,CAAC;AAEvB,SAAS,WAAW,CAAC,IAAY,EAAE,GAAW;IAC5C,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;QAC7B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa;IACpB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,EAAE,GAAG,cAAc,CAAC;IACxB,IAAI,EAAE,GAAG,cAAc,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;QAC3B,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3B,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;QAC3B,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,IAAI;IAClB,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAErB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,cAAc,EAAE,CAAC;QACjB,IAAI,cAAc,GAAG,YAAY,EAAE,CAAC;YAClC,cAAc,GAAG,CAAC,CAAC;YACnB,cAAc,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,GAAG,CAAC;QAChB,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC;QAC1D,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC;AAChD,CAAC"}