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.
- package/BENCHMARK_RESULTS.md +60 -0
- package/CHANGELOG.md +43 -0
- package/ESTADISTICAS_RENDIMIENTO.md +106 -0
- package/README.md +142 -423
- package/README_LEGACY.md +513 -0
- package/debug_hook.js +11 -0
- package/doc-2.5/ADMIN_EXTENSION_COMMANDS_MANUAL.md +261 -0
- package/doc-2.5/ADMIN_EXTENSION_HOOK_EXAMPLE.md +28 -0
- package/doc-2.5/ADMIN_EXTENSION_INTEGRATION_MANUAL.md +232 -0
- package/doc-2.5/CACHE_SYSTEM_MAP.md +206 -0
- package/doc-2.5/SESSION_SECURITY_FLAGS.md +174 -0
- package/doc-2.5/an/303/241lisis-completo-jerk-framework.md +213 -0
- package/docs/CACHE_SYSTEM_MAP.md +206 -0
- package/docs/SERVER_OPTIMIZATION_NOTES.md +87 -0
- package/index.js +7 -1
- package/jerk2.5.webp +0 -0
- package/lib/admin/AdminExtension.js +436 -0
- package/lib/admin/ModuleLoader.js +77 -0
- package/lib/admin/config.js +21 -0
- package/lib/admin/modules/CacheModule.js +145 -0
- package/lib/admin/modules/STATS_MODULE_README.md +98 -0
- package/lib/admin/modules/StatsModule.js +140 -0
- package/lib/admin/modules/SystemModule.js +140 -0
- package/lib/admin/modules/TimeModule.js +95 -0
- package/lib/cache/CacheHooks.js +141 -0
- package/lib/core/server.js +199 -46
- package/lib/middleware/session.js +11 -3
- package/lib/mvc/viewEngine.js +26 -1
- package/lib/router/RouteMatcher.js +242 -54
- package/lib/utils/globalStats.js +16 -0
- package/package.json +2 -2
- package/@qaLoadModel/controllers/ProductController.js +0 -143
- package/@qaLoadModel/controllers/UserController.js +0 -143
- package/@qaLoadModel/models/ProductModel.js +0 -41
- package/@qaLoadModel/models/UserModel.js +0 -41
- package/@qaLoadModel/package.json +0 -22
- package/@qaLoadModel/qa_report.md +0 -71
- package/@qaLoadModel/results.md +0 -97
- package/@qaLoadModel/routes.json +0 -58
- package/@qaLoadModel/server.js +0 -43
- package/@qaLoadModel/simple-test.js +0 -96
- package/@qaLoadModel/test-models.js +0 -144
- package/@qaLoadModel/test_endpoints.sh +0 -35
- package/@qaLoadModel/test_final.js +0 -89
- package/@qaLoadModel/views/products/index.html +0 -45
- package/@qaLoadModel/views/products/show.html +0 -27
- package/@qaLoadModel/views/users/index.html +0 -44
- package/@qaLoadModel/views/users/show.html +0 -26
- package/qa/INFORME_QA_JERKJS_ROUTING.md +0 -108
- package/qa/informe_qa_fix_enrutamiento.md +0 -93
- package/qa-app/controllers/homeController.js +0 -9
- package/qa-app/controllers/userController.js +0 -76
- package/qa-app/hooks-config.js +0 -65
- package/qa-app/models/UserModel.js +0 -36
- package/qa-app/package-lock.json +0 -1683
- package/qa-app/package.json +0 -25
- package/qa-app/public/css/style.css +0 -15
- package/qa-app/public/images/logo.png +0 -3
- package/qa-app/public/index.html +0 -15
- package/qa-app/public/js/main.js +0 -7
- package/qa-app/routes/api-routes.json +0 -23
- package/qa-app/routes/page-routes.json +0 -16
- package/qa-app/routes/static-routes.json +0 -20
- package/qa-app/server.js +0 -68
- package/qa-app/views/footer.html +0 -3
- package/qa-app/views/index.html +0 -20
- package/qa-app/views/users.html +0 -20
- package/utils/find_file_path.sh +0 -36
- /package/{doc2.5.3 → doc-2.5}/manual-mvc-completo.md +0 -0
package/qa-app/package.json
DELETED
|
@@ -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
|
-
}
|
package/qa-app/public/index.html
DELETED
|
@@ -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>
|
package/qa-app/public/js/main.js
DELETED
|
@@ -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;
|
package/qa-app/views/footer.html
DELETED
package/qa-app/views/index.html
DELETED
|
@@ -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>
|
package/qa-app/views/users.html
DELETED
|
@@ -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>
|
package/utils/find_file_path.sh
DELETED
|
@@ -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
|