Sign In

@panerelay/protocol

Package Overview
Dependencies
Maintainers
2
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@panerelay/protocol - npm Package Compare versions

Comparing version
0.8.0
to
0.9.0
+288
dist/browser-fetch.d.ts
import { PANERELAY_PROTOCOL_VERSION } from './constants.js';
export declare const PANERELAY_FETCH_SESSION_PROTOCOL: "panerelay.fetch-session.v3";
export declare const PANERELAY_FETCH_PERMISSION_PROTOCOL: "panerelay.fetch-permission.v1";
export declare const PANERELAY_FETCH_ADAPTER_PROTOCOL: "panerelay.fetch-adapter.v3";
export declare const PANERELAY_FETCH_ADAPTER_REGISTRY_PROTOCOL: "panerelay.fetch-adapter-registry.v3";
export declare const PANERELAY_FETCH_MAX_URL_BYTES: number;
export declare const PANERELAY_FETCH_MAX_HEADERS = 128;
export declare const PANERELAY_FETCH_MAX_HEADER_BYTES: number;
export declare const PANERELAY_FETCH_MAX_ORIGINS = 32;
export declare const PANERELAY_FETCH_MAX_BINDINGS = 16;
export declare const PANERELAY_FETCH_MAX_BODY_BYTES: number;
export declare const PANERELAY_FETCH_MAX_RESPONSE_BODY_BYTES: number;
export declare const PANERELAY_FETCH_MAX_HTTP_REQUEST_BYTES: number;
export declare const PANERELAY_FETCH_MAX_SESSION_REQUEST_BYTES: number;
export declare const PANERELAY_FETCH_MIN_TIMEOUT_MS = 100;
export declare const PANERELAY_FETCH_MAX_TIMEOUT_MS = 120000;
export declare const PANERELAY_FETCH_DEFAULT_TIMEOUT_MS = 30000;
export declare const PANERELAY_FETCH_SESSION_TTL_MS = 120000;
export declare const PANERELAY_FETCH_PERMISSION_TIMEOUT_MS = 90000;
export declare const PANERELAY_FETCH_MAX_SESSIONS = 16;
export declare const PANERELAY_FETCH_ADAPTER_MAX_ARTIFACT_BYTES: number;
export declare const PANERELAY_FETCH_ADAPTER_MAX_OUTPUT_BYTES: number;
export declare const PANERELAY_FETCH_ADAPTER_MAX_STDERR_BYTES: number;
export declare const PANERELAY_FETCH_ADAPTER_MAX_SOURCE_PATH_BYTES: number;
export declare const PANERELAY_FETCH_ADAPTER_MAX_SOURCE_REF_BYTES = 256;
export declare const PANERELAY_FETCH_ADAPTER_MAX_FILE_BYTES: number;
export declare const PANERELAY_FETCH_ADAPTER_MAX_INPUT_BYTES: number;
export declare const PANERELAY_FETCH_METHODS: readonly ["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"];
export type BrowserFetchMethod = (typeof PANERELAY_FETCH_METHODS)[number];
export type BrowserFetchResponseType = 'auto' | 'json' | 'text' | 'base64';
export interface BrowserFetchBody {
encoding: 'utf8' | 'base64';
data: string;
}
export interface BrowserFetchQueryEntry {
name: string;
value: string;
}
export type BrowserFetchBindingDestinationKind = 'form' | 'json' | 'header';
export interface BrowserFetchBindingDestination {
kind: BrowserFetchBindingDestinationKind;
name: string;
prefix?: string;
suffix?: string;
}
export type BrowserFetchBindingSource = {
kind: 'cookie';
name: string;
transform?: 'raw' | 'url-decode';
} | {
kind: 'local-storage';
origin: string;
key: string;
jsonPointers?: string[];
trim?: boolean;
};
export interface BrowserFetchBindingPolicy {
id: string;
source: BrowserFetchBindingSource;
destination: BrowserFetchBindingDestination;
requestOrigins: string[];
required?: boolean;
}
export interface BrowserFetchRequest {
url: string;
method?: BrowserFetchMethod;
headers?: Record<string, string>;
query?: BrowserFetchQueryEntry[];
body?: BrowserFetchBody;
withCookies?: boolean;
bindings?: string[];
responseType?: BrowserFetchResponseType;
timeoutMs?: number;
}
export interface BrowserFetchResponse {
status: number;
statusText: string;
headers: Record<string, string>;
body: unknown;
bodyType: 'json' | 'text' | 'base64';
url: string;
redirected: boolean;
attachedCookieCount: number;
}
export interface BrowserFetchRequestMessage {
type: 'fetch.request';
protocol: typeof PANERELAY_PROTOCOL_VERSION;
requestId: string;
browserId: string;
generation: string;
allowedOrigins: string[];
bindingPolicies: BrowserFetchBindingPolicy[];
request: BrowserFetchRequest;
}
export interface BrowserFetchCancelMessage {
type: 'fetch.cancel';
protocol: typeof PANERELAY_PROTOCOL_VERSION;
requestId: string;
browserId: string;
generation: string;
}
export interface BrowserFetchResultMessage {
type: 'fetch.result';
protocol: typeof PANERELAY_PROTOCOL_VERSION;
requestId: string;
success: boolean;
response?: BrowserFetchResponse;
error?: string;
}
export type BrowserFetchPermissionScope = 'domain';
export interface BrowserFetchPermissionRequestMessage {
type: 'fetch.permission.request';
protocol: typeof PANERELAY_PROTOCOL_VERSION;
requestId: string;
browserId: string;
generation: string;
domain: string;
}
export interface BrowserFetchPermissionCancelMessage {
type: 'fetch.permission.cancel';
protocol: typeof PANERELAY_PROTOCOL_VERSION;
requestId: string;
browserId: string;
generation: string;
}
export interface BrowserFetchPermissionResultMessage {
type: 'fetch.permission.result';
protocol: typeof PANERELAY_PROTOCOL_VERSION;
requestId: string;
granted: boolean;
domain: string;
scope?: BrowserFetchPermissionScope;
error?: string;
}
export interface BrowserFetchSessionCreateRequest {
protocol: typeof PANERELAY_FETCH_SESSION_PROTOCOL;
browser: {
browserId: string;
generation: string;
};
allowedOrigins: string[];
bindingPolicies?: BrowserFetchBindingPolicy[];
}
export interface BrowserFetchSessionCreated {
protocol: typeof PANERELAY_FETCH_SESSION_PROTOCOL;
sessionId: string;
endpoint: string;
token: string;
expiresAt: string;
}
export interface BrowserFetchSessionError {
protocol: typeof PANERELAY_FETCH_SESSION_PROTOCOL;
error: string;
}
export interface BrowserFetchPermissionRequest {
protocol: typeof PANERELAY_FETCH_PERMISSION_PROTOCOL;
browser: {
browserId: string;
generation: string;
};
domain: string;
}
export interface BrowserFetchPermissionResult {
protocol: typeof PANERELAY_FETCH_PERMISSION_PROTOCOL;
granted: boolean;
domain: string;
scope?: BrowserFetchPermissionScope;
}
export interface BrowserFetchPermissionError {
protocol: typeof PANERELAY_FETCH_PERMISSION_PROTOCOL;
error: string;
}
export type FetchAdapterArgumentType = 'string' | 'number' | 'boolean' | 'file';
export interface FetchAdapterArgument {
name: string;
description: string;
type: FetchAdapterArgumentType;
required?: boolean;
positional?: boolean;
default?: string | number | boolean;
}
export interface FetchAdapterCommand {
name: string;
description: string;
access: 'read' | 'write';
args: FetchAdapterArgument[];
output: string[];
examples: string[];
}
export interface FetchAdapterManifest {
protocol: typeof PANERELAY_FETCH_ADAPTER_PROTOCOL;
id: string;
name: string;
version: string;
description: string;
origins: string[];
bindings?: BrowserFetchBindingPolicy[];
entry: string;
commands: FetchAdapterCommand[];
}
export type FetchAdapterSourceProvenance = {
kind: 'builtin';
id: string;
version: string;
} | {
kind: 'local';
path: string;
} | {
kind: 'github';
repository: string;
commit: string;
ref?: string;
subdirectory?: string;
};
export interface FetchAdapterRegistration {
manifest: FetchAdapterManifest;
executablePath: string;
sha256: string;
source?: FetchAdapterSourceProvenance;
}
export interface FetchAdapterRegistry {
protocol: typeof PANERELAY_FETCH_ADAPTER_REGISTRY_PROTOCOL;
adapters: FetchAdapterRegistration[];
}
export interface FetchAdapterInvocationRequest {
protocol: typeof PANERELAY_FETCH_ADAPTER_PROTOCOL;
requestId: string;
operation: 'execute';
command: string;
args: Record<string, string | number | boolean>;
artifacts?: FetchAdapterInvocationArtifact[];
fetch: {
endpoint: string;
token: string;
expiresAt: string;
};
}
export interface FetchAdapterInvocationArtifact {
id: string;
basename: string;
mediaType: string;
size: number;
data: string;
}
export declare const SITE_ERROR_CODES: readonly ["invalid-input", "auth-required", "missing-credential", "challenge-required", "upstream-failure", "shape-drift", "empty-result", "unsupported", "command-failed"];
export type SiteErrorCode = (typeof SITE_ERROR_CODES)[number];
export interface FetchAdapterInvocationError {
code: SiteErrorCode;
message: string;
retryable?: boolean;
}
export interface FetchAdapterInvocationResponse {
protocol: typeof PANERELAY_FETCH_ADAPTER_PROTOCOL;
requestId: string;
operation: 'execute';
success: boolean;
result?: unknown;
error?: FetchAdapterInvocationError;
}
export declare function normalizeBrowserFetchOriginPattern(value: unknown): string | null;
export declare function browserFetchOriginForUrl(value: string): string | null;
export declare function doesBrowserFetchOriginMatch(pattern: string, value: string): boolean;
export declare function isBrowserFetchBindingPolicy(value: unknown): value is BrowserFetchBindingPolicy;
export declare function areBrowserFetchBindingPoliciesCompatible(request: BrowserFetchRequest, policies: readonly BrowserFetchBindingPolicy[]): boolean;
export declare function isBrowserFetchRequest(value: unknown): value is BrowserFetchRequest;
export declare function isBrowserFetchResponse(value: unknown): value is BrowserFetchResponse;
export declare function isBrowserFetchRequestMessage(value: unknown): value is BrowserFetchRequestMessage;
export declare function isBrowserFetchCancelMessage(value: unknown): value is BrowserFetchCancelMessage;
export declare function isBrowserFetchPermissionCancelMessage(value: unknown): value is BrowserFetchPermissionCancelMessage;
export declare function isBrowserFetchResultMessage(value: unknown): value is BrowserFetchResultMessage;
export declare function normalizeBrowserFetchDomain(value: unknown): string | null;
export declare function isBrowserFetchPermissionRequestMessage(value: unknown): value is BrowserFetchPermissionRequestMessage;
export declare function isBrowserFetchPermissionResultMessage(value: unknown): value is BrowserFetchPermissionResultMessage;
export declare function isBrowserFetchSessionCreateRequest(value: unknown): value is BrowserFetchSessionCreateRequest;
export declare function isBrowserFetchPermissionRequest(value: unknown): value is BrowserFetchPermissionRequest;
export declare function isBrowserFetchPermissionResult(value: unknown): value is BrowserFetchPermissionResult;
export declare function isBrowserFetchPermissionError(value: unknown): value is BrowserFetchPermissionError;
export declare function isBrowserFetchSessionCreated(value: unknown): value is BrowserFetchSessionCreated;
export declare function isBrowserFetchSessionError(value: unknown): value is BrowserFetchSessionError;
export declare function isFetchAdapterManifest(value: unknown): value is FetchAdapterManifest;
export declare function isFetchAdapterSourceProvenance(value: unknown): value is FetchAdapterSourceProvenance;
export declare function isFetchAdapterRegistration(value: unknown): value is FetchAdapterRegistration;
export declare function isFetchAdapterRegistry(value: unknown): value is FetchAdapterRegistry;
export declare function isFetchAdapterInvocationError(value: unknown): value is FetchAdapterInvocationError;
export declare function isFetchAdapterInvocationRequest(value: unknown): value is FetchAdapterInvocationRequest;
export declare function isFetchAdapterInvocationResponse(value: unknown): value is FetchAdapterInvocationResponse;
export declare function serializeFetchAdapterMessage(value: unknown): string;
//# sourceMappingURL=browser-fetch.d.ts.map
{"version":3,"file":"browser-fetch.d.ts","sourceRoot":"","sources":["../src/browser-fetch.ts"],"names":[],"mappings":"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"}
import { PANERELAY_PROTOCOL_VERSION } from './constants.js';
export const PANERELAY_FETCH_SESSION_PROTOCOL = 'panerelay.fetch-session.v3';
export const PANERELAY_FETCH_PERMISSION_PROTOCOL = 'panerelay.fetch-permission.v1';
export const PANERELAY_FETCH_ADAPTER_PROTOCOL = 'panerelay.fetch-adapter.v3';
export const PANERELAY_FETCH_ADAPTER_REGISTRY_PROTOCOL = 'panerelay.fetch-adapter-registry.v3';
export const PANERELAY_FETCH_MAX_URL_BYTES = 8 * 1024;
export const PANERELAY_FETCH_MAX_HEADERS = 128;
export const PANERELAY_FETCH_MAX_HEADER_BYTES = 64 * 1024;
export const PANERELAY_FETCH_MAX_ORIGINS = 32;
export const PANERELAY_FETCH_MAX_BINDINGS = 16;
export const PANERELAY_FETCH_MAX_BODY_BYTES = 16 * 1024 * 1024;
export const PANERELAY_FETCH_MAX_RESPONSE_BODY_BYTES = 32 * 1024 * 1024;
export const PANERELAY_FETCH_MAX_HTTP_REQUEST_BYTES = 24 * 1024 * 1024;
export const PANERELAY_FETCH_MAX_SESSION_REQUEST_BYTES = 96 * 1024;
export const PANERELAY_FETCH_MIN_TIMEOUT_MS = 100;
export const PANERELAY_FETCH_MAX_TIMEOUT_MS = 120_000;
export const PANERELAY_FETCH_DEFAULT_TIMEOUT_MS = 30_000;
export const PANERELAY_FETCH_SESSION_TTL_MS = 120_000;
export const PANERELAY_FETCH_PERMISSION_TIMEOUT_MS = 90_000;
export const PANERELAY_FETCH_MAX_SESSIONS = 16;
export const PANERELAY_FETCH_ADAPTER_MAX_ARTIFACT_BYTES = 8 * 1024 * 1024;
export const PANERELAY_FETCH_ADAPTER_MAX_OUTPUT_BYTES = 8 * 1024 * 1024;
export const PANERELAY_FETCH_ADAPTER_MAX_STDERR_BYTES = 64 * 1024;
export const PANERELAY_FETCH_ADAPTER_MAX_SOURCE_PATH_BYTES = 4 * 1024;
export const PANERELAY_FETCH_ADAPTER_MAX_SOURCE_REF_BYTES = 256;
export const PANERELAY_FETCH_ADAPTER_MAX_FILE_BYTES = 12 * 1024 * 1024;
export const PANERELAY_FETCH_ADAPTER_MAX_INPUT_BYTES = 18 * 1024 * 1024;
export const PANERELAY_FETCH_METHODS = [
'GET',
'POST',
'PUT',
'DELETE',
'PATCH',
'HEAD',
'OPTIONS',
];
export const SITE_ERROR_CODES = [
'invalid-input',
'auth-required',
'missing-credential',
'challenge-required',
'upstream-failure',
'shape-drift',
'empty-result',
'unsupported',
'command-failed',
];
function hasExactKeys(value, keys) {
const actual = Object.keys(value).sort();
const expected = [...keys].sort();
return actual.length === expected.length && actual.every((key, index) => key === expected[index]);
}
function hasAllowedKeys(value, keys) {
return Object.keys(value).every(key => keys.includes(key));
}
function bytes(value) {
return new TextEncoder().encode(value).length;
}
function isBoundedString(value, minimum, maximum) {
return typeof value === 'string' && value.length >= minimum && bytes(value) <= maximum;
}
function isIdentifier(value) {
return typeof value === 'string' && /^[a-z][a-z0-9-]{0,63}$/.test(value);
}
function isAdapterId(value) {
return typeof value === 'string' && /^[a-z0-9][a-z0-9-]{0,63}$/.test(value);
}
function isFieldName(value) {
return typeof value === 'string' && /^[A-Za-z][A-Za-z0-9_.-]{0,63}$/.test(value);
}
function isSafeEntry(value) {
return (typeof value === 'string' &&
/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}\.mjs$/.test(value) &&
value !== '.' &&
value !== '..');
}
function isIsoDate(value) {
return typeof value === 'string' && Number.isFinite(Date.parse(value));
}
function decodedBase64Bytes(value, maximum = PANERELAY_FETCH_MAX_BODY_BYTES) {
if (value.length === 0)
return 0;
if (value.length > Math.ceil((maximum * 4) / 3) + 4)
return null;
if (value.length % 4 !== 0 ||
!/^[A-Za-z0-9+/]*={0,2}$/.test(value) ||
value.slice(0, -2).includes('=') ||
(value.endsWith('==') && value.length >= 2 && !/[A-Za-z0-9+/]==$/.test(value)) ||
(value.endsWith('=') && !value.endsWith('==') && !/[A-Za-z0-9+/]{2}=$/.test(value))) {
return null;
}
const padding = value.endsWith('==') ? 2 : value.endsWith('=') ? 1 : 0;
return (value.length / 4) * 3 - padding;
}
function isHeaders(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const entries = Object.entries(value);
return (entries.length <= PANERELAY_FETCH_MAX_HEADERS &&
entries.every(([name, headerValue]) => /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/.test(name) &&
typeof headerValue === 'string' &&
!/[\r\n]/.test(headerValue)) &&
entries.reduce((total, [name, headerValue]) => total + bytes(name) + bytes(String(headerValue)), 0) <= PANERELAY_FETCH_MAX_HEADER_BYTES);
}
function isQuery(value) {
return (Array.isArray(value) &&
value.length <= 256 &&
value.every(entry => {
if (!entry || typeof entry !== 'object' || Array.isArray(entry))
return false;
const candidate = entry;
return (hasExactKeys(candidate, ['name', 'value']) &&
isBoundedString(candidate.name, 1, 1_024) &&
isBoundedString(candidate.value, 0, 8 * 1_024));
}));
}
function isBody(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const candidate = value;
if (!hasExactKeys(candidate, ['encoding', 'data']) ||
(candidate.encoding !== 'utf8' && candidate.encoding !== 'base64') ||
typeof candidate.data !== 'string') {
return false;
}
const length = candidate.encoding === 'utf8' ? bytes(candidate.data) : decodedBase64Bytes(candidate.data);
return length !== null && length <= PANERELAY_FETCH_MAX_BODY_BYTES;
}
const RESERVED_BOUND_HEADER_NAMES = new Set([
'cookie',
'origin',
'referer',
'host',
'content-length',
]);
export function normalizeBrowserFetchOriginPattern(value) {
if (!isBoundedString(value, 1, PANERELAY_FETCH_MAX_URL_BYTES))
return null;
try {
const url = new URL(value);
if ((url.protocol !== 'http:' && url.protocol !== 'https:') ||
url.username ||
url.password ||
url.pathname !== '/' ||
url.search ||
url.hash) {
return null;
}
let hostname = url.hostname.toLowerCase().replace(/\.$/, '');
const wildcard = hostname.startsWith('*.');
if (wildcard)
hostname = hostname.slice(2);
if (!hostname || /[\s/*]/.test(hostname))
return null;
if (wildcard &&
(hostname === 'localhost' || /^\[.*\]$/.test(hostname) || /^\d+(?:\.\d+){3}$/.test(hostname))) {
return null;
}
return `${url.protocol}//${wildcard ? '*.' : ''}${hostname}${url.port ? `:${url.port}` : ''}`;
}
catch {
return null;
}
}
export function browserFetchOriginForUrl(value) {
try {
const url = new URL(value);
if ((url.protocol !== 'http:' && url.protocol !== 'https:') || url.username || url.password) {
return null;
}
return url.origin;
}
catch {
return null;
}
}
export function doesBrowserFetchOriginMatch(pattern, value) {
const normalized = normalizeBrowserFetchOriginPattern(pattern);
const origin = browserFetchOriginForUrl(value);
if (!normalized || !origin)
return false;
const target = new URL(origin);
const wildcard = normalized.includes('://*.');
const parsed = new URL(wildcard ? normalized.replace('://*.', '://') : normalized);
if (parsed.protocol !== target.protocol || parsed.port !== target.port)
return false;
return wildcard
? target.hostname === parsed.hostname || target.hostname.endsWith(`.${parsed.hostname}`)
: target.hostname === parsed.hostname;
}
function isOriginPatterns(value, allowEmpty = false) {
return (Array.isArray(value) &&
(allowEmpty || value.length > 0) &&
value.length <= PANERELAY_FETCH_MAX_ORIGINS &&
value.every(origin => normalizeBrowserFetchOriginPattern(origin) === origin) &&
new Set(value).size === value.length);
}
function isBindingDestination(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const destination = value;
if (!hasAllowedKeys(destination, ['kind', 'name', 'prefix', 'suffix']) ||
!['form', 'json', 'header'].includes(destination.kind) ||
!isBoundedString(destination.name, 1, 256) ||
/[\r\n]/.test(destination.name) ||
(destination.prefix !== undefined &&
(!isBoundedString(destination.prefix, 0, 256) || /[\r\n]/.test(destination.prefix))) ||
(destination.suffix !== undefined &&
(!isBoundedString(destination.suffix, 0, 256) || /[\r\n]/.test(destination.suffix)))) {
return false;
}
if (destination.kind !== 'header')
return !/[&=]/.test(destination.name);
return (/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/.test(destination.name) &&
!RESERVED_BOUND_HEADER_NAMES.has(destination.name.toLowerCase()));
}
function isJsonPointer(value) {
return (isBoundedString(value, 0, 512) &&
(value === '' || (value.startsWith('/') && !/(?:~[^01])|(?:~$)/.test(value))));
}
function isBindingSource(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const candidate = value;
if (candidate.kind === 'cookie') {
return (hasAllowedKeys(candidate, ['kind', 'name', 'transform']) &&
isBoundedString(candidate.name, 1, 256) &&
/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/.test(candidate.name) &&
(candidate.transform === undefined ||
candidate.transform === 'raw' ||
candidate.transform === 'url-decode'));
}
return (candidate.kind === 'local-storage' &&
hasAllowedKeys(candidate, ['kind', 'origin', 'key', 'jsonPointers', 'trim']) &&
normalizeBrowserFetchOriginPattern(candidate.origin) === candidate.origin &&
!String(candidate.origin).includes('://*.') &&
isBoundedString(candidate.key, 1, 512) &&
(candidate.jsonPointers === undefined ||
(Array.isArray(candidate.jsonPointers) &&
candidate.jsonPointers.length > 0 &&
candidate.jsonPointers.length <= 8 &&
candidate.jsonPointers.every(isJsonPointer) &&
new Set(candidate.jsonPointers).size === candidate.jsonPointers.length)) &&
(candidate.trim === undefined || typeof candidate.trim === 'boolean'));
}
export function isBrowserFetchBindingPolicy(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const candidate = value;
return (hasAllowedKeys(candidate, ['id', 'source', 'destination', 'requestOrigins', 'required']) &&
isIdentifier(candidate.id) &&
isBindingSource(candidate.source) &&
isBindingDestination(candidate.destination) &&
isOriginPatterns(candidate.requestOrigins) &&
(candidate.required === undefined || typeof candidate.required === 'boolean'));
}
function isBindingPolicies(value, optional = false) {
if (value === undefined)
return optional;
return (Array.isArray(value) &&
value.length <= PANERELAY_FETCH_MAX_BINDINGS &&
value.every(isBrowserFetchBindingPolicy) &&
new Set(value.map(policy => policy.id)).size === value.length);
}
function headerValue(headers, expectedName) {
for (const [name, value] of Object.entries(headers ?? {})) {
if (name.toLowerCase() === expectedName)
return value;
}
return undefined;
}
export function areBrowserFetchBindingPoliciesCompatible(request, policies) {
if (!isBrowserFetchRequest(request))
return false;
if (policies.length > PANERELAY_FETCH_MAX_BINDINGS ||
!policies.every(isBrowserFetchBindingPolicy))
return false;
if (!policies.every(policy => policy.requestOrigins.some(origin => doesBrowserFetchOriginMatch(origin, request.url))))
return false;
const value = policies;
const method = request.method ?? 'GET';
const headers = request.headers;
const body = request.body;
const destinations = value.map(policy => policy.destination.kind === 'header'
? `header:${policy.destination.name.toLowerCase()}`
: `${policy.destination.kind}:${policy.destination.name}`);
if (new Set(destinations).size !== destinations.length)
return false;
const bodyKinds = new Set(value.map(policy => policy.destination.kind).filter(kind => kind === 'form' || kind === 'json'));
if (bodyKinds.size > 1)
return false;
if (bodyKinds.size === 0)
return true;
if (method === 'GET' || method === 'HEAD' || body?.encoding === 'base64')
return false;
const contentType = headerValue(headers, 'content-type')?.split(';', 1)[0]?.trim().toLowerCase();
if (!contentType)
return true;
if (bodyKinds.has('form'))
return contentType === 'application/x-www-form-urlencoded';
return contentType === 'application/json' || contentType.endsWith('+json');
}
export function isBrowserFetchRequest(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const candidate = value;
if (!hasAllowedKeys(candidate, [
'url',
'method',
'headers',
'query',
'body',
'withCookies',
'bindings',
'responseType',
'timeoutMs',
]) ||
!isBoundedString(candidate.url, 1, PANERELAY_FETCH_MAX_URL_BYTES)) {
return false;
}
try {
const url = new URL(candidate.url);
if (url.protocol !== 'http:' && url.protocol !== 'https:')
return false;
if (url.username || url.password)
return false;
}
catch {
return false;
}
const method = candidate.method ?? 'GET';
if (!PANERELAY_FETCH_METHODS.includes(method))
return false;
if (candidate.headers !== undefined && !isHeaders(candidate.headers))
return false;
if (candidate.headers !== undefined &&
Object.keys(candidate.headers).some(name => name.toLowerCase() === 'cookie')) {
return false;
}
if (candidate.query !== undefined && !isQuery(candidate.query))
return false;
if (candidate.body !== undefined && !isBody(candidate.body))
return false;
if ((method === 'GET' || method === 'HEAD') && candidate.body !== undefined)
return false;
if (candidate.withCookies !== undefined && typeof candidate.withCookies !== 'boolean')
return false;
if (candidate.bindings !== undefined &&
(!Array.isArray(candidate.bindings) ||
candidate.bindings.length > PANERELAY_FETCH_MAX_BINDINGS ||
!candidate.bindings.every(isIdentifier) ||
new Set(candidate.bindings).size !== candidate.bindings.length))
return false;
if (candidate.responseType !== undefined &&
!['auto', 'json', 'text', 'base64'].includes(candidate.responseType)) {
return false;
}
return (candidate.timeoutMs === undefined ||
(typeof candidate.timeoutMs === 'number' &&
Number.isSafeInteger(candidate.timeoutMs) &&
candidate.timeoutMs >= PANERELAY_FETCH_MIN_TIMEOUT_MS &&
candidate.timeoutMs <= PANERELAY_FETCH_MAX_TIMEOUT_MS));
}
export function isBrowserFetchResponse(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const candidate = value;
const validBody = (() => {
if (candidate.bodyType === 'text') {
return (typeof candidate.body === 'string' &&
bytes(candidate.body) <= PANERELAY_FETCH_MAX_RESPONSE_BODY_BYTES);
}
if (candidate.bodyType === 'base64') {
return (typeof candidate.body === 'string' &&
decodedBase64Bytes(candidate.body, PANERELAY_FETCH_MAX_RESPONSE_BODY_BYTES) !== null);
}
if (candidate.bodyType !== 'json')
return false;
try {
const serialized = JSON.stringify(candidate.body);
return (serialized !== undefined && bytes(serialized) <= PANERELAY_FETCH_MAX_RESPONSE_BODY_BYTES);
}
catch {
return false;
}
})();
return (hasExactKeys(candidate, [
'status',
'statusText',
'headers',
'body',
'bodyType',
'url',
'redirected',
'attachedCookieCount',
]) &&
typeof candidate.status === 'number' &&
Number.isSafeInteger(candidate.status) &&
candidate.status >= 0 &&
candidate.status <= 999 &&
isBoundedString(candidate.statusText, 0, 1_024) &&
isHeaders(candidate.headers) &&
['json', 'text', 'base64'].includes(candidate.bodyType) &&
validBody &&
isBoundedString(candidate.url, 1, PANERELAY_FETCH_MAX_URL_BYTES) &&
typeof candidate.redirected === 'boolean' &&
typeof candidate.attachedCookieCount === 'number' &&
Number.isSafeInteger(candidate.attachedCookieCount) &&
candidate.attachedCookieCount >= 0);
}
export function isBrowserFetchRequestMessage(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const candidate = value;
return (hasExactKeys(candidate, [
'type',
'protocol',
'requestId',
'browserId',
'generation',
'allowedOrigins',
'bindingPolicies',
'request',
]) &&
candidate.type === 'fetch.request' &&
candidate.protocol === PANERELAY_PROTOCOL_VERSION &&
isBoundedString(candidate.requestId, 1, 128) &&
isBoundedString(candidate.browserId, 1, 256) &&
isBoundedString(candidate.generation, 1, 128) &&
isOriginPatterns(candidate.allowedOrigins) &&
isBindingPolicies(candidate.bindingPolicies) &&
isBrowserFetchRequest(candidate.request) &&
(candidate.request.bindings?.length ?? 0) ===
candidate.bindingPolicies.length &&
(candidate.request.bindings ?? []).every((id, index) => id === candidate.bindingPolicies[index]?.id) &&
areBrowserFetchBindingPoliciesCompatible(candidate.request, candidate.bindingPolicies));
}
export function isBrowserFetchCancelMessage(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const candidate = value;
return (hasExactKeys(candidate, ['type', 'protocol', 'requestId', 'browserId', 'generation']) &&
candidate.type === 'fetch.cancel' &&
candidate.protocol === PANERELAY_PROTOCOL_VERSION &&
isBoundedString(candidate.requestId, 1, 128) &&
isBoundedString(candidate.browserId, 1, 256) &&
isBoundedString(candidate.generation, 1, 128));
}
export function isBrowserFetchPermissionCancelMessage(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const candidate = value;
return (hasExactKeys(candidate, ['type', 'protocol', 'requestId', 'browserId', 'generation']) &&
candidate.type === 'fetch.permission.cancel' &&
candidate.protocol === PANERELAY_PROTOCOL_VERSION &&
isBoundedString(candidate.requestId, 1, 128) &&
isBoundedString(candidate.browserId, 1, 256) &&
isBoundedString(candidate.generation, 1, 128));
}
export function isBrowserFetchResultMessage(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const candidate = value;
const expected = candidate.success
? ['type', 'protocol', 'requestId', 'success', 'response']
: ['type', 'protocol', 'requestId', 'success', 'error'];
return (hasExactKeys(candidate, expected) &&
candidate.type === 'fetch.result' &&
candidate.protocol === PANERELAY_PROTOCOL_VERSION &&
isBoundedString(candidate.requestId, 1, 128) &&
typeof candidate.success === 'boolean' &&
(candidate.success
? isBrowserFetchResponse(candidate.response)
: isBoundedString(candidate.error, 1, 2_048)));
}
export function normalizeBrowserFetchDomain(value) {
if (!isBoundedString(value, 1, PANERELAY_FETCH_MAX_URL_BYTES))
return null;
let source = value.trim().toLowerCase();
const wildcard = source.startsWith('*.');
if (wildcard)
source = source.slice(2);
try {
const url = new URL(source.includes('://') ? source : `http://${source}`);
if (url.username || url.password)
return null;
const hostname = url.hostname.toLowerCase().replace(/\.$/, '');
if (!hostname || /[\s/*]/.test(hostname))
return null;
if (wildcard &&
(hostname === 'localhost' || /^\[.*\]$/.test(hostname) || /^\d+(?:\.\d+){3}$/.test(hostname))) {
return null;
}
return wildcard ? `*.${hostname}` : hostname;
}
catch {
return null;
}
}
export function isBrowserFetchPermissionRequestMessage(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const candidate = value;
return (hasExactKeys(candidate, [
'type',
'protocol',
'requestId',
'browserId',
'generation',
'domain',
]) &&
candidate.type === 'fetch.permission.request' &&
candidate.protocol === PANERELAY_PROTOCOL_VERSION &&
isBoundedString(candidate.requestId, 1, 128) &&
isBoundedString(candidate.browserId, 1, 256) &&
isBoundedString(candidate.generation, 1, 128) &&
normalizeBrowserFetchDomain(candidate.domain) === candidate.domain);
}
export function isBrowserFetchPermissionResultMessage(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const candidate = value;
const expected = candidate.granted
? ['type', 'protocol', 'requestId', 'granted', 'domain', 'scope']
: candidate.error === undefined
? ['type', 'protocol', 'requestId', 'granted', 'domain']
: ['type', 'protocol', 'requestId', 'granted', 'domain', 'error'];
return (hasExactKeys(candidate, expected) &&
candidate.type === 'fetch.permission.result' &&
candidate.protocol === PANERELAY_PROTOCOL_VERSION &&
isBoundedString(candidate.requestId, 1, 128) &&
typeof candidate.granted === 'boolean' &&
normalizeBrowserFetchDomain(candidate.domain) === candidate.domain &&
(candidate.granted
? candidate.scope === 'domain'
: candidate.error === undefined || isBoundedString(candidate.error, 1, 2_048)));
}
export function isBrowserFetchSessionCreateRequest(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const candidate = value;
if (!hasAllowedKeys(candidate, ['protocol', 'browser', 'allowedOrigins', 'bindingPolicies']) ||
candidate.protocol !== PANERELAY_FETCH_SESSION_PROTOCOL ||
!isOriginPatterns(candidate.allowedOrigins, true) ||
!isBindingPolicies(candidate.bindingPolicies, true) ||
!candidate.browser ||
typeof candidate.browser !== 'object' ||
Array.isArray(candidate.browser)) {
return false;
}
const browser = candidate.browser;
return (hasExactKeys(browser, ['browserId', 'generation']) &&
isBoundedString(browser.browserId, 1, 256) &&
isBoundedString(browser.generation, 1, 128));
}
export function isBrowserFetchPermissionRequest(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const candidate = value;
if (!hasExactKeys(candidate, ['protocol', 'browser', 'domain']) ||
candidate.protocol !== PANERELAY_FETCH_PERMISSION_PROTOCOL ||
normalizeBrowserFetchDomain(candidate.domain) !== candidate.domain ||
!candidate.browser ||
typeof candidate.browser !== 'object' ||
Array.isArray(candidate.browser)) {
return false;
}
const browser = candidate.browser;
return (hasExactKeys(browser, ['browserId', 'generation']) &&
isBoundedString(browser.browserId, 1, 256) &&
isBoundedString(browser.generation, 1, 128));
}
export function isBrowserFetchPermissionResult(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const candidate = value;
const expected = candidate.granted
? ['protocol', 'granted', 'domain', 'scope']
: ['protocol', 'granted', 'domain'];
return (hasExactKeys(candidate, expected) &&
candidate.protocol === PANERELAY_FETCH_PERMISSION_PROTOCOL &&
typeof candidate.granted === 'boolean' &&
normalizeBrowserFetchDomain(candidate.domain) === candidate.domain &&
(candidate.granted ? candidate.scope === 'domain' : candidate.scope === undefined));
}
export function isBrowserFetchPermissionError(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const candidate = value;
return (hasExactKeys(candidate, ['protocol', 'error']) &&
candidate.protocol === PANERELAY_FETCH_PERMISSION_PROTOCOL &&
isBoundedString(candidate.error, 1, 2_048));
}
function isLoopbackFetchEndpoint(value) {
if (!isBoundedString(value, 1, 2_048))
return false;
try {
const endpoint = new URL(value);
return (endpoint.protocol === 'http:' &&
['127.0.0.1', '[::1]'].includes(endpoint.hostname) &&
endpoint.pathname === '/fetch' &&
endpoint.search === '' &&
endpoint.hash === '');
}
catch {
return false;
}
}
export function isBrowserFetchSessionCreated(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const candidate = value;
return (hasExactKeys(candidate, ['protocol', 'sessionId', 'endpoint', 'token', 'expiresAt']) &&
candidate.protocol === PANERELAY_FETCH_SESSION_PROTOCOL &&
isBoundedString(candidate.sessionId, 1, 128) &&
isLoopbackFetchEndpoint(candidate.endpoint) &&
isBoundedString(candidate.token, 16, 256) &&
isIsoDate(candidate.expiresAt));
}
export function isBrowserFetchSessionError(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const candidate = value;
return (hasExactKeys(candidate, ['protocol', 'error']) &&
candidate.protocol === PANERELAY_FETCH_SESSION_PROTOCOL &&
isBoundedString(candidate.error, 1, 2_048));
}
function isAdapterDefault(type, value) {
if (type === 'file')
return value === undefined;
return value === undefined || typeof value === type;
}
function isFetchAdapterArgument(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const candidate = value;
if (!hasAllowedKeys(candidate, [
'name',
'description',
'type',
'required',
'positional',
'default',
]) ||
!isIdentifier(candidate.name) ||
!isBoundedString(candidate.description, 1, 1_024) ||
!['string', 'number', 'boolean', 'file'].includes(candidate.type) ||
(candidate.required !== undefined && typeof candidate.required !== 'boolean') ||
(candidate.positional !== undefined && typeof candidate.positional !== 'boolean') ||
(candidate.required === true && candidate.default !== undefined)) {
return false;
}
return isAdapterDefault(candidate.type, candidate.default);
}
function isFetchAdapterCommand(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const candidate = value;
if (!hasExactKeys(candidate, ['name', 'description', 'access', 'args', 'output', 'examples']) ||
!isIdentifier(candidate.name) ||
!isBoundedString(candidate.description, 1, 2_048) ||
(candidate.access !== 'read' && candidate.access !== 'write') ||
!Array.isArray(candidate.args) ||
candidate.args.length > 64 ||
!candidate.args.every(isFetchAdapterArgument) ||
new Set(candidate.args.map(argument => argument.name)).size !== candidate.args.length ||
!Array.isArray(candidate.output) ||
candidate.output.length > 128 ||
!candidate.output.every(isFieldName) ||
new Set(candidate.output).size !== candidate.output.length ||
!Array.isArray(candidate.examples) ||
candidate.examples.length > 16 ||
!candidate.examples.every(example => isBoundedString(example, 1, 2_048))) {
return false;
}
const positional = candidate.args.filter(argument => argument.positional);
const optionalBeforeRequired = positional.some((argument, index) => !argument.required && positional.slice(index + 1).some(later => later.required));
return (!optionalBeforeRequired &&
candidate.args.filter(argument => argument.type === 'file').length <= 1);
}
export function isFetchAdapterManifest(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const candidate = value;
return (hasAllowedKeys(candidate, [
'protocol',
'id',
'name',
'version',
'description',
'origins',
'bindings',
'entry',
'commands',
]) &&
candidate.protocol === PANERELAY_FETCH_ADAPTER_PROTOCOL &&
isAdapterId(candidate.id) &&
isBoundedString(candidate.name, 1, 128) &&
isBoundedString(candidate.version, 1, 64) &&
/^[0-9A-Za-z][0-9A-Za-z.+-]{0,63}$/.test(candidate.version) &&
isBoundedString(candidate.description, 1, 2_048) &&
isOriginPatterns(candidate.origins, true) &&
isBindingPolicies(candidate.bindings, true) &&
isSafeEntry(candidate.entry) &&
Array.isArray(candidate.commands) &&
candidate.commands.length > 0 &&
candidate.commands.length <= 128 &&
candidate.commands.every(isFetchAdapterCommand) &&
new Set(candidate.commands.map(command => command.name)).size === candidate.commands.length);
}
function isAbsoluteSourcePath(value) {
if (!isBoundedString(value, 1, PANERELAY_FETCH_ADAPTER_MAX_SOURCE_PATH_BYTES))
return false;
if (/\p{Cc}/u.test(value))
return false;
return value.startsWith('/') || /^[A-Za-z]:[\\/]/.test(value) || /^\\\\[^\\]/.test(value);
}
function isSafeSourceSubdirectory(value) {
if (!isBoundedString(value, 1, PANERELAY_FETCH_ADAPTER_MAX_SOURCE_PATH_BYTES))
return false;
if (value.startsWith('/') || value.endsWith('/') || value.includes('\\'))
return false;
const segments = value.split('/');
return (segments.length <= 32 &&
segments.every(segment => segment !== '' &&
segment !== '.' &&
segment !== '..' &&
!/\p{Cc}/u.test(segment) &&
bytes(segment) <= 255));
}
function isGitHubRepository(value) {
if (!isBoundedString(value, 3, 256))
return false;
const match = /^([0-9A-Za-z](?:[0-9A-Za-z-]{0,37}[0-9A-Za-z])?)\/([0-9A-Za-z._-]{1,100})$/.exec(value);
return !!match && !match[2]?.endsWith('.git') && match[2] !== '.' && match[2] !== '..';
}
function isGitHubRef(value) {
return (isBoundedString(value, 1, PANERELAY_FETCH_ADAPTER_MAX_SOURCE_REF_BYTES) &&
/^[0-9A-Za-z][0-9A-Za-z._/-]*$/.test(value) &&
!value.includes('..') &&
!value.includes('//') &&
!value.endsWith('/') &&
!value.endsWith('.') &&
value.split('/').every(segment => segment !== '.' && segment !== '..'));
}
export function isFetchAdapterSourceProvenance(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const candidate = value;
if (candidate.kind === 'builtin') {
return (hasExactKeys(candidate, ['kind', 'id', 'version']) &&
isAdapterId(candidate.id) &&
isBoundedString(candidate.version, 1, 64) &&
/^[0-9A-Za-z][0-9A-Za-z.+-]{0,63}$/.test(candidate.version));
}
if (candidate.kind === 'local') {
return hasExactKeys(candidate, ['kind', 'path']) && isAbsoluteSourcePath(candidate.path);
}
if (candidate.kind !== 'github')
return false;
return (hasAllowedKeys(candidate, ['kind', 'repository', 'commit', 'ref', 'subdirectory']) &&
Object.hasOwn(candidate, 'repository') &&
Object.hasOwn(candidate, 'commit') &&
isGitHubRepository(candidate.repository) &&
typeof candidate.commit === 'string' &&
/^[0-9a-f]{40}$/.test(candidate.commit) &&
(candidate.ref === undefined || isGitHubRef(candidate.ref)) &&
(candidate.subdirectory === undefined || isSafeSourceSubdirectory(candidate.subdirectory)));
}
export function isFetchAdapterRegistration(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const candidate = value;
return (hasAllowedKeys(candidate, ['manifest', 'executablePath', 'sha256', 'source']) &&
Object.hasOwn(candidate, 'manifest') &&
Object.hasOwn(candidate, 'executablePath') &&
Object.hasOwn(candidate, 'sha256') &&
isFetchAdapterManifest(candidate.manifest) &&
typeof candidate.executablePath === 'string' &&
candidate.executablePath.length > 0 &&
/^[0-9a-f]{64}$/.test(String(candidate.sha256)) &&
(candidate.source === undefined || isFetchAdapterSourceProvenance(candidate.source)));
}
export function isFetchAdapterRegistry(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const candidate = value;
return (hasExactKeys(candidate, ['protocol', 'adapters']) &&
candidate.protocol === PANERELAY_FETCH_ADAPTER_REGISTRY_PROTOCOL &&
Array.isArray(candidate.adapters) &&
candidate.adapters.length <= 128 &&
candidate.adapters.every(isFetchAdapterRegistration) &&
new Set(candidate.adapters.map(adapter => adapter.manifest.id)).size ===
candidate.adapters.length);
}
function isAdapterArguments(value) {
return (!!value &&
typeof value === 'object' &&
!Array.isArray(value) &&
Object.entries(value).length <= 64 &&
Object.entries(value).every(([name, argument]) => isIdentifier(name) && ['string', 'number', 'boolean'].includes(typeof argument)));
}
function isSafeArtifactBasename(value) {
return (isBoundedString(value, 1, 255) && value !== '.' && value !== '..' && !/[\\/\p{Cc}]/u.test(value));
}
function isInvocationArtifact(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const candidate = value;
if (!hasExactKeys(candidate, ['id', 'basename', 'mediaType', 'size', 'data']) ||
!isBoundedString(candidate.id, 1, 128) ||
!/^[A-Za-z0-9_-]+$/.test(candidate.id) ||
!isSafeArtifactBasename(candidate.basename) ||
!isBoundedString(candidate.mediaType, 3, 256) ||
!/^[A-Za-z0-9!#$&^_.+-]+\/[A-Za-z0-9!#$&^_.+-]+$/.test(candidate.mediaType) ||
typeof candidate.size !== 'number' ||
!Number.isSafeInteger(candidate.size) ||
candidate.size < 0 ||
candidate.size > PANERELAY_FETCH_ADAPTER_MAX_FILE_BYTES ||
typeof candidate.data !== 'string') {
return false;
}
return (decodedBase64Bytes(candidate.data, PANERELAY_FETCH_ADAPTER_MAX_FILE_BYTES) === candidate.size);
}
export function isFetchAdapterInvocationError(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const candidate = value;
return (hasAllowedKeys(candidate, ['code', 'message', 'retryable']) &&
Object.hasOwn(candidate, 'code') &&
Object.hasOwn(candidate, 'message') &&
SITE_ERROR_CODES.includes(candidate.code) &&
isBoundedString(candidate.message, 1, 4_096) &&
(candidate.retryable === undefined || typeof candidate.retryable === 'boolean'));
}
export function isFetchAdapterInvocationRequest(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const candidate = value;
if (!hasAllowedKeys(candidate, [
'protocol',
'requestId',
'operation',
'command',
'args',
'artifacts',
'fetch',
]) ||
!Object.hasOwn(candidate, 'protocol') ||
!Object.hasOwn(candidate, 'requestId') ||
!Object.hasOwn(candidate, 'operation') ||
!Object.hasOwn(candidate, 'command') ||
!Object.hasOwn(candidate, 'args') ||
!Object.hasOwn(candidate, 'fetch') ||
candidate.protocol !== PANERELAY_FETCH_ADAPTER_PROTOCOL ||
!isBoundedString(candidate.requestId, 1, 128) ||
candidate.operation !== 'execute' ||
!isIdentifier(candidate.command) ||
!isAdapterArguments(candidate.args) ||
!candidate.fetch ||
typeof candidate.fetch !== 'object' ||
Array.isArray(candidate.fetch)) {
return false;
}
if (candidate.artifacts !== undefined &&
(!Array.isArray(candidate.artifacts) ||
candidate.artifacts.length > 1 ||
!candidate.artifacts.every(isInvocationArtifact))) {
return false;
}
const fetchSession = candidate.fetch;
return (hasExactKeys(fetchSession, ['endpoint', 'token', 'expiresAt']) &&
isBoundedString(fetchSession.endpoint, 1, 2_048) &&
isLoopbackFetchEndpoint(fetchSession.endpoint) &&
isBoundedString(fetchSession.token, 16, 256) &&
isIsoDate(fetchSession.expiresAt));
}
export function isFetchAdapterInvocationResponse(value) {
if (!value || typeof value !== 'object' || Array.isArray(value))
return false;
const candidate = value;
const expected = candidate.success
? ['protocol', 'requestId', 'operation', 'success', 'result']
: ['protocol', 'requestId', 'operation', 'success', 'error'];
return (hasExactKeys(candidate, expected) &&
candidate.protocol === PANERELAY_FETCH_ADAPTER_PROTOCOL &&
isBoundedString(candidate.requestId, 1, 128) &&
candidate.operation === 'execute' &&
typeof candidate.success === 'boolean' &&
(candidate.success || isFetchAdapterInvocationError(candidate.error)));
}
export function serializeFetchAdapterMessage(value) {
return `${JSON.stringify(value)}\n`;
}
+11
-2
import { PANERELAY_PROTOCOL_VERSION } from './constants.js';
import type { CliAdapterMode } from './cli-adapter.js';
export * from './constants.js';
export * from './browser-fetch.js';
export * from './cli-adapter.js';

@@ -13,2 +14,3 @@ export * from './cdp-bootstrap.js';

cdpRelay: boolean;
browserFetch?: boolean;
}

@@ -137,2 +139,9 @@ export interface BrowserRegistration {

}
export interface CdpControlUpdatedMessage {
type: 'cdp.control.updated';
protocol: typeof PANERELAY_PROTOCOL_VERSION;
targetId: string;
engine: AutomationEngineId | null;
}
export declare function isCdpControlUpdatedMessage(value: unknown): value is CdpControlUpdatedMessage;
export interface CdpError {

@@ -434,4 +443,4 @@ code: number;

}
export type HostToExtensionMessage = BrowserRegisteredMessage | HostUpdateStatusMessage | CdpTargetRequestMessage | CdpAttachMessage | CdpCommandMessage | CdpDetachMessage | import('./control-activity.js').ControlSessionChangedMessage | import('./control-activity.js').AutomationActivitySnapshotMessage | import('./control-activity.js').AutomationActivityUpdatedMessage | AgentResponseMessage | IntegrationResponseMessage | ConversationEventMessage;
export type ExtensionToHostMessage = BrowserRegisterMessage | HostUpdateRetryMessage | CdpTargetResultMessage | CdpTargetEventMessage | CdpAttachedMessage | CdpResultMessage | CdpEventMessage | CdpDetachedMessage | AgentRequestMessage | IntegrationRequestMessage;
export type HostToExtensionMessage = BrowserRegisteredMessage | HostUpdateStatusMessage | CdpTargetRequestMessage | CdpAttachMessage | CdpCommandMessage | CdpControlUpdatedMessage | CdpDetachMessage | import('./control-activity.js').ControlSessionChangedMessage | import('./control-activity.js').AutomationActivitySnapshotMessage | import('./control-activity.js').AutomationActivityUpdatedMessage | AgentResponseMessage | IntegrationResponseMessage | ConversationEventMessage | import('./browser-fetch.js').BrowserFetchCancelMessage | import('./browser-fetch.js').BrowserFetchRequestMessage | import('./browser-fetch.js').BrowserFetchPermissionCancelMessage | import('./browser-fetch.js').BrowserFetchPermissionRequestMessage;
export type ExtensionToHostMessage = BrowserRegisterMessage | HostUpdateRetryMessage | CdpTargetResultMessage | CdpTargetEventMessage | CdpAttachedMessage | CdpResultMessage | CdpEventMessage | CdpDetachedMessage | AgentRequestMessage | IntegrationRequestMessage | import('./browser-fetch.js').BrowserFetchResultMessage | import('./browser-fetch.js').BrowserFetchPermissionResultMessage;
export interface BridgeState {

@@ -438,0 +447,0 @@ protocol: typeof PANERELAY_PROTOCOL_VERSION;

+1
-1

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAoBvD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AAErC,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;AAEvE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAED,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IACjE,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE,OAAO,0BAA0B,CAAC;CAC7C;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,6BAA6B,MAAM,CAAC;AAEjD,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,SAAS,GACT,qBAAqB,GACrB,cAAc,GACd,SAAS,GACT,qBAAqB,GACrB,SAAS,CAAC;AAEd,UAAU,oBAAoB;IAC5B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,uBAAuB,GAC/B,CAAC,oBAAoB,GAAG;IACtB,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,iBAAiB,CAAC;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,KAAK,CAAC;CACvB,CAAC,GACF,CAAC,oBAAoB,GAAG;IACtB,KAAK,EAAE,QAAQ,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,IAAI,CAAC;IACrB,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC,GACF,CAAC,oBAAoB,GAAG;IACtB,KAAK,EAAE,cAAc,CAAC;IACtB,cAAc,EAAE,KAAK,CAAC;IACtB,MAAM,EAAE,2BAA2B,GAAG,YAAY,CAAC;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC,CAAC;AAEP,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,EAAE,OAAO,0BAA0B,CAAC;CAC7C;AAED,wBAAgB,6BAA6B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAK3E;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3C,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,kBAAkB,CAAC;CAC/B;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,qBAAqB,GAC7B;IACE,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE,aAAa,CAAC;CACvB,GACD;IACE,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEN,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,kBAAkB,GAAG,eAAe,GAAG,aAAa,GAAG,YAAY,CAAC;AAEhF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAEhF;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACnC;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,wBAAwB,CAY5F;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO,CAAC;AAEpE,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,mBAAmB,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,uBAAuB,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE;QACb,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;CACH;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAE1E,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,mBAAmB,CAAC;IAClC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,OAAO,0BAA0B,EAAE,sBAAsB,CAAC;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,wBAAwB;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC;AAED,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,4BAA4B,QAAmB,CAAC;AAC7D,eAAO,MAAM,kCAAkC,QAAmB,CAAC;AACnE,eAAO,MAAM,6BAA6B,iEAKhC,CAAC;AAEX,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,4BAA4B,GACtC,QAAQ,GAAG,kBAAkB,GAAG,SAAS,GAAG,mBAAmB,GAAG,QAAQ,CAAC;AAE7E,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,GAAG,aAAa,GAAG,MAAM,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,4BAA4B,EAAE,CAAC;CAC3C;AAED,MAAM,MAAM,wBAAwB,GAClC,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,YAAY,GAAG,OAAO,CAAC;AAE1E,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,wBAAwB,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;CACzD;AAED,MAAM,MAAM,iBAAiB,GACzB;IACE,IAAI,EAAE,cAAc,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB,GACD;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC;CAChC,GACD;IACE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,mBAAmB,CAAC;CAC9B,GACD;IACE,IAAI,EAAE,iBAAiB,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,kBAAkB,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,oBAAoB,CAAC;CAChC,GACD;IACE,IAAI,EAAE,oBAAoB,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,oBAAoB,CAAC;CAChC,GACD;IACE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,GACD;IACE,IAAI,EAAE,gBAAgB,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,GAAG,aAAa,GAAG,QAAQ,CAAC;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACD;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEN,MAAM,MAAM,YAAY,GACpB;IAAE,MAAM,EAAE,iBAAiB,CAAA;CAAE,GAC7B;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,MAAM,EAAE,mBAAmB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GACjE;IACE,MAAM,EAAE,oBAAoB,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,wBAAwB,CAAC;CACpC,GACD;IAAE,MAAM,EAAE,qBAAqB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAC7E;IACE,MAAM,EAAE,mBAAmB,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,sBAAsB,EAAE,CAAC;CACnC,GACD;IACE,MAAM,EAAE,wBAAwB,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB,GACD;IACE,MAAM,EAAE,sBAAsB,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,4BAA4B,CAAC;CACxC,CAAC;AAEN,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,uBAAuB,GAAG,eAAe,GAAG,aAAa,CAAC;AAEtE,MAAM,MAAM,kBAAkB,GAC1B;IAAE,MAAM,EAAE,qBAAqB,CAAC;IAAC,WAAW,EAAE,uBAAuB,CAAA;CAAE,GACvE;IAAE,MAAM,EAAE,sBAAsB,CAAA;CAAE,GAClC;IAAE,MAAM,EAAE,sBAAsB,CAAA;CAAE,GAClC;IAAE,MAAM,EAAE,wBAAwB,CAAA;CAAE,GACpC;IAAE,MAAM,EAAE,yBAAyB,CAAA;CAAE,GACrC;IAAE,MAAM,EAAE,yBAAyB,CAAA;CAAE,GACrC;IAAE,MAAM,EAAE,2BAA2B,CAAA;CAAE,GACvC;IAAE,MAAM,EAAE,qBAAqB,CAAA;CAAE,GACjC;IAAE,MAAM,EAAE,6BAA6B,CAAA;CAAE,GACzC;IAAE,MAAM,EAAE,+BAA+B,CAAA;CAAE,GAC3C;IAAE,MAAM,EAAE,0BAA0B,CAAA;CAAE,CAAC;AAE3C,MAAM,WAAW,gCAAgC;IAC/C,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,mCAAmC;IAClD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,kCAAkC;IACjD,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,uBAAuB,CAAC;IACrC,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,+BAA+B;IAC9C,cAAc,EAAE;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,GAAG,IAAI,CAAC;IACT,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,iBAAiB,GACzB,wBAAwB,GACxB,gCAAgC,GAChC,kCAAkC,GAClC,mCAAmC,GACnC,+BAA+B,CAAC;AAEpC,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,kBAAkB,CAAC;CAC7B;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED,MAAM,MAAM,sBAAsB,GAC9B,wBAAwB,GACxB,uBAAuB,GACvB,uBAAuB,GACvB,gBAAgB,GAChB,iBAAiB,GACjB,wBAAwB,GACxB,gBAAgB,GAChB,OAAO,uBAAuB,EAAE,4BAA4B,GAC5D,OAAO,uBAAuB,EAAE,iCAAiC,GACjE,OAAO,uBAAuB,EAAE,gCAAgC,GAChE,oBAAoB,GACpB,0BAA0B,GAC1B,wBAAwB,GACxB,OAAO,oBAAoB,EAAE,yBAAyB,GACtD,OAAO,oBAAoB,EAAE,0BAA0B,GACvD,OAAO,oBAAoB,EAAE,mCAAmC,GAChE,OAAO,oBAAoB,EAAE,oCAAoC,CAAC;AAEtE,MAAM,MAAM,sBAAsB,GAC9B,sBAAsB,GACtB,sBAAsB,GACtB,sBAAsB,GACtB,qBAAqB,GACrB,kBAAkB,GAClB,gBAAgB,GAChB,eAAe,GACf,kBAAkB,GAClB,mBAAmB,GACnB,yBAAyB,GACzB,OAAO,oBAAoB,EAAE,yBAAyB,GACtD,OAAO,oBAAoB,EAAE,mCAAmC,CAAC;AAErE,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB,EAAE,MAAM,CAAC;IAChC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,KAAK,EAAE,iBAAiB,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,mFAAmF;IACnF,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;CACf;AAwFD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,sBAAsB,CAyDxF;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,sBAAsB,CA8CxF"}
import { PANERELAY_PROTOCOL_VERSION } from './constants.js';
import { isAutomationActivitySnapshotMessage, isAutomationActivityUpdatedMessage, isControlSessionChangedMessage, } from './control-activity.js';
import { isBrowserFetchCancelMessage, isBrowserFetchPermissionCancelMessage, isBrowserFetchPermissionRequestMessage, isBrowserFetchPermissionResultMessage, isBrowserFetchRequestMessage, isBrowserFetchResultMessage, } from './browser-fetch.js';
import { comparePanerelayReleaseVersions, isPanerelayChromiumBuildVersion, isPanerelayReleaseVersion, } from './release-version.js';
export * from './constants.js';
export * from './browser-fetch.js';
export * from './cli-adapter.js';

@@ -21,2 +23,14 @@ export * from './cdp-bootstrap.js';

}
export function isCdpControlUpdatedMessage(value) {
if (!value || typeof value !== 'object')
return false;
const candidate = value;
return (hasOnlyKeys(candidate, ['type', 'protocol', 'targetId', 'engine']) &&
candidate.type === 'cdp.control.updated' &&
candidate.protocol === PANERELAY_PROTOCOL_VERSION &&
typeof candidate.targetId === 'string' &&
candidate.targetId.length > 0 &&
candidate.targetId.length <= 256 &&
(candidate.engine === null || isAutomationEngineId(candidate.engine)));
}
export const CONVERSATION_MAX_IMAGES = 4;

@@ -137,4 +151,9 @@ export const CONVERSATION_MAX_IMAGE_BYTES = 10 * 1024 * 1024;

candidate.capabilities !== null &&
hasOnlyKeys(candidate.capabilities, ['cdpRelay']) &&
typeof candidate.capabilities.cdpRelay === 'boolean')));
hasOnlyKeys(candidate.capabilities, [
'cdpRelay',
'browserFetch',
]) &&
typeof candidate.capabilities.cdpRelay === 'boolean' &&
(candidate.capabilities.browserFetch === undefined ||
typeof candidate.capabilities.browserFetch === 'boolean'))));
}

@@ -144,2 +163,7 @@ if (candidate.type === 'host.update.retry') {

}
if (candidate.type === 'fetch.result')
return isBrowserFetchResultMessage(value);
if (candidate.type === 'fetch.permission.result') {
return isBrowserFetchPermissionResultMessage(value);
}
return [

@@ -169,2 +193,5 @@ 'cdp.target.result',

}
if (candidate.type === 'cdp.control.updated') {
return isCdpControlUpdatedMessage(value);
}
if (candidate.type === 'host.update.status') {

@@ -178,2 +205,12 @@ return isHostUpdateStatusMessage(candidate);

}
if (candidate.type === 'fetch.request')
return isBrowserFetchRequestMessage(value);
if (candidate.type === 'fetch.cancel')
return isBrowserFetchCancelMessage(value);
if (candidate.type === 'fetch.permission.cancel') {
return isBrowserFetchPermissionCancelMessage(value);
}
if (candidate.type === 'fetch.permission.request') {
return isBrowserFetchPermissionRequestMessage(value);
}
return (candidate.protocol === PANERELAY_PROTOCOL_VERSION &&

@@ -180,0 +217,0 @@ typeof candidate.type === 'string' &&

{
"name": "@panerelay/protocol",
"version": "0.8.0",
"version": "0.9.0",
"description": "Versioned relay protocol and shared types for Panerelay.",

@@ -40,5 +40,6 @@ "type": "module",

"build": "tsc -p tsconfig.json",
"test": "pnpm run build && node ../../scripts/run-compiled-tests.mjs dist",
"test": "pnpm run build && pnpm run test:compiled",
"test:compiled": "node ../../scripts/run-compiled-tests.mjs dist",
"typecheck": "tsc -p tsconfig.json --noEmit"
}
}