尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證An extensible in-page network waterfall with bounded local capture, application events, custom toolbar controls, and popups.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗An extensible, in-page network waterfall. Capture fetch, XMLHttpRequest, WebSocket frames, resource timings, and your own application events in one view. The library is plain JavaScript with no runtime dependencies or build step.
npm install web-network-inspector
Use the browser ES module in your application. The core has no runtime
dependencies. React 18 or later is needed only for the optional
web-network-inspector/react entry point.
Requires Node.js 22.5 or later for development.
npm ci
npm start
Open the local URL printed by the server. The example generates synthetic
application events and sends synthetic JSON to httpbin.org when you click the
request button. A bundled response keeps the demo usable if httpbin is unavailable.
PORT selects another port.
With Vite, import the stylesheet as a URL so it loads inside the inspector's Shadow DOM:
import { createInspector } from "web-network-inspector";
import stylesheet from "web-network-inspector/style.css?url";
const inspector = createInspector({ open: true, stylesheet });
inspector.recordEvent({
type: "cart.changed",
label: "Added an item",
correlationId: "example-cart",
data: JSON.stringify({ count: 1 }),
});
Other bundlers can copy web-network-inspector/style.css to a public asset and
pass that URL as stylesheet. A global CSS import does not cross the Shadow DOM
boundary. When serving the source directly, import ./src/index.js and keep
src/style.css beside it. See the getting-started guide
for JavaScript and React examples.
const item = inspector.addBarItem({
id: "connection",
label: "Connection · ready",
onClick: ({ element }) => {
inspector.openPopup({
title: "Connection details",
anchor: element,
content: "Your application supplies this content.",
});
},
});
item.update({ label: "Connection · busy" });
// item.remove();
// inspector.destroy();
See the API reference for custom DOM controls, popup content renderers and cleanup, headless capture, shared views, and message annotation.
Install before creating requests or sockets that you want to inspect. Capture is opt-in per browser scope and held in memory by default. Optional IndexedDB history retains bounded objects across reloads. The inspector does not send telemetry. Resource previews make a separate GET only when requested. Recorded headers, URLs, and bodies can contain sensitive application data; only enable capture where that is appropriate. There is no automatic redaction.
Fetch returns the original response. Its preview uses a bounded read from a clone; the browser's own stream buffering is outside the retained-preview budget. Request streams are never read. XHR and WebSocket callers keep their native results and errors. Existing sockets, other frames, workers, EventSource, and service-worker traffic are not automatically intercepted. Resource timing may omit cross-origin details. Without resource timing, fetch duration ends at response headers, rather than body completion.
Modern browsers with ES modules and Shadow DOM are required. JSON previews preserve number spelling when the browser provides source tokens; otherwise unsafe numbers fall back to raw text. The panel overlays the bottom of the page; reserve space in your application layout if needed. Popup contents are application-owned; a popup is a nonmodal dialog with Escape and focus return.
npm run check
npm test
npx playwright install chromium
npm run test:browser
npm pack --dry-run
Tests run independently of any backend. Browser tests start a loopback server on a free port and close it afterward. The package export list includes only library files, public documentation, and license notices.
Licensed under either Apache-2.0 or MIT, at your
option (MIT OR Apache-2.0). See provenance and third-party notices.
The example includes user-triggered HTTP requests, an event label and level, and three custom bar elements: an environment select, a live event counter, and a connection button with an application-owned popup. Application events are recorded when you interact with a control.
After installing Chromium, run npm run screenshot to exercise the controls
and regenerate examples/screenshots/demo.png and popup.png. The screenshot
script closes its browser and local server when finished.
npm run build:site builds the landing page, live demo, API reference, and
styling guide into dist/. The build captures fresh demo and popup screenshots
from the current source, so the landing image stays in sync on every Pages
deployment. Install Chromium first with npx playwright install chromium.
The API page is generated from docs/api.md.
npm run test:site checks links, static-hosting paths, docs, mobile layout,
and demo interactions under /web-network-inspector/.
GitHub Pages deploys the inspector repository's own artifact on successful main-branch builds. The organization site supplies the shared domain.
An optional React 18+ component is available from web-network-inspector/react.
The core module never imports React, and React is an optional peer dependency.
See the React guide for refs, lifecycle, and styling.
Pass a synchronous filter to createInspector, or configure it on a shared
NetworkCapture. Factories include byHostnames, byOrigins, byMethods,
allOf, anyOf, and not. See the filtering guide.
The demo also connects to Postman’s public WebSocket echo service after you click Connect, then captures sent and echoed messages as separate frames.
Timed application events · Remember layout and sorting · Waterfall columns and custom renderers · Request details and custom iframe renderers · Local history and retention
The public site and demo use synchronized Open Regard display preferences. This integration adds no runtime dependency to the inspector package.