@proxyshard/shardx 2.1.0 → 2.1.2
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/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +2 -1
- package/dist/browser.js.map +1 -1
- package/dist/profile.d.ts +7 -0
- package/dist/profile.d.ts.map +1 -1
- package/dist/profile.js +26 -0
- package/dist/profile.js.map +1 -1
- package/dist/runtime.d.ts +71 -2
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +701 -33
- package/dist/runtime.js.map +1 -1
- package/package.json +2 -1
package/dist/browser.d.ts.map
CHANGED
|
@@ -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,
|
|
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,EAA6D,MAAM,cAAc,CAAC;AAElG,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;CAuGlF"}
|
package/dist/browser.js
CHANGED
|
@@ -13,7 +13,7 @@ import { existsSync, readFileSync, rmSync, writeFileSync } from "node:fs";
|
|
|
13
13
|
import { join } from "node:path";
|
|
14
14
|
import { hasAutoFields, resolveAutoFields } from "./autoResolve.js";
|
|
15
15
|
import { geoCheckVia } from "./geo.js";
|
|
16
|
-
import { userDataDir, applyEngineVersion } from "./profile.js";
|
|
16
|
+
import { userDataDir, applyAppleWebGpuFeatures, applyEngineVersion } from "./profile.js";
|
|
17
17
|
import { parseProxy, probeUdp, proxyToArg } from "./proxy.js";
|
|
18
18
|
import { applyScreenStrategy, defaultScreenModeFor } from "./screen.js";
|
|
19
19
|
const noiseDefault = () => ({
|
|
@@ -124,6 +124,7 @@ export class Browser {
|
|
|
124
124
|
// Keep the spoofed Chrome version coherent with the installed engine,
|
|
125
125
|
// regardless of where the profile config came from (library / file / dict).
|
|
126
126
|
applyEngineVersion(profile.config, this.runtime.chromiumVersion, this.runtime.greaseBrand, this.runtime.greaseVersion, this.runtime.tls);
|
|
127
|
+
applyAppleWebGpuFeatures(profile.config);
|
|
127
128
|
applyNoiseSeeds(profile.config, profile.id);
|
|
128
129
|
const fpFile = join(udd, "fingerprint.json");
|
|
129
130
|
writeFileSync(fpFile, JSON.stringify(profile.config));
|
package/dist/browser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,6DAA6D;AAC7D,EAAE;AACF,uEAAuE;AACvE,+CAA+C;AAC/C,wEAAwE;AACxE,4DAA4D;AAC5D,sEAAsE;AACtE,qEAAqE;AACrE,kCAAkC;AAClC,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAgB,MAAM,UAAU,CAAC;AACrD,OAAO,EAAW,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,6DAA6D;AAC7D,EAAE;AACF,uEAAuE;AACvE,+CAA+C;AAC/C,wEAAwE;AACxE,4DAA4D;AAC5D,sEAAsE;AACtE,qEAAqE;AACrE,kCAAkC;AAClC,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAgB,MAAM,UAAU,CAAC;AACrD,OAAO,EAAW,WAAW,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClG,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAoB,MAAM,YAAY,CAAC;AAEhF,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAuB,MAAM,aAAa,CAAC;AAM7F,MAAM,YAAY,GAAG,GAAqD,EAAE,CAAC,CAAC;IAC5E,MAAM,EAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE;IACzC,KAAK,EAAS,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;IACvD,KAAK,EAAS,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE;IACzC,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;IACxD,OAAO,EAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE;IACzC,KAAK,EAAS,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE;CAC1C,CAAC,CAAC;AAEH,8DAA8D;AAC9D,SAAS,SAAS,CAAC,EAAU,EAAE,IAAY;IACzC,IAAI,CAAC,GAAG,UAAU,CAAC;IACnB,MAAM,CAAC,GAAG,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAChF,CAAC,MAAM,CAAC,CAAC;IACT,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC;AAED;;mDAEmD;AACnD,SAAS,eAAe,CAAC,MAA+B,EAAE,EAAU;IAClE,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAwD,CAAC;IACnF,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,KAAK,GAAG,YAAY,EAAE,CAAC;QACvB,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;IAC1B,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACzD,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;AACH,CAAC;AAqBD,MAAM,OAAO,cAAc;IAId;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAVH,QAAQ,GAAG,KAAK,CAAC;IAEzB,YACW,GAAW,EACX,WAAmB,EACnB,MAAqB,EACrB,OAAqB,EACrB,aAA4B,IAAI,EAChC,cAAuB,KAAK,EAC5B,aAAyB,MAAM,EAC/B,MAAsB,IAAI;QAP1B,QAAG,GAAH,GAAG,CAAQ;QACX,gBAAW,GAAX,WAAW,CAAQ;QACnB,WAAM,GAAN,MAAM,CAAe;QACrB,YAAO,GAAP,OAAO,CAAc;QACrB,eAAU,GAAV,UAAU,CAAsB;QAChC,gBAAW,GAAX,WAAW,CAAiB;QAC5B,eAAU,GAAV,UAAU,CAAqB;QAC/B,QAAG,GAAH,GAAG,CAAuB;IAClC,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI;QACzB,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG;YAAE,OAAO;QAC9B,IAAI,CAAC;YAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;YACpD,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;YACtD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC;gBAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,OAAO;IACW;IAA7B,YAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAEjD,KAAK,CAAC,MAAM,CAAC,OAAgB,EAAE,OAAsB,EAAE;QACrD,mEAAmE;QACnE,+DAA+D;QAC/D,2BAA2B;QAC3B,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAE7B,MAAM,MAAM,GAAuB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE9E,mEAAmE;QACnE,IAAI,GAAG,GAAmB,IAAI,CAAC;QAC/B,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,GAAG,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,IAAI,GAAmB,IAAI,CAAC,UAAU,IAAI,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvF,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAE1C,IAAI,UAAU,GAAkB,IAAI,CAAC;QACrC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,UAAU,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,KAAK,IAAI,CAAC;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC;QAC5D,IAAI,UAAU,GAAe,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;QACnD,IAAI,UAAU,KAAK,MAAM,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK;YAAE,UAAU,GAAG,UAAU,CAAC;QAEhF,oEAAoE;QACpE,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,qBAAqB,OAAO,CAAC,EAAE,OAAO,GAAG,EAAE,CAAC,CAAC;QACzD,sEAAsE;QACtE,4EAA4E;QAC5E,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EACtE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjE,wBAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;QAC7C,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAEtD,MAAM,IAAI,GAAa;YACrB,yBAAyB,MAAM,EAAE;YACjC,mBAAmB,GAAG,EAAE;YACxB,gBAAgB;SACjB,CAAC;QACF,2EAA2E;QAC3E,4EAA4E;QAC5E,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,kBAAkB;YACnD,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY;YAC3C,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,6BAA6B,CAAC,CAAC;QACrE,CAAC;QACD,uEAAuE;QACvE,mEAAmE;QACnE,IAAI,IAAI,KAAK,UAAU;YAAE,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC3D,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,IAAI,CAAC,kBAAkB,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CACP,2DAA2D,EAC3D,8BAA8B,CAC/B,CAAC;QACJ,CAAC;aAAM,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CACP,2DAA2D,EAC3D,iCAAiC,CAClC,CAAC;YACF,gEAAgE;YAChE,mEAAmE;YACnE,kEAAkE;YAClE,6DAA6D;YAC7D,IAAI,EAAE,GAAG,IAAI,CAAC,cAAc,IAAI,GAAG,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;gBAClB,IAAI,CAAC;oBAAC,EAAE,GAAG,CAAC,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,SAAS,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC;YAC3F,CAAC;YACD,IAAI,EAAE;gBAAE,IAAI,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,IAAI,UAAU,CAAC,SAAS,CAAC;gBAAE,MAAM,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9D,uEAAuE;YACvE,wEAAwE;YACxE,0DAA0D;YAC1D,qEAAqE;YACrE,+DAA+D;YAC/D,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,0BAA0B,EAAE,qBAAqB,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QAEjD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE;YACjD,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;YAC5C,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;SACvC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpE,OAAO,IAAI,cAAc,CACvB,KAAK,CAAC,GAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,CACzE,CAAC;IACJ,CAAC;CACF;AAED,KAAK,UAAU,eAAe,CAAC,GAAW,EAAE,SAAiB;IAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACrE,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gBACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxB,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,eAAe,CAAC,CAAC;oBAC/D,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;wBACT,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,IAAI,EAAuC,CAAC;wBACjE,IAAI,IAAI,CAAC,oBAAoB;4BAAE,OAAO,IAAI,CAAC,oBAAoB,CAAC;oBAClE,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAChC,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/profile.d.ts
CHANGED
|
@@ -53,6 +53,13 @@ export declare class FingerprintLibrary {
|
|
|
53
53
|
* 149-era profile is eleven entries short and reads as a mismatch.
|
|
54
54
|
*/
|
|
55
55
|
export declare function applyEngineVersion(config: Record<string, unknown>, chromiumVersion: string, greaseBrand?: string, greaseVersion?: string, tls?: Record<string, unknown>): void;
|
|
56
|
+
/**
|
|
57
|
+
* Add `APPLE_WEBGPU_ADDED` to an Apple M-series profile's `webgpu.features`, in
|
|
58
|
+
* sorted place; touches nothing else. An absent or empty list means "the host's
|
|
59
|
+
* own" and stays as it is. Mutates `config` in place. SDK equivalent of the
|
|
60
|
+
* launcher's profile migration of the same name.
|
|
61
|
+
*/
|
|
62
|
+
export declare function applyAppleWebGpuFeatures(config: Record<string, unknown>): void;
|
|
56
63
|
/** Per-profile state (cookies / IndexedDB / cache) — preserved across
|
|
57
64
|
* launches. Defaults to `./shardx-profiles/<id>/` next to the running
|
|
58
65
|
* script. Override per launch with `userDataDir` or per SDK with
|
package/dist/profile.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,QAAA,MAAM,aAAa,2EAA4E,CAAC;AAChG,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAOzD,qBAAa,OAAO;IAClB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAEpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM;IAKxD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAMtC,gFAAgF;IAChF,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAazD;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI;IA0BzC,IAAI,QAAQ,IAAI,MAAM,CAGrB;IAED,gDAAgD;IAChD,IAAI,YAAY,IAAI,OAAO,CAO1B;IAED,6FAA6F;IAC7F,IAAI,kBAAkB,IAAI,OAAO,CAIhC;IAED,IAAI,SAAS,IAAI,OAAO,CAKvB;CACF;AAED,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,OAAO;IAE7C,GAAG,IAAI,MAAM,EAAE;IAOd,MAAM,CAAC,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,SAAS,CAAC,MAAM,CAAC;IAY5D,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;CAQrC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,eAAe,EAAE,MAAM,EACvB,WAAW,CAAC,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,MAAM,EACtB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,IAAI,CAoCN;AAED;;;qCAGqC;AACrC,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAKtF"}
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,QAAA,MAAM,aAAa,2EAA4E,CAAC;AAChG,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAOzD,qBAAa,OAAO;IAClB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAEpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM;IAKxD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAMtC,gFAAgF;IAChF,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAazD;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI;IA0BzC,IAAI,QAAQ,IAAI,MAAM,CAGrB;IAED,gDAAgD;IAChD,IAAI,YAAY,IAAI,OAAO,CAO1B;IAED,6FAA6F;IAC7F,IAAI,kBAAkB,IAAI,OAAO,CAIhC;IAED,IAAI,SAAS,IAAI,OAAO,CAKvB;CACF;AAED,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,OAAO;IAE7C,GAAG,IAAI,MAAM,EAAE;IAOd,MAAM,CAAC,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,SAAS,CAAC,MAAM,CAAC;IAY5D,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;CAQrC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,eAAe,EAAE,MAAM,EACvB,WAAW,CAAC,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,MAAM,EACtB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,IAAI,CAoCN;AAKD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAa9E;AAED;;;qCAGqC;AACrC,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAKtF"}
|
package/dist/profile.js
CHANGED
|
@@ -193,6 +193,32 @@ export function applyEngineVersion(config, chromiumVersion, greaseBrand, greaseV
|
|
|
193
193
|
cfgTls[k] = v;
|
|
194
194
|
}
|
|
195
195
|
}
|
|
196
|
+
/** WebGPU features Chrome 156 reports on Apple M-series that older templates lack. */
|
|
197
|
+
const APPLE_WEBGPU_ADDED = ["texture-compression-unaligned"];
|
|
198
|
+
/**
|
|
199
|
+
* Add `APPLE_WEBGPU_ADDED` to an Apple M-series profile's `webgpu.features`, in
|
|
200
|
+
* sorted place; touches nothing else. An absent or empty list means "the host's
|
|
201
|
+
* own" and stays as it is. Mutates `config` in place. SDK equivalent of the
|
|
202
|
+
* launcher's profile migration of the same name.
|
|
203
|
+
*/
|
|
204
|
+
export function applyAppleWebGpuFeatures(config) {
|
|
205
|
+
const renderer = config["webgl"]?.["renderer"];
|
|
206
|
+
const webgpu = config["webgpu"];
|
|
207
|
+
if (typeof renderer !== "string" || webgpu?.["vendor"] !== "apple")
|
|
208
|
+
return;
|
|
209
|
+
const at = renderer.indexOf("Apple M");
|
|
210
|
+
if (at < 0 || !/[0-9]/.test(renderer.charAt(at + 7)))
|
|
211
|
+
return;
|
|
212
|
+
const list = webgpu["features"];
|
|
213
|
+
if (!Array.isArray(list) || list.length === 0)
|
|
214
|
+
return;
|
|
215
|
+
for (const feat of APPLE_WEBGPU_ADDED) {
|
|
216
|
+
if (list.includes(feat))
|
|
217
|
+
continue;
|
|
218
|
+
const i = list.findIndex((v) => typeof v === "string" && v > feat);
|
|
219
|
+
list.splice(i < 0 ? list.length : i, 0, feat);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
196
222
|
/** Per-profile state (cookies / IndexedDB / cache) — preserved across
|
|
197
223
|
* launches. Defaults to `./shardx-profiles/<id>/` next to the running
|
|
198
224
|
* script. Override per launch with `userDataDir` or per SDK with
|
package/dist/profile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sEAAsE;AACtE,UAAU;AACV,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,CAAU,CAAC;AAEhG,kEAAkE;AAClE,MAAM,UAAU,GAAmD;IACjE,KAAK,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;CAChC,CAAC;AAEF,MAAM,OAAO,OAAO;IACT,EAAE,CAAS;IACpB,MAAM,CAA0B;IAEhC,YAAY,MAA+B,EAAE,EAAW;QACtD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAG,aAAa;QACjE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAK,MAAM,CAAC,MAAM,CAAwB,IAAI,WAAW,CAAC;IACxE,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAY;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACnD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC7D,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,gFAAgF;IAChF,YAAY,CAAC,SAAkC;QAC7C,MAAM,GAAG,GAA4B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7E,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;mBAC5C,GAAG,CAAC,CAAC,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAI,GAAG,CAAC,CAAC,CAAY,EAAE,GAAI,CAAY,EAAE,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACb,CAAC;QACH,CAAC;QACD,OAAO,IAAI,OAAO,CAAC,GAAG,EAAG,SAAS,CAAC,MAAM,CAAwB,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC;IAED;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,OAAsB;QAChC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,YAAY,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;QACD,MAAM,EAAE,GAAG,IAAI,GAAG,CAAS,OAAO,CAAC,CAAC;QACpC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAwD,CAAC;QACxF,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACxC,KAAK,GAAG,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;QAC/B,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;YAC9B,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACxC,KAAK,GAAG,EAAE,CAAC;gBACX,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YACnB,CAAC;YACD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,SAAS;gBAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS;gBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,QAAQ;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAwC,CAAC;QAC5E,OAAQ,GAAG,EAAE,CAAC,UAAU,CAAwB,IAAI,EAAE,CAAC;IACzD,CAAC;IAED,gDAAgD;IAChD,IAAI,YAAY;QACd,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAwC,CAAC;QAC9E,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACzC,MAAM,UAAU,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAChE,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAwC,CAAC;QAC5E,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC7E,CAAC;IAED,6FAA6F;IAC7F,IAAI,kBAAkB;QACpB,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,KAAK,CAAC;QACpC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QACtC,OAAO,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,SAAS;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAA+C,CAAC;QAChF,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QACvB,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9F,CAAC;CACF;AAED,MAAM,OAAO,kBAAkB;IACA;IAA7B,YAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAEjD,GAAG;QACD,OAAO,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;aAC7C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;aAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;aACpC,IAAI,EAAE,CAAC;IACZ,CAAC;IAED,CAAC,MAAM,CAAC,OAA8B,EAAE;QACtC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,IAAI,CAAC;oBACH,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACxB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;wBAAE,SAAS;gBAChF,CAAC;gBAAC,MAAM,CAAC;oBAAC,SAAS;gBAAC,CAAC;YACvB,CAAC;YACD,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IAED,IAAI,CAAC,aAAqB;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,aAAa,OAAO,CAAC,CAAC;QACzE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,gBAAgB,aAAa,2BAA2B,MAAM,GAAG,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAA+B,EAC/B,eAAuB,EACvB,WAAoB,EACpB,aAAsB,EACtB,GAA6B;IAE7B,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAErC,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAwC,CAAC;IACvE,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAI,GAAG,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAClC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,YAAY,CAAC,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,CAAC;QACxE,CAAC;IACH,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,CAAC,cAAc,CAAwC,CAAC;IACzE,IAAI,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QACjC,EAAE,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC;QAC5B,EAAE,CAAC,oBAAoB,CAAC,GAAG,eAAe,CAAC;QAC3C,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,EAAE,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC;QACvD,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,EAAE,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC;QACvD,IAAI,WAAW;YAAE,EAAE,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;QAClD,IAAI,aAAa,EAAE,CAAC;YAClB,EAAE,CAAC,gBAAgB,CAAC,GAAG,aAAa,CAAC;YACrC,EAAE,CAAC,qBAAqB,CAAC,GAAG,GAAG,aAAa,QAAQ,CAAC;QACvD,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAwC,CAAC;IACpE,IAAI,GAAG,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAChD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED;;;qCAGqC;AACrC,MAAM,UAAU,WAAW,CAAC,OAAgB,EAAE,SAAiB,EAAE,IAAa;IAC5E,MAAM,IAAI,GAAG,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC;IAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAChC,SAAS,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../src/profile.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
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.1.
|
|
4
|
+
export declare const SDK_VERSION = "2.1.2";
|
|
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,17 +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;
|
|
87
|
-
/** Downloads `arch` beside `dest` and returns where it landed, with its etag.
|
|
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. */
|
|
88
94
|
private download;
|
|
89
95
|
/** Unpacks an archive `download` left behind, and removes it. */
|
|
90
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;
|
|
91
109
|
/** Downloads and unpacks in one step, for everything that has nothing to lose. */
|
|
92
110
|
private downloadAndExtract;
|
|
93
111
|
private placeWidevine;
|
|
94
112
|
private installFingerprints;
|
|
95
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 {};
|
|
96
165
|
//# sourceMappingURL=runtime.d.ts.map
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"
|
|
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
|
|
7
|
-
import {
|
|
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
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.1.
|
|
17
|
+
export const SDK_VERSION = "2.1.2";
|
|
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,29 +190,79 @@ export class Runtime {
|
|
|
188
190
|
}
|
|
189
191
|
}
|
|
190
192
|
saveManifest(m) {
|
|
191
|
-
|
|
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();
|
|
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)) {
|
|
245
|
+
throw new Error(`this engine build needs @proxyshard/shardx ${remote.minSdkVersion} or newer — `
|
|
246
|
+
+ `you are on ${SDK_VERSION}; upgrade the SDK first`);
|
|
247
|
+
}
|
|
200
248
|
// Remember the engine version + grease so launch can normalise profiles.
|
|
201
249
|
// Without the manifest, what is ALREADY installed — not the version this
|
|
202
250
|
// SDK was published with. Falling back to the constant made an offline
|
|
203
251
|
// run record 152 over an engine that is 156, and profiles then declared
|
|
204
|
-
// a version the engine does not have.
|
|
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;
|
|
205
255
|
this._chromiumVersion =
|
|
206
|
-
|
|
207
|
-
this._greaseBrand =
|
|
208
|
-
this._greaseVersion =
|
|
209
|
-
this._tls =
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
+ `
|
|
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;
|
|
214
266
|
}
|
|
215
267
|
// Unknown is never a mismatch, so adopt a stamp once or the first bump
|
|
216
268
|
// never lands.
|
|
@@ -219,23 +271,55 @@ export class Runtime {
|
|
|
219
271
|
}
|
|
220
272
|
// Manifest unreachable → don't force a re-download.
|
|
221
273
|
const needBrowser = force || !this.installed || this.engineOutdated(local, remote);
|
|
274
|
+
let swapped = false;
|
|
222
275
|
if (needBrowser) {
|
|
223
|
-
//
|
|
224
|
-
//
|
|
225
|
-
//
|
|
226
|
-
//
|
|
227
|
-
//
|
|
228
|
-
//
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
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) {
|
|
233
300
|
if (remote.engineBuild)
|
|
234
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);
|
|
235
313
|
}
|
|
236
|
-
if (this.spec.widevine && (
|
|
237
|
-
|
|
238
|
-
|
|
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
|
+
}
|
|
239
323
|
}
|
|
240
324
|
const remoteFp = remote.archives[FINGERPRINTS_ARCHIVE.key];
|
|
241
325
|
const fpDirHasJson = readdirSync(this.fingerprintsDir).some((f) => f.endsWith(".json"));
|
|
@@ -244,9 +328,18 @@ export class Runtime {
|
|
|
244
328
|
if (remoteFp !== undefined)
|
|
245
329
|
local.fingerprints_etag = remoteFp;
|
|
246
330
|
}
|
|
247
|
-
// Authoritative:
|
|
248
|
-
//
|
|
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.
|
|
249
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
|
+
}
|
|
250
343
|
this.saveManifest(local);
|
|
251
344
|
// Linux/mac archives produced on Windows lose every Unix exec bit;
|
|
252
345
|
// restore +x on every ELF/Mach-O file under the engine tree (not
|
|
@@ -287,8 +380,10 @@ export class Runtime {
|
|
|
287
380
|
return { archives: {} };
|
|
288
381
|
}
|
|
289
382
|
}
|
|
290
|
-
/** Downloads `arch` beside `dest` and returns where it landed, with its etag.
|
|
291
|
-
|
|
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) {
|
|
292
387
|
const url = `${PUB_BASE}/${arch.key}`;
|
|
293
388
|
mkdirSync(dest, { recursive: true });
|
|
294
389
|
const tmp = join(dest, `.${arch.key}.tmp`);
|
|
@@ -297,6 +392,15 @@ export class Runtime {
|
|
|
297
392
|
throw new Error(`download ${arch.key}: HTTP ${r.status}`);
|
|
298
393
|
const etag = r.headers.get("etag")?.replace(/^"|"$/g, "") ?? "";
|
|
299
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
|
+
}
|
|
300
404
|
let received = 0;
|
|
301
405
|
const reader = r.body.getReader();
|
|
302
406
|
const out = createWriteStream(tmp);
|
|
@@ -317,6 +421,12 @@ export class Runtime {
|
|
|
317
421
|
stream.on("data", () => this.progress(arch.label, received, total));
|
|
318
422
|
}
|
|
319
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
|
+
}
|
|
320
430
|
return { tmp, etag };
|
|
321
431
|
}
|
|
322
432
|
/** Unpacks an archive `download` left behind, and removes it. */
|
|
@@ -335,6 +445,101 @@ export class Runtime {
|
|
|
335
445
|
}
|
|
336
446
|
rmSync(tmp, { force: true });
|
|
337
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
|
+
}
|
|
338
543
|
/** Downloads and unpacks in one step, for everything that has nothing to lose. */
|
|
339
544
|
async downloadAndExtract(arch, dest) {
|
|
340
545
|
const { tmp, etag } = await this.download(arch, dest);
|
|
@@ -348,7 +553,11 @@ export class Runtime {
|
|
|
348
553
|
const src = join(this.root, wrapper, "WidevineCdm");
|
|
349
554
|
if (!existsSync(src))
|
|
350
555
|
return;
|
|
351
|
-
|
|
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)));
|
|
352
561
|
if (existsSync(dst))
|
|
353
562
|
rmSync(dst, { recursive: true, force: true });
|
|
354
563
|
mkdirSync(dirname(dst), { recursive: true });
|
|
@@ -400,6 +609,465 @@ export class Runtime {
|
|
|
400
609
|
rmSync(staging, { recursive: true, force: true });
|
|
401
610
|
}
|
|
402
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
|
+
}
|
|
403
1071
|
/** Extract via /usr/bin/unzip — preserves symlinks and permission
|
|
404
1072
|
* bits that adm-zip silently drops. Required for any macOS .app
|
|
405
1073
|
* bundle (Versions/Current symlinks + Helper exec bits).
|
package/dist/runtime.js.map
CHANGED
|
@@ -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.1.
|
|
3
|
+
"version": "2.1.2",
|
|
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": {
|