@colbymchenry/codegraph 0.7.2 → 0.7.4
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 +57 -0
- package/dist/bin/codegraph.js +39 -4
- package/dist/bin/codegraph.js.map +1 -1
- package/dist/bin/node-version-check.d.ts +17 -0
- package/dist/bin/node-version-check.d.ts.map +1 -0
- package/dist/bin/node-version-check.js +39 -0
- package/dist/bin/node-version-check.js.map +1 -0
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +46 -18
- package/dist/context/index.js.map +1 -1
- package/dist/db/index.d.ts +9 -2
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +17 -7
- package/dist/db/index.js.map +1 -1
- package/dist/db/migrations.d.ts +1 -1
- package/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/migrations.js +11 -1
- package/dist/db/migrations.js.map +1 -1
- package/dist/db/queries.d.ts +16 -0
- package/dist/db/queries.d.ts.map +1 -1
- package/dist/db/queries.js +144 -7
- package/dist/db/queries.js.map +1 -1
- package/dist/db/schema.sql +6 -3
- package/dist/db/sqlite-adapter.d.ts +23 -4
- package/dist/db/sqlite-adapter.d.ts.map +1 -1
- package/dist/db/sqlite-adapter.js +51 -11
- package/dist/db/sqlite-adapter.js.map +1 -1
- package/dist/extraction/grammars.d.ts +1 -1
- package/dist/extraction/grammars.d.ts.map +1 -1
- package/dist/extraction/grammars.js +12 -4
- package/dist/extraction/grammars.js.map +1 -1
- package/dist/extraction/index.d.ts +20 -0
- package/dist/extraction/index.d.ts.map +1 -1
- package/dist/extraction/index.js +111 -7
- package/dist/extraction/index.js.map +1 -1
- package/dist/extraction/languages/index.d.ts.map +1 -1
- package/dist/extraction/languages/index.js +2 -0
- package/dist/extraction/languages/index.js.map +1 -1
- package/dist/extraction/languages/scala.d.ts +3 -0
- package/dist/extraction/languages/scala.d.ts.map +1 -0
- package/dist/extraction/languages/scala.js +139 -0
- package/dist/extraction/languages/scala.js.map +1 -0
- package/dist/extraction/parse-worker.js +39 -2
- package/dist/extraction/parse-worker.js.map +1 -1
- package/dist/extraction/svelte-extractor.d.ts +9 -0
- package/dist/extraction/svelte-extractor.d.ts.map +1 -1
- package/dist/extraction/svelte-extractor.js +42 -0
- package/dist/extraction/svelte-extractor.js.map +1 -1
- package/dist/extraction/tree-sitter.d.ts +32 -16
- package/dist/extraction/tree-sitter.d.ts.map +1 -1
- package/dist/extraction/tree-sitter.js +266 -67
- package/dist/extraction/tree-sitter.js.map +1 -1
- package/dist/extraction/vue-extractor.d.ts +36 -0
- package/dist/extraction/vue-extractor.d.ts.map +1 -0
- package/dist/extraction/vue-extractor.js +163 -0
- package/dist/extraction/vue-extractor.js.map +1 -0
- package/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
- package/dist/graph/traversal.d.ts.map +1 -1
- package/dist/graph/traversal.js +7 -1
- package/dist/graph/traversal.js.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +6 -1
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/server-instructions.d.ts +19 -0
- package/dist/mcp/server-instructions.d.ts.map +1 -0
- package/dist/mcp/server-instructions.js +59 -0
- package/dist/mcp/server-instructions.js.map +1 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +46 -8
- package/dist/mcp/tools.js.map +1 -1
- package/dist/resolution/frameworks/csharp.d.ts.map +1 -1
- package/dist/resolution/frameworks/csharp.js +72 -78
- package/dist/resolution/frameworks/csharp.js.map +1 -1
- package/dist/resolution/frameworks/express.d.ts.map +1 -1
- package/dist/resolution/frameworks/express.js +47 -26
- package/dist/resolution/frameworks/express.js.map +1 -1
- package/dist/resolution/frameworks/go.d.ts.map +1 -1
- package/dist/resolution/frameworks/go.js +41 -72
- package/dist/resolution/frameworks/go.js.map +1 -1
- package/dist/resolution/frameworks/index.d.ts +7 -0
- package/dist/resolution/frameworks/index.d.ts.map +1 -1
- package/dist/resolution/frameworks/index.js +13 -1
- package/dist/resolution/frameworks/index.js.map +1 -1
- package/dist/resolution/frameworks/java.d.ts.map +1 -1
- package/dist/resolution/frameworks/java.js +36 -40
- package/dist/resolution/frameworks/java.js.map +1 -1
- package/dist/resolution/frameworks/laravel.d.ts.map +1 -1
- package/dist/resolution/frameworks/laravel.js +94 -44
- package/dist/resolution/frameworks/laravel.js.map +1 -1
- package/dist/resolution/frameworks/python.d.ts.map +1 -1
- package/dist/resolution/frameworks/python.js +163 -151
- package/dist/resolution/frameworks/python.js.map +1 -1
- package/dist/resolution/frameworks/react.d.ts.map +1 -1
- package/dist/resolution/frameworks/react.js +3 -2
- package/dist/resolution/frameworks/react.js.map +1 -1
- package/dist/resolution/frameworks/ruby.d.ts.map +1 -1
- package/dist/resolution/frameworks/ruby.js +39 -91
- package/dist/resolution/frameworks/ruby.js.map +1 -1
- package/dist/resolution/frameworks/rust.d.ts.map +1 -1
- package/dist/resolution/frameworks/rust.js +50 -43
- package/dist/resolution/frameworks/rust.js.map +1 -1
- package/dist/resolution/frameworks/svelte.d.ts.map +1 -1
- package/dist/resolution/frameworks/svelte.js +3 -2
- package/dist/resolution/frameworks/svelte.js.map +1 -1
- package/dist/resolution/frameworks/swift.d.ts.map +1 -1
- package/dist/resolution/frameworks/swift.js +54 -46
- package/dist/resolution/frameworks/swift.js.map +1 -1
- package/dist/resolution/frameworks/vue.d.ts +9 -0
- package/dist/resolution/frameworks/vue.d.ts.map +1 -0
- package/dist/resolution/frameworks/vue.js +306 -0
- package/dist/resolution/frameworks/vue.js.map +1 -0
- package/dist/resolution/import-resolver.d.ts +17 -1
- package/dist/resolution/import-resolver.d.ts.map +1 -1
- package/dist/resolution/import-resolver.js +256 -46
- package/dist/resolution/import-resolver.js.map +1 -1
- package/dist/resolution/index.d.ts +8 -0
- package/dist/resolution/index.d.ts.map +1 -1
- package/dist/resolution/index.js +60 -1
- package/dist/resolution/index.js.map +1 -1
- package/dist/resolution/name-matcher.d.ts.map +1 -1
- package/dist/resolution/name-matcher.js +21 -0
- package/dist/resolution/name-matcher.js.map +1 -1
- package/dist/resolution/path-aliases.d.ts +68 -0
- package/dist/resolution/path-aliases.d.ts.map +1 -0
- package/dist/resolution/path-aliases.js +238 -0
- package/dist/resolution/path-aliases.js.map +1 -0
- package/dist/resolution/strip-comments.d.ts +27 -0
- package/dist/resolution/strip-comments.d.ts.map +1 -0
- package/dist/resolution/strip-comments.js +441 -0
- package/dist/resolution/strip-comments.js.map +1 -0
- package/dist/resolution/types.d.ts +54 -3
- package/dist/resolution/types.d.ts.map +1 -1
- package/dist/search/query-parser.d.ts +57 -0
- package/dist/search/query-parser.d.ts.map +1 -0
- package/dist/search/query-parser.js +177 -0
- package/dist/search/query-parser.js.map +1 -0
- package/dist/types.d.ts +11 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +68 -1
- package/dist/types.js.map +1 -1
- package/package.json +5 -2
- package/dist/installer/banner.d.ts +0 -40
- package/dist/installer/banner.d.ts.map +0 -1
- package/dist/installer/banner.js +0 -165
- package/dist/installer/banner.js.map +0 -1
- package/dist/installer/prompts.d.ts +0 -18
- package/dist/installer/prompts.d.ts.map +0 -1
- package/dist/installer/prompts.js +0 -113
- package/dist/installer/prompts.js.map +0 -1
- package/dist/sentry.d.ts +0 -24
- package/dist/sentry.d.ts.map +0 -1
- package/dist/sentry.js +0 -166
- package/dist/sentry.js.map +0 -1
- package/dist/sync/git-hooks.d.ts +0 -66
- package/dist/sync/git-hooks.d.ts.map +0 -1
- package/dist/sync/git-hooks.js +0 -281
- package/dist/sync/git-hooks.js.map +0 -1
- package/dist/vectors/embedder.d.ts +0 -140
- package/dist/vectors/embedder.d.ts.map +0 -1
- package/dist/vectors/embedder.js +0 -338
- package/dist/vectors/embedder.js.map +0 -1
- package/dist/vectors/index.d.ts +0 -9
- package/dist/vectors/index.d.ts.map +0 -1
- package/dist/vectors/index.js +0 -20
- package/dist/vectors/index.js.map +0 -1
- package/dist/vectors/manager.d.ts +0 -119
- package/dist/vectors/manager.d.ts.map +0 -1
- package/dist/vectors/manager.js +0 -274
- package/dist/vectors/manager.js.map +0 -1
- package/dist/vectors/search.d.ts +0 -134
- package/dist/vectors/search.d.ts.map +0 -1
- package/dist/vectors/search.js +0 -411
- package/dist/vectors/search.js.map +0 -1
- package/dist/visualizer/public/index.html +0 -1994
- package/dist/visualizer/server.d.ts +0 -46
- package/dist/visualizer/server.d.ts.map +0 -1
- package/dist/visualizer/server.js +0 -491
- package/dist/visualizer/server.js.map +0 -1
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* User prompts for the CodeGraph installer
|
|
4
|
-
* Uses built-in readline to avoid ESM issues with inquirer
|
|
5
|
-
*/
|
|
6
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
-
if (k2 === undefined) k2 = k;
|
|
8
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
-
}
|
|
12
|
-
Object.defineProperty(o, k2, desc);
|
|
13
|
-
}) : (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
o[k2] = m[k];
|
|
16
|
-
}));
|
|
17
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
-
}) : function(o, v) {
|
|
20
|
-
o["default"] = v;
|
|
21
|
-
});
|
|
22
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
-
var ownKeys = function(o) {
|
|
24
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
-
var ar = [];
|
|
26
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
-
return ar;
|
|
28
|
-
};
|
|
29
|
-
return ownKeys(o);
|
|
30
|
-
};
|
|
31
|
-
return function (mod) {
|
|
32
|
-
if (mod && mod.__esModule) return mod;
|
|
33
|
-
var result = {};
|
|
34
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
-
__setModuleDefault(result, mod);
|
|
36
|
-
return result;
|
|
37
|
-
};
|
|
38
|
-
})();
|
|
39
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
-
exports.promptInstallLocation = promptInstallLocation;
|
|
41
|
-
exports.promptAutoAllow = promptAutoAllow;
|
|
42
|
-
exports.promptConfirm = promptConfirm;
|
|
43
|
-
const readline = __importStar(require("readline"));
|
|
44
|
-
const banner_1 = require("./banner");
|
|
45
|
-
/**
|
|
46
|
-
* Create a readline interface for prompts
|
|
47
|
-
*/
|
|
48
|
-
function createInterface() {
|
|
49
|
-
return readline.createInterface({
|
|
50
|
-
input: process.stdin,
|
|
51
|
-
output: process.stdout,
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Prompt the user with a question and return their answer
|
|
56
|
-
*/
|
|
57
|
-
function prompt(rl, question) {
|
|
58
|
-
return new Promise((resolve) => {
|
|
59
|
-
rl.question(question, (answer) => {
|
|
60
|
-
resolve(answer.trim());
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Prompt for installation location (global or local)
|
|
66
|
-
*/
|
|
67
|
-
async function promptInstallLocation() {
|
|
68
|
-
const rl = createInterface();
|
|
69
|
-
console.log(banner_1.chalk.bold(' Where would you like to install?'));
|
|
70
|
-
console.log();
|
|
71
|
-
console.log(' 1) Global (~/.claude) - available in all projects');
|
|
72
|
-
console.log(' 2) Local (./.claude) - this project only');
|
|
73
|
-
console.log();
|
|
74
|
-
const answer = await prompt(rl, ' Choice [1]: ');
|
|
75
|
-
rl.close();
|
|
76
|
-
// Default to '1' if empty, parse the answer
|
|
77
|
-
const choice = answer === '' ? '1' : answer;
|
|
78
|
-
if (choice === '2') {
|
|
79
|
-
return 'local';
|
|
80
|
-
}
|
|
81
|
-
return 'global';
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Prompt for auto-allow permissions
|
|
85
|
-
*/
|
|
86
|
-
async function promptAutoAllow() {
|
|
87
|
-
const rl = createInterface();
|
|
88
|
-
console.log();
|
|
89
|
-
console.log(banner_1.chalk.bold(' Auto-allow CodeGraph commands?') + banner_1.chalk.dim(' (Skips permission prompts)'));
|
|
90
|
-
console.log();
|
|
91
|
-
console.log(' 1) Yes - auto-approve all codegraph_* tools');
|
|
92
|
-
console.log(' 2) No - ask for permission each time');
|
|
93
|
-
console.log();
|
|
94
|
-
const answer = await prompt(rl, ' Choice [1]: ');
|
|
95
|
-
rl.close();
|
|
96
|
-
// Default to '1' if empty
|
|
97
|
-
const choice = answer === '' ? '1' : answer;
|
|
98
|
-
return choice !== '2';
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Prompt for confirmation (yes/no)
|
|
102
|
-
*/
|
|
103
|
-
async function promptConfirm(message, defaultYes = true) {
|
|
104
|
-
const rl = createInterface();
|
|
105
|
-
const defaultStr = defaultYes ? 'Y/n' : 'y/N';
|
|
106
|
-
const answer = await prompt(rl, ` ${message} [${defaultStr}]: `);
|
|
107
|
-
rl.close();
|
|
108
|
-
if (answer === '') {
|
|
109
|
-
return defaultYes;
|
|
110
|
-
}
|
|
111
|
-
return answer.toLowerCase().startsWith('y');
|
|
112
|
-
}
|
|
113
|
-
//# sourceMappingURL=prompts.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/installer/prompts.ts"],"names":[],"mappings":"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"}
|
package/dist/sentry.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lightweight Sentry client for CodeGraph — uses the HTTP envelope API directly.
|
|
3
|
-
* No @sentry/node dependency, works in any Node.js environment.
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Initialize Sentry error reporting.
|
|
7
|
-
* Safe to call multiple times — subsequent calls update tags/release.
|
|
8
|
-
*
|
|
9
|
-
* Opt out by setting the environment variable CODEGRAPH_TELEMETRY=off
|
|
10
|
-
*/
|
|
11
|
-
export declare function initSentry({ processName, version }: {
|
|
12
|
-
processName: string;
|
|
13
|
-
version?: string;
|
|
14
|
-
}): void;
|
|
15
|
-
/**
|
|
16
|
-
* Send an error to Sentry with full stack trace and context.
|
|
17
|
-
* Fire-and-forget — never throws, never blocks.
|
|
18
|
-
*/
|
|
19
|
-
export declare function captureException(error: unknown, extra?: Record<string, unknown>): void;
|
|
20
|
-
/**
|
|
21
|
-
* Send a message-level event to Sentry (for logged errors without Error objects).
|
|
22
|
-
*/
|
|
23
|
-
export declare function captureMessage(message: string, context?: Record<string, unknown>): void;
|
|
24
|
-
//# sourceMappingURL=sentry.d.ts.map
|
package/dist/sentry.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sentry.d.ts","sourceRoot":"","sources":["../src/sentry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAeH;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,QAa7F;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QA6D/E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAuChF"}
|
package/dist/sentry.js
DELETED
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Lightweight Sentry client for CodeGraph — uses the HTTP envelope API directly.
|
|
4
|
-
* No @sentry/node dependency, works in any Node.js environment.
|
|
5
|
-
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.initSentry = initSentry;
|
|
8
|
-
exports.captureException = captureException;
|
|
9
|
-
exports.captureMessage = captureMessage;
|
|
10
|
-
const crypto_1 = require("crypto");
|
|
11
|
-
const DSN = 'https://9591f8aca69bcf98e9feb31544200b47@o1181972.ingest.us.sentry.io/4510840133713920';
|
|
12
|
-
const DSN_PARTS = DSN.match(/^https:\/\/([^@]+)@([^/]+)\/(.+)$/);
|
|
13
|
-
const PUBLIC_KEY = DSN_PARTS[1];
|
|
14
|
-
const HOST = DSN_PARTS[2];
|
|
15
|
-
const PROJECT_ID = DSN_PARTS[3];
|
|
16
|
-
const STORE_URL = `https://${HOST}/api/${PROJECT_ID}/envelope/`;
|
|
17
|
-
let _enabled = false;
|
|
18
|
-
let _release = 'codegraph@unknown';
|
|
19
|
-
let _tags = {};
|
|
20
|
-
/**
|
|
21
|
-
* Initialize Sentry error reporting.
|
|
22
|
-
* Safe to call multiple times — subsequent calls update tags/release.
|
|
23
|
-
*
|
|
24
|
-
* Opt out by setting the environment variable CODEGRAPH_TELEMETRY=off
|
|
25
|
-
*/
|
|
26
|
-
function initSentry({ processName, version }) {
|
|
27
|
-
// Skip in development/test environments
|
|
28
|
-
if (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test' || process.env.VITEST) {
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
// Respect user opt-out
|
|
32
|
-
const telemetry = process.env.CODEGRAPH_TELEMETRY?.toLowerCase();
|
|
33
|
-
if (telemetry === 'off' || telemetry === '0' || telemetry === 'false') {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
_enabled = true;
|
|
37
|
-
_release = `codegraph@${version ?? process.env.npm_package_version ?? 'unknown'}`;
|
|
38
|
-
_tags = { processName };
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Send an error to Sentry with full stack trace and context.
|
|
42
|
-
* Fire-and-forget — never throws, never blocks.
|
|
43
|
-
*/
|
|
44
|
-
function captureException(error, extra) {
|
|
45
|
-
if (!_enabled)
|
|
46
|
-
return;
|
|
47
|
-
try {
|
|
48
|
-
const err = error instanceof Error ? error : new Error(String(error));
|
|
49
|
-
const msg = err.message.toLowerCase();
|
|
50
|
-
// Filter non-actionable noise
|
|
51
|
-
if (msg.includes('pty') || msg.includes('terminal session'))
|
|
52
|
-
return;
|
|
53
|
-
if ((msg.includes('econnrefused') || msg.includes('econnreset')) && msg.includes('127.0.0.1'))
|
|
54
|
-
return;
|
|
55
|
-
const eventId = (0, crypto_1.createHash)('md5').update(`${Date.now()}-${Math.random()}`).digest('hex');
|
|
56
|
-
const timestamp = new Date().toISOString();
|
|
57
|
-
// Attach CodeGraphError context if available
|
|
58
|
-
const errorContext = { ...extra };
|
|
59
|
-
if ('code' in err && typeof err.code === 'string') {
|
|
60
|
-
errorContext.errorCode = err.code;
|
|
61
|
-
}
|
|
62
|
-
if ('context' in err && typeof err.context === 'object') {
|
|
63
|
-
Object.assign(errorContext, err.context);
|
|
64
|
-
}
|
|
65
|
-
const event = {
|
|
66
|
-
event_id: eventId,
|
|
67
|
-
timestamp,
|
|
68
|
-
platform: 'node',
|
|
69
|
-
level: 'error',
|
|
70
|
-
release: _release,
|
|
71
|
-
tags: _tags,
|
|
72
|
-
exception: {
|
|
73
|
-
values: [{
|
|
74
|
-
type: err.name,
|
|
75
|
-
value: err.message,
|
|
76
|
-
stacktrace: parseStack(err.stack),
|
|
77
|
-
}],
|
|
78
|
-
},
|
|
79
|
-
};
|
|
80
|
-
if (Object.keys(errorContext).length > 0) {
|
|
81
|
-
event.extra = errorContext;
|
|
82
|
-
}
|
|
83
|
-
const payload = JSON.stringify(event);
|
|
84
|
-
const envelope = [
|
|
85
|
-
JSON.stringify({ event_id: eventId, sent_at: timestamp, dsn: DSN }),
|
|
86
|
-
JSON.stringify({ type: 'event', length: payload.length }),
|
|
87
|
-
payload,
|
|
88
|
-
].join('\n') + '\n';
|
|
89
|
-
fetch(STORE_URL, {
|
|
90
|
-
method: 'POST',
|
|
91
|
-
headers: {
|
|
92
|
-
'Content-Type': 'application/x-sentry-envelope',
|
|
93
|
-
'X-Sentry-Auth': `Sentry sentry_version=7, sentry_key=${PUBLIC_KEY}`,
|
|
94
|
-
},
|
|
95
|
-
body: envelope,
|
|
96
|
-
}).catch(() => { });
|
|
97
|
-
}
|
|
98
|
-
catch {
|
|
99
|
-
// Never throw from error reporting
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Send a message-level event to Sentry (for logged errors without Error objects).
|
|
104
|
-
*/
|
|
105
|
-
function captureMessage(message, context) {
|
|
106
|
-
if (!_enabled)
|
|
107
|
-
return;
|
|
108
|
-
try {
|
|
109
|
-
const eventId = (0, crypto_1.createHash)('md5').update(`${Date.now()}-${Math.random()}`).digest('hex');
|
|
110
|
-
const timestamp = new Date().toISOString();
|
|
111
|
-
const event = {
|
|
112
|
-
event_id: eventId,
|
|
113
|
-
timestamp,
|
|
114
|
-
platform: 'node',
|
|
115
|
-
level: 'error',
|
|
116
|
-
release: _release,
|
|
117
|
-
tags: _tags,
|
|
118
|
-
message: { formatted: message },
|
|
119
|
-
};
|
|
120
|
-
if (context && Object.keys(context).length > 0) {
|
|
121
|
-
event.extra = context;
|
|
122
|
-
}
|
|
123
|
-
const payload = JSON.stringify(event);
|
|
124
|
-
const envelope = [
|
|
125
|
-
JSON.stringify({ event_id: eventId, sent_at: timestamp, dsn: DSN }),
|
|
126
|
-
JSON.stringify({ type: 'event', length: payload.length }),
|
|
127
|
-
payload,
|
|
128
|
-
].join('\n') + '\n';
|
|
129
|
-
fetch(STORE_URL, {
|
|
130
|
-
method: 'POST',
|
|
131
|
-
headers: {
|
|
132
|
-
'Content-Type': 'application/x-sentry-envelope',
|
|
133
|
-
'X-Sentry-Auth': `Sentry sentry_version=7, sentry_key=${PUBLIC_KEY}`,
|
|
134
|
-
},
|
|
135
|
-
body: envelope,
|
|
136
|
-
}).catch(() => { });
|
|
137
|
-
}
|
|
138
|
-
catch {
|
|
139
|
-
// Never throw from error reporting
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Parse a Node.js Error.stack string into Sentry's stacktrace format.
|
|
144
|
-
*/
|
|
145
|
-
function parseStack(stack) {
|
|
146
|
-
if (!stack)
|
|
147
|
-
return undefined;
|
|
148
|
-
const frames = stack
|
|
149
|
-
.split('\n')
|
|
150
|
-
.slice(1)
|
|
151
|
-
.map((line) => {
|
|
152
|
-
const match = line.match(/^\s+at\s+(?:(.+?)\s+\()?(.*?):(\d+):(\d+)\)?$/);
|
|
153
|
-
if (!match || !match[2] || !match[3] || !match[4])
|
|
154
|
-
return null;
|
|
155
|
-
return {
|
|
156
|
-
function: match[1] || '<anonymous>',
|
|
157
|
-
filename: match[2],
|
|
158
|
-
lineno: parseInt(match[3], 10),
|
|
159
|
-
colno: parseInt(match[4], 10),
|
|
160
|
-
};
|
|
161
|
-
})
|
|
162
|
-
.filter((f) => f !== null)
|
|
163
|
-
.reverse();
|
|
164
|
-
return frames.length > 0 ? { frames } : undefined;
|
|
165
|
-
}
|
|
166
|
-
//# sourceMappingURL=sentry.js.map
|
package/dist/sentry.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sentry.js","sourceRoot":"","sources":["../src/sentry.ts"],"names":[],"mappings":"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"}
|
package/dist/sync/git-hooks.d.ts
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Git Hooks Management
|
|
3
|
-
*
|
|
4
|
-
* Installs and manages git hooks for automatic incremental indexing.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Result of hook installation
|
|
8
|
-
*/
|
|
9
|
-
export interface HookInstallResult {
|
|
10
|
-
success: boolean;
|
|
11
|
-
hookPath: string;
|
|
12
|
-
message: string;
|
|
13
|
-
previousHookBackedUp?: boolean;
|
|
14
|
-
backupPath?: string;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Result of hook removal
|
|
18
|
-
*/
|
|
19
|
-
export interface HookRemoveResult {
|
|
20
|
-
success: boolean;
|
|
21
|
-
message: string;
|
|
22
|
-
restoredFromBackup?: boolean;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Git hooks manager
|
|
26
|
-
*/
|
|
27
|
-
export declare class GitHooksManager {
|
|
28
|
-
private gitDir;
|
|
29
|
-
private hooksDir;
|
|
30
|
-
constructor(projectRoot: string);
|
|
31
|
-
/**
|
|
32
|
-
* Check if the project is a git repository
|
|
33
|
-
*/
|
|
34
|
-
isGitRepository(): boolean;
|
|
35
|
-
/**
|
|
36
|
-
* Check if the post-commit hook is installed by CodeGraph
|
|
37
|
-
*/
|
|
38
|
-
isHookInstalled(): boolean;
|
|
39
|
-
/**
|
|
40
|
-
* Install the post-commit hook
|
|
41
|
-
*
|
|
42
|
-
* If a hook already exists:
|
|
43
|
-
* - If it's a CodeGraph hook, update it
|
|
44
|
-
* - If it's a user hook, back it up and install ours
|
|
45
|
-
*/
|
|
46
|
-
installHook(): HookInstallResult;
|
|
47
|
-
/**
|
|
48
|
-
* Remove the CodeGraph post-commit hook
|
|
49
|
-
*
|
|
50
|
-
* If a backup exists, restore it.
|
|
51
|
-
*/
|
|
52
|
-
removeHook(): HookRemoveResult;
|
|
53
|
-
/**
|
|
54
|
-
* Get the path to the hooks directory
|
|
55
|
-
*/
|
|
56
|
-
getHooksDir(): string;
|
|
57
|
-
/**
|
|
58
|
-
* Get the path to the post-commit hook
|
|
59
|
-
*/
|
|
60
|
-
getHookPath(): string;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Create a git hooks manager for a project
|
|
64
|
-
*/
|
|
65
|
-
export declare function createGitHooksManager(projectRoot: string): GitHooksManager;
|
|
66
|
-
//# sourceMappingURL=git-hooks.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"git-hooks.d.ts","sourceRoot":"","sources":["../../src/sync/git-hooks.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgDH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAS;gBAEb,WAAW,EAAE,MAAM;IAK/B;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACH,eAAe,IAAI,OAAO;IAe1B;;;;;;OAMG;IACH,WAAW,IAAI,iBAAiB;IAgFhC;;;;OAIG;IACH,UAAU,IAAI,gBAAgB;IA8D9B;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,WAAW,IAAI,MAAM;CAGtB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CAE1E"}
|
package/dist/sync/git-hooks.js
DELETED
|
@@ -1,281 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Git Hooks Management
|
|
4
|
-
*
|
|
5
|
-
* Installs and manages git hooks for automatic incremental indexing.
|
|
6
|
-
*/
|
|
7
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
-
if (k2 === undefined) k2 = k;
|
|
9
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
-
}
|
|
13
|
-
Object.defineProperty(o, k2, desc);
|
|
14
|
-
}) : (function(o, m, k, k2) {
|
|
15
|
-
if (k2 === undefined) k2 = k;
|
|
16
|
-
o[k2] = m[k];
|
|
17
|
-
}));
|
|
18
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
-
}) : function(o, v) {
|
|
21
|
-
o["default"] = v;
|
|
22
|
-
});
|
|
23
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
-
var ownKeys = function(o) {
|
|
25
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
-
var ar = [];
|
|
27
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
-
return ar;
|
|
29
|
-
};
|
|
30
|
-
return ownKeys(o);
|
|
31
|
-
};
|
|
32
|
-
return function (mod) {
|
|
33
|
-
if (mod && mod.__esModule) return mod;
|
|
34
|
-
var result = {};
|
|
35
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
-
__setModuleDefault(result, mod);
|
|
37
|
-
return result;
|
|
38
|
-
};
|
|
39
|
-
})();
|
|
40
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
-
exports.GitHooksManager = void 0;
|
|
42
|
-
exports.createGitHooksManager = createGitHooksManager;
|
|
43
|
-
const fs = __importStar(require("fs"));
|
|
44
|
-
const path = __importStar(require("path"));
|
|
45
|
-
/**
|
|
46
|
-
* Name of the post-commit hook file
|
|
47
|
-
*/
|
|
48
|
-
const POST_COMMIT_HOOK = 'post-commit';
|
|
49
|
-
/**
|
|
50
|
-
* Marker comment to identify CodeGraph-managed hooks
|
|
51
|
-
*/
|
|
52
|
-
const CODEGRAPH_MARKER = '# CodeGraph auto-sync hook';
|
|
53
|
-
/**
|
|
54
|
-
* The post-commit hook script content
|
|
55
|
-
*
|
|
56
|
-
* This script:
|
|
57
|
-
* 1. Checks if codegraph CLI is available
|
|
58
|
-
* 2. Falls back to npx if not
|
|
59
|
-
* 3. Runs sync in the background to avoid blocking commits
|
|
60
|
-
*/
|
|
61
|
-
const POST_COMMIT_SCRIPT = `#!/bin/sh
|
|
62
|
-
${CODEGRAPH_MARKER}
|
|
63
|
-
# This hook was installed by CodeGraph to enable automatic incremental indexing.
|
|
64
|
-
# It runs after each commit to keep the code graph in sync.
|
|
65
|
-
# To remove this hook, run: codegraph hooks --remove
|
|
66
|
-
# Or delete this file manually.
|
|
67
|
-
|
|
68
|
-
# Run sync in background to avoid blocking the commit
|
|
69
|
-
(
|
|
70
|
-
# Check if we're in a CodeGraph project
|
|
71
|
-
if [ ! -d ".codegraph" ]; then
|
|
72
|
-
exit 0
|
|
73
|
-
fi
|
|
74
|
-
|
|
75
|
-
# Try to run codegraph sync
|
|
76
|
-
if command -v codegraph >/dev/null 2>&1; then
|
|
77
|
-
codegraph sync --quiet 2>/dev/null &
|
|
78
|
-
elif command -v npx >/dev/null 2>&1; then
|
|
79
|
-
npx codegraph sync --quiet 2>/dev/null &
|
|
80
|
-
fi
|
|
81
|
-
) &
|
|
82
|
-
|
|
83
|
-
exit 0
|
|
84
|
-
`;
|
|
85
|
-
/**
|
|
86
|
-
* Git hooks manager
|
|
87
|
-
*/
|
|
88
|
-
class GitHooksManager {
|
|
89
|
-
gitDir;
|
|
90
|
-
hooksDir;
|
|
91
|
-
constructor(projectRoot) {
|
|
92
|
-
this.gitDir = path.join(projectRoot, '.git');
|
|
93
|
-
this.hooksDir = path.join(this.gitDir, 'hooks');
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Check if the project is a git repository
|
|
97
|
-
*/
|
|
98
|
-
isGitRepository() {
|
|
99
|
-
return fs.existsSync(this.gitDir) && fs.statSync(this.gitDir).isDirectory();
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Check if the post-commit hook is installed by CodeGraph
|
|
103
|
-
*/
|
|
104
|
-
isHookInstalled() {
|
|
105
|
-
const hookPath = path.join(this.hooksDir, POST_COMMIT_HOOK);
|
|
106
|
-
if (!fs.existsSync(hookPath)) {
|
|
107
|
-
return false;
|
|
108
|
-
}
|
|
109
|
-
try {
|
|
110
|
-
const content = fs.readFileSync(hookPath, 'utf-8');
|
|
111
|
-
return content.includes(CODEGRAPH_MARKER);
|
|
112
|
-
}
|
|
113
|
-
catch {
|
|
114
|
-
return false;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Install the post-commit hook
|
|
119
|
-
*
|
|
120
|
-
* If a hook already exists:
|
|
121
|
-
* - If it's a CodeGraph hook, update it
|
|
122
|
-
* - If it's a user hook, back it up and install ours
|
|
123
|
-
*/
|
|
124
|
-
installHook() {
|
|
125
|
-
const hookPath = path.join(this.hooksDir, POST_COMMIT_HOOK);
|
|
126
|
-
// Check if this is a git repository
|
|
127
|
-
if (!this.isGitRepository()) {
|
|
128
|
-
return {
|
|
129
|
-
success: false,
|
|
130
|
-
hookPath,
|
|
131
|
-
message: 'Not a git repository. Initialize git first with: git init',
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
// Ensure hooks directory exists
|
|
135
|
-
if (!fs.existsSync(this.hooksDir)) {
|
|
136
|
-
try {
|
|
137
|
-
fs.mkdirSync(this.hooksDir, { recursive: true });
|
|
138
|
-
}
|
|
139
|
-
catch (error) {
|
|
140
|
-
return {
|
|
141
|
-
success: false,
|
|
142
|
-
hookPath,
|
|
143
|
-
message: `Failed to create hooks directory: ${error}`,
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
// Check for existing hook
|
|
148
|
-
let previousHookBackedUp = false;
|
|
149
|
-
let backupPath;
|
|
150
|
-
if (fs.existsSync(hookPath)) {
|
|
151
|
-
try {
|
|
152
|
-
const existingContent = fs.readFileSync(hookPath, 'utf-8');
|
|
153
|
-
// If it's already our hook, just update it
|
|
154
|
-
if (existingContent.includes(CODEGRAPH_MARKER)) {
|
|
155
|
-
fs.writeFileSync(hookPath, POST_COMMIT_SCRIPT, { mode: 0o755 });
|
|
156
|
-
return {
|
|
157
|
-
success: true,
|
|
158
|
-
hookPath,
|
|
159
|
-
message: 'Post-commit hook updated.',
|
|
160
|
-
};
|
|
161
|
-
}
|
|
162
|
-
// It's a user hook - back it up
|
|
163
|
-
backupPath = `${hookPath}.codegraph-backup`;
|
|
164
|
-
fs.copyFileSync(hookPath, backupPath);
|
|
165
|
-
previousHookBackedUp = true;
|
|
166
|
-
}
|
|
167
|
-
catch (error) {
|
|
168
|
-
return {
|
|
169
|
-
success: false,
|
|
170
|
-
hookPath,
|
|
171
|
-
message: `Failed to backup existing hook: ${error}`,
|
|
172
|
-
};
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
// Write the hook
|
|
176
|
-
try {
|
|
177
|
-
fs.writeFileSync(hookPath, POST_COMMIT_SCRIPT, { mode: 0o755 });
|
|
178
|
-
}
|
|
179
|
-
catch (error) {
|
|
180
|
-
return {
|
|
181
|
-
success: false,
|
|
182
|
-
hookPath,
|
|
183
|
-
message: `Failed to write hook: ${error}`,
|
|
184
|
-
};
|
|
185
|
-
}
|
|
186
|
-
const message = previousHookBackedUp
|
|
187
|
-
? `Post-commit hook installed. Previous hook backed up to: ${backupPath}`
|
|
188
|
-
: 'Post-commit hook installed.';
|
|
189
|
-
return {
|
|
190
|
-
success: true,
|
|
191
|
-
hookPath,
|
|
192
|
-
message,
|
|
193
|
-
previousHookBackedUp,
|
|
194
|
-
backupPath,
|
|
195
|
-
};
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* Remove the CodeGraph post-commit hook
|
|
199
|
-
*
|
|
200
|
-
* If a backup exists, restore it.
|
|
201
|
-
*/
|
|
202
|
-
removeHook() {
|
|
203
|
-
const hookPath = path.join(this.hooksDir, POST_COMMIT_HOOK);
|
|
204
|
-
const backupPath = `${hookPath}.codegraph-backup`;
|
|
205
|
-
// Check if hook exists
|
|
206
|
-
if (!fs.existsSync(hookPath)) {
|
|
207
|
-
return {
|
|
208
|
-
success: true,
|
|
209
|
-
message: 'No post-commit hook found.',
|
|
210
|
-
};
|
|
211
|
-
}
|
|
212
|
-
// Check if it's our hook
|
|
213
|
-
try {
|
|
214
|
-
const content = fs.readFileSync(hookPath, 'utf-8');
|
|
215
|
-
if (!content.includes(CODEGRAPH_MARKER)) {
|
|
216
|
-
return {
|
|
217
|
-
success: false,
|
|
218
|
-
message: 'Post-commit hook was not installed by CodeGraph. Not removing.',
|
|
219
|
-
};
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
catch (error) {
|
|
223
|
-
return {
|
|
224
|
-
success: false,
|
|
225
|
-
message: `Failed to read hook: ${error}`,
|
|
226
|
-
};
|
|
227
|
-
}
|
|
228
|
-
// Remove the hook
|
|
229
|
-
try {
|
|
230
|
-
fs.unlinkSync(hookPath);
|
|
231
|
-
}
|
|
232
|
-
catch (error) {
|
|
233
|
-
return {
|
|
234
|
-
success: false,
|
|
235
|
-
message: `Failed to remove hook: ${error}`,
|
|
236
|
-
};
|
|
237
|
-
}
|
|
238
|
-
// Restore backup if it exists
|
|
239
|
-
if (fs.existsSync(backupPath)) {
|
|
240
|
-
try {
|
|
241
|
-
fs.renameSync(backupPath, hookPath);
|
|
242
|
-
return {
|
|
243
|
-
success: true,
|
|
244
|
-
message: 'Post-commit hook removed. Previous hook restored from backup.',
|
|
245
|
-
restoredFromBackup: true,
|
|
246
|
-
};
|
|
247
|
-
}
|
|
248
|
-
catch (error) {
|
|
249
|
-
return {
|
|
250
|
-
success: true,
|
|
251
|
-
message: `Post-commit hook removed. Warning: failed to restore backup: ${error}`,
|
|
252
|
-
restoredFromBackup: false,
|
|
253
|
-
};
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
return {
|
|
257
|
-
success: true,
|
|
258
|
-
message: 'Post-commit hook removed.',
|
|
259
|
-
};
|
|
260
|
-
}
|
|
261
|
-
/**
|
|
262
|
-
* Get the path to the hooks directory
|
|
263
|
-
*/
|
|
264
|
-
getHooksDir() {
|
|
265
|
-
return this.hooksDir;
|
|
266
|
-
}
|
|
267
|
-
/**
|
|
268
|
-
* Get the path to the post-commit hook
|
|
269
|
-
*/
|
|
270
|
-
getHookPath() {
|
|
271
|
-
return path.join(this.hooksDir, POST_COMMIT_HOOK);
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
exports.GitHooksManager = GitHooksManager;
|
|
275
|
-
/**
|
|
276
|
-
* Create a git hooks manager for a project
|
|
277
|
-
*/
|
|
278
|
-
function createGitHooksManager(projectRoot) {
|
|
279
|
-
return new GitHooksManager(projectRoot);
|
|
280
|
-
}
|
|
281
|
-
//# sourceMappingURL=git-hooks.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"git-hooks.js","sourceRoot":"","sources":["../../src/sync/git-hooks.ts"],"names":[],"mappings":"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"}
|