storybook-addon-playwright 7.2.4 → 7.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/server/routes.d.mts +1 -1
- package/dist/api/server/routes.d.ts +1 -1
- package/dist/external-utils/index.d.mts +30 -0
- package/dist/external-utils/index.d.ts +30 -0
- package/dist/external-utils/index.js +2 -0
- package/dist/external-utils/index.js.map +1 -0
- package/dist/external-utils/index.mjs +2 -0
- package/dist/external-utils/index.mjs.map +1 -0
- package/dist/register.js +49 -11
- package/dist/register.js.map +1 -1
- package/dist/register.mjs +49 -11
- package/dist/register.mjs.map +1 -1
- package/dist/trpc/router.d.mts +5 -5
- package/dist/trpc/router.d.ts +5 -5
- package/package.json +4 -4
- package/typings/global.d.ts +5 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Browser } from 'playwright';
|
|
2
|
+
import { B as BrowserTypes } from '../story-Cpro8pd5.mjs';
|
|
3
|
+
import 'zod';
|
|
4
|
+
|
|
5
|
+
interface BrowserManagerConfig {
|
|
6
|
+
browserCount: Record<BrowserTypes, number>;
|
|
7
|
+
createBrowser: (browserType: BrowserTypes, browserIndex: number) => Promise<Browser>;
|
|
8
|
+
isBrowserConnected: (browser: Browser) => boolean;
|
|
9
|
+
resetBrowser?: (browser: Browser, browserType: BrowserTypes, browserIndex: number) => Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
declare class BrowserManager {
|
|
12
|
+
private readonly config;
|
|
13
|
+
private readonly browserTypes;
|
|
14
|
+
private readonly browsers;
|
|
15
|
+
private readonly nextBrowserNum;
|
|
16
|
+
constructor(config: BrowserManagerConfig);
|
|
17
|
+
private getBrowserCount;
|
|
18
|
+
private ensureBrowser;
|
|
19
|
+
forEachBrowser(browserType: BrowserTypes, callback: (browser: Browser, index: number) => Promise<void> | void): Promise<void>;
|
|
20
|
+
loadBrowser(browserType: BrowserTypes): Promise<void>;
|
|
21
|
+
loadBrowsers(browserTypes?: readonly BrowserTypes[]): Promise<void>;
|
|
22
|
+
resetBrowser(browserType: BrowserTypes): Promise<void>;
|
|
23
|
+
resetBrowsers(browserTypes?: readonly BrowserTypes[]): Promise<void>;
|
|
24
|
+
getBrowser(browserType: BrowserTypes): Promise<{
|
|
25
|
+
browser: Browser;
|
|
26
|
+
index: number;
|
|
27
|
+
}>;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export { BrowserManager, type BrowserManagerConfig };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Browser } from 'playwright';
|
|
2
|
+
import { B as BrowserTypes } from '../story-Cpro8pd5.js';
|
|
3
|
+
import 'zod';
|
|
4
|
+
|
|
5
|
+
interface BrowserManagerConfig {
|
|
6
|
+
browserCount: Record<BrowserTypes, number>;
|
|
7
|
+
createBrowser: (browserType: BrowserTypes, browserIndex: number) => Promise<Browser>;
|
|
8
|
+
isBrowserConnected: (browser: Browser) => boolean;
|
|
9
|
+
resetBrowser?: (browser: Browser, browserType: BrowserTypes, browserIndex: number) => Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
declare class BrowserManager {
|
|
12
|
+
private readonly config;
|
|
13
|
+
private readonly browserTypes;
|
|
14
|
+
private readonly browsers;
|
|
15
|
+
private readonly nextBrowserNum;
|
|
16
|
+
constructor(config: BrowserManagerConfig);
|
|
17
|
+
private getBrowserCount;
|
|
18
|
+
private ensureBrowser;
|
|
19
|
+
forEachBrowser(browserType: BrowserTypes, callback: (browser: Browser, index: number) => Promise<void> | void): Promise<void>;
|
|
20
|
+
loadBrowser(browserType: BrowserTypes): Promise<void>;
|
|
21
|
+
loadBrowsers(browserTypes?: readonly BrowserTypes[]): Promise<void>;
|
|
22
|
+
resetBrowser(browserType: BrowserTypes): Promise<void>;
|
|
23
|
+
resetBrowsers(browserTypes?: readonly BrowserTypes[]): Promise<void>;
|
|
24
|
+
getBrowser(browserType: BrowserTypes): Promise<{
|
|
25
|
+
browser: Browser;
|
|
26
|
+
index: number;
|
|
27
|
+
}>;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export { BrowserManager, type BrowserManagerConfig };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';var t=class{constructor(r){this.config=r;this.browserTypes=Object.keys(this.config.browserCount),this.browsers={},this.nextBrowserNum={};for(let e of this.browserTypes)this.browsers[e]={},this.nextBrowserNum[e]=0;}getBrowserCount(r){let e=this.config.browserCount[r];if(!e||e<1)throw new Error(`Browser count for "${r}" must be greater than 0.`);return e}async ensureBrowser(r,e){let s=this.browsers[r][e];return (!s||!this.config.isBrowserConnected(s))&&(s=await this.config.createBrowser(r,e),this.browsers[r][e]=s),s}async forEachBrowser(r,e){let s=this.getBrowserCount(r);for(let o=0;o<s;o++){let w=await this.ensureBrowser(r,o);await e(w,o);}}async loadBrowser(r){await this.forEachBrowser(r,()=>{});}async loadBrowsers(r=this.browserTypes){for(let e of r)await this.loadBrowser(e);}async resetBrowser(r){this.config.resetBrowser&&await this.forEachBrowser(r,async(e,s)=>{await this.config.resetBrowser(e,r,s);});}async resetBrowsers(r=this.browserTypes){for(let e of r)await this.resetBrowser(e);}async getBrowser(r){let e=this.getBrowserCount(r),s=this.nextBrowserNum[r]%e;return this.nextBrowserNum[r]=s+1,{browser:await this.ensureBrowser(r,s),index:s}}};exports.BrowserManager=t;//# sourceMappingURL=index.js.map
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/external-utils/browser-manager.ts"],"names":["BrowserManager","config","browserType","browserCount","browserIndex","browser","callback","i","browserTypes","index"],"mappings":"aAiBO,IAAMA,CAAAA,CAAN,KAAqB,CAO1B,WAAA,CAA6BC,CAAAA,CAA8B,CAA9B,IAAA,CAAA,MAAA,CAAAA,CAAAA,CAC3B,IAAA,CAAK,YAAA,CAAe,MAAA,CAAO,IAAA,CAAK,IAAA,CAAK,OAAO,YAAY,CAAA,CAExD,IAAA,CAAK,QAAA,CAAW,EAAC,CACjB,IAAA,CAAK,cAAA,CAAiB,EAAC,CAEvB,IAAA,IAAWC,CAAAA,IAAe,IAAA,CAAK,YAAA,CAC7B,KAAK,QAAA,CAASA,CAAW,CAAA,CAAI,EAAC,CAC9B,IAAA,CAAK,cAAA,CAAeA,CAAW,CAAA,CAAI,EAEvC,CAEQ,eAAA,CAAgBA,CAAAA,CAAmC,CACzD,IAAMC,CAAAA,CAAe,IAAA,CAAK,MAAA,CAAO,YAAA,CAAaD,CAAW,CAAA,CAEzD,GAAI,CAACC,CAAAA,EAAgBA,CAAAA,CAAe,CAAA,CAClC,MAAM,IAAI,KAAA,CAAM,sBAAsBD,CAAW,CAAA,yBAAA,CAA2B,CAAA,CAG9E,OAAOC,CACT,CAEA,MAAc,aAAA,CACZD,CAAAA,CACAE,CAAAA,CACkB,CAClB,IAAIC,CAAAA,CAAU,IAAA,CAAK,SAASH,CAAW,CAAA,CAAEE,CAAY,CAAA,CAErD,OAAA,CAAI,CAACC,CAAAA,EAAW,CAAC,IAAA,CAAK,MAAA,CAAO,kBAAA,CAAmBA,CAAO,CAAA,IACrDA,CAAAA,CAAU,MAAM,IAAA,CAAK,MAAA,CAAO,aAAA,CAAcH,CAAAA,CAAaE,CAAY,CAAA,CACnE,IAAA,CAAK,QAAA,CAASF,CAAW,CAAA,CAAEE,CAAY,CAAA,CAAIC,CAAAA,CAAAA,CAGtCA,CACT,CAEA,MAAa,cAAA,CACXH,CAAAA,CACAI,CAAAA,CACe,CACf,IAAMH,CAAAA,CAAe,IAAA,CAAK,eAAA,CAAgBD,CAAW,CAAA,CAErD,IAAA,IAASK,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAIJ,EAAcI,CAAAA,EAAAA,CAAK,CACrC,IAAMF,CAAAA,CAAU,MAAM,IAAA,CAAK,aAAA,CAAcH,CAAAA,CAAaK,CAAC,CAAA,CACvD,MAAMD,CAAAA,CAASD,CAAAA,CAASE,CAAC,EAC3B,CACF,CAEA,MAAa,WAAA,CAAYL,CAAAA,CAA0C,CACjE,MAAM,IAAA,CAAK,cAAA,CAAeA,CAAAA,CAAa,IAAG,CAAA,CAAY,EACxD,CAEA,MAAa,YAAA,CACXM,CAAAA,CAAwC,IAAA,CAAK,YAAA,CAC9B,CACf,IAAA,IAAWN,CAAAA,IAAeM,CAAAA,CACxB,MAAM,IAAA,CAAK,WAAA,CAAYN,CAAW,EAEtC,CAEA,MAAa,YAAA,CAAaA,CAAAA,CAA0C,CAC7D,IAAA,CAAK,MAAA,CAAO,YAAA,EAIjB,MAAM,IAAA,CAAK,cAAA,CAAeA,CAAAA,CAAa,MAAOG,CAAAA,CAASI,CAAAA,GAAU,CAC/D,MAAM,IAAA,CAAK,MAAA,CAAO,YAAA,CAAcJ,CAAAA,CAASH,CAAAA,CAAaO,CAAK,EAC7D,CAAC,EACH,CAEA,MAAa,aAAA,CACXD,CAAAA,CAAwC,IAAA,CAAK,aAC9B,CACf,IAAA,IAAWN,CAAAA,IAAeM,CAAAA,CACxB,MAAM,IAAA,CAAK,YAAA,CAAaN,CAAW,EAEvC,CAEA,MAAa,UAAA,CACXA,CAAAA,CAC8C,CAC9C,IAAMC,CAAAA,CAAe,IAAA,CAAK,eAAA,CAAgBD,CAAW,CAAA,CAC/CE,CAAAA,CAAe,IAAA,CAAK,cAAA,CAAeF,CAAW,CAAA,CAAIC,CAAAA,CAExD,OAAA,IAAA,CAAK,cAAA,CAAeD,CAAW,CAAA,CAAIE,CAAAA,CAAe,CAAA,CAI3C,CACL,OAAA,CAHc,MAAM,IAAA,CAAK,aAAA,CAAcF,CAAAA,CAAaE,CAAY,CAAA,CAIhE,KAAA,CAAOA,CACT,CACF,CACF","file":"index.js","sourcesContent":["import type { Browser } from 'playwright';\n\nimport type { BrowserTypes } from '../typings';\n\ntype BrowserStore = Record<BrowserTypes, Record<number, Browser>>;\n\nexport interface BrowserManagerConfig {\n browserCount: Record<BrowserTypes, number>;\n createBrowser: (browserType: BrowserTypes, browserIndex: number) => Promise<Browser>;\n isBrowserConnected: (browser: Browser) => boolean;\n resetBrowser?: (\n browser: Browser,\n browserType: BrowserTypes,\n browserIndex: number,\n ) => Promise<void>;\n}\n\nexport class BrowserManager {\n private readonly browserTypes: BrowserTypes[];\n\n private readonly browsers: BrowserStore;\n\n private readonly nextBrowserNum: Record<BrowserTypes, number>;\n\n constructor(private readonly config: BrowserManagerConfig) {\n this.browserTypes = Object.keys(this.config.browserCount) as BrowserTypes[];\n\n this.browsers = {} as BrowserStore;\n this.nextBrowserNum = {} as Record<BrowserTypes, number>;\n\n for (const browserType of this.browserTypes) {\n this.browsers[browserType] = {};\n this.nextBrowserNum[browserType] = 0;\n }\n }\n\n private getBrowserCount(browserType: BrowserTypes): number {\n const browserCount = this.config.browserCount[browserType];\n\n if (!browserCount || browserCount < 1) {\n throw new Error(`Browser count for \"${browserType}\" must be greater than 0.`);\n }\n\n return browserCount;\n }\n\n private async ensureBrowser(\n browserType: BrowserTypes,\n browserIndex: number,\n ): Promise<Browser> {\n let browser = this.browsers[browserType][browserIndex];\n\n if (!browser || !this.config.isBrowserConnected(browser)) {\n browser = await this.config.createBrowser(browserType, browserIndex);\n this.browsers[browserType][browserIndex] = browser;\n }\n\n return browser;\n }\n\n public async forEachBrowser(\n browserType: BrowserTypes,\n callback: (browser: Browser, index: number) => Promise<void> | void,\n ): Promise<void> {\n const browserCount = this.getBrowserCount(browserType);\n\n for (let i = 0; i < browserCount; i++) {\n const browser = await this.ensureBrowser(browserType, i);\n await callback(browser, i);\n }\n }\n\n public async loadBrowser(browserType: BrowserTypes): Promise<void> {\n await this.forEachBrowser(browserType, () => undefined);\n }\n\n public async loadBrowsers(\n browserTypes: readonly BrowserTypes[] = this.browserTypes,\n ): Promise<void> {\n for (const browserType of browserTypes) {\n await this.loadBrowser(browserType);\n }\n }\n\n public async resetBrowser(browserType: BrowserTypes): Promise<void> {\n if (!this.config.resetBrowser) {\n return;\n }\n\n await this.forEachBrowser(browserType, async (browser, index) => {\n await this.config.resetBrowser!(browser, browserType, index);\n });\n }\n\n public async resetBrowsers(\n browserTypes: readonly BrowserTypes[] = this.browserTypes,\n ): Promise<void> {\n for (const browserType of browserTypes) {\n await this.resetBrowser(browserType);\n }\n }\n\n public async getBrowser(\n browserType: BrowserTypes,\n ): Promise<{ browser: Browser; index: number }> {\n const browserCount = this.getBrowserCount(browserType);\n const browserIndex = this.nextBrowserNum[browserType] % browserCount;\n\n this.nextBrowserNum[browserType] = browserIndex + 1;\n\n const browser = await this.ensureBrowser(browserType, browserIndex);\n\n return {\n browser,\n index: browserIndex,\n };\n }\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var t=class{constructor(r){this.config=r;this.browserTypes=Object.keys(this.config.browserCount),this.browsers={},this.nextBrowserNum={};for(let e of this.browserTypes)this.browsers[e]={},this.nextBrowserNum[e]=0;}getBrowserCount(r){let e=this.config.browserCount[r];if(!e||e<1)throw new Error(`Browser count for "${r}" must be greater than 0.`);return e}async ensureBrowser(r,e){let s=this.browsers[r][e];return (!s||!this.config.isBrowserConnected(s))&&(s=await this.config.createBrowser(r,e),this.browsers[r][e]=s),s}async forEachBrowser(r,e){let s=this.getBrowserCount(r);for(let o=0;o<s;o++){let w=await this.ensureBrowser(r,o);await e(w,o);}}async loadBrowser(r){await this.forEachBrowser(r,()=>{});}async loadBrowsers(r=this.browserTypes){for(let e of r)await this.loadBrowser(e);}async resetBrowser(r){this.config.resetBrowser&&await this.forEachBrowser(r,async(e,s)=>{await this.config.resetBrowser(e,r,s);});}async resetBrowsers(r=this.browserTypes){for(let e of r)await this.resetBrowser(e);}async getBrowser(r){let e=this.getBrowserCount(r),s=this.nextBrowserNum[r]%e;return this.nextBrowserNum[r]=s+1,{browser:await this.ensureBrowser(r,s),index:s}}};export{t as BrowserManager};//# sourceMappingURL=index.mjs.map
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/external-utils/browser-manager.ts"],"names":["BrowserManager","config","browserType","browserCount","browserIndex","browser","callback","i","browserTypes","index"],"mappings":"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","file":"index.mjs","sourcesContent":["import type { Browser } from 'playwright';\n\nimport type { BrowserTypes } from '../typings';\n\ntype BrowserStore = Record<BrowserTypes, Record<number, Browser>>;\n\nexport interface BrowserManagerConfig {\n browserCount: Record<BrowserTypes, number>;\n createBrowser: (browserType: BrowserTypes, browserIndex: number) => Promise<Browser>;\n isBrowserConnected: (browser: Browser) => boolean;\n resetBrowser?: (\n browser: Browser,\n browserType: BrowserTypes,\n browserIndex: number,\n ) => Promise<void>;\n}\n\nexport class BrowserManager {\n private readonly browserTypes: BrowserTypes[];\n\n private readonly browsers: BrowserStore;\n\n private readonly nextBrowserNum: Record<BrowserTypes, number>;\n\n constructor(private readonly config: BrowserManagerConfig) {\n this.browserTypes = Object.keys(this.config.browserCount) as BrowserTypes[];\n\n this.browsers = {} as BrowserStore;\n this.nextBrowserNum = {} as Record<BrowserTypes, number>;\n\n for (const browserType of this.browserTypes) {\n this.browsers[browserType] = {};\n this.nextBrowserNum[browserType] = 0;\n }\n }\n\n private getBrowserCount(browserType: BrowserTypes): number {\n const browserCount = this.config.browserCount[browserType];\n\n if (!browserCount || browserCount < 1) {\n throw new Error(`Browser count for \"${browserType}\" must be greater than 0.`);\n }\n\n return browserCount;\n }\n\n private async ensureBrowser(\n browserType: BrowserTypes,\n browserIndex: number,\n ): Promise<Browser> {\n let browser = this.browsers[browserType][browserIndex];\n\n if (!browser || !this.config.isBrowserConnected(browser)) {\n browser = await this.config.createBrowser(browserType, browserIndex);\n this.browsers[browserType][browserIndex] = browser;\n }\n\n return browser;\n }\n\n public async forEachBrowser(\n browserType: BrowserTypes,\n callback: (browser: Browser, index: number) => Promise<void> | void,\n ): Promise<void> {\n const browserCount = this.getBrowserCount(browserType);\n\n for (let i = 0; i < browserCount; i++) {\n const browser = await this.ensureBrowser(browserType, i);\n await callback(browser, i);\n }\n }\n\n public async loadBrowser(browserType: BrowserTypes): Promise<void> {\n await this.forEachBrowser(browserType, () => undefined);\n }\n\n public async loadBrowsers(\n browserTypes: readonly BrowserTypes[] = this.browserTypes,\n ): Promise<void> {\n for (const browserType of browserTypes) {\n await this.loadBrowser(browserType);\n }\n }\n\n public async resetBrowser(browserType: BrowserTypes): Promise<void> {\n if (!this.config.resetBrowser) {\n return;\n }\n\n await this.forEachBrowser(browserType, async (browser, index) => {\n await this.config.resetBrowser!(browser, browserType, index);\n });\n }\n\n public async resetBrowsers(\n browserTypes: readonly BrowserTypes[] = this.browserTypes,\n ): Promise<void> {\n for (const browserType of browserTypes) {\n await this.resetBrowser(browserType);\n }\n }\n\n public async getBrowser(\n browserType: BrowserTypes,\n ): Promise<{ browser: Browser; index: number }> {\n const browserCount = this.getBrowserCount(browserType);\n const browserIndex = this.nextBrowserNum[browserType] % browserCount;\n\n this.nextBrowserNum[browserType] = browserIndex + 1;\n\n const browser = await this.ensureBrowser(browserType, browserIndex);\n\n return {\n browser,\n index: browserIndex,\n };\n }\n}\n"]}
|