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

nanocodex-vite

v0.6.1

Published

Vite, Cloudflare, WASM, ChatGPT development, and OAuth relay integration for Nanocodex

Readme

nanocodex-vite

Vite integration for the nanocodex JavaScript package. The plugin builds the current Rust/WASM bindings when it runs from a source checkout, installs the browser compatibility aliases in page and nested Worker graphs, and exposes a same-origin ChatGPT subscription socket during local development.

The WASM build normalizes wasm-bindgen byte views for all three JavaScript targets. Cloudflare's V8 subarray offset check can reject valid strings above the 128 MiB address boundary after WASM memory grows. Direct bounded views keep those transfers valid without changing the WASM ABI. The build validates the generated helper shapes, and changes to the normalization script invalidate the binding cache.

import { nanocodex } from "nanocodex-vite";
import { defineConfig } from "vite";

export default defineConfig({
  plugins: [nanocodex()],
  worker: { format: "es" },
});

Cloudflare applications use the combined entry instead of installing a second Cloudflare plugin:

import { nanocodex } from "nanocodex-vite/cloudflare";
import react from "@vitejs/plugin-react";
import { defineConfig } from "vite";

export default defineConfig({
  plugins: [react(), nanocodex()],
});

In development, the application Worker remains the sole browser credential broker. Nanocodex gives workerd only the current access-token snapshot and a capability-scoped loopback egress; it never imports the host process environment. vite build does not read local auth or include those bindings. The refresh token, ID token, full auth document, and credentials never enter browser code or responses.

Managed local applications can pass oauthRelay: true; the plugin then owns the fixed provider callback relay for the lifetime of the Vite server. The relay signing and callback helpers are exported from nanocodex-vite/oauth-relay.