dmencu 3.2.21 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/README.md +42 -42
  2. package/ayuda/asignacion.md +16 -0
  3. package/ayuda/circuito-encuesta.md +27 -0
  4. package/ayuda/control.md +13 -0
  5. package/ayuda/dm-cambiar-modo.md +16 -0
  6. package/ayuda/dm-relevamiento.md +20 -0
  7. package/ayuda/dm-sincronizar.md +18 -0
  8. package/ayuda/fin-de-campo.md +14 -0
  9. package/ayuda/metadatos.md +14 -0
  10. package/ayuda/procesar.md +13 -0
  11. package/ayuda/recepcion.md +20 -0
  12. package/ayuda/supervision.md +9 -0
  13. package/ayuda/usuarios.md +12 -0
  14. package/ayuda/varios.md +23 -0
  15. package/dist/client/client/client.js +101 -4
  16. package/dist/client/client/css/menu.styl +29 -0
  17. package/dist/client/unlogged/abrir-formulario.js +1 -1
  18. package/dist/client/unlogged/bypass-formulario.d.ts +6 -42
  19. package/dist/client/unlogged/bypass-formulario.js +84 -219
  20. package/dist/client/unlogged/calculos-encuesta.js +112 -38
  21. package/dist/client/unlogged/css/formulario-react.styl +9 -0
  22. package/dist/client/unlogged/helpers-casilleros.d.ts +1 -1
  23. package/dist/client/unlogged/helpers-casilleros.js +12 -18
  24. package/dist/client/unlogged/helpers-formulario.d.ts +16 -0
  25. package/dist/client/unlogged/helpers-formulario.js +88 -0
  26. package/dist/client/unlogged/redux-formulario.d.ts +1 -2
  27. package/dist/client/unlogged/redux-formulario.js +21 -31
  28. package/dist/client/unlogged/render-config.d.ts +5 -1
  29. package/dist/client/unlogged/render-config.js +14 -1
  30. package/dist/client/unlogged/render-formulario.d.ts +3 -6
  31. package/dist/client/unlogged/render-formulario.js +71 -69
  32. package/dist/client/unlogged/render-formulario.tsx +100 -57
  33. package/dist/client/unlogged/render-general.d.ts +2 -0
  34. package/dist/client/unlogged/render-general.js +2 -1
  35. package/dist/client/unlogged/render-general.tsx +2 -1
  36. package/dist/client/unlogged/render-init.d.ts +1 -0
  37. package/dist/client/unlogged/render-init.js +9 -2
  38. package/dist/client/unlogged/tipos.d.ts +93 -41
  39. package/dist/client/unlogged/tipos.js +1 -1
  40. package/dist/server/app-dmencu.d.ts +1435 -0
  41. package/dist/server/app-dmencu.js +1091 -0
  42. package/dist/server/ayuda.d.ts +19 -0
  43. package/dist/server/ayuda.js +224 -0
  44. package/dist/server/def-config.d.ts +1 -0
  45. package/dist/server/def-config.js +123 -0
  46. package/dist/server/procedures-dmencu.d.ts +43 -0
  47. package/dist/server/procedures-dmencu.js +2313 -0
  48. package/dist/server/server/app-dmencu.d.ts +49 -91
  49. package/dist/server/server/app-dmencu.js +151 -52
  50. package/dist/server/server/ayuda.d.ts +19 -0
  51. package/dist/server/server/ayuda.js +224 -0
  52. package/dist/server/server/procedures-dmencu.d.ts +34 -2
  53. package/dist/server/server/procedures-dmencu.js +93 -51
  54. package/dist/server/server/setters-rea-no-rea.d.ts +13 -0
  55. package/dist/server/server/setters-rea-no-rea.js +35 -0
  56. package/dist/server/server/table-areas.js +4 -4
  57. package/dist/server/server/table-areas_asignacion_general.js +2 -1
  58. package/dist/server/server/table-control_campo.js +4 -4
  59. package/dist/server/server/table-no_rea.js +4 -2
  60. package/dist/server/server/table-no_rea_sup.js +7 -3
  61. package/dist/server/server/table-personal.js +1 -1
  62. package/dist/server/server/table-tareas_tem.js +2 -2
  63. package/dist/server/server/table-tem.js +2 -2
  64. package/dist/server/server/types-dmencu.d.ts +53 -2
  65. package/dist/server/server/types-dmencu.js +2 -1
  66. package/dist/server/setters-rea-no-rea.d.ts +13 -0
  67. package/dist/server/setters-rea-no-rea.js +35 -0
  68. package/dist/server/table-acciones.d.ts +2 -0
  69. package/dist/server/table-acciones.js +45 -0
  70. package/dist/server/table-area_enc_proximas.d.ts +2 -0
  71. package/dist/server/table-area_enc_proximas.js +30 -0
  72. package/dist/server/table-areas.d.ts +4 -0
  73. package/dist/server/table-areas.js +112 -0
  74. package/dist/server/table-areas_asignacion_general.d.ts +2 -0
  75. package/dist/server/table-areas_asignacion_general.js +86 -0
  76. package/dist/server/table-barrios.d.ts +2 -0
  77. package/dist/server/table-barrios.js +35 -0
  78. package/dist/server/table-comunas.d.ts +2 -0
  79. package/dist/server/table-comunas.js +33 -0
  80. package/dist/server/table-control_campo.d.ts +12 -0
  81. package/dist/server/table-control_campo.js +119 -0
  82. package/dist/server/table-control_dias_carga.d.ts +2 -0
  83. package/dist/server/table-control_dias_carga.js +63 -0
  84. package/dist/server/table-control_resumen.d.ts +2 -0
  85. package/dist/server/table-control_resumen.js +19 -0
  86. package/dist/server/table-diccionario.d.ts +2 -0
  87. package/dist/server/table-diccionario.js +32 -0
  88. package/dist/server/table-dictra.d.ts +2 -0
  89. package/dist/server/table-dictra.js +46 -0
  90. package/dist/server/table-dicvar.d.ts +2 -0
  91. package/dist/server/table-dicvar.js +32 -0
  92. package/dist/server/table-encuestadores.d.ts +13 -0
  93. package/dist/server/table-encuestadores.js +75 -0
  94. package/dist/server/table-estados.d.ts +2 -0
  95. package/dist/server/table-estados.js +47 -0
  96. package/dist/server/table-estados_acciones.d.ts +2 -0
  97. package/dist/server/table-estados_acciones.js +40 -0
  98. package/dist/server/table-fracciones.d.ts +2 -0
  99. package/dist/server/table-fracciones.js +37 -0
  100. package/dist/server/table-grilla_hoja_ruta.d.ts +2 -0
  101. package/dist/server/table-grilla_hoja_ruta.js +93 -0
  102. package/dist/server/table-historial_tem.d.ts +2 -0
  103. package/dist/server/table-historial_tem.js +57 -0
  104. package/dist/server/table-hogares.d.ts +2 -0
  105. package/dist/server/table-hogares.js +156 -0
  106. package/dist/server/table-hogares_sup.d.ts +2 -0
  107. package/dist/server/table-hogares_sup.js +191 -0
  108. package/dist/server/table-inconsistencias_cumplen_condicion.d.ts +2 -0
  109. package/dist/server/table-inconsistencias_cumplen_condicion.js +33 -0
  110. package/dist/server/table-manzanas.d.ts +2 -0
  111. package/dist/server/table-manzanas.js +36 -0
  112. package/dist/server/table-mis_encuestadores.d.ts +2 -0
  113. package/dist/server/table-mis_encuestadores.js +77 -0
  114. package/dist/server/table-mis_tareas.d.ts +2 -0
  115. package/dist/server/table-mis_tareas.js +18 -0
  116. package/dist/server/table-mis_tareas_areas.d.ts +2 -0
  117. package/dist/server/table-mis_tareas_areas.js +20 -0
  118. package/dist/server/table-modos_dm.d.ts +2 -0
  119. package/dist/server/table-modos_dm.js +28 -0
  120. package/dist/server/table-no_rea.js +38 -0
  121. package/dist/server/table-no_rea_sup.js +36 -0
  122. package/dist/server/table-operaciones.d.ts +2 -0
  123. package/dist/server/table-operaciones.js +30 -0
  124. package/dist/server/table-parametros.d.ts +2 -0
  125. package/dist/server/table-parametros.js +40 -0
  126. package/dist/server/table-permisos.d.ts +2 -0
  127. package/dist/server/table-permisos.js +31 -0
  128. package/dist/server/table-personal.d.ts +5 -0
  129. package/dist/server/table-personal.js +62 -0
  130. package/dist/server/table-personal_rol.d.ts +2 -0
  131. package/dist/server/table-personal_rol.js +42 -0
  132. package/dist/server/table-personas.d.ts +2 -0
  133. package/dist/server/table-personas.js +448 -0
  134. package/dist/server/table-personas_sup.d.ts +2 -0
  135. package/dist/server/table-personas_sup.js +93 -0
  136. package/dist/server/table-radios.d.ts +2 -0
  137. package/dist/server/table-radios.js +37 -0
  138. package/dist/server/table-rea.d.ts +2 -0
  139. package/dist/server/table-rea.js +38 -0
  140. package/dist/server/table-rea_sup.d.ts +2 -0
  141. package/dist/server/table-rea_sup.js +38 -0
  142. package/dist/server/table-recepcionistas.d.ts +2 -0
  143. package/dist/server/table-recepcionistas.js +18 -0
  144. package/dist/server/table-recuperadores.d.ts +2 -0
  145. package/dist/server/table-recuperadores.js +18 -0
  146. package/dist/server/table-roles.d.ts +2 -0
  147. package/dist/server/table-roles.js +33 -0
  148. package/dist/server/table-roles_permisos.d.ts +2 -0
  149. package/dist/server/table-roles_permisos.js +36 -0
  150. package/dist/server/table-roles_subordinados.d.ts +2 -0
  151. package/dist/server/table-roles_subordinados.js +31 -0
  152. package/dist/server/table-semanas.d.ts +2 -0
  153. package/dist/server/table-semanas.js +42 -0
  154. package/dist/server/table-sincronizaciones.d.ts +2 -0
  155. package/dist/server/table-sincronizaciones.js +30 -0
  156. package/dist/server/table-supervisores.d.ts +2 -0
  157. package/dist/server/table-supervisores.js +18 -0
  158. package/dist/server/table-tareas.d.ts +2 -0
  159. package/dist/server/table-tareas.js +48 -0
  160. package/dist/server/table-tareas_areas.d.ts +7 -0
  161. package/dist/server/table-tareas_areas.js +112 -0
  162. package/dist/server/table-tareas_proximas.d.ts +2 -0
  163. package/dist/server/table-tareas_proximas.js +48 -0
  164. package/dist/server/table-tareas_tem.d.ts +14 -0
  165. package/dist/server/table-tareas_tem.js +206 -0
  166. package/dist/server/table-tareas_tem_analisis_campo.d.ts +2 -0
  167. package/dist/server/table-tareas_tem_analisis_campo.js +31 -0
  168. package/dist/server/table-tareas_tem_fin_campo.d.ts +3 -0
  169. package/dist/server/table-tareas_tem_fin_campo.js +56 -0
  170. package/dist/server/table-tareas_tem_ingreso.d.ts +2 -0
  171. package/dist/server/table-tareas_tem_ingreso.js +31 -0
  172. package/dist/server/table-tareas_tem_procesamiento.d.ts +2 -0
  173. package/dist/server/table-tareas_tem_procesamiento.js +34 -0
  174. package/dist/server/table-tareas_tem_recepcion.d.ts +6 -0
  175. package/dist/server/table-tareas_tem_recepcion.js +59 -0
  176. package/dist/server/table-tem.d.ts +3 -0
  177. package/dist/server/table-tem.js +247 -0
  178. package/dist/server/table-tem_asignacion.d.ts +2 -0
  179. package/dist/server/table-tem_asignacion.js +50 -0
  180. package/dist/server/table-tem_borradas.d.ts +2 -0
  181. package/dist/server/table-tem_borradas.js +35 -0
  182. package/dist/server/table-usuarios.d.ts +2 -0
  183. package/dist/server/table-usuarios.js +63 -0
  184. package/dist/server/table-visitas.d.ts +2 -0
  185. package/dist/server/table-visitas.js +91 -0
  186. package/dist/server/table-visitas_sup.d.ts +2 -0
  187. package/dist/server/table-visitas_sup.js +91 -0
  188. package/dist/server/table-viviendas.d.ts +2 -0
  189. package/dist/server/table-viviendas.js +299 -0
  190. package/dist/server/types-dmencu.d.ts +114 -0
  191. package/dist/server/types-dmencu.js +34 -0
  192. package/dist/server/unlogged/tipos.d.ts +93 -41
  193. package/dist/server/unlogged/tipos.js +1 -1
  194. package/dist/test/app-para-tests.d.ts +1117 -0
  195. package/dist/test/app-para-tests.js +95 -0
  196. package/dist/test/test-ayuda.d.ts +1 -0
  197. package/dist/test/test-ayuda.js +183 -0
  198. package/dist/test/test-caches-rea.d.ts +1 -0
  199. package/dist/test/test-caches-rea.js +243 -0
  200. package/dist/test/test-helpers-casilleros.d.ts +1 -0
  201. package/dist/test/test-helpers-casilleros.js +154 -0
  202. package/dist/test/test-helpers-formulario.d.ts +1 -0
  203. package/dist/test/test-helpers-formulario.js +95 -0
  204. package/dist/test/test-impacto-rea-no-rea-en-bd.d.ts +1 -0
  205. package/dist/test/test-impacto-rea-no-rea-en-bd.js +243 -0
  206. package/dist/test/test-menu-segun-rol.d.ts +1 -0
  207. package/dist/test/test-menu-segun-rol.js +170 -0
  208. package/dist/test/test-setters-rea-no-rea.d.ts +1 -0
  209. package/dist/test/test-setters-rea-no-rea.js +95 -0
  210. package/dist/test/test.d.ts +7 -0
  211. package/dist/test/test.js +9 -2
  212. package/dist/unlogged/helpers-casilleros.d.ts +1 -1
  213. package/dist/unlogged/helpers-casilleros.js +12 -18
  214. package/dist/unlogged/helpers-formulario.d.ts +16 -0
  215. package/dist/unlogged/helpers-formulario.js +88 -0
  216. package/dist/unlogged/tipos.d.ts +20 -2
  217. package/dist/unlogged/tipos.js +1 -1
  218. package/dist/unlogged/unlogged/abrir-formulario.js +1 -1
  219. package/dist/unlogged/unlogged/bypass-formulario.d.ts +6 -42
  220. package/dist/unlogged/unlogged/bypass-formulario.js +84 -219
  221. package/dist/unlogged/unlogged/css/formulario-react.styl +9 -0
  222. package/dist/unlogged/unlogged/helpers-casilleros.js +7 -14
  223. package/dist/unlogged/unlogged/helpers-formulario.d.ts +16 -0
  224. package/dist/unlogged/unlogged/helpers-formulario.js +88 -0
  225. package/dist/unlogged/unlogged/redux-formulario.d.ts +1 -2
  226. package/dist/unlogged/unlogged/redux-formulario.js +21 -31
  227. package/dist/unlogged/unlogged/render-config.d.ts +5 -1
  228. package/dist/unlogged/unlogged/render-config.js +14 -1
  229. package/dist/unlogged/unlogged/render-formulario.d.ts +3 -6
  230. package/dist/unlogged/unlogged/render-formulario.js +71 -69
  231. package/dist/unlogged/unlogged/render-formulario.tsx +100 -57
  232. package/dist/unlogged/unlogged/render-general.d.ts +2 -0
  233. package/dist/unlogged/unlogged/render-general.js +2 -1
  234. package/dist/unlogged/unlogged/render-general.tsx +2 -1
  235. package/dist/unlogged/unlogged/render-init.d.ts +1 -0
  236. package/dist/unlogged/unlogged/render-init.js +9 -2
  237. package/dist/unlogged/unlogged/tipos.d.ts +93 -41
  238. package/dist/unlogged/unlogged/tipos.js +1 -1
  239. package/dist/unlogged/unlogged/unlogged.js +15 -2
  240. package/install/accion_cumple_condicion.sql +1 -1
  241. package/install/generador_accion_cumple_condicion.sql +2 -2
  242. package/install/tarea_cumple_condicion.sql +1 -1
  243. package/install/xcalcular_resultado_trg.sql +1 -1
  244. package/package.json +24 -18
  245. package/dist/server/server/table-no_rea copy.js +0 -38
  246. package/dist/server/server/table-no_rea_sup copy.js +0 -36
  247. package/dist/unlogged/bypass-formulario.d.ts +0 -198
  248. package/dist/unlogged/bypass-formulario.js +0 -1226
  249. package/dist/unlogged/redux-formulario.d.ts +0 -440
  250. package/dist/unlogged/redux-formulario.js +0 -324
  251. package/dist/unlogged/render-config.d.ts +0 -52
  252. package/dist/unlogged/render-config.js +0 -161
  253. package/dist/unlogged/unlogged/bypass-formulario copy.d.ts +0 -198
  254. package/dist/unlogged/unlogged/bypass-formulario copy.js +0 -1226
  255. package/dist/unlogged/unlogged/helpers.d.ts +0 -14
  256. package/dist/unlogged/unlogged/helpers.js +0 -129
  257. /package/dist/server/{server/table-no_rea copy.d.ts → table-no_rea.d.ts} +0 -0
  258. /package/dist/server/{server/table-no_rea_sup copy.d.ts → table-no_rea_sup.d.ts} +0 -0
@@ -0,0 +1,170 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "mocha", "node:assert", "../server/app-dmencu", "./app-para-tests"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const mocha_1 = require("mocha");
13
+ const assert = require("node:assert");
14
+ const app_dmencu_1 = require("../server/app-dmencu");
15
+ const app_para_tests_1 = require("./app-para-tests");
16
+ const GABINETE = '';
17
+ const RELEVAMIENTO = 'web';
18
+ function nombres(menu) {
19
+ return menu.map(item => item.name);
20
+ }
21
+ function submenu(menu, nombre) {
22
+ var item = menu.find(item => item.name == nombre);
23
+ assert.ok(item, `falta el menú ${nombre}`);
24
+ return item.menuContent;
25
+ }
26
+ function menuDelRol(policy, rol, idper) {
27
+ var be = (0, app_para_tests_1.crearAppParaTests)(policy);
28
+ return be.getMenu((0, app_para_tests_1.contextoDelRol)(be, rol, idper)).menu;
29
+ }
30
+ (0, mocha_1.describe)('dmencu - menú según rol y policy', () => {
31
+ (0, mocha_1.describe)('getModoByPolicy', () => {
32
+ (0, mocha_1.it)('policy web es RELEVAMIENTO (dispositivos)', () => {
33
+ assert.strictEqual((0, app_dmencu_1.getModoByPolicy)((0, app_para_tests_1.crearAppParaTests)(RELEVAMIENTO)), 'RELEVAMIENTO');
34
+ });
35
+ (0, mocha_1.it)('cualquier otra policy es GABINETE', () => {
36
+ assert.strictEqual((0, app_dmencu_1.getModoByPolicy)((0, app_para_tests_1.crearAppParaTests)('')), 'GABINETE');
37
+ assert.strictEqual((0, app_dmencu_1.getModoByPolicy)((0, app_para_tests_1.crearAppParaTests)('otra')), 'GABINETE');
38
+ });
39
+ });
40
+ (0, mocha_1.describe)('permisosSegunUsuario (lo que getContext agrega al contexto)', () => {
41
+ const permisos = (0, app_para_tests_1.permisosDeInstalacion)();
42
+ const caches = Object.assign(Object.assign({}, permisos), { permisosRolSoloTrue: permisos.permisosRol });
43
+ (0, mocha_1.it)('sin usuario logueado no puede nada', () => {
44
+ assert.deepStrictEqual((0, app_dmencu_1.permisosSegunUsuario)(caches, undefined), { puede: permisos.permisosParaNadie });
45
+ });
46
+ (0, mocha_1.it)('un rol superuser (admin) es superuser y puede todo', () => {
47
+ assert.deepStrictEqual((0, app_dmencu_1.permisosSegunUsuario)(caches, { rol: 'admin' }), { superuser: true, puede: permisos.permisosSuperuser });
48
+ });
49
+ (0, mocha_1.it)('un rol común tiene los permisos de su rol y no es superuser', () => {
50
+ var _a, _b, _c, _d;
51
+ var resultado = (0, app_dmencu_1.permisosSegunUsuario)(caches, { rol: 'encuestador' });
52
+ assert.strictEqual(resultado.superuser, undefined);
53
+ assert.strictEqual((_b = (_a = resultado.puede) === null || _a === void 0 ? void 0 : _a.encuestas) === null || _b === void 0 ? void 0 : _b.relevar, true);
54
+ assert.strictEqual((_d = (_c = resultado.puede) === null || _c === void 0 ? void 0 : _c.campo) === null || _d === void 0 ? void 0 : _d.editar, false);
55
+ });
56
+ (0, mocha_1.it)('un rol que no existe no tiene permisos', () => {
57
+ assert.deepStrictEqual((0, app_dmencu_1.permisosSegunUsuario)(caches, { rol: 'inexistente' }), { puede: undefined });
58
+ });
59
+ (0, mocha_1.it)('los permisos para nadie tienen todas las acciones en false', () => {
60
+ var _a, _b, _c;
61
+ assert.strictEqual((_a = permisos.permisosParaNadie.encuestas) === null || _a === void 0 ? void 0 : _a.relevar, false);
62
+ assert.strictEqual((_b = permisos.permisosParaNadie.campo) === null || _b === void 0 ? void 0 : _b.administrar, false);
63
+ assert.strictEqual((_c = permisos.permisosParaNadie.casilleros_texto) === null || _c === void 0 ? void 0 : _c.editar, false);
64
+ });
65
+ });
66
+ (0, mocha_1.describe)('en RELEVAMIENTO (policy web)', () => {
67
+ (0, mocha_1.it)('quien releva (encuestador) ve hoja de ruta, sincronizar y cambiar modo', () => {
68
+ assert.deepStrictEqual(menuDelRol(RELEVAMIENTO, 'encuestador'), [
69
+ { menuType: 'path', name: 'relevamiento', path: '/campo' },
70
+ { menuType: 'sincronizar_dm', name: 'sincronizar' },
71
+ { menuType: 'cambiar_modo_dm', name: 'cambiar_modo' },
72
+ ]);
73
+ });
74
+ (0, mocha_1.it)('recuperador y supervisor también relevan', () => {
75
+ assert.deepStrictEqual(nombres(menuDelRol(RELEVAMIENTO, 'recuperador')), ['relevamiento', 'sincronizar', 'cambiar_modo']);
76
+ assert.deepStrictEqual(nombres(menuDelRol(RELEVAMIENTO, 'supervisor')), ['relevamiento', 'sincronizar', 'cambiar_modo']);
77
+ });
78
+ (0, mocha_1.it)('quien no releva no ve nada aunque tenga permisos de gabinete', () => {
79
+ assert.deepStrictEqual(menuDelRol(RELEVAMIENTO, 'recepcionista'), []);
80
+ assert.deepStrictEqual(menuDelRol(RELEVAMIENTO, 'coor_campo'), []);
81
+ assert.deepStrictEqual(menuDelRol(RELEVAMIENTO, 'dis_conceptual'), []);
82
+ });
83
+ });
84
+ (0, mocha_1.describe)('en GABINETE', () => {
85
+ (0, mocha_1.it)('el encuestador no ve nada (releva sólo en el dispositivo)', () => {
86
+ assert.deepStrictEqual(menuDelRol(GABINETE, 'encuestador'), []);
87
+ });
88
+ (0, mocha_1.it)('un rol sin permisos (auxiliar) no ve nada', () => {
89
+ assert.deepStrictEqual(menuDelRol(GABINETE, 'auxiliar'), []);
90
+ });
91
+ (0, mocha_1.it)('admin (superuser) ve todos los menús', () => {
92
+ var menu = menuDelRol(GABINETE, 'admin');
93
+ assert.deepStrictEqual(nombres(menu), [
94
+ 'asignacion', 'recepcion', 'tareas_tem_fin_campo', 'tareas_tem_analisis_campo', 'supervision',
95
+ 'varios', 'control', 'procesar', 'configurar', 'carto'
96
+ ]);
97
+ assert.deepStrictEqual(nombres(submenu(menu, 'configurar')), [
98
+ 'muestra', 'metadatos', 'estados_acciones_tareas', 'momentos_consistencia', 'parametros', 'modos_dm', 'usuarios'
99
+ ]);
100
+ });
101
+ (0, mocha_1.it)('el coordinador de campo administra campo y procesa, pero no edita metadatos ni ve lo de superuser', () => {
102
+ var menu = menuDelRol(GABINETE, 'coor_campo');
103
+ assert.deepStrictEqual(nombres(menu), [
104
+ 'asignacion', 'recepcion', 'tareas_tem_fin_campo', 'tareas_tem_analisis_campo', 'supervision',
105
+ 'varios', 'control', 'procesar', 'configurar', 'carto'
106
+ ]);
107
+ assert.deepStrictEqual(nombres(submenu(menu, 'configurar')), ['muestra', 'usuarios']);
108
+ assert.deepStrictEqual(nombres(submenu(menu, 'asignacion')), ['general', 'encuestador', 'ingresador', 'recuperador', 'supervisor']);
109
+ assert.deepStrictEqual(nombres(submenu(menu, 'recepcion')), ['encuestador', 'recuperador', 'ingresador', 'supervisor', 'mis_supervisores']);
110
+ assert.ok(nombres(submenu(menu, 'varios')).includes('operativo_migrar'));
111
+ assert.ok(nombres(submenu(menu, 'varios')).includes('intercambiar_encuestas'));
112
+ });
113
+ (0, mocha_1.it)('el subcoordinador administra campo pero no procesa', () => {
114
+ var menu = menuDelRol(GABINETE, 'subcoor_campo');
115
+ assert.deepStrictEqual(nombres(menu), [
116
+ 'asignacion', 'recepcion', 'tareas_tem_fin_campo', 'tareas_tem_analisis_campo', 'supervision',
117
+ 'varios', 'control', 'configurar', 'carto'
118
+ ]);
119
+ assert.ok(!nombres(submenu(menu, 'varios')).includes('intercambiar_encuestas'));
120
+ });
121
+ (0, mocha_1.it)('procesamiento procesa pero no edita campo', () => {
122
+ var menu = menuDelRol(GABINETE, 'procesamiento');
123
+ assert.deepStrictEqual(nombres(menu), ['varios', 'control', 'procesar', 'configurar']);
124
+ assert.deepStrictEqual(nombres(submenu(menu, 'varios')), ['abrir_encuesta', 'intercambiar_encuestas']);
125
+ });
126
+ (0, mocha_1.it)('el ingresador edita campo sin administrar: asignación y recepción reducidas, sin control ni configuración', () => {
127
+ var menu = menuDelRol(GABINETE, 'ingresador');
128
+ assert.deepStrictEqual(nombres(menu), ['asignacion', 'recepcion', 'supervision', 'varios']);
129
+ assert.deepStrictEqual(nombres(submenu(menu, 'asignacion')), ['encuestador', 'ingresador', 'recuperador']);
130
+ assert.deepStrictEqual(nombres(submenu(menu, 'recepcion')), ['encuestador', 'recuperador', 'ingresador']);
131
+ assert.deepStrictEqual(nombres(submenu(menu, 'varios')), ['abrir_encuesta', 'hoja_ruta']);
132
+ });
133
+ (0, mocha_1.it)('diseño conceptual sólo edita metadatos (incluidas las tablas de rea/no rea)', () => {
134
+ var menu = menuDelRol(GABINETE, 'dis_conceptual');
135
+ assert.deepStrictEqual(nombres(menu), ['configurar']);
136
+ var metadatos = submenu(submenu(menu, 'configurar'), 'metadatos');
137
+ assert.deepStrictEqual(nombres(submenu(metadatos, 'rea/norea')), ['rea', 'no_rea', 'rea_sup', 'no_rea_sup']);
138
+ });
139
+ (0, mocha_1.it)('al recepcionista la asignación le filtra sus propias áreas', () => {
140
+ var asignacion = submenu(menuDelRol(GABINETE, 'recepcionista', 'REC7'), 'asignacion');
141
+ assert.deepStrictEqual(asignacion.map(item => item.ff), [
142
+ { tarea: 'encu', recepcionista: 'REC7' },
143
+ { tarea: 'ingr', recepcionista: 'REC7' },
144
+ { tarea_actual: 'recu', tarea: 'recu', recepcionista: 'REC7' },
145
+ ]);
146
+ });
147
+ (0, mocha_1.it)('a los demás roles la asignación no les filtra por recepcionista', () => {
148
+ var asignacion = submenu(menuDelRol(GABINETE, 'ingresador'), 'asignacion');
149
+ assert.deepStrictEqual(asignacion.map(item => item.ff), [
150
+ { tarea: 'encu' },
151
+ { tarea: 'ingr' },
152
+ { tarea_actual: 'recu', tarea: 'recu' },
153
+ ]);
154
+ });
155
+ (0, mocha_1.it)('la supervisión muestra las encuestas asignadas al usuario', () => {
156
+ var supervision = submenu(menuDelRol(GABINETE, 'ingresador', 'ING3'), 'supervision');
157
+ assert.deepStrictEqual(supervision, [
158
+ { menuType: 'table', name: 'supervisar', table: 'tareas_tem_ingreso', ff: { tarea: 'supe', asignado: 'ING3' } }
159
+ ]);
160
+ });
161
+ });
162
+ (0, mocha_1.describe)('getMenu sin context', () => {
163
+ (0, mocha_1.it)('lanza un error claro', () => {
164
+ var be = (0, app_para_tests_1.crearAppParaTests)(GABINETE);
165
+ assert.throws(() => be.getMenu(), /requiere el context/);
166
+ });
167
+ });
168
+ });
169
+ });
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1tZW51LXNlZ3VuLXJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L3Rlc3QtbWVudS1zZWd1bi1yb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFBQSxpQ0FBcUM7SUFFckMsc0NBQXVDO0lBRXZDLHFEQUE2RTtJQUU3RSxxREFBNEY7SUFFNUYsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3BCLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQztJQUUzQixTQUFTLE9BQU8sQ0FBQyxJQUFvQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFNBQVMsT0FBTyxDQUFDLElBQW9CLEVBQUUsTUFBYztRQUNqRCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsQ0FBQztRQUNsRCxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxpQkFBaUIsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUMzQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELFNBQVMsVUFBVSxDQUFDLE1BQWMsRUFBRSxHQUFXLEVBQUUsS0FBYztRQUMzRCxJQUFJLEVBQUUsR0FBRyxJQUFBLGtDQUFpQixFQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFBLCtCQUFjLEVBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMzRCxDQUFDO0lBRUQsSUFBQSxnQkFBUSxFQUFDLGtDQUFrQyxFQUFFLEdBQUcsRUFBRTtRQUU5QyxJQUFBLGdCQUFRLEVBQUMsaUJBQWlCLEVBQUUsR0FBRyxF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QUFHLEVBQUU7Z0JBQ2pFLElBQUksV0FBVyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztnQkFDckYsTUFBTSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUU7b0JBQ2hDLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRTtpQkFDbEgsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUEsZ0JBQVEsRUFBQyxxQkFBcUIsRUFBRSxHQUFHLEVBQUU7WUFDakMsSUFBQSxVQUFFLEVBQUMsc0JBQXNCLEVBQUUsR0FBRyxFQUFFO2dCQUM1QixJQUFJLEVBQUUsR0FBRyxJQUFBLGtDQUFpQixFQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNyQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1lBQzdELENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlc2NyaWJlLCBpdCB9IGZyb20gJ21vY2hhJztcblxuaW1wb3J0IGFzc2VydCA9IHJlcXVpcmUoJ25vZGU6YXNzZXJ0Jyk7XG5cbmltcG9ydCB7IGdldE1vZG9CeVBvbGljeSwgcGVybWlzb3NTZWd1blVzdWFyaW8gfSBmcm9tICcuLi9zZXJ2ZXIvYXBwLWRtZW5jdSc7XG5pbXBvcnQgdHlwZSB7IE1lbnVJbmZvQmFzZSB9IGZyb20gJy4uL3NlcnZlci90eXBlcy1kbWVuY3UnO1xuaW1wb3J0IHsgY29udGV4dG9EZWxSb2wsIGNyZWFyQXBwUGFyYVRlc3RzLCBwZXJtaXNvc0RlSW5zdGFsYWNpb24gfSBmcm9tICcuL2FwcC1wYXJhLXRlc3RzJztcblxuY29uc3QgR0FCSU5FVEUgPSAnJztcbmNvbnN0IFJFTEVWQU1JRU5UTyA9ICd3ZWInO1xuXG5mdW5jdGlvbiBub21icmVzKG1lbnU6IE1lbnVJbmZvQmFzZVtdKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBtZW51Lm1hcChpdGVtID0+IGl0ZW0ubmFtZSk7XG59XG5cbmZ1bmN0aW9uIHN1Ym1lbnUobWVudTogTWVudUluZm9CYXNlW10sIG5vbWJyZTogc3RyaW5nKTogTWVudUluZm9CYXNlW10ge1xuICAgIHZhciBpdGVtID0gbWVudS5maW5kKGl0ZW0gPT4gaXRlbS5uYW1lID09IG5vbWJyZSk7XG4gICAgYXNzZXJ0Lm9rKGl0ZW0sIGBmYWx0YSBlbCBtZW7DuiAke25vbWJyZX1gKTtcbiAgICByZXR1cm4gaXRlbS5tZW51Q29udGVudDtcbn1cblxuZnVuY3Rpb24gbWVudURlbFJvbChwb2xpY3k6IHN0cmluZywgcm9sOiBzdHJpbmcsIGlkcGVyPzogc3RyaW5nKTogTWVudUluZm9CYXNlW10ge1xuICAgIHZhciBiZSA9IGNyZWFyQXBwUGFyYVRlc3RzKHBvbGljeSk7XG4gICAgcmV0dXJuIGJlLmdldE1lbnUoY29udGV4dG9EZWxSb2woYmUsIHJvbCwgaWRwZXIpKS5tZW51O1xufVxuXG5kZXNjcmliZSgnZG1lbmN1IC0gbWVuw7ogc2Vnw7puIHJvbCB5IHBvbGljeScsICgpID0+IHtcblxuICAgIGRlc2NyaWJlKCdnZXRNb2RvQnlQb2xpY3knLCAoKSA9PiB7XG4gICAgICAgIGl0KCdwb2xpY3kgd2ViIGVzIFJFTEVWQU1JRU5UTyAoZGlzcG9zaXRpdm9zKScsICgpID0+IHtcbiAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChnZXRNb2RvQnlQb2xpY3koY3JlYXJBcHBQYXJhVGVzdHMoUkVMRVZBTUlFTlRPKSksICdSRUxFVkFNSUVOVE8nKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KCdjdWFscXVpZXIgb3RyYSBwb2xpY3kgZXMgR0FCSU5FVEUnLCAoKSA9PiB7XG4gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ2V0TW9kb0J5UG9saWN5KGNyZWFyQXBwUGFyYVRlc3RzKCcnKSksICdHQUJJTkVURScpO1xuICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdldE1vZG9CeVBvbGljeShjcmVhckFwcFBhcmFUZXN0cygnb3RyYScpKSwgJ0dBQklORVRFJyk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ3Blcm1pc29zU2VndW5Vc3VhcmlvIChsbyBxdWUgZ2V0Q29udGV4dCBhZ3JlZ2EgYWwgY29udGV4dG8pJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBwZXJtaXNvcyA9IHBlcm1pc29zRGVJbnN0YWxhY2lvbigpO1xuICAgICAgICBjb25zdCBjYWNoZXMgPSB7IC4uLnBlcm1pc29zLCBwZXJtaXNvc1JvbFNvbG9UcnVlOiBwZXJtaXNvcy5wZXJtaXNvc1JvbCB9O1xuICAgICAgICBpdCgnc2luIHVzdWFyaW8gbG9ndWVhZG8gbm8gcHVlZGUgbmFkYScsICgpID0+IHtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGVybWlzb3NTZWd1blVzdWFyaW8oY2FjaGVzLCB1bmRlZmluZWQpLCB7IHB1ZWRlOiBwZXJtaXNvcy5wZXJtaXNvc1BhcmFOYWRpZSB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KCd1biByb2wgc3VwZXJ1c2VyIChhZG1pbikgZXMgc3VwZXJ1c2VyIHkgcHVlZGUgdG9kbycsICgpID0+IHtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGVybWlzb3NTZWd1blVzdWFyaW8oY2FjaGVzLCB7IHJvbDogJ2FkbWluJyB9KSwgeyBzdXBlcnVzZXI6IHRydWUsIHB1ZWRlOiBwZXJtaXNvcy5wZXJtaXNvc1N1cGVydXNlciB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KCd1biByb2wgY29tw7puIHRpZW5lIGxvcyBwZXJtaXNvcyBkZSBzdSByb2wgeSBubyBlcyBzdXBlcnVzZXInLCAoKSA9PiB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0YWRvID0gcGVybWlzb3NTZWd1blVzdWFyaW8oY2FjaGVzLCB7IHJvbDogJ2VuY3Vlc3RhZG9yJyB9KTtcbiAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRhZG8uc3VwZXJ1c2VyLCB1bmRlZmluZWQpO1xuICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdGFkby5wdWVkZT8uZW5jdWVzdGFzPy5yZWxldmFyLCB0cnVlKTtcbiAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRhZG8ucHVlZGU/LmNhbXBvPy5lZGl0YXIsIGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KCd1biByb2wgcXVlIG5vIGV4aXN0ZSBubyB0aWVuZSBwZXJtaXNvcycsICgpID0+IHtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGVybWlzb3NTZWd1blVzdWFyaW8oY2FjaGVzLCB7IHJvbDogJ2luZXhpc3RlbnRlJyB9KSwgeyBwdWVkZTogdW5kZWZpbmVkIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoJ2xvcyBwZXJtaXNvcyBwYXJhIG5hZGllIHRpZW5lbiB0b2RhcyBsYXMgYWNjaW9uZXMgZW4gZmFsc2UnLCAoKSA9PiB7XG4gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGVybWlzb3MucGVybWlzb3NQYXJhTmFkaWUuZW5jdWVzdGFzPy5yZWxldmFyLCBmYWxzZSk7XG4gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGVybWlzb3MucGVybWlzb3NQYXJhTmFkaWUuY2FtcG8/LmFkbWluaXN0cmFyLCBmYWxzZSk7XG4gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGVybWlzb3MucGVybWlzb3NQYXJhTmFkaWUuY2FzaWxsZXJvc190ZXh0bz8uZWRpdGFyLCBmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ2VuIFJFTEVWQU1JRU5UTyAocG9saWN5IHdlYiknLCAoKSA9PiB7XG4gICAgICAgIGl0KCdxdWllbiByZWxldmEgKGVuY3Vlc3RhZG9yKSB2ZSBob2phIGRlIHJ1dGEsIHNpbmNyb25pemFyIHkgY2FtYmlhciBtb2RvJywgKCkgPT4ge1xuICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChtZW51RGVsUm9sKFJFTEVWQU1JRU5UTywgJ2VuY3Vlc3RhZG9yJyksIFtcbiAgICAgICAgICAgICAgICB7IG1lbnVUeXBlOiAncGF0aCcsIG5hbWU6ICdyZWxldmFtaWVudG8nLCBwYXRoOiAnL2NhbXBvJyB9LFxuICAgICAgICAgICAgICAgIHsgbWVudVR5cGU6ICdzaW5jcm9uaXphcl9kbScsIG5hbWU6ICdzaW5jcm9uaXphcicgfSxcbiAgICAgICAgICAgICAgICB7IG1lbnVUeXBlOiAnY2FtYmlhcl9tb2RvX2RtJywgbmFtZTogJ2NhbWJpYXJfbW9kbycgfSxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoJ3JlY3VwZXJhZG9yIHkgc3VwZXJ2aXNvciB0YW1iacOpbiByZWxldmFuJywgKCkgPT4ge1xuICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChub21icmVzKG1lbnVEZWxSb2woUkVMRVZBTUlFTlRPLCAncmVjdXBlcmFkb3InKSksIFsncmVsZXZhbWllbnRvJywgJ3NpbmNyb25pemFyJywgJ2NhbWJpYXJfbW9kbyddKTtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobm9tYnJlcyhtZW51RGVsUm9sKFJFTEVWQU1JRU5UTywgJ3N1cGVydmlzb3InKSksIFsncmVsZXZhbWllbnRvJywgJ3NpbmNyb25pemFyJywgJ2NhbWJpYXJfbW9kbyddKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KCdxdWllbiBubyByZWxldmEgbm8gdmUgbmFkYSBhdW5xdWUgdGVuZ2EgcGVybWlzb3MgZGUgZ2FiaW5ldGUnLCAoKSA9PiB7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG1lbnVEZWxSb2woUkVMRVZBTUlFTlRPLCAncmVjZXBjaW9uaXN0YScpLCBbXSk7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG1lbnVEZWxSb2woUkVMRVZBTUlFTlRPLCAnY29vcl9jYW1wbycpLCBbXSk7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG1lbnVEZWxSb2woUkVMRVZBTUlFTlRPLCAnZGlzX2NvbmNlcHR1YWwnKSwgW10pO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdlbiBHQUJJTkVURScsICgpID0+IHtcbiAgICAgICAgaXQoJ2VsIGVuY3Vlc3RhZG9yIG5vIHZlIG5hZGEgKHJlbGV2YSBzw7NsbyBlbiBlbCBkaXNwb3NpdGl2byknLCAoKSA9PiB7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG1lbnVEZWxSb2woR0FCSU5FVEUsICdlbmN1ZXN0YWRvcicpLCBbXSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdCgndW4gcm9sIHNpbiBwZXJtaXNvcyAoYXV4aWxpYXIpIG5vIHZlIG5hZGEnLCAoKSA9PiB7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG1lbnVEZWxSb2woR0FCSU5FVEUsICdhdXhpbGlhcicpLCBbXSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdCgnYWRtaW4gKHN1cGVydXNlcikgdmUgdG9kb3MgbG9zIG1lbsO6cycsICgpID0+IHtcbiAgICAgICAgICAgIHZhciBtZW51ID0gbWVudURlbFJvbChHQUJJTkVURSwgJ2FkbWluJyk7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG5vbWJyZXMobWVudSksIFtcbiAgICAgICAgICAgICAgICAnYXNpZ25hY2lvbicsICdyZWNlcGNpb24nLCAndGFyZWFzX3RlbV9maW5fY2FtcG8nLCAndGFyZWFzX3RlbV9hbmFsaXNpc19jYW1wbycsICdzdXBlcnZpc2lvbicsXG4gICAgICAgICAgICAgICAgJ3ZhcmlvcycsICdjb250cm9sJywgJ3Byb2Nlc2FyJywgJ2NvbmZpZ3VyYXInLCAnY2FydG8nXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobm9tYnJlcyhzdWJtZW51KG1lbnUsICdjb25maWd1cmFyJykpLCBbXG4gICAgICAgICAgICAgICAgJ211ZXN0cmEnLCAnbWV0YWRhdG9zJywgJ2VzdGFkb3NfYWNjaW9uZXNfdGFyZWFzJywgJ21vbWVudG9zX2NvbnNpc3RlbmNpYScsICdwYXJhbWV0cm9zJywgJ21vZG9zX2RtJywgJ3VzdWFyaW9zJ1xuICAgICAgICAgICAgXSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdCgnZWwgY29vcmRpbmFkb3IgZGUgY2FtcG8gYWRtaW5pc3RyYSBjYW1wbyB5IHByb2Nlc2EsIHBlcm8gbm8gZWRpdGEgbWV0YWRhdG9zIG5pIHZlIGxvIGRlIHN1cGVydXNlcicsICgpID0+IHtcbiAgICAgICAgICAgIHZhciBtZW51ID0gbWVudURlbFJvbChHQUJJTkVURSwgJ2Nvb3JfY2FtcG8nKTtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobm9tYnJlcyhtZW51KSwgW1xuICAgICAgICAgICAgICAgICdhc2lnbmFjaW9uJywgJ3JlY2VwY2lvbicsICd0YXJlYXNfdGVtX2Zpbl9jYW1wbycsICd0YXJlYXNfdGVtX2FuYWxpc2lzX2NhbXBvJywgJ3N1cGVydmlzaW9uJyxcbiAgICAgICAgICAgICAgICAndmFyaW9zJywgJ2NvbnRyb2wnLCAncHJvY2VzYXInLCAnY29uZmlndXJhcicsICdjYXJ0bydcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChub21icmVzKHN1Ym1lbnUobWVudSwgJ2NvbmZpZ3VyYXInKSksIFsnbXVlc3RyYScsICd1c3VhcmlvcyddKTtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobm9tYnJlcyhzdWJtZW51KG1lbnUsICdhc2lnbmFjaW9uJykpLCBbJ2dlbmVyYWwnLCAnZW5jdWVzdGFkb3InLCAnaW5ncmVzYWRvcicsICdyZWN1cGVyYWRvcicsICdzdXBlcnZpc29yJ10pO1xuICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChub21icmVzKHN1Ym1lbnUobWVudSwgJ3JlY2VwY2lvbicpKSwgWydlbmN1ZXN0YWRvcicsICdyZWN1cGVyYWRvcicsICdpbmdyZXNhZG9yJywgJ3N1cGVydmlzb3InLCAnbWlzX3N1cGVydmlzb3JlcyddKTtcbiAgICAgICAgICAgIGFzc2VydC5vayhub21icmVzKHN1Ym1lbnUobWVudSwgJ3ZhcmlvcycpKS5pbmNsdWRlcygnb3BlcmF0aXZvX21pZ3JhcicpKTtcbiAgICAgICAgICAgIGFzc2VydC5vayhub21icmVzKHN1Ym1lbnUobWVudSwgJ3ZhcmlvcycpKS5pbmNsdWRlcygnaW50ZXJjYW1iaWFyX2VuY3Vlc3RhcycpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KCdlbCBzdWJjb29yZGluYWRvciBhZG1pbmlzdHJhIGNhbXBvIHBlcm8gbm8gcHJvY2VzYScsICgpID0+IHtcbiAgICAgICAgICAgIHZhciBtZW51ID0gbWVudURlbFJvbChHQUJJTkVURSwgJ3N1YmNvb3JfY2FtcG8nKTtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobm9tYnJlcyhtZW51KSwgW1xuICAgICAgICAgICAgICAgICdhc2lnbmFjaW9uJywgJ3JlY2VwY2lvbicsICd0YXJlYXNfdGVtX2Zpbl9jYW1wbycsICd0YXJlYXNfdGVtX2FuYWxpc2lzX2NhbXBvJywgJ3N1cGVydmlzaW9uJyxcbiAgICAgICAgICAgICAgICAndmFyaW9zJywgJ2NvbnRyb2wnLCAnY29uZmlndXJhcicsICdjYXJ0bydcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgYXNzZXJ0Lm9rKCFub21icmVzKHN1Ym1lbnUobWVudSwgJ3ZhcmlvcycpKS5pbmNsdWRlcygnaW50ZXJjYW1iaWFyX2VuY3Vlc3RhcycpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KCdwcm9jZXNhbWllbnRvIHByb2Nlc2EgcGVybyBubyBlZGl0YSBjYW1wbycsICgpID0+IHtcbiAgICAgICAgICAgIHZhciBtZW51ID0gbWVudURlbFJvbChHQUJJTkVURSwgJ3Byb2Nlc2FtaWVudG8nKTtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobm9tYnJlcyhtZW51KSwgWyd2YXJpb3MnLCAnY29udHJvbCcsICdwcm9jZXNhcicsICdjb25maWd1cmFyJ10pO1xuICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChub21icmVzKHN1Ym1lbnUobWVudSwgJ3ZhcmlvcycpKSwgWydhYnJpcl9lbmN1ZXN0YScsICdpbnRlcmNhbWJpYXJfZW5jdWVzdGFzJ10pO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoJ2VsIGluZ3Jlc2Fkb3IgZWRpdGEgY2FtcG8gc2luIGFkbWluaXN0cmFyOiBhc2lnbmFjacOzbiB5IHJlY2VwY2nDs24gcmVkdWNpZGFzLCBzaW4gY29udHJvbCBuaSBjb25maWd1cmFjacOzbicsICgpID0+IHtcbiAgICAgICAgICAgIHZhciBtZW51ID0gbWVudURlbFJvbChHQUJJTkVURSwgJ2luZ3Jlc2Fkb3InKTtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobm9tYnJlcyhtZW51KSwgWydhc2lnbmFjaW9uJywgJ3JlY2VwY2lvbicsICdzdXBlcnZpc2lvbicsICd2YXJpb3MnXSk7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG5vbWJyZXMoc3VibWVudShtZW51LCAnYXNpZ25hY2lvbicpKSwgWydlbmN1ZXN0YWRvcicsICdpbmdyZXNhZG9yJywgJ3JlY3VwZXJhZG9yJ10pO1xuICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChub21icmVzKHN1Ym1lbnUobWVudSwgJ3JlY2VwY2lvbicpKSwgWydlbmN1ZXN0YWRvcicsICdyZWN1cGVyYWRvcicsICdpbmdyZXNhZG9yJ10pO1xuICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChub21icmVzKHN1Ym1lbnUobWVudSwgJ3ZhcmlvcycpKSwgWydhYnJpcl9lbmN1ZXN0YScsICdob2phX3J1dGEnXSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdCgnZGlzZcOxbyBjb25jZXB0dWFsIHPDs2xvIGVkaXRhIG1ldGFkYXRvcyAoaW5jbHVpZGFzIGxhcyB0YWJsYXMgZGUgcmVhL25vIHJlYSknLCAoKSA9PiB7XG4gICAgICAgICAgICB2YXIgbWVudSA9IG1lbnVEZWxSb2woR0FCSU5FVEUsICdkaXNfY29uY2VwdHVhbCcpO1xuICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChub21icmVzKG1lbnUpLCBbJ2NvbmZpZ3VyYXInXSk7XG4gICAgICAgICAgICB2YXIgbWV0YWRhdG9zID0gc3VibWVudShzdWJtZW51KG1lbnUsICdjb25maWd1cmFyJyksICdtZXRhZGF0b3MnKTtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobm9tYnJlcyhzdWJtZW51KG1ldGFkYXRvcywgJ3JlYS9ub3JlYScpKSwgWydyZWEnLCAnbm9fcmVhJywgJ3JlYV9zdXAnLCAnbm9fcmVhX3N1cCddKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KCdhbCByZWNlcGNpb25pc3RhIGxhIGFzaWduYWNpw7NuIGxlIGZpbHRyYSBzdXMgcHJvcGlhcyDDoXJlYXMnLCAoKSA9PiB7XG4gICAgICAgICAgICB2YXIgYXNpZ25hY2lvbiA9IHN1Ym1lbnUobWVudURlbFJvbChHQUJJTkVURSwgJ3JlY2VwY2lvbmlzdGEnLCAnUkVDNycpLCAnYXNpZ25hY2lvbicpO1xuICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChhc2lnbmFjaW9uLm1hcChpdGVtID0+IGl0ZW0uZmYpLCBbXG4gICAgICAgICAgICAgICAgeyB0YXJlYTogJ2VuY3UnLCByZWNlcGNpb25pc3RhOiAnUkVDNycgfSxcbiAgICAgICAgICAgICAgICB7IHRhcmVhOiAnaW5ncicsIHJlY2VwY2lvbmlzdGE6ICdSRUM3JyB9LFxuICAgICAgICAgICAgICAgIHsgdGFyZWFfYWN0dWFsOiAncmVjdScsIHRhcmVhOiAncmVjdScsIHJlY2VwY2lvbmlzdGE6ICdSRUM3JyB9LFxuICAgICAgICAgICAgXSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdCgnYSBsb3MgZGVtw6FzIHJvbGVzIGxhIGFzaWduYWNpw7NuIG5vIGxlcyBmaWx0cmEgcG9yIHJlY2VwY2lvbmlzdGEnLCAoKSA9PiB7XG4gICAgICAgICAgICB2YXIgYXNpZ25hY2lvbiA9IHN1Ym1lbnUobWVudURlbFJvbChHQUJJTkVURSwgJ2luZ3Jlc2Fkb3InKSwgJ2FzaWduYWNpb24nKTtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYXNpZ25hY2lvbi5tYXAoaXRlbSA9PiBpdGVtLmZmKSwgW1xuICAgICAgICAgICAgICAgIHsgdGFyZWE6ICdlbmN1JyB9LFxuICAgICAgICAgICAgICAgIHsgdGFyZWE6ICdpbmdyJyB9LFxuICAgICAgICAgICAgICAgIHsgdGFyZWFfYWN0dWFsOiAncmVjdScsIHRhcmVhOiAncmVjdScgfSxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoJ2xhIHN1cGVydmlzacOzbiBtdWVzdHJhIGxhcyBlbmN1ZXN0YXMgYXNpZ25hZGFzIGFsIHVzdWFyaW8nLCAoKSA9PiB7XG4gICAgICAgICAgICB2YXIgc3VwZXJ2aXNpb24gPSBzdWJtZW51KG1lbnVEZWxSb2woR0FCSU5FVEUsICdpbmdyZXNhZG9yJywgJ0lORzMnKSwgJ3N1cGVydmlzaW9uJyk7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHN1cGVydmlzaW9uLCBbXG4gICAgICAgICAgICAgICAgeyBtZW51VHlwZTogJ3RhYmxlJywgbmFtZTogJ3N1cGVydmlzYXInLCB0YWJsZTogJ3RhcmVhc190ZW1faW5ncmVzbycsIGZmOiB7IHRhcmVhOiAnc3VwZScsIGFzaWduYWRvOiAnSU5HMycgfSB9XG4gICAgICAgICAgICBdKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnZ2V0TWVudSBzaW4gY29udGV4dCcsICgpID0+IHtcbiAgICAgICAgaXQoJ2xhbnphIHVuIGVycm9yIGNsYXJvJywgKCkgPT4ge1xuICAgICAgICAgICAgdmFyIGJlID0gY3JlYXJBcHBQYXJhVGVzdHMoR0FCSU5FVEUpO1xuICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiBiZS5nZXRNZW51KCksIC9yZXF1aWVyZSBlbCBjb250ZXh0Lyk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,95 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "mocha", "node:assert", "../server/setters-rea-no-rea"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const mocha_1 = require("mocha");
13
+ const assert = require("node:assert");
14
+ const setters_rea_no_rea_1 = require("../server/setters-rea-no-rea");
15
+ const respuestas = {
16
+ resumenEstado: 'ok',
17
+ codNoRea: null,
18
+ codRea: 1,
19
+ resumenEstadoSup: 'no rea',
20
+ codNoReaSup: 71,
21
+ codReaSup: null,
22
+ };
23
+ (0, mocha_1.describe)('dmencu - getSettersAndParametersForReaNoReaResumenEstado', () => {
24
+ (0, mocha_1.it)('para tareas_tem usa prefijo dm_ y numera los parámetros a continuación de los recibidos', () => {
25
+ const { setters, params } = (0, setters_rea_no_rea_1.getSettersAndParametersForReaNoReaResumenEstado)({
26
+ tarea: 'encu',
27
+ respuestasUAPrincipal: respuestas,
28
+ setters: [`estado = 'D'`, `cargado_dm=null`],
29
+ params: ['op1', 1001, 'encu', 'token-x'],
30
+ destino: 'tareas_tem'
31
+ });
32
+ assert.deepStrictEqual(setters, [
33
+ `estado = 'D'`,
34
+ `cargado_dm=null`,
35
+ 'dm_resumen_estado=$5',
36
+ 'dm_norea=$6',
37
+ 'dm_rea=$7',
38
+ ]);
39
+ assert.deepStrictEqual(params, ['op1', 1001, 'encu', 'token-x', 'ok', null, 1]);
40
+ });
41
+ (0, mocha_1.it)('para tem no usa prefijo', () => {
42
+ const { setters } = (0, setters_rea_no_rea_1.getSettersAndParametersForReaNoReaResumenEstado)({
43
+ tarea: 'encu',
44
+ respuestasUAPrincipal: respuestas,
45
+ setters: [],
46
+ params: ['op1', 1001],
47
+ destino: 'tem'
48
+ });
49
+ assert.deepStrictEqual(setters, ['resumen_estado=$3', 'norea=$4', 'rea=$5']);
50
+ });
51
+ (0, mocha_1.it)('para la tarea supe usa las columnas y los valores _sup', () => {
52
+ const { setters, params } = (0, setters_rea_no_rea_1.getSettersAndParametersForReaNoReaResumenEstado)({
53
+ tarea: 'supe',
54
+ respuestasUAPrincipal: respuestas,
55
+ setters: ['json_encuesta = $3'],
56
+ params: ['op1', 1001, '{}'],
57
+ destino: 'tareas_tem'
58
+ });
59
+ assert.deepStrictEqual(setters, [
60
+ 'json_encuesta = $3',
61
+ 'dm_resumen_estado_sup=$4',
62
+ 'dm_norea_sup=$5',
63
+ 'dm_rea_sup=$6',
64
+ ]);
65
+ assert.deepStrictEqual(params, ['op1', 1001, '{}', 'no rea', 71, null]);
66
+ });
67
+ (0, mocha_1.it)('cada $n de los setters apunta al valor correcto en params', () => {
68
+ const { setters, params } = (0, setters_rea_no_rea_1.getSettersAndParametersForReaNoReaResumenEstado)({
69
+ tarea: 'encu',
70
+ respuestasUAPrincipal: respuestas,
71
+ setters: [],
72
+ params: ['a', 'b', 'c'],
73
+ destino: 'tareas_tem'
74
+ });
75
+ const valorDe = (setter) => params[Number(setter.split('=$')[1]) - 1];
76
+ assert.strictEqual(valorDe(setters[0]), 'ok');
77
+ assert.strictEqual(valorDe(setters[1]), null);
78
+ assert.strictEqual(valorDe(setters[2]), 1);
79
+ });
80
+ (0, mocha_1.it)('no modifica los arrays recibidos', () => {
81
+ const settersEntrada = ['x = $1'];
82
+ const paramsEntrada = ['v'];
83
+ (0, setters_rea_no_rea_1.getSettersAndParametersForReaNoReaResumenEstado)({
84
+ tarea: 'encu',
85
+ respuestasUAPrincipal: respuestas,
86
+ setters: settersEntrada,
87
+ params: paramsEntrada,
88
+ destino: 'tem'
89
+ });
90
+ assert.deepStrictEqual(settersEntrada, ['x = $1']);
91
+ assert.deepStrictEqual(paramsEntrada, ['v']);
92
+ });
93
+ });
94
+ });
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1zZXR0ZXJzLXJlYS1uby1yZWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC90ZXN0LXNldHRlcnMtcmVhLW5vLXJlYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQUFBLGlDQUFxQztJQUVyQyxzQ0FBdUM7SUFFdkMscUVBQStGO0lBRy9GLE1BQU0sVUFBVSxHQUFxQjtRQUNqQyxhQUFhLEVBQUUsSUFBSTtRQUNuQixRQUFRLEVBQUUsSUFBSTtRQUNkLE1BQU0sRUFBRSxDQUFDO1FBQ1QsZ0JBQWdCLEVBQUUsUUFBUTtRQUMxQixXQUFXLEVBQUUsRUFBRTtRQUNmLFNBQVMsRUFBRSxJQUFJO0tBQ2xCLENBQUM7SUFFRixJQUFBLGdCQUFRLEVBQUMsMERBQTBELEVBQUUsR0FBRyxFQUFFO1FBRXRFLElBQUEsVUFBRSxFQUFDLHlGQUF5RixFQUFFLEdBQUcsRUFBRTtZQUMvRixNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUEsb0VBQStDLEVBQUM7Z0JBQ3hFLEtBQUssRUFBRSxNQUFNO2dCQUNiLHFCQUFxQixFQUFFLFVBQVU7Z0JBQ2pDLE9BQU8sRUFBRSxDQUFDLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQztnQkFDNUMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDO2dCQUN4QyxPQUFPLEVBQUUsWUFBWTthQUN4QixDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRTtnQkFDNUIsY0FBYztnQkFDZCxpQkFBaUI7Z0JBQ2pCLHNCQUFzQjtnQkFDdEIsYUFBYTtnQkFDYixXQUFXO2FBQ2QsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFD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Q0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLGVBQWUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVzY3JpYmUsIGl0IH0gZnJvbSAnbW9jaGEnO1xuXG5pbXBvcnQgYXNzZXJ0ID0gcmVxdWlyZSgnbm9kZTphc3NlcnQnKTtcblxuaW1wb3J0IHsgZ2V0U2V0dGVyc0FuZFBhcmFtZXRlcnNGb3JSZWFOb1JlYVJlc3VtZW5Fc3RhZG8gfSBmcm9tICcuLi9zZXJ2ZXIvc2V0dGVycy1yZWEtbm8tcmVhJztcbmltcG9ydCB0eXBlIHsgUmVzdWx0YWRvUmVzdW1lbiB9IGZyb20gJy4uL3VubG9nZ2VkL3RpcG9zJztcblxuY29uc3QgcmVzcHVlc3RhczogUmVzdWx0YWRvUmVzdW1lbiA9IHtcbiAgICByZXN1bWVuRXN0YWRvOiAnb2snLFxuICAgIGNvZE5vUmVhOiBudWxsLFxuICAgIGNvZFJlYTogMSxcbiAgICByZXN1bWVuRXN0YWRvU3VwOiAnbm8gcmVhJyxcbiAgICBjb2ROb1JlYVN1cDogNzEsXG4gICAgY29kUmVhU3VwOiBudWxsLFxufTtcblxuZGVzY3JpYmUoJ2RtZW5jdSAtIGdldFNldHRlcnNBbmRQYXJhbWV0ZXJzRm9yUmVhTm9SZWFSZXN1bWVuRXN0YWRvJywgKCkgPT4ge1xuXG4gICAgaXQoJ3BhcmEgdGFyZWFzX3RlbSB1c2EgcHJlZmlqbyBkbV8geSBudW1lcmEgbG9zIHBhcsOhbWV0cm9zIGEgY29udGludWFjacOzbiBkZSBsb3MgcmVjaWJpZG9zJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB7IHNldHRlcnMsIHBhcmFtcyB9ID0gZ2V0U2V0dGVyc0FuZFBhcmFtZXRlcnNGb3JSZWFOb1JlYVJlc3VtZW5Fc3RhZG8oe1xuICAgICAgICAgICAgdGFyZWE6ICdlbmN1JyxcbiAgICAgICAgICAgIHJlc3B1ZXN0YXNVQVByaW5jaXBhbDogcmVzcHVlc3RhcyxcbiAgICAgICAgICAgIHNldHRlcnM6IFtgZXN0YWRvID0gJ0QnYCwgYGNhcmdhZG9fZG09bnVsbGBdLFxuICAgICAgICAgICAgcGFyYW1zOiBbJ29wMScsIDEwMDEsICdlbmN1JywgJ3Rva2VuLXgnXSxcbiAgICAgICAgICAgIGRlc3Rpbm86ICd0YXJlYXNfdGVtJ1xuICAgICAgICB9KTtcbiAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZXR0ZXJzLCBbXG4gICAgICAgICAgICBgZXN0YWRvID0gJ0QnYCxcbiAgICAgICAgICAgIGBjYXJnYWRvX2RtPW51bGxgLFxuICAgICAgICAgICAgJ2RtX3Jlc3VtZW5fZXN0YWRvPSQ1JyxcbiAgICAgICAgICAgICdkbV9ub3JlYT0kNicsXG4gICAgICAgICAgICAnZG1fcmVhPSQ3JyxcbiAgICAgICAgXSk7XG4gICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyYW1zLCBbJ29wMScsIDEwMDEsICdlbmN1JywgJ3Rva2VuLXgnLCAnb2snLCBudWxsLCAxXSk7XG4gICAgfSk7XG5cbiAgICBpdCgncGFyYSB0ZW0gbm8gdXNhIHByZWZpam8nLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgc2V0dGVycyB9ID0gZ2V0U2V0dGVyc0FuZFBhcmFtZXRlcnNGb3JSZWFOb1JlYVJlc3VtZW5Fc3RhZG8oe1xuICAgICAgICAgICAgdGFyZWE6ICdlbmN1JyxcbiAgICAgICAgICAgIHJlc3B1ZXN0YXNVQVByaW5jaXBhbDogcmVzcHVlc3RhcyxcbiAgICAgICAgICAgIHNldHRlcnM6IFtdLFxuICAgICAgICAgICAgcGFyYW1zOiBbJ29wMScsIDEwMDFdLFxuICAgICAgICAgICAgZGVzdGlubzogJ3RlbSdcbiAgICAgICAgfSk7XG4gICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0dGVycywgWydyZXN1bWVuX2VzdGFkbz0kMycsICdub3JlYT0kNCcsICdyZWE9JDUnXSk7XG4gICAgfSk7XG5cbiAgICBpdCgncGFyYSBsYSB0YXJlYSBzdXBlIHVzYSBsYXMgY29sdW1uYXMgeSBsb3MgdmFsb3JlcyBfc3VwJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB7IHNldHRlcnMsIHBhcmFtcyB9ID0gZ2V0U2V0dGVyc0FuZFBhcmFtZXRlcnNGb3JSZWFOb1JlYVJlc3VtZW5Fc3RhZG8oe1xuICAgICAgICAgICAgdGFyZWE6ICdzdXBlJyxcbiAgICAgICAgICAgIHJlc3B1ZXN0YXNVQVByaW5jaXBhbDogcmVzcHVlc3RhcyxcbiAgICAgICAgICAgIHNldHRlcnM6IFsnanNvbl9lbmN1ZXN0YSA9ICQzJ10sXG4gICAgICAgICAgICBwYXJhbXM6IFsnb3AxJywgMTAwMSwgJ3t9J10sXG4gICAgICAgICAgICBkZXN0aW5vOiAndGFyZWFzX3RlbSdcbiAgICAgICAgfSk7XG4gICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0dGVycywgW1xuICAgICAgICAgICAgJ2pzb25fZW5jdWVzdGEgPSAkMycsXG4gICAgICAgICAgICAnZG1fcmVzdW1lbl9lc3RhZG9fc3VwPSQ0JyxcbiAgICAgICAgICAgICdkbV9ub3JlYV9zdXA9JDUnLFxuICAgICAgICAgICAgJ2RtX3JlYV9zdXA9JDYnLFxuICAgICAgICBdKTtcbiAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChwYXJhbXMsIFsnb3AxJywgMTAwMSwgJ3t9JywgJ25vIHJlYScsIDcxLCBudWxsXSk7XG4gICAgfSk7XG5cbiAgICBpdCgnY2FkYSAkbiBkZSBsb3Mgc2V0dGVycyBhcHVudGEgYWwgdmFsb3IgY29ycmVjdG8gZW4gcGFyYW1zJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB7IHNldHRlcnMsIHBhcmFtcyB9ID0gZ2V0U2V0dGVyc0FuZFBhcmFtZXRlcnNGb3JSZWFOb1JlYVJlc3VtZW5Fc3RhZG8oe1xuICAgICAgICAgICAgdGFyZWE6ICdlbmN1JyxcbiAgICAgICAgICAgIHJlc3B1ZXN0YXNVQVByaW5jaXBhbDogcmVzcHVlc3RhcyxcbiAgICAgICAgICAgIHNldHRlcnM6IFtdLFxuICAgICAgICAgICAgcGFyYW1zOiBbJ2EnLCAnYicsICdjJ10sXG4gICAgICAgICAgICBkZXN0aW5vOiAndGFyZWFzX3RlbSdcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHZhbG9yRGUgPSAoc2V0dGVyOiBzdHJpbmcpID0+IHBhcmFtc1tOdW1iZXIoc2V0dGVyLnNwbGl0KCc9JCcpWzFdKSAtIDFdO1xuICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodmFsb3JEZShzZXR0ZXJzWzBdKSwgJ29rJyk7XG4gICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh2YWxvckRlKHNldHRlcnNbMV0pLCBudWxsKTtcbiAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHZhbG9yRGUoc2V0dGVyc1syXSksIDEpO1xuICAgIH0pO1xuXG4gICAgaXQoJ25vIG1vZGlmaWNhIGxvcyBhcnJheXMgcmVjaWJpZG9zJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBzZXR0ZXJzRW50cmFkYSA9IFsneCA9ICQxJ107XG4gICAgICAgIGNvbnN0IHBhcmFtc0VudHJhZGEgPSBbJ3YnXTtcbiAgICAgICAgZ2V0U2V0dGVyc0FuZFBhcmFtZXRlcnNGb3JSZWFOb1JlYVJlc3VtZW5Fc3RhZG8oe1xuICAgICAgICAgICAgdGFyZWE6ICdlbmN1JyxcbiAgICAgICAgICAgIHJlc3B1ZXN0YXNVQVByaW5jaXBhbDogcmVzcHVlc3RhcyxcbiAgICAgICAgICAgIHNldHRlcnM6IHNldHRlcnNFbnRyYWRhLFxuICAgICAgICAgICAgcGFyYW1zOiBwYXJhbXNFbnRyYWRhLFxuICAgICAgICAgICAgZGVzdGlubzogJ3RlbSdcbiAgICAgICAgfSk7XG4gICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2V0dGVyc0VudHJhZGEsIFsneCA9ICQxJ10pO1xuICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBhcmFtc0VudHJhZGEsIFsndiddKTtcbiAgICB9KTtcbn0pO1xuIl19
@@ -1,2 +1,9 @@
1
1
  import './test-rea-no-rea';
2
+ import './test-helpers-casilleros';
3
+ import './test-helpers-formulario';
4
+ import './test-setters-rea-no-rea';
5
+ import './test-menu-segun-rol';
6
+ import './test-caches-rea';
7
+ import './test-impacto-rea-no-rea-en-bd';
2
8
  import './test-ejemplo';
9
+ import './test-ayuda';
package/dist/test/test.js CHANGED
@@ -4,12 +4,19 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "./test-rea-no-rea", "./test-ejemplo"], factory);
7
+ define(["require", "exports", "./test-rea-no-rea", "./test-helpers-casilleros", "./test-helpers-formulario", "./test-setters-rea-no-rea", "./test-menu-segun-rol", "./test-caches-rea", "./test-impacto-rea-no-rea-en-bd", "./test-ejemplo", "./test-ayuda"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  require("./test-rea-no-rea");
13
+ require("./test-helpers-casilleros");
14
+ require("./test-helpers-formulario");
15
+ require("./test-setters-rea-no-rea");
16
+ require("./test-menu-segun-rol");
17
+ require("./test-caches-rea");
18
+ require("./test-impacto-rea-no-rea-en-bd");
13
19
  require("./test-ejemplo");
20
+ require("./test-ayuda");
14
21
  });
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0lBQUEsWUFBWSxDQUFDOztJQUViLDZCQUEyQjtJQUMzQiwwQkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0ICcuL3Rlc3QtcmVhLW5vLXJlYSc7XG5pbXBvcnQgJy4vdGVzdC1lamVtcGxvJzsiXX0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0lBQUEsWUFBWSxDQUFDOztJQUViLDZCQUEyQjtJQUMzQixxQ0FBbUM7SUFDbkMscUNBQW1DO0lBQ25DLHFDQUFtQztJQUNuQyxpQ0FBK0I7SUFDL0IsNkJBQTJCO0lBQzNCLDJDQUF5QztJQUN6QywwQkFBd0I7SUFDeEIsd0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCAnLi90ZXN0LXJlYS1uby1yZWEnO1xuaW1wb3J0ICcuL3Rlc3QtaGVscGVycy1jYXNpbGxlcm9zJztcbmltcG9ydCAnLi90ZXN0LWhlbHBlcnMtZm9ybXVsYXJpbyc7XG5pbXBvcnQgJy4vdGVzdC1zZXR0ZXJzLXJlYS1uby1yZWEnO1xuaW1wb3J0ICcuL3Rlc3QtbWVudS1zZWd1bi1yb2wnO1xuaW1wb3J0ICcuL3Rlc3QtY2FjaGVzLXJlYSc7XG5pbXBvcnQgJy4vdGVzdC1pbXBhY3RvLXJlYS1uby1yZWEtZW4tYmQnO1xuaW1wb3J0ICcuL3Rlc3QtZWplbXBsbyc7XG5pbXBvcnQgJy4vdGVzdC1heXVkYSc7Il19
@@ -3,7 +3,7 @@ export declare const helpersCasilleros: {
3
3
  div0err(numerador: number, denominador: number, pk: string): number;
4
4
  funs: {
5
5
  blanco(x: any): boolean;
6
- hoy(): any;
6
+ hoy(): string;
7
7
  fecha_valida(x: string): boolean;
8
8
  mesanio_valido(x: string): boolean;
9
9
  informado(x: any): boolean;
@@ -4,12 +4,13 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports"], factory);
7
+ define(["require", "exports", "best-globals"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.helpersCasilleros = void 0;
13
+ const best_globals_1 = require("best-globals");
13
14
  exports.helpersCasilleros = {
14
15
  null2zero(posibleNull) {
15
16
  if (posibleNull == null) {
@@ -28,25 +29,18 @@
28
29
  return x !== 0 && !x;
29
30
  },
30
31
  hoy() {
31
- return date.today().toDmy();
32
+ return best_globals_1.date.today().toDmy();
32
33
  },
33
34
  fecha_valida(x) {
34
35
  var formato_valido = /^([1-9]|0[1-9]|[12]\d|3[01])\/([1-9]|0[1-9]|1[012])\/20\d\d$/.test(x);
35
- var xDate;
36
- var conversionOk;
37
- conversionOk = true;
38
- if (formato_valido) {
39
- const [d, m, y] = x.split('/');
40
- try {
41
- xDate = new Date(`${y}/${m}/${d}`);
42
- }
43
- catch (err) {
44
- conversionOk = false;
45
- }
36
+ if (!formato_valido) {
37
+ return false;
46
38
  }
47
- ;
39
+ const [d, m, y] = x.split('/').map(Number);
40
+ // new Date no falla con fechas inexistentes (31/02 pasa a 03/03), hay que verificar que no se corra
41
+ var xDate = new Date(y, m - 1, d);
48
42
  //faltaria validar que no sea una fecha futura y que sea una fecha en el rango del operativo
49
- return formato_valido && conversionOk;
43
+ return xDate.getFullYear() == y && xDate.getMonth() == m - 1 && xDate.getDate() == d;
50
44
  },
51
45
  mesanio_valido(x) {
52
46
  var formato_valido = /^([1-9]|0[1-9]|1[012])\/(19|20)\d\d$/.test(x);
@@ -72,10 +66,10 @@
72
66
  };
73
67
  var partesRealizacion = fechaRealizacionDDMMYYYY.split("/");
74
68
  //@ts-ignore las partes corresponden a una fecha válida
75
- var today = date.ymd(Number(partesRealizacion[2]), Number(partesRealizacion[1]), Number(partesRealizacion[0]));
69
+ var today = best_globals_1.date.ymd(Number(partesRealizacion[2]), Number(partesRealizacion[1]), Number(partesRealizacion[0]));
76
70
  var partesMesAnnio = mesAnnio.split('/');
77
71
  //@ts-ignore las partes corresponden a una fecha válida
78
- var nacimiento = date.ymd(Number(partesMesAnnio[1]), Number(partesMesAnnio[0]), 1);
72
+ var nacimiento = best_globals_1.date.ymd(Number(partesMesAnnio[1]), Number(partesMesAnnio[0]), 1);
79
73
  //@ts-ignore RealDate es Date y se puede restar
80
74
  var diferenciaMeses = mesesDiferencia(nacimiento, today);
81
75
  var edadDecimales = diferenciaMeses / 12; //ej 36.5
@@ -126,4 +120,4 @@
126
120
  }
127
121
  };
128
122
  });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1jYXNpbGxlcm9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VubG9nZ2VkL2hlbHBlcnMtY2FzaWxsZXJvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFDYSxRQUFBLGlCQUFpQixHQUFHO1FBQzdCLFNBQVMsQ0FBQyxXQUFnQjtZQUN0QixJQUFJLFdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDdEIsT0FBTyxDQUFDLENBQUM7WUFDYixDQUFDO1lBQ0QsT0FBTyxXQUFXLENBQUM7UUFDdkIsQ0FBQztRQUNELE9BQU8sQ0FBQyxTQUFpQixFQUFFLFdBQW1CLEVBQUUsRUFBVTtZQUN0RCxJQUFJLFdBQVcsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLEdBQUcsRUFBRSxHQUFHLHdCQUF3QixHQUFHLFNBQVMsQ0FBQyxDQUFDO1lBQzdFLENBQUM7WUFDRCxPQUFPLFNBQVMsR0FBRyxXQUFXLENBQUM7UUFDbkMsQ0FBQztRQUNELElBQUksRUFBRTtZQUNGLE1BQU0sQ0FBQyxDQUFNO2dCQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtZQUN4QixDQUFDO1lBQ0QsR0FBRztnQkFDQyxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtZQUMvQixDQUFDO1lBQ0QsWUFBWSxDQUFDLENBQVM7Z0JBQ2xCLElBQUksY0FBYyxHQUFHLDhEQUE4RCxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFDM0YsSUFBSSxLQUFXLENBQUM7Z0JBQ2hCLElBQUksWUFBcUIsQ0FBQztnQkFDMUIsWUFBWSxHQUFHLElBQUksQ0FBQztnQkFDcEIsSUFBSSxjQUFjLEVBQUUsQ0FBQztvQkFDakIsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFD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LFlBQVk7b0JBQ2pELGFBQWEsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLG1CQUFtQjtpQkFDaEQsQ0FBQTtZQUNMLENBQUM7WUFDRCxxSUFBcUk7WUFDckksMklBQTJJO1lBQzNJLCtGQUErRjtZQUMvRixHQUFHO1lBQ0g7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2dCQW1DSTtTQUNQO0tBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5leHBvcnQgY29uc3QgaGVscGVyc0Nhc2lsbGVyb3MgPSB7XHJcbiAgICBudWxsMnplcm8ocG9zaWJsZU51bGw6IGFueSkge1xyXG4gICAgICAgIGlmIChwb3NpYmxlTnVsbCA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaWJsZU51bGw7XHJcbiAgICB9LFxyXG4gICAgZGl2MGVycihudW1lcmFkb3I6IG51bWJlciwgZGVub21pbmFkb3I6IG51bWJlciwgcGs6IHN0cmluZykge1xyXG4gICAgICAgIGlmIChkZW5vbWluYWRvciA9PSAwKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkVycm9yIGVuIFwiICsgcGsgKyBcIiBkaXZpc2lvbiBwb3IgY2VybyBkZSBcIiArIG51bWVyYWRvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudW1lcmFkb3IgLyBkZW5vbWluYWRvcjtcclxuICAgIH0sXHJcbiAgICBmdW5zOiB7XHJcbiAgICAgICAgYmxhbmNvKHg6IGFueSkge1xyXG4gICAgICAgICAgICByZXR1cm4geCAhPT0gMCAmJiAheFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgaG95KCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZGF0ZS50b2RheSgpLnRvRG15KClcclxuICAgICAgICB9LFxyXG4gICAgICAgIGZlY2hhX3ZhbGlkYSh4OiBzdHJpbmcpIHtcclxuICAgICAgICAgICAgdmFyIGZvcm1hdG9fdmFsaWRvID0gL14oWzEtOV18MFsxLTldfFsxMl1cXGR8M1swMV0pXFwvKFsxLTldfDBbMS05XXwxWzAxMl0pXFwvMjBcXGRcXGQkLy50ZXN0KHgpXHJcbiAgICAgICAgICAgIHZhciB4RGF0ZTogRGF0ZTtcclxuICAgICAgICAgICAgdmFyIGNvbnZlcnNpb25PazogYm9vbGVhbjtcclxuICAgICAgICAgICAgY29udmVyc2lvbk9rID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYgKGZvcm1hdG9fdmFsaWRvKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBbZCwgbSwgeV0gPSB4LnNwbGl0KCcvJyk7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIHhEYXRlID0gbmV3IERhdGUoYCR7eX0vJHttfS8ke2R9YCk7XHJcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb252ZXJzaW9uT2sgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgLy9mYWx0YXJpYSB2YWxpZGFyIHF1ZSBubyBzZWEgdW5hIGZlY2hhIGZ1dHVyYSB5IHF1ZSBzZWEgdW5hIGZlY2hhIGVuIGVsIHJhbmdvIGRlbCBvcGVyYXRpdm9cclxuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdG9fdmFsaWRvICYmIGNvbnZlcnNpb25Pa1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbWVzYW5pb192YWxpZG8oeDogc3RyaW5nKSB7XHJcbiAgICAgICAgICAgIHZhciBmb3JtYXRvX3ZhbGlkbyA9IC9eKFsxLTldfDBbMS05XXwxWzAxMl0pXFwvKDE5fDIwKVxcZFxcZCQvLnRlc3QoeClcclxuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdG9fdmFsaWRvXHJcbiAgICAgICAgfSxcclxuICAgICAgICBpbmZvcm1hZG8oeDogYW55KSB7XHJcbiAgICAgICAgICAgIHJldHVybiB4ICE9PSB1bmRlZmluZWQgJiYgeCAhPT0gbnVsbCAmJiAoISh4IGluc3RhbmNlb2YgQXJyYXkpIHx8IHgubGVuZ3RoICE9PSAwKVxyXG4gICAgICAgICAgICAgICAgJiYgKCEoeCBpbnN0YW5jZW9mIE9iamVjdCkgfHwgT2JqZWN0LmtleXMoeCkubGVuZ3RoICE9PSAwKVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbnNuYyh4OiBhbnkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHggPT0gLTlcclxuICAgICAgICB9LFxyXG4gICAgICAgIHBhcih4OiBudW1iZXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHggJSAyID09IDBcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVkYWRfbWVzX2FubmlvX3ZhbGlkbyhlZGFkOiBudW1iZXIsIG1lc0FubmlvOiBzdHJpbmcsIGZlY2hhUmVhbGl6YWNpb25ERE1NWVlZWTogc3RyaW5nKSB7XHJcbiAgICAgICAgICAgIHZhciBtZXNlc0RpZmVyZW5jaWEgPSAoZDE6IERhdGUsIGQyOiBEYXRlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB2YXIgbW9udGhzO1xyXG4gICAgICAgICAgICAgICAgbW9udGhzID0gKGQyLmdldEZ1bGxZZWFyKCkgLSBkMS5nZXRGdWxsWWVhcigpKSAqIDEyO1xyXG4gICAgICAgICAgICAgICAgbW9udGhzIC09IGQxLmdldE1vbnRoKCk7XHJcbiAgICAgICAgICAgICAgICBtb250aHMgKz0gZDIuZ2V0TW9udGgoKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHMgPD0gMCA/IDAgOiBtb250aHM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFyIHBhcnRlc1JlYWxpemFjaW9uID0gZmVjaGFSZWFsaXphY2lvbkRETU1ZWVlZLnNwbGl0KFwiL1wiKTtcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlIGxhcyBwYXJ0ZXMgY29ycmVzcG9uZGVuIGEgdW5hIGZlY2hhIHbDoWxpZGFcclxuICAgICAgICAgICAgdmFyIHRvZGF5ID0gZGF0ZS55bWQoTnVtYmVyKHBhcnRlc1JlYWxpemFjaW9uWzJdKSwgTnVtYmVyKHBhcnRlc1JlYWxpemFjaW9uWzFdKSwgTnVtYmVyKHBhcnRlc1JlYWxpemFjaW9uWzBdKSlcclxuICAgICAgICAgICAgdmFyIHBhcnRlc01lc0FubmlvID0gbWVzQW5uaW8uc3BsaXQoJy8nKTtcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlIGxhcyBwYXJ0ZXMgY29ycmVzcG9uZGVuIGEgdW5hIGZlY2hhIHbDoWxpZGFcclxuICAgICAgICAgICAgdmFyIG5hY2ltaWVudG8gPSBkYXRlLnltZChOdW1iZXIocGFydGVzTWVzQW5uaW9bMV0pLCBOdW1iZXIocGFydGVzTWVzQW5uaW9bMF0pLCAxKVxyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmUgUmVhbERhdGUgZXMgRGF0ZSB5IHNlIHB1ZWRlIHJlc3RhclxyXG4gICAgICAgICAgICB2YXIgZGlmZXJlbmNpYU1lc2VzID0gbWVzZXNEaWZlcmVuY2lhKG5hY2ltaWVudG8sIHRvZGF5KTtcclxuICAgICAgICAgICAgdmFyIGVkYWREZWNpbWFsZXMgPSBkaWZlcmVuY2lhTWVzZXMgLyAxMjsgLy9laiAzNi41XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICBNYXRoLmZsb29yKGVkYWREZWNpbWFsZXMpID09IGVkYWQgfHwgLy9taXNtYSBlZGFkXHJcbiAgICAgICAgICAgICAgICBlZGFkRGVjaW1hbGVzID09IGVkYWQgKyAxIC8vbWVzIGRlIHRvbGVyYW5jaWFcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy9jb3BpYXJfY2FtcG9fdWFfcmFtYShyZXNwdWVzdGFzT3JpZ2VuOlJlc3B1ZXN0YXNbXSwgcG9zaWNpb246bnVtYmVyLCB2YXJpYWJsZU9yaWdlbjogSWRWYXJpYWJsZSwgY2FtaW5vOnN0cmluZywgY29uZGljaW9uOmJvb2xlYW4pe1xyXG4gICAgICAgIC8vICAgIHJldHVybiBjb25kaWNpb24/KHJlc3B1ZXN0YXNPcmlnZW4gJiYgcmVzcHVlc3Rhc09yaWdlbltwb3NpY2lvbi0xXSAmJiByZXNwdWVzdGFzT3JpZ2VuW3Bvc2ljaW9uLTFdW2Ake2NhbWlub31gXVt2YXJpYWJsZU9yaWdlbl0pOm51bGxcclxuICAgICAgICAvLyAgICByZXR1cm4gY29uZGljaW9uP2V2YWwoYHJlc3B1ZXN0YXNPcmlnZW5bJHtwb3NpY2lvbi0xfV0uYCtjYW1pbm8rJy4nK3ZhcmlhYmxlT3JpZ2VuKTpudWxsO1xyXG4gICAgICAgIC8vfVxyXG4gICAgICAgIC8qXHJcbiAgICAgICAgZGJvOntcclxuICAgICAgICAgICAgZGF0b0ZhbWlsaWFyKGVuY3U6c3RyaW5nLGhvZzpudW1iZXIscGVyOm51bWJlciwgZGF0bzpzdHJpbmcpe1xyXG4gICAgICAgICAgICAgICAgdmFyIHhwZXJzb25hcz1wZXJzb25hcztcclxuICAgICAgICAgICAgICAgIHJldHVybiBlbmN1PT1lbmMgJiYgaG9nPT1ob2dhciAmJiBpbmZvcm1hZG8oeHBlcnNvbmFzKSAmJiBwZXI8PSB4cGVyc29uYXMubGVuZ3RoICYmIHBlcj49MSAmJiAhIXhwZXJzb25hc1twZXItMV1bZGF0b10/IHhwZXJzb25hc1twZXItMV1bZGF0b106bnVsbFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlZGFkZmFtaWxpYXIoZW5jdTpzdHJpbmcsaG9nOm51bWJlcixwZXI6bnVtYmVyKXtcclxuICAgICAgICAgICAgICAgIHZhciB4cGVyc29uYXM9cGVyc29uYXM7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0b0ZhbWlsaWFyKGVuY3U6c3RyaW5nLGhvZzpudW1iZXIscGVyOm51bWJlciwnZWRhZCcpXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGV4aXN0ZWluZGl2aWR1YWwoZW5jdTpzdHJpbmcsaG9nOm51bWJlcixwZXI6bnVtYmVyKXtcclxuICAgICAgICAgICAgICAgIHZhciB4cGVyc29uYXM9cGVyc29uYXM7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZW5jdT09ZW5jICYmIGhvZz09aG9nYXIgJiYgISFwZXJzb25hcyAmJiBwZXI8PSBwZXJzb25hcy5sZW5ndGggJiYgcGVyPj0xICYmICEhcGVyc29uYXNbcGVyLTFdWydlbnRyZWFpbmQnXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBleGlzdGVtaWVtYnJvKGVuY3U6c3RyaW5nLGhvZzpudW1iZXIscGVyOm51bWJlcil7XHJcbiAgICAgICAgICAgICAgICB2YXIgeHBlcnNvbmFzPXBlcnNvbmFzO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVuY3U9PWVuYyAmJiBob2c9PWhvZ2FyICYmICEhcGVyc29uYXMgJiYgcGVyPD0gcGVyc29uYXMubGVuZ3RoICYmIHBlcj49MVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBucm9jb255dWdlcyhlbmN1OnN0cmluZyxob2c6bnVtYmVyKXtcclxuICAgICAgICAgICAgICAgIHZhciB4cGVyc29uYXM9cGVyc29uYXNcclxuICAgICAgICAgICAgICAgIHJldHVybiB4cGVyc29uYXMuZmlsdGVyKCBwZXItPnBlci5wND09MikubGVuZ3RoXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIG5yb2plZmVzKGVuY3U6c3RyaW5nLGhvZzpudW1iZXIscGVyOm51bWJlcil7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcGVyc29uYXMuZmlsdGVyKCBwZXItPnBlci5wND09MSkubGVuZ3RoXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHBhcmVudGVzY29mYW1pbGlhcihlbmN1OnN0cmluZyxob2c6bnVtYmVyLHBlcjpudW1iZXIpe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdG9GYW1pbGlhcihlbmN1OnN0cmluZyxob2c6bnVtYmVyLHBlcjpudW1iZXIsJ3A0JylcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc2V4b2ZhbWlsaWFyKGVuY3U6c3RyaW5nLGhvZzpudW1iZXIscGVyOm51bWJlcil7XHJcbiAgICAgICAgICAgICAgICB2YXIgeHBlcnNvbmFzPXBlcnNvbmFzO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVuY3U9PWVuYyAmJiBob2c9PWhvZ2FyICYmICEheHBlcnNvbmFzICYmIHBlcjw9IHhwZXJzb25hcy5sZW5ndGggJiYgcGVyPj0xICYmICEheHBlcnNvbmFzW3Blci0xXS5zZXhvPyB4cGVyc29uYXNbcGVyLTFdWydzZXhvJ106bnVsbFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzaXRjb255amVmZShlbmN1OnN0cmluZyxob2c6bnVtYmVyKXtcclxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRvRmFtaWxpYXIoZW5jdTpzdHJpbmcsaG9nOm51bWJlciwxLCdwNScpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9ICovXHJcbiAgICB9XHJcbn07Il19
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1jYXNpbGxlcm9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VubG9nZ2VkL2hlbHBlcnMtY2FzaWxsZXJvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFDQSwrQ0FBb0M7SUFFdkIsUUFBQSxpQkFBaUIsR0FBRztRQUM3QixTQUFTLENBQUMsV0FBZ0I7WUFDdEIsSUFBSSxXQUFXLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3RCLE9BQU8sQ0FBQyxDQUFDO1lBQ2IsQ0FBQztZQUNELE9BQU8sV0FBVyxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxPQUFPLENBQUMsU0FBaUIsRUFBRSxXQUFtQixFQUFFLEVBQVU7WUFDdEQsSUFBSSxXQUFXLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxHQUFHLEVBQUUsR0FBRyx3QkFBd0IsR0FBRyxTQUFTLENBQUMsQ0FBQztZQUM3RSxDQUFDO1lBQ0QsT0FBTyxTQUFTLEdBQUcsV0FBVyxDQUFDO1FBQ25DLENBQUM7UUFDRCxJQUFJLEVBQUU7WUFDRixNQUFNLENBQUMsQ0FBTTtnQkFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7WUFDeEIsQ0FBQztZQUNELEdBQUc7Z0JBQ0MsT0FBTyxtQkFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFBO1lBQy9CLENBQUM7WUFDRCxZQUFZLENBQUMsQ0FBUztnQkFDbEIsSUFBSSxjQUFjLEdBQUcsOERBQThELENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUMzRixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ2xCLE9BQU8sS0FBSyxDQUFDO2dCQUNqQixDQUFDO2dCQUNELE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFD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QUFJLElBQUksWUFBWTtvQkFDakQsYUFBYSxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsbUJBQW1CO2lCQUNoRCxDQUFBO1lBQ0wsQ0FBQztZQUNELHFJQUFxSTtZQUNySSwySUFBMkk7WUFDM0ksK0ZBQStGO1lBQy9GLEdBQUc7WUFDSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Z0JBbUNJO1NBQ1A7S0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBkYXRlIH0gZnJvbSBcImJlc3QtZ2xvYmFsc1wiO1xuXG5leHBvcnQgY29uc3QgaGVscGVyc0Nhc2lsbGVyb3MgPSB7XG4gICAgbnVsbDJ6ZXJvKHBvc2libGVOdWxsOiBhbnkpIHtcbiAgICAgICAgaWYgKHBvc2libGVOdWxsID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwb3NpYmxlTnVsbDtcbiAgICB9LFxuICAgIGRpdjBlcnIobnVtZXJhZG9yOiBudW1iZXIsIGRlbm9taW5hZG9yOiBudW1iZXIsIHBrOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKGRlbm9taW5hZG9yID09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkVycm9yIGVuIFwiICsgcGsgKyBcIiBkaXZpc2lvbiBwb3IgY2VybyBkZSBcIiArIG51bWVyYWRvcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bWVyYWRvciAvIGRlbm9taW5hZG9yO1xuICAgIH0sXG4gICAgZnVuczoge1xuICAgICAgICBibGFuY28oeDogYW55KSB7XG4gICAgICAgICAgICByZXR1cm4geCAhPT0gMCAmJiAheFxuICAgICAgICB9LFxuICAgICAgICBob3koKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0ZS50b2RheSgpLnRvRG15KClcbiAgICAgICAgfSxcbiAgICAgICAgZmVjaGFfdmFsaWRhKHg6IHN0cmluZykge1xuICAgICAgICAgICAgdmFyIGZvcm1hdG9fdmFsaWRvID0gL14oWzEtOV18MFsxLTldfFsxMl1cXGR8M1swMV0pXFwvKFsxLTldfDBbMS05XXwxWzAxMl0pXFwvMjBcXGRcXGQkLy50ZXN0KHgpXG4gICAgICAgICAgICBpZiAoIWZvcm1hdG9fdmFsaWRvKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgW2QsIG0sIHldID0geC5zcGxpdCgnLycpLm1hcChOdW1iZXIpO1xuICAgICAgICAgICAgLy8gbmV3IERhdGUgbm8gZmFsbGEgY29uIGZlY2hhcyBpbmV4aXN0ZW50ZXMgKDMxLzAyIHBhc2EgYSAwMy8wMyksIGhheSBxdWUgdmVyaWZpY2FyIHF1ZSBubyBzZSBjb3JyYVxuICAgICAgICAgICAgdmFyIHhEYXRlID0gbmV3IERhdGUoeSwgbSAtIDEsIGQpO1xuICAgICAgICAgICAgLy9mYWx0YXJpYSB2YWxpZGFyIHF1ZSBubyBzZWEgdW5hIGZlY2hhIGZ1dHVyYSB5IHF1ZSBzZWEgdW5hIGZlY2hhIGVuIGVsIHJhbmdvIGRlbCBvcGVyYXRpdm9cbiAgICAgICAgICAgIHJldHVybiB4RGF0ZS5nZXRGdWxsWWVhcigpID09IHkgJiYgeERhdGUuZ2V0TW9udGgoKSA9PSBtIC0gMSAmJiB4RGF0ZS5nZXREYXRlKCkgPT0gZFxuICAgICAgICB9LFxuICAgICAgICBtZXNhbmlvX3ZhbGlkbyh4OiBzdHJpbmcpIHtcbiAgICAgICAgICAgIHZhciBmb3JtYXRvX3ZhbGlkbyA9IC9eKFsxLTldfDBbMS05XXwxWzAxMl0pXFwvKDE5fDIwKVxcZFxcZCQvLnRlc3QoeClcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRvX3ZhbGlkb1xuICAgICAgICB9LFxuICAgICAgICBpbmZvcm1hZG8oeDogYW55KSB7XG4gICAgICAgICAgICByZXR1cm4geCAhPT0gdW5kZWZpbmVkICYmIHggIT09IG51bGwgJiYgKCEoeCBpbnN0YW5jZW9mIEFycmF5KSB8fCB4Lmxlbmd0aCAhPT0gMClcbiAgICAgICAgICAgICAgICAmJiAoISh4IGluc3RhbmNlb2YgT2JqZWN0KSB8fCBPYmplY3Qua2V5cyh4KS5sZW5ndGggIT09IDApXG4gICAgICAgIH0sXG4gICAgICAgIG5zbmMoeDogYW55KSB7XG4gICAgICAgICAgICByZXR1cm4geCA9PSAtOVxuICAgICAgICB9LFxuICAgICAgICBwYXIoeDogbnVtYmVyKSB7XG4gICAgICAgICAgICByZXR1cm4geCAlIDIgPT0gMFxuICAgICAgICB9LFxuICAgICAgICBlZGFkX21lc19hbm5pb192YWxpZG8oZWRhZDogbnVtYmVyLCBtZXNBbm5pbzogc3RyaW5nLCBmZWNoYVJlYWxpemFjaW9uRERNTVlZWVk6IHN0cmluZykge1xuICAgICAgICAgICAgdmFyIG1lc2VzRGlmZXJlbmNpYSA9IChkMTogRGF0ZSwgZDI6IERhdGUpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgbW9udGhzO1xuICAgICAgICAgICAgICAgIG1vbnRocyA9IChkMi5nZXRGdWxsWWVhcigpIC0gZDEuZ2V0RnVsbFllYXIoKSkgKiAxMjtcbiAgICAgICAgICAgICAgICBtb250aHMgLT0gZDEuZ2V0TW9udGgoKTtcbiAgICAgICAgICAgICAgICBtb250aHMgKz0gZDIuZ2V0TW9udGgoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzIDw9IDAgPyAwIDogbW9udGhzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIHBhcnRlc1JlYWxpemFjaW9uID0gZmVjaGFSZWFsaXphY2lvbkRETU1ZWVlZLnNwbGl0KFwiL1wiKTtcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZSBsYXMgcGFydGVzIGNvcnJlc3BvbmRlbiBhIHVuYSBmZWNoYSB2w6FsaWRhXG4gICAgICAgICAgICB2YXIgdG9kYXkgPSBkYXRlLnltZChOdW1iZXIocGFydGVzUmVhbGl6YWNpb25bMl0pLCBOdW1iZXIocGFydGVzUmVhbGl6YWNpb25bMV0pLCBOdW1iZXIocGFydGVzUmVhbGl6YWNpb25bMF0pKVxuICAgICAgICAgICAgdmFyIHBhcnRlc01lc0FubmlvID0gbWVzQW5uaW8uc3BsaXQoJy8nKTtcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZSBsYXMgcGFydGVzIGNvcnJlc3BvbmRlbiBhIHVuYSBmZWNoYSB2w6FsaWRhXG4gICAgICAgICAgICB2YXIgbmFjaW1pZW50byA9IGRhdGUueW1kKE51bWJlcihwYXJ0ZXNNZXNBbm5pb1sxXSksIE51bWJlcihwYXJ0ZXNNZXNBbm5pb1swXSksIDEpXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmUgUmVhbERhdGUgZXMgRGF0ZSB5IHNlIHB1ZWRlIHJlc3RhclxuICAgICAgICAgICAgdmFyIGRpZmVyZW5jaWFNZXNlcyA9IG1lc2VzRGlmZXJlbmNpYShuYWNpbWllbnRvLCB0b2RheSk7XG4gICAgICAgICAgICB2YXIgZWRhZERlY2ltYWxlcyA9IGRpZmVyZW5jaWFNZXNlcyAvIDEyOyAvL2VqIDM2LjVcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgTWF0aC5mbG9vcihlZGFkRGVjaW1hbGVzKSA9PSBlZGFkIHx8IC8vbWlzbWEgZWRhZFxuICAgICAgICAgICAgICAgIGVkYWREZWNpbWFsZXMgPT0gZWRhZCArIDEgLy9tZXMgZGUgdG9sZXJhbmNpYVxuICAgICAgICAgICAgKVxuICAgICAgICB9LFxuICAgICAgICAvL2NvcGlhcl9jYW1wb191YV9yYW1hKHJlc3B1ZXN0YXNPcmlnZW46UmVzcHVlc3Rhc1tdLCBwb3NpY2lvbjpudW1iZXIsIHZhcmlhYmxlT3JpZ2VuOiBJZFZhcmlhYmxlLCBjYW1pbm86c3RyaW5nLCBjb25kaWNpb246Ym9vbGVhbil7XG4gICAgICAgIC8vICAgIHJldHVybiBjb25kaWNpb24/KHJlc3B1ZXN0YXNPcmlnZW4gJiYgcmVzcHVlc3Rhc09yaWdlbltwb3NpY2lvbi0xXSAmJiByZXNwdWVzdGFzT3JpZ2VuW3Bvc2ljaW9uLTFdW2Ake2NhbWlub31gXVt2YXJpYWJsZU9yaWdlbl0pOm51bGxcbiAgICAgICAgLy8gICAgcmV0dXJuIGNvbmRpY2lvbj9ldmFsKGByZXNwdWVzdGFzT3JpZ2VuWyR7cG9zaWNpb24tMX1dLmArY2FtaW5vKycuJyt2YXJpYWJsZU9yaWdlbik6bnVsbDtcbiAgICAgICAgLy99XG4gICAgICAgIC8qXG4gICAgICAgIGRibzp7XG4gICAgICAgICAgICBkYXRvRmFtaWxpYXIoZW5jdTpzdHJpbmcsaG9nOm51bWJlcixwZXI6bnVtYmVyLCBkYXRvOnN0cmluZyl7XG4gICAgICAgICAgICAgICAgdmFyIHhwZXJzb25hcz1wZXJzb25hcztcbiAgICAgICAgICAgICAgICByZXR1cm4gZW5jdT09ZW5jICYmIGhvZz09aG9nYXIgJiYgaW5mb3JtYWRvKHhwZXJzb25hcykgJiYgcGVyPD0geHBlcnNvbmFzLmxlbmd0aCAmJiBwZXI+PTEgJiYgISF4cGVyc29uYXNbcGVyLTFdW2RhdG9dPyB4cGVyc29uYXNbcGVyLTFdW2RhdG9dOm51bGxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlZGFkZmFtaWxpYXIoZW5jdTpzdHJpbmcsaG9nOm51bWJlcixwZXI6bnVtYmVyKXtcbiAgICAgICAgICAgICAgICB2YXIgeHBlcnNvbmFzPXBlcnNvbmFzO1xuICAgICAgICAgICAgICAgIHJldHVybiBkYXRvRmFtaWxpYXIoZW5jdTpzdHJpbmcsaG9nOm51bWJlcixwZXI6bnVtYmVyLCdlZGFkJylcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBleGlzdGVpbmRpdmlkdWFsKGVuY3U6c3RyaW5nLGhvZzpudW1iZXIscGVyOm51bWJlcil7XG4gICAgICAgICAgICAgICAgdmFyIHhwZXJzb25hcz1wZXJzb25hcztcbiAgICAgICAgICAgICAgICByZXR1cm4gZW5jdT09ZW5jICYmIGhvZz09aG9nYXIgJiYgISFwZXJzb25hcyAmJiBwZXI8PSBwZXJzb25hcy5sZW5ndGggJiYgcGVyPj0xICYmICEhcGVyc29uYXNbcGVyLTFdWydlbnRyZWFpbmQnXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGV4aXN0ZW1pZW1icm8oZW5jdTpzdHJpbmcsaG9nOm51bWJlcixwZXI6bnVtYmVyKXtcbiAgICAgICAgICAgICAgICB2YXIgeHBlcnNvbmFzPXBlcnNvbmFzO1xuICAgICAgICAgICAgICAgIHJldHVybiBlbmN1PT1lbmMgJiYgaG9nPT1ob2dhciAmJiAhIXBlcnNvbmFzICYmIHBlcjw9IHBlcnNvbmFzLmxlbmd0aCAmJiBwZXI+PTFcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBucm9jb255dWdlcyhlbmN1OnN0cmluZyxob2c6bnVtYmVyKXtcbiAgICAgICAgICAgICAgICB2YXIgeHBlcnNvbmFzPXBlcnNvbmFzXG4gICAgICAgICAgICAgICAgcmV0dXJuIHhwZXJzb25hcy5maWx0ZXIoIHBlci0+cGVyLnA0PT0yKS5sZW5ndGhcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBucm9qZWZlcyhlbmN1OnN0cmluZyxob2c6bnVtYmVyLHBlcjpudW1iZXIpe1xuICAgICAgICAgICAgICAgIHJldHVybiBwZXJzb25hcy5maWx0ZXIoIHBlci0+cGVyLnA0PT0xKS5sZW5ndGhcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYXJlbnRlc2NvZmFtaWxpYXIoZW5jdTpzdHJpbmcsaG9nOm51bWJlcixwZXI6bnVtYmVyKXtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0b0ZhbWlsaWFyKGVuY3U6c3RyaW5nLGhvZzpudW1iZXIscGVyOm51bWJlciwncDQnKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNleG9mYW1pbGlhcihlbmN1OnN0cmluZyxob2c6bnVtYmVyLHBlcjpudW1iZXIpe1xuICAgICAgICAgICAgICAgIHZhciB4cGVyc29uYXM9cGVyc29uYXM7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVuY3U9PWVuYyAmJiBob2c9PWhvZ2FyICYmICEheHBlcnNvbmFzICYmIHBlcjw9IHhwZXJzb25hcy5sZW5ndGggJiYgcGVyPj0xICYmICEheHBlcnNvbmFzW3Blci0xXS5zZXhvPyB4cGVyc29uYXNbcGVyLTFdWydzZXhvJ106bnVsbFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNpdGNvbnlqZWZlKGVuY3U6c3RyaW5nLGhvZzpudW1iZXIpe1xuICAgICAgICAgICAgICAgIHJldHVybiBkYXRvRmFtaWxpYXIoZW5jdTpzdHJpbmcsaG9nOm51bWJlciwxLCdwNScpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0gKi9cbiAgICB9XG59OyJdfQ==
@@ -0,0 +1,16 @@
1
+ import type { IdComodin, IdFormulario, IdVariable } from "./tipos";
2
+ export declare const REGEX_SPLIT_COMODINES: RegExp;
3
+ export declare const IS_TEM_PATTERN: RegExp;
4
+ export declare const IS_VARIABLE_HASH_PATTERN: RegExp;
5
+ export declare const IS_COMODIN_REDUX_PATTERN: RegExp;
6
+ /** Extrae nombres de comodines estándar (@comodin@) */
7
+ export declare function extraerComodinesRedux(text: string): IdComodin[];
8
+ /** Extrae nombres de variables dinámicas (@#variable@) */
9
+ export declare function extraerVariablesInteres(text: string): string[];
10
+ export declare function getBFVarNames(salto: string | null): {
11
+ listo: IdVariable;
12
+ agregar: IdVariable;
13
+ idFormulario: IdFormulario;
14
+ };
15
+ export declare function replaceSpecialWords(text: string, nombre: string, apellido: string, resultado: string): string;
16
+ export declare function numberOrStringIncIfArray(numberOrString: number | string, object: object | any[]): (number | string);
@@ -0,0 +1,88 @@
1
+ // Funciones puras del formulario, sin dependencias de React, Redux ni del navegador
2
+ // (para poder testearlas en node)
3
+ (function (factory) {
4
+ if (typeof module === "object" && typeof module.exports === "object") {
5
+ var v = factory(require, exports);
6
+ if (v !== undefined) module.exports = v;
7
+ }
8
+ else if (typeof define === "function" && define.amd) {
9
+ define(["require", "exports"], factory);
10
+ }
11
+ })(function (require, exports) {
12
+ "use strict";
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.IS_COMODIN_REDUX_PATTERN = exports.IS_VARIABLE_HASH_PATTERN = exports.IS_TEM_PATTERN = exports.REGEX_SPLIT_COMODINES = void 0;
15
+ exports.extraerComodinesRedux = extraerComodinesRedux;
16
+ exports.extraerVariablesInteres = extraerVariablesInteres;
17
+ exports.getBFVarNames = getBFVarNames;
18
+ exports.replaceSpecialWords = replaceSpecialWords;
19
+ exports.numberOrStringIncIfArray = numberOrStringIncIfArray;
20
+ // RegEx principal para dividir el texto conservando los tokens delimitados por @...@
21
+ exports.REGEX_SPLIT_COMODINES = /(@(?:#?[\w-]+|\$[tT][eE][mM][^@]*)@)/g;
22
+ // Sub-RegExs para identificar el tipo de comodín
23
+ exports.IS_TEM_PATTERN = /^@\$(tem[^@]*)@$/i;
24
+ exports.IS_VARIABLE_HASH_PATTERN = /^@#([\w-]+)@$/;
25
+ exports.IS_COMODIN_REDUX_PATTERN = /^@([\w-]+)@$/;
26
+ /** Extrae nombres de comodines estándar (@comodin@) */
27
+ function extraerComodinesRedux(text) {
28
+ if (!text || !text.includes('@'))
29
+ return [];
30
+ const matches = text.match(/@([a-zA-Z0-9_-]+)@/g);
31
+ if (!matches)
32
+ return [];
33
+ const ids = [];
34
+ for (const m of matches) {
35
+ if (!m.startsWith('@#') && !m.startsWith('@$')) {
36
+ const id = m.slice(1, -1);
37
+ if (!ids.includes(id))
38
+ ids.push(id);
39
+ }
40
+ }
41
+ return ids;
42
+ }
43
+ /** Extrae nombres de variables dinámicas (@#variable@) */
44
+ function extraerVariablesInteres(text) {
45
+ if (!text)
46
+ return [];
47
+ const matches = text.match(/@#([\w-]+)@/g);
48
+ if (!matches)
49
+ return [];
50
+ const vars = [];
51
+ for (const m of matches) {
52
+ const varName = m.slice(2, -1); // Remueve '@#' y '@'
53
+ if (!vars.includes(varName))
54
+ vars.push(varName);
55
+ }
56
+ return vars;
57
+ }
58
+ function getBFVarNames(salto) {
59
+ const armoNomSalto = (salto === null || salto === void 0 ? void 0 : salto.substring(0, 2)) == 'F:' ? salto.slice(2) : salto;
60
+ return {
61
+ listo: '$B.F:' + armoNomSalto,
62
+ agregar: '$B.F:' + armoNomSalto + '_agregar',
63
+ idFormulario: 'F:' + armoNomSalto
64
+ };
65
+ }
66
+ function replaceSpecialWords(text, nombre, apellido, resultado) {
67
+ function capitalizeFirstLetter(text) {
68
+ return text.charAt(0).toUpperCase() + text.slice(1);
69
+ }
70
+ var simplificatedChars = {
71
+ "#nombre": capitalizeFirstLetter(nombre),
72
+ "#apellido": capitalizeFirstLetter(apellido),
73
+ "#resultado": resultado,
74
+ };
75
+ var re = new RegExp(Object.keys(simplificatedChars).join("|"), "gi");
76
+ return text.replace(re, function (matched) {
77
+ return simplificatedChars[matched.toLowerCase()];
78
+ });
79
+ }
80
+ function numberOrStringIncIfArray(numberOrString, object) {
81
+ // @ts-expect-error estoy usando isNaN para ver si es o no un número sumable
82
+ if (isNaN(numberOrString)) {
83
+ return numberOrString;
84
+ }
85
+ return Number(numberOrString) + (object instanceof Array ? 1 : 0);
86
+ }
87
+ });
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1mb3JtdWxhcmlvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VubG9nZ2VkL2hlbHBlcnMtZm9ybXVsYXJpby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRkFBb0Y7QUFDcEYsa0NBQWtDOzs7Ozs7Ozs7Ozs7O0lBYWxDLHNEQWFDO0lBR0QsMERBV0M7SUFFRCxzQ0FPQztJQUVELGtEQWNDO0lBRUQsNERBTUM7SUFyRUQscUZBQXFGO0lBQ3hFLFFBQUEscUJBQXFCLEdBQUcsdUNBQXVDLENBQUM7SUFFN0UsaURBQWlEO0lBQ3BDLFFBQUEsY0FBYyxHQUFHLG1CQUFtQixDQUFDO0lBQ3JDLFFBQUEsd0JBQXdCLEdBQUcsZUFBZSxDQUFDO0lBQzNDLFFBQUEsd0JBQXdCLEdBQUcsY0FBYyxDQUFDO0lBRXZELHVEQUF1RDtJQUN2RCxTQUFnQixxQkFBcUIsQ0FBQyxJQUFZO1FBQzlDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzVDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBRXhCLE1BQU0sR0FBRyxHQUFnQixFQUFFLENBQUM7UUFDNUIsS0FBSyxNQUFNLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDN0MsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQWMsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO29CQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFRCwwREFBMEQ7SUFDMUQsU0FBZ0IsdUJBQXVCLENBQUMsSUFBWTtRQUNoRCxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3JCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUV4QixNQUFNLElBQUksR0FBYSxFQUFFLENBQUM7UUFDMUIsS0FBSyxNQUFNLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUN0QixNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCO1lBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztnQkFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsU0FBZ0IsYUFBYSxDQUFDLEtBQW9CO1FBQzlDLE1BQU0sWUFBWSxHQUFHLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDN0UsT0FBTztZQUNILEtBQUssRUFBRSxPQUFPLEdBQUcsWUFBMEI7WUFDM0MsT0FBTyxFQUFFLE9BQU8sR0FBRyxZQUFZLEdBQUcsVUFBd0I7WUFDMUQsWUFBWSxFQUFFLElBQUksR0FBRyxZQUE0QjtTQUNwRCxDQUFDO0lBQ04sQ0FBQztJQUVELFNBQWdCLG1CQUFtQixDQUFDLElBQVksRUFBRSxNQUFjLEVBQUUsUUFBZ0IsRUFBRSxTQUFpQjtRQUNqRyxTQUFTLHFCQUFxQixDQUFDLElBQVk7WUFDdkMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUNELElBQUksa0JBQWtCLEdBQTRCO1lBQzlDLFNBQVMsRUFBRSxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7WUFDeEMsV0FBVyxFQUFFLHFCQUFxQixDQUFDLFFBQVEsQ0FBQztZQUM1QyxZQUFZLEVBQUUsU0FBUztTQUMxQixDQUFDO1FBQ0YsSUFBSSxFQUFFLEdBQUcsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVyRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLFVBQVUsT0FBTztZQUNyQyxPQUFPLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFNBQWdCLHdCQUF3QixDQUFDLGNBQStCLEVBQUUsTUFBc0I7UUFDNUYsNEVBQTRFO1FBQzVFLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTyxjQUFjLENBQUM7UUFDMUIsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTSxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRnVuY2lvbmVzIHB1cmFzIGRlbCBmb3JtdWxhcmlvLCBzaW4gZGVwZW5kZW5jaWFzIGRlIFJlYWN0LCBSZWR1eCBuaSBkZWwgbmF2ZWdhZG9yXG4vLyAocGFyYSBwb2RlciB0ZXN0ZWFybGFzIGVuIG5vZGUpXG5cbmltcG9ydCB0eXBlIHsgSWRDb21vZGluLCBJZEZvcm11bGFyaW8sIElkVmFyaWFibGUgfSBmcm9tIFwiLi90aXBvc1wiO1xuXG4vLyBSZWdFeCBwcmluY2lwYWwgcGFyYSBkaXZpZGlyIGVsIHRleHRvIGNvbnNlcnZhbmRvIGxvcyB0b2tlbnMgZGVsaW1pdGFkb3MgcG9yIEAuLi5AXG5leHBvcnQgY29uc3QgUkVHRVhfU1BMSVRfQ09NT0RJTkVTID0gLyhAKD86Iz9bXFx3LV0rfFxcJFt0VF1bZUVdW21NXVteQF0qKUApL2c7XG5cbi8vIFN1Yi1SZWdFeHMgcGFyYSBpZGVudGlmaWNhciBlbCB0aXBvIGRlIGNvbW9kw61uXG5leHBvcnQgY29uc3QgSVNfVEVNX1BBVFRFUk4gPSAvXkBcXCQodGVtW15AXSopQCQvaTtcbmV4cG9ydCBjb25zdCBJU19WQVJJQUJMRV9IQVNIX1BBVFRFUk4gPSAvXkAjKFtcXHctXSspQCQvO1xuZXhwb3J0IGNvbnN0IElTX0NPTU9ESU5fUkVEVVhfUEFUVEVSTiA9IC9eQChbXFx3LV0rKUAkLztcblxuLyoqIEV4dHJhZSBub21icmVzIGRlIGNvbW9kaW5lcyBlc3TDoW5kYXIgKEBjb21vZGluQCkgKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWVyQ29tb2RpbmVzUmVkdXgodGV4dDogc3RyaW5nKTogSWRDb21vZGluW10ge1xuICAgIGlmICghdGV4dCB8fCAhdGV4dC5pbmNsdWRlcygnQCcpKSByZXR1cm4gW107XG4gICAgY29uc3QgbWF0Y2hlcyA9IHRleHQubWF0Y2goL0AoW2EtekEtWjAtOV8tXSspQC9nKTtcbiAgICBpZiAoIW1hdGNoZXMpIHJldHVybiBbXTtcblxuICAgIGNvbnN0IGlkczogSWRDb21vZGluW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IG0gb2YgbWF0Y2hlcykge1xuICAgICAgICBpZiAoIW0uc3RhcnRzV2l0aCgnQCMnKSAmJiAhbS5zdGFydHNXaXRoKCdAJCcpKSB7XG4gICAgICAgICAgICBjb25zdCBpZCA9IG0uc2xpY2UoMSwgLTEpIGFzIElkQ29tb2RpbjtcbiAgICAgICAgICAgIGlmICghaWRzLmluY2x1ZGVzKGlkKSkgaWRzLnB1c2goaWQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpZHM7XG59XG5cbi8qKiBFeHRyYWUgbm9tYnJlcyBkZSB2YXJpYWJsZXMgZGluw6FtaWNhcyAoQCN2YXJpYWJsZUApICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFlclZhcmlhYmxlc0ludGVyZXModGV4dDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGlmICghdGV4dCkgcmV0dXJuIFtdO1xuICAgIGNvbnN0IG1hdGNoZXMgPSB0ZXh0Lm1hdGNoKC9AIyhbXFx3LV0rKUAvZyk7XG4gICAgaWYgKCFtYXRjaGVzKSByZXR1cm4gW107XG5cbiAgICBjb25zdCB2YXJzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgbSBvZiBtYXRjaGVzKSB7XG4gICAgICAgIGNvbnN0IHZhck5hbWUgPSBtLnNsaWNlKDIsIC0xKTsgLy8gUmVtdWV2ZSAnQCMnIHkgJ0AnXG4gICAgICAgIGlmICghdmFycy5pbmNsdWRlcyh2YXJOYW1lKSkgdmFycy5wdXNoKHZhck5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gdmFycztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJGVmFyTmFtZXMoc2FsdG86IHN0cmluZyB8IG51bGwpIHtcbiAgICBjb25zdCBhcm1vTm9tU2FsdG8gPSBzYWx0bz8uc3Vic3RyaW5nKDAsIDIpID09ICdGOicgPyBzYWx0by5zbGljZSgyKSA6IHNhbHRvO1xuICAgIHJldHVybiB7XG4gICAgICAgIGxpc3RvOiAnJEIuRjonICsgYXJtb05vbVNhbHRvIGFzIElkVmFyaWFibGUsXG4gICAgICAgIGFncmVnYXI6ICckQi5GOicgKyBhcm1vTm9tU2FsdG8gKyAnX2FncmVnYXInIGFzIElkVmFyaWFibGUsXG4gICAgICAgIGlkRm9ybXVsYXJpbzogJ0Y6JyArIGFybW9Ob21TYWx0byBhcyBJZEZvcm11bGFyaW9cbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVwbGFjZVNwZWNpYWxXb3Jkcyh0ZXh0OiBzdHJpbmcsIG5vbWJyZTogc3RyaW5nLCBhcGVsbGlkbzogc3RyaW5nLCByZXN1bHRhZG86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgZnVuY3Rpb24gY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHRleHQ6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGV4dC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHRleHQuc2xpY2UoMSk7XG4gICAgfVxuICAgIHZhciBzaW1wbGlmaWNhdGVkQ2hhcnM6IHsgW2s6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgICAgICBcIiNub21icmVcIjogY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKG5vbWJyZSksXG4gICAgICAgIFwiI2FwZWxsaWRvXCI6IGNhcGl0YWxpemVGaXJzdExldHRlcihhcGVsbGlkbyksXG4gICAgICAgIFwiI3Jlc3VsdGFkb1wiOiByZXN1bHRhZG8sXG4gICAgfTtcbiAgICB2YXIgcmUgPSBuZXcgUmVnRXhwKE9iamVjdC5rZXlzKHNpbXBsaWZpY2F0ZWRDaGFycykuam9pbihcInxcIiksIFwiZ2lcIik7XG5cbiAgICByZXR1cm4gdGV4dC5yZXBsYWNlKHJlLCBmdW5jdGlvbiAobWF0Y2hlZCkge1xuICAgICAgICByZXR1cm4gc2ltcGxpZmljYXRlZENoYXJzW21hdGNoZWQudG9Mb3dlckNhc2UoKV07XG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBudW1iZXJPclN0cmluZ0luY0lmQXJyYXkobnVtYmVyT3JTdHJpbmc6IG51bWJlciB8IHN0cmluZywgb2JqZWN0OiBvYmplY3QgfCBhbnlbXSk6IChudW1iZXIgfCBzdHJpbmcpIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGVzdG95IHVzYW5kbyBpc05hTiBwYXJhIHZlciBzaSBlcyBvIG5vIHVuIG7Dum1lcm8gc3VtYWJsZVxuICAgIGlmIChpc05hTihudW1iZXJPclN0cmluZykpIHtcbiAgICAgICAgcmV0dXJuIG51bWJlck9yU3RyaW5nO1xuICAgIH1cbiAgICByZXR1cm4gTnVtYmVyKG51bWJlck9yU3RyaW5nKSArIChvYmplY3QgaW5zdGFuY2VvZiBBcnJheSA/IDEgOiAwKTtcbn1cbiJdfQ==