@mesadev/agentblame 0.2.10 → 3.0.0

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 (68) hide show
  1. package/dist/agentblame.js +3500 -0
  2. package/dist/blame.d.ts +4 -1
  3. package/dist/blame.js +280 -78
  4. package/dist/blame.js.map +1 -1
  5. package/dist/capture.d.ts +4 -7
  6. package/dist/capture.js +465 -467
  7. package/dist/capture.js.map +1 -1
  8. package/dist/index.d.ts +1 -1
  9. package/dist/index.js +334 -72
  10. package/dist/index.js.map +1 -1
  11. package/dist/lib/analytics.d.ts +179 -0
  12. package/dist/lib/analytics.js +833 -0
  13. package/dist/lib/analytics.js.map +1 -0
  14. package/dist/lib/attribution.d.ts +54 -0
  15. package/dist/lib/attribution.js +266 -0
  16. package/dist/lib/attribution.js.map +1 -0
  17. package/dist/lib/checkpoint.d.ts +97 -0
  18. package/dist/lib/checkpoint.js +441 -0
  19. package/dist/lib/checkpoint.js.map +1 -0
  20. package/dist/lib/config.d.ts +46 -0
  21. package/dist/lib/config.js +123 -0
  22. package/dist/lib/config.js.map +1 -0
  23. package/dist/lib/database.d.ts +115 -85
  24. package/dist/lib/database.js +306 -323
  25. package/dist/lib/database.js.map +1 -1
  26. package/dist/lib/delta.d.ts +78 -0
  27. package/dist/lib/delta.js +309 -0
  28. package/dist/lib/delta.js.map +1 -0
  29. package/dist/lib/git/gitBlame.js +9 -4
  30. package/dist/lib/git/gitBlame.js.map +1 -1
  31. package/dist/lib/git/gitConfig.d.ts +5 -3
  32. package/dist/lib/git/gitConfig.js +41 -6
  33. package/dist/lib/git/gitConfig.js.map +1 -1
  34. package/dist/lib/git/gitDiff.d.ts +13 -1
  35. package/dist/lib/git/gitDiff.js +39 -7
  36. package/dist/lib/git/gitDiff.js.map +1 -1
  37. package/dist/lib/git/gitNotes.d.ts +30 -4
  38. package/dist/lib/git/gitNotes.js +140 -24
  39. package/dist/lib/git/gitNotes.js.map +1 -1
  40. package/dist/lib/hooks.d.ts +1 -0
  41. package/dist/lib/hooks.js +148 -27
  42. package/dist/lib/hooks.js.map +1 -1
  43. package/dist/lib/index.d.ts +7 -0
  44. package/dist/lib/index.js +13 -0
  45. package/dist/lib/index.js.map +1 -1
  46. package/dist/lib/storage.d.ts +163 -0
  47. package/dist/lib/storage.js +823 -0
  48. package/dist/lib/storage.js.map +1 -0
  49. package/dist/lib/trace.d.ts +118 -0
  50. package/dist/lib/trace.js +499 -0
  51. package/dist/lib/trace.js.map +1 -0
  52. package/dist/lib/types.d.ts +322 -114
  53. package/dist/lib/types.js +2 -1
  54. package/dist/lib/types.js.map +1 -1
  55. package/dist/lib/util.d.ts +8 -8
  56. package/dist/lib/util.js +18 -22
  57. package/dist/lib/util.js.map +1 -1
  58. package/dist/lib/watcher.d.ts +104 -0
  59. package/dist/lib/watcher.js +398 -0
  60. package/dist/lib/watcher.js.map +1 -0
  61. package/dist/post-merge.js +460 -421
  62. package/dist/post-merge.js.map +1 -1
  63. package/dist/process.d.ts +6 -5
  64. package/dist/process.js +182 -158
  65. package/dist/process.js.map +1 -1
  66. package/dist/sync.js +172 -131
  67. package/dist/sync.js.map +1 -1
  68. package/package.json +3 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/lib/trace.ts"],"names":[],"mappings":"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"}
@@ -1,140 +1,172 @@
1
1
  /**
2
- * Core Types for Agent Blame
2
+ * Core Types for Agent Blame v3
3
3
  *
4
4
  * Line-level attribution tracking for AI-generated code.
5
+ * Uses git blobs for snapshots, SQLite for sessions/prompts/tool_calls.
5
6
  */
6
7
  /**
7
- * AI provider that generated the code
8
+ * AI agent that generated the code
8
9
  */
9
- export type AiProvider = "cursor" | "claudeCode" | "opencode";
10
+ export type AiAgent = "cursor" | "claude" | "opencode";
10
11
  /**
11
- * Attribution category - we only track AI-generated code
12
- * Human is the default for unattributed code
12
+ * A session represents one AI conversation
13
+ * ID is SHA256(agent:conversation_id)[0:16]
13
14
  */
14
- export type AttributionCategory = "ai_generated";
15
+ export interface Session {
16
+ id: string;
17
+ agent: AiAgent;
18
+ model: string | null;
19
+ conversationId: string | null;
20
+ createdAt: string;
21
+ firstCommitSha: string | null;
22
+ firstCommitAt: string | null;
23
+ }
15
24
  /**
16
- * How the match was determined
17
- * Only exact matching - no fuzzy/substring matching
25
+ * A user prompt that triggered AI actions
18
26
  */
19
- export type MatchType = "exact_hash" | "normalized_hash" | "move_detected";
27
+ export interface Prompt {
28
+ id: number;
29
+ sessionId: string;
30
+ content: string;
31
+ timestamp: string;
32
+ }
20
33
  /**
21
- * A single line captured from an AI edit
34
+ * A tool call made by the AI
22
35
  */
23
- export interface CapturedLine {
24
- content: string;
25
- hash: string;
26
- hashNormalized: string;
27
- lineNumber?: number;
28
- contextBefore?: string;
29
- contextAfter?: string;
36
+ export interface ToolCall {
37
+ id: number;
38
+ sessionId: string;
39
+ toolName: string;
40
+ toolInput: string | null;
41
+ filePath: string | null;
42
+ timestamp: string;
43
+ beforeBlob: string | null;
44
+ afterBlob: string | null;
30
45
  }
31
46
  /**
32
- * A hunk of code from a git diff
47
+ * Entry in the working log (snapshots.jsonl)
33
48
  */
34
- export interface DiffHunk {
35
- path: string;
36
- startLine: number;
37
- endLine: number;
38
- content: string;
39
- contentHash: string;
40
- contentHashNormalized: string;
41
- lines: Array<{
42
- lineNumber: number;
43
- content: string;
44
- hash: string;
45
- hashNormalized: string;
46
- }>;
49
+ export interface SnapshotEntry {
50
+ ts: string;
51
+ file: string;
52
+ blob: string;
53
+ session: string | null;
54
+ type: "ai_edit" | "human_edit";
47
55
  }
48
56
  /**
49
- * Deleted lines from a commit (for move detection)
57
+ * A snapshot in the chain for line tracing
50
58
  */
51
- export interface DeletedBlock {
52
- path: string;
53
- startLine: number;
54
- lines: string[];
55
- normalizedContent: string;
59
+ export interface Snapshot {
60
+ timestamp: string;
61
+ filePath: string;
62
+ blobSha: string;
63
+ sessionId: string | null;
64
+ type: "ai_edit" | "human_edit";
56
65
  }
57
66
  /**
58
- * A detected move operation
67
+ * File attribution in INITIAL file
59
68
  */
60
- export interface MoveMapping {
61
- fromPath: string;
62
- fromStartLine: number;
63
- toPath: string;
64
- toStartLine: number;
65
- lineCount: number;
66
- normalizedContent: string;
69
+ export interface FileAttribution {
70
+ blobSha: string;
71
+ attributions: Array<{
72
+ lines: [number, number];
73
+ sessionId: string;
74
+ }>;
67
75
  }
68
76
  /**
69
- * Attribution for a single line
77
+ * INITIAL file format - tracks uncommitted attributions
70
78
  */
71
- export interface LineAttribution {
72
- path: string;
73
- line: number;
74
- provider: AiProvider;
75
- model: string | null;
79
+ export interface InitialFile {
80
+ baseSha: string;
81
+ files: Record<string, FileAttribution>;
82
+ }
83
+ /**
84
+ * Result of tracing a line's origin
85
+ */
86
+ export interface LineOrigin {
87
+ sessionId: string | null;
76
88
  confidence: number;
77
- matchType: MatchType;
78
- contentHash: string;
79
89
  }
80
90
  /**
81
- * Attribution for a range of lines (merged consecutive lines)
91
+ * Context for line matching (prev/next lines)
82
92
  */
83
- export interface RangeAttribution {
84
- path: string;
85
- startLine: number;
86
- endLine: number;
87
- provider: AiProvider;
93
+ export interface LineContext {
94
+ prev?: string;
95
+ next?: string;
96
+ }
97
+ /**
98
+ * A single prompt with its associated tool calls
99
+ * Tool calls that happen after this prompt (until next prompt) belong to this prompt
100
+ */
101
+ export interface PromptEntry {
102
+ id?: number;
103
+ timestamp: string;
104
+ content: string | null;
105
+ tools?: Record<string, number>;
106
+ duration?: number;
107
+ }
108
+ /**
109
+ * Session metadata in git notes
110
+ */
111
+ export interface SessionMetadata {
112
+ agent: AiAgent;
88
113
  model: string | null;
89
- confidence: number;
90
- matchType: MatchType;
91
- contentHash: string;
114
+ prompts: PromptEntry[] | null;
115
+ startedAt: string;
92
116
  }
93
117
  /**
94
- * Result of matching a commit
118
+ * Git notes v3 JSON metadata section
95
119
  */
96
- export interface MatchResult {
97
- sha: string;
98
- attributions: RangeAttribution[];
99
- unmatchedLines: number;
100
- totalLines: number;
120
+ export interface GitNotesMetadata {
121
+ version: 3;
122
+ timestamp: string;
123
+ sessions: Record<string, SessionMetadata>;
101
124
  }
102
125
  /**
103
- * Git notes format for storing attribution (version 2 with camelCase)
126
+ * Full parsed v3 attribution
104
127
  */
105
- export interface GitNotesAttribution {
106
- version: 2;
128
+ export interface Attribution {
129
+ version: 3;
107
130
  timestamp: string;
108
- attributions: Array<{
109
- path: string;
110
- startLine: number;
111
- endLine: number;
112
- category: AttributionCategory;
113
- provider: AiProvider;
114
- model: string | null;
115
- confidence: number;
116
- matchType: MatchType;
117
- contentHash: string;
131
+ sessions: Record<string, SessionMetadata>;
132
+ files: Record<string, {
133
+ aiRanges: Array<{
134
+ sessionId: string;
135
+ promptId?: number | null;
136
+ startLine: number;
137
+ endLine: number;
138
+ }>;
139
+ humanRanges: Array<{
140
+ startLine: number;
141
+ endLine: number;
142
+ }>;
118
143
  }>;
119
144
  }
120
145
  /**
121
- * Git repository state
146
+ * Attribution for a commit (used during processing)
122
147
  */
123
- export interface GitState {
124
- branch: string | null;
125
- head: string | null;
126
- mergeHead: string | null;
127
- rebaseHead: string | null;
128
- cherryPickHead: string | null;
129
- bisectLog: boolean;
148
+ export interface CommitAttribution {
149
+ sessions: Map<string, Map<string, number[]>>;
150
+ humanRanges: Map<string, number[]>;
151
+ }
152
+ /**
153
+ * Result of processing a commit
154
+ */
155
+ export interface ProcessResult {
156
+ sha: string;
157
+ filesProcessed: number;
158
+ aiLines: number;
159
+ humanLines: number;
160
+ sessions: string[];
130
161
  }
131
162
  /**
132
- * Provider breakdown for analytics
163
+ * Agent breakdown for analytics
133
164
  */
134
- export interface ProviderBreakdown {
165
+ export interface AgentBreakdown {
135
166
  cursor?: number;
136
- claudeCode?: number;
167
+ claude?: number;
137
168
  opencode?: number;
169
+ [key: string]: number | undefined;
138
170
  }
139
171
  /**
140
172
  * Model breakdown for analytics (model name -> line count)
@@ -144,45 +176,221 @@ export type ModelBreakdown = Record<string, number>;
144
176
  * Per-contributor analytics
145
177
  */
146
178
  export interface ContributorStats {
147
- totalLines: number;
179
+ commits: number;
180
+ prs: number;
181
+ prompts: number;
148
182
  aiLines: number;
149
- providers: ProviderBreakdown;
150
- models: ModelBreakdown;
151
- prCount: number;
183
+ humanLines: number;
184
+ unknownLines: number;
185
+ topModels: string[];
152
186
  }
153
187
  /**
154
- * PR history entry
188
+ * PR entry in analytics
155
189
  */
156
- export interface PRHistoryEntry {
157
- date: string;
158
- pr: number;
159
- title?: string;
190
+ export interface PREntry {
191
+ number: number;
192
+ title: string;
160
193
  author: string;
161
- added: number;
162
- removed: number;
163
194
  aiLines: number;
164
- providers?: ProviderBreakdown;
165
- models?: ModelBreakdown;
195
+ humanLines: number;
196
+ unknownLines: number;
197
+ prompts: number;
198
+ mergedAt: string;
166
199
  }
167
200
  /**
168
- * Repository-wide analytics summary
201
+ * Analytics summary
169
202
  */
170
203
  export interface AnalyticsSummary {
171
204
  totalLines: number;
172
205
  aiLines: number;
173
206
  humanLines: number;
174
- providers: ProviderBreakdown;
175
- models: ModelBreakdown;
176
- updated: string;
207
+ unknownLines: number;
208
+ prompts: number;
209
+ byAgent: AgentBreakdown;
210
+ byModel: ModelBreakdown;
211
+ }
212
+ /**
213
+ * Hourly data point for time-series analytics
214
+ * Used for "Past 24 hours" and "3 days" views
215
+ */
216
+ export interface HourlyDataPoint {
217
+ hour: string;
218
+ aiLines: number;
219
+ humanLines: number;
220
+ unknownLines: number;
221
+ prompts: number;
222
+ byAgent: AgentBreakdown;
223
+ byModel: ModelBreakdown;
224
+ commits: number;
177
225
  }
178
226
  /**
179
- * Analytics note format (stored as git note on analytics tag)
180
- * Version 2: Analytics with camelCase field names
181
- * Version 1: Attribution notes (per-commit, different format)
227
+ * Daily data point for time-series analytics
228
+ * Used for "1 week" and "1 month" views
229
+ */
230
+ export interface DailyDataPoint {
231
+ date: string;
232
+ aiLines: number;
233
+ humanLines: number;
234
+ unknownLines: number;
235
+ prompts: number;
236
+ byAgent: AgentBreakdown;
237
+ byModel: ModelBreakdown;
238
+ commits: number;
239
+ }
240
+ /**
241
+ * Time-series data for trending
242
+ * Supports: Past 24 hours, 3 days, 1 week, 1 month, All time
243
+ */
244
+ export interface TimeSeries {
245
+ hourly: HourlyDataPoint[];
246
+ daily: DailyDataPoint[];
247
+ }
248
+ /**
249
+ * Analytics note format (stored on root commit)
182
250
  */
183
251
  export interface AnalyticsNote {
184
- version: 2;
252
+ v: 3;
253
+ updated: string;
185
254
  summary: AnalyticsSummary;
186
255
  contributors: Record<string, ContributorStats>;
187
- history: PRHistoryEntry[];
256
+ recentPRs: PREntry[];
257
+ timeSeries?: TimeSeries;
258
+ }
259
+ /**
260
+ * Git repository state
261
+ */
262
+ export interface GitState {
263
+ branch: string | null;
264
+ head: string | null;
265
+ mergeHead: string | null;
266
+ rebaseHead: string | null;
267
+ cherryPickHead: string | null;
268
+ bisectLog: boolean;
269
+ }
270
+ /**
271
+ * A hunk from a unified diff
272
+ * Represents a contiguous block of changes
273
+ */
274
+ export interface DeltaHunk {
275
+ oldStart: number;
276
+ oldCount: number;
277
+ newStart: number;
278
+ newCount: number;
279
+ }
280
+ /**
281
+ * An edit delta - represents what changed in one edit operation
282
+ * Stored in deltas.jsonl, append-only
283
+ */
284
+ export interface EditDelta {
285
+ ts: string;
286
+ file: string;
287
+ sessionId: string | null;
288
+ promptId: number | null;
289
+ hunks: DeltaHunk[];
290
+ afterBlob?: string;
291
+ }
292
+ /**
293
+ * Line attribution computed from replaying deltas
294
+ * Used at commit time to build git notes
295
+ */
296
+ export interface LineAttribution {
297
+ startLine: number;
298
+ endLine: number;
299
+ sessionId: string;
300
+ promptId: number | null;
301
+ overrode?: string;
302
+ }
303
+ /**
304
+ * Computed attribution for a file
305
+ * Result of replaying all deltas
306
+ */
307
+ export interface ComputedFileAttribution {
308
+ aiRanges: LineAttribution[];
309
+ humanRanges: Array<{
310
+ startLine: number;
311
+ endLine: number;
312
+ }>;
313
+ }
314
+ /**
315
+ * Git diff hunk
316
+ */
317
+ export interface DiffHunk {
318
+ path: string;
319
+ startLine: number;
320
+ endLine: number;
321
+ content: string;
322
+ contentHash: string;
323
+ contentHashNormalized: string;
324
+ lines: Array<{
325
+ lineNumber: number;
326
+ content: string;
327
+ hash: string;
328
+ hashNormalized: string;
329
+ }>;
330
+ }
331
+ /**
332
+ * Deleted lines from a commit (for move detection)
333
+ */
334
+ export interface DeletedBlock {
335
+ path: string;
336
+ startLine: number;
337
+ lines: string[];
338
+ normalizedContent: string;
339
+ }
340
+ /**
341
+ * A detected move operation
342
+ */
343
+ export interface MoveMapping {
344
+ fromPath: string;
345
+ fromStartLine: number;
346
+ toPath: string;
347
+ toStartLine: number;
348
+ lineCount: number;
349
+ normalizedContent: string;
350
+ }
351
+ /**
352
+ * Claude hook payload
353
+ */
354
+ export interface ClaudeHookPayload {
355
+ tool_name: string;
356
+ tool_input: {
357
+ file_path?: string;
358
+ command?: string;
359
+ old_string?: string;
360
+ new_string?: string;
361
+ content?: string;
362
+ edits?: Array<{
363
+ old_string: string;
364
+ new_string: string;
365
+ }>;
366
+ };
367
+ tool_response?: string;
368
+ session_id?: string;
369
+ transcript_path?: string;
370
+ }
371
+ /**
372
+ * Cursor hook payload
373
+ */
374
+ export interface CursorHookPayload {
375
+ event: string;
376
+ model?: string;
377
+ session_id?: string;
378
+ edits?: Array<{
379
+ file_path: string;
380
+ old_content?: string;
381
+ new_content: string;
382
+ }>;
383
+ }
384
+ /**
385
+ * OpenCode hook payload
386
+ */
387
+ export interface OpenCodeHookPayload {
388
+ tool_name: string;
389
+ tool_input: Record<string, unknown>;
390
+ file_path?: string;
391
+ before_content?: string;
392
+ after_content?: string;
393
+ model?: string;
394
+ session_id?: string;
395
+ prompt?: string;
188
396
  }
package/dist/lib/types.js CHANGED
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  /**
3
- * Core Types for Agent Blame
3
+ * Core Types for Agent Blame v3
4
4
  *
5
5
  * Line-level attribution tracking for AI-generated code.
6
+ * Uses git blobs for snapshots, SQLite for sessions/prompts/tool_calls.
6
7
  */
7
8
  Object.defineProperty(exports, "__esModule", { value: true });
8
9
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
@@ -13,12 +13,12 @@ export declare function computeContentHash(content: string): string;
13
13
  */
14
14
  export declare function computeNormalizedHash(content: string): string;
15
15
  /**
16
- * Find the .agentblame directory by walking up from a file path.
17
- * Returns null if not found (file is not in an initialized repo).
16
+ * Normalize model name by stripping date/version suffixes.
17
+ * Uses generic patterns - no model-specific logic, so new models work automatically.
18
+ *
19
+ * Strips:
20
+ * - Trailing 3+ digit version numbers: -001, -0613, -20241022
21
+ * - Trailing YYYY-MM-DD dates: -2024-04-09
22
+ * - Mid-string date codes before suffixes: -1106-preview → -preview
18
23
  */
19
- export declare function findAgentBlameDir(filePath: string): string | null;
20
- /**
21
- * Get the agentblame directory for a specific repo root.
22
- * Used during init when we know the repo root.
23
- */
24
- export declare function getAgentBlameDirForRepo(repoRoot: string): string;
24
+ export declare function normalizeModelName(model: string | null): string | null;
package/dist/lib/util.js CHANGED
@@ -36,10 +36,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.getDistDir = getDistDir;
37
37
  exports.computeContentHash = computeContentHash;
38
38
  exports.computeNormalizedHash = computeNormalizedHash;
39
- exports.findAgentBlameDir = findAgentBlameDir;
40
- exports.getAgentBlameDirForRepo = getAgentBlameDirForRepo;
39
+ exports.normalizeModelName = normalizeModelName;
41
40
  const crypto = __importStar(require("node:crypto"));
42
- const fs = __importStar(require("node:fs"));
43
41
  const path = __importStar(require("node:path"));
44
42
  /**
45
43
  * Get the dist directory (where compiled .js files are)
@@ -71,25 +69,23 @@ function computeNormalizedHash(content) {
71
69
  return `sha256:${crypto.createHash("sha256").update(normalized).digest("hex")}`;
72
70
  }
73
71
  /**
74
- * Find the .agentblame directory by walking up from a file path.
75
- * Returns null if not found (file is not in an initialized repo).
72
+ * Normalize model name by stripping date/version suffixes.
73
+ * Uses generic patterns - no model-specific logic, so new models work automatically.
74
+ *
75
+ * Strips:
76
+ * - Trailing 3+ digit version numbers: -001, -0613, -20241022
77
+ * - Trailing YYYY-MM-DD dates: -2024-04-09
78
+ * - Mid-string date codes before suffixes: -1106-preview → -preview
76
79
  */
77
- function findAgentBlameDir(filePath) {
78
- let dir = path.dirname(filePath);
79
- while (dir !== path.dirname(dir)) {
80
- const agentblameDir = path.join(dir, ".agentblame");
81
- if (fs.existsSync(agentblameDir)) {
82
- return agentblameDir;
83
- }
84
- dir = path.dirname(dir);
85
- }
86
- return null;
87
- }
88
- /**
89
- * Get the agentblame directory for a specific repo root.
90
- * Used during init when we know the repo root.
91
- */
92
- function getAgentBlameDirForRepo(repoRoot) {
93
- return path.join(repoRoot, ".agentblame");
80
+ function normalizeModelName(model) {
81
+ if (!model)
82
+ return null;
83
+ return model
84
+ // -YYYY-MM-DD at end (e.g., -2024-04-09)
85
+ .replace(/-\d{4}-\d{2}-\d{2}$/, "")
86
+ // -NNNN-suffix where NNNN is 4 digits (e.g., -1106-preview → -preview)
87
+ .replace(/-\d{4}(-[a-z]+)$/i, "$1")
88
+ // -NNN or -NNNN or -NNNNNNNN at end (3-8 digits)
89
+ .replace(/-\d{3,8}$/, "");
94
90
  }
95
91
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/lib/util.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,gCAUC;AAKD,gDAEC;AAKD,sDAGC;AAMD,8CAYC;AAMD,0DAEC;AA5DD,oDAAsC;AACtC,4CAA8B;AAC9B,gDAAkC;AAElC;;;;GAIG;AACH,SAAgB,UAAU,CAAC,OAAe;IACxC,uCAAuC;IACvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;QACrB,yCAAyC;QACzC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IACD,4EAA4E;IAC5E,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,OAAe;IAChD,OAAO,UAAU,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AAC/E,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,OAAe;IACnD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC/C,OAAO,UAAU,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AAClF,CAAC;AAED;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,QAAgB;IAChD,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEjC,OAAO,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QACpD,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACjC,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAgB,uBAAuB,CAAC,QAAgB;IACtD,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/lib/util.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,gCAUC;AAKD,gDAEC;AAKD,sDAGC;AAWD,gDAUC;AAtDD,oDAAsC;AACtC,gDAAkC;AAElC;;;;GAIG;AACH,SAAgB,UAAU,CAAC,OAAe;IACxC,uCAAuC;IACvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;QACrB,yCAAyC;QACzC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IACD,4EAA4E;IAC5E,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,OAAe;IAChD,OAAO,UAAU,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AAC/E,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,OAAe;IACnD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC/C,OAAO,UAAU,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AAClF,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,kBAAkB,CAAC,KAAoB;IACrD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,OAAO,KAAK;QACV,yCAAyC;SACxC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;QACnC,uEAAuE;SACtE,OAAO,CAAC,mBAAmB,EAAE,IAAI,CAAC;QACnC,iDAAiD;SAChD,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC9B,CAAC"}