intermediate-component-sa 1.0.6 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +1 -20
  3. package/build-dev.bat +2 -0
  4. package/build-prod-aot.bat +2 -0
  5. package/build-prod-rollup-aot.bat +2 -0
  6. package/build-prod.bat +2 -0
  7. package/config.ts +4 -0
  8. package/gulpfile.ts +172 -0
  9. package/index.js +4 -2
  10. package/karma.conf.js +124 -0
  11. package/package.json +326 -5
  12. package/postgrator-test.json +9 -0
  13. package/postgrator.json +9 -0
  14. package/src/app.server.ts +4 -0
  15. package/src/client/app/app.component.ts +37 -0
  16. package/src/client/app/app.html +6 -0
  17. package/src/client/app/app.module.ts +36 -0
  18. package/src/client/app/app.routing.ts +7 -0
  19. package/src/client/app/hot_loader_main.ts +14 -0
  20. package/src/client/app/main-aot.ts +8 -0
  21. package/src/client/app/main.ts +8 -0
  22. package/src/client/app/rxjs-operators.ts +15 -0
  23. package/src/client/index.html +90 -0
  24. package/src/client/tsconfig.json +44 -0
  25. package/src/server/config/app.config.ts +57 -0
  26. package/src/server/config/jwt.config.ts +4 -0
  27. package/src/server/config/logger.config.ts +161 -0
  28. package/src/server/config/mssql.config.ts +30 -0
  29. package/src/server/config/redis.config.ts +10 -0
  30. package/src/server/config/server.config.ts +20 -0
  31. package/src/server/config/templates.config.ts +41 -0
  32. package/src/server/crypt.ts +37 -0
  33. package/src/server/customRequest.ts +609 -0
  34. package/src/server/index.ts +231 -0
  35. package/src/server/interfaces/cleaner.interface.ts +3 -0
  36. package/src/server/interfaces/supervisor.interface.ts +3 -0
  37. package/src/server/routes-centralized.ts +36 -0
  38. package/src/server/routes.ts +6 -0
  39. package/src/server/services/index.ts +10 -0
  40. package/src/server/services/routes.service.ts +11 -0
  41. package/src/server/shared/file-manager.ts +1007 -0
  42. package/src/server/shared/http.shared.ts +49 -0
  43. package/src/server/shared/promises.shared.ts +13 -0
  44. package/src/server/shared/security.shared.ts +90 -0
  45. package/src/server/ssl/star_inconcertcc_com.key +28 -0
  46. package/src/server/ssl/star_inconcertcc_com.pem +62 -0
  47. package/src/server/tsconfig.json +38 -0
  48. package/tools/build.js.prod.ts +40 -0
  49. package/tools/config/project.config.ts +718 -0
  50. package/tools/config.ts +4 -0
  51. package/tools/database/SchemaZen.exe +0 -0
  52. package/tools/database/generate-all-data-scripts.bat +32 -0
  53. package/tools/database/generate-database-scripts.bat +36 -0
  54. package/tools/debug.ts +17 -0
  55. package/tools/env/base.ts +8 -0
  56. package/tools/env/dev.ts +9 -0
  57. package/tools/env/env-config.interface.ts +1 -0
  58. package/tools/env/prod.ts +10 -0
  59. package/tools/manual_typings/project/sample.package.d.ts +3 -0
  60. package/tools/manual_typings/seed/angular2-hot-loader.d.ts +9 -0
  61. package/tools/manual_typings/seed/autoprefixer.d.ts +13 -0
  62. package/tools/manual_typings/seed/colorguard.d.ts +15 -0
  63. package/tools/manual_typings/seed/connect-livereload.d.ts +5 -0
  64. package/tools/manual_typings/seed/cssnano.d.ts +18 -0
  65. package/tools/manual_typings/seed/doiuse.d.ts +16 -0
  66. package/tools/manual_typings/seed/express-history-api-fallback.d.ts +18 -0
  67. package/tools/manual_typings/seed/istream.d.ts +10 -0
  68. package/tools/manual_typings/seed/karma.d.ts +12 -0
  69. package/tools/manual_typings/seed/merge-stream.d.ts +8 -0
  70. package/tools/manual_typings/seed/open.d.ts +8 -0
  71. package/tools/manual_typings/seed/postcss-reporter.d.ts +20 -0
  72. package/tools/manual_typings/seed/slash.d.ts +5 -0
  73. package/tools/manual_typings/seed/stylelint.d.ts +16 -0
  74. package/tools/manual_typings/seed/systemjs-builder.d.ts +10 -0
  75. package/tools/manual_typings/seed/tildify.d.ts +5 -0
  76. package/tools/manual_typings/seed/tiny-lr.d.ts +10 -0
  77. package/tools/manual_typings/seed/walk.d.ts +10 -0
  78. package/tools/scripts/install.speech-analytic.sh +35 -0
  79. package/tools/tasks/build.app.server.ts +57 -0
  80. package/tools/tasks/build.assets.dev.ts +19 -0
  81. package/tools/tasks/build.assets.prod.ts +31 -0
  82. package/tools/tasks/build.bundles.app.aot.ts +31 -0
  83. package/tools/tasks/build.bundles.app.rollup.aot.ts +101 -0
  84. package/tools/tasks/build.bundles.app.ts +31 -0
  85. package/tools/tasks/build.bundles.ts +45 -0
  86. package/tools/tasks/build.database.scripts.runner.ts +137 -0
  87. package/tools/tasks/build.database.scripts.ts +27 -0
  88. package/tools/tasks/build.flags.ts +9 -0
  89. package/tools/tasks/build.fonts.ts +9 -0
  90. package/tools/tasks/build.html_css.ts +126 -0
  91. package/tools/tasks/build.index.dev.ts +68 -0
  92. package/tools/tasks/build.index.prod.ts +64 -0
  93. package/tools/tasks/build.js.dev.ts +66 -0
  94. package/tools/tasks/build.js.prod.aot.ts +44 -0
  95. package/tools/tasks/build.js.prod.rollup.aot.ts +50 -0
  96. package/tools/tasks/build.js.prod.ts +40 -0
  97. package/tools/tasks/build.packages.prod.ts +19 -0
  98. package/tools/tasks/build.server.dev.ts +59 -0
  99. package/tools/tasks/build.server.prod.ts +31 -0
  100. package/tools/tasks/build.server.statics.ts +24 -0
  101. package/tools/tasks/build.skins.ts +51 -0
  102. package/tools/tasks/build.sme.prod.aot.ts +6 -0
  103. package/tools/tasks/build.sme.prod.rollup.aot.ts +6 -0
  104. package/tools/tasks/build.sme.prod.ts +6 -0
  105. package/tools/tasks/build.tar.prod.ts +17 -0
  106. package/tools/tasks/build.test.database.scripts.ts +52 -0
  107. package/tools/tasks/clean.dev.ts +7 -0
  108. package/tools/tasks/clean.prod.ts +7 -0
  109. package/tools/tasks/compile.ahead.prod.ts +65 -0
  110. package/tools/tasks/copy.client.js.prod.rollup.aot.ts +33 -0
  111. package/tools/tasks/copy.client.js.prod.ts +18 -0
  112. package/tools/tasks/copy.server.assets.ts +38 -0
  113. package/tools/tasks/copy.server.js.prod.ts +16 -0
  114. package/tools/tasks/css-lint.ts +58 -0
  115. package/tools/tasks/e2e.ts +32 -0
  116. package/tools/tasks/karma.run.ts +18 -0
  117. package/tools/tasks/karma.watch.ts +9 -0
  118. package/tools/tasks/minify.server.statics.ts +52 -0
  119. package/tools/tasks/server.prod.ts +6 -0
  120. package/tools/tasks/server.start.ts +6 -0
  121. package/tools/tasks/test.database.ts +6 -0
  122. package/tools/tasks/transpile.bundles.rollup.aot.ts +43 -0
  123. package/tools/tasks/tslint.ts +64 -0
  124. package/tools/tasks/watch.file.changes.dev.ts +37 -0
  125. package/tools/tasks/watch.key.press.dev.ts +116 -0
  126. package/tools/tasks/webdriver.ts +6 -0
  127. package/tools/utils/project/sample_util.ts +18 -0
  128. package/tools/utils/project.utils.ts +4 -0
  129. package/tools/utils/seed/build_optimizer.ts +26 -0
  130. package/tools/utils/seed/clean.ts +35 -0
  131. package/tools/utils/seed/code_change_tools.ts +38 -0
  132. package/tools/utils/seed/karma.start.ts +10 -0
  133. package/tools/utils/seed/server.ts +43 -0
  134. package/tools/utils/seed/sme.ts +51 -0
  135. package/tools/utils/seed/tasks_tools.ts +70 -0
  136. package/tools/utils/seed/template_locals.ts +64 -0
  137. package/tools/utils/seed/tsproject.ts +25 -0
  138. package/tools/utils/seed.utils.ts +11 -0
  139. package/tools/utils.ts +5 -0
  140. package/tsconfig.json +33 -0
  141. package/tslint.json +120 -0
  142. package/utils.ts +5 -0
@@ -0,0 +1,57 @@
1
+ // Habilitar prefijo en los ID de contacto
2
+ export const ENABLE_CONTACT_ID_PREFIX: any = {
3
+ /*intancia por cliente en una instancia
4
+ default: {
5
+ Amazon:'campaignClient'
6
+ }
7
+ */
8
+ default: '',
9
+ instance1: 'campaignId',
10
+ instance2: 'campaignClient',
11
+ instance3: 'campaignCategory',
12
+ instance4: 'sourceId'
13
+ };
14
+ // Prefijo de ventas
15
+ export const CONTACT_SALE_ID_PREFIX: string = 'CS';
16
+ // Deshabilitar archivos minificados
17
+ export const DISABLE_MINIFY: boolean = false;
18
+ // Flag para que el servidor levante en modo de servicio distribuido
19
+ export const IS_DISTRIBUTED_SERVICE: boolean = false;
20
+ // Claves para subir contenido a cada instancia
21
+ export const DISTRIBUTED_SERVICE_KEYS: any = {
22
+ default: 'bjFOyOXM6tOBJlkoKa6eGY4ZzovkEiBV01H7swK63elwkQEv',
23
+ instance1: 'm49y5SEFzNjrt1c3SkDAn9ynBWlVsQ3L87fb12OyzNYsdhbu',
24
+ instance2: 'eGk19JaQYDViax1Cll8CKI17OkswmSyVzVPemFQMCB9ReOS7',
25
+ instance3: '3VQjm3IT4PzR0OPoeFsfFzZ3tkzGH38hcO8SnpWTDQot4GOl',
26
+ instance4: 'qqYZfFRzfEp78YlkBzmvIzn9P6m209FFOaNJlezsW3nhVf4U'
27
+ };
28
+ // Lista de origenes validos para cada instancia
29
+ export const DISTRIBUTED_SERVICE_ORIGINS: any = {
30
+ default: [
31
+ 'A.A.A.A',
32
+ 'B.B.B.B',
33
+ 'C.C.C.C'
34
+ ],
35
+ instance1: [
36
+ 'D.D.D.D',
37
+ 'E.E.E.E',
38
+ 'F.F.F.F'
39
+ ],
40
+ instance2: [
41
+ 'G.G.G.G',
42
+ 'H.H.H.H',
43
+ 'I.I.I.I'
44
+ ],
45
+ instance3: [
46
+ 'J.J.J.J',
47
+ 'K.K.K.K',
48
+ 'L.L.L.L'
49
+ ],
50
+ instance4: [
51
+ 'M.M.M.M',
52
+ 'N.N.N.N',
53
+ 'O.O.O.O'
54
+ ]
55
+ };
56
+ // Limite de tamaño para upload de archivos genericos (20MB)
57
+ export const FILE_UPLOAD_LIMIT: number = 20 * 1024 * 1024;
@@ -0,0 +1,4 @@
1
+ // Constraseña con la que se encriptan las sesiones y se generan los tokens
2
+ export const JWT_SECRET: string = '';
3
+ // Tiempo de expiracion de las sesiones (en segundos)
4
+ export const JWT_EXPIRATION_TIME: number = 7 * 24 * 60 * 60;
@@ -0,0 +1,161 @@
1
+ import * as path from 'path';
2
+ import * as stackTrace from 'stack-trace';
3
+
4
+ // Ruta task.log
5
+ export const TASK_LOG_FILE: string = path.resolve(__dirname, '..', 'logs', 'Task.log');
6
+
7
+ // Obtiene el PID asociado al log
8
+ let getLogPid = function() {
9
+ // Obtengo pid
10
+ let pid: string = process.pid.toString();
11
+ // Devuevlo con formato y largo fijo
12
+ return (pid + ' ').substring(0, 5);
13
+ };
14
+
15
+ // Obtiene y arma el dato de nivel de log
16
+ let getLogLevel = function(loggingEvent: any) {
17
+ // Largo del resultado a devolver
18
+ let resultLength: number = 5;
19
+ // Obtengo nivel de log
20
+ var level: string = loggingEvent.level.toString();
21
+ // Devuevlo con formato y largo fijo
22
+ return '[' + (level + Array(resultLength + 1).join(' ')).substring(0, resultLength) + ']';
23
+ };
24
+
25
+ // Obtiene y arma el contexto asiciado al log
26
+ let getLogContext = function(loggingEvent: any) {
27
+ // Largo del resultado a devolver
28
+ let resultLength: number = 30;
29
+ // Obtengo el trace de la ejecucion actual
30
+ let trace: stackTrace.StackFrame[] = stackTrace.get();
31
+ // Verifico que tengo al menos la cantidad esperada de llamados
32
+ if (trace.length <= 9) return '[Unknown context]';
33
+ // Obtengo el nodo correspondiente a la funcion que llamo al logger
34
+ let caller: any = trace[9];
35
+ // Obtengo las variables del contexto
36
+ let fileName: string = path.basename(caller.getFileName() || '');
37
+ let lineNumber: string = caller.getLineNumber() || '';
38
+ // Armo y acomodo el contexto para que tenga siempre el mismo largo
39
+ let context: string = (fileName + ':' + lineNumber);
40
+ context = ( context.length > resultLength ? '...' + context.slice(-1 * (resultLength - ('...').length)) : context );
41
+ // Devuelvo el texto completo juntando todo
42
+ return '[' + (context + Array(resultLength + 1).join(' ')).substring(0, resultLength) + ']';
43
+ };
44
+
45
+ // Configuracion de los loggers a utilizar
46
+ export const LOGGER_CONFIG: any = {
47
+ appenders: [
48
+ {
49
+ type: 'file',
50
+ filename: path.resolve(__dirname, '..', 'logs', 'AccessLog.log'),
51
+ maxLogSize: 20 * 1000 * 1024,
52
+ backups: 5,
53
+ category: 'AccessLog',
54
+ layout: {
55
+ type: 'pattern',
56
+ pattern: '%x{level} %d{ISO8601} %x{pid} %m',
57
+ tokens: {
58
+ pid: getLogPid,
59
+ level: getLogLevel,
60
+ context: getLogContext
61
+ }
62
+ }
63
+ },
64
+ {
65
+ type: 'file',
66
+ filename: path.resolve(__dirname, '..', 'logs', 'ServerScripts.log'),
67
+ maxLogSize: 20 * 1000 * 1024,
68
+ backups: 5,
69
+ category: 'ServerScripts',
70
+ layout: {
71
+ type: 'pattern',
72
+ pattern: '%x{level} %d{ISO8601} %x{pid} %x{context} %m',
73
+ tokens: {
74
+ pid: getLogPid,
75
+ level: getLogLevel,
76
+ context: getLogContext
77
+ }
78
+ }
79
+ },
80
+ {
81
+ type: 'file',
82
+ filename: path.resolve(__dirname, '..', 'logs', 'PublicScripts.log'),
83
+ maxLogSize: 20 * 1000 * 1024,
84
+ backups: 15,
85
+ category: 'PublicScripts',
86
+ layout: {
87
+ type: 'pattern',
88
+ pattern: '%x{level} %d{ISO8601} %x{pid} %x{context} %m',
89
+ tokens: {
90
+ pid: getLogPid,
91
+ level: getLogLevel,
92
+ context: getLogContext
93
+ }
94
+ }
95
+ },
96
+ {
97
+ type: 'file',
98
+ filename: path.resolve(__dirname, '..', 'logs', 'DoubleClick.log'),
99
+ maxLogSize: 20 * 1000 * 1024,
100
+ backups: 5,
101
+ category: 'DoubleClick',
102
+ layout: {
103
+ type: 'pattern',
104
+ pattern: '%x{level} %d{ISO8601} %x{pid} %x{context} %m',
105
+ tokens: {
106
+ pid: getLogPid,
107
+ level: getLogLevel,
108
+ context: getLogContext
109
+ }
110
+ }
111
+ },
112
+ {
113
+ type: 'file',
114
+ filename: path.resolve(__dirname, '..', 'logs', 'Sql.log'),
115
+ maxLogSize: 20 * 1000 * 1024,
116
+ backups: 5,
117
+ category: 'Sql',
118
+ layout: {
119
+ type: 'pattern',
120
+ pattern: '%x{level} %d{ISO8601} %x{pid} %x{context} %m',
121
+ tokens: {
122
+ pid: getLogPid,
123
+ level: getLogLevel,
124
+ context: getLogContext
125
+ }
126
+ }
127
+ },
128
+ {
129
+ type: 'file',
130
+ filename: path.resolve(__dirname, '..', 'logs', 'Redis.log'),
131
+ maxLogSize: 20 * 1000 * 1024,
132
+ backups: 5,
133
+ category: 'Redis',
134
+ layout: {
135
+ type: 'pattern',
136
+ pattern: '%x{level} %d{ISO8601} %x{pid} %x{context} %m',
137
+ tokens: {
138
+ pid: getLogPid,
139
+ level: getLogLevel,
140
+ context: getLogContext
141
+ }
142
+ }
143
+ },
144
+ {
145
+ type: 'file',
146
+ filename: path.resolve(__dirname, '..', 'logs', 'Task.log'),
147
+ maxLogSize: 20 * 1000 * 1024,
148
+ backups: 5,
149
+ category: 'Task',
150
+ layout: {
151
+ type: 'pattern',
152
+ pattern: '%x{level} %d{ISO8601} %x{pid} %x{context} %m',
153
+ tokens: {
154
+ pid: getLogPid,
155
+ level: getLogLevel,
156
+ context: getLogContext
157
+ }
158
+ }
159
+ }
160
+ ]
161
+ };
@@ -0,0 +1,30 @@
1
+ export const MSSQL_HOST = '192.168.2.199';
2
+ export const MSSQL_PORT = 1433;
3
+ export const MSSQL_USER = '';
4
+ export const MSSQL_PASSWORD = '';
5
+ export const MSSQL_DATABASE = 'Testing_Billing';
6
+ export const MSSQL_CONN_TIMEOUT = 30 * 1000;
7
+ export const MSSQL_REQ_TIMEOUT = 300 * 1000;
8
+ export const MSSQL_POOL_MIN = 0;
9
+ export const MSSQL_POOL_MAX = 50;
10
+ export const MSSQL_POOL_IDLE_TIMEOUT = 24 * 60 * 60 * 1000;
11
+ export const MSSQL_ENCRYPT = false;
12
+ export const MSSQL_USE_UTC = true;
13
+ export const MSSQL_CONFIG = {
14
+ user: MSSQL_USER,
15
+ password: MSSQL_PASSWORD,
16
+ server: MSSQL_HOST,
17
+ database: MSSQL_DATABASE,
18
+ port: MSSQL_PORT,
19
+ connectionTimeout: MSSQL_CONN_TIMEOUT,
20
+ requestTimeout: MSSQL_REQ_TIMEOUT,
21
+ pool: {
22
+ max: MSSQL_POOL_MAX,
23
+ min: MSSQL_POOL_MIN,
24
+ idleTimeoutMillis: MSSQL_POOL_IDLE_TIMEOUT
25
+ },
26
+ options: {
27
+ encrypt: MSSQL_ENCRYPT,
28
+ useUTC: MSSQL_USE_UTC
29
+ }
30
+ };
@@ -0,0 +1,10 @@
1
+ // Parámetros de configuracion para el redis
2
+ export const REDIS_OPTIONS: any = {
3
+ prefix: 'inconcertCache:'
4
+ };
5
+ // Tiempo en segundos que se mantendran las sesiones en cache
6
+ export const REDIS_SESSION_PERSISTENCE: number = 7 * 24 * 60 * 60;
7
+ // Tiempo en segundos que se mantendran los datos en cache
8
+ export const REDIS_DATA_PERSISTENCE: number = 60 * 60;
9
+ // Tiempo en segundos que se mantendran los datos en cache para reprocesados
10
+ export const REDIS_DATA_PERSISTENCE_RETRY: number = 10 * 60;
@@ -0,0 +1,20 @@
1
+ import * as path from 'path';
2
+
3
+ // Modo del servicio (dev, prod, test)
4
+ export const SERVER_MODE: string = <string>'<%= ENV %>';
5
+ // HTTP habilitado
6
+ export const HTTP_ENABLED: boolean = true;
7
+ // Host de listen para HTTP
8
+ export const HTTP_BINDING_HOST: string = '0.0.0.0';
9
+ // Puerto de listen para HTTP
10
+ export const HTTP_BINDING_PORT: number = <number>+('<%= APP_SERVER_PORT %>');
11
+ // HTTPS habilitado
12
+ export const HTTPS_ENABLED: boolean = false;
13
+ // Host de listen para HTTPS
14
+ export const HTTPS_BINDING_HOST: string = '0.0.0.0';
15
+ // Puerto de listen para HTTPS
16
+ export const HTTPS_BINDING_PORT: number = 443;
17
+ // Clave para HTTPS
18
+ export const HTTPS_KEY: string = path.resolve(__dirname, '../ssl/star_inconcertcc_com.key');
19
+ // Certificado para HTTPS
20
+ export const HTTPS_CERT: string = path.resolve(__dirname, '../ssl/star_inconcertcc_com.pem');
@@ -0,0 +1,41 @@
1
+ import * as path from 'path';
2
+ // Nombre de la carpeta final
3
+ export const TEMP_FOLDER = 'temp';
4
+ // Ruta completa de la carpeta de archivos
5
+ export const TEMP_PATH = path.resolve(__dirname, '..', TEMP_FOLDER);
6
+ // Nombre de la carpeta de templates
7
+ export const TEMPLATE_FOLDER: string = 'template';
8
+ // Nombre de la carpeta de views (dentro de la de templates)
9
+ export const VIEWS_FOLDER: string = 'views';
10
+ // Nombre de la carpeta para mailing templates usadas por el sistema
11
+ export const MAIL_FOLDER: string = 'mail';
12
+ // Ruta relativa (URI) de la carpeta de vistas de templates
13
+ export const TEMPLATE_VIEWS_URI: string = TEMPLATE_FOLDER + '/' + VIEWS_FOLDER;
14
+ // Ruta completa de la carpeta de templates
15
+ export const TEMPLATE_PATH: string = path.resolve(__dirname, '..', TEMPLATE_FOLDER);
16
+ // Ruta completa de la carpeta de vistas de templates
17
+ export const TEMPLATE_VIEWS_PATH: string = path.resolve(__dirname, '..', TEMPLATE_FOLDER, VIEWS_FOLDER);
18
+ // Ruta completa de la carpeta de templates para mailing
19
+ export const TEMPLATE_MAIL_PATH: string = path.resolve(__dirname, '..', TEMPLATE_FOLDER, MAIL_FOLDER);
20
+ // Tiempo a mantener los archivos o carpeta temporales
21
+ export const TEMPLATE_TEMP_PERSISTENCE: number = 24 * 60 * 60;
22
+ // Nombre de la carpeta temporal para las templates
23
+ export const TEMPLATE_TEMP_FOLDER: string = 'temp';
24
+ // Prefijo para nombrar las carpetas temporales de las templates
25
+ export const TEMPLATE_TEMP_PREFIX: string = 'temp';
26
+ // Prefijo para nombrar las carpetas temporales de las templates en modo edición
27
+ export const TEMPLATE_EDIT_PREFIX: string = 'edit';
28
+ // Prefijo para nombrar los temporales para descarga de las templates
29
+ export const TEMPLATE_DOWNLOAD_PREFIX: string = 'download';
30
+ // Prefijo para nombrar los temporales para upload de las templates
31
+ export const TEMPLATE_UPLOAD_PREFIX: string = 'upload';
32
+ // Extensión para la generación de snapshots de las templates
33
+ export const TEMPLATE_PREVIEW_EXT: string = '.jpg';
34
+ // Ruta hacia la carpeta temporal donde se alojan las templates
35
+ export const TEMPLATE_TEMP_PATH: string = path.resolve(TEMPLATE_PATH, TEMPLATE_TEMP_FOLDER);
36
+ // Ruta relativa (URI) de la carpeta de vistas de templates
37
+ export const TEMPLATE_TEMP_URI: string = TEMPLATE_FOLDER + '/' + TEMPLATE_TEMP_FOLDER;
38
+ // Ruta completa de la carpeta de archivos js estaticos
39
+ export const STATIC_JS_PATH: string = path.resolve(__dirname, '../static/js');
40
+ // Prefijo para los partiales de archivos js estaticos
41
+ export const STATIC_JS_PARTIALS_PREFIX: string = 'static/js/';
@@ -0,0 +1,37 @@
1
+ const crypto = require('crypto');
2
+
3
+ const algorithm = 'aes-256-ctr';
4
+ const password = 'vOVH6sdmpNWjRRIqCc7rdxs01lwHzfr3';
5
+
6
+ export function InconcertEncrypt(myText) : string {
7
+ const iv = crypto.randomBytes(16);
8
+ const cipher = crypto.createCipheriv(algorithm, password, Buffer.from(iv));
9
+ const encrypted = Buffer.concat([cipher.update(myText), cipher.final()]);
10
+
11
+ return `${encrypted.toString('hex')}-${iv.toString('hex')}`;
12
+ }
13
+
14
+ export function InconcertDecrypt(myEncryptedText) : string {
15
+ const iv = crypto.randomBytes(24);
16
+ let decipher = crypto.createDecipheriv(algorithm, Buffer.from(password), iv);
17
+ let decrypted = '';
18
+ decipher.on(
19
+ 'readable',
20
+ () => {
21
+ const data = decipher.read();
22
+ if (data)
23
+ decrypted += data.toString('utf8');
24
+ }
25
+ );
26
+ decipher.on(
27
+ 'end',
28
+ () => {
29
+ return decrypted;
30
+ }
31
+ );
32
+
33
+ decipher.write(myEncryptedText, 'hex');
34
+ decipher.end();
35
+
36
+ return decrypted;
37
+ }