vana-cli 0.24.5 → 0.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/cli/auth.d.ts +2 -0
- package/dist/cli/auth.d.ts.map +1 -1
- package/dist/cli/auth.js +2 -1
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +128 -13
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/server-start.d.ts +42 -0
- package/dist/cli/server-start.d.ts.map +1 -0
- package/dist/cli/server-start.js +189 -0
- package/dist/cli/server-start.js.map +1 -0
- package/dist/connectors/registry.d.ts +2 -0
- package/dist/connectors/registry.d.ts.map +1 -1
- package/dist/connectors/registry.js +18 -2
- package/dist/connectors/registry.js.map +1 -1
- package/dist/core/cli-types.d.ts +44 -0
- package/dist/core/cli-types.d.ts.map +1 -1
- package/dist/core/cli-types.js +14 -0
- package/dist/core/cli-types.js.map +1 -1
- package/dist/core/state-store.d.ts +6 -0
- package/dist/core/state-store.d.ts.map +1 -1
- package/dist/core/state-store.js.map +1 -1
- package/dist/pdpp/host.d.ts +66 -0
- package/dist/pdpp/host.d.ts.map +1 -0
- package/dist/pdpp/host.js +283 -0
- package/dist/pdpp/host.js.map +1 -0
- package/dist/pdpp/installer.d.ts +17 -0
- package/dist/pdpp/installer.d.ts.map +1 -0
- package/dist/pdpp/installer.js +117 -0
- package/dist/pdpp/installer.js.map +1 -0
- package/dist/pdpp/local.d.ts +14 -0
- package/dist/pdpp/local.d.ts.map +1 -0
- package/dist/pdpp/local.js +76 -0
- package/dist/pdpp/local.js.map +1 -0
- package/dist/pdpp/pins.d.ts +23 -0
- package/dist/pdpp/pins.d.ts.map +1 -0
- package/dist/pdpp/pins.js +18 -0
- package/dist/pdpp/pins.js.map +1 -0
- package/dist/pdpp/profile.d.ts +49 -0
- package/dist/pdpp/profile.d.ts.map +1 -0
- package/dist/pdpp/profile.js +17 -0
- package/dist/pdpp/profile.js.map +1 -0
- package/dist/pdpp/protocol.d.ts +79 -0
- package/dist/pdpp/protocol.d.ts.map +1 -0
- package/dist/pdpp/protocol.js +372 -0
- package/dist/pdpp/protocol.js.map +1 -0
- package/dist/pdpp/runtime.d.ts +43 -0
- package/dist/pdpp/runtime.d.ts.map +1 -0
- package/dist/pdpp/runtime.js +387 -0
- package/dist/pdpp/runtime.js.map +1 -0
- package/dist/pdpp/store.d.ts +43 -0
- package/dist/pdpp/store.d.ts.map +1 -0
- package/dist/pdpp/store.js +100 -0
- package/dist/pdpp/store.js.map +1 -0
- package/dist/personal-server/index.d.ts +1 -0
- package/dist/personal-server/index.d.ts.map +1 -1
- package/dist/personal-server/index.js +17 -2
- package/dist/personal-server/index.js.map +1 -1
- package/dist/personal-server/local/config.d.ts +23 -0
- package/dist/personal-server/local/config.d.ts.map +1 -0
- package/dist/personal-server/local/config.js +51 -0
- package/dist/personal-server/local/config.js.map +1 -0
- package/dist/personal-server/local/owner-binding.d.ts +33 -0
- package/dist/personal-server/local/owner-binding.d.ts.map +1 -0
- package/dist/personal-server/local/owner-binding.js +155 -0
- package/dist/personal-server/local/owner-binding.js.map +1 -0
- package/dist/personal-server/local/owner-secret.d.ts +17 -0
- package/dist/personal-server/local/owner-secret.d.ts.map +1 -0
- package/dist/personal-server/local/owner-secret.js +119 -0
- package/dist/personal-server/local/owner-secret.js.map +1 -0
- package/dist/personal-server/local/runtime-pkg/entry.mjs +153 -0
- package/dist/personal-server/local/runtime-pkg/package-lock.json +2342 -0
- package/dist/personal-server/local/runtime-pkg/package.json +13 -0
- package/dist/personal-server/local/runtime.d.ts +9 -0
- package/dist/personal-server/local/runtime.d.ts.map +1 -0
- package/dist/personal-server/local/runtime.js +66 -0
- package/dist/personal-server/local/runtime.js.map +1 -0
- package/dist/personal-server/local/server.d.ts +39 -0
- package/dist/personal-server/local/server.d.ts.map +1 -0
- package/dist/personal-server/local/server.js +203 -0
- package/dist/personal-server/local/server.js.map +1 -0
- package/dist/runtime/core/contracts.d.ts +2 -0
- package/dist/runtime/core/contracts.d.ts.map +1 -1
- package/dist/runtime/managed-playwright.d.ts +7 -0
- package/dist/runtime/managed-playwright.d.ts.map +1 -1
- package/dist/runtime/managed-playwright.js +7 -0
- package/dist/runtime/managed-playwright.js.map +1 -1
- package/dist/vendor/pdpp-connector-manager/LICENSE +202 -0
- package/dist/vendor/pdpp-connector-manager/NOTICE +2 -0
- package/dist/vendor/pdpp-connector-manager/VENDOR.md +27 -0
- package/dist/vendor/pdpp-connector-manager/catalog-schema-data.mjs +168 -0
- package/dist/vendor/pdpp-connector-manager/catalog-schema.mjs +62 -0
- package/dist/vendor/pdpp-connector-manager/index.d.mts +49 -0
- package/dist/vendor/pdpp-connector-manager/index.mjs +1646 -0
- package/dist/vendor/pdpp-connector-manager/oci-catalog.mjs +93 -0
- package/dist/vendor/pdpp-connector-manager/oci-registry.mjs +1002 -0
- package/dist/vendor/pdpp-connector-manager/oci-verify.mjs +515 -0
- package/dist/vendor/pdpp-connector-manager/package.json +51 -0
- package/dist/vendor/pdpp-connector-manager/retry.mjs +142 -0
- package/dist/vendor/pdpp-connector-manager/tar-stream.mjs +685 -0
- package/package.json +7 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-store.d.ts","sourceRoot":"","sources":["../../src/core/state-store.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,iBAAiB;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,gBAAgB,CAAC,EAAE,SAAS,GAAG,cAAc,GAAG,OAAO,GAAG,OAAO,CAAC;IAClE,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,YAAY,CAAC,EAAE,KAAK,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,SAAS;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAC5C;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,CAO1D;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,SAAS,CAAC,CAGxD;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,GACxB,OAAO,CAAC,IAAI,CAAC,CAYf;AAED,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErE;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EACD;IACE,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC1C,GACD,SAAS,GACZ,IAAI,CAEN"}
|
|
1
|
+
{"version":3,"file":"state-store.d.ts","sourceRoot":"","sources":["../../src/core/state-store.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,iBAAiB;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,gBAAgB,CAAC,EAAE,SAAS,GAAG,cAAc,GAAG,OAAO,GAAG,OAAO,CAAC;IAClE,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,YAAY,CAAC,EAAE,KAAK,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,6EAA6E;IAC7E,cAAc,CAAC,EAAE,KAAK,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,SAAS;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAC5C;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,CAO1D;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,SAAS,CAAC,CAGxD;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,GACxB,OAAO,CAAC,IAAI,CAAC,CAYf;AAED,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErE;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EACD;IACE,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC1C,GACD,SAAS,GACZ,IAAI,CAEN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-store.js","sourceRoot":"","sources":["../../src/core/state-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,qBAAqB,GAAG,KAAK,CAAC;AACpC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEnC,IAAI,SAKS,CAAC;
|
|
1
|
+
{"version":3,"file":"state-store.js","sourceRoot":"","sources":["../../src/core/state-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/** Everything the CLI keeps for Collection Profile connectors. */
|
|
2
|
+
export declare function getPdppHome(): string;
|
|
3
|
+
/**
|
|
4
|
+
* The Node release installed when no compatible one is found. It matches the
|
|
5
|
+
* runtime Vana Desktop bundles, and the checksums are the official
|
|
6
|
+
* SHASUMS256.txt values, so a download is checked against a hash that
|
|
7
|
+
* shipped with the CLI rather than one fetched next to the tarball.
|
|
8
|
+
*/
|
|
9
|
+
export declare const PDPP_NODE_VERSION = "24.21.0";
|
|
10
|
+
/** What a signed artifact's provenance asks of the machine running it. */
|
|
11
|
+
export interface HostRuntimeContract {
|
|
12
|
+
node: string;
|
|
13
|
+
packages: Array<{
|
|
14
|
+
package: string;
|
|
15
|
+
declared_version: string;
|
|
16
|
+
}>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Whether `version` satisfies a space-separated comparator range such as
|
|
20
|
+
* `>=24.15.0 <25`, the only form artifact provenance uses. Anything the
|
|
21
|
+
* parser does not understand fails closed.
|
|
22
|
+
*/
|
|
23
|
+
export declare function satisfiesNodeRange(version: string, range: string): boolean;
|
|
24
|
+
export interface ResolvedNode {
|
|
25
|
+
path: string;
|
|
26
|
+
version: string;
|
|
27
|
+
}
|
|
28
|
+
/** Synchronous {@link findCompatibleNode}, for status checks that cannot await. */
|
|
29
|
+
export declare function findCompatibleNodeSync(range: string): ResolvedNode | null;
|
|
30
|
+
/**
|
|
31
|
+
* A Node binary on this machine that satisfies `range`, or null.
|
|
32
|
+
*
|
|
33
|
+
* `VANA_PDPP_NODE` wins when it satisfies the range; a standalone vana
|
|
34
|
+
* binary's own Node cannot run a script, so every candidate is asked for its
|
|
35
|
+
* version rather than trusted from `process.version`.
|
|
36
|
+
*/
|
|
37
|
+
export declare function findCompatibleNode(range: string): Promise<ResolvedNode | null>;
|
|
38
|
+
/** Whether the pinned Node release this CLI can install satisfies `range`. */
|
|
39
|
+
export declare function canInstallNodeFor(range: string): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Download the pinned Node release into ~/.vana/pdpp/node and check it
|
|
42
|
+
* against the checksum compiled into the CLI before anything is unpacked.
|
|
43
|
+
*/
|
|
44
|
+
export declare function installManagedNode(logPath: string): Promise<ResolvedNode>;
|
|
45
|
+
/**
|
|
46
|
+
* Make each host package an artifact declares resolvable from its install
|
|
47
|
+
* root, at exactly the declared version.
|
|
48
|
+
*
|
|
49
|
+
* A signed artifact leaves its browser driver out and loads it by dynamic
|
|
50
|
+
* import, and ESM resolution ignores NODE_PATH, so the package has to sit in
|
|
51
|
+
* a `node_modules` directory above the artifact. The CLI ships the pinned
|
|
52
|
+
* version and links it there rather than installing a second copy.
|
|
53
|
+
*/
|
|
54
|
+
export declare function linkHostPackages(installRoot: string, contract: HostRuntimeContract): Promise<void>;
|
|
55
|
+
/** Where connector browser profiles live; owned by the CLI, never shared. */
|
|
56
|
+
export declare function getPdppProfileRoot(): string;
|
|
57
|
+
/**
|
|
58
|
+
* Environment that decides which browser a connector launches.
|
|
59
|
+
*
|
|
60
|
+
* System Chrome is preferred for the same reason the legacy runtime prefers
|
|
61
|
+
* it: sites treat it as a normal browser. Without it the connector's own
|
|
62
|
+
* patchright Chromium is used, installed once under ~/.vana/pdpp/browsers.
|
|
63
|
+
*/
|
|
64
|
+
export declare function browserEnvironment(): Record<string, string>;
|
|
65
|
+
export declare function ensureConnectorBrowser(node: ResolvedNode, logPath: string): Promise<void>;
|
|
66
|
+
//# sourceMappingURL=host.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/pdpp/host.ts"],"names":[],"mappings":"AAiBA,kEAAkE;AAClE,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAY3C,0EAA0E;AAC1E,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChE;AAkBD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAuB1E;AAwDD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAgBD,mFAAmF;AACnF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CASzE;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAS9B;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKxD;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,CAAC,CAmDvB;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED,6EAA6E;AAC7E,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAMD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAK3D;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAoBf"}
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
import crypto from "node:crypto";
|
|
2
|
+
import fs from "node:fs";
|
|
3
|
+
import fsp from "node:fs/promises";
|
|
4
|
+
import os from "node:os";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
import { execFile, execFileSync } from "node:child_process";
|
|
7
|
+
import { createRequire } from "node:module";
|
|
8
|
+
import { promisify } from "node:util";
|
|
9
|
+
import * as tar from "tar";
|
|
10
|
+
import { getVanaHome } from "../core/paths.js";
|
|
11
|
+
import { getSystemChromePath } from "../runtime/playwright/index.js";
|
|
12
|
+
const execFileAsync = promisify(execFile);
|
|
13
|
+
const require = createRequire(import.meta.url);
|
|
14
|
+
/** Everything the CLI keeps for Collection Profile connectors. */
|
|
15
|
+
export function getPdppHome() {
|
|
16
|
+
return path.join(getVanaHome(), "pdpp");
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The Node release installed when no compatible one is found. It matches the
|
|
20
|
+
* runtime Vana Desktop bundles, and the checksums are the official
|
|
21
|
+
* SHASUMS256.txt values, so a download is checked against a hash that
|
|
22
|
+
* shipped with the CLI rather than one fetched next to the tarball.
|
|
23
|
+
*/
|
|
24
|
+
export const PDPP_NODE_VERSION = "24.21.0";
|
|
25
|
+
const PDPP_NODE_SHA256 = {
|
|
26
|
+
"darwin-arm64": "bed7eea5325e1108f32ce5228ddd6a5f0f08a499ee42aa7442aea583702f6057",
|
|
27
|
+
"darwin-x64": "1462cb3b3046b815cf8ea436d3da450ec1a9f11dac7e5a46b0ada5305d7e8097",
|
|
28
|
+
"linux-arm64": "724282c3b43aec998aa9527380465b45d229e021b58035f5f4f63095eabfe5d5",
|
|
29
|
+
"linux-x64": "6e1db87ef58b8819e5d5402eff1536491b18edd8eb7bee5ef7897876e88dc5ff",
|
|
30
|
+
};
|
|
31
|
+
function parseVersion(value) {
|
|
32
|
+
const match = /^v?(\d+)(?:\.(\d+))?(?:\.(\d+))?$/.exec(value.trim());
|
|
33
|
+
if (!match)
|
|
34
|
+
return null;
|
|
35
|
+
return [Number(match[1]), Number(match[2] ?? 0), Number(match[3] ?? 0)];
|
|
36
|
+
}
|
|
37
|
+
function compareVersions(left, right) {
|
|
38
|
+
for (let index = 0; index < 3; index += 1) {
|
|
39
|
+
const difference = left[index] - right[index];
|
|
40
|
+
if (difference !== 0)
|
|
41
|
+
return difference;
|
|
42
|
+
}
|
|
43
|
+
return 0;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Whether `version` satisfies a space-separated comparator range such as
|
|
47
|
+
* `>=24.15.0 <25`, the only form artifact provenance uses. Anything the
|
|
48
|
+
* parser does not understand fails closed.
|
|
49
|
+
*/
|
|
50
|
+
export function satisfiesNodeRange(version, range) {
|
|
51
|
+
const actual = parseVersion(version);
|
|
52
|
+
if (!actual)
|
|
53
|
+
return false;
|
|
54
|
+
const comparators = range.trim().split(/\s+/).filter(Boolean);
|
|
55
|
+
if (comparators.length === 0)
|
|
56
|
+
return false;
|
|
57
|
+
return comparators.every((comparator) => {
|
|
58
|
+
const match = /^(>=|<=|>|<|=)?(.+)$/.exec(comparator);
|
|
59
|
+
const bound = match ? parseVersion(match[2]) : null;
|
|
60
|
+
if (!match || !bound)
|
|
61
|
+
return false;
|
|
62
|
+
const order = compareVersions(actual, bound);
|
|
63
|
+
switch (match[1] ?? "=") {
|
|
64
|
+
case ">=":
|
|
65
|
+
return order >= 0;
|
|
66
|
+
case "<=":
|
|
67
|
+
return order <= 0;
|
|
68
|
+
case ">":
|
|
69
|
+
return order > 0;
|
|
70
|
+
case "<":
|
|
71
|
+
return order < 0;
|
|
72
|
+
default:
|
|
73
|
+
return order === 0;
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
async function readNodeVersion(binary) {
|
|
78
|
+
try {
|
|
79
|
+
const { stdout } = await execFileAsync(binary, ["--version"], {
|
|
80
|
+
timeout: 10_000,
|
|
81
|
+
windowsHide: true,
|
|
82
|
+
});
|
|
83
|
+
// A standalone vana binary answers --version with its own version, which
|
|
84
|
+
// parses but is not a Node release; only a `v`-prefixed line is Node.
|
|
85
|
+
const line = stdout.trim();
|
|
86
|
+
return /^v\d+\.\d+\.\d+$/.test(line) ? line.slice(1) : null;
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function nodeBinaryName() {
|
|
93
|
+
return process.platform === "win32" ? "node.exe" : "node";
|
|
94
|
+
}
|
|
95
|
+
function managedNodeDir() {
|
|
96
|
+
return path.join(getPdppHome(), "node", PDPP_NODE_VERSION);
|
|
97
|
+
}
|
|
98
|
+
function managedNodeBinary() {
|
|
99
|
+
return process.platform === "win32"
|
|
100
|
+
? path.join(managedNodeDir(), nodeBinaryName())
|
|
101
|
+
: path.join(managedNodeDir(), "bin", nodeBinaryName());
|
|
102
|
+
}
|
|
103
|
+
function candidateNodeBinaries() {
|
|
104
|
+
const candidates = [];
|
|
105
|
+
if (process.env.VANA_PDPP_NODE)
|
|
106
|
+
candidates.push(process.env.VANA_PDPP_NODE);
|
|
107
|
+
candidates.push(managedNodeBinary());
|
|
108
|
+
candidates.push(process.execPath);
|
|
109
|
+
for (const dir of (process.env.PATH ?? "").split(path.delimiter)) {
|
|
110
|
+
if (dir)
|
|
111
|
+
candidates.push(path.join(dir, nodeBinaryName()));
|
|
112
|
+
}
|
|
113
|
+
// nvm installs are usually not on PATH for a version other than the
|
|
114
|
+
// current default, which is exactly the version a connector may need.
|
|
115
|
+
const nvmVersions = path.join(process.env.NVM_DIR ?? path.join(os.homedir(), ".nvm"), "versions", "node");
|
|
116
|
+
try {
|
|
117
|
+
for (const entry of fs.readdirSync(nvmVersions).sort().reverse()) {
|
|
118
|
+
candidates.push(path.join(nvmVersions, entry, "bin", nodeBinaryName()));
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
// No nvm.
|
|
123
|
+
}
|
|
124
|
+
return [...new Set(candidates.map((candidate) => path.resolve(candidate)))];
|
|
125
|
+
}
|
|
126
|
+
function readNodeVersionSync(binary) {
|
|
127
|
+
try {
|
|
128
|
+
const line = execFileSync(binary, ["--version"], {
|
|
129
|
+
encoding: "utf8",
|
|
130
|
+
timeout: 5_000,
|
|
131
|
+
windowsHide: true,
|
|
132
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
133
|
+
}).trim();
|
|
134
|
+
return /^v\d+\.\d+\.\d+$/.test(line) ? line.slice(1) : null;
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/** Synchronous {@link findCompatibleNode}, for status checks that cannot await. */
|
|
141
|
+
export function findCompatibleNodeSync(range) {
|
|
142
|
+
for (const candidate of candidateNodeBinaries()) {
|
|
143
|
+
if (!fs.existsSync(candidate))
|
|
144
|
+
continue;
|
|
145
|
+
const version = readNodeVersionSync(candidate);
|
|
146
|
+
if (version && satisfiesNodeRange(version, range)) {
|
|
147
|
+
return { path: candidate, version };
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return null;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* A Node binary on this machine that satisfies `range`, or null.
|
|
154
|
+
*
|
|
155
|
+
* `VANA_PDPP_NODE` wins when it satisfies the range; a standalone vana
|
|
156
|
+
* binary's own Node cannot run a script, so every candidate is asked for its
|
|
157
|
+
* version rather than trusted from `process.version`.
|
|
158
|
+
*/
|
|
159
|
+
export async function findCompatibleNode(range) {
|
|
160
|
+
for (const candidate of candidateNodeBinaries()) {
|
|
161
|
+
if (!fs.existsSync(candidate))
|
|
162
|
+
continue;
|
|
163
|
+
const version = await readNodeVersion(candidate);
|
|
164
|
+
if (version && satisfiesNodeRange(version, range)) {
|
|
165
|
+
return { path: candidate, version };
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
/** Whether the pinned Node release this CLI can install satisfies `range`. */
|
|
171
|
+
export function canInstallNodeFor(range) {
|
|
172
|
+
return (satisfiesNodeRange(PDPP_NODE_VERSION, range) &&
|
|
173
|
+
Boolean(PDPP_NODE_SHA256[`${process.platform}-${process.arch}`]));
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Download the pinned Node release into ~/.vana/pdpp/node and check it
|
|
177
|
+
* against the checksum compiled into the CLI before anything is unpacked.
|
|
178
|
+
*/
|
|
179
|
+
export async function installManagedNode(logPath) {
|
|
180
|
+
const platformKey = `${process.platform}-${process.arch}`;
|
|
181
|
+
const expected = PDPP_NODE_SHA256[platformKey];
|
|
182
|
+
if (!expected) {
|
|
183
|
+
throw new Error(`No Node ${PDPP_NODE_VERSION} build is pinned for ${platformKey}. Install Node 24 yourself and set VANA_PDPP_NODE to its path.`);
|
|
184
|
+
}
|
|
185
|
+
const archiveName = `node-v${PDPP_NODE_VERSION}-${platformKey}.tar.gz`;
|
|
186
|
+
const url = `https://nodejs.org/dist/v${PDPP_NODE_VERSION}/${archiveName}`;
|
|
187
|
+
await fsp.appendFile(logPath, `Downloading ${url}\n`, "utf8");
|
|
188
|
+
const response = await fetch(url, { headers: { "User-Agent": "vana-cli" } });
|
|
189
|
+
if (!response.ok) {
|
|
190
|
+
throw new Error(`Could not download Node ${PDPP_NODE_VERSION}: ${response.status}`);
|
|
191
|
+
}
|
|
192
|
+
const archive = Buffer.from(await response.arrayBuffer());
|
|
193
|
+
const actual = crypto.createHash("sha256").update(archive).digest("hex");
|
|
194
|
+
if (actual !== expected) {
|
|
195
|
+
throw new Error(`Node ${PDPP_NODE_VERSION} download failed its checksum (expected ${expected}, got ${actual}).`);
|
|
196
|
+
}
|
|
197
|
+
const parent = path.dirname(managedNodeDir());
|
|
198
|
+
await fsp.mkdir(parent, { recursive: true });
|
|
199
|
+
const staging = await fsp.mkdtemp(path.join(parent, ".staging-"));
|
|
200
|
+
try {
|
|
201
|
+
const archivePath = path.join(staging, archiveName);
|
|
202
|
+
await fsp.writeFile(archivePath, archive);
|
|
203
|
+
await tar.x({ file: archivePath, cwd: staging, strip: 1 });
|
|
204
|
+
await fsp.rm(archivePath, { force: true });
|
|
205
|
+
await fsp.rm(managedNodeDir(), { recursive: true, force: true });
|
|
206
|
+
await fsp.rename(staging, managedNodeDir());
|
|
207
|
+
}
|
|
208
|
+
catch (error) {
|
|
209
|
+
await fsp.rm(staging, { recursive: true, force: true });
|
|
210
|
+
throw error;
|
|
211
|
+
}
|
|
212
|
+
await fsp.appendFile(logPath, `Installed Node into ${managedNodeDir()}\n`, "utf8");
|
|
213
|
+
const version = await readNodeVersion(managedNodeBinary());
|
|
214
|
+
if (!version) {
|
|
215
|
+
throw new Error(`Installed Node at ${managedNodeBinary()} does not run.`);
|
|
216
|
+
}
|
|
217
|
+
return { path: managedNodeBinary(), version };
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Make each host package an artifact declares resolvable from its install
|
|
221
|
+
* root, at exactly the declared version.
|
|
222
|
+
*
|
|
223
|
+
* A signed artifact leaves its browser driver out and loads it by dynamic
|
|
224
|
+
* import, and ESM resolution ignores NODE_PATH, so the package has to sit in
|
|
225
|
+
* a `node_modules` directory above the artifact. The CLI ships the pinned
|
|
226
|
+
* version and links it there rather than installing a second copy.
|
|
227
|
+
*/
|
|
228
|
+
export async function linkHostPackages(installRoot, contract) {
|
|
229
|
+
const nodeModules = path.join(installRoot, "node_modules");
|
|
230
|
+
await fsp.mkdir(nodeModules, { recursive: true });
|
|
231
|
+
for (const declared of contract.packages) {
|
|
232
|
+
let packageRoot;
|
|
233
|
+
try {
|
|
234
|
+
packageRoot = path.dirname(require.resolve(`${declared.package}/package.json`));
|
|
235
|
+
}
|
|
236
|
+
catch {
|
|
237
|
+
throw new Error(`This connector needs ${declared.package} ${declared.declared_version}, which this build of vana does not include.`);
|
|
238
|
+
}
|
|
239
|
+
const { version } = JSON.parse(await fsp.readFile(path.join(packageRoot, "package.json"), "utf8"));
|
|
240
|
+
if (version !== declared.declared_version) {
|
|
241
|
+
throw new Error(`This connector needs ${declared.package} ${declared.declared_version}, but vana includes ${version}. Update vana.`);
|
|
242
|
+
}
|
|
243
|
+
const link = path.join(nodeModules, declared.package);
|
|
244
|
+
await fsp.rm(link, { recursive: true, force: true });
|
|
245
|
+
await fsp.symlink(packageRoot, link, process.platform === "win32" ? "junction" : "dir");
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
/** Where connector browser profiles live; owned by the CLI, never shared. */
|
|
249
|
+
export function getPdppProfileRoot() {
|
|
250
|
+
return path.join(getPdppHome(), "profiles");
|
|
251
|
+
}
|
|
252
|
+
function patchrightBrowsersDir() {
|
|
253
|
+
return path.join(getPdppHome(), "browsers");
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Environment that decides which browser a connector launches.
|
|
257
|
+
*
|
|
258
|
+
* System Chrome is preferred for the same reason the legacy runtime prefers
|
|
259
|
+
* it: sites treat it as a normal browser. Without it the connector's own
|
|
260
|
+
* patchright Chromium is used, installed once under ~/.vana/pdpp/browsers.
|
|
261
|
+
*/
|
|
262
|
+
export function browserEnvironment() {
|
|
263
|
+
if (getSystemChromePath()) {
|
|
264
|
+
return { PDPP_BROWSER_CHANNEL: "chrome" };
|
|
265
|
+
}
|
|
266
|
+
return { PLAYWRIGHT_BROWSERS_PATH: patchrightBrowsersDir() };
|
|
267
|
+
}
|
|
268
|
+
export async function ensureConnectorBrowser(node, logPath) {
|
|
269
|
+
if (getSystemChromePath())
|
|
270
|
+
return;
|
|
271
|
+
const cliPath = path.join(path.dirname(require.resolve("patchright/package.json")), "cli.js");
|
|
272
|
+
await fsp.appendFile(logPath, "Installing Chromium for patchright\n", "utf8");
|
|
273
|
+
const { stdout, stderr } = await execFileAsync(node.path, [cliPath, "install", "chromium"], {
|
|
274
|
+
env: {
|
|
275
|
+
...process.env,
|
|
276
|
+
PLAYWRIGHT_BROWSERS_PATH: patchrightBrowsersDir(),
|
|
277
|
+
},
|
|
278
|
+
windowsHide: true,
|
|
279
|
+
maxBuffer: 16 * 1024 * 1024,
|
|
280
|
+
});
|
|
281
|
+
await fsp.appendFile(logPath, `${stdout}${stderr}`, "utf8");
|
|
282
|
+
}
|
|
283
|
+
//# sourceMappingURL=host.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/pdpp/host.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type PdppPin } from "./pins.js";
|
|
2
|
+
import { type PdppLaunch } from "./profile.js";
|
|
3
|
+
export declare function artifactRootFor(pin: PdppPin, installRoot?: string): string;
|
|
4
|
+
/**
|
|
5
|
+
* Read an installed artifact into a launch, refusing one whose manifest does
|
|
6
|
+
* not describe the pinned connector.
|
|
7
|
+
*/
|
|
8
|
+
export declare function readInstalledLaunch(pin: PdppPin, artifactRoot: string, installRoot: string): Promise<PdppLaunch>;
|
|
9
|
+
/**
|
|
10
|
+
* Install the pinned artifact if needed and verify it, returning how to run
|
|
11
|
+
* it. Nothing unverified is ever returned: an existing install is re-checked
|
|
12
|
+
* against the registry's signed digest on every call, and a fresh one is
|
|
13
|
+
* unpacked into a staging directory and moved into place only after the
|
|
14
|
+
* installer has checked its signature and every file digest.
|
|
15
|
+
*/
|
|
16
|
+
export declare function ensurePinnedArtifact(pin: PdppPin, logPath: string, installRoot?: string): Promise<PdppLaunch>;
|
|
17
|
+
//# sourceMappingURL=installer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/pdpp/installer.ts"],"names":[],"mappings":"AAKA,OAAO,EAAmB,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAA0B,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAgBvE,wBAAgB,eAAe,CAC7B,GAAG,EAAE,OAAO,EACZ,WAAW,SAAgB,GAC1B,MAAM,CAER;AA6BD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,OAAO,EACZ,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,UAAU,CAAC,CAiCrB;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,MAAM,EACf,WAAW,SAAgB,GAC1B,OAAO,CAAC,UAAU,CAAC,CAiDrB"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import fsp from "node:fs/promises";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { getPdppHome } from "./host.js";
|
|
5
|
+
import { pinOciReference } from "./pins.js";
|
|
6
|
+
import { parseCollectionProfile } from "./profile.js";
|
|
7
|
+
// Loaded on first use: sigstore and its dependencies are not worth paying for
|
|
8
|
+
// on every CLI start, and legacy sources never need them.
|
|
9
|
+
async function loadInstallerCore() {
|
|
10
|
+
return (await import("../vendor/pdpp-connector-manager/index.mjs"));
|
|
11
|
+
}
|
|
12
|
+
const PROFILE_PATH = "profile/collection-profile.json";
|
|
13
|
+
const ENTRYPOINT_PATH = "dist/collection-profile.mjs";
|
|
14
|
+
const PROVENANCE_PATH = "provenance.json";
|
|
15
|
+
export function artifactRootFor(pin, installRoot = getPdppHome()) {
|
|
16
|
+
return path.join(installRoot, "collection-profiles", pin.id);
|
|
17
|
+
}
|
|
18
|
+
function lockFor(core, pin) {
|
|
19
|
+
const reference = core.parseConnectorOciReference(pinOciReference(pin));
|
|
20
|
+
return {
|
|
21
|
+
lockVersion: "2.0",
|
|
22
|
+
connectors: [
|
|
23
|
+
{
|
|
24
|
+
connectorId: pin.id,
|
|
25
|
+
connectorKey: reference.connectorKey,
|
|
26
|
+
version: pin.version,
|
|
27
|
+
artifactKind: "pdpp-collection-profile",
|
|
28
|
+
manifestPath: PROFILE_PATH,
|
|
29
|
+
entrypointPath: ENTRYPOINT_PATH,
|
|
30
|
+
provenancePath: PROVENANCE_PATH,
|
|
31
|
+
oci: {
|
|
32
|
+
registry: reference.registry,
|
|
33
|
+
repository: reference.repository,
|
|
34
|
+
digest: reference.digest,
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
async function readJson(file) {
|
|
41
|
+
return JSON.parse(await fsp.readFile(file, "utf8"));
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Read an installed artifact into a launch, refusing one whose manifest does
|
|
45
|
+
* not describe the pinned connector.
|
|
46
|
+
*/
|
|
47
|
+
export async function readInstalledLaunch(pin, artifactRoot, installRoot) {
|
|
48
|
+
const profile = parseCollectionProfile(await readJson(path.join(artifactRoot, PROFILE_PATH)), `${pin.name} profile`);
|
|
49
|
+
if (profile.connector_key !== pin.id || profile.version !== pin.version) {
|
|
50
|
+
throw new Error(`The installed ${pin.name} connector is ${profile.connector_key} ${profile.version}, not the pinned ${pin.id} ${pin.version}.`);
|
|
51
|
+
}
|
|
52
|
+
const provenance = (await readJson(path.join(artifactRoot, PROVENANCE_PATH)));
|
|
53
|
+
const contract = provenance.host_runtime_contract;
|
|
54
|
+
if (!contract || typeof contract.node !== "string") {
|
|
55
|
+
throw new Error(`The ${pin.name} connector does not say which Node it needs.`);
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
source: pin.id,
|
|
59
|
+
displayName: profile.display_name ?? pin.name,
|
|
60
|
+
version: profile.version,
|
|
61
|
+
profile,
|
|
62
|
+
args: [path.join(artifactRoot, ENTRYPOINT_PATH)],
|
|
63
|
+
cwd: artifactRoot,
|
|
64
|
+
nodeRange: contract.node,
|
|
65
|
+
installRoot,
|
|
66
|
+
hostPackages: Array.isArray(contract.packages) ? contract.packages : [],
|
|
67
|
+
origin: "pinned",
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Install the pinned artifact if needed and verify it, returning how to run
|
|
72
|
+
* it. Nothing unverified is ever returned: an existing install is re-checked
|
|
73
|
+
* against the registry's signed digest on every call, and a fresh one is
|
|
74
|
+
* unpacked into a staging directory and moved into place only after the
|
|
75
|
+
* installer has checked its signature and every file digest.
|
|
76
|
+
*/
|
|
77
|
+
export async function ensurePinnedArtifact(pin, logPath, installRoot = getPdppHome()) {
|
|
78
|
+
const core = await loadInstallerCore();
|
|
79
|
+
const lock = lockFor(core, pin);
|
|
80
|
+
const artifactRoot = artifactRootFor(pin, installRoot);
|
|
81
|
+
await fsp.mkdir(installRoot, { recursive: true });
|
|
82
|
+
if (fs.existsSync(artifactRoot)) {
|
|
83
|
+
const verified = await core.verifyInstalled({
|
|
84
|
+
lock,
|
|
85
|
+
source: null,
|
|
86
|
+
installRoot,
|
|
87
|
+
layout: "snapshot",
|
|
88
|
+
});
|
|
89
|
+
if (verified.ok) {
|
|
90
|
+
await fsp.appendFile(logPath, `Verified ${pinOciReference(pin)}\n`, "utf8");
|
|
91
|
+
return readInstalledLaunch(pin, artifactRoot, installRoot);
|
|
92
|
+
}
|
|
93
|
+
await fsp.appendFile(logPath, `Installed ${pin.id} failed verification (missing: ${verified.missing.join(", ") || "none"}; changed: ${verified.mismatched.join(", ") || "none"}); reinstalling.\n`, "utf8");
|
|
94
|
+
}
|
|
95
|
+
const staging = await fsp.mkdtemp(path.join(installRoot, ".staging-"));
|
|
96
|
+
try {
|
|
97
|
+
await core.installFromLock({
|
|
98
|
+
lock,
|
|
99
|
+
source: null,
|
|
100
|
+
installRoot: staging,
|
|
101
|
+
layout: "snapshot",
|
|
102
|
+
allowTagResolution: false,
|
|
103
|
+
});
|
|
104
|
+
const stagedArtifact = artifactRootFor(pin, staging);
|
|
105
|
+
// Validate before the swap so a bad artifact never replaces a good one.
|
|
106
|
+
await readInstalledLaunch(pin, stagedArtifact, installRoot);
|
|
107
|
+
await fsp.mkdir(path.dirname(artifactRoot), { recursive: true });
|
|
108
|
+
await fsp.rm(artifactRoot, { recursive: true, force: true });
|
|
109
|
+
await fsp.rename(stagedArtifact, artifactRoot);
|
|
110
|
+
}
|
|
111
|
+
finally {
|
|
112
|
+
await fsp.rm(staging, { recursive: true, force: true });
|
|
113
|
+
}
|
|
114
|
+
await fsp.appendFile(logPath, `Installed ${pinOciReference(pin)}\n`, "utf8");
|
|
115
|
+
return readInstalledLaunch(pin, artifactRoot, installRoot);
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=installer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/pdpp/installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,GAAG,MAAM,kBAAkB,CAAC;AACnC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,WAAW,EAA4B,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,eAAe,EAAgB,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAmB,MAAM,cAAc,CAAC;AAMvE,8EAA8E;AAC9E,0DAA0D;AAC1D,KAAK,UAAU,iBAAiB;IAC9B,OAAO,CAAC,MAAM,MAAM,CAAC,4CAA4C,CAAC,CAAkB,CAAC;AACvF,CAAC;AAED,MAAM,YAAY,GAAG,iCAAiC,CAAC;AACvD,MAAM,eAAe,GAAG,6BAA6B,CAAC;AACtD,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAE1C,MAAM,UAAU,eAAe,CAC7B,GAAY,EACZ,WAAW,GAAG,WAAW,EAAE;IAE3B,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,qBAAqB,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,OAAO,CAAC,IAAmB,EAAE,GAAY;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,0BAA0B,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;IACxE,OAAO;QACL,WAAW,EAAE,KAAK;QAClB,UAAU,EAAE;YACV;gBACE,WAAW,EAAE,GAAG,CAAC,EAAE;gBACnB,YAAY,EAAE,SAAS,CAAC,YAAY;gBACpC,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,YAAY,EAAE,yBAAyB;gBACvC,YAAY,EAAE,YAAY;gBAC1B,cAAc,EAAE,eAAe;gBAC/B,cAAc,EAAE,eAAe;gBAC/B,GAAG,EAAE;oBACH,QAAQ,EAAE,SAAS,CAAC,QAAQ;oBAC5B,UAAU,EAAE,SAAS,CAAC,UAAU;oBAChC,MAAM,EAAE,SAAS,CAAC,MAAM;iBACzB;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,IAAY;IAClC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAY,CAAC;AACjE,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAY,EACZ,YAAoB,EACpB,WAAmB;IAEnB,MAAM,OAAO,GAAG,sBAAsB,CACpC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,EACrD,GAAG,GAAG,CAAC,IAAI,UAAU,CACtB,CAAC;IACF,IAAI,OAAO,CAAC,aAAa,KAAK,GAAG,CAAC,EAAE,IAAI,OAAO,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CACb,iBAAiB,GAAG,CAAC,IAAI,iBAAiB,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,OAAO,oBAAoB,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,OAAO,GAAG,CAC/H,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,MAAM,QAAQ,CAChC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CACzC,CAA6D,CAAC;IAC/D,MAAM,QAAQ,GAAG,UAAU,CAAC,qBAAqB,CAAC;IAClD,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CACb,OAAO,GAAG,CAAC,IAAI,8CAA8C,CAC9D,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,GAAG,CAAC,EAAE;QACd,WAAW,EAAE,OAAO,CAAC,YAAY,IAAI,GAAG,CAAC,IAAI;QAC7C,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO;QACP,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;QAChD,GAAG,EAAE,YAAY;QACjB,SAAS,EAAE,QAAQ,CAAC,IAAI;QACxB,WAAW;QACX,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;QACvE,MAAM,EAAE,QAAQ;KACjB,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAY,EACZ,OAAe,EACf,WAAW,GAAG,WAAW,EAAE;IAE3B,MAAM,IAAI,GAAG,MAAM,iBAAiB,EAAE,CAAC;IACvC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChC,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACvD,MAAM,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAElD,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC;YAC1C,IAAI;YACJ,MAAM,EAAE,IAAI;YACZ,WAAW;YACX,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,MAAM,GAAG,CAAC,UAAU,CAClB,OAAO,EACP,YAAY,eAAe,CAAC,GAAG,CAAC,IAAI,EACpC,MAAM,CACP,CAAC;YACF,OAAO,mBAAmB,CAAC,GAAG,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,GAAG,CAAC,UAAU,CAClB,OAAO,EACP,aAAa,GAAG,CAAC,EAAE,kCAAkC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,cAAc,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,oBAAoB,EACpK,MAAM,CACP,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;IACvE,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,eAAe,CAAC;YACzB,IAAI;YACJ,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,OAAO;YACpB,MAAM,EAAE,UAAU;YAClB,kBAAkB,EAAE,KAAK;SAC1B,CAAC,CAAC;QACH,MAAM,cAAc,GAAG,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACrD,wEAAwE;QACxE,MAAM,mBAAmB,CAAC,GAAG,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;QAE5D,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,MAAM,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,MAAM,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IACjD,CAAC;YAAS,CAAC;QACT,MAAM,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7E,OAAO,mBAAmB,CAAC,GAAG,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type PdppLaunch } from "./profile.js";
|
|
2
|
+
/**
|
|
3
|
+
* Run a connector from a data-connectors checkout instead of a signed
|
|
4
|
+
* artifact, the way `connector-dev` does, so an author can test it before it
|
|
5
|
+
* is published.
|
|
6
|
+
*
|
|
7
|
+
* Both layouts are accepted: connectors at the repository root
|
|
8
|
+
* (`connectors/<key>/index.ts` with `connectors/<key>/manifest.json`), and
|
|
9
|
+
* the earlier `packages/polyfill-connectors/connectors/<key>/index.ts` with
|
|
10
|
+
* `manifests/<key>.json`. The checkout's own `node_modules` supplies tsx and
|
|
11
|
+
* the browser driver.
|
|
12
|
+
*/
|
|
13
|
+
export declare function resolveLocalLaunch(checkout: string, source: string): Promise<PdppLaunch>;
|
|
14
|
+
//# sourceMappingURL=local.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/pdpp/local.ts"],"names":[],"mappings":"AAIA,OAAO,EAA0B,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAqBvE;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,CAAC,CAsDrB"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import fsp from "node:fs/promises";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { parseCollectionProfile } from "./profile.js";
|
|
5
|
+
/** The published artifacts' range, used when a checkout declares none. */
|
|
6
|
+
const DEFAULT_NODE_RANGE = ">=24.15.0 <25";
|
|
7
|
+
function firstExisting(candidates) {
|
|
8
|
+
return candidates.find((candidate) => fs.existsSync(candidate)) ?? null;
|
|
9
|
+
}
|
|
10
|
+
/** Nearest directory at or above `start`, up to `stop`, with tsx installed. */
|
|
11
|
+
function findToolRoot(start, stop) {
|
|
12
|
+
let current = start;
|
|
13
|
+
while (true) {
|
|
14
|
+
if (fs.existsSync(path.join(current, "node_modules", "tsx"))) {
|
|
15
|
+
return current;
|
|
16
|
+
}
|
|
17
|
+
if (current === stop || path.dirname(current) === current)
|
|
18
|
+
return null;
|
|
19
|
+
current = path.dirname(current);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Run a connector from a data-connectors checkout instead of a signed
|
|
24
|
+
* artifact, the way `connector-dev` does, so an author can test it before it
|
|
25
|
+
* is published.
|
|
26
|
+
*
|
|
27
|
+
* Both layouts are accepted: connectors at the repository root
|
|
28
|
+
* (`connectors/<key>/index.ts` with `connectors/<key>/manifest.json`), and
|
|
29
|
+
* the earlier `packages/polyfill-connectors/connectors/<key>/index.ts` with
|
|
30
|
+
* `manifests/<key>.json`. The checkout's own `node_modules` supplies tsx and
|
|
31
|
+
* the browser driver.
|
|
32
|
+
*/
|
|
33
|
+
export async function resolveLocalLaunch(checkout, source) {
|
|
34
|
+
const root = path.resolve(checkout);
|
|
35
|
+
const key = source.toLowerCase();
|
|
36
|
+
const bases = [root, path.join(root, "packages", "polyfill-connectors")];
|
|
37
|
+
for (const base of bases) {
|
|
38
|
+
const entry = path.join(base, "connectors", key, "index.ts");
|
|
39
|
+
if (!fs.existsSync(entry))
|
|
40
|
+
continue;
|
|
41
|
+
const manifestPath = firstExisting([
|
|
42
|
+
path.join(base, "connectors", key, "manifest.json"),
|
|
43
|
+
path.join(base, "manifests", `${key}.json`),
|
|
44
|
+
]);
|
|
45
|
+
if (!manifestPath) {
|
|
46
|
+
throw new Error(`Found ${entry} but no manifest for ${key}.`);
|
|
47
|
+
}
|
|
48
|
+
const profile = parseCollectionProfile(JSON.parse(await fsp.readFile(manifestPath, "utf8")), manifestPath);
|
|
49
|
+
const cwd = findToolRoot(path.dirname(entry), root);
|
|
50
|
+
if (!cwd) {
|
|
51
|
+
throw new Error(`tsx is not installed in ${root}. Run npm install there first.`);
|
|
52
|
+
}
|
|
53
|
+
let nodeRange = DEFAULT_NODE_RANGE;
|
|
54
|
+
try {
|
|
55
|
+
const pkg = JSON.parse(await fsp.readFile(path.join(cwd, "package.json"), "utf8"));
|
|
56
|
+
nodeRange = pkg.engines?.node ?? DEFAULT_NODE_RANGE;
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
// No package.json at the tool root; keep the default.
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
source: key,
|
|
63
|
+
displayName: profile.display_name ?? key,
|
|
64
|
+
version: profile.version,
|
|
65
|
+
profile,
|
|
66
|
+
args: ["--import", "tsx", entry],
|
|
67
|
+
cwd,
|
|
68
|
+
nodeRange,
|
|
69
|
+
installRoot: null,
|
|
70
|
+
hostPackages: [],
|
|
71
|
+
origin: "local",
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
throw new Error(`No connector named ${key} in ${root}. Looked for connectors/${key}/index.ts at the root and under packages/polyfill-connectors.`);
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=local.js.map
|