@drewpayment/mink 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dashboard/out/404.html +1 -1
- package/dashboard/out/action-log.html +1 -1
- package/dashboard/out/action-log.txt +1 -1
- package/dashboard/out/activity.html +1 -1
- package/dashboard/out/activity.txt +1 -1
- package/dashboard/out/bugs.html +1 -1
- package/dashboard/out/bugs.txt +1 -1
- package/dashboard/out/capture.html +1 -1
- package/dashboard/out/capture.txt +1 -1
- package/dashboard/out/config.html +1 -1
- package/dashboard/out/config.txt +1 -1
- package/dashboard/out/daemon.html +1 -1
- package/dashboard/out/daemon.txt +1 -1
- package/dashboard/out/design.html +1 -1
- package/dashboard/out/design.txt +1 -1
- package/dashboard/out/discord.html +1 -1
- package/dashboard/out/discord.txt +1 -1
- package/dashboard/out/file-index.html +1 -1
- package/dashboard/out/file-index.txt +1 -1
- package/dashboard/out/index.html +1 -1
- package/dashboard/out/index.txt +1 -1
- package/dashboard/out/insights.html +1 -1
- package/dashboard/out/insights.txt +1 -1
- package/dashboard/out/learning.html +1 -1
- package/dashboard/out/learning.txt +1 -1
- package/dashboard/out/overview.html +1 -1
- package/dashboard/out/overview.txt +1 -1
- package/dashboard/out/scheduler.html +1 -1
- package/dashboard/out/scheduler.txt +1 -1
- package/dashboard/out/sync.html +1 -1
- package/dashboard/out/sync.txt +1 -1
- package/dashboard/out/tokens.html +1 -1
- package/dashboard/out/tokens.txt +1 -1
- package/dashboard/out/waste.html +1 -1
- package/dashboard/out/waste.txt +1 -1
- package/dashboard/out/wiki.html +1 -1
- package/dashboard/out/wiki.txt +1 -1
- package/dist/cli.js +906 -443
- package/package.json +1 -1
- package/src/cli.ts +8 -1
- package/src/commands/init.ts +21 -21
- package/src/commands/update.ts +4 -9
- package/src/commands/upgrade.ts +128 -0
- package/src/core/self-update.ts +363 -0
- package/src/core/task-registry.ts +52 -2
- package/src/types/config.ts +24 -0
- /package/dashboard/out/_next/static/{FLxzihv7lbkF71kIxdNQT → frTrvF6NV-Xl2bLk21NkY}/_buildManifest.js +0 -0
- /package/dashboard/out/_next/static/{FLxzihv7lbkF71kIxdNQT → frTrvF6NV-Xl2bLk21NkY}/_ssgManifest.js +0 -0
package/dist/cli.js
CHANGED
|
@@ -797,6 +797,27 @@ var init_config = __esm(() => {
|
|
|
797
797
|
envVar: "MINK_CHANNEL_SKIP_PERMISSIONS",
|
|
798
798
|
description: "Pass --dangerously-skip-permissions so the channel can run without terminal prompts",
|
|
799
799
|
scope: "shared"
|
|
800
|
+
},
|
|
801
|
+
{
|
|
802
|
+
key: "cli.auto-update",
|
|
803
|
+
default: "false",
|
|
804
|
+
envVar: "MINK_CLI_AUTO_UPDATE",
|
|
805
|
+
description: "Auto-upgrade the mink CLI on schedule via the background scheduler",
|
|
806
|
+
scope: "shared"
|
|
807
|
+
},
|
|
808
|
+
{
|
|
809
|
+
key: "cli.auto-update-schedule",
|
|
810
|
+
default: "0 4 * * *",
|
|
811
|
+
envVar: "MINK_CLI_AUTO_UPDATE_SCHEDULE",
|
|
812
|
+
description: "Cron expression governing the cli-self-update scheduled task",
|
|
813
|
+
scope: "shared"
|
|
814
|
+
},
|
|
815
|
+
{
|
|
816
|
+
key: "cli.auto-update-package-manager",
|
|
817
|
+
default: "auto",
|
|
818
|
+
envVar: "MINK_CLI_AUTO_UPDATE_PACKAGE_MANAGER",
|
|
819
|
+
description: "Force a package manager (auto|npm|bun) for self-upgrade installs",
|
|
820
|
+
scope: "local"
|
|
800
821
|
}
|
|
801
822
|
];
|
|
802
823
|
VALID_KEYS = new Set(CONFIG_KEYS.map((k) => k.key));
|
|
@@ -3823,9 +3844,9 @@ function resolveCliPath() {
|
|
|
3823
3844
|
return distPath;
|
|
3824
3845
|
return resolve2(selfDir, "../cli.ts");
|
|
3825
3846
|
}
|
|
3826
|
-
function buildHooksConfig(
|
|
3847
|
+
function buildHooksConfig(cliPath) {
|
|
3827
3848
|
const isTsSource = cliPath.endsWith(".ts");
|
|
3828
|
-
const prefix = isTsSource ? `bun run ${cliPath}` :
|
|
3849
|
+
const prefix = isTsSource ? `bun run ${cliPath}` : "mink";
|
|
3829
3850
|
const hook = (cmd) => [{ type: "command", command: cmd }];
|
|
3830
3851
|
return {
|
|
3831
3852
|
SessionStart: [{ matcher: "", hooks: hook(`${prefix} session-start`) }],
|
|
@@ -3843,7 +3864,12 @@ function buildHooksConfig(runtime, cliPath) {
|
|
|
3843
3864
|
};
|
|
3844
3865
|
}
|
|
3845
3866
|
function isMinkCommand(cmd) {
|
|
3846
|
-
|
|
3867
|
+
const hasMinkSubcommand = cmd.includes("session-start") || cmd.includes("session-stop") || cmd.includes("pre-read") || cmd.includes("post-read") || cmd.includes("pre-write") || cmd.includes("post-write");
|
|
3868
|
+
if (!hasMinkSubcommand)
|
|
3869
|
+
return false;
|
|
3870
|
+
if (/(^|\/|\s)mink\s/.test(cmd))
|
|
3871
|
+
return true;
|
|
3872
|
+
return cmd.includes("cli.js") || cmd.includes("cli.ts");
|
|
3847
3873
|
}
|
|
3848
3874
|
function isMinkHook(entry) {
|
|
3849
3875
|
if (Array.isArray(entry.hooks)) {
|
|
@@ -3881,7 +3907,7 @@ function isExistingInstallation(cwd) {
|
|
|
3881
3907
|
async function init(cwd) {
|
|
3882
3908
|
const runtime = detectRuntime();
|
|
3883
3909
|
const cliPath = resolveCliPath();
|
|
3884
|
-
const hooks = buildHooksConfig(
|
|
3910
|
+
const hooks = buildHooksConfig(cliPath);
|
|
3885
3911
|
const settingsPath = resolve2(cwd, ".claude", "settings.json");
|
|
3886
3912
|
const dir = projectDir(cwd);
|
|
3887
3913
|
const upgrading = isExistingInstallation(cwd);
|
|
@@ -5704,12 +5730,304 @@ var init_detect_waste2 = __esm(() => {
|
|
|
5704
5730
|
init_device();
|
|
5705
5731
|
});
|
|
5706
5732
|
|
|
5733
|
+
// src/core/self-update.ts
|
|
5734
|
+
var exports_self_update = {};
|
|
5735
|
+
__export(exports_self_update, {
|
|
5736
|
+
selfUpdateLogPath: () => selfUpdateLogPath,
|
|
5737
|
+
runSelfUpgrade: () => runSelfUpgrade,
|
|
5738
|
+
parseSemver: () => parseSemver,
|
|
5739
|
+
getInstallInfo: () => getInstallInfo,
|
|
5740
|
+
detectPackageManager: () => detectPackageManager,
|
|
5741
|
+
compareSemver: () => compareSemver,
|
|
5742
|
+
PACKAGE_NAME: () => PACKAGE_NAME
|
|
5743
|
+
});
|
|
5744
|
+
import { spawnSync as spawnSync2 } from "child_process";
|
|
5745
|
+
import { existsSync as existsSync19, readFileSync as readFileSync18 } from "fs";
|
|
5746
|
+
import { dirname as dirname9 } from "path";
|
|
5747
|
+
import { join as join20 } from "path";
|
|
5748
|
+
function parseSemver(input) {
|
|
5749
|
+
const trimmed = input.trim().replace(/^v/, "");
|
|
5750
|
+
if (!trimmed)
|
|
5751
|
+
return null;
|
|
5752
|
+
const [versionPart, ...prereleaseParts] = trimmed.split("-");
|
|
5753
|
+
const numbers = versionPart.split(".").map((s) => Number.parseInt(s, 10));
|
|
5754
|
+
if (numbers.some((n) => Number.isNaN(n)))
|
|
5755
|
+
return null;
|
|
5756
|
+
return {
|
|
5757
|
+
numbers,
|
|
5758
|
+
prerelease: prereleaseParts.length ? prereleaseParts.join("-") : null
|
|
5759
|
+
};
|
|
5760
|
+
}
|
|
5761
|
+
function compareSemver(a, b) {
|
|
5762
|
+
const pa = parseSemver(a);
|
|
5763
|
+
const pb = parseSemver(b);
|
|
5764
|
+
if (!pa && !pb)
|
|
5765
|
+
return 0;
|
|
5766
|
+
if (!pa)
|
|
5767
|
+
return -1;
|
|
5768
|
+
if (!pb)
|
|
5769
|
+
return 1;
|
|
5770
|
+
const len = Math.max(pa.numbers.length, pb.numbers.length);
|
|
5771
|
+
for (let i = 0;i < len; i++) {
|
|
5772
|
+
const ai = pa.numbers[i] ?? 0;
|
|
5773
|
+
const bi = pb.numbers[i] ?? 0;
|
|
5774
|
+
if (ai > bi)
|
|
5775
|
+
return 1;
|
|
5776
|
+
if (ai < bi)
|
|
5777
|
+
return -1;
|
|
5778
|
+
}
|
|
5779
|
+
if (pa.prerelease === pb.prerelease)
|
|
5780
|
+
return 0;
|
|
5781
|
+
if (pa.prerelease === null)
|
|
5782
|
+
return 1;
|
|
5783
|
+
if (pb.prerelease === null)
|
|
5784
|
+
return -1;
|
|
5785
|
+
if (pa.prerelease > pb.prerelease)
|
|
5786
|
+
return 1;
|
|
5787
|
+
if (pa.prerelease < pb.prerelease)
|
|
5788
|
+
return -1;
|
|
5789
|
+
return 0;
|
|
5790
|
+
}
|
|
5791
|
+
function getInstallInfo() {
|
|
5792
|
+
const selfPath = new URL(import.meta.url).pathname;
|
|
5793
|
+
const isDevMode = selfPath.endsWith(".ts");
|
|
5794
|
+
let dir = dirname9(selfPath);
|
|
5795
|
+
let packageJsonPath = null;
|
|
5796
|
+
for (let i = 0;i < 10; i++) {
|
|
5797
|
+
const candidate = join20(dir, "package.json");
|
|
5798
|
+
if (existsSync19(candidate)) {
|
|
5799
|
+
packageJsonPath = candidate;
|
|
5800
|
+
break;
|
|
5801
|
+
}
|
|
5802
|
+
const parent = dirname9(dir);
|
|
5803
|
+
if (parent === dir)
|
|
5804
|
+
break;
|
|
5805
|
+
dir = parent;
|
|
5806
|
+
}
|
|
5807
|
+
if (!packageJsonPath) {
|
|
5808
|
+
throw new Error("Unable to locate package.json for the running mink CLI");
|
|
5809
|
+
}
|
|
5810
|
+
let currentVersion = "0.0.0";
|
|
5811
|
+
try {
|
|
5812
|
+
const pkg = JSON.parse(readFileSync18(packageJsonPath, "utf-8"));
|
|
5813
|
+
if (typeof pkg.version === "string")
|
|
5814
|
+
currentVersion = pkg.version;
|
|
5815
|
+
} catch {}
|
|
5816
|
+
return {
|
|
5817
|
+
cliPath: selfPath,
|
|
5818
|
+
packageJsonPath,
|
|
5819
|
+
currentVersion,
|
|
5820
|
+
isDevMode
|
|
5821
|
+
};
|
|
5822
|
+
}
|
|
5823
|
+
async function fetchLatestVersion(url, currentVersion) {
|
|
5824
|
+
const controller = new AbortController;
|
|
5825
|
+
const timer = setTimeout(() => controller.abort(), NETWORK_TIMEOUT_MS);
|
|
5826
|
+
try {
|
|
5827
|
+
const res = await fetch(url, {
|
|
5828
|
+
signal: controller.signal,
|
|
5829
|
+
headers: {
|
|
5830
|
+
"User-Agent": `mink-self-update/${currentVersion}`,
|
|
5831
|
+
Accept: "application/json"
|
|
5832
|
+
}
|
|
5833
|
+
});
|
|
5834
|
+
if (!res.ok) {
|
|
5835
|
+
throw new Error(`registry returned ${res.status}`);
|
|
5836
|
+
}
|
|
5837
|
+
const body = await res.json();
|
|
5838
|
+
if (typeof body.version !== "string") {
|
|
5839
|
+
throw new Error("registry response missing version field");
|
|
5840
|
+
}
|
|
5841
|
+
return body.version;
|
|
5842
|
+
} finally {
|
|
5843
|
+
clearTimeout(timer);
|
|
5844
|
+
}
|
|
5845
|
+
}
|
|
5846
|
+
function isOnPath(bin) {
|
|
5847
|
+
const result = spawnSync2(bin, ["--version"], { stdio: "ignore" });
|
|
5848
|
+
return !result.error && result.status === 0;
|
|
5849
|
+
}
|
|
5850
|
+
function detectPackageManager(cliPath) {
|
|
5851
|
+
const configured = resolveConfigValue("cli.auto-update-package-manager").value;
|
|
5852
|
+
if (configured === "bun" && isOnPath("bun"))
|
|
5853
|
+
return "bun";
|
|
5854
|
+
if (configured === "npm" && isOnPath("npm"))
|
|
5855
|
+
return "npm";
|
|
5856
|
+
const looksLikeBun = /[\\/]\.bun[\\/]/.test(cliPath);
|
|
5857
|
+
if (looksLikeBun && isOnPath("bun"))
|
|
5858
|
+
return "bun";
|
|
5859
|
+
if (isOnPath("npm"))
|
|
5860
|
+
return "npm";
|
|
5861
|
+
if (isOnPath("bun"))
|
|
5862
|
+
return "bun";
|
|
5863
|
+
return null;
|
|
5864
|
+
}
|
|
5865
|
+
function buildInstallCommand(pm, version) {
|
|
5866
|
+
const ref = `${PACKAGE_NAME}@${version}`;
|
|
5867
|
+
if (pm === "bun")
|
|
5868
|
+
return ["bun", "add", "-g", ref];
|
|
5869
|
+
return ["npm", "install", "-g", ref];
|
|
5870
|
+
}
|
|
5871
|
+
function selfUpdateLogPath() {
|
|
5872
|
+
return join20(minkRoot(), "self-update.log");
|
|
5873
|
+
}
|
|
5874
|
+
function appendLogEntry(entry) {
|
|
5875
|
+
const path = selfUpdateLogPath();
|
|
5876
|
+
const line = JSON.stringify({ timestamp: new Date().toISOString(), ...entry }) + `
|
|
5877
|
+
`;
|
|
5878
|
+
try {
|
|
5879
|
+
safeAppendText(path, line);
|
|
5880
|
+
rotateLogIfNeeded(path);
|
|
5881
|
+
} catch {}
|
|
5882
|
+
}
|
|
5883
|
+
function rotateLogIfNeeded(path) {
|
|
5884
|
+
try {
|
|
5885
|
+
const content = readFileSync18(path, "utf-8");
|
|
5886
|
+
const lines = content.split(`
|
|
5887
|
+
`);
|
|
5888
|
+
if (lines.length <= LOG_MAX_LINES + 1)
|
|
5889
|
+
return;
|
|
5890
|
+
const trimmed = lines.slice(lines.length - LOG_MAX_LINES - 1).join(`
|
|
5891
|
+
`);
|
|
5892
|
+
atomicWriteText(path, trimmed);
|
|
5893
|
+
} catch {}
|
|
5894
|
+
}
|
|
5895
|
+
async function runSelfUpgrade(opts) {
|
|
5896
|
+
const result = await runSelfUpgradeInner(opts);
|
|
5897
|
+
appendLogEntry({ source: opts.source, ...result });
|
|
5898
|
+
return result;
|
|
5899
|
+
}
|
|
5900
|
+
async function runSelfUpgradeInner(opts) {
|
|
5901
|
+
if (process.env.MINK_DISABLE_AUTO_UPDATE === "1" && opts.source === "scheduler") {
|
|
5902
|
+
return { status: "skipped", reason: "MINK_DISABLE_AUTO_UPDATE=1" };
|
|
5903
|
+
}
|
|
5904
|
+
if (opts.source === "scheduler") {
|
|
5905
|
+
const enabled = resolveConfigValue("cli.auto-update").value;
|
|
5906
|
+
if (enabled !== "true") {
|
|
5907
|
+
return { status: "skipped", reason: "cli.auto-update is disabled" };
|
|
5908
|
+
}
|
|
5909
|
+
}
|
|
5910
|
+
let info;
|
|
5911
|
+
try {
|
|
5912
|
+
info = getInstallInfo();
|
|
5913
|
+
} catch (err) {
|
|
5914
|
+
return {
|
|
5915
|
+
status: "error",
|
|
5916
|
+
reason: err instanceof Error ? err.message : String(err),
|
|
5917
|
+
transient: false
|
|
5918
|
+
};
|
|
5919
|
+
}
|
|
5920
|
+
if (info.isDevMode) {
|
|
5921
|
+
return {
|
|
5922
|
+
status: "skipped",
|
|
5923
|
+
reason: "running from source tree; refuse to self-upgrade in dev mode"
|
|
5924
|
+
};
|
|
5925
|
+
}
|
|
5926
|
+
let latest;
|
|
5927
|
+
try {
|
|
5928
|
+
latest = await fetchLatestVersion(opts.registryUrlOverride ?? NPM_REGISTRY_URL, info.currentVersion);
|
|
5929
|
+
} catch (err) {
|
|
5930
|
+
return {
|
|
5931
|
+
status: "error",
|
|
5932
|
+
reason: "failed to fetch latest version: " + (err instanceof Error ? err.message : String(err)),
|
|
5933
|
+
transient: true
|
|
5934
|
+
};
|
|
5935
|
+
}
|
|
5936
|
+
const cmp = compareSemver(latest, info.currentVersion);
|
|
5937
|
+
if (cmp <= 0 && !opts.force) {
|
|
5938
|
+
return { status: "up-to-date", current: info.currentVersion, latest };
|
|
5939
|
+
}
|
|
5940
|
+
const pm = detectPackageManager(info.cliPath);
|
|
5941
|
+
if (!pm) {
|
|
5942
|
+
return {
|
|
5943
|
+
status: "error",
|
|
5944
|
+
reason: "no package manager (npm or bun) available on PATH",
|
|
5945
|
+
transient: false
|
|
5946
|
+
};
|
|
5947
|
+
}
|
|
5948
|
+
const cmd = buildInstallCommand(pm, latest);
|
|
5949
|
+
if (opts.checkOnly) {
|
|
5950
|
+
return {
|
|
5951
|
+
status: "update-available",
|
|
5952
|
+
current: info.currentVersion,
|
|
5953
|
+
latest,
|
|
5954
|
+
packageManager: pm
|
|
5955
|
+
};
|
|
5956
|
+
}
|
|
5957
|
+
if (opts.dryRun) {
|
|
5958
|
+
return {
|
|
5959
|
+
status: "would-upgrade",
|
|
5960
|
+
current: info.currentVersion,
|
|
5961
|
+
latest,
|
|
5962
|
+
packageManager: pm,
|
|
5963
|
+
command: cmd.join(" ")
|
|
5964
|
+
};
|
|
5965
|
+
}
|
|
5966
|
+
const stdio = opts.interactive ? "inherit" : "pipe";
|
|
5967
|
+
const spawned = spawnSync2(cmd[0], cmd.slice(1), {
|
|
5968
|
+
stdio,
|
|
5969
|
+
timeout: INSTALL_TIMEOUT_MS
|
|
5970
|
+
});
|
|
5971
|
+
if (spawned.error) {
|
|
5972
|
+
return {
|
|
5973
|
+
status: "error",
|
|
5974
|
+
reason: `install command failed to spawn: ${spawned.error.message}`,
|
|
5975
|
+
transient: true
|
|
5976
|
+
};
|
|
5977
|
+
}
|
|
5978
|
+
if (spawned.status !== 0) {
|
|
5979
|
+
const stderr = spawned.stderr ? spawned.stderr.toString().trim() : "";
|
|
5980
|
+
return {
|
|
5981
|
+
status: "error",
|
|
5982
|
+
reason: `${cmd.join(" ")} exited with code ${spawned.status}${stderr ? ": " + stderr.slice(0, 500) : ""}`,
|
|
5983
|
+
transient: true
|
|
5984
|
+
};
|
|
5985
|
+
}
|
|
5986
|
+
let verifiedVersion = latest;
|
|
5987
|
+
try {
|
|
5988
|
+
const pkg = JSON.parse(readFileSync18(info.packageJsonPath, "utf-8"));
|
|
5989
|
+
if (typeof pkg.version === "string")
|
|
5990
|
+
verifiedVersion = pkg.version;
|
|
5991
|
+
} catch {}
|
|
5992
|
+
return {
|
|
5993
|
+
status: "upgraded",
|
|
5994
|
+
from: info.currentVersion,
|
|
5995
|
+
to: verifiedVersion,
|
|
5996
|
+
packageManager: pm
|
|
5997
|
+
};
|
|
5998
|
+
}
|
|
5999
|
+
var PACKAGE_NAME = "@drewpayment/mink", NPM_REGISTRY_URL, NETWORK_TIMEOUT_MS = 5000, INSTALL_TIMEOUT_MS, LOG_MAX_LINES = 1000;
|
|
6000
|
+
var init_self_update = __esm(() => {
|
|
6001
|
+
init_global_config();
|
|
6002
|
+
init_paths();
|
|
6003
|
+
init_fs_utils();
|
|
6004
|
+
NPM_REGISTRY_URL = `https://registry.npmjs.org/${PACKAGE_NAME}/latest`;
|
|
6005
|
+
INSTALL_TIMEOUT_MS = 10 * 60000;
|
|
6006
|
+
});
|
|
6007
|
+
|
|
5707
6008
|
// src/core/task-registry.ts
|
|
6009
|
+
function resolveTaskSchedule(taskId, defaultSchedule) {
|
|
6010
|
+
if (taskId !== "cli-self-update")
|
|
6011
|
+
return defaultSchedule;
|
|
6012
|
+
try {
|
|
6013
|
+
const value = resolveConfigValue("cli.auto-update-schedule").value;
|
|
6014
|
+
parseCronExpression(value);
|
|
6015
|
+
return value;
|
|
6016
|
+
} catch {
|
|
6017
|
+
return defaultSchedule;
|
|
6018
|
+
}
|
|
6019
|
+
}
|
|
6020
|
+
function applyDynamicOverrides(task) {
|
|
6021
|
+
if (task.id !== "cli-self-update")
|
|
6022
|
+
return task;
|
|
6023
|
+
return { ...task, schedule: resolveTaskSchedule(task.id, task.schedule) };
|
|
6024
|
+
}
|
|
5708
6025
|
function getBuiltInTasks() {
|
|
5709
|
-
return BUILT_IN_TASKS;
|
|
6026
|
+
return BUILT_IN_TASKS.map(applyDynamicOverrides);
|
|
5710
6027
|
}
|
|
5711
6028
|
function getTaskById(id) {
|
|
5712
|
-
|
|
6029
|
+
const task = BUILT_IN_TASKS.find((t) => t.id === id);
|
|
6030
|
+
return task ? applyDynamicOverrides(task) : undefined;
|
|
5713
6031
|
}
|
|
5714
6032
|
async function executeAiCli(prompt, timeoutMs) {
|
|
5715
6033
|
const env = {};
|
|
@@ -5773,10 +6091,10 @@ async function executeTask(taskId, projectCwd) {
|
|
|
5773
6091
|
if (task.actionType === "ai-cli") {
|
|
5774
6092
|
try {
|
|
5775
6093
|
const { learningMemoryPath: learningMemoryPath5 } = await Promise.resolve().then(() => (init_paths(), exports_paths));
|
|
5776
|
-
const { readFileSync:
|
|
6094
|
+
const { readFileSync: readFileSync19 } = await import("fs");
|
|
5777
6095
|
let memoryContent;
|
|
5778
6096
|
try {
|
|
5779
|
-
memoryContent =
|
|
6097
|
+
memoryContent = readFileSync19(learningMemoryPath5(projectCwd), "utf-8");
|
|
5780
6098
|
} catch {
|
|
5781
6099
|
console.log("[mink] no learning memory found, skipping reflection");
|
|
5782
6100
|
return;
|
|
@@ -5798,12 +6116,29 @@ ${memoryContent}`;
|
|
|
5798
6116
|
console.log("[mink] project-suggestions: not yet implemented — skipping");
|
|
5799
6117
|
break;
|
|
5800
6118
|
}
|
|
6119
|
+
case "cli-self-update": {
|
|
6120
|
+
const { runSelfUpgrade: runSelfUpgrade2 } = await Promise.resolve().then(() => (init_self_update(), exports_self_update));
|
|
6121
|
+
const result = await runSelfUpgrade2({
|
|
6122
|
+
source: "scheduler",
|
|
6123
|
+
interactive: false
|
|
6124
|
+
});
|
|
6125
|
+
if (result.status === "error") {
|
|
6126
|
+
const err = new Error(result.reason);
|
|
6127
|
+
if (!result.transient) {
|
|
6128
|
+
err.message = `[non-transient] ${err.message}`;
|
|
6129
|
+
}
|
|
6130
|
+
throw err;
|
|
6131
|
+
}
|
|
6132
|
+
console.log(`[mink] cli-self-update: ${result.status}`);
|
|
6133
|
+
break;
|
|
6134
|
+
}
|
|
5801
6135
|
default:
|
|
5802
6136
|
throw new Error(`No executor defined for task: ${taskId}`);
|
|
5803
6137
|
}
|
|
5804
6138
|
}
|
|
5805
6139
|
var BUILT_IN_TASKS, API_KEY_ENV_VARS;
|
|
5806
6140
|
var init_task_registry = __esm(() => {
|
|
6141
|
+
init_global_config();
|
|
5807
6142
|
BUILT_IN_TASKS = [
|
|
5808
6143
|
{
|
|
5809
6144
|
id: "file-index-rescan",
|
|
@@ -5854,6 +6189,16 @@ var init_task_registry = __esm(() => {
|
|
|
5854
6189
|
enabled: true,
|
|
5855
6190
|
retryPolicy: { maxAttempts: 3, baseDelayMs: 60000 },
|
|
5856
6191
|
timeoutMs: 300000
|
|
6192
|
+
},
|
|
6193
|
+
{
|
|
6194
|
+
id: "cli-self-update",
|
|
6195
|
+
name: "CLI Self-Update",
|
|
6196
|
+
description: "Check npm for a newer mink release and install it (gated by cli.auto-update)",
|
|
6197
|
+
schedule: "0 4 * * *",
|
|
6198
|
+
actionType: "function",
|
|
6199
|
+
enabled: true,
|
|
6200
|
+
retryPolicy: { maxAttempts: 3, baseDelayMs: 60000 },
|
|
6201
|
+
timeoutMs: 10 * 60000
|
|
5857
6202
|
}
|
|
5858
6203
|
];
|
|
5859
6204
|
API_KEY_ENV_VARS = [
|
|
@@ -6313,22 +6658,22 @@ var init_cron = __esm(() => {
|
|
|
6313
6658
|
});
|
|
6314
6659
|
|
|
6315
6660
|
// src/core/vault-templates.ts
|
|
6316
|
-
import { join as
|
|
6317
|
-
import { existsSync as
|
|
6661
|
+
import { join as join21 } from "path";
|
|
6662
|
+
import { existsSync as existsSync20, writeFileSync as writeFileSync9, readFileSync as readFileSync19, mkdirSync as mkdirSync11 } from "fs";
|
|
6318
6663
|
function seedTemplates(templatesDir) {
|
|
6319
6664
|
mkdirSync11(templatesDir, { recursive: true });
|
|
6320
6665
|
for (const [name, content] of Object.entries(DEFAULT_TEMPLATES)) {
|
|
6321
|
-
const filePath =
|
|
6322
|
-
if (!
|
|
6666
|
+
const filePath = join21(templatesDir, `${name}.md`);
|
|
6667
|
+
if (!existsSync20(filePath)) {
|
|
6323
6668
|
writeFileSync9(filePath, content);
|
|
6324
6669
|
}
|
|
6325
6670
|
}
|
|
6326
6671
|
}
|
|
6327
6672
|
function loadTemplate(templatesDir, templateName, vars) {
|
|
6328
|
-
const filePath =
|
|
6673
|
+
const filePath = join21(templatesDir, `${templateName}.md`);
|
|
6329
6674
|
let content;
|
|
6330
|
-
if (
|
|
6331
|
-
content =
|
|
6675
|
+
if (existsSync20(filePath)) {
|
|
6676
|
+
content = readFileSync19(filePath, "utf-8");
|
|
6332
6677
|
} else if (DEFAULT_TEMPLATES[templateName]) {
|
|
6333
6678
|
content = DEFAULT_TEMPLATES[templateName];
|
|
6334
6679
|
} else {
|
|
@@ -6481,33 +6826,33 @@ category: resources
|
|
|
6481
6826
|
});
|
|
6482
6827
|
|
|
6483
6828
|
// src/core/note-writer.ts
|
|
6484
|
-
import { join as
|
|
6485
|
-
import { existsSync as
|
|
6829
|
+
import { join as join22 } from "path";
|
|
6830
|
+
import { existsSync as existsSync21, readFileSync as readFileSync20 } from "fs";
|
|
6486
6831
|
import { createHash as createHash2 } from "crypto";
|
|
6487
6832
|
function sha256(content) {
|
|
6488
6833
|
return createHash2("sha256").update(content).digest("hex");
|
|
6489
6834
|
}
|
|
6490
6835
|
function resolveUniqueNotePath(dir, baseSlug, content) {
|
|
6491
6836
|
const targetHash = sha256(content);
|
|
6492
|
-
const primary =
|
|
6493
|
-
if (!
|
|
6837
|
+
const primary = join22(dir, `${baseSlug}.md`);
|
|
6838
|
+
if (!existsSync21(primary))
|
|
6494
6839
|
return primary;
|
|
6495
6840
|
if (sameContent(primary, targetHash))
|
|
6496
6841
|
return primary;
|
|
6497
6842
|
const dev4 = getOrCreateDeviceId().replace(/-/g, "").slice(0, 4);
|
|
6498
6843
|
for (let i = 0;i < MAX_COLLISION_ATTEMPTS; i++) {
|
|
6499
6844
|
const suffix = i === 0 ? dev4 : `${dev4}-${i + 1}`;
|
|
6500
|
-
const candidate =
|
|
6501
|
-
if (!
|
|
6845
|
+
const candidate = join22(dir, `${baseSlug}-${suffix}.md`);
|
|
6846
|
+
if (!existsSync21(candidate))
|
|
6502
6847
|
return candidate;
|
|
6503
6848
|
if (sameContent(candidate, targetHash))
|
|
6504
6849
|
return candidate;
|
|
6505
6850
|
}
|
|
6506
|
-
return
|
|
6851
|
+
return join22(dir, `${baseSlug}-${Date.now()}.md`);
|
|
6507
6852
|
}
|
|
6508
6853
|
function sameContent(filePath, expectedHash) {
|
|
6509
6854
|
try {
|
|
6510
|
-
return sha256(
|
|
6855
|
+
return sha256(readFileSync20(filePath, "utf-8")) === expectedHash;
|
|
6511
6856
|
} catch {
|
|
6512
6857
|
return false;
|
|
6513
6858
|
}
|
|
@@ -6578,8 +6923,8 @@ ${meta.body}
|
|
|
6578
6923
|
}
|
|
6579
6924
|
function appendToDaily(date, content) {
|
|
6580
6925
|
const dir = vaultDailyDir();
|
|
6581
|
-
const filePath =
|
|
6582
|
-
if (
|
|
6926
|
+
const filePath = join22(dir, `${date}.md`);
|
|
6927
|
+
if (existsSync21(filePath)) {
|
|
6583
6928
|
const timestamp = new Date().toLocaleTimeString("en-US", {
|
|
6584
6929
|
hour: "2-digit",
|
|
6585
6930
|
minute: "2-digit",
|
|
@@ -6616,7 +6961,7 @@ ${content}
|
|
|
6616
6961
|
return filePath;
|
|
6617
6962
|
}
|
|
6618
6963
|
function ingestFile(sourcePath, meta) {
|
|
6619
|
-
const raw =
|
|
6964
|
+
const raw = readFileSync20(sourcePath, "utf-8");
|
|
6620
6965
|
const now = new Date().toISOString();
|
|
6621
6966
|
const headingMatch = raw.match(/^#\s+(.+)$/m);
|
|
6622
6967
|
const title = headingMatch?.[1] ?? sourcePath.split("/").pop().replace(/\.md$/, "");
|
|
@@ -6688,9 +7033,9 @@ var init_design_eval = __esm(() => {
|
|
|
6688
7033
|
});
|
|
6689
7034
|
|
|
6690
7035
|
// src/core/dashboard-api.ts
|
|
6691
|
-
import { existsSync as
|
|
7036
|
+
import { existsSync as existsSync22, readFileSync as readFileSync21 } from "fs";
|
|
6692
7037
|
import { readdirSync as readdirSync7, readFileSync as readFileSyncFS, existsSync as fsExistsSync } from "fs";
|
|
6693
|
-
import { join as
|
|
7038
|
+
import { join as join23, resolve as resolve5, normalize, sep } from "path";
|
|
6694
7039
|
import { execSync as execSync5 } from "child_process";
|
|
6695
7040
|
function isSecretKey(key) {
|
|
6696
7041
|
return SECRET_KEY_PATTERNS.some((re) => re.test(key));
|
|
@@ -6703,7 +7048,7 @@ function maskSecret(value, showLast = 4) {
|
|
|
6703
7048
|
return "••••" + value.slice(-showLast);
|
|
6704
7049
|
}
|
|
6705
7050
|
function checkJsonFile2(name, filePath, validator) {
|
|
6706
|
-
if (!
|
|
7051
|
+
if (!existsSync22(filePath))
|
|
6707
7052
|
return { name, status: "missing" };
|
|
6708
7053
|
const data = safeReadJson(filePath);
|
|
6709
7054
|
if (data === null)
|
|
@@ -6713,10 +7058,10 @@ function checkJsonFile2(name, filePath, validator) {
|
|
|
6713
7058
|
return { name, status: "ok" };
|
|
6714
7059
|
}
|
|
6715
7060
|
function checkTextFile2(name, filePath) {
|
|
6716
|
-
if (!
|
|
7061
|
+
if (!existsSync22(filePath))
|
|
6717
7062
|
return { name, status: "missing" };
|
|
6718
7063
|
try {
|
|
6719
|
-
|
|
7064
|
+
readFileSync21(filePath, "utf-8");
|
|
6720
7065
|
return { name, status: "ok" };
|
|
6721
7066
|
} catch {
|
|
6722
7067
|
return { name, status: "corrupt" };
|
|
@@ -6972,7 +7317,7 @@ function countMarkdownIn(dir) {
|
|
|
6972
7317
|
for (const entry of readdirSync7(dir, { withFileTypes: true })) {
|
|
6973
7318
|
if (WIKI_TREE_EXCLUDES.has(entry.name) || entry.name.startsWith("."))
|
|
6974
7319
|
continue;
|
|
6975
|
-
const fullPath =
|
|
7320
|
+
const fullPath = join23(dir, entry.name);
|
|
6976
7321
|
if (entry.isDirectory()) {
|
|
6977
7322
|
count += countMarkdownIn(fullPath);
|
|
6978
7323
|
} else if (entry.name.endsWith(".md") && !entry.name.startsWith("_")) {
|
|
@@ -7001,7 +7346,7 @@ function buildVaultTree(root) {
|
|
|
7001
7346
|
for (const entry of entries) {
|
|
7002
7347
|
if (!entry.isDir)
|
|
7003
7348
|
continue;
|
|
7004
|
-
const fullPath =
|
|
7349
|
+
const fullPath = join23(dir, entry.name);
|
|
7005
7350
|
const relPath = fullPath.slice(root.length + 1);
|
|
7006
7351
|
const count = countMarkdownIn(fullPath);
|
|
7007
7352
|
nodes.push({ name: entry.name, path: relPath, count, depth });
|
|
@@ -7086,7 +7431,7 @@ function resolveVaultRelativePath(relPath) {
|
|
|
7086
7431
|
if (!relPath || relPath.includes("\x00"))
|
|
7087
7432
|
return null;
|
|
7088
7433
|
const root = resolveVaultPath();
|
|
7089
|
-
const absolute =
|
|
7434
|
+
const absolute = resolve5(root, relPath);
|
|
7090
7435
|
const normalizedRoot = normalize(root) + sep;
|
|
7091
7436
|
if (!absolute.startsWith(normalizedRoot) && absolute !== normalize(root)) {
|
|
7092
7437
|
return null;
|
|
@@ -7424,7 +7769,7 @@ async function triggerIngestFile(sourcePath, category, tags, dedupKey) {
|
|
|
7424
7769
|
if (!isValidCategory(category)) {
|
|
7425
7770
|
return { success: false, error: `Invalid category: ${category}` };
|
|
7426
7771
|
}
|
|
7427
|
-
const expanded = sourcePath.startsWith("~/") ?
|
|
7772
|
+
const expanded = sourcePath.startsWith("~/") ? join23(process.env.HOME ?? "", sourcePath.slice(2)) : sourcePath;
|
|
7428
7773
|
if (!fsExistsSync(expanded)) {
|
|
7429
7774
|
return { success: false, error: `Source file not found: ${sourcePath}` };
|
|
7430
7775
|
}
|
|
@@ -7504,10 +7849,10 @@ var init_dashboard_api = __esm(() => {
|
|
|
7504
7849
|
});
|
|
7505
7850
|
|
|
7506
7851
|
// src/core/project-registry.ts
|
|
7507
|
-
import { readdirSync as readdirSync8, existsSync as
|
|
7508
|
-
import { join as
|
|
7852
|
+
import { readdirSync as readdirSync8, existsSync as existsSync23 } from "fs";
|
|
7853
|
+
import { join as join24 } from "path";
|
|
7509
7854
|
function getProjectMeta(projDir) {
|
|
7510
|
-
const metaPath =
|
|
7855
|
+
const metaPath = join24(projDir, "project-meta.json");
|
|
7511
7856
|
const raw = safeReadJson(metaPath);
|
|
7512
7857
|
if (raw === null || typeof raw !== "object" || Array.isArray(raw)) {
|
|
7513
7858
|
return null;
|
|
@@ -7524,15 +7869,15 @@ function getProjectMeta(projDir) {
|
|
|
7524
7869
|
};
|
|
7525
7870
|
}
|
|
7526
7871
|
function listRegisteredProjects() {
|
|
7527
|
-
const projectsDir =
|
|
7528
|
-
if (!
|
|
7872
|
+
const projectsDir = join24(minkRoot(), "projects");
|
|
7873
|
+
if (!existsSync23(projectsDir))
|
|
7529
7874
|
return [];
|
|
7530
7875
|
const entries = readdirSync8(projectsDir, { withFileTypes: true });
|
|
7531
7876
|
const projects = [];
|
|
7532
7877
|
for (const entry of entries) {
|
|
7533
7878
|
if (!entry.isDirectory())
|
|
7534
7879
|
continue;
|
|
7535
|
-
const projDir =
|
|
7880
|
+
const projDir = join24(projectsDir, entry.name);
|
|
7536
7881
|
const meta = getProjectMeta(projDir);
|
|
7537
7882
|
if (meta) {
|
|
7538
7883
|
projects.push({
|
|
@@ -7556,8 +7901,8 @@ __export(exports_dashboard_server, {
|
|
|
7556
7901
|
startDashboardServer: () => startDashboardServer
|
|
7557
7902
|
});
|
|
7558
7903
|
import { watch } from "fs";
|
|
7559
|
-
import { existsSync as
|
|
7560
|
-
import { basename as basename7, dirname as
|
|
7904
|
+
import { existsSync as existsSync24 } from "fs";
|
|
7905
|
+
import { basename as basename7, dirname as dirname10, join as join25, extname as extname2 } from "path";
|
|
7561
7906
|
|
|
7562
7907
|
class SSEManager {
|
|
7563
7908
|
clients = new Map;
|
|
@@ -7730,15 +8075,15 @@ async function startDashboardServer(cwd, options = {}) {
|
|
|
7730
8075
|
timestamp: new Date().toISOString()
|
|
7731
8076
|
});
|
|
7732
8077
|
});
|
|
7733
|
-
const __dir =
|
|
8078
|
+
const __dir = dirname10(new URL(import.meta.url).pathname);
|
|
7734
8079
|
let pkgRoot = __dir;
|
|
7735
|
-
while (pkgRoot !==
|
|
7736
|
-
if (
|
|
8080
|
+
while (pkgRoot !== dirname10(pkgRoot)) {
|
|
8081
|
+
if (existsSync24(join25(pkgRoot, "package.json")))
|
|
7737
8082
|
break;
|
|
7738
|
-
pkgRoot =
|
|
8083
|
+
pkgRoot = dirname10(pkgRoot);
|
|
7739
8084
|
}
|
|
7740
|
-
const dashboardOutDir =
|
|
7741
|
-
const dashboardBuilt =
|
|
8085
|
+
const dashboardOutDir = join25(pkgRoot, "dashboard", "out");
|
|
8086
|
+
const dashboardBuilt = existsSync24(join25(dashboardOutDir, "index.html"));
|
|
7742
8087
|
let clientIdCounter = 0;
|
|
7743
8088
|
if (!dashboardBuilt) {
|
|
7744
8089
|
console.warn("[mink] dashboard not built. Run: cd dashboard && bun run build");
|
|
@@ -7768,9 +8113,9 @@ async function startDashboardServer(cwd, options = {}) {
|
|
|
7768
8113
|
} else {
|
|
7769
8114
|
let filePath;
|
|
7770
8115
|
if (pathname === "/") {
|
|
7771
|
-
filePath =
|
|
8116
|
+
filePath = join25(dashboardOutDir, "index.html");
|
|
7772
8117
|
} else {
|
|
7773
|
-
filePath =
|
|
8118
|
+
filePath = join25(dashboardOutDir, pathname);
|
|
7774
8119
|
}
|
|
7775
8120
|
if (!filePath.startsWith(dashboardOutDir)) {
|
|
7776
8121
|
return jsonResponse({ error: "Forbidden" }, 403);
|
|
@@ -7783,7 +8128,7 @@ async function startDashboardServer(cwd, options = {}) {
|
|
|
7783
8128
|
const htmlServed = await serveFile(filePath + ".html", "text/html; charset=utf-8");
|
|
7784
8129
|
if (htmlServed)
|
|
7785
8130
|
return htmlServed;
|
|
7786
|
-
const indexServed = await serveFile(
|
|
8131
|
+
const indexServed = await serveFile(join25(dashboardOutDir, "index.html"), "text/html; charset=utf-8");
|
|
7787
8132
|
if (indexServed)
|
|
7788
8133
|
return indexServed;
|
|
7789
8134
|
}
|
|
@@ -7892,7 +8237,7 @@ retry: 3000
|
|
|
7892
8237
|
if (!filename || filename.includes("..") || filename.includes("/")) {
|
|
7893
8238
|
return jsonResponse({ error: "Invalid filename" }, 400);
|
|
7894
8239
|
}
|
|
7895
|
-
const imgPath =
|
|
8240
|
+
const imgPath = join25(designCapturesDir(resolvedCwd), filename);
|
|
7896
8241
|
const served = await serveFile(imgPath, "image/jpeg");
|
|
7897
8242
|
if (served) {
|
|
7898
8243
|
served.headers.set("Cache-Control", "public, max-age=60");
|
|
@@ -8126,9 +8471,9 @@ var exports_dashboard = {};
|
|
|
8126
8471
|
__export(exports_dashboard, {
|
|
8127
8472
|
dashboard: () => dashboard
|
|
8128
8473
|
});
|
|
8129
|
-
import { existsSync as
|
|
8474
|
+
import { existsSync as existsSync25 } from "fs";
|
|
8130
8475
|
async function dashboard(cwd, args) {
|
|
8131
|
-
if (!
|
|
8476
|
+
if (!existsSync25(projectDir(cwd))) {
|
|
8132
8477
|
console.error("[mink] project not initialized. Run: mink init");
|
|
8133
8478
|
process.exit(1);
|
|
8134
8479
|
}
|
|
@@ -8146,32 +8491,23 @@ var init_dashboard = __esm(() => {
|
|
|
8146
8491
|
});
|
|
8147
8492
|
|
|
8148
8493
|
// src/commands/init.ts
|
|
8149
|
-
import {
|
|
8150
|
-
import {
|
|
8151
|
-
import { resolve as resolve5, dirname as dirname10, basename as basename8, join as join25 } from "path";
|
|
8152
|
-
function detectRuntime2() {
|
|
8153
|
-
try {
|
|
8154
|
-
execSync6("bun --version", { stdio: "ignore" });
|
|
8155
|
-
return "bun";
|
|
8156
|
-
} catch {
|
|
8157
|
-
return "node";
|
|
8158
|
-
}
|
|
8159
|
-
}
|
|
8494
|
+
import { mkdirSync as mkdirSync12, existsSync as existsSync26 } from "fs";
|
|
8495
|
+
import { resolve as resolve6, dirname as dirname11, basename as basename8, join as join26 } from "path";
|
|
8160
8496
|
function resolveCliPath2() {
|
|
8161
8497
|
const selfPath = new URL(import.meta.url).pathname;
|
|
8162
|
-
const selfDir =
|
|
8498
|
+
const selfDir = dirname11(selfPath);
|
|
8163
8499
|
if (selfPath.endsWith("dist/cli.js")) {
|
|
8164
8500
|
return selfPath;
|
|
8165
8501
|
}
|
|
8166
|
-
const projectRoot =
|
|
8167
|
-
const distPath =
|
|
8168
|
-
if (
|
|
8502
|
+
const projectRoot = resolve6(selfDir, "../..");
|
|
8503
|
+
const distPath = join26(projectRoot, "dist", "cli.js");
|
|
8504
|
+
if (existsSync26(distPath))
|
|
8169
8505
|
return distPath;
|
|
8170
|
-
return
|
|
8506
|
+
return resolve6(selfDir, "../cli.ts");
|
|
8171
8507
|
}
|
|
8172
|
-
function buildHooksConfig2(
|
|
8508
|
+
function buildHooksConfig2(cliPath) {
|
|
8173
8509
|
const isTsSource = cliPath.endsWith(".ts");
|
|
8174
|
-
const prefix = isTsSource ? `bun run ${cliPath}` :
|
|
8510
|
+
const prefix = isTsSource ? `bun run ${cliPath}` : "mink";
|
|
8175
8511
|
const hook = (cmd) => [{ type: "command", command: cmd }];
|
|
8176
8512
|
return {
|
|
8177
8513
|
SessionStart: [{ matcher: "", hooks: hook(`${prefix} session-start`) }],
|
|
@@ -8189,7 +8525,12 @@ function buildHooksConfig2(runtime, cliPath) {
|
|
|
8189
8525
|
};
|
|
8190
8526
|
}
|
|
8191
8527
|
function isMinkCommand2(cmd) {
|
|
8192
|
-
|
|
8528
|
+
const hasMinkSubcommand = cmd.includes("session-start") || cmd.includes("session-stop") || cmd.includes("pre-read") || cmd.includes("post-read") || cmd.includes("pre-write") || cmd.includes("post-write");
|
|
8529
|
+
if (!hasMinkSubcommand)
|
|
8530
|
+
return false;
|
|
8531
|
+
if (/(^|\/|\s)mink\s/.test(cmd))
|
|
8532
|
+
return true;
|
|
8533
|
+
return cmd.includes("cli.js") || cmd.includes("cli.ts");
|
|
8193
8534
|
}
|
|
8194
8535
|
function isMinkHook2(entry) {
|
|
8195
8536
|
if (Array.isArray(entry.hooks)) {
|
|
@@ -8201,7 +8542,7 @@ function isMinkHook2(entry) {
|
|
|
8201
8542
|
return false;
|
|
8202
8543
|
}
|
|
8203
8544
|
function mergeHooksIntoSettings2(settingsPath, newHooks) {
|
|
8204
|
-
mkdirSync12(
|
|
8545
|
+
mkdirSync12(dirname11(settingsPath), { recursive: true });
|
|
8205
8546
|
const existing = safeReadJson(settingsPath) ?? {};
|
|
8206
8547
|
const existingHooks = existing.hooks ?? {};
|
|
8207
8548
|
for (const [event, entries] of Object.entries(newHooks)) {
|
|
@@ -8220,10 +8561,10 @@ var init_init2 = __esm(() => {
|
|
|
8220
8561
|
});
|
|
8221
8562
|
|
|
8222
8563
|
// src/core/daemon-service.ts
|
|
8223
|
-
import { execSync as
|
|
8224
|
-
import { existsSync as
|
|
8564
|
+
import { execSync as execSync6 } from "child_process";
|
|
8565
|
+
import { existsSync as existsSync27, mkdirSync as mkdirSync13, unlinkSync as unlinkSync5, writeFileSync as writeFileSync10 } from "fs";
|
|
8225
8566
|
import { homedir as homedir4 } from "os";
|
|
8226
|
-
import { dirname as
|
|
8567
|
+
import { dirname as dirname12, join as join27 } from "path";
|
|
8227
8568
|
function detectPlatform() {
|
|
8228
8569
|
if (process.platform === "linux")
|
|
8229
8570
|
return "systemd";
|
|
@@ -8233,11 +8574,11 @@ function detectPlatform() {
|
|
|
8233
8574
|
}
|
|
8234
8575
|
function resolveServiceInvocation() {
|
|
8235
8576
|
const entry = process.argv[1];
|
|
8236
|
-
if (entry && !/\.(js|ts|mjs|cjs)$/.test(entry) &&
|
|
8577
|
+
if (entry && !/\.(js|ts|mjs|cjs)$/.test(entry) && existsSync27(entry)) {
|
|
8237
8578
|
return {
|
|
8238
8579
|
executable: entry,
|
|
8239
8580
|
args: ["daemon", "start"],
|
|
8240
|
-
pathDir:
|
|
8581
|
+
pathDir: dirname12(entry)
|
|
8241
8582
|
};
|
|
8242
8583
|
}
|
|
8243
8584
|
const cliPath = resolveCliPath2();
|
|
@@ -8245,17 +8586,17 @@ function resolveServiceInvocation() {
|
|
|
8245
8586
|
return {
|
|
8246
8587
|
executable: interpreter,
|
|
8247
8588
|
args: [cliPath, "daemon", "start"],
|
|
8248
|
-
pathDir:
|
|
8589
|
+
pathDir: dirname12(interpreter)
|
|
8249
8590
|
};
|
|
8250
8591
|
}
|
|
8251
8592
|
function servicePaths(platform2) {
|
|
8252
8593
|
const home = homedir4();
|
|
8253
8594
|
if (platform2 === "systemd") {
|
|
8254
|
-
const unitDir2 =
|
|
8255
|
-
return { unitDir: unitDir2, unitFile:
|
|
8595
|
+
const unitDir2 = join27(home, ".config", "systemd", "user");
|
|
8596
|
+
return { unitDir: unitDir2, unitFile: join27(unitDir2, "mink-daemon.service") };
|
|
8256
8597
|
}
|
|
8257
|
-
const unitDir =
|
|
8258
|
-
return { unitDir, unitFile:
|
|
8598
|
+
const unitDir = join27(home, "Library", "LaunchAgents");
|
|
8599
|
+
return { unitDir, unitFile: join27(unitDir, "com.mink.daemon.plist") };
|
|
8259
8600
|
}
|
|
8260
8601
|
function renderSystemdUnit(inv) {
|
|
8261
8602
|
const execStart = [inv.executable, ...inv.args].join(" ");
|
|
@@ -8329,7 +8670,7 @@ function installService(options = {}) {
|
|
|
8329
8670
|
process.exit(1);
|
|
8330
8671
|
}
|
|
8331
8672
|
const paths = servicePaths(platform2);
|
|
8332
|
-
if (
|
|
8673
|
+
if (existsSync27(paths.unitFile) && !options.force) {
|
|
8333
8674
|
console.error(`[mink] unit file already exists: ${paths.unitFile}`);
|
|
8334
8675
|
console.error(" re-run with --force to overwrite, or run `mink daemon uninstall` first");
|
|
8335
8676
|
process.exit(1);
|
|
@@ -8339,7 +8680,7 @@ function installService(options = {}) {
|
|
|
8339
8680
|
if (platform2 === "systemd") {
|
|
8340
8681
|
writeFileSync10(paths.unitFile, renderSystemdUnit(inv));
|
|
8341
8682
|
try {
|
|
8342
|
-
|
|
8683
|
+
execSync6("systemctl --user daemon-reload", { stdio: "ignore" });
|
|
8343
8684
|
} catch {}
|
|
8344
8685
|
console.log(`[mink] wrote ${paths.unitFile}`);
|
|
8345
8686
|
console.log("[mink] next steps:");
|
|
@@ -8362,24 +8703,24 @@ function uninstallService() {
|
|
|
8362
8703
|
process.exit(1);
|
|
8363
8704
|
}
|
|
8364
8705
|
const paths = servicePaths(platform2);
|
|
8365
|
-
if (!
|
|
8706
|
+
if (!existsSync27(paths.unitFile)) {
|
|
8366
8707
|
console.log(`[mink] no unit file at ${paths.unitFile} — nothing to uninstall`);
|
|
8367
8708
|
return;
|
|
8368
8709
|
}
|
|
8369
8710
|
if (platform2 === "systemd") {
|
|
8370
8711
|
try {
|
|
8371
|
-
|
|
8712
|
+
execSync6("systemctl --user disable --now mink-daemon.service", {
|
|
8372
8713
|
stdio: "ignore"
|
|
8373
8714
|
});
|
|
8374
8715
|
} catch {}
|
|
8375
8716
|
unlinkSync5(paths.unitFile);
|
|
8376
8717
|
try {
|
|
8377
|
-
|
|
8718
|
+
execSync6("systemctl --user daemon-reload", { stdio: "ignore" });
|
|
8378
8719
|
} catch {}
|
|
8379
8720
|
console.log(`[mink] removed ${paths.unitFile}`);
|
|
8380
8721
|
} else {
|
|
8381
8722
|
try {
|
|
8382
|
-
|
|
8723
|
+
execSync6(`launchctl unload -w ${paths.unitFile}`, { stdio: "ignore" });
|
|
8383
8724
|
} catch {}
|
|
8384
8725
|
unlinkSync5(paths.unitFile);
|
|
8385
8726
|
console.log(`[mink] removed ${paths.unitFile}`);
|
|
@@ -8394,7 +8735,7 @@ var exports_daemon = {};
|
|
|
8394
8735
|
__export(exports_daemon, {
|
|
8395
8736
|
daemon: () => daemon
|
|
8396
8737
|
});
|
|
8397
|
-
import { readFileSync as
|
|
8738
|
+
import { readFileSync as readFileSync22, existsSync as existsSync28 } from "fs";
|
|
8398
8739
|
async function daemon(cwd, args) {
|
|
8399
8740
|
const subcommand = args[0];
|
|
8400
8741
|
switch (subcommand) {
|
|
@@ -8410,12 +8751,12 @@ async function daemon(cwd, args) {
|
|
|
8410
8751
|
break;
|
|
8411
8752
|
case "logs": {
|
|
8412
8753
|
const logPath = schedulerLogPath();
|
|
8413
|
-
if (!
|
|
8754
|
+
if (!existsSync28(logPath)) {
|
|
8414
8755
|
console.log("[mink] no log file found");
|
|
8415
8756
|
return;
|
|
8416
8757
|
}
|
|
8417
8758
|
try {
|
|
8418
|
-
const content =
|
|
8759
|
+
const content = readFileSync22(logPath, "utf-8");
|
|
8419
8760
|
const lines = content.split(`
|
|
8420
8761
|
`);
|
|
8421
8762
|
const tail = lines.slice(-50).join(`
|
|
@@ -8682,13 +9023,13 @@ function printValidKeys() {
|
|
|
8682
9023
|
}
|
|
8683
9024
|
}
|
|
8684
9025
|
function readLineFromStdin() {
|
|
8685
|
-
return new Promise((
|
|
9026
|
+
return new Promise((resolve8) => {
|
|
8686
9027
|
const chunks = [];
|
|
8687
9028
|
process.stdin.resume();
|
|
8688
9029
|
process.stdin.setEncoding("utf-8");
|
|
8689
9030
|
process.stdin.once("data", (data) => {
|
|
8690
9031
|
process.stdin.pause();
|
|
8691
|
-
|
|
9032
|
+
resolve8(String(data).trim());
|
|
8692
9033
|
});
|
|
8693
9034
|
});
|
|
8694
9035
|
}
|
|
@@ -8763,7 +9104,7 @@ var exports_update = {};
|
|
|
8763
9104
|
__export(exports_update, {
|
|
8764
9105
|
update: () => update
|
|
8765
9106
|
});
|
|
8766
|
-
import { resolve as
|
|
9107
|
+
import { resolve as resolve8 } from "path";
|
|
8767
9108
|
function parseArgs(args) {
|
|
8768
9109
|
let dryRun = false;
|
|
8769
9110
|
let project = null;
|
|
@@ -8810,9 +9151,8 @@ async function update(cwd, args) {
|
|
|
8810
9151
|
console.log(" Run 'mink init' in a project directory to register it.");
|
|
8811
9152
|
return;
|
|
8812
9153
|
}
|
|
8813
|
-
const
|
|
8814
|
-
const
|
|
8815
|
-
const newHooks = buildHooksConfig2(runtime, cliPath);
|
|
9154
|
+
const cliPath = resolveCliPath2();
|
|
9155
|
+
const newHooks = buildHooksConfig2(cliPath);
|
|
8816
9156
|
for (const target of targets) {
|
|
8817
9157
|
console.log(`[mink] updating: ${target.name} (${target.id})`);
|
|
8818
9158
|
if (dryRun) {
|
|
@@ -8822,7 +9162,7 @@ async function update(cwd, args) {
|
|
|
8822
9162
|
}
|
|
8823
9163
|
const backupName = createBackup(target.cwd);
|
|
8824
9164
|
console.log(` backup: ${backupName}`);
|
|
8825
|
-
const settingsPath =
|
|
9165
|
+
const settingsPath = resolve8(target.cwd, ".claude", "settings.json");
|
|
8826
9166
|
mergeHooksIntoSettings2(settingsPath, newHooks);
|
|
8827
9167
|
console.log(" hooks: updated");
|
|
8828
9168
|
const metaPath = projectMetaPath(target.cwd);
|
|
@@ -8847,6 +9187,123 @@ var init_update = __esm(() => {
|
|
|
8847
9187
|
init_init2();
|
|
8848
9188
|
});
|
|
8849
9189
|
|
|
9190
|
+
// src/commands/upgrade.ts
|
|
9191
|
+
var exports_upgrade = {};
|
|
9192
|
+
__export(exports_upgrade, {
|
|
9193
|
+
upgrade: () => upgrade
|
|
9194
|
+
});
|
|
9195
|
+
function parseArgs2(args) {
|
|
9196
|
+
const out = {
|
|
9197
|
+
check: false,
|
|
9198
|
+
dryRun: false,
|
|
9199
|
+
force: false,
|
|
9200
|
+
yes: false,
|
|
9201
|
+
help: false
|
|
9202
|
+
};
|
|
9203
|
+
for (const arg of args) {
|
|
9204
|
+
switch (arg) {
|
|
9205
|
+
case "--check":
|
|
9206
|
+
out.check = true;
|
|
9207
|
+
break;
|
|
9208
|
+
case "--dry-run":
|
|
9209
|
+
out.dryRun = true;
|
|
9210
|
+
break;
|
|
9211
|
+
case "--force":
|
|
9212
|
+
out.force = true;
|
|
9213
|
+
break;
|
|
9214
|
+
case "--yes":
|
|
9215
|
+
case "-y":
|
|
9216
|
+
out.yes = true;
|
|
9217
|
+
break;
|
|
9218
|
+
case "--help":
|
|
9219
|
+
case "-h":
|
|
9220
|
+
out.help = true;
|
|
9221
|
+
break;
|
|
9222
|
+
}
|
|
9223
|
+
}
|
|
9224
|
+
return out;
|
|
9225
|
+
}
|
|
9226
|
+
function printHelp() {
|
|
9227
|
+
console.log("Usage: mink upgrade [options]");
|
|
9228
|
+
console.log("");
|
|
9229
|
+
console.log("Check the npm registry for a newer mink release and install it.");
|
|
9230
|
+
console.log(`Tracks the 'latest' dist-tag of ${PACKAGE_NAME}.`);
|
|
9231
|
+
console.log("");
|
|
9232
|
+
console.log("Options:");
|
|
9233
|
+
console.log(" --check Report whether an upgrade is available; do not install");
|
|
9234
|
+
console.log(" --dry-run Resolve everything but do not run the install command");
|
|
9235
|
+
console.log(" --force Install the latest version even if it is not strictly newer");
|
|
9236
|
+
console.log(" --yes, -y Skip the interactive confirmation prompt");
|
|
9237
|
+
console.log(" --help, -h Show this help");
|
|
9238
|
+
console.log("");
|
|
9239
|
+
console.log("Auto-update on a schedule:");
|
|
9240
|
+
console.log(" mink config set cli.auto-update true");
|
|
9241
|
+
console.log(' mink config set cli.auto-update-schedule "0 4 * * *"');
|
|
9242
|
+
}
|
|
9243
|
+
function describeResult(r) {
|
|
9244
|
+
switch (r.status) {
|
|
9245
|
+
case "up-to-date":
|
|
9246
|
+
return `Already up-to-date — ${r.current} matches latest.`;
|
|
9247
|
+
case "update-available":
|
|
9248
|
+
return `Update available: ${r.current} → ${r.latest}` + (r.packageManager ? ` (would install via ${r.packageManager})` : "");
|
|
9249
|
+
case "would-upgrade":
|
|
9250
|
+
return `Would upgrade: ${r.current} → ${r.latest}
|
|
9251
|
+
command: ${r.command}`;
|
|
9252
|
+
case "upgraded":
|
|
9253
|
+
return `Upgraded ${r.from} → ${r.to} (via ${r.packageManager}).`;
|
|
9254
|
+
case "skipped":
|
|
9255
|
+
return `Skipped: ${r.reason}`;
|
|
9256
|
+
case "error":
|
|
9257
|
+
return `Error: ${r.reason}`;
|
|
9258
|
+
}
|
|
9259
|
+
}
|
|
9260
|
+
async function confirm(prompt) {
|
|
9261
|
+
if (!process.stdin.isTTY)
|
|
9262
|
+
return false;
|
|
9263
|
+
process.stdout.write(prompt);
|
|
9264
|
+
return new Promise((resolveConfirm) => {
|
|
9265
|
+
process.stdin.setEncoding("utf-8");
|
|
9266
|
+
process.stdin.once("data", (chunk) => {
|
|
9267
|
+
const answer = String(chunk).trim().toLowerCase();
|
|
9268
|
+
resolveConfirm(answer === "y" || answer === "yes");
|
|
9269
|
+
});
|
|
9270
|
+
});
|
|
9271
|
+
}
|
|
9272
|
+
async function upgrade(_cwd, args) {
|
|
9273
|
+
const parsed = parseArgs2(args);
|
|
9274
|
+
if (parsed.help) {
|
|
9275
|
+
printHelp();
|
|
9276
|
+
return;
|
|
9277
|
+
}
|
|
9278
|
+
const isCheckLike = parsed.check || parsed.dryRun;
|
|
9279
|
+
if (!isCheckLike && !parsed.yes && process.stdin.isTTY) {
|
|
9280
|
+
const probe = await runSelfUpgrade({ source: "manual", checkOnly: true, force: parsed.force });
|
|
9281
|
+
console.log(describeResult(probe));
|
|
9282
|
+
if (probe.status !== "update-available" && !parsed.force) {
|
|
9283
|
+
return;
|
|
9284
|
+
}
|
|
9285
|
+
const ok = await confirm("Proceed with install? [y/N] ");
|
|
9286
|
+
if (!ok) {
|
|
9287
|
+
console.log("Aborted.");
|
|
9288
|
+
return;
|
|
9289
|
+
}
|
|
9290
|
+
}
|
|
9291
|
+
const result = await runSelfUpgrade({
|
|
9292
|
+
source: "manual",
|
|
9293
|
+
checkOnly: parsed.check,
|
|
9294
|
+
dryRun: parsed.dryRun,
|
|
9295
|
+
force: parsed.force,
|
|
9296
|
+
interactive: true
|
|
9297
|
+
});
|
|
9298
|
+
console.log(describeResult(result));
|
|
9299
|
+
if (result.status === "error") {
|
|
9300
|
+
process.exit(1);
|
|
9301
|
+
}
|
|
9302
|
+
}
|
|
9303
|
+
var init_upgrade = __esm(() => {
|
|
9304
|
+
init_self_update();
|
|
9305
|
+
});
|
|
9306
|
+
|
|
8850
9307
|
// src/commands/restore.ts
|
|
8851
9308
|
var exports_restore = {};
|
|
8852
9309
|
__export(exports_restore, {
|
|
@@ -8880,8 +9337,8 @@ var init_restore = __esm(() => {
|
|
|
8880
9337
|
});
|
|
8881
9338
|
|
|
8882
9339
|
// src/core/design-eval/server-detect.ts
|
|
8883
|
-
import { readFileSync as
|
|
8884
|
-
import { join as
|
|
9340
|
+
import { readFileSync as readFileSync23 } from "fs";
|
|
9341
|
+
import { join as join28 } from "path";
|
|
8885
9342
|
async function probePort(port) {
|
|
8886
9343
|
try {
|
|
8887
9344
|
const controller = new AbortController;
|
|
@@ -8903,7 +9360,7 @@ async function findRunningServer(ports = DEFAULT_PROBE_PORTS) {
|
|
|
8903
9360
|
}
|
|
8904
9361
|
function detectDevCommand(cwd) {
|
|
8905
9362
|
try {
|
|
8906
|
-
const raw =
|
|
9363
|
+
const raw = readFileSync23(join28(cwd, "package.json"), "utf-8");
|
|
8907
9364
|
const pkg = JSON.parse(raw);
|
|
8908
9365
|
const scripts = pkg.scripts;
|
|
8909
9366
|
if (!scripts || typeof scripts !== "object")
|
|
@@ -8923,10 +9380,10 @@ var init_server_detect = __esm(() => {
|
|
|
8923
9380
|
});
|
|
8924
9381
|
|
|
8925
9382
|
// src/core/design-eval/route-detect.ts
|
|
8926
|
-
import { existsSync as
|
|
8927
|
-
import { join as
|
|
9383
|
+
import { existsSync as existsSync29, readdirSync as readdirSync9, statSync as statSync11 } from "fs";
|
|
9384
|
+
import { join as join29, relative as relative6, sep as sep2 } from "path";
|
|
8928
9385
|
function detectFramework(cwd) {
|
|
8929
|
-
const has = (name) => ["js", "mjs", "ts", "cjs"].some((ext) =>
|
|
9386
|
+
const has = (name) => ["js", "mjs", "ts", "cjs"].some((ext) => existsSync29(join29(cwd, `${name}.${ext}`))) || existsSync29(join29(cwd, name));
|
|
8930
9387
|
if (has("next.config"))
|
|
8931
9388
|
return "nextjs";
|
|
8932
9389
|
if (has("svelte.config"))
|
|
@@ -8951,8 +9408,8 @@ function detectRoutes(cwd) {
|
|
|
8951
9408
|
}
|
|
8952
9409
|
function detectNextRoutes(cwd) {
|
|
8953
9410
|
const routes = [];
|
|
8954
|
-
const appDir =
|
|
8955
|
-
if (
|
|
9411
|
+
const appDir = join29(cwd, "app");
|
|
9412
|
+
if (existsSync29(appDir)) {
|
|
8956
9413
|
const pageFiles = findFiles(appDir, /^page\.(tsx?|jsx?)$/);
|
|
8957
9414
|
for (const file of pageFiles) {
|
|
8958
9415
|
const rel = relative6(appDir, file);
|
|
@@ -8963,8 +9420,8 @@ function detectNextRoutes(cwd) {
|
|
|
8963
9420
|
routes.push(route);
|
|
8964
9421
|
}
|
|
8965
9422
|
}
|
|
8966
|
-
const pagesDir =
|
|
8967
|
-
if (
|
|
9423
|
+
const pagesDir = join29(cwd, "pages");
|
|
9424
|
+
if (existsSync29(pagesDir)) {
|
|
8968
9425
|
const pageFiles = findFiles(pagesDir, /\.(tsx?|jsx?)$/);
|
|
8969
9426
|
for (const file of pageFiles) {
|
|
8970
9427
|
const rel = relative6(pagesDir, file);
|
|
@@ -8983,8 +9440,8 @@ function detectNextRoutes(cwd) {
|
|
|
8983
9440
|
return unique.length > 0 ? unique.sort() : ["/"];
|
|
8984
9441
|
}
|
|
8985
9442
|
function detectSvelteKitRoutes(cwd) {
|
|
8986
|
-
const routesDir =
|
|
8987
|
-
if (!
|
|
9443
|
+
const routesDir = join29(cwd, "src", "routes");
|
|
9444
|
+
if (!existsSync29(routesDir))
|
|
8988
9445
|
return ["/"];
|
|
8989
9446
|
const routes = [];
|
|
8990
9447
|
const pageFiles = findFiles(routesDir, /^\+page\.svelte$/);
|
|
@@ -8999,8 +9456,8 @@ function detectSvelteKitRoutes(cwd) {
|
|
|
8999
9456
|
return routes.length > 0 ? routes.sort() : ["/"];
|
|
9000
9457
|
}
|
|
9001
9458
|
function detectNuxtRoutes(cwd) {
|
|
9002
|
-
const pagesDir =
|
|
9003
|
-
if (!
|
|
9459
|
+
const pagesDir = join29(cwd, "pages");
|
|
9460
|
+
if (!existsSync29(pagesDir))
|
|
9004
9461
|
return ["/"];
|
|
9005
9462
|
const routes = [];
|
|
9006
9463
|
const vueFiles = findFiles(pagesDir, /\.vue$/);
|
|
@@ -9026,7 +9483,7 @@ function findFiles(dir, pattern) {
|
|
|
9026
9483
|
for (const entry of entries) {
|
|
9027
9484
|
if (entry.startsWith(".") || entry === "node_modules")
|
|
9028
9485
|
continue;
|
|
9029
|
-
const full =
|
|
9486
|
+
const full = join29(current, entry);
|
|
9030
9487
|
try {
|
|
9031
9488
|
const stat2 = statSync11(full);
|
|
9032
9489
|
if (stat2.isDirectory()) {
|
|
@@ -9054,11 +9511,11 @@ function __extends(d, b) {
|
|
|
9054
9511
|
}
|
|
9055
9512
|
function __awaiter(thisArg, _arguments, P, generator) {
|
|
9056
9513
|
function adopt(value) {
|
|
9057
|
-
return value instanceof P ? value : new P(function(
|
|
9058
|
-
|
|
9514
|
+
return value instanceof P ? value : new P(function(resolve9) {
|
|
9515
|
+
resolve9(value);
|
|
9059
9516
|
});
|
|
9060
9517
|
}
|
|
9061
|
-
return new (P || (P = Promise))(function(
|
|
9518
|
+
return new (P || (P = Promise))(function(resolve9, reject) {
|
|
9062
9519
|
function fulfilled(value) {
|
|
9063
9520
|
try {
|
|
9064
9521
|
step(generator.next(value));
|
|
@@ -9074,7 +9531,7 @@ function __awaiter(thisArg, _arguments, P, generator) {
|
|
|
9074
9531
|
}
|
|
9075
9532
|
}
|
|
9076
9533
|
function step(result) {
|
|
9077
|
-
result.done ?
|
|
9534
|
+
result.done ? resolve9(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
9078
9535
|
}
|
|
9079
9536
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9080
9537
|
});
|
|
@@ -9257,14 +9714,14 @@ function __asyncValues(o) {
|
|
|
9257
9714
|
}, i);
|
|
9258
9715
|
function verb(n) {
|
|
9259
9716
|
i[n] = o[n] && function(v) {
|
|
9260
|
-
return new Promise(function(
|
|
9261
|
-
v = o[n](v), settle(
|
|
9717
|
+
return new Promise(function(resolve9, reject) {
|
|
9718
|
+
v = o[n](v), settle(resolve9, reject, v.done, v.value);
|
|
9262
9719
|
});
|
|
9263
9720
|
};
|
|
9264
9721
|
}
|
|
9265
|
-
function settle(
|
|
9722
|
+
function settle(resolve9, reject, d, v) {
|
|
9266
9723
|
Promise.resolve(v).then(function(v2) {
|
|
9267
|
-
|
|
9724
|
+
resolve9({ value: v2, done: d });
|
|
9268
9725
|
}, reject);
|
|
9269
9726
|
}
|
|
9270
9727
|
}
|
|
@@ -9795,7 +10252,7 @@ function of() {
|
|
|
9795
10252
|
}
|
|
9796
10253
|
function lastValueFrom(source, config22) {
|
|
9797
10254
|
var hasConfig = typeof config22 === "object";
|
|
9798
|
-
return new Promise(function(
|
|
10255
|
+
return new Promise(function(resolve9, reject) {
|
|
9799
10256
|
var _hasValue = false;
|
|
9800
10257
|
var _value;
|
|
9801
10258
|
source.subscribe({
|
|
@@ -9806,9 +10263,9 @@ function lastValueFrom(source, config22) {
|
|
|
9806
10263
|
error: reject,
|
|
9807
10264
|
complete: function() {
|
|
9808
10265
|
if (_hasValue) {
|
|
9809
|
-
|
|
10266
|
+
resolve9(_value);
|
|
9810
10267
|
} else if (hasConfig) {
|
|
9811
|
-
|
|
10268
|
+
resolve9(config22.defaultValue);
|
|
9812
10269
|
} else {
|
|
9813
10270
|
reject(new EmptyError);
|
|
9814
10271
|
}
|
|
@@ -9818,16 +10275,16 @@ function lastValueFrom(source, config22) {
|
|
|
9818
10275
|
}
|
|
9819
10276
|
function firstValueFrom(source, config22) {
|
|
9820
10277
|
var hasConfig = typeof config22 === "object";
|
|
9821
|
-
return new Promise(function(
|
|
10278
|
+
return new Promise(function(resolve9, reject) {
|
|
9822
10279
|
var subscriber = new SafeSubscriber({
|
|
9823
10280
|
next: function(value) {
|
|
9824
|
-
|
|
10281
|
+
resolve9(value);
|
|
9825
10282
|
subscriber.unsubscribe();
|
|
9826
10283
|
},
|
|
9827
10284
|
error: reject,
|
|
9828
10285
|
complete: function() {
|
|
9829
10286
|
if (hasConfig) {
|
|
9830
|
-
|
|
10287
|
+
resolve9(config22.defaultValue);
|
|
9831
10288
|
} else {
|
|
9832
10289
|
reject(new EmptyError);
|
|
9833
10290
|
}
|
|
@@ -10879,7 +11336,7 @@ var init_rxjs = __esm(() => {
|
|
|
10879
11336
|
Observable2.prototype.forEach = function(next, promiseCtor) {
|
|
10880
11337
|
var _this = this;
|
|
10881
11338
|
promiseCtor = getPromiseCtor(promiseCtor);
|
|
10882
|
-
return new promiseCtor(function(
|
|
11339
|
+
return new promiseCtor(function(resolve9, reject) {
|
|
10883
11340
|
var subscriber = new SafeSubscriber({
|
|
10884
11341
|
next: function(value) {
|
|
10885
11342
|
try {
|
|
@@ -10890,7 +11347,7 @@ var init_rxjs = __esm(() => {
|
|
|
10890
11347
|
}
|
|
10891
11348
|
},
|
|
10892
11349
|
error: reject,
|
|
10893
|
-
complete:
|
|
11350
|
+
complete: resolve9
|
|
10894
11351
|
});
|
|
10895
11352
|
_this.subscribe(subscriber);
|
|
10896
11353
|
});
|
|
@@ -10912,14 +11369,14 @@ var init_rxjs = __esm(() => {
|
|
|
10912
11369
|
Observable2.prototype.toPromise = function(promiseCtor) {
|
|
10913
11370
|
var _this = this;
|
|
10914
11371
|
promiseCtor = getPromiseCtor(promiseCtor);
|
|
10915
|
-
return new promiseCtor(function(
|
|
11372
|
+
return new promiseCtor(function(resolve9, reject) {
|
|
10916
11373
|
var value;
|
|
10917
11374
|
_this.subscribe(function(x) {
|
|
10918
11375
|
return value = x;
|
|
10919
11376
|
}, function(err) {
|
|
10920
11377
|
return reject(err);
|
|
10921
11378
|
}, function() {
|
|
10922
|
-
return
|
|
11379
|
+
return resolve9(value);
|
|
10923
11380
|
});
|
|
10924
11381
|
});
|
|
10925
11382
|
};
|
|
@@ -12845,8 +13302,8 @@ class Deferred {
|
|
|
12845
13302
|
#isRejected = false;
|
|
12846
13303
|
#value;
|
|
12847
13304
|
#resolve;
|
|
12848
|
-
#taskPromise = new Promise((
|
|
12849
|
-
this.#resolve =
|
|
13305
|
+
#taskPromise = new Promise((resolve9) => {
|
|
13306
|
+
this.#resolve = resolve9;
|
|
12850
13307
|
});
|
|
12851
13308
|
#timeoutId;
|
|
12852
13309
|
#timeoutError;
|
|
@@ -12935,12 +13392,12 @@ var init_Mutex = __esm(() => {
|
|
|
12935
13392
|
return new Mutex.Guard(this, onRelease);
|
|
12936
13393
|
}
|
|
12937
13394
|
release() {
|
|
12938
|
-
const
|
|
12939
|
-
if (!
|
|
13395
|
+
const resolve9 = this.#acquirers.shift();
|
|
13396
|
+
if (!resolve9) {
|
|
12940
13397
|
this.#locked = false;
|
|
12941
13398
|
return;
|
|
12942
13399
|
}
|
|
12943
|
-
|
|
13400
|
+
resolve9();
|
|
12944
13401
|
}
|
|
12945
13402
|
};
|
|
12946
13403
|
});
|
|
@@ -14684,12 +15141,12 @@ var init_locators = __esm(() => {
|
|
|
14684
15141
|
}
|
|
14685
15142
|
return defer(() => {
|
|
14686
15143
|
return from(handle.evaluate((element) => {
|
|
14687
|
-
return new Promise((
|
|
15144
|
+
return new Promise((resolve9) => {
|
|
14688
15145
|
window.requestAnimationFrame(() => {
|
|
14689
15146
|
const rect1 = element.getBoundingClientRect();
|
|
14690
15147
|
window.requestAnimationFrame(() => {
|
|
14691
15148
|
const rect2 = element.getBoundingClientRect();
|
|
14692
|
-
|
|
15149
|
+
resolve9([
|
|
14693
15150
|
{
|
|
14694
15151
|
x: rect1.x,
|
|
14695
15152
|
y: rect1.y,
|
|
@@ -15980,9 +16437,9 @@ var init_ElementHandle = __esm(() => {
|
|
|
15980
16437
|
const handle = await this.#asSVGElementHandle();
|
|
15981
16438
|
const target = __addDisposableResource6(env_5, handle && await handle.#getOwnerSVGElement(), false);
|
|
15982
16439
|
return await (target ?? this).evaluate(async (element, threshold) => {
|
|
15983
|
-
const visibleRatio = await new Promise((
|
|
16440
|
+
const visibleRatio = await new Promise((resolve9) => {
|
|
15984
16441
|
const observer = new IntersectionObserver((entries) => {
|
|
15985
|
-
|
|
16442
|
+
resolve9(entries[0].intersectionRatio);
|
|
15986
16443
|
observer.disconnect();
|
|
15987
16444
|
});
|
|
15988
16445
|
observer.observe(element);
|
|
@@ -16376,7 +16833,7 @@ var init_Frame = __esm(() => {
|
|
|
16376
16833
|
}
|
|
16377
16834
|
type = type ?? "text/javascript";
|
|
16378
16835
|
return await this.mainRealm().transferHandle(await this.isolatedRealm().evaluateHandle(async ({ url, id, type: type2, content: content2 }) => {
|
|
16379
|
-
return await new Promise((
|
|
16836
|
+
return await new Promise((resolve9, reject) => {
|
|
16380
16837
|
const script = document.createElement("script");
|
|
16381
16838
|
script.type = type2;
|
|
16382
16839
|
script.text = content2;
|
|
@@ -16389,12 +16846,12 @@ var init_Frame = __esm(() => {
|
|
|
16389
16846
|
if (url) {
|
|
16390
16847
|
script.src = url;
|
|
16391
16848
|
script.addEventListener("load", () => {
|
|
16392
|
-
|
|
16849
|
+
resolve9(script);
|
|
16393
16850
|
}, { once: true });
|
|
16394
16851
|
document.head.appendChild(script);
|
|
16395
16852
|
} else {
|
|
16396
16853
|
document.head.appendChild(script);
|
|
16397
|
-
|
|
16854
|
+
resolve9(script);
|
|
16398
16855
|
}
|
|
16399
16856
|
});
|
|
16400
16857
|
}, { ...options, type, content }));
|
|
@@ -16411,7 +16868,7 @@ var init_Frame = __esm(() => {
|
|
|
16411
16868
|
options.content = content;
|
|
16412
16869
|
}
|
|
16413
16870
|
return await this.mainRealm().transferHandle(await this.isolatedRealm().evaluateHandle(async ({ url, content: content2 }) => {
|
|
16414
|
-
return await new Promise((
|
|
16871
|
+
return await new Promise((resolve9, reject) => {
|
|
16415
16872
|
let element;
|
|
16416
16873
|
if (!url) {
|
|
16417
16874
|
element = document.createElement("style");
|
|
@@ -16423,7 +16880,7 @@ var init_Frame = __esm(() => {
|
|
|
16423
16880
|
element = link;
|
|
16424
16881
|
}
|
|
16425
16882
|
element.addEventListener("load", () => {
|
|
16426
|
-
|
|
16883
|
+
resolve9(element);
|
|
16427
16884
|
}, { once: true });
|
|
16428
16885
|
element.addEventListener("error", (event) => {
|
|
16429
16886
|
reject(new Error(event.message ?? "Could not load style"));
|
|
@@ -17277,9 +17734,9 @@ var init_Page = __esm(() => {
|
|
|
17277
17734
|
++this.#screencastSessionCount;
|
|
17278
17735
|
if (!this.#startScreencastPromise) {
|
|
17279
17736
|
this.#startScreencastPromise = this.mainFrame().client.send("Page.startScreencast", { format: "png" }).then(() => {
|
|
17280
|
-
return new Promise((
|
|
17737
|
+
return new Promise((resolve9) => {
|
|
17281
17738
|
return this.mainFrame().client.once("Page.screencastFrame", () => {
|
|
17282
|
-
return
|
|
17739
|
+
return resolve9();
|
|
17283
17740
|
});
|
|
17284
17741
|
});
|
|
17285
17742
|
});
|
|
@@ -19937,11 +20394,11 @@ function addPageBinding(type, name, prefix) {
|
|
|
19937
20394
|
return value instanceof Node;
|
|
19938
20395
|
})
|
|
19939
20396
|
}));
|
|
19940
|
-
return new Promise((
|
|
20397
|
+
return new Promise((resolve9, reject) => {
|
|
19941
20398
|
callPuppeteer.callbacks.set(seq, {
|
|
19942
20399
|
resolve(value) {
|
|
19943
20400
|
callPuppeteer.args.delete(seq);
|
|
19944
|
-
|
|
20401
|
+
resolve9(value);
|
|
19945
20402
|
},
|
|
19946
20403
|
reject(value) {
|
|
19947
20404
|
callPuppeteer.args.delete(seq);
|
|
@@ -23404,8 +23861,8 @@ var init_Input2 = __esm(() => {
|
|
|
23404
23861
|
if (typeof delay === "number") {
|
|
23405
23862
|
await Promise.all(actions);
|
|
23406
23863
|
actions.length = 0;
|
|
23407
|
-
await new Promise((
|
|
23408
|
-
setTimeout(
|
|
23864
|
+
await new Promise((resolve9) => {
|
|
23865
|
+
setTimeout(resolve9, delay);
|
|
23409
23866
|
});
|
|
23410
23867
|
}
|
|
23411
23868
|
actions.push(this.up({ ...options, clickCount }));
|
|
@@ -23425,9 +23882,9 @@ var init_Input2 = __esm(() => {
|
|
|
23425
23882
|
});
|
|
23426
23883
|
}
|
|
23427
23884
|
async drag(start, target) {
|
|
23428
|
-
const promise = new Promise((
|
|
23885
|
+
const promise = new Promise((resolve9) => {
|
|
23429
23886
|
this.#client.once("Input.dragIntercepted", (event) => {
|
|
23430
|
-
return
|
|
23887
|
+
return resolve9(event.data);
|
|
23431
23888
|
});
|
|
23432
23889
|
});
|
|
23433
23890
|
await this.move(start.x, start.y);
|
|
@@ -23468,8 +23925,8 @@ var init_Input2 = __esm(() => {
|
|
|
23468
23925
|
await this.dragEnter(target, data);
|
|
23469
23926
|
await this.dragOver(target, data);
|
|
23470
23927
|
if (delay) {
|
|
23471
|
-
await new Promise((
|
|
23472
|
-
return setTimeout(
|
|
23928
|
+
await new Promise((resolve9) => {
|
|
23929
|
+
return setTimeout(resolve9, delay);
|
|
23473
23930
|
});
|
|
23474
23931
|
}
|
|
23475
23932
|
await this.drop(target, data);
|
|
@@ -24281,9 +24738,9 @@ var init_Page2 = __esm(() => {
|
|
|
24281
24738
|
async captureHeapSnapshot(options) {
|
|
24282
24739
|
const { createWriteStream } = environment.value.fs;
|
|
24283
24740
|
const stream = createWriteStream(options.path);
|
|
24284
|
-
const streamPromise = new Promise((
|
|
24741
|
+
const streamPromise = new Promise((resolve9, reject) => {
|
|
24285
24742
|
stream.on("error", reject);
|
|
24286
|
-
stream.on("finish",
|
|
24743
|
+
stream.on("finish", resolve9);
|
|
24287
24744
|
});
|
|
24288
24745
|
const client = this.#primaryTargetClient;
|
|
24289
24746
|
await client.send("HeapProfiler.enable");
|
|
@@ -25796,10 +26253,10 @@ __export(exports_BrowserWebSocketTransport, {
|
|
|
25796
26253
|
|
|
25797
26254
|
class BrowserWebSocketTransport {
|
|
25798
26255
|
static create(url) {
|
|
25799
|
-
return new Promise((
|
|
26256
|
+
return new Promise((resolve9, reject) => {
|
|
25800
26257
|
const ws = new WebSocket(url);
|
|
25801
26258
|
ws.addEventListener("open", () => {
|
|
25802
|
-
return
|
|
26259
|
+
return resolve9(new BrowserWebSocketTransport(ws));
|
|
25803
26260
|
});
|
|
25804
26261
|
ws.addEventListener("error", reject);
|
|
25805
26262
|
});
|
|
@@ -28633,11 +29090,11 @@ var require_BrowsingContextProcessor = __commonJS((exports) => {
|
|
|
28633
29090
|
}
|
|
28634
29091
|
const parentCdpClient = context2.cdpTarget.parentCdpClient;
|
|
28635
29092
|
try {
|
|
28636
|
-
const detachedFromTargetPromise = new Promise((
|
|
29093
|
+
const detachedFromTargetPromise = new Promise((resolve9) => {
|
|
28637
29094
|
const onContextDestroyed = (event) => {
|
|
28638
29095
|
if (event.targetId === params.context) {
|
|
28639
29096
|
parentCdpClient.off("Target.detachedFromTarget", onContextDestroyed);
|
|
28640
|
-
|
|
29097
|
+
resolve9();
|
|
28641
29098
|
}
|
|
28642
29099
|
};
|
|
28643
29100
|
parentCdpClient.on("Target.detachedFromTarget", onContextDestroyed);
|
|
@@ -29957,7 +30414,7 @@ var require_ActionDispatcher = __commonJS((exports) => {
|
|
|
29957
30414
|
}
|
|
29958
30415
|
}
|
|
29959
30416
|
const promises = [
|
|
29960
|
-
new Promise((
|
|
30417
|
+
new Promise((resolve9) => setTimeout(resolve9, this.#tickDuration))
|
|
29961
30418
|
];
|
|
29962
30419
|
for (const option of options) {
|
|
29963
30420
|
promises.push(this.#dispatchAction(option));
|
|
@@ -30556,8 +31013,8 @@ var require_Mutex = __commonJS((exports) => {
|
|
|
30556
31013
|
acquire() {
|
|
30557
31014
|
const state = { resolved: false };
|
|
30558
31015
|
if (this.#locked) {
|
|
30559
|
-
return new Promise((
|
|
30560
|
-
this.#acquirers.push(() =>
|
|
31016
|
+
return new Promise((resolve9) => {
|
|
31017
|
+
this.#acquirers.push(() => resolve9(this.#release.bind(this, state)));
|
|
30561
31018
|
});
|
|
30562
31019
|
}
|
|
30563
31020
|
this.#locked = true;
|
|
@@ -30568,12 +31025,12 @@ var require_Mutex = __commonJS((exports) => {
|
|
|
30568
31025
|
throw new Error("Cannot release more than once.");
|
|
30569
31026
|
}
|
|
30570
31027
|
state.resolved = true;
|
|
30571
|
-
const
|
|
30572
|
-
if (!
|
|
31028
|
+
const resolve9 = this.#acquirers.shift();
|
|
31029
|
+
if (!resolve9) {
|
|
30573
31030
|
this.#locked = false;
|
|
30574
31031
|
return;
|
|
30575
31032
|
}
|
|
30576
|
-
|
|
31033
|
+
resolve9();
|
|
30577
31034
|
}
|
|
30578
31035
|
async run(action) {
|
|
30579
31036
|
const release = await this.acquire();
|
|
@@ -31700,8 +32157,8 @@ var require_ChannelProxy = __commonJS((exports) => {
|
|
|
31700
32157
|
let queueNonEmptyResolver = null;
|
|
31701
32158
|
return {
|
|
31702
32159
|
async getMessage() {
|
|
31703
|
-
const onMessage = queue.length > 0 ? Promise.resolve() : new Promise((
|
|
31704
|
-
queueNonEmptyResolver =
|
|
32160
|
+
const onMessage = queue.length > 0 ? Promise.resolve() : new Promise((resolve9) => {
|
|
32161
|
+
queueNonEmptyResolver = resolve9;
|
|
31705
32162
|
});
|
|
31706
32163
|
await onMessage;
|
|
31707
32164
|
return queue.shift();
|
|
@@ -31787,7 +32244,7 @@ var require_ChannelProxy = __commonJS((exports) => {
|
|
|
31787
32244
|
functionDeclaration: String((id) => {
|
|
31788
32245
|
const w = window;
|
|
31789
32246
|
if (w[id] === undefined) {
|
|
31790
|
-
return new Promise((
|
|
32247
|
+
return new Promise((resolve9) => w[id] = resolve9);
|
|
31791
32248
|
}
|
|
31792
32249
|
const channelProxy = w[id];
|
|
31793
32250
|
delete w[id];
|
|
@@ -33138,8 +33595,8 @@ var require_Deferred = __commonJS((exports) => {
|
|
|
33138
33595
|
return this.#result;
|
|
33139
33596
|
}
|
|
33140
33597
|
constructor() {
|
|
33141
|
-
this.#promise = new Promise((
|
|
33142
|
-
this.#resolve =
|
|
33598
|
+
this.#promise = new Promise((resolve9, reject) => {
|
|
33599
|
+
this.#resolve = resolve9;
|
|
33143
33600
|
this.#reject = reject;
|
|
33144
33601
|
});
|
|
33145
33602
|
this.#promise.catch((_error) => {});
|
|
@@ -37464,11 +37921,11 @@ var require_BrowsingContextStorage = __commonJS((exports) => {
|
|
|
37464
37921
|
if (this.#contexts.has(browsingContextId)) {
|
|
37465
37922
|
return Promise.resolve(this.getContext(browsingContextId));
|
|
37466
37923
|
}
|
|
37467
|
-
return new Promise((
|
|
37924
|
+
return new Promise((resolve9) => {
|
|
37468
37925
|
const listener = (event) => {
|
|
37469
37926
|
if (event.browsingContext.id === browsingContextId) {
|
|
37470
37927
|
this.#eventEmitter.off("added", listener);
|
|
37471
|
-
|
|
37928
|
+
resolve9(event.browsingContext);
|
|
37472
37929
|
}
|
|
37473
37930
|
};
|
|
37474
37931
|
this.#eventEmitter.on("added", listener);
|
|
@@ -40964,8 +41421,8 @@ var init_ExposedFunction = __esm(() => {
|
|
|
40964
41421
|
const functionDeclaration = stringifyFunction(interpolateFunction((callback) => {
|
|
40965
41422
|
Object.assign(globalThis, {
|
|
40966
41423
|
[PLACEHOLDER("name")]: function(...args) {
|
|
40967
|
-
return new Promise((
|
|
40968
|
-
callback([
|
|
41424
|
+
return new Promise((resolve9, reject) => {
|
|
41425
|
+
callback([resolve9, reject, args]);
|
|
40969
41426
|
});
|
|
40970
41427
|
}
|
|
40971
41428
|
});
|
|
@@ -41053,8 +41510,8 @@ var init_ExposedFunction = __esm(() => {
|
|
|
41053
41510
|
return;
|
|
41054
41511
|
}
|
|
41055
41512
|
try {
|
|
41056
|
-
await dataHandle.evaluate(([
|
|
41057
|
-
|
|
41513
|
+
await dataHandle.evaluate(([resolve9], result2) => {
|
|
41514
|
+
resolve9(result2);
|
|
41058
41515
|
}, result);
|
|
41059
41516
|
} catch (error) {
|
|
41060
41517
|
debugError(error);
|
|
@@ -47645,8 +48102,8 @@ var require_websocket = __commonJS((exports, module) => {
|
|
|
47645
48102
|
if (websocket.readyState !== WebSocket2.CONNECTING)
|
|
47646
48103
|
return;
|
|
47647
48104
|
req = websocket._req = null;
|
|
47648
|
-
const
|
|
47649
|
-
if (
|
|
48105
|
+
const upgrade2 = res.headers.upgrade;
|
|
48106
|
+
if (upgrade2 === undefined || upgrade2.toLowerCase() !== "websocket") {
|
|
47650
48107
|
abortHandshake(websocket, socket, "Invalid Upgrade header");
|
|
47651
48108
|
return;
|
|
47652
48109
|
}
|
|
@@ -48149,14 +48606,14 @@ var require_websocket_server = __commonJS((exports, module) => {
|
|
|
48149
48606
|
handleUpgrade(req, socket, head, cb) {
|
|
48150
48607
|
socket.on("error", socketOnError);
|
|
48151
48608
|
const key = req.headers["sec-websocket-key"];
|
|
48152
|
-
const
|
|
48609
|
+
const upgrade2 = req.headers.upgrade;
|
|
48153
48610
|
const version = +req.headers["sec-websocket-version"];
|
|
48154
48611
|
if (req.method !== "GET") {
|
|
48155
48612
|
const message = "Invalid HTTP method";
|
|
48156
48613
|
abortHandshakeOrEmitwsClientError(this, req, socket, 405, message);
|
|
48157
48614
|
return;
|
|
48158
48615
|
}
|
|
48159
|
-
if (
|
|
48616
|
+
if (upgrade2 === undefined || upgrade2.toLowerCase() !== "websocket") {
|
|
48160
48617
|
const message = "Invalid Upgrade header";
|
|
48161
48618
|
abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);
|
|
48162
48619
|
return;
|
|
@@ -48346,7 +48803,7 @@ __export(exports_NodeWebSocketTransport, {
|
|
|
48346
48803
|
|
|
48347
48804
|
class NodeWebSocketTransport {
|
|
48348
48805
|
static create(url, headers) {
|
|
48349
|
-
return new Promise((
|
|
48806
|
+
return new Promise((resolve9, reject) => {
|
|
48350
48807
|
const ws = new wrapper_default(url, [], {
|
|
48351
48808
|
followRedirects: true,
|
|
48352
48809
|
perMessageDeflate: false,
|
|
@@ -48358,7 +48815,7 @@ class NodeWebSocketTransport {
|
|
|
48358
48815
|
}
|
|
48359
48816
|
});
|
|
48360
48817
|
ws.addEventListener("open", () => {
|
|
48361
|
-
return
|
|
48818
|
+
return resolve9(new NodeWebSocketTransport(ws));
|
|
48362
48819
|
});
|
|
48363
48820
|
ws.addEventListener("error", reject);
|
|
48364
48821
|
});
|
|
@@ -51250,8 +51707,8 @@ var require_helpers = __commonJS((exports) => {
|
|
|
51250
51707
|
function req(url, opts = {}) {
|
|
51251
51708
|
const href = typeof url === "string" ? url : url.href;
|
|
51252
51709
|
const req2 = (href.startsWith("https:") ? https : http).request(url, opts);
|
|
51253
|
-
const promise = new Promise((
|
|
51254
|
-
req2.once("response",
|
|
51710
|
+
const promise = new Promise((resolve9, reject) => {
|
|
51711
|
+
req2.once("response", resolve9).once("error", reject).end();
|
|
51255
51712
|
});
|
|
51256
51713
|
req2.then = promise.then.bind(promise);
|
|
51257
51714
|
return req2;
|
|
@@ -51622,7 +52079,7 @@ var require_parse_proxy_response = __commonJS((exports) => {
|
|
|
51622
52079
|
var debug_1 = __importDefault(require_src());
|
|
51623
52080
|
var debug2 = (0, debug_1.default)("https-proxy-agent:parse-proxy-response");
|
|
51624
52081
|
function parseProxyResponse(socket) {
|
|
51625
|
-
return new Promise((
|
|
52082
|
+
return new Promise((resolve9, reject) => {
|
|
51626
52083
|
let buffersLength = 0;
|
|
51627
52084
|
const buffers = [];
|
|
51628
52085
|
function read() {
|
|
@@ -51691,7 +52148,7 @@ var require_parse_proxy_response = __commonJS((exports) => {
|
|
|
51691
52148
|
}
|
|
51692
52149
|
debug2("got proxy server response: %o %o", firstLine, headers);
|
|
51693
52150
|
cleanup();
|
|
51694
|
-
|
|
52151
|
+
resolve9({
|
|
51695
52152
|
connect: {
|
|
51696
52153
|
statusCode,
|
|
51697
52154
|
statusText,
|
|
@@ -53795,11 +54252,11 @@ var require_receivebuffer = __commonJS((exports) => {
|
|
|
53795
54252
|
var require_socksclient = __commonJS((exports) => {
|
|
53796
54253
|
var __awaiter2 = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
|
|
53797
54254
|
function adopt(value) {
|
|
53798
|
-
return value instanceof P ? value : new P(function(
|
|
53799
|
-
|
|
54255
|
+
return value instanceof P ? value : new P(function(resolve9) {
|
|
54256
|
+
resolve9(value);
|
|
53800
54257
|
});
|
|
53801
54258
|
}
|
|
53802
|
-
return new (P || (P = Promise))(function(
|
|
54259
|
+
return new (P || (P = Promise))(function(resolve9, reject) {
|
|
53803
54260
|
function fulfilled(value) {
|
|
53804
54261
|
try {
|
|
53805
54262
|
step(generator.next(value));
|
|
@@ -53815,7 +54272,7 @@ var require_socksclient = __commonJS((exports) => {
|
|
|
53815
54272
|
}
|
|
53816
54273
|
}
|
|
53817
54274
|
function step(result) {
|
|
53818
|
-
result.done ?
|
|
54275
|
+
result.done ? resolve9(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
53819
54276
|
}
|
|
53820
54277
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
53821
54278
|
});
|
|
@@ -53842,13 +54299,13 @@ var require_socksclient = __commonJS((exports) => {
|
|
|
53842
54299
|
this.setState(constants_1.SocksClientState.Created);
|
|
53843
54300
|
}
|
|
53844
54301
|
static createConnection(options, callback) {
|
|
53845
|
-
return new Promise((
|
|
54302
|
+
return new Promise((resolve9, reject) => {
|
|
53846
54303
|
try {
|
|
53847
54304
|
(0, helpers_1.validateSocksClientOptions)(options, ["connect"]);
|
|
53848
54305
|
} catch (err) {
|
|
53849
54306
|
if (typeof callback === "function") {
|
|
53850
54307
|
callback(err);
|
|
53851
|
-
return
|
|
54308
|
+
return resolve9(err);
|
|
53852
54309
|
} else {
|
|
53853
54310
|
return reject(err);
|
|
53854
54311
|
}
|
|
@@ -53859,16 +54316,16 @@ var require_socksclient = __commonJS((exports) => {
|
|
|
53859
54316
|
client.removeAllListeners();
|
|
53860
54317
|
if (typeof callback === "function") {
|
|
53861
54318
|
callback(null, info);
|
|
53862
|
-
|
|
54319
|
+
resolve9(info);
|
|
53863
54320
|
} else {
|
|
53864
|
-
|
|
54321
|
+
resolve9(info);
|
|
53865
54322
|
}
|
|
53866
54323
|
});
|
|
53867
54324
|
client.once("error", (err) => {
|
|
53868
54325
|
client.removeAllListeners();
|
|
53869
54326
|
if (typeof callback === "function") {
|
|
53870
54327
|
callback(err);
|
|
53871
|
-
|
|
54328
|
+
resolve9(err);
|
|
53872
54329
|
} else {
|
|
53873
54330
|
reject(err);
|
|
53874
54331
|
}
|
|
@@ -53876,13 +54333,13 @@ var require_socksclient = __commonJS((exports) => {
|
|
|
53876
54333
|
});
|
|
53877
54334
|
}
|
|
53878
54335
|
static createConnectionChain(options, callback) {
|
|
53879
|
-
return new Promise((
|
|
54336
|
+
return new Promise((resolve9, reject) => __awaiter2(this, undefined, undefined, function* () {
|
|
53880
54337
|
try {
|
|
53881
54338
|
(0, helpers_1.validateSocksClientChainOptions)(options);
|
|
53882
54339
|
} catch (err) {
|
|
53883
54340
|
if (typeof callback === "function") {
|
|
53884
54341
|
callback(err);
|
|
53885
|
-
return
|
|
54342
|
+
return resolve9(err);
|
|
53886
54343
|
} else {
|
|
53887
54344
|
return reject(err);
|
|
53888
54345
|
}
|
|
@@ -53908,14 +54365,14 @@ var require_socksclient = __commonJS((exports) => {
|
|
|
53908
54365
|
}
|
|
53909
54366
|
if (typeof callback === "function") {
|
|
53910
54367
|
callback(null, { socket: sock });
|
|
53911
|
-
|
|
54368
|
+
resolve9({ socket: sock });
|
|
53912
54369
|
} else {
|
|
53913
|
-
|
|
54370
|
+
resolve9({ socket: sock });
|
|
53914
54371
|
}
|
|
53915
54372
|
} catch (err) {
|
|
53916
54373
|
if (typeof callback === "function") {
|
|
53917
54374
|
callback(err);
|
|
53918
|
-
|
|
54375
|
+
resolve9(err);
|
|
53919
54376
|
} else {
|
|
53920
54377
|
reject(err);
|
|
53921
54378
|
}
|
|
@@ -54515,12 +54972,12 @@ var require_dist4 = __commonJS((exports) => {
|
|
|
54515
54972
|
let { host } = opts;
|
|
54516
54973
|
const { port, lookup: lookupFn = dns.lookup } = opts;
|
|
54517
54974
|
if (shouldLookup) {
|
|
54518
|
-
host = await new Promise((
|
|
54975
|
+
host = await new Promise((resolve9, reject) => {
|
|
54519
54976
|
lookupFn(host, {}, (err, res) => {
|
|
54520
54977
|
if (err) {
|
|
54521
54978
|
reject(err);
|
|
54522
54979
|
} else {
|
|
54523
|
-
|
|
54980
|
+
resolve9(res);
|
|
54524
54981
|
}
|
|
54525
54982
|
});
|
|
54526
54983
|
});
|
|
@@ -55527,7 +55984,7 @@ var require_netUtils = __commonJS((exports) => {
|
|
|
55527
55984
|
return `${socket.remoteAddress}:${socket.remotePort}`;
|
|
55528
55985
|
}
|
|
55529
55986
|
function upgradeSocket(socket, options) {
|
|
55530
|
-
return new Promise((
|
|
55987
|
+
return new Promise((resolve9, reject) => {
|
|
55531
55988
|
const tlsOptions = Object.assign({}, options, {
|
|
55532
55989
|
socket
|
|
55533
55990
|
});
|
|
@@ -55537,7 +55994,7 @@ var require_netUtils = __commonJS((exports) => {
|
|
|
55537
55994
|
reject(tlsSocket.authorizationError);
|
|
55538
55995
|
} else {
|
|
55539
55996
|
tlsSocket.removeAllListeners("error");
|
|
55540
|
-
|
|
55997
|
+
resolve9(tlsSocket);
|
|
55541
55998
|
}
|
|
55542
55999
|
}).once("error", (error) => {
|
|
55543
56000
|
reject(error);
|
|
@@ -55629,7 +56086,7 @@ var require_transfer = __commonJS((exports) => {
|
|
|
55629
56086
|
};
|
|
55630
56087
|
}
|
|
55631
56088
|
function connectForPassiveTransfer(host, port, ftp) {
|
|
55632
|
-
return new Promise((
|
|
56089
|
+
return new Promise((resolve9, reject) => {
|
|
55633
56090
|
let socket = ftp._newSocket();
|
|
55634
56091
|
const handleConnErr = function(err) {
|
|
55635
56092
|
err.message = "Can't open data connection in passive mode: " + err.message;
|
|
@@ -55652,7 +56109,7 @@ var require_transfer = __commonJS((exports) => {
|
|
|
55652
56109
|
socket.removeListener("error", handleConnErr);
|
|
55653
56110
|
socket.removeListener("timeout", handleTimeout);
|
|
55654
56111
|
ftp.dataSocket = socket;
|
|
55655
|
-
|
|
56112
|
+
resolve9();
|
|
55656
56113
|
});
|
|
55657
56114
|
});
|
|
55658
56115
|
}
|
|
@@ -57730,7 +58187,7 @@ var require_util2 = __commonJS((exports) => {
|
|
|
57730
58187
|
return path;
|
|
57731
58188
|
}
|
|
57732
58189
|
exports.normalize = normalize2;
|
|
57733
|
-
function
|
|
58190
|
+
function join30(aRoot, aPath) {
|
|
57734
58191
|
if (aRoot === "") {
|
|
57735
58192
|
aRoot = ".";
|
|
57736
58193
|
}
|
|
@@ -57762,7 +58219,7 @@ var require_util2 = __commonJS((exports) => {
|
|
|
57762
58219
|
}
|
|
57763
58220
|
return joined;
|
|
57764
58221
|
}
|
|
57765
|
-
exports.join =
|
|
58222
|
+
exports.join = join30;
|
|
57766
58223
|
exports.isAbsolute = function(aPath) {
|
|
57767
58224
|
return aPath.charAt(0) === "/" || urlRegexp.test(aPath);
|
|
57768
58225
|
};
|
|
@@ -57935,7 +58392,7 @@ var require_util2 = __commonJS((exports) => {
|
|
|
57935
58392
|
parsed.path = parsed.path.substring(0, index + 1);
|
|
57936
58393
|
}
|
|
57937
58394
|
}
|
|
57938
|
-
sourceURL =
|
|
58395
|
+
sourceURL = join30(urlGenerate(parsed), sourceURL);
|
|
57939
58396
|
}
|
|
57940
58397
|
return normalize2(sourceURL);
|
|
57941
58398
|
}
|
|
@@ -59667,7 +60124,7 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
59667
60124
|
function noEmptySpace() {
|
|
59668
60125
|
return space ? space : " ";
|
|
59669
60126
|
}
|
|
59670
|
-
function
|
|
60127
|
+
function join30(left, right) {
|
|
59671
60128
|
var leftSource, rightSource, leftCharCode, rightCharCode;
|
|
59672
60129
|
leftSource = toSourceNodeWhenNeeded(left).toString();
|
|
59673
60130
|
if (leftSource.length === 0) {
|
|
@@ -60008,8 +60465,8 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
60008
60465
|
} else {
|
|
60009
60466
|
result.push(that.generateExpression(stmt.left, Precedence.Call, E_TTT));
|
|
60010
60467
|
}
|
|
60011
|
-
result =
|
|
60012
|
-
result = [
|
|
60468
|
+
result = join30(result, operator);
|
|
60469
|
+
result = [join30(result, that.generateExpression(stmt.right, Precedence.Assignment, E_TTT)), ")"];
|
|
60013
60470
|
});
|
|
60014
60471
|
result.push(this.maybeBlock(stmt.body, flags));
|
|
60015
60472
|
return result;
|
|
@@ -60147,11 +60604,11 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
60147
60604
|
var result, fragment;
|
|
60148
60605
|
result = ["class"];
|
|
60149
60606
|
if (stmt.id) {
|
|
60150
|
-
result =
|
|
60607
|
+
result = join30(result, this.generateExpression(stmt.id, Precedence.Sequence, E_TTT));
|
|
60151
60608
|
}
|
|
60152
60609
|
if (stmt.superClass) {
|
|
60153
|
-
fragment =
|
|
60154
|
-
result =
|
|
60610
|
+
fragment = join30("extends", this.generateExpression(stmt.superClass, Precedence.Unary, E_TTT));
|
|
60611
|
+
result = join30(result, fragment);
|
|
60155
60612
|
}
|
|
60156
60613
|
result.push(space);
|
|
60157
60614
|
result.push(this.generateStatement(stmt.body, S_TFFT));
|
|
@@ -60164,9 +60621,9 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
60164
60621
|
return escapeDirective(stmt.directive) + this.semicolon(flags);
|
|
60165
60622
|
},
|
|
60166
60623
|
DoWhileStatement: function(stmt, flags) {
|
|
60167
|
-
var result =
|
|
60624
|
+
var result = join30("do", this.maybeBlock(stmt.body, S_TFFF));
|
|
60168
60625
|
result = this.maybeBlockSuffix(stmt.body, result);
|
|
60169
|
-
return
|
|
60626
|
+
return join30(result, [
|
|
60170
60627
|
"while" + space + "(",
|
|
60171
60628
|
this.generateExpression(stmt.test, Precedence.Sequence, E_TTT),
|
|
60172
60629
|
")" + this.semicolon(flags)
|
|
@@ -60202,11 +60659,11 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
60202
60659
|
ExportDefaultDeclaration: function(stmt, flags) {
|
|
60203
60660
|
var result = ["export"], bodyFlags;
|
|
60204
60661
|
bodyFlags = flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF;
|
|
60205
|
-
result =
|
|
60662
|
+
result = join30(result, "default");
|
|
60206
60663
|
if (isStatement(stmt.declaration)) {
|
|
60207
|
-
result =
|
|
60664
|
+
result = join30(result, this.generateStatement(stmt.declaration, bodyFlags));
|
|
60208
60665
|
} else {
|
|
60209
|
-
result =
|
|
60666
|
+
result = join30(result, this.generateExpression(stmt.declaration, Precedence.Assignment, E_TTT) + this.semicolon(flags));
|
|
60210
60667
|
}
|
|
60211
60668
|
return result;
|
|
60212
60669
|
},
|
|
@@ -60214,15 +60671,15 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
60214
60671
|
var result = ["export"], bodyFlags, that = this;
|
|
60215
60672
|
bodyFlags = flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF;
|
|
60216
60673
|
if (stmt.declaration) {
|
|
60217
|
-
return
|
|
60674
|
+
return join30(result, this.generateStatement(stmt.declaration, bodyFlags));
|
|
60218
60675
|
}
|
|
60219
60676
|
if (stmt.specifiers) {
|
|
60220
60677
|
if (stmt.specifiers.length === 0) {
|
|
60221
|
-
result =
|
|
60678
|
+
result = join30(result, "{" + space + "}");
|
|
60222
60679
|
} else if (stmt.specifiers[0].type === Syntax.ExportBatchSpecifier) {
|
|
60223
|
-
result =
|
|
60680
|
+
result = join30(result, this.generateExpression(stmt.specifiers[0], Precedence.Sequence, E_TTT));
|
|
60224
60681
|
} else {
|
|
60225
|
-
result =
|
|
60682
|
+
result = join30(result, "{");
|
|
60226
60683
|
withIndent(function(indent2) {
|
|
60227
60684
|
var i, iz;
|
|
60228
60685
|
result.push(newline);
|
|
@@ -60240,7 +60697,7 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
60240
60697
|
result.push(base + "}");
|
|
60241
60698
|
}
|
|
60242
60699
|
if (stmt.source) {
|
|
60243
|
-
result =
|
|
60700
|
+
result = join30(result, [
|
|
60244
60701
|
"from" + space,
|
|
60245
60702
|
this.generateExpression(stmt.source, Precedence.Sequence, E_TTT),
|
|
60246
60703
|
this.semicolon(flags)
|
|
@@ -60324,7 +60781,7 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
60324
60781
|
];
|
|
60325
60782
|
cursor = 0;
|
|
60326
60783
|
if (stmt.specifiers[cursor].type === Syntax.ImportDefaultSpecifier) {
|
|
60327
|
-
result =
|
|
60784
|
+
result = join30(result, [
|
|
60328
60785
|
this.generateExpression(stmt.specifiers[cursor], Precedence.Sequence, E_TTT)
|
|
60329
60786
|
]);
|
|
60330
60787
|
++cursor;
|
|
@@ -60334,7 +60791,7 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
60334
60791
|
result.push(",");
|
|
60335
60792
|
}
|
|
60336
60793
|
if (stmt.specifiers[cursor].type === Syntax.ImportNamespaceSpecifier) {
|
|
60337
|
-
result =
|
|
60794
|
+
result = join30(result, [
|
|
60338
60795
|
space,
|
|
60339
60796
|
this.generateExpression(stmt.specifiers[cursor], Precedence.Sequence, E_TTT)
|
|
60340
60797
|
]);
|
|
@@ -60363,7 +60820,7 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
60363
60820
|
}
|
|
60364
60821
|
}
|
|
60365
60822
|
}
|
|
60366
|
-
result =
|
|
60823
|
+
result = join30(result, [
|
|
60367
60824
|
"from" + space,
|
|
60368
60825
|
this.generateExpression(stmt.source, Precedence.Sequence, E_TTT),
|
|
60369
60826
|
this.semicolon(flags)
|
|
@@ -60417,7 +60874,7 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
60417
60874
|
return result;
|
|
60418
60875
|
},
|
|
60419
60876
|
ThrowStatement: function(stmt, flags) {
|
|
60420
|
-
return [
|
|
60877
|
+
return [join30("throw", this.generateExpression(stmt.argument, Precedence.Sequence, E_TTT)), this.semicolon(flags)];
|
|
60421
60878
|
},
|
|
60422
60879
|
TryStatement: function(stmt, flags) {
|
|
60423
60880
|
var result, i, iz, guardedHandlers;
|
|
@@ -60425,7 +60882,7 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
60425
60882
|
result = this.maybeBlockSuffix(stmt.block, result);
|
|
60426
60883
|
if (stmt.handlers) {
|
|
60427
60884
|
for (i = 0, iz = stmt.handlers.length;i < iz; ++i) {
|
|
60428
|
-
result =
|
|
60885
|
+
result = join30(result, this.generateStatement(stmt.handlers[i], S_TFFF));
|
|
60429
60886
|
if (stmt.finalizer || i + 1 !== iz) {
|
|
60430
60887
|
result = this.maybeBlockSuffix(stmt.handlers[i].body, result);
|
|
60431
60888
|
}
|
|
@@ -60433,7 +60890,7 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
60433
60890
|
} else {
|
|
60434
60891
|
guardedHandlers = stmt.guardedHandlers || [];
|
|
60435
60892
|
for (i = 0, iz = guardedHandlers.length;i < iz; ++i) {
|
|
60436
|
-
result =
|
|
60893
|
+
result = join30(result, this.generateStatement(guardedHandlers[i], S_TFFF));
|
|
60437
60894
|
if (stmt.finalizer || i + 1 !== iz) {
|
|
60438
60895
|
result = this.maybeBlockSuffix(guardedHandlers[i].body, result);
|
|
60439
60896
|
}
|
|
@@ -60441,13 +60898,13 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
60441
60898
|
if (stmt.handler) {
|
|
60442
60899
|
if (Array.isArray(stmt.handler)) {
|
|
60443
60900
|
for (i = 0, iz = stmt.handler.length;i < iz; ++i) {
|
|
60444
|
-
result =
|
|
60901
|
+
result = join30(result, this.generateStatement(stmt.handler[i], S_TFFF));
|
|
60445
60902
|
if (stmt.finalizer || i + 1 !== iz) {
|
|
60446
60903
|
result = this.maybeBlockSuffix(stmt.handler[i].body, result);
|
|
60447
60904
|
}
|
|
60448
60905
|
}
|
|
60449
60906
|
} else {
|
|
60450
|
-
result =
|
|
60907
|
+
result = join30(result, this.generateStatement(stmt.handler, S_TFFF));
|
|
60451
60908
|
if (stmt.finalizer) {
|
|
60452
60909
|
result = this.maybeBlockSuffix(stmt.handler.body, result);
|
|
60453
60910
|
}
|
|
@@ -60455,7 +60912,7 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
60455
60912
|
}
|
|
60456
60913
|
}
|
|
60457
60914
|
if (stmt.finalizer) {
|
|
60458
|
-
result =
|
|
60915
|
+
result = join30(result, ["finally", this.maybeBlock(stmt.finalizer, S_TFFF)]);
|
|
60459
60916
|
}
|
|
60460
60917
|
return result;
|
|
60461
60918
|
},
|
|
@@ -60489,7 +60946,7 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
60489
60946
|
withIndent(function() {
|
|
60490
60947
|
if (stmt.test) {
|
|
60491
60948
|
result = [
|
|
60492
|
-
|
|
60949
|
+
join30("case", that.generateExpression(stmt.test, Precedence.Sequence, E_TTT)),
|
|
60493
60950
|
":"
|
|
60494
60951
|
];
|
|
60495
60952
|
} else {
|
|
@@ -60537,9 +60994,9 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
60537
60994
|
result.push(this.maybeBlock(stmt.consequent, S_TFFF));
|
|
60538
60995
|
result = this.maybeBlockSuffix(stmt.consequent, result);
|
|
60539
60996
|
if (stmt.alternate.type === Syntax.IfStatement) {
|
|
60540
|
-
result =
|
|
60997
|
+
result = join30(result, ["else ", this.generateStatement(stmt.alternate, bodyFlags)]);
|
|
60541
60998
|
} else {
|
|
60542
|
-
result =
|
|
60999
|
+
result = join30(result, join30("else", this.maybeBlock(stmt.alternate, bodyFlags)));
|
|
60543
61000
|
}
|
|
60544
61001
|
} else {
|
|
60545
61002
|
result.push(this.maybeBlock(stmt.consequent, bodyFlags));
|
|
@@ -60641,7 +61098,7 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
60641
61098
|
},
|
|
60642
61099
|
ReturnStatement: function(stmt, flags) {
|
|
60643
61100
|
if (stmt.argument) {
|
|
60644
|
-
return [
|
|
61101
|
+
return [join30("return", this.generateExpression(stmt.argument, Precedence.Sequence, E_TTT)), this.semicolon(flags)];
|
|
60645
61102
|
}
|
|
60646
61103
|
return ["return" + this.semicolon(flags)];
|
|
60647
61104
|
},
|
|
@@ -60723,14 +61180,14 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
60723
61180
|
if (leftSource.charCodeAt(leftSource.length - 1) === 47 && esutils.code.isIdentifierPartES5(expr.operator.charCodeAt(0))) {
|
|
60724
61181
|
result = [fragment, noEmptySpace(), expr.operator];
|
|
60725
61182
|
} else {
|
|
60726
|
-
result =
|
|
61183
|
+
result = join30(fragment, expr.operator);
|
|
60727
61184
|
}
|
|
60728
61185
|
fragment = this.generateExpression(expr.right, rightPrecedence, flags);
|
|
60729
61186
|
if (expr.operator === "/" && fragment.toString().charAt(0) === "/" || expr.operator.slice(-1) === "<" && fragment.toString().slice(0, 3) === "!--") {
|
|
60730
61187
|
result.push(noEmptySpace());
|
|
60731
61188
|
result.push(fragment);
|
|
60732
61189
|
} else {
|
|
60733
|
-
result =
|
|
61190
|
+
result = join30(result, fragment);
|
|
60734
61191
|
}
|
|
60735
61192
|
if (expr.operator === "in" && !(flags & F_ALLOW_IN)) {
|
|
60736
61193
|
return ["(", result, ")"];
|
|
@@ -60770,7 +61227,7 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
60770
61227
|
var result, length, i, iz, itemFlags;
|
|
60771
61228
|
length = expr["arguments"].length;
|
|
60772
61229
|
itemFlags = flags & F_ALLOW_UNPARATH_NEW && !parentheses && length === 0 ? E_TFT : E_TFF;
|
|
60773
|
-
result =
|
|
61230
|
+
result = join30("new", this.generateExpression(expr.callee, Precedence.New, itemFlags));
|
|
60774
61231
|
if (!(flags & F_ALLOW_UNPARATH_NEW) || parentheses || length > 0) {
|
|
60775
61232
|
result.push("(");
|
|
60776
61233
|
for (i = 0, iz = length;i < iz; ++i) {
|
|
@@ -60817,11 +61274,11 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
60817
61274
|
var result, fragment, rightCharCode, leftSource, leftCharCode;
|
|
60818
61275
|
fragment = this.generateExpression(expr.argument, Precedence.Unary, E_TTT);
|
|
60819
61276
|
if (space === "") {
|
|
60820
|
-
result =
|
|
61277
|
+
result = join30(expr.operator, fragment);
|
|
60821
61278
|
} else {
|
|
60822
61279
|
result = [expr.operator];
|
|
60823
61280
|
if (expr.operator.length > 2) {
|
|
60824
|
-
result =
|
|
61281
|
+
result = join30(result, fragment);
|
|
60825
61282
|
} else {
|
|
60826
61283
|
leftSource = toSourceNodeWhenNeeded(result).toString();
|
|
60827
61284
|
leftCharCode = leftSource.charCodeAt(leftSource.length - 1);
|
|
@@ -60844,12 +61301,12 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
60844
61301
|
result = "yield";
|
|
60845
61302
|
}
|
|
60846
61303
|
if (expr.argument) {
|
|
60847
|
-
result =
|
|
61304
|
+
result = join30(result, this.generateExpression(expr.argument, Precedence.Yield, E_TTT));
|
|
60848
61305
|
}
|
|
60849
61306
|
return parenthesize(result, Precedence.Yield, precedence);
|
|
60850
61307
|
},
|
|
60851
61308
|
AwaitExpression: function(expr, precedence, flags) {
|
|
60852
|
-
var result =
|
|
61309
|
+
var result = join30(expr.all ? "await*" : "await", this.generateExpression(expr.argument, Precedence.Await, E_TTT));
|
|
60853
61310
|
return parenthesize(result, Precedence.Await, precedence);
|
|
60854
61311
|
},
|
|
60855
61312
|
UpdateExpression: function(expr, precedence, flags) {
|
|
@@ -60921,11 +61378,11 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
60921
61378
|
var result, fragment;
|
|
60922
61379
|
result = ["class"];
|
|
60923
61380
|
if (expr.id) {
|
|
60924
|
-
result =
|
|
61381
|
+
result = join30(result, this.generateExpression(expr.id, Precedence.Sequence, E_TTT));
|
|
60925
61382
|
}
|
|
60926
61383
|
if (expr.superClass) {
|
|
60927
|
-
fragment =
|
|
60928
|
-
result =
|
|
61384
|
+
fragment = join30("extends", this.generateExpression(expr.superClass, Precedence.Unary, E_TTT));
|
|
61385
|
+
result = join30(result, fragment);
|
|
60929
61386
|
}
|
|
60930
61387
|
result.push(space);
|
|
60931
61388
|
result.push(this.generateStatement(expr.body, S_TFFT));
|
|
@@ -60940,7 +61397,7 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
60940
61397
|
}
|
|
60941
61398
|
if (expr.kind === "get" || expr.kind === "set") {
|
|
60942
61399
|
fragment = [
|
|
60943
|
-
|
|
61400
|
+
join30(expr.kind, this.generatePropertyKey(expr.key, expr.computed)),
|
|
60944
61401
|
this.generateFunctionBody(expr.value)
|
|
60945
61402
|
];
|
|
60946
61403
|
} else {
|
|
@@ -60950,7 +61407,7 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
60950
61407
|
this.generateFunctionBody(expr.value)
|
|
60951
61408
|
];
|
|
60952
61409
|
}
|
|
60953
|
-
return
|
|
61410
|
+
return join30(result, fragment);
|
|
60954
61411
|
},
|
|
60955
61412
|
Property: function(expr, precedence, flags) {
|
|
60956
61413
|
if (expr.kind === "get" || expr.kind === "set") {
|
|
@@ -61144,7 +61601,7 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
61144
61601
|
for (i = 0, iz = expr.blocks.length;i < iz; ++i) {
|
|
61145
61602
|
fragment = that.generateExpression(expr.blocks[i], Precedence.Sequence, E_TTT);
|
|
61146
61603
|
if (i > 0 || extra.moz.comprehensionExpressionStartsWithAssignment) {
|
|
61147
|
-
result =
|
|
61604
|
+
result = join30(result, fragment);
|
|
61148
61605
|
} else {
|
|
61149
61606
|
result.push(fragment);
|
|
61150
61607
|
}
|
|
@@ -61152,13 +61609,13 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
61152
61609
|
});
|
|
61153
61610
|
}
|
|
61154
61611
|
if (expr.filter) {
|
|
61155
|
-
result =
|
|
61612
|
+
result = join30(result, "if" + space);
|
|
61156
61613
|
fragment = this.generateExpression(expr.filter, Precedence.Sequence, E_TTT);
|
|
61157
|
-
result =
|
|
61614
|
+
result = join30(result, ["(", fragment, ")"]);
|
|
61158
61615
|
}
|
|
61159
61616
|
if (!extra.moz.comprehensionExpressionStartsWithAssignment) {
|
|
61160
61617
|
fragment = this.generateExpression(expr.body, Precedence.Assignment, E_TTT);
|
|
61161
|
-
result =
|
|
61618
|
+
result = join30(result, fragment);
|
|
61162
61619
|
}
|
|
61163
61620
|
result.push(expr.type === Syntax.GeneratorExpression ? ")" : "]");
|
|
61164
61621
|
return result;
|
|
@@ -61174,8 +61631,8 @@ var require_escodegen = __commonJS((exports) => {
|
|
|
61174
61631
|
} else {
|
|
61175
61632
|
fragment = this.generateExpression(expr.left, Precedence.Call, E_TTT);
|
|
61176
61633
|
}
|
|
61177
|
-
fragment =
|
|
61178
|
-
fragment =
|
|
61634
|
+
fragment = join30(fragment, expr.of ? "of" : "in");
|
|
61635
|
+
fragment = join30(fragment, this.generateExpression(expr.right, Precedence.Sequence, E_TTT));
|
|
61179
61636
|
return ["for" + space + "(", fragment, ")"];
|
|
61180
61637
|
},
|
|
61181
61638
|
SpreadElement: function(expr, precedence, flags) {
|
|
@@ -67663,11 +68120,11 @@ var require_tslib = __commonJS((exports, module) => {
|
|
|
67663
68120
|
};
|
|
67664
68121
|
__awaiter2 = function(thisArg, _arguments, P, generator) {
|
|
67665
68122
|
function adopt(value) {
|
|
67666
|
-
return value instanceof P ? value : new P(function(
|
|
67667
|
-
|
|
68123
|
+
return value instanceof P ? value : new P(function(resolve9) {
|
|
68124
|
+
resolve9(value);
|
|
67668
68125
|
});
|
|
67669
68126
|
}
|
|
67670
|
-
return new (P || (P = Promise))(function(
|
|
68127
|
+
return new (P || (P = Promise))(function(resolve9, reject) {
|
|
67671
68128
|
function fulfilled(value) {
|
|
67672
68129
|
try {
|
|
67673
68130
|
step(generator.next(value));
|
|
@@ -67683,7 +68140,7 @@ var require_tslib = __commonJS((exports, module) => {
|
|
|
67683
68140
|
}
|
|
67684
68141
|
}
|
|
67685
68142
|
function step(result) {
|
|
67686
|
-
result.done ?
|
|
68143
|
+
result.done ? resolve9(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
67687
68144
|
}
|
|
67688
68145
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
67689
68146
|
});
|
|
@@ -67912,14 +68369,14 @@ var require_tslib = __commonJS((exports, module) => {
|
|
|
67912
68369
|
}, i);
|
|
67913
68370
|
function verb(n) {
|
|
67914
68371
|
i[n] = o[n] && function(v) {
|
|
67915
|
-
return new Promise(function(
|
|
67916
|
-
v = o[n](v), settle(
|
|
68372
|
+
return new Promise(function(resolve9, reject) {
|
|
68373
|
+
v = o[n](v), settle(resolve9, reject, v.done, v.value);
|
|
67917
68374
|
});
|
|
67918
68375
|
};
|
|
67919
68376
|
}
|
|
67920
|
-
function settle(
|
|
68377
|
+
function settle(resolve9, reject, d, v) {
|
|
67921
68378
|
Promise.resolve(v).then(function(v2) {
|
|
67922
|
-
|
|
68379
|
+
resolve9({ value: v2, done: d });
|
|
67923
68380
|
}, reject);
|
|
67924
68381
|
}
|
|
67925
68382
|
};
|
|
@@ -71158,12 +71615,12 @@ var require_util3 = __commonJS((exports) => {
|
|
|
71158
71615
|
exports.isGMT = exports.dnsLookup = undefined;
|
|
71159
71616
|
var dns_1 = __require("dns");
|
|
71160
71617
|
function dnsLookup(host, opts) {
|
|
71161
|
-
return new Promise((
|
|
71618
|
+
return new Promise((resolve9, reject) => {
|
|
71162
71619
|
(0, dns_1.lookup)(host, opts, (err, res) => {
|
|
71163
71620
|
if (err) {
|
|
71164
71621
|
reject(err);
|
|
71165
71622
|
} else {
|
|
71166
|
-
|
|
71623
|
+
resolve9(res);
|
|
71167
71624
|
}
|
|
71168
71625
|
});
|
|
71169
71626
|
});
|
|
@@ -71737,10 +72194,10 @@ var require_myIpAddress = __commonJS((exports) => {
|
|
|
71737
72194
|
var ip_1 = require_ip();
|
|
71738
72195
|
var net_1 = __importDefault(__require("net"));
|
|
71739
72196
|
async function myIpAddress() {
|
|
71740
|
-
return new Promise((
|
|
72197
|
+
return new Promise((resolve9, reject) => {
|
|
71741
72198
|
const socket = net_1.default.connect({ host: "8.8.8.8", port: 53 });
|
|
71742
72199
|
const onError = () => {
|
|
71743
|
-
|
|
72200
|
+
resolve9(ip_1.ip.address());
|
|
71744
72201
|
};
|
|
71745
72202
|
socket.once("error", onError);
|
|
71746
72203
|
socket.once("connect", () => {
|
|
@@ -71748,9 +72205,9 @@ var require_myIpAddress = __commonJS((exports) => {
|
|
|
71748
72205
|
const addr = socket.address();
|
|
71749
72206
|
socket.destroy();
|
|
71750
72207
|
if (typeof addr === "string") {
|
|
71751
|
-
|
|
72208
|
+
resolve9(addr);
|
|
71752
72209
|
} else if (addr.address) {
|
|
71753
|
-
|
|
72210
|
+
resolve9(addr.address);
|
|
71754
72211
|
} else {
|
|
71755
72212
|
reject(new Error("Expected a `string`"));
|
|
71756
72213
|
}
|
|
@@ -72264,8 +72721,8 @@ var require_deferred_promise = __commonJS((exports) => {
|
|
|
72264
72721
|
this.context = args.context;
|
|
72265
72722
|
this.owner = args.context.runtime;
|
|
72266
72723
|
this.handle = args.promiseHandle;
|
|
72267
|
-
this.settled = new Promise((
|
|
72268
|
-
this.onSettled =
|
|
72724
|
+
this.settled = new Promise((resolve9) => {
|
|
72725
|
+
this.onSettled = resolve9;
|
|
72269
72726
|
});
|
|
72270
72727
|
this.resolveHandle = args.resolveHandle;
|
|
72271
72728
|
this.rejectHandle = args.rejectHandle;
|
|
@@ -72657,13 +73114,13 @@ var require_context = __commonJS((exports) => {
|
|
|
72657
73114
|
if (vmResolveResult.error) {
|
|
72658
73115
|
return Promise.resolve(vmResolveResult);
|
|
72659
73116
|
}
|
|
72660
|
-
return new Promise((
|
|
73117
|
+
return new Promise((resolve9) => {
|
|
72661
73118
|
lifetime_1.Scope.withScope((scope) => {
|
|
72662
73119
|
const resolveHandle = scope.manage(this.newFunction("resolve", (value) => {
|
|
72663
|
-
|
|
73120
|
+
resolve9({ value: value && value.dup() });
|
|
72664
73121
|
}));
|
|
72665
73122
|
const rejectHandle = scope.manage(this.newFunction("reject", (error) => {
|
|
72666
|
-
|
|
73123
|
+
resolve9({ error: error && error.dup() });
|
|
72667
73124
|
}));
|
|
72668
73125
|
const promiseHandle = scope.manage(vmResolveResult.value);
|
|
72669
73126
|
const promiseThenHandle = scope.manage(this.getProp(promiseHandle, "then"));
|
|
@@ -74777,13 +75234,13 @@ import * as http from "node:http";
|
|
|
74777
75234
|
import * as https from "node:https";
|
|
74778
75235
|
import { URL as URL2, urlToHttpOptions } from "node:url";
|
|
74779
75236
|
function headHttpRequest(url) {
|
|
74780
|
-
return new Promise((
|
|
75237
|
+
return new Promise((resolve9) => {
|
|
74781
75238
|
const request3 = httpRequest(url, "HEAD", (response) => {
|
|
74782
75239
|
response.resume();
|
|
74783
|
-
|
|
75240
|
+
resolve9(response.statusCode === 200);
|
|
74784
75241
|
}, false);
|
|
74785
75242
|
request3.on("error", () => {
|
|
74786
|
-
|
|
75243
|
+
resolve9(false);
|
|
74787
75244
|
});
|
|
74788
75245
|
});
|
|
74789
75246
|
}
|
|
@@ -74811,7 +75268,7 @@ function httpRequest(url, method, response, keepAlive = true) {
|
|
|
74811
75268
|
return request3;
|
|
74812
75269
|
}
|
|
74813
75270
|
function downloadFile(url, destinationPath, progressCallback) {
|
|
74814
|
-
return new Promise((
|
|
75271
|
+
return new Promise((resolve9, reject) => {
|
|
74815
75272
|
let downloadedBytes = 0;
|
|
74816
75273
|
let totalBytes = 0;
|
|
74817
75274
|
function onData(chunk) {
|
|
@@ -74827,7 +75284,7 @@ function downloadFile(url, destinationPath, progressCallback) {
|
|
|
74827
75284
|
}
|
|
74828
75285
|
const file = createWriteStream(destinationPath);
|
|
74829
75286
|
file.on("close", () => {
|
|
74830
|
-
return
|
|
75287
|
+
return resolve9();
|
|
74831
75288
|
});
|
|
74832
75289
|
file.on("error", (error) => {
|
|
74833
75290
|
return reject(error);
|
|
@@ -74852,7 +75309,7 @@ async function getJSON(url) {
|
|
|
74852
75309
|
}
|
|
74853
75310
|
}
|
|
74854
75311
|
function getText(url) {
|
|
74855
|
-
return new Promise((
|
|
75312
|
+
return new Promise((resolve9, reject) => {
|
|
74856
75313
|
const request3 = httpRequest(url, "GET", (response) => {
|
|
74857
75314
|
let data = "";
|
|
74858
75315
|
if (response.statusCode && response.statusCode >= 400) {
|
|
@@ -74863,7 +75320,7 @@ function getText(url) {
|
|
|
74863
75320
|
});
|
|
74864
75321
|
response.on("end", () => {
|
|
74865
75322
|
try {
|
|
74866
|
-
return
|
|
75323
|
+
return resolve9(String(data));
|
|
74867
75324
|
} catch {
|
|
74868
75325
|
return reject(new Error(`Failed to read text response from ${url}`));
|
|
74869
75326
|
}
|
|
@@ -74880,7 +75337,7 @@ var init_httpUtil = __esm(() => {
|
|
|
74880
75337
|
});
|
|
74881
75338
|
|
|
74882
75339
|
// node_modules/@puppeteer/browsers/lib/esm/browser-data/chrome.js
|
|
74883
|
-
import { execSync as
|
|
75340
|
+
import { execSync as execSync7 } from "node:child_process";
|
|
74884
75341
|
import os from "node:os";
|
|
74885
75342
|
import path from "node:path";
|
|
74886
75343
|
function folder(platform2) {
|
|
@@ -74970,7 +75427,7 @@ function getChromeWindowsLocation(channel2, locationsPrefixes) {
|
|
|
74970
75427
|
}
|
|
74971
75428
|
function getWslVariable(variable) {
|
|
74972
75429
|
try {
|
|
74973
|
-
const result =
|
|
75430
|
+
const result = execSync7(`cmd.exe /c echo %${variable.toLocaleUpperCase()}%`, {
|
|
74974
75431
|
stdio: ["ignore", "pipe", "ignore"],
|
|
74975
75432
|
encoding: "utf-8"
|
|
74976
75433
|
}).trim();
|
|
@@ -74981,7 +75438,7 @@ function getWslVariable(variable) {
|
|
|
74981
75438
|
return;
|
|
74982
75439
|
}
|
|
74983
75440
|
function getWslLocation(channel2) {
|
|
74984
|
-
const wslVersion =
|
|
75441
|
+
const wslVersion = execSync7("wslinfo --version", {
|
|
74985
75442
|
stdio: ["ignore", "pipe", "ignore"],
|
|
74986
75443
|
encoding: "utf-8"
|
|
74987
75444
|
}).trim();
|
|
@@ -74997,7 +75454,7 @@ function getWslLocation(channel2) {
|
|
|
74997
75454
|
}
|
|
74998
75455
|
const windowsPath = getChromeWindowsLocation(channel2, wslPrefixes);
|
|
74999
75456
|
return windowsPath.map((path2) => {
|
|
75000
|
-
return
|
|
75457
|
+
return execSync7(`wslpath "${path2}"`).toString().trim();
|
|
75001
75458
|
});
|
|
75002
75459
|
}
|
|
75003
75460
|
function getChromeLinuxOrWslLocation(channel2) {
|
|
@@ -76084,7 +76541,7 @@ class Process {
|
|
|
76084
76541
|
if (opts.onExit) {
|
|
76085
76542
|
this.#onExitHook = opts.onExit;
|
|
76086
76543
|
}
|
|
76087
|
-
this.#browserProcessExiting = new Promise((
|
|
76544
|
+
this.#browserProcessExiting = new Promise((resolve9, reject) => {
|
|
76088
76545
|
this.#browserProcess.once("exit", async () => {
|
|
76089
76546
|
debugLaunch(`Browser process ${this.#browserProcess.pid} onExit`);
|
|
76090
76547
|
this.#clearListeners();
|
|
@@ -76095,7 +76552,7 @@ class Process {
|
|
|
76095
76552
|
reject(err);
|
|
76096
76553
|
return;
|
|
76097
76554
|
}
|
|
76098
|
-
|
|
76555
|
+
resolve9();
|
|
76099
76556
|
});
|
|
76100
76557
|
});
|
|
76101
76558
|
}
|
|
@@ -76205,7 +76662,7 @@ Error cause: ${isErrorLike2(error) ? error.stack : error}`);
|
|
|
76205
76662
|
return [...this.#logs];
|
|
76206
76663
|
}
|
|
76207
76664
|
waitForLineOutput(regex, timeout2 = 0) {
|
|
76208
|
-
return new Promise((
|
|
76665
|
+
return new Promise((resolve9, reject) => {
|
|
76209
76666
|
const onClose = (errorOrCode) => {
|
|
76210
76667
|
cleanup();
|
|
76211
76668
|
reject(new Error([
|
|
@@ -76243,7 +76700,7 @@ Error cause: ${isErrorLike2(error) ? error.stack : error}`);
|
|
|
76243
76700
|
return;
|
|
76244
76701
|
}
|
|
76245
76702
|
cleanup();
|
|
76246
|
-
|
|
76703
|
+
resolve9(match[1]);
|
|
76247
76704
|
}
|
|
76248
76705
|
});
|
|
76249
76706
|
}
|
|
@@ -76773,7 +77230,7 @@ var require_get_stream = __commonJS((exports, module) => {
|
|
|
76773
77230
|
};
|
|
76774
77231
|
const { maxBuffer } = options;
|
|
76775
77232
|
let stream;
|
|
76776
|
-
await new Promise((
|
|
77233
|
+
await new Promise((resolve9, reject) => {
|
|
76777
77234
|
const rejectPromise = (error) => {
|
|
76778
77235
|
if (error && stream.getBufferedLength() <= BufferConstants.MAX_LENGTH) {
|
|
76779
77236
|
error.bufferedData = stream.getBufferedValue();
|
|
@@ -76785,7 +77242,7 @@ var require_get_stream = __commonJS((exports, module) => {
|
|
|
76785
77242
|
rejectPromise(error);
|
|
76786
77243
|
return;
|
|
76787
77244
|
}
|
|
76788
|
-
|
|
77245
|
+
resolve9();
|
|
76789
77246
|
});
|
|
76790
77247
|
stream.on("data", () => {
|
|
76791
77248
|
if (stream.getBufferedLength() > maxBuffer) {
|
|
@@ -78146,7 +78603,7 @@ var require_extract_zip = __commonJS((exports, module) => {
|
|
|
78146
78603
|
debug4("opening", this.zipPath, "with opts", this.opts);
|
|
78147
78604
|
this.zipfile = await openZip(this.zipPath, { lazyEntries: true });
|
|
78148
78605
|
this.canceled = false;
|
|
78149
|
-
return new Promise((
|
|
78606
|
+
return new Promise((resolve9, reject) => {
|
|
78150
78607
|
this.zipfile.on("error", (err) => {
|
|
78151
78608
|
this.canceled = true;
|
|
78152
78609
|
reject(err);
|
|
@@ -78155,7 +78612,7 @@ var require_extract_zip = __commonJS((exports, module) => {
|
|
|
78155
78612
|
this.zipfile.on("close", () => {
|
|
78156
78613
|
if (!this.canceled) {
|
|
78157
78614
|
debug4("zip extraction complete");
|
|
78158
|
-
|
|
78615
|
+
resolve9();
|
|
78159
78616
|
}
|
|
78160
78617
|
});
|
|
78161
78618
|
this.zipfile.on("entry", async (entry) => {
|
|
@@ -79497,8 +79954,8 @@ var require_streamx = __commonJS((exports, module) => {
|
|
|
79497
79954
|
return this;
|
|
79498
79955
|
},
|
|
79499
79956
|
next() {
|
|
79500
|
-
return new Promise(function(
|
|
79501
|
-
promiseResolve =
|
|
79957
|
+
return new Promise(function(resolve9, reject) {
|
|
79958
|
+
promiseResolve = resolve9;
|
|
79502
79959
|
promiseReject = reject;
|
|
79503
79960
|
const data = stream.read();
|
|
79504
79961
|
if (data !== null)
|
|
@@ -79535,14 +79992,14 @@ var require_streamx = __commonJS((exports, module) => {
|
|
|
79535
79992
|
}
|
|
79536
79993
|
function destroy(err) {
|
|
79537
79994
|
stream.destroy(err);
|
|
79538
|
-
return new Promise((
|
|
79995
|
+
return new Promise((resolve9, reject) => {
|
|
79539
79996
|
if (stream._duplexState & DESTROYED)
|
|
79540
|
-
return
|
|
79997
|
+
return resolve9({ value: undefined, done: true });
|
|
79541
79998
|
stream.once("close", function() {
|
|
79542
79999
|
if (err)
|
|
79543
80000
|
reject(err);
|
|
79544
80001
|
else
|
|
79545
|
-
|
|
80002
|
+
resolve9({ value: undefined, done: true });
|
|
79546
80003
|
});
|
|
79547
80004
|
});
|
|
79548
80005
|
}
|
|
@@ -79594,8 +80051,8 @@ var require_streamx = __commonJS((exports, module) => {
|
|
|
79594
80051
|
return Promise.resolve(true);
|
|
79595
80052
|
if (state.drains === null)
|
|
79596
80053
|
state.drains = [];
|
|
79597
|
-
return new Promise((
|
|
79598
|
-
state.drains.push({ writes, resolve:
|
|
80054
|
+
return new Promise((resolve9) => {
|
|
80055
|
+
state.drains.push({ writes, resolve: resolve9 });
|
|
79599
80056
|
});
|
|
79600
80057
|
}
|
|
79601
80058
|
write(data) {
|
|
@@ -79709,11 +80166,11 @@ var require_streamx = __commonJS((exports, module) => {
|
|
|
79709
80166
|
cb(null);
|
|
79710
80167
|
}
|
|
79711
80168
|
function pipelinePromise(...streams) {
|
|
79712
|
-
return new Promise((
|
|
80169
|
+
return new Promise((resolve9, reject) => {
|
|
79713
80170
|
return pipeline(...streams, (err) => {
|
|
79714
80171
|
if (err)
|
|
79715
80172
|
return reject(err);
|
|
79716
|
-
|
|
80173
|
+
resolve9();
|
|
79717
80174
|
});
|
|
79718
80175
|
});
|
|
79719
80176
|
}
|
|
@@ -80427,16 +80884,16 @@ var require_extract = __commonJS((exports, module) => {
|
|
|
80427
80884
|
entryCallback = null;
|
|
80428
80885
|
cb(err);
|
|
80429
80886
|
}
|
|
80430
|
-
function onnext(
|
|
80887
|
+
function onnext(resolve9, reject) {
|
|
80431
80888
|
if (error) {
|
|
80432
80889
|
return reject(error);
|
|
80433
80890
|
}
|
|
80434
80891
|
if (entryStream) {
|
|
80435
|
-
|
|
80892
|
+
resolve9({ value: entryStream, done: false });
|
|
80436
80893
|
entryStream = null;
|
|
80437
80894
|
return;
|
|
80438
80895
|
}
|
|
80439
|
-
promiseResolve =
|
|
80896
|
+
promiseResolve = resolve9;
|
|
80440
80897
|
promiseReject = reject;
|
|
80441
80898
|
consumeCallback(null);
|
|
80442
80899
|
if (extract._finished && promiseResolve) {
|
|
@@ -80467,14 +80924,14 @@ var require_extract = __commonJS((exports, module) => {
|
|
|
80467
80924
|
function destroy(err) {
|
|
80468
80925
|
extract.destroy(err);
|
|
80469
80926
|
consumeCallback(err);
|
|
80470
|
-
return new Promise((
|
|
80927
|
+
return new Promise((resolve9, reject) => {
|
|
80471
80928
|
if (extract.destroyed)
|
|
80472
|
-
return
|
|
80929
|
+
return resolve9({ value: undefined, done: true });
|
|
80473
80930
|
extract.once("close", function() {
|
|
80474
80931
|
if (err)
|
|
80475
80932
|
reject(err);
|
|
80476
80933
|
else
|
|
80477
|
-
|
|
80934
|
+
resolve9({ value: undefined, done: true });
|
|
80478
80935
|
});
|
|
80479
80936
|
});
|
|
80480
80937
|
}
|
|
@@ -81142,7 +81599,7 @@ var require_tar_fs = __commonJS((exports) => {
|
|
|
81142
81599
|
});
|
|
81143
81600
|
|
|
81144
81601
|
// node_modules/@puppeteer/browsers/lib/esm/fileUtil.js
|
|
81145
|
-
import { spawnSync as
|
|
81602
|
+
import { spawnSync as spawnSync3, spawn } from "node:child_process";
|
|
81146
81603
|
import { createReadStream } from "node:fs";
|
|
81147
81604
|
import { mkdir, readdir } from "node:fs/promises";
|
|
81148
81605
|
import * as path7 from "node:path";
|
|
@@ -81160,7 +81617,7 @@ async function unpackArchive(archivePath, folderPath) {
|
|
|
81160
81617
|
await mkdir(folderPath);
|
|
81161
81618
|
await installDMG(archivePath, folderPath);
|
|
81162
81619
|
} else if (archivePath.endsWith(".exe")) {
|
|
81163
|
-
const result =
|
|
81620
|
+
const result = spawnSync3(archivePath, [`/ExtractDir=${folderPath}`], {
|
|
81164
81621
|
env: {
|
|
81165
81622
|
__compat_layer: "RunAsInvoker"
|
|
81166
81623
|
}
|
|
@@ -81234,7 +81691,7 @@ async function extractTar(tarPath, folderPath, decompressUtilityName) {
|
|
|
81234
81691
|
});
|
|
81235
81692
|
}
|
|
81236
81693
|
async function installDMG(dmgPath, folderPath) {
|
|
81237
|
-
const { stdout } =
|
|
81694
|
+
const { stdout } = spawnSync3(`hdiutil`, [
|
|
81238
81695
|
"attach",
|
|
81239
81696
|
"-nobrowse",
|
|
81240
81697
|
"-noautoopen",
|
|
@@ -81254,9 +81711,9 @@ async function installDMG(dmgPath, folderPath) {
|
|
|
81254
81711
|
throw new Error(`Cannot find app in ${mountPath}`);
|
|
81255
81712
|
}
|
|
81256
81713
|
const mountedPath = path7.join(mountPath, appName);
|
|
81257
|
-
|
|
81714
|
+
spawnSync3("cp", ["-R", mountedPath, folderPath]);
|
|
81258
81715
|
} finally {
|
|
81259
|
-
|
|
81716
|
+
spawnSync3("hdiutil", ["detach", mountPath, "-quiet"]);
|
|
81260
81717
|
}
|
|
81261
81718
|
}
|
|
81262
81719
|
var import_debug4, debugFileUtil, internalConstantsForTesting;
|
|
@@ -81271,8 +81728,8 @@ var init_fileUtil = __esm(() => {
|
|
|
81271
81728
|
|
|
81272
81729
|
// node_modules/@puppeteer/browsers/lib/esm/install.js
|
|
81273
81730
|
import assert2 from "node:assert";
|
|
81274
|
-
import { spawnSync as
|
|
81275
|
-
import { existsSync as
|
|
81731
|
+
import { spawnSync as spawnSync4 } from "node:child_process";
|
|
81732
|
+
import { existsSync as existsSync30, readFileSync as readFileSync24 } from "node:fs";
|
|
81276
81733
|
import { mkdir as mkdir2, unlink } from "node:fs/promises";
|
|
81277
81734
|
import os5 from "node:os";
|
|
81278
81735
|
import path8 from "node:path";
|
|
@@ -81325,7 +81782,7 @@ async function installWithProviders(options) {
|
|
|
81325
81782
|
continue;
|
|
81326
81783
|
}
|
|
81327
81784
|
debugInstall(`Successfully got URL from ${provider.getName()}: ${url}`);
|
|
81328
|
-
if (!
|
|
81785
|
+
if (!existsSync30(browserRoot)) {
|
|
81329
81786
|
await mkdir2(browserRoot, { recursive: true });
|
|
81330
81787
|
}
|
|
81331
81788
|
return await installUrl(url, options, provider);
|
|
@@ -81358,21 +81815,21 @@ async function installDeps(installedBrowser) {
|
|
|
81358
81815
|
return;
|
|
81359
81816
|
}
|
|
81360
81817
|
const depsPath = path8.join(path8.dirname(installedBrowser.executablePath), "deb.deps");
|
|
81361
|
-
if (!
|
|
81818
|
+
if (!existsSync30(depsPath)) {
|
|
81362
81819
|
debugInstall(`deb.deps file was not found at ${depsPath}`);
|
|
81363
81820
|
return;
|
|
81364
81821
|
}
|
|
81365
|
-
const data =
|
|
81822
|
+
const data = readFileSync24(depsPath, "utf-8").split(`
|
|
81366
81823
|
`).join(",");
|
|
81367
81824
|
if (process.getuid?.() !== 0) {
|
|
81368
81825
|
throw new Error("Installing system dependencies requires root privileges");
|
|
81369
81826
|
}
|
|
81370
|
-
let result =
|
|
81827
|
+
let result = spawnSync4("apt-get", ["-v"]);
|
|
81371
81828
|
if (result.status !== 0) {
|
|
81372
81829
|
throw new Error("Failed to install system dependencies: apt-get does not seem to be available");
|
|
81373
81830
|
}
|
|
81374
81831
|
debugInstall(`Trying to install dependencies: ${data}`);
|
|
81375
|
-
result =
|
|
81832
|
+
result = spawnSync4("apt-get", [
|
|
81376
81833
|
"satisfy",
|
|
81377
81834
|
"-y",
|
|
81378
81835
|
data,
|
|
@@ -81400,11 +81857,11 @@ async function installUrl(url, options, provider) {
|
|
|
81400
81857
|
const cache = new Cache(options.cacheDir);
|
|
81401
81858
|
const browserRoot = cache.browserRoot(options.browser);
|
|
81402
81859
|
const archivePath = path8.join(browserRoot, `${options.buildId}-${fileName}`);
|
|
81403
|
-
if (!
|
|
81860
|
+
if (!existsSync30(browserRoot)) {
|
|
81404
81861
|
await mkdir2(browserRoot, { recursive: true });
|
|
81405
81862
|
}
|
|
81406
81863
|
if (!options.unpack) {
|
|
81407
|
-
if (
|
|
81864
|
+
if (existsSync30(archivePath)) {
|
|
81408
81865
|
return archivePath;
|
|
81409
81866
|
}
|
|
81410
81867
|
debugInstall(`Downloading binary from ${url}`);
|
|
@@ -81425,8 +81882,8 @@ async function installUrl(url, options, provider) {
|
|
|
81425
81882
|
cache.writeExecutablePath(options.browser, options.platform, options.buildId, relativeExecutablePath6);
|
|
81426
81883
|
}
|
|
81427
81884
|
try {
|
|
81428
|
-
if (
|
|
81429
|
-
if (!
|
|
81885
|
+
if (existsSync30(outputPath)) {
|
|
81886
|
+
if (!existsSync30(installedBrowser.executablePath)) {
|
|
81430
81887
|
throw new Error(`The browser folder (${outputPath}) exists but the executable (${installedBrowser.executablePath}) is missing`);
|
|
81431
81888
|
}
|
|
81432
81889
|
await runSetup(installedBrowser);
|
|
@@ -81435,7 +81892,7 @@ async function installUrl(url, options, provider) {
|
|
|
81435
81892
|
}
|
|
81436
81893
|
return installedBrowser;
|
|
81437
81894
|
}
|
|
81438
|
-
if (!
|
|
81895
|
+
if (!existsSync30(archivePath)) {
|
|
81439
81896
|
debugInstall(`Downloading binary from ${url}`);
|
|
81440
81897
|
try {
|
|
81441
81898
|
debugTime("download");
|
|
@@ -81464,7 +81921,7 @@ async function installUrl(url, options, provider) {
|
|
|
81464
81921
|
}
|
|
81465
81922
|
return installedBrowser;
|
|
81466
81923
|
} finally {
|
|
81467
|
-
if (
|
|
81924
|
+
if (existsSync30(archivePath)) {
|
|
81468
81925
|
await unlink(archivePath);
|
|
81469
81926
|
}
|
|
81470
81927
|
}
|
|
@@ -81475,10 +81932,10 @@ async function runSetup(installedBrowser) {
|
|
|
81475
81932
|
debugTime("permissions");
|
|
81476
81933
|
const browserDir = path8.dirname(installedBrowser.executablePath);
|
|
81477
81934
|
const setupExePath = path8.join(browserDir, "setup.exe");
|
|
81478
|
-
if (!
|
|
81935
|
+
if (!existsSync30(setupExePath)) {
|
|
81479
81936
|
return;
|
|
81480
81937
|
}
|
|
81481
|
-
|
|
81938
|
+
spawnSync4(path8.join(browserDir, "setup.exe"), [`--configure-browser-in-directory=` + browserDir], {
|
|
81482
81939
|
shell: true
|
|
81483
81940
|
});
|
|
81484
81941
|
} finally {
|
|
@@ -81856,10 +82313,10 @@ var init_cliui = __esm(() => {
|
|
|
81856
82313
|
});
|
|
81857
82314
|
|
|
81858
82315
|
// node_modules/escalade/sync/index.mjs
|
|
81859
|
-
import { dirname as dirname13, resolve as
|
|
82316
|
+
import { dirname as dirname13, resolve as resolve10 } from "path";
|
|
81860
82317
|
import { readdirSync as readdirSync10, statSync as statSync12 } from "fs";
|
|
81861
82318
|
function sync_default(start, callback) {
|
|
81862
|
-
let dir =
|
|
82319
|
+
let dir = resolve10(".", start);
|
|
81863
82320
|
let tmp, stats = statSync12(dir);
|
|
81864
82321
|
if (!stats.isDirectory()) {
|
|
81865
82322
|
dir = dirname13(dir);
|
|
@@ -81867,7 +82324,7 @@ function sync_default(start, callback) {
|
|
|
81867
82324
|
while (true) {
|
|
81868
82325
|
tmp = callback(dir, readdirSync10(dir));
|
|
81869
82326
|
if (tmp)
|
|
81870
|
-
return
|
|
82327
|
+
return resolve10(dir, tmp);
|
|
81871
82328
|
dir = dirname13(tmp = dir);
|
|
81872
82329
|
if (tmp === dir)
|
|
81873
82330
|
break;
|
|
@@ -82814,7 +83271,7 @@ var init_yargs_parser = __esm(() => {
|
|
|
82814
83271
|
|
|
82815
83272
|
// node_modules/yargs-parser/build/lib/index.js
|
|
82816
83273
|
import { format } from "util";
|
|
82817
|
-
import { normalize as normalize2, resolve as
|
|
83274
|
+
import { normalize as normalize2, resolve as resolve11 } from "path";
|
|
82818
83275
|
var _a3, _b, _c, minNodeVersion, nodeVersion, env, parser, yargsParser = function Parser(args, opts) {
|
|
82819
83276
|
const result = parser.parse(args.slice(), opts);
|
|
82820
83277
|
return result.argv;
|
|
@@ -82837,7 +83294,7 @@ var init_lib2 = __esm(() => {
|
|
|
82837
83294
|
},
|
|
82838
83295
|
format,
|
|
82839
83296
|
normalize: normalize2,
|
|
82840
|
-
resolve:
|
|
83297
|
+
resolve: resolve11,
|
|
82841
83298
|
require: (path9) => {
|
|
82842
83299
|
if (true) {
|
|
82843
83300
|
return __require(path9);
|
|
@@ -82888,18 +83345,18 @@ var init_yerror = __esm(() => {
|
|
|
82888
83345
|
});
|
|
82889
83346
|
|
|
82890
83347
|
// node_modules/y18n/build/lib/platform-shims/node.js
|
|
82891
|
-
import { readFileSync as
|
|
83348
|
+
import { readFileSync as readFileSync25, statSync as statSync13, writeFile } from "fs";
|
|
82892
83349
|
import { format as format2 } from "util";
|
|
82893
|
-
import { resolve as
|
|
83350
|
+
import { resolve as resolve12 } from "path";
|
|
82894
83351
|
var node_default;
|
|
82895
83352
|
var init_node = __esm(() => {
|
|
82896
83353
|
node_default = {
|
|
82897
83354
|
fs: {
|
|
82898
|
-
readFileSync:
|
|
83355
|
+
readFileSync: readFileSync25,
|
|
82899
83356
|
writeFile
|
|
82900
83357
|
},
|
|
82901
83358
|
format: format2,
|
|
82902
|
-
resolve:
|
|
83359
|
+
resolve: resolve12,
|
|
82903
83360
|
exists: (file) => {
|
|
82904
83361
|
try {
|
|
82905
83362
|
return statSync13(file).isFile();
|
|
@@ -83080,9 +83537,9 @@ var init_y18n = __esm(() => {
|
|
|
83080
83537
|
// node_modules/yargs/lib/platform-shims/esm.mjs
|
|
83081
83538
|
import { notStrictEqual, strictEqual } from "assert";
|
|
83082
83539
|
import { inspect } from "util";
|
|
83083
|
-
import { readFileSync as
|
|
83540
|
+
import { readFileSync as readFileSync26 } from "fs";
|
|
83084
83541
|
import { fileURLToPath } from "url";
|
|
83085
|
-
import { basename as
|
|
83542
|
+
import { basename as basename9, dirname as dirname14, extname as extname3, relative as relative7, resolve as resolve13 } from "path";
|
|
83086
83543
|
var REQUIRE_ERROR = "require is not supported by ESM", REQUIRE_DIRECTORY_ERROR = "loading a directory of commands is not supported yet for ESM", __dirname2, mainFilename, esm_default;
|
|
83087
83544
|
var init_esm = __esm(() => {
|
|
83088
83545
|
init_cliui();
|
|
@@ -83114,11 +83571,11 @@ var init_esm = __esm(() => {
|
|
|
83114
83571
|
mainFilename: mainFilename || process.cwd(),
|
|
83115
83572
|
Parser: lib_default,
|
|
83116
83573
|
path: {
|
|
83117
|
-
basename:
|
|
83574
|
+
basename: basename9,
|
|
83118
83575
|
dirname: dirname14,
|
|
83119
83576
|
extname: extname3,
|
|
83120
83577
|
relative: relative7,
|
|
83121
|
-
resolve:
|
|
83578
|
+
resolve: resolve13
|
|
83122
83579
|
},
|
|
83123
83580
|
process: {
|
|
83124
83581
|
argv: () => process.argv,
|
|
@@ -83129,7 +83586,7 @@ var init_esm = __esm(() => {
|
|
|
83129
83586
|
nextTick: process.nextTick,
|
|
83130
83587
|
stdColumns: typeof process.stdout.columns !== "undefined" ? process.stdout.columns : null
|
|
83131
83588
|
},
|
|
83132
|
-
readFileSync:
|
|
83589
|
+
readFileSync: readFileSync26,
|
|
83133
83590
|
require: () => {
|
|
83134
83591
|
throw new YError(REQUIRE_ERROR);
|
|
83135
83592
|
},
|
|
@@ -83140,7 +83597,7 @@ var init_esm = __esm(() => {
|
|
|
83140
83597
|
return [...str].length;
|
|
83141
83598
|
},
|
|
83142
83599
|
y18n: y18n_default({
|
|
83143
|
-
directory:
|
|
83600
|
+
directory: resolve13(__dirname2, "../../../locales"),
|
|
83144
83601
|
updateFiles: false
|
|
83145
83602
|
})
|
|
83146
83603
|
};
|
|
@@ -83197,7 +83654,7 @@ function parseCommand(cmd) {
|
|
|
83197
83654
|
|
|
83198
83655
|
// node_modules/yargs/build/lib/argsert.js
|
|
83199
83656
|
function argsert(arg1, arg2, arg3) {
|
|
83200
|
-
function
|
|
83657
|
+
function parseArgs3() {
|
|
83201
83658
|
return typeof arg1 === "object" ? [{ demanded: [], optional: [] }, arg1, arg2] : [
|
|
83202
83659
|
parseCommand(`cmd ${arg1}`),
|
|
83203
83660
|
arg2,
|
|
@@ -83206,7 +83663,7 @@ function argsert(arg1, arg2, arg3) {
|
|
|
83206
83663
|
}
|
|
83207
83664
|
try {
|
|
83208
83665
|
let position = 0;
|
|
83209
|
-
const [parsed, callerArguments, _length] =
|
|
83666
|
+
const [parsed, callerArguments, _length] = parseArgs3();
|
|
83210
83667
|
const args = [].slice.call(callerArguments);
|
|
83211
83668
|
while (args.length && args[args.length - 1] === undefined)
|
|
83212
83669
|
args.pop();
|
|
@@ -85388,12 +85845,12 @@ var init_yargs_factory = __esm(() => {
|
|
|
85388
85845
|
async getCompletion(args, done) {
|
|
85389
85846
|
argsert("<array> [function]", [args, done], arguments.length);
|
|
85390
85847
|
if (!done) {
|
|
85391
|
-
return new Promise((
|
|
85848
|
+
return new Promise((resolve14, reject) => {
|
|
85392
85849
|
__classPrivateFieldGet(this, _YargsInstance_completion, "f").getCompletion(args, (err, completions) => {
|
|
85393
85850
|
if (err)
|
|
85394
85851
|
reject(err);
|
|
85395
85852
|
else
|
|
85396
|
-
|
|
85853
|
+
resolve14(completions);
|
|
85397
85854
|
});
|
|
85398
85855
|
});
|
|
85399
85856
|
} else {
|
|
@@ -86828,9 +87285,9 @@ async function getConnectionTransport(options) {
|
|
|
86828
87285
|
throw new Error("Could not detect required browser platform");
|
|
86829
87286
|
}
|
|
86830
87287
|
const { convertPuppeteerChannelToBrowsersChannel: convertPuppeteerChannelToBrowsersChannel2 } = await Promise.resolve().then(() => (init_LaunchOptions(), exports_LaunchOptions));
|
|
86831
|
-
const { join:
|
|
87288
|
+
const { join: join31 } = await import("node:path");
|
|
86832
87289
|
const userDataDir = resolveDefaultUserDataDir3(Browser7.CHROME, platform2, convertPuppeteerChannelToBrowsersChannel2(options.channel));
|
|
86833
|
-
const portPath =
|
|
87290
|
+
const portPath = join31(userDataDir, "DevToolsActivePort");
|
|
86834
87291
|
try {
|
|
86835
87292
|
const fileContent = await environment.value.fs.promises.readFile(portPath, "ascii");
|
|
86836
87293
|
const [rawPort, rawPath] = fileContent.split(`
|
|
@@ -87054,9 +87511,9 @@ var init_PipeTransport = __esm(() => {
|
|
|
87054
87511
|
});
|
|
87055
87512
|
|
|
87056
87513
|
// node_modules/puppeteer-core/lib/esm/puppeteer/node/BrowserLauncher.js
|
|
87057
|
-
import { existsSync as
|
|
87514
|
+
import { existsSync as existsSync31 } from "node:fs";
|
|
87058
87515
|
import { tmpdir } from "node:os";
|
|
87059
|
-
import { join as
|
|
87516
|
+
import { join as join31 } from "node:path";
|
|
87060
87517
|
|
|
87061
87518
|
class BrowserLauncher {
|
|
87062
87519
|
#browser;
|
|
@@ -87081,7 +87538,7 @@ class BrowserLauncher {
|
|
|
87081
87538
|
...options,
|
|
87082
87539
|
protocol
|
|
87083
87540
|
});
|
|
87084
|
-
if (!
|
|
87541
|
+
if (!existsSync31(launchArgs.executablePath)) {
|
|
87085
87542
|
throw new Error(`Browser was not found at the configured executablePath (${launchArgs.executablePath})`);
|
|
87086
87543
|
}
|
|
87087
87544
|
const usePipe = launchArgs.args.includes("--remote-debugging-pipe");
|
|
@@ -87156,7 +87613,7 @@ class BrowserLauncher {
|
|
|
87156
87613
|
browserCloseCallback();
|
|
87157
87614
|
const logs = browserProcess.getRecentLogs().join(`
|
|
87158
87615
|
`);
|
|
87159
|
-
if (logs.includes("Failed to create a ProcessSingleton for your profile directory") || process.platform === "win32" &&
|
|
87616
|
+
if (logs.includes("Failed to create a ProcessSingleton for your profile directory") || process.platform === "win32" && existsSync31(join31(launchArgs.userDataDir, "lockfile"))) {
|
|
87160
87617
|
throw new Error(`The browser is already running for ${launchArgs.userDataDir}. Use a different \`userDataDir\` or stop the running browser first.`);
|
|
87161
87618
|
}
|
|
87162
87619
|
if (logs.includes("Missing X server") && options.headless === false) {
|
|
@@ -87246,12 +87703,12 @@ class BrowserLauncher {
|
|
|
87246
87703
|
});
|
|
87247
87704
|
}
|
|
87248
87705
|
getProfilePath() {
|
|
87249
|
-
return
|
|
87706
|
+
return join31(this.puppeteer.configuration.temporaryDirectory ?? tmpdir(), `puppeteer_dev_${this.browser}_profile-`);
|
|
87250
87707
|
}
|
|
87251
87708
|
resolveExecutablePath(headless, validatePath = true) {
|
|
87252
87709
|
let executablePath = this.puppeteer.configuration.executablePath;
|
|
87253
87710
|
if (executablePath) {
|
|
87254
|
-
if (validatePath && !
|
|
87711
|
+
if (validatePath && !existsSync31(executablePath)) {
|
|
87255
87712
|
throw new Error(`Tried to find the browser at the configured path (${executablePath}), but no executable was found.`);
|
|
87256
87713
|
}
|
|
87257
87714
|
return executablePath;
|
|
@@ -87274,7 +87731,7 @@ class BrowserLauncher {
|
|
|
87274
87731
|
browser: browserType,
|
|
87275
87732
|
buildId: this.puppeteer.browserVersion
|
|
87276
87733
|
});
|
|
87277
|
-
if (validatePath && !
|
|
87734
|
+
if (validatePath && !existsSync31(executablePath)) {
|
|
87278
87735
|
const configVersion = this.puppeteer.configuration?.[this.browser]?.version;
|
|
87279
87736
|
if (configVersion) {
|
|
87280
87737
|
throw new Error(`Tried to find the browser at the configured path (${executablePath}) for version ${configVersion}, but no executable was found.`);
|
|
@@ -87809,7 +88266,7 @@ var init_PuppeteerNode = __esm(() => {
|
|
|
87809
88266
|
});
|
|
87810
88267
|
|
|
87811
88268
|
// node_modules/puppeteer-core/lib/esm/puppeteer/node/ScreenRecorder.js
|
|
87812
|
-
import { spawn as spawn2, spawnSync as
|
|
88269
|
+
import { spawn as spawn2, spawnSync as spawnSync5 } from "node:child_process";
|
|
87813
88270
|
import fs5 from "node:fs";
|
|
87814
88271
|
import os8 from "node:os";
|
|
87815
88272
|
import { dirname as dirname15 } from "node:path";
|
|
@@ -87886,8 +88343,8 @@ var init_ScreenRecorder = __esm(() => {
|
|
|
87886
88343
|
static {
|
|
87887
88344
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : undefined;
|
|
87888
88345
|
__esDecorate22(this, _private_writeFrame_descriptor = { value: __setFunctionName5(async function(buffer) {
|
|
87889
|
-
const error = await new Promise((
|
|
87890
|
-
this.#process.stdin.write(buffer,
|
|
88346
|
+
const error = await new Promise((resolve14) => {
|
|
88347
|
+
this.#process.stdin.write(buffer, resolve14);
|
|
87891
88348
|
});
|
|
87892
88349
|
if (error) {
|
|
87893
88350
|
console.log(`ffmpeg failed to write: ${error.message}.`);
|
|
@@ -87913,7 +88370,7 @@ var init_ScreenRecorder = __esm(() => {
|
|
|
87913
88370
|
colors ??= 256;
|
|
87914
88371
|
overwrite ??= true;
|
|
87915
88372
|
this.#fps = fps;
|
|
87916
|
-
const { error } =
|
|
88373
|
+
const { error } = spawnSync5(ffmpegPath);
|
|
87917
88374
|
if (error) {
|
|
87918
88375
|
throw error;
|
|
87919
88376
|
}
|
|
@@ -88042,8 +88499,8 @@ var init_ScreenRecorder = __esm(() => {
|
|
|
88042
88499
|
const [buffer, timestamp] = await this.#lastFrame;
|
|
88043
88500
|
await Promise.all(Array(Math.max(1, Math.round(this.#fps * (performance.now() - timestamp) / 1000))).fill(buffer).map(this.#writeFrame.bind(this)));
|
|
88044
88501
|
this.#process.stdin.end();
|
|
88045
|
-
await new Promise((
|
|
88046
|
-
this.#process.once("close",
|
|
88502
|
+
await new Promise((resolve14) => {
|
|
88503
|
+
this.#process.once("close", resolve14);
|
|
88047
88504
|
});
|
|
88048
88505
|
}
|
|
88049
88506
|
async[(_private_writeFrame_decorators = [guarded()], _stop_decorators = [guarded()], asyncDisposeSymbol)]() {
|
|
@@ -88089,17 +88546,17 @@ var init_puppeteer_core = __esm(() => {
|
|
|
88089
88546
|
});
|
|
88090
88547
|
|
|
88091
88548
|
// src/core/design-eval/capture.ts
|
|
88092
|
-
import { mkdirSync as mkdirSync14, statSync as statSync14, existsSync as
|
|
88093
|
-
import { join as
|
|
88549
|
+
import { mkdirSync as mkdirSync14, statSync as statSync14, existsSync as existsSync32 } from "fs";
|
|
88550
|
+
import { join as join32 } from "path";
|
|
88094
88551
|
function findBrowser() {
|
|
88095
88552
|
const platform2 = process.platform;
|
|
88096
88553
|
const paths = CHROME_PATHS[platform2] ?? [];
|
|
88097
88554
|
for (const p of paths) {
|
|
88098
|
-
if (
|
|
88555
|
+
if (existsSync32(p))
|
|
88099
88556
|
return p;
|
|
88100
88557
|
}
|
|
88101
|
-
const minkBrowsers =
|
|
88102
|
-
if (
|
|
88558
|
+
const minkBrowsers = join32(minkRoot(), "browsers");
|
|
88559
|
+
if (existsSync32(minkBrowsers)) {
|
|
88103
88560
|
const found = findChromeInDir(minkBrowsers);
|
|
88104
88561
|
if (found)
|
|
88105
88562
|
return found;
|
|
@@ -88120,7 +88577,7 @@ function findChromeInDir(dir) {
|
|
|
88120
88577
|
try {
|
|
88121
88578
|
const entries = readdirSync11(dir);
|
|
88122
88579
|
for (const entry of entries) {
|
|
88123
|
-
const full =
|
|
88580
|
+
const full = join32(dir, entry);
|
|
88124
88581
|
try {
|
|
88125
88582
|
const stat2 = statSync15(full);
|
|
88126
88583
|
if (stat2.isDirectory()) {
|
|
@@ -88168,7 +88625,7 @@ async function captureRoute(page, route, baseUrl, viewport, options) {
|
|
|
88168
88625
|
const y = section * viewport.height;
|
|
88169
88626
|
const clipHeight = Math.min(viewport.height, pageHeight - y);
|
|
88170
88627
|
const fileName = `${prefix}-${viewport.name}-${section}.jpg`;
|
|
88171
|
-
const filePath =
|
|
88628
|
+
const filePath = join32(options.outputDir, fileName);
|
|
88172
88629
|
await page.screenshot({
|
|
88173
88630
|
path: filePath,
|
|
88174
88631
|
type: "jpeg",
|
|
@@ -89632,8 +90089,8 @@ var exports_wiki = {};
|
|
|
89632
90089
|
__export(exports_wiki, {
|
|
89633
90090
|
wiki: () => wiki
|
|
89634
90091
|
});
|
|
89635
|
-
import { existsSync as
|
|
89636
|
-
import { resolve as
|
|
90092
|
+
import { existsSync as existsSync33, statSync as statSync15 } from "fs";
|
|
90093
|
+
import { resolve as resolve14 } from "path";
|
|
89637
90094
|
import { homedir as homedir5 } from "os";
|
|
89638
90095
|
async function wiki(_cwd, args) {
|
|
89639
90096
|
const sub = args[0];
|
|
@@ -89688,7 +90145,7 @@ async function wikiInit(args) {
|
|
|
89688
90145
|
console.log(`[mink] initializing vault at ${targetPath}`);
|
|
89689
90146
|
console.log(" (set a custom path with: mink wiki init /path/to/vault)");
|
|
89690
90147
|
}
|
|
89691
|
-
const isExisting =
|
|
90148
|
+
const isExisting = existsSync33(targetPath) && statSync15(targetPath).isDirectory();
|
|
89692
90149
|
setConfigValue("wiki.path", targetPath);
|
|
89693
90150
|
ensureVaultStructure();
|
|
89694
90151
|
seedTemplates(vaultTemplates());
|
|
@@ -89892,9 +90349,9 @@ function wikiLinks() {
|
|
|
89892
90349
|
}
|
|
89893
90350
|
function expandPath(raw) {
|
|
89894
90351
|
if (raw.startsWith("~/")) {
|
|
89895
|
-
return
|
|
90352
|
+
return resolve14(homedir5(), raw.slice(2));
|
|
89896
90353
|
}
|
|
89897
|
-
return
|
|
90354
|
+
return resolve14(raw);
|
|
89898
90355
|
}
|
|
89899
90356
|
var init_wiki = __esm(() => {
|
|
89900
90357
|
init_vault();
|
|
@@ -89910,8 +90367,8 @@ var exports_note = {};
|
|
|
89910
90367
|
__export(exports_note, {
|
|
89911
90368
|
note: () => note
|
|
89912
90369
|
});
|
|
89913
|
-
import { resolve as
|
|
89914
|
-
import { existsSync as
|
|
90370
|
+
import { resolve as resolve15 } from "path";
|
|
90371
|
+
import { existsSync as existsSync34, readFileSync as readFileSync27 } from "fs";
|
|
89915
90372
|
async function note(cwd, args) {
|
|
89916
90373
|
if (!isWikiEnabled()) {
|
|
89917
90374
|
console.error("[mink] wiki feature is disabled");
|
|
@@ -89936,13 +90393,13 @@ async function note(cwd, args) {
|
|
|
89936
90393
|
const date = new Date().toISOString().split("T")[0];
|
|
89937
90394
|
const content = parsed.positional || parsed.body || "";
|
|
89938
90395
|
const filePath = appendToDaily(date, content);
|
|
89939
|
-
updateVaultIndexForFile(filePath,
|
|
90396
|
+
updateVaultIndexForFile(filePath, readFileSync27(filePath, "utf-8"));
|
|
89940
90397
|
console.log(`[mink] daily note: ${filePath}`);
|
|
89941
90398
|
return;
|
|
89942
90399
|
}
|
|
89943
90400
|
if (parsed.file) {
|
|
89944
|
-
const sourcePath =
|
|
89945
|
-
if (!
|
|
90401
|
+
const sourcePath = resolve15(cwd, parsed.file);
|
|
90402
|
+
if (!existsSync34(sourcePath)) {
|
|
89946
90403
|
console.error(`[mink] file not found: ${sourcePath}`);
|
|
89947
90404
|
process.exit(1);
|
|
89948
90405
|
}
|
|
@@ -90103,10 +90560,10 @@ var exports_skill = {};
|
|
|
90103
90560
|
__export(exports_skill, {
|
|
90104
90561
|
skill: () => skill
|
|
90105
90562
|
});
|
|
90106
|
-
import { join as
|
|
90563
|
+
import { join as join33, resolve as resolve16, dirname as dirname16 } from "path";
|
|
90107
90564
|
import { homedir as homedir6 } from "os";
|
|
90108
90565
|
import {
|
|
90109
|
-
existsSync as
|
|
90566
|
+
existsSync as existsSync35,
|
|
90110
90567
|
mkdirSync as mkdirSync15,
|
|
90111
90568
|
copyFileSync,
|
|
90112
90569
|
unlinkSync as unlinkSync6,
|
|
@@ -90118,24 +90575,24 @@ import {
|
|
|
90118
90575
|
function getSkillsSourceDir() {
|
|
90119
90576
|
let dir = dirname16(new URL(import.meta.url).pathname);
|
|
90120
90577
|
while (true) {
|
|
90121
|
-
if (
|
|
90122
|
-
return
|
|
90578
|
+
if (existsSync35(join33(dir, "package.json")) && existsSync35(join33(dir, "skills"))) {
|
|
90579
|
+
return join33(dir, "skills");
|
|
90123
90580
|
}
|
|
90124
90581
|
const parent = dirname16(dir);
|
|
90125
90582
|
if (parent === dir)
|
|
90126
90583
|
break;
|
|
90127
90584
|
dir = parent;
|
|
90128
90585
|
}
|
|
90129
|
-
return
|
|
90586
|
+
return resolve16(dirname16(new URL(import.meta.url).pathname), "../../skills");
|
|
90130
90587
|
}
|
|
90131
90588
|
function getAvailableSkills() {
|
|
90132
90589
|
const dir = getSkillsSourceDir();
|
|
90133
|
-
if (!
|
|
90590
|
+
if (!existsSync35(dir))
|
|
90134
90591
|
return [];
|
|
90135
|
-
return readdirSync11(dir, { withFileTypes: true }).filter((d) => d.isDirectory() &&
|
|
90592
|
+
return readdirSync11(dir, { withFileTypes: true }).filter((d) => d.isDirectory() && existsSync35(join33(dir, d.name, "SKILL.md"))).map((d) => d.name);
|
|
90136
90593
|
}
|
|
90137
90594
|
function isInstalled(skillName) {
|
|
90138
|
-
return
|
|
90595
|
+
return existsSync35(join33(AGENTS_SKILLS_DIR, skillName, "SKILL.md"));
|
|
90139
90596
|
}
|
|
90140
90597
|
async function skill(args) {
|
|
90141
90598
|
const sub = args[0];
|
|
@@ -90171,26 +90628,26 @@ function skillInstall(name) {
|
|
|
90171
90628
|
}
|
|
90172
90629
|
mkdirSync15(AGENTS_SKILLS_DIR, { recursive: true });
|
|
90173
90630
|
for (const skillName of skills) {
|
|
90174
|
-
const srcDir =
|
|
90175
|
-
const srcFile =
|
|
90176
|
-
const destDir =
|
|
90177
|
-
if (!
|
|
90631
|
+
const srcDir = join33(sourceDir, skillName);
|
|
90632
|
+
const srcFile = join33(srcDir, "SKILL.md");
|
|
90633
|
+
const destDir = join33(AGENTS_SKILLS_DIR, skillName);
|
|
90634
|
+
if (!existsSync35(srcFile)) {
|
|
90178
90635
|
console.error(`[mink] skill not found: ${skillName}`);
|
|
90179
90636
|
continue;
|
|
90180
90637
|
}
|
|
90181
90638
|
mkdirSync15(destDir, { recursive: true });
|
|
90182
90639
|
copyDirRecursive(srcDir, destDir);
|
|
90183
90640
|
mkdirSync15(CLAUDE_SKILLS_DIR, { recursive: true });
|
|
90184
|
-
const symlink =
|
|
90641
|
+
const symlink = join33(CLAUDE_SKILLS_DIR, skillName);
|
|
90185
90642
|
try {
|
|
90186
|
-
if (
|
|
90643
|
+
if (existsSync35(symlink)) {
|
|
90187
90644
|
if (lstatSync2(symlink).isSymbolicLink() || lstatSync2(symlink).isFile()) {
|
|
90188
90645
|
unlinkSync6(symlink);
|
|
90189
90646
|
} else {
|
|
90190
90647
|
rmSync(symlink, { recursive: true, force: true });
|
|
90191
90648
|
}
|
|
90192
90649
|
}
|
|
90193
|
-
const relativeTarget =
|
|
90650
|
+
const relativeTarget = join33("..", "..", ".agents", "skills", skillName);
|
|
90194
90651
|
symlinkSync2(relativeTarget, symlink);
|
|
90195
90652
|
} catch {}
|
|
90196
90653
|
console.log(`[mink] installed: ${skillName} -> ${destDir}`);
|
|
@@ -90201,15 +90658,15 @@ function skillInstall(name) {
|
|
|
90201
90658
|
function skillUninstall(name) {
|
|
90202
90659
|
const skills = name ? [name] : getAvailableSkills();
|
|
90203
90660
|
for (const skillName of skills) {
|
|
90204
|
-
const destDir =
|
|
90205
|
-
if (!
|
|
90661
|
+
const destDir = join33(AGENTS_SKILLS_DIR, skillName);
|
|
90662
|
+
if (!existsSync35(destDir)) {
|
|
90206
90663
|
console.log(`[mink] not installed: ${skillName}`);
|
|
90207
90664
|
continue;
|
|
90208
90665
|
}
|
|
90209
90666
|
rmSync(destDir, { recursive: true, force: true });
|
|
90210
|
-
const symlink =
|
|
90667
|
+
const symlink = join33(CLAUDE_SKILLS_DIR, skillName);
|
|
90211
90668
|
try {
|
|
90212
|
-
if (
|
|
90669
|
+
if (existsSync35(symlink))
|
|
90213
90670
|
unlinkSync6(symlink);
|
|
90214
90671
|
} catch {}
|
|
90215
90672
|
console.log(`[mink] uninstalled: ${skillName}`);
|
|
@@ -90224,7 +90681,7 @@ function skillList() {
|
|
|
90224
90681
|
if (installed.length > 0) {
|
|
90225
90682
|
console.log(" Installed:");
|
|
90226
90683
|
for (const s of installed) {
|
|
90227
|
-
console.log(` ${s} (${
|
|
90684
|
+
console.log(` ${s} (${join33(AGENTS_SKILLS_DIR, s)})`);
|
|
90228
90685
|
}
|
|
90229
90686
|
}
|
|
90230
90687
|
if (notInstalled.length > 0) {
|
|
@@ -90243,8 +90700,8 @@ function skillList() {
|
|
|
90243
90700
|
function copyDirRecursive(src, dest) {
|
|
90244
90701
|
const entries = readdirSync11(src, { withFileTypes: true });
|
|
90245
90702
|
for (const entry of entries) {
|
|
90246
|
-
const srcPath =
|
|
90247
|
-
const destPath =
|
|
90703
|
+
const srcPath = join33(src, entry.name);
|
|
90704
|
+
const destPath = join33(dest, entry.name);
|
|
90248
90705
|
if (entry.isDirectory()) {
|
|
90249
90706
|
mkdirSync15(destPath, { recursive: true });
|
|
90250
90707
|
copyDirRecursive(srcPath, destPath);
|
|
@@ -90255,8 +90712,8 @@ function copyDirRecursive(src, dest) {
|
|
|
90255
90712
|
}
|
|
90256
90713
|
var AGENTS_SKILLS_DIR, CLAUDE_SKILLS_DIR;
|
|
90257
90714
|
var init_skill = __esm(() => {
|
|
90258
|
-
AGENTS_SKILLS_DIR =
|
|
90259
|
-
CLAUDE_SKILLS_DIR =
|
|
90715
|
+
AGENTS_SKILLS_DIR = join33(homedir6(), ".agents", "skills");
|
|
90716
|
+
CLAUDE_SKILLS_DIR = join33(homedir6(), ".claude", "skills");
|
|
90260
90717
|
});
|
|
90261
90718
|
|
|
90262
90719
|
// src/commands/agent.ts
|
|
@@ -90264,36 +90721,36 @@ var exports_agent = {};
|
|
|
90264
90721
|
__export(exports_agent, {
|
|
90265
90722
|
agent: () => agent
|
|
90266
90723
|
});
|
|
90267
|
-
import { join as
|
|
90724
|
+
import { join as join34, resolve as resolve17, dirname as dirname17 } from "path";
|
|
90268
90725
|
import { homedir as homedir7 } from "os";
|
|
90269
90726
|
import {
|
|
90270
|
-
existsSync as
|
|
90727
|
+
existsSync as existsSync36,
|
|
90271
90728
|
mkdirSync as mkdirSync16,
|
|
90272
|
-
readFileSync as
|
|
90729
|
+
readFileSync as readFileSync28,
|
|
90273
90730
|
writeFileSync as writeFileSync11
|
|
90274
90731
|
} from "fs";
|
|
90275
90732
|
import { createHash as createHash3 } from "crypto";
|
|
90276
|
-
import { spawnSync as
|
|
90733
|
+
import { spawnSync as spawnSync6 } from "child_process";
|
|
90277
90734
|
function getAgentTemplatePath() {
|
|
90278
90735
|
let dir = dirname17(new URL(import.meta.url).pathname);
|
|
90279
90736
|
while (true) {
|
|
90280
|
-
if (
|
|
90281
|
-
return
|
|
90737
|
+
if (existsSync36(join34(dir, "package.json")) && existsSync36(join34(dir, "agents", TEMPLATE_FILE))) {
|
|
90738
|
+
return join34(dir, "agents", TEMPLATE_FILE);
|
|
90282
90739
|
}
|
|
90283
90740
|
const parent = dirname17(dir);
|
|
90284
90741
|
if (parent === dir)
|
|
90285
90742
|
break;
|
|
90286
90743
|
dir = parent;
|
|
90287
90744
|
}
|
|
90288
|
-
return
|
|
90745
|
+
return resolve17(dirname17(new URL(import.meta.url).pathname), "../../agents", TEMPLATE_FILE);
|
|
90289
90746
|
}
|
|
90290
90747
|
function getMinkVersion() {
|
|
90291
90748
|
let dir = dirname17(new URL(import.meta.url).pathname);
|
|
90292
90749
|
while (true) {
|
|
90293
|
-
const pkgPath =
|
|
90294
|
-
if (
|
|
90750
|
+
const pkgPath = join34(dir, "package.json");
|
|
90751
|
+
if (existsSync36(pkgPath)) {
|
|
90295
90752
|
try {
|
|
90296
|
-
const pkg = JSON.parse(
|
|
90753
|
+
const pkg = JSON.parse(readFileSync28(pkgPath, "utf-8"));
|
|
90297
90754
|
if (pkg.name && pkg.version)
|
|
90298
90755
|
return pkg.version;
|
|
90299
90756
|
} catch {}
|
|
@@ -90316,30 +90773,30 @@ function sha2562(text) {
|
|
|
90316
90773
|
return createHash3("sha256").update(text).digest("hex");
|
|
90317
90774
|
}
|
|
90318
90775
|
function claudeAgentsDir() {
|
|
90319
|
-
return
|
|
90776
|
+
return join34(homedir7(), ".claude", "agents");
|
|
90320
90777
|
}
|
|
90321
90778
|
function installedAgentPath() {
|
|
90322
|
-
return
|
|
90779
|
+
return join34(claudeAgentsDir(), INSTALLED_FILE);
|
|
90323
90780
|
}
|
|
90324
90781
|
function installAgentDefinition(opts) {
|
|
90325
90782
|
const templatePath = getAgentTemplatePath();
|
|
90326
|
-
if (!
|
|
90783
|
+
if (!existsSync36(templatePath)) {
|
|
90327
90784
|
throw new Error(`[mink agent] bundled agent template not found at ${templatePath}
|
|
90328
90785
|
` + " This usually means the package was installed without bundled assets.");
|
|
90329
90786
|
}
|
|
90330
90787
|
const installed = installedAgentPath();
|
|
90331
|
-
if (opts.skip &&
|
|
90788
|
+
if (opts.skip && existsSync36(installed)) {
|
|
90332
90789
|
return { action: "skipped", path: installed };
|
|
90333
90790
|
}
|
|
90334
|
-
const template =
|
|
90791
|
+
const template = readFileSync28(templatePath, "utf-8");
|
|
90335
90792
|
const rendered = renderTemplate(template, {
|
|
90336
90793
|
MINK_ROOT: minkRoot(),
|
|
90337
90794
|
VAULT_PATH: resolveVaultPath(),
|
|
90338
90795
|
MINK_VERSION: getMinkVersion()
|
|
90339
90796
|
});
|
|
90340
|
-
const exists =
|
|
90797
|
+
const exists = existsSync36(installed);
|
|
90341
90798
|
if (!opts.force && exists) {
|
|
90342
|
-
const current =
|
|
90799
|
+
const current = readFileSync28(installed, "utf-8");
|
|
90343
90800
|
if (sha2562(current) === sha2562(rendered)) {
|
|
90344
90801
|
return { action: "unchanged", path: installed };
|
|
90345
90802
|
}
|
|
@@ -90352,12 +90809,12 @@ function installAgentDefinition(opts) {
|
|
|
90352
90809
|
};
|
|
90353
90810
|
}
|
|
90354
90811
|
function isClaudeOnPath() {
|
|
90355
|
-
const result =
|
|
90812
|
+
const result = spawnSync6("claude", ["--version"], {
|
|
90356
90813
|
stdio: "ignore"
|
|
90357
90814
|
});
|
|
90358
90815
|
return !result.error && result.status === 0;
|
|
90359
90816
|
}
|
|
90360
|
-
function
|
|
90817
|
+
function parseArgs3(args) {
|
|
90361
90818
|
const out = {
|
|
90362
90819
|
noUpdate: false,
|
|
90363
90820
|
reinstall: false,
|
|
@@ -90390,7 +90847,7 @@ function parseArgs2(args) {
|
|
|
90390
90847
|
}
|
|
90391
90848
|
return out;
|
|
90392
90849
|
}
|
|
90393
|
-
function
|
|
90850
|
+
function printHelp2() {
|
|
90394
90851
|
console.log("Usage: mink agent [options] [-- <claude args...>]");
|
|
90395
90852
|
console.log();
|
|
90396
90853
|
console.log("Open an interactive Claude Code session in your mink home with");
|
|
@@ -90408,14 +90865,14 @@ function printHelp() {
|
|
|
90408
90865
|
console.log("`mink config wiki.path` triggers a refresh on the next launch.");
|
|
90409
90866
|
}
|
|
90410
90867
|
async function agent(_cwd, rawArgs) {
|
|
90411
|
-
const args =
|
|
90868
|
+
const args = parseArgs3(rawArgs);
|
|
90412
90869
|
if (args.showHelp) {
|
|
90413
|
-
|
|
90870
|
+
printHelp2();
|
|
90414
90871
|
return;
|
|
90415
90872
|
}
|
|
90416
90873
|
const skipUpdate = args.noUpdate || process.env.MINK_AGENT_NO_UPDATE === "1";
|
|
90417
90874
|
const root = minkRoot();
|
|
90418
|
-
if (!
|
|
90875
|
+
if (!existsSync36(root)) {
|
|
90419
90876
|
mkdirSync16(root, { recursive: true });
|
|
90420
90877
|
}
|
|
90421
90878
|
let result;
|
|
@@ -90446,7 +90903,7 @@ async function agent(_cwd, rawArgs) {
|
|
|
90446
90903
|
process.exit(1);
|
|
90447
90904
|
}
|
|
90448
90905
|
const claudeArgs = ["--agent", AGENT_NAME, ...args.passthrough];
|
|
90449
|
-
const child =
|
|
90906
|
+
const child = spawnSync6("claude", claudeArgs, {
|
|
90450
90907
|
cwd: root,
|
|
90451
90908
|
stdio: "inherit"
|
|
90452
90909
|
});
|
|
@@ -90467,25 +90924,25 @@ var init_agent = __esm(() => {
|
|
|
90467
90924
|
});
|
|
90468
90925
|
|
|
90469
90926
|
// src/core/sync-merge-drivers.ts
|
|
90470
|
-
import { readFileSync as
|
|
90471
|
-
import { join as
|
|
90927
|
+
import { readFileSync as readFileSync29, writeFileSync as writeFileSync12, appendFileSync as appendFileSync2 } from "fs";
|
|
90928
|
+
import { join as join35 } from "path";
|
|
90472
90929
|
function logWarning(driver, args, err) {
|
|
90473
90930
|
try {
|
|
90474
90931
|
const line = `[${new Date().toISOString()}] ${driver} fallback for ${args.filePath}: ${err instanceof Error ? err.message : String(err)}
|
|
90475
90932
|
`;
|
|
90476
|
-
appendFileSync2(
|
|
90933
|
+
appendFileSync2(join35(minkRoot(), "sync-warnings.log"), line);
|
|
90477
90934
|
} catch {}
|
|
90478
90935
|
}
|
|
90479
90936
|
function readJsonOrNull(path12) {
|
|
90480
90937
|
try {
|
|
90481
|
-
return JSON.parse(
|
|
90938
|
+
return JSON.parse(readFileSync29(path12, "utf-8"));
|
|
90482
90939
|
} catch {
|
|
90483
90940
|
return null;
|
|
90484
90941
|
}
|
|
90485
90942
|
}
|
|
90486
90943
|
function readTextOrEmpty(path12) {
|
|
90487
90944
|
try {
|
|
90488
|
-
return
|
|
90945
|
+
return readFileSync29(path12, "utf-8");
|
|
90489
90946
|
} catch {
|
|
90490
90947
|
return "";
|
|
90491
90948
|
}
|
|
@@ -91167,6 +91624,11 @@ switch (command2) {
|
|
|
91167
91624
|
await update2(cwd, process.argv.slice(3));
|
|
91168
91625
|
break;
|
|
91169
91626
|
}
|
|
91627
|
+
case "upgrade": {
|
|
91628
|
+
const { upgrade: upgrade2 } = await Promise.resolve().then(() => (init_upgrade(), exports_upgrade));
|
|
91629
|
+
await upgrade2(cwd, process.argv.slice(3));
|
|
91630
|
+
break;
|
|
91631
|
+
}
|
|
91170
91632
|
case "restore": {
|
|
91171
91633
|
const { restore: restore2 } = await Promise.resolve().then(() => (init_restore(), exports_restore));
|
|
91172
91634
|
restore2(cwd, process.argv.slice(3));
|
|
@@ -91231,11 +91693,11 @@ switch (command2) {
|
|
|
91231
91693
|
case "version":
|
|
91232
91694
|
case "--version":
|
|
91233
91695
|
case "-v": {
|
|
91234
|
-
const { resolve:
|
|
91235
|
-
const cliPath =
|
|
91236
|
-
const { readFileSync:
|
|
91696
|
+
const { resolve: resolve18, dirname: dirname18 } = await import("path");
|
|
91697
|
+
const cliPath = resolve18(dirname18(new URL(import.meta.url).pathname));
|
|
91698
|
+
const { readFileSync: readFileSync30 } = await import("fs");
|
|
91237
91699
|
try {
|
|
91238
|
-
const pkg = JSON.parse(
|
|
91700
|
+
const pkg = JSON.parse(readFileSync30(resolve18(cliPath, "../package.json"), "utf-8"));
|
|
91239
91701
|
console.log(`mink ${pkg.version}`);
|
|
91240
91702
|
} catch {
|
|
91241
91703
|
console.log("mink (unknown version)");
|
|
@@ -91288,7 +91750,8 @@ switch (command2) {
|
|
|
91288
91750
|
console.log(" dashboard [--port=N] Open the real-time web dashboard");
|
|
91289
91751
|
console.log(" daemon <cmd> Manage the background daemon (start|stop|restart|logs|install|uninstall)");
|
|
91290
91752
|
console.log(" cron <cmd> [id] Manage scheduled tasks (list|run|retry)");
|
|
91291
|
-
console.log(" update [options] Update Mink across registered projects");
|
|
91753
|
+
console.log(" update [options] Update Mink hooks across registered projects");
|
|
91754
|
+
console.log(" upgrade [options] Self-upgrade the mink CLI from npm (--check|--dry-run|--force)");
|
|
91292
91755
|
console.log(" restore [backup] Restore state from a backup");
|
|
91293
91756
|
console.log(" bug search <term> Search the bug log");
|
|
91294
91757
|
console.log(" detect-waste Detect and flag wasteful patterns");
|