# Project Hints - @api.global/typedserver

## Recent Changes (March 2026)

### Dependency Updates
- `@git.zone/tsbuild` upgraded to v4.3.0 (major: auto path rewriting, folder clearing)
- `@git.zone/tsbundle` upgraded to v2.9.1 (uses npmextra.json config)
- `@git.zone/tstest` upgraded to v3.5.0
- `@push.rocks/smartsitemap` upgraded to v4.0.1 (major: builder pattern API)
- `@push.rocks/taskbuffer` upgraded to v8.0.0 (backward compatible for existing usage)
- `@push.rocks/smartjson` upgraded to v6.0.0 (backward compatible)
- `@tsclass/tsclass` upgraded to v9.5.0
- `@types/node` upgraded to v25.5.0
- All other dependencies updated to latest patch/minor versions

### Code Migration Notes

#### tsbuild v4 Migration
- **Cross-folder imports**: Use `../ts_interfaces/index.js` instead of `../dist_ts_interfaces/index.js`
- tsbuild v4 automatically rewrites import paths from `ts_*` to `dist_ts_*` in output
- CLI flags `--web` and `--allowimplicitany` removed (defaults already handle these)
- Build script simplified to `tsbuild tsfolders && tsbundle`

#### tsbundle npmextra.json Config
- Bundle configuration moved from CLI args to `npmextra.json` under `"@git.zone/tsbundle"` key
- Three bundles configured: web_inject, web_serviceworker, swdash

#### smartsitemap v4 Migration
- Complete API rewrite using builder pattern
- Old: `new SmartSitemap().createSitemapFromUrlInfoArray(urls)`
- New: `SmartSitemap.create().addUrls(urls).toXml()`
- Old: `new SmartSitemap().createSitemapNewsFromArticleArray(articles)`
- New: `SmartSitemap.fromArticles(articles, { publicationName: '...' }).toXml()`
- `IUrlInfo` renamed to `ISitemapUrl` with different properties:
  - `url` → `loc`
  - `timestamp` → `lastmod` (accepts Date | string | number)
  - `frequency` → `changefreq`

### Architecture
- `plugins.fsInstance` is a pre-configured SmartFs instance with SmartFsProviderNode
- All file operations should be async using smartfs
- Cross-folder imports reference source `ts_*` folders, tsbuild handles path rewriting
