@manticore-labs/nest 0.0.95 → 0.0.97

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 (40) hide show
  1. package/.idea/workspace.xml +180 -158
  2. package/build/main/lib/auth0/auth0.service.js +2 -2
  3. package/build/main/lib/funciones-util/buscar-registro.d.ts +2 -1
  4. package/build/main/lib/funciones-util/buscar-registro.js +9 -3
  5. package/build/main/lib/funciones-util/buscar-un-registro-por-id.d.ts +2 -1
  6. package/build/main/lib/funciones-util/buscar-un-registro-por-id.js +6 -3
  7. package/build/main/lib/funciones-util/buscar-where-or.d.ts +2 -1
  8. package/build/main/lib/funciones-util/buscar-where-or.js +6 -3
  9. package/build/main/lib/funciones-util/contar-registros.d.ts +2 -1
  10. package/build/main/lib/funciones-util/contar-registros.js +9 -3
  11. package/build/main/lib/funciones-util/crear-un-registro.js +2 -2
  12. package/build/main/lib/funciones-util/editar-un-registro.js +5 -3
  13. package/build/main/lib/funciones-util/eliminar-uno.js +4 -3
  14. package/build/main/lib/interfaces-util/funciones-middleware.d.ts +35 -8
  15. package/build/main/lib/principal.controller.d.ts +4 -2
  16. package/build/main/lib/principal.controller.js +48 -13
  17. package/build/main/lib/principal.gateway.d.ts +11 -9
  18. package/build/main/lib/principal.gateway.js +79 -27
  19. package/build/main/lib/principal.resolver.d.ts +9 -7
  20. package/build/main/lib/principal.resolver.js +50 -15
  21. package/build/module/lib/auth0/auth0.service.js +2 -2
  22. package/build/module/lib/funciones-util/buscar-registro.d.ts +2 -1
  23. package/build/module/lib/funciones-util/buscar-registro.js +9 -3
  24. package/build/module/lib/funciones-util/buscar-un-registro-por-id.d.ts +2 -1
  25. package/build/module/lib/funciones-util/buscar-un-registro-por-id.js +6 -3
  26. package/build/module/lib/funciones-util/buscar-where-or.d.ts +2 -1
  27. package/build/module/lib/funciones-util/buscar-where-or.js +6 -3
  28. package/build/module/lib/funciones-util/contar-registros.d.ts +2 -1
  29. package/build/module/lib/funciones-util/contar-registros.js +9 -3
  30. package/build/module/lib/funciones-util/crear-un-registro.js +2 -2
  31. package/build/module/lib/funciones-util/editar-un-registro.js +5 -3
  32. package/build/module/lib/funciones-util/eliminar-uno.js +4 -3
  33. package/build/module/lib/interfaces-util/funciones-middleware.d.ts +35 -8
  34. package/build/module/lib/principal.controller.d.ts +4 -2
  35. package/build/module/lib/principal.controller.js +48 -13
  36. package/build/module/lib/principal.gateway.d.ts +11 -9
  37. package/build/module/lib/principal.gateway.js +79 -27
  38. package/build/module/lib/principal.resolver.d.ts +9 -7
  39. package/build/module/lib/principal.resolver.js +50 -15
  40. package/package.json +1 -1
@@ -19,6 +19,7 @@ const eliminar_uno_1 = require("./funciones-util/eliminar-uno");
19
19
  const editar_un_registro_1 = require("./funciones-util/editar-un-registro");
20
20
  const contar_registros_1 = require("./funciones-util/contar-registros");
21
21
  const buscar_where_or_1 = require("./funciones-util/buscar-where-or");
22
+ const principal_find_many_where_or_1 = require("./principal.find-many-where-or");
22
23
  const io = require('socket.io-client');
23
24
  class PrincipalGateway {
24
25
  constructor(_ip, _namespace, _secreto, _funciones, _configuracionBroadcast, _funcionesSeguridad, _servicio, _dto, _skip = 0, _take = 30, _mensajes = {
@@ -26,7 +27,7 @@ class PrincipalGateway {
26
27
  crearUno: 'Registro inválido',
27
28
  actualizarUno: 'Error al actualizar',
28
29
  eliminarUno: 'Error al eliminar'
29
- }, contexto, _funcionesMiddleware = {}) {
30
+ }, contexto, _funcionesMiddleware = {}, activarPoliticasDeSeguridad = true, activarTriggersDeControlador = true) {
30
31
  this._ip = _ip;
31
32
  this._namespace = _namespace;
32
33
  this._secreto = _secreto;
@@ -40,6 +41,8 @@ class PrincipalGateway {
40
41
  this._mensajes = _mensajes;
41
42
  this.contexto = contexto;
42
43
  this._funcionesMiddleware = _funcionesMiddleware;
44
+ this.activarPoliticasDeSeguridad = activarPoliticasDeSeguridad;
45
+ this.activarTriggersDeControlador = activarTriggersDeControlador;
43
46
  }
44
47
  afterInit(server) {
45
48
  console.log('Init ' + this._namespace);
@@ -108,20 +111,26 @@ class PrincipalGateway {
108
111
  const objetoPoliticasDeSeguridad = {
109
112
  funciones: this._funcionesSeguridad.findAll ? this._funcionesSeguridad.findAll : []
110
113
  };
114
+ if (!this.activarPoliticasDeSeguridad) {
115
+ objetoPoliticasDeSeguridad.funciones = [];
116
+ }
111
117
  const puedeRealizarAccion$ = aplicar_politicas_de_seguridad_1.aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
112
118
  return puedeRealizarAccion$
113
119
  .pipe(operators_1.mergeMap((puedeRealizarAccion) => {
114
120
  if (puedeRealizarAccion) {
115
- return rxjs_1.from(buscar_registro_1.buscarVariosRegistros(datos.criterioBusqueda, principal_find_many_options_1.PrincipalFindManyOptions, this._skip, this._take, this._servicio));
121
+ return rxjs_1.from(buscar_registro_1.buscarVariosRegistros(datos.criterioBusqueda, principal_find_many_options_1.PrincipalFindManyOptions, this._skip, this._take, this._servicio, tipoPoliticaSeguridad, this._funcionesMiddleware.findAllBefore, this));
116
122
  }
117
123
  else {
118
124
  return rxjs_1.of({ error: 403, mensaje: 'No tiene permisos' });
119
125
  }
120
- }), operators_1.map((respuesta) => {
126
+ }), operators_1.map(async (respuesta) => {
121
127
  if (respuesta.error) {
122
128
  return respuesta;
123
129
  }
124
130
  else {
131
+ if (this._funcionesMiddleware.findAllAfter && this.activarTriggersDeControlador) {
132
+ respuesta = await this._funcionesMiddleware.findAllAfter(respuesta, tipoPoliticaSeguridad, this);
133
+ }
125
134
  return { data: respuesta };
126
135
  }
127
136
  }));
@@ -136,20 +145,26 @@ class PrincipalGateway {
136
145
  const objetoPoliticasDeSeguridad = {
137
146
  funciones: this._funcionesSeguridad.findWhereOr ? this._funcionesSeguridad.findWhereOr : []
138
147
  };
148
+ if (!this.activarPoliticasDeSeguridad) {
149
+ objetoPoliticasDeSeguridad.funciones = [];
150
+ }
139
151
  const puedeRealizarAccion$ = aplicar_politicas_de_seguridad_1.aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
140
152
  return puedeRealizarAccion$
141
153
  .pipe(operators_1.mergeMap((puedeRealizarAccion) => {
142
154
  if (puedeRealizarAccion) {
143
- return rxjs_1.from(buscar_where_or_1.buscarWhereOr(datos.criterioBusqueda, principal_find_many_options_1.PrincipalFindManyOptions, this._skip, this._take, this._servicio));
155
+ return rxjs_1.from(buscar_where_or_1.buscarWhereOr(datos.criterioBusqueda, principal_find_many_where_or_1.PrincipalFindWhereOrOptions, this._skip, this._take, this._servicio, tipoPoliticaSeguridad, this._funcionesMiddleware.findWhereOrBefore, this));
144
156
  }
145
157
  else {
146
158
  return rxjs_1.of({ error: 403, mensaje: 'No tiene permisos' });
147
159
  }
148
- }), operators_1.map((respuesta) => {
160
+ }), operators_1.map(async (respuesta) => {
149
161
  if (respuesta.error) {
150
162
  return respuesta;
151
163
  }
152
164
  else {
165
+ if (this._funcionesMiddleware.findWhereOrAfter && this.activarTriggersDeControlador) {
166
+ respuesta = await this._funcionesMiddleware.findWhereOrAfter(respuesta, tipoPoliticaSeguridad, this);
167
+ }
153
168
  return { data: respuesta };
154
169
  }
155
170
  }));
@@ -164,20 +179,26 @@ class PrincipalGateway {
164
179
  const objetoPoliticasDeSeguridad = {
165
180
  funciones: this._funcionesSeguridad.count ? this._funcionesSeguridad.count : []
166
181
  };
182
+ if (!this.activarPoliticasDeSeguridad) {
183
+ objetoPoliticasDeSeguridad.funciones = [];
184
+ }
167
185
  const puedeRealizarAccion$ = aplicar_politicas_de_seguridad_1.aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
168
186
  return puedeRealizarAccion$
169
187
  .pipe(operators_1.mergeMap((puedeRealizarAccion) => {
170
188
  if (puedeRealizarAccion) {
171
- return rxjs_1.from(contar_registros_1.contarRegistros(datos.criterioBusqueda, principal_find_many_options_1.PrincipalFindManyOptions, this._skip, this._take, this._servicio));
189
+ return rxjs_1.from(contar_registros_1.contarRegistros(datos.criterioBusqueda, principal_find_many_options_1.PrincipalFindManyOptions, this._skip, this._take, this._servicio, tipoPoliticaSeguridad, this._funcionesMiddleware.countBefore, this));
172
190
  }
173
191
  else {
174
192
  return rxjs_1.of({ error: 403, mensaje: 'No tiene permisos' });
175
193
  }
176
- }), operators_1.map((respuesta) => {
194
+ }), operators_1.map(async (respuesta) => {
177
195
  if (respuesta.error) {
178
196
  return respuesta;
179
197
  }
180
198
  else {
199
+ if (this._funcionesMiddleware.countAfter && this.activarTriggersDeControlador) {
200
+ respuesta = await this._funcionesMiddleware.countAfter(respuesta, tipoPoliticaSeguridad, this);
201
+ }
181
202
  return { data: respuesta };
182
203
  }
183
204
  }));
@@ -185,12 +206,16 @@ class PrincipalGateway {
185
206
  requestFindOne(socketCliente, datos) {
186
207
  try {
187
208
  if (!datos.id || typeof datos.id !== 'string' || Number(datos.id).toString() === 'NaN') {
188
- return rxjs_1.of({ error: 400, mensaje: this._mensajes.encontrarUno });
209
+ return rxjs_1.of(new Promise((res) => {
210
+ res({ error: 400, mensaje: this._mensajes.encontrarUno });
211
+ }));
189
212
  }
190
213
  }
191
214
  catch (e) {
192
215
  console.error(e);
193
- return rxjs_1.of({ error: 400, mensaje: this._mensajes.encontrarUno });
216
+ return rxjs_1.of(new Promise((res) => {
217
+ res({ error: 400, mensaje: this._mensajes.encontrarUno });
218
+ }));
194
219
  }
195
220
  const tipoPoliticaSeguridad = {
196
221
  socketio: {
@@ -201,27 +226,35 @@ class PrincipalGateway {
201
226
  const objetoPoliticasDeSeguridad = {
202
227
  funciones: this._funcionesSeguridad.findOne ? this._funcionesSeguridad.findOne : []
203
228
  };
229
+ if (!this.activarPoliticasDeSeguridad) {
230
+ objetoPoliticasDeSeguridad.funciones = [];
231
+ }
204
232
  const puedeRealizarAccion$ = aplicar_politicas_de_seguridad_1.aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
205
233
  return puedeRealizarAccion$
206
234
  .pipe(operators_1.mergeMap((puedeRealizarAccion) => {
207
235
  if (puedeRealizarAccion) {
208
- return rxjs_1.from(buscar_un_registro_por_id_1.buscarRegistroPorId(principal_id_1.PrincipalId, datos.id, this._servicio, this._mensajes.encontrarUno, true));
236
+ return rxjs_1.from(buscar_un_registro_por_id_1.buscarRegistroPorId(principal_id_1.PrincipalId, datos.id, this._servicio, this._mensajes.encontrarUno, true, tipoPoliticaSeguridad, this._funcionesMiddleware.findOneBefore, this));
209
237
  }
210
238
  else {
211
239
  return rxjs_1.of({ error: 403, mensaje: 'No tiene permisos' });
212
240
  }
213
- }), operators_1.map((respuesta) => {
241
+ }), operators_1.map(async (respuesta) => {
214
242
  if (respuesta.error) {
215
243
  return respuesta;
216
244
  }
217
245
  else {
246
+ if (this._funcionesMiddleware.findOneAfter && this.activarTriggersDeControlador) {
247
+ respuesta = await this._funcionesMiddleware.findOneAfter(respuesta, tipoPoliticaSeguridad, this);
248
+ }
218
249
  return { data: respuesta };
219
250
  }
220
251
  }));
221
252
  }
222
253
  requestCreateOne(socketCliente, datos) {
223
254
  if (!datos.nuevoRegistro || typeof datos.nuevoRegistro !== 'object') {
224
- return rxjs_1.of({ error: 400, mensaje: this._mensajes.crearUno });
255
+ return rxjs_1.of(new Promise((res) => {
256
+ res({ error: 400, mensaje: this._mensajes.crearUno });
257
+ }));
225
258
  }
226
259
  const tipoPoliticaSeguridad = {
227
260
  socketio: {
@@ -232,6 +265,9 @@ class PrincipalGateway {
232
265
  const objetoPoliticasDeSeguridad = {
233
266
  funciones: this._funcionesSeguridad.createOne ? this._funcionesSeguridad.createOne : []
234
267
  };
268
+ if (!this.activarPoliticasDeSeguridad) {
269
+ objetoPoliticasDeSeguridad.funciones = [];
270
+ }
235
271
  const puedeRealizarAccion$ = aplicar_politicas_de_seguridad_1.aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
236
272
  return puedeRealizarAccion$
237
273
  .pipe(operators_1.mergeMap((puedeRealizarAccion) => {
@@ -241,13 +277,13 @@ class PrincipalGateway {
241
277
  else {
242
278
  return rxjs_1.of({ error: 403, mensaje: 'No tiene permisos' });
243
279
  }
244
- }), operators_1.map((respuesta) => {
280
+ }), operators_1.map(async (respuesta) => {
245
281
  if (respuesta.error) {
246
282
  return respuesta;
247
283
  }
248
284
  else {
249
- if (this._funcionesMiddleware.createAfter) {
250
- respuesta = this._funcionesMiddleware.createAfter(respuesta, tipoPoliticaSeguridad, this);
285
+ if (this._funcionesMiddleware.createAfter && this.activarTriggersDeControlador) {
286
+ respuesta = await this._funcionesMiddleware.createAfter(respuesta, tipoPoliticaSeguridad, this);
251
287
  }
252
288
  const tieneConfiguracionDeBroadcast = this._configuracionBroadcast.createOne;
253
289
  if (tieneConfiguracionDeBroadcast) {
@@ -271,12 +307,16 @@ class PrincipalGateway {
271
307
  requestDeleteOne(socketCliente, datos) {
272
308
  try {
273
309
  if (!datos.id || typeof datos.id !== 'string' || Number(datos.id).toString() === 'NaN') {
274
- return rxjs_1.of({ error: 400, mensaje: this._mensajes.encontrarUno });
310
+ return rxjs_1.of(new Promise((res) => {
311
+ res({ error: 400, mensaje: this._mensajes.eliminarUno });
312
+ }));
275
313
  }
276
314
  }
277
315
  catch (e) {
278
316
  console.error(e);
279
- return rxjs_1.of({ error: 400, mensaje: this._mensajes.encontrarUno });
317
+ return rxjs_1.of(new Promise((res) => {
318
+ res({ error: 400, mensaje: this._mensajes.eliminarUno });
319
+ }));
280
320
  }
281
321
  const tipoPoliticaSeguridad = {
282
322
  socketio: {
@@ -287,6 +327,9 @@ class PrincipalGateway {
287
327
  const objetoPoliticasDeSeguridad = {
288
328
  funciones: this._funcionesSeguridad.deleteOne ? this._funcionesSeguridad.deleteOne : []
289
329
  };
330
+ if (!this.activarPoliticasDeSeguridad) {
331
+ objetoPoliticasDeSeguridad.funciones = [];
332
+ }
290
333
  const puedeRealizarAccion$ = aplicar_politicas_de_seguridad_1.aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
291
334
  return puedeRealizarAccion$
292
335
  .pipe(operators_1.mergeMap((puedeRealizarAccion) => {
@@ -296,13 +339,13 @@ class PrincipalGateway {
296
339
  else {
297
340
  return rxjs_1.of({ error: 403, mensaje: 'No tiene permisos' });
298
341
  }
299
- }), operators_1.map((respuesta) => {
342
+ }), operators_1.map(async (respuesta) => {
300
343
  if (respuesta.error) {
301
344
  return respuesta;
302
345
  }
303
346
  else {
304
- if (this._funcionesMiddleware.deleteAfter) {
305
- respuesta = this._funcionesMiddleware.deleteAfter(respuesta, tipoPoliticaSeguridad, this, datos.id);
347
+ if (this._funcionesMiddleware.deleteAfter && this.activarTriggersDeControlador) {
348
+ respuesta = await this._funcionesMiddleware.deleteAfter(respuesta, tipoPoliticaSeguridad, this, datos.id);
306
349
  }
307
350
  const tieneConfiguracionDeBroadcast = this._configuracionBroadcast.deleteOne;
308
351
  if (tieneConfiguracionDeBroadcast) {
@@ -325,16 +368,22 @@ class PrincipalGateway {
325
368
  }
326
369
  requestUpdateOne(socketCliente, datos) {
327
370
  if (!datos.registroaActualizar || typeof datos.registroaActualizar !== 'object') {
328
- return rxjs_1.of({ error: 400, mensaje: this._mensajes.crearUno });
371
+ return rxjs_1.of(new Promise((res) => {
372
+ res({ error: 400, mensaje: this._mensajes.actualizarUno });
373
+ }));
329
374
  }
330
375
  try {
331
376
  if (!datos.id || typeof datos.id !== 'string' || Number(datos.id).toString() === 'NaN') {
332
- return rxjs_1.of({ error: 400, mensaje: this._mensajes.encontrarUno });
377
+ return rxjs_1.of(new Promise((res) => {
378
+ res({ error: 400, mensaje: this._mensajes.actualizarUno });
379
+ }));
333
380
  }
334
381
  }
335
382
  catch (e) {
336
383
  console.error(e);
337
- return rxjs_1.of({ error: 400, mensaje: this._mensajes.encontrarUno });
384
+ return rxjs_1.of(new Promise((res) => {
385
+ res({ error: 400, mensaje: this._mensajes.actualizarUno });
386
+ }));
338
387
  }
339
388
  const tipoPoliticaSeguridad = {
340
389
  socketio: {
@@ -345,6 +394,9 @@ class PrincipalGateway {
345
394
  const objetoPoliticasDeSeguridad = {
346
395
  funciones: this._funcionesSeguridad.updateOne ? this._funcionesSeguridad.updateOne : []
347
396
  };
397
+ if (!this.activarPoliticasDeSeguridad) {
398
+ objetoPoliticasDeSeguridad.funciones = [];
399
+ }
348
400
  const puedeRealizarAccion$ = aplicar_politicas_de_seguridad_1.aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
349
401
  return puedeRealizarAccion$
350
402
  .pipe(operators_1.mergeMap((puedeRealizarAccion) => {
@@ -354,13 +406,13 @@ class PrincipalGateway {
354
406
  else {
355
407
  return rxjs_1.of({ error: 403, mensaje: 'No tiene permisos' });
356
408
  }
357
- }), operators_1.map((respuesta) => {
409
+ }), operators_1.map(async (respuesta) => {
358
410
  if (respuesta.error) {
359
411
  return respuesta;
360
412
  }
361
413
  else {
362
- if (this._funcionesMiddleware.updateAfter) {
363
- respuesta = this._funcionesMiddleware.updateAfter(respuesta, tipoPoliticaSeguridad, this, datos.id);
414
+ if (this._funcionesMiddleware.updateAfter && this.activarTriggersDeControlador) {
415
+ respuesta = await this._funcionesMiddleware.updateAfter(respuesta, tipoPoliticaSeguridad, this, datos.id);
364
416
  }
365
417
  const tieneConfiguracionDeBroadcast = this._configuracionBroadcast.updateOne;
366
418
  if (tieneConfiguracionDeBroadcast) {
@@ -407,4 +459,4 @@ __decorate([
407
459
  websockets_1.SubscribeMessage('requestUpdateOne')
408
460
  ], PrincipalGateway.prototype, "requestUpdateOne", null);
409
461
  exports.PrincipalGateway = PrincipalGateway;
410
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbmNpcGFsLmdhdGV3YXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3ByaW5jaXBhbC5nYXRld2F5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsbURBQXNEO0FBSXRELCtGQUF5RjtBQUd6RiwrQkFBNEM7QUFDNUMsOENBQStDO0FBQy9DLHNFQUF5RTtBQUN6RSwrRUFBeUU7QUFDekUsMEZBQWlGO0FBQ2pGLGlEQUE2QztBQUU3QywwRUFBcUU7QUFHckUsZ0VBQTREO0FBQzVELDRFQUF1RTtBQUN2RSx3RUFBb0U7QUFDcEUsc0VBQWlFO0FBR2pFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBR3ZDO0lBS0UsWUFBNkIsR0FBVyxFQUNYLFVBQWtCLEVBQ2xCLFFBQWdCLEVBQ2hCLFVBQTRCLEVBQzVCLHVCQUFzRCxFQUN0RCxtQkFBdUMsRUFDdkMsU0FBUyxFQUNULElBQWtCLEVBQ2xCLFFBQVEsQ0FBQyxFQUNULFFBQVEsRUFBRSxFQUNWLFlBQWdDO1FBQy9DLFlBQVksRUFBRSxlQUFlO1FBQzdCLFFBQVEsRUFBRSxtQkFBbUI7UUFDN0IsYUFBYSxFQUFFLHFCQUFxQjtRQUNwQyxXQUFXLEVBQUUsbUJBQW1CO0tBQ2pDLEVBQ1MsUUFBYSxFQUNOLHVCQUUyQixFQUFFO1FBbkI3QixRQUFHLEdBQUgsR0FBRyxDQUFRO1FBQ1gsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNsQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBK0I7UUFDdEQsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQUN2QyxjQUFTLEdBQVQsU0FBUyxDQUFBO1FBQ1QsU0FBSSxHQUFKLElBQUksQ0FBYztRQUNsQixVQUFLLEdBQUwsS0FBSyxDQUFJO1FBQ1QsVUFBSyxHQUFMLEtBQUssQ0FBSztR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
462
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbmNpcGFsLmdhdGV3YXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3ByaW5jaXBhbC5nYXRld2F5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsbURBQXNEO0FBSXRELCtGQUF5RjtBQUd6RiwrQkFBNEM7QUFDNUMsOENBQStDO0FBQy9DLHNFQUF5RTtBQUN6RSwrRUFBeUU7QUFDekUsMEZBQWlGO0FBQ2pGLGlEQUE2QztBQUU3QywwRUFBcUU7QUFHckUsZ0VBQTREO0FBQzVELDRFQUF1RTtBQUN2RSx3RUFBb0U7QUFDcEUsc0VBQWlFO0FBRWpFLGlGQUE2RTtBQUU3RSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUd2QztJQUtFLFlBQTZCLEdBQVcsRUFDWCxVQUFrQixFQUNsQixRQUFnQixFQUNoQixVQUE0QixFQUM1Qix1QkFBc0QsRUFDdEQsbUJBQXVDLEVBQ3ZDLFNBQVMsRUFDVCxJQUFrQixFQUNsQixRQUFRLENBQUMsRUFDVCxRQUFRLEVBQUUsRUFDVixZQUFnQztRQUMvQyxZQUFZLEVBQUUsZUFBZTtRQUM3QixRQUFRLEVBQUUsbUJBQW1CO1FBQzdCLGFBQWEsRUFBRSxxQkFBcUI7UUFDcEMsV0FBVyxFQUFFLG1CQUFtQjtLQUNqQyxFQUNTLFFBQWEsRUFDTix1QkFHTCxFQUFFLEVBQ04sOEJBQThCLElBQUksRUFDbEMsK0JBQStCLElBQUk7UUF0QjFCLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFDWCxlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFDNUIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUErQjtRQUN0RCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW9CO1FBQ3ZDLGNBQVMsR0FBVCxTQUFTLENBQUE7UUFDVCxTQUFJLEdBQUosSUFBSSxDQUFjO1FBQ2xC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
@@ -3,7 +3,7 @@ import { DtoInterface } from './interfaces-util/dto';
3
3
  import { FuncionesSeguridad } from './interfaces-util/funciones-seguridad';
4
4
  import { Observable } from 'rxjs';
5
5
  import { FuncionesMiddleware } from './interfaces-util/funciones-middleware';
6
- export declare abstract class PrincipalResolver<CreateDto, UpdateDto> {
6
+ export declare abstract class PrincipalResolver<CreateDto = any, UpdateDto = any, Entity = any> {
7
7
  private readonly _funcionesSeguridad;
8
8
  private readonly _servicio;
9
9
  private readonly _dto;
@@ -12,12 +12,14 @@ export declare abstract class PrincipalResolver<CreateDto, UpdateDto> {
12
12
  private readonly _mensajes;
13
13
  protected contexto: any;
14
14
  private readonly _funcionesMiddleware;
15
- constructor(_funcionesSeguridad: FuncionesSeguridad, _servicio: any, _dto: DtoInterface, _skip: number, _take: number, _mensajes: MensajesController, contexto: any, _funcionesMiddleware?: FuncionesMiddleware<CreateDto, UpdateDto, PrincipalResolver<CreateDto, UpdateDto>>);
16
- findAll(criterioBusqueda: string, args: any, context: any, info: any, parent: any, root: any): Promise<Observable<any>>;
17
- findWhereOr(criterioBusqueda: string, args: any, context: any, info: any, parent: any, root: any): Promise<Observable<any>>;
18
- count(criterioBusqueda: string, args: any, context: any, info: any, parent: any, root: any): Promise<Observable<any>>;
19
- findOneById(id: any, args: any, context: any, info: any, parent: any, root: any): Promise<Observable<any>>;
20
- createOne(nuevoRegistro: any, args: any, context: any, info: any, parent: any, root: any): Promise<Observable<any>>;
15
+ private activarPoliticasDeSeguridad;
16
+ private activarTriggersDeControlador;
17
+ constructor(_funcionesSeguridad: FuncionesSeguridad, _servicio: any, _dto: DtoInterface, _skip: number, _take: number, _mensajes: MensajesController, contexto: any, _funcionesMiddleware?: FuncionesMiddleware<CreateDto, UpdateDto, PrincipalResolver<CreateDto, UpdateDto>, Entity>, activarPoliticasDeSeguridad?: boolean, activarTriggersDeControlador?: boolean);
18
+ findAll(criterioBusqueda: string, args: any, context: any, info: any, parent: any, root: any): Promise<Observable<Promise<any>>>;
19
+ findWhereOr(criterioBusqueda: string, args: any, context: any, info: any, parent: any, root: any): Promise<Observable<Promise<any>>>;
20
+ count(criterioBusqueda: string, args: any, context: any, info: any, parent: any, root: any): Promise<Observable<Promise<any>>>;
21
+ findOneById(id: any, args: any, context: any, info: any, parent: any, root: any): Promise<Observable<Promise<any>>>;
22
+ createOne(nuevoRegistro: any, args: any, context: any, info: any, parent: any, root: any): Promise<Observable<Promise<any>>>;
21
23
  deleteOne(id: any, args: any, context: any, info: any, parent: any, root: any): Promise<Observable<any>>;
22
24
  updateOne(id: any, registroAActualizar: any, args: any, context: any, info: any, parent: any, root: any): Promise<Observable<any>>;
23
25
  }