@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.
- package/LICENSE.txt +32 -0
- package/README.txt +206 -0
- package/package.json +5 -4
- package/src/@types/index.d.ts +96 -0
- package/src/@types/index.js +9 -0
- package/{build/src → src}/core/client.d.ts +4 -0
- package/{build/src → src}/core/client.js +14 -2
- package/src/core/table.d.ts +98 -0
- package/src/core/table.js +459 -0
- package/src/core/wrapper.d.ts +17 -0
- package/src/core/wrapper.js +46 -0
- package/src/decorators/belongs_to.d.ts +1 -0
- package/src/decorators/belongs_to.js +24 -0
- package/src/decorators/created_at.d.ts +1 -0
- package/{build/src → src}/decorators/created_at.js +0 -7
- package/src/decorators/default.d.ts +1 -0
- package/{build/src → src}/decorators/default.js +2 -12
- package/src/decorators/has_many.d.ts +1 -0
- package/src/decorators/has_many.js +24 -0
- package/{build/src → src}/decorators/index.d.ts +4 -1
- package/src/decorators/index.js +36 -0
- package/src/decorators/index_sort.d.ts +12 -0
- package/src/decorators/index_sort.js +43 -0
- package/src/decorators/mutate.d.ts +2 -0
- package/{build/src → src}/decorators/mutate.js +2 -11
- package/src/decorators/name.d.ts +1 -0
- package/src/decorators/name.js +28 -0
- package/src/decorators/not_null.d.ts +1 -0
- package/{build/src → src}/decorators/not_null.js +0 -7
- package/src/decorators/primary_key.d.ts +6 -0
- package/src/decorators/primary_key.js +30 -0
- package/src/decorators/updated_at.d.ts +12 -0
- package/src/decorators/updated_at.js +26 -0
- package/src/decorators/validate.d.ts +1 -0
- package/{build/src → src}/decorators/validate.js +0 -7
- package/{build/src → src}/index.d.ts +9 -0
- package/{build/src → src}/index.js +14 -5
- package/{build/src → src}/utils/batch-relations.js +2 -1
- package/src/utils/circular-detector.d.ts +82 -0
- package/src/utils/circular-detector.js +209 -0
- package/src/utils/memory-manager.d.ts +42 -0
- package/src/utils/memory-manager.js +108 -0
- package/{build/src → src}/utils/projection.js +3 -2
- package/src/utils/relations.d.ts +17 -0
- package/src/utils/relations.js +166 -0
- package/src/utils/security-validator.d.ts +49 -0
- package/src/utils/security-validator.js +152 -0
- package/src/utils/throttle-manager.d.ts +78 -0
- package/src/utils/throttle-manager.js +196 -0
- package/src/utils/transaction-manager.d.ts +88 -0
- package/src/utils/transaction-manager.js +298 -0
- package/build/__tests__/crud.spec.d.ts +0 -7
- package/build/__tests__/crud.spec.js +0 -287
- package/build/__tests__/crud.spec.js.map +0 -1
- package/build/__tests__/debug-decorators.spec.d.ts +0 -7
- package/build/__tests__/debug-decorators.spec.js +0 -143
- package/build/__tests__/debug-decorators.spec.js.map +0 -1
- package/build/__tests__/decorators.spec.d.ts +0 -7
- package/build/__tests__/decorators.spec.js +0 -203
- package/build/__tests__/decorators.spec.js.map +0 -1
- package/build/__tests__/instance-crud.spec.d.ts +0 -7
- package/build/__tests__/instance-crud.spec.js +0 -184
- package/build/__tests__/instance-crud.spec.js.map +0 -1
- package/build/src/core/client.js.map +0 -1
- package/build/src/core/table.d.ts +0 -164
- package/build/src/core/table.js +0 -406
- package/build/src/core/table.js.map +0 -1
- package/build/src/core/wrapper.d.ts +0 -54
- package/build/src/core/wrapper.js +0 -27
- package/build/src/core/wrapper.js.map +0 -1
- package/build/src/decorators/created_at.d.ts +0 -8
- package/build/src/decorators/created_at.js.map +0 -1
- package/build/src/decorators/default.d.ts +0 -8
- package/build/src/decorators/default.js.map +0 -1
- package/build/src/decorators/index.js +0 -26
- package/build/src/decorators/index.js.map +0 -1
- package/build/src/decorators/index_sort.d.ts +0 -8
- package/build/src/decorators/index_sort.js +0 -30
- package/build/src/decorators/index_sort.js.map +0 -1
- package/build/src/decorators/mutate.d.ts +0 -9
- package/build/src/decorators/mutate.js.map +0 -1
- package/build/src/decorators/name.d.ts +0 -8
- package/build/src/decorators/name.js +0 -42
- package/build/src/decorators/name.js.map +0 -1
- package/build/src/decorators/not_null.d.ts +0 -8
- package/build/src/decorators/not_null.js.map +0 -1
- package/build/src/decorators/primary_key.d.ts +0 -8
- package/build/src/decorators/primary_key.js +0 -26
- package/build/src/decorators/primary_key.js.map +0 -1
- package/build/src/decorators/updated_at.d.ts +0 -8
- package/build/src/decorators/updated_at.js +0 -18
- package/build/src/decorators/updated_at.js.map +0 -1
- package/build/src/decorators/validate.d.ts +0 -8
- package/build/src/decorators/validate.js.map +0 -1
- package/build/src/index.js.map +0 -1
- package/build/src/utils/batch-relations.js.map +0 -1
- package/build/src/utils/naming.js.map +0 -1
- package/build/src/utils/projection.js.map +0 -1
- package/build/src/utils/relations.d.ts +0 -23
- package/build/src/utils/relations.js +0 -205
- package/build/src/utils/relations.js.map +0 -1
- /package/{build/src → src}/utils/batch-relations.d.ts +0 -0
- /package/{build/src → src}/utils/naming.d.ts +0 -0
- /package/{build/src → src}/utils/naming.js +0 -0
- /package/{build/src → src}/utils/projection.d.ts +0 -0
package/build/src/core/table.js
DELETED
|
@@ -1,406 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.STORE = void 0;
|
|
37
|
-
const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
|
|
38
|
-
const util_dynamodb_1 = require("@aws-sdk/util-dynamodb");
|
|
39
|
-
const relations_1 = require("../utils/relations");
|
|
40
|
-
const client_1 = require("./client");
|
|
41
|
-
const wrapper_1 = __importStar(require("./wrapper"));
|
|
42
|
-
Object.defineProperty(exports, "STORE", { enumerable: true, get: function () { return wrapper_1.STORE; } });
|
|
43
|
-
/** Get required DynamoDB client */
|
|
44
|
-
const requireClient = () => (0, client_1.getGlobalClient)();
|
|
45
|
-
/** Get metadata for constructor or throw error */
|
|
46
|
-
const mustMeta = (ctor) => {
|
|
47
|
-
const meta = wrapper_1.default.get(ctor);
|
|
48
|
-
if (!meta)
|
|
49
|
-
throw new Error(`Class ${ctor.name} not registered in wrapper`);
|
|
50
|
-
return meta;
|
|
51
|
-
};
|
|
52
|
-
/** Base Table class for DynamoDB ORM with CRUD operations */
|
|
53
|
-
class Table {
|
|
54
|
-
/** Initialize table instance with data */
|
|
55
|
-
constructor(data) {
|
|
56
|
-
requireClient();
|
|
57
|
-
const meta = mustMeta(Object.getPrototypeOf(this).constructor);
|
|
58
|
-
meta.columns.forEach((c) => {
|
|
59
|
-
if (!(c.name in data))
|
|
60
|
-
this[c.name] = undefined;
|
|
61
|
-
});
|
|
62
|
-
Object.assign(this, data);
|
|
63
|
-
}
|
|
64
|
-
/** Save instance to database (create or update) */
|
|
65
|
-
async save() {
|
|
66
|
-
const id = this["id"];
|
|
67
|
-
const Ctor = this.constructor;
|
|
68
|
-
const record = this.toJSON();
|
|
69
|
-
if (id === undefined || id === null) {
|
|
70
|
-
delete record.id;
|
|
71
|
-
const fresh = await Ctor.create(record);
|
|
72
|
-
Object.assign(this, fresh);
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
await Ctor.update(String(id), record);
|
|
76
|
-
}
|
|
77
|
-
return this;
|
|
78
|
-
}
|
|
79
|
-
/** Update instance with partial data */
|
|
80
|
-
async update(patch) {
|
|
81
|
-
const id = this["id"];
|
|
82
|
-
if (id === undefined || id === null)
|
|
83
|
-
throw new Error("update() requiere id");
|
|
84
|
-
Object.assign(this, patch);
|
|
85
|
-
const Ctor = this.constructor;
|
|
86
|
-
await Ctor.update(String(id), this.toJSON());
|
|
87
|
-
return this;
|
|
88
|
-
}
|
|
89
|
-
/** Delete instance from database */
|
|
90
|
-
async destroy() {
|
|
91
|
-
const id = this["id"];
|
|
92
|
-
if (id === undefined || id === null)
|
|
93
|
-
throw new Error("destroy() requiere id");
|
|
94
|
-
const Ctor = this.constructor;
|
|
95
|
-
await Ctor.destroy(String(id));
|
|
96
|
-
}
|
|
97
|
-
/* ------------------------------- static CRUD --------------------------- */
|
|
98
|
-
static async create(data) {
|
|
99
|
-
const client = requireClient();
|
|
100
|
-
const meta = mustMeta(this);
|
|
101
|
-
const payload = new this(data).toJSON();
|
|
102
|
-
await client.send(new client_dynamodb_1.PutItemCommand({
|
|
103
|
-
TableName: meta.name,
|
|
104
|
-
Item: (0, util_dynamodb_1.marshall)(payload, { removeUndefinedValues: true }),
|
|
105
|
-
}));
|
|
106
|
-
return new this(data);
|
|
107
|
-
}
|
|
108
|
-
// prettier-ignore
|
|
109
|
-
static async update(id, record) {
|
|
110
|
-
const client = requireClient();
|
|
111
|
-
const meta = mustMeta(this);
|
|
112
|
-
const payload = { ...record, id };
|
|
113
|
-
await client.send(new client_dynamodb_1.PutItemCommand({
|
|
114
|
-
TableName: meta.name,
|
|
115
|
-
Item: (0, util_dynamodb_1.marshall)(payload, { removeUndefinedValues: true }),
|
|
116
|
-
}));
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Actualiza múltiples registros que coincidan con los filtros especificados
|
|
120
|
-
* @param updates - Objeto con los valores a actualizar
|
|
121
|
-
* @param filters - Filtros para seleccionar qué registros actualizar
|
|
122
|
-
* @returns Número de registros actualizados
|
|
123
|
-
*/
|
|
124
|
-
// prettier-ignore
|
|
125
|
-
static async updateWhere(updates, filters) {
|
|
126
|
-
// Buscar todos los registros que coincidan con los filtros
|
|
127
|
-
const records = await this.where(filters);
|
|
128
|
-
// Actualizar cada registro individualmente
|
|
129
|
-
let updatedCount = 0;
|
|
130
|
-
for (const record of records) {
|
|
131
|
-
try {
|
|
132
|
-
await this.update(record.id, { ...record.toJSON(), ...updates });
|
|
133
|
-
updatedCount++;
|
|
134
|
-
}
|
|
135
|
-
catch (error) {
|
|
136
|
-
// Continuar con el siguiente registro si hay un error
|
|
137
|
-
console.warn(`Error actualizando registro ${record.id}:`, error);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
return updatedCount;
|
|
141
|
-
}
|
|
142
|
-
// prettier-ignore
|
|
143
|
-
static async destroy(id) {
|
|
144
|
-
const client = requireClient();
|
|
145
|
-
const meta = mustMeta(this);
|
|
146
|
-
try {
|
|
147
|
-
await client.send(new client_dynamodb_1.DeleteItemCommand({
|
|
148
|
-
TableName: meta.name,
|
|
149
|
-
Key: (0, util_dynamodb_1.marshall)({ id }),
|
|
150
|
-
}));
|
|
151
|
-
}
|
|
152
|
-
catch (err) {
|
|
153
|
-
if (err.name === "ResourceNotFoundException")
|
|
154
|
-
return null;
|
|
155
|
-
throw err;
|
|
156
|
-
}
|
|
157
|
-
return null;
|
|
158
|
-
}
|
|
159
|
-
static async where(...args) {
|
|
160
|
-
try {
|
|
161
|
-
requireClient();
|
|
162
|
-
const meta = mustMeta(this);
|
|
163
|
-
const conditions = [];
|
|
164
|
-
// Detección y extracción de opciones
|
|
165
|
-
const last = args.at(-1);
|
|
166
|
-
const hasOptions = typeof last === "object" &&
|
|
167
|
-
last !== null &&
|
|
168
|
-
("limit" in last ||
|
|
169
|
-
"skip" in last ||
|
|
170
|
-
"order" in last ||
|
|
171
|
-
"include" in last);
|
|
172
|
-
const options = hasOptions ? args.pop() : {};
|
|
173
|
-
// Separar opciones de query e include
|
|
174
|
-
const { queryOptions, includeOptions } = (0, relations_1.separateQueryOptions)(options);
|
|
175
|
-
// Validar opciones de query
|
|
176
|
-
if (queryOptions.limit !== undefined && queryOptions.limit < 0) {
|
|
177
|
-
throw new Error("Argumentos inválidos");
|
|
178
|
-
}
|
|
179
|
-
if (queryOptions.skip !== undefined && queryOptions.skip < 0) {
|
|
180
|
-
throw new Error("Argumentos inválidos");
|
|
181
|
-
}
|
|
182
|
-
if (queryOptions.order !== undefined &&
|
|
183
|
-
!["ASC", "DESC"].includes(queryOptions.order)) {
|
|
184
|
-
throw new Error("Argumentos inválidos");
|
|
185
|
-
}
|
|
186
|
-
const limit = queryOptions.limit ?? 100;
|
|
187
|
-
const skip = queryOptions.skip ?? 0;
|
|
188
|
-
const order = (queryOptions.order ?? "ASC");
|
|
189
|
-
// Parseo de condiciones según variante
|
|
190
|
-
if (args.length === 1 &&
|
|
191
|
-
typeof args[0] === "object" &&
|
|
192
|
-
!Array.isArray(args[0])) {
|
|
193
|
-
for (const [key, value] of Object.entries(args[0])) {
|
|
194
|
-
// Validar que el campo existe en el modelo
|
|
195
|
-
if (!meta.columns.has(key)) {
|
|
196
|
-
return [];
|
|
197
|
-
}
|
|
198
|
-
// Detectar arrays y convertir a operador 'in'
|
|
199
|
-
if (Array.isArray(value)) {
|
|
200
|
-
if (value.length === 0) {
|
|
201
|
-
throw new Error("Array vacío no permitido en filtros");
|
|
202
|
-
}
|
|
203
|
-
if (value.length > 100) {
|
|
204
|
-
throw new Error("Operador 'in' limitado a 100 valores máximo");
|
|
205
|
-
}
|
|
206
|
-
conditions.push({ key, op: "in", value });
|
|
207
|
-
}
|
|
208
|
-
else {
|
|
209
|
-
conditions.push({ key, op: "=", value });
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
else if (args.length === 2) {
|
|
214
|
-
const [key, value] = args;
|
|
215
|
-
// Validar que el campo existe en el modelo
|
|
216
|
-
if (!meta.columns.has(key)) {
|
|
217
|
-
return [];
|
|
218
|
-
}
|
|
219
|
-
conditions.push({ key, op: "=", value });
|
|
220
|
-
}
|
|
221
|
-
else if (args.length === 3) {
|
|
222
|
-
const [key, op, value] = args;
|
|
223
|
-
// Validar operador
|
|
224
|
-
const validOps = ["=", "!=", "<", "<=", ">", ">=", "in", "not-in"];
|
|
225
|
-
if (!validOps.includes(op)) {
|
|
226
|
-
throw new Error("Argumentos inválidos");
|
|
227
|
-
}
|
|
228
|
-
// Validar arrays para operadores in/not-in
|
|
229
|
-
if (op === "in" || op === "not-in") {
|
|
230
|
-
if (!Array.isArray(value)) {
|
|
231
|
-
throw new Error(`Operador '${op}' requiere un array`);
|
|
232
|
-
}
|
|
233
|
-
if (value.length === 0) {
|
|
234
|
-
throw new Error(`Operador '${op}' requiere array no vacío`);
|
|
235
|
-
}
|
|
236
|
-
if (value.length > 100) {
|
|
237
|
-
throw new Error(`Operador '${op}' limitado a 100 valores máximo`);
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
else if (Array.isArray(value)) {
|
|
241
|
-
throw new Error(`Operador '${op}' no acepta arrays`);
|
|
242
|
-
}
|
|
243
|
-
// Validar que el campo existe en el modelo
|
|
244
|
-
if (!meta.columns.has(key)) {
|
|
245
|
-
return [];
|
|
246
|
-
}
|
|
247
|
-
conditions.push({ key, op, value });
|
|
248
|
-
}
|
|
249
|
-
else {
|
|
250
|
-
throw new Error("Argumentos inválidos");
|
|
251
|
-
}
|
|
252
|
-
// Si no hay condiciones, hacer scan completo
|
|
253
|
-
if (conditions.length === 0) {
|
|
254
|
-
const client = requireClient();
|
|
255
|
-
const res = await client.send(new client_dynamodb_1.ScanCommand({
|
|
256
|
-
TableName: meta.name,
|
|
257
|
-
}));
|
|
258
|
-
let items = (res.Items ?? []).map((i) => new this((0, util_dynamodb_1.unmarshall)(i)));
|
|
259
|
-
const paginatedItems = items.slice(skip, skip + limit);
|
|
260
|
-
// Procesar includes si están presentes
|
|
261
|
-
if (includeOptions && Object.keys(includeOptions).length > 0) {
|
|
262
|
-
console.log("DEBUG: processIncludes called with:", includeOptions);
|
|
263
|
-
const result = await (0, relations_1.processIncludes)(this, [...paginatedItems], includeOptions);
|
|
264
|
-
console.log("DEBUG: processIncludes result:", result.length, "items");
|
|
265
|
-
return result;
|
|
266
|
-
}
|
|
267
|
-
return paginatedItems;
|
|
268
|
-
}
|
|
269
|
-
// Query optimizado si es por PK/SK e igualdad
|
|
270
|
-
const column = meta.columns.get(conditions[0].key);
|
|
271
|
-
const isIndex = column?.index || column?.indexSort;
|
|
272
|
-
if (conditions.length === 1 && isIndex && conditions[0].op === "=") {
|
|
273
|
-
const client = requireClient();
|
|
274
|
-
const { key, value } = conditions[0];
|
|
275
|
-
const res = await client.send(new client_dynamodb_1.QueryCommand({
|
|
276
|
-
TableName: meta.name,
|
|
277
|
-
KeyConditionExpression: `#K = :v`,
|
|
278
|
-
ExpressionAttributeNames: { "#K": key },
|
|
279
|
-
ExpressionAttributeValues: (0, util_dynamodb_1.marshall)({ ":v": value }),
|
|
280
|
-
Limit: limit,
|
|
281
|
-
ScanIndexForward: order === "ASC",
|
|
282
|
-
}));
|
|
283
|
-
let items = (res.Items ?? []).map((i) => new this((0, util_dynamodb_1.unmarshall)(i)));
|
|
284
|
-
const paginatedItems = skip > 0 ? items.slice(skip, skip + limit) : items;
|
|
285
|
-
// Procesar includes si están presentes
|
|
286
|
-
if (includeOptions && Object.keys(includeOptions).length > 0) {
|
|
287
|
-
console.log("DEBUG: processIncludes called with (optimized path):", includeOptions);
|
|
288
|
-
const result = await (0, relations_1.processIncludes)(this, [...paginatedItems], includeOptions);
|
|
289
|
-
console.log("DEBUG: processIncludes result (optimized path):", result.length, "items");
|
|
290
|
-
return result;
|
|
291
|
-
}
|
|
292
|
-
return paginatedItems;
|
|
293
|
-
}
|
|
294
|
-
// Fallback: Scan + FilterExpression
|
|
295
|
-
const normalize = (op) => (op === "!=" ? "<>" : op);
|
|
296
|
-
const exprParts = [];
|
|
297
|
-
const names = {};
|
|
298
|
-
const vals = {};
|
|
299
|
-
conditions.forEach((c, i) => {
|
|
300
|
-
const nk = `#k${i}`;
|
|
301
|
-
names[nk] = c.key;
|
|
302
|
-
if (c.op === "in" || c.op === "not-in") {
|
|
303
|
-
// Manejar arrays para operadores IN/NOT-IN
|
|
304
|
-
const values = c.value;
|
|
305
|
-
const placeholders = values
|
|
306
|
-
.map((_, idx) => `:v${i}_${idx}`)
|
|
307
|
-
.join(", ");
|
|
308
|
-
const expression = c.op === "in"
|
|
309
|
-
? `${nk} IN (${placeholders})`
|
|
310
|
-
: `NOT (${nk} IN (${placeholders}))`;
|
|
311
|
-
exprParts.push(expression);
|
|
312
|
-
// Agregar cada valor del array
|
|
313
|
-
values.forEach((val, idx) => {
|
|
314
|
-
vals[`:v${i}_${idx}`] = val;
|
|
315
|
-
});
|
|
316
|
-
}
|
|
317
|
-
else {
|
|
318
|
-
// Operadores simples
|
|
319
|
-
const nv = `:v${i}`;
|
|
320
|
-
exprParts.push(`${nk} ${normalize(c.op)} ${nv}`);
|
|
321
|
-
vals[nv] = c.value;
|
|
322
|
-
}
|
|
323
|
-
});
|
|
324
|
-
const client = requireClient();
|
|
325
|
-
const res = await client.send(new client_dynamodb_1.ScanCommand({
|
|
326
|
-
TableName: meta.name,
|
|
327
|
-
FilterExpression: exprParts.join(" AND "),
|
|
328
|
-
ExpressionAttributeNames: names,
|
|
329
|
-
ExpressionAttributeValues: (0, util_dynamodb_1.marshall)(vals),
|
|
330
|
-
}));
|
|
331
|
-
let items = (res.Items ?? []).map((i) => new this((0, util_dynamodb_1.unmarshall)(i)));
|
|
332
|
-
// Ordenar items según el primer campo de condición
|
|
333
|
-
if (conditions.length > 0) {
|
|
334
|
-
const sortKey = conditions[0].key;
|
|
335
|
-
items.sort((a, b) => {
|
|
336
|
-
const aVal = a[sortKey];
|
|
337
|
-
const bVal = b[sortKey];
|
|
338
|
-
// Ordenamiento numérico o string
|
|
339
|
-
if (typeof aVal === "number" && typeof bVal === "number") {
|
|
340
|
-
return order === "ASC" ? aVal - bVal : bVal - aVal;
|
|
341
|
-
}
|
|
342
|
-
else {
|
|
343
|
-
const comparison = String(aVal).localeCompare(String(bVal));
|
|
344
|
-
return order === "ASC" ? comparison : -comparison;
|
|
345
|
-
}
|
|
346
|
-
});
|
|
347
|
-
}
|
|
348
|
-
const paginatedItems = items.slice(skip, skip + limit);
|
|
349
|
-
// Procesar includes si están presentes
|
|
350
|
-
if (includeOptions && Object.keys(includeOptions).length > 0) {
|
|
351
|
-
console.log("DEBUG: processIncludes called with:", includeOptions);
|
|
352
|
-
const result = await (0, relations_1.processIncludes)(this, [...paginatedItems], includeOptions);
|
|
353
|
-
console.log("DEBUG: processIncludes result:", result.length, "items");
|
|
354
|
-
return result;
|
|
355
|
-
}
|
|
356
|
-
return paginatedItems;
|
|
357
|
-
}
|
|
358
|
-
finally {
|
|
359
|
-
// Limpiar cache de relaciones al finalizar
|
|
360
|
-
(0, relations_1.clearRelationCache)(this);
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
static async first(...args) {
|
|
364
|
-
const results = await this.where(...args, {
|
|
365
|
-
limit: 1,
|
|
366
|
-
skip: 0,
|
|
367
|
-
order: "ASC",
|
|
368
|
-
});
|
|
369
|
-
return results[0] || undefined;
|
|
370
|
-
}
|
|
371
|
-
static async last(...args) {
|
|
372
|
-
const results = await this.where(...args, {
|
|
373
|
-
limit: 1,
|
|
374
|
-
skip: 0,
|
|
375
|
-
order: "DESC",
|
|
376
|
-
});
|
|
377
|
-
return results[0] || undefined;
|
|
378
|
-
}
|
|
379
|
-
/**
|
|
380
|
-
* Obtiene los metadatos del modelo para uso interno del sistema de relaciones.
|
|
381
|
-
*
|
|
382
|
-
* @template M Instancia de la clase Table.
|
|
383
|
-
* @returns Los metadatos del wrapper del modelo.
|
|
384
|
-
*/
|
|
385
|
-
static getMeta() {
|
|
386
|
-
return mustMeta(this);
|
|
387
|
-
}
|
|
388
|
-
/* --------------------------- helpers de instancia ---------------------- */
|
|
389
|
-
toJSON() {
|
|
390
|
-
const meta = mustMeta(Object.getPrototypeOf(this).constructor);
|
|
391
|
-
const buf = this[wrapper_1.STORE] ?? {};
|
|
392
|
-
const out = {};
|
|
393
|
-
for (const [prop, col] of meta.columns) {
|
|
394
|
-
if (prop in buf)
|
|
395
|
-
out[col.name] = buf[prop];
|
|
396
|
-
else if (prop in this)
|
|
397
|
-
out[col.name] = this[prop];
|
|
398
|
-
}
|
|
399
|
-
return out;
|
|
400
|
-
}
|
|
401
|
-
toString() {
|
|
402
|
-
return JSON.stringify(this.toJSON());
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
exports.default = Table;
|
|
406
|
-
//# sourceMappingURL=table.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../../src/core/table.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
declare const NonAttributeBrand: unique symbol;
|
|
2
|
-
export type NonAttribute<T> = T & {
|
|
3
|
-
[NonAttributeBrand]?: true;
|
|
4
|
-
};
|
|
5
|
-
declare const CreationOptionalBrand: unique symbol;
|
|
6
|
-
export type CreationOptional<T> = T & {
|
|
7
|
-
[CreationOptionalBrand]?: true;
|
|
8
|
-
};
|
|
9
|
-
type IsBranded<T, Brand extends symbol> = keyof NonNullable<T> extends keyof Omit<NonNullable<T>, Brand> ? false : true;
|
|
10
|
-
type RemoveNullish<T> = Omit<T, keyof KeepNullish<T>>;
|
|
11
|
-
type RemoveFunction<T> = Omit<T, keyof KeepFunction<T>>;
|
|
12
|
-
type RemoveBranded<T, Brand extends symbol> = Omit<T, keyof KeepBranded<T, Brand>>;
|
|
13
|
-
type KeepNullish<T> = {
|
|
14
|
-
[K in keyof T as undefined extends T[K] ? K : never]: T[K];
|
|
15
|
-
};
|
|
16
|
-
type KeepFunction<T> = {
|
|
17
|
-
[K in keyof T as T[K] extends (...args: any[]) => any ? K : never]: T[K];
|
|
18
|
-
};
|
|
19
|
-
type KeepBranded<T, Brand extends symbol> = {
|
|
20
|
-
[K in keyof T as IsBranded<T[K], Brand> extends true ? K : never]: T[K];
|
|
21
|
-
};
|
|
22
|
-
/** Type utility for inferring model attributes, excluding non-attributes and functions */
|
|
23
|
-
export type InferAttributes<T> = RemoveFunction<RemoveNullish<RemoveBranded<RemoveBranded<T, typeof CreationOptionalBrand>, typeof NonAttributeBrand>>> & Partial<KeepBranded<T, typeof CreationOptionalBrand>>;
|
|
24
|
-
export type Mutate = (value: any) => Inmutable;
|
|
25
|
-
export type Default = Inmutable | (() => Inmutable);
|
|
26
|
-
export type Validate = (value: any) => true | string;
|
|
27
|
-
export type Inmutable = string | number | boolean | null | object;
|
|
28
|
-
export interface Column {
|
|
29
|
-
name: string;
|
|
30
|
-
default?: Default;
|
|
31
|
-
mutate?: Mutate[];
|
|
32
|
-
validate?: Validate[];
|
|
33
|
-
index?: true;
|
|
34
|
-
indexSort?: true;
|
|
35
|
-
unique?: true;
|
|
36
|
-
}
|
|
37
|
-
export interface RelationMetadata {
|
|
38
|
-
type: "hasMany" | "belongsTo";
|
|
39
|
-
targetModel: () => any;
|
|
40
|
-
foreignKey: string;
|
|
41
|
-
localKey?: string;
|
|
42
|
-
}
|
|
43
|
-
export interface WrapperEntry {
|
|
44
|
-
name: string;
|
|
45
|
-
columns: Map<string | symbol, Column>;
|
|
46
|
-
relations: Map<string | symbol, RelationMetadata>;
|
|
47
|
-
}
|
|
48
|
-
declare const wrapper: Map<Function, WrapperEntry>;
|
|
49
|
-
export declare const STORE: unique symbol;
|
|
50
|
-
export default wrapper;
|
|
51
|
-
/** Get or create wrapper entry for a constructor */
|
|
52
|
-
export declare const ensureConfig: (ctor: Function, tableName: string) => WrapperEntry;
|
|
53
|
-
/** Get or create column configuration for a property */
|
|
54
|
-
export declare const ensureColumn: (entry: WrapperEntry, prop: string | symbol, columnName: string) => Column;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ensureColumn = exports.ensureConfig = exports.STORE = void 0;
|
|
4
|
-
const wrapper = new Map();
|
|
5
|
-
exports.STORE = Symbol("dynamite:values");
|
|
6
|
-
exports.default = wrapper;
|
|
7
|
-
/** Get or create wrapper entry for a constructor */
|
|
8
|
-
const ensureConfig = (ctor, tableName) => {
|
|
9
|
-
const existing = wrapper.get(ctor);
|
|
10
|
-
if (existing)
|
|
11
|
-
return existing;
|
|
12
|
-
const entry = { name: tableName, columns: new Map(), relations: new Map() };
|
|
13
|
-
wrapper.set(ctor, entry);
|
|
14
|
-
return entry;
|
|
15
|
-
};
|
|
16
|
-
exports.ensureConfig = ensureConfig;
|
|
17
|
-
/** Get or create column configuration for a property */
|
|
18
|
-
const ensureColumn = (entry, prop, columnName) => {
|
|
19
|
-
const existing = entry.columns.get(prop);
|
|
20
|
-
if (existing)
|
|
21
|
-
return existing;
|
|
22
|
-
const col = { name: columnName, mutate: [], validate: [] };
|
|
23
|
-
entry.columns.set(prop, col);
|
|
24
|
-
return col;
|
|
25
|
-
};
|
|
26
|
-
exports.ensureColumn = ensureColumn;
|
|
27
|
-
//# sourceMappingURL=wrapper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../../src/core/wrapper.ts"],"names":[],"mappings":";;;AAkEA,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;AACrC,QAAA,KAAK,GAAkB,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC9D,kBAAe,OAAO,CAAC;AAEvB,oDAAoD;AAC7C,MAAM,YAAY,GAAG,CAC1B,IAAc,EACd,SAAiB,EACH,EAAE;IAChB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzB,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AATW,QAAA,YAAY,gBASvB;AAEF,wDAAwD;AACjD,MAAM,YAAY,GAAG,CAC1B,KAAmB,EACnB,IAAqB,EACrB,UAAkB,EACV,EAAE;IACV,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC3D,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC7B,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAVW,QAAA,YAAY,gBAUvB"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file created_at.ts
|
|
3
|
-
* @descripcion Decorador @CreatedAt para timestamp de creación
|
|
4
|
-
* @autor Miguel Alejandro
|
|
5
|
-
* @fecha 2025-01-27
|
|
6
|
-
*/
|
|
7
|
-
/** Decorador para establecer timestamp automático de creación */
|
|
8
|
-
export default function CreatedAt(): PropertyDecorator;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"created_at.js","sourceRoot":"","sources":["../../../src/decorators/created_at.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;AAKH,4BAEC;AALD,wDAAgC;AAEhC,iEAAiE;AACjE,SAAwB,SAAS;IAC/B,OAAO,IAAA,iBAAO,EAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file default.ts
|
|
3
|
-
* @descripcion Decorador @Default para valores por defecto
|
|
4
|
-
* @autor Miguel Alejandro
|
|
5
|
-
* @fecha 2025-01-27
|
|
6
|
-
*/
|
|
7
|
-
/** Decorador para establecer valores por defecto en propiedades */
|
|
8
|
-
export default function Default(factory: any): PropertyDecorator;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"default.js","sourceRoot":"","sources":["../../../src/decorators/default.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAMH,0BAWC;AAfD,6CAA4E;AAC5E,4CAAgD;AAEhD,mEAAmE;AACnE,SAAwB,OAAO,CAAC,OAAY;IAC1C,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,MAAM,GAAG,IAAA,sBAAY,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,IAAI,MAAM,CAAC,OAAO;YAChB,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,CAAC,OAAO,GAAG,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;QACzE,CAAC,MAAM,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG;YACzD,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC;AACJ,CAAC;AAED,yEAAyE;AACzE,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,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @file index.ts
|
|
4
|
-
* @descripcion Decorador @Index para Partition Key
|
|
5
|
-
* @autor Miguel Alejandro
|
|
6
|
-
* @fecha 2025-01-27
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.default = Index;
|
|
10
|
-
const wrapper_1 = require("../core/wrapper");
|
|
11
|
-
const naming_1 = require("../utils/naming");
|
|
12
|
-
/** Decorador para marcar propiedad como Partition Key */
|
|
13
|
-
function Index() {
|
|
14
|
-
return (target, prop) => {
|
|
15
|
-
const ctor = target.constructor;
|
|
16
|
-
const entry = (0, wrapper_1.ensureConfig)(ctor, (0, naming_1.toSnakePlural)(ctor.name));
|
|
17
|
-
const already = [...entry.columns.values()].find((c) => c.index);
|
|
18
|
-
already &&
|
|
19
|
-
already !== entry.columns.get(prop) &&
|
|
20
|
-
(() => {
|
|
21
|
-
throw new Error(`La tabla ${ctor.name} ya tiene PartitionKey (${already.name})`);
|
|
22
|
-
})();
|
|
23
|
-
(0, wrapper_1.ensureColumn)(entry, prop, String(prop)).index = true;
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorators/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAMH,wBAcC;AAlBD,6CAA6D;AAC7D,4CAAgD;AAEhD,yDAAyD;AACzD,SAAwB,KAAK;IAC3B,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,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACjE,OAAO;YACL,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YACnC,CAAC,GAAG,EAAE;gBACJ,MAAM,IAAI,KAAK,CACb,YAAY,IAAI,CAAC,IAAI,2BAA2B,OAAO,CAAC,IAAI,GAAG,CAChE,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;QACP,IAAA,sBAAY,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;IACvD,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @file index_sort.ts
|
|
4
|
-
* @descripcion Decorador @IndexSort para Sort Key
|
|
5
|
-
* @autor Miguel Alejandro
|
|
6
|
-
* @fecha 2025-01-27
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.default = IndexSort;
|
|
10
|
-
const wrapper_1 = require("../core/wrapper");
|
|
11
|
-
const naming_1 = require("../utils/naming");
|
|
12
|
-
/** Decorador para marcar propiedad como Sort Key */
|
|
13
|
-
function IndexSort() {
|
|
14
|
-
return (target, prop) => {
|
|
15
|
-
const ctor = target.constructor;
|
|
16
|
-
const entry = (0, wrapper_1.ensureConfig)(ctor, (0, naming_1.toSnakePlural)(ctor.name));
|
|
17
|
-
![...entry.columns.values()].some((c) => c.index) &&
|
|
18
|
-
(() => {
|
|
19
|
-
throw new Error(`PartitionKey no definido en ${ctor.name}; declara @Index primero`);
|
|
20
|
-
})();
|
|
21
|
-
const already = [...entry.columns.values()].find((c) => c.indexSort);
|
|
22
|
-
already &&
|
|
23
|
-
already !== entry.columns.get(prop) &&
|
|
24
|
-
(() => {
|
|
25
|
-
throw new Error(`La tabla ${ctor.name} ya tiene SortKey (${already.name})`);
|
|
26
|
-
})();
|
|
27
|
-
(0, wrapper_1.ensureColumn)(entry, prop, String(prop)).indexSort = true;
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=index_sort.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index_sort.js","sourceRoot":"","sources":["../../../src/decorators/index_sort.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAMH,4BAoBC;AAxBD,6CAA6D;AAC7D,4CAAgD;AAEhD,oDAAoD;AACpD,SAAwB,SAAS;IAC/B,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,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;YAC/C,CAAC,GAAG,EAAE;gBACJ,MAAM,IAAI,KAAK,CACb,+BAA+B,IAAI,CAAC,IAAI,0BAA0B,CACnE,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACrE,OAAO;YACL,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YACnC,CAAC,GAAG,EAAE;gBACJ,MAAM,IAAI,KAAK,CACb,YAAY,IAAI,CAAC,IAAI,sBAAsB,OAAO,CAAC,IAAI,GAAG,CAC3D,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;QACP,IAAA,sBAAY,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;IAC3D,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file mutate.ts
|
|
3
|
-
* @descripcion Decorador @Mutate para transformaciones
|
|
4
|
-
* @autor Miguel Alejandro
|
|
5
|
-
* @fecha 2025-01-27
|
|
6
|
-
*/
|
|
7
|
-
import type { Mutate } from "../core/wrapper";
|
|
8
|
-
/** Decorador para aplicar transformaciones automáticas a propiedades */
|
|
9
|
-
export default function Mutate(fn: Mutate): PropertyDecorator;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mutate.js","sourceRoot":"","sources":["../../../src/decorators/mutate.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAOH,yBAcC;AAlBD,6CAAoE;AACpE,4CAAgD;AAEhD,wEAAwE;AACxE,SAAwB,MAAM,CAAC,EAAU;IACvC,OAAO,EAAE,KAAK,UAAU;QACtB,CAAC,GAAG,EAAE;YACJ,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC,CAAC;QAClD,CAAC,CAAC,EAAE,CAAC;IACP,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,MAAM,KAAK,EAAE,CAAC;QAClB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpB,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,2EAA2E;AAC3E,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,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file name.ts
|
|
3
|
-
* @descripcion Decorador @Name para tablas y columnas
|
|
4
|
-
* @autor Miguel Alejandro
|
|
5
|
-
* @fecha 2025-01-27
|
|
6
|
-
*/
|
|
7
|
-
/** Decorador para establecer nombres personalizados de tablas y columnas */
|
|
8
|
-
export default function Name(label: string): ClassDecorator & PropertyDecorator;
|