npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@xyo-network/dapp-kit-local

v2.1.4

Published

Importable local deployment reconciler for headless XL1 dApps

Readme

@xyo-network/dapp-kit-local

Importable, headless local deployment reconciliation for dapp-kit projects.

startDefaultLocalDappRun() is the V1 composition surface. It installs admitted product hosts, constructs only supported resource adapters, records lifecycle state, emits redacted component logs, starts declared static ingress after host readiness, and returns one foreground owner. dev retains repository state; test defaults to an isolated temporary state root that is removed after the terminal record and logs have been captured.

The package owns whole deployment-resource and host sessions. It does not own actor supervision, provider location, XL1 protocol implementations, or a CLI parser. Resource and host implementations are installed explicitly into closed registries and are selected by the exact IDs and versions retained in a deployment lock.

installPlannedLocalDappHosts() installs only host artifacts selected by the immutable deployment plan. Artifact admission verifies their executable file, actor/provider descriptor, and product host-factory inventories before the function exposes LocalHostAdapterRegistry entries. Those adapters forward the exact lock, abort signal, and borrowed resource capabilities; they do not infer recovery, status, or application-port behavior from descriptor metadata.

createLocalDappLogSink() serializes bounded canonical JSONL independently per component and can forward the same redacted entry to a foreground renderer. Every entry retains component, host, plan, system-incarnation, severity, and stable event-code fields. Secret-shaped keys, credential-bearing URLs, and authorization strings are redacted before either destination sees the entry.

planLocalDappProject() validates a repository, admits built Node host artifacts without executing them, resolves one named deployment against an explicit environment catalog, compiles the neutral plan, and optionally writes the reproducible lock. Declared static sites are built by invoking one exact package script through the repository's pinned package manager without a shell, then admitted through a confined, symlink-free file inventory and independent manifest/content hashes. The admitted manifest is cached under .xl1/cache and its identities enter the deployment lock. Planning never provisions a resource or constructs an actor.

createDefaultLocalEnvironmentCatalog() returns the closed, versioned V1 catalog used by the CLI when no override is supplied. It resolves only managed-local XL1, Aries datalake, filesystem journal/projection/checkpoint, and ephemeral identity requests. It contains no runtime ports, secrets, service-relative managed resources, external endpoints, or placeholder side-channel/external-source adapters.

runLocalDappVerifications() invokes only manifest-declared package-script names through the repository's exact package manager. Each result retains its declared evidence class. Scripts receive one private JSON context path with lock/plan identity and credential-free endpoint metadata; arbitrary parent environment values are not inherited. A failed script remains failed evidence and is never promoted into another evidence class. Verification subprocesses have a bounded execution time and are force-terminated on timeout so teardown cannot wait forever on repository test code.

startRecordedLocalDappRun() wraps the reusable reconciler with the validated noncanonical run-record store. It records every lifecycle phase, exact host session IDs, allocated ports, and the terminal issue code while leaving the deployment lock unchanged. The injected store may use retained repository state for dev or an isolated temporary state root for test.

The reconciler's optional startIngress phase runs only after every host is ready and before deployment readiness is published. Each returned site/ingress session is adopted immediately, participates in terminal-failure detection, and stops before host and resource sessions during reverse teardown.

startLocalStaticSiteServer() serves only the admitted file inventory from one loopback origin and verifies file size/hash again on every response. It composes the canonical status/readiness/health facade with the complete WebSocket application-port ingress. Browser attachments require a short-lived random same-origin session held only in an HttpOnly, SameSite=Strict cookie; the token is not returned to JavaScript, embedded in endpoint URLs, or printed. Reloading rotates the session and detaches the prior port client. Stopping or closing the site owns only site/ingress resources and never stops the dApp host.

startPlannedLocalStaticSites() turns admitted static artifacts into owned post-host ingress sessions and credential-free verification endpoints. V1 requires exactly one application-port host for a site-bearing deployment; a missing or multi-host binding fails explicitly until the manifest gains an unambiguous multi-host routing contract.

startPlannedLocalProjectionIngress() exposes the selected portable projection-store through a runner-owned, loopback-only, read-only HTTP server when the locked projection profile is public-served. The endpoint maps object keys directly beneath one origin, preserves safe cache validators and public CORS, rejects queries and write methods, never exposes the checkpoint store, and stops as an ingress session before the host and resource. The default local runner starts this endpoint even when the dApp declares no static UI, so a headless public indexer remains externally verifiable without product-owned HTTP lifecycle code.

pnpm test:local-browser bundles the shared browser client into a reference static site and runs it in real Chromium. The suite proves bootstrap, cookie authority, unary port traffic, health, reload, and detach-to-zero without transferring runtime ownership to the page.

LocalFilesystemResourceAdapter supplies confined runner-owned capabilities for effect journals, projection roots, and checkpoint roots. It reuses the Node package's crash-durable journal and portable object store, rejects concurrent ownership, preserves retained state, and removes only its own ephemeral resource root. Filesystem roots remain private to the resource session; hosts and projection ingress receive only the object-store capability.

createDefaultLocalResourceAdapterRegistry() installs exactly the managed local adapters implemented by this package for the resources retained in a deployment lock. External networks/stores, managed service resources, side-channels, and external sources fail before provisioning; the runner never substitutes a local fake for an unresolved capability.

The registry also exposes narrow deterministic test seams for identity entropy and the local XL1 genesis reward address. pnpm test:local-system separately proves a clean external host artifact over managed XL1, combined XL1/Aries resource ownership, and both directly assembled and admitted-artifact passive-public UC-02 claims ports over an owned real XL1, Aries, journal, identity, and host graph. The clean admitted UC-02 repository also declares a static site: planning builds and admits it, the default owner starts it after host readiness, and the test replays publish/by-id through an authenticated loopback WebSocket attachment before named verification and reverse teardown. The UC-02 cases use the same derived child-zero wallet for both test seams. Production callers must still obtain funding authority explicitly; the registry does not infer it from an arbitrary identity binding.

LocalXl1ResourceAdapter owns the published xl1 CLI as a foreground child, binds its loopback RPC endpoint from the deployment lock, configures the exact expected chain ID, proves readiness through typed XL1 viewers, and performs bounded TERM/KILL teardown. The current in-memory CLI adapter explicitly rejects retained chain state instead of overstating durability.

startLocalHostedAppProcess() supplies the same foreground ownership boundary for a consumer-selected application host. It allocates loopback ingress, passes the selected port to exact argument/environment factories, waits on a bounded HTTP or injected readiness probe, captures bounded child output for failures, and performs TERM/KILL teardown. The caller retains provider choice: a test may own a framework development server or a pinned vercel dev process without making dapp-kit install, authenticate, or silently acquire a provider CLI.

LocalIdentityResourceAdapter creates an explicitly requested ephemeral local XL1 wallet from in-memory entropy at the canonical m/44'/60'/0'/0/<childIndex> path. The capability exposes the wallet only to the owning run, never serializes a mnemonic or private key, and can fund the managed local XL1 genesis account when the network resource declares the identity as a dependency.

LocalDatalakeResourceAdapter owns the published Aries local datalake daemon, keeps its generated control credential inside a deployment-scoped ARIES_HOME, and exposes only an authenticated payload client plus non-secret endpoint metadata. It applies the locked public/capability read policy, proves readiness with a content-addressed insert/read-back, removes ephemeral state, and preserves retained state across owned daemon restarts. It imports the public @ariestools/cli/datalake clients and invokes the packaged CLI instead of copying private server internals into dapp-kit.