@proxyshard/shardx 2.0.3 → 2.1.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 CHANGED
@@ -161,7 +161,9 @@ page — and it does not appear in `/json/protocol`, so a page cannot discover i
161
161
  import { ShardX, Motion } from "@proxyshard/shardx";
162
162
 
163
163
  const { browser, session } = await sdk.session(profile);
164
- const motion = await Motion.attach(browser);
164
+ const page = await browser.newPage();
165
+ // Motion acts on a page's widget, so it attaches to a page.
166
+ const motion = await Motion.attach(page);
165
167
 
166
168
  // desktop profile
167
169
  await motion.createPointer(20, 20);
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAUA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAK9D,OAAO,EAAe,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,OAAO,EAAmC,MAAM,cAAc,CAAC;AAExE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAA6C,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7F,MAAM,MAAM,UAAU,GAAK,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;AACzD,sEAAsE;AACtE,MAAM,MAAM,UAAU,GAAK,cAAc,CAAC;AAqC1C,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,mEAAmE;IACnE,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,cAAc;IAIvB,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAC9B,QAAQ,CAAC,OAAO,EAAE,YAAY;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAClC,QAAQ,CAAC,WAAW,EAAE,OAAO;IAC7B,QAAQ,CAAC,UAAU,EAAE,UAAU;IAC/B,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAV9B,OAAO,CAAC,QAAQ,CAAS;gBAGd,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,YAAY,EACrB,UAAU,GAAE,MAAM,GAAG,IAAW,EAChC,WAAW,GAAE,OAAe,EAC5B,UAAU,GAAE,UAAmB,EAC/B,GAAG,GAAE,OAAO,GAAG,IAAW;IAG/B,IAAI,CAAC,SAAS,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAa5C;AAED,qBAAa,OAAO;IACN,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,OAAO;IAEvC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,cAAc,CAAC;CAiGlF"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAUA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAK9D,OAAO,EAAe,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,OAAO,EAAmC,MAAM,cAAc,CAAC;AAExE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAA6C,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7F,MAAM,MAAM,UAAU,GAAK,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;AACzD,sEAAsE;AACtE,MAAM,MAAM,UAAU,GAAK,cAAc,CAAC;AAqC1C,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,mEAAmE;IACnE,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,cAAc;IAIvB,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAC9B,QAAQ,CAAC,OAAO,EAAE,YAAY;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAClC,QAAQ,CAAC,WAAW,EAAE,OAAO;IAC7B,QAAQ,CAAC,UAAU,EAAE,UAAU;IAC/B,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAV9B,OAAO,CAAC,QAAQ,CAAS;gBAGd,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,YAAY,EACrB,UAAU,GAAE,MAAM,GAAG,IAAW,EAChC,WAAW,GAAE,OAAe,EAC5B,UAAU,GAAE,UAAmB,EAC/B,GAAG,GAAE,OAAO,GAAG,IAAW;IAG/B,IAAI,CAAC,SAAS,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAa5C;AAED,qBAAa,OAAO;IACN,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,OAAO;IAEvC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,cAAc,CAAC;CAsGlF"}
package/dist/browser.js CHANGED
@@ -172,7 +172,12 @@ export class Browser {
172
172
  if (opts.cdp) {
173
173
  if (existsSync(cdpMarker))
174
174
  rmSync(cdpMarker, { force: true });
175
- argv.push("--remote-debugging-port=0", "--remote-allow-origins=*");
175
+ // Gates the Motion domain, which every synthesised click and keystroke
176
+ // goes through. Without it `Motion.createPointer` comes back as "wasn't
177
+ // found": the domain is absent from Schema.getDomains and
178
+ // /json/protocol rather than merely disabled, which is what keeps it
179
+ // free when nobody uses it. The launcher passes the same flag.
180
+ argv.push("--remote-debugging-port=0", "--remote-allow-origins=*", "--shardx-automation");
176
181
  }
177
182
  if (opts.headless)
178
183
  argv.push("--headless=new");
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
package/dist/motion.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { Browser as PatchrightBrowser } from "patchright";
1
+ import type { Page } from "patchright";
2
2
  export type MouseButton = "left" | "middle" | "right";
3
3
  /** 0, 90, 180 or 270, clockwise from the orientation the profile was written in. */
4
4
  export type ScreenAngle = 0 | 90 | 180 | 270;
@@ -12,8 +12,8 @@ export interface OrientationResult {
12
12
  export declare class Motion {
13
13
  private readonly session;
14
14
  private constructor();
15
- /** Open a browser-level CDP session for the domain. */
16
- static attach(browser: PatchrightBrowser): Promise<Motion>;
15
+ /** Open a CDP session on `page` for the domain. */
16
+ static attach(page: Page): Promise<Motion>;
17
17
  private call;
18
18
  /** Where the cursor starts. Not a movement — call it before anything else,
19
19
  * since a guessed origin produces the wrong duration and curve. */
@@ -1 +1 @@
1
- {"version":3,"file":"motion.d.ts","sourceRoot":"","sources":["../src/motion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"motion.d.ts","sourceRoot":"","sources":["../src/motion.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAc,IAAI,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtD,oFAAoF;AACpF,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC;AAE7C,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,MAAM;IACG,OAAO,CAAC,QAAQ,CAAC,OAAO;IAA5C,OAAO;IAEP,mDAAmD;WACtC,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;YAIlC,IAAI;IASlB;wEACoE;IAC9D,aAAa,CACjB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,IAAI,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAO,GAC/C,OAAO,CAAC,IAAI,CAAC;IAIhB;0EACsE;IAChE,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAS1E,sDAAsD;IAChD,GAAG,CAAC,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAKpF,8DAA8D;IACxD,MAAM,CACV,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,IAAI,GAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO,GACxD,OAAO,CAAC,MAAM,CAAC;IAKlB;qFACiF;IAC3E,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ7D;0EACsE;IAChE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAKlE;oEACgE;IAC1D,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAQhE,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAUrC,+EAA+E;IACzE,QAAQ,CACZ,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,IAAI,GAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO,GACrD,OAAO,CAAC,MAAM,CAAC;IAKlB;mFAC+E;IACzE,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAS5E;uDACmD;IAC7C,UAAU,CACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,CAAC,MAAM,CAAC;IAWlB;8DAC0D;IACpD,SAAS,CACb,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;IAWlB;gFAC4E;IACtE,KAAK,CACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC;IAYlB;oFACgF;IAC1E,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAO/E,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAG9B"}
package/dist/motion.js CHANGED
@@ -3,9 +3,9 @@ export class Motion {
3
3
  constructor(session) {
4
4
  this.session = session;
5
5
  }
6
- /** Open a browser-level CDP session for the domain. */
7
- static async attach(browser) {
8
- return new Motion(await browser.newBrowserCDPSession());
6
+ /** Open a CDP session on `page` for the domain. */
7
+ static async attach(page) {
8
+ return new Motion(await page.context().newCDPSession(page));
9
9
  }
10
10
  async call(method, params = {}) {
11
11
  return (await this.session.send(method, params));
@@ -1 +1 @@
1
- {"version":3,"file":"motion.js","sourceRoot":"","sources":["../src/motion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"motion.js","sourceRoot":"","sources":["../src/motion.ts"],"names":[],"mappings":"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"}
package/dist/runtime.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export declare const PUB_BASE = "https://pub-e57a7c60f6934eb09a6600bf2fc59cdc.r2.dev";
2
- export declare const CHROMIUM_VERSION = "152.0.7977.65";
2
+ export declare const CHROMIUM_VERSION = "156.0.8078.48";
3
3
  /** This SDK's own version, compared against the manifest's `min_sdk_version`. */
4
- export declare const SDK_VERSION = "2.0.3";
4
+ export declare const SDK_VERSION = "2.1.1";
5
5
  export declare const MANIFEST_URL = "https://raw.githubusercontent.com/ProxyShard/ShardBrowser/main/runtime.json";
6
6
  export declare function defaultCacheDir(): string;
7
7
  export interface Archive {
@@ -80,12 +80,86 @@ export declare class Runtime {
80
80
  install(opts?: {
81
81
  force?: boolean;
82
82
  }): Promise<void>;
83
+ /** Another process may have swapped the engine since this one checked: the
84
+ * version profiles claim follows the engine on disk, from its record. */
85
+ private adoptInstalled;
86
+ private installLocked;
83
87
  /** Fetch the version manifest (GitHub raw) — one request that yields every
84
88
  * archive's current etag + the chromium version, replacing per-archive HEADs
85
89
  * against R2/S3. Empty archives / undefined version when unreachable. */
86
90
  private fetchManifest;
91
+ /** Downloads `arch` beside `dest` and returns where it landed, with its etag.
92
+ * `unpacks`: refused before a byte is written when the disk cannot also
93
+ * hold it unpacked beside what is installed. */
94
+ private download;
95
+ /** Unpacks an archive `download` left behind, and removes it. */
96
+ private extractArchive;
97
+ /** Brings the engine to the archive the manifest offers (`wanted`: its etag,
98
+ * when known). A checked tree an earlier run staged is used as it is; else
99
+ * the archive is downloaded and staged. Returns the etag that went in. */
100
+ private installEngine;
101
+ /** Unpacks the engine archive at `tmp` into the staging folder beside the
102
+ * live engine and checks every file the archive lists. Nothing installed is
103
+ * touched: the tree waits there, noted, until `swapStaged` moves it in. The
104
+ * archive is removed either way. */
105
+ stageEngine(tmp: string, etag: string): void;
106
+ /** Swaps the staged tree in. Refused while processes run from the engine;
107
+ * every refusal keeps the staged tree for the next run. */
108
+ swapStaged(lock?: InstallLock): void;
109
+ /** Downloads and unpacks in one step, for everything that has nothing to lose. */
87
110
  private downloadAndExtract;
88
111
  private placeWidevine;
89
112
  private installFingerprints;
90
113
  }
114
+ /** What the install asks the OS; tests swap in their own. */
115
+ export declare const engineHooks: {
116
+ freeBytes: typeof freeBytes;
117
+ processesUnder: typeof processesUnder;
118
+ };
119
+ /** The file operations an engine swap makes; tests hand in failing ones.
120
+ * `tries`: how often a rename Windows refuses for a moment is tried. */
121
+ export interface SwapFs {
122
+ rename(from: string, to: string): void;
123
+ rm(path: string): void;
124
+ tries?: number;
125
+ }
126
+ /** Files and links under `dir`, links not followed. */
127
+ export declare function countFiles(dir: string): number;
128
+ /** Puts `<root>/.<top>.previous` back when a run died between the two renames
129
+ * of an update (or could not undo the first) — only as its journal left it,
130
+ * and only whole. Any other copy is a leftover and goes: one a cleanup left
131
+ * half removed never stands in for a missing engine. True when put back. */
132
+ export declare function recoverEngine(root: string, top: string, fs?: SwapFs): boolean;
133
+ /** Swaps the complete tree at `staged` in for `<root>/<top>`: live → previous,
134
+ * staged → live, the first undone if the second fails. Any failure leaves the
135
+ * engine that was there (or `.previous` with its journal, put back by the
136
+ * next install()). */
137
+ export declare function swapEngineTree(root: string, top: string, staged: string, fs?: SwapFs): void;
138
+ /** Bytes the current user may still write on the disk holding `dir`. */
139
+ export declare function freeBytes(dir: string): number | undefined;
140
+ /** How many processes run from `dir`. On macOS and Linux a swap would pull
141
+ * the files from under them; Windows refuses the rename itself. */
142
+ export declare function processesUnder(dir: string): number;
143
+ /** One install at a time over a cache dir, across processes and the three
144
+ * SDKs (same file, same rules). A holder that died is taken over. */
145
+ export declare class InstallLock {
146
+ readonly path: string;
147
+ readonly token: string;
148
+ private constructor();
149
+ static acquire(root: string, opts?: {
150
+ pollMs?: number;
151
+ }): Promise<InstallLock>;
152
+ /** Still ours: nobody took it over as stale. */
153
+ held(): boolean;
154
+ release(): void;
155
+ }
156
+ export declare function pidAlive(pid: unknown): boolean;
157
+ interface ZipListing {
158
+ names: string[];
159
+ unpacked: number;
160
+ }
161
+ /** The archive's own table of contents, read from its end without loading the
162
+ * rest: entry names and the bytes they unpack to. Throws when there is none. */
163
+ export declare function zipListing(path: string): ZipListing;
164
+ export {};
91
165
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,QAAQ,wDAAwD,CAAC;AAC9E,eAAO,MAAM,gBAAgB,kBAAkB,CAAC;AAChD,iFAAiF;AACjF,eAAO,MAAM,WAAW,UAAU,CAAC;AAInC,eAAO,MAAM,YAAY,gFAAgF,CAAC;AAE1G,wBAAgB,eAAe,IAAI,MAAM,CAKxC;AAED,MAAM,WAAW,OAAO;IAAG,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;CAAE;AAExD,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,wBAAgB,QAAQ,IAAI,QAAQ,CA8BnC;AAED,eAAO,MAAM,oBAAoB,EAAE,OAGlC,CAAC;AAGF,MAAM,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAclF,qBAAa,OAAO;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;IACxC;;uCAEmC;IACnC,OAAO,CAAC,iBAAiB,CAAS;IAClC;4EACwE;IACxE,OAAO,CAAC,gBAAgB,CAA4B;IACpD;2EACuE;IACvE,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAC,CAAS;IAChC;;;oEAGgE;IAChE,OAAO,CAAC,IAAI,CAAC,CAA0B;gBAE3B,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,UAAU,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO;IAQzF,IAAI,YAAY,IAAI,MAAM,CAA8C;IACxE,IAAI,UAAU,IAAI,MAAM,CAA2D;IACnF,IAAI,eAAe,IAAI,MAAM,CAI5B;IACD;;iEAE6D;IAC7D,IAAI,YAAY,IAAI,MAAM,CAIzB;IACD,IAAI,SAAS,IAAI,OAAO,CAA2C;IACnE,mEAAmE;IACnE,IAAI,eAAe,IAAI,MAAM,CAAkC;IAC/D,6EAA6E;IAC7E,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAA8B;IACnE,sEAAsE;IACtE,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAAgC;IACvE,yDAAyD;IACzD,IAAI,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAsB;IAEpE;2EACuE;IACvE,OAAO,CAAC,sBAAsB;IAqB9B;;;kFAG8E;IAC9E,OAAO,CAAC,yBAAyB;IAIjC;kDAC8C;IAC9C,OAAO,CAAC,oBAAoB;IAU5B,4DAA4D;IAC5D,OAAO,CAAC,MAAM,CAAC,SAAS;IAWxB;4EACwE;IACxE,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,YAAY;IAMd,OAAO,CAAC,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA4D5D;;8EAE0E;YAC5D,aAAa;YAuBb,kBAAkB;IA2ChC,OAAO,CAAC,aAAa;YAYP,mBAAmB;CA0ClC"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/dist/runtime.js CHANGED
@@ -2,17 +2,19 @@
2
2
  // library from the ProxyShard CDN, extract into a per-user cache dir,
3
3
  // place Widevine inside the engine bundle, remember etags so subsequent
4
4
  // runs are zero-network. Mirrors src-tauri/src/runtime.rs in the launcher.
5
- import { closeSync, createWriteStream, existsSync, mkdirSync, openSync, readdirSync, readFileSync, readSync, renameSync, rmSync, writeFileSync, chmodSync, copyFileSync, lstatSync } from "node:fs";
6
- import { homedir, platform as osPlatform, arch as osArch } from "node:os";
7
- import { join, dirname, resolve } from "node:path";
5
+ import { closeSync, createWriteStream, existsSync, fstatSync, fsyncSync, linkSync, mkdirSync, openSync, readdirSync, readFileSync, readlinkSync, readSync, realpathSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync, writeSync, chmodSync, copyFileSync, lstatSync } from "node:fs";
6
+ import * as nodeFs from "node:fs";
7
+ import { homedir, hostname, platform as osPlatform, arch as osArch } from "node:os";
8
+ import { join, dirname, resolve, sep } from "node:path";
8
9
  import { pipeline } from "node:stream/promises";
9
10
  import { Readable } from "node:stream";
10
11
  import { spawnSync } from "node:child_process";
12
+ import { randomBytes } from "node:crypto";
11
13
  import AdmZip from "adm-zip";
12
14
  export const PUB_BASE = "https://pub-e57a7c60f6934eb09a6600bf2fc59cdc.r2.dev";
13
- export const CHROMIUM_VERSION = "152.0.7977.65";
15
+ export const CHROMIUM_VERSION = "156.0.8078.48";
14
16
  /** This SDK's own version, compared against the manifest's `min_sdk_version`. */
15
- export const SDK_VERSION = "2.0.3";
17
+ export const SDK_VERSION = "2.1.1";
16
18
  // Version manifest (GitHub raw) — one tiny GET yields every archive's current
17
19
  // etag, so we never poll R2/S3 (no per-archive HEAD). Changed archives are then
18
20
  // pulled from PUB_BASE.
@@ -188,25 +190,80 @@ export class Runtime {
188
190
  }
189
191
  }
190
192
  saveManifest(m) {
191
- writeFileSync(this.manifestPath, JSON.stringify(m, null, 2));
193
+ // Whole or not at all: other processes read it (adoptInstalled).
194
+ const tmp = `${this.manifestPath}.tmp`;
195
+ writeFileSync(tmp, JSON.stringify(m, null, 2));
196
+ renameSync(tmp, this.manifestPath);
192
197
  }
193
198
  // ---- install ----
194
199
  async install(opts = {}) {
195
200
  const force = !!opts.force;
196
- if (this._checkedInProcess && !force)
201
+ if (this._checkedInProcess && !force) {
202
+ this.adoptInstalled();
197
203
  return;
204
+ }
205
+ // One install at a time over this cache, across processes and the SDKs.
206
+ const lock = await InstallLock.acquire(this.root);
207
+ try {
208
+ // Another call of this process did it while this one waited.
209
+ if (this._checkedInProcess && !force) {
210
+ this.adoptInstalled();
211
+ return;
212
+ }
213
+ await this.installLocked(force, lock);
214
+ }
215
+ finally {
216
+ lock.release();
217
+ }
218
+ }
219
+ /** Another process may have swapped the engine since this one checked: the
220
+ * version profiles claim follows the engine on disk, from its record. */
221
+ adoptInstalled() {
222
+ const local = this.loadManifest();
223
+ const v = local.installed_chromium_version;
224
+ if (!v || v === this._chromiumVersion)
225
+ return;
226
+ this._chromiumVersion = v;
227
+ this._greaseBrand = local.installed_grease_brand;
228
+ this._greaseVersion = local.installed_grease_version;
229
+ this._tls = local.installed_tls;
230
+ }
231
+ async installLocked(force, lock) {
232
+ const top = this.spec.binarySubpath[0];
233
+ // A run that died between the two renames of an update left the engine
234
+ // as `.previous`: put back before anything asks whether it is installed.
235
+ recoverEngine(this.root, top);
236
+ sweepLeftovers(this.root, top, this.spec.browser.key, this.spec.binarySubpath);
198
237
  const local = this.loadManifest();
199
238
  const remote = await this.fetchManifest();
200
- // Remember the engine version + grease so launch can normalise profiles.
201
- this._chromiumVersion = remote.chromiumVersion ?? CHROMIUM_VERSION;
202
- this._greaseBrand = remote.greaseBrand;
203
- this._greaseVersion = remote.greaseVersion;
204
- this._tls = remote.tls;
205
- // Refused rather than installed: this SDK could not configure it.
206
- if (remote.minSdkVersion && Runtime.versionLt(SDK_VERSION, remote.minSdkVersion)) {
239
+ // An engine this SDK is too old to drive is not installed, but the one
240
+ // already on disk keeps running. Refusing outright stopped every run on an
241
+ // engine that worked yesterday, for an update nobody had asked for. With
242
+ // nothing installed, or a reinstall asked for, there is nothing to keep.
243
+ const tooOld = !!remote.minSdkVersion && Runtime.versionLt(SDK_VERSION, remote.minSdkVersion);
244
+ if (tooOld && (force || !this.installed)) {
207
245
  throw new Error(`this engine build needs @proxyshard/shardx ${remote.minSdkVersion} or newer — `
208
246
  + `you are on ${SDK_VERSION}; upgrade the SDK first`);
209
247
  }
248
+ // Remember the engine version + grease so launch can normalise profiles.
249
+ // Without the manifest, what is ALREADY installed — not the version this
250
+ // SDK was published with. Falling back to the constant made an offline
251
+ // run record 152 over an engine that is 156, and profiles then declared
252
+ // a version the engine does not have. Skipping an update, the manifest
253
+ // describes an engine that is not the one on disk, so it is not read.
254
+ const offered = tooOld ? undefined : remote;
255
+ this._chromiumVersion =
256
+ offered?.chromiumVersion ?? this.effectiveInstalledVersion(local) ?? CHROMIUM_VERSION;
257
+ this._greaseBrand = offered?.greaseBrand ?? local.installed_grease_brand;
258
+ this._greaseVersion = offered?.greaseVersion ?? local.installed_grease_version;
259
+ this._tls = offered?.tls ?? local.installed_tls;
260
+ if (tooOld) {
261
+ console.warn(`[shardx] engine ${remote.chromiumVersion ?? "update"} needs @proxyshard/shardx `
262
+ + `${remote.minSdkVersion} or newer (this is ${SDK_VERSION}); staying on the installed `
263
+ + `engine ${this._chromiumVersion}. Upgrade the SDK to get it.`);
264
+ this._checkedInProcess = true;
265
+ return;
266
+ }
210
267
  // Unknown is never a mismatch, so adopt a stamp once or the first bump
211
268
  // never lands.
212
269
  if (this.installed && remote.engineBuild && !this.installedEngineBuild(local)) {
@@ -214,18 +271,55 @@ export class Runtime {
214
271
  }
215
272
  // Manifest unreachable → don't force a re-download.
216
273
  const needBrowser = force || !this.installed || this.engineOutdated(local, remote);
274
+ let swapped = false;
217
275
  if (needBrowser) {
218
- // Wipe the old engine tree first so a leftover `<old>.manifest` / stale
219
- // libs can't linger beside the new ones (that pinned the detected version
220
- // → endless re-download). binarySubpath[0] is the engine root dir.
221
- rmSync(join(this.root, this.spec.binarySubpath[0]), { recursive: true, force: true });
222
- local.browser_etag = await this.downloadAndExtract(this.spec.browser, this.root);
276
+ // Nothing installed is touched until a complete new tree is unpacked
277
+ // beside it (see installEngine). The old tree still has to go whole — a
278
+ // leftover `<old>.manifest` or a stale lib beside the new ones pinned the
279
+ // detected version and the SDK re-downloaded for ever — but a download or
280
+ // an archive that fails must never be what removes it: that left the
281
+ // machine with no engine and nothing to fall back to.
282
+ try {
283
+ local.browser_etag = await this.installEngine(remote.archives[this.spec.browser.key], force, lock);
284
+ swapped = true;
285
+ }
286
+ catch (e) {
287
+ // With nothing installed, or a reinstall asked for, there is nothing to stay on.
288
+ if (force || !this.installed)
289
+ throw e;
290
+ // The engine on disk works: stay on it, as for an update this SDK is too old for.
291
+ this._chromiumVersion = this.effectiveInstalledVersion(local) ?? CHROMIUM_VERSION;
292
+ this._greaseBrand = local.installed_grease_brand;
293
+ this._greaseVersion = local.installed_grease_version;
294
+ this._tls = local.installed_tls;
295
+ console.warn(`[shardx] the engine update was not installed: ${e.message}. Staying on the `
296
+ + `installed engine ${this._chromiumVersion}; the update is tried again on the next run.`);
297
+ }
298
+ }
299
+ if (swapped) {
223
300
  if (remote.engineBuild)
224
301
  local.installed_engine_build = remote.engineBuild;
302
+ // Saved at once: the engine on disk is the new one, whatever fails next.
303
+ // The new tree has no CDM yet, so the old one's etag must not say it has.
304
+ local.installed_chromium_version = this._chromiumVersion;
305
+ if (remote.greaseBrand)
306
+ local.installed_grease_brand = remote.greaseBrand;
307
+ if (remote.greaseVersion)
308
+ local.installed_grease_version = remote.greaseVersion;
309
+ if (remote.tls)
310
+ local.installed_tls = remote.tls;
311
+ delete local.widevine_etag;
312
+ this.saveManifest(local);
225
313
  }
226
- if (this.spec.widevine && (needBrowser || !local.widevine_etag)) {
227
- local.widevine_etag = await this.downloadAndExtract(this.spec.widevine, this.root);
228
- this.placeWidevine();
314
+ if (this.spec.widevine && (swapped || !local.widevine_etag)) {
315
+ // The CDM is no reason to fail a run whose engine is in: tried again next time.
316
+ try {
317
+ local.widevine_etag = await this.downloadAndExtract(this.spec.widevine, this.root);
318
+ this.placeWidevine();
319
+ }
320
+ catch (e) {
321
+ console.warn(`[shardx] Widevine CDM not installed (${e.message}); tried again on the next run.`);
322
+ }
229
323
  }
230
324
  const remoteFp = remote.archives[FINGERPRINTS_ARCHIVE.key];
231
325
  const fpDirHasJson = readdirSync(this.fingerprintsDir).some((f) => f.endsWith(".json"));
@@ -234,9 +328,18 @@ export class Runtime {
234
328
  if (remoteFp !== undefined)
235
329
  local.fingerprints_etag = remoteFp;
236
330
  }
237
- // Authoritative: we just extracted exactly this version (old tree wiped
238
- // first). Recording the known value beats re-reading it off disk.
331
+ // Authoritative: the tree was replaced whole with exactly this version.
332
+ // Recording the known value beats re-reading it off disk. What the
333
+ // manifest says describes the engine on disk only when that is current.
239
334
  local.installed_chromium_version = this._chromiumVersion;
335
+ if (!needBrowser || swapped) {
336
+ if (remote.greaseBrand)
337
+ local.installed_grease_brand = remote.greaseBrand;
338
+ if (remote.greaseVersion)
339
+ local.installed_grease_version = remote.greaseVersion;
340
+ if (remote.tls)
341
+ local.installed_tls = remote.tls;
342
+ }
240
343
  this.saveManifest(local);
241
344
  // Linux/mac archives produced on Windows lose every Unix exec bit;
242
345
  // restore +x on every ELF/Mach-O file under the engine tree (not
@@ -277,7 +380,10 @@ export class Runtime {
277
380
  return { archives: {} };
278
381
  }
279
382
  }
280
- async downloadAndExtract(arch, dest) {
383
+ /** Downloads `arch` beside `dest` and returns where it landed, with its etag.
384
+ * `unpacks`: refused before a byte is written when the disk cannot also
385
+ * hold it unpacked beside what is installed. */
386
+ async download(arch, dest, unpacks = false) {
281
387
  const url = `${PUB_BASE}/${arch.key}`;
282
388
  mkdirSync(dest, { recursive: true });
283
389
  const tmp = join(dest, `.${arch.key}.tmp`);
@@ -286,6 +392,15 @@ export class Runtime {
286
392
  throw new Error(`download ${arch.key}: HTTP ${r.status}`);
287
393
  const etag = r.headers.get("etag")?.replace(/^"|"$/g, "") ?? "";
288
394
  const total = Number(r.headers.get("content-length") ?? 0);
395
+ if (unpacks && total > 0) {
396
+ try {
397
+ assertRoom(dest, total * (1 + UNPACK_GUESS) + SPACE_MARGIN);
398
+ }
399
+ catch (e) {
400
+ await r.body.cancel().catch(() => { });
401
+ throw e;
402
+ }
403
+ }
289
404
  let received = 0;
290
405
  const reader = r.body.getReader();
291
406
  const out = createWriteStream(tmp);
@@ -306,6 +421,16 @@ export class Runtime {
306
421
  stream.on("data", () => this.progress(arch.label, received, total));
307
422
  }
308
423
  await pipeline(stream, out);
424
+ // A connection cut mid-body still leaves us with a 200 and a short file;
425
+ // the length the server promised is the only thing that says so.
426
+ if (total > 0 && received < total) {
427
+ rmQuiet(tmp);
428
+ throw new Error(`download ${arch.key}: got ${received} of ${total} bytes`);
429
+ }
430
+ return { tmp, etag };
431
+ }
432
+ /** Unpacks an archive `download` left behind, and removes it. */
433
+ extractArchive(tmp, dest) {
309
434
  // Extract. IMPORTANT: on macOS/Linux shell out to the system
310
435
  // `unzip` instead of adm-zip — adm-zip writes symlinks as ordinary
311
436
  // text files (every `Versions/Current/...` link in a `.app`
@@ -319,6 +444,106 @@ export class Runtime {
319
444
  systemUnzip(tmp, dest);
320
445
  }
321
446
  rmSync(tmp, { force: true });
447
+ }
448
+ /** Brings the engine to the archive the manifest offers (`wanted`: its etag,
449
+ * when known). A checked tree an earlier run staged is used as it is; else
450
+ * the archive is downloaded and staged. Returns the etag that went in. */
451
+ async installEngine(wanted, force, lock) {
452
+ const top = this.spec.binarySubpath[0];
453
+ const { staging } = enginePaths(this.root, top);
454
+ const kept = readStaged(staging, top, this.spec.binarySubpath);
455
+ let etag;
456
+ if (kept && !force && (wanted === undefined || kept.etag === wanted)) {
457
+ etag = kept.etag;
458
+ }
459
+ else {
460
+ // An outdated tree goes before the download: its room counts.
461
+ rmSync(staging, { recursive: true, force: true });
462
+ const dl = await this.download(this.spec.browser, this.root, true);
463
+ this.stageEngine(dl.tmp, dl.etag);
464
+ etag = dl.etag;
465
+ }
466
+ this.swapStaged(lock);
467
+ return etag;
468
+ }
469
+ /** Unpacks the engine archive at `tmp` into the staging folder beside the
470
+ * live engine and checks every file the archive lists. Nothing installed is
471
+ * touched: the tree waits there, noted, until `swapStaged` moves it in. The
472
+ * archive is removed either way. */
473
+ stageEngine(tmp, etag) {
474
+ const top = this.spec.binarySubpath[0];
475
+ const { staging } = enginePaths(this.root, top);
476
+ const key = this.spec.browser.key;
477
+ const entry = this.spec.binarySubpath.join("/");
478
+ // Zips produced on Windows store backslashes; compare on one spelling.
479
+ const norm = (p) => p.replace(/\\/g, "/").replace(/^\.\//, "");
480
+ try {
481
+ // The table of contents sits at the end of the file: exactly what a
482
+ // download cut short is missing.
483
+ let listing;
484
+ try {
485
+ listing = zipListing(tmp);
486
+ }
487
+ catch (e) {
488
+ throw new Error(`download ${key}: not a readable zip (${e.message}) — not touching the installed engine`);
489
+ }
490
+ const names = listing.names.map(norm);
491
+ if (!names.includes(entry)) {
492
+ throw new Error(`download ${key}: no ${entry} inside — not touching the installed engine`);
493
+ }
494
+ // A dirty staging dir would mix an old engine into the new one; one we
495
+ // cannot clear stops the install while the engine still works.
496
+ rmSync(staging, { recursive: true, force: true });
497
+ assertRoom(this.root, listing.unpacked + SPACE_MARGIN);
498
+ try {
499
+ this.extractArchive(tmp, staging);
500
+ const gone = names.find((n) => n.startsWith(`${top}/`) && !n.endsWith("/") && !lexists(join(staging, n)));
501
+ if (gone)
502
+ throw new Error(`download ${key}: unpacked without ${gone} — an antivirus may have removed it`);
503
+ if (osPlatform() !== "win32")
504
+ fixUnixExecBits(join(staging, top));
505
+ writeFileSync(join(staging, STAGED_NOTE), JSON.stringify({ etag, files: countFiles(join(staging, top)) }));
506
+ }
507
+ catch (e) {
508
+ rmQuiet(staging);
509
+ throw e;
510
+ }
511
+ // Whatever else the archive carries (`__MACOSX` and such) replaces its
512
+ // namesake in the cache root, as extracting over the root used to do.
513
+ for (const name of readdirSync(staging)) {
514
+ if (name === top || name === STAGED_NOTE)
515
+ continue;
516
+ rmSync(join(this.root, name), { recursive: true, force: true });
517
+ renameSync(join(staging, name), join(this.root, name));
518
+ }
519
+ }
520
+ finally {
521
+ rmQuiet(tmp);
522
+ }
523
+ }
524
+ /** Swaps the staged tree in. Refused while processes run from the engine;
525
+ * every refusal keeps the staged tree for the next run. */
526
+ swapStaged(lock) {
527
+ const top = this.spec.binarySubpath[0];
528
+ const { staging, target } = enginePaths(this.root, top);
529
+ if (!readStaged(staging, top, this.spec.binarySubpath)) {
530
+ rmQuiet(staging);
531
+ throw new Error("the unpacked engine update is no longer complete (an antivirus may have removed a file); it is downloaded again on the next run");
532
+ }
533
+ if (lock && !lock.held())
534
+ throw new Error("another process took the engine install over");
535
+ const busy = engineHooks.processesUnder(target);
536
+ if (busy > 0) {
537
+ throw new Error(`${busy} process${busy === 1 ? " is" : "es are"} still running from ${target}; the update is kept `
538
+ + "and goes in once the browsers started from it are closed");
539
+ }
540
+ swapEngineTree(this.root, top, join(staging, top));
541
+ rmQuiet(staging);
542
+ }
543
+ /** Downloads and unpacks in one step, for everything that has nothing to lose. */
544
+ async downloadAndExtract(arch, dest) {
545
+ const { tmp, etag } = await this.download(arch, dest);
546
+ this.extractArchive(tmp, dest);
322
547
  return etag;
323
548
  }
324
549
  placeWidevine() {
@@ -328,7 +553,11 @@ export class Runtime {
328
553
  const src = join(this.root, wrapper, "WidevineCdm");
329
554
  if (!existsSync(src))
330
555
  return;
331
- const dst = join(this.root, ...this.spec.widevineSubpath);
556
+ // On macOS the CDM sits inside the framework's versioned folder. That is
557
+ // the version of the engine on disk, not the one this SDK was published
558
+ // with: the constant put it in a folder the engine never reads.
559
+ const onDisk = this.installedEngineVersion() ?? CHROMIUM_VERSION;
560
+ const dst = join(this.root, ...this.spec.widevineSubpath.map((seg) => (seg === CHROMIUM_VERSION ? onDisk : seg)));
332
561
  if (existsSync(dst))
333
562
  rmSync(dst, { recursive: true, force: true });
334
563
  mkdirSync(dirname(dst), { recursive: true });
@@ -380,6 +609,465 @@ export class Runtime {
380
609
  rmSync(staging, { recursive: true, force: true });
381
610
  }
382
611
  }
612
+ // ---- engine swap (#122) ----
613
+ // Shared with the Python and Rust SDKs, which use the same cache dir: in
614
+ // `<cache>`, `.install.lock`, `.<top>.staging/` (+ `staged.json`),
615
+ // `.<top>.previous` and the journal `.<top>.swapping` mean the same in all three.
616
+ /** Room kept free beyond what the unpacked engine takes. */
617
+ const SPACE_MARGIN = 256 * 1024 * 1024;
618
+ /** Unpacked bytes per archive byte, guessed before the archive is in. */
619
+ const UNPACK_GUESS = 3;
620
+ /** A lock this old is taken whoever holds it (a pid the OS gave to another). */
621
+ const LOCK_MAX_AGE_MS = 6 * 60 * 60 * 1000;
622
+ const STAGED_NOTE = "staged.json";
623
+ function enginePaths(root, top) {
624
+ return {
625
+ target: join(root, top),
626
+ previous: join(root, `.${top}.previous`),
627
+ journal: join(root, `.${top}.swapping`),
628
+ staging: join(root, `.${top}.staging`),
629
+ };
630
+ }
631
+ /** What the install asks the OS; tests swap in their own. */
632
+ export const engineHooks = { freeBytes, processesUnder };
633
+ const realFs = {
634
+ rename: (from, to) => renameSync(from, to),
635
+ rm: (path) => rmSync(path, { recursive: true, force: true }),
636
+ tries: 6,
637
+ };
638
+ /** `f` again while a file is held for now (an antivirus reading a new one);
639
+ * any other error at once. */
640
+ function retrySync(f, tries) {
641
+ let pause = 100;
642
+ for (let i = 1;; i++) {
643
+ try {
644
+ f();
645
+ return;
646
+ }
647
+ catch (e) {
648
+ const code = e.code;
649
+ const held = code === "EBUSY" || (osPlatform() === "win32" && (code === "EPERM" || code === "EACCES"));
650
+ if (i >= tries || !held)
651
+ throw e;
652
+ }
653
+ Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, pause);
654
+ pause = Math.min(pause * 2, 2000);
655
+ }
656
+ }
657
+ /** Files and links under `dir`, links not followed. */
658
+ export function countFiles(dir) {
659
+ let entries;
660
+ try {
661
+ entries = readdirSync(dir, { withFileTypes: true });
662
+ }
663
+ catch {
664
+ return 0;
665
+ }
666
+ let n = 0;
667
+ for (const e of entries)
668
+ n += e.isDirectory() ? countFiles(join(dir, e.name)) : 1;
669
+ return n;
670
+ }
671
+ /** On disk before the rename it announces, whole or not at all. */
672
+ function writeJournal(path, files) {
673
+ const tmp = `${path}.tmp`;
674
+ const fd = openSync(tmp, "w");
675
+ try {
676
+ writeSync(fd, JSON.stringify({ files }));
677
+ fsyncSync(fd);
678
+ }
679
+ finally {
680
+ closeSync(fd);
681
+ }
682
+ renameSync(tmp, path);
683
+ }
684
+ function readJournal(path) {
685
+ try {
686
+ const v = JSON.parse(readFileSync(path, "utf8"));
687
+ return typeof v?.files === "number" ? v.files : undefined;
688
+ }
689
+ catch {
690
+ return undefined;
691
+ }
692
+ }
693
+ /** Puts `<root>/.<top>.previous` back when a run died between the two renames
694
+ * of an update (or could not undo the first) — only as its journal left it,
695
+ * and only whole. Any other copy is a leftover and goes: one a cleanup left
696
+ * half removed never stands in for a missing engine. True when put back. */
697
+ export function recoverEngine(root, top, fs = realFs) {
698
+ const { target, previous, journal } = enginePaths(root, top);
699
+ if (existsSync(previous)) {
700
+ const moved = readJournal(journal);
701
+ if (!existsSync(target) && moved !== undefined && countFiles(previous) === moved) {
702
+ // Still held: kept, with its journal, for the next try.
703
+ try {
704
+ retrySync(() => fs.rename(previous, target), fs.tries ?? 1);
705
+ }
706
+ catch {
707
+ return false;
708
+ }
709
+ rmQuiet(journal);
710
+ return true;
711
+ }
712
+ try {
713
+ fs.rm(previous);
714
+ }
715
+ catch { /* the next install() tries again */ }
716
+ }
717
+ if (!existsSync(previous))
718
+ rmQuiet(journal);
719
+ return false;
720
+ }
721
+ /** Swaps the complete tree at `staged` in for `<root>/<top>`: live → previous,
722
+ * staged → live, the first undone if the second fails. Any failure leaves the
723
+ * engine that was there (or `.previous` with its journal, put back by the
724
+ * next install()). */
725
+ export function swapEngineTree(root, top, staged, fs = realFs) {
726
+ const { target, previous, journal } = enginePaths(root, top);
727
+ const again = (f) => retrySync(f, fs.tries ?? 1);
728
+ recoverEngine(root, top, fs);
729
+ if (existsSync(previous)) {
730
+ throw new Error(existsSync(target)
731
+ ? `a copy of an earlier engine at ${previous} could not be removed; delete it and try again`
732
+ : `the previous engine at ${previous} could not be put back yet; close the browsers started from it and try again`);
733
+ }
734
+ const hadLive = existsSync(target);
735
+ if (hadLive) {
736
+ writeJournal(journal, countFiles(target));
737
+ try {
738
+ again(() => fs.rename(target, previous));
739
+ }
740
+ catch (e) {
741
+ rmQuiet(journal);
742
+ throw new Error(`the engine at ${target} is in use and was not replaced (${e.message}); `
743
+ + "close the browsers started from it and try again");
744
+ }
745
+ }
746
+ try {
747
+ again(() => fs.rename(staged, target));
748
+ }
749
+ catch (e) {
750
+ if (hadLive) {
751
+ try {
752
+ again(() => fs.rename(previous, target));
753
+ }
754
+ catch {
755
+ // The journal stays: it is what puts the engine back.
756
+ throw new Error(`replacing the engine failed (${e.message}) and the previous one could not be `
757
+ + `put back yet; it is kept at ${previous} and restored by the next install()`);
758
+ }
759
+ rmQuiet(journal);
760
+ }
761
+ throw e;
762
+ }
763
+ rmQuiet(journal);
764
+ // A tree Windows still holds is clutter: the next install() removes it.
765
+ try {
766
+ fs.rm(previous);
767
+ }
768
+ catch { /* clutter */ }
769
+ }
770
+ /** A tree an earlier run unpacked, checked and noted, still whole. */
771
+ function readStaged(staging, top, binarySubpath) {
772
+ try {
773
+ const v = JSON.parse(readFileSync(join(staging, STAGED_NOTE), "utf8"));
774
+ if (typeof v?.etag !== "string" || typeof v?.files !== "number")
775
+ return undefined;
776
+ const tree = join(staging, top);
777
+ if (!existsSync(join(staging, ...binarySubpath)) || countFiles(tree) !== v.files)
778
+ return undefined;
779
+ return { etag: v.etag, files: v.files };
780
+ }
781
+ catch {
782
+ return undefined;
783
+ }
784
+ }
785
+ /** What an install that died left: an unfinished staging folder, a partial
786
+ * download. A checked staged tree stays for the next swap. */
787
+ function sweepLeftovers(root, top, key, binarySubpath) {
788
+ const { staging } = enginePaths(root, top);
789
+ if (existsSync(staging) && !readStaged(staging, top, binarySubpath))
790
+ rmQuiet(staging);
791
+ rmQuiet(join(root, `.${key}.tmp`));
792
+ }
793
+ /** Bytes the current user may still write on the disk holding `dir`. */
794
+ export function freeBytes(dir) {
795
+ // Node 18.15 and later.
796
+ const statfs = nodeFs.statfsSync;
797
+ if (!statfs)
798
+ return undefined;
799
+ try {
800
+ const s = statfs(dir);
801
+ return s.bavail * s.bsize;
802
+ }
803
+ catch {
804
+ return undefined;
805
+ }
806
+ }
807
+ function assertRoom(dir, need) {
808
+ const free = engineHooks.freeBytes(dir);
809
+ if (free !== undefined && free < need) {
810
+ const mb = (n) => Math.ceil(n / (1 << 20));
811
+ throw new Error(`not enough free disk space for the engine update: it needs about ${mb(need)} MB and `
812
+ + `${mb(free)} MB is free in ${dir}; the engine you have was not touched`);
813
+ }
814
+ }
815
+ /** How many processes run from `dir`. On macOS and Linux a swap would pull
816
+ * the files from under them; Windows refuses the rename itself. */
817
+ export function processesUnder(dir) {
818
+ // As given and as resolved: a process names the path it was started by.
819
+ let roots;
820
+ try {
821
+ roots = [...new Set([resolve(dir), realpathSync(dir)])].map((r) => r.replace(/[\\/]+$/, "") + sep);
822
+ }
823
+ catch {
824
+ return 0;
825
+ }
826
+ const under = (p) => roots.some((r) => p.startsWith(r));
827
+ if (osPlatform() === "linux") {
828
+ let pids;
829
+ try {
830
+ pids = readdirSync("/proc");
831
+ }
832
+ catch {
833
+ return 0;
834
+ }
835
+ let n = 0;
836
+ for (const pid of pids) {
837
+ if (!/^\d+$/.test(pid))
838
+ continue;
839
+ // A replaced binary reads "<path> (deleted)": still that folder.
840
+ try {
841
+ if (under(readlinkSync(`/proc/${pid}/exe`).replace(/ \(deleted\)$/, "")))
842
+ n++;
843
+ }
844
+ catch { /* gone, or not ours */ }
845
+ }
846
+ return n;
847
+ }
848
+ if (osPlatform() === "darwin") {
849
+ const r = spawnSync("ps", ["-axwwo", "comm="], { encoding: "utf8", stdio: ["ignore", "pipe", "ignore"] });
850
+ return (r.stdout ?? "").split("\n").filter((l) => under(l.trim())).length;
851
+ }
852
+ return 0;
853
+ }
854
+ /** One install at a time over a cache dir, across processes and the three
855
+ * SDKs (same file, same rules). A holder that died is taken over. */
856
+ export class InstallLock {
857
+ path;
858
+ token;
859
+ constructor(path, token) {
860
+ this.path = path;
861
+ this.token = token;
862
+ }
863
+ static async acquire(root, opts = {}) {
864
+ const path = join(root, ".install.lock");
865
+ const token = randomBytes(8).toString("hex");
866
+ let told = false;
867
+ for (;;) {
868
+ if (createLock(path, token))
869
+ return new InstallLock(path, token);
870
+ const seen = readLock(path);
871
+ if (seen === null)
872
+ continue; // released meanwhile
873
+ if (lockIsStale(path, seen)) {
874
+ stealLock(path, seen, token);
875
+ continue;
876
+ }
877
+ if (!told && seen.pid !== process.pid) {
878
+ console.warn(`[shardx] waiting for another process (pid ${seen.pid ?? "?"}) to finish installing the engine… `
879
+ + `(if none is running, delete ${path})`);
880
+ told = true;
881
+ }
882
+ await new Promise((r) => setTimeout(r, (opts.pollMs ?? 500) + Math.random() * 100));
883
+ }
884
+ }
885
+ /** Still ours: nobody took it over as stale. */
886
+ held() { return readLock(this.path)?.token === this.token; }
887
+ release() {
888
+ if (this.held()) {
889
+ try {
890
+ unlinkSync(this.path);
891
+ }
892
+ catch { /* gone */ }
893
+ }
894
+ }
895
+ }
896
+ function createLock(path, token) {
897
+ let fd;
898
+ try {
899
+ fd = openSync(path, "wx");
900
+ }
901
+ catch (e) {
902
+ if (e.code === "EEXIST")
903
+ return false;
904
+ throw e;
905
+ }
906
+ try {
907
+ writeSync(fd, JSON.stringify({ pid: process.pid, host: hostname().toLowerCase(), token, at: Date.now() }));
908
+ fsyncSync(fd);
909
+ }
910
+ finally {
911
+ closeSync(fd);
912
+ }
913
+ return true;
914
+ }
915
+ /** null when there is no lock; {} when it cannot be read as one. */
916
+ function readLock(path) {
917
+ let text;
918
+ try {
919
+ text = readFileSync(path, "utf8");
920
+ }
921
+ catch {
922
+ return null;
923
+ }
924
+ try {
925
+ const v = JSON.parse(text);
926
+ return v && typeof v === "object" ? v : {};
927
+ }
928
+ catch {
929
+ return {};
930
+ }
931
+ }
932
+ function lockIsStale(path, l) {
933
+ let mtime;
934
+ try {
935
+ mtime = statSync(path).mtimeMs;
936
+ }
937
+ catch {
938
+ return false;
939
+ }
940
+ // Unreadable: being written this instant, or by a process that died doing so.
941
+ if (typeof l.token !== "string")
942
+ return Date.now() - mtime > 10_000;
943
+ if (Date.now() - (typeof l.at === "number" ? l.at : mtime) > LOCK_MAX_AGE_MS)
944
+ return true;
945
+ // Another computer's process cannot be asked about.
946
+ if (l.host !== hostname().toLowerCase())
947
+ return false;
948
+ return !pidAlive(l.pid);
949
+ }
950
+ export function pidAlive(pid) {
951
+ if (typeof pid !== "number" || pid <= 0)
952
+ return false;
953
+ try {
954
+ process.kill(pid, 0);
955
+ return true;
956
+ }
957
+ catch (e) {
958
+ return e.code === "EPERM";
959
+ }
960
+ }
961
+ /** Moves the stale lock aside and drops it, unless what moved was a fresh one
962
+ * another process took in the meantime: that one is put back. */
963
+ function stealLock(path, seen, token) {
964
+ const aside = `${path}.stale-${token}`;
965
+ try {
966
+ renameSync(path, aside);
967
+ }
968
+ catch {
969
+ return;
970
+ }
971
+ const got = readLock(aside);
972
+ if (got && got.token !== seen.token) {
973
+ try {
974
+ linkSync(aside, path);
975
+ }
976
+ catch { /* a third one has it */ }
977
+ }
978
+ try {
979
+ unlinkSync(aside);
980
+ }
981
+ catch { /* gone */ }
982
+ }
983
+ /** The archive's own table of contents, read from its end without loading the
984
+ * rest: entry names and the bytes they unpack to. Throws when there is none. */
985
+ export function zipListing(path) {
986
+ const fd = openSync(path, "r");
987
+ try {
988
+ const size = fstatSync(fd).size;
989
+ const tailLen = Math.min(size, 22 + 0xffff);
990
+ const tail = Buffer.alloc(tailLen);
991
+ readSync(fd, tail, 0, tailLen, size - tailLen);
992
+ let end = -1;
993
+ for (let i = tailLen - 22; i >= 0; i--) {
994
+ if (tail.readUInt32LE(i) === 0x06054b50) {
995
+ end = i;
996
+ break;
997
+ }
998
+ }
999
+ if (end < 0)
1000
+ throw new Error("no end of central directory");
1001
+ let count = tail.readUInt16LE(end + 10);
1002
+ let cdSize = tail.readUInt32LE(end + 12);
1003
+ let cdOff = tail.readUInt32LE(end + 16);
1004
+ if (count === 0xffff || cdSize === 0xffffffff || cdOff === 0xffffffff) {
1005
+ // ZIP64: its locator sits just before the end record.
1006
+ const loc = end - 20;
1007
+ if (loc < 0 || tail.readUInt32LE(loc) !== 0x07064b50)
1008
+ throw new Error("no zip64 locator");
1009
+ const rec = Buffer.alloc(56);
1010
+ readSync(fd, rec, 0, 56, Number(tail.readBigUInt64LE(loc + 8)));
1011
+ if (rec.readUInt32LE(0) !== 0x06064b50)
1012
+ throw new Error("no zip64 end record");
1013
+ count = Number(rec.readBigUInt64LE(32));
1014
+ cdSize = Number(rec.readBigUInt64LE(40));
1015
+ cdOff = Number(rec.readBigUInt64LE(48));
1016
+ }
1017
+ if (cdOff + cdSize > size)
1018
+ throw new Error("central directory past the end of the file");
1019
+ const cd = Buffer.alloc(cdSize);
1020
+ readSync(fd, cd, 0, cdSize, cdOff);
1021
+ const names = [];
1022
+ let unpacked = 0;
1023
+ let p = 0;
1024
+ for (let n = 0; n < count; n++) {
1025
+ if (p + 46 > cd.length || cd.readUInt32LE(p) !== 0x02014b50)
1026
+ throw new Error("damaged central directory");
1027
+ let usize = cd.readUInt32LE(p + 24);
1028
+ const nameLen = cd.readUInt16LE(p + 28);
1029
+ const extraLen = cd.readUInt16LE(p + 30);
1030
+ const commentLen = cd.readUInt16LE(p + 32);
1031
+ names.push(cd.toString("utf8", p + 46, p + 46 + nameLen));
1032
+ if (usize === 0xffffffff) {
1033
+ // The zip64 extra field leads with the real size.
1034
+ for (let e = p + 46 + nameLen; e + 4 <= p + 46 + nameLen + extraLen;) {
1035
+ const id = cd.readUInt16LE(e);
1036
+ const len = cd.readUInt16LE(e + 2);
1037
+ if (id === 0x0001 && len >= 8) {
1038
+ usize = Number(cd.readBigUInt64LE(e + 4));
1039
+ break;
1040
+ }
1041
+ e += 4 + len;
1042
+ }
1043
+ }
1044
+ unpacked += usize;
1045
+ p += 46 + nameLen + extraLen + commentLen;
1046
+ }
1047
+ return { names, unpacked };
1048
+ }
1049
+ finally {
1050
+ closeSync(fd);
1051
+ }
1052
+ }
1053
+ function lexists(p) {
1054
+ try {
1055
+ lstatSync(p);
1056
+ return true;
1057
+ }
1058
+ catch {
1059
+ return false;
1060
+ }
1061
+ }
1062
+ /** Delete that is allowed to fail: a staging or backup dir we cannot remove
1063
+ * (Windows holds files of a running engine open) is clutter, not a reason to
1064
+ * report an install that already succeeded as failed. */
1065
+ function rmQuiet(p) {
1066
+ try {
1067
+ rmSync(p, { recursive: true, force: true });
1068
+ }
1069
+ catch { /* clutter */ }
1070
+ }
383
1071
  /** Extract via /usr/bin/unzip — preserves symlinks and permission
384
1072
  * bits that adm-zip silently drops. Required for any macOS .app
385
1073
  * bundle (Versions/Current symlinks + Helper exec bits).
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proxyshard/shardx",
3
- "version": "2.0.3",
3
+ "version": "2.1.1",
4
4
  "description": "Self-contained Node SDK for the ShardX anti-detect browser — downloads the engine + Widevine + fingerprint library on first use, launches isolated profiles.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -18,6 +18,7 @@
18
18
  ],
19
19
  "scripts": {
20
20
  "build": "tsc",
21
+ "test": "tsc && node --test test/*.test.mjs",
21
22
  "prepublishOnly": "npm run build"
22
23
  },
23
24
  "engines": {
@@ -47,7 +48,7 @@
47
48
  "access": "public"
48
49
  },
49
50
  "dependencies": {
50
- "adm-zip": "^0.5.16",
51
+ "adm-zip": "^0.6.1",
51
52
  "patchright": "^1.49.0",
52
53
  "socks-proxy-agent": "^8.0.4",
53
54
  "undici": "^6.19.0"