{"id":26891719,"url":"https://github.com/hyperse-io/code-inspector","last_synced_at":"2026-04-28T14:01:25.376Z","repository":{"id":249211059,"uuid":"830859610","full_name":"hyperse-io/code-inspector","owner":"hyperse-io","description":"Easily inspect components in the browser, click to navigate source code in your local IDE.","archived":false,"fork":false,"pushed_at":"2026-04-23T14:26:48.000Z","size":11052,"stargazers_count":3,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-23T15:15:57.501Z","etag":null,"topics":["code","code-inspector","hyperse","inspector","nextjs","reactjs","rust","swc","turbo","vuejs"],"latest_commit_sha":null,"homepage":"https://hyperse-io.github.io/code-inspector","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hyperse-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["hyperse-net"]}},"created_at":"2024-07-19T06:38:44.000Z","updated_at":"2026-04-23T14:26:52.000Z","dependencies_parsed_at":"2025-05-31T15:23:45.594Z","dependency_job_id":null,"html_url":"https://github.com/hyperse-io/code-inspector","commit_stats":null,"previous_names":["hyperse-io/code-inspector"],"tags_count":137,"template":false,"template_full_name":null,"purl":"pkg:github/hyperse-io/code-inspector","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperse-io%2Fcode-inspector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperse-io%2Fcode-inspector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperse-io%2Fcode-inspector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperse-io%2Fcode-inspector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hyperse-io","download_url":"https://codeload.github.com/hyperse-io/code-inspector/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperse-io%2Fcode-inspector/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32383791,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T11:25:28.583Z","status":"ssl_error","status_checked_at":"2026-04-28T11:25:05.435Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["code","code-inspector","hyperse","inspector","nextjs","reactjs","rust","swc","turbo","vuejs"],"created_at":"2025-03-31T22:41:24.816Z","updated_at":"2026-04-28T14:01:25.325Z","avatar_url":"https://github.com/hyperse-io.png","language":"TypeScript","funding_links":["https://github.com/sponsors/hyperse-net"],"categories":[],"sub_categories":[],"readme":"# Hyperse Inspector\n\n@hyperse/inspector is the tool for seamlessly navigating from your browser to your IDE.\nWith just a simple click, you can jump from a React component in the browser to its source code in your local IDE instantly.\nThink of it as a supercharged version of Chrome's Inspector, tailored for developers.\n\n[![Build](https://img.shields.io/github/actions/workflow/status/hyperse-io/code-inspector/ci-integrity.yml?branch=main\u0026label=ci\u0026logo=github\u0026style=flat-quare\u0026labelColor=000000)](https://github.com/hyperse-io/code-inspector/actions?query=workflow%3ACI)\n[![Version](https://img.shields.io/npm/v/%40hyperse%2Finspector?branch=main\u0026label=version\u0026logo=npm\u0026style=flat-quare\u0026labelColor=000000)](https://www.npmjs.com/package/@hyperse/inspector)\n[![Top Language](https://img.shields.io/github/languages/top/hyperse-io/code-inspector?style=flat-square\u0026labelColor=000\u0026color=blue)](https://github.com/hyperse-io/code-inspector/search?l=typescript)\n[![License](https://img.shields.io/github/license/hyperse-io/code-inspector?style=flat-quare\u0026labelColor=000000)](https://github.com/hyperse-io/code-inspector/blob/main/LICENSE)\n\n## Table of Contents\n\n- [Why @hyperse/inspector?](#why-hyperseinspector)\n- [Key Features](#key-features)\n- [Default Hotkeys](#default-hotkeys)\n- [Quick Look](#quick-look)\n- [Installation](#installation)\n- [How to Use and Configure](#how-to-use-and-configure)\n  - [Step 1: Install Packages](#step-1-install-packages)\n  - [Step 2: Add the Inspector Component to Your App](#step-2-add-the-inspector-component-to-your-app)\n  - [Step 3: Configure the Build Tool Plugin (Babel or SWC)](#step-3-configure-the-build-tool-plugin-babel-or-swc)\n  - [Step 4: Configure the Dev Server Middleware](#step-4-configure-the-dev-server-middleware)\n    - [Webpack](#webpack)\n    - [Vite](#vite)\n    - [Rspack](#rspack)\n    - [Next.js](#nextjs)\n- [Customization](#customization)\n  - [Custom Hotkeys](#custom-hotkeys)\n  - [Controlled Mode](#controlled-mode)\n- [How It Works](#how-it-works)\n- [Supported IDEs/Editors](#supported-ideseditors)\n- [Troubleshooting](#troubleshooting)\n- [Contributing](#contributing)\n- [License](#license)\n- [Acknowledgements](#acknowledgements)\n\n## Why @hyperse/inspector?\n\nHave you ever run into any of these issues 🤔:\n\n- You need to fix bugs in a team project, but you're lost trying to find where the page/component's code is located.\n- You're excited to explore an open-source project, but struggle to pinpoint the implementation of a specific page or component.\n- You're thinking about a component and want a quick peek at its code, without memorizing or manually navigating through deeply nested file paths.\n\nThat's exactly why **@hyperse/inspector** was created – to make your development workflow smoother and more efficient!\n\n## Features\n\n- ✨ **Instant Code Navigation:** Click on a UI element in the browser and jump directly to its source code in your IDE.\n- 🔌 **IDE Integration:** Launches your configured IDE/Editor pointing to the exact file and line number.\n- 🛠️ **Multi-framework Support:** Works with popular bundlers and frameworks like Vite, Webpack, Rspack, and more.\n- 🚀 **Native SWC Plugin:** Includes a high-performance SWC plugin for projects using SWC.\n- ⚛️ **React 19 Ready:** Compatible with the latest React versions, including React 19.\n- ⌨️ **Customizable Hotkeys:** Change the activation hotkey to fit your preferences.\n- 🌍 **Universal:** Designed to work with various project setups.\n\n### Swc version \n\nDue to the version incompatibility issue of swc, it is recommended that developers use the `@hyperse/inspector:\"~x.x.x\"` version to depend on the inspector package.\n\nStarting from version 2.0, there will be incompatibilities in the minor versions. The fundamental reason for this is due to the swc_core version. The specific corresponding relationship can be viewed at [selecting-swc-core](https://swc.rs/docs/plugin/selecting-swc-core).\n\n#### Usage rspack\n- rspack \u003e= 1.6.0, use 2.x\n- rspack \u003c 1.6.0, use 1.x\n\n#### Usage nextjs\nSince the version of swc_core that turbopack relies on has not been upgraded yet, please use the 1.x version first.\n\n### Default Hotkeys\n\n- macOS: `⌘ + i`\n- Windows/Linux: `Ctrl + i`\n\nYou can customize the hotkeys by passing the `keys` prop to the `\u003cInspector/\u003e` component.\n\n## Installation\n\nChoose your preferred package manager:\n\n```bash\n# npm\nnpm install --save-dev @hyperse/inspector @hyperse/inspector-middleware @hyperse/inspector-babel-plugin # or @hyperse/inspector-swc-plugin\n# For Next.js projects, also install:\nnpm install --save-dev @hyperse/next-inspector\n\n# yarn\nyarn add --dev @hyperse/inspector @hyperse/inspector-middleware @hyperse/inspector-babel-plugin # or @hyperse/inspector-swc-plugin\n# For Next.js projects, also install:\nyarn add --dev @hyperse/next-inspector\n\n# pnpm\npnpm add --save-dev @hyperse/inspector @hyperse/inspector-middleware @hyperse/inspector-babel-plugin # or @hyperse/inspector-swc-plugin\n# For Next.js projects, also install:\npnpm add --save-dev @hyperse/next-inspector\n```\n\n## How to Use and Configure\n\nSetting up `@hyperse/inspector` involves a few steps:\n\n### Step 1: Install Packages\n\n(Covered in the [Installation](#installation) section above.) Make sure you install:\n\n1.  `@hyperse/inspector`: The core React component.\n2.  `@hyperse/inspector-middleware`: The dev server middleware.\n3.  Either `@hyperse/inspector-babel-plugin` (for Babel users) or `@hyperse/inspector-swc-plugin` (for SWC users).\n4.  For Next.js projects, also install:\n    - `@hyperse/next-inspector`: The Next.js plugin\n\n### Step 2: Add the Inspector Component to Your App\n\nImport and render the `\u003cInspector /\u003e` component in your application's root or main layout component. It's a good practice to only include it during development.\n\n```tsx\n// src/App.tsx or your main layout component\nimport { Inspector } from '@hyperse/inspector';\nimport { useState } from 'react'; // Optional: for controlled mode\n\nexport default function App() {\n  // Optional: for controlled mode\n  const [inspectorActive, setInspectorActive] = useState(false);\n\n  // Conditionally render the Inspector only in development\n  const isDevelopment = process.env.NODE_ENV === 'development';\n\n  return (\n    \u003cdiv\u003e\n      {isDevelopment \u0026\u0026 (\n        \u003cInspector\n        // Optional: Customize hotkeys\n        // keys={['Control', 'Shift', 'i']}\n        // Optional: Controlled mode\n        // active={inspectorActive}\n        // onActiveChange={setInspectorActive}\n        /\u003e\n      )}\n      {/* Your other application components */}\n    \u003c/div\u003e\n  );\n}\n```\n\n### Step 3: Configure the Build Tool Plugin (Babel or SWC)\n\nThis plugin injects necessary source location information into your JSX elements during the build process.\n\n#### For Babel Users (`@hyperse/inspector-babel-plugin`)\n\nAdd `@hyperse/inspector-babel-plugin` to your Babel configuration (e.g., `babel.config.js` or `.babelrc.js`).\n\n```javascript\n// babel.config.js\nmodule.exports = {\n  presets: [\n    '@babel/preset-env',\n    '@babel/preset-typescript',\n    ['@babel/preset-react', { runtime: 'automatic' }],\n  ],\n  plugins: [\n    // Add the inspector plugin only in development mode\n    process.env.NODE_ENV === 'development' \u0026\u0026 '@hyperse/inspector-babel-plugin',\n    // Filter out falsy values in case NODE_ENV is not 'development'\n  ].filter(Boolean),\n};\n```\n\n#### For SWC Users (`@hyperse/inspector-swc-plugin`)\n\nAdd `@hyperse/inspector-swc-plugin` to your SWC configuration (e.g., `.swcrc` or within your bundler's SWC loader options).\n\n**Example for `.swcrc`:**\n\n```json\n{\n  \"jsc\": {\n    \"parser\": {\n      \"syntax\": \"typescript\",\n      \"tsx\": true\n    },\n    \"transform\": {\n      \"react\": {\n        \"runtime\": \"automatic\"\n      }\n    },\n    \"experimental\": {\n      \"plugins\": [[\"@hyperse/inspector-swc-plugin\", {}]]\n    }\n  }\n}\n```\n\n_Note: Ensure the SWC plugin is only applied in development if configuring through bundler options._\n\n### Step 4: Configure the Dev Server Middleware\n\nThe middleware listens for requests from the inspector component and launches your IDE.\n\n#### Next.js\n\nFor Next.js projects, you can use the official `@hyperse/next-inspector` plugin. Here's how to configure it:\n\n```javascript\n// next.config.mjs\nimport { resolve } from 'path';\nimport { createNextConfig } from '@hyperse/next-config';\nimport withNextInspector from '@hyperse/next-inspector/plugin';\n\nconst plugins = [\n  withNextInspector({\n    projectCwd: resolve(process.cwd()),\n    trustedEditor: 'cursor', // or 'vscode', 'webstorm', etc.\n    customLaunchEditorEndpoint: '/hps_inspector',\n    keys: ['$mod', 'g'], // Customize hotkeys\n    hideDomPathAttr: false,\n  }),\n];\n\nconst nextConfig = {\n  // Your Next.js config options\n};\n\nexport default createNextConfig(nextConfig, plugins);\n```\n\nKey configuration options for Next.js:\n\n- `projectCwd`: Your project's root directory\n- `trustedEditor`: Your preferred IDE (e.g., 'cursor', 'vscode', 'webstorm')\n- `customLaunchEditorEndpoint`: Custom endpoint for launching the editor\n- `keys`: Custom hotkey configuration\n- `hideDomPathAttr`: Whether to hide DOM path attributes in production\n\n#### Webpack\n\nIn your `webpack.config.js` (or equivalent for development):\n\n```javascript\n// webpack.config.js\nconst { createInspectorMiddleware } = require('@hyperse/inspector-middleware');\n\nmodule.exports = (env, argv) =\u003e {\n  const isDev = argv.mode === 'development';\n\n  return {\n    // ... other webpack config\n    devServer: {\n      // ... other devServer config\n      setupMiddlewares: (middlewares, devServer) =\u003e {\n        if (isDev) {\n          /**\n           * @hyperse/inspector server middleware\n           */\n          middlewares.unshift(createInspectorMiddleware({}));\n        }\n        // Your other middlewares\n        return middlewares;\n      },\n    },\n    module: {\n      rules: [\n        // Example for Babel loader (ensure Step 3 is configured)\n        {\n          test: /\\.(js|jsx|ts|tsx)$/,\n          exclude: /node_modules/,\n          use: {\n            loader: 'babel-loader',\n            // Babel options can be here or in babel.config.js\n          },\n        },\n        // Example for SWC loader (ensure Step 3 is configured if using .swcrc, or configure plugin here)\n        // {\n        //   test: /\\.tsx?$/,\n        //   exclude: /node_modules/,\n        //   use: {\n        //     loader: 'swc-loader', // or 'builtin:swc-loader' for Rspack/Turbopack\n        //     options: { // SWC options, including the plugin if not using .swcrc\n        //       jsc: {\n        //         experimental: {\n        //           plugins: isDev ? [['@hyperse/inspector-swc-plugin', {}]] : [],\n        //         },\n        //         // ... other jsc options\n        //       },\n        //     },\n        //   },\n        // },\n      ],\n    },\n    // ... other webpack config\n  };\n};\n```\n\n#### Vite\n\nIn your `vite.config.ts` (or `.js`):\n\n```typescript\n// vite.config.ts\nimport { defineConfig } from 'vite';\nimport react from '@vitejs/plugin-react';\nimport { createInspectorMiddleware } from '@hyperse/inspector-middleware'; // Corrected package\n\nexport default defineConfig(({ mode }) =\u003e {\n  const isDevelopment = mode === 'development';\n\n  return {\n    plugins: [\n      react({\n        // If using Babel for JSX transformation with Vite:\n        babel: {\n          plugins: [isDevelopment \u0026\u0026 '@hyperse/inspector-babel-plugin'].filter(\n            Boolean\n          ),\n        },\n        // If using SWC (default for @vitejs/plugin-react v3+),\n        // ensure @hyperse/inspector-swc-plugin is in your .swcrc\n        // or configure it via swc options if available in plugin-react.\n      }),\n      // Middleware for @hyperse/inspector\n      isDevelopment \u0026\u0026 {\n        name: 'hyperse-inspector-middleware',\n        configureServer(server) {\n          server.middlewares.use(createInspectorMiddleware({}));\n        },\n      },\n    ].filter(Boolean),\n    // ... other Vite config\n  };\n});\n```\n\n_For SWC with Vite: If `@vitejs/plugin-react` uses SWC, ensure `@hyperse/inspector-swc-plugin` is configured in your project's `.swcrc` file. Vite's React plugin will pick it up._\n\n#### Rspack\n\nIn your `rspack.config.js` (or equivalent for development):\n\n```javascript\n// rspack.config.js\nconst { createInspectorMiddleware } = require('@hyperse/inspector-middleware');\n\nmodule.exports = (env, argv) =\u003e {\n  const isDev = process.env.NODE_ENV === 'development'; // Rspack often uses NODE_ENV\n\n  return {\n    // ... other Rspack config\n    devServer: {\n      // ... other devServer config\n      setupMiddlewares: (middlewares, devServer) =\u003e {\n        if (isDev) {\n          /**\n           * @hyperse/inspector server middleware\n           */\n          middlewares.unshift(createInspectorMiddleware({}));\n        }\n        // Your other middlewares\n        return middlewares;\n      },\n    },\n    module: {\n      rules: [\n        // Example for builtin:swc-loader (ensure Step 3 is configured for SWC)\n        {\n          test: /\\.(js|jsx|ts|tsx)$/,\n          exclude: /node_modules/,\n          loader: 'builtin:swc-loader',\n          options: {\n            jsc: {\n              parser: { syntax: 'typescript', tsx: true },\n              transform: { react: { runtime: 'automatic' } },\n              experimental: {\n                plugins: isDev ? [['@hyperse/inspector-swc-plugin', {}]] : [],\n              },\n            },\n          },\n        },\n      ],\n    },\n    // ... other Rspack config\n  };\n};\n```\n\n## Customization\n\n### Custom Hotkeys\n\nYou can customize the activation hotkeys by passing the `keys` prop to the `\u003cInspector /\u003e` component.\nThe `keys` prop accepts an array of strings representing `KeyboardEvent.key` values.\n\n```tsx\n\u003cInspector keys={['Shift', 'Alt', 'c']} /\u003e\n```\n\nThis will set the hotkey to `Shift + Alt + c`.\n\n### Controlled Mode\n\nFor more fine-grained control over the inspector's visibility, you can use the `active` and `onActiveChange` props.\n\n```tsx\nimport { Inspector } from '@hyperse/inspector';\nimport { useState } from 'react';\n\nfunction MyComponent() {\n  const [showInspector, setShowInspector] = useState(false);\n\n  return (\n    \u003c\u003e\n      \u003cbutton onClick={() =\u003e setShowInspector(!showInspector)}\u003e\n        Toggle Inspector Programmatically\n      \u003c/button\u003e\n      \u003cInspector\n        active={showInspector}\n        onActiveChange={setShowInspector}\n        // You can still provide custom keys or use default\n      /\u003e\n    \u003c/\u003e\n  );\n}\n```\n\n## How It Works\n\nHere's a simplified overview of the `@hyperse/inspector` pipeline:\n\n```mermaid\nsequenceDiagram\n  autonumber\n  participant Dev as Developer Browser\n  participant UI as Inspector Component (client)\n  participant Trans as Babel/SWC Plugin (build)\n  participant MW as Dev Server Middleware\n  participant Launch as Launcher (e.g., launch-editor)\n  participant IDE as IDE\n\n  rect rgb(240,245,255)\n    note over Trans: Build-time transformation\n    Trans-\u003e\u003eTrans: Inject data-hps-* attrs (filename:line:col)\n  end\n\n  Dev-\u003e\u003eUI: Press hotkey / click inspect\n  UI-\u003e\u003eMW: HTTP request with file, line, column\n  alt Valid request\n    MW-\u003e\u003eLaunch: Spawn editor with file:line:col\n    Launch-\u003e\u003eIDE: Open at location\n    IDE--\u003e\u003eDev: File focused at target\n  else Invalid/unknown\n    MW--\u003e\u003eUI: Error response\n    UI--\u003e\u003eDev: Show error state\n  end\n```\n\n\u003cbr/\u003e\n\n1.  **Part 0: JSX Source Information (Build-time)**\n    - This step is typically handled by your existing React setup (e.g., via Babel's `babel-plugin-transform-react-jsx-source` or SWC's equivalent functionality). It adds `__source` (file path, line number) debug information to JSX elements.\n    - The `@hyperse/inspector-babel-plugin` or `@hyperse/inspector-swc-plugin` leverages this or injects similar information, ensuring it's consistently available and formatted for the inspector.\n\n2.  **Part 1: Inspector Component (Client-side)**\n    - The `\u003cInspector /\u003e` component, when activated (e.g., by hotkey), allows you to select an element on the page.\n    - Upon selection, it reads the source location information (file path, line, column) embedded in the selected React component's DOM element or Fiber node.\n    - It then sends an API request to your development server, containing this source path information.\n\n3.  **Part 2: Dev Server Middleware (Server-side)**\n    - The `@hyperse/inspector-middleware` (e.g., `createInspectorMiddleware`) runs on your development server.\n    - It listens for API requests from the client-side Inspector.\n    - When it receives a request, it uses a launcher utility (like `launch-editor`) to open the specified source file in your configured local IDE/Editor, navigating directly to the correct line and column.\n\n## Supported IDEs/Editors\n\n`@hyperse/inspector` uses `launch-editor` (or a similar mechanism) under the hood, which supports a wide range of popular IDEs and editors. Commonly supported ones include:\n\n- Visual Studio Code (VS Code)\n- WebStorm / IntelliJ IDEA / PhpStorm / PyCharm (and other JetBrains IDEs)\n- Sublime Text\n- Atom\n- Vim / Neovim\n- Emacs\n- And more...\n\nEnsure your chosen IDE is correctly configured in your system's environment variables (e.g., `LAUNCH_EDITOR` or `EDITOR`) or that its command-line interface (CLI) is in your system's `PATH`. For VS Code, simply having `code` in your PATH is usually sufficient.\n\n## Troubleshooting\n\n- **Inspector not opening files / \"Editor not found\":**\n  - Ensure your IDE's command-line tool is installed and added to your system's PATH (e.g., `code` for VS Code).\n  - You might need to set the `LAUNCH_EDITOR` or `EDITOR` environment variable. For example, in your `.bashrc` or `.zshrc`:\n    ```bash\n    export LAUNCH_EDITOR=code # For VS Code\n    # export LAUNCH_EDITOR=webstorm # For WebStorm\n    ```\n  - Restart your development server and terminal after making changes to environment variables.\n- **Component source not found / incorrect location:**\n  - Verify that the Babel or SWC plugin is correctly configured and running only in development mode.\n  - Ensure source maps are being generated correctly if the plugin relies on them indirectly.\n  - Check for any conflicting Babel/SWC plugins that might interfere with source information.\n\n## License\n\nThis project is licensed under the [MIT LICENSE](./LICENSE).\n\n## Related Projects\n\n- [@hyperse/inspector-middleware](https://github.com/hyperse-io/code-inspector/tree/main/packages/inspector-middleware)\n- [@hyperse/inspector-babel-plugin](https://github.com/hyperse-io/code-inspector/tree/main/packages/inspector-babel-plugin)\n- [@hyperse/inspector-swc-plugin](https://github.com/hyperse-io/code-inspector/tree/main/crates/inspector-swc-plugin)\n- [@hyperse/next-inspector](https://github.com/hyperse-io/code-inspector/tree/main/packages/next-inspector)\n- [@hyperse/inspector-component](https://github.com/hyperse-io/code-inspector/tree/main/packages/inspector-component)\n- [@hyperse/inspector-common](https://github.com/hyperse-io/code-inspector/tree/main/packages/inspector-common)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperse-io%2Fcode-inspector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhyperse-io%2Fcode-inspector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperse-io%2Fcode-inspector/lists"}