Apariencia
1. Preparar el proyecto
Instalar el kit
El kit (@hury/plugin-kit) es un paquete npm con el binario hury-plugin. Se descarga de este portal, con su huella publicada en Descargas:
bash
curl -O https://developer.hury.es/downloads/hury-plugin-kit-0.1.0.tgz
shasum -a 256 hury-plugin-kit-0.1.0.tgz
npm install -g ./hury-plugin-kit-0.1.0.tgz
hury-plugin --versionCompara la salida de shasum con la huella de la página de descargas antes de instalar. hury-plugin necesita Node.js 22 o superior.
Crear el proyecto
bash
hury-plugin init notas --title Notas --author "Mi empresa"
cd notas
npm install- La clave (
notas) debe ser camelCase, de 2 a 40 caracteres y empezar por minúscula. Es estable: no se renombra nunca. --titlees el nombre visible y--author, el que sale en el Marketplace como «Por …».initdeja enpackage.jsonla dependencia@hury/plugin-kitapuntando a la descarga de este portal. Sin conexión, o para una copia local, usa--kit ./hury-plugin-kit-0.1.0.tgz.
Esto es lo que se ha creado:
notas/
plugin.json ficha: clave, versión, apiVersion, título, categoría
package.json scripts (build, typecheck, test) y versiones de fastify, kysely, zod y vue del host
tsconfig.json API: tipos del host en node_modules/@hury/plugin-kit/types/host
api/index.ts el ZModule: manifiesto, permisos, rutas
api/routes.ts rutas Fastify
api/schemas.ts esquemas zod de las peticiones
api/tables.ts tipos de las tablas propias y los dos casts con el host
migrations/001_notas.sql migración idempotente
admin/index.ts módulo del panel: ruta y entrada de menú
admin/pages/NotasPage.vue la pantalla
admin/i18n/{en,ca,fr}.json traducciones
admin/tsconfig.json panel: tipos del admin en node_modules/@hury/plugin-kit/types/admin
test/plugin.test.mjs pruebas de contrato, migraciones, traducciones y rutasComprobar que todo funciona
Antes de tocar nada, ejecuta lo que traen la plantilla y el kit:
bash
npm test
npm run typecheck
npm run buildnpm testejecutatest/plugin.test.mjscon el runner de Node: comprueba quemanifest.keycoincide conplugin.json, que los permisos declarados los concede la migración, que las migraciones son idempotentes, que todos los textos del admin están traducidos y las rutas de la API (401 sin sesión, 403 sin permiso, validación, 404). No hace falta base de datos ni el host: el kit compila tu API con el mismo esbuild quehury-plugin buildy la carga contra un host de pruebas.npm run typecheckejecutatscsobre la API yvue-tscsobre el panel contra los tipos reales del host, derivados del código de la API y del admin de la demo.npm run buildgeneradist/notas-1.0.0.zip, sin firmar.
Los tres deben terminar sin errores. A partir de aquí, cada paso modifica el proyecto y vuelve a ejecutar la comprobación que toca.
Cómo funciona build
hury-plugin build hace lo mismo que la herramienta interna de Hury, salvo firmar:
- Compila
api/index.tscon esbuild aapi/index.mjs. Losimport … from "@host/…",kysely,zodyfastifyno se empaquetan: se convierten en lecturas deglobalThis.__HURY_API__. - Compila
admin/index.tscon Vite como módulo ESM. Los importsvue,vue-routery@/…se convierten en lecturas dewindow.__HURY_ADMIN__. - Copia
migrations/,assets/yadmin/i18n/. - Escribe
plugin.json(con el bloqueadmincalculado),checksums.json(sha256 de cada fichero) y el zip.
Falla si tu código importa algo que el host no expone, o si usas import * as del host. Esa lista es el contrato: módulos de la API y módulos del admin.