Skip to content

Releases: joss-language/Joss-Programming-Language

Joss v3.6.6

Choose a tag to compare

@github-actions github-actions released this 09 Aug 08:07

🚀 Joss Language v3.6.6

Una actualización mayor enfocada en GranDB, concurrencia, SDKs, estabilidad y calidad del ecosistema.


🇪🇸 Español

🎉 Bienvenidos a Joss v3.6.6

¡Bienvenidos a una nueva versión de Joss Language!

Con Joss v3.6.6 presentamos una de las actualizaciones más importantes del proyecto en las últimas versiones. Esta release incorpora mejoras profundas en diferentes componentes del ecosistema, con especial atención en GranDB, el sistema de concurrencia y Cron, el framework de plugins JP v2 Sidecar, el servidor, el hot reload, los SDKs multiplataforma y la calidad general del código.

Esta versión no se limita a añadir nuevas funcionalidades: también representa un importante trabajo de estabilización, refactorización, corrección de errores y mejora de la documentación.

A continuación encontrarás todos los cambios incluidos en esta versión.


⭐ Principales novedades

🗄️ ORM & Base de Datos — GranDB

GranDB recibe una de las mayores ampliaciones de esta versión, incorporando nuevas operaciones y capacidades para trabajar con datos de forma más flexible y expresiva.

Nuevos métodos

Se incorporan nuevos métodos al ORM:

  • when
  • unless
  • firstWhere
  • sole
  • findMany
  • findOrFail
  • updateOrInsert
  • touch
  • increment
  • decrement

Estos métodos permiten construir operaciones de consulta y modificación de datos más expresivas y reducir la cantidad de lógica adicional necesaria en las aplicaciones.

🔤 Consultas insensibles a mayúsculas/minúsculas

GranDB incorpora soporte mejorado para realizar operaciones case-insensitive en diferentes métodos de consulta, incluyendo:

  • where
  • orWhere
  • whereLike
  • y operaciones relacionadas.

Esto permite realizar búsquedas más flexibles sin depender de la capitalización exacta de los datos almacenados.

📄 Paginación y procesamiento por bloques

Se añade soporte para:

  • paginate
  • chunk

Estas capacidades permiten trabajar de forma más eficiente con grandes cantidades de registros, evitando cargar conjuntos completos de datos innecesariamente en memoria.

📊 Agrupación y filtrado avanzado

El constructor de consultas de GranDB ha sido mejorado para soportar operaciones como:

  • GROUP BY
  • HAVING

Esto permite construir consultas más avanzadas directamente desde el ORM.

❌ Mejor manejo de errores

Se mejoró el comportamiento de los métodos:

  • firstOrFail
  • findOrFail

Ahora los errores derivados de consultas fallidas o registros inexistentes cuentan con un manejo más consistente.


⏱️ Cron Manager & Concurrencia

El sistema de tareas programadas también recibe mejoras importantes.

🔒 Control de concurrencia

Se incorporó un sistema de manejo en memoria con bloqueos para evitar que el mismo Job sea ejecutado simultáneamente cuando no corresponde.

Esto proporciona un mayor control sobre tareas programadas y reduce el riesgo de ejecuciones duplicadas.

🗄️ Sincronización con la base de datos

Las tareas programadas pueden sincronizarse directamente con la base de datos, mejorando la administración y persistencia de la información relacionada con los Jobs.

📦 Precarga recursiva de archivos

Se añadió un nuevo mecanismo para precargar archivos de la aplicación de forma recursiva.

Esta funcionalidad se encuentra integrada en:

pkg/core/runtime.go


🧩 SDKs de Plugins — JP v2 Sidecar Framework

El framework JP v2 Sidecar recibe una actualización importante en sus SDKs multiplataforma.

Se actualizaron los SDKs para:

  • C++
  • Dart / Flutter
  • Java
  • Kotlin
  • PHP
  • Rust

Mejoras principales

Los SDKs incorporan:

  • Mejor manejo de errores.
  • Soporte de streaming mediante joss-rpc-v1.
  • Verificación mejorada de protocolos.
  • Mayor consistencia entre implementaciones.
  • Mejor integración con el framework de plugins.

El objetivo es continuar construyendo un ecosistema de plugins multiplataforma más estable y consistente.


🔧 Correcciones y mejoras de CI/CD

Esta versión también incluye una importante cantidad de correcciones relacionadas con automatización, distribución y validación de releases.

⚙️ GitHub Actions & Distribución Manual

Se realizaron mejoras importantes en:

.github/workflows/manual-distribution.yml

Flutter / Dart

Se corrigió el proceso de validación de Flutter/Dart.

Anteriormente se utilizaba:

flutter pub get

Sin embargo, la raíz del proyecto no contiene un pubspec.yaml, por lo que el proceso fue reemplazado por:

dart analyze sdk/dart/joss_plugin.dart

Esto permite validar correctamente el SDK de Dart sin depender de una estructura de proyecto Flutter en la raíz del repositorio.

☕ Actualización de Java

Se actualizó:

actions/setup-java@v4

a:

actions/setup-java@v5

manteniendo los workflows alineados con las versiones actuales de GitHub Actions.

📦 Releases duplicadas

Se mejoró el manejo de releases existentes, especialmente en escenarios donde ya existe una prerelease.

El sistema ahora puede detectar releases existentes y actualizar su estado mediante:

gh release edit

Esto reduce problemas durante los procesos de distribución manual.

🪟 Diagnósticos en Windows

Se mejoró considerablemente la salida y el reporte de errores durante los procesos de empaquetado de Windows.

Se realizaron mejoras en:

  • build_all.ps1
  • verify-release.ps1

Esto facilita identificar rápidamente problemas durante la generación y validación de paquetes.


🎯 SDK de Dart

El SDK de Dart recibió una limpieza adicional para evitar advertencias durante el análisis estático.

Se eliminó el parámetro stack, que no estaba siendo utilizado dentro de un bloque catch en:

sdk/dart/joss_plugin.dart

Con ello se evita que advertencias innecesarias puedan provocar fallos durante:

dart analyze


🔄 Server & Hot Reload

El servidor de Joss también recibió mejoras importantes.

Se realizaron modificaciones en:

  • pkg/server/handler.go
  • pkg/server/hotreload.go

Estas mejoras permiten una gestión más estable del servidor y del sistema de Hot Reload, proporcionando una mejor experiencia durante el desarrollo.


♻️ Refactorización y calidad del código

Joss v3.6.6 también representa una importante etapa de limpieza interna del proyecto.

🧠 Reducción de complejidad

Se realizó una refactorización profunda de:

cmd/joss/database.go

El objetivo principal fue reducir la complejidad cognitiva detectada por herramientas de análisis como:

  • SonarLint
  • staticcheck

Esto permite mantener una base de código más sencilla de comprender y mantener.

🧹 Limpieza general

También se eliminaron diferentes bloques de código redundante en:

  • cmd/joss/brevo.go
  • cmd/joss/main.go
  • cmd/joss/native_builder.go

Estas modificaciones buscan mantener el proyecto más limpio, consistente y preparado para futuras versiones.


📚 Documentación

La documentación de Joss continúa evolucionando junto con el lenguaje.

📖 README.md

Se realizó una reestructuración general del README, mejorando:

  • Claridad.
  • Organización.
  • Consistencia.
  • Presentación de la información.

🗄️ MODELOS.md

La documentación de modelos fue ampliada para incluir los nuevos métodos y capacidades disponibles en el ORM GranDB.

🏗️ Documentación técnica

También se actualizaron diferentes documentos relacionados con la arquitectura y funcionamiento de Joss:

  • CLI.md
  • CONCURRENCIA.md
  • CONTROLADORES.md
  • ESTRUCTURA_PROYECTO.md
  • SINTAXIS.md

🚀 Una versión enfocada en crecer

Joss v3.6.6 representa un paso importante en la evolución del lenguaje.

Más que una colección de nuevas funciones, esta versión busca fortalecer los fundamentos del ecosistema: base de datos, concurrencia, servidores, plugins, SDKs, herramientas de desarrollo, automatización y documentación.

Seguiremos trabajando para hacer de Joss un lenguaje cada vez más estable, completo y preparado para proyectos reales.

Gracias por formar parte de Joss.

Keep building. Keep improving. Keep coding with Joss.


🇺🇸 English

🎉 Welcome to Joss v3.6.6

Welcome to a new release of Joss Language!

With Joss v3.6.6, we are introducing one of the most significant updates in recent versions of the project. This release brings deep improvements across the ecosystem, with a strong focus on GranDB, concurrency and Cron management, the JP v2 Sidecar plugin framework, the server, hot reload, cross-platform SDKs, and overall code quality.

This release is not only about adding new features. It also represents a major effort toward stability, refactoring, bug fixing, automation, and documentation improvements.

Here are all the changes included in this release.


⭐ Major Highlights

🗄️ ORM & Database — GranDB

GranDB receives one of the largest expansions in this release, introducing new operations and capabilities for more flexible and expressive data management.

New methods

The following ORM methods have been added:

  • when
  • unless
  • firstWhere
  • sole
  • findMany
  • findOrFail
  • updateOrInsert
  • touch
  • increment
  • decrement

These methods make database operations more expressive while reducing the amount of additional application-side logic required.

🔤 Case-insensitive queries

GranDB now provides improved support for case-insensitive operations across several query methods, including:

  • where
  • orWhere
  • whereLike
  • and related operations.

This allows applications to perform more flexible searches without depending on the exact capitalization of stored data.

📄 Paginati...

Read more

Joss v3.6.5

Choose a tag to compare

@github-actions github-actions released this 05 Aug 02:51

🚀 Joss Language v3.6.5


🇪🇸 Español

¡Hola a todos!

Nos complace anunciar el lanzamiento oficial de Joss Language v3.6.5, una actualización que incorpora importantes mejoras en la experiencia de desarrollo, el rendimiento, la seguridad y la distribución del lenguaje.

Esta versión introduce un nuevo sistema inteligente de actualizaciones, elimina definitivamente componentes heredados, unifica la carga de variables de entorno y moderniza el flujo de publicación de nuevas versiones.

Los invitamos a actualizar Joss Language, explorar todas las novedades y descubrir las nuevas herramientas disponibles.

📦 Notas de lanzamiento

🔥 Novedades principales

🔄 Actualizador inteligente (joss update)

  • Nuevo comando joss update: permite actualizar automáticamente el runtime, el SDK y la extensión oficial de VS Code directamente desde la CLI de Joss.
  • Canales de actualización (--canary / --stable): permite alternar fácilmente entre versiones experimentales de prueba y versiones estables.
  • Actualización forzada (-f / --force): fuerza la descarga y reinstalación completa de la versión más reciente disponible.
  • Detección en segundo plano: la CLI ahora comprueba automáticamente si existe una actualización y muestra una notificación en la consola cuando hay una nueva versión disponible.

🛡️ Eliminación definitiva del código heredado

  • Sintaxis v2 completamente nativa: se eliminó el soporte para palabras reservadas obsoletas como use, import y @import.
  • Diagnósticos claros y descriptivos: cuando se utiliza sintaxis heredada, la CLI muestra un mensaje de error explicando la sintaxis correcta de Joss v2.
  • Integración con VS Code: la extensión oficial identifica y resalta en tiempo real el código heredado que ya no es compatible.

🌐 Servicio unificado de carga de entornos (pkg/core/env_loader.go)

  • Detección automática de múltiples formatos: Joss ahora reconoce y carga, de acuerdo con su prioridad, los siguientes archivos:

    • env.joss
    • .env
    • joss.env
    • .env.local
    • env.enc
    • .env.enc
    • env.json
    • .env.json
  • Soporte para entornos cifrados: los archivos env.enc y .env.enc pueden descifrarse mediante AES.

  • Puerto HTTP unificado: el puerto predeterminado ahora es 8000.

  • Resolución flexible de variables: el servidor puede obtener el puerto desde PORT, JOSS_PORT, APP_PORT o SERVER_PORT.

⚡ Nuevo flujo de publicación de releases estilo Requiem

  • Publicaciones en borrador: el flujo de GitHub Actions ahora permite publicar versiones como Draft o Pre-release.
  • Reemplazo automático con --clobber: al volver a publicar una misma versión, los archivos existentes se reemplazan automáticamente.
  • Distribución sin conflictos: los binarios, archivos .zip y paquetes .vsix pueden actualizarse sin generar errores por archivos duplicados.

⚡ Rendimiento, seguridad y limpieza

Esta versión fue preparada con el objetivo de alcanzar una compilación más limpia, moderna y estable, reduciendo las advertencias y mejorando la calidad general del código.

📚 Dependencias actualizadas

  • modernc.org/sqlitev1.56.0
  • golang.org/x/cryptov0.54.0
  • github.com/redis/go-redis/v9v9.22.0
  • github.com/jackc/pgx/v5v5.10.0
  • github.com/ebitengine/puregov0.10.2
  • Auditoría NPM de la extensión de VS Code: 0 vulnerabilidades detectadas.

🧹 Modernización de APIs en Go

  • Se eliminó el uso de la biblioteca obsoleta io/ioutil.

  • Se migró a APIs estándar modernas como:

    • os.ReadFile
    • os.WriteFile
    • os.MkdirTemp
    • os.ReadDir

🔍 Refactorización y calidad del código

  • Se resolvieron 26 advertencias relacionadas con linters y complejidad cognitiva.
  • Se incorporó validación estricta de rows.Err() en consultas SQL.
  • Se simplificaron diferentes estructuras de control mediante tagged switches.
  • Se mejoró la compatibilidad con herramientas como SonarLint y StaticCheck.
  • Se alcanzó una compilación con 0 warnings en los componentes revisados.

🎨 Extensión oficial de VS Code (vscode-joss)

  • Diagnósticos en tiempo real para detectar sintaxis heredada o no compatible.
  • Resaltado visual de palabras reservadas eliminadas.
  • Mensajes descriptivos con recomendaciones para migrar a la sintaxis de Joss v2.
  • Nuevo indicador al inspeccionar funciones proporcionadas por plugins:
📦 Plugin originario: <nombre> (vX.X.X)

Este indicador permite conocer fácilmente qué plugin proporciona cada función y qué versión se encuentra instalada.


Gracias a toda la comunidad por continuar utilizando, probando y mejorando Joss Language.

Actualicen a Joss Language v3.6.5, exploren las nuevas funcionalidades y sigamos construyendo juntos una experiencia de desarrollo más rápida, segura y moderna.

Sigamos programando. 🚀


🇺🇸 English

Hello, everyone!

We are pleased to announce the official release of Joss Language v3.6.5, an update that introduces major improvements to the language's development experience, performance, security, and distribution system.

This release introduces a new intelligent updater, permanently removes legacy components, unifies environment-variable loading, and modernizes the release publication workflow.

We invite you to update Joss Language, explore everything included in this version, and discover the new tools now available.

📦 Release notes

🔥 Main highlights

🔄 Intelligent updater (joss update)

  • New joss update command: automatically updates the runtime, SDK, and official VS Code extension directly from the Joss CLI.
  • Update channels (--canary / --stable): easily switch between experimental pre-release builds and stable versions.
  • Forced update mode (-f / --force): forces a complete download and reinstallation of the latest available release.
  • Background update detection: the CLI now automatically checks for updates and displays a console notification whenever a newer version is available.

🛡️ Complete removal of legacy code

  • Fully native v2 syntax: support for deprecated reserved words such as use, import, and @import has been removed.
  • Clear and descriptive diagnostics: when legacy syntax is detected, the CLI displays an error explaining the correct Joss v2 syntax.
  • VS Code integration: the official extension detects and highlights unsupported legacy code in real time.

🌐 Unified environment-loading service (pkg/core/env_loader.go)

  • Automatic multi-format detection: Joss now recognizes and loads the following files according to their priority:

    • env.joss
    • .env
    • joss.env
    • .env.local
    • env.enc
    • .env.enc
    • env.json
    • .env.json
  • Encrypted environment support: env.enc and .env.enc files can be decrypted using AES.

  • Unified HTTP port: the default HTTP port is now 8000.

  • Flexible variable resolution: the server can resolve its port from PORT, JOSS_PORT, APP_PORT, or SERVER_PORT.

⚡ Requiem-style release workflow

  • Draft releases: the GitHub Actions workflow can now publish versions as Draft or Pre-release.
  • Automatic replacement with --clobber: republishing the same version automatically replaces existing assets.
  • Conflict-free distribution: binaries, .zip files, and .vsix packages can be updated without duplicate-file errors.

⚡ Performance, security, and cleanup

This release was prepared with the goal of providing a cleaner, more modern, and more stable codebase while reducing warnings and improving overall code quality.

📚 Updated dependencies

  • modernc.org/sqlitev1.56.0
  • golang.org/x/cryptov0.54.0
  • github.com/redis/go-redis/v9v9.22.0
  • github.com/jackc/pgx/v5v5.10.0
  • github.com/ebitengine/puregov0.10.2
  • VS Code extension NPM audit: 0 vulnerabilities detected.

🧹 Go API modernization

  • The deprecated io/ioutil library has been completely removed.

  • The codebase now uses modern standard APIs, including:

    • os.ReadFile
    • os.WriteFile
    • os.MkdirTemp
    • os.ReadDir

🔍 Refactoring and code quality

  • 26 warnings related to linters and cognitive complexity were resolved.
  • Strict rows.Err() validation was added to SQL queries.
  • Several control structures were simplified using tagged switches.
  • Compatibility with tools such as SonarLint and StaticCheck was improved.
  • The reviewed components now compile with 0 warnings.

🎨 Official VS Code extension (vscode-joss)

  • Real-time diagnostics for deprecated or unsupported syntax.
  • Visual highlighting of removed reserved words.
  • Descriptive messages with recommendations for migrating to Joss v2 syntax.
  • A new indicator is displayed when inspecting functions provided by plugins:
📦 Plugin origin: <name> (vX.X.X)

This indicator makes it easier to identify which plugin provides a function and which version is currently installed.


Thank you to everyone in the community who continues to use, test, and improve Joss Language.

Update to Joss Language v3.6.5, explore the new features, and join us as we continue building a faster, safer, and more modern development experience.

Let’s keep coding. 🚀


🇧🇷 Português

Olá a todos!

Temos o prazer de anunciar o lançamento oficial do Joss Language v3.6.5, uma atualização que traz melhorias importantes para a experiência de desenvolvimento, o desempenho, a segurança e a distribuição da linguagem.

Esta versão apresenta um novo sistema inteligente de atualizações, remove definitivamente componentes legados, unifica o carregamento de variáveis de ...

Read more

Joss V3.6.4

Choose a tag to compare

@github-actions github-actions released this 02 Aug 09:04

🇪🇸 Español

🚀 ¡Nueva versión de Joss Language!

Hola a todos:

Nos emociona anunciar el lanzamiento de una nueva versión de Joss Language, que incorpora importantes mejoras para ofrecer una experiencia de desarrollo más estable, flexible y eficiente.

Entre los principales cambios se encuentran:

  • Se corrigió un problema en el sistema de Joss Pub.
  • Las versiones de los paquetes ahora se obtienen dinámicamente desde su fuente correspondiente.
  • Se mejoró el sistema de distribución y enrutamiento HTTP.
  • Se añadió soporte para el método any en el router, permitiendo registrar una misma ruta para diferentes métodos HTTP.
  • Se implementaron distintas correcciones y optimizaciones internas.

Los invitamos a consultar la documentación oficial para conocer todos los cambios, mejoras y nuevas funcionalidades incluidas en esta versión.

Sin más que decir, ¡sigamos programando! 💻✨


🇺🇸 English

🚀 A New Version of Joss Language Is Here!

Hello everyone!

We are excited to announce the release of a new version of Joss Language, featuring important improvements designed to provide a more stable, flexible, and efficient development experience.

Some of the main changes include:

  • An issue affecting the Joss Pub system has been fixed.
  • Package versions are now retrieved dynamically from their corresponding sources.
  • The HTTP distribution and routing system has been improved.
  • Support for the any method has been added to the router, allowing a single route to handle multiple HTTP methods.
  • Several internal fixes and optimizations have been implemented.

We invite you to read the official documentation to discover all the changes, improvements, and new features included in this release.

Without further ado, let’s keep coding! 💻✨


🇧🇷 Português

🚀 Uma nova versão do Joss Language chegou!

Olá a todos!

Temos o prazer de anunciar o lançamento de uma nova versão do Joss Language, que traz melhorias importantes para oferecer uma experiência de desenvolvimento mais estável, flexível e eficiente.

Entre as principais mudanças, destacam-se:

  • Foi corrigido um problema no sistema Joss Pub.
  • As versões dos pacotes agora são obtidas dinamicamente a partir de suas respectivas fontes.
  • O sistema de distribuição e roteamento HTTP foi aprimorado.
  • Foi adicionado suporte ao método any no roteador, permitindo que uma única rota responda a diferentes métodos HTTP.
  • Também foram implementadas diversas correções e otimizações internas.

Convidamos todos a consultar a documentação oficial para conhecer todas as mudanças, melhorias e novas funcionalidades incluídas nesta versão.

Sem mais, vamos continuar programando! 💻✨

Full Changelog: V3.6.3...V3.6.4

Joss V3.6.3

Choose a tag to compare

@github-actions github-actions released this 29 Jul 04:41

Joss Language v3.6.3 — Release Notes


🇪🇸 Español

🚀 Joss Language v3.6.3 ya está disponible

¡Hola a todos!

Hoy presentamos oficialmente Joss Language v3.6.3, una actualización centrada en pequeños pero importantes cambios internos que hacen al lenguaje más estable, seguro y confiable.

En esta versión reforzamos especialmente el funcionamiento de WebSockets, la administración de canales y el ciclo de vida de sus callbacks. Además, incluimos las mejoras de autenticación y seguridad introducidas en la versión 3.6.2, con correcciones importantes para la verificación de cuentas, el restablecimiento de contraseñas y los desafíos de autenticación en dos pasos.

Gracias por seguir construyendo con Joss. Sigamos programando, mejorando y creando juntos.

[3.6.3] - 2026-07-28

Correcciones

  • Los callbacks onMessage de WebSocket ahora conservan correctamente $ws, los parámetros de la ruta y las variables locales, incluso después de que finaliza la ejecución del handler principal.
  • Los callbacks capturados dentro del mismo ámbito ahora comparten su estado entre mensajes y durante onClose.
  • Las invocaciones de callbacks se procesan de forma serializada por conexión, evitando conflictos y condiciones de carrera.
  • Los WebSockets ahora incluyen soporte para onClose.
  • Se añadieron suscripciones y publicaciones en canales locales.
  • Las suscripciones se eliminan automáticamente cuando se cierra una conexión.
  • Se incorporó el reporte de errores de escritura.
  • Se añadieron límites configurables para los mensajes.
  • Se implementó el mantenimiento de conexiones mediante ping/pong.
  • Los errores críticos o panic dentro de un callback ahora se aíslan de forma segura para evitar que afecten al resto del servidor.

[3.6.2] - 2026-07-28

Correcciones

  • Los reenvíos de correos de verificación ahora reutilizan el token vigente mientras no haya expirado, evitando invalidar enlaces que ya fueron enviados al usuario.
  • Los errores de inicio de sesión ahora distinguen entre una cuenta no verificada y una contraseña incorrecta, sin depender de la generación de nuevos tokens.
  • El restablecimiento de contraseñas ahora es atómico.
  • Se rechazan contraseñas débiles, credenciales expiradas y tokens que ya hayan sido utilizados.
  • Cada token de restablecimiento puede utilizarse una sola vez.
  • La cuenta se verifica automáticamente después de que el usuario demuestra tener acceso al correo electrónico asociado.
  • Los correos de autenticación y las fechas de expiración ahora se normalizan de forma consistente en SQLite, MySQL y PostgreSQL.

Seguridad

  • Las cuentas verificadas ya no generan un token de verificación falso que pueda evaluarse como verdadero.
  • La inicialización de la tabla de restablecimiento de contraseñas solo se almacena en caché después de haberse creado correctamente.
  • Los desafíos de autenticación 2FA para API y web ahora expiran después de cinco minutos.
  • Un desafío 2FA pendiente ya no puede utilizarse para acceder directamente a rutas protegidas.
  • Cada desafío 2FA solo puede intercambiarse una vez por un token de acceso.

🇺🇸 English

🚀 Joss Language v3.6.3 is now available

Hello, everyone!

Today, we are officially releasing Joss Language v3.6.3, an update focused on small but important internal changes that make the language more stable, secure, and reliable.

This release significantly improves WebSocket behavior, channel management, and callback lifecycle handling. It also includes the authentication and security improvements introduced in v3.6.2, with important fixes for account verification, password recovery, and two-factor authentication challenges.

Thank you for continuing to build with Joss. Let’s keep programming, improving, and creating together.

[3.6.3] - 2026-07-28

Fixed

  • WebSocket onMessage callbacks now correctly retain $ws, route parameters, and local variables after the main handler has returned.
  • Captured callbacks created within the same scope now share state across messages and during onClose.
  • Callback invocations are serialized per connection to prevent conflicts and race conditions.
  • WebSockets now support onClose.
  • Local channel subscriptions and publications have been added.
  • Subscriptions are automatically cleaned up when a connection closes.
  • Write-error reporting has been added.
  • Configurable message limits are now supported.
  • ping/pong keepalive handling has been implemented.
  • Callback panics are safely isolated so they do not affect the rest of the server.

[3.6.2] - 2026-07-28

Fixed

  • Verification email resends now reuse an existing unexpired token, preventing previously delivered links from being invalidated.
  • Login failures now distinguish between an unverified account and an incorrect password without relying on new token generation.
  • Password resets are now atomic.
  • Weak passwords, expired credentials, and previously consumed tokens are rejected.
  • Each password reset token can only be used once.
  • The account is automatically verified after the user proves access to the associated email address.
  • Authentication emails and expiration timestamps are now normalized consistently across SQLite, MySQL, and PostgreSQL.

Security

  • Verified accounts no longer generate a fake verification token that evaluates as truthy.
  • Password reset table initialization is only cached after the table has been created successfully.
  • API and web 2FA challenges now expire after five minutes.
  • Pending 2FA challenges can no longer authorize access to protected routes.
  • Each 2FA challenge can only be exchanged once for an access token.

🇧🇷 Português

🚀 Joss Language v3.6.3 já está disponível

Olá a todos!

Hoje estamos lançando oficialmente o Joss Language v3.6.3, uma atualização focada em pequenas, porém importantes, mudanças internas que tornam a linguagem mais estável, segura e confiável.

Nesta versão, aprimoramos especialmente o funcionamento dos WebSockets, o gerenciamento de canais e o ciclo de vida dos callbacks. Também incluímos as melhorias de autenticação e segurança introduzidas na versão 3.6.2, com correções importantes para verificação de contas, redefinição de senhas e desafios de autenticação em dois fatores.

Obrigado por continuarem construindo com Joss. Vamos continuar programando, melhorando e criando juntos.

[3.6.3] - 2026-07-28

Correções

  • Os callbacks onMessage de WebSocket agora preservam corretamente $ws, os parâmetros da rota e as variáveis locais, mesmo após o término da execução do handler principal.
  • Os callbacks capturados dentro do mesmo escopo agora compartilham seu estado entre mensagens e durante o onClose.
  • As invocações dos callbacks são processadas de forma serializada por conexão, evitando conflitos e condições de corrida.
  • Os WebSockets agora oferecem suporte a onClose.
  • Foram adicionadas inscrições e publicações em canais locais.
  • As inscrições são removidas automaticamente quando uma conexão é encerrada.
  • Foi adicionado o relatório de erros de escrita.
  • Agora há suporte a limites configuráveis de mensagens.
  • Foi implementado o mecanismo de manutenção de conexão por ping/pong.
  • Erros críticos ou panic dentro de callbacks agora são isolados com segurança para não afetarem o restante do servidor.

[3.6.2] - 2026-07-28

Correções

  • O reenvio de e-mails de verificação agora reutiliza um token válido enquanto ele não estiver expirado, evitando invalidar links que já foram enviados ao usuário.
  • As falhas de login agora diferenciam uma conta não verificada de uma senha incorreta, sem depender da geração de novos tokens.
  • A redefinição de senha agora é atômica.
  • Senhas fracas, credenciais expiradas e tokens já utilizados são rejeitados.
  • Cada token de redefinição de senha pode ser utilizado apenas uma vez.
  • A conta é verificada automaticamente depois que o usuário comprova acesso ao endereço de e-mail associado.
  • Os e-mails de autenticação e os horários de expiração agora são normalizados de forma consistente no SQLite, MySQL e PostgreSQL.

Segurança

  • Contas verificadas não geram mais um token de verificação falso que possa ser interpretado como verdadeiro.
  • A inicialização da tabela de redefinição de senhas só é armazenada em cache depois que sua criação for concluída com sucesso.
  • Os desafios 2FA para API e web agora expiram após cinco minutos.
  • Um desafio 2FA pendente não pode mais autorizar o acesso direto a rotas protegidas.
  • Cada desafio 2FA pode ser trocado apenas uma vez por um token de acesso.

Full Changelog: V3.6.2...V3.6.3

Joss V3.6.1

Choose a tag to compare

@github-actions github-actions released this 16 Jul 06:39

🇺🇸 English

Joss 3.6.1

Hello everyone!

We are excited to announce the release of Joss 3.6.1, the latest version of our programming language.

This update focuses on improving the overall development experience and includes several important enhancements:

  • 📚 Improved and expanded documentation.
  • ⚡ Performance and language optimizations.
  • 🔌 Introduction of a new Plugin Development SDK, making it easier to build and integrate plugins into the system.

Although this version is published as a Release, it is still considered an early production-ready release. Your feedback, suggestions, and bug reports will help us continue improving Joss.

We invite you to download this version, explore the documentation, and try out the new features. We look forward to hearing your feedback!

Thank you for being part of the Joss community.


🇪🇸 Español

Joss 3.6.1

¡Hola a todos!

Nos complace anunciar el lanzamiento de Joss 3.6.1, la nueva versión de nuestro lenguaje de programación.

En esta actualización hemos trabajado en mejorar la experiencia de desarrollo, incorporando importantes cambios como:

  • 📚 Documentación renovada y ampliada.
  • ⚡ Optimizaciones en el rendimiento y funcionamiento del lenguaje.
  • 🔌 Incorporación del nuevo SDK para el desarrollo de plugins, permitiendo extender e integrar nuevas funcionalidades dentro del sistema.

Aunque esta versión se publica como un Release, aún se considera una versión de prueba, por lo que sus comentarios y reportes serán fundamentales para seguir mejorando el proyecto.

Los invitamos a descargar esta versión, revisar la documentación y explorar todas las novedades. ¡Esperamos conocer sus opiniones y sugerencias!

Gracias por ser parte de la comunidad de Joss.


🇧🇷 Português

Joss 3.6.1

Olá, pessoal!

Temos o prazer de anunciar o lançamento do Joss 3.6.1, a mais nova versão da nossa linguagem de programação.

Nesta atualização, trabalhamos para melhorar a experiência de desenvolvimento, trazendo diversas novidades:

  • 📚 Documentação revisada e ampliada.
  • ⚡ Otimizações de desempenho e melhorias na linguagem.
  • 🔌 Novo SDK para desenvolvimento de plugins, permitindo criar e integrar novas funcionalidades ao sistema.

Embora esta versão seja publicada como um Release, ela ainda é considerada uma versão de validação em ambiente de produção. O feedback da comunidade será essencial para continuarmos evoluindo o projeto.

Convidamos você a baixar esta versão, explorar a documentação e testar os novos recursos. Ficaremos felizes em receber seus comentários, sugestões e relatos de problemas.

Obrigado por fazer parte da comunidade Joss.

Joss V3.6.0

Choose a tag to compare

@github-actions github-actions released this 15 Jul 06:41

🇺🇸 English

Joss 3.6.0

Hello everyone!

We are excited to announce the release of Joss 3.6.0, the latest version of our programming language.

This update focuses on improving the overall development experience and includes several important enhancements:

  • 📚 Improved and expanded documentation.
  • ⚡ Performance and language optimizations.
  • 🔌 Introduction of a new Plugin Development SDK, making it easier to build and integrate plugins into the system.

Although this version is published as a Release, it is still considered an early production-ready release. Your feedback, suggestions, and bug reports will help us continue improving Joss.

We invite you to download this version, explore the documentation, and try out the new features. We look forward to hearing your feedback!

Thank you for being part of the Joss community.


🇪🇸 Español

Joss 3.6.0

¡Hola a todos!

Nos complace anunciar el lanzamiento de Joss 3.6.0, la nueva versión de nuestro lenguaje de programación.

En esta actualización hemos trabajado en mejorar la experiencia de desarrollo, incorporando importantes cambios como:

  • 📚 Documentación renovada y ampliada.
  • ⚡ Optimizaciones en el rendimiento y funcionamiento del lenguaje.
  • 🔌 Incorporación del nuevo SDK para el desarrollo de plugins, permitiendo extender e integrar nuevas funcionalidades dentro del sistema.

Aunque esta versión se publica como un Release, aún se considera una versión de prueba, por lo que sus comentarios y reportes serán fundamentales para seguir mejorando el proyecto.

Los invitamos a descargar esta versión, revisar la documentación y explorar todas las novedades. ¡Esperamos conocer sus opiniones y sugerencias!

Gracias por ser parte de la comunidad de Joss.


🇧🇷 Português

Joss 3.6.0

Olá, pessoal!

Temos o prazer de anunciar o lançamento do Joss 3.6.0, a mais nova versão da nossa linguagem de programação.

Nesta atualização, trabalhamos para melhorar a experiência de desenvolvimento, trazendo diversas novidades:

  • 📚 Documentação revisada e ampliada.
  • ⚡ Otimizações de desempenho e melhorias na linguagem.
  • 🔌 Novo SDK para desenvolvimento de plugins, permitindo criar e integrar novas funcionalidades ao sistema.

Embora esta versão seja publicada como um Release, ela ainda é considerada uma versão de validação em ambiente de produção. O feedback da comunidade será essencial para continuarmos evoluindo o projeto.

Convidamos você a baixar esta versão, explorar a documentação e testar os novos recursos. Ficaremos felizes em receber seus comentários, sugestões e relatos de problemas.

Obrigado por fazer parte da comunidade Joss.

Joss Version see you JosSecurity

Choose a tag to compare

@josprox josprox released this 05 Jul 21:41

🇺🇸 🚀 Joss v3.4.1 — Native security, real-time notifications, and a smoother backend experience

We are excited to officially announce the release of Joss v3.4.1, a key milestone in the evolution of the language formerly known as JosSecurity.

With this update, Joss consolidates its new identity with a cleaner, simpler, and more memorable name while preserving its main goal: delivering a secure, modern, and productive backend development experience.

This version introduces major improvements focused on security, authentication, native notifications, environment automation, and a more comfortable developer workflow.


💎 Highlights

🛡️ 1. Native 2FA/MFA authentication

Security is now part of the Joss core.

This version introduces native support for TOTP-based 2FA/MFA (Time-Based One-Time Password), compatible with apps such as Google Authenticator, Authy, Microsoft Authenticator, and similar solutions.

You can now implement stronger authentication in a clear, fluent, and fully integrated way.

Auth::login($email, $password)
    ->require2FA()
    ->onSuccess(function($jwt) {
        // Login completed
    })
    ->onChallenge(function($tempToken) {
        // 2FA verification required
    })
    ->onFail(function($err) {
        // Authentication failed
    })
    ->response();

This release also includes:

Auth::complete2FA($userId)

This method securely completes the authentication flow by upgrading a temporary challenge token into a final JWT token, including the user’s real roles from the database after the TOTP code has been verified.


✉️ 2. New native real-time notification module: Notify

Joss v3.4.1 introduces Notify, a native notification engine designed to reduce dependency on third-party services such as OneSignal or Firebase in projects that can manage their own infrastructure.

The new system allows real-time notification delivery through WebSockets using the /ws endpoint.

It also includes offline delivery support. If a device is disconnected, the notification is stored as pending in the database and automatically delivered the next time the user signs in.

Example:

Notify::to($userId)
      ->title("System Update")
      ->message("Joss v3.4.1 is now available!")
      ->inApp()
      ->send();

With this fluent API, sending in-app messages becomes simpler, more semantic, and more natural within the Joss ecosystem.


🔐 3. Cryptographic key autogeneration in env.joss

Joss now protects your application from the very first startup.

When the runtime starts, it automatically validates the following critical variables:

APP_KEY
JWT_SECRET

If any of these variables are missing, empty, or contain an insecure value shorter than 32 characters, Joss automatically generates new secure keys using crypto/rand.

After generating them, the runtime physically updates the env.joss file, helping avoid weak configurations and reducing common setup or deployment errors.


⏹️ 4. Interactive console control with q

The terminal experience has also been improved.

Interactive commands can now be stopped easily by typing:

q

and pressing Enter.

This applies to commands such as:

joss run
joss server start
joss program start

With this improvement, stopping running processes is faster, easier, and more controlled.


🔧 Internal improvements and technical updates

New static Session class

A cleaner abstraction has been added to manage HTTP sessions directly from Joss.

You can now work with sessions using:

Session::get()
Session::put()
Session::forget()

This class is designed to work either in memory or with Redis, depending on the project configuration.


More flexible CORS with CORS_WEB

A new environment variable has been introduced:

CORS_WEB

This allows more flexible CORS policy configuration, including wildcard values such as * or comma-separated allowlists.

This makes it easier to integrate Joss APIs with web apps, mobile apps, or external clients.


Automatic migration of internal tables

The runtime can now automatically ensure and create the internal tables required by the new security and notification systems.

Included tables:

js_user_mfa_methods
js_user_recovery_codes
js_security_logs
js_push_devices
js_notifications

These tables include compatibility with SQLite, MySQL, and MariaDB through GranDB.


Audit fields for recovery codes

The recovery codes table now includes the following columns:

created_at
updated_at

Automatic alteration processes have also been added for existing databases, allowing older projects to be updated without complex manual intervention.


📝 Quick update guide

To update to Joss v3.4.1, we recommend the following steps:

  1. Replace your current executable with the new joss.exe version or run the corresponding installation script on your server.

  2. Review your env.joss file. If you want Joss to regenerate secure keys automatically, you can clear the current values of:

    APP_KEY
    JWT_SECRET
  3. Configure the CORS_WEB variable if your application exposes APIs to web clients, mobile clients, or external services.

  4. Run your project and let the runtime automatically validate and prepare the new required internal tables.


⭐ Thank you for being part of Joss

Joss v3.4.1 represents an important step toward a more secure, expressive, and productive backend experience.

Thank you for following the evolution of the project, testing new features, and sharing ideas to keep improving it.

If this release is useful to you, help us by sharing it with the community and giving the official repository a star.

Joss keeps growing. And this is just the beginning.


🇪🇸 🚀 Joss v3.4.1 — Seguridad nativa, notificaciones en tiempo real y una experiencia backend más fluida

Nos emociona anunciar oficialmente el lanzamiento de Joss v3.4.1, una versión clave en la evolución del lenguaje anteriormente conocido como JosSecurity.

Con esta actualización, Joss consolida su nueva identidad con un nombre más simple, memorable y directo, manteniendo el mismo propósito: ofrecer una experiencia de desarrollo backend segura, moderna y productiva.

Esta versión introduce mejoras importantes enfocadas en seguridad, autenticación, notificaciones nativas, automatización del entorno y una experiencia más cómoda para desarrolladores.


💎 Novedades destacadas

🛡️ 1. Autenticación 2FA/MFA nativa

La seguridad ahora forma parte del núcleo de Joss.

En esta versión se incorpora soporte nativo para 2FA/MFA basado en TOTP (Time-Based One-Time Password), compatible con aplicaciones como Google Authenticator, Authy, Microsoft Authenticator y soluciones similares.

Ahora es posible implementar autenticación reforzada de forma clara, fluida y totalmente integrada al lenguaje.

Auth::login($email, $password)
    ->require2FA()
    ->onSuccess(function($jwt) {
        // Inicio de sesión completado
    })
    ->onChallenge(function($tempToken) {
        // Requiere verificación 2FA
    })
    ->onFail(function($err) {
        // Error de autenticación
    })
    ->response();

También se incluye el método:

Auth::complete2FA($userId)

Este permite finalizar de forma segura el proceso de autenticación, elevando un token temporal de desafío a un token JWT definitivo, ya con los roles reales del usuario obtenidos desde la base de datos después de verificar el código TOTP.


✉️ 2. Nuevo módulo de notificaciones nativas en tiempo real: Notify

Joss v3.4.1 presenta Notify, un motor nativo de notificaciones diseñado para reducir la dependencia de servicios externos como OneSignal o Firebase en escenarios donde el proyecto puede gestionar su propia infraestructura.

El nuevo sistema permite enviar notificaciones en tiempo real mediante WebSockets a través de la ruta /ws.

Además, incluye soporte para entrega offline. Si un dispositivo no está conectado, la notificación se almacena como pending en la base de datos y se entrega automáticamente cuando el usuario vuelve a iniciar sesión.

Ejemplo de uso:

Notify::to($userId)
      ->title("Actualización de sistema")
      ->message("¡Joss v3.4.1 está disponible!")
      ->inApp()
      ->send();

Con esta API fluida, enviar mensajes dentro de la aplicación se vuelve más simple, semántico y natural dentro del ecosistema Joss.


🔐 3. Autogeneración criptográfica de claves en env.joss

Joss ahora protege tu aplicación desde el primer arranque.

Al iniciar el runtime, el sistema valida automáticamente las variables críticas:

APP_KEY
JWT_SECRET

Si alguna de estas variables está ausente, vacía o contiene un valor inseguro de menos de 32 caracteres, Joss genera automáticamente nuevas claves seguras utilizando crypto/rand.

Después de generarlas, el runtime actualiza físicamente el archivo env.joss, evitando configuraciones débiles y reduciendo errores comunes durante la instalación o despliegue del proyecto.


⏹️ 4. Control interactivo de consola con q

La experiencia en terminal también mejora.

Los comandos interactivos ahora pueden detenerse de forma sencilla escribiendo:

q

y presionando Enter.

Esto aplica para comandos como:

joss run
joss server start
joss program start

Con esta mejora, detener procesos en ejecución es más cómodo, rápido y controlado.


🔧 Mejoras internas y ajustes técnicos

Nueva clase estática `Sessi...

Read more

JosSecurity 3.4.0 (matchversion)

Choose a tag to compare

@josprox josprox released this 02 Jun 05:51

english

🚀 JosSecurity Language v3.4.0

Stability Improvements, Match Expressions, Compiler Enhancements & Installation System Overhaul

Welcome to one of the biggest updates in JosSecurity Language history. This release introduces major improvements to runtime stability, language capabilities, compiler intelligence, view rendering, and installation management.


✨ Highlights

🎯 New Match Expression

JosSecurity now includes native support for PHP 8-style match expressions.

Benefits

  • Strict type comparison.
  • Returns values directly.
  • No break statements required.
  • Multiple values per branch.
  • Cleaner and more readable code.

Example

$status = match ($code) {
    200, 201, 202 => "Success",
    404 => "Not Found",
    default => "Unknown"
}

Supported Features

  • Strict comparison.
  • Multiple keys.
  • Dynamic expressions.
  • Function calls as keys.
  • Nested match expressions.
  • Deep array comparison.
  • Deep map comparison.
  • Default branches.
  • Nil return when no match exists.

🔒 Critical Migration Fix

Fixed an issue affecting:

joss migrate

and

joss migrate:fresh

Database connections are now initialized correctly through rt.GetDB(), ensuring full compatibility with the lazy connection system.


🛡️ Smart Syntax Validation

The compiler now detects legacy method syntax automatically.

Old syntax:

$table.id()

Correct syntax:

$table->id()

A descriptive compiler error is now generated before runtime execution.


⚡ New View Compiler

The entire view engine has been redesigned.

.joss.html templates are now compiled into native JOSS code before execution.

Benefits

  • Faster rendering.
  • Lower memory usage.
  • Better error reporting.
  • Support for complex structures.
  • Improved loop and expression handling.

🧩 New Built-in Helpers

Added new built-in helpers:

  • html_escape()
  • __()
  • csrf_field()

🚨 Safe Error Recovery

Global error recovery has been implemented across the CLI.

Instead of exposing Go stack traces, errors are now displayed in a clean and structured format.


📦 Improved Installation & Update System

Fixed an issue causing false update notifications.

Improvements

  • Dynamic version detection.
  • Accurate version comparison.
  • Better Windows support.
  • Better Linux support.
  • Better macOS support.
  • Elimination of false-positive updates.

📚 Documentation Updates

Updated:

  • docs/README.md
  • docs/SYNTAX.md
  • docs/VIEWS.md

Including complete documentation for Match Expressions, View Compiler updates, and new syntax rules.


🧪 Expanded Test Suite

Added tests covering:

  • Basic Match.
  • Multiple Keys.
  • Strict Comparison.
  • Default Fallback.
  • Nested Match.
  • Complex Arrays.
  • Complex Maps.

All tests completed successfully.


🎉 Result

✅ Improved stability

✅ Fewer runtime errors

✅ New Match Expression

✅ Better developer experience

✅ Faster view engine

✅ Smarter updates

✅ More robust CLI

✅ Updated documentation

Thank you for being part of the JosSecurity ecosystem 🚀


Español

🚀 JosSecurity Language v3.4.0

Mejoras de Estabilidad, Expresión Match, Compilador y Sistema de Instalación

Bienvenidos a una de las actualizaciones más importantes de JosSecurity Language. Esta versión introduce mejoras profundas en la estabilidad del runtime, nuevas capacidades del lenguaje, un compilador más inteligente, un sistema de vistas renovado y una modernización completa del sistema de instalación y actualización.


✨ Novedades Principales

🎯 Nueva Expresión Match

JosSecurity ahora incorpora soporte nativo para la expresión match, inspirada en PHP 8.

Ventajas

  • Comparación estricta de tipos.
  • Retorna valores directamente.
  • No requiere break.
  • Permite múltiples condiciones por rama.
  • Código más limpio y legible.

Ejemplo

$status = match ($code) {
    200, 201, 202 => "Success",
    404 => "Not Found",
    default => "Unknown"
}

Características Soportadas

  • Comparación estricta.
  • Múltiples claves.
  • Expresiones dinámicas.
  • Funciones como claves.
  • Match anidados.
  • Comparación profunda de arrays.
  • Comparación profunda de mapas.
  • Soporte para default.
  • Retorno de nil cuando no existe coincidencia.

🔒 Corrección Crítica en Migraciones

Se solucionó un problema que impedía que los comandos:

joss migrate

y

joss migrate:fresh

establecieran correctamente la conexión con la base de datos.

El sistema ahora inicializa correctamente las conexiones utilizando rt.GetDB(), garantizando compatibilidad total con el sistema de conexión diferida (lazy connection).


🛡️ Validación Inteligente de Sintaxis

El compilador ahora detecta automáticamente errores comunes derivados del antiguo operador de acceso mediante punto.

Antes:

$table.id()

Ahora:

$table->id()

Si se detecta la sintaxis antigua, el compilador mostrará un error descriptivo antes de ejecutar el código.


⚡ Nuevo Compilador de Vistas

El motor de vistas fue completamente rediseñado.

Las plantillas .joss.html ahora son compiladas a código JOSS nativo antes de ejecutarse.

Beneficios

  • Mayor rendimiento.
  • Menor consumo de memoria.
  • Mejor detección de errores.
  • Soporte para estructuras complejas.
  • Compatibilidad mejorada con bucles y expresiones avanzadas.

🧩 Nuevos Helpers Integrados

Se añadieron nuevos helpers nativos:

  • html_escape()
  • __()
  • csrf_field()

🚨 Manejo Seguro de Errores

Se implementó recuperación global de errores en el CLI para evitar la aparición de stack traces de Go en producción.

Ahora los errores se muestran de forma clara y estructurada.


📦 Sistema de Instalación y Actualización Renovado

Se corrigió un problema que provocaba que el instalador detectara actualizaciones inexistentes.

Mejoras

  • Detección dinámica de versión instalada.
  • Comparación real de versiones.
  • Compatibilidad mejorada con Windows, Linux y macOS.
  • Eliminación de falsos positivos durante las actualizaciones.

📚 Documentación Actualizada

Actualizamos:

  • docs/README.md
  • docs/SINTAXIS.md
  • docs/VISTAS.md

Incluyendo toda la información relacionada con Match, el nuevo compilador de vistas y las nuevas reglas de sintaxis.


🧪 Nuevas Pruebas

Se añadieron pruebas para:

  • Match simple.
  • Match múltiple.
  • Comparación estricta.
  • Default.
  • Match anidados.
  • Arrays complejos.
  • Mapas complejos.

Todas las pruebas fueron ejecutadas exitosamente.


🎉 Resultado

✅ Mayor estabilidad

✅ Menos errores en runtime

✅ Nuevo Match Expression

✅ Mejor experiencia de desarrollo

✅ Sistema de vistas más potente

✅ Actualizaciones inteligentes

✅ CLI más robusto

✅ Documentación renovada

Gracias por seguir formando parte del ecosistema JosSecurity 🚀


Português

🚀 JosSecurity Language v3.4.0

Melhorias de Estabilidade, Expressão Match, Compilador e Sistema de Instalação

Bem-vindo a uma das maiores atualizações da história do JosSecurity Language. Esta versão traz melhorias significativas na estabilidade do runtime, novas funcionalidades da linguagem, um compilador mais inteligente e um sistema de instalação completamente renovado.


✨ Destaques

🎯 Nova Expressão Match

O JosSecurity agora possui suporte nativo para expressões match, inspirado no PHP 8.

Benefícios

  • Comparação estrita de tipos.
  • Retorno direto de valores.
  • Não requer break.
  • Múltiplos valores por condição.
  • Código mais limpo e legível.

Exemplo

$status = match ($code) {
    200, 201, 202 => "Success",
    404 => "Not Found",
    default => "Unknown"
}

Recursos Suportados

  • Comparação estrita.
  • Múltiplas chaves.
  • Expressões dinâmicas.
  • Funções como chaves.
  • Match aninhados.
  • Comparação profunda de arrays.
  • Comparação profunda de mapas.
  • Suporte para default.
  • Retorno de nil quando não houver correspondência.

🔒 Correção Crítica das Migrações

Corrigido um problema que afetava:

joss migrate

e

joss migrate:fresh

As conexões com banco de dados agora são inicializadas corretamente utilizando rt.GetDB().


🛡️ Validação Inteligente de Sintaxe

O compilador agora detecta automaticamente sintaxe antiga de métodos.

Sintaxe antiga:

$table.id()

Sintaxe correta:

$table->id()

Agora o erro é identificado durante a compilação.


⚡ Novo Compilador de Views

O sistema de templates foi completamente reescrito.

Arquivos .joss.html agora são compilados para código JOSS nativo antes da execução.

Benefícios

  • Maior desempenho.
  • Menor consumo de memória.
  • Melhor detecção de erros.
  • Suporte para estruturas complexas.
  • Melhor compatibilidade com loops e expressões avançadas.

🧩 Novos Helpers Nativos

Novos helpers adicionados:

  • html_escape()
  • __()
  • csrf_field()

🚨 Recuperação Segura de Erros

O CLI agora possui recuperação global de erros.

Mensagens de erro são exibidas de forma organizada sem expor stack traces internos do Go.


📦 Sistema de Instalação e Atualização Melhorado

Corrigido um problema que gerava notificações falsas de atualização.

Melhorias

  • Detecção dinâmica da versão instalada.
  • Comparação correta de versões.
  • Melhor suporte para Windows.
  • Melhor suporte para Linux.
  • Melhor suporte para macOS.
  • Eliminação de atualizações falsas.

📚 Documentaçã...

Read more

JosSecurity v3.1.5 (SisSeoVersion)

Choose a tag to compare

@josprox josprox released this 12 Apr 19:41

🇪🇸 Español

Release Notes: JosSecurity v3.1.5 (SisSeoVersion)

Esta versión introduce mejoras críticas en la optimización para buscadores (SEO), una arquitectura de sitemap dinámica y dependiente del contexto, así como una modernización visual de la interfaz de usuario.

🚀 Nuevas Características

  • Motor SEO Nativo: Se implementó la clase SEO (SEO::title, SEO::description, SEO::og) para gestionar metadatos dinámicos directamente desde los controladores JOSS.
  • Sitemaps Context-Aware: El archivo sitemap.xml ahora se genera de forma 100% dinámica, detectando automáticamente el protocolo (http/https) y el host de la petición, eliminando la necesidad de configurar URLs estáticas.
  • Filtrado Inteligente de Rutas: El motor de sitemap excluye automáticamente rutas de API y rutas protegidas por middleware, indexando únicamente contenido público.

🛠️ Correcciones y Estabilidad

  • Sintaxis Estricta de Vistas: Se eliminaron las directivas ilegales @if/@else de las plantillas, migrando la lógica condicional al sistema de Block Ternaries de JosSecurity.
  • Protección de Integridad XML: Se parcheó el servidor para evitar la inyección del script "Hot Reload" en respuestas XML, previniendo la corrupción del sitemap en entornos de desarrollo.
  • Estandarización de Controladores: Se actualizaron los controladores de Autenticación y Recuperación de Contraseña para usar el nuevo sistema SEO nativo.

📦 Cambios Técnicos en el Core

  • native_seo.go: Refactorizado para aceptar baseUrl dinámica.
  • handler.go: Mejora en la detección de esquema y host mediante headers X-Forwarded-Proto.
  • version.go: Actualización de versión a 3.1.5 (SisSeoVersion).

🇺🇸 English

Release Notes: JosSecurity v3.1.5 (SisSeoVersion)

This version introduces critical improvements in search engine optimization (SEO), a dynamic and context-aware sitemap architecture, and a visual modernization of the user interface.

🚀 New Features

  • Native SEO Engine: The SEO class (SEO::title, SEO::description, SEO::og) was implemented to manage dynamic metadata directly from JOSS controllers.
  • Context-Aware Sitemaps: The sitemap.xml file is now generated 100% dynamically, automatically detecting the request protocol (http/https) and host, eliminating the need for static URL configuration.
  • Intelligent Route Filtering: The sitemap engine automatically excludes API routes and middleware-protected routes, indexing only public content.

🛠️ Fixes and Stability

  • Strict View Syntax: Illegal @if/@else directives were removed from templates, migrating conditional logic to the dedicated Block Ternaries system in JosSecurity.
  • XML Integrity Protection: The server was patched to prevent injection of the "Hot Reload" script into XML responses, avoiding sitemap corruption in development environments.
  • Controller Standardization: Authentication and Password Recovery controllers were updated to use the new native SEO system.

📦 Core Technical Changes

  • native_seo.go: Refactored to support dynamic baseUrl.
  • handler.go: Improved scheme and host detection via X-Forwarded-Proto headers.
  • version.go: Version bump to 3.1.5 (SisSeoVersion).

🇧🇷 Português

Release Notes: JosSecurity v3.1.5 (SisSeoVersion)

Esta versão introduz melhorias críticas na otimização para mecanismos de busca (SEO), uma arquitetura de sitemap dinâmica e sensível ao contexto, além de uma modernização visual da interface do usuário.

🚀 Novas Funcionalidades

  • Motor SEO Nativo: Foi implementada a classe SEO (SEO::title, SEO::description, SEO::og) para gerenciar metadados dinâmicos diretamente dos controladores JOSS.
  • Sitemaps Context-Aware: O arquivo sitemap.xml agora é gerado de forma 100% dinâmica, detectando automaticamente o protocolo (http/https) e o host da requisição, eliminando a necessidade de URLs estáticas.
  • Filtragem Inteligente de Rotas: O motor de sitemap exclui automaticamente rotas de API e rotas protegidas por middleware, indexando apenas conteúdo público.

🛠️ Correções e Estabilidade

  • Sintaxe Estrita de Views: Diretivas ilegais @if/@else foram removidas dos templates, migrando toda a lógica condicional para o sistema dedicado de Block Ternaries do JosSecurity.
  • Proteção de Integridade XML: O servidor foi corrigido para evitar a injeção do script "Hot Reload" em respostas XML, prevenindo a corrupção do sitemap em ambientes de desenvolvimento.
  • Padronização de Controladores: Os controladores de Autenticação e Recuperação de Senha foram atualizados para utilizar o novo sistema SEO nativo.

📦 Mudanças Técnicas no Core

  • native_seo.go: Refatorado para aceitar baseUrl dinâmica.
  • handler.go: Melhoria na detecção de esquema e host através dos headers X-Forwarded-Proto.
  • version.go: Atualização da versão para 3.1.5 (SisSeoVersion).

JosSecurity V3.1.3 StarPhotoVersion

Choose a tag to compare

@josprox josprox released this 22 Feb 06:30

🇪🇸 Español

🚀 Release v3.1.3 – Expansión del Runtime, CLI y Ecosistema Core

Esta versión marca un salto importante en la evolución del lenguaje, enfocándose en accesibilidad, productividad del desarrollador y robustez del runtime. Se introducen nuevas capacidades clave como un CLI inicial, internacionalización, email nativo, mejoras en API, y refactors internos que preparan el camino para proyectos más grandes y mantenibles.


✨ Nuevas características destacadas

🧰 CLI inicial (Command Line Interface)

Se incorpora una mejora en el CLI oficial del lenguaje, incluyendo:

  • Integración inicial con Brevo
  • Flujo de trabajo más rápido para desarrollo y despliegue

Esto sienta las bases para una experiencia de desarrollo moderna y escalable.


🌍 Internacionalización (i18n)

  • Archivos de idioma en Español 🇪🇸 y Inglés 🇺🇸
  • Soporte integrado tanto en CLI como en funcionalidades internas
  • Preparado para expansión a más idiomas

📧 Cliente SMTP nativo

  • Implementación del SmtpClient para envío de correos (cambios)
  • Integración directa con el runtime
  • Pensado para notificaciones, autenticación y flujos backend reales

🧠 Registro de clases nativas

  • Nuevo sistema de registro de clases nativas
  • Habilita múltiples features internas del runtime
  • Base sólida para extensiones, módulos y capacidades avanzadas

🌐 Mejoras en APIs y accesibilidad

  • Se agregan headers CORS al MainHandler
  • Mejora significativa en la accesibilidad de APIs desde clientes externos (frontend, mobile, etc.)

🗄️ Base de datos

  • Mejor manejo de conexiones
  • Reportes de error más claros y detallados
  • Mayor estabilidad en escenarios de fallo

🛠️ Refactors y mejoras internas

  • Refactor del sistema de concatenación de strings:

    • Se adopta el operador punto (.) para mayor legibilidad y consistencia
  • Limpieza general del código base

  • Mejoras estructurales orientadas a mantenibilidad


📦 Funcionalidades previamente introducidas (y ya consolidadas)

  • Runtime core

  • Hot Reload

  • Templating básico

  • Versionado

  • Build commands para:

    • Web
    • Programas seguros
    • Empaquetado de assets
    • Encriptación
  • Documentación inicial:

    • CLI
    • Configuración
    • Módulos nativos
    • Native AI

🧭 Estado del proyecto

Este release consolida al lenguaje como una plataforma en crecimiento, con enfoque real en:

  • Desarrollo backend moderno
  • Seguridad
  • Productividad
  • Extensibilidad futura

Se vienen mejoras aún más profundas en tooling, optimización del runtime y ecosistema de módulos 🚀


🇺🇸 English

🚀 Release v3.1.3 – Runtime, CLI, and Core Ecosystem Expansion

This release marks a major step forward in the evolution of the language, focusing on accessibility, developer productivity, and runtime robustness. Key new capabilities are introduced, such as an initial CLI, internationalization, native email support, API improvements, and internal refactors that pave the way for larger and more maintainable projects.


✨ Key new features

🧰 Initial CLI (Command Line Interface)

Improvements have been added to the official language CLI, including:

  • Initial integration with Brevo
  • Faster workflow for development and deployment

This lays the foundation for a modern and scalable developer experience.


🌍 Internationalization (i18n)

  • Language files available in Spanish 🇪🇸 and English 🇺🇸
  • Integrated support across both the CLI and internal features
  • Ready for expansion into additional languages

📧 Native SMTP Client

  • Implementation of the SmtpClient for email delivery (updates)
  • Direct integration with the runtime
  • Designed for notifications, authentication, and real-world backend workflows

🧠 Native class registration

  • New native class registration system
  • Enables multiple internal runtime features
  • Solid foundation for extensions, modules, and advanced capabilities

🌐 API and accessibility improvements

  • CORS headers added to MainHandler
  • Significant improvement in API accessibility from external clients (frontend, mobile, etc.)

🗄️ Database

  • Improved connection handling
  • Clearer and more detailed error reporting
  • Increased stability in failure scenarios

🛠️ Refactors and internal improvements

  • Refactor of the string concatenation system:

    • Adoption of the dot operator (.) for better readability and consistency
  • General codebase cleanup

  • Structural improvements focused on maintainability


📦 Previously introduced (and now consolidated) features

  • Core runtime

  • Hot Reload

  • Basic templating

  • Versioning

  • Build commands for:

    • Web
    • Secure programs
    • Asset packaging
    • Encryption
  • Initial documentation:

    • CLI
    • Configuration
    • Native modules
    • Native AI

🧭 Project status

This release solidifies the language as a growing platform, with a strong focus on:

  • Modern backend development
  • Security
  • Productivity
  • Future extensibility

Even deeper improvements in tooling, runtime optimization, and the module ecosystem are coming 🚀


🇧🇷 Português

🚀 Release v3.1.3 – Expansão do Runtime, CLI e Ecossistema Core

Esta versão representa um grande avanço na evolução da linguagem, com foco em acessibilidade, produtividade do desenvolvedor e robustez do runtime. Novas capacidades importantes foram introduzidas, como um CLI inicial, internacionalização, envio de e-mails nativo, melhorias de API e refactors internos que preparam o caminho para projetos maiores e mais sustentáveis.


✨ Novos recursos em destaque

🧰 CLI inicial (Command Line Interface)

Foram adicionadas melhorias ao CLI oficial da linguagem, incluindo:

  • Integração inicial com Brevo
  • Fluxo de trabalho mais rápido para desenvolvimento e deploy

Isso estabelece a base para uma experiência de desenvolvimento moderna e escalável.


🌍 Internacionalização (i18n)

  • Arquivos de idioma em Espanhol 🇪🇸 e Inglês 🇺🇸
  • Suporte integrado tanto no CLI quanto nas funcionalidades internas
  • Preparado para expansão para mais idiomas

📧 Cliente SMTP nativo

  • Implementação do SmtpClient para envio de e-mails (alterações)
  • Integração direta com o runtime
  • Pensado para notificações, autenticação e fluxos backend reais

🧠 Registro de classes nativas

  • Novo sistema de registro de classes nativas
  • Habilita diversas funcionalidades internas do runtime
  • Base sólida para extensões, módulos e capacidades avançadas

🌐 Melhorias em APIs e acessibilidade

  • Adição de headers CORS ao MainHandler
  • Melhoria significativa na acessibilidade das APIs a partir de clientes externos (frontend, mobile, etc.)

🗄️ Banco de dados

  • Melhor gerenciamento de conexões
  • Relatórios de erro mais claros e detalhados
  • Maior estabilidade em cenários de falha

🛠️ Refactors e melhorias internas

  • Refatoração do sistema de concatenação de strings:

    • Adoção do operador ponto (.) para melhor legibilidade e consistência
  • Limpeza geral do código

  • Melhorias estruturais focadas em manutenibilidade


📦 Funcionalidades introduzidas anteriormente (já consolidadas)

  • Runtime core

  • Hot Reload

  • Templating básico

  • Versionamento

  • Build commands para:

    • Web
    • Programas seguros
    • Empacotamento de assets
    • Criptografia
  • Documentação inicial:

    • CLI
    • Configuração
    • Módulos nativos
    • Native AI

🧭 Estado do projeto

Este release consolida a linguagem como uma plataforma em crescimento, com foco real em:

  • Desenvolvimento backend moderno
  • Segurança
  • Produtividade
  • Extensibilidade futura

Melhorias ainda mais profundas em tooling, otimização do runtime e ecossistema de módulos estão a caminho 🚀