A big commit with a bunch of node modules so I could run puppeteer for Walmart. Added some todos and Headway's templates.

This commit is contained in:
Norm Rasmussen
2024-02-28 17:13:10 -05:00
parent dbcdfc8472
commit 1184fe0cd1
1107 changed files with 76526 additions and 8934 deletions

View File

@ -17,14 +17,14 @@
import type { Protocol } from 'devtools-protocol';
import type { ProtocolMapping } from 'devtools-protocol/types/protocol-mapping.js';
import { EventEmitter } from '../utils/EventEmitter.js';
import type { CdpConnection } from './CdpConnection.js';
import type { MapperCdpConnection } from './CdpConnection.js';
export type CdpEvents = {
[Property in keyof ProtocolMapping.Events]: ProtocolMapping.Events[Property][0];
};
/** A error that will be thrown if/when the connection is closed. */
export declare class CloseError extends Error {
}
export interface ICdpClient extends EventEmitter<CdpEvents> {
export interface CdpClient extends EventEmitter<CdpEvents> {
/** Unique session identifier. */
sessionId: Protocol.Target.SessionID | undefined;
/**
@ -45,9 +45,9 @@ export interface ICdpClient extends EventEmitter<CdpEvents> {
sendCommand<CdpMethod extends keyof ProtocolMapping.Commands>(method: CdpMethod, params?: ProtocolMapping.Commands[CdpMethod]['paramsType'][0]): Promise<ProtocolMapping.Commands[CdpMethod]['returnType']>;
}
/** Represents a high-level CDP connection to the browser. */
export declare class CdpClient extends EventEmitter<CdpEvents> implements ICdpClient {
export declare class MapperCdpClient extends EventEmitter<CdpEvents> implements CdpClient {
#private;
constructor(cdpConnection: CdpConnection, sessionId?: Protocol.Target.SessionID);
constructor(cdpConnection: MapperCdpConnection, sessionId?: Protocol.Target.SessionID);
get sessionId(): Protocol.Target.SessionID | undefined;
sendCommand<CdpMethod extends keyof ProtocolMapping.Commands>(method: CdpMethod, ...params: ProtocolMapping.Commands[CdpMethod]['paramsType']): Promise<ProtocolMapping.Commands[CdpMethod]['returnType']>;
isCloseError(error: unknown): boolean;

View File

@ -16,14 +16,14 @@
* limitations under the License.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.CdpClient = exports.CloseError = void 0;
exports.MapperCdpClient = exports.CloseError = void 0;
const EventEmitter_js_1 = require("../utils/EventEmitter.js");
/** A error that will be thrown if/when the connection is closed. */
class CloseError extends Error {
}
exports.CloseError = CloseError;
/** Represents a high-level CDP connection to the browser. */
class CdpClient extends EventEmitter_js_1.EventEmitter {
class MapperCdpClient extends EventEmitter_js_1.EventEmitter {
#cdpConnection;
#sessionId;
constructor(cdpConnection, sessionId) {
@ -41,5 +41,5 @@ class CdpClient extends EventEmitter_js_1.EventEmitter {
return error instanceof CloseError;
}
}
exports.CdpClient = CdpClient;
exports.MapperCdpClient = MapperCdpClient;
//# sourceMappingURL=CdpClient.js.map

View File

@ -1 +1 @@
{"version":3,"file":"CdpClient.js","sourceRoot":"","sources":["../../../src/cdp/CdpClient.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAKH,8DAAsD;AAQtD,oEAAoE;AACpE,MAAa,UAAW,SAAQ,KAAK;CAAG;AAAxC,gCAAwC;AA4BxC,6DAA6D;AAC7D,MAAa,SAAU,SAAQ,8BAAuB;IACpD,cAAc,CAAgB;IAC9B,UAAU,CAA6B;IAEvC,YACE,aAA4B,EAC5B,SAAqC;QAErC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,WAAW,CACT,MAAiB,EACjB,GAAG,MAAyD;QAE5D,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7E,CAAC;IAED,YAAY,CAAC,KAAc;QACzB,OAAO,KAAK,YAAY,UAAU,CAAC;IACrC,CAAC;CACF;AA3BD,8BA2BC"}
{"version":3,"file":"CdpClient.js","sourceRoot":"","sources":["../../../src/cdp/CdpClient.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAKH,8DAAsD;AAQtD,oEAAoE;AACpE,MAAa,UAAW,SAAQ,KAAK;CAAG;AAAxC,gCAAwC;AA4BxC,6DAA6D;AAC7D,MAAa,eACX,SAAQ,8BAAuB;IAG/B,cAAc,CAAsB;IACpC,UAAU,CAA6B;IAEvC,YACE,aAAkC,EAClC,SAAqC;QAErC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,WAAW,CACT,MAAiB,EACjB,GAAG,MAAyD;QAE5D,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7E,CAAC;IAED,YAAY,CAAC,KAAc;QACzB,OAAO,KAAK,YAAY,UAAU,CAAC;IACrC,CAAC;CACF;AA9BD,0CA8BC"}

View File

@ -17,10 +17,10 @@
import type { Protocol } from 'devtools-protocol';
import type { ProtocolMapping } from 'devtools-protocol/types/protocol-mapping.js';
import type { LoggerFn } from '../utils/log.js';
import type { ITransport } from '../utils/transport.js';
import { CdpClient, type ICdpClient } from './CdpClient.js';
export interface ICdpConnection {
getCdpClient(sessionId: Protocol.Target.SessionID): ICdpClient;
import type { Transport } from '../utils/transport.js';
import { MapperCdpClient, type CdpClient } from './CdpClient.js';
export interface CdpConnection {
getCdpClient(sessionId: Protocol.Target.SessionID): CdpClient;
}
/**
* Represents a high-level CDP connection to the browser backend.
@ -28,18 +28,18 @@ export interface ICdpConnection {
* Manages all CdpClients (each backed by a Session ID) instance for each active
* CDP session.
*/
export declare class CdpConnection implements ICdpConnection {
export declare class MapperCdpConnection implements CdpConnection {
#private;
static readonly LOGGER_PREFIX_RECV: "cdp:RECV ◂";
static readonly LOGGER_PREFIX_SEND: "cdp:SEND ▸";
constructor(transport: ITransport, logger?: LoggerFn);
constructor(transport: Transport, logger?: LoggerFn);
/** Closes the connection to the browser. */
close(): void;
createBrowserSession(): Promise<ICdpClient>;
createBrowserSession(): Promise<MapperCdpClient>;
/**
* Gets a CdpClient instance attached to the given session ID,
* or null if the session is not attached.
*/
getCdpClient(sessionId: Protocol.Target.SessionID): CdpClient;
getCdpClient(sessionId: Protocol.Target.SessionID): MapperCdpClient;
sendCommand<CdpMethod extends keyof ProtocolMapping.Commands>(method: CdpMethod, params?: ProtocolMapping.Commands[CdpMethod]['paramsType'][0], sessionId?: Protocol.Target.SessionID): Promise<object>;
}

View File

@ -1,6 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CdpConnection = void 0;
exports.MapperCdpConnection = void 0;
const log_js_1 = require("../utils/log.js");
const CdpClient_js_1 = require("./CdpClient.js");
/**
@ -9,7 +9,7 @@ const CdpClient_js_1 = require("./CdpClient.js");
* Manages all CdpClients (each backed by a Session ID) instance for each active
* CDP session.
*/
class CdpConnection {
class MapperCdpConnection {
static LOGGER_PREFIX_RECV = `${log_js_1.LogType.cdp}:RECV ◂`;
static LOGGER_PREFIX_SEND = `${log_js_1.LogType.cdp}:SEND ▸`;
#mainBrowserCdpClient;
@ -69,12 +69,12 @@ class CdpConnection {
this.#logger?.(log_js_1.LogType.debugError, error);
this.#transport.close();
});
this.#logger?.(CdpConnection.LOGGER_PREFIX_SEND, cdpMessage);
this.#logger?.(MapperCdpConnection.LOGGER_PREFIX_SEND, cdpMessage);
});
}
#onMessage = (json) => {
const message = JSON.parse(json);
this.#logger?.(CdpConnection.LOGGER_PREFIX_RECV, message);
this.#logger?.(MapperCdpConnection.LOGGER_PREFIX_RECV, message);
// Update client map if a session is attached
// Listen for these events on every session.
if (message.method === 'Target.attachedToTarget') {
@ -116,10 +116,10 @@ class CdpConnection {
* @private
*/
#createCdpClient(sessionId) {
const cdpClient = new CdpClient_js_1.CdpClient(this, sessionId);
const cdpClient = new CdpClient_js_1.MapperCdpClient(this, sessionId);
this.#sessionCdpClients.set(sessionId, cdpClient);
return cdpClient;
}
}
exports.CdpConnection = CdpConnection;
exports.MapperCdpConnection = MapperCdpConnection;
//# sourceMappingURL=CdpConnection.js.map

View File

@ -1 +1 @@
{"version":3,"file":"CdpConnection.js","sourceRoot":"","sources":["../../../src/cdp/CdpConnection.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"CdpConnection.js","sourceRoot":"","sources":["../../../src/cdp/CdpConnection.ts"],"names":[],"mappings":"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"}