From 837abfbc154fb0a5f1a65b1339784f893598b563 Mon Sep 17 00:00:00 2001 From: Simon Knott Date: Thu, 27 Feb 2025 14:29:22 +0100 Subject: [PATCH] chore: document indexeddb type as "unknown" (#34944) --- docs/src/api/class-apirequest.md | 20 +- docs/src/api/class-apirequestcontext.md | 20 +- docs/src/api/class-browsercontext.md | 20 +- docs/src/api/params.md | 20 +- packages/playwright-client/types/types.d.ts | 238 +----------------- .../src/client/browserContext.ts | 2 +- packages/playwright-core/src/client/types.ts | 4 +- packages/playwright-core/types/types.d.ts | 238 +----------------- 8 files changed, 17 insertions(+), 545 deletions(-) diff --git a/docs/src/api/class-apirequest.md b/docs/src/api/class-apirequest.md index 42071c770a..686be4303c 100644 --- a/docs/src/api/class-apirequest.md +++ b/docs/src/api/class-apirequest.md @@ -71,25 +71,7 @@ Methods like [`method: APIRequestContext.get`] take the base URL into considerat - `localStorage` <[Array]<[Object]>> - `name` <[string]> - `value` <[string]> - - `indexedDB` ?<[Array]<[Object]>> indexedDB to set for context - - `name` <[string]> database name - - `version` <[int]> database version - - `stores` <[Array]<[Object]>> - - `name` <[string]> - - `keyPath` ?<[string]> - - `keyPathArray` ?<[Array]<[string]>> - - `autoIncrement` <[boolean]> - - `indexes` <[Array]<[Object]>> - - `name` <[string]> - - `keyPath` ?<[string]> - - `keyPathArray` ?<[Array]<[string]>> - - `unique` <[boolean]> - - `multiEntry` <[boolean]> - - `records` <[Array]<[Object]>> - - `key` ?<[Object]> - - `keyEncoded` ?<[Object]> if `key` is not JSON-serializable, this contains an encoded version that preserves types. - - `value` ?<[Object]> - - `valueEncoded` ?<[Object]> if `value` is not JSON-serializable, this contains an encoded version that preserves types. + - `indexedDB` ?<[Array]<[unknown]>> indexedDB to set for context Populates context with given storage state. This option can be used to initialize context with logged-in information obtained via [`method: BrowserContext.storageState`] or [`method: APIRequestContext.storageState`]. Either a path to the diff --git a/docs/src/api/class-apirequestcontext.md b/docs/src/api/class-apirequestcontext.md index 8cced36cc8..a9b7170e84 100644 --- a/docs/src/api/class-apirequestcontext.md +++ b/docs/src/api/class-apirequestcontext.md @@ -880,25 +880,7 @@ context cookies from the response. The method will automatically follow redirect - `localStorage` <[Array]<[Object]>> - `name` <[string]> - `value` <[string]> - - `indexedDB` <[Array]<[Object]>> - - `name` <[string]> - - `version` <[int]> - - `stores` <[Array]<[Object]>> - - `name` <[string]> - - `keyPath` ?<[string]> - - `keyPathArray` ?<[Array]<[string]>> - - `autoIncrement` <[boolean]> - - `indexes` <[Array]<[Object]>> - - `name` <[string]> - - `keyPath` ?<[string]> - - `keyPathArray` ?<[Array]<[string]>> - - `unique` <[boolean]> - - `multiEntry` <[boolean]> - - `records` <[Array]<[Object]>> - - `key` ?<[Object]> - - `keyEncoded` ?<[Object]> if `key` is not JSON-serializable, this contains an encoded version that preserves types. - - `value` ?<[Object]> - - `valueEncoded` ?<[Object]> if `value` is not JSON-serializable, this contains an encoded version that preserves types. + - `indexedDB` <[Array]<[unknown]>> Returns storage state for this request context, contains current cookies and local storage snapshot if it was passed to the constructor. diff --git a/docs/src/api/class-browsercontext.md b/docs/src/api/class-browsercontext.md index 211074d438..91e43e22dd 100644 --- a/docs/src/api/class-browsercontext.md +++ b/docs/src/api/class-browsercontext.md @@ -1511,25 +1511,7 @@ Whether to emulate network being offline for the browser context. - `localStorage` <[Array]<[Object]>> - `name` <[string]> - `value` <[string]> - - `indexedDB` <[Array]<[Object]>> - - `name` <[string]> - - `version` <[int]> - - `stores` <[Array]<[Object]>> - - `name` <[string]> - - `keyPath` ?<[string]> - - `keyPathArray` ?<[Array]<[string]>> - - `autoIncrement` <[boolean]> - - `indexes` <[Array]<[Object]>> - - `name` <[string]> - - `keyPath` ?<[string]> - - `keyPathArray` ?<[Array]<[string]>> - - `unique` <[boolean]> - - `multiEntry` <[boolean]> - - `records` <[Array]<[Object]>> - - `key` ?<[Object]> - - `keyEncoded` ?<[Object]> if `key` is not JSON-serializable, this contains an encoded version that preserves types. - - `value` ?<[Object]> - - `valueEncoded` ?<[Object]> if `value` is not JSON-serializable, this contains an encoded version that preserves types. + - `indexedDB` <[Array]<[unknown]>> Returns storage state for this browser context, contains current cookies, local storage snapshot and IndexedDB snapshot. diff --git a/docs/src/api/params.md b/docs/src/api/params.md index 80fb59d587..de67c7f1c7 100644 --- a/docs/src/api/params.md +++ b/docs/src/api/params.md @@ -264,25 +264,7 @@ Specify environment variables that will be visible to the browser. Defaults to ` - `localStorage` <[Array]<[Object]>> localStorage to set for context - `name` <[string]> - `value` <[string]> - - `indexedDB` ?<[Array]<[Object]>> indexedDB to set for context - - `name` <[string]> database name - - `version` <[int]> database version - - `stores` <[Array]<[Object]>> - - `name` <[string]> - - `keyPath` ?<[string]> - - `keyPathArray` ?<[Array]<[string]>> - - `autoIncrement` <[boolean]> - - `indexes` <[Array]<[Object]>> - - `name` <[string]> - - `keyPath` ?<[string]> - - `keyPathArray` ?<[Array]<[string]>> - - `unique` <[boolean]> - - `multiEntry` <[boolean]> - - `records` <[Array]<[Object]>> - - `key` ?<[Object]> - - `keyEncoded` ?<[Object]> if `key` is not JSON-serializable, this contains an encoded version that preserves types. - - `value` ?<[Object]> - - `valueEncoded` ?<[Object]> if `value` is not JSON-serializable, this contains an encoded version that preserves types. + - `indexedDB` ?<[Array]<[unknown]>> indexedDB to set for context Learn more about [storage state and auth](../auth.md). diff --git a/packages/playwright-client/types/types.d.ts b/packages/playwright-client/types/types.d.ts index 5ea9ec4def..26115f729a 100644 --- a/packages/playwright-client/types/types.d.ts +++ b/packages/playwright-client/types/types.d.ts @@ -9317,49 +9317,7 @@ export interface BrowserContext { value: string; }>; - indexedDB: Array<{ - name: string; - - version: number; - - stores: Array<{ - name: string; - - keyPath?: string; - - keyPathArray?: Array; - - autoIncrement: boolean; - - indexes: Array<{ - name: string; - - keyPath?: string; - - keyPathArray?: Array; - - unique: boolean; - - multiEntry: boolean; - }>; - - records: Array<{ - key?: Object; - - /** - * if `key` is not JSON-serializable, this contains an encoded version that preserves types. - */ - keyEncoded?: Object; - - value?: Object; - - /** - * if `value` is not JSON-serializable, this contains an encoded version that preserves types. - */ - valueEncoded?: Object; - }>; - }>; - }>; + indexedDB: Array; }>; }>; @@ -10130,55 +10088,7 @@ export interface Browser { /** * indexedDB to set for context */ - indexedDB?: Array<{ - /** - * database name - */ - name: string; - - /** - * database version - */ - version: number; - - stores: Array<{ - name: string; - - keyPath?: string; - - keyPathArray?: Array; - - autoIncrement: boolean; - - indexes: Array<{ - name: string; - - keyPath?: string; - - keyPathArray?: Array; - - unique: boolean; - - multiEntry: boolean; - }>; - - records: Array<{ - key?: Object; - - /** - * if `key` is not JSON-serializable, this contains an encoded version that preserves types. - */ - keyEncoded?: Object; - - value?: Object; - - /** - * if `value` is not JSON-serializable, this contains an encoded version that preserves types. - */ - valueEncoded?: Object; - }>; - }>; - }>; + indexedDB?: Array; }>; }; @@ -17737,55 +17647,7 @@ export interface APIRequest { /** * indexedDB to set for context */ - indexedDB?: Array<{ - /** - * database name - */ - name: string; - - /** - * database version - */ - version: number; - - stores: Array<{ - name: string; - - keyPath?: string; - - keyPathArray?: Array; - - autoIncrement: boolean; - - indexes: Array<{ - name: string; - - keyPath?: string; - - keyPathArray?: Array; - - unique: boolean; - - multiEntry: boolean; - }>; - - records: Array<{ - key?: Object; - - /** - * if `key` is not JSON-serializable, this contains an encoded version that preserves types. - */ - keyEncoded?: Object; - - value?: Object; - - /** - * if `value` is not JSON-serializable, this contains an encoded version that preserves types. - */ - valueEncoded?: Object; - }>; - }>; - }>; + indexedDB?: Array; }>; }; @@ -18601,49 +18463,7 @@ export interface APIRequestContext { value: string; }>; - indexedDB: Array<{ - name: string; - - version: number; - - stores: Array<{ - name: string; - - keyPath?: string; - - keyPathArray?: Array; - - autoIncrement: boolean; - - indexes: Array<{ - name: string; - - keyPath?: string; - - keyPathArray?: Array; - - unique: boolean; - - multiEntry: boolean; - }>; - - records: Array<{ - key?: Object; - - /** - * if `key` is not JSON-serializable, this contains an encoded version that preserves types. - */ - keyEncoded?: Object; - - value?: Object; - - /** - * if `value` is not JSON-serializable, this contains an encoded version that preserves types. - */ - valueEncoded?: Object; - }>; - }>; - }>; + indexedDB: Array; }>; }>; @@ -22495,55 +22315,7 @@ export interface BrowserContextOptions { /** * indexedDB to set for context */ - indexedDB?: Array<{ - /** - * database name - */ - name: string; - - /** - * database version - */ - version: number; - - stores: Array<{ - name: string; - - keyPath?: string; - - keyPathArray?: Array; - - autoIncrement: boolean; - - indexes: Array<{ - name: string; - - keyPath?: string; - - keyPathArray?: Array; - - unique: boolean; - - multiEntry: boolean; - }>; - - records: Array<{ - key?: Object; - - /** - * if `key` is not JSON-serializable, this contains an encoded version that preserves types. - */ - keyEncoded?: Object; - - value?: Object; - - /** - * if `value` is not JSON-serializable, this contains an encoded version that preserves types. - */ - valueEncoded?: Object; - }>; - }>; - }>; + indexedDB?: Array; }>; }; diff --git a/packages/playwright-core/src/client/browserContext.ts b/packages/playwright-core/src/client/browserContext.ts index 445379083e..accee95288 100644 --- a/packages/playwright-core/src/client/browserContext.ts +++ b/packages/playwright-core/src/client/browserContext.ts @@ -510,7 +510,7 @@ export class BrowserContext extends ChannelOwner async function prepareStorageState(platform: Platform, options: BrowserContextOptions): Promise { if (typeof options.storageState !== 'string') - return options.storageState; + return options.storageState as any; try { return JSON.parse(await platform.fs().promises.readFile(options.storageState, 'utf8')); } catch (e) { diff --git a/packages/playwright-core/src/client/types.ts b/packages/playwright-core/src/client/types.ts index 29dcd5112c..53c805a496 100644 --- a/packages/playwright-core/src/client/types.ts +++ b/packages/playwright-core/src/client/types.ts @@ -37,11 +37,11 @@ export type SelectOptionOptions = { force?: boolean, timeout?: number }; export type FilePayload = { name: string, mimeType: string, buffer: Buffer }; export type StorageState = { cookies: channels.NetworkCookie[], - origins: channels.OriginStorage[], + origins: (Omit & { indexedDB: unknown[] })[], }; export type SetStorageState = { cookies?: channels.SetNetworkCookie[], - origins?: channels.SetOriginStorage[] + origins?: (Omit & { indexedDB?: unknown[] })[] }; export type LifecycleEvent = channels.LifecycleEvent; diff --git a/packages/playwright-core/types/types.d.ts b/packages/playwright-core/types/types.d.ts index 5ea9ec4def..26115f729a 100644 --- a/packages/playwright-core/types/types.d.ts +++ b/packages/playwright-core/types/types.d.ts @@ -9317,49 +9317,7 @@ export interface BrowserContext { value: string; }>; - indexedDB: Array<{ - name: string; - - version: number; - - stores: Array<{ - name: string; - - keyPath?: string; - - keyPathArray?: Array; - - autoIncrement: boolean; - - indexes: Array<{ - name: string; - - keyPath?: string; - - keyPathArray?: Array; - - unique: boolean; - - multiEntry: boolean; - }>; - - records: Array<{ - key?: Object; - - /** - * if `key` is not JSON-serializable, this contains an encoded version that preserves types. - */ - keyEncoded?: Object; - - value?: Object; - - /** - * if `value` is not JSON-serializable, this contains an encoded version that preserves types. - */ - valueEncoded?: Object; - }>; - }>; - }>; + indexedDB: Array; }>; }>; @@ -10130,55 +10088,7 @@ export interface Browser { /** * indexedDB to set for context */ - indexedDB?: Array<{ - /** - * database name - */ - name: string; - - /** - * database version - */ - version: number; - - stores: Array<{ - name: string; - - keyPath?: string; - - keyPathArray?: Array; - - autoIncrement: boolean; - - indexes: Array<{ - name: string; - - keyPath?: string; - - keyPathArray?: Array; - - unique: boolean; - - multiEntry: boolean; - }>; - - records: Array<{ - key?: Object; - - /** - * if `key` is not JSON-serializable, this contains an encoded version that preserves types. - */ - keyEncoded?: Object; - - value?: Object; - - /** - * if `value` is not JSON-serializable, this contains an encoded version that preserves types. - */ - valueEncoded?: Object; - }>; - }>; - }>; + indexedDB?: Array; }>; }; @@ -17737,55 +17647,7 @@ export interface APIRequest { /** * indexedDB to set for context */ - indexedDB?: Array<{ - /** - * database name - */ - name: string; - - /** - * database version - */ - version: number; - - stores: Array<{ - name: string; - - keyPath?: string; - - keyPathArray?: Array; - - autoIncrement: boolean; - - indexes: Array<{ - name: string; - - keyPath?: string; - - keyPathArray?: Array; - - unique: boolean; - - multiEntry: boolean; - }>; - - records: Array<{ - key?: Object; - - /** - * if `key` is not JSON-serializable, this contains an encoded version that preserves types. - */ - keyEncoded?: Object; - - value?: Object; - - /** - * if `value` is not JSON-serializable, this contains an encoded version that preserves types. - */ - valueEncoded?: Object; - }>; - }>; - }>; + indexedDB?: Array; }>; }; @@ -18601,49 +18463,7 @@ export interface APIRequestContext { value: string; }>; - indexedDB: Array<{ - name: string; - - version: number; - - stores: Array<{ - name: string; - - keyPath?: string; - - keyPathArray?: Array; - - autoIncrement: boolean; - - indexes: Array<{ - name: string; - - keyPath?: string; - - keyPathArray?: Array; - - unique: boolean; - - multiEntry: boolean; - }>; - - records: Array<{ - key?: Object; - - /** - * if `key` is not JSON-serializable, this contains an encoded version that preserves types. - */ - keyEncoded?: Object; - - value?: Object; - - /** - * if `value` is not JSON-serializable, this contains an encoded version that preserves types. - */ - valueEncoded?: Object; - }>; - }>; - }>; + indexedDB: Array; }>; }>; @@ -22495,55 +22315,7 @@ export interface BrowserContextOptions { /** * indexedDB to set for context */ - indexedDB?: Array<{ - /** - * database name - */ - name: string; - - /** - * database version - */ - version: number; - - stores: Array<{ - name: string; - - keyPath?: string; - - keyPathArray?: Array; - - autoIncrement: boolean; - - indexes: Array<{ - name: string; - - keyPath?: string; - - keyPathArray?: Array; - - unique: boolean; - - multiEntry: boolean; - }>; - - records: Array<{ - key?: Object; - - /** - * if `key` is not JSON-serializable, this contains an encoded version that preserves types. - */ - keyEncoded?: Object; - - value?: Object; - - /** - * if `value` is not JSON-serializable, this contains an encoded version that preserves types. - */ - valueEncoded?: Object; - }>; - }>; - }>; + indexedDB?: Array; }>; };