@m2015agg/git-skill 0.1.8 → 0.2.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/README.md +39 -1
- package/dist/commands/approve.js +1 -0
- package/dist/commands/approve.js.map +1 -1
- package/dist/commands/context-update.d.ts +3 -0
- package/dist/commands/context-update.js +206 -0
- package/dist/commands/context-update.js.map +1 -0
- package/dist/commands/snapshot.js +10 -0
- package/dist/commands/snapshot.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,38 @@
|
|
|
1
1
|
# @m2015agg/git-skill
|
|
2
2
|
|
|
3
|
-
Git history intelligence for LLMs
|
|
3
|
+
**Git history intelligence for LLMs.** Gives AI agents institutional memory over a codebase's evolution, decisions, and health trends.
|
|
4
|
+
|
|
5
|
+
## Why This Exists
|
|
6
|
+
|
|
7
|
+
AI coding agents start every session blind. They don't know that `chat.py` has been edited 209 times and is the most volatile file in your project. They don't know you reverted that RAG optimization last week because it broke prod. They don't know the codebase just went through a major refactor and things are stabilizing.
|
|
8
|
+
|
|
9
|
+
**git-skill fixes this.** It indexes your entire git history into a local SQLite cache, computes analytics (churn hotspots, coupling, decision points, quality metrics), and writes a health summary directly into Claude Code's memory system — so every new session starts with full awareness.
|
|
10
|
+
|
|
11
|
+
### What It Solves
|
|
12
|
+
|
|
13
|
+
- **"We tried that already"** — Enrichment data tracks what was tried, reverted, and why. Agents stop re-suggesting failed approaches.
|
|
14
|
+
- **"Why does this keep breaking?"** — Churn hotspots and fix-on-fix metrics surface files that are thrashing. Agents flag risk before touching them.
|
|
15
|
+
- **"Who knows this code?"** — Author expertise mapping shows who has the most context on any file or directory.
|
|
16
|
+
- **"What happened while I was gone?"** — Decision points, trends, and release notes give a complete picture of codebase evolution.
|
|
17
|
+
- **"The agent has no memory"** — The `context-update` command writes codebase health directly into Claude's memory system. Every session starts informed.
|
|
18
|
+
|
|
19
|
+
### How It Fits Together
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
git history ──→ SQLite cache ──→ Analytics ──→ Claude Memory
|
|
23
|
+
(commits, (indexed, (hotspots, (auto-loaded
|
|
24
|
+
diffs, searchable) trends, every session)
|
|
25
|
+
branches) decisions)
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Three layers of intelligence, each useful independently:
|
|
29
|
+
1. **Raw data** — every commit, file change, branch, and tag indexed and searchable
|
|
30
|
+
2. **Derived analytics** — churn hotspots, file coupling, decision points, author expertise, quality metrics
|
|
31
|
+
3. **LLM enrichments** — AI-analyzed intent, reasoning, and impact per commit (optional)
|
|
32
|
+
|
|
33
|
+
The `context-update` command bridges git-skill to Claude's memory system, writing a concise health summary that `findRelevantMemories` loads at session start.
|
|
34
|
+
|
|
35
|
+
---
|
|
4
36
|
|
|
5
37
|
## Install
|
|
6
38
|
|
|
@@ -182,6 +214,12 @@ Claude can read the config, run the commands, and interpret the results. When in
|
|
|
182
214
|
- [`@m2015agg/context7-skill`](https://github.com/m2015agg/context7-skill) — Library docs cache
|
|
183
215
|
- `@m2015agg/git-skill` — Git history intelligence
|
|
184
216
|
|
|
217
|
+
## Detailed Documentation
|
|
218
|
+
|
|
219
|
+
- [Design Spec](docs/specs/2026-03-31-git-skill-design.md) — Full architecture, schema, algorithms, and test strategy
|
|
220
|
+
- [GeorgeWorks: Memory Integration](docs/specs/context-injection.md) — How context-update writes to Claude's memory system, internal architecture of `findRelevantMemories`, consolidation phases, and thresholds
|
|
221
|
+
- [Opus Verification Layer](docs/specs/opus-verification-layer.md) — Concept for pre-commit AI verification that catches reverted re-introductions and thrashing patterns
|
|
222
|
+
|
|
185
223
|
## License
|
|
186
224
|
|
|
187
225
|
MIT
|
package/dist/commands/approve.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approve.js","sourceRoot":"","sources":["../../src/commands/approve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,SAAS,KAAK,CAAC,GAAW,IAAU,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEhE,MAAM,aAAa,GAAG;IACpB,0BAA0B;IAC1B,4BAA4B;IAC5B,yBAAyB;IACzB,0BAA0B;IAC1B,4BAA4B;IAC5B,4BAA4B;IAC5B,6BAA6B;IAC7B,2BAA2B;IAC3B,gCAAgC;IAChC,uBAAuB;IACvB,8BAA8B;IAC9B,0BAA0B;IAC1B,iCAAiC;
|
|
1
|
+
{"version":3,"file":"approve.js","sourceRoot":"","sources":["../../src/commands/approve.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { join } from "path";
|
|
3
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync } from "fs";
|
|
4
|
+
import { homedir } from "os";
|
|
5
|
+
import { openDb, hasDb } from "../util/db.js";
|
|
6
|
+
function write(msg) {
|
|
7
|
+
process.stdout.write(msg);
|
|
8
|
+
}
|
|
9
|
+
function encodeProjectPath(cwd) {
|
|
10
|
+
// /home/matt/bibleai → -home-matt-bibleai
|
|
11
|
+
return cwd.replace(/\//g, "-");
|
|
12
|
+
}
|
|
13
|
+
function getMemoryDir(cwd) {
|
|
14
|
+
return join(homedir(), ".claude", "projects", encodeProjectPath(cwd), "memory");
|
|
15
|
+
}
|
|
16
|
+
function buildSummary(historyDir) {
|
|
17
|
+
const db = openDb(historyDir);
|
|
18
|
+
try {
|
|
19
|
+
const totalCommits = db.prepare("SELECT COUNT(*) as c FROM commits").get().c;
|
|
20
|
+
const totalBranches = db.prepare("SELECT COUNT(*) as c FROM branches").get().c;
|
|
21
|
+
const totalTags = db.prepare("SELECT COUNT(*) as c FROM tags").get().c;
|
|
22
|
+
// Top 5 hotspots by total commits
|
|
23
|
+
const hotspots = db.prepare(`
|
|
24
|
+
SELECT file_path, SUM(commits) as commits, SUM(insertions) as insertions, SUM(deletions) as deletions
|
|
25
|
+
FROM churn_hotspots
|
|
26
|
+
GROUP BY file_path
|
|
27
|
+
ORDER BY commits DESC
|
|
28
|
+
LIMIT 5
|
|
29
|
+
`).all();
|
|
30
|
+
// Recent decision points (last 10)
|
|
31
|
+
const decisions = db.prepare(`
|
|
32
|
+
SELECT dp.commit_hash as hash, dp.type, c.message, c.timestamp
|
|
33
|
+
FROM decision_points dp
|
|
34
|
+
JOIN commits c ON c.hash = dp.commit_hash
|
|
35
|
+
ORDER BY c.timestamp DESC
|
|
36
|
+
LIMIT 10
|
|
37
|
+
`).all();
|
|
38
|
+
// Latest metric values (one per metric, most recent commit)
|
|
39
|
+
const metricNames = db.prepare("SELECT DISTINCT metric_name FROM metric_values").all();
|
|
40
|
+
const metrics = [];
|
|
41
|
+
for (const { metric_name } of metricNames) {
|
|
42
|
+
const row = db.prepare(`
|
|
43
|
+
SELECT mv.value FROM metric_values mv
|
|
44
|
+
JOIN commits c ON c.hash = mv.commit_hash
|
|
45
|
+
WHERE mv.metric_name = ?
|
|
46
|
+
ORDER BY c.timestamp DESC
|
|
47
|
+
LIMIT 1
|
|
48
|
+
`).get(metric_name);
|
|
49
|
+
if (row) {
|
|
50
|
+
metrics.push({ name: metric_name, latest: row.value });
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Generate alerts
|
|
54
|
+
const alerts = [];
|
|
55
|
+
const revertRate = metrics.find(m => m.name === "revert_rate");
|
|
56
|
+
if (revertRate && revertRate.latest > 0.05) {
|
|
57
|
+
alerts.push(`[WARN] Revert rate: ${(revertRate.latest * 100).toFixed(1)}% (threshold: 5%)`);
|
|
58
|
+
}
|
|
59
|
+
const fixOnFix = metrics.find(m => m.name === "fix_on_fix_rate");
|
|
60
|
+
if (fixOnFix && fixOnFix.latest > 0.2) {
|
|
61
|
+
alerts.push(`[WARN] Fix-on-fix rate: ${(fixOnFix.latest * 100).toFixed(1)}% (threshold: 20%)`);
|
|
62
|
+
}
|
|
63
|
+
const sameFileChurn = metrics.find(m => m.name === "same_file_churn");
|
|
64
|
+
if (sameFileChurn && sameFileChurn.latest > 0) {
|
|
65
|
+
// Find which files are thrashing
|
|
66
|
+
const thrashingFiles = db.prepare(`
|
|
67
|
+
SELECT file_path, COUNT(*) as cnt
|
|
68
|
+
FROM commit_files
|
|
69
|
+
WHERE commit_hash IN (SELECT hash FROM commits ORDER BY timestamp DESC LIMIT 10)
|
|
70
|
+
GROUP BY file_path
|
|
71
|
+
HAVING cnt >= 3
|
|
72
|
+
ORDER BY cnt DESC
|
|
73
|
+
LIMIT 3
|
|
74
|
+
`).all();
|
|
75
|
+
for (const f of thrashingFiles) {
|
|
76
|
+
alerts.push(`[WARN] Thrashing: ${f.file_path} (${f.cnt} edits in last 10 commits)`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
const snapshotMeta = db.prepare("SELECT value FROM schema_meta WHERE key = 'last_snapshot'").get();
|
|
80
|
+
return {
|
|
81
|
+
totalCommits,
|
|
82
|
+
totalBranches,
|
|
83
|
+
totalTags,
|
|
84
|
+
hotspots,
|
|
85
|
+
decisions,
|
|
86
|
+
metrics,
|
|
87
|
+
alerts,
|
|
88
|
+
snapshotTime: snapshotMeta?.value ?? new Date().toISOString(),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
finally {
|
|
92
|
+
db.close();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
function renderMemoryFile(summary) {
|
|
96
|
+
const date = summary.snapshotTime.slice(0, 10);
|
|
97
|
+
const lines = [];
|
|
98
|
+
lines.push("---");
|
|
99
|
+
lines.push("name: Git History Context");
|
|
100
|
+
lines.push("description: Codebase health, churn hotspots, recent decisions, revert rate, and active alerts from git-skill snapshot");
|
|
101
|
+
lines.push("type: project");
|
|
102
|
+
lines.push("---");
|
|
103
|
+
lines.push("");
|
|
104
|
+
lines.push(`## Codebase State (${date})`);
|
|
105
|
+
lines.push(`${summary.totalCommits} commits | ${summary.totalBranches} branches | ${summary.totalTags} tags`);
|
|
106
|
+
lines.push("");
|
|
107
|
+
if (summary.hotspots.length > 0) {
|
|
108
|
+
lines.push("## Hotspots (most churn)");
|
|
109
|
+
for (const h of summary.hotspots) {
|
|
110
|
+
lines.push(`- ${h.file_path} — ${h.commits} commits, +${h.insertions}/-${h.deletions}`);
|
|
111
|
+
}
|
|
112
|
+
lines.push("");
|
|
113
|
+
}
|
|
114
|
+
if (summary.decisions.length > 0) {
|
|
115
|
+
// Dedupe by type, show most recent of each
|
|
116
|
+
const seen = new Set();
|
|
117
|
+
const uniqueDecisions = summary.decisions.filter(d => {
|
|
118
|
+
const key = `${d.type}:${d.message.slice(0, 30)}`;
|
|
119
|
+
if (seen.has(key))
|
|
120
|
+
return false;
|
|
121
|
+
seen.add(key);
|
|
122
|
+
return true;
|
|
123
|
+
}).slice(0, 5);
|
|
124
|
+
lines.push("## Recent Decisions");
|
|
125
|
+
for (const d of uniqueDecisions) {
|
|
126
|
+
lines.push(`- [${d.type}] ${d.message} (${d.hash.slice(0, 7)}, ${d.timestamp.slice(0, 10)})`);
|
|
127
|
+
}
|
|
128
|
+
lines.push("");
|
|
129
|
+
}
|
|
130
|
+
// Health metrics
|
|
131
|
+
const revertRate = summary.metrics.find(m => m.name === "revert_rate");
|
|
132
|
+
const fixRate = summary.metrics.find(m => m.name === "fix_on_fix_rate");
|
|
133
|
+
const scopeCreep = summary.metrics.find(m => m.name === "scope_creep");
|
|
134
|
+
lines.push("## Health");
|
|
135
|
+
if (revertRate)
|
|
136
|
+
lines.push(`- Revert rate: ${(revertRate.latest * 100).toFixed(1)}%`);
|
|
137
|
+
if (fixRate)
|
|
138
|
+
lines.push(`- Fix-on-fix rate: ${(fixRate.latest * 100).toFixed(1)}%`);
|
|
139
|
+
if (scopeCreep)
|
|
140
|
+
lines.push(`- Files per commit (latest): ${scopeCreep.latest}`);
|
|
141
|
+
lines.push("");
|
|
142
|
+
if (summary.alerts.length > 0) {
|
|
143
|
+
lines.push("## Active Alerts");
|
|
144
|
+
for (const a of summary.alerts) {
|
|
145
|
+
lines.push(`- ${a}`);
|
|
146
|
+
}
|
|
147
|
+
lines.push("");
|
|
148
|
+
}
|
|
149
|
+
return lines.join("\n");
|
|
150
|
+
}
|
|
151
|
+
function updateMemoryIndex(memoryDir) {
|
|
152
|
+
const indexPath = join(memoryDir, "MEMORY.md");
|
|
153
|
+
const entry = "- [Git History Context](git_context.md) — codebase health, hotspots, decisions, alerts from git-skill";
|
|
154
|
+
if (!existsSync(indexPath)) {
|
|
155
|
+
writeFileSync(indexPath, entry + "\n");
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
const content = readFileSync(indexPath, "utf-8");
|
|
159
|
+
if (content.includes("git_context.md"))
|
|
160
|
+
return; // Already indexed
|
|
161
|
+
const suffix = content.endsWith("\n") ? "" : "\n";
|
|
162
|
+
writeFileSync(indexPath, content + suffix + entry + "\n");
|
|
163
|
+
}
|
|
164
|
+
export function contextUpdateCommand() {
|
|
165
|
+
return new Command("context-update")
|
|
166
|
+
.description("Update Claude memory with codebase health summary")
|
|
167
|
+
.option("--json", "Output the summary as JSON")
|
|
168
|
+
.action((opts) => {
|
|
169
|
+
const cwd = process.cwd();
|
|
170
|
+
const historyDir = join(cwd, ".git-history");
|
|
171
|
+
if (!hasDb(historyDir)) {
|
|
172
|
+
write("No .git-history/ database found. Run `git-skill snapshot` first.\n");
|
|
173
|
+
process.exit(1);
|
|
174
|
+
}
|
|
175
|
+
// Build summary from SQLite
|
|
176
|
+
const summary = buildSummary(historyDir);
|
|
177
|
+
if (opts.json) {
|
|
178
|
+
write(JSON.stringify(summary, null, 2) + "\n");
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
// Render memory file
|
|
182
|
+
const content = renderMemoryFile(summary);
|
|
183
|
+
// Write to Claude memory directory
|
|
184
|
+
const memoryDir = getMemoryDir(cwd);
|
|
185
|
+
mkdirSync(memoryDir, { recursive: true });
|
|
186
|
+
const filePath = join(memoryDir, "git_context.md");
|
|
187
|
+
writeFileSync(filePath, content);
|
|
188
|
+
// Update MEMORY.md index (write file first, then index — per GeorgeWorks spec)
|
|
189
|
+
updateMemoryIndex(memoryDir);
|
|
190
|
+
write(`Context updated: ${filePath}\n`);
|
|
191
|
+
write(` ${summary.totalCommits} commits | ${summary.hotspots.length} hotspots | ${summary.decisions.length} decisions | ${summary.alerts.length} alerts\n`);
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
// Exported for use by snapshot command
|
|
195
|
+
export function runContextUpdate(cwd) {
|
|
196
|
+
const historyDir = join(cwd, ".git-history");
|
|
197
|
+
if (!hasDb(historyDir))
|
|
198
|
+
return;
|
|
199
|
+
const summary = buildSummary(historyDir);
|
|
200
|
+
const content = renderMemoryFile(summary);
|
|
201
|
+
const memoryDir = getMemoryDir(cwd);
|
|
202
|
+
mkdirSync(memoryDir, { recursive: true });
|
|
203
|
+
writeFileSync(join(memoryDir, "git_context.md"), content);
|
|
204
|
+
updateMemoryIndex(memoryDir);
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=context-update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-update.js","sourceRoot":"","sources":["../../src/commands/context-update.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { openDb } from "../util/db.js";
|
|
|
4
4
|
import { getLog, getDiffTree, getBranches, getTags } from "../util/git.js";
|
|
5
5
|
import { runAllAnalytics } from "../util/analytics.js";
|
|
6
6
|
import { computeBuiltinMetrics } from "../util/metrics.js";
|
|
7
|
+
import { runContextUpdate } from "./context-update.js";
|
|
7
8
|
export async function snapshotCommand(opts = {}) {
|
|
8
9
|
const cwd = opts.cwd ?? process.cwd();
|
|
9
10
|
const historyDir = join(cwd, ".git-history");
|
|
@@ -149,6 +150,15 @@ export async function snapshotCommand(opts = {}) {
|
|
|
149
150
|
// Store last_snapshot timestamp
|
|
150
151
|
db.prepare("INSERT OR REPLACE INTO schema_meta (key, value) VALUES ('last_snapshot', ?)").run(new Date().toISOString());
|
|
151
152
|
db.close();
|
|
153
|
+
// Phase 7: Update Claude memory context
|
|
154
|
+
process.stdout.write("Phase 7: Updating Claude memory context...\n");
|
|
155
|
+
try {
|
|
156
|
+
runContextUpdate(cwd);
|
|
157
|
+
process.stdout.write(" Memory context updated\n");
|
|
158
|
+
}
|
|
159
|
+
catch {
|
|
160
|
+
process.stdout.write(" Warning: Could not update memory context\n");
|
|
161
|
+
}
|
|
152
162
|
process.stdout.write("Snapshot complete.\n");
|
|
153
163
|
}
|
|
154
164
|
//# sourceMappingURL=snapshot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/commands/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAW,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/commands/snapshot.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -25,6 +25,7 @@ import { installCommand } from "./commands/install.js";
|
|
|
25
25
|
import { cronCommand } from "./commands/cron.js";
|
|
26
26
|
import { updateCommand } from "./commands/update.js";
|
|
27
27
|
import { uninstallCommand } from "./commands/uninstall.js";
|
|
28
|
+
import { contextUpdateCommand } from "./commands/context-update.js";
|
|
28
29
|
const program = new Command();
|
|
29
30
|
program
|
|
30
31
|
.name("git-skill")
|
|
@@ -54,6 +55,7 @@ program.addCommand(installCommand());
|
|
|
54
55
|
program.addCommand(cronCommand());
|
|
55
56
|
program.addCommand(updateCommand());
|
|
56
57
|
program.addCommand(uninstallCommand());
|
|
58
|
+
program.addCommand(contextUpdateCommand());
|
|
57
59
|
program
|
|
58
60
|
.command("snapshot")
|
|
59
61
|
.description("Backfill all git history into SQLite")
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|