donobu 2.30.0 → 2.31.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/apis/GptConfigsApi.d.ts +0 -10
- package/dist/apis/GptConfigsApi.d.ts.map +1 -1
- package/dist/apis/GptConfigsApi.js +6 -11
- package/dist/apis/GptConfigsApi.js.map +1 -1
- package/dist/assets/generated/version +1 -1
- package/dist/cli/install-donobu-plugin.d.ts +6 -0
- package/dist/cli/install-donobu-plugin.d.ts.map +1 -0
- package/dist/cli/install-donobu-plugin.js +125 -0
- package/dist/cli/install-donobu-plugin.js.map +1 -0
- package/dist/cli/playwright-json-to-markdown.d.ts +43 -0
- package/dist/cli/playwright-json-to-markdown.d.ts.map +1 -0
- package/dist/cli/playwright-json-to-markdown.js +239 -0
- package/dist/cli/playwright-json-to-markdown.js.map +1 -0
- package/dist/cli/playwright-json-to-slack-json.d.ts +3 -0
- package/dist/cli/playwright-json-to-slack-json.d.ts.map +1 -0
- package/dist/cli/playwright-json-to-slack-json.js +207 -0
- package/dist/cli/playwright-json-to-slack-json.js.map +1 -0
- package/dist/{esm/clients/GoogleGptClient.d.ts → clients/GoogleGenerativeAiGptClient.d.ts} +4 -4
- package/dist/clients/GoogleGenerativeAiGptClient.d.ts.map +1 -0
- package/dist/clients/{GoogleGptClient.js → GoogleGenerativeAiGptClient.js} +9 -9
- package/dist/clients/GoogleGenerativeAiGptClient.js.map +1 -0
- package/dist/clients/GoogleVertexGptClient.d.ts +24 -0
- package/dist/clients/GoogleVertexGptClient.d.ts.map +1 -0
- package/dist/clients/GoogleVertexGptClient.js +98 -0
- package/dist/clients/GoogleVertexGptClient.js.map +1 -0
- package/dist/clients/GptClientFactory.d.ts.map +1 -1
- package/dist/clients/GptClientFactory.js +6 -2
- package/dist/clients/GptClientFactory.js.map +1 -1
- package/dist/clients/OpenAiGptClient.d.ts +2 -2
- package/dist/clients/OpenAiGptClient.d.ts.map +1 -1
- package/dist/clients/OpenAiGptClient.js.map +1 -1
- package/dist/clients/VercelAiGptClient.d.ts.map +1 -1
- package/dist/clients/VercelAiGptClient.js +6 -5
- package/dist/clients/VercelAiGptClient.js.map +1 -1
- package/dist/envVars.d.ts +20 -0
- package/dist/envVars.d.ts.map +1 -1
- package/dist/envVars.js +20 -0
- package/dist/envVars.js.map +1 -1
- package/dist/esm/apis/GptConfigsApi.d.ts +0 -10
- package/dist/esm/apis/GptConfigsApi.d.ts.map +1 -1
- package/dist/esm/apis/GptConfigsApi.js +6 -11
- package/dist/esm/apis/GptConfigsApi.js.map +1 -1
- package/dist/esm/assets/generated/version +1 -1
- package/dist/esm/cli/install-donobu-plugin.d.ts +6 -0
- package/dist/esm/cli/install-donobu-plugin.d.ts.map +1 -0
- package/dist/esm/cli/install-donobu-plugin.js +125 -0
- package/dist/esm/cli/install-donobu-plugin.js.map +1 -0
- package/dist/esm/cli/playwright-json-to-markdown.d.ts +43 -0
- package/dist/esm/cli/playwright-json-to-markdown.d.ts.map +1 -0
- package/dist/esm/cli/playwright-json-to-markdown.js +239 -0
- package/dist/esm/cli/playwright-json-to-markdown.js.map +1 -0
- package/dist/esm/cli/playwright-json-to-slack-json.d.ts +3 -0
- package/dist/esm/cli/playwright-json-to-slack-json.d.ts.map +1 -0
- package/dist/esm/cli/playwright-json-to-slack-json.js +207 -0
- package/dist/esm/cli/playwright-json-to-slack-json.js.map +1 -0
- package/dist/{clients/GoogleGptClient.d.ts → esm/clients/GoogleGenerativeAiGptClient.d.ts} +4 -4
- package/dist/esm/clients/GoogleGenerativeAiGptClient.d.ts.map +1 -0
- package/dist/esm/clients/{GoogleGptClient.js → GoogleGenerativeAiGptClient.js} +9 -9
- package/dist/esm/clients/GoogleGenerativeAiGptClient.js.map +1 -0
- package/dist/esm/clients/GoogleVertexGptClient.d.ts +24 -0
- package/dist/esm/clients/GoogleVertexGptClient.d.ts.map +1 -0
- package/dist/esm/clients/GoogleVertexGptClient.js +98 -0
- package/dist/esm/clients/GoogleVertexGptClient.js.map +1 -0
- package/dist/esm/clients/GptClientFactory.d.ts.map +1 -1
- package/dist/esm/clients/GptClientFactory.js +6 -2
- package/dist/esm/clients/GptClientFactory.js.map +1 -1
- package/dist/esm/clients/OpenAiGptClient.d.ts +2 -2
- package/dist/esm/clients/OpenAiGptClient.d.ts.map +1 -1
- package/dist/esm/clients/OpenAiGptClient.js.map +1 -1
- package/dist/esm/clients/VercelAiGptClient.d.ts.map +1 -1
- package/dist/esm/clients/VercelAiGptClient.js +6 -5
- package/dist/esm/clients/VercelAiGptClient.js.map +1 -1
- package/dist/esm/envVars.d.ts +20 -0
- package/dist/esm/envVars.d.ts.map +1 -1
- package/dist/esm/envVars.js +20 -0
- package/dist/esm/envVars.js.map +1 -1
- package/dist/esm/exceptions/GptPlatformAuthenticationFailedException.d.ts +2 -1
- package/dist/esm/exceptions/GptPlatformAuthenticationFailedException.d.ts.map +1 -1
- package/dist/esm/exceptions/GptPlatformAuthenticationFailedException.js +3 -2
- package/dist/esm/exceptions/GptPlatformAuthenticationFailedException.js.map +1 -1
- package/dist/esm/init.d.ts +9 -0
- package/dist/esm/init.d.ts.map +1 -0
- package/dist/esm/init.js +70 -0
- package/dist/esm/init.js.map +1 -0
- package/dist/esm/lib/fixtures/gptClients.d.ts.map +1 -1
- package/dist/esm/lib/fixtures/gptClients.js +16 -2
- package/dist/esm/lib/fixtures/gptClients.js.map +1 -1
- package/dist/esm/main.d.ts +1 -0
- package/dist/esm/main.d.ts.map +1 -1
- package/dist/esm/main.js +3 -50
- package/dist/esm/main.js.map +1 -1
- package/dist/esm/managers/DonobuFlowsManager.d.ts.map +1 -1
- package/dist/esm/managers/DonobuFlowsManager.js +13 -1
- package/dist/esm/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/esm/models/BrowserConfig.d.ts +269 -4
- package/dist/esm/models/BrowserConfig.d.ts.map +1 -1
- package/dist/esm/models/BrowserConfig.js +17 -4
- package/dist/esm/models/BrowserConfig.js.map +1 -1
- package/dist/esm/models/BrowserStateFlowReference.d.ts +165 -14
- package/dist/esm/models/BrowserStateFlowReference.d.ts.map +1 -1
- package/dist/esm/models/BrowserStateFlowReference.js +19 -0
- package/dist/esm/models/BrowserStateFlowReference.js.map +1 -1
- package/dist/esm/models/BrowserStorageState.d.ts +88 -10
- package/dist/esm/models/BrowserStorageState.d.ts.map +1 -1
- package/dist/esm/models/BrowserStorageState.js +38 -0
- package/dist/esm/models/BrowserStorageState.js.map +1 -1
- package/dist/esm/models/CreateDonobuFlow.d.ts +347 -5
- package/dist/esm/models/CreateDonobuFlow.d.ts.map +1 -1
- package/dist/esm/models/FlowMetadata.d.ts +347 -5
- package/dist/esm/models/FlowMetadata.d.ts.map +1 -1
- package/dist/esm/models/GptConfig.d.ts +44 -6
- package/dist/esm/models/GptConfig.d.ts.map +1 -1
- package/dist/esm/models/GptConfig.js +17 -7
- package/dist/esm/models/GptConfig.js.map +1 -1
- package/dist/esm/tools/ReplayableInteraction.d.ts +1 -1
- package/dist/esm/tools/ReplayableInteraction.d.ts.map +1 -1
- package/dist/esm/tools/RunInlineJavaScriptCodeTool.js +8 -8
- package/dist/esm/tools/RunInlineJavaScriptCodeTool.js.map +1 -1
- package/dist/esm/tools/RunSandboxedJavaScriptCodeTool.d.ts.map +1 -1
- package/dist/esm/tools/RunSandboxedJavaScriptCodeTool.js +8 -9
- package/dist/esm/tools/RunSandboxedJavaScriptCodeTool.js.map +1 -1
- package/dist/esm/tools/TriggerDonobuFlowTool.d.ts +850 -14
- package/dist/esm/tools/TriggerDonobuFlowTool.d.ts.map +1 -1
- package/dist/esm/utils/BrowserUtils.d.ts +118 -5
- package/dist/esm/utils/BrowserUtils.d.ts.map +1 -1
- package/dist/esm/utils/BrowserUtils.js +171 -31
- package/dist/esm/utils/BrowserUtils.js.map +1 -1
- package/dist/esm/utils/JsonUtils.d.ts +94 -9
- package/dist/esm/utils/JsonUtils.d.ts.map +1 -1
- package/dist/esm/utils/JsonUtils.js +96 -77
- package/dist/esm/utils/JsonUtils.js.map +1 -1
- package/dist/exceptions/GptPlatformAuthenticationFailedException.d.ts +2 -1
- package/dist/exceptions/GptPlatformAuthenticationFailedException.d.ts.map +1 -1
- package/dist/exceptions/GptPlatformAuthenticationFailedException.js +3 -2
- package/dist/exceptions/GptPlatformAuthenticationFailedException.js.map +1 -1
- package/dist/init.d.ts +9 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +70 -0
- package/dist/init.js.map +1 -0
- package/dist/lib/fixtures/gptClients.d.ts.map +1 -1
- package/dist/lib/fixtures/gptClients.js +16 -2
- package/dist/lib/fixtures/gptClients.js.map +1 -1
- package/dist/main.d.ts +1 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +3 -50
- package/dist/main.js.map +1 -1
- package/dist/managers/DonobuFlowsManager.d.ts.map +1 -1
- package/dist/managers/DonobuFlowsManager.js +13 -1
- package/dist/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/models/BrowserConfig.d.ts +269 -4
- package/dist/models/BrowserConfig.d.ts.map +1 -1
- package/dist/models/BrowserConfig.js +17 -4
- package/dist/models/BrowserConfig.js.map +1 -1
- package/dist/models/BrowserStateFlowReference.d.ts +165 -14
- package/dist/models/BrowserStateFlowReference.d.ts.map +1 -1
- package/dist/models/BrowserStateFlowReference.js +19 -0
- package/dist/models/BrowserStateFlowReference.js.map +1 -1
- package/dist/models/BrowserStorageState.d.ts +88 -10
- package/dist/models/BrowserStorageState.d.ts.map +1 -1
- package/dist/models/BrowserStorageState.js +38 -0
- package/dist/models/BrowserStorageState.js.map +1 -1
- package/dist/models/CreateDonobuFlow.d.ts +347 -5
- package/dist/models/CreateDonobuFlow.d.ts.map +1 -1
- package/dist/models/FlowMetadata.d.ts +347 -5
- package/dist/models/FlowMetadata.d.ts.map +1 -1
- package/dist/models/GptConfig.d.ts +44 -6
- package/dist/models/GptConfig.d.ts.map +1 -1
- package/dist/models/GptConfig.js +17 -7
- package/dist/models/GptConfig.js.map +1 -1
- package/dist/tools/ReplayableInteraction.d.ts +1 -1
- package/dist/tools/ReplayableInteraction.d.ts.map +1 -1
- package/dist/tools/RunInlineJavaScriptCodeTool.js +8 -8
- package/dist/tools/RunInlineJavaScriptCodeTool.js.map +1 -1
- package/dist/tools/RunSandboxedJavaScriptCodeTool.d.ts.map +1 -1
- package/dist/tools/RunSandboxedJavaScriptCodeTool.js +8 -9
- package/dist/tools/RunSandboxedJavaScriptCodeTool.js.map +1 -1
- package/dist/tools/TriggerDonobuFlowTool.d.ts +850 -14
- package/dist/tools/TriggerDonobuFlowTool.d.ts.map +1 -1
- package/dist/utils/BrowserUtils.d.ts +118 -5
- package/dist/utils/BrowserUtils.d.ts.map +1 -1
- package/dist/utils/BrowserUtils.js +171 -31
- package/dist/utils/BrowserUtils.js.map +1 -1
- package/dist/utils/JsonUtils.d.ts +94 -9
- package/dist/utils/JsonUtils.d.ts.map +1 -1
- package/dist/utils/JsonUtils.js +96 -77
- package/dist/utils/JsonUtils.js.map +1 -1
- package/package.json +12 -11
- package/dist/assets/install-donobu-plugin.js +0 -96
- package/dist/assets/playwright-json-to-markdown.js +0 -257
- package/dist/assets/playwright-json-to-slack-json.js +0 -171
- package/dist/clients/GoogleGptClient.d.ts.map +0 -1
- package/dist/clients/GoogleGptClient.js.map +0 -1
- package/dist/esm/assets/install-donobu-plugin.js +0 -96
- package/dist/esm/assets/playwright-json-to-markdown.js +0 -257
- package/dist/esm/assets/playwright-json-to-slack-json.js +0 -171
- package/dist/esm/clients/GoogleGptClient.d.ts.map +0 -1
- package/dist/esm/clients/GoogleGptClient.js.map +0 -1
- package/dist/esm/exceptions/UnparseableJsonBodyException.d.ts +0 -5
- package/dist/esm/exceptions/UnparseableJsonBodyException.d.ts.map +0 -1
- package/dist/esm/exceptions/UnparseableJsonBodyException.js +0 -11
- package/dist/esm/exceptions/UnparseableJsonBodyException.js.map +0 -1
- package/dist/exceptions/UnparseableJsonBodyException.d.ts +0 -5
- package/dist/exceptions/UnparseableJsonBodyException.d.ts.map +0 -1
- package/dist/exceptions/UnparseableJsonBodyException.js +0 -11
- package/dist/exceptions/UnparseableJsonBodyException.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TriggerDonobuFlowTool.d.ts","sourceRoot":"","sources":["../../src/tools/TriggerDonobuFlowTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,2BAA2B
|
|
1
|
+
{"version":3,"file":"TriggerDonobuFlowTool.d.ts","sourceRoot":"","sources":["../../src/tools/TriggerDonobuFlowTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,38 @@ import { BrowserContext } from 'playwright';
|
|
|
2
2
|
import { BrowserDevice } from '../models/BrowserDevice';
|
|
3
3
|
import { BrowserStorageState } from '../models/BrowserStorageState';
|
|
4
4
|
import { BrowserConfig } from '../models/BrowserConfig';
|
|
5
|
+
export type BROWSER_TYPE_NAME = 'firefox' | 'chromium' | 'chrome' | 'webkit' | 'ios';
|
|
6
|
+
/**
|
|
7
|
+
* Utility class for managing browser instances and contexts across different browser types and configurations.
|
|
8
|
+
*
|
|
9
|
+
* Provides comprehensive browser automation capabilities including:
|
|
10
|
+
* - Device emulation with pre-configured browser/device combinations
|
|
11
|
+
* - Remote browser instance connection via Chrome DevTools Protocol (CDP)
|
|
12
|
+
* - BrowserBase cloud browser integration
|
|
13
|
+
* - Complete storage state management (cookies, localStorage, sessionStorage)
|
|
14
|
+
* - Proxy configuration and environment variable integration
|
|
15
|
+
*
|
|
16
|
+
* Supports multiple browser engines: Chromium, Chrome, Firefox, WebKit, and iOS Safari.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* // Create a browser context with device emulation
|
|
21
|
+
* const config: BrowserConfig = {
|
|
22
|
+
* using: { type: 'device', deviceName: 'iPhone 13' }
|
|
23
|
+
* };
|
|
24
|
+
* const context = await BrowserUtils.create(config, './output');
|
|
25
|
+
*
|
|
26
|
+
* // Get supported devices
|
|
27
|
+
* const devices = BrowserUtils.getSupportedDevices();
|
|
28
|
+
*
|
|
29
|
+
* // Extract storage state
|
|
30
|
+
* const storageState = await BrowserUtils.getBrowserStorageState(context);
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* @see {@link BrowserConfig} for configuration options
|
|
34
|
+
* @see {@link BrowserStorageState} for storage state structure
|
|
35
|
+
* @see {@link BrowserDevice} for device configuration format
|
|
36
|
+
*/
|
|
5
37
|
export declare class BrowserUtils {
|
|
6
38
|
private static readonly DEFAULT_DEVICE_NAME;
|
|
7
39
|
/**
|
|
@@ -11,26 +43,82 @@ export declare class BrowserUtils {
|
|
|
11
43
|
* The returned map keys the devices by their name (ex: 'Desktop Firefox').
|
|
12
44
|
*
|
|
13
45
|
* See `assets/devices.json` for details.
|
|
46
|
+
*
|
|
47
|
+
* @returns A Map containing device configurations keyed by device name
|
|
48
|
+
* @throws {Error} When the devices configuration file cannot be loaded
|
|
14
49
|
*/
|
|
15
50
|
static getSupportedDevices(): Map<string, BrowserDevice>;
|
|
51
|
+
/**
|
|
52
|
+
* Creates a browser context based on the provided configuration.
|
|
53
|
+
* Supports different browser types including device emulation, remote instances, and BrowserBase.
|
|
54
|
+
*
|
|
55
|
+
* @param browserConfig - Configuration object specifying browser type and settings
|
|
56
|
+
* @param outputDir - Directory path where browser artifacts (videos, etc.) will be stored
|
|
57
|
+
* @param storageState - Optional browser storage state to restore (cookies, localStorage, sessionStorage)
|
|
58
|
+
* @returns A promise that resolves to a configured BrowserContext
|
|
59
|
+
* @throws {InvalidParamValueException} When an invalid browser type is specified
|
|
60
|
+
*/
|
|
16
61
|
static create(browserConfig: BrowserConfig, outputDir: string, storageState?: BrowserStorageState): Promise<BrowserContext>;
|
|
17
62
|
/**
|
|
18
63
|
* Gets the browser storage state including cookies, localStorage, and sessionStorage.
|
|
19
64
|
*
|
|
20
|
-
* @param browserContext The browser context to extract storage state from
|
|
21
|
-
* @returns A promise that resolves to the complete browser storage state
|
|
65
|
+
* @param browserContext - The browser context to extract storage state from
|
|
66
|
+
* @returns A promise that resolves to the complete browser storage state
|
|
22
67
|
*/
|
|
23
68
|
static getBrowserStorageState(browserContext: BrowserContext): Promise<BrowserStorageState>;
|
|
24
69
|
/**
|
|
25
|
-
* Connects to an existing Chromium browser using the Chrome DevTools Protocol (CDP) at the given
|
|
26
|
-
*
|
|
70
|
+
* Connects to an existing Chromium browser using the Chrome DevTools Protocol (CDP) at the given URL.
|
|
71
|
+
*
|
|
72
|
+
* @param remoteBrowserInstanceUrl - The CDP endpoint URL of the remote browser instance
|
|
73
|
+
* @param outputDir - Directory path where browser artifacts will be stored
|
|
74
|
+
* @param storageState - Optional browser storage state to restore
|
|
75
|
+
* @returns A promise that resolves to an object containing the browser and browser context
|
|
76
|
+
* @throws {InvalidParamValueException} When the remote browser URL is invalid or connection fails
|
|
77
|
+
* @private
|
|
27
78
|
*/
|
|
28
79
|
private static forRemoteBrowser;
|
|
29
80
|
/**
|
|
81
|
+
* Creates a browser and context for a specific device configuration.
|
|
30
82
|
* If {@link storageState} is present, must be an object conforming to what is returned by
|
|
31
83
|
* {@link BrowserContext.storageState()}.
|
|
84
|
+
*
|
|
85
|
+
* @param deviceName - Name of the device configuration to use
|
|
86
|
+
* @param headless - Whether to run the browser in headless mode
|
|
87
|
+
* @param outputDir - Directory path where browser artifacts will be stored
|
|
88
|
+
* @param storageState - Optional browser storage state to restore
|
|
89
|
+
* @param proxy - Optional proxy configuration for the browser
|
|
90
|
+
* @returns A promise that resolves to an object containing the browser and browser context
|
|
91
|
+
* @throws {InvalidParamValueException} When the device name is not found in supported devices
|
|
32
92
|
*/
|
|
33
93
|
private static forDevice;
|
|
94
|
+
/**
|
|
95
|
+
* Builds browser context options for a specific device configuration.
|
|
96
|
+
*
|
|
97
|
+
* @param deviceName - Name of the device configuration to use
|
|
98
|
+
* @param outputDir - Directory path where browser artifacts will be stored
|
|
99
|
+
* @returns An object containing the browser type name and context options
|
|
100
|
+
* @throws {InvalidParamValueException} When the device name is not found in supported devices
|
|
101
|
+
*/
|
|
102
|
+
private static browserContextOptionsForDevice;
|
|
103
|
+
/**
|
|
104
|
+
* Expands proxy configuration by merging provided proxy settings with environment variables.
|
|
105
|
+
* Environment variables serve as fallbacks for missing proxy configuration values.
|
|
106
|
+
*
|
|
107
|
+
* @param proxy - Optional proxy configuration object
|
|
108
|
+
* @returns Expanded proxy configuration or undefined if no proxy is configured
|
|
109
|
+
*/
|
|
110
|
+
private static expandProxyConfiguration;
|
|
111
|
+
/**
|
|
112
|
+
* Creates a new browser instance of the specified type with given launch and context options.
|
|
113
|
+
* Handles cleanup by closing the browser if context creation fails.
|
|
114
|
+
*
|
|
115
|
+
* @param browserTypeName - The type of browser to launch
|
|
116
|
+
* @param launchOptions - Options for launching the browser
|
|
117
|
+
* @param browserContextOptions - Options for creating the browser context
|
|
118
|
+
* @returns A promise that resolves to an object containing the browser and browser context
|
|
119
|
+
* @throws {InvalidParamValueException} When an unsupported browser type is specified
|
|
120
|
+
*/
|
|
121
|
+
private static newBrowser;
|
|
34
122
|
/**
|
|
35
123
|
* Creates a BrowserBase session. Using this method requires the
|
|
36
124
|
* BROWSERBASE_API_KEY environment variable to be set.
|
|
@@ -38,15 +126,40 @@ export declare class BrowserUtils {
|
|
|
38
126
|
* The returned browserBaseData object conforms to the response of the session
|
|
39
127
|
* creation API endpoint. See...
|
|
40
128
|
* https://docs.browserbase.com/reference/api/create-a-session#response-id
|
|
129
|
+
*
|
|
130
|
+
* @param sessionArgs - Arguments for creating the BrowserBase session
|
|
131
|
+
* @param outputDir - Directory path where browser artifacts will be stored
|
|
132
|
+
* @param storageState - Optional browser storage state to restore
|
|
133
|
+
* @returns A promise that resolves to an object containing the browser, context, and session data
|
|
134
|
+
* @throws {InvalidParamValueException} When BrowserBase API key is missing or session creation fails
|
|
41
135
|
*/
|
|
42
136
|
private static forBrowserBase;
|
|
43
137
|
/**
|
|
44
138
|
* Establishes a BrowserBase session. The returned structure matches the
|
|
45
|
-
* response
|
|
139
|
+
* response structure from the BrowserBase session API. See...
|
|
46
140
|
* https://docs.browserbase.com/reference/api/create-a-session#response-id
|
|
141
|
+
*
|
|
142
|
+
* @param sessionArgs - Arguments for creating the BrowserBase session
|
|
143
|
+
* @returns A promise that resolves to the BrowserBase session data
|
|
144
|
+
* @throws {InvalidParamValueException} When the API key is missing or the API returns an error
|
|
47
145
|
*/
|
|
48
146
|
private static establishBrowserBaseSession;
|
|
147
|
+
/**
|
|
148
|
+
* Attaches sessionStorage data to a browser context by adding an initialization script.
|
|
149
|
+
* The script will restore sessionStorage items for each origin when pages are loaded.
|
|
150
|
+
*
|
|
151
|
+
* @param browserContext - The browser context to attach sessionStorage to
|
|
152
|
+
* @param storageState - Optional browser storage state containing sessionStorage data
|
|
153
|
+
*/
|
|
49
154
|
static attachSessionStorageToBrowserContext(browserContext: BrowserContext, storageState?: BrowserStorageState): Promise<void>;
|
|
155
|
+
/**
|
|
156
|
+
* Patches the close method of a browser context to execute additional cleanup logic.
|
|
157
|
+
* The extra cleanup function will be called after the original close method completes.
|
|
158
|
+
* Both the original close and extra cleanup are wrapped in try-catch blocks to prevent errors from propagating.
|
|
159
|
+
*
|
|
160
|
+
* @param ctx - The browser context to patch
|
|
161
|
+
* @param extra - Additional cleanup function to execute when the context is closed
|
|
162
|
+
*/
|
|
50
163
|
private static patchClose;
|
|
51
164
|
}
|
|
52
165
|
//# sourceMappingURL=BrowserUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserUtils.d.ts","sourceRoot":"","sources":["../../src/utils/BrowserUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EAGf,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAA0B,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAIhF,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;
|
|
1
|
+
{"version":3,"file":"BrowserUtils.d.ts","sourceRoot":"","sources":["../../src/utils/BrowserUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EAGf,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAA0B,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAIhF,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,KAAK,CAAC;AAEV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAEjE;;;;;;;;;;OAUG;WACW,mBAAmB,IAAI,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC;IAY/D;;;;;;;;;OASG;WACiB,MAAM,CACxB,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,mBAAmB,GACjC,OAAO,CAAC,cAAc,CAAC;IAwF1B;;;;;OAKG;WACiB,sBAAsB,CACxC,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,mBAAmB,CAAC;IAgF/B;;;;;;;;;OASG;mBACkB,gBAAgB;IAiCrC;;;;;;;;;;;;OAYG;mBACkB,SAAS;IA8B9B;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,8BAA8B;IA4C7C;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAyBvC;;;;;;;;;OASG;mBACkB,UAAU;IAqC/B;;;;;;;;;;;;;OAaG;mBACkB,cAAc;IA2BnC;;;;;;;;OAQG;mBACkB,2BAA2B;IAkChD;;;;;;OAMG;WACiB,oCAAoC,CACtD,cAAc,EAAE,cAAc,EAC9B,YAAY,CAAC,EAAE,mBAAmB,GACjC,OAAO,CAAC,IAAI,CAAC;IAwChB;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;CAgB1B"}
|
|
@@ -10,6 +10,37 @@ const InvalidParamValueException_1 = require("../exceptions/InvalidParamValueExc
|
|
|
10
10
|
const path_1 = __importDefault(require("path"));
|
|
11
11
|
const envVars_1 = require("../envVars");
|
|
12
12
|
const Logger_1 = require("./Logger");
|
|
13
|
+
/**
|
|
14
|
+
* Utility class for managing browser instances and contexts across different browser types and configurations.
|
|
15
|
+
*
|
|
16
|
+
* Provides comprehensive browser automation capabilities including:
|
|
17
|
+
* - Device emulation with pre-configured browser/device combinations
|
|
18
|
+
* - Remote browser instance connection via Chrome DevTools Protocol (CDP)
|
|
19
|
+
* - BrowserBase cloud browser integration
|
|
20
|
+
* - Complete storage state management (cookies, localStorage, sessionStorage)
|
|
21
|
+
* - Proxy configuration and environment variable integration
|
|
22
|
+
*
|
|
23
|
+
* Supports multiple browser engines: Chromium, Chrome, Firefox, WebKit, and iOS Safari.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* // Create a browser context with device emulation
|
|
28
|
+
* const config: BrowserConfig = {
|
|
29
|
+
* using: { type: 'device', deviceName: 'iPhone 13' }
|
|
30
|
+
* };
|
|
31
|
+
* const context = await BrowserUtils.create(config, './output');
|
|
32
|
+
*
|
|
33
|
+
* // Get supported devices
|
|
34
|
+
* const devices = BrowserUtils.getSupportedDevices();
|
|
35
|
+
*
|
|
36
|
+
* // Extract storage state
|
|
37
|
+
* const storageState = await BrowserUtils.getBrowserStorageState(context);
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* @see {@link BrowserConfig} for configuration options
|
|
41
|
+
* @see {@link BrowserStorageState} for storage state structure
|
|
42
|
+
* @see {@link BrowserDevice} for device configuration format
|
|
43
|
+
*/
|
|
13
44
|
class BrowserUtils {
|
|
14
45
|
/**
|
|
15
46
|
* Loads all the pre-canned browser device configurations from the local
|
|
@@ -18,6 +49,9 @@ class BrowserUtils {
|
|
|
18
49
|
* The returned map keys the devices by their name (ex: 'Desktop Firefox').
|
|
19
50
|
*
|
|
20
51
|
* See `assets/devices.json` for details.
|
|
52
|
+
*
|
|
53
|
+
* @returns A Map containing device configurations keyed by device name
|
|
54
|
+
* @throws {Error} When the devices configuration file cannot be loaded
|
|
21
55
|
*/
|
|
22
56
|
static getSupportedDevices() {
|
|
23
57
|
const rawDevices = JsonUtils_1.JsonUtils.readResourceAsJson(path_1.default.join('devices.json'));
|
|
@@ -26,13 +60,23 @@ class BrowserUtils {
|
|
|
26
60
|
}
|
|
27
61
|
return new Map(Object.entries(rawDevices));
|
|
28
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Creates a browser context based on the provided configuration.
|
|
65
|
+
* Supports different browser types including device emulation, remote instances, and BrowserBase.
|
|
66
|
+
*
|
|
67
|
+
* @param browserConfig - Configuration object specifying browser type and settings
|
|
68
|
+
* @param outputDir - Directory path where browser artifacts (videos, etc.) will be stored
|
|
69
|
+
* @param storageState - Optional browser storage state to restore (cookies, localStorage, sessionStorage)
|
|
70
|
+
* @returns A promise that resolves to a configured BrowserContext
|
|
71
|
+
* @throws {InvalidParamValueException} When an invalid browser type is specified
|
|
72
|
+
*/
|
|
29
73
|
static async create(browserConfig, outputDir, storageState) {
|
|
30
74
|
const type = browserConfig.using.type;
|
|
31
75
|
let browser;
|
|
32
76
|
let browserContext;
|
|
33
77
|
switch (type) {
|
|
34
78
|
case 'device': {
|
|
35
|
-
({ browser, browserContext } = await BrowserUtils.forDevice(browserConfig.using.deviceName ?? BrowserUtils.DEFAULT_DEVICE_NAME, browserConfig.using.headless ?? false, outputDir, storageState));
|
|
79
|
+
({ browser, browserContext } = await BrowserUtils.forDevice(browserConfig.using.deviceName ?? BrowserUtils.DEFAULT_DEVICE_NAME, browserConfig.using.headless ?? false, outputDir, storageState, browserConfig.using.proxy));
|
|
36
80
|
BrowserUtils.patchClose(browserContext, () => browser.close());
|
|
37
81
|
break;
|
|
38
82
|
}
|
|
@@ -88,8 +132,8 @@ class BrowserUtils {
|
|
|
88
132
|
/**
|
|
89
133
|
* Gets the browser storage state including cookies, localStorage, and sessionStorage.
|
|
90
134
|
*
|
|
91
|
-
* @param browserContext The browser context to extract storage state from
|
|
92
|
-
* @returns A promise that resolves to the complete browser storage state
|
|
135
|
+
* @param browserContext - The browser context to extract storage state from
|
|
136
|
+
* @returns A promise that resolves to the complete browser storage state
|
|
93
137
|
*/
|
|
94
138
|
static async getBrowserStorageState(browserContext) {
|
|
95
139
|
let result;
|
|
@@ -156,8 +200,14 @@ class BrowserUtils {
|
|
|
156
200
|
return result;
|
|
157
201
|
}
|
|
158
202
|
/**
|
|
159
|
-
* Connects to an existing Chromium browser using the Chrome DevTools Protocol (CDP) at the given
|
|
160
|
-
*
|
|
203
|
+
* Connects to an existing Chromium browser using the Chrome DevTools Protocol (CDP) at the given URL.
|
|
204
|
+
*
|
|
205
|
+
* @param remoteBrowserInstanceUrl - The CDP endpoint URL of the remote browser instance
|
|
206
|
+
* @param outputDir - Directory path where browser artifacts will be stored
|
|
207
|
+
* @param storageState - Optional browser storage state to restore
|
|
208
|
+
* @returns A promise that resolves to an object containing the browser and browser context
|
|
209
|
+
* @throws {InvalidParamValueException} When the remote browser URL is invalid or connection fails
|
|
210
|
+
* @private
|
|
161
211
|
*/
|
|
162
212
|
static async forRemoteBrowser(remoteBrowserInstanceUrl, outputDir, storageState) {
|
|
163
213
|
try {
|
|
@@ -184,47 +234,112 @@ class BrowserUtils {
|
|
|
184
234
|
}
|
|
185
235
|
}
|
|
186
236
|
/**
|
|
237
|
+
* Creates a browser and context for a specific device configuration.
|
|
187
238
|
* If {@link storageState} is present, must be an object conforming to what is returned by
|
|
188
239
|
* {@link BrowserContext.storageState()}.
|
|
240
|
+
*
|
|
241
|
+
* @param deviceName - Name of the device configuration to use
|
|
242
|
+
* @param headless - Whether to run the browser in headless mode
|
|
243
|
+
* @param outputDir - Directory path where browser artifacts will be stored
|
|
244
|
+
* @param storageState - Optional browser storage state to restore
|
|
245
|
+
* @param proxy - Optional proxy configuration for the browser
|
|
246
|
+
* @returns A promise that resolves to an object containing the browser and browser context
|
|
247
|
+
* @throws {InvalidParamValueException} When the device name is not found in supported devices
|
|
248
|
+
*/
|
|
249
|
+
static async forDevice(deviceName, headless, outputDir, storageState, proxy) {
|
|
250
|
+
const { browserTypeName, browserContextOptions } = this.browserContextOptionsForDevice(deviceName, outputDir);
|
|
251
|
+
if (storageState) {
|
|
252
|
+
browserContextOptions.storageState = storageState;
|
|
253
|
+
}
|
|
254
|
+
const launchOptions = {
|
|
255
|
+
headless,
|
|
256
|
+
args: [
|
|
257
|
+
'--ignore-certificate-errors',
|
|
258
|
+
'--disable-blink-features=AutomationControlled',
|
|
259
|
+
],
|
|
260
|
+
proxy: this.expandProxyConfiguration(proxy),
|
|
261
|
+
};
|
|
262
|
+
return await this.newBrowser(browserTypeName, launchOptions, browserContextOptions);
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Builds browser context options for a specific device configuration.
|
|
266
|
+
*
|
|
267
|
+
* @param deviceName - Name of the device configuration to use
|
|
268
|
+
* @param outputDir - Directory path where browser artifacts will be stored
|
|
269
|
+
* @returns An object containing the browser type name and context options
|
|
270
|
+
* @throws {InvalidParamValueException} When the device name is not found in supported devices
|
|
189
271
|
*/
|
|
190
|
-
static
|
|
191
|
-
const
|
|
192
|
-
if (!
|
|
272
|
+
static browserContextOptionsForDevice(deviceName, outputDir) {
|
|
273
|
+
const browserDevice = BrowserUtils.getSupportedDevices().get(deviceName);
|
|
274
|
+
if (!browserDevice) {
|
|
193
275
|
throw new InvalidParamValueException_1.InvalidParamValueException('deviceName', deviceName);
|
|
194
276
|
}
|
|
195
|
-
const
|
|
196
|
-
userAgent:
|
|
277
|
+
const browserContextOptions = {
|
|
278
|
+
userAgent: browserDevice.userAgent,
|
|
197
279
|
recordVideo: {
|
|
198
280
|
dir: outputDir,
|
|
199
281
|
size: {
|
|
200
|
-
width:
|
|
201
|
-
height:
|
|
282
|
+
width: browserDevice.viewport?.width ?? 1280,
|
|
283
|
+
height: browserDevice.viewport?.height ?? 720,
|
|
202
284
|
},
|
|
203
285
|
},
|
|
204
286
|
viewport: {
|
|
205
|
-
width:
|
|
206
|
-
height:
|
|
287
|
+
width: browserDevice.viewport?.width ?? 1280,
|
|
288
|
+
height: browserDevice.viewport?.height ?? 720,
|
|
207
289
|
},
|
|
208
290
|
screen: {
|
|
209
|
-
width:
|
|
210
|
-
height:
|
|
291
|
+
width: browserDevice.screen?.width ?? browserDevice.viewport?.width ?? 1280,
|
|
292
|
+
height: browserDevice.screen?.height ?? browserDevice.viewport?.height ?? 720,
|
|
211
293
|
},
|
|
212
|
-
deviceScaleFactor:
|
|
213
|
-
isMobile:
|
|
214
|
-
hasTouch:
|
|
294
|
+
deviceScaleFactor: browserDevice.deviceScaleFactor ?? 1.0,
|
|
295
|
+
isMobile: browserDevice.isMobile ?? false,
|
|
296
|
+
hasTouch: browserDevice.hasTouch ?? false,
|
|
215
297
|
};
|
|
216
|
-
|
|
217
|
-
|
|
298
|
+
return {
|
|
299
|
+
browserTypeName: browserDevice.defaultBrowserType.toLowerCase(),
|
|
300
|
+
browserContextOptions: browserContextOptions,
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Expands proxy configuration by merging provided proxy settings with environment variables.
|
|
305
|
+
* Environment variables serve as fallbacks for missing proxy configuration values.
|
|
306
|
+
*
|
|
307
|
+
* @param proxy - Optional proxy configuration object
|
|
308
|
+
* @returns Expanded proxy configuration or undefined if no proxy is configured
|
|
309
|
+
*/
|
|
310
|
+
static expandProxyConfiguration(proxy) {
|
|
311
|
+
const envProxyServer = process.env[envVars_1.ENV_VAR_NAMES.PROXY_SERVER];
|
|
312
|
+
const envProxyUsername = process.env[envVars_1.ENV_VAR_NAMES.PROXY_USERNAME];
|
|
313
|
+
const envProxyPassword = process.env[envVars_1.ENV_VAR_NAMES.PROXY_PASSWORD];
|
|
314
|
+
if (!proxy) {
|
|
315
|
+
return envProxyServer !== undefined
|
|
316
|
+
? {
|
|
317
|
+
server: envProxyServer,
|
|
318
|
+
username: envProxyUsername,
|
|
319
|
+
password: envProxyPassword,
|
|
320
|
+
}
|
|
321
|
+
: undefined;
|
|
218
322
|
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
],
|
|
323
|
+
return {
|
|
324
|
+
server: proxy.server,
|
|
325
|
+
bypass: proxy.bypass,
|
|
326
|
+
username: proxy.username ?? envProxyUsername,
|
|
327
|
+
password: proxy.password ?? envProxyPassword,
|
|
225
328
|
};
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Creates a new browser instance of the specified type with given launch and context options.
|
|
332
|
+
* Handles cleanup by closing the browser if context creation fails.
|
|
333
|
+
*
|
|
334
|
+
* @param browserTypeName - The type of browser to launch
|
|
335
|
+
* @param launchOptions - Options for launching the browser
|
|
336
|
+
* @param browserContextOptions - Options for creating the browser context
|
|
337
|
+
* @returns A promise that resolves to an object containing the browser and browser context
|
|
338
|
+
* @throws {InvalidParamValueException} When an unsupported browser type is specified
|
|
339
|
+
*/
|
|
340
|
+
static async newBrowser(browserTypeName, launchOptions, browserContextOptions) {
|
|
226
341
|
let browser;
|
|
227
|
-
switch (
|
|
342
|
+
switch (browserTypeName) {
|
|
228
343
|
case 'firefox':
|
|
229
344
|
browser = await playwright_1.firefox.launch(launchOptions);
|
|
230
345
|
break;
|
|
@@ -242,10 +357,10 @@ class BrowserUtils {
|
|
|
242
357
|
browser = await playwright_1.webkit.launch(launchOptions);
|
|
243
358
|
break;
|
|
244
359
|
default:
|
|
245
|
-
throw new InvalidParamValueException_1.InvalidParamValueException('browserType',
|
|
360
|
+
throw new InvalidParamValueException_1.InvalidParamValueException('browserType', browserTypeName);
|
|
246
361
|
}
|
|
247
362
|
try {
|
|
248
|
-
const browserContext = await browser.newContext(
|
|
363
|
+
const browserContext = await browser.newContext(browserContextOptions);
|
|
249
364
|
return { browser, browserContext };
|
|
250
365
|
}
|
|
251
366
|
catch (error) {
|
|
@@ -260,6 +375,12 @@ class BrowserUtils {
|
|
|
260
375
|
* The returned browserBaseData object conforms to the response of the session
|
|
261
376
|
* creation API endpoint. See...
|
|
262
377
|
* https://docs.browserbase.com/reference/api/create-a-session#response-id
|
|
378
|
+
*
|
|
379
|
+
* @param sessionArgs - Arguments for creating the BrowserBase session
|
|
380
|
+
* @param outputDir - Directory path where browser artifacts will be stored
|
|
381
|
+
* @param storageState - Optional browser storage state to restore
|
|
382
|
+
* @returns A promise that resolves to an object containing the browser, context, and session data
|
|
383
|
+
* @throws {InvalidParamValueException} When BrowserBase API key is missing or session creation fails
|
|
263
384
|
*/
|
|
264
385
|
static async forBrowserBase(sessionArgs, outputDir, storageState) {
|
|
265
386
|
const browserBaseData = await BrowserUtils.establishBrowserBaseSession(sessionArgs);
|
|
@@ -278,8 +399,12 @@ class BrowserUtils {
|
|
|
278
399
|
}
|
|
279
400
|
/**
|
|
280
401
|
* Establishes a BrowserBase session. The returned structure matches the
|
|
281
|
-
* response
|
|
402
|
+
* response structure from the BrowserBase session API. See...
|
|
282
403
|
* https://docs.browserbase.com/reference/api/create-a-session#response-id
|
|
404
|
+
*
|
|
405
|
+
* @param sessionArgs - Arguments for creating the BrowserBase session
|
|
406
|
+
* @returns A promise that resolves to the BrowserBase session data
|
|
407
|
+
* @throws {InvalidParamValueException} When the API key is missing or the API returns an error
|
|
283
408
|
*/
|
|
284
409
|
static async establishBrowserBaseSession(sessionArgs) {
|
|
285
410
|
const password = process.env[envVars_1.ENV_VAR_NAMES.BROWSERBASE_API_KEY];
|
|
@@ -297,6 +422,13 @@ class BrowserUtils {
|
|
|
297
422
|
}
|
|
298
423
|
return browserBaseData;
|
|
299
424
|
}
|
|
425
|
+
/**
|
|
426
|
+
* Attaches sessionStorage data to a browser context by adding an initialization script.
|
|
427
|
+
* The script will restore sessionStorage items for each origin when pages are loaded.
|
|
428
|
+
*
|
|
429
|
+
* @param browserContext - The browser context to attach sessionStorage to
|
|
430
|
+
* @param storageState - Optional browser storage state containing sessionStorage data
|
|
431
|
+
*/
|
|
300
432
|
static async attachSessionStorageToBrowserContext(browserContext, storageState) {
|
|
301
433
|
// Add init script to restore sessionStorage if storage state is provided
|
|
302
434
|
if (storageState && storageState.origins) {
|
|
@@ -327,6 +459,14 @@ class BrowserUtils {
|
|
|
327
459
|
}, sessionStorageByOrigin);
|
|
328
460
|
}
|
|
329
461
|
}
|
|
462
|
+
/**
|
|
463
|
+
* Patches the close method of a browser context to execute additional cleanup logic.
|
|
464
|
+
* The extra cleanup function will be called after the original close method completes.
|
|
465
|
+
* Both the original close and extra cleanup are wrapped in try-catch blocks to prevent errors from propagating.
|
|
466
|
+
*
|
|
467
|
+
* @param ctx - The browser context to patch
|
|
468
|
+
* @param extra - Additional cleanup function to execute when the context is closed
|
|
469
|
+
*/
|
|
330
470
|
static patchClose(ctx, extra) {
|
|
331
471
|
const original = ctx.close.bind(ctx);
|
|
332
472
|
ctx.close = async (...args) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserUtils.js","sourceRoot":"","sources":["../../src/utils/BrowserUtils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BrowserUtils.js","sourceRoot":"","sources":["../../src/utils/BrowserUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility class for JSON operations including serialization, parsing, and safe object conversion.
|
|
3
|
+
*
|
|
4
|
+
* Provides comprehensive JSON handling capabilities including:
|
|
5
|
+
* - Safe object-to-JSON conversion with circular reference detection
|
|
6
|
+
* - Resource file reading and parsing with error handling
|
|
7
|
+
* - JSON string parsing with graceful error recovery
|
|
8
|
+
*
|
|
9
|
+
* All methods handle errors gracefully and provide appropriate logging.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* // Safe object serialization
|
|
14
|
+
* const obj = { name: 'test', date: new Date() };
|
|
15
|
+
* const safeJson = JsonUtils.objectToJson(obj);
|
|
16
|
+
*
|
|
17
|
+
* // Read JSON from resource file
|
|
18
|
+
* const config = JsonUtils.readResourceAsJson('config.json');
|
|
19
|
+
*
|
|
20
|
+
* // Parse JSON string safely
|
|
21
|
+
* const parsed = JsonUtils.jsonStringToJsonObject('{"key": "value"}');
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @since 1.0.0
|
|
25
|
+
*/
|
|
1
26
|
export declare class JsonUtils {
|
|
27
|
+
/**
|
|
28
|
+
* Private constructor to prevent instantiation of this utility class.
|
|
29
|
+
* All methods are static and should be called directly on the class.
|
|
30
|
+
*/
|
|
2
31
|
private constructor();
|
|
32
|
+
/**
|
|
33
|
+
* Converts an object to a JSON-serializable format with comprehensive type handling and circular reference protection.
|
|
34
|
+
*
|
|
35
|
+
* Handles special cases including:
|
|
36
|
+
* - Date objects (converted to ISO strings)
|
|
37
|
+
* - RegExp objects (converted to string representation)
|
|
38
|
+
* - Error objects (converted to structured object with name, message, stack)
|
|
39
|
+
* - Node.js-specific objects (Timeout, EventEmitter, etc. - converted to descriptive strings)
|
|
40
|
+
* - Circular references (replaced with '[Circular Reference]' string)
|
|
41
|
+
* - Functions and symbols (excluded from output)
|
|
42
|
+
*
|
|
43
|
+
* @param object - The object to convert to JSON-safe format
|
|
44
|
+
* @returns A JSON-serializable version of the input object, or the original value for primitives
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* const complexObj = {
|
|
49
|
+
* date: new Date(),
|
|
50
|
+
* error: new Error('test'),
|
|
51
|
+
* regex: /test/g,
|
|
52
|
+
* func: () => {}, // Will be excluded
|
|
53
|
+
* circular: null as any
|
|
54
|
+
* };
|
|
55
|
+
* complexObj.circular = complexObj; // Create circular reference
|
|
56
|
+
*
|
|
57
|
+
* const safe = JsonUtils.objectToJson(complexObj);
|
|
58
|
+
* // Result: { date: "2023-...", error: {...}, regex: "/test/g", circular: "[Circular Reference]" }
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
3
61
|
static objectToJson(object: any): any;
|
|
4
|
-
static readResourceAsJson(source: string): unknown;
|
|
5
|
-
static jsonStringToJsonObject(jsonString: string): any | null;
|
|
6
62
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
63
|
+
* Reads and parses a JSON file from the application's resource directory.
|
|
64
|
+
*
|
|
65
|
+
* Uses MiscUtils to read the file as a string and then parses it as JSON.
|
|
66
|
+
* Provides error handling and logging for file read and parse failures.
|
|
67
|
+
*
|
|
68
|
+
* @param source - The relative path to the JSON resource file
|
|
69
|
+
* @returns The parsed JSON object, or null if reading or parsing fails
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* // Read configuration from resources
|
|
74
|
+
* const config = JsonUtils.readResourceAsJson('config/app-settings.json');
|
|
75
|
+
* if (config) {
|
|
76
|
+
* console.log('Config loaded:', config);
|
|
77
|
+
* } else {
|
|
78
|
+
* console.log('Failed to load config');
|
|
79
|
+
* }
|
|
80
|
+
* ```
|
|
9
81
|
*/
|
|
10
|
-
|
|
82
|
+
static readResourceAsJson(source: string): any;
|
|
11
83
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
84
|
+
* Safely parses a JSON string into a JavaScript object.
|
|
85
|
+
*
|
|
86
|
+
* Provides error handling and logging for malformed JSON strings.
|
|
87
|
+
* Returns null instead of throwing an exception when parsing fails.
|
|
88
|
+
*
|
|
89
|
+
* @param jsonString - The JSON string to parse
|
|
90
|
+
* @returns The parsed JavaScript object, or null if parsing fails
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* ```typescript
|
|
94
|
+
* const validJson = '{"name": "test", "value": 123}';
|
|
95
|
+
* const invalidJson = '{name: "test"}'; // Missing quotes
|
|
96
|
+
*
|
|
97
|
+
* const obj1 = JsonUtils.jsonStringToJsonObject(validJson); // Returns object
|
|
98
|
+
* const obj2 = JsonUtils.jsonStringToJsonObject(invalidJson); // Returns null
|
|
99
|
+
* ```
|
|
15
100
|
*/
|
|
16
|
-
static
|
|
101
|
+
static jsonStringToJsonObject(jsonString: string): any | null;
|
|
17
102
|
}
|
|
18
103
|
//# sourceMappingURL=JsonUtils.d.ts.map
|