dev3000 0.0.186 → 0.0.188
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +101 -13
- package/bin/dev3000 +1 -2
- package/dist/cdp-monitor.d.ts +7 -12
- package/dist/cdp-monitor.d.ts.map +1 -1
- package/dist/cdp-monitor.js +86 -170
- package/dist/cdp-monitor.js.map +1 -1
- package/dist/cli.d.ts +1 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +1 -1369
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/portless.d.ts +3 -0
- package/dist/portless.d.ts.map +1 -1
- package/dist/portless.js +10 -0
- package/dist/portless.js.map +1 -1
- package/dist/runtime/bridge.d.ts +26 -0
- package/dist/runtime/bridge.d.ts.map +1 -0
- package/dist/runtime/bridge.js +340 -0
- package/dist/runtime/bridge.js.map +1 -0
- package/dist/runtime/chrome-isolation.d.ts +16 -0
- package/dist/runtime/chrome-isolation.d.ts.map +1 -0
- package/dist/runtime/chrome-isolation.js +119 -0
- package/dist/runtime/chrome-isolation.js.map +1 -0
- package/dist/runtime/cli.js +116 -26
- package/dist/runtime/cli.js.map +1 -1
- package/dist/runtime/event-views.d.ts +21 -0
- package/dist/runtime/event-views.d.ts.map +1 -0
- package/dist/runtime/event-views.js +53 -0
- package/dist/runtime/event-views.js.map +1 -0
- package/dist/runtime/harness.d.ts +16 -0
- package/dist/runtime/harness.d.ts.map +1 -0
- package/dist/runtime/harness.js +68 -0
- package/dist/runtime/harness.js.map +1 -0
- package/dist/runtime/local-proxy.d.ts +12 -0
- package/dist/runtime/local-proxy.d.ts.map +1 -0
- package/dist/runtime/local-proxy.js +114 -0
- package/dist/runtime/local-proxy.js.map +1 -0
- package/dist/runtime/runtime.d.ts +14 -0
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +80 -19
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime/sandbox-agent.d.ts +6 -0
- package/dist/runtime/sandbox-agent.d.ts.map +1 -0
- package/dist/runtime/sandbox-agent.js +35 -0
- package/dist/runtime/sandbox-agent.js.map +1 -0
- package/dist/runtime/sandbox-command.d.ts +9 -0
- package/dist/runtime/sandbox-command.d.ts.map +1 -0
- package/dist/runtime/sandbox-command.js +101 -0
- package/dist/runtime/sandbox-command.js.map +1 -0
- package/dist/runtime/sandbox-proxy.d.ts +11 -0
- package/dist/runtime/sandbox-proxy.d.ts.map +1 -0
- package/dist/runtime/sandbox-proxy.js +123 -0
- package/dist/runtime/sandbox-proxy.js.map +1 -0
- package/dist/runtime/sandbox-sessions.d.ts +31 -0
- package/dist/runtime/sandbox-sessions.d.ts.map +1 -0
- package/dist/runtime/sandbox-sessions.js +102 -0
- package/dist/runtime/sandbox-sessions.js.map +1 -0
- package/dist/runtime/sandbox.d.ts +21 -0
- package/dist/runtime/sandbox.d.ts.map +1 -0
- package/dist/runtime/sandbox.js +481 -0
- package/dist/runtime/sandbox.js.map +1 -0
- package/dist/utils/agent-browser.d.ts +2 -120
- package/dist/utils/agent-browser.d.ts.map +1 -1
- package/dist/utils/agent-browser.js +13 -376
- package/dist/utils/agent-browser.js.map +1 -1
- package/dist/utils/project-name.d.ts +2 -2
- package/dist/utils/project-name.js +2 -2
- package/package.json +13 -22
- package/skills/d3k/SKILL.md +23 -1
- package/dist/commands/crawl.d.ts +0 -12
- package/dist/commands/crawl.d.ts.map +0 -1
- package/dist/commands/crawl.js +0 -101
- package/dist/commands/crawl.js.map +0 -1
- package/dist/commands/errors.d.ts +0 -14
- package/dist/commands/errors.d.ts.map +0 -1
- package/dist/commands/errors.js +0 -246
- package/dist/commands/errors.js.map +0 -1
- package/dist/commands/fix.d.ts +0 -13
- package/dist/commands/fix.d.ts.map +0 -1
- package/dist/commands/fix.js +0 -219
- package/dist/commands/fix.js.map +0 -1
- package/dist/commands/logs.d.ts +0 -13
- package/dist/commands/logs.d.ts.map +0 -1
- package/dist/commands/logs.js +0 -146
- package/dist/commands/logs.js.map +0 -1
- package/dist/commands/resume.d.ts +0 -11
- package/dist/commands/resume.d.ts.map +0 -1
- package/dist/commands/resume.js +0 -75
- package/dist/commands/resume.js.map +0 -1
- package/dist/commands/status.d.ts +0 -21
- package/dist/commands/status.d.ts.map +0 -1
- package/dist/commands/status.js +0 -44
- package/dist/commands/status.js.map +0 -1
- package/dist/components/AgentSelector.d.ts +0 -12
- package/dist/components/AgentSelector.d.ts.map +0 -1
- package/dist/components/AgentSelector.js +0 -99
- package/dist/components/AgentSelector.js.map +0 -1
- package/dist/components/PackageSelector.d.ts +0 -13
- package/dist/components/PackageSelector.d.ts.map +0 -1
- package/dist/components/PackageSelector.js +0 -79
- package/dist/components/PackageSelector.js.map +0 -1
- package/dist/constants/log-colors.d.ts +0 -43
- package/dist/constants/log-colors.d.ts.map +0 -1
- package/dist/constants/log-colors.js +0 -59
- package/dist/constants/log-colors.js.map +0 -1
- package/dist/dev-environment.d.ts +0 -187
- package/dist/dev-environment.d.ts.map +0 -1
- package/dist/dev-environment.js +0 -2248
- package/dist/dev-environment.js.map +0 -1
- package/dist/screencast-manager.d.ts +0 -78
- package/dist/screencast-manager.d.ts.map +0 -1
- package/dist/screencast-manager.js +0 -529
- package/dist/screencast-manager.js.map +0 -1
- package/dist/services/parsers/error-detectors/base.d.ts +0 -24
- package/dist/services/parsers/error-detectors/base.d.ts.map +0 -1
- package/dist/services/parsers/error-detectors/base.js +0 -44
- package/dist/services/parsers/error-detectors/base.js.map +0 -1
- package/dist/services/parsers/error-detectors/index.d.ts +0 -6
- package/dist/services/parsers/error-detectors/index.d.ts.map +0 -1
- package/dist/services/parsers/error-detectors/index.js +0 -6
- package/dist/services/parsers/error-detectors/index.js.map +0 -1
- package/dist/services/parsers/error-detectors/nextjs.d.ts +0 -9
- package/dist/services/parsers/error-detectors/nextjs.d.ts.map +0 -1
- package/dist/services/parsers/error-detectors/nextjs.js +0 -52
- package/dist/services/parsers/error-detectors/nextjs.js.map +0 -1
- package/dist/services/parsers/index.d.ts +0 -9
- package/dist/services/parsers/index.d.ts.map +0 -1
- package/dist/services/parsers/index.js +0 -10
- package/dist/services/parsers/index.js.map +0 -1
- package/dist/services/parsers/log-parsers/base.d.ts +0 -26
- package/dist/services/parsers/log-parsers/base.d.ts.map +0 -1
- package/dist/services/parsers/log-parsers/base.js +0 -6
- package/dist/services/parsers/log-parsers/base.js.map +0 -1
- package/dist/services/parsers/log-parsers/index.d.ts +0 -6
- package/dist/services/parsers/log-parsers/index.d.ts.map +0 -1
- package/dist/services/parsers/log-parsers/index.js +0 -5
- package/dist/services/parsers/log-parsers/index.js.map +0 -1
- package/dist/services/parsers/log-parsers/standard.d.ts +0 -9
- package/dist/services/parsers/log-parsers/standard.d.ts.map +0 -1
- package/dist/services/parsers/log-parsers/standard.js +0 -17
- package/dist/services/parsers/log-parsers/standard.js.map +0 -1
- package/dist/services/parsers/output-processor.d.ts +0 -39
- package/dist/services/parsers/output-processor.d.ts.map +0 -1
- package/dist/services/parsers/output-processor.js +0 -54
- package/dist/services/parsers/output-processor.js.map +0 -1
- package/dist/skills/d3k/internal-skill.md +0 -32
- package/dist/skills/index.d.ts +0 -54
- package/dist/skills/index.d.ts.map +0 -1
- package/dist/skills/index.js +0 -214
- package/dist/skills/index.js.map +0 -1
- package/dist/src/tui-interface-impl.tsx +0 -644
- package/dist/tui-interface-impl.d.ts +0 -30
- package/dist/tui-interface-impl.d.ts.map +0 -1
- package/dist/tui-interface-impl.js +0 -403
- package/dist/tui-interface-impl.js.map +0 -1
- package/dist/tui-interface-opentui.d.ts +0 -33
- package/dist/tui-interface-opentui.d.ts.map +0 -1
- package/dist/tui-interface-opentui.js +0 -1128
- package/dist/tui-interface-opentui.js.map +0 -1
- package/dist/tui-interface.d.ts +0 -38
- package/dist/tui-interface.d.ts.map +0 -1
- package/dist/tui-interface.js +0 -84
- package/dist/tui-interface.js.map +0 -1
- package/dist/utils/agent-detection.d.ts +0 -17
- package/dist/utils/agent-detection.d.ts.map +0 -1
- package/dist/utils/agent-detection.js +0 -81
- package/dist/utils/agent-detection.js.map +0 -1
- package/dist/utils/agent-selection.d.ts +0 -25
- package/dist/utils/agent-selection.d.ts.map +0 -1
- package/dist/utils/agent-selection.js +0 -73
- package/dist/utils/agent-selection.js.map +0 -1
- package/dist/utils/browser-command-argv.d.ts +0 -19
- package/dist/utils/browser-command-argv.d.ts.map +0 -1
- package/dist/utils/browser-command-argv.js +0 -149
- package/dist/utils/browser-command-argv.js.map +0 -1
- package/dist/utils/build-version.d.ts +0 -2
- package/dist/utils/build-version.d.ts.map +0 -1
- package/dist/utils/build-version.js +0 -8
- package/dist/utils/build-version.js.map +0 -1
- package/dist/utils/cli-options.d.ts +0 -5
- package/dist/utils/cli-options.d.ts.map +0 -1
- package/dist/utils/cli-options.js +0 -36
- package/dist/utils/cli-options.js.map +0 -1
- package/dist/utils/d3k-dir.d.ts +0 -3
- package/dist/utils/d3k-dir.d.ts.map +0 -1
- package/dist/utils/d3k-dir.js +0 -12
- package/dist/utils/d3k-dir.js.map +0 -1
- package/dist/utils/d3k-skill-installer.d.ts +0 -4
- package/dist/utils/d3k-skill-installer.d.ts.map +0 -1
- package/dist/utils/d3k-skill-installer.js +0 -30
- package/dist/utils/d3k-skill-installer.js.map +0 -1
- package/dist/utils/log-filename.d.ts +0 -30
- package/dist/utils/log-filename.d.ts.map +0 -1
- package/dist/utils/log-filename.js +0 -60
- package/dist/utils/log-filename.js.map +0 -1
- package/dist/utils/project-detector.d.ts +0 -25
- package/dist/utils/project-detector.d.ts.map +0 -1
- package/dist/utils/project-detector.js +0 -153
- package/dist/utils/project-detector.js.map +0 -1
- package/dist/utils/project-metadata.d.ts +0 -4
- package/dist/utils/project-metadata.d.ts.map +0 -1
- package/dist/utils/project-metadata.js +0 -48
- package/dist/utils/project-metadata.js.map +0 -1
- package/dist/utils/repo-validate.d.ts +0 -2
- package/dist/utils/repo-validate.d.ts.map +0 -1
- package/dist/utils/repo-validate.js +0 -10
- package/dist/utils/repo-validate.js.map +0 -1
- package/dist/utils/session.d.ts +0 -19
- package/dist/utils/session.d.ts.map +0 -1
- package/dist/utils/session.js +0 -65
- package/dist/utils/session.js.map +0 -1
- package/dist/utils/skill-installer.d.ts +0 -65
- package/dist/utils/skill-installer.d.ts.map +0 -1
- package/dist/utils/skill-installer.js +0 -265
- package/dist/utils/skill-installer.js.map +0 -1
- package/dist/utils/timestamp.d.ts +0 -20
- package/dist/utils/timestamp.d.ts.map +0 -1
- package/dist/utils/timestamp.js +0 -57
- package/dist/utils/timestamp.js.map +0 -1
- package/dist/utils/tmux-helpers.d.ts +0 -36
- package/dist/utils/tmux-helpers.d.ts.map +0 -1
- package/dist/utils/tmux-helpers.js +0 -118
- package/dist/utils/tmux-helpers.js.map +0 -1
- package/dist/utils/user-config.d.ts +0 -12
- package/dist/utils/user-config.d.ts.map +0 -1
- package/dist/utils/user-config.js +0 -46
- package/dist/utils/user-config.js.map +0 -1
- package/dist/utils/version-check.d.ts +0 -52
- package/dist/utils/version-check.d.ts.map +0 -1
- package/dist/utils/version-check.js +0 -304
- package/dist/utils/version-check.js.map +0 -1
- package/src/tui-interface-impl.tsx +0 -644
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { existsSync, readFileSync, writeFileSync } from "fs";
|
|
2
|
-
import { homedir } from "os";
|
|
3
|
-
import { join } from "path";
|
|
4
|
-
export function getUserConfigPath() {
|
|
5
|
-
return join(homedir(), ".d3k.json");
|
|
6
|
-
}
|
|
7
|
-
export function loadUserConfig() {
|
|
8
|
-
const configPath = getUserConfigPath();
|
|
9
|
-
if (!existsSync(configPath)) {
|
|
10
|
-
return {};
|
|
11
|
-
}
|
|
12
|
-
try {
|
|
13
|
-
const content = readFileSync(configPath, "utf-8");
|
|
14
|
-
const parsed = JSON.parse(content);
|
|
15
|
-
const config = {};
|
|
16
|
-
if (parsed.defaultAgent && typeof parsed.defaultAgent === "object") {
|
|
17
|
-
const agent = parsed.defaultAgent;
|
|
18
|
-
if (typeof agent.name === "string" && typeof agent.command === "string") {
|
|
19
|
-
config.defaultAgent = { name: agent.name, command: agent.command };
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
if (typeof parsed.browser === "string" && parsed.browser.trim().length > 0) {
|
|
23
|
-
config.browser = parsed.browser.trim();
|
|
24
|
-
}
|
|
25
|
-
return config;
|
|
26
|
-
}
|
|
27
|
-
catch {
|
|
28
|
-
return {};
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
export function saveUserConfig(updates) {
|
|
32
|
-
const configPath = getUserConfigPath();
|
|
33
|
-
// Load existing config and merge
|
|
34
|
-
const existing = loadUserConfig();
|
|
35
|
-
const merged = { ...existing, ...updates };
|
|
36
|
-
// Remove defaultAgent if set to undefined (user chose "No agent")
|
|
37
|
-
if (updates.defaultAgent === undefined && "defaultAgent" in updates) {
|
|
38
|
-
delete merged.defaultAgent;
|
|
39
|
-
}
|
|
40
|
-
// Remove browser if set to undefined
|
|
41
|
-
if (updates.browser === undefined && "browser" in updates) {
|
|
42
|
-
delete merged.browser;
|
|
43
|
-
}
|
|
44
|
-
writeFileSync(configPath, JSON.stringify(merged, null, 2));
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=user-config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"user-config.js","sourceRoot":"","sources":["../../src/utils/user-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAY3B,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAA;IAEtC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAA;QAC7D,MAAM,MAAM,GAAe,EAAE,CAAA;QAC7B,IAAI,MAAM,CAAC,YAAY,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YACnE,MAAM,KAAK,GAAG,MAAM,CAAC,YAAuC,CAAA;YAC5D,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACxE,MAAM,CAAC,YAAY,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;YACpE,CAAC;QACH,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3E,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;QACxC,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAA4B;IACzD,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAA;IAEtC,iCAAiC;IACjC,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAA;IACjC,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAA;IAE1C,kEAAkE;IAClE,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,IAAI,cAAc,IAAI,OAAO,EAAE,CAAC;QACpE,OAAO,MAAM,CAAC,YAAY,CAAA;IAC5B,CAAC;IAED,qCAAqC;IACrC,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;QAC1D,OAAO,MAAM,CAAC,OAAO,CAAA;IACvB,CAAC;IAED,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;AAC5D,CAAC"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
interface VersionInfo {
|
|
2
|
-
currentVersion: string;
|
|
3
|
-
latestVersion: string | null;
|
|
4
|
-
updateAvailable: boolean;
|
|
5
|
-
packageManager: "npm" | "pnpm" | "yarn" | null;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Get the current installed version of dev3000
|
|
9
|
-
*/
|
|
10
|
-
export declare function getCurrentVersion(): string;
|
|
11
|
-
/**
|
|
12
|
-
* Fetch the latest version directly from npm
|
|
13
|
-
*/
|
|
14
|
-
export declare function fetchLatestVersion(): Promise<string | null>;
|
|
15
|
-
/**
|
|
16
|
-
* Detect how dev3000 was installed globally
|
|
17
|
-
*/
|
|
18
|
-
export declare function detectPackageManager(): "npm" | "pnpm" | "yarn" | null;
|
|
19
|
-
/**
|
|
20
|
-
* Get the upgrade command for the detected package manager
|
|
21
|
-
*/
|
|
22
|
-
export declare function getUpgradeCommand(packageManager: "npm" | "pnpm" | "yarn" | null): string;
|
|
23
|
-
/**
|
|
24
|
-
* Compare two semver versions
|
|
25
|
-
* Returns true if version2 is greater than version1
|
|
26
|
-
*
|
|
27
|
-
* Pre-release versions (e.g., 0.0.125-canary) are considered older than
|
|
28
|
-
* their corresponding stable versions (e.g., 0.0.125).
|
|
29
|
-
*/
|
|
30
|
-
export declare function isNewerVersion(current: string, latest: string): boolean;
|
|
31
|
-
/**
|
|
32
|
-
* Check for updates (async, non-blocking)
|
|
33
|
-
*/
|
|
34
|
-
export declare function checkForUpdates(): Promise<VersionInfo>;
|
|
35
|
-
/**
|
|
36
|
-
* Perform the upgrade (blocking, with stdio output)
|
|
37
|
-
*/
|
|
38
|
-
export declare function performUpgrade(): {
|
|
39
|
-
success: boolean;
|
|
40
|
-
error?: string;
|
|
41
|
-
};
|
|
42
|
-
/**
|
|
43
|
-
* Perform the upgrade asynchronously (non-blocking, for background updates)
|
|
44
|
-
* Returns the new version on success, or null on failure
|
|
45
|
-
*/
|
|
46
|
-
export declare function performUpgradeAsync(): Promise<{
|
|
47
|
-
success: boolean;
|
|
48
|
-
newVersion?: string;
|
|
49
|
-
error?: string;
|
|
50
|
-
}>;
|
|
51
|
-
export {};
|
|
52
|
-
//# sourceMappingURL=version-check.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../../src/utils/version-check.ts"],"names":[],"mappings":"AASA,UAAU,WAAW;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,eAAe,EAAE,OAAO,CAAA;IACxB,cAAc,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;CAC/C;AAoDD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAe1C;AAED;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA2CjE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAyDrE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,CASxF;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CA4BvE;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,CAgB5D;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAoBrE;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAgD9G"}
|
|
@@ -1,304 +0,0 @@
|
|
|
1
|
-
import { execSync, spawnSync } from "child_process";
|
|
2
|
-
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
|
|
3
|
-
import { homedir } from "os";
|
|
4
|
-
import { dirname, join } from "path";
|
|
5
|
-
import { fileURLToPath } from "url";
|
|
6
|
-
const CACHE_TTL_MS = 1000 * 60 * 60; // 1 hour cache
|
|
7
|
-
function getCacheFilePath() {
|
|
8
|
-
return join(homedir(), ".d3k", "version-cache.json");
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Read cached version info if it exists and is still valid
|
|
12
|
-
*/
|
|
13
|
-
function readCachedVersion() {
|
|
14
|
-
try {
|
|
15
|
-
const cachePath = getCacheFilePath();
|
|
16
|
-
if (!existsSync(cachePath)) {
|
|
17
|
-
return null;
|
|
18
|
-
}
|
|
19
|
-
const cached = JSON.parse(readFileSync(cachePath, "utf8"));
|
|
20
|
-
if (Date.now() - cached.timestamp < CACHE_TTL_MS) {
|
|
21
|
-
return cached.latestVersion;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
catch {
|
|
25
|
-
// Cache read failed, ignore
|
|
26
|
-
}
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Write version info to cache
|
|
31
|
-
*/
|
|
32
|
-
function writeCachedVersion(version) {
|
|
33
|
-
try {
|
|
34
|
-
const cachePath = getCacheFilePath();
|
|
35
|
-
const cacheDir = dirname(cachePath);
|
|
36
|
-
if (!existsSync(cacheDir)) {
|
|
37
|
-
mkdirSync(cacheDir, { recursive: true });
|
|
38
|
-
}
|
|
39
|
-
const cached = {
|
|
40
|
-
latestVersion: version,
|
|
41
|
-
timestamp: Date.now()
|
|
42
|
-
};
|
|
43
|
-
writeFileSync(cachePath, JSON.stringify(cached));
|
|
44
|
-
}
|
|
45
|
-
catch {
|
|
46
|
-
// Cache write failed, ignore
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Get the current installed version of dev3000
|
|
51
|
-
*/
|
|
52
|
-
export function getCurrentVersion() {
|
|
53
|
-
// Check for compile-time injected version first (for standalone binaries)
|
|
54
|
-
if (typeof __D3K_VERSION__ !== "undefined") {
|
|
55
|
-
return __D3K_VERSION__;
|
|
56
|
-
}
|
|
57
|
-
try {
|
|
58
|
-
const currentFile = fileURLToPath(import.meta.url);
|
|
59
|
-
const packageRoot = dirname(dirname(dirname(currentFile))); // Go up from dist/utils to package root
|
|
60
|
-
const packageJsonPath = join(packageRoot, "package.json");
|
|
61
|
-
const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf8"));
|
|
62
|
-
return packageJson.version;
|
|
63
|
-
}
|
|
64
|
-
catch {
|
|
65
|
-
return "0.0.0";
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Fetch the latest version directly from npm
|
|
70
|
-
*/
|
|
71
|
-
export async function fetchLatestVersion() {
|
|
72
|
-
// Check cache first
|
|
73
|
-
const cached = readCachedVersion();
|
|
74
|
-
if (cached) {
|
|
75
|
-
return cached;
|
|
76
|
-
}
|
|
77
|
-
// Fallback to npm directly (no telemetry)
|
|
78
|
-
try {
|
|
79
|
-
// Use npm view with a short timeout
|
|
80
|
-
const result = execSync("npm view dev3000 version 2>/dev/null", {
|
|
81
|
-
encoding: "utf8",
|
|
82
|
-
timeout: 5000
|
|
83
|
-
}).trim();
|
|
84
|
-
if (result) {
|
|
85
|
-
writeCachedVersion(result);
|
|
86
|
-
return result;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
catch {
|
|
90
|
-
// npm view failed, try fetch as fallback
|
|
91
|
-
try {
|
|
92
|
-
const controller = new AbortController();
|
|
93
|
-
const timeout = setTimeout(() => controller.abort(), 3000);
|
|
94
|
-
const response = await fetch("https://registry.npmjs.org/dev3000/latest", {
|
|
95
|
-
signal: controller.signal
|
|
96
|
-
});
|
|
97
|
-
clearTimeout(timeout);
|
|
98
|
-
if (response.ok) {
|
|
99
|
-
const data = await response.json();
|
|
100
|
-
if (data.version) {
|
|
101
|
-
writeCachedVersion(data.version);
|
|
102
|
-
return data.version;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
catch {
|
|
107
|
-
// Fetch also failed, return null
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
return null;
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Detect how dev3000 was installed globally
|
|
114
|
-
*/
|
|
115
|
-
export function detectPackageManager() {
|
|
116
|
-
const currentFile = fileURLToPath(import.meta.url);
|
|
117
|
-
const packageRoot = dirname(dirname(dirname(currentFile)));
|
|
118
|
-
// Check path patterns for different package managers
|
|
119
|
-
if (packageRoot.includes(".pnpm") || packageRoot.includes("pnpm")) {
|
|
120
|
-
return "pnpm";
|
|
121
|
-
}
|
|
122
|
-
if (packageRoot.includes(".yarn") || packageRoot.includes("yarn")) {
|
|
123
|
-
return "yarn";
|
|
124
|
-
}
|
|
125
|
-
// Check if npm global
|
|
126
|
-
if (packageRoot.includes("npm") || packageRoot.includes("/lib/node_modules/") || packageRoot.includes("npm-global")) {
|
|
127
|
-
return "npm";
|
|
128
|
-
}
|
|
129
|
-
// Try to detect by checking which package manager has dev3000 globally installed
|
|
130
|
-
try {
|
|
131
|
-
const pnpmResult = spawnSync("pnpm", ["list", "-g", "--depth=0", "dev3000"], {
|
|
132
|
-
encoding: "utf8",
|
|
133
|
-
timeout: 3000
|
|
134
|
-
});
|
|
135
|
-
if (pnpmResult.status === 0 && pnpmResult.stdout.includes("dev3000")) {
|
|
136
|
-
return "pnpm";
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
catch {
|
|
140
|
-
// pnpm not available or failed
|
|
141
|
-
}
|
|
142
|
-
try {
|
|
143
|
-
const npmResult = spawnSync("npm", ["list", "-g", "--depth=0", "dev3000"], {
|
|
144
|
-
encoding: "utf8",
|
|
145
|
-
timeout: 3000
|
|
146
|
-
});
|
|
147
|
-
if (npmResult.status === 0 && npmResult.stdout.includes("dev3000")) {
|
|
148
|
-
return "npm";
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
catch {
|
|
152
|
-
// npm failed
|
|
153
|
-
}
|
|
154
|
-
try {
|
|
155
|
-
const yarnResult = spawnSync("yarn", ["global", "list", "--depth=0"], {
|
|
156
|
-
encoding: "utf8",
|
|
157
|
-
timeout: 3000
|
|
158
|
-
});
|
|
159
|
-
if (yarnResult.status === 0 && yarnResult.stdout.includes("dev3000")) {
|
|
160
|
-
return "yarn";
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
catch {
|
|
164
|
-
// yarn not available or failed
|
|
165
|
-
}
|
|
166
|
-
// Default to npm if we can't detect
|
|
167
|
-
return "npm";
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Get the upgrade command for the detected package manager
|
|
171
|
-
*/
|
|
172
|
-
export function getUpgradeCommand(packageManager) {
|
|
173
|
-
switch (packageManager) {
|
|
174
|
-
case "pnpm":
|
|
175
|
-
return "pnpm install -g dev3000@latest";
|
|
176
|
-
case "yarn":
|
|
177
|
-
return "yarn global add dev3000@latest";
|
|
178
|
-
default:
|
|
179
|
-
return "npm install -g dev3000@latest";
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* Compare two semver versions
|
|
184
|
-
* Returns true if version2 is greater than version1
|
|
185
|
-
*
|
|
186
|
-
* Pre-release versions (e.g., 0.0.125-canary) are considered older than
|
|
187
|
-
* their corresponding stable versions (e.g., 0.0.125).
|
|
188
|
-
*/
|
|
189
|
-
export function isNewerVersion(current, latest) {
|
|
190
|
-
// Extract pre-release tags
|
|
191
|
-
const currentPrerelease = current.includes("-") ? current.split("-")[1] : null;
|
|
192
|
-
const latestPrerelease = latest.includes("-") ? latest.split("-")[1] : null;
|
|
193
|
-
// Strip any pre-release tags for base version comparison
|
|
194
|
-
const cleanCurrent = current.replace(/-.*$/, "");
|
|
195
|
-
const cleanLatest = latest.replace(/-.*$/, "");
|
|
196
|
-
const v1Parts = cleanCurrent.split(".").map(Number);
|
|
197
|
-
const v2Parts = cleanLatest.split(".").map(Number);
|
|
198
|
-
for (let i = 0; i < Math.max(v1Parts.length, v2Parts.length); i++) {
|
|
199
|
-
const v1 = v1Parts[i] || 0;
|
|
200
|
-
const v2 = v2Parts[i] || 0;
|
|
201
|
-
if (v2 > v1)
|
|
202
|
-
return true;
|
|
203
|
-
if (v2 < v1)
|
|
204
|
-
return false;
|
|
205
|
-
}
|
|
206
|
-
// Base versions are equal - check pre-release status
|
|
207
|
-
// A stable version (no prerelease) is newer than a prerelease version
|
|
208
|
-
// e.g., 0.0.125 > 0.0.125-canary
|
|
209
|
-
if (currentPrerelease && !latestPrerelease) {
|
|
210
|
-
return true; // latest is stable, current is prerelease -> update available
|
|
211
|
-
}
|
|
212
|
-
return false;
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* Check for updates (async, non-blocking)
|
|
216
|
-
*/
|
|
217
|
-
export async function checkForUpdates() {
|
|
218
|
-
const currentVersion = getCurrentVersion();
|
|
219
|
-
const latestVersion = await fetchLatestVersion();
|
|
220
|
-
const packageManager = detectPackageManager();
|
|
221
|
-
// Don't auto-update if on a canary/prerelease version
|
|
222
|
-
// Canary users should upgrade manually
|
|
223
|
-
const isCanary = currentVersion.includes("-");
|
|
224
|
-
const updateAvailable = !isCanary && latestVersion !== null && isNewerVersion(currentVersion, latestVersion);
|
|
225
|
-
return {
|
|
226
|
-
currentVersion,
|
|
227
|
-
latestVersion,
|
|
228
|
-
updateAvailable,
|
|
229
|
-
packageManager
|
|
230
|
-
};
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* Perform the upgrade (blocking, with stdio output)
|
|
234
|
-
*/
|
|
235
|
-
export function performUpgrade() {
|
|
236
|
-
const packageManager = detectPackageManager();
|
|
237
|
-
const command = getUpgradeCommand(packageManager);
|
|
238
|
-
try {
|
|
239
|
-
console.log(`Upgrading dev3000 using ${packageManager || "npm"}...`);
|
|
240
|
-
console.log(`Running: ${command}\n`);
|
|
241
|
-
execSync(command, {
|
|
242
|
-
stdio: "inherit",
|
|
243
|
-
timeout: 120000 // 2 minute timeout
|
|
244
|
-
});
|
|
245
|
-
return { success: true };
|
|
246
|
-
}
|
|
247
|
-
catch (error) {
|
|
248
|
-
return {
|
|
249
|
-
success: false,
|
|
250
|
-
error: error instanceof Error ? error.message : "Unknown error during upgrade"
|
|
251
|
-
};
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
/**
|
|
255
|
-
* Perform the upgrade asynchronously (non-blocking, for background updates)
|
|
256
|
-
* Returns the new version on success, or null on failure
|
|
257
|
-
*/
|
|
258
|
-
export async function performUpgradeAsync() {
|
|
259
|
-
const packageManager = detectPackageManager();
|
|
260
|
-
const command = getUpgradeCommand(packageManager);
|
|
261
|
-
return new Promise((resolve) => {
|
|
262
|
-
try {
|
|
263
|
-
// Run upgrade silently in background
|
|
264
|
-
execSync(command, {
|
|
265
|
-
stdio: "ignore",
|
|
266
|
-
timeout: 120000 // 2 minute timeout
|
|
267
|
-
});
|
|
268
|
-
// After upgrade, fetch the new version by checking what's installed
|
|
269
|
-
// Clear the module cache and re-read package.json isn't reliable after global install
|
|
270
|
-
// Instead, use npm/pnpm to query the installed version
|
|
271
|
-
try {
|
|
272
|
-
const versionCommand = packageManager === "pnpm"
|
|
273
|
-
? "pnpm list -g dev3000 --json"
|
|
274
|
-
: packageManager === "yarn"
|
|
275
|
-
? "yarn global list --json"
|
|
276
|
-
: "npm list -g dev3000 --json";
|
|
277
|
-
const result = execSync(versionCommand, { encoding: "utf8", timeout: 5000 });
|
|
278
|
-
const parsed = JSON.parse(result);
|
|
279
|
-
// Extract version based on package manager format
|
|
280
|
-
let newVersion;
|
|
281
|
-
if (packageManager === "pnpm") {
|
|
282
|
-
// pnpm format: array of packages
|
|
283
|
-
newVersion = parsed?.[0]?.dependencies?.dev3000?.version;
|
|
284
|
-
}
|
|
285
|
-
else if (packageManager === "npm") {
|
|
286
|
-
// npm format: { dependencies: { dev3000: { version: "x.x.x" } } }
|
|
287
|
-
newVersion = parsed?.dependencies?.dev3000?.version;
|
|
288
|
-
}
|
|
289
|
-
resolve({ success: true, newVersion });
|
|
290
|
-
}
|
|
291
|
-
catch {
|
|
292
|
-
// Couldn't get version, but upgrade succeeded
|
|
293
|
-
resolve({ success: true });
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
catch (error) {
|
|
297
|
-
resolve({
|
|
298
|
-
success: false,
|
|
299
|
-
error: error instanceof Error ? error.message : "Unknown error during upgrade"
|
|
300
|
-
});
|
|
301
|
-
}
|
|
302
|
-
});
|
|
303
|
-
}
|
|
304
|
-
//# sourceMappingURL=version-check.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/utils/version-check.ts"],"names":[],"mappings":"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"}
|