You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Conditional exports are resolved with deterministic priority: `default` → `import` → `require`.
431
+
432
+
#### Security
433
+
-**Path traversal**: Export paths are validated — absolute paths and `..` components are rejected
434
+
-**Symlink escape**: Resolved package paths must remain within `node_modules/` after `fs::canonicalize()`
435
+
-**File size limits**: Manifests and templates are capped at 10 MB to prevent denial-of-service
436
+
437
+
#### Discovery Cache
438
+
- Location: `~/.webui/cache/components/`
439
+
- Cache key: hash of source identifier + resolved path
440
+
- Invalidation: hash of `package.json` content (re-discover on change)
441
+
- Atomic writes: temp file + rename to prevent corruption from concurrent builds
442
+
- Corrupt cache files are silently ignored (graceful fallback)
443
+
444
+
#### Local Path Resolution
445
+
Local paths perform a recursive WalkDir scan for HTML files with hyphenated names, pairing matching CSS files — the same convention used by the parser's `ComponentRegistry`.
0 commit comments