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 6.12.0)
Architecture and packaging
- [x] Hexagonal reorganization into
types/,core/services/,infrastructure/,adapters/,config/. - [x] Pure ESM: relative imports with explicit
.jsextensions,module: nodenext,"type": "module"and anexportsmap with subpaths (katanakit-js/adapters/express,katanakit-js/adapters/nuxt). - [x]
use*method convention across every service (onlygetInstance()is exempt). - [x] Destructured, tree-shakeable exports from Singleton facades.
- [x] Single source of truth for contracts and domain types in
src/types/. - [x] No side effects on import; SSR-safe infrastructure adapters.
- [x] Removed TypeScript errors, import-time side effects and duplicate types.
- [x] Dependency restructure: only
@js-temporal/polyfillas a runtime dependency;express,cors,dotenvandvueas optional peer dependencies. - [x] Package renamed for publication as
katanakit-js(previously developed askatanakit-dev).
Services and adapters
- [x] Core services: HTTP client, logger, formatter, converter, errors, generator, dates (Temporal), geometry, timing, data/system utilities and the reactive signals kernel.
- [x] Infrastructure adapters: DOM, storage, viewport, sensors, observer (+ lazy loader), worker (+ pools) and theme.
- [x] Astro adapter (
AstroService) forgetStaticPaths. - [x] RSS service (
RssService) with raw XML generation and AstroGETendpoints — no external dependencies. - [x] Site config (
SiteConfig/siteConfig) and SEO module (useHeadTags,useGenerateMetaTags,useTitle,useRssHeadLink). - [x] Nuxt adapter (
katanakit-js/adapters/nuxt):useUnwrap,useSafeResponse,useEventResponse. - [x] Vue adapter (
katanakit-js/adapters/vue):useRequestcomposable (data,error,loading,refetch). - [x] Express reference server (
katanakit-js/adapters/express) with CORS restriction defaults and hardened headers. - [x] Worker pool concurrency fixed by correlating tasks with a
taskIdecho. - [x] PhotoSwipe adapter (
katanakit-js/adapters/photoswipe): DOM-selector lightbox binding, programmatic open, Safe Results, SSR guard. - [x] Better Auth adapter (
katanakit-js/adapters/better-auth): client factory for five frameworks plus Safe Result session/handler/locals helpers. - [x]
useEncryptgenerates a random salt when none is provided.
Quality and tooling
- [x] Vitest suite (36+ files, 270+ tests) with the
@/alias; jsdom coverage for the UI kit foundations. - [x] ESLint gate (
check= eslint +tsc6typecheck + vitest;fixauto-fixes). - [x] Local releases:
useGit push --releasewrites the complete CHANGELOG section and syncs version refs before tagging, andbun run releasepublishes to npm (GitHub Actions was removed). - [x] English documentation: README, Getting Started, Architecture, API Reference, Roadmap, CONTRIBUTING, SECURITY, CHANGELOG.
- [x] Security fixes applied: URL scheme validation, DOM
on*attribute block, JSON-LD</script>escaping, worker cleanup, generic server errors. - [x] Verification gate (
check,build,examples:check) run locally and by the release flow; docs deploy to Cloudflare withbun run deploy. - [x]
QueryClient(TanStack Query Core): cache with GC, stale-while-revalidate, retry with backoff, deduplication, invalidation and prefetch.
Next
- [ ] HTTP client: request interceptors and per-request cancellation plumbing in
FetchApiManager(the query layer already forwardsAbortSignal). - [ ] Reactive: automatic dependency tracking for
useCreateEffect/useCreateMemo(today signals are listed explicitly). - [ ] Structured/JSON logger strategy.
- [ ] Add Vitest coverage reporting to the release gate.
Later
- [ ] UI kit (Katana UI): foundations shipped (button, input, card, badge, alert); shells, blocks, layouts and app pages remain. See the UI Kit roadmap.
- [ ] Deno / Cloudflare Workers compatibility pass.
- [ ] More geometry (3D solids) and unit-system conversions.
- [ ] E2E tests for the Express adapter.
- [ ] AbortController support in
useInterval/timeout helpers.