Saltar al contenido principal

Roadmap

A living list of what is planned for KatanaKit (katanakit-js). Contributions are welcome — pick something and open a pull request.

Legend: [x] done · [ ] planned.

Shipped (as of 2.2.1)

Architecture and packaging

  • Hexagonal reorganization into types/, core/services/, infrastructure/, adapters/, config/.
  • Pure ESM: relative imports with explicit .js extensions, module: nodenext, "type": "module" and an exports map with subpaths (katanakit-js/adapters/express, katanakit-js/adapters/nuxt).
  • use* method convention across every service (only getInstance() is exempt).
  • Destructured, tree-shakeable exports from Singleton facades.
  • Single source of truth for contracts and domain types in src/types/.
  • No side effects on import; SSR-safe infrastructure adapters.
  • Removed TypeScript errors, import-time side effects and duplicate types.
  • Dependency restructure: only @js-temporal/polyfill as a runtime dependency; express, cors, dotenv and vue as optional peer dependencies.
  • Package renamed for publication as katanakit-js (previously developed as katanakit-dev).

Services and adapters

  • Core services: HTTP client, logger, formatter, converter, errors, generator, dates (Temporal), geometry, timing, data/system utilities and the reactive signals kernel.
  • Infrastructure adapters: DOM, storage, viewport, sensors, observer (+ lazy loader), worker (+ pools) and theme.
  • Astro adapter (AstroService) for getStaticPaths.
  • RSS service (RssService) with raw XML generation and Astro GET endpoints — no external dependencies.
  • Site config (SiteConfig/siteConfig) and SEO module (useHeadTags, useGenerateMetaTags, useTitle, useRssHeadLink).
  • Nuxt adapter (katanakit-js/adapters/nuxt): useUnwrap, useSafeResponse, useEventResponse.
  • Vue adapter (katanakit-js/adapters/vue): useKatanaFetch composable (data, error, loading, refetch).
  • Express reference server (katanakit-js/adapters/express) with CORS restriction defaults and hardened headers.
  • Worker pool concurrency fixed by correlating tasks with a taskId echo.
  • useEncrypt generates a random salt when none is provided.

Quality and tooling

  • Vitest suite: 60 tests across 8 files (http, logger, storage, core, rss, nuxt, seo, vue) with the @/ alias.
  • ESLint + Prettier lint + format wired (lint, check, format scripts).
  • release:patch|minor|major|beta scripts with a validate gate (check + test + build).
  • English documentation: README, Getting Started, Architecture, API Reference, Roadmap, CONTRIBUTING, SECURITY, CHANGELOG.
  • Security fixes applied: URL scheme validation, DOM on* attribute block, JSON-LD </script> escaping, worker cleanup, generic server errors.

Next

  • Publish katanakit-js 2.2.1 to npm (the package is renamed and versioned but not yet released).
  • HTTP client: request interceptors, retry with backoff, request cancellation (AbortSignal) and a caching layer (stale-while-revalidate).
  • Reactive: automatic dependency tracking for useCreateEffect/useCreateMemo.
  • More framework adapters: React hooks (useApi, useSignal) and Svelte stores.
  • Structured/JSON logger strategy.
  • Add Vitest coverage reporting and a CI pipeline (GitHub Actions) running check, test and build on the dev branch.

Later

  • UI kit (Katana UI) — tokens, headless primitives, layouts and app pages. See the UI Kit section.
  • Deno / Cloudflare Workers compatibility pass.
  • More geometry (3D solids) and unit-system conversions.
  • i18n and relative-time output for DatesService.useDiff.
  • E2E tests for the Express adapter.
  • AbortController support in useInterval/timeout helpers.