@arcaelas/dynamite 1.0.29 → 2.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.
- package/README.md +13 -13
- package/{src → build/cjs}/@types/index.d.ts +26 -1
- package/build/cjs/@types/index.js.map +1 -0
- package/{src → build/cjs}/core/client.d.ts +22 -19
- package/build/cjs/core/client.js +384 -0
- package/build/cjs/core/client.js.map +1 -0
- package/build/cjs/core/decorator.d.ts +38 -0
- package/build/cjs/core/decorator.js +38 -0
- package/build/cjs/core/decorator.js.map +1 -0
- package/build/cjs/core/table.d.ts +55 -0
- package/build/cjs/core/table.js +851 -0
- package/build/cjs/core/table.js.map +1 -0
- package/build/cjs/decorators/indexes.d.ts +20 -0
- package/build/cjs/decorators/indexes.js +45 -0
- package/build/cjs/decorators/indexes.js.map +1 -0
- package/{src → build/cjs}/decorators/relations.d.ts +8 -7
- package/{src → build/cjs}/decorators/relations.js +9 -8
- package/build/cjs/decorators/relations.js.map +1 -0
- package/build/cjs/decorators/timestamps.d.ts +20 -0
- package/build/cjs/decorators/timestamps.js +34 -0
- package/build/cjs/decorators/timestamps.js.map +1 -0
- package/build/cjs/decorators/transforms.d.ts +41 -0
- package/build/cjs/decorators/transforms.js +98 -0
- package/build/cjs/decorators/transforms.js.map +1 -0
- package/{src → build/cjs}/index.d.ts +5 -3
- package/{src → build/cjs}/index.js +7 -6
- package/build/cjs/index.js.map +1 -0
- package/build/cjs/package.json +1 -0
- package/build/cjs/test/basic.d.ts +1 -0
- package/build/cjs/test/basic.js +248 -0
- package/build/cjs/test/basic.js.map +1 -0
- package/build/cjs/test/bulk.d.ts +1 -0
- package/build/cjs/test/bulk.js +108 -0
- package/build/cjs/test/bulk.js.map +1 -0
- package/build/cjs/test/contracts.d.ts +1 -0
- package/build/cjs/test/contracts.js +343 -0
- package/build/cjs/test/contracts.js.map +1 -0
- package/build/cjs/test/filters.d.ts +1 -0
- package/build/cjs/test/filters.js +190 -0
- package/build/cjs/test/filters.js.map +1 -0
- package/build/cjs/test/index.js +36 -0
- package/build/cjs/test/index.js.map +1 -0
- package/build/cjs/test/query_scan.d.ts +1 -0
- package/build/cjs/test/query_scan.js +195 -0
- package/build/cjs/test/query_scan.js.map +1 -0
- package/build/cjs/test/relations.d.ts +1 -0
- package/build/cjs/test/relations.js +246 -0
- package/build/cjs/test/relations.js.map +1 -0
- package/build/cjs/test/transactions.d.ts +1 -0
- package/build/cjs/test/transactions.js +145 -0
- package/build/cjs/test/transactions.js.map +1 -0
- package/{src → build/cjs}/utils/relations.js +1 -8
- package/build/cjs/utils/relations.js.map +1 -0
- package/build/cjs/utils/ulid.d.ts +10 -0
- package/build/cjs/utils/ulid.js +55 -0
- package/build/cjs/utils/ulid.js.map +1 -0
- package/build/esm/@types/index.d.ts +213 -0
- package/build/esm/@types/index.js +8 -0
- package/build/esm/@types/index.js.map +1 -0
- package/build/esm/core/client.d.ts +96 -0
- package/build/esm/core/client.js +375 -0
- package/build/esm/core/client.js.map +1 -0
- package/build/esm/core/decorator.d.ts +38 -0
- package/build/esm/core/decorator.js +34 -0
- package/build/esm/core/decorator.js.map +1 -0
- package/build/esm/core/table.d.ts +55 -0
- package/build/esm/core/table.js +848 -0
- package/build/esm/core/table.js.map +1 -0
- package/build/esm/decorators/indexes.d.ts +20 -0
- package/build/esm/decorators/indexes.js +42 -0
- package/build/esm/decorators/indexes.js.map +1 -0
- package/build/esm/decorators/relations.d.ts +75 -0
- package/build/esm/decorators/relations.js +112 -0
- package/build/esm/decorators/relations.js.map +1 -0
- package/build/esm/decorators/timestamps.d.ts +20 -0
- package/build/esm/decorators/timestamps.js +31 -0
- package/build/esm/decorators/timestamps.js.map +1 -0
- package/build/esm/decorators/transforms.d.ts +41 -0
- package/build/esm/decorators/transforms.js +92 -0
- package/build/esm/decorators/transforms.js.map +1 -0
- package/build/esm/index.d.ts +17 -0
- package/build/esm/index.js +24 -0
- package/build/esm/index.js.map +1 -0
- package/build/esm/package.json +1 -0
- package/build/esm/test/basic.d.ts +1 -0
- package/build/esm/test/basic.js +245 -0
- package/build/esm/test/basic.js.map +1 -0
- package/build/esm/test/bulk.d.ts +1 -0
- package/build/esm/test/bulk.js +105 -0
- package/build/esm/test/bulk.js.map +1 -0
- package/build/esm/test/contracts.d.ts +1 -0
- package/build/esm/test/contracts.js +340 -0
- package/build/esm/test/contracts.js.map +1 -0
- package/build/esm/test/filters.d.ts +1 -0
- package/build/esm/test/filters.js +187 -0
- package/build/esm/test/filters.js.map +1 -0
- package/build/esm/test/index.d.ts +1 -0
- package/build/esm/test/index.js +31 -0
- package/build/esm/test/index.js.map +1 -0
- package/build/esm/test/query_scan.d.ts +1 -0
- package/build/esm/test/query_scan.js +192 -0
- package/build/esm/test/query_scan.js.map +1 -0
- package/build/esm/test/relations.d.ts +1 -0
- package/build/esm/test/relations.js +243 -0
- package/build/esm/test/relations.js.map +1 -0
- package/build/esm/test/transactions.d.ts +1 -0
- package/build/esm/test/transactions.js +142 -0
- package/build/esm/test/transactions.js.map +1 -0
- package/build/esm/utils/relations.d.ts +42 -0
- package/build/esm/utils/relations.js +207 -0
- package/build/esm/utils/relations.js.map +1 -0
- package/build/esm/utils/ulid.d.ts +10 -0
- package/build/esm/utils/ulid.js +52 -0
- package/build/esm/utils/ulid.js.map +1 -0
- package/package.json +31 -9
- package/src/core/client.js +0 -296
- package/src/core/decorator.d.ts +0 -29
- package/src/core/decorator.js +0 -103
- package/src/core/table.d.ts +0 -81
- package/src/core/table.js +0 -892
- package/src/decorators/indexes.d.ts +0 -38
- package/src/decorators/indexes.js +0 -59
- package/src/decorators/timestamps.d.ts +0 -54
- package/src/decorators/timestamps.js +0 -72
- package/src/decorators/transforms.d.ts +0 -99
- package/src/decorators/transforms.js +0 -166
- package/src/index.test.js +0 -37
- /package/{src → build/cjs}/@types/index.js +0 -0
- /package/{src/index.test.d.ts → build/cjs/test/index.d.ts} +0 -0
- /package/{src → build/cjs}/utils/relations.d.ts +0 -0
|
@@ -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"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file index.ts
|
|
3
|
+
* @description Sistema de tipos para Dynamite ORM - Arquitectura con type-safety completo
|
|
4
|
+
* @autor Miguel Alejandro
|
|
5
|
+
* @fecha 2025-01-28
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Marca para identificar campos que no son atributos de BD (relaciones, métodos).
|
|
9
|
+
*/
|
|
10
|
+
export declare const NonAttributeBrand: unique symbol;
|
|
11
|
+
/**
|
|
12
|
+
* Marca para identificar campos opcionales en create() pero presentes en el modelo.
|
|
13
|
+
*/
|
|
14
|
+
export declare const CreationOptionalBrand: unique symbol;
|
|
15
|
+
/**
|
|
16
|
+
* Wrapper para marcar relaciones y campos virtuales que no se persisten en BD.
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* class User extends Table<User> {
|
|
20
|
+
* @HasMany(() => Post, 'user_id')
|
|
21
|
+
* declare posts: NonAttribute<Post[]>;
|
|
22
|
+
* }
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export type NonAttribute<T> = T & {
|
|
26
|
+
[NonAttributeBrand]?: true;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Wrapper para marcar campos opcionales en create() (auto-generados: id, timestamps).
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* class User extends Table<User> {
|
|
33
|
+
* @PrimaryKey() id: CreationOptional<string>;
|
|
34
|
+
* @CreatedAt() created_at: CreationOptional<number>;
|
|
35
|
+
* name: string;
|
|
36
|
+
* }
|
|
37
|
+
* await User.create({ name: 'Juan' }); // id y created_at opcionales
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export type CreationOptional<T> = T & {
|
|
41
|
+
[CreationOptionalBrand]?: true;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Extrae atributos de BD usando intersección:
|
|
45
|
+
* - Primera parte: atributos REQUERIDOS con modificador `-?`
|
|
46
|
+
* - Segunda parte: atributos OPCIONALES (solo CreationOptional)
|
|
47
|
+
* - Ambos excluyen: never, undefined, null, NonAttribute, métodos
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* class User {
|
|
51
|
+
* id: CreationOptional<string>;
|
|
52
|
+
* created_at: CreationOptional<number>;
|
|
53
|
+
* name: string;
|
|
54
|
+
* email: string;
|
|
55
|
+
* posts: NonAttribute<Post[]>;
|
|
56
|
+
* save(): void;
|
|
57
|
+
* }
|
|
58
|
+
* // InferAttributes<User> = { name: string, email: string } & { id?: string, created_at?: number }
|
|
59
|
+
* // = { name: string, email: string, id?: string, created_at?: number }
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export type InferAttributes<T> = {
|
|
63
|
+
[K in keyof T as T[K] extends ((...args: any[]) => any) | {
|
|
64
|
+
[NonAttributeBrand]?: true;
|
|
65
|
+
} | {
|
|
66
|
+
[CreationOptionalBrand]?: true;
|
|
67
|
+
} ? never : K]-?: Exclude<T[K], null | undefined | never>;
|
|
68
|
+
} & {
|
|
69
|
+
[K in keyof T as T[K] extends {
|
|
70
|
+
[CreationOptionalBrand]?: true;
|
|
71
|
+
} ? K : never]?: Exclude<T[K], null | undefined | never>;
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Extrae solo relaciones (NonAttribute) preservando tipo Model | Model[]
|
|
75
|
+
* Excluye propiedades de Object.prototype para evitar conflictos
|
|
76
|
+
* @example
|
|
77
|
+
* ```typescript
|
|
78
|
+
* class User extends Table<User> {
|
|
79
|
+
* id: string;
|
|
80
|
+
* posts: NonAttribute<Post[]>; // Array
|
|
81
|
+
* profile: NonAttribute<Profile>; // Individual
|
|
82
|
+
* settings: NonAttribute<Settings | null>; // Nullable
|
|
83
|
+
* }
|
|
84
|
+
* // InferRelations<User> = { posts: Post[], profile: Profile, settings: Settings | null }
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
type ObjectBuiltinKeys = keyof Record<string, never> | 'toString' | 'valueOf' | 'hasOwnProperty' | 'isPrototypeOf' | 'propertyIsEnumerable' | 'toLocaleString' | 'constructor';
|
|
88
|
+
export type InferRelations<T> = {
|
|
89
|
+
[K in keyof T as T[K] extends NonAttribute<any> ? K extends ObjectBuiltinKeys ? never : K : never]: T[K] extends NonAttribute<infer P> ? P : never;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Extrae solo relaciones (campos NonAttribute).
|
|
93
|
+
* Usado internamente para validación.
|
|
94
|
+
* @example
|
|
95
|
+
* ```typescript
|
|
96
|
+
* class User {
|
|
97
|
+
* id: string;
|
|
98
|
+
* name: string;
|
|
99
|
+
* posts: NonAttribute<Post[]>;
|
|
100
|
+
* profile: NonAttribute<Profile>;
|
|
101
|
+
* }
|
|
102
|
+
* // PickRelations<User> = { posts: Post[], profile: Profile }
|
|
103
|
+
* ```
|
|
104
|
+
*/
|
|
105
|
+
export type PickRelations<T> = {
|
|
106
|
+
[K in keyof T as T[K] extends NonAttribute<any> ? K : never]: T[K] extends NonAttribute<infer U> ? U : never;
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* Operadores de comparación soportados.
|
|
110
|
+
* Solo 8 operadores permitidos según especificación del usuario.
|
|
111
|
+
*/
|
|
112
|
+
export type QueryOperator = "=" | "$eq" | "<>" | "!=" | "$ne" | "<" | "$lt" | "<=" | "$lte" | ">" | "$gt" | ">=" | "$gte" | "in" | "$in" | "include" | "$include";
|
|
113
|
+
/**
|
|
114
|
+
* Opciones de query con pre-cache de atributos (A) y relaciones (R)
|
|
115
|
+
* @template T - Modelo de tabla
|
|
116
|
+
* @template A - Cache de InferAttributes<T>
|
|
117
|
+
* @template R - Cache de InferRelations<T>
|
|
118
|
+
* @example
|
|
119
|
+
* ```typescript
|
|
120
|
+
* await User.where({}, {
|
|
121
|
+
* where: {
|
|
122
|
+
* name: 'Juan',
|
|
123
|
+
* age: { $gte: 18, $lte: 65 }
|
|
124
|
+
* },
|
|
125
|
+
* order: 'DESC',
|
|
126
|
+
* limit: 10,
|
|
127
|
+
* attributes: ['name', 'email'],
|
|
128
|
+
* include: {
|
|
129
|
+
* posts: {
|
|
130
|
+
* where: { published: true },
|
|
131
|
+
* limit: 5,
|
|
132
|
+
* include: { comments: true }
|
|
133
|
+
* },
|
|
134
|
+
* profile: {
|
|
135
|
+
* attributes: ['bio', 'avatar']
|
|
136
|
+
* }
|
|
137
|
+
* }
|
|
138
|
+
* });
|
|
139
|
+
* ```
|
|
140
|
+
*/
|
|
141
|
+
export interface WhereOptions<T, A = InferAttributes<T>, R = InferRelations<T>> {
|
|
142
|
+
/** Filtros de búsqueda */
|
|
143
|
+
where?: {
|
|
144
|
+
[K in keyof A]?: A[K] | {
|
|
145
|
+
[N in QueryOperator]?: A[K];
|
|
146
|
+
};
|
|
147
|
+
};
|
|
148
|
+
/** Orden de resultados */
|
|
149
|
+
order?: "ASC" | "DESC" | {
|
|
150
|
+
[K in keyof A]?: "ASC" | "DESC";
|
|
151
|
+
};
|
|
152
|
+
/** Número de items a saltar */
|
|
153
|
+
offset?: number;
|
|
154
|
+
/** Alias de offset */
|
|
155
|
+
skip?: number;
|
|
156
|
+
/** Número máximo de items a retornar */
|
|
157
|
+
limit?: number;
|
|
158
|
+
/** Campos a seleccionar */
|
|
159
|
+
attributes?: Array<keyof A>;
|
|
160
|
+
/** Relaciones a cargar (recursivo) */
|
|
161
|
+
include?: {
|
|
162
|
+
[K in keyof R]?: NonNullable<R[K]> extends Array<infer U> ? true | WhereOptions<U> : true | Pick<WhereOptions<NonNullable<R[K]>>, "attributes" | "include">;
|
|
163
|
+
};
|
|
164
|
+
/** Incluir registros soft-deleted */
|
|
165
|
+
_includeTrashed?: boolean;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Input para create() - InferAttributes ya maneja opcional/requerido con intersección
|
|
169
|
+
* @example
|
|
170
|
+
* ```typescript
|
|
171
|
+
* class User extends Table<User> {
|
|
172
|
+
* id: CreationOptional<string>;
|
|
173
|
+
* created_at: CreationOptional<number>;
|
|
174
|
+
* name: string;
|
|
175
|
+
* email: string;
|
|
176
|
+
* }
|
|
177
|
+
* // CreateInput<User> = { name: string, email: string, id?: string, created_at?: number }
|
|
178
|
+
* await User.create({ name: 'Juan', email: 'juan@example.com' }); // id y created_at opcionales
|
|
179
|
+
* ```
|
|
180
|
+
*/
|
|
181
|
+
export type CreateInput<T> = InferAttributes<T>;
|
|
182
|
+
/**
|
|
183
|
+
* Tipo para update() - todos los campos parciales.
|
|
184
|
+
* @example
|
|
185
|
+
* ```typescript
|
|
186
|
+
* await user.update({ name: 'Ana' }); // Todos los campos opcionales
|
|
187
|
+
* ```
|
|
188
|
+
*/
|
|
189
|
+
export type UpdateInput<T> = Partial<InferAttributes<T>>;
|
|
190
|
+
/**
|
|
191
|
+
* Picks only keys from T whose value extends V.
|
|
192
|
+
* Selecciona solo las keys de T cuyo valor extiende V.
|
|
193
|
+
* @example
|
|
194
|
+
* ```typescript
|
|
195
|
+
* class User { name: string; age: number; score: number; }
|
|
196
|
+
* // PickByType<InferAttributes<User>, number> = { age: number, score: number }
|
|
197
|
+
* ```
|
|
198
|
+
*/
|
|
199
|
+
type StripBrands<T> = T extends number & {
|
|
200
|
+
[NonAttributeBrand]?: any;
|
|
201
|
+
} ? number : T extends string & {
|
|
202
|
+
[NonAttributeBrand]?: any;
|
|
203
|
+
} ? string : T extends number & {
|
|
204
|
+
[CreationOptionalBrand]?: any;
|
|
205
|
+
} ? number : T extends string & {
|
|
206
|
+
[CreationOptionalBrand]?: any;
|
|
207
|
+
} ? string : T extends boolean & {
|
|
208
|
+
[CreationOptionalBrand]?: any;
|
|
209
|
+
} ? boolean : T;
|
|
210
|
+
export type PickByType<T, V> = {
|
|
211
|
+
[K in keyof T as StripBrands<NonNullable<T[K]>> extends V ? K : never]: T[K];
|
|
212
|
+
};
|
|
213
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/@types/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file client.ts
|
|
3
|
+
* @description Centralized Dynamite client with multi-client support and table sync
|
|
4
|
+
* @autor Miguel Alejandro
|
|
5
|
+
* @fecha 2025-01-27
|
|
6
|
+
*/
|
|
7
|
+
import { DynamoDBClient, DynamoDBClientConfig } from "@aws-sdk/client-dynamodb";
|
|
8
|
+
/**
|
|
9
|
+
* Configuration for Dynamite client initialization
|
|
10
|
+
*/
|
|
11
|
+
export interface DynamiteConfig extends DynamoDBClientConfig {
|
|
12
|
+
tables: Array<new (...args: any[]) => any>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Centralized Dynamite client for managing DynamoDB connections and table synchronization
|
|
16
|
+
*/
|
|
17
|
+
export declare class Dynamite {
|
|
18
|
+
private client;
|
|
19
|
+
private tables;
|
|
20
|
+
private connected;
|
|
21
|
+
private synced;
|
|
22
|
+
/**
|
|
23
|
+
* Initialize Dynamite client with configuration
|
|
24
|
+
* @param config Dynamite client configuration
|
|
25
|
+
*/
|
|
26
|
+
constructor(config: DynamiteConfig);
|
|
27
|
+
/**
|
|
28
|
+
* @description Configure the DynamoDB client. Does not create tables or GSIs -- use sync() for that.
|
|
29
|
+
* @description Configura el cliente DynamoDB. No crea tablas ni GSIs -- usar sync() para eso.
|
|
30
|
+
*/
|
|
31
|
+
connect(): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* @description Synchronize all tables, GSIs and pivot tables with DynamoDB.
|
|
34
|
+
* @description Sincroniza tablas, GSIs y pivot tables con DynamoDB.
|
|
35
|
+
*/
|
|
36
|
+
sync(): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* @description Poll DescribeTable until all GSIs on the given tables are ACTIVE.
|
|
39
|
+
* @description Polling de DescribeTable hasta que todos los GSIs de las tablas dadas estén ACTIVE.
|
|
40
|
+
*/
|
|
41
|
+
private waitForActiveGSIs;
|
|
42
|
+
/**
|
|
43
|
+
* Ejecutar operaciones en una transacción atómica.
|
|
44
|
+
* Si cualquier operación falla, todas se revierten automáticamente.
|
|
45
|
+
*
|
|
46
|
+
* @param callback Función que recibe el contexto de transacción
|
|
47
|
+
* @returns Resultado del callback
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* await dynamite.tx(async (tx) => {
|
|
51
|
+
* const user = await User.create({ name: "Juan" }, tx);
|
|
52
|
+
* await Order.create({ user_id: user.id, total: 100 }, tx);
|
|
53
|
+
* });
|
|
54
|
+
*/
|
|
55
|
+
tx<R>(callback: (tx: TransactionContext) => Promise<R>): Promise<R>;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Set global client for Table class operations
|
|
59
|
+
* @param client DynamoDB client instance
|
|
60
|
+
*/
|
|
61
|
+
export declare const setGlobalClient: (client: DynamoDBClient) => void;
|
|
62
|
+
/**
|
|
63
|
+
* Get global client for Table class operations
|
|
64
|
+
*/
|
|
65
|
+
export declare const getGlobalClient: () => DynamoDBClient;
|
|
66
|
+
/**
|
|
67
|
+
* Check if global client is available
|
|
68
|
+
*/
|
|
69
|
+
export declare const hasGlobalClient: () => boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Require global client for Table operations (throws if not available)
|
|
72
|
+
*/
|
|
73
|
+
export declare const requireClient: () => DynamoDBClient;
|
|
74
|
+
/**
|
|
75
|
+
* @description Transaction context for grouping atomic operations. Max 100 operations (auto-chunked in batches of 25).
|
|
76
|
+
* @description Contexto de transacción para operaciones atómicas. Máximo 100 operaciones (auto-divididas en lotes de 25).
|
|
77
|
+
*/
|
|
78
|
+
export declare class TransactionContext {
|
|
79
|
+
private operations;
|
|
80
|
+
private after_commit;
|
|
81
|
+
private client;
|
|
82
|
+
constructor(client: DynamoDBClient);
|
|
83
|
+
addPut(table_name: string, item: Record<string, any>, condition?: {
|
|
84
|
+
expression: string;
|
|
85
|
+
names: Record<string, string>;
|
|
86
|
+
}): void;
|
|
87
|
+
addDelete(table_name: string, key: Record<string, any>): void;
|
|
88
|
+
addUpdate(table_name: string, key: Record<string, any>, expression: string, names: Record<string, string>, values: Record<string, any>): void;
|
|
89
|
+
/**
|
|
90
|
+
* @description Register a callback to run after successful commit.
|
|
91
|
+
* @description Registra un callback que se ejecuta después de un commit exitoso.
|
|
92
|
+
*/
|
|
93
|
+
onCommit(fn: () => void): void;
|
|
94
|
+
commit(): Promise<void>;
|
|
95
|
+
private guard;
|
|
96
|
+
}
|