🕵️ SicherheitslückenHak5: Hackers Just Poisoned the Rust Supply Chain | Threat Wire(01.09.2026 um 14:00 Uhr)
🕵️ SicherheitslückenHak5: Hackers Found a Way Into Humanoid Robots | Threat Wire(04.09.2026 um 15:04 Uhr)
🔧 AI Nachrichten Bits und so #1021 (Passwort für Laufwerk)(31.08.2026 um 22:15 Uhr)
🔧 AI Nachrichten Bits und so #1022 (Wie Weißbier)(06.09.2026 um 20:39 Uhr)
🍏 iOS / Mac OSHue-App 6.0 ist da: das sind die Neuerungen(07.09.2026 um 17:21 Uhr)
🕵️ SicherheitslückenHak5: Hackers Just Poisoned the Rust Supply Chain | Threat Wire(01.09.2026 um 14:00 Uhr)
🕵️ SicherheitslückenHak5: Hackers Found a Way Into Humanoid Robots | Threat Wire(04.09.2026 um 15:04 Uhr)
🔧 AI Nachrichten Bits und so #1021 (Passwort für Laufwerk)(31.08.2026 um 22:15 Uhr)
🔧 AI Nachrichten Bits und so #1022 (Wie Weißbier)(06.09.2026 um 20:39 Uhr)
🍏 iOS / Mac OSHue-App 6.0 ist da: das sind die Neuerungen(07.09.2026 um 17:21 Uhr)

🔧 Programmierung 🕛 kürzlich 4 Min Lesezeit
0

Chaca 2.2: generación de datos de prueba, ahora en el navegador

↗ Quelle (dev.to)
🗣️ Stimme:
📑 Inhaltsübersicht

Chaca es una librería TypeScript para generar datos de prueba realistas y relacionales — esquemas que se referencian entre sí, exportables a JSON, CSV, SQL, Java, Python y más. Hasta ahora solo funcionaba en Node. La versión 2.2 cambia eso.






🌐 Chaca ahora es isomórfica



Puedes instalar y usar Chaca en cualquier aplicación de navegador — React, Vue, Svelte, JS vanilla. Sin configuración: tu bundler resuelve automáticamente el build seguro para navegador a través del mapa de exports del paquete. El paquete ahora incluye builds en ESM y CommonJS, cada uno con sus propias definiciones de tipos.



La pieza clave es transform, que serializa tus datos a cualquier formato soportado completamente en memoria — sin tocar el sistema de archivos. Eso lo convierte en la forma natural de obtener el contenido de un archivo en el navegador, por ejemplo para lanzar una descarga:




CODE
import { chaca, modules } from "chaca";

const schema = chaca.schema({
id: chaca.key(() => modules.id.uuid()),
name: () => modules.person.firstName(),
});

const [file] = await schema.transform(50, {
filename: "users",
format: "json",
});

// file.filename -> "users.json"
// file.content -> string serializado, listo para descargar o mostrar






transform soporta todos los formatos: json, csv, yaml, postgresql, sqlite, mysql, java, python, typescript y javascript.




Nota: export (que escribe archivos en disco) no está disponible en el build de navegador y lanza un error descriptivo que te dirige a transform. En Node, export sigue funcionando exactamente igual que antes.







🗄️ Nuevos formatos de exportación: SQLite y MySQL



Dos nuevos destinos SQL se suman a postgresql, compartiendo todas sus opciones (keys, uniques, nulls, refs, generateIds, declarationOnly, ...):




CODE
await dataset.export({
filename: "data",
location: "./data",
format: "sqlite", // o "mysql"
});






Ambos están disponibles también desde la CLI (chaca sqlite, chaca mysql) y generan scripts con tipos nativos de cada motor:





  • SQLite: PRAGMA foreign_keys = ON, INTEGER PRIMARY KEY para ids generados, TEXT para strings y fechas ISO, REAL para floats.


  • MySQL: INT AUTO_INCREMENT PRIMARY KEY, VARCHAR(255)/TEXT, DATETIME(3) para fechas, constraints FOREIGN KEY a nivel de tabla, y palabras reservadas protegidas con backticks.






🧯 Un único namespace Errors



Todas las excepciones de chaca están ahora agrupadas bajo un solo namespace, lo que hace el manejo de errores mucho más fácil de descubrir:




CODE
import { Errors } from "chaca";

try {
await schema.export(/* ... */);
} catch (e) {
if (e instanceof Errors.TryRefANoKeyFieldError) {
/* manejar el error específico */
}
if (e instanceof Errors.ChacaError) {
/* catch-all para cualquier error de chaca */
}
}






Los exports planos existentes siguen funcionando, y tres clases de error anunciadas en la 2.0.0 pero que nunca se llegaron a exportar por fin son accesibles.






🪛 Más de 40 fixes



Esta versión cierra una larga lista de bugs. Algunos destacados:





  • chaca.pick e isArray con { min, max } nunca podían alcanzar max — el límite superior ahora es inclusivo, como indica la documentación.

  • El exportador de Java generaba código que no compilaba (puntos y coma faltantes, literales float incorrectos, tipos bigint inválidos, identificadores con palabras reservadas). Ahora compila.

  • Export a PostgreSQL: las comillas simples en strings se escapan correctamente, las columnas donde todo es null reciben tipo TEXT, las fechas conservan la hora como TIMESTAMP y los identificadores con palabras reservadas van entre comillas dobles.

  • Un campo ref en array que se queda sin valores ya no rellena el array con null — se detiene en las referencias que pudo resolver. Revisa tu código si dependías del relleno; como bonus, los isArray grandes con refs son notablemente más rápidos.


  • modules.date.past/soon/between ya no mutan el Date que les pasas.


  • modules.internet.email ya no produce [email protected], y modules.datatype.hexadecimal ya no incluye la letra G.

  • En CSV los valores ausentes son celdas vacías en lugar del string literal undefined, y YAML ya no descarta silenciosamente los valores bigint.



La lista completa — incluidos algunos pequeños cambios de comportamiento que conviene revisar (ethereumAddress ahora incluye el prefijo 0x, la salida CSS de color.rgb ya no lleva el prefijo hexadecimal, y se corrigieron los typos Oseania/Antartica en continent) — está en el . Si construyes algo con ella — o encuentras un bug — los issues y PRs son bienvenidos en GitHub.

Vollständiger Original-Bericht
Ausführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
1 Quelle
Hackers Just Poisoned the Rust Supply Chain | Threat Wire
1 Quelle
Hackers Found a Way Into Humanoid Robots | Threat Wire
1 Quelle
Bits und so #1021 (Passwort für Laufwerk)