Tons of Solutions Engineering work done today for the rest of the CS team! Headway, Howard Hanna, Engels, Brighton, etc. Also completed Datasnippers auth flow and worked on Anthology's script. Cloned Anthology's courses (900..) and will clone Full Story on Monday.

This commit is contained in:
Norm Rasmussen
2024-01-05 17:07:59 -05:00
parent ce261975ca
commit a5fe4bd2c8
3157 changed files with 554269 additions and 16 deletions

View File

@ -0,0 +1,205 @@
/**
* Copyright 2022 Google LLC.
* Copyright (c) Microsoft Corporation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @fileoverview Provides parsing and validator for WebDriver BiDi protocol.
* Parser types should match the `../protocol` types.
*/
import { z, type ZodType } from 'zod';
import type * as Protocol from '../protocol/protocol.js';
export declare function parseObject<T extends ZodType>(obj: unknown, schema: T): z.infer<T>;
/** @see https://w3c.github.io/webdriver-bidi/#module-network */
export declare namespace Network {
function parseAddInterceptParameters(params: unknown): {
phases: ("beforeRequestSent" | "responseStarted" | "authRequired")[];
urlPatterns?: ({
type: "pattern";
protocol?: string | undefined;
hostname?: string | undefined;
port?: string | undefined;
pathname?: string | undefined;
search?: string | undefined;
} | {
type: "string";
pattern: string;
})[] | undefined;
};
function parseContinueRequestParameters(params: unknown): {
request: string;
body?: {
type: "string";
value: string;
} | {
type: "base64";
value: string;
} | undefined;
cookies?: {
value: {
type: "string";
value: string;
} | {
type: "base64";
value: string;
};
name: string;
}[] | undefined;
headers?: {
value: {
type: "string";
value: string;
} | {
type: "base64";
value: string;
};
name: string;
}[] | undefined;
method?: string | undefined;
url?: string | undefined;
};
function parseContinueResponseParameters(params: unknown): {
request: string;
cookies?: {
value: {
type: "string";
value: string;
} | {
type: "base64";
value: string;
};
name: string;
domain?: string | undefined;
httpOnly?: boolean | undefined;
expiry?: string | undefined;
maxAge?: number | undefined;
path?: string | undefined;
sameSite?: "strict" | "none" | "lax" | undefined;
secure?: boolean | undefined;
}[] | undefined;
credentials?: {
type: "password";
password: string;
username: string;
} | undefined;
headers?: {
value: {
type: "string";
value: string;
} | {
type: "base64";
value: string;
};
name: string;
}[] | undefined;
reasonPhrase?: string | undefined;
statusCode?: number | undefined;
};
function parseContinueWithAuthParameters(params: unknown): {
request: string;
} & ({
credentials: {
type: "password";
password: string;
username: string;
};
action: "provideCredentials";
} | {
action: "default" | "cancel";
});
function parseFailRequestParameters(params: unknown): {
request: string;
};
function parseProvideResponseParameters(params: unknown): {
request: string;
body?: {
type: "string";
value: string;
} | {
type: "base64";
value: string;
} | undefined;
cookies?: {
value: {
type: "string";
value: string;
} | {
type: "base64";
value: string;
};
name: string;
domain?: string | undefined;
httpOnly?: boolean | undefined;
expiry?: string | undefined;
maxAge?: number | undefined;
path?: string | undefined;
sameSite?: "strict" | "none" | "lax" | undefined;
secure?: boolean | undefined;
}[] | undefined;
headers?: {
value: {
type: "string";
value: string;
} | {
type: "base64";
value: string;
};
name: string;
}[] | undefined;
reasonPhrase?: string | undefined;
statusCode?: number | undefined;
};
function parseRemoveInterceptParameters(params: unknown): {
intercept: string;
};
}
/** @see https://w3c.github.io/webdriver-bidi/#module-script */
export declare namespace Script {
function parseGetRealmsParams(params: unknown): Protocol.Script.GetRealmsParameters;
function parseEvaluateParams(params: unknown): Protocol.Script.EvaluateParameters;
function parseDisownParams(params: unknown): Protocol.Script.DisownParameters;
function parseAddPreloadScriptParams(params: unknown): Protocol.Script.AddPreloadScriptParameters;
function parseRemovePreloadScriptParams(params: unknown): {
script: string;
};
function parseCallFunctionParams(params: unknown): Protocol.Script.CallFunctionParameters;
}
/** @see https://w3c.github.io/webdriver-bidi/#module-browsingContext */
export declare namespace BrowsingContext {
function parseActivateParams(params: unknown): {
context: string;
};
function parseGetTreeParams(params: unknown): Protocol.BrowsingContext.GetTreeParameters;
function parseNavigateParams(params: unknown): Protocol.BrowsingContext.NavigateParameters;
function parseReloadParams(params: unknown): Protocol.BrowsingContext.ReloadParameters;
function parseCreateParams(params: unknown): Protocol.BrowsingContext.CreateParameters;
function parseCloseParams(params: unknown): Protocol.BrowsingContext.CloseParameters;
function parseCaptureScreenshotParams(params: unknown): Protocol.BrowsingContext.CaptureScreenshotParameters;
function parsePrintParams(params: unknown): Protocol.BrowsingContext.PrintParameters;
function parseSetViewportParams(params: unknown): Protocol.BrowsingContext.SetViewportParameters;
function parseTraverseHistoryParams(params: unknown): Protocol.BrowsingContext.TraverseHistoryParameters;
function parseHandleUserPromptParameters(params: unknown): Protocol.BrowsingContext.HandleUserPromptParameters;
}
/** @see https://w3c.github.io/webdriver-bidi/#module-session */
export declare namespace Session {
function parseSubscribeParams(params: unknown): Protocol.Session.SubscriptionRequest;
}
export declare namespace Input {
function parsePerformActionsParams(params: unknown): Protocol.Input.PerformActionsParameters;
function parseReleaseActionsParams(params: unknown): Protocol.Input.ReleaseActionsParameters;
}
export declare namespace Cdp {
function parseSendCommandRequest(params: unknown): Protocol.Cdp.SendCommandParameters;
function parseGetSessionRequest(params: unknown): Protocol.Cdp.GetSessionParameters;
}

View File

@ -0,0 +1,211 @@
"use strict";
/**
* Copyright 2022 Google LLC.
* Copyright (c) Microsoft Corporation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Cdp = exports.Input = exports.Session = exports.BrowsingContext = exports.Script = exports.Network = exports.parseObject = void 0;
/**
* @fileoverview Provides parsing and validator for WebDriver BiDi protocol.
* Parser types should match the `../protocol` types.
*/
const zod_1 = require("zod");
const protocol_js_1 = require("../protocol/protocol.js");
const WebDriverBidi = __importStar(require("./webdriver-bidi.js"));
function parseObject(obj, schema) {
const parseResult = schema.safeParse(obj);
if (parseResult.success) {
return parseResult.data;
}
const errorMessage = parseResult.error.errors
.map((e) => `${e.message} in ` +
`${e.path.map((p) => JSON.stringify(p)).join('/')}.`)
.join(' ');
throw new protocol_js_1.InvalidArgumentException(errorMessage);
}
exports.parseObject = parseObject;
/** @see https://w3c.github.io/webdriver-bidi/#module-network */
var Network;
(function (Network) {
function parseAddInterceptParameters(params) {
return parseObject(params, WebDriverBidi.Network.AddInterceptParametersSchema);
}
Network.parseAddInterceptParameters = parseAddInterceptParameters;
function parseContinueRequestParameters(params) {
return parseObject(params, WebDriverBidi.Network.ContinueRequestParametersSchema);
}
Network.parseContinueRequestParameters = parseContinueRequestParameters;
function parseContinueResponseParameters(params) {
return parseObject(params, WebDriverBidi.Network.ContinueResponseParametersSchema);
}
Network.parseContinueResponseParameters = parseContinueResponseParameters;
function parseContinueWithAuthParameters(params) {
return parseObject(params, WebDriverBidi.Network.ContinueWithAuthParametersSchema);
}
Network.parseContinueWithAuthParameters = parseContinueWithAuthParameters;
function parseFailRequestParameters(params) {
return parseObject(params, WebDriverBidi.Network.FailRequestParametersSchema);
}
Network.parseFailRequestParameters = parseFailRequestParameters;
function parseProvideResponseParameters(params) {
return parseObject(params, WebDriverBidi.Network.ProvideResponseParametersSchema);
}
Network.parseProvideResponseParameters = parseProvideResponseParameters;
function parseRemoveInterceptParameters(params) {
return parseObject(params, WebDriverBidi.Network.RemoveInterceptParametersSchema);
}
Network.parseRemoveInterceptParameters = parseRemoveInterceptParameters;
})(Network || (exports.Network = Network = {}));
/** @see https://w3c.github.io/webdriver-bidi/#module-script */
var Script;
(function (Script) {
function parseGetRealmsParams(params) {
return parseObject(params, WebDriverBidi.Script.GetRealmsParametersSchema);
}
Script.parseGetRealmsParams = parseGetRealmsParams;
function parseEvaluateParams(params) {
return parseObject(params, WebDriverBidi.Script.EvaluateParametersSchema);
}
Script.parseEvaluateParams = parseEvaluateParams;
function parseDisownParams(params) {
return parseObject(params, WebDriverBidi.Script.DisownParametersSchema);
}
Script.parseDisownParams = parseDisownParams;
function parseAddPreloadScriptParams(params) {
return parseObject(params, WebDriverBidi.Script.AddPreloadScriptParametersSchema);
}
Script.parseAddPreloadScriptParams = parseAddPreloadScriptParams;
function parseRemovePreloadScriptParams(params) {
return parseObject(params, WebDriverBidi.Script.RemovePreloadScriptParametersSchema);
}
Script.parseRemovePreloadScriptParams = parseRemovePreloadScriptParams;
function parseCallFunctionParams(params) {
return parseObject(params, WebDriverBidi.Script.CallFunctionParametersSchema);
}
Script.parseCallFunctionParams = parseCallFunctionParams;
})(Script || (exports.Script = Script = {}));
/** @see https://w3c.github.io/webdriver-bidi/#module-browsingContext */
var BrowsingContext;
(function (BrowsingContext) {
function parseActivateParams(params) {
return parseObject(params, WebDriverBidi.BrowsingContext.ActivateParametersSchema);
}
BrowsingContext.parseActivateParams = parseActivateParams;
function parseGetTreeParams(params) {
return parseObject(params, WebDriverBidi.BrowsingContext.GetTreeParametersSchema);
}
BrowsingContext.parseGetTreeParams = parseGetTreeParams;
function parseNavigateParams(params) {
return parseObject(params, WebDriverBidi.BrowsingContext.NavigateParametersSchema);
}
BrowsingContext.parseNavigateParams = parseNavigateParams;
function parseReloadParams(params) {
return parseObject(params, WebDriverBidi.BrowsingContext.ReloadParametersSchema);
}
BrowsingContext.parseReloadParams = parseReloadParams;
function parseCreateParams(params) {
return parseObject(params, WebDriverBidi.BrowsingContext.CreateParametersSchema);
}
BrowsingContext.parseCreateParams = parseCreateParams;
function parseCloseParams(params) {
return parseObject(params, WebDriverBidi.BrowsingContext.CloseParametersSchema);
}
BrowsingContext.parseCloseParams = parseCloseParams;
function parseCaptureScreenshotParams(params) {
return parseObject(params, WebDriverBidi.BrowsingContext.CaptureScreenshotParametersSchema);
}
BrowsingContext.parseCaptureScreenshotParams = parseCaptureScreenshotParams;
function parsePrintParams(params) {
return parseObject(params, WebDriverBidi.BrowsingContext.PrintParametersSchema);
}
BrowsingContext.parsePrintParams = parsePrintParams;
function parseSetViewportParams(params) {
return parseObject(params, WebDriverBidi.BrowsingContext.SetViewportParametersSchema);
}
BrowsingContext.parseSetViewportParams = parseSetViewportParams;
function parseTraverseHistoryParams(params) {
return parseObject(params, WebDriverBidi.BrowsingContext.TraverseHistoryParametersSchema);
}
BrowsingContext.parseTraverseHistoryParams = parseTraverseHistoryParams;
function parseHandleUserPromptParameters(params) {
return parseObject(params, WebDriverBidi.BrowsingContext.HandleUserPromptParametersSchema);
}
BrowsingContext.parseHandleUserPromptParameters = parseHandleUserPromptParameters;
})(BrowsingContext || (exports.BrowsingContext = BrowsingContext = {}));
/** @see https://w3c.github.io/webdriver-bidi/#module-session */
var Session;
(function (Session) {
function parseSubscribeParams(params) {
return parseObject(params, WebDriverBidi.Session.SubscriptionRequestSchema);
}
Session.parseSubscribeParams = parseSubscribeParams;
})(Session || (exports.Session = Session = {}));
var Input;
(function (Input) {
function parsePerformActionsParams(params) {
return parseObject(params, WebDriverBidi.Input.PerformActionsParametersSchema);
}
Input.parsePerformActionsParams = parsePerformActionsParams;
function parseReleaseActionsParams(params) {
return parseObject(params, WebDriverBidi.Input.ReleaseActionsParametersSchema);
}
Input.parseReleaseActionsParams = parseReleaseActionsParams;
})(Input || (exports.Input = Input = {}));
var Cdp;
(function (Cdp) {
const SendCommandRequestSchema = zod_1.z.object({
// Allowing any cdpMethod, and casting to proper type later on.
method: zod_1.z.string(),
// `passthrough` allows object to have any fields.
// https://github.com/colinhacks/zod#passthrough
params: zod_1.z.object({}).passthrough().optional(),
session: zod_1.z.string().optional(),
});
const GetSessionRequestSchema = zod_1.z.object({
context: WebDriverBidi.BrowsingContext.BrowsingContextSchema,
});
function parseSendCommandRequest(params) {
return parseObject(params, SendCommandRequestSchema);
}
Cdp.parseSendCommandRequest = parseSendCommandRequest;
function parseGetSessionRequest(params) {
return parseObject(params, GetSessionRequestSchema);
}
Cdp.parseGetSessionRequest = parseGetSessionRequest;
})(Cdp || (exports.Cdp = Cdp = {}));
//# sourceMappingURL=protocol-parser.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long