@goondan/openharness-cli 0.5.1 → 1.0.0-rc.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/package.json +11 -10
- package/dist/bin.d.ts +0 -3
- package/dist/bin.d.ts.map +0 -1
- package/dist/bin.js +0 -4
- package/dist/bin.js.map +0 -1
- package/dist/cli.d.ts +0 -2
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -380
- package/dist/cli.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goondan/openharness-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0-rc.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"oh": "./dist/index.js"
|
|
@@ -15,21 +15,22 @@
|
|
|
15
15
|
"files": [
|
|
16
16
|
"dist"
|
|
17
17
|
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsup src/index.ts --format esm --dts",
|
|
20
|
+
"prepack": "pnpm build",
|
|
21
|
+
"typecheck": "tsc --noEmit",
|
|
22
|
+
"test": "vitest run"
|
|
23
|
+
},
|
|
18
24
|
"dependencies": {
|
|
25
|
+
"@goondan/openharness": "workspace:*",
|
|
26
|
+
"@goondan/openharness-types": "workspace:*",
|
|
19
27
|
"dotenv": "^16.4.0",
|
|
20
|
-
"jiti": "^2.6.1"
|
|
21
|
-
"@goondan/openharness": "0.5.1",
|
|
22
|
-
"@goondan/openharness-types": "0.5.1"
|
|
28
|
+
"jiti": "^2.6.1"
|
|
23
29
|
},
|
|
24
30
|
"devDependencies": {
|
|
25
31
|
"@types/node": "^22.0.0",
|
|
26
32
|
"tsup": "^8.4.0",
|
|
27
33
|
"typescript": "^5.7.0",
|
|
28
34
|
"vitest": "^3.0.0"
|
|
29
|
-
},
|
|
30
|
-
"scripts": {
|
|
31
|
-
"build": "tsup src/index.ts --format esm --dts",
|
|
32
|
-
"typecheck": "tsc --noEmit",
|
|
33
|
-
"test": "vitest run"
|
|
34
35
|
}
|
|
35
|
-
}
|
|
36
|
+
}
|
package/dist/bin.d.ts
DELETED
package/dist/bin.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":""}
|
package/dist/bin.js
DELETED
package/dist/bin.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
package/dist/cli.d.ts
DELETED
package/dist/cli.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AA4aA,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BxD"}
|
package/dist/cli.js
DELETED
|
@@ -1,380 +0,0 @@
|
|
|
1
|
-
import * as path from "node:path";
|
|
2
|
-
import { readFile } from "node:fs/promises";
|
|
3
|
-
import { createInterface } from "node:readline/promises";
|
|
4
|
-
const OPENHARNESS_MODULE_NAME = "@goondan/openharness";
|
|
5
|
-
function isNonEmptyString(value) {
|
|
6
|
-
return typeof value === "string" && value.trim().length > 0;
|
|
7
|
-
}
|
|
8
|
-
function usage() {
|
|
9
|
-
return [
|
|
10
|
-
"OpenHarness CLI",
|
|
11
|
-
"",
|
|
12
|
-
"Usage:",
|
|
13
|
-
" oh [options] # REPL (default). Use /exit to quit.",
|
|
14
|
-
" oh repl [options] # REPL",
|
|
15
|
-
" oh run <text> [options] # One-shot execution (single turn)",
|
|
16
|
-
"",
|
|
17
|
-
"Options:",
|
|
18
|
-
" --workdir <path> harness.yaml을 찾을 기준 디렉토리 (default: cwd)",
|
|
19
|
-
" --entrypoint <file> 엔트리포인트 파일명 (default: harness.yaml)",
|
|
20
|
-
" --agent <name> 실행할 Agent 이름",
|
|
21
|
-
" --conversation <id> conversationId",
|
|
22
|
-
" --state-root <path> 상태 저장 루트 (.goondan 대체)",
|
|
23
|
-
" --max-steps <n> turn 당 최대 step",
|
|
24
|
-
" -h, --help 도움말",
|
|
25
|
-
].join("\n");
|
|
26
|
-
}
|
|
27
|
-
function printError(message) {
|
|
28
|
-
process.stderr.write(`${message.trimEnd()}\n`);
|
|
29
|
-
}
|
|
30
|
-
function parseNumberOption(raw, optionName) {
|
|
31
|
-
const n = Number(raw);
|
|
32
|
-
if (!Number.isFinite(n) || !Number.isInteger(n) || n <= 0) {
|
|
33
|
-
throw new Error(`${optionName}는 1 이상의 정수여야 합니다: ${raw}`);
|
|
34
|
-
}
|
|
35
|
-
return n;
|
|
36
|
-
}
|
|
37
|
-
function resolveShellCwd() {
|
|
38
|
-
const pwd = process.env.PWD;
|
|
39
|
-
if (typeof pwd === "string" && pwd.trim().length > 0 && path.isAbsolute(pwd)) {
|
|
40
|
-
return pwd;
|
|
41
|
-
}
|
|
42
|
-
return process.cwd();
|
|
43
|
-
}
|
|
44
|
-
function parseDotenv(content) {
|
|
45
|
-
const out = {};
|
|
46
|
-
const normalized = content.replace(/^\uFEFF/, ""); // strip BOM
|
|
47
|
-
const lines = normalized.split(/\r?\n/);
|
|
48
|
-
for (const rawLine of lines) {
|
|
49
|
-
const trimmedLine = rawLine.trim();
|
|
50
|
-
if (trimmedLine.length === 0 || trimmedLine.startsWith("#")) {
|
|
51
|
-
continue;
|
|
52
|
-
}
|
|
53
|
-
const withoutExport = trimmedLine.startsWith("export ") ? trimmedLine.slice("export ".length).trim() : trimmedLine;
|
|
54
|
-
const eqIndex = withoutExport.indexOf("=");
|
|
55
|
-
if (eqIndex <= 0) {
|
|
56
|
-
continue;
|
|
57
|
-
}
|
|
58
|
-
const key = withoutExport.slice(0, eqIndex).trim();
|
|
59
|
-
if (key.length === 0) {
|
|
60
|
-
continue;
|
|
61
|
-
}
|
|
62
|
-
let value = withoutExport.slice(eqIndex + 1).trim();
|
|
63
|
-
if (value.length === 0) {
|
|
64
|
-
out[key] = "";
|
|
65
|
-
continue;
|
|
66
|
-
}
|
|
67
|
-
const first = value[0];
|
|
68
|
-
const last = value[value.length - 1];
|
|
69
|
-
const isSingleQuoted = first === "'" && last === "'" && value.length >= 2;
|
|
70
|
-
const isDoubleQuoted = first === '"' && last === '"' && value.length >= 2;
|
|
71
|
-
if (isSingleQuoted) {
|
|
72
|
-
out[key] = value.slice(1, -1);
|
|
73
|
-
continue;
|
|
74
|
-
}
|
|
75
|
-
if (isDoubleQuoted) {
|
|
76
|
-
const inner = value.slice(1, -1);
|
|
77
|
-
out[key] = inner
|
|
78
|
-
.replace(/\\n/g, "\n")
|
|
79
|
-
.replace(/\\r/g, "\r")
|
|
80
|
-
.replace(/\\t/g, "\t")
|
|
81
|
-
.replace(/\\"/g, "\"")
|
|
82
|
-
.replace(/\\\\/g, "\\");
|
|
83
|
-
continue;
|
|
84
|
-
}
|
|
85
|
-
const commentIndex = value.indexOf(" #");
|
|
86
|
-
if (commentIndex >= 0) {
|
|
87
|
-
value = value.slice(0, commentIndex).trimEnd();
|
|
88
|
-
}
|
|
89
|
-
out[key] = value;
|
|
90
|
-
}
|
|
91
|
-
return out;
|
|
92
|
-
}
|
|
93
|
-
async function loadDotenv(workdir) {
|
|
94
|
-
const envPath = path.join(workdir, ".env");
|
|
95
|
-
try {
|
|
96
|
-
const content = await readFile(envPath, "utf8");
|
|
97
|
-
return parseDotenv(content);
|
|
98
|
-
}
|
|
99
|
-
catch (error) {
|
|
100
|
-
const code = error && typeof error === "object" && "code" in error ? error.code : undefined;
|
|
101
|
-
if (code === "ENOENT") {
|
|
102
|
-
return {};
|
|
103
|
-
}
|
|
104
|
-
throw error;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
function parseArgs(argv) {
|
|
108
|
-
const shellCwd = resolveShellCwd();
|
|
109
|
-
const options = {
|
|
110
|
-
workdir: shellCwd,
|
|
111
|
-
entrypointFileName: "harness.yaml",
|
|
112
|
-
};
|
|
113
|
-
const positionals = [];
|
|
114
|
-
for (let i = 0; i < argv.length; i += 1) {
|
|
115
|
-
const arg = argv[i];
|
|
116
|
-
if (arg === undefined) {
|
|
117
|
-
continue;
|
|
118
|
-
}
|
|
119
|
-
if (arg === "--") {
|
|
120
|
-
// pnpm scripts often inject a leading `--` (e.g. `node dist/bin.js -- ...`).
|
|
121
|
-
// Treat the leading one as a no-op separator.
|
|
122
|
-
if (i === 0) {
|
|
123
|
-
continue;
|
|
124
|
-
}
|
|
125
|
-
// For users, keep the conventional "end of options" behavior.
|
|
126
|
-
positionals.push(...argv.slice(i + 1));
|
|
127
|
-
break;
|
|
128
|
-
}
|
|
129
|
-
if (arg === "-h" || arg === "--help") {
|
|
130
|
-
positionals.push("--help");
|
|
131
|
-
continue;
|
|
132
|
-
}
|
|
133
|
-
if (!arg.startsWith("--")) {
|
|
134
|
-
positionals.push(arg);
|
|
135
|
-
continue;
|
|
136
|
-
}
|
|
137
|
-
const eqIndex = arg.indexOf("=");
|
|
138
|
-
const key = eqIndex >= 0 ? arg.slice(0, eqIndex) : arg;
|
|
139
|
-
const inlineValue = eqIndex >= 0 ? arg.slice(eqIndex + 1) : undefined;
|
|
140
|
-
const readValue = () => {
|
|
141
|
-
if (inlineValue !== undefined) {
|
|
142
|
-
return inlineValue;
|
|
143
|
-
}
|
|
144
|
-
const next = argv[i + 1];
|
|
145
|
-
if (next === undefined || next.startsWith("-")) {
|
|
146
|
-
throw new Error(`${key} 옵션은 값을 필요로 합니다.`);
|
|
147
|
-
}
|
|
148
|
-
i += 1;
|
|
149
|
-
return next;
|
|
150
|
-
};
|
|
151
|
-
switch (key) {
|
|
152
|
-
case "--workdir": {
|
|
153
|
-
const value = readValue();
|
|
154
|
-
options.workdir = path.resolve(shellCwd, value);
|
|
155
|
-
break;
|
|
156
|
-
}
|
|
157
|
-
case "--entrypoint": {
|
|
158
|
-
const value = readValue();
|
|
159
|
-
options.entrypointFileName = path.basename(value);
|
|
160
|
-
break;
|
|
161
|
-
}
|
|
162
|
-
case "--agent": {
|
|
163
|
-
const value = readValue();
|
|
164
|
-
options.agentName = value;
|
|
165
|
-
break;
|
|
166
|
-
}
|
|
167
|
-
case "--conversation": {
|
|
168
|
-
const value = readValue();
|
|
169
|
-
options.conversationId = value;
|
|
170
|
-
break;
|
|
171
|
-
}
|
|
172
|
-
case "--state-root": {
|
|
173
|
-
const value = readValue();
|
|
174
|
-
options.stateRoot = path.resolve(shellCwd, value);
|
|
175
|
-
break;
|
|
176
|
-
}
|
|
177
|
-
case "--max-steps": {
|
|
178
|
-
const value = readValue();
|
|
179
|
-
options.maxSteps = parseNumberOption(value, "--max-steps");
|
|
180
|
-
break;
|
|
181
|
-
}
|
|
182
|
-
default:
|
|
183
|
-
throw new Error(`알 수 없는 옵션입니다: ${key}`);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
if (positionals.includes("--help")) {
|
|
187
|
-
return { command: "repl", commandArgs: ["--help"], options };
|
|
188
|
-
}
|
|
189
|
-
const [maybeCommand, ...rest] = positionals;
|
|
190
|
-
if (!maybeCommand) {
|
|
191
|
-
return { command: "repl", commandArgs: [], options };
|
|
192
|
-
}
|
|
193
|
-
if (maybeCommand === "repl") {
|
|
194
|
-
return { command: "repl", commandArgs: rest, options };
|
|
195
|
-
}
|
|
196
|
-
if (maybeCommand === "run") {
|
|
197
|
-
return { command: "run", commandArgs: rest, options };
|
|
198
|
-
}
|
|
199
|
-
throw new Error(`알 수 없는 명령입니다: ${maybeCommand}\n\n${usage()}`);
|
|
200
|
-
}
|
|
201
|
-
function isRecord(value) {
|
|
202
|
-
return typeof value === "object" && value !== null;
|
|
203
|
-
}
|
|
204
|
-
function extractFinalText(result) {
|
|
205
|
-
if (typeof result === "string") {
|
|
206
|
-
return result;
|
|
207
|
-
}
|
|
208
|
-
if (!isRecord(result)) {
|
|
209
|
-
return "";
|
|
210
|
-
}
|
|
211
|
-
const turnResult = result.turnResult;
|
|
212
|
-
let errorCode;
|
|
213
|
-
let errorMessage;
|
|
214
|
-
if (isRecord(turnResult)) {
|
|
215
|
-
const error = turnResult.error;
|
|
216
|
-
if (isRecord(error)) {
|
|
217
|
-
errorCode = typeof error.code === "string" ? error.code : undefined;
|
|
218
|
-
errorMessage = typeof error.message === "string" ? error.message : undefined;
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
const candidates = [
|
|
222
|
-
result.finalResponseText,
|
|
223
|
-
result.responseText,
|
|
224
|
-
result.text,
|
|
225
|
-
result.outputText,
|
|
226
|
-
];
|
|
227
|
-
for (const value of candidates) {
|
|
228
|
-
if (typeof value === "string") {
|
|
229
|
-
if (errorMessage
|
|
230
|
-
&& (errorCode === "E_PERMISSION_REJECTED" || errorCode === "E_PERMISSION_DENIED" || errorCode === "E_DOOM_LOOP")) {
|
|
231
|
-
const trimmed = value.trim();
|
|
232
|
-
return trimmed.length > 0 ? `${trimmed}\n\n${errorMessage}` : errorMessage;
|
|
233
|
-
}
|
|
234
|
-
return value;
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
if (isRecord(turnResult)) {
|
|
238
|
-
const responseMessage = turnResult.responseMessage;
|
|
239
|
-
if (isRecord(responseMessage)) {
|
|
240
|
-
const data = responseMessage.data;
|
|
241
|
-
if (isRecord(data) && typeof data.content === "string") {
|
|
242
|
-
return data.content;
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
return errorMessage ?? "";
|
|
247
|
-
}
|
|
248
|
-
async function loadCreateRunnerFromHarnessYaml() {
|
|
249
|
-
try {
|
|
250
|
-
const mod = await import(OPENHARNESS_MODULE_NAME);
|
|
251
|
-
const fn = mod?.createRunnerFromHarnessYaml;
|
|
252
|
-
if (typeof fn !== "function") {
|
|
253
|
-
throw new Error([
|
|
254
|
-
`[openharness-cli] ${OPENHARNESS_MODULE_NAME}가 createRunnerFromHarnessYaml()을 export하지 않습니다.`,
|
|
255
|
-
"",
|
|
256
|
-
"이 CLI는 harness.yaml 기반 실행을 위해 해당 API가 필요합니다.",
|
|
257
|
-
`- 해결: ${OPENHARNESS_MODULE_NAME}를 createRunnerFromHarnessYaml을 포함한 버전으로 업데이트하세요.`,
|
|
258
|
-
].join("\n"));
|
|
259
|
-
}
|
|
260
|
-
return fn;
|
|
261
|
-
}
|
|
262
|
-
catch (error) {
|
|
263
|
-
if (error instanceof Error) {
|
|
264
|
-
throw error;
|
|
265
|
-
}
|
|
266
|
-
throw new Error(`[openharness-cli] ${OPENHARNESS_MODULE_NAME} 로드 중 오류가 발생했습니다: ${String(error)}`);
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
async function createRunner(options) {
|
|
270
|
-
const createRunnerFromHarnessYaml = await loadCreateRunnerFromHarnessYaml();
|
|
271
|
-
const dotenvEnv = await loadDotenv(options.workdir);
|
|
272
|
-
const runnerOptions = {
|
|
273
|
-
workdir: options.workdir,
|
|
274
|
-
entrypointFileName: options.entrypointFileName,
|
|
275
|
-
logger: console,
|
|
276
|
-
env: { ...dotenvEnv, ...process.env },
|
|
277
|
-
};
|
|
278
|
-
if (isNonEmptyString(options.agentName)) {
|
|
279
|
-
runnerOptions.agentName = options.agentName;
|
|
280
|
-
}
|
|
281
|
-
if (isNonEmptyString(options.conversationId)) {
|
|
282
|
-
runnerOptions.conversationId = options.conversationId;
|
|
283
|
-
}
|
|
284
|
-
if (isNonEmptyString(options.stateRoot)) {
|
|
285
|
-
runnerOptions.stateRoot = options.stateRoot;
|
|
286
|
-
}
|
|
287
|
-
if (typeof options.maxSteps === "number") {
|
|
288
|
-
runnerOptions.maxSteps = options.maxSteps;
|
|
289
|
-
}
|
|
290
|
-
const runner = await Promise.resolve(createRunnerFromHarnessYaml(runnerOptions));
|
|
291
|
-
const processTurn = runner?.processTurn;
|
|
292
|
-
const close = runner?.close;
|
|
293
|
-
if (typeof processTurn !== "function") {
|
|
294
|
-
throw new Error("[openharness-cli] runner.processTurn(text) 함수가 필요합니다. createRunnerFromHarnessYaml 반환값을 확인하세요.");
|
|
295
|
-
}
|
|
296
|
-
return {
|
|
297
|
-
processTurn: async (text) => Promise.resolve(processTurn.call(runner, text)),
|
|
298
|
-
close: async () => {
|
|
299
|
-
if (typeof close === "function") {
|
|
300
|
-
await Promise.resolve(close.call(runner));
|
|
301
|
-
}
|
|
302
|
-
},
|
|
303
|
-
};
|
|
304
|
-
}
|
|
305
|
-
async function runOneShot(text, options) {
|
|
306
|
-
const runner = await createRunner(options);
|
|
307
|
-
try {
|
|
308
|
-
const result = await runner.processTurn(text);
|
|
309
|
-
const output = extractFinalText(result);
|
|
310
|
-
process.stdout.write(`${output}\n`);
|
|
311
|
-
return 0;
|
|
312
|
-
}
|
|
313
|
-
finally {
|
|
314
|
-
await runner.close();
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
async function readReplLine(prompt) {
|
|
318
|
-
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
319
|
-
try {
|
|
320
|
-
return await rl.question(prompt);
|
|
321
|
-
}
|
|
322
|
-
catch {
|
|
323
|
-
return null;
|
|
324
|
-
}
|
|
325
|
-
finally {
|
|
326
|
-
rl.close();
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
async function runRepl(options) {
|
|
330
|
-
const runner = await createRunner(options);
|
|
331
|
-
const prompt = "oh> ";
|
|
332
|
-
try {
|
|
333
|
-
while (true) {
|
|
334
|
-
const line = await readReplLine(prompt);
|
|
335
|
-
if (line === null) {
|
|
336
|
-
break;
|
|
337
|
-
}
|
|
338
|
-
const trimmed = line.trim();
|
|
339
|
-
if (trimmed.length === 0) {
|
|
340
|
-
continue;
|
|
341
|
-
}
|
|
342
|
-
if (trimmed === "/exit") {
|
|
343
|
-
break;
|
|
344
|
-
}
|
|
345
|
-
const result = await runner.processTurn(line);
|
|
346
|
-
const output = extractFinalText(result).trimEnd();
|
|
347
|
-
process.stdout.write(output.length > 0 ? `${output}\n` : "\n");
|
|
348
|
-
}
|
|
349
|
-
return 0;
|
|
350
|
-
}
|
|
351
|
-
finally {
|
|
352
|
-
await runner.close();
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
export async function main(argv) {
|
|
356
|
-
try {
|
|
357
|
-
const parsed = parseArgs(argv);
|
|
358
|
-
if (parsed.commandArgs.includes("--help")) {
|
|
359
|
-
process.stdout.write(`${usage()}\n`);
|
|
360
|
-
return;
|
|
361
|
-
}
|
|
362
|
-
if (parsed.command === "run") {
|
|
363
|
-
const text = parsed.commandArgs.join(" ").trim();
|
|
364
|
-
if (text.length === 0) {
|
|
365
|
-
throw new Error(`oh run은 실행할 텍스트가 필요합니다.\n\n${usage()}`);
|
|
366
|
-
}
|
|
367
|
-
const code = await runOneShot(text, parsed.options);
|
|
368
|
-
process.exitCode = code;
|
|
369
|
-
return;
|
|
370
|
-
}
|
|
371
|
-
const code = await runRepl(parsed.options);
|
|
372
|
-
process.exitCode = code;
|
|
373
|
-
}
|
|
374
|
-
catch (error) {
|
|
375
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
376
|
-
printError(message);
|
|
377
|
-
process.exitCode = 1;
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC"}
|