MCPcopy Index your code
hub / github.com/HuolalaTech/page-spy

github.com/HuolalaTech/page-spy @v1.5.7

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.5.7 ↗ · + Follow
457 symbols 1,118 edges 99 files 1 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Page Spy SDK

PageSpy is a developer platform for debugging web page.

Coverage Status NPM Package Minified size

PageSpy - Remote debugging as seamless as local debugging. | Product Hunt PageSpy - Remote debugging as seamless as local debugging. | Hacker News

English | 中文

What's this

This repo is the SDK which be used in HuolalaTech/page-spy-web, where SDK collects information and page-spy-web consumes and filters, organizes, and converts information into a standardized format, which is then showed on the page.

Usage

For data security and your convenience, we provide a complete and out-of-box solution. Read the "How to use" section in the HuolalaTech/page-spy-web to get more detail.

After the integration, open your project in browser, there should be a widget (round container with white background and include logo) on the bottom left. If not, check your config.

The init parameters

Web

For browser, all parameters are optional, here is a description of each property and its default value:

window.$pageSpy = new PageSpy(config?: InitConfig)

interface InitConfig {
  // The SDK automatically analyses and determines the address of
  // the Server (api) and the address of the debug side (clientOrigin)
  // from the "src" value, assuming you introduced it from https://example.com/page-spy/index.min.js,
  // so the SDK will set it up internally:
  //   - api: "example.com"
  //   - clientOrigin: "https://example.com"
  // If your service is deployed elsewhere, you can manually specify here to override.
  api?: string;
  clientOrigin?: string;

  // "project" is an aggregation of information that can be searched in the room list on the debug side.
  // default: 'default'
  project?: string;

  // "title" is a user-defined parameter that can be used to distinguish the current debugging client,
  // and the corresponding information is displayed under the "device id" in each debugging connection panel.
  // default: '--'
  title?: string;

  // Indicates whether the SDK will automatically render the "Circle with Logo on White Background"
  // control in the bottom left corner of the client when initiation is complete. If set to false,
  // you can call window.$pageSpy.render() to render it manually.
  // default: true
  autoRender?: boolean;

  // Manually specify the scheme of the PageSpy service.
  // This works if the SDK can't correctly analyse the scheme, e.g. if PageSpy's browser plugin
  // is introduced into the SDK via chrome-extension://xxx/sdk/index.min.js, which will be
  // be parsed by the SDK as an invalid "chrome-extension://" and fallback to ["http://", "ws://"].
  //   - (Default) Pass the value undefined or null: the SDK will parse it automatically;
  //   - Pass boolean value:
  //     - true: the SDK will access the PageSpy service via ["https://", "wss://"].
  //     - false: the SDK will access the PageSpy service via ["http://", "wss://"]
  enableSSL?: boolean | null;
}

Mini Program

Except for the api parameter, all parameters are optional, here is a description of each property and its default value:

const pageSpy = new PageSpy(config?: InitConfig)

interface InitConfig {
  // Server domain, must be provided。
  // Example:"example.com"
  api: string;

  // "project" is an aggregation of information that can be searched in the room list on the debug side.
  // default: 'default'
  project?: string;

  // "title" is a user-defined parameter that can be used to distinguish the current debugging client,
  // and the corresponding information is displayed under the "device id" in each debugging connection panel.
  // default: '--'
  title?: string;

  // Manually specify the scheme of the PageSpy service.
  // Note that except for development environment, mini-program requires the scheme to be set to "https", so:
  //  - By default, pass the value undefined or null, the SDK will parse it to TRUE;
  //  - true: the SDK will access the PageSpy service via ["https://", "wss://"];
  //  - false: the SDK will access the PageSpy service via ["http://", "wss://"].
  enableSSL?: boolean | null;

  // Disable pagespy on release environment.
  // - true (Default): only allow pagespy init on develop and trail environment.
  // - false: allow using in release environment
  disabledOnProd?: boolean | null;
}

For more details of mini-program usage, please refer to Mini-Program Usage

Extension points exported contracts — how you extend this code

PageSpyPlugin (Interface)
(no doc) [12 implementers]
types/web.d.ts
PageSpyConstructor (Interface)
(no doc) [2 implementers]
types/miniprogram.d.ts
PSLog (Interface)
* The methods are used for internal calls.
src/utils/index.ts
DataItem (Interface)
(no doc)
types/lib/page.d.ts
CookieChangeEvent (Interface)
(no doc)
src/packages/web/env.d.ts
RequestsInfo (Interface)
(no doc)
tests/web/plugins/network/util.ts
RequestsInfo (Interface)
(no doc)
tests/miniprogram/plugins/util.ts
PageSpyConstructor (Interface)
(no doc) [2 implementers]
types/web.d.ts

Core symbols most depended-on inside this repo

onCreated
called by 52
types/web.d.ts
get
called by 35
src/packages/web/env.d.ts
addTest
called by 25
src/packages/web/deps/modernizr.js
transformToAtom
called by 23
src/utils/atom.ts
computeRequestMapInfo
called by 21
tests/web/plugins/network/util.ts
send
called by 20
tests/miniprogram/mock/wx.ts
createElement
called by 19
src/packages/web/deps/modernizr.js
success
called by 18
src/packages/miniprogram/plugins/storage.ts

Shape

Method 177
Function 158
Class 76
Interface 44
Enum 2

Languages

TypeScript100%

Modules by API surface

src/packages/web/deps/modernizr.js37 symbols
src/utils/index.ts33 symbols
tests/miniprogram/mock/wx.ts31 symbols
src/utils/socket-base.ts29 symbols
tests/miniprogram/mock/storage.ts15 symbols
src/packages/web/index.ts14 symbols
src/utils/atom.ts13 symbols
src/packages/miniprogram/plugins/storage.ts13 symbols
src/packages/web/helpers/socket.ts12 symbols
src/packages/web/plugins/database.ts11 symbols
src/packages/miniprogram/helpers/socket.ts11 symbols
src/packages/web/plugins/storage.ts10 symbols

For agents

$ claude mcp add page-spy \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page