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.
Files changed (205) hide show
  1. package/dist/apis/GptConfigsApi.d.ts +0 -10
  2. package/dist/apis/GptConfigsApi.d.ts.map +1 -1
  3. package/dist/apis/GptConfigsApi.js +6 -11
  4. package/dist/apis/GptConfigsApi.js.map +1 -1
  5. package/dist/assets/generated/version +1 -1
  6. package/dist/cli/install-donobu-plugin.d.ts +6 -0
  7. package/dist/cli/install-donobu-plugin.d.ts.map +1 -0
  8. package/dist/cli/install-donobu-plugin.js +125 -0
  9. package/dist/cli/install-donobu-plugin.js.map +1 -0
  10. package/dist/cli/playwright-json-to-markdown.d.ts +43 -0
  11. package/dist/cli/playwright-json-to-markdown.d.ts.map +1 -0
  12. package/dist/cli/playwright-json-to-markdown.js +239 -0
  13. package/dist/cli/playwright-json-to-markdown.js.map +1 -0
  14. package/dist/cli/playwright-json-to-slack-json.d.ts +3 -0
  15. package/dist/cli/playwright-json-to-slack-json.d.ts.map +1 -0
  16. package/dist/cli/playwright-json-to-slack-json.js +207 -0
  17. package/dist/cli/playwright-json-to-slack-json.js.map +1 -0
  18. package/dist/{esm/clients/GoogleGptClient.d.ts → clients/GoogleGenerativeAiGptClient.d.ts} +4 -4
  19. package/dist/clients/GoogleGenerativeAiGptClient.d.ts.map +1 -0
  20. package/dist/clients/{GoogleGptClient.js → GoogleGenerativeAiGptClient.js} +9 -9
  21. package/dist/clients/GoogleGenerativeAiGptClient.js.map +1 -0
  22. package/dist/clients/GoogleVertexGptClient.d.ts +24 -0
  23. package/dist/clients/GoogleVertexGptClient.d.ts.map +1 -0
  24. package/dist/clients/GoogleVertexGptClient.js +98 -0
  25. package/dist/clients/GoogleVertexGptClient.js.map +1 -0
  26. package/dist/clients/GptClientFactory.d.ts.map +1 -1
  27. package/dist/clients/GptClientFactory.js +6 -2
  28. package/dist/clients/GptClientFactory.js.map +1 -1
  29. package/dist/clients/OpenAiGptClient.d.ts +2 -2
  30. package/dist/clients/OpenAiGptClient.d.ts.map +1 -1
  31. package/dist/clients/OpenAiGptClient.js.map +1 -1
  32. package/dist/clients/VercelAiGptClient.d.ts.map +1 -1
  33. package/dist/clients/VercelAiGptClient.js +6 -5
  34. package/dist/clients/VercelAiGptClient.js.map +1 -1
  35. package/dist/envVars.d.ts +20 -0
  36. package/dist/envVars.d.ts.map +1 -1
  37. package/dist/envVars.js +20 -0
  38. package/dist/envVars.js.map +1 -1
  39. package/dist/esm/apis/GptConfigsApi.d.ts +0 -10
  40. package/dist/esm/apis/GptConfigsApi.d.ts.map +1 -1
  41. package/dist/esm/apis/GptConfigsApi.js +6 -11
  42. package/dist/esm/apis/GptConfigsApi.js.map +1 -1
  43. package/dist/esm/assets/generated/version +1 -1
  44. package/dist/esm/cli/install-donobu-plugin.d.ts +6 -0
  45. package/dist/esm/cli/install-donobu-plugin.d.ts.map +1 -0
  46. package/dist/esm/cli/install-donobu-plugin.js +125 -0
  47. package/dist/esm/cli/install-donobu-plugin.js.map +1 -0
  48. package/dist/esm/cli/playwright-json-to-markdown.d.ts +43 -0
  49. package/dist/esm/cli/playwright-json-to-markdown.d.ts.map +1 -0
  50. package/dist/esm/cli/playwright-json-to-markdown.js +239 -0
  51. package/dist/esm/cli/playwright-json-to-markdown.js.map +1 -0
  52. package/dist/esm/cli/playwright-json-to-slack-json.d.ts +3 -0
  53. package/dist/esm/cli/playwright-json-to-slack-json.d.ts.map +1 -0
  54. package/dist/esm/cli/playwright-json-to-slack-json.js +207 -0
  55. package/dist/esm/cli/playwright-json-to-slack-json.js.map +1 -0
  56. package/dist/{clients/GoogleGptClient.d.ts → esm/clients/GoogleGenerativeAiGptClient.d.ts} +4 -4
  57. package/dist/esm/clients/GoogleGenerativeAiGptClient.d.ts.map +1 -0
  58. package/dist/esm/clients/{GoogleGptClient.js → GoogleGenerativeAiGptClient.js} +9 -9
  59. package/dist/esm/clients/GoogleGenerativeAiGptClient.js.map +1 -0
  60. package/dist/esm/clients/GoogleVertexGptClient.d.ts +24 -0
  61. package/dist/esm/clients/GoogleVertexGptClient.d.ts.map +1 -0
  62. package/dist/esm/clients/GoogleVertexGptClient.js +98 -0
  63. package/dist/esm/clients/GoogleVertexGptClient.js.map +1 -0
  64. package/dist/esm/clients/GptClientFactory.d.ts.map +1 -1
  65. package/dist/esm/clients/GptClientFactory.js +6 -2
  66. package/dist/esm/clients/GptClientFactory.js.map +1 -1
  67. package/dist/esm/clients/OpenAiGptClient.d.ts +2 -2
  68. package/dist/esm/clients/OpenAiGptClient.d.ts.map +1 -1
  69. package/dist/esm/clients/OpenAiGptClient.js.map +1 -1
  70. package/dist/esm/clients/VercelAiGptClient.d.ts.map +1 -1
  71. package/dist/esm/clients/VercelAiGptClient.js +6 -5
  72. package/dist/esm/clients/VercelAiGptClient.js.map +1 -1
  73. package/dist/esm/envVars.d.ts +20 -0
  74. package/dist/esm/envVars.d.ts.map +1 -1
  75. package/dist/esm/envVars.js +20 -0
  76. package/dist/esm/envVars.js.map +1 -1
  77. package/dist/esm/exceptions/GptPlatformAuthenticationFailedException.d.ts +2 -1
  78. package/dist/esm/exceptions/GptPlatformAuthenticationFailedException.d.ts.map +1 -1
  79. package/dist/esm/exceptions/GptPlatformAuthenticationFailedException.js +3 -2
  80. package/dist/esm/exceptions/GptPlatformAuthenticationFailedException.js.map +1 -1
  81. package/dist/esm/init.d.ts +9 -0
  82. package/dist/esm/init.d.ts.map +1 -0
  83. package/dist/esm/init.js +70 -0
  84. package/dist/esm/init.js.map +1 -0
  85. package/dist/esm/lib/fixtures/gptClients.d.ts.map +1 -1
  86. package/dist/esm/lib/fixtures/gptClients.js +16 -2
  87. package/dist/esm/lib/fixtures/gptClients.js.map +1 -1
  88. package/dist/esm/main.d.ts +1 -0
  89. package/dist/esm/main.d.ts.map +1 -1
  90. package/dist/esm/main.js +3 -50
  91. package/dist/esm/main.js.map +1 -1
  92. package/dist/esm/managers/DonobuFlowsManager.d.ts.map +1 -1
  93. package/dist/esm/managers/DonobuFlowsManager.js +13 -1
  94. package/dist/esm/managers/DonobuFlowsManager.js.map +1 -1
  95. package/dist/esm/models/BrowserConfig.d.ts +269 -4
  96. package/dist/esm/models/BrowserConfig.d.ts.map +1 -1
  97. package/dist/esm/models/BrowserConfig.js +17 -4
  98. package/dist/esm/models/BrowserConfig.js.map +1 -1
  99. package/dist/esm/models/BrowserStateFlowReference.d.ts +165 -14
  100. package/dist/esm/models/BrowserStateFlowReference.d.ts.map +1 -1
  101. package/dist/esm/models/BrowserStateFlowReference.js +19 -0
  102. package/dist/esm/models/BrowserStateFlowReference.js.map +1 -1
  103. package/dist/esm/models/BrowserStorageState.d.ts +88 -10
  104. package/dist/esm/models/BrowserStorageState.d.ts.map +1 -1
  105. package/dist/esm/models/BrowserStorageState.js +38 -0
  106. package/dist/esm/models/BrowserStorageState.js.map +1 -1
  107. package/dist/esm/models/CreateDonobuFlow.d.ts +347 -5
  108. package/dist/esm/models/CreateDonobuFlow.d.ts.map +1 -1
  109. package/dist/esm/models/FlowMetadata.d.ts +347 -5
  110. package/dist/esm/models/FlowMetadata.d.ts.map +1 -1
  111. package/dist/esm/models/GptConfig.d.ts +44 -6
  112. package/dist/esm/models/GptConfig.d.ts.map +1 -1
  113. package/dist/esm/models/GptConfig.js +17 -7
  114. package/dist/esm/models/GptConfig.js.map +1 -1
  115. package/dist/esm/tools/ReplayableInteraction.d.ts +1 -1
  116. package/dist/esm/tools/ReplayableInteraction.d.ts.map +1 -1
  117. package/dist/esm/tools/RunInlineJavaScriptCodeTool.js +8 -8
  118. package/dist/esm/tools/RunInlineJavaScriptCodeTool.js.map +1 -1
  119. package/dist/esm/tools/RunSandboxedJavaScriptCodeTool.d.ts.map +1 -1
  120. package/dist/esm/tools/RunSandboxedJavaScriptCodeTool.js +8 -9
  121. package/dist/esm/tools/RunSandboxedJavaScriptCodeTool.js.map +1 -1
  122. package/dist/esm/tools/TriggerDonobuFlowTool.d.ts +850 -14
  123. package/dist/esm/tools/TriggerDonobuFlowTool.d.ts.map +1 -1
  124. package/dist/esm/utils/BrowserUtils.d.ts +118 -5
  125. package/dist/esm/utils/BrowserUtils.d.ts.map +1 -1
  126. package/dist/esm/utils/BrowserUtils.js +171 -31
  127. package/dist/esm/utils/BrowserUtils.js.map +1 -1
  128. package/dist/esm/utils/JsonUtils.d.ts +94 -9
  129. package/dist/esm/utils/JsonUtils.d.ts.map +1 -1
  130. package/dist/esm/utils/JsonUtils.js +96 -77
  131. package/dist/esm/utils/JsonUtils.js.map +1 -1
  132. package/dist/exceptions/GptPlatformAuthenticationFailedException.d.ts +2 -1
  133. package/dist/exceptions/GptPlatformAuthenticationFailedException.d.ts.map +1 -1
  134. package/dist/exceptions/GptPlatformAuthenticationFailedException.js +3 -2
  135. package/dist/exceptions/GptPlatformAuthenticationFailedException.js.map +1 -1
  136. package/dist/init.d.ts +9 -0
  137. package/dist/init.d.ts.map +1 -0
  138. package/dist/init.js +70 -0
  139. package/dist/init.js.map +1 -0
  140. package/dist/lib/fixtures/gptClients.d.ts.map +1 -1
  141. package/dist/lib/fixtures/gptClients.js +16 -2
  142. package/dist/lib/fixtures/gptClients.js.map +1 -1
  143. package/dist/main.d.ts +1 -0
  144. package/dist/main.d.ts.map +1 -1
  145. package/dist/main.js +3 -50
  146. package/dist/main.js.map +1 -1
  147. package/dist/managers/DonobuFlowsManager.d.ts.map +1 -1
  148. package/dist/managers/DonobuFlowsManager.js +13 -1
  149. package/dist/managers/DonobuFlowsManager.js.map +1 -1
  150. package/dist/models/BrowserConfig.d.ts +269 -4
  151. package/dist/models/BrowserConfig.d.ts.map +1 -1
  152. package/dist/models/BrowserConfig.js +17 -4
  153. package/dist/models/BrowserConfig.js.map +1 -1
  154. package/dist/models/BrowserStateFlowReference.d.ts +165 -14
  155. package/dist/models/BrowserStateFlowReference.d.ts.map +1 -1
  156. package/dist/models/BrowserStateFlowReference.js +19 -0
  157. package/dist/models/BrowserStateFlowReference.js.map +1 -1
  158. package/dist/models/BrowserStorageState.d.ts +88 -10
  159. package/dist/models/BrowserStorageState.d.ts.map +1 -1
  160. package/dist/models/BrowserStorageState.js +38 -0
  161. package/dist/models/BrowserStorageState.js.map +1 -1
  162. package/dist/models/CreateDonobuFlow.d.ts +347 -5
  163. package/dist/models/CreateDonobuFlow.d.ts.map +1 -1
  164. package/dist/models/FlowMetadata.d.ts +347 -5
  165. package/dist/models/FlowMetadata.d.ts.map +1 -1
  166. package/dist/models/GptConfig.d.ts +44 -6
  167. package/dist/models/GptConfig.d.ts.map +1 -1
  168. package/dist/models/GptConfig.js +17 -7
  169. package/dist/models/GptConfig.js.map +1 -1
  170. package/dist/tools/ReplayableInteraction.d.ts +1 -1
  171. package/dist/tools/ReplayableInteraction.d.ts.map +1 -1
  172. package/dist/tools/RunInlineJavaScriptCodeTool.js +8 -8
  173. package/dist/tools/RunInlineJavaScriptCodeTool.js.map +1 -1
  174. package/dist/tools/RunSandboxedJavaScriptCodeTool.d.ts.map +1 -1
  175. package/dist/tools/RunSandboxedJavaScriptCodeTool.js +8 -9
  176. package/dist/tools/RunSandboxedJavaScriptCodeTool.js.map +1 -1
  177. package/dist/tools/TriggerDonobuFlowTool.d.ts +850 -14
  178. package/dist/tools/TriggerDonobuFlowTool.d.ts.map +1 -1
  179. package/dist/utils/BrowserUtils.d.ts +118 -5
  180. package/dist/utils/BrowserUtils.d.ts.map +1 -1
  181. package/dist/utils/BrowserUtils.js +171 -31
  182. package/dist/utils/BrowserUtils.js.map +1 -1
  183. package/dist/utils/JsonUtils.d.ts +94 -9
  184. package/dist/utils/JsonUtils.d.ts.map +1 -1
  185. package/dist/utils/JsonUtils.js +96 -77
  186. package/dist/utils/JsonUtils.js.map +1 -1
  187. package/package.json +12 -11
  188. package/dist/assets/install-donobu-plugin.js +0 -96
  189. package/dist/assets/playwright-json-to-markdown.js +0 -257
  190. package/dist/assets/playwright-json-to-slack-json.js +0 -171
  191. package/dist/clients/GoogleGptClient.d.ts.map +0 -1
  192. package/dist/clients/GoogleGptClient.js.map +0 -1
  193. package/dist/esm/assets/install-donobu-plugin.js +0 -96
  194. package/dist/esm/assets/playwright-json-to-markdown.js +0 -257
  195. package/dist/esm/assets/playwright-json-to-slack-json.js +0 -171
  196. package/dist/esm/clients/GoogleGptClient.d.ts.map +0 -1
  197. package/dist/esm/clients/GoogleGptClient.js.map +0 -1
  198. package/dist/esm/exceptions/UnparseableJsonBodyException.d.ts +0 -5
  199. package/dist/esm/exceptions/UnparseableJsonBodyException.d.ts.map +0 -1
  200. package/dist/esm/exceptions/UnparseableJsonBodyException.js +0 -11
  201. package/dist/esm/exceptions/UnparseableJsonBodyException.js.map +0 -1
  202. package/dist/exceptions/UnparseableJsonBodyException.d.ts +0 -5
  203. package/dist/exceptions/UnparseableJsonBodyException.d.ts.map +0 -1
  204. package/dist/exceptions/UnparseableJsonBodyException.js +0 -11
  205. 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAItC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEtC,CAAC;AAEF,qBAAa,qBAAsB,SAAQ,IAAI,CAC7C,OAAO,2BAA2B,EAClC,OAAO,0BAA0B,CAClC;IACC,gBAAuB,IAAI,uBAAuB;;IAc5B,IAAI,CACxB,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,GACtD,OAAO,CAAC,cAAc,CAAC;IAWJ,WAAW,CAC/B,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,GACrD,OAAO,CAAC,cAAc,CAAC;CAG3B"}
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
- * URL.
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 structore from the BrowserBase session API. See...
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;IACjE;;;;;;;OAOG;WACW,mBAAmB,IAAI,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC;WAY3C,MAAM,CACxB,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,mBAAmB,GACjC,OAAO,CAAC,cAAc,CAAC;IAuF1B;;;;;OAKG;WACiB,sBAAsB,CACxC,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,mBAAmB,CAAC;IAgF/B;;;OAGG;mBACkB,gBAAgB;IAiCrC;;;OAGG;mBACkB,SAAS;IAiF9B;;;;;;;OAOG;mBACkB,cAAc;IA2BnC;;;;OAIG;mBACkB,2BAA2B;WAkC5B,oCAAoC,CACtD,cAAc,EAAE,cAAc,EAC9B,YAAY,CAAC,EAAE,mBAAmB,GACjC,OAAO,CAAC,IAAI,CAAC;IAwChB,OAAO,CAAC,MAAM,CAAC,UAAU;CAgB1B"}
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
- * URL.
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 async forDevice(deviceName, headless, outputDir, storageState) {
191
- const device = BrowserUtils.getSupportedDevices().get(deviceName);
192
- if (!device) {
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 contextOptions = {
196
- userAgent: device.userAgent,
277
+ const browserContextOptions = {
278
+ userAgent: browserDevice.userAgent,
197
279
  recordVideo: {
198
280
  dir: outputDir,
199
281
  size: {
200
- width: device.viewport?.width ?? 1280,
201
- height: device.viewport?.height ?? 720,
282
+ width: browserDevice.viewport?.width ?? 1280,
283
+ height: browserDevice.viewport?.height ?? 720,
202
284
  },
203
285
  },
204
286
  viewport: {
205
- width: device.viewport?.width ?? 1280,
206
- height: device.viewport?.height ?? 720,
287
+ width: browserDevice.viewport?.width ?? 1280,
288
+ height: browserDevice.viewport?.height ?? 720,
207
289
  },
208
290
  screen: {
209
- width: device.screen?.width ?? device.viewport?.width ?? 1280,
210
- height: device.screen?.height ?? device.viewport?.height ?? 720,
291
+ width: browserDevice.screen?.width ?? browserDevice.viewport?.width ?? 1280,
292
+ height: browserDevice.screen?.height ?? browserDevice.viewport?.height ?? 720,
211
293
  },
212
- deviceScaleFactor: device.deviceScaleFactor ?? 1.0,
213
- isMobile: device.isMobile ?? false,
214
- hasTouch: device.hasTouch ?? false,
294
+ deviceScaleFactor: browserDevice.deviceScaleFactor ?? 1.0,
295
+ isMobile: browserDevice.isMobile ?? false,
296
+ hasTouch: browserDevice.hasTouch ?? false,
215
297
  };
216
- if (storageState) {
217
- contextOptions.storageState = storageState;
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
- const launchOptions = {
220
- headless,
221
- args: [
222
- '--ignore-certificate-errors',
223
- '--disable-blink-features=AutomationControlled',
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 (device.defaultBrowserType.toLowerCase()) {
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', device.defaultBrowserType);
360
+ throw new InvalidParamValueException_1.InvalidParamValueException('browserType', browserTypeName);
246
361
  }
247
362
  try {
248
- const browserContext = await browser.newContext(contextOptions);
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 structore from the BrowserBase session API. See...
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
- * Post-process the given schema to conform with OpenAI constraints
8
- * @see https://platform.openai.com/docs/guides/structured-outputs/additionalproperties-false-must-always-be-set-in-objects
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
- private static postProcessJsonSchema;
82
+ static readResourceAsJson(source: string): any;
11
83
  /**
12
- * Ensures the given file path exists. If the file does not initially exist,
13
- * all directories to it will be created and the file will be created with a
14
- * value of an empty JSON object (AKA {}).
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 maybeInitEmptyJsonFile(filePath: string): Promise<void>;
101
+ static jsonStringToJsonObject(jsonString: string): any | null;
17
102
  }
18
103
  //# sourceMappingURL=JsonUtils.d.ts.map