All notable changes to the ObjectQL monorepo are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
@objectql/plugin-analytics— new analytics/BI plugin providing multi-database analytical query support. Implements theIAnalyticsServicecontract from@objectstack/specwith strategy-based driver dispatch:NativeSQLStrategy— pushes analytics to SQL databases via Knex (Postgres, SQLite, MySQL).ObjectQLStrategy— delegates to driver's nativeaggregate()method (MongoDB, etc.).MemoryFallbackStrategy— in-memory aggregation for dev/test environments.CubeRegistry— supports manifest-based and automatic model/metadata-inferred cube definitions.SemanticCompiler— compilesAnalyticsQuery+CubeDefinitioninto driver-agnosticLogicalPlan.generateSql()— SQL dry-run/explanation support for query debugging.AnalyticsPlugin— kernel plugin registering'analytics'service for REST API discovery.
apps/demo— addedwhatwg-url,tr46, andwebidl-conversionsas explicit devDependencies and tovercel.jsonincludeFiles. These are transitive dependencies ofnode-fetch@2.7.0(used bycross-fetch@4.1.0) that must be bundled into Vercel's serverless function. Without them, the deployment fails withCannot find module 'whatwg-url/index.js'.apps/demo/scripts/patch-symlinks.cjs— enhanced to automatically resolve and copy ALL transitive dependencies before dereferencing symlinks. Previously, only direct dependencies listed inapps/demo/package.jsonwere available after symlink dereferencing, causingERR_MODULE_NOT_FOUNDfor transitive deps like@objectstack/rest,zod,pino,better-auth, etc. The script now walks each package's pnpm virtual store context (.pnpm/<name>@<ver>/node_modules/) and copies any missing sibling dependency into the top-levelnode_modules/, repeating until the full transitive closure is present.apps/demo— added explicit@objectstack/specandzoddevDependencies as defense-in-depth for Vercel deployment.@objectql/types— moved@objectstack/specandzodfromdevDependenciestodependencies. The compiled JS output contains runtime imports of@objectstack/spec(viaz.infer<typeof Data.X>patterns), so they must be declared as production dependencies.
apps/demo— switched default data driver from@objectstack/driver-memory(InMemoryDriver) to@objectql/driver-turso(TursoDriver). WhenTURSO_DATABASE_URLis set, the demo uses a persistent Turso/libSQL database; otherwise falls back to InMemoryDriver for zero-config local development.objectstack.config.ts— environment-awarecreateDefaultDriver()selects Turso or MemoryDriver.api/[[...route]].ts— Vercel serverless handler uses TursoDriver withTURSO_DATABASE_URL,TURSO_AUTH_TOKEN,TURSO_SYNC_URL, andTURSO_SYNC_INTERVALenv vars.scripts/build-vercel.sh— now builds@objectql/driver-tursoalongside other drivers.README.md— documents new Turso environment variables and architecture.
apps/demo— standalone Vercel-deployable demo application (#issue):vercel.json— Vercel deployment configuration (custom serverless, 1 GiB memory, 60 s timeout).api/[[...route]].ts— catch-all serverless entry point bootstrapping the ObjectStack kernel with ObjectQL plugins, InMemoryDriver, Auth, Console, and Studio UIs.scripts/build-vercel.sh— ordered build script for all workspace dependencies.scripts/patch-symlinks.cjs— pnpm symlink dereference for Vercel bundling.objectstack.config.ts— local development configuration reusing the project-tracker showcase.README.md— deployment documentation for both local and Vercel workflows.- Root
demo:devscript for quick local start.