jerkjs 2.5.4 → 2.5.8

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 (69) hide show
  1. package/BENCHMARK_RESULTS.md +60 -0
  2. package/CHANGELOG.md +43 -0
  3. package/ESTADISTICAS_RENDIMIENTO.md +106 -0
  4. package/README.md +142 -423
  5. package/README_LEGACY.md +513 -0
  6. package/debug_hook.js +11 -0
  7. package/doc-2.5/ADMIN_EXTENSION_COMMANDS_MANUAL.md +261 -0
  8. package/doc-2.5/ADMIN_EXTENSION_HOOK_EXAMPLE.md +28 -0
  9. package/doc-2.5/ADMIN_EXTENSION_INTEGRATION_MANUAL.md +232 -0
  10. package/doc-2.5/CACHE_SYSTEM_MAP.md +206 -0
  11. package/doc-2.5/SESSION_SECURITY_FLAGS.md +174 -0
  12. package/doc-2.5/an/303/241lisis-completo-jerk-framework.md +213 -0
  13. package/docs/CACHE_SYSTEM_MAP.md +206 -0
  14. package/docs/SERVER_OPTIMIZATION_NOTES.md +87 -0
  15. package/index.js +7 -1
  16. package/jerk2.5.webp +0 -0
  17. package/lib/admin/AdminExtension.js +436 -0
  18. package/lib/admin/ModuleLoader.js +77 -0
  19. package/lib/admin/config.js +21 -0
  20. package/lib/admin/modules/CacheModule.js +145 -0
  21. package/lib/admin/modules/STATS_MODULE_README.md +98 -0
  22. package/lib/admin/modules/StatsModule.js +140 -0
  23. package/lib/admin/modules/SystemModule.js +140 -0
  24. package/lib/admin/modules/TimeModule.js +95 -0
  25. package/lib/cache/CacheHooks.js +141 -0
  26. package/lib/core/server.js +199 -46
  27. package/lib/middleware/session.js +11 -3
  28. package/lib/mvc/viewEngine.js +26 -1
  29. package/lib/router/RouteMatcher.js +242 -54
  30. package/lib/utils/globalStats.js +16 -0
  31. package/package.json +2 -2
  32. package/@qaLoadModel/controllers/ProductController.js +0 -143
  33. package/@qaLoadModel/controllers/UserController.js +0 -143
  34. package/@qaLoadModel/models/ProductModel.js +0 -41
  35. package/@qaLoadModel/models/UserModel.js +0 -41
  36. package/@qaLoadModel/package.json +0 -22
  37. package/@qaLoadModel/qa_report.md +0 -71
  38. package/@qaLoadModel/results.md +0 -97
  39. package/@qaLoadModel/routes.json +0 -58
  40. package/@qaLoadModel/server.js +0 -43
  41. package/@qaLoadModel/simple-test.js +0 -96
  42. package/@qaLoadModel/test-models.js +0 -144
  43. package/@qaLoadModel/test_endpoints.sh +0 -35
  44. package/@qaLoadModel/test_final.js +0 -89
  45. package/@qaLoadModel/views/products/index.html +0 -45
  46. package/@qaLoadModel/views/products/show.html +0 -27
  47. package/@qaLoadModel/views/users/index.html +0 -44
  48. package/@qaLoadModel/views/users/show.html +0 -26
  49. package/qa/INFORME_QA_JERKJS_ROUTING.md +0 -108
  50. package/qa/informe_qa_fix_enrutamiento.md +0 -93
  51. package/qa-app/controllers/homeController.js +0 -9
  52. package/qa-app/controllers/userController.js +0 -76
  53. package/qa-app/hooks-config.js +0 -65
  54. package/qa-app/models/UserModel.js +0 -36
  55. package/qa-app/package-lock.json +0 -1683
  56. package/qa-app/package.json +0 -25
  57. package/qa-app/public/css/style.css +0 -15
  58. package/qa-app/public/images/logo.png +0 -3
  59. package/qa-app/public/index.html +0 -15
  60. package/qa-app/public/js/main.js +0 -7
  61. package/qa-app/routes/api-routes.json +0 -23
  62. package/qa-app/routes/page-routes.json +0 -16
  63. package/qa-app/routes/static-routes.json +0 -20
  64. package/qa-app/server.js +0 -68
  65. package/qa-app/views/footer.html +0 -3
  66. package/qa-app/views/index.html +0 -20
  67. package/qa-app/views/users.html +0 -20
  68. package/utils/find_file_path.sh +0 -36
  69. /package/{doc2.5.3 → doc-2.5}/manual-mvc-completo.md +0 -0
@@ -1,25 +0,0 @@
1
- {
2
- "name": "qa-app",
3
- "version": "1.0.0",
4
- "description": "Aplicación de prueba para el framework JERK",
5
- "main": "server.js",
6
- "scripts": {
7
- "start": "node server.js",
8
- "test": "echo \"Error: no test specified\" && exit 1"
9
- },
10
- "keywords": [
11
- "jerkjs",
12
- "qa",
13
- "test"
14
- ],
15
- "author": "QA Tester",
16
- "license": "ISC",
17
- "dependencies": {
18
- "bcrypt": "^6.0.0",
19
- "jerkjs": "file:../..",
20
- "jsonwebtoken": "^9.0.3",
21
- "mariadb": "^3.4.5",
22
- "qbuilderjs": "^1.0.1",
23
- "sqlite3": "^5.1.7"
24
- }
25
- }
@@ -1,15 +0,0 @@
1
- body {
2
- font-family: Arial, sans-serif;
3
- margin: 40px;
4
- background-color: #f4f4f4;
5
- }
6
-
7
- h1 {
8
- color: #333;
9
- }
10
-
11
- img {
12
- border: 1px solid #ddd;
13
- border-radius: 4px;
14
- padding: 5px;
15
- }
@@ -1,3 +0,0 @@
1
- // Este archivo representa una imagen simple para la aplicación
2
- // En una implementación real, aquí iría el contenido binario de una imagen
3
- console.log('Este es un archivo de imagen simulado');
@@ -1,15 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>JerkJS QA App</title>
7
- <link rel="stylesheet" href="/assets/css/style.css">
8
- </head>
9
- <body>
10
- <h1>Bienvenido a la aplicación QA de JERK Framework</h1>
11
- <p>Esta es una aplicación de prueba para evaluar las funcionalidades del framework.</p>
12
- <img src="/assets/images/logo.png" alt="Logo" width="200">
13
- <script src="/assets/js/main.js"></script>
14
- </body>
15
- </html>
@@ -1,7 +0,0 @@
1
- // Script principal de la aplicación
2
- document.addEventListener('DOMContentLoaded', function() {
3
- console.log('Aplicación JERK Framework cargada correctamente');
4
-
5
- // Mensaje simple para indicar que el script está funcionando
6
- alert('¡JERK Framework está funcionando correctamente!');
7
- });
@@ -1,23 +0,0 @@
1
- [
2
- {
3
- "path": "/api/users",
4
- "method": "GET",
5
- "controller": "./controllers/userController.js",
6
- "handler": "getAllUsers",
7
- "contentType": "application/json"
8
- },
9
- {
10
- "path": "/api/users/:id",
11
- "method": "GET",
12
- "controller": "./controllers/userController.js",
13
- "handler": "getUserById",
14
- "contentType": "application/json"
15
- },
16
- {
17
- "path": "/api/users",
18
- "method": "POST",
19
- "controller": "./controllers/userController.js",
20
- "handler": "createUser",
21
- "contentType": "application/json"
22
- }
23
- ]
@@ -1,16 +0,0 @@
1
- [
2
- {
3
- "path": "/",
4
- "method": "GET",
5
- "controller": "./controllers/homeController.js",
6
- "handler": "index",
7
- "contentType": "text/html"
8
- },
9
- {
10
- "path": "/users",
11
- "method": "GET",
12
- "controller": "./controllers/userController.js",
13
- "handler": "indexView",
14
- "contentType": "text/html"
15
- }
16
- ]
@@ -1,20 +0,0 @@
1
- [
2
- {
3
- "path": "/static",
4
- "method": "GET",
5
- "static": {
6
- "dir": "./public",
7
- "index": ["index.html", "index.htm"],
8
- "cacheControl": "public, max-age=3600"
9
- }
10
- },
11
- {
12
- "path": "/assets",
13
- "method": "GET",
14
- "static": {
15
- "dir": "./public",
16
- "index": [],
17
- "cacheControl": "public, max-age=86400"
18
- }
19
- }
20
- ]
package/qa-app/server.js DELETED
@@ -1,68 +0,0 @@
1
- const {
2
- APIServer,
3
- RouteDirectoryLoader,
4
- ViewEngine,
5
- ModelManager,
6
- MemoryAdapter,
7
- Logger
8
- } = require('../index.js');
9
-
10
- const path = require('path');
11
- const { setupHooks } = require('./hooks-config.js');
12
-
13
- // Crear instancia del servidor en el puerto 1891
14
- const server = new APIServer({
15
- port: 1891,
16
- host: 'localhost'
17
- });
18
-
19
- // Crear instancia del logger
20
- const logger = new Logger({ level: 'info' });
21
-
22
- // Configurar el motor de vistas
23
- const viewEngine = new ViewEngine({
24
- viewsDir: path.resolve(__dirname, 'views'),
25
- defaultLayout: null
26
- });
27
-
28
- // Configurar el sistema de modelos
29
- const modelManager = new ModelManager({ logger });
30
- const memoryAdapter = new MemoryAdapter();
31
- modelManager.registerAdapter('memory', memoryAdapter);
32
-
33
- // Asociar el motor de vistas y el gestor de modelos al servidor
34
- server.viewEngine = viewEngine;
35
- server.modelManager = modelManager;
36
-
37
- // Cargar modelos
38
- const UserModel = require('./models/UserModel.js');
39
- const userModel = new UserModel({ adapter: memoryAdapter });
40
- modelManager.registerModel('UserModel', userModel);
41
-
42
- // Registrar hooks
43
- setupHooks();
44
-
45
- // Cargar rutas desde directorio
46
- const routeDirectoryLoader = new RouteDirectoryLoader();
47
- routeDirectoryLoader.loadRoutesFromDirectory(server, './routes')
48
- .then(routes => {
49
- logger.info(`${routes.length} rutas cargadas exitosamente`);
50
-
51
- // Iniciar el servidor
52
- server.start();
53
-
54
- // Agregar algunos usuarios de ejemplo
55
- userModel.create({ username: 'admin', email: 'admin@example.com' })
56
- .then(() => console.log('Usuario admin creado'))
57
- .catch(err => console.error('Error creando usuario admin:', err));
58
-
59
- userModel.create({ username: 'testuser', email: 'test@example.com' })
60
- .then(() => console.log('Usuario testuser creado'))
61
- .catch(err => console.error('Error creando usuario test:', err));
62
- })
63
- .catch(error => {
64
- logger.error('Error cargando rutas desde directorio:', error.message);
65
- });
66
-
67
- // Exportar el servidor para posibles pruebas
68
- module.exports = server;
@@ -1,3 +0,0 @@
1
- <footer>
2
- <p>&copy; 2026 JERK Framework QA App. Todos los derechos reservados.</p>
3
- </footer>
@@ -1,20 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="es">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>{{title}}</title>
7
- <link rel="stylesheet" href="/assets/css/style.css">
8
- </head>
9
- <body>
10
- <h1>{{message}}</h1>
11
- <p>Esta es la página de inicio de la aplicación de prueba de JERK Framework.</p>
12
- <nav>
13
- <ul>
14
- <li><a href="/">Inicio</a></li>
15
- <li><a href="/users">Usuarios</a></li>
16
- </ul>
17
- </nav>
18
- {{include:footer}}
19
- </body>
20
- </html>
@@ -1,20 +0,0 @@
1
- <table border="1">
2
- <thead>
3
- <tr>
4
- <th>ID</th>
5
- <th>Nombre de Usuario</th>
6
- <th>Email</th>
7
- <th>Fecha de Creación</th>
8
- </tr>
9
- </thead>
10
- <tbody>
11
- {{foreach:users as index => item}}
12
- <tr>
13
- <td>{{item.id}}</td>
14
- <td>{{item.username}}</td>
15
- <td>{{item.email}}</td>
16
- <td>{{item.createdAt}}</td>
17
- </tr>
18
- {{endforeach}}
19
- </tbody>
20
- </table>
@@ -1,36 +0,0 @@
1
- #!/bin/bash
2
-
3
- # Script to find a file's location using 'which' and show its real path with 'ls -ln'
4
-
5
- if [ $# -eq 0 ]; then
6
- echo "Usage: $0 <filename>"
7
- echo "Example: $0 python"
8
- exit 1
9
- fi
10
-
11
- filename="$1"
12
-
13
- # Find the file using which
14
- echo "Finding location of '$filename' using 'which':"
15
- which_result=$(which "$filename")
16
-
17
- if [ $? -eq 0 ]; then
18
- echo "Found: $which_result"
19
-
20
- # Get the directory containing the file
21
- file_dir=$(dirname "$which_result")
22
- file_basename=$(basename "$which_result")
23
-
24
- # Change to the directory and use ls -ln to show the real path
25
- echo ""
26
- echo "Using 'ls -ln' to show detailed info:"
27
- (cd "$file_dir" && ls -ln "$file_basename")
28
-
29
- # If the file is a symlink, show the real path using readlink
30
- echo ""
31
- echo "Real path (using readlink -f):"
32
- readlink -f "$which_result"
33
- else
34
- echo "File '$filename' not found in PATH"
35
- exit 1
36
- fi
File without changes