Files
typedserver/readme.hints.md

2.8 KiB

Project Hints - @api.global/typedserver

Recent Changes (December 2025)

Dependency Updates

  • @push.rocks/smartwatch upgraded to v6.0.0 (cross-runtime, native fs.watch)
  • @design.estate/dees-catalog upgraded to v3.1.1 (new icons, components)
  • @push.rocks/smartchok replaced with @push.rocks/smartwatch (renamed package)
  • @push.rocks/smartfile upgraded from v11 to v13 (major API change - fs module removed)
  • @push.rocks/smartfs added for filesystem operations (v1.2.0+)
  • @push.rocks/smartenv upgraded to v6.0.0
  • @push.rocks/smartrequest upgraded to v5.0.1
  • @push.rocks/webrequest upgraded to v4.0.1 (WebRequest renamed to WebrequestClient)
  • Express upgraded to v5.2.1
  • All @git.zone/* dev dependencies updated to latest

Code Migration Notes

smartwatch v6.0.0

  • Cross-runtime support: Node.js 20+, Deno, Bun
  • Uses native fs.watch({ recursive: true }) for performance
  • Minimal dependencies (no chokidar, no FSEvents bindings)
  • API unchanged: new Smartwatch([patterns]), .start(), .stop(), .getObservableFor(event)
  • Events: add, addDir, change, unlink, unlinkDir, error, ready
  • Dynamic watching: .add(patterns), .remove(pattern)
  • Status property: 'idle' | 'starting' | 'watching'

dees-catalog v3.0.0+ Migration

  • DeesIcon: New unified icon property with library prefixes:
    • FontAwesome: icon="fa:check" (prefix fa:)
    • Lucide: icon="lucide:menu" (prefix lucide:)
    • Legacy iconFA property deprecated but still supported
  • DeesToast: New convenience methods and positioning:
    • DeesToast.info(), .success(), .warning(), .error()
    • Position options: top-right, top-left, bottom-right, bottom-left, top-center, bottom-center
  • New components: DeesInputTags, DeesInputDatepicker, DeesStatsGrid, DeesPagination, DeesAppuiBase
  • DeesAppuiAppbar: Hierarchical menus with keyboard navigation

smartfile v13 Migration

  • Old: plugins.smartfile.fs.toStringSync(path) / plugins.smartfile.fs.toBufferSync(path)
  • New: Use plugins.fsInstance (SmartFs instance with Node provider)
    • String: await plugins.fsInstance.file(path).encoding('utf8').read() as string
    • Buffer: await plugins.fsInstance.file(path).read() as Buffer

smartfs treeHash

  • Old: plugins.smartfile.fs.fileTreeToHash(dir, pattern)
  • New: await plugins.fsInstance.directory(dir).recursive().treeHash()

webrequest v4

  • Class renamed: WebRequestWebrequestClient

Architecture

  • plugins.fsInstance is a pre-configured SmartFs instance with SmartFsProviderNode
  • All file operations should be async using smartfs
  • Sync file operations have been removed

Express 5 Notes

  • Wildcard routes use /{*splat} notation
  • req.params.splat can be an array, use Array.isArray() check