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
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* User-facing messages for the peek command, including empty states,
|
|
5
5
|
* tips, and interactive command suggestions.
|
|
6
|
-
*/
|
|
6
|
+
* */
|
|
7
7
|
// ============================================================================
|
|
8
8
|
// Empty State Messages
|
|
9
9
|
// ============================================================================
|
|
@@ -35,12 +35,12 @@ export function compactTipsMessage() {
|
|
|
35
35
|
* @returns Multi-line commands help for verbose mode
|
|
36
36
|
*/
|
|
37
37
|
export function verboseCommandsMessage() {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
38
|
+
return [
|
|
39
|
+
'Commands:',
|
|
40
|
+
' Stop session: bdg stop',
|
|
41
|
+
' Full preview: bdg peek --last 50',
|
|
42
|
+
' Watch live: bdg tail',
|
|
43
|
+
].join('\n');
|
|
44
44
|
}
|
|
45
45
|
// ============================================================================
|
|
46
46
|
// Follow Mode Messages
|
|
@@ -73,4 +73,21 @@ export function followingPreviewMessage() {
|
|
|
73
73
|
export function stoppedFollowingPreviewMessage() {
|
|
74
74
|
return '\nStopped following preview';
|
|
75
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* Generate connection lost + retry message for follow mode.
|
|
78
|
+
*
|
|
79
|
+
* @param timestamp - ISO timestamp of the event
|
|
80
|
+
* @param retryLabel - Human-readable retry interval (e.g. "1s", "500ms")
|
|
81
|
+
*/
|
|
82
|
+
export function connectionLostRetryMessage(timestamp, retryLabel) {
|
|
83
|
+
return `\n[${timestamp}] ⚠️ Connection lost, retrying every ${retryLabel}...`;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Generate follow-mode stop hint.
|
|
87
|
+
*
|
|
88
|
+
* @returns Message instructing the user how to stop follow mode
|
|
89
|
+
*/
|
|
90
|
+
export function connectionLostStopHintMessage() {
|
|
91
|
+
return 'Press Ctrl+C to stop';
|
|
92
|
+
}
|
|
76
93
|
//# sourceMappingURL=preview.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preview.js","sourceRoot":"","sources":["../../../src/ui/messages/preview.ts"],"names":[],"mappings":"AAAA;;;;;
|
|
1
|
+
{"version":3,"file":"preview.js","sourceRoot":"","sources":["../../../src/ui/messages/preview.ts"],"names":[],"mappings":"AAAA;;;;;KAKK;AAEL,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,OAAO,EAAE,QAAQ;IACjB,mBAAmB,EAAE,yBAAyB;IAC9C,mBAAmB,EAAE,yBAAyB;CACtC,CAAC;AAEX,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,YAAY,EAAE,6BAA6B;CACnC,CAAC;AAEX,+EAA+E;AAC/E,+BAA+B;AAC/B,+EAA+E;AAE/E;;;;GAIG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,yDAAyD,CAAC;AACnE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO;QACL,WAAW;QACX,6BAA6B;QAC7B,uCAAuC;QACvC,6BAA6B;KAC9B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO,8CAA8C,CAAC;AACxD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,8BAA8B;IAC5C,OAAO,6BAA6B,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,SAAiB,EAAE,UAAkB;IAC9E,OAAO,MAAM,SAAS,yCAAyC,UAAU,KAAK,CAAC;AACjF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,6BAA6B;IAC3C,OAAO,sBAAsB,CAAC;AAChC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/ui/messages/session.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/ui/messages/session.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAsC/D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEzD;AAMD;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtD"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Centralized location for all session UI text including landing pages,
|
|
5
5
|
* status displays, and session management messages.
|
|
6
6
|
*/
|
|
7
|
-
import { section } from '../../ui/formatting.js';
|
|
7
|
+
import { section, joinLines } from '../../ui/formatting.js';
|
|
8
8
|
/**
|
|
9
9
|
* Generate the landing page display for session start.
|
|
10
10
|
*
|
|
@@ -23,41 +23,25 @@ import { section } from '../../ui/formatting.js';
|
|
|
23
23
|
*/
|
|
24
24
|
export function landingPage(options) {
|
|
25
25
|
const { url } = options;
|
|
26
|
-
|
|
27
|
-
lines.push('');
|
|
28
|
-
lines.push('◆ Session Started');
|
|
29
|
-
lines.push('');
|
|
30
|
-
lines.push(`Target: ${url}`);
|
|
31
|
-
lines.push('');
|
|
32
|
-
lines.push(section('Raw CDP Access (53 domains, 300+ methods):', [
|
|
26
|
+
return joinLines('', '◆ Session Started', '', `Target: ${url}`, '', section('Raw CDP Access (53 domains, 300+ methods):', [
|
|
33
27
|
'bdg cdp --list List all domains',
|
|
34
28
|
'bdg cdp Network --list List Network methods',
|
|
35
29
|
'bdg cdp --search cookie Search methods',
|
|
36
30
|
'bdg cdp runtime.evaluate --params \'{"expression":"document.title"}\'',
|
|
37
|
-
])
|
|
38
|
-
lines.push('');
|
|
39
|
-
lines.push(section('Live Monitoring:', [
|
|
31
|
+
]), '', section('Live Monitoring:', [
|
|
40
32
|
'bdg peek Preview collected data (last 10 items)',
|
|
41
33
|
'bdg tail Continuous monitoring (live updates)',
|
|
42
34
|
'bdg details <type> <id> Full request/console details',
|
|
43
|
-
])
|
|
44
|
-
lines.push('');
|
|
45
|
-
lines.push(section('Domain Wrappers:', [
|
|
35
|
+
]), '', section('Domain Wrappers:', [
|
|
46
36
|
'bdg dom query <selector> Query DOM elements',
|
|
47
37
|
'bdg dom eval <js> Execute JavaScript',
|
|
48
|
-
])
|
|
49
|
-
lines.push('');
|
|
50
|
-
lines.push(section('Session:', [
|
|
38
|
+
]), '', section('Session:', [
|
|
51
39
|
'bdg status Check session state',
|
|
52
40
|
'bdg stop End session & save output',
|
|
53
|
-
]))
|
|
54
|
-
lines.push('');
|
|
55
|
-
lines.push(section('Discovery (for AI agents):', [
|
|
41
|
+
]), '', section('Discovery (for AI agents):', [
|
|
56
42
|
'bdg --help --json Machine-readable schema (commands, options, exit codes)',
|
|
57
43
|
'.claude/skills/bdg/ Claude skill with 15+ recipes & patterns',
|
|
58
|
-
]));
|
|
59
|
-
lines.push('');
|
|
60
|
-
return lines.join('\n');
|
|
44
|
+
]), '');
|
|
61
45
|
}
|
|
62
46
|
/**
|
|
63
47
|
* Generate "session stopped" success message.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/ui/messages/session.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/ui/messages/session.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAUxD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,WAAW,CAAC,OAA2B;IACrD,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAExB,OAAO,SAAS,CACd,EAAE,EACF,mBAAmB,EACnB,EAAE,EACF,WAAW,GAAG,EAAE,EAChB,EAAE,EACF,OAAO,CAAC,4CAA4C,EAAE;QACpD,6CAA6C;QAC7C,iDAAiD;QACjD,2CAA2C;QAC3C,uEAAuE;KACxE,CAAC,EACF,EAAE,EACF,OAAO,CAAC,kBAAkB,EAAE;QAC1B,wDAAwD;QACxD,sDAAsD;QACtD,yDAAyD;KAC1D,CAAC,EACF,EAAE,EACF,OAAO,CAAC,kBAAkB,EAAE;QAC1B,+CAA+C;QAC/C,+CAA+C;KAChD,CAAC,EACF,EAAE,EACF,OAAO,CAAC,UAAU,EAAE;QAClB,qCAAqC;QACrC,2CAA2C;KAC5C,CAAC,EACF,EAAE,EACF,OAAO,CAAC,4BAA4B,EAAE;QACpC,oFAAoF;QACpF,qEAAqE;KACtE,CAAC,EACF,EAAE,CACH,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,OAAO,qCAAqC,UAAU,EAAE,CAAC;AAC3D,CAAC;AAED,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,8BAA8B;IACvC,UAAU,EAAE,yBAAyB;IACrC,MAAM,EAAE,wBAAwB;IAChC,kBAAkB,EAAE,oBAAoB;CAChC,CAAC;AAEX;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,OAAO,wBAAwB,MAAM,EAAE,CAAC;AAC1C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/ui/messages/validation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/ui/messages/validation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,wBAAwB,GACjC,MAAM,CAeR;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,GAAE,MAAU,EAAE,GAAG,GAAE,MAAc,GAAG,MAAM,CAElF"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* User-facing messages for input validation failures across commands.
|
|
5
5
|
*/
|
|
6
|
+
import { joinLines } from '../../ui/formatting.js';
|
|
6
7
|
/**
|
|
7
8
|
* Generate invalid integer error message with context.
|
|
8
9
|
*
|
|
@@ -24,21 +25,19 @@
|
|
|
24
25
|
* ```
|
|
25
26
|
*/
|
|
26
27
|
export function invalidIntegerError(fieldName, value, options) {
|
|
27
|
-
const
|
|
28
|
-
|
|
28
|
+
const header = `Error: Invalid ${fieldName}: "${value}" is not a valid integer`;
|
|
29
|
+
let rangeInfo;
|
|
29
30
|
if (options?.min !== undefined && options?.max !== undefined) {
|
|
30
|
-
|
|
31
|
+
rangeInfo = `Valid range: ${options.min} to ${options.max}`;
|
|
31
32
|
}
|
|
32
33
|
else if (options?.min !== undefined) {
|
|
33
|
-
|
|
34
|
+
rangeInfo = `Must be at least ${options.min}`;
|
|
34
35
|
}
|
|
35
36
|
else if (options?.max !== undefined) {
|
|
36
|
-
|
|
37
|
+
rangeInfo = `Must be at most ${options.max}`;
|
|
37
38
|
}
|
|
38
39
|
const example = options?.exampleValue ?? options?.min ?? 30;
|
|
39
|
-
|
|
40
|
-
lines.push(`Example: --${fieldName} ${example}`);
|
|
41
|
-
return lines.join('\n');
|
|
40
|
+
return joinLines(header, rangeInfo, '', `Example: --${fieldName} ${example}`);
|
|
42
41
|
}
|
|
43
42
|
/**
|
|
44
43
|
* Generate invalid range error message for --last option.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/ui/messages/validation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/ui/messages/validation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAc/C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,mBAAmB,CACjC,SAAiB,EACjB,KAAa,EACb,OAAkC;IAElC,MAAM,MAAM,GAAG,kBAAkB,SAAS,MAAM,KAAK,0BAA0B,CAAC;IAEhF,IAAI,SAA6B,CAAC;IAClC,IAAI,OAAO,EAAE,GAAG,KAAK,SAAS,IAAI,OAAO,EAAE,GAAG,KAAK,SAAS,EAAE,CAAC;QAC7D,SAAS,GAAG,gBAAgB,OAAO,CAAC,GAAG,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;IAC9D,CAAC;SAAM,IAAI,OAAO,EAAE,GAAG,KAAK,SAAS,EAAE,CAAC;QACtC,SAAS,GAAG,oBAAoB,OAAO,CAAC,GAAG,EAAE,CAAC;IAChD,CAAC;SAAM,IAAI,OAAO,EAAE,GAAG,KAAK,SAAS,EAAE,CAAC;QACtC,SAAS,GAAG,mBAAmB,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/C,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,EAAE,YAAY,IAAI,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;IAE5D,OAAO,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,cAAc,SAAS,IAAI,OAAO,EAAE,CAAC,CAAC;AAChF,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAc,CAAC,EAAE,MAAc,KAAK;IACxE,OAAO,0BAA0B,GAAG,QAAQ,GAAG,EAAE,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atomicFile.test.d.ts","sourceRoot":"","sources":["../../../src/utils/__tests__/atomicFile.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import assert from 'node:assert/strict';
|
|
2
|
+
import * as fs from 'node:fs';
|
|
3
|
+
import * as os from 'node:os';
|
|
4
|
+
import * as path from 'node:path';
|
|
5
|
+
import { afterEach, beforeEach, describe, it } from 'node:test';
|
|
6
|
+
import { AtomicFileWriter } from '../../utils/atomicFile.js';
|
|
7
|
+
void describe('AtomicFileWriter contract', () => {
|
|
8
|
+
let tmpDir;
|
|
9
|
+
beforeEach(() => {
|
|
10
|
+
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'atomic-writer-'));
|
|
11
|
+
});
|
|
12
|
+
afterEach(() => {
|
|
13
|
+
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
14
|
+
});
|
|
15
|
+
void it('writes synchronously without leaving temporary artifacts', () => {
|
|
16
|
+
const filePath = path.join(tmpDir, 'sync.json');
|
|
17
|
+
AtomicFileWriter.writeSync(filePath, 'sync payload');
|
|
18
|
+
const finalContent = fs.readFileSync(filePath, 'utf-8');
|
|
19
|
+
assert.equal(finalContent, 'sync payload');
|
|
20
|
+
const tempArtifacts = fs.readdirSync(tmpDir).filter((file) => file.startsWith('sync.json.'));
|
|
21
|
+
assert.equal(tempArtifacts.length, 0, `Expected no leftover temp files, found: ${tempArtifacts.join(', ')}`);
|
|
22
|
+
});
|
|
23
|
+
void it('supports concurrent async writes to the same target file', async () => {
|
|
24
|
+
const filePath = path.join(tmpDir, 'async.json');
|
|
25
|
+
const payloads = ['first payload', 'second payload', 'third payload'];
|
|
26
|
+
await Promise.all(payloads.map((payload) => AtomicFileWriter.writeAsync(filePath, payload)));
|
|
27
|
+
const finalContent = fs.readFileSync(filePath, 'utf-8');
|
|
28
|
+
assert(payloads.includes(finalContent), `Final content "${finalContent}" should match one of the concurrent writes`);
|
|
29
|
+
const tempArtifacts = fs.readdirSync(tmpDir).filter((file) => file.startsWith('async.json.'));
|
|
30
|
+
assert.equal(tempArtifacts.length, 0, `Expected concurrent writes to clean up temp files, found: ${tempArtifacts.join(', ')}`);
|
|
31
|
+
});
|
|
32
|
+
void it('cleans up temporary file when rename fails', () => {
|
|
33
|
+
const blockedPath = path.join(tmpDir, 'cannot-overwrite');
|
|
34
|
+
fs.mkdirSync(blockedPath);
|
|
35
|
+
assert.throws(() => AtomicFileWriter.writeSync(blockedPath, 'payload'), /EISDIR|is a directory/);
|
|
36
|
+
const tempArtifacts = fs
|
|
37
|
+
.readdirSync(tmpDir)
|
|
38
|
+
.filter((file) => file.startsWith('cannot-overwrite.'));
|
|
39
|
+
assert.equal(tempArtifacts.length, 0, 'Temporary file should be removed when rename fails');
|
|
40
|
+
assert.equal(fs.existsSync(blockedPath), true, 'Original directory should remain intact after failure');
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
//# sourceMappingURL=atomicFile.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atomicFile.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/atomicFile.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"objects.test.d.ts","sourceRoot":"","sources":["../../../src/utils/__tests__/objects.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import assert from 'node:assert/strict';
|
|
2
|
+
import { describe, it } from 'node:test';
|
|
3
|
+
import { filterDefined } from '../../utils/objects.js';
|
|
4
|
+
void describe('filterDefined contract', () => {
|
|
5
|
+
void it('removes undefined values while preserving other falsy values', () => {
|
|
6
|
+
const input = {
|
|
7
|
+
name: 'test',
|
|
8
|
+
optional: undefined,
|
|
9
|
+
count: 0,
|
|
10
|
+
empty: '',
|
|
11
|
+
nullable: null,
|
|
12
|
+
};
|
|
13
|
+
const result = filterDefined(input);
|
|
14
|
+
assert.deepEqual(result, {
|
|
15
|
+
name: 'test',
|
|
16
|
+
count: 0,
|
|
17
|
+
empty: '',
|
|
18
|
+
nullable: null,
|
|
19
|
+
});
|
|
20
|
+
assert.equal('optional' in result, false);
|
|
21
|
+
});
|
|
22
|
+
void it('does not mutate the original object', () => {
|
|
23
|
+
const input = { keep: 'value', drop: undefined };
|
|
24
|
+
filterDefined(input);
|
|
25
|
+
assert.deepEqual(input, { keep: 'value', drop: undefined });
|
|
26
|
+
});
|
|
27
|
+
void it('returns empty object when all properties are undefined', () => {
|
|
28
|
+
const input = { a: undefined, b: undefined };
|
|
29
|
+
const result = filterDefined(input);
|
|
30
|
+
assert.deepEqual(result, {});
|
|
31
|
+
assert.equal(Object.keys(result).length, 0);
|
|
32
|
+
});
|
|
33
|
+
void it('only performs a shallow filter', () => {
|
|
34
|
+
const input = {
|
|
35
|
+
nested: {
|
|
36
|
+
value: undefined,
|
|
37
|
+
keep: 'nested',
|
|
38
|
+
},
|
|
39
|
+
shallow: undefined,
|
|
40
|
+
};
|
|
41
|
+
const result = filterDefined(input);
|
|
42
|
+
assert.deepEqual(result, {
|
|
43
|
+
nested: {
|
|
44
|
+
value: undefined,
|
|
45
|
+
keep: 'nested',
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=objects.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"objects.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/objects.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,KAAK,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IAC3C,KAAK,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QAC3E,MAAM,KAAK,GAAG;YACZ,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,SAAS;YACnB,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,EAAE;YACT,QAAQ,EAAE,IAAI;SACf,CAAC;QAEF,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QAEpC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE;YACvB,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,EAAE;YACT,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,KAAK,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAClD,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAEjD,aAAa,CAAC,KAAK,CAAC,CAAC;QAErB,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,KAAK,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QACrE,MAAM,KAAK,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QAEpC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,KAAK,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC7C,MAAM,KAAK,GAAG;YACZ,MAAM,EAAE;gBACN,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,QAAQ;aACf;YACD,OAAO,EAAE,SAAS;SACnB,CAAC;QAEF,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QAEpC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE;YACvB,MAAM,EAAE;gBACN,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,QAAQ;aACf;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -50,10 +50,20 @@ void describe('Session Utilities Contract Tests', () => {
|
|
|
50
50
|
});
|
|
51
51
|
// Restore process.kill mock
|
|
52
52
|
restoreProcessAlive();
|
|
53
|
-
// Restore HOME environment variable
|
|
54
|
-
|
|
53
|
+
// Restore HOME environment variable (delete if originally undefined)
|
|
54
|
+
if (originalHome === undefined) {
|
|
55
|
+
delete process.env['HOME'];
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
process.env['HOME'] = originalHome;
|
|
59
|
+
}
|
|
55
60
|
if (process.platform === 'win32') {
|
|
56
|
-
|
|
61
|
+
if (originalUserProfile === undefined) {
|
|
62
|
+
delete process.env['USERPROFILE'];
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
process.env['USERPROFILE'] = originalUserProfile;
|
|
66
|
+
}
|
|
57
67
|
}
|
|
58
68
|
// ⚠️ CRITICAL: Clean up temp directory
|
|
59
69
|
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.contract.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/session.contract.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;;;;;GAMG;AACH,KAAK,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IACrD,IAAI,MAAc,CAAC;IACnB,IAAI,YAAgC,CAAC;IACrC,IAAI,mBAAuC,CAAC;IAC5C,IAAI,kBAA0B,CAAC;IAE/B,UAAU,CAAC,GAAG,EAAE;QACd,sCAAsC;QACtC,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;QAE7D,yCAAyC;QACzC,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC;QACjC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE;YACpC,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,IAAI;YACd,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QAEH,gEAAgE;QAChE,yCAAyC;QACzC,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACnC,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;QAC7B,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;QACtC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,sBAAsB;QACtB,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE;YACpC,KAAK,EAAE,kBAAkB;YACzB,QAAQ,EAAE,IAAI;YACd,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QAEH,4BAA4B;QAC5B,mBAAmB,EAAE,CAAC;QAEtB,
|
|
1
|
+
{"version":3,"file":"session.contract.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/session.contract.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.test.d.ts","sourceRoot":"","sources":["../../../src/utils/__tests__/url.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import assert from 'node:assert/strict';
|
|
2
|
+
import { describe, it } from 'node:test';
|
|
3
|
+
import { extractHostnameWithPath, normalizeUrl, safeParseUrl, validateUrl } from '../../utils/url.js';
|
|
4
|
+
void describe('URL utility contracts', () => {
|
|
5
|
+
void it('normalizes mixed-case protocols without duplicating prefix', () => {
|
|
6
|
+
const result = normalizeUrl('HTTPS://Example.com/Path?x=1');
|
|
7
|
+
assert.equal(result, 'https://Example.com/Path?x=1');
|
|
8
|
+
const fileUrl = normalizeUrl('FILE:///Users/Test/index.html');
|
|
9
|
+
assert.equal(fileUrl, 'file:///Users/Test/index.html');
|
|
10
|
+
});
|
|
11
|
+
void it('accepts javascript and data URLs when validating', () => {
|
|
12
|
+
const jsResult = validateUrl('javascript:alert(1)');
|
|
13
|
+
assert.equal(jsResult.valid, true);
|
|
14
|
+
const dataResult = validateUrl('data:text/plain,hello');
|
|
15
|
+
assert.equal(dataResult.valid, true);
|
|
16
|
+
});
|
|
17
|
+
void it('rejects malformed protocols before normalization', () => {
|
|
18
|
+
const invalid = validateUrl('ht!tp://example.com');
|
|
19
|
+
assert.equal(invalid.valid, false);
|
|
20
|
+
assert.match(invalid.error ?? '', /invalid characters/i);
|
|
21
|
+
});
|
|
22
|
+
void it('includes port information when extracting hostname with path', () => {
|
|
23
|
+
const parsed = extractHostnameWithPath('http://localhost:9222/devtools/page/123');
|
|
24
|
+
assert.equal(parsed, 'localhost:9222/devtools/page/123');
|
|
25
|
+
});
|
|
26
|
+
void it('safeParseUrl returns null for invalid inputs and adds protocol when missing', () => {
|
|
27
|
+
const parsed = safeParseUrl('example.com/path');
|
|
28
|
+
assert(parsed);
|
|
29
|
+
assert.equal(parsed?.protocol, 'http:');
|
|
30
|
+
assert.equal(parsed?.hostname, 'example.com');
|
|
31
|
+
const invalid = safeParseUrl('::::');
|
|
32
|
+
assert.equal(invalid, null);
|
|
33
|
+
});
|
|
34
|
+
void it('always adds protocol when missing', () => {
|
|
35
|
+
const inputs = ['localhost:3000', 'example.com', 'foo.bar/baz'];
|
|
36
|
+
for (const input of inputs) {
|
|
37
|
+
const normalized = normalizeUrl(input);
|
|
38
|
+
assert.match(normalized, /^http:\/\//);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=url.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/url.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElG,KAAK,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IAC1C,KAAK,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACzE,MAAM,MAAM,GAAG,YAAY,CAAC,8BAA8B,CAAC,CAAC;QAC5D,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;QAErD,MAAM,OAAO,GAAG,YAAY,CAAC,+BAA+B,CAAC,CAAC;QAC9D,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,+BAA+B,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,KAAK,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC/D,MAAM,QAAQ,GAAG,WAAW,CAAC,qBAAqB,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAEnC,MAAM,UAAU,GAAG,WAAW,CAAC,uBAAuB,CAAC,CAAC;QACxD,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,KAAK,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC/D,MAAM,OAAO,GAAG,WAAW,CAAC,qBAAqB,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,qBAAqB,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,KAAK,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QAC3E,MAAM,MAAM,GAAG,uBAAuB,CAAC,yCAAyC,CAAC,CAAC;QAClF,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,KAAK,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;QAC1F,MAAM,MAAM,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QAE9C,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,KAAK,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAChD,MAAM,MAAM,GAAG,CAAC,gBAAgB,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;QAChE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -2,14 +2,24 @@
|
|
|
2
2
|
* Atomic file operations using tmp-file-then-rename pattern.
|
|
3
3
|
*
|
|
4
4
|
* Provides safe file writing that prevents corruption from interrupted writes
|
|
5
|
-
* or concurrent access by using
|
|
5
|
+
* or concurrent access by using unique temporary files and atomic rename operation.
|
|
6
6
|
*/
|
|
7
7
|
export declare class AtomicFileWriter {
|
|
8
|
+
/**
|
|
9
|
+
* Generate a unique temporary file path.
|
|
10
|
+
*
|
|
11
|
+
* Uses process PID and random UUID to ensure uniqueness across concurrent processes.
|
|
12
|
+
*
|
|
13
|
+
* @param filePath - Target file path
|
|
14
|
+
* @returns Unique temporary file path
|
|
15
|
+
*/
|
|
16
|
+
private static getTempPath;
|
|
8
17
|
/**
|
|
9
18
|
* Write data to a file atomically (synchronous).
|
|
10
19
|
*
|
|
11
|
-
* Creates a temporary file, writes the data, then atomically renames it to the target path.
|
|
12
|
-
* This ensures the target file is never in a partially written state
|
|
20
|
+
* Creates a unique temporary file, writes the data, then atomically renames it to the target path.
|
|
21
|
+
* This ensures the target file is never in a partially written state and prevents corruption
|
|
22
|
+
* from concurrent writes by different processes.
|
|
13
23
|
*
|
|
14
24
|
* @param filePath - Target file path
|
|
15
25
|
* @param data - Data to write
|
|
@@ -22,8 +32,9 @@ export declare class AtomicFileWriter {
|
|
|
22
32
|
/**
|
|
23
33
|
* Write data to a file atomically (asynchronous).
|
|
24
34
|
*
|
|
25
|
-
* Creates a temporary file, writes the data, then atomically renames it to the target path.
|
|
26
|
-
* This ensures the target file is never in a partially written state
|
|
35
|
+
* Creates a unique temporary file, writes the data, then atomically renames it to the target path.
|
|
36
|
+
* This ensures the target file is never in a partially written state and prevents corruption
|
|
37
|
+
* from concurrent writes by different processes.
|
|
27
38
|
*
|
|
28
39
|
* @param filePath - Target file path
|
|
29
40
|
* @param data - Data to write
|
|
@@ -34,5 +45,20 @@ export declare class AtomicFileWriter {
|
|
|
34
45
|
static writeAsync(filePath: string, data: string, options?: {
|
|
35
46
|
encoding?: BufferEncoding;
|
|
36
47
|
}): Promise<void>;
|
|
48
|
+
/**
|
|
49
|
+
* Write binary data (Buffer) to a file atomically (asynchronous).
|
|
50
|
+
*
|
|
51
|
+
* Creates a unique temporary file, writes the binary data, then atomically renames it to the target path.
|
|
52
|
+
* This ensures the target file is never in a partially written state and prevents corruption
|
|
53
|
+
* from concurrent writes by different processes.
|
|
54
|
+
*
|
|
55
|
+
* Useful for screenshots, images, and other binary file exports.
|
|
56
|
+
*
|
|
57
|
+
* @param filePath - Target file path
|
|
58
|
+
* @param buffer - Binary data to write
|
|
59
|
+
* @returns Promise that resolves when write completes
|
|
60
|
+
* @throws Error if write operation fails
|
|
61
|
+
*/
|
|
62
|
+
static writeBufferAsync(filePath: string, buffer: Buffer): Promise<void>;
|
|
37
63
|
}
|
|
38
64
|
//# sourceMappingURL=atomicFile.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atomicFile.d.ts","sourceRoot":"","sources":["../../src/utils/atomicFile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"atomicFile.d.ts","sourceRoot":"","sources":["../../src/utils/atomicFile.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,qBAAa,gBAAgB;IAC3B;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAK1B;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,SAAS,CACd,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;QAAE,QAAQ,CAAC,EAAE,cAAc,CAAA;KAAO,GAC1C,IAAI;IAgBP;;;;;;;;;;;;OAYG;WACU,UAAU,CACrB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;QAAE,QAAQ,CAAC,EAAE,cAAc,CAAA;KAAO,GAC1C,OAAO,CAAC,IAAI,CAAC;IAgBhB;;;;;;;;;;;;;OAaG;WACU,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAe/E"}
|
package/dist/utils/atomicFile.js
CHANGED
|
@@ -1,16 +1,30 @@
|
|
|
1
|
+
import * as crypto from 'crypto';
|
|
1
2
|
import * as fs from 'fs';
|
|
2
3
|
/**
|
|
3
4
|
* Atomic file operations using tmp-file-then-rename pattern.
|
|
4
5
|
*
|
|
5
6
|
* Provides safe file writing that prevents corruption from interrupted writes
|
|
6
|
-
* or concurrent access by using
|
|
7
|
+
* or concurrent access by using unique temporary files and atomic rename operation.
|
|
7
8
|
*/
|
|
8
9
|
export class AtomicFileWriter {
|
|
10
|
+
/**
|
|
11
|
+
* Generate a unique temporary file path.
|
|
12
|
+
*
|
|
13
|
+
* Uses process PID and random UUID to ensure uniqueness across concurrent processes.
|
|
14
|
+
*
|
|
15
|
+
* @param filePath - Target file path
|
|
16
|
+
* @returns Unique temporary file path
|
|
17
|
+
*/
|
|
18
|
+
static getTempPath(filePath) {
|
|
19
|
+
const uuid = crypto.randomUUID();
|
|
20
|
+
return `${filePath}.${process.pid}.${uuid}.tmp`;
|
|
21
|
+
}
|
|
9
22
|
/**
|
|
10
23
|
* Write data to a file atomically (synchronous).
|
|
11
24
|
*
|
|
12
|
-
* Creates a temporary file, writes the data, then atomically renames it to the target path.
|
|
13
|
-
* This ensures the target file is never in a partially written state
|
|
25
|
+
* Creates a unique temporary file, writes the data, then atomically renames it to the target path.
|
|
26
|
+
* This ensures the target file is never in a partially written state and prevents corruption
|
|
27
|
+
* from concurrent writes by different processes.
|
|
14
28
|
*
|
|
15
29
|
* @param filePath - Target file path
|
|
16
30
|
* @param data - Data to write
|
|
@@ -18,15 +32,12 @@ export class AtomicFileWriter {
|
|
|
18
32
|
* @throws Error if write operation fails
|
|
19
33
|
*/
|
|
20
34
|
static writeSync(filePath, data, options = {}) {
|
|
21
|
-
const tmpPath = filePath
|
|
35
|
+
const tmpPath = this.getTempPath(filePath);
|
|
22
36
|
try {
|
|
23
|
-
// Write to temporary file first
|
|
24
37
|
fs.writeFileSync(tmpPath, data, { encoding: options.encoding ?? 'utf-8' });
|
|
25
|
-
// Atomically rename to target path
|
|
26
38
|
fs.renameSync(tmpPath, filePath);
|
|
27
39
|
}
|
|
28
40
|
catch (error) {
|
|
29
|
-
// Clean up temporary file on error
|
|
30
41
|
try {
|
|
31
42
|
fs.unlinkSync(tmpPath);
|
|
32
43
|
}
|
|
@@ -39,8 +50,9 @@ export class AtomicFileWriter {
|
|
|
39
50
|
/**
|
|
40
51
|
* Write data to a file atomically (asynchronous).
|
|
41
52
|
*
|
|
42
|
-
* Creates a temporary file, writes the data, then atomically renames it to the target path.
|
|
43
|
-
* This ensures the target file is never in a partially written state
|
|
53
|
+
* Creates a unique temporary file, writes the data, then atomically renames it to the target path.
|
|
54
|
+
* This ensures the target file is never in a partially written state and prevents corruption
|
|
55
|
+
* from concurrent writes by different processes.
|
|
44
56
|
*
|
|
45
57
|
* @param filePath - Target file path
|
|
46
58
|
* @param data - Data to write
|
|
@@ -49,15 +61,42 @@ export class AtomicFileWriter {
|
|
|
49
61
|
* @throws Error if write operation fails
|
|
50
62
|
*/
|
|
51
63
|
static async writeAsync(filePath, data, options = {}) {
|
|
52
|
-
const tmpPath = filePath
|
|
64
|
+
const tmpPath = this.getTempPath(filePath);
|
|
53
65
|
try {
|
|
54
|
-
// Write to temporary file first
|
|
55
66
|
await fs.promises.writeFile(tmpPath, data, { encoding: options.encoding ?? 'utf-8' });
|
|
56
|
-
// Atomically rename to target path
|
|
57
67
|
await fs.promises.rename(tmpPath, filePath);
|
|
58
68
|
}
|
|
59
69
|
catch (error) {
|
|
60
|
-
|
|
70
|
+
try {
|
|
71
|
+
await fs.promises.unlink(tmpPath);
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
// Ignore cleanup errors
|
|
75
|
+
}
|
|
76
|
+
throw error;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Write binary data (Buffer) to a file atomically (asynchronous).
|
|
81
|
+
*
|
|
82
|
+
* Creates a unique temporary file, writes the binary data, then atomically renames it to the target path.
|
|
83
|
+
* This ensures the target file is never in a partially written state and prevents corruption
|
|
84
|
+
* from concurrent writes by different processes.
|
|
85
|
+
*
|
|
86
|
+
* Useful for screenshots, images, and other binary file exports.
|
|
87
|
+
*
|
|
88
|
+
* @param filePath - Target file path
|
|
89
|
+
* @param buffer - Binary data to write
|
|
90
|
+
* @returns Promise that resolves when write completes
|
|
91
|
+
* @throws Error if write operation fails
|
|
92
|
+
*/
|
|
93
|
+
static async writeBufferAsync(filePath, buffer) {
|
|
94
|
+
const tmpPath = this.getTempPath(filePath);
|
|
95
|
+
try {
|
|
96
|
+
await fs.promises.writeFile(tmpPath, buffer);
|
|
97
|
+
await fs.promises.rename(tmpPath, filePath);
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
61
100
|
try {
|
|
62
101
|
await fs.promises.unlink(tmpPath);
|
|
63
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atomicFile.js","sourceRoot":"","sources":["../../src/utils/atomicFile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB;;;;;GAKG;AACH,MAAM,OAAO,gBAAgB;IAC3B
|
|
1
|
+
{"version":3,"file":"atomicFile.js","sourceRoot":"","sources":["../../src/utils/atomicFile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB;;;;;GAKG;AACH,MAAM,OAAO,gBAAgB;IAC3B;;;;;;;OAOG;IACK,MAAM,CAAC,WAAW,CAAC,QAAgB;QACzC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,GAAG,QAAQ,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC;IAClD,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,SAAS,CACd,QAAgB,EAChB,IAAY,EACZ,UAAyC,EAAE;QAE3C,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,EAAE,CAAC,CAAC;YAC3E,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,wBAAwB;YAC1B,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,KAAK,CAAC,UAAU,CACrB,QAAgB,EAChB,IAAY,EACZ,UAAyC,EAAE;QAE3C,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,EAAE,CAAC,CAAC;YACtF,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC;YAAC,MAAM,CAAC;gBACP,wBAAwB;YAC1B,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAgB,EAAE,MAAc;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC7C,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC;YAAC,MAAM,CAAC;gBACP,wBAAwB;YAC1B,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
|