indexer-cli 0.11.9 → 0.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -0
- package/bin/indexer-cli.js +2 -112
- package/dist/cli/commands/architecture.js +4 -2
- package/dist/cli/commands/architecture.js.map +1 -1
- package/dist/cli/commands/explain.js +6 -4
- package/dist/cli/commands/explain.js.map +1 -1
- package/dist/cli/commands/path-prefix.d.ts +1 -0
- package/dist/cli/commands/path-prefix.js +11 -0
- package/dist/cli/commands/path-prefix.js.map +1 -0
- package/dist/cli/commands/search.js +2 -1
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/setup.js +23 -1
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/structure.js +2 -1
- package/dist/cli/commands/structure.js.map +1 -1
- package/dist/cli/commands/update.d.ts +2 -0
- package/dist/cli/commands/update.js +45 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/entry.js +14 -3
- package/dist/cli/entry.js.map +1 -1
- package/dist/core/idx-binary.d.ts +2 -0
- package/dist/core/idx-binary.js +83 -25
- package/dist/core/idx-binary.js.map +1 -1
- package/dist/core/update-check.d.ts +17 -2
- package/dist/core/update-check.js +105 -42
- package/dist/core/update-check.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":";;AAqBA,sDAuBC;AA3CD,gEAAiE;AACjE,sDAAwD;AAExD,SAAS,kBAAkB,CAAC,MAAc;IACzC,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,4BAA4B;YAChC,OAAO,+FAA+F,CAAC;QACxG,KAAK,IAAI;YACR,OAAO,+EAA+E,CAAC;QACxF,KAAK,eAAe;YACnB,OAAO,iDAAiD,CAAC;QAC1D,KAAK,kBAAkB;YACtB,OAAO,gDAAgD,CAAC;QACzD,KAAK,SAAS;YACb,OAAO,+CAA+C,CAAC;QACxD;YACC,OAAO,MAAM,CAAC;IAChB,CAAC;AACF,CAAC;AAED,SAAgB,qBAAqB,CAAC,OAAgB;IACrD,OAAO;SACL,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,yDAAyD,CAAC;SACtE,MAAM,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,MAAM,GAAG,MAAM,IAAA,qCAAmB,GAAE,CAAC;QAE3C,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,WAAW;gBACf,OAAO,CAAC,GAAG,CAAC,sCAAsC,4BAAe,IAAI,CAAC,CAAC;gBACvE,OAAO;YACR,KAAK,SAAS;gBACb,OAAO;YACR,KAAK,SAAS;gBACb,OAAO,CAAC,KAAK,CAAC,mBAAmB,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACtE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACR,KAAK,QAAQ;gBACZ,OAAO,CAAC,KAAK,CAAC,kBAAkB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;QACT,CAAC;IACF,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/cli/entry.js
CHANGED
|
@@ -11,6 +11,7 @@ const doctor_js_1 = require("./commands/doctor.js");
|
|
|
11
11
|
const setup_js_1 = require("./commands/setup.js");
|
|
12
12
|
const explain_js_1 = require("./commands/explain.js");
|
|
13
13
|
const deps_js_1 = require("./commands/deps.js");
|
|
14
|
+
const update_js_1 = require("./commands/update.js");
|
|
14
15
|
const version_js_1 = require("../core/version.js");
|
|
15
16
|
const skills_version_js_1 = require("../core/skills-version.js");
|
|
16
17
|
const version_check_js_1 = require("../core/version-check.js");
|
|
@@ -20,7 +21,9 @@ const SKIP_MIGRATION_COMMANDS = new Set([
|
|
|
20
21
|
"init",
|
|
21
22
|
"uninstall",
|
|
22
23
|
"doctor",
|
|
24
|
+
"update",
|
|
23
25
|
]);
|
|
26
|
+
const SKIP_POST_AUTO_UPDATE_COMMANDS = new Set(["update"]);
|
|
24
27
|
const HANDLED_COMMANDER_EXIT_CODES = new Set([
|
|
25
28
|
"commander.helpDisplayed",
|
|
26
29
|
"commander.help",
|
|
@@ -35,7 +38,6 @@ async function runPreActionChecks(commandName) {
|
|
|
35
38
|
if (SKIP_MIGRATION_COMMANDS.has(commandName)) {
|
|
36
39
|
return;
|
|
37
40
|
}
|
|
38
|
-
await (0, update_check_js_1.performAutoUpdate)();
|
|
39
41
|
try {
|
|
40
42
|
await (0, version_check_js_1.checkAndMigrateIfNeeded)();
|
|
41
43
|
}
|
|
@@ -61,7 +63,6 @@ async function runPreActionChecks(commandName) {
|
|
|
61
63
|
const exitCode = typeof process.exitCode === "number" ? process.exitCode : 1;
|
|
62
64
|
throw new commander_1.CommanderError(exitCode, "indexer.preActionFailed", "");
|
|
63
65
|
}
|
|
64
|
-
await (0, update_check_js_1.checkForUpdates)();
|
|
65
66
|
}
|
|
66
67
|
function isHandledCommanderExit(error) {
|
|
67
68
|
if (typeof error !== "object" || error === null || !("code" in error)) {
|
|
@@ -76,7 +77,7 @@ commander_1.program
|
|
|
76
77
|
.version(`${version_js_1.PACKAGE_VERSION} (skills: ${skills_version_js_1.SKILLS_VERSION})`)
|
|
77
78
|
.addHelpText("after", `\nVersion: ${version_js_1.PACKAGE_VERSION} (skills: ${skills_version_js_1.SKILLS_VERSION})\n`)
|
|
78
79
|
.exitOverride()
|
|
79
|
-
.option("--no-auto-update", "skip automatic update
|
|
80
|
+
.option("--no-auto-update", "skip automatic update attempt after command");
|
|
80
81
|
(0, setup_js_1.registerSetupCommand)(commander_1.program);
|
|
81
82
|
(0, init_js_1.registerInitCommand)(commander_1.program);
|
|
82
83
|
(0, index_js_1.registerIndexCommand)(commander_1.program);
|
|
@@ -85,21 +86,26 @@ commander_1.program
|
|
|
85
86
|
(0, architecture_js_1.registerArchitectureCommand)(commander_1.program);
|
|
86
87
|
(0, explain_js_1.registerExplainCommand)(commander_1.program);
|
|
87
88
|
(0, deps_js_1.registerDepsCommand)(commander_1.program);
|
|
89
|
+
(0, update_js_1.registerUpdateCommand)(commander_1.program);
|
|
88
90
|
(0, uninstall_js_1.registerUninstallCommand)(commander_1.program);
|
|
89
91
|
(0, doctor_js_1.registerDoctorCommand)(commander_1.program);
|
|
92
|
+
let lastActionCommandName = null;
|
|
90
93
|
commander_1.program.hook("preAction", async (thisCommand, actionCommand) => {
|
|
91
94
|
void thisCommand;
|
|
95
|
+
lastActionCommandName = actionCommand.name();
|
|
92
96
|
await runPreActionChecks(actionCommand.name());
|
|
93
97
|
});
|
|
94
98
|
async function main() {
|
|
95
99
|
const hasNoArgs = process.argv.length === 2 ||
|
|
96
100
|
(process.argv.length === 3 && process.argv[1].endsWith("indexer-cli.js"));
|
|
101
|
+
let commandExecutedSuccessfully = false;
|
|
97
102
|
try {
|
|
98
103
|
if (hasNoArgs) {
|
|
99
104
|
commander_1.program.outputHelp();
|
|
100
105
|
return;
|
|
101
106
|
}
|
|
102
107
|
await commander_1.program.parseAsync();
|
|
108
|
+
commandExecutedSuccessfully = (process.exitCode ?? 0) === 0;
|
|
103
109
|
}
|
|
104
110
|
catch (error) {
|
|
105
111
|
if (!isHandledCommanderExit(error)) {
|
|
@@ -112,6 +118,11 @@ async function main() {
|
|
|
112
118
|
}
|
|
113
119
|
}
|
|
114
120
|
}
|
|
121
|
+
if (commandExecutedSuccessfully &&
|
|
122
|
+
(lastActionCommandName === null ||
|
|
123
|
+
!SKIP_POST_AUTO_UPDATE_COMMANDS.has(lastActionCommandName))) {
|
|
124
|
+
await (0, update_check_js_1.performAutoUpdateAfterCommand)();
|
|
125
|
+
}
|
|
115
126
|
}
|
|
116
127
|
main();
|
|
117
128
|
//# sourceMappingURL=entry.js.map
|
package/dist/cli/entry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/cli/entry.ts"],"names":[],"mappings":";;AAAA,yCAAoD;AACpD,gDAAyD;AACzD,kDAA2D;AAC3D,oDAA6D;AAC7D,0DAAmE;AACnE,gEAAyE;AACzE,0DAAmE;AACnE,oDAA6D;AAC7D,kDAA2D;AAC3D,sDAA+D;AAC/D,gDAAyD;AACzD,mDAAqD;AACrD,iEAA2D;AAC3D,+DAGkC;AAClC,
|
|
1
|
+
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/cli/entry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export type EnsureIdxBinaryResult = {
|
|
2
2
|
scriptStatus: "unchanged" | "installed" | "repaired";
|
|
3
3
|
pathUpdated: boolean;
|
|
4
|
+
launchMode: "global-wrapper" | "repair-wrapper";
|
|
5
|
+
targetPath: string | null;
|
|
4
6
|
};
|
|
5
7
|
export declare function getNpmGlobalBinPath(): string | null;
|
|
6
8
|
/**
|
package/dist/core/idx-binary.js
CHANGED
|
@@ -10,11 +10,39 @@ const node_fs_1 = require("node:fs");
|
|
|
10
10
|
const node_child_process_1 = require("node:child_process");
|
|
11
11
|
const node_os_1 = __importDefault(require("node:os"));
|
|
12
12
|
const node_path_1 = __importDefault(require("node:path"));
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
function shellQuote(value) {
|
|
14
|
+
return `'${value.replace(/'/g, `'\"'\"'`)}'`;
|
|
15
|
+
}
|
|
16
|
+
function escapeRegExp(value) {
|
|
17
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
18
|
+
}
|
|
19
|
+
function withMacPathAliases(value) {
|
|
20
|
+
if (value.startsWith("/private/")) {
|
|
21
|
+
return [value, value.slice("/private".length)];
|
|
22
|
+
}
|
|
23
|
+
if (value.startsWith("/var/")) {
|
|
24
|
+
return [value, `/private${value}`];
|
|
25
|
+
}
|
|
26
|
+
return [value];
|
|
27
|
+
}
|
|
28
|
+
function isSelfRecursiveShellLauncher(content, binaryPaths) {
|
|
29
|
+
const candidates = [...new Set(binaryPaths.flatMap(withMacPathAliases))];
|
|
30
|
+
return candidates.some((candidate) => {
|
|
31
|
+
const escapedPath = escapeRegExp(candidate);
|
|
32
|
+
const recursiveExec = new RegExp(`^\\s*exec\\s+(?:${escapedPath}|'${escapedPath}'|"${escapedPath}")(?:\\s+"\\$@")?\\s*$`, "m");
|
|
33
|
+
return recursiveExec.test(content);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
16
36
|
function thinWrapperContent(binaryPath) {
|
|
17
|
-
return `#!/bin/sh\nexec ${binaryPath} "$@"\n`;
|
|
37
|
+
return `#!/bin/sh\nexec ${shellQuote(binaryPath)} "$@"\n`;
|
|
38
|
+
}
|
|
39
|
+
function repairWrapperContent() {
|
|
40
|
+
return `#!/bin/sh
|
|
41
|
+
echo "idx: global indexer-cli installation was not found or is not executable." >&2
|
|
42
|
+
echo "Run: idx setup" >&2
|
|
43
|
+
echo "Or: npm install -g indexer-cli" >&2
|
|
44
|
+
exit 1
|
|
45
|
+
`;
|
|
18
46
|
}
|
|
19
47
|
function getNpmGlobalBinPath() {
|
|
20
48
|
try {
|
|
@@ -22,14 +50,46 @@ function getNpmGlobalBinPath() {
|
|
|
22
50
|
encoding: "utf8",
|
|
23
51
|
}).trim();
|
|
24
52
|
const binPath = node_path_1.default.join(prefix, "bin", "indexer-cli");
|
|
25
|
-
|
|
26
|
-
(0, node_fs_1.
|
|
27
|
-
|
|
53
|
+
(0, node_fs_1.accessSync)(binPath, node_fs_1.constants.F_OK | node_fs_1.constants.X_OK);
|
|
54
|
+
const realBinPath = (0, node_fs_1.realpathSync)(binPath);
|
|
55
|
+
const launcherContent = (0, node_fs_1.readFileSync)(binPath, "utf8");
|
|
56
|
+
if (isSelfRecursiveShellLauncher(launcherContent, [binPath, realBinPath])) {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
// Return the symlink, not its realpath — realpath may point into an
|
|
60
|
+
// ephemeral temp dir (/var/folders/…/T/) that macOS periodically cleans.
|
|
61
|
+
return binPath;
|
|
28
62
|
}
|
|
29
63
|
catch {
|
|
30
64
|
return null;
|
|
31
65
|
}
|
|
32
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Resolve the shell profile file to write PATH exports into.
|
|
69
|
+
* Prefers the profile matching $SHELL, falls back to platform defaults.
|
|
70
|
+
*/
|
|
71
|
+
function resolveProfileForPathExport(homeDir) {
|
|
72
|
+
const shell = process.env.SHELL ?? "";
|
|
73
|
+
if (shell.includes("zsh")) {
|
|
74
|
+
return node_path_1.default.join(homeDir, ".zshrc");
|
|
75
|
+
}
|
|
76
|
+
if (shell.includes("bash")) {
|
|
77
|
+
return node_path_1.default.join(homeDir, ".bashrc");
|
|
78
|
+
}
|
|
79
|
+
const candidates = node_os_1.default.platform() === "darwin"
|
|
80
|
+
? [node_path_1.default.join(homeDir, ".zshrc"), node_path_1.default.join(homeDir, ".bashrc")]
|
|
81
|
+
: [node_path_1.default.join(homeDir, ".bashrc"), node_path_1.default.join(homeDir, ".zshrc")];
|
|
82
|
+
for (const candidate of candidates) {
|
|
83
|
+
try {
|
|
84
|
+
(0, node_fs_1.accessSync)(candidate, node_fs_1.constants.F_OK);
|
|
85
|
+
return candidate;
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
// skip missing profile
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return node_path_1.default.join(homeDir, ".profile");
|
|
92
|
+
}
|
|
33
93
|
/**
|
|
34
94
|
* Ensure ~/.local/bin/idx exists and is executable.
|
|
35
95
|
* Adds ~/.local/bin to PATH via shell profile if missing.
|
|
@@ -41,14 +101,19 @@ function ensureIdxBinary() {
|
|
|
41
101
|
const localBinDir = node_path_1.default.join(homeDir, ".local", "bin");
|
|
42
102
|
const scriptPath = node_path_1.default.join(localBinDir, "idx");
|
|
43
103
|
const globalPath = getNpmGlobalBinPath();
|
|
104
|
+
const launchMode = globalPath ? "global-wrapper" : "repair-wrapper";
|
|
44
105
|
const expectedContent = globalPath
|
|
45
106
|
? thinWrapperContent(globalPath)
|
|
46
|
-
:
|
|
107
|
+
: repairWrapperContent();
|
|
47
108
|
let scriptStatus = "installed";
|
|
48
109
|
try {
|
|
49
110
|
(0, node_fs_1.accessSync)(scriptPath, node_fs_1.constants.F_OK);
|
|
111
|
+
const scriptMeta = (0, node_fs_1.lstatSync)(scriptPath);
|
|
112
|
+
if (scriptMeta.isSymbolicLink()) {
|
|
113
|
+
scriptStatus = "repaired";
|
|
114
|
+
}
|
|
50
115
|
const existing = (0, node_fs_1.readFileSync)(scriptPath, "utf8");
|
|
51
|
-
if (existing === expectedContent) {
|
|
116
|
+
if (scriptStatus !== "repaired" && existing === expectedContent) {
|
|
52
117
|
try {
|
|
53
118
|
(0, node_fs_1.accessSync)(scriptPath, node_fs_1.constants.X_OK);
|
|
54
119
|
scriptStatus = "unchanged";
|
|
@@ -66,28 +131,21 @@ function ensureIdxBinary() {
|
|
|
66
131
|
}
|
|
67
132
|
if (scriptStatus !== "unchanged") {
|
|
68
133
|
(0, node_fs_1.mkdirSync)(localBinDir, { recursive: true });
|
|
134
|
+
try {
|
|
135
|
+
if ((0, node_fs_1.lstatSync)(scriptPath).isSymbolicLink()) {
|
|
136
|
+
(0, node_fs_1.rmSync)(scriptPath, { force: true });
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
catch { }
|
|
69
140
|
(0, node_fs_1.writeFileSync)(scriptPath, expectedContent, "utf8");
|
|
70
141
|
(0, node_fs_1.chmodSync)(scriptPath, 0o755);
|
|
71
142
|
}
|
|
72
143
|
const pathEntries = (process.env.PATH ?? "").split(":");
|
|
73
144
|
let pathUpdated = false;
|
|
74
145
|
if (pathEntries.includes(localBinDir)) {
|
|
75
|
-
return { scriptStatus, pathUpdated };
|
|
76
|
-
}
|
|
77
|
-
const candidates = node_os_1.default.platform() === "darwin"
|
|
78
|
-
? [node_path_1.default.join(homeDir, ".zshrc"), node_path_1.default.join(homeDir, ".bashrc")]
|
|
79
|
-
: [node_path_1.default.join(homeDir, ".bashrc"), node_path_1.default.join(homeDir, ".zshrc")];
|
|
80
|
-
let profile = candidates[0];
|
|
81
|
-
for (const candidate of candidates) {
|
|
82
|
-
try {
|
|
83
|
-
(0, node_fs_1.accessSync)(candidate, node_fs_1.constants.F_OK);
|
|
84
|
-
profile = candidate;
|
|
85
|
-
break;
|
|
86
|
-
}
|
|
87
|
-
catch {
|
|
88
|
-
// skip missing profile
|
|
89
|
-
}
|
|
146
|
+
return { scriptStatus, pathUpdated, launchMode, targetPath: globalPath };
|
|
90
147
|
}
|
|
148
|
+
const profile = resolveProfileForPathExport(homeDir);
|
|
91
149
|
const exportLine = 'export PATH="$HOME/.local/bin:$PATH"';
|
|
92
150
|
const existing = (() => {
|
|
93
151
|
try {
|
|
@@ -102,7 +160,7 @@ function ensureIdxBinary() {
|
|
|
102
160
|
(0, node_fs_1.writeFileSync)(profile, `${existing}${prefix}${exportLine}\n`, "utf8");
|
|
103
161
|
pathUpdated = true;
|
|
104
162
|
}
|
|
105
|
-
return { scriptStatus, pathUpdated };
|
|
163
|
+
return { scriptStatus, pathUpdated, launchMode, targetPath: globalPath };
|
|
106
164
|
}
|
|
107
165
|
/** Install indexer-cli globally via npm. Returns true on success. */
|
|
108
166
|
function installGlobal() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idx-binary.js","sourceRoot":"","sources":["../../src/core/idx-binary.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"idx-binary.js","sourceRoot":"","sources":["../../src/core/idx-binary.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,21 @@
|
|
|
1
|
-
export
|
|
1
|
+
export type SkipAutoUpdateReason = "unsupported-install-method" | "non-tty" | "ci" | "flag-disabled" | "update-lock-held" | null;
|
|
2
|
+
export type AutoUpdateResult = {
|
|
3
|
+
kind: "skipped";
|
|
4
|
+
reason: Exclude<SkipAutoUpdateReason, null>;
|
|
5
|
+
} | {
|
|
6
|
+
kind: "no-update";
|
|
7
|
+
} | {
|
|
8
|
+
kind: "updated";
|
|
9
|
+
previousVersion: string;
|
|
10
|
+
installedVersion: string;
|
|
11
|
+
} | {
|
|
12
|
+
kind: "failed";
|
|
13
|
+
message: string;
|
|
14
|
+
};
|
|
2
15
|
export type InstallMethod = "npx" | "npm-global" | "pnpm-global" | "yarn-global" | "unknown";
|
|
3
16
|
export declare function detectInstallMethod(): InstallMethod;
|
|
17
|
+
export declare function getAutoUpdateSkipReason(): SkipAutoUpdateReason;
|
|
4
18
|
export declare function shouldSkipAutoUpdate(): boolean;
|
|
5
|
-
export declare function
|
|
19
|
+
export declare function performAutoUpdateAfterCommand(): Promise<AutoUpdateResult>;
|
|
20
|
+
export declare function performManualUpdate(): Promise<AutoUpdateResult>;
|
|
6
21
|
export declare function checkForUpdates(): Promise<void>;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AUTO_UPDATE_RESTART_CODE = void 0;
|
|
4
3
|
exports.detectInstallMethod = detectInstallMethod;
|
|
4
|
+
exports.getAutoUpdateSkipReason = getAutoUpdateSkipReason;
|
|
5
5
|
exports.shouldSkipAutoUpdate = shouldSkipAutoUpdate;
|
|
6
|
-
exports.
|
|
6
|
+
exports.performAutoUpdateAfterCommand = performAutoUpdateAfterCommand;
|
|
7
|
+
exports.performManualUpdate = performManualUpdate;
|
|
7
8
|
exports.checkForUpdates = checkForUpdates;
|
|
8
9
|
const node_child_process_1 = require("node:child_process");
|
|
9
10
|
const node_fs_1 = require("node:fs");
|
|
@@ -15,7 +16,6 @@ const CACHE_DIR = (0, node_path_1.join)((0, node_os_1.homedir)(), ".indexer-cli"
|
|
|
15
16
|
const UPDATE_LOCK_DIR = (0, node_path_1.join)(CACHE_DIR, ".update-lock");
|
|
16
17
|
const CHECK_INTERVAL_MS = 24 * 60 * 60 * 1000; // 24 hours
|
|
17
18
|
const STALE_LOCK_MS = 5 * 60 * 1000;
|
|
18
|
-
exports.AUTO_UPDATE_RESTART_CODE = 42;
|
|
19
19
|
async function fetchLatestVersion() {
|
|
20
20
|
const response = await fetch("https://registry.npmjs.org/indexer-cli/latest");
|
|
21
21
|
const data = (await response.json());
|
|
@@ -48,6 +48,32 @@ function isNewerVersion(current, latest) {
|
|
|
48
48
|
}
|
|
49
49
|
return false;
|
|
50
50
|
}
|
|
51
|
+
function tryGetNpmGlobalPrefix() {
|
|
52
|
+
try {
|
|
53
|
+
const prefix = (0, node_child_process_1.execFileSync)("npm", ["config", "get", "prefix"], {
|
|
54
|
+
encoding: "utf8",
|
|
55
|
+
}).trim();
|
|
56
|
+
if (prefix)
|
|
57
|
+
return prefix;
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
function tryGetNpmGlobalRoot() {
|
|
65
|
+
try {
|
|
66
|
+
const root = (0, node_child_process_1.execFileSync)("npm", ["root", "-g"], {
|
|
67
|
+
encoding: "utf8",
|
|
68
|
+
}).trim();
|
|
69
|
+
if (root)
|
|
70
|
+
return root;
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
51
77
|
function detectInstallMethod() {
|
|
52
78
|
try {
|
|
53
79
|
const execPath = process.argv[1];
|
|
@@ -60,66 +86,89 @@ function detectInstallMethod() {
|
|
|
60
86
|
return "pnpm-global";
|
|
61
87
|
if (resolved.includes("/.yarn/global"))
|
|
62
88
|
return "yarn-global";
|
|
63
|
-
|
|
89
|
+
const npmPrefix = tryGetNpmGlobalPrefix();
|
|
90
|
+
if (npmPrefix) {
|
|
91
|
+
const expectedBinPath = (0, node_path_1.join)(npmPrefix, "bin");
|
|
92
|
+
if (resolved.startsWith(expectedBinPath))
|
|
93
|
+
return "npm-global";
|
|
94
|
+
return "unknown";
|
|
95
|
+
}
|
|
96
|
+
return "unknown";
|
|
64
97
|
}
|
|
65
98
|
catch {
|
|
66
99
|
return "unknown";
|
|
67
100
|
}
|
|
68
101
|
}
|
|
69
|
-
function
|
|
70
|
-
if (process.env.INDEXER_CLI_AUTO_UPDATE_ATTEMPTED === "1")
|
|
71
|
-
return true;
|
|
102
|
+
function getAutoUpdateSkipReason() {
|
|
72
103
|
if (detectInstallMethod() !== "npm-global")
|
|
73
|
-
return
|
|
104
|
+
return "unsupported-install-method";
|
|
74
105
|
if (!process.stdout.isTTY)
|
|
75
|
-
return
|
|
106
|
+
return "non-tty";
|
|
76
107
|
if (process.env.CI === "true" || process.env.CI === "1")
|
|
77
|
-
return
|
|
108
|
+
return "ci";
|
|
78
109
|
if (process.argv.includes("--no-auto-update"))
|
|
79
|
-
return
|
|
80
|
-
return
|
|
110
|
+
return "flag-disabled";
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
function shouldSkipAutoUpdate() {
|
|
114
|
+
return getAutoUpdateSkipReason() !== null;
|
|
115
|
+
}
|
|
116
|
+
function getUpdateSkipReason(options) {
|
|
117
|
+
if (detectInstallMethod() !== "npm-global")
|
|
118
|
+
return "unsupported-install-method";
|
|
119
|
+
if (!options.ignoreTty && !process.stdout.isTTY)
|
|
120
|
+
return "non-tty";
|
|
121
|
+
if (process.env.CI === "true" || process.env.CI === "1")
|
|
122
|
+
return "ci";
|
|
123
|
+
if (process.argv.includes("--no-auto-update"))
|
|
124
|
+
return "flag-disabled";
|
|
125
|
+
return null;
|
|
81
126
|
}
|
|
82
127
|
function readInstalledPackageVersion() {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
const packageJsonPath = (0, node_path_1.join)(binDir, "..", "lib", "node_modules", "indexer-cli", "package.json");
|
|
92
|
-
if (!(0, node_fs_1.existsSync)(packageJsonPath)) {
|
|
93
|
-
throw new Error("Cannot locate installed package.json");
|
|
128
|
+
const npmRoot = tryGetNpmGlobalRoot();
|
|
129
|
+
if (npmRoot) {
|
|
130
|
+
const candidate = (0, node_path_1.join)(npmRoot, "indexer-cli", "package.json");
|
|
131
|
+
if ((0, node_fs_1.existsSync)(candidate)) {
|
|
132
|
+
const data = JSON.parse((0, node_fs_1.readFileSync)(candidate, "utf-8"));
|
|
133
|
+
if (data.version)
|
|
134
|
+
return data.version;
|
|
135
|
+
}
|
|
94
136
|
}
|
|
95
|
-
const
|
|
96
|
-
if (
|
|
97
|
-
|
|
137
|
+
const execPath = process.argv[1];
|
|
138
|
+
if (execPath) {
|
|
139
|
+
const binDir = (0, node_path_1.dirname)(execPath);
|
|
140
|
+
const legacyCandidate = (0, node_path_1.join)(binDir, "..", "lib", "node_modules", "indexer-cli", "package.json");
|
|
141
|
+
if ((0, node_fs_1.existsSync)(legacyCandidate)) {
|
|
142
|
+
const data = JSON.parse((0, node_fs_1.readFileSync)(legacyCandidate, "utf-8"));
|
|
143
|
+
if (data.version)
|
|
144
|
+
return data.version;
|
|
145
|
+
}
|
|
98
146
|
}
|
|
99
|
-
|
|
147
|
+
throw new Error("Cannot locate installed package.json");
|
|
100
148
|
}
|
|
101
149
|
function releaseUpdateLock(lockHeld) {
|
|
102
150
|
if (!lockHeld)
|
|
103
151
|
return;
|
|
104
152
|
(0, node_fs_1.rmSync)(UPDATE_LOCK_DIR, { recursive: true, force: true });
|
|
105
153
|
}
|
|
106
|
-
async function
|
|
107
|
-
|
|
108
|
-
|
|
154
|
+
async function runUpdate(options = {}) {
|
|
155
|
+
const skipReason = getUpdateSkipReason(options);
|
|
156
|
+
if (skipReason !== null) {
|
|
157
|
+
return { kind: "skipped", reason: skipReason };
|
|
158
|
+
}
|
|
109
159
|
let lockHeld = false;
|
|
110
160
|
try {
|
|
111
161
|
const now = Date.now();
|
|
112
162
|
const cache = readCache();
|
|
113
|
-
if (cache && !isNewerVersion(version_js_1.PACKAGE_VERSION, cache.latestVersion)) {
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
163
|
let latest = cache?.latestVersion;
|
|
117
|
-
if (
|
|
164
|
+
if (options.forceCheck === true ||
|
|
165
|
+
!cache ||
|
|
166
|
+
now - cache.lastChecked >= CHECK_INTERVAL_MS) {
|
|
118
167
|
latest = await fetchLatestVersion();
|
|
119
168
|
writeCache({ lastChecked: now, latestVersion: latest });
|
|
120
169
|
}
|
|
121
170
|
if (!latest || !isNewerVersion(version_js_1.PACKAGE_VERSION, latest)) {
|
|
122
|
-
return;
|
|
171
|
+
return { kind: "no-update" };
|
|
123
172
|
}
|
|
124
173
|
if (!(0, node_fs_1.existsSync)(CACHE_DIR)) {
|
|
125
174
|
(0, node_fs_1.mkdirSync)(CACHE_DIR, { recursive: true });
|
|
@@ -135,7 +184,7 @@ async function performAutoUpdate() {
|
|
|
135
184
|
lockHeld = true;
|
|
136
185
|
}
|
|
137
186
|
catch {
|
|
138
|
-
return;
|
|
187
|
+
return { kind: "skipped", reason: "update-lock-held" };
|
|
139
188
|
}
|
|
140
189
|
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(UPDATE_LOCK_DIR, "owner.json"), JSON.stringify({ pid: process.pid, timestamp: Date.now() }));
|
|
141
190
|
console.log(`Updating indexer-cli ${version_js_1.PACKAGE_VERSION} → ${latest}...`);
|
|
@@ -144,21 +193,35 @@ async function performAutoUpdate() {
|
|
|
144
193
|
});
|
|
145
194
|
const installedVersion = readInstalledPackageVersion();
|
|
146
195
|
if (installedVersion === version_js_1.PACKAGE_VERSION) {
|
|
147
|
-
|
|
196
|
+
const message = "Auto-update warning: indexer-cli version did not change after install.";
|
|
197
|
+
console.error(message);
|
|
148
198
|
releaseUpdateLock(lockHeld);
|
|
149
199
|
lockHeld = false;
|
|
150
|
-
return;
|
|
200
|
+
return { kind: "failed", message };
|
|
151
201
|
}
|
|
152
202
|
releaseUpdateLock(lockHeld);
|
|
153
203
|
lockHeld = false;
|
|
154
|
-
console.log(
|
|
155
|
-
|
|
204
|
+
console.log(`Updated indexer-cli ${version_js_1.PACKAGE_VERSION} → ${installedVersion}.`);
|
|
205
|
+
console.log("The new version will be used on the next run.");
|
|
206
|
+
return {
|
|
207
|
+
kind: "updated",
|
|
208
|
+
previousVersion: version_js_1.PACKAGE_VERSION,
|
|
209
|
+
installedVersion,
|
|
210
|
+
};
|
|
156
211
|
}
|
|
157
|
-
catch {
|
|
158
|
-
|
|
212
|
+
catch (error) {
|
|
213
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
214
|
+
console.error(`Auto-update warning: failed to update indexer-cli automatically: ${message}`);
|
|
159
215
|
releaseUpdateLock(lockHeld);
|
|
216
|
+
return { kind: "failed", message };
|
|
160
217
|
}
|
|
161
218
|
}
|
|
219
|
+
async function performAutoUpdateAfterCommand() {
|
|
220
|
+
return runUpdate();
|
|
221
|
+
}
|
|
222
|
+
async function performManualUpdate() {
|
|
223
|
+
return runUpdate({ forceCheck: true, ignoreTty: true });
|
|
224
|
+
}
|
|
162
225
|
function showUpdateNotification(current, latest, method = "npm-global") {
|
|
163
226
|
const updateCommands = {
|
|
164
227
|
npx: "",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-check.js","sourceRoot":"","sources":["../../src/core/update-check.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"update-check.js","sourceRoot":"","sources":["../../src/core/update-check.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "indexer-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.1",
|
|
4
4
|
"description": "Lightweight CLI project indexer with semantic search via Ollama",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
"test:cli:gdscript": "vitest run tests/cli/commands-gdscript.test.ts --testTimeout=180000 --no-file-parallelism",
|
|
35
35
|
"test:cli:csharp": "vitest run tests/cli/commands-csharp.test.ts --testTimeout=180000 --no-file-parallelism",
|
|
36
36
|
"test:cli:ruby": "vitest run tests/cli/commands-ruby.test.ts --testTimeout=180000 --no-file-parallelism",
|
|
37
|
+
"smoke-test": "bash scripts/smoke-test-package.sh",
|
|
37
38
|
"publish-npm": "bash scripts/publish.sh"
|
|
38
39
|
},
|
|
39
40
|
"dependencies": {
|