Skip to content

Releases: arkstack-hq/arkstack

0.5.0

11 May 08:28

Choose a tag to compare

What's Changed

@arkstack/database — New Package

A new @arkstack/database package has been introduced, providing core database and Arkormˣ abstraction utilities.

  • ValidatorDBDriver for database existence validation
  • Command classes covering factory, migration, model, seeder, and history management
  • Full package setup including README, package.json, and updated tsdown configuration

Database Extensions

Seven new extensions are now available for database interaction: DB, Factory, Migration, Model, Rebuilder, SchemaBuilder, and Seeder.

  • Rebuilder class for orchestrating model, seeder, migration, and factory file management
  • Express API and web route stubs with basic responses included as a starting point

Dependency Updates

  • arkormx bumped from 2.0.82.0.9 across all affected packages
  • reflect-metadata added as a dependency for clear-router container resolution support
  • tsconfig.json updated to enable experimentalDecorators and disable declaration maps

CLI — CreateArkstackCommand

Project scope selection added to the create command, with improved template hints to guide users through project setup.

Full Changelog: 0.4.2...0.5.0

0.4.2

08 May 09:55

Choose a tag to compare

What's Changed

  • add auth (@arkstack/auth Auth instance) to global request and context objects.

Full Changelog: 0.4.1...0.4.2

0.4.1

08 May 05:54

Choose a tag to compare

What's Changed

  • Updated the global view() helper boot behavior so calling view() without a name returns the shared view factory instance.
  • Improved view initialization in tests by explicitly calling View.boot() where global view behavior is required.
  • Fixed the global view helper assertion to compare the resolved factory instance instead of the helper function reference.

Commits

  • 4199f1c feat: initialize View in notification and view test files for consistent setup
  • 009386f feat: update View boot method to return factory instance when name is undefined
  • 65b7629 fix: correct global view reference in view test for accurate instance comparison

Full Changelog: 0.4.0...0.4.1

0.4.0

08 May 02:34

Choose a tag to compare

Highlights

  • Added @arkstack/view, an Edge.js-powered view package with Laravel-style rendering APIs.
  • Added package-scoped views using ~package-name.view and ~org/package-name.view.
  • Added default welcome.edge and error/mail view templates across packages and starter apps.
  • Moved runtime router exports into driver packages for cleaner app/runtime boundaries.
  • Refreshed the docs landing page and shared docs theme with the new Arkstack visual system.

What's Changed

Views

  • Added @arkstack/view with:
    • view(name, data)
    • view().share(...)
    • View.make(...)
    • View.first(...)
    • View.exists(...)
    • View.share(...)
    • view instance .with(...)
    • function, class, and instance-based view composers
    • package-scoped views
  • Added make:view command for generating Edge templates.
  • Added tests for view rendering, composers, package views, and the make-view command.

Templates

  • Added welcome.edge views for Express and H3.
  • Updated default / web routes to render the welcome view.
  • Added shared error view assets through @arkstack/common.
  • Added notification mail view assets through @arkstack/notifications.

Runtime and Drivers

  • Moved router implementations into:
    • @arkstack/driver-express
    • @arkstack/driver-h3
  • Updated app cores to use the driver router exports.
  • Improved runtime/network and error-handler integration.

Docs

  • Added the Views guide.
  • Updated API docs for view APIs and package-scoped views.
  • Reworked the Architecture Overview for the current package architecture.
  • Updated the docs landing page with runtime tabs, interactive feature selection, and package chips.
  • Updated the shared docs theme to match the Arkstack welcome-page styling.

Dependencies and Release

  • Added @arkstack/view workspace dependency wiring.
  • Updated package versions for the 0.4.0 release line.
  • Updated lockfile entries for the new view package and Edge.js integration.

Full Changelog: 0.3.17...0.4.0

0.3.17

06 May 20:13

Choose a tag to compare

Highlights

  • Added @arkstack/notifications with mail, SMS, and database notification drivers.
  • Added two-factor authentication support to @arkstack/auth, including authenticator app secrets, SMS codes, recovery codes, and UserTwoFactor.
  • Added database-backed user notifications with UserNotification models and migrations.
  • Added middleware:auth hook support through @arkstack/common.
  • Added Vitest setup and basic tests for the Express and H3 templates.
  • Replaced supertest auth tests with parasito.
  • Updated clear-router to 2.3.5.

What's Changed

Authentication

  • Added TwoFactor utilities for authenticator apps, SMS codes, recovery codes, and 2FA status.
  • Added UserTwoFactor contract, starter models, and migrations.
  • Updated auth user/session models and middleware integration.
  • Added Express and H3 auth integration tests.
  • Added auth middleware hook support via middleware:auth.

Notifications

  • Added new @arkstack/notifications package.
  • Added mail delivery through SMTP.
  • Added SMS delivery through AfricasTalking and Twilio transports.
  • Added database/in-app notification delivery through UserNotification.
  • Added UserNotificationCenter helpers for creating, listing, reading, and deleting notifications.
  • Added notification config to the Express and H3 templates.
  • Added notification tests for mail, SMS, and database delivery.

Templates and Testing

  • Added Vitest config to Express and H3 templates.
  • Added basic template test assertions.
  • Replaced supertest with parasito in auth tests.
  • Added starter UserNotification and UserTwoFactor models/migrations to templates.

Documentation

  • Added notifications guide.
  • Added hooks guide.
  • Expanded authentication docs for 2FA and auth middleware hooks.
  • Expanded API reference for notifications, hooks, and two-factor auth.
  • Refreshed homepage feature cards and icons.

CI and Release

  • Added release version preparation script.
  • Updated publish workflow and npm auth handling.
  • Added PostgreSQL-backed testing steps for prepublish workflows.
  • Removed stale VitePress dependency cache files from the repository.

Dependencies

  • Updated clear-router to 2.3.5.
  • Updated arkormx to 2.0.7.
  • Updated @resora/plugin-clear-router to 0.1.6.
  • Downgraded @types/express to 5.0.6 for compatibility.

Full Changelog: 0.3.3...0.3.17

0.3.3

04 May 15:03

Choose a tag to compare

What's Changed

Authentication and HTTP Foundation

  • Added new @arkstack/auth package with:
    • Auth service for user authentication, JWT/session handling, logout, and token authorization.
    • CurrentSession and SessionDevice helpers.
    • User and PersonalAccessToken contracts.
    • AuthenticationException.
  • Added new @arkstack/http package with framework-neutral Request and Response wrappers.
  • Added auth middleware to framework drivers:
    • @arkstack/driver-express/middlewares
    • @arkstack/driver-h3/middlewares
  • Added Express and H3 app-template User and PersonalAccessToken models.
  • Updated Express and H3 personal access token migrations with device_info.

Common Package Improvements

  • Replaced error-handling.ts with a class-based ErrorHandler.
  • Added common exception classes:
    • Exception
    • AppException
    • RequestException
  • Added shared hashing and encryption utilities.
  • Added typed getModel() helper with support for abstract constructors and app model registries.
  • Exported the new common helpers and exceptions from @arkstack/common.

Driver and Runtime Updates

  • Added framework-specific rate limit exceptions for Express and H3 drivers.
  • Updated Express and H3 error handlers to use the new shared error handling flow.
  • Removed duplicated app-template error utilities from Express and H3 kits.
  • Updated router behavior in the Express template.

Console and Scaffolding

  • Added migrate:fresh command support to console packages.
  • Updated lean scaffold generation to remove Arkorm/database model files more completely.
  • Updated scaffold dependency versions to 0.3.13.
  • Improved lean profile tests around model/database cleanup.

CI and Release Workflow

  • Switched CI, docs deploy, and publish workflows to pnpm install --frozen-lockfile.
  • Updated CI package build flow to build workspace packages and refresh lockfile state before app builds.
  • Renamed CI migration step from Prisma to Arkorm database migrations.
  • Updated package metadata and lockfile for the new packages and dependencies.

Tests

  • Added DB-backed auth tests using real jose tokens.
  • Added package-level tests for:
    • @arkstack/http
    • @arkstack/auth
    • Express auth middleware
    • H3 auth middleware
  • Added app-template integration tests:
    • Express via supertest
    • H3 via app.fetch(new Request(...))
  • Added teardown for auth test records so created users and personal access tokens are cleaned up after tests.

Full Changelog

0.2.2...0.3.3

0.2.2

20 Mar 06:29

Choose a tag to compare

What's Changed

Added

  • Implemented ValidatorDBDriver for use with kanun db based rules.
  • Created prismaClient for connecting to the database using Prisma and PostgreSQL adapter.
  • Added formdata middleware using multer for handling form data in requests.
  • Implemented a new filesystem package that includes FTP driver functionality.
  • Added configuration for local, public, and S3 disks in filesystem configuration.
  • Created symbolic link command for filesystem links.
  • Introduced methods for file operations including save, get, delete, and list.
  • Added tests for FTP driver functionality.
  • Add APP_PORT to environment files and update server boot configuration
  • Introduce GlobalEnv and GlobalConfig interfaces and update their usage in app and network modules
  • Add MakeCommand for generating new console commands
  • Add MigrateRollbackCommand to console commands
  • chore: add context setting middleware for resource management

Changed

  • Update arkormx package version to 1.0.0 across all modules
  • Update default configuration to use dynamic driver name and improve structure
  • Encapsulate configuration merging logic in a separate method
  • Enhance middleware application order in boot process
  • Refactor kit handling in CreateArkstackCommand
  • Simplify server boot logic by removing environment checks
  • Remove unnecessary semicolons after setStatusCode calls in controller stubs
  • Refactor makeController to improve controller name handling
  • chore: enhance resolveStubsDir function to support core parameter and improve stubs directory resolution

Docs

  • Add Middleware Guide and update documentation links
  • Enhance getting started documentation for clarity and detail
  • Restructure runtime interaction links in the documentation
  • Add runtime interaction guides for Express and H3, update README files

Full Changelog: 0.2.0...0.2.2

0.2.0

09 Mar 18:36

Choose a tag to compare

What's Changed

Added

  • Add support for Arkormˣ in controllers and services, removing direct Prisma client usage.
  • Framework-agnostic shared packages: @arkstack/contract, @arkstack/common, @arkstack/console
  • Dedicated runtime drivers: @arkstack/driver-express and @arkstack/driver-h3.
  • Shared console base commands in @arkstack/console: route:list, make:controller, make:resource, make:full-resource, dev, build.
  • Lean starter profiles in scaffolding: express-lean and h3-lean.
  • Root-level tests for shared command surface and integration behaviour.

Changed

  • Reorganise console command discovery paths and middleware imports
  • Moved duplicated console logic from kit-local implementations into shared console package architecture.
  • Standardised router contract usage for route binding/listing across runtimes.
  • Lean kit generation now strips app/api/database scaffolding by removing src/app, src/routes/api.ts, Prisma/database files, and DB dependencies.
  • Added root script publish:packages to publish @arkstack/* packages.
  • Remove direct prisma client usage from controllers and services, encouraging use of Arkormˣ models instead.

Docs

  • Expanded docs landing page, getting started guide, architecture overview, API reference, and roadmap content.
  • Enhance documentation with CLI and database modelling guides

Full Changelog: 0.1.1...0.2.0

0.1.1

09 Mar 17:24

Choose a tag to compare