@tstdl/base 0.84.7 → 0.84.9
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/browser/browser-context-controller.d.ts +1 -1
- package/browser/browser-context-controller.js +3 -1
- package/browser/browser-controller.d.ts +4 -1
- package/browser/browser-controller.js +5 -1
- package/browser/browser.service.js +8 -3
- package/browser/index.d.ts +1 -0
- package/browser/index.js +1 -0
- package/browser/module.d.ts +18 -0
- package/browser/module.js +51 -0
- package/browser/page-controller.js +3 -1
- package/browser/utils.d.ts +1 -12
- package/browser/utils.js +1 -32
- package/package.json +1 -1
- package/utils/object/object.d.ts +1 -0
- package/utils/object/object.js +4 -0
|
@@ -26,7 +26,7 @@ export declare class BrowserContextController implements AsyncDisposable, Inject
|
|
|
26
26
|
[disposeAsync](): Promise<void>;
|
|
27
27
|
close(): Promise<void>;
|
|
28
28
|
getState(): Promise<BrowserContextState>;
|
|
29
|
-
setExtraHttpHeaders(headers: Record<string, string>): Promise<void>;
|
|
29
|
+
setExtraHttpHeaders(headers: Record<string, string | undefined>): Promise<void>;
|
|
30
30
|
newPage(options?: NewPageOptions): Promise<PageController>;
|
|
31
31
|
waitForClose(): Promise<void>;
|
|
32
32
|
}
|
|
@@ -24,6 +24,7 @@ module.exports = __toCommonJS(browser_context_controller_exports);
|
|
|
24
24
|
var import_decorators = require("../container/decorators.js");
|
|
25
25
|
var import_interfaces = require("../container/interfaces.js");
|
|
26
26
|
var import_disposable = require("../disposable/disposable.js");
|
|
27
|
+
var import_object = require("../utils/object/object.js");
|
|
27
28
|
var import_type_guards = require("../utils/type-guards.js");
|
|
28
29
|
var import_browser_controller = require("./browser-controller.js");
|
|
29
30
|
var import_page_controller = require("./page-controller.js");
|
|
@@ -60,7 +61,8 @@ let BrowserContextController = class BrowserContextController2 {
|
|
|
60
61
|
return state;
|
|
61
62
|
}
|
|
62
63
|
async setExtraHttpHeaders(headers) {
|
|
63
|
-
|
|
64
|
+
const filtered = (0, import_object.filterUndefinedFromRecord)(headers);
|
|
65
|
+
await this.context.setExtraHTTPHeaders(filtered);
|
|
64
66
|
}
|
|
65
67
|
async newPage(options) {
|
|
66
68
|
const page = await this.context.newPage();
|
|
@@ -3,6 +3,7 @@ import type { Injectable } from '../container/interfaces.js';
|
|
|
3
3
|
import { resolveArgumentType } from '../container/interfaces.js';
|
|
4
4
|
import type { AsyncDisposable } from '../disposable/disposable.js';
|
|
5
5
|
import { disposeAsync } from '../disposable/disposable.js';
|
|
6
|
+
import type { Record } from '../types.js';
|
|
6
7
|
import type { BrowserContextState, NewPageOptions } from './browser-context-controller.js';
|
|
7
8
|
import { BrowserContextController } from './browser-context-controller.js';
|
|
8
9
|
import type { NewBrowserOptions } from './browser.service.js';
|
|
@@ -11,8 +12,10 @@ export type BrowserControllerOptions = {
|
|
|
11
12
|
};
|
|
12
13
|
export type NewBrowserContextOptions = {
|
|
13
14
|
state?: BrowserContextState;
|
|
15
|
+
userAgent?: string;
|
|
16
|
+
colorScheme?: 'light' | 'dark' | 'no-preference';
|
|
14
17
|
locale?: string;
|
|
15
|
-
extraHttpHeaders?: Record<string, string>;
|
|
18
|
+
extraHttpHeaders?: Record<string, string | undefined>;
|
|
16
19
|
defaultNewPageOptions?: NewPageOptions;
|
|
17
20
|
viewport?: {
|
|
18
21
|
width: number;
|
|
@@ -24,6 +24,8 @@ module.exports = __toCommonJS(browser_controller_exports);
|
|
|
24
24
|
var import_decorators = require("../container/decorators.js");
|
|
25
25
|
var import_interfaces = require("../container/interfaces.js");
|
|
26
26
|
var import_disposable = require("../disposable/disposable.js");
|
|
27
|
+
var import_object = require("../utils/object/object.js");
|
|
28
|
+
var import_type_guards = require("../utils/type-guards.js");
|
|
27
29
|
var import_browser_context_controller = require("./browser-context-controller.js");
|
|
28
30
|
var import_browser_service = require("./browser.service.js");
|
|
29
31
|
var import_utils = require("./utils.js");
|
|
@@ -56,10 +58,12 @@ let BrowserController = class BrowserController2 {
|
|
|
56
58
|
const mergedOptions = (0, import_utils.mergeNewBrowserContextOptions)(this.options?.defaultNewContextOptions, options);
|
|
57
59
|
const context = await this.browser.newContext({
|
|
58
60
|
storageState: mergedOptions.state,
|
|
61
|
+
userAgent: mergedOptions.userAgent,
|
|
62
|
+
colorScheme: mergedOptions.colorScheme,
|
|
59
63
|
locale: mergedOptions.locale,
|
|
60
64
|
viewport: mergedOptions.viewport,
|
|
61
65
|
proxy: mergedOptions.proxy,
|
|
62
|
-
extraHTTPHeaders: mergedOptions.extraHttpHeaders
|
|
66
|
+
extraHTTPHeaders: (0, import_type_guards.isDefined)(mergedOptions.extraHttpHeaders) ? (0, import_object.filterUndefinedFromRecord)(mergedOptions.extraHttpHeaders) : void 0
|
|
63
67
|
});
|
|
64
68
|
return new import_browser_context_controller.BrowserContextController(context, mergedOptions);
|
|
65
69
|
}
|
|
@@ -26,8 +26,11 @@ var import_decorators = require("../container/decorators.js");
|
|
|
26
26
|
var import_interfaces = require("../container/interfaces.js");
|
|
27
27
|
var import_core = require("../core.js");
|
|
28
28
|
var import_disposable = require("../disposable/disposable.js");
|
|
29
|
+
var import_object = require("../utils/object/object.js");
|
|
30
|
+
var import_type_guards = require("../utils/type-guards.js");
|
|
29
31
|
var import_browser_context_controller = require("./browser-context-controller.js");
|
|
30
32
|
var import_browser_controller = require("./browser-controller.js");
|
|
33
|
+
var import_module = require("./module.js");
|
|
31
34
|
var import_utils = require("./utils.js");
|
|
32
35
|
var __decorate = function(decorators, target, key, desc) {
|
|
33
36
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -69,7 +72,7 @@ let BrowserService = class BrowserService2 {
|
|
|
69
72
|
async newBrowser(options = {}) {
|
|
70
73
|
const mergedOptions = { ...this.options?.defaultNewBrowserOptions, ...options };
|
|
71
74
|
const launchOptions = (0, import_utils.getLaunchOptions)(mergedOptions);
|
|
72
|
-
const browser = await (0,
|
|
75
|
+
const browser = await (0, import_module.getBrowserType)(mergedOptions.browser).launch(launchOptions);
|
|
73
76
|
this.browsers.add(browser);
|
|
74
77
|
browser.once("disconnected", () => this.browsers.delete(browser));
|
|
75
78
|
return new import_browser_controller.BrowserController(browser, { defaultNewContextOptions: mergedOptions.defaultNewContextOptions });
|
|
@@ -78,12 +81,14 @@ let BrowserService = class BrowserService2 {
|
|
|
78
81
|
const mergedBrowserOptions = { ...this.options?.defaultNewBrowserOptions, ...browserOptions };
|
|
79
82
|
const mergedContextOptions = (0, import_utils.mergeNewBrowserContextOptions)(this.options?.defaultNewBrowserOptions?.defaultNewContextOptions, browserOptions.defaultNewContextOptions, contextOptions);
|
|
80
83
|
const launchOptions = (0, import_utils.getLaunchOptions)(mergedBrowserOptions);
|
|
81
|
-
const context = await (0,
|
|
84
|
+
const context = await (0, import_module.getBrowserType)(mergedBrowserOptions.browser).launchPersistentContext(dataDirectory, {
|
|
82
85
|
...launchOptions,
|
|
83
86
|
locale: mergedContextOptions.locale,
|
|
84
87
|
viewport: mergedContextOptions.viewport,
|
|
85
88
|
proxy: mergedContextOptions.proxy,
|
|
86
|
-
|
|
89
|
+
userAgent: mergedContextOptions.userAgent,
|
|
90
|
+
colorScheme: mergedContextOptions.colorScheme,
|
|
91
|
+
extraHTTPHeaders: (0, import_type_guards.isDefined)(mergedContextOptions.extraHttpHeaders) ? (0, import_object.filterUndefinedFromRecord)(mergedContextOptions.extraHttpHeaders) : void 0
|
|
87
92
|
});
|
|
88
93
|
this.persistentBrowserContexts.add(context);
|
|
89
94
|
context.once("close", () => this.persistentBrowserContexts.delete(context));
|
package/browser/index.d.ts
CHANGED
package/browser/index.js
CHANGED
|
@@ -22,5 +22,6 @@ __reExport(browser_exports, require("./document-controller.js"), module.exports)
|
|
|
22
22
|
__reExport(browser_exports, require("./element-controller.js"), module.exports);
|
|
23
23
|
__reExport(browser_exports, require("./frame-controller.js"), module.exports);
|
|
24
24
|
__reExport(browser_exports, require("./locator-controller.js"), module.exports);
|
|
25
|
+
__reExport(browser_exports, require("./module.js"), module.exports);
|
|
25
26
|
__reExport(browser_exports, require("./page-controller.js"), module.exports);
|
|
26
27
|
__reExport(browser_exports, require("./types.js"), module.exports);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { BrowserType } from 'playwright';
|
|
2
|
+
import { BrowserServiceOptions } from './browser.service.js';
|
|
3
|
+
export type BrowserModuleOptions = {
|
|
4
|
+
browsers?: {
|
|
5
|
+
chromium?: BrowserType;
|
|
6
|
+
firefox?: BrowserType;
|
|
7
|
+
webkit?: BrowserType;
|
|
8
|
+
};
|
|
9
|
+
options?: BrowserServiceOptions;
|
|
10
|
+
};
|
|
11
|
+
declare const browserTypes: {
|
|
12
|
+
chromium: BrowserType<{}>;
|
|
13
|
+
firefox: BrowserType<{}>;
|
|
14
|
+
webkit: BrowserType<{}>;
|
|
15
|
+
};
|
|
16
|
+
export declare function configureBrowser(options: BrowserModuleOptions): void;
|
|
17
|
+
export declare function getBrowserType(type: keyof typeof browserTypes | undefined): BrowserType;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var module_exports = {};
|
|
20
|
+
__export(module_exports, {
|
|
21
|
+
configureBrowser: () => configureBrowser,
|
|
22
|
+
getBrowserType: () => getBrowserType
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(module_exports);
|
|
25
|
+
var import_playwright = require("playwright");
|
|
26
|
+
var import_container = require("../container/container.js");
|
|
27
|
+
var import_not_supported_error = require("../error/not-supported.error.js");
|
|
28
|
+
var import_object = require("../utils/object/object.js");
|
|
29
|
+
var import_type_guards = require("../utils/type-guards.js");
|
|
30
|
+
var import_browser_service = require("./browser.service.js");
|
|
31
|
+
const browserTypes = {
|
|
32
|
+
chromium: import_playwright.chromium,
|
|
33
|
+
firefox: import_playwright.firefox,
|
|
34
|
+
webkit: import_playwright.webkit
|
|
35
|
+
};
|
|
36
|
+
function configureBrowser(options) {
|
|
37
|
+
if ((0, import_type_guards.isDefined)(options.browsers)) {
|
|
38
|
+
const filtered = (0, import_object.filterUndefinedObjectProperties)(options.browsers);
|
|
39
|
+
(0, import_object.copyObjectProperties)(filtered, browserTypes);
|
|
40
|
+
}
|
|
41
|
+
if ((0, import_type_guards.isDefined)(options.options)) {
|
|
42
|
+
import_container.container.register(import_browser_service.BrowserServiceOptions, { useValue: options.options });
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function getBrowserType(type) {
|
|
46
|
+
const browserType = browserTypes[type ?? "chromium"];
|
|
47
|
+
if ((0, import_type_guards.isUndefined)(browserType)) {
|
|
48
|
+
throw new import_not_supported_error.NotSupportedError(`Browser type ${type} is not supported.`);
|
|
49
|
+
}
|
|
50
|
+
return browserType;
|
|
51
|
+
}
|
|
@@ -22,6 +22,7 @@ __export(page_controller_exports, {
|
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(page_controller_exports);
|
|
24
24
|
var import_disposable = require("../disposable/disposable.js");
|
|
25
|
+
var import_object = require("../utils/object/object.js");
|
|
25
26
|
var import_readable_stream_from_promise = require("../utils/stream/readable-stream-from-promise.js");
|
|
26
27
|
var import_timing = require("../utils/timing.js");
|
|
27
28
|
var import_type_guards = require("../utils/type-guards.js");
|
|
@@ -44,7 +45,8 @@ class PageController extends import_document_controller.DocumentController {
|
|
|
44
45
|
await this.page.close();
|
|
45
46
|
}
|
|
46
47
|
async setExtraHttpHeaders(headers) {
|
|
47
|
-
|
|
48
|
+
const filtered = (0, import_object.filterUndefinedFromRecord)(headers);
|
|
49
|
+
await this.page.setExtraHTTPHeaders(filtered);
|
|
48
50
|
}
|
|
49
51
|
async waitForClose() {
|
|
50
52
|
return new Promise((resolve) => {
|
package/browser/utils.d.ts
CHANGED
|
@@ -1,16 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { BrowserType, ElementHandle, LaunchOptions, Locator } from 'playwright';
|
|
1
|
+
import type { LaunchOptions } from 'playwright';
|
|
3
2
|
import type { NewBrowserContextOptions } from './browser-controller.js';
|
|
4
3
|
import type { NewBrowserOptions } from './browser.service.js';
|
|
5
|
-
declare const browserTypes: {
|
|
6
|
-
chromium: BrowserType<{}>;
|
|
7
|
-
firefox: BrowserType<{}>;
|
|
8
|
-
webkit: BrowserType<{}>;
|
|
9
|
-
};
|
|
10
|
-
export declare function replaceBrowsers(browsers: SimplifyObject<Unoptionalize<Partial<typeof browserTypes>>>): void;
|
|
11
4
|
export declare function getLaunchOptions(options: NewBrowserOptions): LaunchOptions;
|
|
12
5
|
export declare function mergeNewBrowserContextOptions(a: NewBrowserContextOptions | undefined, b?: NewBrowserContextOptions, c?: NewBrowserContextOptions): NewBrowserContextOptions;
|
|
13
|
-
export declare function getBrowserType(type: keyof typeof browserTypes | undefined): BrowserType;
|
|
14
|
-
export declare function isLocator(value: Locator | ElementHandle): value is Locator;
|
|
15
|
-
export declare function isElementHandle(value: Locator | ElementHandle): value is ElementHandle;
|
|
16
|
-
export {};
|
package/browser/utils.js
CHANGED
|
@@ -18,27 +18,11 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var utils_exports = {};
|
|
20
20
|
__export(utils_exports, {
|
|
21
|
-
getBrowserType: () => getBrowserType,
|
|
22
21
|
getLaunchOptions: () => getLaunchOptions,
|
|
23
|
-
|
|
24
|
-
isLocator: () => isLocator,
|
|
25
|
-
mergeNewBrowserContextOptions: () => mergeNewBrowserContextOptions,
|
|
26
|
-
replaceBrowsers: () => replaceBrowsers
|
|
22
|
+
mergeNewBrowserContextOptions: () => mergeNewBrowserContextOptions
|
|
27
23
|
});
|
|
28
24
|
module.exports = __toCommonJS(utils_exports);
|
|
29
|
-
var import_not_supported_error = require("../error/not-supported.error.js");
|
|
30
25
|
var import_object = require("../utils/object/object.js");
|
|
31
|
-
var import_type_guards = require("../utils/type-guards.js");
|
|
32
|
-
var import_playwright = require("playwright");
|
|
33
|
-
const browserTypes = {
|
|
34
|
-
chromium: import_playwright.chromium,
|
|
35
|
-
firefox: import_playwright.firefox,
|
|
36
|
-
webkit: import_playwright.webkit
|
|
37
|
-
};
|
|
38
|
-
function replaceBrowsers(browsers) {
|
|
39
|
-
const filtered = (0, import_object.filterUndefinedObjectProperties)(browsers);
|
|
40
|
-
(0, import_object.copyObjectProperties)(filtered, browserTypes);
|
|
41
|
-
}
|
|
42
26
|
function getLaunchOptions(options) {
|
|
43
27
|
const { windowSize, browserArguments, headless } = options;
|
|
44
28
|
const args = [`--window-size=${windowSize?.width ?? 1e3},${windowSize?.height ?? 1e3}`, ...browserArguments ?? []];
|
|
@@ -53,18 +37,3 @@ function mergeNewBrowserContextOptions(a, b, c) {
|
|
|
53
37
|
extraHttpHeaders: (0, import_object.objectKeys)(mergedExtraHttpHeaders).length > 0 ? mergedExtraHttpHeaders : void 0
|
|
54
38
|
};
|
|
55
39
|
}
|
|
56
|
-
function getBrowserType(type) {
|
|
57
|
-
const browserType = browserTypes[type ?? "chromium"];
|
|
58
|
-
if ((0, import_type_guards.isUndefined)(browserType)) {
|
|
59
|
-
throw new import_not_supported_error.NotSupportedError(`Browser type ${type} is not supported.`);
|
|
60
|
-
}
|
|
61
|
-
return browserType;
|
|
62
|
-
}
|
|
63
|
-
const exclusiveLocatorKey = "locator";
|
|
64
|
-
function isLocator(value) {
|
|
65
|
-
return (0, import_type_guards.isFunction)(value[exclusiveLocatorKey]);
|
|
66
|
-
}
|
|
67
|
-
const exclusiveElementHandleKey = "$";
|
|
68
|
-
function isElementHandle(value) {
|
|
69
|
-
return (0, import_type_guards.isFunction)(value[exclusiveElementHandleKey]);
|
|
70
|
-
}
|
package/package.json
CHANGED
package/utils/object/object.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export declare function mapObjectValuesAsync<T extends ObjectLiteral, V>(object:
|
|
|
19
19
|
export declare function filterObject<T extends ObjectLiteral, U extends T[keyof T]>(object: T, predicate: (value: T[keyof T], key: keyof T) => value is U): PickBy<T, U>;
|
|
20
20
|
export declare function filterObject<T extends ObjectLiteral>(object: T, predicate: (value: T[keyof T], key: keyof T) => boolean): Partial<T>;
|
|
21
21
|
export declare function filterObjectAsync<T extends ObjectLiteral>(object: T, predicate: (value: T[keyof T], key: keyof T) => Promise<boolean>): Promise<Partial<T>>;
|
|
22
|
+
export declare function filterUndefinedFromRecord<T extends Record>(record: T): T extends Record<infer K, infer V> ? Record<K, Exclude<V, undefined>> : never;
|
|
22
23
|
export declare function filterUndefinedObjectProperties<T extends ObjectLiteral>(object: T): {
|
|
23
24
|
[P in keyof T]?: IsEqual<T[P], undefined> extends true ? never : Exclude<T[P], undefined>;
|
|
24
25
|
};
|
package/utils/object/object.js
CHANGED
|
@@ -22,6 +22,7 @@ __export(object_exports, {
|
|
|
22
22
|
deepObjectEntries: () => deepObjectEntries,
|
|
23
23
|
filterObject: () => filterObject,
|
|
24
24
|
filterObjectAsync: () => filterObjectAsync,
|
|
25
|
+
filterUndefinedFromRecord: () => filterUndefinedFromRecord,
|
|
25
26
|
filterUndefinedObjectProperties: () => filterUndefinedObjectProperties,
|
|
26
27
|
fromEntries: () => fromEntries,
|
|
27
28
|
getGetter: () => getGetter,
|
|
@@ -79,6 +80,9 @@ async function filterObjectAsync(object, predicate) {
|
|
|
79
80
|
const mappedEntries = await (0, import_to_array.toArrayAsync)((0, import_filter.filterAsync)(entries, async ([key, value]) => predicate(value, key)));
|
|
80
81
|
return Object.fromEntries(mappedEntries);
|
|
81
82
|
}
|
|
83
|
+
function filterUndefinedFromRecord(record) {
|
|
84
|
+
return filterObject(record, import_type_guards.isDefined);
|
|
85
|
+
}
|
|
82
86
|
function filterUndefinedObjectProperties(object) {
|
|
83
87
|
return filterObject(object, import_type_guards.isDefined);
|
|
84
88
|
}
|