developer-ai 1.1.1 → 1.1.2
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/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +14 -2
- package/dist/core/agent.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +33 -8
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/tools/git-commit.d.ts +7 -0
- package/dist/tools/git-commit.d.ts.map +1 -0
- package/dist/tools/git-commit.js +84 -0
- package/dist/tools/git-commit.js.map +1 -0
- package/dist/tools/git-diff.d.ts +6 -0
- package/dist/tools/git-diff.d.ts.map +1 -0
- package/dist/tools/git-diff.js +84 -0
- package/dist/tools/git-diff.js.map +1 -0
- package/dist/tools/git-status.d.ts +7 -0
- package/dist/tools/git-status.d.ts.map +1 -0
- package/dist/tools/git-status.js +70 -0
- package/dist/tools/git-status.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +17 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/project-detect.d.ts +8 -0
- package/dist/tools/project-detect.d.ts.map +1 -0
- package/dist/tools/project-detect.js +201 -0
- package/dist/tools/project-detect.js.map +1 -0
- package/dist/tools/read-file.d.ts.map +1 -1
- package/dist/tools/read-file.js +27 -3
- package/dist/tools/read-file.js.map +1 -1
- package/dist/tools/run-command.d.ts.map +1 -1
- package/dist/tools/run-command.js +29 -8
- package/dist/tools/run-command.js.map +1 -1
- package/dist/tools/stat-file.d.ts +7 -0
- package/dist/tools/stat-file.d.ts.map +1 -0
- package/dist/tools/stat-file.js +96 -0
- package/dist/tools/stat-file.js.map +1 -0
- package/dist/tools/test-run.d.ts +7 -0
- package/dist/tools/test-run.d.ts.map +1 -0
- package/dist/tools/test-run.js +181 -0
- package/dist/tools/test-run.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { execSync } from 'node:child_process';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { MAX_OUTPUT_LENGTH } from '../constants.js';
|
|
6
|
+
const schema = z.object({
|
|
7
|
+
command: z.string().optional(),
|
|
8
|
+
filter: z.string().optional(),
|
|
9
|
+
coverage: z.boolean().optional().default(false),
|
|
10
|
+
});
|
|
11
|
+
/** Auto-detect the test command for common project types. */
|
|
12
|
+
function detectTestCommand(root) {
|
|
13
|
+
// package.json scripts.test
|
|
14
|
+
const pkgPath = path.join(root, 'package.json');
|
|
15
|
+
if (fs.existsSync(pkgPath)) {
|
|
16
|
+
try {
|
|
17
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
|
|
18
|
+
if (pkg.scripts?.test && pkg.scripts.test !== 'echo "Error: no test specified" && exit 1') {
|
|
19
|
+
// Determine package manager
|
|
20
|
+
if (fs.existsSync(path.join(root, 'pnpm-lock.yaml')))
|
|
21
|
+
return 'pnpm test';
|
|
22
|
+
if (fs.existsSync(path.join(root, 'yarn.lock')))
|
|
23
|
+
return 'yarn test';
|
|
24
|
+
if (fs.existsSync(path.join(root, 'bun.lockb')))
|
|
25
|
+
return 'bun test';
|
|
26
|
+
return 'npm test';
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
catch { /* ignore */ }
|
|
30
|
+
}
|
|
31
|
+
// Python
|
|
32
|
+
if (fs.existsSync(path.join(root, 'pyproject.toml')) || fs.existsSync(path.join(root, 'pytest.ini'))) {
|
|
33
|
+
return 'python -m pytest -v';
|
|
34
|
+
}
|
|
35
|
+
if (fs.existsSync(path.join(root, 'setup.py'))) {
|
|
36
|
+
return 'python -m pytest -v';
|
|
37
|
+
}
|
|
38
|
+
// Go
|
|
39
|
+
if (fs.existsSync(path.join(root, 'go.mod')))
|
|
40
|
+
return 'go test ./...';
|
|
41
|
+
// Rust
|
|
42
|
+
if (fs.existsSync(path.join(root, 'Cargo.toml')))
|
|
43
|
+
return 'cargo test';
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Parse structured test failures from common test runner outputs.
|
|
48
|
+
* Returns an array of { file, line, message } objects.
|
|
49
|
+
*/
|
|
50
|
+
function parseFailures(output) {
|
|
51
|
+
const failures = [];
|
|
52
|
+
// Jest / Vitest pattern: "● Test Suite > test name" or "FAIL src/file.test.ts"
|
|
53
|
+
const jestFail = /FAIL\s+(.+)/g;
|
|
54
|
+
let m;
|
|
55
|
+
while ((m = jestFail.exec(output)) !== null) {
|
|
56
|
+
failures.push({ file: m[1]?.trim(), message: `FAIL: ${m[1]?.trim()}` });
|
|
57
|
+
}
|
|
58
|
+
// Vitest/Jest assertion errors: "at Object.<anonymous> (src/file.ts:123:45)"
|
|
59
|
+
const stackLine = /at\s+\S+\s+\((.+?):(\d+):\d+\)/g;
|
|
60
|
+
while ((m = stackLine.exec(output)) !== null) {
|
|
61
|
+
failures.push({ file: m[1], line: Number(m[2]), message: `Error at ${m[1]}:${m[2]}` });
|
|
62
|
+
}
|
|
63
|
+
// Pytest pattern: "FAILED tests/test_file.py::test_name"
|
|
64
|
+
const pytestFail = /FAILED\s+(.+?)::(.+)/g;
|
|
65
|
+
while ((m = pytestFail.exec(output)) !== null) {
|
|
66
|
+
failures.push({ file: m[1], message: `FAILED: ${m[1]}::${m[2]}` });
|
|
67
|
+
}
|
|
68
|
+
// Go pattern: "--- FAIL: TestName (0.00s)"
|
|
69
|
+
const goFail = /---\s+FAIL:\s+(\S+)/g;
|
|
70
|
+
while ((m = goFail.exec(output)) !== null) {
|
|
71
|
+
failures.push({ message: `FAIL: ${m[1]}` });
|
|
72
|
+
}
|
|
73
|
+
return failures;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Test runner tool — auto-detects and runs the project's test suite.
|
|
77
|
+
* Parses failures into structured output for the agent to act on.
|
|
78
|
+
*/
|
|
79
|
+
export const testRunTool = {
|
|
80
|
+
name: 'test_run',
|
|
81
|
+
description: 'Run the project\'s test suite. Auto-detects the test command (npm test, pytest, go test, cargo test). ' +
|
|
82
|
+
'Optionally provide a custom command or filter to run specific tests. ' +
|
|
83
|
+
'Returns structured failure information when tests fail.',
|
|
84
|
+
schema,
|
|
85
|
+
jsonSchema: {
|
|
86
|
+
type: 'object',
|
|
87
|
+
properties: {
|
|
88
|
+
command: {
|
|
89
|
+
type: 'string',
|
|
90
|
+
description: 'Custom test command to run (auto-detected if omitted)',
|
|
91
|
+
},
|
|
92
|
+
filter: {
|
|
93
|
+
type: 'string',
|
|
94
|
+
description: 'Test name filter / pattern to run specific tests',
|
|
95
|
+
},
|
|
96
|
+
coverage: {
|
|
97
|
+
type: 'boolean',
|
|
98
|
+
description: 'Include coverage report if supported (default: false)',
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
required: [],
|
|
102
|
+
},
|
|
103
|
+
async execute(input, ctx) {
|
|
104
|
+
const { command: customCmd, filter, coverage } = schema.parse(input);
|
|
105
|
+
let testCmd = customCmd ?? detectTestCommand(ctx.workspaceDir);
|
|
106
|
+
if (!testCmd) {
|
|
107
|
+
return {
|
|
108
|
+
success: false,
|
|
109
|
+
output: '',
|
|
110
|
+
error: 'Could not auto-detect test command. No package.json scripts.test, pytest, go.mod, or Cargo.toml found. ' +
|
|
111
|
+
'Provide a custom `command` parameter.',
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
// Append filter if provided
|
|
115
|
+
if (filter) {
|
|
116
|
+
// Common pattern: append -- --grep or -k or -t depending on runner
|
|
117
|
+
if (testCmd.includes('jest') || testCmd.includes('vitest')) {
|
|
118
|
+
testCmd += ` -- -t "${filter}"`;
|
|
119
|
+
}
|
|
120
|
+
else if (testCmd.includes('pytest')) {
|
|
121
|
+
testCmd += ` -k "${filter}"`;
|
|
122
|
+
}
|
|
123
|
+
else if (testCmd.includes('go test')) {
|
|
124
|
+
testCmd += ` -run "${filter}"`;
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
testCmd += ` ${filter}`;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// Coverage flag
|
|
131
|
+
if (coverage) {
|
|
132
|
+
if (testCmd.includes('jest') || testCmd.includes('vitest')) {
|
|
133
|
+
testCmd += ' --coverage';
|
|
134
|
+
}
|
|
135
|
+
else if (testCmd.includes('pytest')) {
|
|
136
|
+
testCmd += ' --cov';
|
|
137
|
+
}
|
|
138
|
+
else if (testCmd.includes('go test')) {
|
|
139
|
+
testCmd += ' -cover';
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
try {
|
|
143
|
+
const stdout = execSync(testCmd, {
|
|
144
|
+
cwd: ctx.workspaceDir,
|
|
145
|
+
encoding: 'utf-8',
|
|
146
|
+
timeout: 120_000, // Tests can take a while
|
|
147
|
+
maxBuffer: 4 * 1024 * 1024,
|
|
148
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
149
|
+
env: { ...process.env, FORCE_COLOR: '0', CI: 'true' },
|
|
150
|
+
});
|
|
151
|
+
return {
|
|
152
|
+
success: true,
|
|
153
|
+
output: `✅ Tests passed.\n\n${stdout.slice(0, MAX_OUTPUT_LENGTH)}`,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
catch (err) {
|
|
157
|
+
const e = err;
|
|
158
|
+
const combined = `${e.stdout ?? ''}\n${e.stderr ?? ''}`.trim();
|
|
159
|
+
const truncated = combined.slice(0, MAX_OUTPUT_LENGTH);
|
|
160
|
+
// Parse structured failures
|
|
161
|
+
const failures = parseFailures(combined);
|
|
162
|
+
let failureSummary = '';
|
|
163
|
+
if (failures.length > 0) {
|
|
164
|
+
failureSummary = '\n\n📋 Parsed failures:\n' +
|
|
165
|
+
failures
|
|
166
|
+
.slice(0, 20) // cap at 20 failures
|
|
167
|
+
.map((f, i) => {
|
|
168
|
+
const loc = f.file ? ` (${f.file}${f.line ? `:${f.line}` : ''})` : '';
|
|
169
|
+
return ` ${i + 1}. ${f.message}${loc}`;
|
|
170
|
+
})
|
|
171
|
+
.join('\n');
|
|
172
|
+
}
|
|
173
|
+
return {
|
|
174
|
+
success: false,
|
|
175
|
+
output: truncated + failureSummary,
|
|
176
|
+
error: `Tests failed (exit code ${e.status ?? 1})`,
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
};
|
|
181
|
+
//# sourceMappingURL=test-run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-run.js","sourceRoot":"","sources":["../../src/tools/test-run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAChD,CAAC,CAAC;AAEH,6DAA6D;AAC7D,SAAS,iBAAiB,CAAC,IAAY;IACrC,4BAA4B;IAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAChD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC1D,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,2CAA2C,EAAE,CAAC;gBAC1F,4BAA4B;gBAC5B,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;oBAAE,OAAO,WAAW,CAAC;gBACzE,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;oBAAE,OAAO,WAAW,CAAC;gBACpE,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;oBAAE,OAAO,UAAU,CAAC;gBACnE,OAAO,UAAU,CAAC;YACpB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IAED,SAAS;IACT,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;QACrG,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IACD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;QAC/C,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,KAAK;IACL,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAAE,OAAO,eAAe,CAAC;IAErE,OAAO;IACP,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAAE,OAAO,YAAY,CAAC;IAEtE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,MAAc;IACnC,MAAM,QAAQ,GAA6D,EAAE,CAAC;IAE9E,iFAAiF;IACjF,MAAM,QAAQ,GAAG,cAAc,CAAC;IAChC,IAAI,CAAC,CAAC;IACN,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC5C,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,6EAA6E;IAC7E,MAAM,SAAS,GAAG,iCAAiC,CAAC;IACpD,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC7C,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,yDAAyD;IACzD,MAAM,UAAU,GAAG,uBAAuB,CAAC;IAC3C,OAAO,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9C,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,2CAA2C;IAC3C,MAAM,MAAM,GAAG,sBAAsB,CAAC;IACtC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC1C,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAgB;IACtC,IAAI,EAAE,UAAU;IAChB,WAAW,EACT,wGAAwG;QACxG,uEAAuE;QACvE,yDAAyD;IAC3D,MAAM;IACN,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,uDAAuD;aACrE;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kDAAkD;aAChE;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,uDAAuD;aACrE;SACF;QACD,QAAQ,EAAE,EAAE;KACb;IAED,KAAK,CAAC,OAAO,CAAC,KAAc,EAAE,GAAgB;QAC5C,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAErE,IAAI,OAAO,GAAG,SAAS,IAAI,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,EAAE;gBACV,KAAK,EACH,yGAAyG;oBACzG,uCAAuC;aAC1C,CAAC;QACJ,CAAC;QAED,4BAA4B;QAC5B,IAAI,MAAM,EAAE,CAAC;YACX,mEAAmE;YACnE,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3D,OAAO,IAAI,WAAW,MAAM,GAAG,CAAC;YAClC,CAAC;iBAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtC,OAAO,IAAI,QAAQ,MAAM,GAAG,CAAC;YAC/B,CAAC;iBAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvC,OAAO,IAAI,UAAU,MAAM,GAAG,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,gBAAgB;QAChB,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3D,OAAO,IAAI,aAAa,CAAC;YAC3B,CAAC;iBAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtC,OAAO,IAAI,QAAQ,CAAC;YACtB,CAAC;iBAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvC,OAAO,IAAI,SAAS,CAAC;YACvB,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE;gBAC/B,GAAG,EAAE,GAAG,CAAC,YAAY;gBACrB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,OAAO,EAAE,yBAAyB;gBAC3C,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;gBAC1B,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gBAC/B,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE;aACtD,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,sBAAsB,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,EAAE;aACnE,CAAC;QACJ,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,GAA4D,CAAC;YACvE,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;YAC/D,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;YAEvD,4BAA4B;YAC5B,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,cAAc,GAAG,EAAE,CAAC;YACxB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,cAAc,GAAG,2BAA2B;oBAC1C,QAAQ;yBACL,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,qBAAqB;yBAClC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wBACZ,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;wBACtE,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC;oBAC1C,CAAC,CAAC;yBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,SAAS,GAAG,cAAc;gBAClC,KAAK,EAAE,2BAA2B,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG;aACnD,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC"}
|
package/package.json
CHANGED