litmus-cli 1.0.19 → 1.0.21

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.
Files changed (56) hide show
  1. package/README.md +2 -2
  2. package/dist/commands/init.js +2 -2
  3. package/dist/commands/init.js.map +1 -1
  4. package/dist/commands/status.js +1 -1
  5. package/dist/commands/status.js.map +1 -1
  6. package/dist/commands/submit.d.ts.map +1 -1
  7. package/dist/commands/submit.js +35 -11
  8. package/dist/commands/submit.js.map +1 -1
  9. package/dist/index.js +1 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/lib/api.d.ts +6 -16
  12. package/dist/lib/api.d.ts.map +1 -1
  13. package/dist/lib/api.js +67 -5
  14. package/dist/lib/api.js.map +1 -1
  15. package/dist/lib/config.d.ts +0 -3
  16. package/dist/lib/config.d.ts.map +1 -1
  17. package/dist/lib/config.js +0 -3
  18. package/dist/lib/config.js.map +1 -1
  19. package/dist/lib/detect-project.d.ts.map +1 -0
  20. package/dist/lib/detect-project.js.map +1 -0
  21. package/dist/{utils → lib}/errors.d.ts +1 -1
  22. package/dist/lib/errors.d.ts.map +1 -0
  23. package/dist/{utils → lib}/errors.js +2 -3
  24. package/dist/lib/errors.js.map +1 -0
  25. package/dist/lib/extract.d.ts +1 -1
  26. package/dist/lib/extract.d.ts.map +1 -1
  27. package/dist/lib/extract.js +19 -3
  28. package/dist/lib/extract.js.map +1 -1
  29. package/dist/lib/hook-logger.cjs +13 -6
  30. package/dist/lib/platform.d.ts +37 -0
  31. package/dist/lib/platform.d.ts.map +1 -0
  32. package/dist/lib/platform.js +69 -0
  33. package/dist/lib/platform.js.map +1 -0
  34. package/dist/lib/schemas.d.ts +24 -0
  35. package/dist/lib/schemas.d.ts.map +1 -0
  36. package/dist/lib/schemas.js +21 -0
  37. package/dist/lib/schemas.js.map +1 -0
  38. package/dist/lib/tracker.d.ts +1 -1
  39. package/dist/lib/tracker.js +2 -2
  40. package/dist/lib/tracker.js.map +1 -1
  41. package/dist/lib/watcher.d.ts +17 -0
  42. package/dist/lib/watcher.d.ts.map +1 -0
  43. package/dist/lib/watcher.js +752 -0
  44. package/dist/lib/watcher.js.map +1 -0
  45. package/package.json +23 -8
  46. package/dist/lib/watcher.cjs +0 -414
  47. package/dist/staging.d.ts +0 -2
  48. package/dist/staging.d.ts.map +0 -1
  49. package/dist/staging.js +0 -6
  50. package/dist/staging.js.map +0 -1
  51. package/dist/utils/detect-project.d.ts.map +0 -1
  52. package/dist/utils/detect-project.js.map +0 -1
  53. package/dist/utils/errors.d.ts.map +0 -1
  54. package/dist/utils/errors.js.map +0 -1
  55. /package/dist/{utils → lib}/detect-project.d.ts +0 -0
  56. /package/dist/{utils → lib}/detect-project.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/lib/watcher.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,20 +1,31 @@
1
1
  {
2
2
  "name": "litmus-cli",
3
- "version": "1.0.19",
3
+ "version": "1.0.21",
4
4
  "description": "CLI tool for Litmus engineering assessments",
5
5
  "license": "MIT",
6
6
  "author": "elenazhao",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/litmus-team/litmus.git",
10
+ "directory": "cli"
11
+ },
7
12
  "type": "module",
8
13
  "main": "dist/index.js",
14
+ "files": [
15
+ "dist",
16
+ "README.md"
17
+ ],
9
18
  "bin": {
10
- "litmus": "dist/index.js",
11
- "litmus-staging": "dist/staging.js"
19
+ "litmus": "dist/index.js"
12
20
  },
13
21
  "scripts": {
14
- "build": "tsc && cp src/lib/watcher.cjs dist/lib/watcher.cjs && cp src/lib/hook-logger.cjs dist/lib/hook-logger.cjs",
22
+ "build": "tsc && cp src/lib/hook-logger.cjs dist/lib/hook-logger.cjs",
15
23
  "dev": "tsc --watch",
16
24
  "start": "node dist/index.js",
17
- "prepublishOnly": "npm run build"
25
+ "prepublishOnly": "npm run build",
26
+ "test": "vitest run",
27
+ "test:watch": "vitest",
28
+ "test:e2e": "vitest run tests/e2e"
18
29
  },
19
30
  "dependencies": {
20
31
  "chalk": "^5.3.0",
@@ -22,12 +33,16 @@
22
33
  "fast-glob": "^3.3.3",
23
34
  "ora": "^8.1.1",
24
35
  "unzipper": "^0.12.3",
25
- "zip-lib": "^1.2.1"
36
+ "zip-lib": "^1.2.1",
37
+ "zod": "^4.3.6"
26
38
  },
27
39
  "devDependencies": {
28
- "@types/node": "^20.0.0",
40
+ "@types/node": "^20.19.39",
41
+ "@types/pg": "^8.20.0",
29
42
  "@types/unzipper": "^0.10.10",
30
- "typescript": "^5.4.5"
43
+ "pg": "^8.20.0",
44
+ "typescript": "^5.4.5",
45
+ "vitest": "^4.1.4"
31
46
  },
32
47
  "engines": {
33
48
  "node": ">=18.0.0"
@@ -1,414 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Litmus file activity watcher.
4
- * Runs as a detached background process started by `litmus init`.
5
- * Usage: node watcher.cjs <projectDir> <activityLogPath> [cliBinPath]
6
- *
7
- * Tracks:
8
- * - File changes with size deltas and large-paste detection (debounced 500ms per file)
9
- * - Heartbeat events every 5 minutes
10
- * - Git commit events (polled every 30s)
11
- * - Editor and AI tool detection (polled every 10 min)
12
- * - Auto-submit at deadline (if deadline/timeLimit configured)
13
- *
14
- * Writes newline-delimited JSON to the activity log.
15
- */
16
-
17
- const fs = require("fs")
18
- const path = require("path")
19
- const { execSync, execFile } = require("child_process")
20
- const https = require("https")
21
- const http = require("http")
22
-
23
- const [, , projectDir, activityLogPath, cliBinPath] = process.argv
24
-
25
- process.stderr.write(`[watcher] starting: projectDir=${projectDir} log=${activityLogPath}\n`)
26
- process.stderr.write(`[watcher] node ${process.version}, platform=${process.platform}, arch=${process.arch}\n`)
27
-
28
- if (!projectDir || !activityLogPath) {
29
- process.stderr.write("[watcher] missing arguments\n")
30
- process.exit(1)
31
- }
32
-
33
- if (!fs.existsSync(projectDir)) {
34
- process.stderr.write(`[watcher] projectDir does not exist: ${projectDir}\n`)
35
- process.exit(1)
36
- }
37
-
38
- // Ensure the log directory exists
39
- fs.mkdirSync(path.dirname(activityLogPath), { recursive: true })
40
-
41
- // Open the log file for appending
42
- const log = fs.createWriteStream(activityLogPath, { flags: "a" })
43
-
44
- // ── Config ──────────────────────────────────────────────────────
45
- let litmusConfig = null
46
- try {
47
- const configPath = path.join(projectDir, ".litmus", "config.json")
48
- litmusConfig = JSON.parse(fs.readFileSync(configPath, "utf8"))
49
- } catch { /* config not available */ }
50
-
51
- // ── Server upload config ────────────────────────────────────────
52
- let uploadConfig = null
53
- let uploadBuffer = []
54
- const MAX_BUFFER_SIZE = 10_000
55
-
56
- if (litmusConfig && litmusConfig.token && litmusConfig.backendUrl) {
57
- uploadConfig = { token: litmusConfig.token, backendUrl: litmusConfig.backendUrl }
58
- process.stderr.write("[watcher] upload enabled\n")
59
- }
60
-
61
- /**
62
- * Upload buffered events to server.
63
- * Returns a Promise that resolves when the HTTP request completes (used by shutdown).
64
- * During normal operation the returned promise is ignored (fire-and-forget).
65
- */
66
- function uploadEvents() {
67
- if (!uploadConfig || uploadBuffer.length === 0) return Promise.resolve()
68
-
69
- const events = uploadBuffer.splice(0) // take all, clear buffer
70
- const body = JSON.stringify({ events })
71
- const url = new URL(
72
- `${uploadConfig.backendUrl}/cli/activity?token=${encodeURIComponent(uploadConfig.token)}`
73
- )
74
- const reqFn = url.protocol === "https:" ? https.request : http.request
75
-
76
- return new Promise((resolve) => {
77
- const req = reqFn(url, {
78
- method: "POST",
79
- headers: { "Content-Type": "application/json", "Content-Length": Buffer.byteLength(body) },
80
- timeout: 10_000,
81
- }, (res) => {
82
- // Drain response
83
- res.resume()
84
- res.on("end", () => {
85
- if (res.statusCode >= 500) {
86
- process.stderr.write(`[watcher] upload failed (will retry): ${res.statusCode}\n`)
87
- uploadBuffer = events.concat(uploadBuffer)
88
- if (uploadBuffer.length > MAX_BUFFER_SIZE) {
89
- uploadBuffer = uploadBuffer.slice(-MAX_BUFFER_SIZE)
90
- }
91
- } else if (res.statusCode >= 400) {
92
- process.stderr.write(`[watcher] upload rejected: ${res.statusCode}\n`)
93
- }
94
- resolve()
95
- })
96
- })
97
- req.on("error", () => {
98
- // Network error — retry on next heartbeat
99
- uploadBuffer = events.concat(uploadBuffer)
100
- if (uploadBuffer.length > MAX_BUFFER_SIZE) {
101
- uploadBuffer = uploadBuffer.slice(-MAX_BUFFER_SIZE)
102
- }
103
- resolve()
104
- })
105
- req.on("timeout", () => { req.destroy() })
106
- req.end(body)
107
- })
108
- }
109
-
110
- // ── Ignore patterns ──────────────────────────────────────────────
111
- const IGNORED = [
112
- /(?:^|[/\\])\./, // dotfiles and dotdirs (including .git, .litmus)
113
- /node_modules/,
114
- /__pycache__/,
115
- /\.pyc$/,
116
- /\.class$/,
117
- /(?:^|[/\\])venv[/\\]/,
118
- /(?:^|[/\\])\.venv[/\\]/,
119
- ]
120
-
121
- function shouldIgnore(relPath) {
122
- return IGNORED.some((re) => re.test(relPath))
123
- }
124
-
125
- function emit(event) {
126
- log.write(JSON.stringify(event) + "\n")
127
- if (uploadConfig && uploadBuffer.length < MAX_BUFFER_SIZE) {
128
- uploadBuffer.push(event)
129
- }
130
- }
131
-
132
- // ── File size tracking ───────────────────────────────────────────
133
- const LARGE_PASTE_THRESHOLD = 5000 // bytes — matches backend constant
134
- const fileSizes = new Map() // relativePath -> lastKnownSize
135
- const debounceTimers = new Map() // relativePath -> timeoutId
136
-
137
- function emitFileEvent(type, relPath) {
138
- const fullPath = path.join(projectDir, relPath)
139
- const event = { ts: new Date().toISOString(), type, path: relPath }
140
-
141
- try {
142
- const stat = fs.statSync(fullPath)
143
- const fileSize = stat.size
144
- event.fileSize = fileSize
145
-
146
- const prev = fileSizes.get(relPath)
147
- const sizeDelta = prev !== undefined ? fileSize - prev : fileSize
148
- event.sizeDelta = sizeDelta
149
- fileSizes.set(relPath, fileSize)
150
-
151
- if (sizeDelta > LARGE_PASTE_THRESHOLD) {
152
- event.largePaste = true
153
- event.bytesAdded = sizeDelta
154
- }
155
- } catch {
156
- // File was deleted or unreadable — still log the event, just without size data
157
- fileSizes.delete(relPath)
158
- }
159
-
160
- emit(event)
161
- }
162
-
163
- // ── Burst-edit detection (AI-driven multi-file edits) ────────────
164
- const BURST_WINDOW_MS = 2000 // 2 seconds
165
- const BURST_MIN_FILES = 3 // 3+ distinct files = burst
166
- const recentEdits = [] // [{ file, ts }]
167
-
168
- function checkBurstEdit(filename) {
169
- const now = Date.now()
170
- recentEdits.push({ file: filename, ts: now })
171
- // Prune edits outside the window
172
- while (recentEdits.length > 0 && now - recentEdits[0].ts > BURST_WINDOW_MS) {
173
- recentEdits.shift()
174
- }
175
- // Count distinct files in the window
176
- const distinctFiles = new Set(recentEdits.map((e) => e.file))
177
- if (distinctFiles.size >= BURST_MIN_FILES) {
178
- const files = [...distinctFiles]
179
- emit({
180
- ts: new Date().toISOString(),
181
- type: "burst_edit",
182
- fileCount: files.length,
183
- files: files.slice(0, 10), // Cap at 10 filenames
184
- })
185
- recentEdits.length = 0 // Reset to avoid duplicate bursts
186
- }
187
- }
188
-
189
- // ── File system watcher (debounced) ──────────────────────────────
190
- process.on("uncaughtException", (err) => {
191
- process.stderr.write(`[watcher] uncaughtException: ${err.stack || err}\n`)
192
- process.exit(1)
193
- })
194
-
195
- try {
196
- const watcher = fs.watch(projectDir, { recursive: true }, (eventType, filename) => {
197
- if (!filename) return
198
- if (shouldIgnore(filename)) return
199
-
200
- // Check for burst edits on raw events (before debounce — needs real timing)
201
- checkBurstEdit(filename)
202
-
203
- // Debounce per file: collapse multiple events within 500ms into one
204
- if (debounceTimers.has(filename)) {
205
- clearTimeout(debounceTimers.get(filename))
206
- }
207
- debounceTimers.set(filename, setTimeout(() => {
208
- debounceTimers.delete(filename)
209
- emitFileEvent(eventType, filename)
210
- }, 500))
211
- })
212
-
213
- watcher.on("error", (err) => {
214
- process.stderr.write(`[watcher] fs.watch error: ${err}\n`)
215
- })
216
-
217
- process.stderr.write("[watcher] file watcher started\n")
218
- } catch (err) {
219
- // fs.watch with recursive: true is not supported on Linux < Node 22.
220
- // Continue without file watching — heartbeats and git commit polling still work.
221
- process.stderr.write(`[watcher] file watching unavailable: ${err.message} (heartbeat + git tracking still active)\n`)
222
- }
223
-
224
- // ── Heartbeats ───────────────────────────────────────────────────
225
- function emitHeartbeat() {
226
- emit({ ts: new Date().toISOString(), type: "heartbeat" })
227
- uploadEvents() // Upload buffered events to server
228
- }
229
-
230
- emitHeartbeat() // Immediate heartbeat + initial upload
231
- setInterval(emitHeartbeat, 5 * 60 * 1000) // Every 5 minutes
232
-
233
- // ── Git commit polling ───────────────────────────────────────────
234
- let lastCommitHash = null
235
-
236
- function readCurrentCommitHash() {
237
- try {
238
- const headContent = fs.readFileSync(path.join(projectDir, ".git", "HEAD"), "utf8").trim()
239
- if (headContent.startsWith("ref: ")) {
240
- const ref = headContent.slice(5)
241
- const refPath = path.join(projectDir, ".git", ref)
242
- // Try loose ref first, then fall back to packed-refs
243
- if (fs.existsSync(refPath)) {
244
- return fs.readFileSync(refPath, "utf8").trim()
245
- }
246
- const packedPath = path.join(projectDir, ".git", "packed-refs")
247
- if (fs.existsSync(packedPath)) {
248
- const packed = fs.readFileSync(packedPath, "utf8")
249
- for (const line of packed.split("\n")) {
250
- if (line.endsWith(" " + ref)) {
251
- return line.split(" ")[0]
252
- }
253
- }
254
- }
255
- } else {
256
- return headContent // Detached HEAD — the hash itself
257
- }
258
- } catch { /* .git may not exist */ }
259
- return null
260
- }
261
-
262
- // Initialize with current commit hash
263
- lastCommitHash = readCurrentCommitHash()
264
-
265
- function checkGitCommits() {
266
- try {
267
- const currentHash = readCurrentCommitHash()
268
- if (!currentHash || currentHash === lastCommitHash) return
269
-
270
- lastCommitHash = currentHash
271
-
272
- const info = execSync(
273
- 'git log -1 --numstat --pretty=format:"%H|%aI|%s"',
274
- { cwd: projectDir, timeout: 5000, encoding: "utf8" }
275
- )
276
- const lines = info.trim().split("\n")
277
- const header = lines[0].replace(/^"|"$/g, "")
278
- const firstPipe = header.indexOf("|")
279
- const secondPipe = header.indexOf("|", firstPipe + 1)
280
- const hash = header.slice(0, firstPipe)
281
- const message = secondPipe >= 0 ? header.slice(secondPipe + 1) : ""
282
- let linesAdded = 0, linesDeleted = 0, filesChanged = 0
283
-
284
- for (let i = 1; i < lines.length; i++) {
285
- const line = lines[i].trim()
286
- if (!line) continue
287
- const parts = line.split("\t")
288
- if (parts[0] !== "-") linesAdded += parseInt(parts[0], 10) || 0
289
- if (parts[1] !== "-") linesDeleted += parseInt(parts[1], 10) || 0
290
- filesChanged++
291
- }
292
-
293
- emit({
294
- ts: new Date().toISOString(),
295
- type: "commit",
296
- hash: hash ? hash.slice(0, 12) : currentHash.slice(0, 12),
297
- message: message || "",
298
- linesAdded,
299
- linesDeleted,
300
- filesChanged,
301
- })
302
- } catch { /* git not available or command failed — skip */ }
303
- }
304
-
305
- setInterval(checkGitCommits, 30 * 1000) // Every 30 seconds
306
-
307
- // ── Editor & AI tool detection ───────────────────────────────────
308
- const EDITOR_PATTERNS = {
309
- vscode: /\bcode\b/,
310
- cursor: /\bcursor\b/,
311
- vim: /\b[gn]?vim\b/,
312
- intellij: /\bidea\b/,
313
- webstorm: /\bwebstorm\b/,
314
- sublime: /\bsubl\b/,
315
- emacs: /\bemacs\b/,
316
- zed: /\bzed\b/,
317
- }
318
-
319
- const AI_TOOL_PATTERNS = {
320
- claude: /\bclaude\b/,
321
- aider: /\baider\b/,
322
- codeium: /\bcodeium\b/,
323
- codex: /\bcodex\b/,
324
- copilot: /\bcopilot\b/,
325
- }
326
-
327
- function detectEnvironment() {
328
- try {
329
- const ps = execSync("ps aux", { timeout: 5000, encoding: "utf8" })
330
-
331
- const editors = Object.entries(EDITOR_PATTERNS)
332
- .filter(([, re]) => re.test(ps))
333
- .map(([name]) => name)
334
-
335
- const aiTools = Object.entries(AI_TOOL_PATTERNS)
336
- .filter(([, re]) => re.test(ps))
337
- .map(([name]) => name)
338
-
339
- // Cursor is both an editor and an AI tool
340
- if (editors.includes("cursor") && !aiTools.includes("cursor")) {
341
- aiTools.push("cursor")
342
- }
343
-
344
- if (editors.length > 0 || aiTools.length > 0) {
345
- const event = { ts: new Date().toISOString(), type: "env_detected" }
346
- if (editors.length) event.editors = editors
347
- if (aiTools.length) event.aiTools = aiTools
348
- emit(event)
349
- }
350
- } catch { /* ps may fail, skip */ }
351
- }
352
-
353
- detectEnvironment() // Run immediately on startup
354
- setInterval(detectEnvironment, 10 * 60 * 1000) // Every 10 minutes
355
-
356
- // ── Auto-submit at deadline ──────────────────────────────────────
357
- // NOTE: Deadline calculation duplicated from config.ts getEffectiveDeadline()
358
- // (this file is CommonJS and cannot import the TS module). Keep both in sync.
359
- if (cliBinPath && litmusConfig) {
360
- const deadlineCandidates = [
361
- litmusConfig.deadline ? new Date(litmusConfig.deadline).getTime() : Infinity,
362
- litmusConfig.startedAt && litmusConfig.timeLimit
363
- ? new Date(litmusConfig.startedAt).getTime() + litmusConfig.timeLimit * 60_000
364
- : Infinity,
365
- ].filter(t => t !== Infinity)
366
-
367
- if (deadlineCandidates.length > 0) {
368
- const effectiveDeadline = Math.min(...deadlineCandidates)
369
- const msUntilDeadline = effectiveDeadline - Date.now()
370
-
371
- const MAX_TIMEOUT = 2_147_483_647 // setTimeout max (2^31 - 1 ms, ~24.8 days)
372
- if (msUntilDeadline > 0 && msUntilDeadline <= MAX_TIMEOUT) {
373
- process.stderr.write(`[watcher] deadline timer set for ${new Date(effectiveDeadline).toISOString()} (${Math.round(msUntilDeadline / 1000)}s)\n`)
374
- setTimeout(() => {
375
- process.stderr.write("[watcher] deadline reached, auto-submitting\n")
376
- execFile(process.execPath, [cliBinPath, "submit", "--yes"], { cwd: projectDir, timeout: 5 * 60_000 }, (err, _stdout, stderr) => {
377
- if (!err) {
378
- process.stderr.write("[watcher] auto-submit succeeded\n")
379
- emit({ ts: new Date().toISOString(), type: "auto_submit" })
380
- } else {
381
- process.stderr.write(`[watcher] auto-submit failed: ${stderr || err.message}\n`)
382
- emit({ ts: new Date().toISOString(), type: "auto_submit_failed", error: (stderr || err.message).slice(0, 500) })
383
- }
384
- })
385
- }, msUntilDeadline)
386
- } else if (msUntilDeadline > MAX_TIMEOUT) {
387
- process.stderr.write(`[watcher] deadline too far in the future (${Math.round(msUntilDeadline / 86_400_000)}d), skipping auto-submit timer\n`)
388
- } else {
389
- process.stderr.write("[watcher] deadline already passed, skipping auto-submit\n")
390
- }
391
- }
392
- }
393
-
394
- // ── Graceful shutdown ────────────────────────────────────────────
395
- let shuttingDown = false
396
- function shutdown() {
397
- if (shuttingDown) return
398
- shuttingDown = true
399
-
400
- // Flush buffered events to server, then close log and exit
401
- const done = () => log.end(() => process.exit(0))
402
- const uploadPromise = uploadEvents()
403
- if (uploadPromise) {
404
- uploadPromise.then(done, done)
405
- // Hard exit after 5s if upload hangs
406
- setTimeout(() => process.exit(0), 5000).unref()
407
- } else {
408
- done()
409
- }
410
- }
411
- process.on("SIGTERM", shutdown)
412
- process.on("SIGINT", shutdown)
413
-
414
- process.stderr.write("[watcher] all monitors started\n")
package/dist/staging.d.ts DELETED
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- //# sourceMappingURL=staging.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"staging.d.ts","sourceRoot":"","sources":["../src/staging.ts"],"names":[],"mappings":""}
package/dist/staging.js DELETED
@@ -1,6 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- // Staging entrypoint — points the CLI at the elena preview branch
4
- process.env.LITMUS_API_URL = "https://elena.litmus.build";
5
- import("./index.js");
6
- //# sourceMappingURL=staging.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"staging.js","sourceRoot":"","sources":["../src/staging.ts"],"names":[],"mappings":";;AACA,kEAAkE;AAClE,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,4BAA4B,CAAC;AAC1D,MAAM,CAAC,YAAY,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"detect-project.d.ts","sourceRoot":"","sources":["../../src/utils/detect-project.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,QAAQ,GACR,IAAI,GACJ,MAAM,GACN,QAAQ,GACR,MAAM,GACN,MAAM,GACN,KAAK,GACL,SAAS,CAAA;AAEb,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,WAAW,CAAA;IACjB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAwDtD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"detect-project.js","sourceRoot":"","sources":["../../src/utils/detect-project.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,YAAY,6BAA6B,CAAA;AAEtD,qBAAa,UAAW,SAAQ,KAAK;;CAEpC;AAID,QAAA,IAAI,YAAY,EAAE;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAEN,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,YAAY,CAAC,GAAG,IAAI,CAEvE;AAaD,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;AA0CnD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAElE;AAED;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CACnB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,GAAG;IAAE,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,GAC/D,KAAK,CA2BP;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
File without changes
File without changes