Skip to content

JosSecurity 3.4.0 (matchversion)

Choose a tag to compare

@josprox josprox released this 02 Jun 05:51
· 67 commits to main since this release

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ção Atualizada

Atualizamos:

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

Incluindo toda a documentação relacionada ao Match, ao novo compilador de views e às novas regras da linguagem.


🧪 Novos Testes

Foram adicionados testes para:

  • Match simples.
  • Múltiplas chaves.
  • Comparação estrita.
  • Default.
  • Match aninhados.
  • Arrays complexos.
  • Mapas complexos.

Todos os testes foram executados com sucesso.


🎉 Resultado

✅ Maior estabilidade

✅ Menos erros em runtime

✅ Nova Expressão Match

✅ Melhor experiência para desenvolvedores

✅ Sistema de views mais rápido

✅ Atualizações inteligentes

✅ CLI mais robusto

✅ Documentação atualizada

Obrigado por fazer parte do ecossistema JosSecurity 🚀