Skip to content

Add reproducible browser dependency resolution and caching #5

Description

@robinbraemer

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:authoringBrowser authoring, building, and source importenhancementNew feature or requestpriority:P1Next after the core live-editing loop is provensecurityTrust, isolation, authorization, or recovery boundarystatus:implementedImplemented and locally verified; awaiting publication workflow

    Type

    No type

    Projects

    Status
    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions