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

@typed/virtual-modules-vscode

v1.0.0-beta.1

Published

> **Beta:** This package is in beta; APIs may change.

Downloads

44

Readme

@typed/virtual-modules-vscode

Beta: This package is in beta; APIs may change.

VS Code extension that makes virtual module imports first-class in the editor. Virtual modules are build-time constructs (e.g. router:./routes, api:./endpoints, virtual:foo) that plugins generate on the fly—this extension lets you navigate and inspect them as if they were real files.

Purpose: Without this extension, Go to Definition and similar features fail on virtual imports because the content doesn't exist on disk. The extension resolves virtual modules via @typed/virtual-modules and your configured plugins, then serves content through custom URI schemes and a read-only FileSystemProvider—so the TypeScript language service and editor tooling work correctly.

Capabilities: Go to Definition, document links, find references, a sidebar tree of virtual imports, and diagnostic commands. Content refreshes automatically when source files change.

| Feature | Description | |---------|-------------| | Go to Definition | Cmd/Ctrl+click a virtual import → opens generated content | | Document links | Virtual imports are clickable links | | Find references | From a virtual module tab, shows all import sites | | Virtual Module Imports view | Explorer sidebar listing discovered virtual imports | | Open from import | Right-click import → "Virtual Modules: Open virtual module from import" | | Diagnose | Output channel command for debugging go-to-definition |

Installation

From the monorepo:

pnpm --filter @typed/virtual-modules-vscode build

Then run from the workspace via Run and Debug (see Running the extension). Do not install from the marketplace unless you have a published build.

Running the extension

  1. From repo root: pnpm install and pnpm --filter @typed/virtual-modules-vscode build
  2. In Cursor/VS Code: Run and Debug (Ctrl/Cmd+Shift+D) → choose Run Typed Virtual Modules extension (or Run extension + open sample-project) → F5

Commands

| Command | Title | Description | | ------- | ----- | ----------- | | typed.virtualModules.open | Virtual Modules: Open virtual module | Open a virtual module by ID | | typed.virtualModules.openFromImport | Virtual Modules: Open virtual module from import | Open from import at cursor (editor context menu) | | typed.virtualModules.openFromTree | Virtual Modules: Open virtual module from tree | Open from the Virtual Module Imports view | | typed.virtualModules.refresh | Refresh Virtual Modules | Refresh the tree view | | typed.virtualModules.diagnoseDefinition | Virtual Modules: Diagnose go-to-definition at cursor | Debug go-to-definition for the current import |

Views

  • Virtual Module Imports — Explorer sidebar view listing virtual module imports found in the workspace. Use the refresh button in the view title to update.

Activation

The extension activates on TypeScript and TypeScript React files (onLanguage:typescript, onLanguage:typescriptreact).

Dependencies

  • @typed/virtual-modules
  • Peer: typescript (>=5)

Errors

See virtual-modules-errors-and-gotchas for full reference. Summary:

  • FileNotFound — Used for invalid typed-virtual:// URIs, missing project root, or resolver returning nothing. Callers cannot distinguish without parsing the URI.
  • NoPermissions — Thrown for createDirectory, writeFile, delete, rename; the provider is read-only.
  • Go to Definition — If writeVirtualPreviewAndGetPath throws (e.g. disk full, permission denied), the error is re-thrown and surfaces as a definition failure in the editor.

Troubleshooting

Extension won't load (invalid / missing package.json)

If you see "Unable to read file '.../typed.typed-virtual-modules-0.0.0/package.json'" or "Invalid extensions detected":

  1. Uninstall the broken copy: Extensions → search "typed-virtual-modules" or "Typed Virtual Modules" → Uninstall the invalid one (e.g. v0.0.0 or the one with the warning icon).
  2. Run from workspace using the launch config above (do not install from the marketplace unless you have a published build).

After uninstalling the invalid extension, reload the window and run the extension from the repo via F5.