@manticore-labs/nest 0.0.71 → 0.0.73

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 (236) hide show
  1. package/.circleci/config.yml +47 -47
  2. package/.idea/codeStyles/Project.xml +37 -37
  3. package/.idea/codeStyles/codeStyleConfig.xml +4 -4
  4. package/.idea/encodings.xml +3 -3
  5. package/.idea/inspectionProfiles/Project_Default.xml +5 -5
  6. package/.idea/manticore-labs-nest.iml +11 -11
  7. package/.idea/misc.xml +5 -5
  8. package/.idea/modules.xml +7 -7
  9. package/.idea/vcs.xml +5 -5
  10. package/.idea/workspace.xml +77 -399
  11. package/LICENSE +8 -8
  12. package/README.1.md +116 -116
  13. package/README.md +1 -1
  14. package/build/main/index.d.ts +42 -42
  15. package/build/main/index.js +25 -25
  16. package/build/main/lib/auth0/actualizar-usuario-cuenta-dto/actualizar-usuario-cuenta-dto.d.ts +5 -5
  17. package/build/main/lib/auth0/actualizar-usuario-cuenta-dto/actualizar-usuario-cuenta-dto.js +24 -24
  18. package/build/main/lib/auth0/actualizar-usuario-dto/actualizar-usuario-dto.d.ts +5 -5
  19. package/build/main/lib/auth0/actualizar-usuario-dto/actualizar-usuario-dto.js +24 -24
  20. package/build/main/lib/auth0/auth0.controller.d.ts +40 -40
  21. package/build/main/lib/auth0/auth0.controller.js +537 -537
  22. package/build/main/lib/auth0/auth0.service.d.ts +69 -69
  23. package/build/main/lib/auth0/auth0.service.js +604 -604
  24. package/build/main/lib/auth0/crear-usuario-dto/crear-usuario-dto.d.ts +5 -5
  25. package/build/main/lib/auth0/crear-usuario-dto/crear-usuario-dto.js +25 -25
  26. package/build/main/lib/auth0/interfaces/busqueda-nombre.d.ts +3 -3
  27. package/build/main/lib/auth0/interfaces/busqueda-nombre.js +2 -2
  28. package/build/main/lib/auth0/interfaces/funciones-seguridad.d.ts +10 -10
  29. package/build/main/lib/auth0/interfaces/funciones-seguridad.js +2 -2
  30. package/build/main/lib/auth0/interfaces/mensajes-controlador.d.ts +5 -5
  31. package/build/main/lib/auth0/interfaces/mensajes-controlador.js +2 -2
  32. package/build/main/lib/auth0/seguridad-jwt-moviles/check-jwt.d.ts +2 -2
  33. package/build/main/lib/auth0/seguridad-jwt-moviles/check-jwt.js +7 -7
  34. package/build/main/lib/expresiones-regulares/letras-espacios-tildes-enie.d.ts +1 -1
  35. package/build/main/lib/expresiones-regulares/letras-espacios-tildes-enie.js +3 -3
  36. package/build/main/lib/funciones-util/buscar-registro.d.ts +1 -1
  37. package/build/main/lib/funciones-util/buscar-registro.js +492 -351
  38. package/build/main/lib/funciones-util/buscar-un-registro-por-id.d.ts +1 -1
  39. package/build/main/lib/funciones-util/buscar-un-registro-por-id.js +25 -25
  40. package/build/main/lib/funciones-util/buscar-where-or.d.ts +1 -1
  41. package/build/main/lib/funciones-util/buscar-where-or.js +33 -33
  42. package/build/main/lib/funciones-util/contar-registros.d.ts +1 -1
  43. package/build/main/lib/funciones-util/contar-registros.js +41 -41
  44. package/build/main/lib/funciones-util/crear-un-registro.d.ts +1 -1
  45. package/build/main/lib/funciones-util/crear-un-registro.js +24 -24
  46. package/build/main/lib/funciones-util/editar-un-registro.d.ts +1 -1
  47. package/build/main/lib/funciones-util/editar-un-registro.js +24 -24
  48. package/build/main/lib/funciones-util/eliminar-uno.d.ts +1 -1
  49. package/build/main/lib/funciones-util/eliminar-uno.js +35 -35
  50. package/build/main/lib/funciones-util/typeorm/valor-esta-dentro-del-arreglo.d.ts +2 -2
  51. package/build/main/lib/funciones-util/typeorm/valor-esta-dentro-del-arreglo.js +21 -21
  52. package/build/main/lib/interfaces-util/arreglo-funciones-booleanas.d.ts +4 -4
  53. package/build/main/lib/interfaces-util/arreglo-funciones-booleanas.js +2 -2
  54. package/build/main/lib/interfaces-util/broadcast-join.gateway.d.ts +14 -14
  55. package/build/main/lib/interfaces-util/broadcast-join.gateway.js +2 -2
  56. package/build/main/lib/interfaces-util/campos-a-buscar.d.ts +9 -9
  57. package/build/main/lib/interfaces-util/campos-a-buscar.js +9 -9
  58. package/build/main/lib/interfaces-util/delete-service.d.ts +12 -12
  59. package/build/main/lib/interfaces-util/delete-service.js +2 -2
  60. package/build/main/lib/interfaces-util/dto.d.ts +4 -4
  61. package/build/main/lib/interfaces-util/dto.js +2 -2
  62. package/build/main/lib/interfaces-util/find-where-relations.d.ts +9 -9
  63. package/build/main/lib/interfaces-util/find-where-relations.js +2 -2
  64. package/build/main/lib/interfaces-util/funciones-seguridad.d.ts +13 -13
  65. package/build/main/lib/interfaces-util/funciones-seguridad.js +2 -2
  66. package/build/main/lib/interfaces-util/funciones.gateway.d.ts +5 -5
  67. package/build/main/lib/interfaces-util/funciones.gateway.js +2 -2
  68. package/build/main/lib/interfaces-util/mensajes-controller.d.ts +6 -6
  69. package/build/main/lib/interfaces-util/mensajes-controller.js +2 -2
  70. package/build/main/lib/interfaces-util/politicas-de-seguridad.d.ts +17 -17
  71. package/build/main/lib/interfaces-util/politicas-de-seguridad.js +2 -2
  72. package/build/main/lib/interfaces-util/respuesta-general.gateway.d.ts +5 -5
  73. package/build/main/lib/interfaces-util/respuesta-general.gateway.js +2 -2
  74. package/build/main/lib/menu/entities/menu-entity.d.ts +13 -13
  75. package/build/main/lib/menu/entities/menu-entity.js +93 -93
  76. package/build/main/lib/one-signal/interfaces/funciones-seguridad.d.ts +9 -9
  77. package/build/main/lib/one-signal/interfaces/funciones-seguridad.js +2 -2
  78. package/build/main/lib/one-signal/interfaces/one-signal-device.d.ts +19 -19
  79. package/build/main/lib/one-signal/interfaces/one-signal-device.js +2 -2
  80. package/build/main/lib/one-signal/interfaces/one-signal-notification.d.ts +15 -15
  81. package/build/main/lib/one-signal/interfaces/one-signal-notification.js +2 -2
  82. package/build/main/lib/one-signal/interfaces/one-signal-notifications.d.ts +7 -7
  83. package/build/main/lib/one-signal/interfaces/one-signal-notifications.js +2 -2
  84. package/build/main/lib/one-signal/interfaces/one-signal-ok-create-notification-no-players.d.ts +5 -5
  85. package/build/main/lib/one-signal/interfaces/one-signal-ok-create-notification-no-players.js +2 -2
  86. package/build/main/lib/one-signal/interfaces/one-signal-ok-create-notification.d.ts +4 -4
  87. package/build/main/lib/one-signal/interfaces/one-signal-ok-create-notification.js +2 -2
  88. package/build/main/lib/one-signal/interfaces/one-signal-success.d.ts +3 -3
  89. package/build/main/lib/one-signal/interfaces/one-signal-success.js +2 -2
  90. package/build/main/lib/one-signal/interfaces/one-signal-tags.d.ts +3 -3
  91. package/build/main/lib/one-signal/interfaces/one-signal-tags.js +2 -2
  92. package/build/main/lib/one-signal/interfaces/one-signal-view-devices.d.ts +7 -7
  93. package/build/main/lib/one-signal/interfaces/one-signal-view-devices.js +2 -2
  94. package/build/main/lib/one-signal/one-signal.controller.d.ts +15 -15
  95. package/build/main/lib/one-signal/one-signal.controller.js +250 -250
  96. package/build/main/lib/one-signal/one-signal.service.d.ts +32 -32
  97. package/build/main/lib/one-signal/one-signal.service.js +84 -84
  98. package/build/main/lib/politicas/revisar-si-tiene-nombre-permiso.d.ts +1 -1
  99. package/build/main/lib/politicas/revisar-si-tiene-nombre-permiso.js +9 -9
  100. package/build/main/lib/politicas/revisar-si-tiene-rol.d.ts +1 -1
  101. package/build/main/lib/politicas/revisar-si-tiene-rol.js +9 -9
  102. package/build/main/lib/principal.controller.d.ts +20 -20
  103. package/build/main/lib/principal.controller.js +309 -309
  104. package/build/main/lib/principal.dto.d.ts +5 -5
  105. package/build/main/lib/principal.dto.js +21 -21
  106. package/build/main/lib/principal.entity.d.ts +7 -7
  107. package/build/main/lib/principal.entity.js +42 -42
  108. package/build/main/lib/principal.find-many-options.d.ts +14 -14
  109. package/build/main/lib/principal.find-many-options.js +48 -48
  110. package/build/main/lib/principal.find-many-where-or.d.ts +10 -10
  111. package/build/main/lib/principal.find-many-where-or.js +28 -28
  112. package/build/main/lib/principal.gateway.d.ts +35 -35
  113. package/build/main/lib/principal.gateway.js +399 -399
  114. package/build/main/lib/principal.id.d.ts +3 -3
  115. package/build/main/lib/principal.id.js +16 -16
  116. package/build/main/lib/principal.resolver.d.ts +21 -21
  117. package/build/main/lib/principal.resolver.js +343 -343
  118. package/build/main/lib/principal.service.d.ts +38 -38
  119. package/build/main/lib/principal.service.js +261 -256
  120. package/build/main/lib/seguridad/aplicar-politicas-de-seguridad.d.ts +4 -4
  121. package/build/main/lib/seguridad/aplicar-politicas-de-seguridad.js +16 -16
  122. package/build/main/lib/seguridad/funciones/convertir-arreglo-en-arreglo-de-observables.d.ts +3 -3
  123. package/build/main/lib/seguridad/funciones/convertir-arreglo-en-arreglo-de-observables.js +30 -30
  124. package/build/main/lib/seguridad/funciones/index.d.ts +6 -6
  125. package/build/main/lib/seguridad/funciones/index.js +12 -12
  126. package/build/main/lib/seguridad/funciones/obtener-reflector-seguridad.d.ts +1 -1
  127. package/build/main/lib/seguridad/funciones/obtener-reflector-seguridad.js +6 -6
  128. package/build/main/lib/seguridad/funciones/obtener-request.d.ts +1 -1
  129. package/build/main/lib/seguridad/funciones/obtener-request.js +6 -6
  130. package/build/main/lib/seguridad/funciones/obtener-response.d.ts +1 -1
  131. package/build/main/lib/seguridad/funciones/obtener-response.js +6 -6
  132. package/build/main/lib/seguridad/funciones/tiene-acceso-permitido.d.ts +2 -2
  133. package/build/main/lib/seguridad/funciones/tiene-acceso-permitido.js +13 -13
  134. package/build/main/lib/seguridad/seguridad.decorator.d.ts +1 -1
  135. package/build/main/lib/seguridad/seguridad.decorator.js +4 -4
  136. package/build/module/index.d.ts +42 -42
  137. package/build/module/index.js +20 -20
  138. package/build/module/lib/auth0/actualizar-usuario-cuenta-dto/actualizar-usuario-cuenta-dto.d.ts +5 -5
  139. package/build/module/lib/auth0/actualizar-usuario-cuenta-dto/actualizar-usuario-cuenta-dto.js +21 -21
  140. package/build/module/lib/auth0/actualizar-usuario-dto/actualizar-usuario-dto.d.ts +5 -5
  141. package/build/module/lib/auth0/actualizar-usuario-dto/actualizar-usuario-dto.js +21 -21
  142. package/build/module/lib/auth0/auth0.controller.d.ts +40 -40
  143. package/build/module/lib/auth0/auth0.controller.js +535 -535
  144. package/build/module/lib/auth0/auth0.service.d.ts +69 -69
  145. package/build/module/lib/auth0/auth0.service.js +603 -603
  146. package/build/module/lib/auth0/crear-usuario-dto/crear-usuario-dto.d.ts +5 -5
  147. package/build/module/lib/auth0/crear-usuario-dto/crear-usuario-dto.js +22 -22
  148. package/build/module/lib/auth0/interfaces/busqueda-nombre.d.ts +3 -3
  149. package/build/module/lib/auth0/interfaces/funciones-seguridad.d.ts +10 -10
  150. package/build/module/lib/auth0/interfaces/mensajes-controlador.d.ts +5 -5
  151. package/build/module/lib/auth0/seguridad-jwt-moviles/check-jwt.d.ts +2 -2
  152. package/build/module/lib/auth0/seguridad-jwt-moviles/check-jwt.js +4 -4
  153. package/build/module/lib/expresiones-regulares/letras-espacios-tildes-enie.d.ts +1 -1
  154. package/build/module/lib/expresiones-regulares/letras-espacios-tildes-enie.js +1 -1
  155. package/build/module/lib/funciones-util/buscar-registro.d.ts +1 -1
  156. package/build/module/lib/funciones-util/buscar-registro.js +489 -348
  157. package/build/module/lib/funciones-util/buscar-un-registro-por-id.d.ts +1 -1
  158. package/build/module/lib/funciones-util/buscar-un-registro-por-id.js +22 -22
  159. package/build/module/lib/funciones-util/buscar-where-or.d.ts +1 -1
  160. package/build/module/lib/funciones-util/buscar-where-or.js +30 -30
  161. package/build/module/lib/funciones-util/contar-registros.d.ts +1 -1
  162. package/build/module/lib/funciones-util/contar-registros.js +38 -38
  163. package/build/module/lib/funciones-util/crear-un-registro.d.ts +1 -1
  164. package/build/module/lib/funciones-util/crear-un-registro.js +21 -21
  165. package/build/module/lib/funciones-util/editar-un-registro.d.ts +1 -1
  166. package/build/module/lib/funciones-util/editar-un-registro.js +21 -21
  167. package/build/module/lib/funciones-util/eliminar-uno.d.ts +1 -1
  168. package/build/module/lib/funciones-util/eliminar-uno.js +32 -32
  169. package/build/module/lib/funciones-util/typeorm/valor-esta-dentro-del-arreglo.d.ts +2 -2
  170. package/build/module/lib/funciones-util/typeorm/valor-esta-dentro-del-arreglo.js +18 -18
  171. package/build/module/lib/interfaces-util/arreglo-funciones-booleanas.d.ts +4 -4
  172. package/build/module/lib/interfaces-util/broadcast-join.gateway.d.ts +14 -14
  173. package/build/module/lib/interfaces-util/campos-a-buscar.d.ts +9 -9
  174. package/build/module/lib/interfaces-util/campos-a-buscar.js +6 -6
  175. package/build/module/lib/interfaces-util/delete-service.d.ts +12 -12
  176. package/build/module/lib/interfaces-util/dto.d.ts +4 -4
  177. package/build/module/lib/interfaces-util/find-where-relations.d.ts +9 -9
  178. package/build/module/lib/interfaces-util/funciones-seguridad.d.ts +13 -13
  179. package/build/module/lib/interfaces-util/funciones.gateway.d.ts +5 -5
  180. package/build/module/lib/interfaces-util/mensajes-controller.d.ts +6 -6
  181. package/build/module/lib/interfaces-util/politicas-de-seguridad.d.ts +17 -17
  182. package/build/module/lib/interfaces-util/respuesta-general.gateway.d.ts +5 -5
  183. package/build/module/lib/menu/entities/menu-entity.d.ts +13 -13
  184. package/build/module/lib/menu/entities/menu-entity.js +90 -90
  185. package/build/module/lib/one-signal/interfaces/funciones-seguridad.d.ts +9 -9
  186. package/build/module/lib/one-signal/interfaces/one-signal-device.d.ts +19 -19
  187. package/build/module/lib/one-signal/interfaces/one-signal-notification.d.ts +15 -15
  188. package/build/module/lib/one-signal/interfaces/one-signal-notifications.d.ts +7 -7
  189. package/build/module/lib/one-signal/interfaces/one-signal-ok-create-notification-no-players.d.ts +5 -5
  190. package/build/module/lib/one-signal/interfaces/one-signal-ok-create-notification.d.ts +4 -4
  191. package/build/module/lib/one-signal/interfaces/one-signal-success.d.ts +3 -3
  192. package/build/module/lib/one-signal/interfaces/one-signal-tags.d.ts +3 -3
  193. package/build/module/lib/one-signal/interfaces/one-signal-view-devices.d.ts +7 -7
  194. package/build/module/lib/one-signal/one-signal.controller.d.ts +15 -15
  195. package/build/module/lib/one-signal/one-signal.controller.js +248 -248
  196. package/build/module/lib/one-signal/one-signal.service.d.ts +32 -32
  197. package/build/module/lib/one-signal/one-signal.service.js +82 -82
  198. package/build/module/lib/politicas/revisar-si-tiene-nombre-permiso.d.ts +1 -1
  199. package/build/module/lib/politicas/revisar-si-tiene-nombre-permiso.js +6 -6
  200. package/build/module/lib/politicas/revisar-si-tiene-rol.d.ts +1 -1
  201. package/build/module/lib/politicas/revisar-si-tiene-rol.js +6 -6
  202. package/build/module/lib/principal.controller.d.ts +20 -20
  203. package/build/module/lib/principal.controller.js +306 -306
  204. package/build/module/lib/principal.dto.d.ts +5 -5
  205. package/build/module/lib/principal.dto.js +18 -18
  206. package/build/module/lib/principal.entity.d.ts +7 -7
  207. package/build/module/lib/principal.entity.js +39 -39
  208. package/build/module/lib/principal.find-many-options.d.ts +14 -14
  209. package/build/module/lib/principal.find-many-options.js +45 -45
  210. package/build/module/lib/principal.find-many-where-or.d.ts +10 -10
  211. package/build/module/lib/principal.find-many-where-or.js +25 -25
  212. package/build/module/lib/principal.gateway.d.ts +35 -35
  213. package/build/module/lib/principal.gateway.js +396 -396
  214. package/build/module/lib/principal.id.d.ts +3 -3
  215. package/build/module/lib/principal.id.js +13 -13
  216. package/build/module/lib/principal.resolver.d.ts +21 -21
  217. package/build/module/lib/principal.resolver.js +340 -340
  218. package/build/module/lib/principal.service.d.ts +38 -38
  219. package/build/module/lib/principal.service.js +258 -253
  220. package/build/module/lib/seguridad/aplicar-politicas-de-seguridad.d.ts +4 -4
  221. package/build/module/lib/seguridad/aplicar-politicas-de-seguridad.js +13 -13
  222. package/build/module/lib/seguridad/funciones/convertir-arreglo-en-arreglo-de-observables.d.ts +3 -3
  223. package/build/module/lib/seguridad/funciones/convertir-arreglo-en-arreglo-de-observables.js +27 -27
  224. package/build/module/lib/seguridad/funciones/index.d.ts +6 -6
  225. package/build/module/lib/seguridad/funciones/index.js +6 -6
  226. package/build/module/lib/seguridad/funciones/obtener-reflector-seguridad.d.ts +1 -1
  227. package/build/module/lib/seguridad/funciones/obtener-reflector-seguridad.js +3 -3
  228. package/build/module/lib/seguridad/funciones/obtener-request.d.ts +1 -1
  229. package/build/module/lib/seguridad/funciones/obtener-request.js +3 -3
  230. package/build/module/lib/seguridad/funciones/obtener-response.d.ts +1 -1
  231. package/build/module/lib/seguridad/funciones/obtener-response.js +3 -3
  232. package/build/module/lib/seguridad/funciones/tiene-acceso-permitido.d.ts +2 -2
  233. package/build/module/lib/seguridad/funciones/tiene-acceso-permitido.js +10 -10
  234. package/build/module/lib/seguridad/seguridad.decorator.d.ts +1 -1
  235. package/build/module/lib/seguridad/seguridad.decorator.js +2 -2
  236. package/package.json +117 -116
@@ -1,310 +1,310 @@
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 __param = (this && this.__param) || function (paramIndex, decorator) {
9
- return function (target, key) { decorator(target, key, paramIndex); }
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const common_1 = require("@nestjs/common");
13
- const principal_find_many_options_1 = require("./principal.find-many-options");
14
- const principal_id_1 = require("./principal.id");
15
- const buscar_registro_1 = require("./funciones-util/buscar-registro");
16
- const buscar_un_registro_por_id_1 = require("./funciones-util/buscar-un-registro-por-id");
17
- const crear_un_registro_1 = require("./funciones-util/crear-un-registro");
18
- const eliminar_uno_1 = require("./funciones-util/eliminar-uno");
19
- const editar_un_registro_1 = require("./funciones-util/editar-un-registro");
20
- const aplicar_politicas_de_seguridad_1 = require("./seguridad/aplicar-politicas-de-seguridad");
21
- const rxjs_1 = require("rxjs");
22
- const operators_1 = require("rxjs/operators");
23
- const contar_registros_1 = require("./funciones-util/contar-registros");
24
- const buscar_where_or_1 = require("./funciones-util/buscar-where-or");
25
- const principal_find_many_where_or_1 = require("./principal.find-many-where-or");
26
- class PrincipalController {
27
- constructor(_funcionesSeguridad, _servicio, _dto, _skip = 0, _take = 30, _mensajes = {
28
- encontrarUno: 'Id incorrecto',
29
- crearUno: 'Registro inválido',
30
- actualizarUno: 'Error al actualizar',
31
- eliminarUno: 'Error al eliminar'
32
- }, contexto) {
33
- this._funcionesSeguridad = _funcionesSeguridad;
34
- this._servicio = _servicio;
35
- this._dto = _dto;
36
- this._skip = _skip;
37
- this._take = _take;
38
- this._mensajes = _mensajes;
39
- this.contexto = contexto;
40
- }
41
- findAll(criterioBusqueda, request, response) {
42
- const tipoPoliticaSeguridad = {
43
- web: {
44
- request,
45
- response
46
- }
47
- };
48
- const objetoPoliticasDeSeguridad = {
49
- funciones: this._funcionesSeguridad.findAll ? this._funcionesSeguridad.findAll : []
50
- };
51
- const puedeRealizarAccion$ = aplicar_politicas_de_seguridad_1.aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
52
- puedeRealizarAccion$
53
- .pipe(operators_1.mergeMap((puedeRealizarAccion) => {
54
- if (puedeRealizarAccion) {
55
- return rxjs_1.from(buscar_registro_1.buscarVariosRegistros(criterioBusqueda, principal_find_many_options_1.PrincipalFindManyOptions, this._skip, this._take, this._servicio));
56
- }
57
- else {
58
- return rxjs_1.of({ error: 403, mensaje: 'No tiene permisos' });
59
- }
60
- }))
61
- .subscribe((respuesta) => {
62
- if (respuesta.error) {
63
- return response.status(respuesta.error).send(respuesta);
64
- }
65
- else {
66
- return response.send(respuesta);
67
- }
68
- }, (error) => {
69
- console.error('Error', error);
70
- return response.status(500).send('Error del servidor');
71
- });
72
- }
73
- findWhereOr(criterioBusqueda, request, response) {
74
- const tipoPoliticaSeguridad = {
75
- web: {
76
- request,
77
- response
78
- }
79
- };
80
- const objetoPoliticasDeSeguridad = {
81
- funciones: this._funcionesSeguridad.findWhereOr ? this._funcionesSeguridad.findWhereOr : []
82
- };
83
- const puedeRealizarAccion$ = aplicar_politicas_de_seguridad_1.aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
84
- puedeRealizarAccion$
85
- .pipe(operators_1.mergeMap((puedeRealizarAccion) => {
86
- if (puedeRealizarAccion) {
87
- return rxjs_1.from(buscar_where_or_1.buscarWhereOr(criterioBusqueda, principal_find_many_where_or_1.PrincipalFindWhereOrOptions, this._skip, this._take, this._servicio));
88
- }
89
- else {
90
- return rxjs_1.of({ error: 403, mensaje: 'No tiene permisos' });
91
- }
92
- }))
93
- .subscribe((respuesta) => {
94
- if (respuesta.error) {
95
- return response.status(respuesta.error).send(respuesta);
96
- }
97
- else {
98
- return response.send(respuesta);
99
- }
100
- }, (error) => {
101
- console.error('Error', error);
102
- return response.status(500).send('Error del servidor');
103
- });
104
- }
105
- count(criterioBusqueda, request, response) {
106
- const tipoPoliticaSeguridad = {
107
- web: {
108
- request,
109
- response
110
- }
111
- };
112
- const objetoPoliticasDeSeguridad = {
113
- funciones: this._funcionesSeguridad.count ? this._funcionesSeguridad.count : []
114
- };
115
- const puedeRealizarAccion$ = aplicar_politicas_de_seguridad_1.aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
116
- puedeRealizarAccion$
117
- .pipe(operators_1.mergeMap((puedeRealizarAccion) => {
118
- if (puedeRealizarAccion) {
119
- return rxjs_1.from(contar_registros_1.contarRegistros(criterioBusqueda, principal_find_many_options_1.PrincipalFindManyOptions, this._skip, this._take, this._servicio));
120
- }
121
- else {
122
- return rxjs_1.of({ error: 403, mensaje: 'No tiene permisos' });
123
- }
124
- }))
125
- .subscribe((respuesta) => {
126
- if (respuesta.error) {
127
- return response.status(respuesta.error).send(respuesta);
128
- }
129
- else {
130
- return response.send(respuesta);
131
- }
132
- }, (error) => {
133
- console.error('Error', error);
134
- return response.status(500).send('Error del servidor');
135
- });
136
- }
137
- async findOne(id, request, response) {
138
- const tipoPoliticaSeguridad = {
139
- web: {
140
- request,
141
- response
142
- }
143
- };
144
- const objetoPoliticasDeSeguridad = {
145
- funciones: this._funcionesSeguridad.findOne ? this._funcionesSeguridad.findOne : []
146
- };
147
- const puedeRealizarAccion$ = aplicar_politicas_de_seguridad_1.aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
148
- puedeRealizarAccion$
149
- .pipe(operators_1.mergeMap((puedeRealizarAccion) => {
150
- if (puedeRealizarAccion) {
151
- return rxjs_1.from(buscar_un_registro_por_id_1.buscarRegistroPorId(principal_id_1.PrincipalId, id, this._servicio, this._mensajes.encontrarUno, true));
152
- }
153
- else {
154
- return rxjs_1.of({ error: 403, mensaje: 'No tiene permisos' });
155
- }
156
- }))
157
- .subscribe((respuesta) => {
158
- if (respuesta.error) {
159
- return response.status(respuesta.error).send(respuesta);
160
- }
161
- else {
162
- return response.send(respuesta);
163
- }
164
- }, (error) => {
165
- console.error('Error', error);
166
- return response.status(500).send('Error del servidor');
167
- });
168
- }
169
- create(nuevoRegistro, request, response) {
170
- const tipoPoliticaSeguridad = {
171
- web: {
172
- request,
173
- response
174
- }
175
- };
176
- const objetoPoliticasDeSeguridad = {
177
- funciones: this._funcionesSeguridad.createOne ? this._funcionesSeguridad.createOne : []
178
- };
179
- const puedeRealizarAccion$ = aplicar_politicas_de_seguridad_1.aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
180
- puedeRealizarAccion$
181
- .pipe(operators_1.mergeMap((puedeRealizarAccion) => {
182
- if (puedeRealizarAccion) {
183
- return rxjs_1.from(crear_un_registro_1.crearUnRegistro(nuevoRegistro, this._servicio, this._dto.CreateDto, this._mensajes.crearUno, true));
184
- }
185
- else {
186
- return rxjs_1.of({ error: 403, mensaje: 'No tiene permisos' });
187
- }
188
- }))
189
- .subscribe((respuesta) => {
190
- if (respuesta.error) {
191
- return response.status(respuesta.error).send(respuesta);
192
- }
193
- else {
194
- return response.send(respuesta);
195
- }
196
- }, (error) => {
197
- console.error('Error', error);
198
- return response.status(500).send('Error del servidor');
199
- });
200
- }
201
- async delete(id, request, response) {
202
- const tipoPoliticaSeguridad = {
203
- web: {
204
- request,
205
- response
206
- }
207
- };
208
- const objetoPoliticasDeSeguridad = {
209
- funciones: this._funcionesSeguridad.deleteOne ? this._funcionesSeguridad.deleteOne : []
210
- };
211
- const puedeRealizarAccion$ = aplicar_politicas_de_seguridad_1.aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
212
- puedeRealizarAccion$
213
- .pipe(operators_1.mergeMap((puedeRealizarAccion) => {
214
- if (puedeRealizarAccion) {
215
- return rxjs_1.from(eliminar_uno_1.eliminarUno(id, principal_id_1.PrincipalId, this._servicio, this._mensajes.eliminarUno, true));
216
- }
217
- else {
218
- return rxjs_1.of({ error: 403, mensaje: 'No tiene permisos' });
219
- }
220
- }))
221
- .subscribe((respuesta) => {
222
- if (respuesta.error) {
223
- return response.status(respuesta.error).send(respuesta);
224
- }
225
- else {
226
- return response.send(respuesta);
227
- }
228
- }, (error) => {
229
- console.error('Error', error);
230
- return response.status(500).send('Error del servidor');
231
- });
232
- }
233
- async update(id, registroAActualizar, request, response) {
234
- const tipoPoliticaSeguridad = {
235
- web: {
236
- request,
237
- response
238
- }
239
- };
240
- const objetoPoliticasDeSeguridad = {
241
- funciones: this._funcionesSeguridad.updateOne ? this._funcionesSeguridad.updateOne : []
242
- };
243
- const puedeRealizarAccion$ = aplicar_politicas_de_seguridad_1.aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
244
- puedeRealizarAccion$
245
- .pipe(operators_1.mergeMap((puedeRealizarAccion) => {
246
- if (puedeRealizarAccion) {
247
- return rxjs_1.from(editar_un_registro_1.editarUnRegistro(id, registroAActualizar, this._servicio, this._dto.UpdateDto, this._mensajes.actualizarUno, true));
248
- }
249
- else {
250
- return rxjs_1.of({ error: 403, mensaje: 'No tiene permisos' });
251
- }
252
- }))
253
- .subscribe((respuesta) => {
254
- if (respuesta.error) {
255
- return response.status(respuesta.error).send(respuesta);
256
- }
257
- else {
258
- return response.send(respuesta);
259
- }
260
- }, (error) => {
261
- console.error('Error', error);
262
- return response.status(500).send('Error del servidor');
263
- });
264
- }
265
- }
266
- __decorate([
267
- common_1.Get(),
268
- __param(0, common_1.Query('criterioBusqueda')),
269
- __param(1, common_1.Request()),
270
- __param(2, common_1.Response())
271
- ], PrincipalController.prototype, "findAll", null);
272
- __decorate([
273
- common_1.Get('findWhereOr'),
274
- __param(0, common_1.Query('criterioBusqueda')),
275
- __param(1, common_1.Request()),
276
- __param(2, common_1.Response())
277
- ], PrincipalController.prototype, "findWhereOr", null);
278
- __decorate([
279
- common_1.Get('count'),
280
- __param(0, common_1.Query('criterioBusqueda')),
281
- __param(1, common_1.Request()),
282
- __param(2, common_1.Response())
283
- ], PrincipalController.prototype, "count", null);
284
- __decorate([
285
- common_1.Get(':id'),
286
- __param(0, common_1.Param('id')),
287
- __param(1, common_1.Request()),
288
- __param(2, common_1.Response())
289
- ], PrincipalController.prototype, "findOne", null);
290
- __decorate([
291
- common_1.Post(),
292
- __param(0, common_1.Body()),
293
- __param(1, common_1.Request()),
294
- __param(2, common_1.Response())
295
- ], PrincipalController.prototype, "create", null);
296
- __decorate([
297
- common_1.Delete(':id'),
298
- __param(0, common_1.Param('id')),
299
- __param(1, common_1.Request()),
300
- __param(2, common_1.Response())
301
- ], PrincipalController.prototype, "delete", null);
302
- __decorate([
303
- common_1.Put(':id'),
304
- __param(0, common_1.Param('id')),
305
- __param(1, common_1.Body()),
306
- __param(2, common_1.Request()),
307
- __param(3, common_1.Response())
308
- ], PrincipalController.prototype, "update", null);
309
- exports.PrincipalController = PrincipalController;
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 __param = (this && this.__param) || function (paramIndex, decorator) {
9
+ return function (target, key) { decorator(target, key, paramIndex); }
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const common_1 = require("@nestjs/common");
13
+ const principal_find_many_options_1 = require("./principal.find-many-options");
14
+ const principal_id_1 = require("./principal.id");
15
+ const buscar_registro_1 = require("./funciones-util/buscar-registro");
16
+ const buscar_un_registro_por_id_1 = require("./funciones-util/buscar-un-registro-por-id");
17
+ const crear_un_registro_1 = require("./funciones-util/crear-un-registro");
18
+ const eliminar_uno_1 = require("./funciones-util/eliminar-uno");
19
+ const editar_un_registro_1 = require("./funciones-util/editar-un-registro");
20
+ const aplicar_politicas_de_seguridad_1 = require("./seguridad/aplicar-politicas-de-seguridad");
21
+ const rxjs_1 = require("rxjs");
22
+ const operators_1 = require("rxjs/operators");
23
+ const contar_registros_1 = require("./funciones-util/contar-registros");
24
+ const buscar_where_or_1 = require("./funciones-util/buscar-where-or");
25
+ const principal_find_many_where_or_1 = require("./principal.find-many-where-or");
26
+ class PrincipalController {
27
+ constructor(_funcionesSeguridad, _servicio, _dto, _skip = 0, _take = 30, _mensajes = {
28
+ encontrarUno: 'Id incorrecto',
29
+ crearUno: 'Registro inválido',
30
+ actualizarUno: 'Error al actualizar',
31
+ eliminarUno: 'Error al eliminar'
32
+ }, contexto) {
33
+ this._funcionesSeguridad = _funcionesSeguridad;
34
+ this._servicio = _servicio;
35
+ this._dto = _dto;
36
+ this._skip = _skip;
37
+ this._take = _take;
38
+ this._mensajes = _mensajes;
39
+ this.contexto = contexto;
40
+ }
41
+ findAll(criterioBusqueda, request, response) {
42
+ const tipoPoliticaSeguridad = {
43
+ web: {
44
+ request,
45
+ response
46
+ }
47
+ };
48
+ const objetoPoliticasDeSeguridad = {
49
+ funciones: this._funcionesSeguridad.findAll ? this._funcionesSeguridad.findAll : []
50
+ };
51
+ const puedeRealizarAccion$ = aplicar_politicas_de_seguridad_1.aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
52
+ puedeRealizarAccion$
53
+ .pipe(operators_1.mergeMap((puedeRealizarAccion) => {
54
+ if (puedeRealizarAccion) {
55
+ return rxjs_1.from(buscar_registro_1.buscarVariosRegistros(criterioBusqueda, principal_find_many_options_1.PrincipalFindManyOptions, this._skip, this._take, this._servicio));
56
+ }
57
+ else {
58
+ return rxjs_1.of({ error: 403, mensaje: 'No tiene permisos' });
59
+ }
60
+ }))
61
+ .subscribe((respuesta) => {
62
+ if (respuesta.error) {
63
+ return response.status(respuesta.error).send(respuesta);
64
+ }
65
+ else {
66
+ return response.send(respuesta);
67
+ }
68
+ }, (error) => {
69
+ console.error('Error', error);
70
+ return response.status(500).send('Error del servidor');
71
+ });
72
+ }
73
+ findWhereOr(criterioBusqueda, request, response) {
74
+ const tipoPoliticaSeguridad = {
75
+ web: {
76
+ request,
77
+ response
78
+ }
79
+ };
80
+ const objetoPoliticasDeSeguridad = {
81
+ funciones: this._funcionesSeguridad.findWhereOr ? this._funcionesSeguridad.findWhereOr : []
82
+ };
83
+ const puedeRealizarAccion$ = aplicar_politicas_de_seguridad_1.aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
84
+ puedeRealizarAccion$
85
+ .pipe(operators_1.mergeMap((puedeRealizarAccion) => {
86
+ if (puedeRealizarAccion) {
87
+ return rxjs_1.from(buscar_where_or_1.buscarWhereOr(criterioBusqueda, principal_find_many_where_or_1.PrincipalFindWhereOrOptions, this._skip, this._take, this._servicio));
88
+ }
89
+ else {
90
+ return rxjs_1.of({ error: 403, mensaje: 'No tiene permisos' });
91
+ }
92
+ }))
93
+ .subscribe((respuesta) => {
94
+ if (respuesta.error) {
95
+ return response.status(respuesta.error).send(respuesta);
96
+ }
97
+ else {
98
+ return response.send(respuesta);
99
+ }
100
+ }, (error) => {
101
+ console.error('Error', error);
102
+ return response.status(500).send('Error del servidor');
103
+ });
104
+ }
105
+ count(criterioBusqueda, request, response) {
106
+ const tipoPoliticaSeguridad = {
107
+ web: {
108
+ request,
109
+ response
110
+ }
111
+ };
112
+ const objetoPoliticasDeSeguridad = {
113
+ funciones: this._funcionesSeguridad.count ? this._funcionesSeguridad.count : []
114
+ };
115
+ const puedeRealizarAccion$ = aplicar_politicas_de_seguridad_1.aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
116
+ puedeRealizarAccion$
117
+ .pipe(operators_1.mergeMap((puedeRealizarAccion) => {
118
+ if (puedeRealizarAccion) {
119
+ return rxjs_1.from(contar_registros_1.contarRegistros(criterioBusqueda, principal_find_many_options_1.PrincipalFindManyOptions, this._skip, this._take, this._servicio));
120
+ }
121
+ else {
122
+ return rxjs_1.of({ error: 403, mensaje: 'No tiene permisos' });
123
+ }
124
+ }))
125
+ .subscribe((respuesta) => {
126
+ if (respuesta.error) {
127
+ return response.status(respuesta.error).send(respuesta);
128
+ }
129
+ else {
130
+ return response.send(respuesta);
131
+ }
132
+ }, (error) => {
133
+ console.error('Error', error);
134
+ return response.status(500).send('Error del servidor');
135
+ });
136
+ }
137
+ async findOne(id, request, response) {
138
+ const tipoPoliticaSeguridad = {
139
+ web: {
140
+ request,
141
+ response
142
+ }
143
+ };
144
+ const objetoPoliticasDeSeguridad = {
145
+ funciones: this._funcionesSeguridad.findOne ? this._funcionesSeguridad.findOne : []
146
+ };
147
+ const puedeRealizarAccion$ = aplicar_politicas_de_seguridad_1.aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
148
+ puedeRealizarAccion$
149
+ .pipe(operators_1.mergeMap((puedeRealizarAccion) => {
150
+ if (puedeRealizarAccion) {
151
+ return rxjs_1.from(buscar_un_registro_por_id_1.buscarRegistroPorId(principal_id_1.PrincipalId, id, this._servicio, this._mensajes.encontrarUno, true));
152
+ }
153
+ else {
154
+ return rxjs_1.of({ error: 403, mensaje: 'No tiene permisos' });
155
+ }
156
+ }))
157
+ .subscribe((respuesta) => {
158
+ if (respuesta.error) {
159
+ return response.status(respuesta.error).send(respuesta);
160
+ }
161
+ else {
162
+ return response.send(respuesta);
163
+ }
164
+ }, (error) => {
165
+ console.error('Error', error);
166
+ return response.status(500).send('Error del servidor');
167
+ });
168
+ }
169
+ create(nuevoRegistro, request, response) {
170
+ const tipoPoliticaSeguridad = {
171
+ web: {
172
+ request,
173
+ response
174
+ }
175
+ };
176
+ const objetoPoliticasDeSeguridad = {
177
+ funciones: this._funcionesSeguridad.createOne ? this._funcionesSeguridad.createOne : []
178
+ };
179
+ const puedeRealizarAccion$ = aplicar_politicas_de_seguridad_1.aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
180
+ puedeRealizarAccion$
181
+ .pipe(operators_1.mergeMap((puedeRealizarAccion) => {
182
+ if (puedeRealizarAccion) {
183
+ return rxjs_1.from(crear_un_registro_1.crearUnRegistro(nuevoRegistro, this._servicio, this._dto.CreateDto, this._mensajes.crearUno, true));
184
+ }
185
+ else {
186
+ return rxjs_1.of({ error: 403, mensaje: 'No tiene permisos' });
187
+ }
188
+ }))
189
+ .subscribe((respuesta) => {
190
+ if (respuesta.error) {
191
+ return response.status(respuesta.error).send(respuesta);
192
+ }
193
+ else {
194
+ return response.send(respuesta);
195
+ }
196
+ }, (error) => {
197
+ console.error('Error', error);
198
+ return response.status(500).send('Error del servidor');
199
+ });
200
+ }
201
+ async delete(id, request, response) {
202
+ const tipoPoliticaSeguridad = {
203
+ web: {
204
+ request,
205
+ response
206
+ }
207
+ };
208
+ const objetoPoliticasDeSeguridad = {
209
+ funciones: this._funcionesSeguridad.deleteOne ? this._funcionesSeguridad.deleteOne : []
210
+ };
211
+ const puedeRealizarAccion$ = aplicar_politicas_de_seguridad_1.aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
212
+ puedeRealizarAccion$
213
+ .pipe(operators_1.mergeMap((puedeRealizarAccion) => {
214
+ if (puedeRealizarAccion) {
215
+ return rxjs_1.from(eliminar_uno_1.eliminarUno(id, principal_id_1.PrincipalId, this._servicio, this._mensajes.eliminarUno, true));
216
+ }
217
+ else {
218
+ return rxjs_1.of({ error: 403, mensaje: 'No tiene permisos' });
219
+ }
220
+ }))
221
+ .subscribe((respuesta) => {
222
+ if (respuesta.error) {
223
+ return response.status(respuesta.error).send(respuesta);
224
+ }
225
+ else {
226
+ return response.send(respuesta);
227
+ }
228
+ }, (error) => {
229
+ console.error('Error', error);
230
+ return response.status(500).send('Error del servidor');
231
+ });
232
+ }
233
+ async update(id, registroAActualizar, request, response) {
234
+ const tipoPoliticaSeguridad = {
235
+ web: {
236
+ request,
237
+ response
238
+ }
239
+ };
240
+ const objetoPoliticasDeSeguridad = {
241
+ funciones: this._funcionesSeguridad.updateOne ? this._funcionesSeguridad.updateOne : []
242
+ };
243
+ const puedeRealizarAccion$ = aplicar_politicas_de_seguridad_1.aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
244
+ puedeRealizarAccion$
245
+ .pipe(operators_1.mergeMap((puedeRealizarAccion) => {
246
+ if (puedeRealizarAccion) {
247
+ return rxjs_1.from(editar_un_registro_1.editarUnRegistro(id, registroAActualizar, this._servicio, this._dto.UpdateDto, this._mensajes.actualizarUno, true));
248
+ }
249
+ else {
250
+ return rxjs_1.of({ error: 403, mensaje: 'No tiene permisos' });
251
+ }
252
+ }))
253
+ .subscribe((respuesta) => {
254
+ if (respuesta.error) {
255
+ return response.status(respuesta.error).send(respuesta);
256
+ }
257
+ else {
258
+ return response.send(respuesta);
259
+ }
260
+ }, (error) => {
261
+ console.error('Error', error);
262
+ return response.status(500).send('Error del servidor');
263
+ });
264
+ }
265
+ }
266
+ __decorate([
267
+ common_1.Get(),
268
+ __param(0, common_1.Query('criterioBusqueda')),
269
+ __param(1, common_1.Request()),
270
+ __param(2, common_1.Response())
271
+ ], PrincipalController.prototype, "findAll", null);
272
+ __decorate([
273
+ common_1.Get('findWhereOr'),
274
+ __param(0, common_1.Query('criterioBusqueda')),
275
+ __param(1, common_1.Request()),
276
+ __param(2, common_1.Response())
277
+ ], PrincipalController.prototype, "findWhereOr", null);
278
+ __decorate([
279
+ common_1.Get('count'),
280
+ __param(0, common_1.Query('criterioBusqueda')),
281
+ __param(1, common_1.Request()),
282
+ __param(2, common_1.Response())
283
+ ], PrincipalController.prototype, "count", null);
284
+ __decorate([
285
+ common_1.Get(':id'),
286
+ __param(0, common_1.Param('id')),
287
+ __param(1, common_1.Request()),
288
+ __param(2, common_1.Response())
289
+ ], PrincipalController.prototype, "findOne", null);
290
+ __decorate([
291
+ common_1.Post(),
292
+ __param(0, common_1.Body()),
293
+ __param(1, common_1.Request()),
294
+ __param(2, common_1.Response())
295
+ ], PrincipalController.prototype, "create", null);
296
+ __decorate([
297
+ common_1.Delete(':id'),
298
+ __param(0, common_1.Param('id')),
299
+ __param(1, common_1.Request()),
300
+ __param(2, common_1.Response())
301
+ ], PrincipalController.prototype, "delete", null);
302
+ __decorate([
303
+ common_1.Put(':id'),
304
+ __param(0, common_1.Param('id')),
305
+ __param(1, common_1.Body()),
306
+ __param(2, common_1.Request()),
307
+ __param(3, common_1.Response())
308
+ ], PrincipalController.prototype, "update", null);
309
+ exports.PrincipalController = PrincipalController;
310
310
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbmNpcGFsLmNvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3ByaW5jaXBhbC5jb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsMkNBQStGO0FBQy9GLCtFQUF5RTtBQUN6RSxpREFBNkM7QUFHN0Msc0VBQXlFO0FBQ3pFLDBGQUFpRjtBQUNqRiwwRUFBcUU7QUFDckUsZ0VBQTREO0FBQzVELDRFQUF1RTtBQUl2RSwrRkFBeUY7QUFDekYsK0JBQWdDO0FBQ2hDLDhDQUEwQztBQUMxQyx3RUFBb0U7QUFDcEUsc0VBQWlFO0FBQ2pFLGlGQUE2RTtBQUU3RTtJQUNJLFlBQTZCLG1CQUF1QyxFQUMvQyxTQUFTLEVBQ1QsSUFBa0IsRUFDbEIsUUFBUSxDQUFDLEVBQ1QsUUFBUSxFQUFFLEVBQ1YsWUFBZ0M7UUFDN0MsWUFBWSxFQUFFLGVBQWU7UUFDN0IsUUFBUSxFQUFFLG1CQUFtQjtRQUM3QixhQUFhLEVBQUUscUJBQXFCO1FBQ3BDLFdBQVcsRUFBRSxtQkFBbUI7S0FDbkMsRUFDUyxRQUFhO1FBWEUsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQUMvQyxjQUFTLEdBQVQsU0FBUyxDQUFBO1FBQ1QsU0FBSSxHQUFKLElBQUksQ0FBYztRQUNsQixVQUFLLEdBQUwsS0FBSyxDQUFJO1FBQ1QsVUFBSyxHQUFMLEtBQUssQ0FBSztRQUNWLGNBQVMsR0FBVCxTQUFTLENBS3pCO1FBQ1MsYUFBUSxHQUFSLFFBQVEsQ0FBSztJQUUzQixDQUFDO0lBR0QsT0FBTyxDQUN3QixnQkFBZ0IsRUFDaEMsT0FBTyxFQUNOLFFBQVE7UUFFcEIsTUFBTSxxQkFBcUIsR0FBeUI7WUFDaEQsR0FBRyxFQUFFO2dCQUNELE9BQU87Z0JBQ1AsUUFBUTthQUNYO1NBQ0osQ0FBQztRQUVGLE1BQU0sMEJBQTBCLEdBQThCO1lBQzFELFNBQVMsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENB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