browser-debugger-cli 0.6.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -6
- package/dist/__tests__/smoke/error-handling.smoke.test.js +14 -48
- package/dist/__tests__/smoke/error-handling.smoke.test.js.map +1 -1
- package/dist/__tests__/smoke/session-lifecycle.smoke.test.js +1 -1
- package/dist/__tests__/smoke/session-lifecycle.smoke.test.js.map +1 -1
- package/dist/__testutils__/testCleanup.js +1 -1
- package/dist/__testutils__/testCleanup.js.map +1 -1
- package/dist/cdp/protocol.d.ts +0 -48
- package/dist/cdp/protocol.d.ts.map +1 -1
- package/dist/cdp/protocol.js +0 -94
- package/dist/cdp/protocol.js.map +1 -1
- package/dist/commands/__tests__/cdp.contract.test.js +2 -2
- package/dist/commands/__tests__/cdp.contract.test.js.map +1 -1
- package/dist/commands/__tests__/domEval.contract.test.js +8 -4
- package/dist/commands/__tests__/domEval.contract.test.js.map +1 -1
- package/dist/commands/cdp.d.ts.map +1 -1
- package/dist/commands/cdp.js +4 -37
- package/dist/commands/cdp.js.map +1 -1
- package/dist/commands/cleanup.d.ts.map +1 -1
- package/dist/commands/cleanup.js +4 -17
- package/dist/commands/cleanup.js.map +1 -1
- package/dist/commands/console.d.ts.map +1 -1
- package/dist/commands/console.js +3 -8
- package/dist/commands/console.js.map +1 -1
- package/dist/commands/details.d.ts.map +1 -1
- package/dist/commands/details.js +1 -1
- package/dist/commands/details.js.map +1 -1
- package/dist/commands/{domEvalHelpers.d.ts → dom/evalHelpers.d.ts} +8 -5
- package/dist/commands/dom/evalHelpers.d.ts.map +1 -0
- package/dist/commands/{domEvalHelpers.js → dom/evalHelpers.js} +14 -13
- package/dist/commands/dom/evalHelpers.js.map +1 -0
- package/dist/commands/dom/formFillHelpers.d.ts +47 -0
- package/dist/commands/dom/formFillHelpers.d.ts.map +1 -0
- package/dist/commands/dom/formFillHelpers.js +185 -0
- package/dist/commands/dom/formFillHelpers.js.map +1 -0
- package/dist/commands/dom/formInteraction.d.ts +17 -0
- package/dist/commands/dom/formInteraction.d.ts.map +1 -0
- package/dist/commands/dom/formInteraction.js +239 -0
- package/dist/commands/dom/formInteraction.js.map +1 -0
- package/dist/commands/dom/formSubmitHelpers.d.ts +58 -0
- package/dist/commands/dom/formSubmitHelpers.d.ts.map +1 -0
- package/dist/commands/dom/formSubmitHelpers.js +176 -0
- package/dist/commands/dom/formSubmitHelpers.js.map +1 -0
- package/dist/commands/dom/helpers.d.ts +34 -0
- package/dist/commands/dom/helpers.d.ts.map +1 -0
- package/dist/commands/dom/helpers.js +244 -0
- package/dist/commands/dom/helpers.js.map +1 -0
- package/dist/commands/{dom.d.ts → dom/index.d.ts} +1 -1
- package/dist/commands/dom/index.d.ts.map +1 -0
- package/dist/commands/{dom.js → dom/index.js} +33 -123
- package/dist/commands/dom/index.js.map +1 -0
- package/dist/commands/dom/reactEventHelpers.d.ts +80 -0
- package/dist/commands/dom/reactEventHelpers.d.ts.map +1 -0
- package/dist/commands/dom/reactEventHelpers.js +274 -0
- package/dist/commands/dom/reactEventHelpers.js.map +1 -0
- package/dist/commands/network.js +1 -1
- package/dist/commands/network.js.map +1 -1
- package/dist/commands/peek.d.ts.map +1 -1
- package/dist/commands/peek.js +47 -52
- package/dist/commands/peek.js.map +1 -1
- package/dist/commands/shared/CommandRunner.d.ts.map +1 -1
- package/dist/commands/shared/CommandRunner.js +3 -2
- package/dist/commands/shared/CommandRunner.js.map +1 -1
- package/dist/commands/shared/commonOptions.d.ts.map +1 -1
- package/dist/commands/shared/commonOptions.js +3 -1
- package/dist/commands/shared/commonOptions.js.map +1 -1
- package/dist/commands/shared/daemonErrorHandler.d.ts +30 -0
- package/dist/commands/shared/daemonErrorHandler.d.ts.map +1 -0
- package/dist/commands/shared/daemonErrorHandler.js +32 -0
- package/dist/commands/shared/daemonErrorHandler.js.map +1 -0
- package/dist/commands/shared/{daemonSessionController.d.ts → startHelpers.d.ts} +7 -1
- package/dist/commands/shared/startHelpers.d.ts.map +1 -0
- package/dist/commands/shared/{daemonSessionController.js → startHelpers.js} +13 -5
- package/dist/commands/shared/startHelpers.js.map +1 -0
- package/dist/commands/shared/validation.d.ts +44 -0
- package/dist/commands/shared/validation.d.ts.map +1 -0
- package/dist/commands/shared/validation.js +68 -0
- package/dist/commands/shared/validation.js.map +1 -0
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +9 -25
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +6 -4
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/stop.d.ts.map +1 -1
- package/dist/commands/stop.js +5 -16
- package/dist/commands/stop.js.map +1 -1
- package/dist/commands/tail.d.ts.map +1 -1
- package/dist/commands/tail.js +49 -44
- package/dist/commands/tail.js.map +1 -1
- package/dist/commands/types.d.ts +43 -0
- package/dist/commands/types.d.ts.map +1 -0
- package/dist/commands/types.js +8 -0
- package/dist/commands/types.js.map +1 -0
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +3 -1
- package/dist/commands.js.map +1 -1
- package/dist/connection/__tests__/cdp.contract.test.js +7 -7
- package/dist/connection/__tests__/cdp.contract.test.js.map +1 -1
- package/dist/connection/__tests__/handlers.unit.test.d.ts +11 -0
- package/dist/connection/__tests__/handlers.unit.test.d.ts.map +1 -0
- package/dist/connection/__tests__/handlers.unit.test.js +220 -0
- package/dist/connection/__tests__/handlers.unit.test.js.map +1 -0
- package/dist/connection/__tests__/pageReadiness.contract.test.d.ts +14 -0
- package/dist/connection/__tests__/pageReadiness.contract.test.d.ts.map +1 -0
- package/dist/connection/__tests__/pageReadiness.contract.test.js +382 -0
- package/dist/connection/__tests__/pageReadiness.contract.test.js.map +1 -0
- package/dist/connection/__tests__/portReservation.contract.test.d.ts +14 -0
- package/dist/connection/__tests__/portReservation.contract.test.d.ts.map +1 -0
- package/dist/connection/__tests__/portReservation.contract.test.js +250 -0
- package/dist/connection/__tests__/portReservation.contract.test.js.map +1 -0
- package/dist/connection/cdp.d.ts +34 -11
- package/dist/connection/cdp.d.ts.map +1 -1
- package/dist/connection/cdp.js +61 -45
- package/dist/connection/cdp.js.map +1 -1
- package/dist/connection/config.d.ts +63 -0
- package/dist/connection/config.d.ts.map +1 -0
- package/dist/connection/config.js +46 -0
- package/dist/connection/config.js.map +1 -0
- package/dist/connection/errors.d.ts +6 -21
- package/dist/connection/errors.d.ts.map +1 -1
- package/dist/connection/errors.js +7 -26
- package/dist/connection/errors.js.map +1 -1
- package/dist/connection/events.d.ts +30 -0
- package/dist/connection/events.d.ts.map +1 -0
- package/dist/connection/events.js +8 -0
- package/dist/connection/events.js.map +1 -0
- package/dist/connection/handlers.d.ts +3 -5
- package/dist/connection/handlers.d.ts.map +1 -1
- package/dist/connection/handlers.js +10 -12
- package/dist/connection/handlers.js.map +1 -1
- package/dist/connection/launcher/binaryResolver.d.ts +40 -0
- package/dist/connection/launcher/binaryResolver.d.ts.map +1 -0
- package/dist/connection/launcher/binaryResolver.js +78 -0
- package/dist/connection/launcher/binaryResolver.js.map +1 -0
- package/dist/connection/launcher/flagsBuilder.d.ts +64 -0
- package/dist/connection/launcher/flagsBuilder.d.ts.map +1 -0
- package/dist/connection/launcher/flagsBuilder.js +84 -0
- package/dist/connection/launcher/flagsBuilder.js.map +1 -0
- package/dist/connection/launcher/preferencesLoader.d.ts +74 -0
- package/dist/connection/launcher/preferencesLoader.d.ts.map +1 -0
- package/dist/connection/launcher/preferencesLoader.js +89 -0
- package/dist/connection/launcher/preferencesLoader.js.map +1 -0
- package/dist/connection/launcher.d.ts +24 -1
- package/dist/connection/launcher.d.ts.map +1 -1
- package/dist/connection/launcher.js +30 -205
- package/dist/connection/launcher.js.map +1 -1
- package/dist/connection/pageReadiness.d.ts +8 -8
- package/dist/connection/pageReadiness.d.ts.map +1 -1
- package/dist/connection/pageReadiness.js +36 -52
- package/dist/connection/pageReadiness.js.map +1 -1
- package/dist/connection/portReservation.d.ts +40 -0
- package/dist/connection/portReservation.d.ts.map +1 -0
- package/dist/connection/portReservation.js +55 -0
- package/dist/connection/portReservation.js.map +1 -0
- package/dist/connection/typed-cdp.d.ts +2 -1
- package/dist/connection/typed-cdp.d.ts.map +1 -1
- package/dist/connection/typed-cdp.js.map +1 -1
- package/dist/connection/types.d.ts +103 -0
- package/dist/connection/types.d.ts.map +1 -0
- package/dist/connection/types.js +8 -0
- package/dist/connection/types.js.map +1 -0
- package/dist/constants.d.ts +0 -83
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +0 -83
- package/dist/constants.js.map +1 -1
- package/dist/daemon/__tests__/JsonlParser.unit.test.d.ts +8 -0
- package/dist/daemon/__tests__/JsonlParser.unit.test.d.ts.map +1 -0
- package/dist/daemon/__tests__/JsonlParser.unit.test.js +140 -0
- package/dist/daemon/__tests__/JsonlParser.unit.test.js.map +1 -0
- package/dist/daemon/__tests__/PendingRequestManager.unit.test.d.ts +8 -0
- package/dist/daemon/__tests__/PendingRequestManager.unit.test.d.ts.map +1 -0
- package/dist/daemon/__tests__/PendingRequestManager.unit.test.js +276 -0
- package/dist/daemon/__tests__/PendingRequestManager.unit.test.js.map +1 -0
- package/dist/daemon/__tests__/TelemetryStore.unit.test.d.ts +8 -0
- package/dist/daemon/__tests__/TelemetryStore.unit.test.d.ts.map +1 -0
- package/dist/daemon/__tests__/TelemetryStore.unit.test.js +290 -0
- package/dist/daemon/__tests__/TelemetryStore.unit.test.js.map +1 -0
- package/dist/daemon/__tests__/commandRegistry.contract.test.d.ts +8 -0
- package/dist/daemon/__tests__/commandRegistry.contract.test.d.ts.map +1 -0
- package/dist/daemon/__tests__/commandRegistry.contract.test.js +384 -0
- package/dist/daemon/__tests__/commandRegistry.contract.test.js.map +1 -0
- package/dist/daemon/__tests__/ipcServer.contract.test.js +2 -1
- package/dist/daemon/__tests__/ipcServer.contract.test.js.map +1 -1
- package/dist/daemon/errors.d.ts +65 -0
- package/dist/daemon/errors.d.ts.map +1 -0
- package/dist/daemon/errors.js +82 -0
- package/dist/daemon/errors.js.map +1 -0
- package/dist/daemon/handlers/CommandHandlers.d.ts +32 -0
- package/dist/daemon/handlers/CommandHandlers.d.ts.map +1 -0
- package/dist/daemon/handlers/CommandHandlers.js +93 -0
- package/dist/daemon/handlers/CommandHandlers.js.map +1 -0
- package/dist/daemon/handlers/QueryHandlers.d.ts +35 -0
- package/dist/daemon/handlers/QueryHandlers.d.ts.map +1 -0
- package/dist/daemon/handlers/QueryHandlers.js +176 -0
- package/dist/daemon/handlers/QueryHandlers.js.map +1 -0
- package/dist/daemon/handlers/SessionHandlers.d.ts +32 -0
- package/dist/daemon/handlers/SessionHandlers.d.ts.map +1 -0
- package/dist/daemon/handlers/SessionHandlers.js +227 -0
- package/dist/daemon/handlers/SessionHandlers.js.map +1 -0
- package/dist/daemon/handlers/pendingRequests.d.ts +50 -0
- package/dist/daemon/handlers/pendingRequests.d.ts.map +1 -0
- package/dist/daemon/handlers/pendingRequests.js +57 -0
- package/dist/daemon/handlers/pendingRequests.js.map +1 -0
- package/dist/daemon/handlers/requestHandlers.d.ts +51 -0
- package/dist/daemon/handlers/requestHandlers.d.ts.map +1 -0
- package/dist/daemon/handlers/requestHandlers.js +61 -0
- package/dist/daemon/handlers/requestHandlers.js.map +1 -0
- package/dist/daemon/handlers/responseHandler.d.ts +42 -0
- package/dist/daemon/handlers/responseHandler.d.ts.map +1 -0
- package/dist/daemon/handlers/responseHandler.js +195 -0
- package/dist/daemon/handlers/responseHandler.js.map +1 -0
- package/dist/daemon/ipcServer.d.ts +19 -41
- package/dist/daemon/ipcServer.d.ts.map +1 -1
- package/dist/daemon/ipcServer.js +83 -655
- package/dist/daemon/ipcServer.js.map +1 -1
- package/dist/daemon/launcher.d.ts.map +1 -1
- package/dist/daemon/launcher.js +6 -3
- package/dist/daemon/launcher.js.map +1 -1
- package/dist/daemon/lifecycle/cdpSetup.d.ts +24 -0
- package/dist/daemon/lifecycle/cdpSetup.d.ts.map +1 -0
- package/dist/daemon/lifecycle/cdpSetup.js +59 -0
- package/dist/daemon/lifecycle/cdpSetup.js.map +1 -0
- package/dist/daemon/lifecycle/chromeConnection.d.ts +17 -0
- package/dist/daemon/lifecycle/chromeConnection.d.ts.map +1 -0
- package/dist/daemon/lifecycle/chromeConnection.js +80 -0
- package/dist/daemon/lifecycle/chromeConnection.js.map +1 -0
- package/dist/daemon/lifecycle/signalHandlers.d.ts +14 -0
- package/dist/daemon/lifecycle/signalHandlers.d.ts.map +1 -0
- package/dist/daemon/lifecycle/signalHandlers.js +35 -0
- package/dist/daemon/lifecycle/signalHandlers.js.map +1 -0
- package/dist/daemon/lifecycle/workerCleanup.d.ts +27 -0
- package/dist/daemon/lifecycle/workerCleanup.d.ts.map +1 -0
- package/dist/daemon/lifecycle/workerCleanup.js +144 -0
- package/dist/daemon/lifecycle/workerCleanup.js.map +1 -0
- package/dist/daemon/lifecycle/workerConfig.d.ts +14 -0
- package/dist/daemon/lifecycle/workerConfig.d.ts.map +1 -0
- package/dist/daemon/lifecycle/workerConfig.js +66 -0
- package/dist/daemon/lifecycle/workerConfig.js.map +1 -0
- package/dist/daemon/lifecycle/workerIpc.d.ts +14 -0
- package/dist/daemon/lifecycle/workerIpc.d.ts.map +1 -0
- package/dist/daemon/lifecycle/workerIpc.js +87 -0
- package/dist/daemon/lifecycle/workerIpc.js.map +1 -0
- package/dist/daemon/server/JsonlParser.d.ts +31 -0
- package/dist/daemon/server/JsonlParser.d.ts.map +1 -0
- package/dist/daemon/server/JsonlParser.js +57 -0
- package/dist/daemon/server/JsonlParser.js.map +1 -0
- package/dist/daemon/server/SocketServer.d.ts.map +1 -1
- package/dist/daemon/server/SocketServer.js +2 -2
- package/dist/daemon/server/SocketServer.js.map +1 -1
- package/dist/daemon/server/WorkerManager.d.ts +3 -3
- package/dist/daemon/server/WorkerManager.d.ts.map +1 -1
- package/dist/daemon/server/WorkerManager.js +10 -19
- package/dist/daemon/server/WorkerManager.js.map +1 -1
- package/dist/daemon/services/SessionService.d.ts +87 -0
- package/dist/daemon/services/SessionService.d.ts.map +1 -0
- package/dist/daemon/services/SessionService.js +45 -0
- package/dist/daemon/services/SessionService.js.map +1 -0
- package/dist/daemon/startSession.d.ts.map +1 -1
- package/dist/daemon/startSession.js +54 -31
- package/dist/daemon/startSession.js.map +1 -1
- package/dist/daemon/worker/commandRegistry.d.ts +1 -1
- package/dist/daemon/worker/commandRegistry.d.ts.map +1 -1
- package/dist/daemon/worker/commandRegistry.js +20 -215
- package/dist/daemon/worker/commandRegistry.js.map +1 -1
- package/dist/daemon/worker.d.ts +3 -12
- package/dist/daemon/worker.d.ts.map +1 -1
- package/dist/daemon/worker.js +47 -367
- package/dist/daemon/worker.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/ipc/__tests__/client.contract.test.d.ts +0 -15
- package/dist/ipc/__tests__/client.contract.test.d.ts.map +1 -1
- package/dist/ipc/__tests__/client.contract.test.js +8 -23
- package/dist/ipc/__tests__/client.contract.test.js.map +1 -1
- package/dist/ipc/__tests__/errors.unit.test.d.ts +7 -0
- package/dist/ipc/__tests__/errors.unit.test.d.ts.map +1 -0
- package/dist/ipc/__tests__/errors.unit.test.js +77 -0
- package/dist/ipc/__tests__/errors.unit.test.js.map +1 -0
- package/dist/ipc/__tests__/guards.unit.test.d.ts +7 -0
- package/dist/ipc/__tests__/guards.unit.test.d.ts.map +1 -0
- package/dist/ipc/__tests__/guards.unit.test.js +73 -0
- package/dist/ipc/__tests__/guards.unit.test.js.map +1 -0
- package/dist/ipc/__tests__/jsonl.unit.test.d.ts +7 -0
- package/dist/ipc/__tests__/jsonl.unit.test.d.ts.map +1 -0
- package/dist/ipc/__tests__/jsonl.unit.test.js +85 -0
- package/dist/ipc/__tests__/jsonl.unit.test.js.map +1 -0
- package/dist/ipc/__tests__/validation.unit.test.d.ts +7 -0
- package/dist/ipc/__tests__/validation.unit.test.d.ts.map +1 -0
- package/dist/ipc/__tests__/validation.unit.test.js +60 -0
- package/dist/ipc/__tests__/validation.unit.test.js.map +1 -0
- package/dist/ipc/client.d.ts +93 -84
- package/dist/ipc/client.d.ts.map +1 -1
- package/dist/ipc/client.js +121 -192
- package/dist/ipc/client.js.map +1 -1
- package/dist/ipc/index.d.ts +17 -0
- package/dist/ipc/index.d.ts.map +1 -0
- package/dist/ipc/index.js +23 -0
- package/dist/ipc/index.js.map +1 -0
- package/dist/ipc/protocol/commands.d.ts +144 -0
- package/dist/ipc/protocol/commands.d.ts.map +1 -0
- package/dist/ipc/protocol/commands.js +23 -0
- package/dist/ipc/protocol/commands.js.map +1 -0
- package/dist/ipc/protocol/guards.d.ts +47 -0
- package/dist/ipc/protocol/guards.d.ts.map +1 -0
- package/dist/ipc/protocol/guards.js +62 -0
- package/dist/ipc/protocol/guards.js.map +1 -0
- package/dist/ipc/protocol/index.d.ts +9 -0
- package/dist/ipc/protocol/index.d.ts.map +1 -0
- package/dist/ipc/protocol/index.js +8 -0
- package/dist/ipc/protocol/index.js.map +1 -0
- package/dist/ipc/protocol/messages.d.ts +64 -0
- package/dist/ipc/protocol/messages.d.ts.map +1 -0
- package/dist/ipc/protocol/messages.js +8 -0
- package/dist/ipc/protocol/messages.js.map +1 -0
- package/dist/ipc/session/errors.d.ts +25 -0
- package/dist/ipc/session/errors.d.ts.map +1 -0
- package/dist/ipc/{types.js → session/errors.js} +11 -6
- package/dist/ipc/session/errors.js.map +1 -0
- package/dist/ipc/session/index.d.ts +16 -0
- package/dist/ipc/session/index.d.ts.map +1 -0
- package/dist/ipc/session/index.js +7 -0
- package/dist/ipc/session/index.js.map +1 -0
- package/dist/ipc/session/lifecycle.d.ts +125 -0
- package/dist/ipc/session/lifecycle.d.ts.map +1 -0
- package/dist/ipc/session/lifecycle.js +7 -0
- package/dist/ipc/session/lifecycle.js.map +1 -0
- package/dist/ipc/session/queries.d.ts +94 -0
- package/dist/ipc/session/queries.d.ts.map +1 -0
- package/dist/ipc/session/queries.js +7 -0
- package/dist/ipc/session/queries.js.map +1 -0
- package/dist/ipc/session/types.d.ts +28 -0
- package/dist/ipc/session/types.d.ts.map +1 -0
- package/dist/ipc/session/types.js +7 -0
- package/dist/ipc/session/types.js.map +1 -0
- package/dist/ipc/transport/IPCError.d.ts +82 -0
- package/dist/ipc/transport/IPCError.d.ts.map +1 -0
- package/dist/ipc/transport/IPCError.js +109 -0
- package/dist/ipc/transport/IPCError.js.map +1 -0
- package/dist/ipc/transport/errors.d.ts +11 -0
- package/dist/ipc/transport/errors.d.ts.map +1 -0
- package/dist/ipc/transport/errors.js +28 -0
- package/dist/ipc/transport/errors.js.map +1 -0
- package/dist/ipc/transport/index.d.ts +16 -0
- package/dist/ipc/transport/index.d.ts.map +1 -0
- package/dist/ipc/transport/index.js +77 -0
- package/dist/ipc/transport/index.js.map +1 -0
- package/dist/ipc/transport/jsonl.d.ts +23 -0
- package/dist/ipc/transport/jsonl.d.ts.map +1 -0
- package/dist/ipc/transport/jsonl.js +36 -0
- package/dist/ipc/transport/jsonl.js.map +1 -0
- package/dist/ipc/transport/socket.d.ts +27 -0
- package/dist/ipc/transport/socket.d.ts.map +1 -0
- package/dist/ipc/transport/socket.js +49 -0
- package/dist/ipc/transport/socket.js.map +1 -0
- package/dist/ipc/transport/validation.d.ts +21 -0
- package/dist/ipc/transport/validation.d.ts.map +1 -0
- package/dist/ipc/transport/validation.js +23 -0
- package/dist/ipc/transport/validation.js.map +1 -0
- package/dist/ipc/utils/errors.d.ts +25 -0
- package/dist/ipc/utils/errors.d.ts.map +1 -0
- package/dist/ipc/utils/errors.js +29 -0
- package/dist/ipc/utils/errors.js.map +1 -0
- package/dist/ipc/utils/index.d.ts +12 -0
- package/dist/ipc/utils/index.d.ts.map +1 -0
- package/dist/ipc/utils/index.js +11 -0
- package/dist/ipc/utils/index.js.map +1 -0
- package/dist/ipc/utils/requestId.d.ts +23 -0
- package/dist/ipc/utils/requestId.d.ts.map +1 -0
- package/dist/ipc/utils/requestId.js +27 -0
- package/dist/ipc/utils/requestId.js.map +1 -0
- package/dist/ipc/utils/responseValidator.d.ts.map +1 -0
- package/dist/ipc/{responseValidator.js → utils/responseValidator.js} +2 -1
- package/dist/ipc/utils/responseValidator.js.map +1 -0
- package/dist/ipc/utils/session.d.ts +36 -0
- package/dist/ipc/utils/session.d.ts.map +1 -0
- package/dist/ipc/utils/session.js +37 -0
- package/dist/ipc/utils/session.js.map +1 -0
- package/dist/ipc/utils/types.d.ts +17 -0
- package/dist/ipc/utils/types.d.ts.map +1 -0
- package/dist/ipc/utils/types.js +7 -0
- package/dist/ipc/utils/types.js.map +1 -0
- package/dist/session/__tests__/chrome-cache.contract.test.d.ts +7 -0
- package/dist/session/__tests__/chrome-cache.contract.test.d.ts.map +1 -0
- package/dist/session/__tests__/chrome-cache.contract.test.js +77 -0
- package/dist/session/__tests__/chrome-cache.contract.test.js.map +1 -0
- package/dist/session/__tests__/cleanup.contract.test.d.ts +7 -0
- package/dist/session/__tests__/cleanup.contract.test.d.ts.map +1 -0
- package/dist/session/__tests__/cleanup.contract.test.js +84 -0
- package/dist/session/__tests__/cleanup.contract.test.js.map +1 -0
- package/dist/session/__tests__/lock.contract.test.d.ts +7 -0
- package/dist/session/__tests__/lock.contract.test.d.ts.map +1 -0
- package/dist/session/__tests__/lock.contract.test.js +77 -0
- package/dist/session/__tests__/lock.contract.test.js.map +1 -0
- package/dist/session/__tests__/metadata.contract.test.d.ts +7 -0
- package/dist/session/__tests__/metadata.contract.test.d.ts.map +1 -0
- package/dist/session/__tests__/metadata.contract.test.js +87 -0
- package/dist/session/__tests__/metadata.contract.test.js.map +1 -0
- package/dist/session/chrome.d.ts +20 -0
- package/dist/session/chrome.d.ts.map +1 -1
- package/dist/session/chrome.js +80 -16
- package/dist/session/chrome.js.map +1 -1
- package/dist/session/cleanup.d.ts +15 -2
- package/dist/session/cleanup.d.ts.map +1 -1
- package/dist/session/cleanup.js +100 -72
- package/dist/session/cleanup.js.map +1 -1
- package/dist/session/lock.d.ts.map +1 -1
- package/dist/session/lock.js +101 -90
- package/dist/session/lock.js.map +1 -1
- package/dist/session/metadata.d.ts +10 -3
- package/dist/session/metadata.d.ts.map +1 -1
- package/dist/session/metadata.js +24 -6
- package/dist/session/metadata.js.map +1 -1
- package/dist/session/paths.d.ts +0 -9
- package/dist/session/paths.d.ts.map +1 -1
- package/dist/session/paths.js +0 -11
- package/dist/session/paths.js.map +1 -1
- package/dist/session/pid.d.ts +15 -0
- package/dist/session/pid.d.ts.map +1 -1
- package/dist/session/pid.js +39 -21
- package/dist/session/pid.js.map +1 -1
- package/dist/session/process.d.ts +4 -41
- package/dist/session/process.d.ts.map +1 -1
- package/dist/session/process.js +4 -85
- package/dist/session/process.js.map +1 -1
- package/dist/session/statusData.d.ts +50 -0
- package/dist/session/statusData.d.ts.map +1 -0
- package/dist/session/statusData.js +51 -0
- package/dist/session/statusData.js.map +1 -0
- package/dist/telemetry/__tests__/navigation.contract.test.d.ts +8 -0
- package/dist/telemetry/__tests__/navigation.contract.test.d.ts.map +1 -0
- package/dist/telemetry/__tests__/navigation.contract.test.js +211 -0
- package/dist/telemetry/__tests__/navigation.contract.test.js.map +1 -0
- package/dist/telemetry/__tests__/network.contract.test.d.ts +0 -20
- package/dist/telemetry/__tests__/network.contract.test.d.ts.map +1 -1
- package/dist/telemetry/__tests__/network.contract.test.js +2 -64
- package/dist/telemetry/__tests__/network.contract.test.js.map +1 -1
- package/dist/telemetry/__tests__/utils.unit.test.d.ts +7 -0
- package/dist/telemetry/__tests__/utils.unit.test.d.ts.map +1 -0
- package/dist/telemetry/__tests__/utils.unit.test.js +91 -0
- package/dist/telemetry/__tests__/utils.unit.test.js.map +1 -0
- package/dist/telemetry/console.d.ts.map +1 -1
- package/dist/telemetry/console.js +19 -28
- package/dist/telemetry/console.js.map +1 -1
- package/dist/telemetry/dialogs.d.ts.map +1 -1
- package/dist/telemetry/dialogs.js +4 -8
- package/dist/telemetry/dialogs.js.map +1 -1
- package/dist/telemetry/dom.d.ts.map +1 -1
- package/dist/telemetry/dom.js +51 -59
- package/dist/telemetry/dom.js.map +1 -1
- package/dist/telemetry/filters.d.ts +5 -18
- package/dist/telemetry/filters.d.ts.map +1 -1
- package/dist/telemetry/filters.js +36 -56
- package/dist/telemetry/filters.js.map +1 -1
- package/dist/telemetry/navigation.d.ts.map +1 -1
- package/dist/telemetry/navigation.js +5 -8
- package/dist/telemetry/navigation.js.map +1 -1
- package/dist/telemetry/network.d.ts.map +1 -1
- package/dist/telemetry/network.js +105 -104
- package/dist/telemetry/network.js.map +1 -1
- package/dist/telemetry/utils.d.ts +85 -0
- package/dist/telemetry/utils.d.ts.map +1 -0
- package/dist/telemetry/utils.js +138 -0
- package/dist/telemetry/utils.js.map +1 -0
- package/dist/types/dom.d.ts +66 -0
- package/dist/types/dom.d.ts.map +1 -0
- package/dist/types/dom.js +8 -0
- package/dist/types/dom.js.map +1 -0
- package/dist/types.d.ts +15 -83
- package/dist/types.d.ts.map +1 -1
- package/dist/{commands/shared → ui}/OutputBuilder.d.ts +10 -2
- package/dist/ui/OutputBuilder.d.ts.map +1 -0
- package/dist/{commands/shared → ui}/OutputBuilder.js +8 -2
- package/dist/ui/OutputBuilder.js.map +1 -0
- package/dist/ui/errors/CommandError.d.ts +16 -2
- package/dist/ui/errors/CommandError.d.ts.map +1 -1
- package/dist/ui/errors/CommandError.js +2 -1
- package/dist/ui/errors/CommandError.js.map +1 -1
- package/dist/ui/errors/index.d.ts +2 -3
- package/dist/ui/errors/index.d.ts.map +1 -1
- package/dist/ui/errors/index.js +1 -3
- package/dist/ui/errors/index.js.map +1 -1
- package/dist/ui/errors/utils.d.ts +6 -0
- package/dist/ui/errors/utils.d.ts.map +1 -1
- package/dist/ui/errors/utils.js +8 -3
- package/dist/ui/errors/utils.js.map +1 -1
- package/dist/ui/formatters/dom.d.ts +3 -18
- package/dist/ui/formatters/dom.d.ts.map +1 -1
- package/dist/ui/formatters/dom.js +4 -27
- package/dist/ui/formatters/dom.js.map +1 -1
- package/dist/ui/formatters/preview.d.ts +8 -8
- package/dist/ui/formatters/preview.d.ts.map +1 -1
- package/dist/ui/formatters/preview.js +18 -13
- package/dist/ui/formatters/preview.js.map +1 -1
- package/dist/ui/formatters/status.d.ts +1 -1
- package/dist/ui/formatters/status.d.ts.map +1 -1
- package/dist/ui/formatters/status.js +8 -30
- package/dist/ui/formatters/status.js.map +1 -1
- package/dist/ui/formatting.d.ts +2 -270
- package/dist/ui/formatting.d.ts.map +1 -1
- package/dist/ui/formatting.js +8 -331
- package/dist/ui/formatting.js.map +1 -1
- package/dist/ui/logging/index.d.ts +1 -1
- package/dist/ui/logging/index.d.ts.map +1 -1
- package/dist/ui/logging/index.js +1 -1
- package/dist/ui/logging/index.js.map +1 -1
- package/dist/ui/logging/logger.d.ts +3 -23
- package/dist/ui/logging/logger.d.ts.map +1 -1
- package/dist/ui/logging/logger.js +2 -27
- package/dist/ui/logging/logger.js.map +1 -1
- package/dist/ui/messages/chrome.d.ts +15 -7
- package/dist/ui/messages/chrome.d.ts.map +1 -1
- package/dist/ui/messages/chrome.js +23 -32
- package/dist/ui/messages/chrome.js.map +1 -1
- package/dist/ui/messages/commands.d.ts +2 -19
- package/dist/ui/messages/commands.d.ts.map +1 -1
- package/dist/ui/messages/commands.js +5 -51
- package/dist/ui/messages/commands.js.map +1 -1
- package/dist/ui/messages/consoleMessages.d.ts +1 -1
- package/dist/ui/messages/consoleMessages.d.ts.map +1 -1
- package/dist/ui/messages/consoleMessages.js +3 -6
- package/dist/ui/messages/consoleMessages.js.map +1 -1
- package/dist/ui/messages/debug.d.ts +0 -14
- package/dist/ui/messages/debug.d.ts.map +1 -1
- package/dist/ui/messages/debug.js +0 -18
- package/dist/ui/messages/debug.js.map +1 -1
- package/dist/ui/messages/errors.d.ts +0 -34
- package/dist/ui/messages/errors.d.ts.map +1 -1
- package/dist/ui/messages/errors.js +3 -81
- package/dist/ui/messages/errors.js.map +1 -1
- package/dist/ui/messages/internal.d.ts +0 -7
- package/dist/ui/messages/internal.d.ts.map +1 -1
- package/dist/ui/messages/internal.js +0 -12
- package/dist/ui/messages/internal.js.map +1 -1
- package/dist/ui/messages/preview.d.ts +14 -1
- package/dist/ui/messages/preview.d.ts.map +1 -1
- package/dist/ui/messages/preview.js +24 -7
- package/dist/ui/messages/preview.js.map +1 -1
- package/dist/ui/messages/session.d.ts.map +1 -1
- package/dist/ui/messages/session.js +7 -23
- package/dist/ui/messages/session.js.map +1 -1
- package/dist/ui/messages/validation.d.ts.map +1 -1
- package/dist/ui/messages/validation.js +7 -8
- package/dist/ui/messages/validation.js.map +1 -1
- package/dist/utils/__tests__/atomicFile.test.d.ts +2 -0
- package/dist/utils/__tests__/atomicFile.test.d.ts.map +1 -0
- package/dist/utils/__tests__/atomicFile.test.js +43 -0
- package/dist/utils/__tests__/atomicFile.test.js.map +1 -0
- package/dist/utils/__tests__/objects.test.d.ts +2 -0
- package/dist/utils/__tests__/objects.test.d.ts.map +1 -0
- package/dist/utils/__tests__/objects.test.js +50 -0
- package/dist/utils/__tests__/objects.test.js.map +1 -0
- package/dist/utils/__tests__/session.contract.test.js +13 -3
- package/dist/utils/__tests__/session.contract.test.js.map +1 -1
- package/dist/utils/__tests__/url.test.d.ts +2 -0
- package/dist/utils/__tests__/url.test.d.ts.map +1 -0
- package/dist/utils/__tests__/url.test.js +42 -0
- package/dist/utils/__tests__/url.test.js.map +1 -0
- package/dist/utils/atomicFile.d.ts +31 -5
- package/dist/utils/atomicFile.d.ts.map +1 -1
- package/dist/utils/atomicFile.js +52 -13
- package/dist/utils/atomicFile.js.map +1 -1
- package/dist/utils/concurrency.d.ts +54 -0
- package/dist/utils/concurrency.d.ts.map +1 -0
- package/dist/utils/concurrency.js +78 -0
- package/dist/utils/concurrency.js.map +1 -0
- package/dist/utils/daemonErrors.d.ts +60 -0
- package/dist/utils/daemonErrors.d.ts.map +1 -0
- package/dist/utils/daemonErrors.js +58 -0
- package/dist/utils/daemonErrors.js.map +1 -0
- package/dist/utils/errors.d.ts +28 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +33 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/exitCodes.d.ts +41 -5
- package/dist/utils/exitCodes.d.ts.map +1 -1
- package/dist/utils/exitCodes.js +43 -9
- package/dist/utils/exitCodes.js.map +1 -1
- package/dist/utils/http.d.ts +9 -4
- package/dist/utils/http.d.ts.map +1 -1
- package/dist/utils/http.js +44 -10
- package/dist/utils/http.js.map +1 -1
- package/dist/utils/levenshtein.d.ts +45 -0
- package/dist/utils/levenshtein.d.ts.map +1 -0
- package/dist/utils/levenshtein.js +85 -0
- package/dist/utils/levenshtein.js.map +1 -0
- package/dist/utils/objects.d.ts +16 -1
- package/dist/utils/objects.d.ts.map +1 -1
- package/dist/utils/objects.js +16 -1
- package/dist/utils/objects.js.map +1 -1
- package/dist/utils/process.d.ts +45 -0
- package/dist/utils/process.d.ts.map +1 -0
- package/dist/utils/process.js +91 -0
- package/dist/utils/process.js.map +1 -0
- package/dist/utils/url.d.ts +10 -3
- package/dist/utils/url.d.ts.map +1 -1
- package/dist/utils/url.js +42 -29
- package/dist/utils/url.js.map +1 -1
- package/dist/utils/validation.d.ts +101 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +131 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +1 -1
- package/dist/commands/dom.d.ts.map +0 -1
- package/dist/commands/dom.js.map +0 -1
- package/dist/commands/domEvalHelpers.d.ts.map +0 -1
- package/dist/commands/domEvalHelpers.js.map +0 -1
- package/dist/commands/domOptionsBuilder.d.ts +0 -67
- package/dist/commands/domOptionsBuilder.d.ts.map +0 -1
- package/dist/commands/domOptionsBuilder.js +0 -86
- package/dist/commands/domOptionsBuilder.js.map +0 -1
- package/dist/commands/domSelectorParser.d.ts +0 -20
- package/dist/commands/domSelectorParser.d.ts.map +0 -1
- package/dist/commands/domSelectorParser.js +0 -20
- package/dist/commands/domSelectorParser.js.map +0 -1
- package/dist/commands/shared/OutputBuilder.d.ts.map +0 -1
- package/dist/commands/shared/OutputBuilder.js.map +0 -1
- package/dist/commands/shared/daemonSessionController.d.ts.map +0 -1
- package/dist/commands/shared/daemonSessionController.js.map +0 -1
- package/dist/commands/shared/sessionController.d.ts +0 -21
- package/dist/commands/shared/sessionController.d.ts.map +0 -1
- package/dist/commands/shared/sessionController.js +0 -54
- package/dist/commands/shared/sessionController.js.map +0 -1
- package/dist/connection/__tests__/finder.contract.test.d.ts +0 -2
- package/dist/connection/__tests__/finder.contract.test.d.ts.map +0 -1
- package/dist/connection/__tests__/finder.contract.test.js +0 -239
- package/dist/connection/__tests__/finder.contract.test.js.map +0 -1
- package/dist/connection/domOperations.d.ts +0 -48
- package/dist/connection/domOperations.d.ts.map +0 -1
- package/dist/connection/domOperations.js +0 -106
- package/dist/connection/domOperations.js.map +0 -1
- package/dist/connection/finder.d.ts +0 -12
- package/dist/connection/finder.d.ts.map +0 -1
- package/dist/connection/finder.js +0 -17
- package/dist/connection/finder.js.map +0 -1
- package/dist/ipc/commands.d.ts +0 -260
- package/dist/ipc/commands.d.ts.map +0 -1
- package/dist/ipc/commands.js +0 -77
- package/dist/ipc/commands.js.map +0 -1
- package/dist/ipc/responseValidator.d.ts.map +0 -1
- package/dist/ipc/responseValidator.js.map +0 -1
- package/dist/ipc/types.d.ts +0 -226
- package/dist/ipc/types.d.ts.map +0 -1
- package/dist/ipc/types.js.map +0 -1
- package/dist/session/fileOps.d.ts +0 -25
- package/dist/session/fileOps.d.ts.map +0 -1
- package/dist/session/fileOps.js +0 -39
- package/dist/session/fileOps.js.map +0 -1
- package/dist/session/queryCache.d.ts +0 -36
- package/dist/session/queryCache.d.ts.map +0 -1
- package/dist/session/queryCache.js +0 -66
- package/dist/session/queryCache.js.map +0 -1
- /package/dist/ipc/{responseValidator.d.ts → utils/responseValidator.d.ts} +0 -0
|
@@ -7,40 +7,33 @@ import { extractHostname, extractHostnameWithPath } from '../utils/url.js';
|
|
|
7
7
|
* These generate high volume but are rarely useful for debugging
|
|
8
8
|
*/
|
|
9
9
|
export const DEFAULT_EXCLUDED_DOMAINS = [
|
|
10
|
-
// Google Analytics & Ads
|
|
11
10
|
'analytics.google.com',
|
|
12
11
|
'googletagmanager.com',
|
|
13
12
|
'googleadservices.com',
|
|
14
13
|
'doubleclick.net',
|
|
15
14
|
'google-analytics.com',
|
|
16
|
-
// Microsoft/Bing
|
|
17
15
|
'clarity.ms',
|
|
18
16
|
'bat.bing.com',
|
|
19
|
-
// Social Media Tracking
|
|
20
17
|
'facebook.com',
|
|
21
18
|
'connect.facebook.net',
|
|
22
19
|
'tiktok.com',
|
|
23
20
|
'linkedin.com',
|
|
24
21
|
'twitter.com',
|
|
25
22
|
'snapchat.com',
|
|
26
|
-
// Product Analytics
|
|
27
23
|
'mixpanel.com',
|
|
28
24
|
'segment.com',
|
|
29
25
|
'segment.io',
|
|
30
26
|
'amplitude.com',
|
|
31
27
|
'heap.io',
|
|
32
|
-
// Session Recording & Heatmaps
|
|
33
28
|
'fullstory.com',
|
|
34
29
|
'hotjar.com',
|
|
35
30
|
'logrocket.com',
|
|
36
31
|
'smartlook.com',
|
|
37
|
-
// Ad Networks & Attribution
|
|
38
32
|
'exactag.com',
|
|
39
33
|
'criteo.com',
|
|
40
34
|
'adroll.com',
|
|
41
35
|
'outbrain.com',
|
|
42
36
|
'taboola.com',
|
|
43
|
-
// Other Analytics
|
|
44
37
|
'confirmit.com',
|
|
45
38
|
'newrelic.com',
|
|
46
39
|
'datadoghq.com',
|
|
@@ -49,7 +42,11 @@ export const DEFAULT_EXCLUDED_DOMAINS = [
|
|
|
49
42
|
/**
|
|
50
43
|
* Console message types to exclude by default (Redux/React DevTools noise)
|
|
51
44
|
*/
|
|
52
|
-
export const DEFAULT_EXCLUDED_CONSOLE_TYPES = [
|
|
45
|
+
export const DEFAULT_EXCLUDED_CONSOLE_TYPES = [
|
|
46
|
+
'startGroup',
|
|
47
|
+
'startGroupCollapsed',
|
|
48
|
+
'endGroup',
|
|
49
|
+
];
|
|
53
50
|
/**
|
|
54
51
|
* Console message patterns to exclude by default (dev server noise)
|
|
55
52
|
*/
|
|
@@ -58,17 +55,16 @@ export const DEFAULT_EXCLUDED_CONSOLE_PATTERNS = [
|
|
|
58
55
|
'[HMR]',
|
|
59
56
|
'[WDS]',
|
|
60
57
|
'Download the React DevTools',
|
|
61
|
-
'@@redux',
|
|
62
|
-
'%c prev state',
|
|
63
|
-
'%c action',
|
|
64
|
-
'%c next state',
|
|
58
|
+
'@@redux',
|
|
59
|
+
'%c prev state',
|
|
60
|
+
'%c action',
|
|
61
|
+
'%c next state',
|
|
65
62
|
];
|
|
66
63
|
/**
|
|
67
64
|
* File patterns to skip body fetching by default (assets unlikely to be useful for debugging)
|
|
68
65
|
* These reduce data volume significantly without losing critical debugging information.
|
|
69
66
|
*/
|
|
70
67
|
export const DEFAULT_SKIP_BODY_PATTERNS = [
|
|
71
|
-
// Images
|
|
72
68
|
'*.png',
|
|
73
69
|
'*.jpg',
|
|
74
70
|
'*.jpeg',
|
|
@@ -78,25 +74,20 @@ export const DEFAULT_SKIP_BODY_PATTERNS = [
|
|
|
78
74
|
'*.webp',
|
|
79
75
|
'*.bmp',
|
|
80
76
|
'*.tiff',
|
|
81
|
-
// Fonts
|
|
82
77
|
'*.woff',
|
|
83
78
|
'*.woff2',
|
|
84
79
|
'*.ttf',
|
|
85
80
|
'*.eot',
|
|
86
81
|
'*.otf',
|
|
87
|
-
// Stylesheets
|
|
88
82
|
'*.css',
|
|
89
|
-
// Source maps (can be large and rarely needed)
|
|
90
83
|
'*.map',
|
|
91
84
|
'*.js.map',
|
|
92
85
|
'*.css.map',
|
|
93
|
-
// Videos
|
|
94
86
|
'*.mp4',
|
|
95
87
|
'*.webm',
|
|
96
88
|
'*.ogg',
|
|
97
89
|
'*.avi',
|
|
98
90
|
'*.mov',
|
|
99
|
-
// Audio
|
|
100
91
|
'*.mp3',
|
|
101
92
|
'*.wav',
|
|
102
93
|
'*.flac',
|
|
@@ -137,7 +128,7 @@ export const DEFAULT_SKIP_BODY_MIME_TYPES = [
|
|
|
137
128
|
*/
|
|
138
129
|
export function shouldExcludeDomain(url, includeAll = false) {
|
|
139
130
|
if (includeAll) {
|
|
140
|
-
return false;
|
|
131
|
+
return false;
|
|
141
132
|
}
|
|
142
133
|
const hostname = extractHostname(url).toLowerCase();
|
|
143
134
|
return DEFAULT_EXCLUDED_DOMAINS.some((domain) => hostname.includes(domain.toLowerCase()));
|
|
@@ -147,9 +138,8 @@ export function shouldExcludeDomain(url, includeAll = false) {
|
|
|
147
138
|
*/
|
|
148
139
|
export function shouldExcludeConsoleMessage(text, type, includeAll = false) {
|
|
149
140
|
if (includeAll) {
|
|
150
|
-
return false;
|
|
141
|
+
return false;
|
|
151
142
|
}
|
|
152
|
-
// Check if message type should be excluded (e.g., group messages)
|
|
153
143
|
if (DEFAULT_EXCLUDED_CONSOLE_TYPES.includes(type)) {
|
|
154
144
|
return true;
|
|
155
145
|
}
|
|
@@ -174,17 +164,19 @@ export function shouldExcludeConsoleMessage(text, type, includeAll = false) {
|
|
|
174
164
|
*/
|
|
175
165
|
function evaluatePatternMatch(url, config) {
|
|
176
166
|
const { includePatterns = [], excludePatterns = [], defaultBehavior = 'include' } = config;
|
|
177
|
-
// Parse URL once for all pattern checks
|
|
178
|
-
const hostname = extractHostname(url);
|
|
179
|
-
const hostnameWithPath = extractHostnameWithPath(url);
|
|
180
|
-
// Helper: check if any pattern matches hostname or hostname+path
|
|
181
|
-
const matchesAny = (patterns) => patterns.some((pattern) => matchesWildcard(hostname, pattern) || matchesWildcard(hostnameWithPath, pattern));
|
|
182
|
-
// Compute match states
|
|
183
167
|
const includeSpecified = includePatterns.length > 0;
|
|
184
|
-
const includeMatch = includeSpecified &&
|
|
185
|
-
const excludeMatch = excludePatterns.length > 0 &&
|
|
186
|
-
|
|
187
|
-
|
|
168
|
+
const includeMatch = includeSpecified && matchesAnyPattern(url, includePatterns);
|
|
169
|
+
const excludeMatch = excludePatterns.length > 0 && matchesAnyPattern(url, excludePatterns);
|
|
170
|
+
if (includeMatch) {
|
|
171
|
+
return true;
|
|
172
|
+
}
|
|
173
|
+
if (includeSpecified) {
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
if (excludeMatch) {
|
|
177
|
+
return false;
|
|
178
|
+
}
|
|
179
|
+
return defaultBehavior === 'include';
|
|
188
180
|
}
|
|
189
181
|
/**
|
|
190
182
|
* Simple wildcard pattern matcher.
|
|
@@ -200,26 +192,24 @@ function evaluatePatternMatch(url, config) {
|
|
|
200
192
|
* @returns True if the string matches the pattern
|
|
201
193
|
*/
|
|
202
194
|
export function matchesWildcard(str, pattern) {
|
|
203
|
-
|
|
204
|
-
const
|
|
205
|
-
.replace(/[.+?^${}()|[\]\\]/g, '\\$&') // Escape special chars
|
|
206
|
-
.replace(/\*/g, '.*'); // Replace * with .*
|
|
207
|
-
const regex = new RegExp(`^${regexPattern}$`, 'i'); // Case-insensitive
|
|
195
|
+
const regexPattern = pattern.replace(/[.+?^${}()|[\]\\]/g, '\\$&').replace(/\*/g, '.*');
|
|
196
|
+
const regex = new RegExp(`^${regexPattern}$`, 'i');
|
|
208
197
|
return regex.test(str);
|
|
209
198
|
}
|
|
210
199
|
/**
|
|
211
|
-
* Check if a URL matches any
|
|
200
|
+
* Check if a URL matches any of the provided wildcard patterns.
|
|
212
201
|
*
|
|
213
|
-
*
|
|
214
|
-
* - Bare hostname patterns: `api.example.com` matches all requests to that host
|
|
215
|
-
* - Hostname wildcard patterns: `*analytics*` matches "analytics.google.com/collect"
|
|
216
|
-
* - Path patterns: `*\/api\/*` matches "example.com/api/users"
|
|
217
|
-
* - Combined patterns: `api.example.com\/users` matches specific endpoint
|
|
202
|
+
* Tests both the hostname and hostname+path against each pattern.
|
|
218
203
|
*
|
|
219
204
|
* @param url - The URL to check
|
|
220
|
-
* @param patterns - Array of wildcard patterns
|
|
221
|
-
* @returns True if URL matches any pattern
|
|
205
|
+
* @param patterns - Array of wildcard patterns to test against
|
|
206
|
+
* @returns True if the URL matches any pattern
|
|
222
207
|
*/
|
|
208
|
+
function matchesAnyPattern(url, patterns) {
|
|
209
|
+
const hostname = extractHostname(url);
|
|
210
|
+
const hostnameWithPath = extractHostnameWithPath(url);
|
|
211
|
+
return patterns.some((pattern) => matchesWildcard(hostname, pattern) || matchesWildcard(hostnameWithPath, pattern));
|
|
212
|
+
}
|
|
223
213
|
/**
|
|
224
214
|
* Determine if a response body should be fetched based on URL, MIME type, and patterns.
|
|
225
215
|
*
|
|
@@ -239,14 +229,12 @@ export function matchesWildcard(str, pattern) {
|
|
|
239
229
|
*/
|
|
240
230
|
export function shouldFetchBody(url, mimeType, options = {}) {
|
|
241
231
|
const { fetchAllBodies = false, includePatterns = [], excludePatterns = [] } = options;
|
|
242
|
-
// If includePatterns specified, act as whitelist (trumps everything else)
|
|
243
232
|
if (includePatterns.length > 0) {
|
|
244
233
|
return evaluatePatternMatch(url, {
|
|
245
234
|
includePatterns,
|
|
246
235
|
defaultBehavior: 'exclude',
|
|
247
236
|
});
|
|
248
237
|
}
|
|
249
|
-
// If excludePatterns specified and URL matches → skip (trumps fetchAllBodies)
|
|
250
238
|
if (excludePatterns.length > 0) {
|
|
251
239
|
const matchesExclude = evaluatePatternMatch(url, {
|
|
252
240
|
includePatterns: excludePatterns,
|
|
@@ -256,24 +244,20 @@ export function shouldFetchBody(url, mimeType, options = {}) {
|
|
|
256
244
|
return false;
|
|
257
245
|
}
|
|
258
246
|
}
|
|
259
|
-
// If fetchAllBodies flag is set → fetch everything
|
|
260
247
|
if (fetchAllBodies) {
|
|
261
248
|
return true;
|
|
262
249
|
}
|
|
263
|
-
// Check MIME type against default skip list (case-insensitive)
|
|
264
250
|
if (mimeType) {
|
|
265
|
-
const normalizedMimeType = mimeType.toLowerCase().split(';')[0]?.trim() ?? '';
|
|
251
|
+
const normalizedMimeType = mimeType.toLowerCase().split(';')[0]?.trim() ?? '';
|
|
266
252
|
if (normalizedMimeType &&
|
|
267
253
|
DEFAULT_SKIP_BODY_MIME_TYPES.some((skipType) => normalizedMimeType === skipType.toLowerCase())) {
|
|
268
254
|
return false;
|
|
269
255
|
}
|
|
270
256
|
}
|
|
271
|
-
// Apply default auto-skip URL patterns
|
|
272
257
|
const matchesDefaultSkip = evaluatePatternMatch(url, {
|
|
273
|
-
includePatterns: DEFAULT_SKIP_BODY_PATTERNS,
|
|
258
|
+
includePatterns: [...DEFAULT_SKIP_BODY_PATTERNS],
|
|
274
259
|
defaultBehavior: 'exclude',
|
|
275
260
|
});
|
|
276
|
-
// Default: fetch the body unless it matches default skip patterns
|
|
277
261
|
return !matchesDefaultSkip;
|
|
278
262
|
}
|
|
279
263
|
/**
|
|
@@ -303,7 +287,6 @@ export function shouldFetchBody(url, mimeType, options = {}) {
|
|
|
303
287
|
*/
|
|
304
288
|
export function shouldFetchBodyWithReason(url, mimeType, encodedDataLength, options = {}) {
|
|
305
289
|
const { maxBodySize = 5 * 1024 * 1024 } = options;
|
|
306
|
-
// Check if response is text-based
|
|
307
290
|
const isTextResponse = (mimeType?.includes('json') ?? false) ||
|
|
308
291
|
(mimeType?.includes('javascript') ?? false) ||
|
|
309
292
|
(mimeType?.includes('text') ?? false) ||
|
|
@@ -311,7 +294,6 @@ export function shouldFetchBodyWithReason(url, mimeType, encodedDataLength, opti
|
|
|
311
294
|
if (!isTextResponse) {
|
|
312
295
|
return { should: false, reason: 'Non-text response type' };
|
|
313
296
|
}
|
|
314
|
-
// Check size limits
|
|
315
297
|
if (encodedDataLength > maxBodySize) {
|
|
316
298
|
const sizeStr = `${(encodedDataLength / 1024 / 1024).toFixed(2)}MB`;
|
|
317
299
|
const limitStr = `${(maxBodySize / 1024 / 1024).toFixed(2)}MB`;
|
|
@@ -320,7 +302,6 @@ export function shouldFetchBodyWithReason(url, mimeType, encodedDataLength, opti
|
|
|
320
302
|
reason: `Response too large (${sizeStr} > ${limitStr})`,
|
|
321
303
|
};
|
|
322
304
|
}
|
|
323
|
-
// Use existing shouldFetchBody for pattern matching
|
|
324
305
|
const shouldFetch = shouldFetchBody(url, mimeType, options);
|
|
325
306
|
if (!shouldFetch) {
|
|
326
307
|
return {
|
|
@@ -348,7 +329,6 @@ export function shouldFetchBodyWithReason(url, mimeType, encodedDataLength, opti
|
|
|
348
329
|
*/
|
|
349
330
|
export function shouldExcludeUrl(url, options = {}) {
|
|
350
331
|
const { includePatterns = [], excludePatterns = [] } = options;
|
|
351
|
-
// Use unified pattern matching - invert result since we want exclusion logic
|
|
352
332
|
return !evaluatePatternMatch(url, {
|
|
353
333
|
includePatterns,
|
|
354
334
|
excludePatterns,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.js","sourceRoot":"","sources":["../../src/telemetry/filters.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAY1E;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,
|
|
1
|
+
{"version":3,"file":"filters.js","sourceRoot":"","sources":["../../src/telemetry/filters.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/telemetry/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAK/C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,aAAa,EAClB,WAAW,EAAE,eAAe,EAAE,GAC7B,OAAO,CAAC;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,sBAAsB,EAAE,MAAM,MAAM,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/telemetry/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAK/C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,aAAa,EAClB,WAAW,EAAE,eAAe,EAAE,GAC7B,OAAO,CAAC;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,sBAAsB,EAAE,MAAM,MAAM,CAAA;CAAE,CAAC,CAoC7E"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CDPHandlerRegistry } from '../connection/handlers.js';
|
|
2
|
+
import { TypedCDPConnection } from '../connection/typed-cdp.js';
|
|
2
3
|
import { createLogger } from '../ui/logging/index.js';
|
|
3
4
|
const log = createLogger('navigation');
|
|
4
5
|
/**
|
|
@@ -34,19 +35,16 @@ const log = createLogger('navigation');
|
|
|
34
35
|
*/
|
|
35
36
|
export async function startNavigationTracking(cdp, navigations) {
|
|
36
37
|
const registry = new CDPHandlerRegistry();
|
|
38
|
+
const typed = new TypedCDPConnection(cdp);
|
|
37
39
|
let navigationCounter = 0;
|
|
38
|
-
// Enable Page domain to receive navigation events
|
|
39
40
|
await cdp.send('Page.enable');
|
|
40
|
-
// Record initial navigation (the page we're currently on)
|
|
41
41
|
const initialNavigation = {
|
|
42
|
-
url: '',
|
|
42
|
+
url: '',
|
|
43
43
|
timestamp: Date.now(),
|
|
44
44
|
navigationId: navigationCounter,
|
|
45
45
|
};
|
|
46
46
|
navigations.push(initialNavigation);
|
|
47
|
-
|
|
48
|
-
registry.register(cdp, 'Page.frameNavigated', (params) => {
|
|
49
|
-
// Only track main frame navigations (parentId is undefined for main frame)
|
|
47
|
+
registry.registerTyped(typed, 'Page.frameNavigated', (params) => {
|
|
50
48
|
if (params.frame.parentId === undefined) {
|
|
51
49
|
navigationCounter++;
|
|
52
50
|
const navigation = {
|
|
@@ -58,10 +56,9 @@ export async function startNavigationTracking(cdp, navigations) {
|
|
|
58
56
|
log.debug(`Main frame navigation detected [${navigationCounter}]: ${params.frame.url}`);
|
|
59
57
|
}
|
|
60
58
|
});
|
|
61
|
-
// Return cleanup function and navigation ID getter
|
|
62
59
|
return {
|
|
63
60
|
cleanup: () => {
|
|
64
|
-
registry.cleanup(
|
|
61
|
+
registry.cleanup();
|
|
65
62
|
},
|
|
66
63
|
getCurrentNavigationId: () => navigationCounter,
|
|
67
64
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/telemetry/navigation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/telemetry/navigation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;AAcvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,GAAkB,EAClB,WAA8B;IAE9B,MAAM,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAE1B,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE9B,MAAM,iBAAiB,GAAoB;QACzC,GAAG,EAAE,EAAE;QACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,YAAY,EAAE,iBAAiB;KAChC,CAAC;IACF,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAEpC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,qBAAqB,EAAE,CAAC,MAAM,EAAE,EAAE;QAC9D,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACxC,iBAAiB,EAAE,CAAC;YAEpB,MAAM,UAAU,GAAoB;gBAClC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG;gBACrB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,YAAY,EAAE,iBAAiB;aAChC,CAAC;YAEF,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAE7B,GAAG,CAAC,KAAK,CAAC,mCAAmC,iBAAiB,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,GAAG,EAAE;YACZ,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,CAAC;QACD,sBAAsB,EAAE,GAAG,EAAE,CAAC,iBAAiB;KAChD,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/telemetry/network.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/telemetry/network.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAczD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAkF/D,MAAM,WAAW,wBAAwB;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAC;CACrD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,aAAa,EAClB,QAAQ,EAAE,cAAc,EAAE,EAC1B,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,eAAe,CAAC,CAmI1B"}
|
|
@@ -1,6 +1,67 @@
|
|
|
1
|
+
import { getErrorMessage } from '../connection/errors.js';
|
|
1
2
|
import { CDPHandlerRegistry } from '../connection/handlers.js';
|
|
3
|
+
import { TypedCDPConnection } from '../connection/typed-cdp.js';
|
|
2
4
|
import { MAX_NETWORK_REQUESTS, STALE_REQUEST_TIMEOUT, STALE_REQUEST_CLEANUP_INTERVAL, MAX_RESPONSE_SIZE, CHROME_NETWORK_BUFFER_TOTAL, CHROME_NETWORK_BUFFER_PER_RESOURCE, CHROME_POST_DATA_LIMIT, } from '../constants.js';
|
|
5
|
+
import { createLogger } from '../ui/logging/index.js';
|
|
3
6
|
import { shouldExcludeDomain, shouldExcludeUrl, shouldFetchBodyWithReason } from './filters.js';
|
|
7
|
+
const log = createLogger('network');
|
|
8
|
+
/**
|
|
9
|
+
* Check if a request should be filtered out based on domain and URL patterns.
|
|
10
|
+
*/
|
|
11
|
+
function shouldFilterRequest(url, includeAll, networkInclude, networkExclude) {
|
|
12
|
+
if (shouldExcludeDomain(url, includeAll)) {
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
if (shouldExcludeUrl(url, { includePatterns: networkInclude, excludePatterns: networkExclude })) {
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Fetch response body for a request.
|
|
22
|
+
*/
|
|
23
|
+
function fetchResponseBody(cdp, requestId, request) {
|
|
24
|
+
void cdp
|
|
25
|
+
.send('Network.getResponseBody', { requestId })
|
|
26
|
+
.then((response) => {
|
|
27
|
+
const typedResponse = response;
|
|
28
|
+
request.responseBody = typedResponse.body;
|
|
29
|
+
})
|
|
30
|
+
.catch((error) => {
|
|
31
|
+
log.debug(`Failed to fetch response body for request ${requestId}: ${getErrorMessage(error)}`);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Create a network request from CDP event parameters.
|
|
36
|
+
*/
|
|
37
|
+
function createNetworkRequest(params, getCurrentNavigationId) {
|
|
38
|
+
const navigationId = getCurrentNavigationId?.();
|
|
39
|
+
return {
|
|
40
|
+
requestId: params.requestId,
|
|
41
|
+
url: params.request.url,
|
|
42
|
+
method: params.request.method,
|
|
43
|
+
timestamp: Date.now(),
|
|
44
|
+
requestHeaders: params.request.headers,
|
|
45
|
+
...(params.request.postData !== undefined && { requestBody: params.request.postData }),
|
|
46
|
+
...(navigationId !== undefined && { navigationId }),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Clean up stale requests from the request map.
|
|
51
|
+
*/
|
|
52
|
+
function cleanupStaleRequests(requestMap) {
|
|
53
|
+
const now = Date.now();
|
|
54
|
+
const staleRequests = [];
|
|
55
|
+
requestMap.forEach((value, requestId) => {
|
|
56
|
+
if (now - value.timestamp > STALE_REQUEST_TIMEOUT) {
|
|
57
|
+
staleRequests.push(requestId);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
if (staleRequests.length > 0) {
|
|
61
|
+
log.debug(`Cleaning up ${staleRequests.length} stale network requests`);
|
|
62
|
+
staleRequests.forEach((requestId) => requestMap.delete(requestId));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
4
65
|
/**
|
|
5
66
|
* Start collecting network requests via CDP Network domain.
|
|
6
67
|
*
|
|
@@ -25,12 +86,9 @@ export async function startNetworkCollection(cdp, requests, options = {}) {
|
|
|
25
86
|
const { includeAll = false, fetchAllBodies = false, fetchBodiesInclude = [], fetchBodiesExclude = [], networkInclude = [], networkExclude = [], maxBodySize = MAX_RESPONSE_SIZE, getCurrentNavigationId, } = options;
|
|
26
87
|
const requestMap = new Map();
|
|
27
88
|
const registry = new CDPHandlerRegistry();
|
|
28
|
-
|
|
89
|
+
const typed = new TypedCDPConnection(cdp);
|
|
29
90
|
let bodiesFetched = 0;
|
|
30
91
|
let bodiesSkipped = 0;
|
|
31
|
-
// Enable network tracking with buffer limits (if supported)
|
|
32
|
-
// These parameters are optional and experimental, but widely supported in Chrome 58+
|
|
33
|
-
// See docs/chrome-cdp-compatibility.md for details
|
|
34
92
|
try {
|
|
35
93
|
await cdp.send('Network.enable', {
|
|
36
94
|
maxTotalBufferSize: CHROME_NETWORK_BUFFER_TOTAL,
|
|
@@ -39,46 +97,22 @@ export async function startNetworkCollection(cdp, requests, options = {}) {
|
|
|
39
97
|
});
|
|
40
98
|
}
|
|
41
99
|
catch {
|
|
42
|
-
|
|
43
|
-
console.error('Network buffer limits not supported, using default settings');
|
|
100
|
+
log.debug('Network buffer limits not supported, using default settings');
|
|
44
101
|
await cdp.send('Network.enable');
|
|
45
102
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
const now = Date.now();
|
|
49
|
-
const staleRequests = [];
|
|
50
|
-
requestMap.forEach((value, requestId) => {
|
|
51
|
-
if (now - value.timestamp > STALE_REQUEST_TIMEOUT) {
|
|
52
|
-
staleRequests.push(requestId);
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
if (staleRequests.length > 0) {
|
|
56
|
-
console.error(`Cleaning up ${staleRequests.length} stale network requests`);
|
|
57
|
-
staleRequests.forEach((requestId) => requestMap.delete(requestId));
|
|
58
|
-
}
|
|
59
|
-
}, STALE_REQUEST_CLEANUP_INTERVAL);
|
|
60
|
-
// Listen for requests
|
|
61
|
-
registry.register(cdp, 'Network.requestWillBeSent', (params) => {
|
|
103
|
+
const cleanupInterval = setInterval(() => cleanupStaleRequests(requestMap), STALE_REQUEST_CLEANUP_INTERVAL);
|
|
104
|
+
registry.registerTyped(typed, 'Network.requestWillBeSent', (params) => {
|
|
62
105
|
if (requestMap.size >= MAX_NETWORK_REQUESTS) {
|
|
63
|
-
|
|
106
|
+
log.debug(`Warning: Network request limit reached (${MAX_NETWORK_REQUESTS}), dropping new requests`);
|
|
64
107
|
return;
|
|
65
108
|
}
|
|
66
|
-
const request =
|
|
67
|
-
requestId: params.requestId,
|
|
68
|
-
url: params.request.url,
|
|
69
|
-
method: params.request.method,
|
|
70
|
-
timestamp: Date.now(), // Use actual timestamp, not CDP monotonic time
|
|
71
|
-
requestHeaders: params.request.headers,
|
|
72
|
-
requestBody: params.request.postData,
|
|
73
|
-
navigationId: getCurrentNavigationId?.(),
|
|
74
|
-
};
|
|
109
|
+
const request = createNetworkRequest(params, getCurrentNavigationId);
|
|
75
110
|
requestMap.set(params.requestId, {
|
|
76
111
|
request,
|
|
77
112
|
timestamp: Date.now(),
|
|
78
113
|
});
|
|
79
114
|
});
|
|
80
|
-
|
|
81
|
-
registry.register(cdp, 'Network.responseReceived', (params) => {
|
|
115
|
+
registry.registerTyped(typed, 'Network.responseReceived', (params) => {
|
|
82
116
|
const entry = requestMap.get(params.requestId);
|
|
83
117
|
if (entry) {
|
|
84
118
|
entry.request.status = params.response.status;
|
|
@@ -86,94 +120,61 @@ export async function startNetworkCollection(cdp, requests, options = {}) {
|
|
|
86
120
|
entry.request.responseHeaders = params.response.headers;
|
|
87
121
|
}
|
|
88
122
|
});
|
|
89
|
-
|
|
90
|
-
registry.register(cdp, 'Network.loadingFinished', (params) => {
|
|
123
|
+
registry.registerTyped(typed, 'Network.loadingFinished', (params) => {
|
|
91
124
|
const entry = requestMap.get(params.requestId);
|
|
92
|
-
if (entry
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
requestMap.delete(params.requestId);
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
99
|
-
// Apply URL pattern filtering
|
|
100
|
-
if (shouldExcludeUrl(request.url, {
|
|
101
|
-
includePatterns: networkInclude,
|
|
102
|
-
excludePatterns: networkExclude,
|
|
103
|
-
})) {
|
|
104
|
-
requestMap.delete(params.requestId);
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
// Determine if we should fetch the response body
|
|
108
|
-
const decision = shouldFetchBodyWithReason(request.url, request.mimeType, params.encodedDataLength, {
|
|
109
|
-
fetchAllBodies,
|
|
110
|
-
includePatterns: fetchBodiesInclude,
|
|
111
|
-
excludePatterns: fetchBodiesExclude,
|
|
112
|
-
maxBodySize,
|
|
113
|
-
});
|
|
114
|
-
if (decision.should) {
|
|
115
|
-
bodiesFetched++;
|
|
116
|
-
// Fetch response body asynchronously
|
|
117
|
-
void cdp
|
|
118
|
-
.send('Network.getResponseBody', { requestId: params.requestId })
|
|
119
|
-
.then((response) => {
|
|
120
|
-
const typedResponse = response;
|
|
121
|
-
request.responseBody = typedResponse.body;
|
|
122
|
-
})
|
|
123
|
-
.catch(() => {
|
|
124
|
-
// Response body not available (e.g., 204 No Content, redirects, etc.)
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
bodiesSkipped++;
|
|
129
|
-
request.responseBody = `[SKIPPED: ${decision.reason}]`;
|
|
130
|
-
}
|
|
131
|
-
requests.push(request);
|
|
125
|
+
if (!entry)
|
|
126
|
+
return;
|
|
127
|
+
if (requests.length >= MAX_NETWORK_REQUESTS) {
|
|
128
|
+
log.debug(`Warning: Network request limit reached (${MAX_NETWORK_REQUESTS})`);
|
|
132
129
|
requestMap.delete(params.requestId);
|
|
130
|
+
return;
|
|
133
131
|
}
|
|
134
|
-
|
|
135
|
-
|
|
132
|
+
const request = entry.request;
|
|
133
|
+
if (shouldFilterRequest(request.url, includeAll, networkInclude, networkExclude)) {
|
|
136
134
|
requestMap.delete(params.requestId);
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
const decision = shouldFetchBodyWithReason(request.url, request.mimeType, params.encodedDataLength, {
|
|
138
|
+
fetchAllBodies,
|
|
139
|
+
includePatterns: fetchBodiesInclude,
|
|
140
|
+
excludePatterns: fetchBodiesExclude,
|
|
141
|
+
maxBodySize,
|
|
142
|
+
});
|
|
143
|
+
if (decision.should) {
|
|
144
|
+
bodiesFetched++;
|
|
145
|
+
fetchResponseBody(cdp, params.requestId, request);
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
bodiesSkipped++;
|
|
149
|
+
request.responseBody = `[SKIPPED: ${decision.reason}]`;
|
|
137
150
|
}
|
|
151
|
+
requests.push(request);
|
|
152
|
+
requestMap.delete(params.requestId);
|
|
138
153
|
});
|
|
139
|
-
|
|
140
|
-
registry.register(cdp, 'Network.loadingFailed', (params) => {
|
|
154
|
+
registry.registerTyped(typed, 'Network.loadingFailed', (params) => {
|
|
141
155
|
const entry = requestMap.get(params.requestId);
|
|
142
|
-
if (entry
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
requestMap.delete(params.requestId);
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
|
-
// Apply URL pattern filtering
|
|
149
|
-
if (shouldExcludeUrl(entry.request.url, {
|
|
150
|
-
includePatterns: networkInclude,
|
|
151
|
-
excludePatterns: networkExclude,
|
|
152
|
-
})) {
|
|
153
|
-
requestMap.delete(params.requestId);
|
|
154
|
-
return;
|
|
155
|
-
}
|
|
156
|
-
entry.request.status = 0; // Indicate failure
|
|
157
|
-
requests.push(entry.request);
|
|
156
|
+
if (!entry)
|
|
157
|
+
return;
|
|
158
|
+
if (requests.length >= MAX_NETWORK_REQUESTS) {
|
|
158
159
|
requestMap.delete(params.requestId);
|
|
160
|
+
return;
|
|
159
161
|
}
|
|
160
|
-
|
|
162
|
+
if (shouldFilterRequest(entry.request.url, includeAll, networkInclude, networkExclude)) {
|
|
161
163
|
requestMap.delete(params.requestId);
|
|
164
|
+
return;
|
|
162
165
|
}
|
|
166
|
+
entry.request.status = 0;
|
|
167
|
+
requests.push(entry.request);
|
|
168
|
+
requestMap.delete(params.requestId);
|
|
163
169
|
});
|
|
164
|
-
// Return cleanup function
|
|
165
170
|
return () => {
|
|
166
|
-
// Log PERF metrics
|
|
167
171
|
const totalBodyDecisions = bodiesFetched + bodiesSkipped;
|
|
168
172
|
if (totalBodyDecisions > 0) {
|
|
169
173
|
const percentageSkipped = ((bodiesSkipped / totalBodyDecisions) * 100).toFixed(1);
|
|
170
|
-
|
|
174
|
+
log.debug(`[PERF] Network bodies: ${bodiesFetched} fetched, ${bodiesSkipped} skipped (${percentageSkipped}% reduction)`);
|
|
171
175
|
}
|
|
172
|
-
// Clear interval
|
|
173
176
|
clearInterval(cleanupInterval);
|
|
174
|
-
|
|
175
|
-
registry.cleanup(cdp);
|
|
176
|
-
// Clear request map
|
|
177
|
+
registry.cleanup();
|
|
177
178
|
requestMap.clear();
|
|
178
179
|
};
|
|
179
180
|
}
|