@defai.digital/review-domain 13.3.1 → 13.4.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/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/review-service.d.ts +51 -6
- package/dist/review-service.d.ts.map +1 -1
- package/dist/review-service.js +175 -29
- package/dist/review-service.js.map +1 -1
- package/package.json +5 -3
package/dist/index.d.ts
CHANGED
|
@@ -9,5 +9,5 @@ export { FOCUS_MODE_PROMPTS, getFocusModePrompt, RESPONSE_FORMAT_INSTRUCTIONS, b
|
|
|
9
9
|
export { parseReviewResponse, filterCommentsByFocus, filterCommentsByConfidence, validateActionableSuggestions, generateCommentId, } from './comment-builder.js';
|
|
10
10
|
export { formatReviewAsMarkdown, formatCompactSummary } from './markdown-formatter.js';
|
|
11
11
|
export { formatReviewAsSarif, formatSarifAsJson, createEmptySarifReport, } from './sarif-formatter.js';
|
|
12
|
-
export { ReviewService, ReviewError, createReviewService } from './review-service.js';
|
|
12
|
+
export { ReviewService, ReviewError, createReviewService, clearReviewCache, getReviewCacheStats, } from './review-service.js';
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,EACX,aAAa,EACb,WAAW,GACZ,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,4BAA4B,EAC5B,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,0BAA0B,EAC1B,6BAA6B,EAC7B,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAGvF,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,EACX,aAAa,EACb,WAAW,GACZ,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,4BAA4B,EAC5B,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,0BAA0B,EAC1B,6BAA6B,EAC7B,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAGvF,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -12,5 +12,5 @@ export { formatReviewAsMarkdown, formatCompactSummary } from './markdown-formatt
|
|
|
12
12
|
// SARIF Formatter
|
|
13
13
|
export { formatReviewAsSarif, formatSarifAsJson, createEmptySarifReport, } from './sarif-formatter.js';
|
|
14
14
|
// Review Service
|
|
15
|
-
export { ReviewService, ReviewError, createReviewService } from './review-service.js';
|
|
15
|
+
export { ReviewService, ReviewError, createReviewService, clearReviewCache, getReviewCacheStats, } from './review-service.js';
|
|
16
16
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAuBH,cAAc;AACd,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,4BAA4B,EAC5B,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAE1B,kBAAkB;AAClB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,0BAA0B,EAC1B,6BAA6B,EAC7B,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,qBAAqB;AACrB,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEvF,kBAAkB;AAClB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAE9B,iBAAiB;AACjB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAuBH,cAAc;AACd,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,4BAA4B,EAC5B,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAE1B,kBAAkB;AAClB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,0BAA0B,EAC1B,6BAA6B,EAC7B,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,qBAAqB;AACrB,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEvF,kBAAkB;AAClB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAE9B,iBAAiB;AACjB,OAAO,EACL,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC"}
|
package/dist/review-service.d.ts
CHANGED
|
@@ -5,6 +5,12 @@
|
|
|
5
5
|
* Implements:
|
|
6
6
|
* - INV-REV-OPS-001: Timeout Handling
|
|
7
7
|
* - INV-REV-OPS-002: Provider Fallback
|
|
8
|
+
*
|
|
9
|
+
* Performance optimizations (v13.4.0):
|
|
10
|
+
* - Async file I/O with fs.promises
|
|
11
|
+
* - Concurrent file reading with p-limit
|
|
12
|
+
* - .gitignore-aware filtering
|
|
13
|
+
* - Content-hash caching for LLM responses
|
|
8
14
|
*/
|
|
9
15
|
import { type ReviewRequest, type ReviewResult } from '@defai.digital/contracts';
|
|
10
16
|
import type { ReviewServiceConfig, ReviewPromptExecutor, ReviewExecutionOptions, DryRunResult } from './types.js';
|
|
@@ -33,22 +39,48 @@ export declare class ReviewService {
|
|
|
33
39
|
*/
|
|
34
40
|
getCompactSummary(result: ReviewResult): string;
|
|
35
41
|
/**
|
|
36
|
-
* Collect files from paths
|
|
42
|
+
* Collect files from paths with async I/O and .gitignore filtering
|
|
43
|
+
* Performance: Uses p-limit for controlled concurrency
|
|
37
44
|
*/
|
|
38
45
|
private collectFiles;
|
|
39
46
|
/**
|
|
40
|
-
*
|
|
47
|
+
* Load .gitignore file from directory and its parents
|
|
48
|
+
* Returns an ignore instance with all applicable patterns
|
|
49
|
+
*/
|
|
50
|
+
private loadGitignore;
|
|
51
|
+
/**
|
|
52
|
+
* Recursively collect file paths from directory (no file reading yet)
|
|
53
|
+
* Uses .gitignore filtering to skip ignored paths early
|
|
41
54
|
*/
|
|
42
|
-
private
|
|
55
|
+
private collectPathsFromDirectory;
|
|
43
56
|
/**
|
|
44
|
-
* Read a single file
|
|
57
|
+
* Read a single file asynchronously
|
|
45
58
|
*/
|
|
46
|
-
private
|
|
59
|
+
private readFileAsync;
|
|
47
60
|
/**
|
|
48
|
-
* Execute prompt with timeout
|
|
61
|
+
* Execute prompt with timeout and content-hash caching
|
|
49
62
|
* INV-REV-OPS-001: Timeout Handling
|
|
63
|
+
* Performance: Caches responses by prompt hash to avoid repeated LLM calls
|
|
50
64
|
*/
|
|
51
65
|
private executeWithTimeout;
|
|
66
|
+
/**
|
|
67
|
+
* Generate a cache key from prompt content and provider
|
|
68
|
+
* Uses SHA-256 hash for deterministic, collision-resistant keys
|
|
69
|
+
*/
|
|
70
|
+
private generateCacheKey;
|
|
71
|
+
/**
|
|
72
|
+
* Get cached response if valid (not expired)
|
|
73
|
+
*/
|
|
74
|
+
private getCachedResponse;
|
|
75
|
+
/**
|
|
76
|
+
* Cache a response with timestamp
|
|
77
|
+
* Also performs cleanup of old entries
|
|
78
|
+
*/
|
|
79
|
+
private cacheResponse;
|
|
80
|
+
/**
|
|
81
|
+
* Remove expired cache entries
|
|
82
|
+
*/
|
|
83
|
+
private cleanupExpiredCache;
|
|
52
84
|
/**
|
|
53
85
|
* Create empty result for dry run
|
|
54
86
|
*/
|
|
@@ -65,4 +97,17 @@ export declare class ReviewError extends Error {
|
|
|
65
97
|
* Create a review service instance
|
|
66
98
|
*/
|
|
67
99
|
export declare function createReviewService(config?: ReviewServiceConfig, promptExecutor?: ReviewPromptExecutor): ReviewService;
|
|
100
|
+
/**
|
|
101
|
+
* Clear the LLM response cache
|
|
102
|
+
* Useful for testing or when cache should be invalidated
|
|
103
|
+
*/
|
|
104
|
+
export declare function clearReviewCache(): void;
|
|
105
|
+
/**
|
|
106
|
+
* Get cache statistics
|
|
107
|
+
* Returns the current cache size and hit/miss info
|
|
108
|
+
*/
|
|
109
|
+
export declare function getReviewCacheStats(): {
|
|
110
|
+
size: number;
|
|
111
|
+
ttlMs: number;
|
|
112
|
+
};
|
|
68
113
|
//# sourceMappingURL=review-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-service.d.ts","sourceRoot":"","sources":["../src/review-service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"review-service.d.ts","sourceRoot":"","sources":["../src/review-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAQH,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,YAAY,EAOlB,MAAM,0BAA0B,CAAC;AAKlC,OAAO,KAAK,EAEV,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,YAAY,EACb,MAAM,YAAY,CAAC;AA2CpB;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IACvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmC;gBAEtD,MAAM,CAAC,EAAE,mBAAmB,EAAE,cAAc,CAAC,EAAE,oBAAoB;IAK/E;;;OAGG;IACG,MAAM,CACV,OAAO,EAAE,aAAa,EACtB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,YAAY,CAAC;IA8DxB;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAW3D;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM;IAWjF;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM;IAI/C;;;OAGG;YACW,YAAY;IA0C1B;;;OAGG;YACW,aAAa;IAsC3B;;;OAGG;YACW,yBAAyB;IAwCvC;;OAEG;YACW,aAAa;IAoB3B;;;;OAIG;YACW,kBAAkB;IAqDhC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAczB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAcrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAyB1B;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAK1C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,CAAC,EAAE,mBAAmB,EAC5B,cAAc,CAAC,EAAE,oBAAoB,GACpC,aAAa,CAEf;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAKrE"}
|
package/dist/review-service.js
CHANGED
|
@@ -5,15 +5,38 @@
|
|
|
5
5
|
* Implements:
|
|
6
6
|
* - INV-REV-OPS-001: Timeout Handling
|
|
7
7
|
* - INV-REV-OPS-002: Provider Fallback
|
|
8
|
+
*
|
|
9
|
+
* Performance optimizations (v13.4.0):
|
|
10
|
+
* - Async file I/O with fs.promises
|
|
11
|
+
* - Concurrent file reading with p-limit
|
|
12
|
+
* - .gitignore-aware filtering
|
|
13
|
+
* - Content-hash caching for LLM responses
|
|
8
14
|
*/
|
|
9
15
|
import { v4 as uuidv4 } from 'uuid';
|
|
10
|
-
import * as fs from 'node:fs';
|
|
16
|
+
import * as fs from 'node:fs/promises';
|
|
11
17
|
import * as path from 'node:path';
|
|
18
|
+
import * as crypto from 'node:crypto';
|
|
19
|
+
import { createRequire } from 'node:module';
|
|
20
|
+
import pLimit from 'p-limit';
|
|
12
21
|
import { createReviewSummary, sortCommentsBySeverity, ReviewErrorCode, TIMEOUT_PROVIDER_DEFAULT, CODE_EXTENSIONS, IGNORE_DIRECTORIES, } from '@defai.digital/contracts';
|
|
13
22
|
import { buildReviewPrompt } from './focus-modes.js';
|
|
14
23
|
import { parseReviewResponse, filterCommentsByConfidence } from './comment-builder.js';
|
|
15
24
|
import { formatReviewAsMarkdown, formatCompactSummary } from './markdown-formatter.js';
|
|
16
25
|
import { formatReviewAsSarif, formatSarifAsJson } from './sarif-formatter.js';
|
|
26
|
+
// Use createRequire for CJS package interop with the 'ignore' package
|
|
27
|
+
const require = createRequire(import.meta.url);
|
|
28
|
+
const ignore = require('ignore');
|
|
29
|
+
/**
|
|
30
|
+
* Concurrency limit for file I/O operations
|
|
31
|
+
* Balances throughput with system resource usage
|
|
32
|
+
*/
|
|
33
|
+
const FILE_IO_CONCURRENCY = 15;
|
|
34
|
+
/**
|
|
35
|
+
* In-memory cache for LLM responses, keyed by content hash
|
|
36
|
+
* Cache entries expire after 1 hour
|
|
37
|
+
*/
|
|
38
|
+
const responseCache = new Map();
|
|
39
|
+
const CACHE_TTL_MS = 60 * 60 * 1000; // 1 hour
|
|
17
40
|
/**
|
|
18
41
|
* Default configuration
|
|
19
42
|
*/
|
|
@@ -118,28 +141,27 @@ export class ReviewService {
|
|
|
118
141
|
return formatCompactSummary(result);
|
|
119
142
|
}
|
|
120
143
|
/**
|
|
121
|
-
* Collect files from paths
|
|
144
|
+
* Collect files from paths with async I/O and .gitignore filtering
|
|
145
|
+
* Performance: Uses p-limit for controlled concurrency
|
|
122
146
|
*/
|
|
123
147
|
async collectFiles(paths, maxFiles, maxLinesPerFile) {
|
|
124
|
-
const files = [];
|
|
125
148
|
const seen = new Set();
|
|
149
|
+
const filePaths = [];
|
|
150
|
+
// First pass: collect all file paths (fast, low I/O)
|
|
126
151
|
for (const p of paths) {
|
|
127
|
-
if (files.length >= maxFiles)
|
|
128
|
-
break;
|
|
129
152
|
const resolved = path.resolve(p);
|
|
130
153
|
try {
|
|
131
|
-
const stat = fs.
|
|
154
|
+
const stat = await fs.stat(resolved);
|
|
132
155
|
if (stat.isDirectory()) {
|
|
133
|
-
//
|
|
134
|
-
await this.
|
|
156
|
+
// Load .gitignore filter for this directory
|
|
157
|
+
const ig = await this.loadGitignore(resolved);
|
|
158
|
+
// Recursively collect file paths from directory
|
|
159
|
+
await this.collectPathsFromDirectory(resolved, resolved, filePaths, seen, maxFiles, ig);
|
|
135
160
|
}
|
|
136
161
|
else if (stat.isFile()) {
|
|
137
|
-
if (!seen.has(resolved)) {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
files.push(file);
|
|
141
|
-
seen.add(resolved);
|
|
142
|
-
}
|
|
162
|
+
if (!seen.has(resolved) && filePaths.length < maxFiles) {
|
|
163
|
+
filePaths.push(resolved);
|
|
164
|
+
seen.add(resolved);
|
|
143
165
|
}
|
|
144
166
|
}
|
|
145
167
|
}
|
|
@@ -148,31 +170,78 @@ export class ReviewService {
|
|
|
148
170
|
continue;
|
|
149
171
|
}
|
|
150
172
|
}
|
|
151
|
-
|
|
173
|
+
// Second pass: read files concurrently with p-limit
|
|
174
|
+
const limit = pLimit(FILE_IO_CONCURRENCY);
|
|
175
|
+
const readPromises = filePaths.slice(0, maxFiles).map((filePath) => limit(() => this.readFileAsync(filePath, maxLinesPerFile)));
|
|
176
|
+
const results = await Promise.all(readPromises);
|
|
177
|
+
return results.filter((f) => f !== null);
|
|
152
178
|
}
|
|
153
179
|
/**
|
|
154
|
-
*
|
|
180
|
+
* Load .gitignore file from directory and its parents
|
|
181
|
+
* Returns an ignore instance with all applicable patterns
|
|
155
182
|
*/
|
|
156
|
-
async
|
|
183
|
+
async loadGitignore(dir) {
|
|
184
|
+
const ig = ignore();
|
|
185
|
+
// Always ignore common directories (built-in patterns)
|
|
186
|
+
ig.add(IGNORE_DIRECTORIES.map((d) => `${d}/`));
|
|
187
|
+
// Walk up directory tree to find .gitignore files
|
|
188
|
+
let currentDir = dir;
|
|
189
|
+
const gitignoreFiles = [];
|
|
190
|
+
// eslint-disable-next-line no-constant-condition
|
|
191
|
+
while (true) {
|
|
192
|
+
const gitignorePath = path.join(currentDir, '.gitignore');
|
|
193
|
+
try {
|
|
194
|
+
await fs.access(gitignorePath);
|
|
195
|
+
gitignoreFiles.unshift(gitignorePath); // Parent patterns first
|
|
196
|
+
}
|
|
197
|
+
catch {
|
|
198
|
+
// No .gitignore in this directory
|
|
199
|
+
}
|
|
200
|
+
const parentDir = path.dirname(currentDir);
|
|
201
|
+
if (parentDir === currentDir)
|
|
202
|
+
break; // Reached root
|
|
203
|
+
currentDir = parentDir;
|
|
204
|
+
}
|
|
205
|
+
// Load all .gitignore files (parent patterns applied first)
|
|
206
|
+
for (const gitignorePath of gitignoreFiles) {
|
|
207
|
+
try {
|
|
208
|
+
const content = await fs.readFile(gitignorePath, 'utf-8');
|
|
209
|
+
ig.add(content);
|
|
210
|
+
}
|
|
211
|
+
catch {
|
|
212
|
+
// Skip unreadable .gitignore
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
return ig;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Recursively collect file paths from directory (no file reading yet)
|
|
219
|
+
* Uses .gitignore filtering to skip ignored paths early
|
|
220
|
+
*/
|
|
221
|
+
async collectPathsFromDirectory(baseDir, dir, filePaths, seen, maxFiles, ig) {
|
|
222
|
+
if (filePaths.length >= maxFiles)
|
|
223
|
+
return;
|
|
157
224
|
try {
|
|
158
|
-
const entries = fs.
|
|
225
|
+
const entries = await fs.readdir(dir, { withFileTypes: true });
|
|
159
226
|
for (const entry of entries) {
|
|
160
|
-
if (
|
|
227
|
+
if (filePaths.length >= maxFiles)
|
|
161
228
|
return;
|
|
162
229
|
const fullPath = path.join(dir, entry.name);
|
|
230
|
+
const relativePath = path.relative(baseDir, fullPath);
|
|
231
|
+
// Check gitignore (use relative path for pattern matching)
|
|
232
|
+
if (ig.ignores(relativePath))
|
|
233
|
+
continue;
|
|
163
234
|
if (entry.isDirectory()) {
|
|
235
|
+
// Skip hardcoded ignore directories as well (redundant but fast check)
|
|
164
236
|
if (!IGNORE_DIRECTORIES.includes(entry.name)) {
|
|
165
|
-
await this.
|
|
237
|
+
await this.collectPathsFromDirectory(baseDir, fullPath, filePaths, seen, maxFiles, ig);
|
|
166
238
|
}
|
|
167
239
|
}
|
|
168
240
|
else if (entry.isFile()) {
|
|
169
241
|
const ext = path.extname(entry.name);
|
|
170
242
|
if (CODE_EXTENSIONS.includes(ext) && !seen.has(fullPath)) {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
files.push(file);
|
|
174
|
-
seen.add(fullPath);
|
|
175
|
-
}
|
|
243
|
+
filePaths.push(fullPath);
|
|
244
|
+
seen.add(fullPath);
|
|
176
245
|
}
|
|
177
246
|
}
|
|
178
247
|
}
|
|
@@ -182,11 +251,11 @@ export class ReviewService {
|
|
|
182
251
|
}
|
|
183
252
|
}
|
|
184
253
|
/**
|
|
185
|
-
* Read a single file
|
|
254
|
+
* Read a single file asynchronously
|
|
186
255
|
*/
|
|
187
|
-
|
|
256
|
+
async readFileAsync(filePath, maxLines) {
|
|
188
257
|
try {
|
|
189
|
-
const content = fs.
|
|
258
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
190
259
|
const lines = content.split('\n');
|
|
191
260
|
const lineCount = lines.length;
|
|
192
261
|
// Truncate if too many lines
|
|
@@ -202,13 +271,21 @@ export class ReviewService {
|
|
|
202
271
|
}
|
|
203
272
|
}
|
|
204
273
|
/**
|
|
205
|
-
* Execute prompt with timeout
|
|
274
|
+
* Execute prompt with timeout and content-hash caching
|
|
206
275
|
* INV-REV-OPS-001: Timeout Handling
|
|
276
|
+
* Performance: Caches responses by prompt hash to avoid repeated LLM calls
|
|
207
277
|
*/
|
|
208
278
|
async executeWithTimeout(prompt, providerId, timeoutMs) {
|
|
209
279
|
if (!this.promptExecutor) {
|
|
210
280
|
throw new ReviewError(ReviewErrorCode.PROVIDER_UNAVAILABLE, 'No prompt executor configured');
|
|
211
281
|
}
|
|
282
|
+
// Generate cache key from prompt hash + provider
|
|
283
|
+
const cacheKey = this.generateCacheKey(prompt, providerId);
|
|
284
|
+
// Check cache first
|
|
285
|
+
const cached = this.getCachedResponse(cacheKey);
|
|
286
|
+
if (cached) {
|
|
287
|
+
return cached;
|
|
288
|
+
}
|
|
212
289
|
// Create cancellable timeout to prevent timer leaks
|
|
213
290
|
let timeoutId;
|
|
214
291
|
const timeoutPromise = new Promise((_, reject) => {
|
|
@@ -225,6 +302,8 @@ export class ReviewService {
|
|
|
225
302
|
if (timeoutId !== undefined) {
|
|
226
303
|
clearTimeout(timeoutId);
|
|
227
304
|
}
|
|
305
|
+
// Cache successful response
|
|
306
|
+
this.cacheResponse(cacheKey, result);
|
|
228
307
|
return result;
|
|
229
308
|
}
|
|
230
309
|
catch (error) {
|
|
@@ -235,6 +314,56 @@ export class ReviewService {
|
|
|
235
314
|
throw error;
|
|
236
315
|
}
|
|
237
316
|
}
|
|
317
|
+
/**
|
|
318
|
+
* Generate a cache key from prompt content and provider
|
|
319
|
+
* Uses SHA-256 hash for deterministic, collision-resistant keys
|
|
320
|
+
*/
|
|
321
|
+
generateCacheKey(prompt, providerId) {
|
|
322
|
+
const hash = crypto.createHash('sha256');
|
|
323
|
+
hash.update(prompt);
|
|
324
|
+
hash.update(providerId);
|
|
325
|
+
return hash.digest('hex');
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Get cached response if valid (not expired)
|
|
329
|
+
*/
|
|
330
|
+
getCachedResponse(cacheKey) {
|
|
331
|
+
const entry = responseCache.get(cacheKey);
|
|
332
|
+
if (!entry)
|
|
333
|
+
return undefined;
|
|
334
|
+
// Check if expired
|
|
335
|
+
const now = Date.now();
|
|
336
|
+
if (now - entry.timestamp > CACHE_TTL_MS) {
|
|
337
|
+
responseCache.delete(cacheKey);
|
|
338
|
+
return undefined;
|
|
339
|
+
}
|
|
340
|
+
return entry.response;
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Cache a response with timestamp
|
|
344
|
+
* Also performs cleanup of old entries
|
|
345
|
+
*/
|
|
346
|
+
cacheResponse(cacheKey, response) {
|
|
347
|
+
const now = Date.now();
|
|
348
|
+
// Clean up old entries periodically (every 100 cache writes)
|
|
349
|
+
if (responseCache.size > 0 && responseCache.size % 100 === 0) {
|
|
350
|
+
this.cleanupExpiredCache(now);
|
|
351
|
+
}
|
|
352
|
+
responseCache.set(cacheKey, {
|
|
353
|
+
response,
|
|
354
|
+
timestamp: now,
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Remove expired cache entries
|
|
359
|
+
*/
|
|
360
|
+
cleanupExpiredCache(now) {
|
|
361
|
+
for (const [key, entry] of responseCache) {
|
|
362
|
+
if (now - entry.timestamp > CACHE_TTL_MS) {
|
|
363
|
+
responseCache.delete(key);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
}
|
|
238
367
|
/**
|
|
239
368
|
* Create empty result for dry run
|
|
240
369
|
*/
|
|
@@ -276,4 +405,21 @@ export class ReviewError extends Error {
|
|
|
276
405
|
export function createReviewService(config, promptExecutor) {
|
|
277
406
|
return new ReviewService(config, promptExecutor);
|
|
278
407
|
}
|
|
408
|
+
/**
|
|
409
|
+
* Clear the LLM response cache
|
|
410
|
+
* Useful for testing or when cache should be invalidated
|
|
411
|
+
*/
|
|
412
|
+
export function clearReviewCache() {
|
|
413
|
+
responseCache.clear();
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* Get cache statistics
|
|
417
|
+
* Returns the current cache size and hit/miss info
|
|
418
|
+
*/
|
|
419
|
+
export function getReviewCacheStats() {
|
|
420
|
+
return {
|
|
421
|
+
size: responseCache.size,
|
|
422
|
+
ttlMs: CACHE_TTL_MS,
|
|
423
|
+
};
|
|
424
|
+
}
|
|
279
425
|
//# sourceMappingURL=review-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-service.js","sourceRoot":"","sources":["../src/review-service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAGL,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,wBAAwB,EACxB,eAAe,EACf,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAS9E;;GAEG;AACH,MAAM,cAAc,GAAkC;IACpD,eAAe,EAAE,QAAQ;IACzB,gBAAgB,EAAE,wBAAwB;IAC1C,qBAAqB,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC;CACrD,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,aAAa;IACP,MAAM,CAAgC;IACtC,cAAc,CAAmC;IAElE,YAAY,MAA4B,EAAE,cAAqC;QAC7E,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;QAC/C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CACV,OAAsB,EACtB,OAAgC;QAEhC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC;QAC1B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;QAEpE,iBAAiB;QACjB,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QACtE,CAAC;QAED,0BAA0B;QAC1B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;QAEhG,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,WAAW,CAAC,eAAe,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;QACpF,CAAC;QAED,eAAe;QACf,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAExE,uBAAuB;QACvB,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;QAC5F,IAAI,QAAkE,CAAC;QAEvE,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAChE,MAAM,IAAI,WAAW,CAAC,eAAe,CAAC,OAAO,EAAE,0BAA0B,SAAS,IAAI,CAAC,CAAC;YAC1F,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,iBAAiB;QACjB,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QAE3F,qCAAqC;QACrC,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QAE5F,qCAAqC;QACrC,MAAM,cAAc,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;QAEhE,gBAAgB;QAChB,MAAM,OAAO,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAEpD,MAAM,MAAM,GAAiB;YAC3B,QAAQ;YACR,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,MAAM,EAAE;YACxC,QAAQ,EAAE,cAAc;YACxB,OAAO;YACP,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACvC,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YAC7D,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YAClC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,OAAsB;QACjC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;QAEhG,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC/B,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YAC1D,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,mBAAmB,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,EAAE,8BAA8B;SACzE,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,MAAoB,EAAE,MAAqC;QACtE,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,UAAU;gBACb,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC;YACxC,KAAK,OAAO;gBACV,OAAO,iBAAiB,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;YACxD,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,MAAoB;QACpC,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CACxB,KAAe,EACf,QAAgB,EAChB,eAAuB;QAEvB,MAAM,KAAK,GAAkB,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAE/B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ;gBAAE,MAAM;YAEpC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAEjC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAEnC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;oBACvB,2CAA2C;oBAC3C,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;gBACpF,CAAC;qBAAM,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;oBACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACxB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;wBACtD,IAAI,IAAI,EAAE,CAAC;4BACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BACjB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;wBACrB,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,sCAAsC;gBACtC,SAAS;YACX,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,oBAAoB,CAChC,GAAW,EACX,KAAoB,EACpB,IAAiB,EACjB,QAAgB,EAChB,eAAuB;QAEvB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAE7D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ;oBAAE,OAAO;gBAErC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAE5C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAyC,CAAC,EAAE,CAAC;wBAClF,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;oBACpF,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;oBAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACrC,IAAI,eAAe,CAAC,QAAQ,CAAC,GAAqC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC3F,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;wBACtD,IAAI,IAAI,EAAE,CAAC;4BACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BACjB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;wBACrB,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gCAAgC;QAClC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,QAAQ,CAAC,QAAgB,EAAE,QAAgB;QACjD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;YAE/B,6BAA6B;YAC7B,MAAM,gBAAgB,GACpB,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC;YAE9F,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,gBAAgB;gBACzB,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC;aACzC,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,kBAAkB,CAC9B,MAAc,EACd,UAAkB,EAClB,SAAiB;QAEjB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,WAAW,CACnB,eAAe,CAAC,oBAAoB,EACpC,+BAA+B,CAChC,CAAC;QACJ,CAAC;QAED,oDAAoD;QACpD,IAAI,SAAoD,CAAC;QACzD,MAAM,cAAc,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YACtD,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC1B,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,SAAS,IAAI,CAAC,CAAC,CAAC;YAC3D,CAAC,EAAE,SAAS,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;gBAChC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;gBAC9D,cAAc;aACf,CAAC,CAAC;YAEH,mBAAmB;YACnB,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,YAAY,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,gCAAgC;YAChC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,YAAY,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB,CACvB,OAAsB,EACtB,QAAgB,EAChB,MAAoB,EACpB,SAAiB;QAEjB,OAAO;YACL,QAAQ;YACR,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,MAAM,EAAE;YACxC,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE;gBACP,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;gBAC/D,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,EAAE;gBACZ,WAAW,EAAE,GAAG;gBAChB,OAAO,EAAE,0BAA0B,MAAM,CAAC,KAAK,CAAC,MAAM,WAAW,MAAM,CAAC,UAAU,QAAQ;aAC3F;YACD,aAAa,EAAE,MAAM,CAAC,KAAK;YAC3B,aAAa,EAAE,MAAM,CAAC,UAAU;YAChC,UAAU,EAAE,SAAS;YACrB,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YAClC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC3B,IAAI,CAAS;IAEtB,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAA4B,EAC5B,cAAqC;IAErC,OAAO,IAAI,aAAa,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AACnD,CAAC"}
|
|
1
|
+
{"version":3,"file":"review-service.js","sourceRoot":"","sources":["../src/review-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,OAAO,EAGL,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,wBAAwB,EACxB,eAAe,EACf,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAS9E,sEAAsE;AACtE,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,MAAM,GAAyB,OAAO,CAAC,QAAQ,CAAC,CAAC;AASvD;;;GAGG;AACH,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAU/B;;;GAGG;AACH,MAAM,aAAa,GAAG,IAAI,GAAG,EAAsB,CAAC;AACpD,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;AAE9C;;GAEG;AACH,MAAM,cAAc,GAAkC;IACpD,eAAe,EAAE,QAAQ;IACzB,gBAAgB,EAAE,wBAAwB;IAC1C,qBAAqB,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC;CACrD,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,aAAa;IACP,MAAM,CAAgC;IACtC,cAAc,CAAmC;IAElE,YAAY,MAA4B,EAAE,cAAqC;QAC7E,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;QAC/C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CACV,OAAsB,EACtB,OAAgC;QAEhC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC;QAC1B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;QAEpE,iBAAiB;QACjB,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QACtE,CAAC;QAED,0BAA0B;QAC1B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;QAEhG,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,WAAW,CAAC,eAAe,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;QACpF,CAAC;QAED,eAAe;QACf,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAExE,uBAAuB;QACvB,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;QAC5F,IAAI,QAAkE,CAAC;QAEvE,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAChE,MAAM,IAAI,WAAW,CAAC,eAAe,CAAC,OAAO,EAAE,0BAA0B,SAAS,IAAI,CAAC,CAAC;YAC1F,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,iBAAiB;QACjB,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QAE3F,qCAAqC;QACrC,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QAE5F,qCAAqC;QACrC,MAAM,cAAc,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;QAEhE,gBAAgB;QAChB,MAAM,OAAO,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAEpD,MAAM,MAAM,GAAiB;YAC3B,QAAQ;YACR,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,MAAM,EAAE;YACxC,QAAQ,EAAE,cAAc;YACxB,OAAO;YACP,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACvC,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YAC7D,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YAClC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,OAAsB;QACjC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;QAEhG,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC/B,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YAC1D,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,mBAAmB,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,EAAE,8BAA8B;SACzE,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,MAAoB,EAAE,MAAqC;QACtE,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,UAAU;gBACb,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC;YACxC,KAAK,OAAO;gBACV,OAAO,iBAAiB,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;YACxD,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,MAAoB;QACpC,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,YAAY,CACxB,KAAe,EACf,QAAgB,EAChB,eAAuB;QAEvB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,SAAS,GAAa,EAAE,CAAC;QAE/B,qDAAqD;QACrD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAEjC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAErC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;oBACvB,4CAA4C;oBAC5C,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAC9C,gDAAgD;oBAChD,MAAM,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC1F,CAAC;qBAAM,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;oBACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;wBACvD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACzB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACrB,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,sCAAsC;gBACtC,SAAS;YACX,CAAC;QACH,CAAC;QAED,oDAAoD;QACpD,MAAM,KAAK,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC1C,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACjE,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAC3D,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAChD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAoB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,aAAa,CAAC,GAAW;QACrC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QAEpB,uDAAuD;QACvD,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAE/C,kDAAkD;QAClD,IAAI,UAAU,GAAG,GAAG,CAAC;QACrB,MAAM,cAAc,GAAa,EAAE,CAAC;QAEpC,iDAAiD;QACjD,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;YAC1D,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gBAC/B,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,wBAAwB;YACjE,CAAC;YAAC,MAAM,CAAC;gBACP,kCAAkC;YACpC,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC3C,IAAI,SAAS,KAAK,UAAU;gBAAE,MAAM,CAAC,eAAe;YACpD,UAAU,GAAG,SAAS,CAAC;QACzB,CAAC;QAED,4DAA4D;QAC5D,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;gBAC1D,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAClB,CAAC;YAAC,MAAM,CAAC;gBACP,6BAA6B;YAC/B,CAAC;QACH,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,yBAAyB,CACrC,OAAe,EACf,GAAW,EACX,SAAmB,EACnB,IAAiB,EACjB,QAAgB,EAChB,EAAkB;QAElB,IAAI,SAAS,CAAC,MAAM,IAAI,QAAQ;YAAE,OAAO;QAEzC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAE/D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,SAAS,CAAC,MAAM,IAAI,QAAQ;oBAAE,OAAO;gBAEzC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAEtD,2DAA2D;gBAC3D,IAAI,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;oBAAE,SAAS;gBAEvC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxB,uEAAuE;oBACvE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAyC,CAAC,EAAE,CAAC;wBAClF,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;oBACzF,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;oBAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACrC,IAAI,eAAe,CAAC,QAAQ,CAAC,GAAqC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC3F,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACzB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACrB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gCAAgC;QAClC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,QAAgB;QAC5D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;YAE/B,6BAA6B;YAC7B,MAAM,gBAAgB,GACpB,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC;YAE9F,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,gBAAgB;gBACzB,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC;aACzC,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,kBAAkB,CAC9B,MAAc,EACd,UAAkB,EAClB,SAAiB;QAEjB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,WAAW,CACnB,eAAe,CAAC,oBAAoB,EACpC,+BAA+B,CAChC,CAAC;QACJ,CAAC;QAED,iDAAiD;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAE3D,oBAAoB;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,oDAAoD;QACpD,IAAI,SAAoD,CAAC;QACzD,MAAM,cAAc,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YACtD,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC1B,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,SAAS,IAAI,CAAC,CAAC,CAAC;YAC3D,CAAC,EAAE,SAAS,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;gBAChC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;gBAC9D,cAAc;aACf,CAAC,CAAC;YAEH,mBAAmB;YACnB,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,YAAY,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;YAED,4BAA4B;YAC5B,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAErC,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,gCAAgC;YAChC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,YAAY,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,gBAAgB,CAAC,MAAc,EAAE,UAAkB;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,QAAgB;QACxC,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAE7B,mBAAmB;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,GAAG,YAAY,EAAE,CAAC;YACzC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC/B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,KAAK,CAAC,QAAQ,CAAC;IACxB,CAAC;IAED;;;OAGG;IACK,aAAa,CAAC,QAAgB,EAAE,QAAkE;QACxG,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,6DAA6D;QAC7D,IAAI,aAAa,CAAC,IAAI,GAAG,CAAC,IAAI,aAAa,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE;YAC1B,QAAQ;YACR,SAAS,EAAE,GAAG;SACf,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,GAAW;QACrC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,aAAa,EAAE,CAAC;YACzC,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,GAAG,YAAY,EAAE,CAAC;gBACzC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB,CACvB,OAAsB,EACtB,QAAgB,EAChB,MAAoB,EACpB,SAAiB;QAEjB,OAAO;YACL,QAAQ;YACR,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,MAAM,EAAE;YACxC,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE;gBACP,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;gBAC/D,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,EAAE;gBACZ,WAAW,EAAE,GAAG;gBAChB,OAAO,EAAE,0BAA0B,MAAM,CAAC,KAAK,CAAC,MAAM,WAAW,MAAM,CAAC,UAAU,QAAQ;aAC3F;YACD,aAAa,EAAE,MAAM,CAAC,KAAK;YAC3B,aAAa,EAAE,MAAM,CAAC,UAAU;YAChC,UAAU,EAAE,SAAS;YACrB,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YAClC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC3B,IAAI,CAAS;IAEtB,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAA4B,EAC5B,cAAqC;IAErC,OAAO,IAAI,aAAa,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,aAAa,CAAC,KAAK,EAAE,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,IAAI,EAAE,aAAa,CAAC,IAAI;QACxB,KAAK,EAAE,YAAY;KACpB,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@defai.digital/review-domain",
|
|
3
|
-
"version": "13.
|
|
3
|
+
"version": "13.4.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Review domain for AutomatosX - AI-powered code review with focused analysis modes",
|
|
6
6
|
"license": "BUSL-1.1",
|
|
@@ -32,9 +32,11 @@
|
|
|
32
32
|
"access": "public"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
+
"ignore": "^6.0.2",
|
|
36
|
+
"p-limit": "^6.1.0",
|
|
35
37
|
"uuid": "^11.0.5",
|
|
36
|
-
"@defai.digital/analysis-domain": "13.
|
|
37
|
-
"@defai.digital/contracts": "13.
|
|
38
|
+
"@defai.digital/analysis-domain": "13.4.1",
|
|
39
|
+
"@defai.digital/contracts": "13.4.1"
|
|
38
40
|
},
|
|
39
41
|
"devDependencies": {
|
|
40
42
|
"@types/uuid": "^10.0.0"
|