Outcome
Resolve and cache browser-compatible npm dependencies reproducibly for Flect authoring without executing arbitrary package installation code.
Provide:
- a provider-neutral Effect package-resolution service;
- exact version and export-condition resolution;
- an integrity-bearing lock representation;
- safe package retrieval and archive extraction;
- OPFS content-addressed caching;
- offline reuse after a successful install;
- duplicate and conflicting dependency diagnostics; and
- explicit rejection of native packages, lifecycle scripts, and unsupported conditions.
Exclusions
- Executing
postinstall, arbitrary package-manager scripts, native addons, or downloaded binaries.
- Promising compatibility with every npm package.
- Making one public CDN a permanent Flect dependency.
Acceptance criteria
- Browser tests resolve a nested dependency graph with ESM and CommonJS inputs.
- Repeating a locked build offline uses only verified cached content.
- Integrity mismatches, traversal entries, archive bombs, unsupported native packages, and dependency cycles fail with typed errors.
- The provider can be changed without modifying the builder or capsule format.
- Lock changes are attributable and reviewable as part of an interface revision.
Outcome
Resolve and cache browser-compatible npm dependencies reproducibly for Flect authoring without executing arbitrary package installation code.
Provide:
Exclusions
postinstall, arbitrary package-manager scripts, native addons, or downloaded binaries.Acceptance criteria