@opendatalabs/connect 0.7.0 → 0.8.1-canary.0014dd6
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 +204 -0
- package/dist/cli/bin.d.ts +3 -0
- package/dist/cli/bin.d.ts.map +1 -0
- package/dist/cli/bin.js +15 -0
- package/dist/cli/bin.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +1353 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/main.d.ts +2 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +10 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/render/capabilities.d.ts +9 -0
- package/dist/cli/render/capabilities.d.ts.map +1 -0
- package/dist/cli/render/capabilities.js +24 -0
- package/dist/cli/render/capabilities.js.map +1 -0
- package/dist/cli/render/format.d.ts +21 -0
- package/dist/cli/render/format.d.ts.map +1 -0
- package/dist/cli/render/format.js +61 -0
- package/dist/cli/render/format.js.map +1 -0
- package/dist/cli/render/index.d.ts +5 -0
- package/dist/cli/render/index.d.ts.map +1 -0
- package/dist/cli/render/index.js +5 -0
- package/dist/cli/render/index.js.map +1 -0
- package/dist/cli/render/symbols.d.ts +11 -0
- package/dist/cli/render/symbols.d.ts.map +1 -0
- package/dist/cli/render/symbols.js +21 -0
- package/dist/cli/render/symbols.js.map +1 -0
- package/dist/cli/render/theme.d.ts +15 -0
- package/dist/cli/render/theme.d.ts.map +1 -0
- package/dist/cli/render/theme.js +36 -0
- package/dist/cli/render/theme.js.map +1 -0
- package/dist/connectors/index.d.ts +2 -0
- package/dist/connectors/index.d.ts.map +1 -0
- package/dist/connectors/index.js +2 -0
- package/dist/connectors/index.js.map +1 -0
- package/dist/connectors/registry.d.ts +30 -0
- package/dist/connectors/registry.d.ts.map +1 -0
- package/dist/connectors/registry.js +166 -0
- package/dist/connectors/registry.js.map +1 -0
- package/dist/core/cli-types.d.ts +125 -0
- package/dist/core/cli-types.d.ts.map +1 -0
- package/dist/core/cli-types.js +66 -0
- package/dist/core/cli-types.js.map +1 -0
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +3 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/paths.d.ts +8 -0
- package/dist/core/paths.d.ts.map +1 -0
- package/dist/core/paths.js +25 -0
- package/dist/core/paths.js.map +1 -0
- package/dist/core/state-store.d.ts +17 -0
- package/dist/core/state-store.d.ts.map +1 -0
- package/dist/core/state-store.js +23 -0
- package/dist/core/state-store.js.map +1 -0
- package/dist/core/types.d.ts +4 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/personal-server/index.d.ts +8 -0
- package/dist/personal-server/index.d.ts.map +1 -0
- package/dist/personal-server/index.js +76 -0
- package/dist/personal-server/index.js.map +1 -0
- package/dist/react/useVanaData.d.ts +1 -1
- package/dist/react/useVanaData.d.ts.map +1 -1
- package/dist/react/useVanaData.js +22 -9
- package/dist/react/useVanaData.js.map +1 -1
- package/dist/runtime/core/contracts.d.ts +83 -0
- package/dist/runtime/core/contracts.d.ts.map +1 -0
- package/dist/runtime/core/contracts.js +2 -0
- package/dist/runtime/core/contracts.js.map +1 -0
- package/dist/runtime/core/index.d.ts +2 -0
- package/dist/runtime/core/index.d.ts.map +1 -0
- package/dist/runtime/core/index.js +2 -0
- package/dist/runtime/core/index.js.map +1 -0
- package/dist/runtime/index.d.ts +4 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +3 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/managed-playwright.d.ts +33 -0
- package/dist/runtime/managed-playwright.d.ts.map +1 -0
- package/dist/runtime/managed-playwright.js +113 -0
- package/dist/runtime/managed-playwright.js.map +1 -0
- package/dist/runtime/playwright/browser.d.ts +11 -0
- package/dist/runtime/playwright/browser.d.ts.map +1 -0
- package/dist/runtime/playwright/browser.js +208 -0
- package/dist/runtime/playwright/browser.js.map +1 -0
- package/dist/runtime/playwright/in-process-run.d.ts +6 -0
- package/dist/runtime/playwright/in-process-run.d.ts.map +1 -0
- package/dist/runtime/playwright/in-process-run.js +550 -0
- package/dist/runtime/playwright/in-process-run.js.map +1 -0
- package/dist/runtime/playwright/index.d.ts +3 -0
- package/dist/runtime/playwright/index.d.ts.map +1 -0
- package/dist/runtime/playwright/index.js +3 -0
- package/dist/runtime/playwright/index.js.map +1 -0
- package/dist/runtime/repo-paths.d.ts +2 -0
- package/dist/runtime/repo-paths.d.ts.map +1 -0
- package/dist/runtime/repo-paths.js +36 -0
- package/dist/runtime/repo-paths.js.map +1 -0
- package/dist/server/config.d.ts +2 -0
- package/dist/server/config.d.ts.map +1 -1
- package/dist/server/config.js +1 -0
- package/dist/server/config.js.map +1 -1
- package/dist/server/connect.d.ts.map +1 -1
- package/dist/server/connect.js +7 -0
- package/dist/server/connect.js.map +1 -1
- package/package.json +43 -4
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
export interface RuntimeNeedInputEvent {
|
|
2
|
+
type: "needs-input";
|
|
3
|
+
source: string;
|
|
4
|
+
message: string;
|
|
5
|
+
fields: string[];
|
|
6
|
+
logPath: string;
|
|
7
|
+
schema?: {
|
|
8
|
+
properties?: Record<string, unknown>;
|
|
9
|
+
};
|
|
10
|
+
responseInputPath?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface RuntimeRunStartedEvent {
|
|
13
|
+
type: "run-started";
|
|
14
|
+
source: string;
|
|
15
|
+
logPath: string;
|
|
16
|
+
}
|
|
17
|
+
export interface RuntimeLegacyAuthEvent {
|
|
18
|
+
type: "legacy-auth";
|
|
19
|
+
source: string;
|
|
20
|
+
message: string;
|
|
21
|
+
logPath: string;
|
|
22
|
+
}
|
|
23
|
+
export interface RuntimeHeadedRequiredEvent {
|
|
24
|
+
type: "headed-required";
|
|
25
|
+
source: string;
|
|
26
|
+
message: string;
|
|
27
|
+
logPath: string;
|
|
28
|
+
url?: string;
|
|
29
|
+
}
|
|
30
|
+
export interface RuntimeCollectionCompleteEvent {
|
|
31
|
+
type: "collection-complete";
|
|
32
|
+
source: string;
|
|
33
|
+
resultPath: string;
|
|
34
|
+
logPath: string;
|
|
35
|
+
}
|
|
36
|
+
export interface RuntimeProgressEvent {
|
|
37
|
+
type: "progress-update";
|
|
38
|
+
source: string;
|
|
39
|
+
logPath: string;
|
|
40
|
+
message?: string;
|
|
41
|
+
count?: number;
|
|
42
|
+
phase?: unknown;
|
|
43
|
+
}
|
|
44
|
+
export interface RuntimeStatusEvent {
|
|
45
|
+
type: "status-update";
|
|
46
|
+
source: string;
|
|
47
|
+
logPath: string;
|
|
48
|
+
message: string;
|
|
49
|
+
}
|
|
50
|
+
export interface RuntimeErrorEvent {
|
|
51
|
+
type: "runtime-error";
|
|
52
|
+
source: string;
|
|
53
|
+
message: string;
|
|
54
|
+
logPath: string;
|
|
55
|
+
}
|
|
56
|
+
export type RuntimeEvent = RuntimeRunStartedEvent | RuntimeNeedInputEvent | RuntimeHeadedRequiredEvent | RuntimeLegacyAuthEvent | RuntimeCollectionCompleteEvent | RuntimeProgressEvent | RuntimeStatusEvent | RuntimeErrorEvent;
|
|
57
|
+
export interface RuntimeInputRequest {
|
|
58
|
+
message?: string;
|
|
59
|
+
schema?: {
|
|
60
|
+
properties?: Record<string, unknown>;
|
|
61
|
+
};
|
|
62
|
+
fields: string[];
|
|
63
|
+
responseInputPath: string;
|
|
64
|
+
}
|
|
65
|
+
export interface ConnectorRunRequest {
|
|
66
|
+
connectorPath: string;
|
|
67
|
+
source: string;
|
|
68
|
+
noInput?: boolean;
|
|
69
|
+
signal?: AbortSignal;
|
|
70
|
+
onNeedInput?: (event: RuntimeInputRequest) => Promise<Record<string, string>>;
|
|
71
|
+
}
|
|
72
|
+
export interface ConnectorRunHandle {
|
|
73
|
+
readonly source: string;
|
|
74
|
+
readonly logPath: string;
|
|
75
|
+
events(): AsyncGenerator<RuntimeEvent, void, void>;
|
|
76
|
+
stop(reason?: string): void;
|
|
77
|
+
}
|
|
78
|
+
export interface RuntimeCapabilities {
|
|
79
|
+
supportsHeaded: boolean;
|
|
80
|
+
supportsManagedProfiles: boolean;
|
|
81
|
+
supportsScreenshots: boolean;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../src/runtime/core/contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../src/runtime/core/contracts.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/core/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export type { ConnectorRunHandle, ConnectorRunRequest, RuntimeCapabilities, RuntimeEvent, RuntimeInputRequest, RuntimeNeedInputEvent, } from "./core/index.js";
|
|
2
|
+
export { ManagedPlaywrightRuntime, type NeedInputEvent, type RunConnectorOptions, type RuntimeInstallResult, } from "./managed-playwright.js";
|
|
3
|
+
export { findDataConnectorsDir } from "./repo-paths.js";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,wBAAwB,EACxB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,wBAAwB,GAIzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { CliEvent, RuntimeState } from "../core/cli-types.js";
|
|
2
|
+
export interface RuntimeInstallResult {
|
|
3
|
+
runtime: RuntimeState;
|
|
4
|
+
runtimePath: string | null;
|
|
5
|
+
logPath?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface RunConnectorOptions {
|
|
8
|
+
connectorPath: string;
|
|
9
|
+
source: string;
|
|
10
|
+
pretty?: boolean;
|
|
11
|
+
noInput?: boolean;
|
|
12
|
+
signal?: AbortSignal;
|
|
13
|
+
onNeedInput?: (event: NeedInputEvent) => Promise<Record<string, string>>;
|
|
14
|
+
}
|
|
15
|
+
export interface NeedInputEvent {
|
|
16
|
+
message?: string;
|
|
17
|
+
schema?: {
|
|
18
|
+
properties?: Record<string, unknown>;
|
|
19
|
+
};
|
|
20
|
+
fields: string[];
|
|
21
|
+
responseInputPath: string;
|
|
22
|
+
}
|
|
23
|
+
export declare class ManagedPlaywrightRuntime {
|
|
24
|
+
get runtimePath(): string | null;
|
|
25
|
+
get state(): RuntimeState;
|
|
26
|
+
ensureInstalled(_autoApprove: boolean): Promise<RuntimeInstallResult>;
|
|
27
|
+
fetchConnector(source: string): Promise<{
|
|
28
|
+
connectorPath: string;
|
|
29
|
+
logPath: string;
|
|
30
|
+
}>;
|
|
31
|
+
runConnector(options: RunConnectorOptions): AsyncGenerator<CliEvent, void, void>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=managed-playwright.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-playwright.d.ts","sourceRoot":"","sources":["../../src/runtime/managed-playwright.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAWnE,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,YAAY,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC1E;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE;QACP,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACtC,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,wBAAwB;IACnC,IAAI,WAAW,IAAI,MAAM,GAAG,IAAI,CAE/B;IAED,IAAI,KAAK,IAAI,YAAY,CAExB;IAEK,eAAe,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAuBrE,cAAc,CAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAmC/C,YAAY,CACjB,OAAO,EAAE,mBAAmB,GAC3B,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC;CAYxC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import fsp from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { createRequire } from "node:module";
|
|
4
|
+
import { ensureParentDir, getBrowserProfilesDir, getConnectorCacheDir, getDataConnectHome, getLogsDir, getTimestampedLogPath, } from "../core/index.js";
|
|
5
|
+
import { fetchConnectorToCache } from "../connectors/registry.js";
|
|
6
|
+
import { getBrowserCacheDir, resolveBrowserPath, startInProcessConnectorRun, } from "./playwright/index.js";
|
|
7
|
+
import { findDataConnectorsDir } from "./repo-paths.js";
|
|
8
|
+
const require = createRequire(import.meta.url);
|
|
9
|
+
export class ManagedPlaywrightRuntime {
|
|
10
|
+
get runtimePath() {
|
|
11
|
+
return getResolvedRuntimePath();
|
|
12
|
+
}
|
|
13
|
+
get state() {
|
|
14
|
+
return this.runtimePath ? "installed" : "missing";
|
|
15
|
+
}
|
|
16
|
+
async ensureInstalled(_autoApprove) {
|
|
17
|
+
const runtime = this.state;
|
|
18
|
+
if (runtime === "installed") {
|
|
19
|
+
return { runtime, runtimePath: this.runtimePath };
|
|
20
|
+
}
|
|
21
|
+
const logPath = getTimestampedLogPath("setup");
|
|
22
|
+
await ensureParentDir(logPath);
|
|
23
|
+
const homeDir = getDataConnectHome();
|
|
24
|
+
await fsp.mkdir(homeDir, { recursive: true });
|
|
25
|
+
await fsp.mkdir(getConnectorCacheDir(), { recursive: true });
|
|
26
|
+
await fsp.mkdir(getBrowserProfilesDir(), { recursive: true });
|
|
27
|
+
await fsp.mkdir(getBrowserCacheDir(), { recursive: true });
|
|
28
|
+
await installChromium(logPath);
|
|
29
|
+
return {
|
|
30
|
+
runtime: this.state,
|
|
31
|
+
runtimePath: this.runtimePath,
|
|
32
|
+
logPath,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
async fetchConnector(source) {
|
|
36
|
+
const dataConnectorsDir = findDataConnectorsDir();
|
|
37
|
+
const logPath = getTimestampedLogPath(`fetch-${source}`);
|
|
38
|
+
await ensureParentDir(logPath);
|
|
39
|
+
try {
|
|
40
|
+
const resolution = await fetchConnectorToCache(source, getConnectorCacheDir(), dataConnectorsDir ?? undefined);
|
|
41
|
+
await fsp.writeFile(logPath, `${JSON.stringify({
|
|
42
|
+
type: "connector-resolved",
|
|
43
|
+
source: resolution.source,
|
|
44
|
+
connectorPath: resolution.connectorPath,
|
|
45
|
+
}, null, 2)}\n`, "utf8");
|
|
46
|
+
return { connectorPath: resolution.connectorPath, logPath };
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
await fsp.writeFile(logPath, `${error instanceof Error ? (error.stack ?? error.message) : String(error)}\n`, "utf8");
|
|
50
|
+
throw error;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async *runConnector(options) {
|
|
54
|
+
await fsp.mkdir(getLogsDir(), { recursive: true });
|
|
55
|
+
const logPath = getTimestampedLogPath(`run-${options.source}`);
|
|
56
|
+
const handle = startInProcessConnectorRun({
|
|
57
|
+
request: options,
|
|
58
|
+
logPath,
|
|
59
|
+
});
|
|
60
|
+
for await (const event of handle.events()) {
|
|
61
|
+
yield event;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
async function installChromium(logPath) {
|
|
66
|
+
const browserCacheDir = getBrowserCacheDir();
|
|
67
|
+
const previousBrowserPath = process.env.PLAYWRIGHT_BROWSERS_PATH;
|
|
68
|
+
const previousSkipGc = process.env.PLAYWRIGHT_SKIP_BROWSER_GC;
|
|
69
|
+
try {
|
|
70
|
+
process.env.PLAYWRIGHT_BROWSERS_PATH = browserCacheDir;
|
|
71
|
+
process.env.PLAYWRIGHT_SKIP_BROWSER_GC = "1";
|
|
72
|
+
const { registry } = require(require.resolve("playwright-core/lib/server/registry/index", {
|
|
73
|
+
paths: [path.dirname(require.resolve("playwright/package.json"))],
|
|
74
|
+
}));
|
|
75
|
+
const executables = [];
|
|
76
|
+
if (process.platform === "win32") {
|
|
77
|
+
executables.push(registry.findExecutable("winldd"));
|
|
78
|
+
}
|
|
79
|
+
executables.push(registry.findExecutable("chromium"));
|
|
80
|
+
await ensureParentDir(logPath);
|
|
81
|
+
await fsp.writeFile(logPath, `Installing Chromium into ${browserCacheDir}\n`, "utf8");
|
|
82
|
+
await registry.install(executables);
|
|
83
|
+
await fsp.appendFile(logPath, "Chromium installation complete.\n", "utf8");
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
await ensureParentDir(logPath);
|
|
87
|
+
await fsp.appendFile(logPath, `${error instanceof Error ? (error.stack ?? error.message) : String(error)}\n`, "utf8");
|
|
88
|
+
throw error;
|
|
89
|
+
}
|
|
90
|
+
finally {
|
|
91
|
+
if (previousBrowserPath === undefined) {
|
|
92
|
+
delete process.env.PLAYWRIGHT_BROWSERS_PATH;
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
process.env.PLAYWRIGHT_BROWSERS_PATH = previousBrowserPath;
|
|
96
|
+
}
|
|
97
|
+
if (previousSkipGc === undefined) {
|
|
98
|
+
delete process.env.PLAYWRIGHT_SKIP_BROWSER_GC;
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
process.env.PLAYWRIGHT_SKIP_BROWSER_GC = previousSkipGc;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
function getResolvedRuntimePath() {
|
|
106
|
+
try {
|
|
107
|
+
return resolveBrowserPath();
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=managed-playwright.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-playwright.js","sourceRoot":"","sources":["../../src/runtime/managed-playwright.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type BrowserContext } from "playwright";
|
|
2
|
+
export declare function getBrowserCacheDir(): string;
|
|
3
|
+
export declare function getSystemChromePath(): string | null;
|
|
4
|
+
export declare function getDownloadedChromiumPath(): string | null;
|
|
5
|
+
export declare function isSystemChrome(browserPath: string | null): boolean;
|
|
6
|
+
export declare function getChromeProfileDir(chromeRoot: string): string | null;
|
|
7
|
+
export declare function importChromeCookies(userDataDir: string, browserPath: string | null): void;
|
|
8
|
+
export declare function resolveBrowserPath(): string;
|
|
9
|
+
export declare function launchPersistentContext(userDataDir: string, headless: boolean, browserPath: string | null): Promise<BrowserContext>;
|
|
10
|
+
export declare function getDefaultUserDataDir(slug: string): string;
|
|
11
|
+
//# sourceMappingURL=browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../src/runtime/playwright/browser.ts"],"names":[],"mappings":"AAKA,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAyC3D,wBAAgB,kBAAkB,IAAI,MAAM,CAe3C;AAED,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAuBnD;AAED,wBAAgB,yBAAyB,IAAI,MAAM,GAAG,IAAI,CAqEzD;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAelE;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAuBrE;AAED,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAAG,IAAI,GACzB,IAAI,CA+CN;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAkB3C;AAED,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,OAAO,EACjB,WAAW,EAAE,MAAM,GAAG,IAAI,GACzB,OAAO,CAAC,cAAc,CAAC,CAwBzB;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1D"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import os from "node:os";
|
|
4
|
+
import { execSync } from "node:child_process";
|
|
5
|
+
import { chromium } from "playwright";
|
|
6
|
+
const CHROME_PATHS = {
|
|
7
|
+
darwin: "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome",
|
|
8
|
+
win32: "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
|
|
9
|
+
linux: "/usr/bin/google-chrome",
|
|
10
|
+
aix: undefined,
|
|
11
|
+
android: undefined,
|
|
12
|
+
freebsd: undefined,
|
|
13
|
+
haiku: undefined,
|
|
14
|
+
openbsd: undefined,
|
|
15
|
+
cygwin: undefined,
|
|
16
|
+
netbsd: undefined,
|
|
17
|
+
sunos: undefined,
|
|
18
|
+
};
|
|
19
|
+
const CHROME_PROFILE_DIRS = {
|
|
20
|
+
darwin: path.join(process.env.HOME || "", "Library", "Application Support", "Google", "Chrome"),
|
|
21
|
+
win32: path.join(process.env.LOCALAPPDATA || "", "Google", "Chrome", "User Data"),
|
|
22
|
+
linux: path.join(process.env.HOME || "", ".config", "google-chrome"),
|
|
23
|
+
aix: undefined,
|
|
24
|
+
android: undefined,
|
|
25
|
+
freebsd: undefined,
|
|
26
|
+
haiku: undefined,
|
|
27
|
+
openbsd: undefined,
|
|
28
|
+
cygwin: undefined,
|
|
29
|
+
netbsd: undefined,
|
|
30
|
+
sunos: undefined,
|
|
31
|
+
};
|
|
32
|
+
export function getBrowserCacheDir() {
|
|
33
|
+
if (process.env.PLAYWRIGHT_BROWSERS_PATH) {
|
|
34
|
+
return process.env.PLAYWRIGHT_BROWSERS_PATH;
|
|
35
|
+
}
|
|
36
|
+
const home = process.env.HOME || process.env.USERPROFILE || "";
|
|
37
|
+
const candidates = [path.join(home, ".dataconnect", "browsers")];
|
|
38
|
+
for (const dir of candidates) {
|
|
39
|
+
if (fs.existsSync(dir)) {
|
|
40
|
+
return dir;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return candidates[0];
|
|
44
|
+
}
|
|
45
|
+
export function getSystemChromePath() {
|
|
46
|
+
const chromePath = CHROME_PATHS[process.platform];
|
|
47
|
+
if (chromePath && fs.existsSync(chromePath)) {
|
|
48
|
+
return chromePath;
|
|
49
|
+
}
|
|
50
|
+
if (process.platform === "win32") {
|
|
51
|
+
const altPaths = [
|
|
52
|
+
"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe",
|
|
53
|
+
path.join(process.env.LOCALAPPDATA || "", "Google\\Chrome\\Application\\chrome.exe"),
|
|
54
|
+
"C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe",
|
|
55
|
+
];
|
|
56
|
+
for (const candidate of altPaths) {
|
|
57
|
+
if (fs.existsSync(candidate)) {
|
|
58
|
+
return candidate;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
export function getDownloadedChromiumPath() {
|
|
65
|
+
const cacheDir = getBrowserCacheDir();
|
|
66
|
+
if (!fs.existsSync(cacheDir)) {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
const chromiumDir = fs
|
|
70
|
+
.readdirSync(cacheDir)
|
|
71
|
+
.find((entry) => entry.startsWith("chromium-") && !entry.includes("headless"));
|
|
72
|
+
if (!chromiumDir) {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
const chromiumPath = path.join(cacheDir, chromiumDir);
|
|
76
|
+
const candidates = process.platform === "darwin"
|
|
77
|
+
? [
|
|
78
|
+
path.join(chromiumPath, "chrome-mac-arm64", "Google Chrome for Testing.app", "Contents", "MacOS", "Google Chrome for Testing"),
|
|
79
|
+
path.join(chromiumPath, "chrome-mac", "Google Chrome for Testing.app", "Contents", "MacOS", "Google Chrome for Testing"),
|
|
80
|
+
path.join(chromiumPath, "chrome-mac-arm64", "Chromium.app", "Contents", "MacOS", "Chromium"),
|
|
81
|
+
path.join(chromiumPath, "chrome-mac", "Chromium.app", "Contents", "MacOS", "Chromium"),
|
|
82
|
+
]
|
|
83
|
+
: process.platform === "win32"
|
|
84
|
+
? [
|
|
85
|
+
path.join(chromiumPath, "chrome-win", "chrome.exe"),
|
|
86
|
+
path.join(chromiumPath, "chrome-win64", "chrome.exe"),
|
|
87
|
+
]
|
|
88
|
+
: [
|
|
89
|
+
path.join(chromiumPath, "chrome-linux", "chrome"),
|
|
90
|
+
path.join(chromiumPath, "chrome-linux64", "chrome"),
|
|
91
|
+
];
|
|
92
|
+
for (const candidate of candidates) {
|
|
93
|
+
if (fs.existsSync(candidate)) {
|
|
94
|
+
return candidate;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
export function isSystemChrome(browserPath) {
|
|
100
|
+
if (!browserPath) {
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
const lower = browserPath.toLowerCase();
|
|
104
|
+
if (lower.includes(".databridge") ||
|
|
105
|
+
lower.includes("chromium") ||
|
|
106
|
+
lower.includes("chrome for testing")) {
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
export function getChromeProfileDir(chromeRoot) {
|
|
112
|
+
const localStatePath = path.join(chromeRoot, "Local State");
|
|
113
|
+
if (fs.existsSync(localStatePath)) {
|
|
114
|
+
try {
|
|
115
|
+
const localState = JSON.parse(fs.readFileSync(localStatePath, "utf8"));
|
|
116
|
+
const lastUsed = localState.profile?.last_used;
|
|
117
|
+
if (lastUsed) {
|
|
118
|
+
const profileDir = path.join(chromeRoot, lastUsed);
|
|
119
|
+
if (fs.existsSync(profileDir)) {
|
|
120
|
+
return profileDir;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
// Ignore malformed local state and fall back to Default.
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
const defaultDir = path.join(chromeRoot, "Default");
|
|
129
|
+
return fs.existsSync(defaultDir) ? defaultDir : null;
|
|
130
|
+
}
|
|
131
|
+
export function importChromeCookies(userDataDir, browserPath) {
|
|
132
|
+
if (!isSystemChrome(browserPath)) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
const markerFile = path.join(userDataDir, ".cookies-imported");
|
|
136
|
+
if (fs.existsSync(markerFile)) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
const chromeRoot = CHROME_PROFILE_DIRS[process.platform];
|
|
140
|
+
if (!chromeRoot || !fs.existsSync(chromeRoot)) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
const sourceProfileDir = getChromeProfileDir(chromeRoot);
|
|
144
|
+
if (!sourceProfileDir) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
const sourceCookies = path.join(sourceProfileDir, "Cookies");
|
|
148
|
+
if (!fs.existsSync(sourceCookies)) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
const targetCookies = path.join(userDataDir, "Default", "Cookies");
|
|
152
|
+
if (!fs.existsSync(targetCookies)) {
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
const sourceDb = sourceCookies.replace(/'/g, "'\\''");
|
|
156
|
+
const targetDb = targetCookies.replace(/'/g, "'\\''");
|
|
157
|
+
const sql = `
|
|
158
|
+
ATTACH DATABASE '${sourceDb}' AS src;
|
|
159
|
+
INSERT OR REPLACE INTO main.cookies
|
|
160
|
+
SELECT * FROM src.cookies;
|
|
161
|
+
DETACH DATABASE src;
|
|
162
|
+
`;
|
|
163
|
+
try {
|
|
164
|
+
execSync(`sqlite3 '${targetDb}' "${sql.replace(/\n/g, " ")}"`, {
|
|
165
|
+
stdio: "ignore",
|
|
166
|
+
});
|
|
167
|
+
fs.writeFileSync(markerFile, `${new Date().toISOString()}\n`, "utf8");
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
// Cookie import is opportunistic; continue if sqlite3 is unavailable.
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
export function resolveBrowserPath() {
|
|
174
|
+
let browserPath = null;
|
|
175
|
+
if (!process.env.DATACONNECT_SIMULATE_NO_CHROME) {
|
|
176
|
+
browserPath = getSystemChromePath();
|
|
177
|
+
}
|
|
178
|
+
if (!browserPath) {
|
|
179
|
+
browserPath = getDownloadedChromiumPath();
|
|
180
|
+
}
|
|
181
|
+
if (!browserPath) {
|
|
182
|
+
throw new Error("No browser available. Run `vana setup` to install Chromium before connecting a source.");
|
|
183
|
+
}
|
|
184
|
+
return browserPath;
|
|
185
|
+
}
|
|
186
|
+
export async function launchPersistentContext(userDataDir, headless, browserPath) {
|
|
187
|
+
fs.mkdirSync(userDataDir, { recursive: true });
|
|
188
|
+
const launchOptions = {
|
|
189
|
+
headless,
|
|
190
|
+
args: [
|
|
191
|
+
"--disable-blink-features=AutomationControlled",
|
|
192
|
+
"--disable-features=MediaRouter,DialMediaRouteProvider",
|
|
193
|
+
],
|
|
194
|
+
viewport: { width: 1280, height: 800 },
|
|
195
|
+
userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
|
|
196
|
+
};
|
|
197
|
+
if (browserPath) {
|
|
198
|
+
launchOptions.executablePath = browserPath;
|
|
199
|
+
}
|
|
200
|
+
if (isSystemChrome(browserPath)) {
|
|
201
|
+
launchOptions.ignoreDefaultArgs = ["--use-mock-keychain"];
|
|
202
|
+
}
|
|
203
|
+
return chromium.launchPersistentContext(userDataDir, launchOptions);
|
|
204
|
+
}
|
|
205
|
+
export function getDefaultUserDataDir(slug) {
|
|
206
|
+
return path.join(os.homedir(), ".dataconnect", "browser-profiles", slug);
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../src/runtime/playwright/browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ConnectorRunHandle, ConnectorRunRequest } from "../core/index.js";
|
|
2
|
+
export declare function startInProcessConnectorRun({ request, logPath, }: {
|
|
3
|
+
request: ConnectorRunRequest;
|
|
4
|
+
logPath: string;
|
|
5
|
+
}): ConnectorRunHandle;
|
|
6
|
+
//# sourceMappingURL=in-process-run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-process-run.d.ts","sourceRoot":"","sources":["../../../src/runtime/playwright/in-process-run.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EAGpB,MAAM,kBAAkB,CAAC;AAgN1B,wBAAgB,0BAA0B,CAAC,EACzC,OAAO,EACP,OAAO,GACR,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,kBAAkB,CAwLrB"}
|