@bctrl/sdk 1.0.1
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/README.md +75 -0
- package/dist/agents/browser-use/index.d.ts +1 -0
- package/dist/agents/browser-use/index.js +9 -0
- package/dist/agents/browser-use/namespace.d.ts +39 -0
- package/dist/agents/browser-use/namespace.js +93 -0
- package/dist/agents/index.d.ts +2 -0
- package/dist/agents/index.js +17 -0
- package/dist/agents/stagehand/core.d.ts +93 -0
- package/dist/agents/stagehand/core.js +144 -0
- package/dist/agents/stagehand/index.d.ts +3 -0
- package/dist/agents/stagehand/index.js +24 -0
- package/dist/agents/stagehand/namespace.d.ts +51 -0
- package/dist/agents/stagehand/namespace.js +65 -0
- package/dist/ai-credentials/client.d.ts +12 -0
- package/dist/ai-credentials/client.js +70 -0
- package/dist/ai-credentials/index.d.ts +1 -0
- package/dist/ai-credentials/index.js +1 -0
- package/dist/base/event-binding.d.ts +7 -0
- package/dist/base/event-binding.js +23 -0
- package/dist/base/types.d.ts +109 -0
- package/dist/base/types.js +4 -0
- package/dist/bctrl.d.ts +37 -0
- package/dist/bctrl.js +77 -0
- package/dist/browser-extensions/client.d.ts +15 -0
- package/dist/browser-extensions/client.js +72 -0
- package/dist/browser-extensions/index.d.ts +2 -0
- package/dist/browser-extensions/index.js +1 -0
- package/dist/browser-profiles/client.d.ts +11 -0
- package/dist/browser-profiles/client.js +63 -0
- package/dist/browser-profiles/index.d.ts +1 -0
- package/dist/browser-profiles/index.js +1 -0
- package/dist/captcha/index.d.ts +1 -0
- package/dist/captcha/index.js +1 -0
- package/dist/captcha/namespace.d.ts +34 -0
- package/dist/captcha/namespace.js +41 -0
- package/dist/client/index.d.ts +1 -0
- package/dist/client/index.js +1 -0
- package/dist/client/rpc.d.ts +83 -0
- package/dist/client/rpc.js +354 -0
- package/dist/config.d.ts +5 -0
- package/dist/config.js +28 -0
- package/dist/constants/browser.d.ts +2 -0
- package/dist/constants/browser.js +1 -0
- package/dist/contracts/agent-tools.d.ts +45 -0
- package/dist/contracts/agent-tools.js +31 -0
- package/dist/contracts/automation.d.ts +265 -0
- package/dist/contracts/automation.js +109 -0
- package/dist/contracts/browser-management.d.ts +179 -0
- package/dist/contracts/browser-management.js +95 -0
- package/dist/contracts/browser-use.d.ts +136 -0
- package/dist/contracts/browser-use.js +93 -0
- package/dist/contracts/captcha.d.ts +114 -0
- package/dist/contracts/captcha.js +40 -0
- package/dist/contracts/desktop.d.ts +223 -0
- package/dist/contracts/desktop.js +121 -0
- package/dist/contracts/drivers/playwright.d.ts +2008 -0
- package/dist/contracts/drivers/playwright.js +2033 -0
- package/dist/contracts/drivers/puppeteer.d.ts +1221 -0
- package/dist/contracts/drivers/puppeteer.js +941 -0
- package/dist/contracts/drivers/selenium.d.ts +156 -0
- package/dist/contracts/drivers/selenium.js +61 -0
- package/dist/contracts/drivers/stagehand.d.ts +155 -0
- package/dist/contracts/drivers/stagehand.js +7 -0
- package/dist/contracts/extensions.d.ts +13 -0
- package/dist/contracts/extensions.js +9 -0
- package/dist/contracts/index.d.ts +13 -0
- package/dist/contracts/index.js +13 -0
- package/dist/contracts/public-api.d.ts +360 -0
- package/dist/contracts/public-api.js +17 -0
- package/dist/contracts/runtime.d.ts +81 -0
- package/dist/contracts/runtime.js +16 -0
- package/dist/contracts/stagehand.d.ts +253 -0
- package/dist/contracts/stagehand.js +145 -0
- package/dist/contracts/storage.d.ts +51 -0
- package/dist/contracts/storage.js +56 -0
- package/dist/contracts/vault.d.ts +119 -0
- package/dist/contracts/vault.js +112 -0
- package/dist/contracts/version.d.ts +3 -0
- package/dist/contracts/version.js +16 -0
- package/dist/desktop.d.ts +2 -0
- package/dist/desktop.js +3 -0
- package/dist/drivers/desktop/index.d.ts +65 -0
- package/dist/drivers/desktop/index.js +68 -0
- package/dist/drivers/desktop/session.d.ts +313 -0
- package/dist/drivers/desktop/session.js +432 -0
- package/dist/drivers/playwright/event-emitter.d.ts +160 -0
- package/dist/drivers/playwright/event-emitter.js +297 -0
- package/dist/drivers/playwright/generated/api-request-context.d.ts +137 -0
- package/dist/drivers/playwright/generated/api-request-context.js +154 -0
- package/dist/drivers/playwright/generated/api-response.d.ts +119 -0
- package/dist/drivers/playwright/generated/api-response.js +123 -0
- package/dist/drivers/playwright/generated/browser-context.d.ts +284 -0
- package/dist/drivers/playwright/generated/browser-context.js +458 -0
- package/dist/drivers/playwright/generated/browser.d.ts +120 -0
- package/dist/drivers/playwright/generated/browser.js +151 -0
- package/dist/drivers/playwright/generated/clock.d.ts +80 -0
- package/dist/drivers/playwright/generated/clock.js +94 -0
- package/dist/drivers/playwright/generated/console-message.d.ts +94 -0
- package/dist/drivers/playwright/generated/console-message.js +89 -0
- package/dist/drivers/playwright/generated/coverage.d.ts +57 -0
- package/dist/drivers/playwright/generated/coverage.js +66 -0
- package/dist/drivers/playwright/generated/dialog.d.ts +79 -0
- package/dist/drivers/playwright/generated/dialog.js +80 -0
- package/dist/drivers/playwright/generated/element-handle.d.ts +399 -0
- package/dist/drivers/playwright/generated/element-handle.js +501 -0
- package/dist/drivers/playwright/generated/frame-locator.d.ts +34 -0
- package/dist/drivers/playwright/generated/frame-locator.js +63 -0
- package/dist/drivers/playwright/generated/frame.d.ts +557 -0
- package/dist/drivers/playwright/generated/frame.js +634 -0
- package/dist/drivers/playwright/generated/js-handle.d.ts +72 -0
- package/dist/drivers/playwright/generated/js-handle.js +92 -0
- package/dist/drivers/playwright/generated/keyboard.d.ts +103 -0
- package/dist/drivers/playwright/generated/keyboard.js +113 -0
- package/dist/drivers/playwright/generated/locator.d.ts +795 -0
- package/dist/drivers/playwright/generated/locator.js +974 -0
- package/dist/drivers/playwright/generated/mouse.d.ts +97 -0
- package/dist/drivers/playwright/generated/mouse.js +109 -0
- package/dist/drivers/playwright/generated/page.d.ts +762 -0
- package/dist/drivers/playwright/generated/page.js +988 -0
- package/dist/drivers/playwright/generated/touchscreen.d.ts +34 -0
- package/dist/drivers/playwright/generated/touchscreen.js +37 -0
- package/dist/drivers/playwright/generated/tracing.d.ts +78 -0
- package/dist/drivers/playwright/generated/tracing.js +80 -0
- package/dist/drivers/playwright/generated/worker.d.ts +53 -0
- package/dist/drivers/playwright/generated/worker.js +59 -0
- package/dist/drivers/playwright/index.d.ts +19 -0
- package/dist/drivers/playwright/index.js +20 -0
- package/dist/drivers/playwright/remote-base.d.ts +62 -0
- package/dist/drivers/playwright/remote-base.js +86 -0
- package/dist/drivers/playwright/types.d.ts +148 -0
- package/dist/drivers/playwright/types.js +8 -0
- package/dist/drivers/puppeteer/errors.d.ts +50 -0
- package/dist/drivers/puppeteer/errors.js +71 -0
- package/dist/drivers/puppeteer/event-emitter.d.ts +145 -0
- package/dist/drivers/puppeteer/event-emitter.js +259 -0
- package/dist/drivers/puppeteer/generated/accessibility.d.ts +77 -0
- package/dist/drivers/puppeteer/generated/accessibility.js +74 -0
- package/dist/drivers/puppeteer/generated/browser-context.d.ts +116 -0
- package/dist/drivers/puppeteer/generated/browser-context.js +168 -0
- package/dist/drivers/puppeteer/generated/browser.d.ts +169 -0
- package/dist/drivers/puppeteer/generated/browser.js +246 -0
- package/dist/drivers/puppeteer/generated/console-message.d.ts +54 -0
- package/dist/drivers/puppeteer/generated/console-message.js +69 -0
- package/dist/drivers/puppeteer/generated/coverage.d.ts +49 -0
- package/dist/drivers/puppeteer/generated/coverage.js +57 -0
- package/dist/drivers/puppeteer/generated/dialog.d.ts +46 -0
- package/dist/drivers/puppeteer/generated/dialog.js +60 -0
- package/dist/drivers/puppeteer/generated/element-handle.d.ts +261 -0
- package/dist/drivers/puppeteer/generated/element-handle.js +341 -0
- package/dist/drivers/puppeteer/generated/file-chooser.d.ts +34 -0
- package/dist/drivers/puppeteer/generated/file-chooser.js +43 -0
- package/dist/drivers/puppeteer/generated/frame.d.ts +221 -0
- package/dist/drivers/puppeteer/generated/frame.js +302 -0
- package/dist/drivers/puppeteer/generated/http-request.d.ts +195 -0
- package/dist/drivers/puppeteer/generated/http-request.js +243 -0
- package/dist/drivers/puppeteer/generated/http-response.d.ts +142 -0
- package/dist/drivers/puppeteer/generated/http-response.js +169 -0
- package/dist/drivers/puppeteer/generated/js-handle.d.ts +104 -0
- package/dist/drivers/puppeteer/generated/js-handle.js +125 -0
- package/dist/drivers/puppeteer/generated/keyboard.d.ts +79 -0
- package/dist/drivers/puppeteer/generated/keyboard.js +89 -0
- package/dist/drivers/puppeteer/generated/locator.d.ts +141 -0
- package/dist/drivers/puppeteer/generated/locator.js +164 -0
- package/dist/drivers/puppeteer/generated/mouse.d.ts +74 -0
- package/dist/drivers/puppeteer/generated/mouse.js +94 -0
- package/dist/drivers/puppeteer/generated/page.d.ts +604 -0
- package/dist/drivers/puppeteer/generated/page.js +776 -0
- package/dist/drivers/puppeteer/generated/target.d.ts +105 -0
- package/dist/drivers/puppeteer/generated/target.js +123 -0
- package/dist/drivers/puppeteer/generated/touchscreen.d.ts +87 -0
- package/dist/drivers/puppeteer/generated/touchscreen.js +103 -0
- package/dist/drivers/puppeteer/generated/tracing.d.ts +38 -0
- package/dist/drivers/puppeteer/generated/tracing.js +43 -0
- package/dist/drivers/puppeteer/generated/web-worker.d.ts +63 -0
- package/dist/drivers/puppeteer/generated/web-worker.js +73 -0
- package/dist/drivers/puppeteer/index.d.ts +21 -0
- package/dist/drivers/puppeteer/index.js +23 -0
- package/dist/drivers/puppeteer/remote-base.d.ts +57 -0
- package/dist/drivers/puppeteer/remote-base.js +79 -0
- package/dist/drivers/puppeteer/types.d.ts +178 -0
- package/dist/drivers/puppeteer/types.js +8 -0
- package/dist/drivers/selenium/driver.d.ts +28 -0
- package/dist/drivers/selenium/driver.js +169 -0
- package/dist/drivers/selenium/element.d.ts +34 -0
- package/dist/drivers/selenium/element.js +73 -0
- package/dist/drivers/selenium/index.d.ts +3 -0
- package/dist/drivers/selenium/index.js +5 -0
- package/dist/drivers/selenium/types.d.ts +2 -0
- package/dist/drivers/selenium/types.js +12 -0
- package/dist/drivers/stagehand/generated/context.d.ts +127 -0
- package/dist/drivers/stagehand/generated/context.js +153 -0
- package/dist/drivers/stagehand/generated/locator.d.ts +324 -0
- package/dist/drivers/stagehand/generated/locator.js +368 -0
- package/dist/drivers/stagehand/generated/page.d.ts +377 -0
- package/dist/drivers/stagehand/generated/page.js +439 -0
- package/dist/drivers/stagehand/generated/response.d.ts +197 -0
- package/dist/drivers/stagehand/generated/response.js +232 -0
- package/dist/drivers/stagehand/index.d.ts +5 -0
- package/dist/drivers/stagehand/index.js +8 -0
- package/dist/drivers/stagehand/types.d.ts +1 -0
- package/dist/drivers/stagehand/types.js +7 -0
- package/dist/errors.d.ts +47 -0
- package/dist/errors.js +157 -0
- package/dist/extensions/client.d.ts +47 -0
- package/dist/extensions/client.js +154 -0
- package/dist/extensions/index.d.ts +1 -0
- package/dist/extensions/index.js +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +23 -0
- package/dist/internal/dev-client.d.ts +5 -0
- package/dist/internal/dev-client.js +9 -0
- package/dist/internal/rpc-targets.d.ts +17 -0
- package/dist/internal/rpc-targets.js +58 -0
- package/dist/internal/serialization.d.ts +32 -0
- package/dist/internal/serialization.js +42 -0
- package/dist/internal/transport.d.ts +24 -0
- package/dist/internal/transport.js +29 -0
- package/dist/playwright.d.ts +1 -0
- package/dist/playwright.js +2 -0
- package/dist/puppeteer.d.ts +1 -0
- package/dist/puppeteer.js +2 -0
- package/dist/selenium.d.ts +1 -0
- package/dist/selenium.js +2 -0
- package/dist/stagehand.d.ts +1 -0
- package/dist/stagehand.js +2 -0
- package/dist/storage/client.d.ts +151 -0
- package/dist/storage/client.js +329 -0
- package/dist/storage/index.d.ts +2 -0
- package/dist/storage/index.js +4 -0
- package/dist/telemetry.d.ts +18 -0
- package/dist/telemetry.js +93 -0
- package/dist/updates/client.d.ts +8 -0
- package/dist/updates/client.js +128 -0
- package/dist/updates/index.d.ts +1 -0
- package/dist/updates/index.js +1 -0
- package/dist/utils/http.d.ts +39 -0
- package/dist/utils/http.js +88 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.js +4 -0
- package/dist/utils/logger.d.ts +27 -0
- package/dist/utils/logger.js +74 -0
- package/dist/utils/schema.d.ts +17 -0
- package/dist/utils/schema.js +31 -0
- package/dist/utils/url.d.ts +5 -0
- package/dist/utils/url.js +7 -0
- package/dist/vault/client.d.ts +43 -0
- package/dist/vault/client.js +123 -0
- package/dist/vault/index.d.ts +1 -0
- package/dist/vault/index.js +1 -0
- package/dist/version.d.ts +1 -0
- package/dist/version.js +4 -0
- package/dist/workspaces/browser-runtime.d.ts +251 -0
- package/dist/workspaces/browser-runtime.js +1025 -0
- package/dist/workspaces/client.d.ts +48 -0
- package/dist/workspaces/client.js +222 -0
- package/dist/workspaces/index.d.ts +2 -0
- package/dist/workspaces/index.js +2 -0
- package/dist/workspaces/runtime-event-pump.d.ts +65 -0
- package/dist/workspaces/runtime-event-pump.js +716 -0
- package/package.json +56 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// BCTRL SDK - Core Entry Point
|
|
3
|
+
// ============================================================================
|
|
4
|
+
//
|
|
5
|
+
// Keep the root entrypoint lean.
|
|
6
|
+
// Driver-specific classes and types are exposed via subpath exports:
|
|
7
|
+
// - <package>/puppeteer
|
|
8
|
+
// - <package>/playwright
|
|
9
|
+
// - <package>/stagehand
|
|
10
|
+
// - <package>/selenium
|
|
11
|
+
//
|
|
12
|
+
export { z } from 'zod';
|
|
13
|
+
// Core errors
|
|
14
|
+
export { BctrlError, AutomationError, AutomationError as SdkAutomationError, SessionError, TimeoutError, AuthenticationError, fromErrorResponse, isBctrlError, isAutomationError, isSessionError, isTimeoutError, isAuthenticationError, getAutomationHint, } from './errors.js';
|
|
15
|
+
// Service clients
|
|
16
|
+
export * from './storage/index.js';
|
|
17
|
+
export * from './ai-credentials/index.js';
|
|
18
|
+
export * from './browser-extensions/index.js';
|
|
19
|
+
export * from './browser-profiles/index.js';
|
|
20
|
+
export * from './vault/index.js';
|
|
21
|
+
export * from './updates/index.js';
|
|
22
|
+
export * from './workspaces/index.js';
|
|
23
|
+
export { Bctrl } from './bctrl.js';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { createInternalBctrlClient } from '../bctrl.js';
|
|
2
|
+
import { resolveInternalApiBaseUrl } from '../config.js';
|
|
3
|
+
export function createInternalBctrl(options) {
|
|
4
|
+
return createInternalBctrlClient({
|
|
5
|
+
apiKey: options.apiKey,
|
|
6
|
+
telemetry: options.telemetry,
|
|
7
|
+
apiBaseUrl: resolveInternalApiBaseUrl(options.apiOrigin),
|
|
8
|
+
});
|
|
9
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AUTO-GENERATED FILE - DO NOT EDIT
|
|
3
|
+
*
|
|
4
|
+
* Generated from: scripts/generate/rpc-targets-config.ts
|
|
5
|
+
* Run `pnpm generate:rpc-targets` to regenerate.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* All valid SDK RPC target types.
|
|
9
|
+
* Generated from driver handler configurations.
|
|
10
|
+
*/
|
|
11
|
+
export declare const RPC_TARGETS: readonly ["browser", "browserUse", "consoleMessage", "context", "cua", "desktop", "dialog", "element", "fileChooser", "frame", "httpRequest", "httpResponse", "jsHandle", "locator", "page", "response", "selenium", "selenium-element", "stagehand", "target", "worker"];
|
|
12
|
+
export type RpcTarget = (typeof RPC_TARGETS)[number];
|
|
13
|
+
export declare const HANDLE_TARGETS: ReadonlySet<RpcTarget>;
|
|
14
|
+
export declare const PAGE_REF_TARGETS: ReadonlySet<RpcTarget>;
|
|
15
|
+
export declare const CONTEXT_REF_TARGETS: ReadonlySet<RpcTarget>;
|
|
16
|
+
export declare const SCREENSHOT_ARTIFACT_TARGETS: ReadonlySet<RpcTarget>;
|
|
17
|
+
export declare const PDF_ARTIFACT_TARGETS: ReadonlySet<RpcTarget>;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AUTO-GENERATED FILE - DO NOT EDIT
|
|
3
|
+
*
|
|
4
|
+
* Generated from: scripts/generate/rpc-targets-config.ts
|
|
5
|
+
* Run `pnpm generate:rpc-targets` to regenerate.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* All valid SDK RPC target types.
|
|
9
|
+
* Generated from driver handler configurations.
|
|
10
|
+
*/
|
|
11
|
+
export const RPC_TARGETS = [
|
|
12
|
+
'browser',
|
|
13
|
+
'browserUse',
|
|
14
|
+
'consoleMessage',
|
|
15
|
+
'context',
|
|
16
|
+
'cua',
|
|
17
|
+
'desktop',
|
|
18
|
+
'dialog',
|
|
19
|
+
'element',
|
|
20
|
+
'fileChooser',
|
|
21
|
+
'frame',
|
|
22
|
+
'httpRequest',
|
|
23
|
+
'httpResponse',
|
|
24
|
+
'jsHandle',
|
|
25
|
+
'locator',
|
|
26
|
+
'page',
|
|
27
|
+
'response',
|
|
28
|
+
'selenium',
|
|
29
|
+
'selenium-element',
|
|
30
|
+
'stagehand',
|
|
31
|
+
'target',
|
|
32
|
+
'worker',
|
|
33
|
+
];
|
|
34
|
+
export const HANDLE_TARGETS = new Set([
|
|
35
|
+
'consoleMessage',
|
|
36
|
+
'dialog',
|
|
37
|
+
'element',
|
|
38
|
+
'frame',
|
|
39
|
+
'jsHandle',
|
|
40
|
+
'worker',
|
|
41
|
+
]);
|
|
42
|
+
export const PAGE_REF_TARGETS = new Set([
|
|
43
|
+
'browserUse',
|
|
44
|
+
'locator',
|
|
45
|
+
'page',
|
|
46
|
+
'stagehand',
|
|
47
|
+
]);
|
|
48
|
+
export const CONTEXT_REF_TARGETS = new Set([
|
|
49
|
+
'context',
|
|
50
|
+
]);
|
|
51
|
+
export const SCREENSHOT_ARTIFACT_TARGETS = new Set([
|
|
52
|
+
'element',
|
|
53
|
+
'locator',
|
|
54
|
+
'page',
|
|
55
|
+
]);
|
|
56
|
+
export const PDF_ARTIFACT_TARGETS = new Set([
|
|
57
|
+
'page',
|
|
58
|
+
]);
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AUTO-GENERATED FILE - DO NOT EDIT
|
|
3
|
+
*
|
|
4
|
+
* Generated from: packages/automation-spec/src/drivers/puppeteer/methods/types.ts
|
|
5
|
+
* Run `pnpm generate:sdk-contracts` to regenerate.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Shared Types for Schema-Driven Code Generation
|
|
9
|
+
*
|
|
10
|
+
* Contains serialization schemas used across the Puppeteer SDK.
|
|
11
|
+
*/
|
|
12
|
+
import { z } from 'zod';
|
|
13
|
+
/**
|
|
14
|
+
* Schema for serialized handle reference (returned from RPC)
|
|
15
|
+
*/
|
|
16
|
+
export declare const SerializedHandleSchema: z.ZodObject<{
|
|
17
|
+
__bctrl_type: z.ZodLiteral<"Handle">;
|
|
18
|
+
id: z.ZodString;
|
|
19
|
+
handleType: z.ZodString;
|
|
20
|
+
}, z.core.$strip>;
|
|
21
|
+
export type SerializedHandle = z.infer<typeof SerializedHandleSchema>;
|
|
22
|
+
/**
|
|
23
|
+
* Schema for handle ID passed as argument (sent to RPC)
|
|
24
|
+
*/
|
|
25
|
+
export declare const HandleRefSchema: z.ZodObject<{
|
|
26
|
+
__bctrl_handle_id: z.ZodString;
|
|
27
|
+
}, z.core.$strip>;
|
|
28
|
+
export type HandleRef = z.infer<typeof HandleRefSchema>;
|
|
29
|
+
/**
|
|
30
|
+
* Type guard to check if a value is a SerializedHandle.
|
|
31
|
+
*/
|
|
32
|
+
export declare function isSerializedHandle(value: unknown): value is SerializedHandle;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AUTO-GENERATED FILE - DO NOT EDIT
|
|
3
|
+
*
|
|
4
|
+
* Generated from: packages/automation-spec/src/drivers/puppeteer/methods/types.ts
|
|
5
|
+
* Run `pnpm generate:sdk-contracts` to regenerate.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Shared Types for Schema-Driven Code Generation
|
|
9
|
+
*
|
|
10
|
+
* Contains serialization schemas used across the Puppeteer SDK.
|
|
11
|
+
*/
|
|
12
|
+
import { z } from 'zod';
|
|
13
|
+
// ============================================================================
|
|
14
|
+
// Handle Serialization Schemas
|
|
15
|
+
// ============================================================================
|
|
16
|
+
/**
|
|
17
|
+
* Schema for serialized handle reference (returned from RPC)
|
|
18
|
+
*/
|
|
19
|
+
export const SerializedHandleSchema = z.object({
|
|
20
|
+
__bctrl_type: z.literal('Handle'),
|
|
21
|
+
id: z.string(),
|
|
22
|
+
handleType: z.string(),
|
|
23
|
+
});
|
|
24
|
+
/**
|
|
25
|
+
* Schema for handle ID passed as argument (sent to RPC)
|
|
26
|
+
*/
|
|
27
|
+
export const HandleRefSchema = z.object({
|
|
28
|
+
__bctrl_handle_id: z.string(),
|
|
29
|
+
});
|
|
30
|
+
/**
|
|
31
|
+
* Type guard to check if a value is a SerializedHandle.
|
|
32
|
+
*/
|
|
33
|
+
export function isSerializedHandle(value) {
|
|
34
|
+
return (value !== null &&
|
|
35
|
+
typeof value === 'object' &&
|
|
36
|
+
'__bctrl_type' in value &&
|
|
37
|
+
value.__bctrl_type === 'Handle' &&
|
|
38
|
+
'id' in value &&
|
|
39
|
+
typeof value.id === 'string' &&
|
|
40
|
+
'handleType' in value &&
|
|
41
|
+
typeof value.handleType === 'string');
|
|
42
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal SDK transport and handle helpers.
|
|
3
|
+
*
|
|
4
|
+
* These are SDK implementation details used by sessions, namespaces, and
|
|
5
|
+
* generated driver classes. They intentionally live inside the SDK so the
|
|
6
|
+
* public package does not depend on shared schema helpers for its own runtime.
|
|
7
|
+
*/
|
|
8
|
+
import type { RpcTarget } from './rpc-targets.js';
|
|
9
|
+
export type { RpcTarget } from './rpc-targets.js';
|
|
10
|
+
export type SimpleRpcSender = <T = unknown>(method: string, args: unknown[]) => Promise<T>;
|
|
11
|
+
export type RpcSender = <T = unknown>(target: RpcTarget, method: string, args: unknown[], ids?: {
|
|
12
|
+
contextId?: string;
|
|
13
|
+
pageId?: string;
|
|
14
|
+
}) => Promise<T>;
|
|
15
|
+
export interface HasHandleId {
|
|
16
|
+
readonly handleId: string;
|
|
17
|
+
}
|
|
18
|
+
export declare function extractHandleId(value: string | HasHandleId | undefined | null): string | undefined;
|
|
19
|
+
export declare function toHandleRef<T>(value: T | HasHandleId): T | {
|
|
20
|
+
__bctrl_handle_id: string;
|
|
21
|
+
};
|
|
22
|
+
export declare function serializeFunctionSource(value: Function): string;
|
|
23
|
+
export declare function serializeFunctionSource(value: string): string;
|
|
24
|
+
export declare function serializeFunctionSource<T>(value: T): T;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal SDK transport and handle helpers.
|
|
3
|
+
*
|
|
4
|
+
* These are SDK implementation details used by sessions, namespaces, and
|
|
5
|
+
* generated driver classes. They intentionally live inside the SDK so the
|
|
6
|
+
* public package does not depend on shared schema helpers for its own runtime.
|
|
7
|
+
*/
|
|
8
|
+
function hasHandleId(value) {
|
|
9
|
+
return (value !== null &&
|
|
10
|
+
typeof value === 'object' &&
|
|
11
|
+
'handleId' in value &&
|
|
12
|
+
typeof value.handleId === 'string');
|
|
13
|
+
}
|
|
14
|
+
export function extractHandleId(value) {
|
|
15
|
+
if (!value)
|
|
16
|
+
return undefined;
|
|
17
|
+
if (typeof value === 'string')
|
|
18
|
+
return value;
|
|
19
|
+
return value.handleId;
|
|
20
|
+
}
|
|
21
|
+
export function toHandleRef(value) {
|
|
22
|
+
if (hasHandleId(value)) {
|
|
23
|
+
return { __bctrl_handle_id: value.handleId };
|
|
24
|
+
}
|
|
25
|
+
return value;
|
|
26
|
+
}
|
|
27
|
+
export function serializeFunctionSource(value) {
|
|
28
|
+
return typeof value === 'function' ? Function.prototype.toString.call(value) : value;
|
|
29
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './drivers/playwright/index.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './drivers/puppeteer/index.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './drivers/selenium/index.js';
|
package/dist/selenium.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './drivers/stagehand/index.js';
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { type StorageBrowseResponse, type StorageReadResponse } from '../contracts/storage.js';
|
|
2
|
+
export type StorageBrowseResult = StorageBrowseResponse;
|
|
3
|
+
export type StorageBrowseFile = StorageBrowseResult['files'][number];
|
|
4
|
+
export type StorageReadResult = StorageReadResponse;
|
|
5
|
+
export interface UploadResult {
|
|
6
|
+
success: boolean;
|
|
7
|
+
key: string;
|
|
8
|
+
filename: string;
|
|
9
|
+
}
|
|
10
|
+
export interface PresignedUrlResult {
|
|
11
|
+
url: string;
|
|
12
|
+
key?: string;
|
|
13
|
+
expiresIn: number;
|
|
14
|
+
}
|
|
15
|
+
export interface StorageObject {
|
|
16
|
+
id: string;
|
|
17
|
+
workspace: string;
|
|
18
|
+
runtimeId: string | null;
|
|
19
|
+
source: string;
|
|
20
|
+
driver: string | null;
|
|
21
|
+
target: string | null;
|
|
22
|
+
logicalPath: string;
|
|
23
|
+
filename: string;
|
|
24
|
+
contentType: string;
|
|
25
|
+
sizeBytes: number;
|
|
26
|
+
createdAt: string | null;
|
|
27
|
+
expiresAt: string | null;
|
|
28
|
+
metadata: Record<string, unknown> | null;
|
|
29
|
+
}
|
|
30
|
+
export interface ListObjectsOptions {
|
|
31
|
+
workspace?: string;
|
|
32
|
+
runtimeId?: string;
|
|
33
|
+
source?: string;
|
|
34
|
+
driver?: string;
|
|
35
|
+
target?: string;
|
|
36
|
+
pathPrefix?: string;
|
|
37
|
+
limit?: number;
|
|
38
|
+
offset?: number;
|
|
39
|
+
}
|
|
40
|
+
export interface ListObjectsResult {
|
|
41
|
+
objects: StorageObject[];
|
|
42
|
+
}
|
|
43
|
+
export interface UploadObjectOptions {
|
|
44
|
+
workspace?: string;
|
|
45
|
+
path?: string;
|
|
46
|
+
source?: string;
|
|
47
|
+
runtimeId?: string;
|
|
48
|
+
driver?: string;
|
|
49
|
+
target?: string;
|
|
50
|
+
filename?: string;
|
|
51
|
+
}
|
|
52
|
+
export interface UploadObjectResult {
|
|
53
|
+
id: string;
|
|
54
|
+
workspace: string;
|
|
55
|
+
logicalPath: string;
|
|
56
|
+
objectKey: string;
|
|
57
|
+
filename: string;
|
|
58
|
+
sizeBytes: number;
|
|
59
|
+
contentType: string;
|
|
60
|
+
expiresAt: string | null;
|
|
61
|
+
}
|
|
62
|
+
export interface StorageBrowseOptions {
|
|
63
|
+
prefix?: string;
|
|
64
|
+
cursor?: string;
|
|
65
|
+
limit?: number;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Client for interacting with workspace storage.
|
|
69
|
+
*/
|
|
70
|
+
export declare class StorageClient {
|
|
71
|
+
private readonly baseUrl;
|
|
72
|
+
private readonly workspace;
|
|
73
|
+
private readonly apiKey?;
|
|
74
|
+
private readonly sessionId?;
|
|
75
|
+
constructor(baseUrl: string, workspace: string, apiKey?: string | undefined, sessionId?: string | undefined);
|
|
76
|
+
/**
|
|
77
|
+
* Get headers for API requests.
|
|
78
|
+
*/
|
|
79
|
+
private getHeaders;
|
|
80
|
+
/**
|
|
81
|
+
* Clone this client for another workspace while preserving auth/session binding.
|
|
82
|
+
*/
|
|
83
|
+
forWorkspace(workspace: string): StorageClient;
|
|
84
|
+
/**
|
|
85
|
+
* Build URL for object-catalog endpoints.
|
|
86
|
+
*/
|
|
87
|
+
private buildObjectsUrl;
|
|
88
|
+
private resolveWorkspace;
|
|
89
|
+
private encodePath;
|
|
90
|
+
private buildWorkspaceUrl;
|
|
91
|
+
private toBlob;
|
|
92
|
+
/**
|
|
93
|
+
* Upload a file to workspace storage.
|
|
94
|
+
*
|
|
95
|
+
* @param filePath - Logical path in storage (e.g., "uploads/document.pdf")
|
|
96
|
+
* @param data - File data as Buffer, Uint8Array, or Blob
|
|
97
|
+
* @param filename - Optional filename (defaults to last part of filePath)
|
|
98
|
+
*/
|
|
99
|
+
upload(filePath: string, data: Buffer | Uint8Array | Blob, filename?: string): Promise<UploadResult>;
|
|
100
|
+
/**
|
|
101
|
+
* Upload a file and register it in the storage object catalog.
|
|
102
|
+
*
|
|
103
|
+
* @param data - File data as Buffer, Uint8Array, or Blob
|
|
104
|
+
* @param options - Metadata and upload options
|
|
105
|
+
*/
|
|
106
|
+
uploadObject(data: Buffer | Uint8Array | Blob, options?: UploadObjectOptions): Promise<UploadObjectResult>;
|
|
107
|
+
/**
|
|
108
|
+
* Get a file by logical path as raw bytes.
|
|
109
|
+
*/
|
|
110
|
+
get(filePath: string): Promise<Buffer>;
|
|
111
|
+
/**
|
|
112
|
+
* Get a presigned URL for direct download by logical path.
|
|
113
|
+
*/
|
|
114
|
+
getDownloadUrl(filePath: string): Promise<string>;
|
|
115
|
+
/**
|
|
116
|
+
* Browse files/folders by logical prefix (hierarchical listing with cursor pagination).
|
|
117
|
+
*/
|
|
118
|
+
browse(options?: StorageBrowseOptions): Promise<StorageBrowseResult>;
|
|
119
|
+
/**
|
|
120
|
+
* Read a UTF-8 text preview by logical path.
|
|
121
|
+
*/
|
|
122
|
+
read(filePath: string, maxBytes?: number): Promise<StorageReadResult>;
|
|
123
|
+
/**
|
|
124
|
+
* List object metadata from the storage catalog.
|
|
125
|
+
*/
|
|
126
|
+
listObjects(options?: ListObjectsOptions): Promise<StorageObject[]>;
|
|
127
|
+
/**
|
|
128
|
+
* Download an object by catalog ID.
|
|
129
|
+
*/
|
|
130
|
+
downloadObject(id: string): Promise<Buffer>;
|
|
131
|
+
/**
|
|
132
|
+
* Get a presigned URL for direct download by object ID.
|
|
133
|
+
*/
|
|
134
|
+
getObjectDownloadUrl(id: string): Promise<string>;
|
|
135
|
+
/**
|
|
136
|
+
* Get all downloads as a ZIP file.
|
|
137
|
+
*/
|
|
138
|
+
getDownloadsZip(): Promise<Buffer>;
|
|
139
|
+
/**
|
|
140
|
+
* Delete a file by logical path.
|
|
141
|
+
*/
|
|
142
|
+
delete(filePath: string): Promise<void>;
|
|
143
|
+
/**
|
|
144
|
+
* Delete an object by catalog ID.
|
|
145
|
+
*/
|
|
146
|
+
deleteObject(id: string): Promise<void>;
|
|
147
|
+
/**
|
|
148
|
+
* Delete all files for this workspace.
|
|
149
|
+
*/
|
|
150
|
+
deleteAll(): Promise<number>;
|
|
151
|
+
}
|