@colbymchenry/codegraph 0.3.1 → 0.5.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/LICENSE +21 -21
- package/README.md +681 -641
- package/dist/bin/codegraph.d.ts +7 -2
- package/dist/bin/codegraph.d.ts.map +1 -1
- package/dist/bin/codegraph.js +360 -140
- package/dist/bin/codegraph.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +43 -10
- package/dist/config.js.map +1 -1
- package/dist/context/index.d.ts +17 -4
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +182 -15
- package/dist/context/index.js.map +1 -1
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +21 -0
- 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 +19 -12
- package/dist/db/migrations.js.map +1 -1
- package/dist/db/queries.d.ts +32 -1
- package/dist/db/queries.d.ts.map +1 -1
- package/dist/db/queries.js +271 -118
- package/dist/db/queries.js.map +1 -1
- package/dist/db/schema.sql +163 -149
- package/dist/directory.d.ts +13 -1
- package/dist/directory.d.ts.map +1 -1
- package/dist/directory.js +85 -19
- package/dist/directory.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +7 -1
- package/dist/errors.js.map +1 -1
- package/dist/extraction/grammars.d.ts +9 -4
- package/dist/extraction/grammars.d.ts.map +1 -1
- package/dist/extraction/grammars.js +133 -65
- package/dist/extraction/grammars.js.map +1 -1
- package/dist/extraction/index.d.ts +6 -0
- package/dist/extraction/index.d.ts.map +1 -1
- package/dist/extraction/index.js +209 -44
- package/dist/extraction/index.js.map +1 -1
- package/dist/extraction/tree-sitter.d.ts +67 -0
- package/dist/extraction/tree-sitter.d.ts.map +1 -1
- package/dist/extraction/tree-sitter.js +980 -38
- package/dist/extraction/tree-sitter.js.map +1 -1
- package/dist/graph/traversal.d.ts.map +1 -1
- package/dist/graph/traversal.js +6 -2
- package/dist/graph/traversal.js.map +1 -1
- package/dist/index.d.ts +6 -38
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +91 -73
- package/dist/index.js.map +1 -1
- package/dist/installer/banner.js +7 -7
- package/dist/installer/claude-md-template.js +32 -32
- package/dist/installer/config-writer.d.ts +9 -0
- package/dist/installer/config-writer.d.ts.map +1 -1
- package/dist/installer/config-writer.js +126 -17
- package/dist/installer/config-writer.js.map +1 -1
- package/dist/installer/index.d.ts.map +1 -1
- package/dist/installer/index.js +11 -9
- package/dist/installer/index.js.map +1 -1
- package/dist/mcp/index.d.ts +14 -3
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +109 -29
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/tools.d.ts +66 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +442 -49
- package/dist/mcp/tools.js.map +1 -1
- package/dist/mcp/transport.d.ts.map +1 -1
- package/dist/mcp/transport.js +2 -0
- package/dist/mcp/transport.js.map +1 -1
- package/dist/resolution/frameworks/index.d.ts +1 -0
- package/dist/resolution/frameworks/index.d.ts.map +1 -1
- package/dist/resolution/frameworks/index.js +5 -1
- package/dist/resolution/frameworks/index.js.map +1 -1
- package/dist/resolution/frameworks/svelte.d.ts +9 -0
- package/dist/resolution/frameworks/svelte.d.ts.map +1 -0
- package/dist/resolution/frameworks/svelte.js +268 -0
- package/dist/resolution/frameworks/svelte.js.map +1 -0
- package/dist/resolution/import-resolver.d.ts.map +1 -1
- package/dist/resolution/import-resolver.js +3 -4
- package/dist/resolution/import-resolver.js.map +1 -1
- package/dist/resolution/index.d.ts +15 -2
- package/dist/resolution/index.d.ts.map +1 -1
- package/dist/resolution/index.js +153 -13
- package/dist/resolution/index.js.map +1 -1
- package/dist/resolution/name-matcher.d.ts.map +1 -1
- package/dist/resolution/name-matcher.js +7 -20
- package/dist/resolution/name-matcher.js.map +1 -1
- package/dist/resolution/types.d.ts +4 -0
- package/dist/resolution/types.d.ts.map +1 -1
- package/dist/search/query-utils.d.ts +25 -0
- package/dist/search/query-utils.d.ts.map +1 -0
- package/dist/search/query-utils.js +124 -0
- package/dist/search/query-utils.js.map +1 -0
- package/dist/sentry.d.ts +22 -0
- package/dist/sentry.d.ts.map +1 -0
- package/dist/sentry.js +159 -0
- package/dist/sentry.js.map +1 -0
- package/dist/sync/index.d.ts +4 -2
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +3 -5
- package/dist/sync/index.js.map +1 -1
- package/dist/types.d.ts +7 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +13 -0
- package/dist/types.js.map +1 -1
- package/dist/utils.d.ts +89 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +252 -3
- package/dist/utils.js.map +1 -1
- package/dist/vectors/embedder.d.ts +1 -1
- package/dist/vectors/embedder.d.ts.map +1 -1
- package/dist/vectors/embedder.js +2 -2
- package/dist/vectors/embedder.js.map +1 -1
- package/dist/vectors/search.d.ts.map +1 -1
- package/dist/vectors/search.js +33 -32
- package/dist/vectors/search.js.map +1 -1
- package/package.json +74 -67
- package/scripts/patch-tree-sitter-dart.js +112 -0
- package/scripts/postinstall.js +71 -68
- 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/sentry.js
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
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
|
+
function initSentry({ processName, version }) {
|
|
25
|
+
// Skip in development/test environments
|
|
26
|
+
if (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test' || process.env.VITEST) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
_enabled = true;
|
|
30
|
+
_release = `codegraph@${version ?? process.env.npm_package_version ?? 'unknown'}`;
|
|
31
|
+
_tags = { processName };
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Send an error to Sentry with full stack trace and context.
|
|
35
|
+
* Fire-and-forget — never throws, never blocks.
|
|
36
|
+
*/
|
|
37
|
+
function captureException(error, extra) {
|
|
38
|
+
if (!_enabled)
|
|
39
|
+
return;
|
|
40
|
+
try {
|
|
41
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
42
|
+
const msg = err.message.toLowerCase();
|
|
43
|
+
// Filter non-actionable noise
|
|
44
|
+
if (msg.includes('pty') || msg.includes('terminal session'))
|
|
45
|
+
return;
|
|
46
|
+
if ((msg.includes('econnrefused') || msg.includes('econnreset')) && msg.includes('127.0.0.1'))
|
|
47
|
+
return;
|
|
48
|
+
const eventId = (0, crypto_1.createHash)('md5').update(`${Date.now()}-${Math.random()}`).digest('hex');
|
|
49
|
+
const timestamp = new Date().toISOString();
|
|
50
|
+
// Attach CodeGraphError context if available
|
|
51
|
+
const errorContext = { ...extra };
|
|
52
|
+
if ('code' in err && typeof err.code === 'string') {
|
|
53
|
+
errorContext.errorCode = err.code;
|
|
54
|
+
}
|
|
55
|
+
if ('context' in err && typeof err.context === 'object') {
|
|
56
|
+
Object.assign(errorContext, err.context);
|
|
57
|
+
}
|
|
58
|
+
const event = {
|
|
59
|
+
event_id: eventId,
|
|
60
|
+
timestamp,
|
|
61
|
+
platform: 'node',
|
|
62
|
+
level: 'error',
|
|
63
|
+
release: _release,
|
|
64
|
+
tags: _tags,
|
|
65
|
+
exception: {
|
|
66
|
+
values: [{
|
|
67
|
+
type: err.name,
|
|
68
|
+
value: err.message,
|
|
69
|
+
stacktrace: parseStack(err.stack),
|
|
70
|
+
}],
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
if (Object.keys(errorContext).length > 0) {
|
|
74
|
+
event.extra = errorContext;
|
|
75
|
+
}
|
|
76
|
+
const payload = JSON.stringify(event);
|
|
77
|
+
const envelope = [
|
|
78
|
+
JSON.stringify({ event_id: eventId, sent_at: timestamp, dsn: DSN }),
|
|
79
|
+
JSON.stringify({ type: 'event', length: payload.length }),
|
|
80
|
+
payload,
|
|
81
|
+
].join('\n') + '\n';
|
|
82
|
+
fetch(STORE_URL, {
|
|
83
|
+
method: 'POST',
|
|
84
|
+
headers: {
|
|
85
|
+
'Content-Type': 'application/x-sentry-envelope',
|
|
86
|
+
'X-Sentry-Auth': `Sentry sentry_version=7, sentry_key=${PUBLIC_KEY}`,
|
|
87
|
+
},
|
|
88
|
+
body: envelope,
|
|
89
|
+
}).catch(() => { });
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
// Never throw from error reporting
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Send a message-level event to Sentry (for logged errors without Error objects).
|
|
97
|
+
*/
|
|
98
|
+
function captureMessage(message, context) {
|
|
99
|
+
if (!_enabled)
|
|
100
|
+
return;
|
|
101
|
+
try {
|
|
102
|
+
const eventId = (0, crypto_1.createHash)('md5').update(`${Date.now()}-${Math.random()}`).digest('hex');
|
|
103
|
+
const timestamp = new Date().toISOString();
|
|
104
|
+
const event = {
|
|
105
|
+
event_id: eventId,
|
|
106
|
+
timestamp,
|
|
107
|
+
platform: 'node',
|
|
108
|
+
level: 'error',
|
|
109
|
+
release: _release,
|
|
110
|
+
tags: _tags,
|
|
111
|
+
message: { formatted: message },
|
|
112
|
+
};
|
|
113
|
+
if (context && Object.keys(context).length > 0) {
|
|
114
|
+
event.extra = context;
|
|
115
|
+
}
|
|
116
|
+
const payload = JSON.stringify(event);
|
|
117
|
+
const envelope = [
|
|
118
|
+
JSON.stringify({ event_id: eventId, sent_at: timestamp, dsn: DSN }),
|
|
119
|
+
JSON.stringify({ type: 'event', length: payload.length }),
|
|
120
|
+
payload,
|
|
121
|
+
].join('\n') + '\n';
|
|
122
|
+
fetch(STORE_URL, {
|
|
123
|
+
method: 'POST',
|
|
124
|
+
headers: {
|
|
125
|
+
'Content-Type': 'application/x-sentry-envelope',
|
|
126
|
+
'X-Sentry-Auth': `Sentry sentry_version=7, sentry_key=${PUBLIC_KEY}`,
|
|
127
|
+
},
|
|
128
|
+
body: envelope,
|
|
129
|
+
}).catch(() => { });
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
// Never throw from error reporting
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Parse a Node.js Error.stack string into Sentry's stacktrace format.
|
|
137
|
+
*/
|
|
138
|
+
function parseStack(stack) {
|
|
139
|
+
if (!stack)
|
|
140
|
+
return undefined;
|
|
141
|
+
const frames = stack
|
|
142
|
+
.split('\n')
|
|
143
|
+
.slice(1)
|
|
144
|
+
.map((line) => {
|
|
145
|
+
const match = line.match(/^\s+at\s+(?:(.+?)\s+\()?(.*?):(\d+):(\d+)\)?$/);
|
|
146
|
+
if (!match || !match[2] || !match[3] || !match[4])
|
|
147
|
+
return null;
|
|
148
|
+
return {
|
|
149
|
+
function: match[1] || '<anonymous>',
|
|
150
|
+
filename: match[2],
|
|
151
|
+
lineno: parseInt(match[3], 10),
|
|
152
|
+
colno: parseInt(match[4], 10),
|
|
153
|
+
};
|
|
154
|
+
})
|
|
155
|
+
.filter((f) => f !== null)
|
|
156
|
+
.reverse();
|
|
157
|
+
return frames.length > 0 ? { frames } : undefined;
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=sentry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sentry.js","sourceRoot":"","sources":["../src/sentry.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAmBH,gCAQC;AAMD,4CA6DC;AAKD,wCAuCC;AAxID,mCAAoC;AAEpC,MAAM,GAAG,GAAG,wFAAwF,CAAC;AACrG,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACjE,MAAM,UAAU,GAAG,SAAU,CAAC,CAAC,CAAC,CAAC;AACjC,MAAM,IAAI,GAAG,SAAU,CAAC,CAAC,CAAC,CAAC;AAC3B,MAAM,UAAU,GAAG,SAAU,CAAC,CAAC,CAAC,CAAC;AACjC,MAAM,SAAS,GAAG,WAAW,IAAI,QAAQ,UAAU,YAAY,CAAC;AAEhE,IAAI,QAAQ,GAAG,KAAK,CAAC;AACrB,IAAI,QAAQ,GAAG,mBAAmB,CAAC;AACnC,IAAI,KAAK,GAA2B,EAAE,CAAC;AAEvC;;;GAGG;AACH,SAAgB,UAAU,CAAC,EAAE,WAAW,EAAE,OAAO,EAA6C;IAC5F,wCAAwC;IACxC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QACpG,OAAO;IACT,CAAC;IACD,QAAQ,GAAG,IAAI,CAAC;IAChB,QAAQ,GAAG,aAAa,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,SAAS,EAAE,CAAC;IAClF,KAAK,GAAG,EAAE,WAAW,EAAE,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,KAAc,EAAE,KAA+B;IAC9E,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEtB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAEtC,8BAA8B;QAC9B,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YAAE,OAAO;QACpE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,OAAO;QAEtG,MAAM,OAAO,GAAG,IAAA,mBAAU,EAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzF,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAE3C,6CAA6C;QAC7C,MAAM,YAAY,GAA4B,EAAE,GAAG,KAAK,EAAE,CAAC;QAC3D,IAAI,MAAM,IAAI,GAAG,IAAI,OAAQ,GAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3D,YAAY,CAAC,SAAS,GAAI,GAAW,CAAC,IAAI,CAAC;QAC7C,CAAC;QACD,IAAI,SAAS,IAAI,GAAG,IAAI,OAAQ,GAAW,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACjE,MAAM,CAAC,MAAM,CAAC,YAAY,EAAG,GAAW,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,KAAK,GAA4B;YACrC,QAAQ,EAAE,OAAO;YACjB,SAAS;YACT,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,KAAK;YACX,SAAS,EAAE;gBACT,MAAM,EAAE,CAAC;wBACP,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,KAAK,EAAE,GAAG,CAAC,OAAO;wBAClB,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;qBAClC,CAAC;aACH;SACF,CAAC;QAEF,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,KAAK,CAAC,KAAK,GAAG,YAAY,CAAC;QAC7B,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG;YACf,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;YACnE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;YACzD,OAAO;SACR,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAEpB,KAAK,CAAC,SAAS,EAAE;YACf,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,+BAA+B;gBAC/C,eAAe,EAAE,uCAAuC,UAAU,EAAE;aACrE;YACD,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;IACrC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,OAAe,EAAE,OAAiC;IAC/E,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEtB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAA,mBAAU,EAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzF,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAE3C,MAAM,KAAK,GAA4B;YACrC,QAAQ,EAAE,OAAO;YACjB,SAAS;YACT,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE;SAChC,CAAC;QAEF,IAAI,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC;QACxB,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG;YACf,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;YACnE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;YACzD,OAAO;SACR,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAEpB,KAAK,CAAC,SAAS,EAAE;YACf,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,+BAA+B;gBAC/C,eAAe,EAAE,uCAAuC,UAAU,EAAE;aACrE;YACD,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;IACrC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAE7B,MAAM,MAAM,GAAG,KAAK;SACjB,KAAK,CAAC,IAAI,CAAC;SACX,KAAK,CAAC,CAAC,CAAC;SACR,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC1E,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/D,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,aAAa;YACnC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;YAClB,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC9B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;SAC9B,CAAC;IACJ,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;SACrD,OAAO,EAAE,CAAC;IAEb,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACpD,CAAC"}
|
package/dist/sync/index.d.ts
CHANGED
|
@@ -4,10 +4,12 @@
|
|
|
4
4
|
* Provides synchronization functionality for keeping the code graph
|
|
5
5
|
* up-to-date with file system changes.
|
|
6
6
|
*
|
|
7
|
+
* Note: Git hooks functionality has been removed. CodeGraph sync is now
|
|
8
|
+
* triggered through codegraph's Claude Code hooks integration instead.
|
|
9
|
+
*
|
|
7
10
|
* Components:
|
|
8
|
-
* - Git hooks for automatic post-commit syncing
|
|
9
11
|
* - Content hashing for change detection (in extraction module)
|
|
10
12
|
* - Incremental reindexing (in extraction module)
|
|
11
13
|
*/
|
|
12
|
-
export {
|
|
14
|
+
export {};
|
|
13
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/sync/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAE,CAAC"}
|
package/dist/sync/index.js
CHANGED
|
@@ -5,14 +5,12 @@
|
|
|
5
5
|
* Provides synchronization functionality for keeping the code graph
|
|
6
6
|
* up-to-date with file system changes.
|
|
7
7
|
*
|
|
8
|
+
* Note: Git hooks functionality has been removed. CodeGraph sync is now
|
|
9
|
+
* triggered through codegraph's Claude Code hooks integration instead.
|
|
10
|
+
*
|
|
8
11
|
* Components:
|
|
9
|
-
* - Git hooks for automatic post-commit syncing
|
|
10
12
|
* - Content hashing for change detection (in extraction module)
|
|
11
13
|
* - Incremental reindexing (in extraction module)
|
|
12
14
|
*/
|
|
13
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.createGitHooksManager = exports.GitHooksManager = void 0;
|
|
15
|
-
var git_hooks_1 = require("./git-hooks");
|
|
16
|
-
Object.defineProperty(exports, "GitHooksManager", { enumerable: true, get: function () { return git_hooks_1.GitHooksManager; } });
|
|
17
|
-
Object.defineProperty(exports, "createGitHooksManager", { enumerable: true, get: function () { return git_hooks_1.createGitHooksManager; } });
|
|
18
16
|
//# sourceMappingURL=index.js.map
|
package/dist/sync/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG"}
|
package/dist/types.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export type EdgeKind = 'contains' | 'calls' | 'imports' | 'exports' | 'extends'
|
|
|
14
14
|
/**
|
|
15
15
|
* Supported programming languages
|
|
16
16
|
*/
|
|
17
|
-
export type Language = 'typescript' | 'javascript' | 'tsx' | 'jsx' | 'python' | 'go' | 'rust' | 'java' | 'c' | 'cpp' | 'csharp' | 'php' | 'ruby' | 'swift' | 'kotlin' | 'liquid' | 'unknown';
|
|
17
|
+
export type Language = 'typescript' | 'javascript' | 'tsx' | 'jsx' | 'python' | 'go' | 'rust' | 'java' | 'c' | 'cpp' | 'csharp' | 'php' | 'ruby' | 'swift' | 'kotlin' | 'dart' | 'svelte' | 'liquid' | 'unknown';
|
|
18
18
|
/**
|
|
19
19
|
* A node in the knowledge graph representing a code symbol
|
|
20
20
|
*/
|
|
@@ -76,6 +76,8 @@ export interface Edge {
|
|
|
76
76
|
line?: number;
|
|
77
77
|
/** Column number where relationship occurs */
|
|
78
78
|
column?: number;
|
|
79
|
+
/** How this edge was created */
|
|
80
|
+
provenance?: 'tree-sitter' | 'scip' | 'heuristic';
|
|
79
81
|
}
|
|
80
82
|
/**
|
|
81
83
|
* Metadata about a tracked file
|
|
@@ -141,6 +143,10 @@ export interface UnresolvedReference {
|
|
|
141
143
|
/** Location of the reference */
|
|
142
144
|
line: number;
|
|
143
145
|
column: number;
|
|
146
|
+
/** File path where reference occurs (denormalized for performance) */
|
|
147
|
+
filePath?: string;
|
|
148
|
+
/** Language of the source file (denormalized for performance) */
|
|
149
|
+
language?: Language;
|
|
144
150
|
/** Possible qualified names it might resolve to */
|
|
145
151
|
candidates?: string[];
|
|
146
152
|
}
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,WAAW,GACX,OAAO,GACP,UAAU,GACV,UAAU,GACV,QAAQ,GACR,UAAU,GACV,OAAO,GACP,UAAU,GACV,UAAU,GACV,MAAM,GACN,aAAa,GACb,YAAY,GACZ,WAAW,GACX,WAAW,GACX,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,WAAW,CAAC;AAEhB;;GAEG;AACH,MAAM,MAAM,QAAQ,GAChB,UAAU,GACV,OAAO,GACP,SAAS,GACT,SAAS,GACT,SAAS,GACT,YAAY,GACZ,YAAY,GACZ,SAAS,GACT,SAAS,GACT,cAAc,GACd,WAAW,GACX,WAAW,CAAC;AAEhB;;GAEG;AACH,MAAM,MAAM,QAAQ,GAChB,YAAY,GACZ,YAAY,GACZ,KAAK,GACL,KAAK,GACL,QAAQ,GACR,IAAI,GACJ,MAAM,GACN,MAAM,GACN,GAAG,GACH,KAAK,GACL,QAAQ,GACR,KAAK,GACL,MAAM,GACN,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,SAAS,CAAC;AAMd;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,6DAA6D;IAC7D,EAAE,EAAE,MAAM,CAAC;IAEX,2BAA2B;IAC3B,IAAI,EAAE,QAAQ,CAAC;IAEf,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IAEb,6EAA6E;IAC7E,aAAa,EAAE,MAAM,CAAC;IAEtB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IAEjB,2BAA2B;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IAEnB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAElB,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAEhB,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IAEpB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAElB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,0BAA0B;IAC1B,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;IAE7D,iCAAiC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,iCAAiC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB,8BAA8B;IAC9B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IAEf,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IAEf,2BAA2B;IAC3B,IAAI,EAAE,QAAQ,CAAC;IAEf,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -39,6 +39,15 @@ exports.DEFAULT_CONFIG = {
|
|
|
39
39
|
'**/*.php',
|
|
40
40
|
// Ruby
|
|
41
41
|
'**/*.rb',
|
|
42
|
+
// Swift
|
|
43
|
+
'**/*.swift',
|
|
44
|
+
// Kotlin
|
|
45
|
+
'**/*.kt',
|
|
46
|
+
'**/*.kts',
|
|
47
|
+
// Dart
|
|
48
|
+
'**/*.dart',
|
|
49
|
+
// Svelte
|
|
50
|
+
'**/*.svelte',
|
|
42
51
|
// Liquid (Shopify themes)
|
|
43
52
|
'**/*.liquid',
|
|
44
53
|
],
|
|
@@ -86,6 +95,8 @@ exports.DEFAULT_CONFIG = {
|
|
|
86
95
|
'**/__pycache__/**',
|
|
87
96
|
'**/.venv/**',
|
|
88
97
|
'**/venv/**',
|
|
98
|
+
'**/site-packages/**',
|
|
99
|
+
'**/dist-packages/**',
|
|
89
100
|
'**/.pytest_cache/**',
|
|
90
101
|
'**/.mypy_cache/**',
|
|
91
102
|
'**/.ruff_cache/**',
|
|
@@ -103,6 +114,8 @@ exports.DEFAULT_CONFIG = {
|
|
|
103
114
|
'**/.m2/**',
|
|
104
115
|
'**/generated-sources/**',
|
|
105
116
|
'**/.kotlin/**',
|
|
117
|
+
// Dart/Flutter
|
|
118
|
+
'**/.dart_tool/**',
|
|
106
119
|
// C#/.NET
|
|
107
120
|
'**/.vs/**',
|
|
108
121
|
'**/.nuget/**',
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAydH;;GAEG;AACU,QAAA,cAAc,GAAoB;IAC7C,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE;QACP,wBAAwB;QACxB,SAAS;QACT,UAAU;QACV,SAAS;QACT,UAAU;QACV,SAAS;QACT,SAAS;QACT,KAAK;QACL,SAAS;QACT,OAAO;QACP,SAAS;QACT,OAAO;QACP,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,UAAU;QACV,SAAS;QACT,UAAU;QACV,KAAK;QACL,SAAS;QACT,MAAM;QACN,UAAU;QACV,OAAO;QACP,SAAS;QACT,QAAQ;QACR,YAAY;QACZ,SAAS;QACT,SAAS;QACT,UAAU;QACV,OAAO;QACP,WAAW;QACX,SAAS;QACT,aAAa;QACb,0BAA0B;QAC1B,aAAa;KACd;IACD,OAAO,EAAE;QACP,kBAAkB;QAClB,YAAY;QAEZ,eAAe;QACf,oBAAoB;QACpB,cAAc;QACd,YAAY;QAEZ,wBAAwB;QACxB,YAAY;QACZ,aAAa;QACb,WAAW;QACX,WAAW;QACX,WAAW;QACX,cAAc;QAEd,wBAAwB;QACxB,aAAa;QACb,gBAAgB;QAChB,aAAa;QACb,aAAa;QACb,mBAAmB;QACnB,eAAe;QACf,cAAc;QACd,cAAc;QACd,qBAAqB;QACrB,aAAa;QACb,cAAc;QACd,mBAAmB;QACnB,eAAe;QACf,gBAAgB;QAChB,WAAW;QACX,mBAAmB;QACnB,mBAAmB;QACnB,wBAAwB;QAExB,sBAAsB;QACtB,aAAa;QACb,iBAAiB;QACjB,gBAAgB;QAChB,iBAAiB;QACjB,qBAAqB;QACrB,uBAAuB;QAEvB,SAAS;QACT,mBAAmB;QACnB,aAAa;QACb,YAAY;QACZ,qBAAqB;QACrB,qBAAqB;QACrB,qBAAqB;QACrB,mBAAmB;QACnB,mBAAmB;QACnB,YAAY;QACZ,YAAY;QACZ,kBAAkB;QAClB,aAAa;QAEb,KAAK;QACL,kBAAkB;QAElB,OAAO;QACP,oBAAoB;QACpB,sBAAsB;QAEtB,qBAAqB;QACrB,eAAe;QACf,WAAW;QACX,yBAAyB;QACzB,eAAe;QAEf,eAAe;QACf,kBAAkB;QAElB,UAAU;QACV,WAAW;QACX,cAAc;QACd,iBAAiB;QACjB,eAAe;QAEf,QAAQ;QACR,qBAAqB;QACrB,kBAAkB;QAClB,eAAe;QACf,uBAAuB;QACvB,cAAc;QACd,aAAa;QACb,eAAe;QACf,WAAW;QAEX,WAAW;QACX,eAAe;QACf,aAAa;QACb,WAAW;QAEX,kBAAkB;QAClB,mBAAmB;QACnB,cAAc;QACd,gBAAgB;QAChB,kBAAkB;QAClB,sBAAsB;QACtB,sBAAsB;QAEtB,MAAM;QACN,iBAAiB;QACjB,yBAAyB;QACzB,uBAAuB;QAEvB,OAAO;QACP,eAAe;QACf,iBAAiB;QACjB,qBAAqB;QACrB,oBAAoB;QACpB,eAAe;QAEf,mBAAmB;QACnB,gBAAgB;QAChB,eAAe;QACf,mBAAmB;QACnB,oBAAoB;QACpB,iBAAiB;QAEjB,aAAa;QACb,aAAa;QAEb,gBAAgB;QAChB,YAAY;QACZ,WAAW;QACX,YAAY;QAEZ,6BAA6B;QAC7B,cAAc;QACd,mBAAmB;QACnB,YAAY;KACb;IACD,SAAS,EAAE,EAAE;IACb,UAAU,EAAE,EAAE;IACd,WAAW,EAAE,IAAI,GAAG,IAAI,EAAE,MAAM;IAChC,iBAAiB,EAAE,IAAI;IACvB,cAAc,EAAE,IAAI;IACpB,gBAAgB,EAAE,KAAK;CACxB,CAAC"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* CodeGraph Utilities
|
|
3
3
|
*
|
|
4
|
-
* Common utility functions for memory management, concurrency,
|
|
4
|
+
* Common utility functions for memory management, concurrency, batching,
|
|
5
|
+
* and security validation.
|
|
5
6
|
*
|
|
6
7
|
* @module utils
|
|
7
8
|
*
|
|
8
9
|
* @example
|
|
9
10
|
* ```typescript
|
|
10
|
-
* import { Mutex, processInBatches, MemoryMonitor } from 'codegraph';
|
|
11
|
+
* import { Mutex, processInBatches, MemoryMonitor, validatePathWithinRoot } from 'codegraph';
|
|
11
12
|
*
|
|
12
13
|
* // Use mutex for concurrent safety
|
|
13
14
|
* const mutex = new Mutex();
|
|
@@ -27,6 +28,92 @@
|
|
|
27
28
|
* monitor.start();
|
|
28
29
|
* ```
|
|
29
30
|
*/
|
|
31
|
+
/**
|
|
32
|
+
* Validate that a resolved file path stays within the project root.
|
|
33
|
+
* Prevents path traversal attacks (e.g. node.filePath = "../../etc/passwd").
|
|
34
|
+
*
|
|
35
|
+
* @param projectRoot - The project root directory
|
|
36
|
+
* @param filePath - The relative file path to validate
|
|
37
|
+
* @returns The resolved absolute path, or null if it escapes the root
|
|
38
|
+
*/
|
|
39
|
+
export declare function validatePathWithinRoot(projectRoot: string, filePath: string): string | null;
|
|
40
|
+
/**
|
|
41
|
+
* Validate that a path is a safe project root directory.
|
|
42
|
+
*
|
|
43
|
+
* Rejects sensitive system directories and ensures the path is
|
|
44
|
+
* a real, existing directory. Used at MCP and API entry points
|
|
45
|
+
* to prevent arbitrary directory access.
|
|
46
|
+
*
|
|
47
|
+
* @param dirPath - The path to validate
|
|
48
|
+
* @returns An error message if invalid, or null if valid
|
|
49
|
+
*/
|
|
50
|
+
export declare function validateProjectPath(dirPath: string): string | null;
|
|
51
|
+
/**
|
|
52
|
+
* Check if a file path resolves to a location within the given root directory.
|
|
53
|
+
*
|
|
54
|
+
* Prevents path traversal attacks by ensuring the resolved absolute path
|
|
55
|
+
* starts with the resolved root path. Handles '..' sequences, symlink-like
|
|
56
|
+
* relative paths, and platform-specific separators.
|
|
57
|
+
*
|
|
58
|
+
* @param filePath - The path to check (can be relative or absolute)
|
|
59
|
+
* @param rootDir - The root directory that filePath must stay within
|
|
60
|
+
* @returns true if filePath resolves to a location within rootDir
|
|
61
|
+
*/
|
|
62
|
+
export declare function isPathWithinRoot(filePath: string, rootDir: string): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Like isPathWithinRoot but also resolves symlinks via fs.realpathSync.
|
|
65
|
+
*
|
|
66
|
+
* This catches symlink escapes where the logical path appears to be within
|
|
67
|
+
* root but the real path on disk points elsewhere. Falls back to logical
|
|
68
|
+
* path checking if realpath resolution fails (e.g. broken symlink).
|
|
69
|
+
*/
|
|
70
|
+
export declare function isPathWithinRootReal(filePath: string, rootDir: string): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Safely parse JSON with a fallback value.
|
|
73
|
+
* Prevents crashes from corrupted database metadata.
|
|
74
|
+
*/
|
|
75
|
+
export declare function safeJsonParse<T>(value: string, fallback: T): T;
|
|
76
|
+
/**
|
|
77
|
+
* Clamp a numeric value to a range.
|
|
78
|
+
* Used to enforce sane limits on MCP tool inputs.
|
|
79
|
+
*/
|
|
80
|
+
export declare function clamp(value: number, min: number, max: number): number;
|
|
81
|
+
/**
|
|
82
|
+
* Normalize a file path to use forward slashes.
|
|
83
|
+
* Fixes Windows backslash paths so glob matching works consistently.
|
|
84
|
+
*/
|
|
85
|
+
export declare function normalizePath(filePath: string): string;
|
|
86
|
+
/**
|
|
87
|
+
* Cross-process file lock using a lock file with PID tracking.
|
|
88
|
+
*
|
|
89
|
+
* Prevents multiple processes (e.g., git hooks, CLI, MCP server) from
|
|
90
|
+
* writing to the same database simultaneously.
|
|
91
|
+
*/
|
|
92
|
+
export declare class FileLock {
|
|
93
|
+
private lockPath;
|
|
94
|
+
private held;
|
|
95
|
+
constructor(lockPath: string);
|
|
96
|
+
/**
|
|
97
|
+
* Acquire the lock. Throws if the lock is held by another live process.
|
|
98
|
+
*/
|
|
99
|
+
acquire(): void;
|
|
100
|
+
/**
|
|
101
|
+
* Release the lock
|
|
102
|
+
*/
|
|
103
|
+
release(): void;
|
|
104
|
+
/**
|
|
105
|
+
* Execute a function while holding the lock
|
|
106
|
+
*/
|
|
107
|
+
withLock<T>(fn: () => T): T;
|
|
108
|
+
/**
|
|
109
|
+
* Execute an async function while holding the lock
|
|
110
|
+
*/
|
|
111
|
+
withLockAsync<T>(fn: () => Promise<T>): Promise<T>;
|
|
112
|
+
/**
|
|
113
|
+
* Check if a process is still running
|
|
114
|
+
*/
|
|
115
|
+
private isProcessAlive;
|
|
116
|
+
}
|
|
30
117
|
/**
|
|
31
118
|
* Process items in batches to manage memory
|
|
32
119
|
*
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|