@andrestobelem/clone 0.2.0 → 0.2.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/README.md CHANGED
@@ -38,6 +38,12 @@ Add the directory to that repository's `.gitignore` unless you have a specific b
38
38
 
39
39
  Always run the command from the same repository to reopen that workspace. `--local` does not copy or move records from the operating system's user data directory. Use `--data-dir PATH` when the data must be in another location.
40
40
 
41
+ Use only one storage selector. Clone rejects combinations of `--local`, `--data-dir`, and `--db`. Inspect the resolved storage before an operation when needed:
42
+
43
+ ```sh
44
+ npx @andrestobelem/clone --local context --json
45
+ ```
46
+
41
47
  The npm package is scoped because the unscoped `clone` name belongs to another package. The installed executable is still named `clone`.
42
48
 
43
49
  ### Install the agent skill
@@ -155,7 +161,9 @@ The application has one local workspace. It does not provide hosted collaboratio
155
161
 
156
162
  ```sh
157
163
  npx @andrestobelem/clone --help
164
+ npx @andrestobelem/clone context --json
158
165
  npx @andrestobelem/clone describe
166
+ npx @andrestobelem/clone describe issues comment --json
159
167
  npx @andrestobelem/clone teams list --json
160
168
  npx @andrestobelem/clone agents list --all --json
161
169
  ```
package/dist/actors.js ADDED
@@ -0,0 +1,49 @@
1
+ import { lastInsertId, one, rows, run, sql, } from "./database.js";
2
+ import { InvalidInputError, RelationshipConflictError } from "./errors.js";
3
+ import { fail, text } from "./workspace-helpers.js";
4
+ export function mutateAgent(database, method, route, data, stamp) {
5
+ if (route === "/api/agents" && method === "POST") {
6
+ const key = text(data.key, "Agent key is required");
7
+ const name = text(data.name, "Agent name is required");
8
+ run(database, "INSERT INTO actors(kind,name,key,created_at) VALUES('agent',?,?,?)", name, key, stamp);
9
+ const agentId = lastInsertId(database);
10
+ if (data.teamId !== undefined)
11
+ run(database, "INSERT INTO team_members(team_id,member_id,role) VALUES(?,?,'Member')", sql(data.teamId), agentId);
12
+ return { agent: actorRecord(database, agentId), _status: 201 };
13
+ }
14
+ const match = route.match(/^\/api\/agents\/(\d+)(?:\/(deactivate|restore))?$/);
15
+ if (!match)
16
+ return null;
17
+ const agentId = Number(match[1]);
18
+ const target = actorRecord(database, agentId);
19
+ if (!target || target.kind !== "agent")
20
+ fail("Agent not found");
21
+ if (match[2] && method === "POST")
22
+ run(database, "UPDATE actors SET active=? WHERE id=?", match[2] === "restore" ? 1 : 0, agentId);
23
+ else if (!match[2] && method === "PATCH") {
24
+ if ("key" in data)
25
+ fail("Agent key cannot change");
26
+ run(database, "UPDATE actors SET name=? WHERE id=?", text(data.name, "Agent name is required"), agentId);
27
+ }
28
+ else
29
+ return { error: "Not found", _status: 404 };
30
+ return { agent: actorRecord(database, agentId) };
31
+ }
32
+ export function actorRecord(database, actorId) {
33
+ return (one(database, `SELECT a.*,m.email,m.role FROM actors a
34
+ LEFT JOIN members m ON m.id=a.member_id WHERE a.id=?`, actorId) ?? null);
35
+ }
36
+ export function actorRecords(database, kind = null, includeInactive = false) {
37
+ return rows(database, "SELECT id FROM actors WHERE (? IS NULL OR kind=?) AND (? OR active=1) ORDER BY id", kind, kind, includeInactive ? 1 : 0)
38
+ .map((row) => actorRecord(database, Number(row.id)))
39
+ .filter((row) => row !== null);
40
+ }
41
+ export function requireActor(database, actorId) {
42
+ if (!Number.isInteger(actorId))
43
+ throw new InvalidInputError("Actor ID must be an integer");
44
+ const record = actorRecord(database, Number(actorId));
45
+ if (!record || !record.active)
46
+ throw new RelationshipConflictError("Actor not found or inactive");
47
+ return Number(actorId);
48
+ }
49
+ //# sourceMappingURL=actors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actors.js","sourceRoot":"","sources":["../src/actors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import { requireActor } from "./actors.js";
2
+ import { one, rows, run, sql } from "./database.js";
3
+ import { priorities } from "./schema.js";
4
+ import { now } from "./time.js";
5
+ import { event, parseJson } from "./workspace-helpers.js";
6
+ export function applyAutomations(database, teamId, issueId, eventName, actor) {
7
+ const issue = one(database, "SELECT i.*,s.name AS status FROM issues i JOIN issue_statuses s ON s.id=i.status_id WHERE i.id=?", issueId);
8
+ if (!issue)
9
+ return;
10
+ const labels = new Set(rows(database, "SELECT l.name FROM labels l JOIN issue_labels il ON il.label_id=l.id WHERE il.issue_id=?", issueId).map((row) => String(row.name)));
11
+ for (const rule of rows(database, "SELECT * FROM automations WHERE team_id=? AND enabled=1 ORDER BY id", teamId)) {
12
+ const trigger = parseJson(rule.trigger_json, {});
13
+ const condition = parseJson(rule.condition_json, {});
14
+ const action = parseJson(rule.action_json, {});
15
+ if (trigger.event !== eventName)
16
+ continue;
17
+ if (![null, "", "Any", undefined].includes(condition.priority) &&
18
+ priorities[Number(issue.priority)] !== condition.priority)
19
+ continue;
20
+ if (![null, "", "Any", undefined].includes(condition.label) &&
21
+ !labels.has(String(condition.label)))
22
+ continue;
23
+ const name = String(action.name ?? "");
24
+ const changes = [];
25
+ if (action.assignTo !== undefined) {
26
+ const id = requireActor(database, action.assignTo);
27
+ run(database, "UPDATE issues SET assignee_id=?,updated_at=? WHERE id=?", id, now(), issueId);
28
+ changes.push({ field: "assignee_id", value: id });
29
+ }
30
+ else if (name === "Assign to me") {
31
+ run(database, "UPDATE issues SET assignee_id=?,updated_at=? WHERE id=?", actor, now(), issueId);
32
+ changes.push({ field: "assignee_id", value: actor });
33
+ }
34
+ else if (name.startsWith("Add ") && name.endsWith(" label")) {
35
+ const labelName = name.slice(4, -6).trim();
36
+ const label = one(database, "SELECT id FROM labels WHERE name=? AND (team_id=? OR team_id IS NULL) ORDER BY team_id DESC LIMIT 1", labelName, teamId);
37
+ if (label && !labels.has(labelName)) {
38
+ run(database, "INSERT OR IGNORE INTO issue_labels(issue_id,label_id) VALUES(?,?)", issueId, sql(label.id));
39
+ labels.add(labelName);
40
+ changes.push({ field: "label", value: labelName });
41
+ }
42
+ }
43
+ else if (name.startsWith("Set status: ")) {
44
+ const status = one(database, "SELECT id FROM issue_statuses WHERE team_id=? AND name=?", teamId, name.split(":", 2)[1].trim());
45
+ if (status) {
46
+ run(database, "UPDATE issues SET status_id=?,updated_at=? WHERE id=?", sql(status.id), now(), issueId);
47
+ changes.push({ field: "status_id", value: Number(status.id) });
48
+ }
49
+ }
50
+ if (changes.length)
51
+ event(database, "issue", issueId, actor, "automation_applied", {
52
+ automation: String(rule.name),
53
+ changes,
54
+ });
55
+ }
56
+ }
57
+ //# sourceMappingURL=automations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automations.js","sourceRoot":"","sources":["../src/automations.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -6,6 +6,7 @@ import { defaultDataDirectory, storagePaths } from "./paths.js";
6
6
  import { startServer } from "./server.js";
7
7
  import { exportSnapshot, importSnapshot, initialize, migrateStorage, mutate, syncStatus, validateSnapshot, withStorageLock, } from "./sync.js";
8
8
  import { actorRecord, bootstrap, dispatchMutation, issueRow, runDueRecurring, search, } from "./workspace.js";
9
+ const packageVersion = String(JSON.parse(fs.readFileSync(new URL("../package.json", import.meta.url), "utf8")).version);
9
10
  const resources = {
10
11
  actors: "actors",
11
12
  agents: "actors",
@@ -138,7 +139,7 @@ export async function main(argv) {
138
139
  const wantsJson = argv.includes("--json");
139
140
  try {
140
141
  if (argv.includes("--version") || argv.includes("-V")) {
141
- console.log("0.2.0");
142
+ console.log(packageVersion);
142
143
  return 0;
143
144
  }
144
145
  if (argv.includes("--help") || argv.includes("-h")) {
@@ -147,7 +148,11 @@ export async function main(argv) {
147
148
  }
148
149
  const parsed = parseArguments(argv);
149
150
  if (parsed.command === "describe") {
150
- writeResult(describe(), true);
151
+ writeResult(describe(parsed.positionals, resolveDatabasePath(parsed)), true);
152
+ return 0;
153
+ }
154
+ if (parsed.command === "context") {
155
+ writeResult(storageContext(parsed), true);
151
156
  return 0;
152
157
  }
153
158
  const paths = resolvePaths(parsed);
@@ -355,10 +360,12 @@ function parseArguments(argv) {
355
360
  options[key] = value;
356
361
  }
357
362
  let command = words.shift() ?? "start";
363
+ validateStorageSelection(options);
358
364
  if (command !== "start" &&
359
365
  !resources[command] &&
360
366
  ![
361
367
  "init",
368
+ "context",
362
369
  "describe",
363
370
  "serve",
364
371
  "search",
@@ -366,12 +373,127 @@ function parseArguments(argv) {
366
373
  "sync",
367
374
  "attachments",
368
375
  ].includes(command))
369
- throw new InvalidInputError(`Unknown command: ${command}`);
376
+ throw unknownCommandError([command, ...words], `Unknown command: ${command}`);
370
377
  const needsVerb = resources[command] || ["sync", "attachments"].includes(command);
371
378
  const verb = needsVerb ? words.shift() : undefined;
379
+ if (needsVerb && !isKnownVerb(command, verb))
380
+ throw unknownCommandError([command, ...(verb ? [verb] : []), ...words], `Unknown command path: ${[command, verb].filter(Boolean).join(" ")}`);
372
381
  return { command, verb, positionals: words, options };
373
382
  }
383
+ function validateStorageSelection(options) {
384
+ const selected = [
385
+ options.local ? "--local" : null,
386
+ options.dataDir !== undefined ? "--data-dir" : null,
387
+ options.db !== undefined ? "--db" : null,
388
+ ].filter((value) => value !== null);
389
+ if (selected.length > 1)
390
+ throw new InvalidInputError(`Select one storage mode: ${selected.join(", ")}`);
391
+ }
392
+ function isKnownVerb(command, verb) {
393
+ if (!verb)
394
+ return false;
395
+ if (command === "sync")
396
+ return ["status", "validate", "export", "import", "migrate"].includes(verb);
397
+ if (command === "attachments")
398
+ return verb === "get";
399
+ return (["list", "show"].includes(verb) ||
400
+ Boolean(actions[command]?.[verb]) ||
401
+ (command === "recurring" && verb === "run"));
402
+ }
403
+ function canonicalCommandPaths() {
404
+ const paths = [
405
+ ["init"],
406
+ ["context"],
407
+ ["describe"],
408
+ ["serve"],
409
+ ["search"],
410
+ ["export"],
411
+ ...["status", "validate", "export", "import", "migrate"].map((verb) => [
412
+ "sync",
413
+ verb,
414
+ ]),
415
+ ["attachments", "get"],
416
+ ];
417
+ for (const resource of Object.keys(resources)) {
418
+ paths.push([resource, "list"], [resource, "show"]);
419
+ for (const verb of Object.keys(actions[resource] ?? {}))
420
+ paths.push([resource, verb]);
421
+ if (resource === "recurring")
422
+ paths.push(["recurring", "run"]);
423
+ }
424
+ return paths;
425
+ }
426
+ function unknownCommandError(input, baseMessage) {
427
+ const suggestions = commandSuggestions(input);
428
+ const suffix = suggestions.length
429
+ ? ` Did you mean: ${suggestions.join(", ")}?`
430
+ : "";
431
+ return new InvalidInputError(`${baseMessage}.${suffix}`.trim(), {
432
+ ...(suggestions.length ? { suggestions } : {}),
433
+ });
434
+ }
435
+ function commandSuggestions(input) {
436
+ const [inputCommand, inputVerb] = input;
437
+ return canonicalCommandPaths()
438
+ .map((candidate) => {
439
+ const [command, verb] = candidate;
440
+ const commandDistance = editDistance(inputCommand ?? "", command ?? "");
441
+ const verbDistance = inputVerb && verb
442
+ ? editDistance(inputVerb, verb)
443
+ : inputVerb
444
+ ? Number.POSITIVE_INFINITY
445
+ : 0;
446
+ const accepted = commandDistance <= 2 && (!inputVerb || verbDistance <= 1);
447
+ return {
448
+ accepted,
449
+ path: candidate.join(" "),
450
+ score: commandDistance * 4 + verbDistance,
451
+ };
452
+ })
453
+ .filter((candidate) => candidate.accepted)
454
+ .sort((left, right) => left.score === right.score
455
+ ? left.path.localeCompare(right.path)
456
+ : left.score - right.score)
457
+ .slice(0, 3)
458
+ .map((candidate) => candidate.path);
459
+ }
460
+ function editDistance(left, right) {
461
+ const previous = Array.from({ length: right.length + 1 }, (_, index) => index);
462
+ for (let leftIndex = 1; leftIndex <= left.length; leftIndex++) {
463
+ const current = [leftIndex];
464
+ for (let rightIndex = 1; rightIndex <= right.length; rightIndex++) {
465
+ current[rightIndex] = Math.min(current[rightIndex - 1] + 1, previous[rightIndex] + 1, previous[rightIndex - 1] +
466
+ (left[leftIndex - 1] === right[rightIndex - 1] ? 0 : 1));
467
+ }
468
+ previous.splice(0, previous.length, ...current);
469
+ }
470
+ return previous[right.length];
471
+ }
374
472
  function resolvePaths(parsed) {
473
+ return storagePaths(resolveDatabasePath(parsed), parsed.options.syncDir
474
+ ? path.resolve(String(parsed.options.syncDir))
475
+ : undefined);
476
+ }
477
+ function storageContext(parsed) {
478
+ const paths = resolvePaths(parsed);
479
+ const storageMode = parsed.options.local
480
+ ? "local"
481
+ : parsed.options.dataDir !== undefined
482
+ ? "data-dir"
483
+ : parsed.options.db !== undefined
484
+ ? "database"
485
+ : "global";
486
+ return {
487
+ formatVersion: 1,
488
+ storageMode,
489
+ database: paths.database,
490
+ dataDirectory: paths.dataDirectory,
491
+ snapshotDirectory: paths.snapshotDirectory,
492
+ attachmentsDirectory: paths.attachmentsDirectory,
493
+ backupsDirectory: paths.backupsDirectory,
494
+ };
495
+ }
496
+ function resolveDatabasePath(parsed) {
375
497
  let directory;
376
498
  if (parsed.options.local)
377
499
  directory = path.join(process.cwd(), ".clone");
@@ -379,12 +501,9 @@ function resolvePaths(parsed) {
379
501
  directory = path.resolve(String(parsed.options.dataDir));
380
502
  else
381
503
  directory = defaultDataDirectory();
382
- const database = parsed.options.db
504
+ return parsed.options.db
383
505
  ? path.resolve(String(parsed.options.db))
384
506
  : path.join(directory, "workspace.sqlite3");
385
- return storagePaths(database, parsed.options.syncDir
386
- ? path.resolve(String(parsed.options.syncDir))
387
- : undefined);
388
507
  }
389
508
  function readPayload(parsed) {
390
509
  let value = {};
@@ -426,10 +545,10 @@ function addFiles(payload, files) {
426
545
  }
427
546
  payload.files = items;
428
547
  }
429
- function describe() {
548
+ function describe(pathPrefix, resolvedDatabase) {
430
549
  const commands = [];
431
550
  const globals = [
432
- argument("db", ["--db"], "string", false, path.join(process.cwd(), "data/workspace.sqlite3"), undefined, "SQLite path"),
551
+ argument("db", ["--db"], "string", false, resolvedDatabase, undefined, "SQLite path"),
433
552
  argument("sync_dir", ["--sync-dir"], "string", false, undefined, "snapshot/ next to the database", "Snapshot directory"),
434
553
  argument("actor", ["--actor"], "integer", false, 1, undefined, "Actor ID (default: 1)"),
435
554
  argument("json", ["--json"], "boolean", false, false, undefined, "Write JSON output"),
@@ -440,7 +559,13 @@ function describe() {
440
559
  add(["init"], [
441
560
  argument("demo", ["--demo"], "boolean", false, false, undefined, "Load demo data"),
442
561
  ]);
443
- add(["describe"]);
562
+ add(["describe"], [
563
+ {
564
+ ...argument("path", [], "string", false, [], undefined, "Command path prefix"),
565
+ repeatable: true,
566
+ },
567
+ ]);
568
+ add(["context"]);
444
569
  add(["serve"]);
445
570
  add(["search"], [
446
571
  argument("query", [], "string", true),
@@ -500,7 +625,12 @@ function describe() {
500
625
  if (resource === "recurring")
501
626
  add(["recurring", "run"]);
502
627
  }
503
- return { formatVersion: 1, commands };
628
+ const selected = pathPrefix.length
629
+ ? commands.filter((command) => pathPrefix.every((part, index) => command.path[index] === part))
630
+ : commands;
631
+ if (pathPrefix.length && selected.length === 0)
632
+ throw unknownCommandError(pathPrefix, `Unknown command path: ${pathPrefix.join(" ")}`);
633
+ return { formatVersion: 1, commands: selected };
504
634
  }
505
635
  function argument(name, flags, type, required, defaultValue, defaultRule, description) {
506
636
  return {
@@ -514,7 +644,7 @@ function argument(name, flags, type, required, defaultValue, defaultRule, descri
514
644
  };
515
645
  }
516
646
  function printHelp() {
517
- console.log(`Clone 0.2.0\n\nUsage:\n clone [--local | --data-dir PATH] [start] [--port PORT] [--no-open]\n clone [--local | --data-dir PATH] <CLI command> [options]`);
647
+ console.log(`Clone ${packageVersion}\n\nUsage:\n clone [--local | --data-dir PATH | --db PATH] [start] [--port PORT] [--no-open]\n clone [--local | --data-dir PATH | --db PATH] <CLI command> [options]\n clone context [--json]\n clone describe [COMMAND...] [--json]`);
518
648
  }
519
649
  function writeResult(value, json) {
520
650
  if (json || typeof value === "object")
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/database.js CHANGED
@@ -29,14 +29,34 @@ export function hasTable(database, name) {
29
29
  .prepare("SELECT 1 FROM sqlite_master WHERE type='table' AND name=?")
30
30
  .get(name));
31
31
  }
32
- export function all(statement, ...values) {
32
+ function all(statement, ...values) {
33
33
  return statement.all(...values);
34
34
  }
35
- export function get(statement, ...values) {
35
+ function get(statement, ...values) {
36
36
  return statement.get(...values);
37
37
  }
38
38
  export function lastInsertId(database) {
39
39
  const row = database.prepare("SELECT last_insert_rowid() AS id").get();
40
40
  return Number(row.id);
41
41
  }
42
+ export function rows(database, query, ...values) {
43
+ return all(database.prepare(query), ...values);
44
+ }
45
+ export function one(database, query, ...values) {
46
+ return get(database.prepare(query), ...values);
47
+ }
48
+ export function scalar(database, query, ...values) {
49
+ const row = one(database, query, ...values);
50
+ return row ? Object.values(row)[0] : undefined;
51
+ }
52
+ export function run(database, query, ...values) {
53
+ return database.prepare(query).run(...values);
54
+ }
55
+ export function sql(value) {
56
+ if (value === undefined)
57
+ return null;
58
+ if (typeof value === "boolean")
59
+ return value ? 1 : 0;
60
+ return value;
61
+ }
42
62
  //# sourceMappingURL=database.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EACL,YAAY,GAGb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAKhD,MAAM,UAAU,YAAY,CAC1B,KAAmB,EACnB,OAAO,GAAkE,EAAE;IAE3E,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,iBAAiB,CACzB,oDAAoD,CACrD,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE;QAChD,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,KAAK;QACf,2BAA2B,EAAE,IAAI;QACjC,OAAO,EAAE,MAAM;KAChB,CAAC,CAAC;IACH,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC1C,QAAQ,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAE3C,IACE,CAAC,OAAO,CAAC,MAAM;QACf,CAAC,OAAO,CAAC,WAAW;QACpB,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAC7B,CAAC;QACD,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,IAAI,iBAAiB,CACzB,mDAAmD,CACpD,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,QAAkB,EAAE,IAAY;IACvD,OAAO,OAAO,CACZ,QAAQ;SACL,OAAO,CAAC,2DAA2D,CAAC;SACpE,GAAG,CAAC,IAAI,CAAC,CACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAAG,CACjB,SAAwB,EACxB,GAAG,MAAuB;IAE1B,OAAO,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,CAAU,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,GAAG,CACjB,SAAwB,EACxB,GAAG,MAAuB;IAE1B,OAAO,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,CAAoB,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAkB;IAC7C,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC,GAAG,EAEnE,CAAC;IACF,OAAO,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
package/dist/errors.js CHANGED
@@ -11,8 +11,8 @@ export class CloneError extends Error {
11
11
  }
12
12
  }
13
13
  export class InvalidInputError extends CloneError {
14
- constructor(message) {
15
- super(message, "invalid_input", 2);
14
+ constructor(message, details = {}) {
15
+ super(message, "invalid_input", 2, details);
16
16
  this.name = "InvalidInputError";
17
17
  }
18
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,UAAW,SAAQ,KAAK;IAGxB,IAAI;IACJ,QAAQ;IACR,OAAO;IAJlB,YACE,OAAe,EACN,IAAY,EACZ,QAAgB,EAChB,OAAO,GAA4B,EAAE;QAE9C,KAAK,CAAC,OAAO,CAAC,CAAC;oBAJN,IAAI;wBACJ,QAAQ;uBACR,OAAO;QAGhB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,UAAU;IAC/C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,UAAU;IAC/C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,UAAU;IACvD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,UAAU;IAC1C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,UAAU;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC,EAAE;YAClC,SAAS,EAAE,IAAI;YACf,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,UAAW,SAAQ,KAAK;IAGxB,IAAI;IACJ,QAAQ;IACR,OAAO;IAJlB,YACE,OAAe,EACN,IAAY,EACZ,QAAgB,EAChB,OAAO,GAA4B,EAAE;QAE9C,KAAK,CAAC,OAAO,CAAC,CAAC;oBAJN,IAAI;wBACJ,QAAQ;uBACR,OAAO;QAGhB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,UAAU;IAC/C,YAAY,OAAe,EAAE,OAAO,GAA4B,EAAE;QAChE,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,UAAU;IAC/C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,UAAU;IACvD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,UAAU;IAC1C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,UAAU;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC,EAAE;YAClC,SAAS,EAAE,IAAI;YACf,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF"}