@todu/cli 0.1.0 → 0.2.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 (73) hide show
  1. package/dist/commands/config.js +3 -3
  2. package/dist/commands/config.js.map +1 -1
  3. package/dist/commands/daemon.d.ts +4 -0
  4. package/dist/commands/daemon.d.ts.map +1 -0
  5. package/dist/commands/daemon.js +675 -0
  6. package/dist/commands/daemon.js.map +1 -0
  7. package/dist/commands/habit.d.ts +2 -2
  8. package/dist/commands/habit.d.ts.map +1 -1
  9. package/dist/commands/habit.js +270 -315
  10. package/dist/commands/habit.js.map +1 -1
  11. package/dist/commands/label.d.ts +2 -2
  12. package/dist/commands/label.d.ts.map +1 -1
  13. package/dist/commands/label.js +76 -92
  14. package/dist/commands/label.js.map +1 -1
  15. package/dist/commands/note.d.ts +2 -2
  16. package/dist/commands/note.d.ts.map +1 -1
  17. package/dist/commands/note.js +97 -118
  18. package/dist/commands/note.js.map +1 -1
  19. package/dist/commands/plugin.d.ts +4 -0
  20. package/dist/commands/plugin.d.ts.map +1 -0
  21. package/dist/commands/plugin.js +527 -0
  22. package/dist/commands/plugin.js.map +1 -0
  23. package/dist/commands/project.d.ts +2 -2
  24. package/dist/commands/project.d.ts.map +1 -1
  25. package/dist/commands/project.js +99 -117
  26. package/dist/commands/project.js.map +1 -1
  27. package/dist/commands/recurring.d.ts +2 -2
  28. package/dist/commands/recurring.d.ts.map +1 -1
  29. package/dist/commands/recurring.js +250 -284
  30. package/dist/commands/recurring.js.map +1 -1
  31. package/dist/commands/sync.d.ts +2 -2
  32. package/dist/commands/sync.d.ts.map +1 -1
  33. package/dist/commands/sync.js +123 -12
  34. package/dist/commands/sync.js.map +1 -1
  35. package/dist/commands/task.d.ts +2 -2
  36. package/dist/commands/task.d.ts.map +1 -1
  37. package/dist/commands/task.js +181 -207
  38. package/dist/commands/task.js.map +1 -1
  39. package/dist/daemon-command-client.d.ts +11 -0
  40. package/dist/daemon-command-client.d.ts.map +1 -0
  41. package/dist/daemon-command-client.js +57 -0
  42. package/dist/daemon-command-client.js.map +1 -0
  43. package/dist/daemon-plugin-config.d.ts +8 -0
  44. package/dist/daemon-plugin-config.d.ts.map +1 -0
  45. package/dist/daemon-plugin-config.js +22 -0
  46. package/dist/daemon-plugin-config.js.map +1 -0
  47. package/dist/daemon-plugin-paths.d.ts +8 -0
  48. package/dist/daemon-plugin-paths.d.ts.map +1 -0
  49. package/dist/daemon-plugin-paths.js +28 -0
  50. package/dist/daemon-plugin-paths.js.map +1 -0
  51. package/dist/daemon-transport.d.ts +37 -0
  52. package/dist/daemon-transport.d.ts.map +1 -0
  53. package/dist/daemon-transport.js +422 -0
  54. package/dist/daemon-transport.js.map +1 -0
  55. package/dist/daemon-worker-assignment.d.ts +8 -0
  56. package/dist/daemon-worker-assignment.d.ts.map +1 -0
  57. package/dist/daemon-worker-assignment.js +22 -0
  58. package/dist/daemon-worker-assignment.js.map +1 -0
  59. package/dist/index.js +20 -23
  60. package/dist/index.js.map +1 -1
  61. package/dist/test-helpers/daemon-process.d.ts +5 -0
  62. package/dist/test-helpers/daemon-process.d.ts.map +1 -0
  63. package/dist/test-helpers/daemon-process.js +55 -0
  64. package/dist/test-helpers/daemon-process.js.map +1 -0
  65. package/dist/version.d.ts +2 -0
  66. package/dist/version.d.ts.map +1 -0
  67. package/dist/version.js +3 -0
  68. package/dist/version.js.map +1 -0
  69. package/dist/warnings.d.ts +7 -0
  70. package/dist/warnings.d.ts.map +1 -0
  71. package/dist/warnings.js +21 -0
  72. package/dist/warnings.js.map +1 -0
  73. package/package.json +5 -3
package/dist/index.js CHANGED
@@ -1,21 +1,27 @@
1
1
  #!/usr/bin/env node
2
- import { createTodu, isSyncServerAvailable } from "@todu/engine";
3
2
  import { Command } from "commander";
4
3
  import { registerConfigCommands } from "./commands/config.js";
4
+ import { registerDaemonCommands } from "./commands/daemon.js";
5
5
  import { registerHabitCommands } from "./commands/habit.js";
6
6
  import { registerLabelCommands } from "./commands/label.js";
7
7
  import { registerNoteCommands } from "./commands/note.js";
8
+ import { registerPluginCommands } from "./commands/plugin.js";
8
9
  import { registerProjectCommands } from "./commands/project.js";
9
10
  import { registerRecurringCommands } from "./commands/recurring.js";
10
11
  import { registerSyncCommands } from "./commands/sync.js";
11
12
  import { registerTaskCommands } from "./commands/task.js";
12
- import { getConfigPath, loadConfig, resolveDataDir } from "./config.js";
13
+ import { createCliDaemonInvoker } from "./daemon-command-client.js";
13
14
  import { setColorEnabled } from "./format.js";
15
+ import { VERSION } from "./version.js";
16
+ import { installTimeoutNegativeWarningFilter } from "./warnings.js";
17
+ // Suppress noisy Node.js TimeoutNegativeWarning caused by
18
+ // @automerge/automerge-repo passing negative delays to setTimeout.
19
+ installTimeoutNegativeWarningFilter();
14
20
  const program = new Command();
15
21
  program
16
- .name("todu")
22
+ .name("toduai")
17
23
  .description("Local-first task management")
18
- .version("0.0.1")
24
+ .version(`${VERSION} (now with extra checkbox energy)`)
19
25
  .option("--format <type>", "output format (text or json)", "text")
20
26
  .option("--config <path>", "path to config file")
21
27
  .option("--no-color", "disable color output")
@@ -24,26 +30,17 @@ program
24
30
  setColorEnabled(false);
25
31
  }
26
32
  });
27
- // Lazy initialization — resolve config, then create Todu instance.
28
- // Tries to connect to a running sync server (Electron) first so
29
- // both share the same Automerge data in real-time.
30
- const getTodu = async () => {
31
- const opts = program.opts();
32
- const configPath = getConfigPath(opts.config);
33
- const config = loadConfig(configPath);
34
- const storagePath = resolveDataDir(configPath, config);
35
- // Skip sync detection when TODU_NO_SYNC is set (used by tests to force standalone mode)
36
- const syncClient = process.env.TODU_NO_SYNC ? false : await isSyncServerAvailable();
37
- return createTodu({ storagePath, syncClient });
38
- };
33
+ const invokeDaemon = createCliDaemonInvoker(program);
39
34
  // Register command groups
40
- registerProjectCommands(program, getTodu);
41
- registerTaskCommands(program, getTodu);
42
- registerLabelCommands(program, getTodu);
43
- registerNoteCommands(program, getTodu);
44
- registerRecurringCommands(program, getTodu);
45
- registerHabitCommands(program, getTodu);
46
- registerSyncCommands(program, getTodu);
35
+ registerDaemonCommands(program, invokeDaemon);
36
+ registerProjectCommands(program, invokeDaemon);
37
+ registerTaskCommands(program, invokeDaemon);
38
+ registerLabelCommands(program, invokeDaemon);
39
+ registerNoteCommands(program, invokeDaemon);
40
+ registerRecurringCommands(program, invokeDaemon);
41
+ registerHabitCommands(program, invokeDaemon);
42
+ registerSyncCommands(program, invokeDaemon);
43
+ registerPluginCommands(program, invokeDaemon);
47
44
  registerConfigCommands(program);
48
45
  program.parse();
49
46
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,6BAA6B,CAAC;KAC1C,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,iBAAiB,EAAE,8BAA8B,EAAE,MAAM,CAAC;KACjE,MAAM,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;KAChD,MAAM,CAAC,YAAY,EAAE,sBAAsB,CAAC;KAC5C,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC;IACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QAC1B,eAAe,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;AAAA,CACF,CAAC,CAAC;AAEL,qEAAmE;AACnE,gEAAgE;AAChE,mDAAmD;AACnD,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACvD,wFAAwF;IACxF,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,qBAAqB,EAAE,CAAC;IACpF,OAAO,UAAU,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;AAAA,CAChD,CAAC;AAEF,0BAA0B;AAC1B,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC1C,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACvC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACxC,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACvC,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5C,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACxC,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACvC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAEhC,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,mCAAmC,EAAE,MAAM,eAAe,CAAC;AAEpE,0DAA0D;AAC1D,mEAAmE;AACnE,mCAAmC,EAAE,CAAC;AAEtC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,6BAA6B,CAAC;KAC1C,OAAO,CAAC,GAAG,OAAO,mCAAmC,CAAC;KACtD,MAAM,CAAC,iBAAiB,EAAE,8BAA8B,EAAE,MAAM,CAAC;KACjE,MAAM,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;KAChD,MAAM,CAAC,YAAY,EAAE,sBAAsB,CAAC;KAC5C,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC;IACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QAC1B,eAAe,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;AAAA,CACF,CAAC,CAAC;AAEL,MAAM,YAAY,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAErD,0BAA0B;AAC1B,sBAAsB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAC9C,uBAAuB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAC/C,oBAAoB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAC5C,qBAAqB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAC7C,oBAAoB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAC5C,yBAAyB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AACjD,qBAAqB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAC7C,oBAAoB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAC5C,sBAAsB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAC9C,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAEhC,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ export interface DaemonHandle {
2
+ stop(reason?: string): Promise<void>;
3
+ }
4
+ export declare function startDaemonForTests(rootDir: string, storagePath: string): Promise<DaemonHandle>;
5
+ //# sourceMappingURL=daemon-process.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-process.d.ts","sourceRoot":"","sources":["../../src/test-helpers/daemon-process.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC,CAgCvB"}
@@ -0,0 +1,55 @@
1
+ import { spawn } from "node:child_process";
2
+ import fs from "node:fs";
3
+ import path from "node:path";
4
+ export async function startDaemonForTests(rootDir, storagePath) {
5
+ const daemonEntrypoint = path.resolve(rootDir, "packages/daemon/dist/entrypoint.js");
6
+ const socketPath = path.join(storagePath, "daemon.sock");
7
+ const daemonProcess = spawn("node", [daemonEntrypoint], {
8
+ cwd: rootDir,
9
+ env: { ...process.env, TODUAI_DATA_DIR: storagePath },
10
+ stdio: ["ignore", "pipe", "pipe"],
11
+ });
12
+ let stderr = "";
13
+ daemonProcess.stderr?.on("data", (chunk) => {
14
+ stderr += chunk.toString();
15
+ });
16
+ const deadline = Date.now() + 5000;
17
+ while (Date.now() < deadline) {
18
+ if (fs.existsSync(socketPath)) {
19
+ return {
20
+ stop: async () => {
21
+ await stopProcess(daemonProcess);
22
+ },
23
+ };
24
+ }
25
+ if (daemonProcess.exitCode !== null) {
26
+ throw new Error(`Daemon exited early with code ${daemonProcess.exitCode}: ${stderr}`);
27
+ }
28
+ await sleep(50);
29
+ }
30
+ throw new Error(`Timed out waiting for daemon socket: ${socketPath}\n${stderr}`);
31
+ }
32
+ async function stopProcess(processHandle) {
33
+ if (processHandle.exitCode !== null) {
34
+ return;
35
+ }
36
+ processHandle.kill("SIGTERM");
37
+ await new Promise((resolve) => {
38
+ const timeout = setTimeout(() => {
39
+ if (processHandle.exitCode === null) {
40
+ processHandle.kill("SIGKILL");
41
+ }
42
+ resolve();
43
+ }, 3000);
44
+ processHandle.once("exit", () => {
45
+ clearTimeout(timeout);
46
+ resolve();
47
+ });
48
+ });
49
+ }
50
+ function sleep(ms) {
51
+ return new Promise((resolve) => {
52
+ setTimeout(resolve, ms);
53
+ });
54
+ }
55
+ //# sourceMappingURL=daemon-process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-process.js","sourceRoot":"","sources":["../../src/test-helpers/daemon-process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAM7B,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAe,EACf,WAAmB,EACI;IACvB,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,oCAAoC,CAAC,CAAC;IACrF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACzD,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,gBAAgB,CAAC,EAAE;QACtD,GAAG,EAAE,OAAO;QACZ,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,WAAW,EAAE;QACrD,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;KAClC,CAAC,CAAC;IAEH,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;IAAA,CAC5B,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IACnC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,OAAO;gBACL,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;oBAChB,MAAM,WAAW,CAAC,aAAa,CAAC,CAAC;gBAAA,CAClC;aACF,CAAC;QACJ,CAAC;QAED,IAAI,aAAa,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,iCAAiC,aAAa,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC,CAAC;QACxF,CAAC;QAED,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,wCAAwC,UAAU,KAAK,MAAM,EAAE,CAAC,CAAC;AAAA,CAClF;AAED,KAAK,UAAU,WAAW,CAAC,aAAuC,EAAiB;IACjF,IAAI,aAAa,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QACpC,OAAO;IACT,CAAC;IAED,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAE9B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;YAC/B,IAAI,aAAa,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACpC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChC,CAAC;YACD,OAAO,EAAE,CAAC;QAAA,CACX,EAAE,IAAI,CAAC,CAAC;QAET,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;YAC/B,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,OAAO,EAAE,CAAC;QAAA,CACX,CAAC,CAAC;IAAA,CACJ,CAAC,CAAC;AAAA,CACJ;AAED,SAAS,KAAK,CAAC,EAAU,EAAiB;IACxC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QAC9B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAAA,CACzB,CAAC,CAAC;AAAA,CACJ"}
@@ -0,0 +1,2 @@
1
+ export declare const VERSION = "0.2.0";
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,UAAU,CAAC"}
@@ -0,0 +1,3 @@
1
+ // Auto-generated by generate-version.mjs — do not edit
2
+ export const VERSION = "0.2.0";
3
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,yDAAuD;AACvD,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
@@ -0,0 +1,7 @@
1
+ type EmitWarning = NodeJS.Process["emitWarning"];
2
+ type WarningProcess = {
3
+ emitWarning: EmitWarning;
4
+ };
5
+ export declare function installTimeoutNegativeWarningFilter(warningProcess?: WarningProcess): void;
6
+ export {};
7
+ //# sourceMappingURL=warnings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warnings.d.ts","sourceRoot":"","sources":["../src/warnings.ts"],"names":[],"mappings":"AAGA,KAAK,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAEjD,KAAK,cAAc,GAAG;IACpB,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAcF,wBAAgB,mCAAmC,CACjD,cAAc,GAAE,cAAwB,GACvC,IAAI,CAcN"}
@@ -0,0 +1,21 @@
1
+ const TIMEOUT_WARNING_TYPE = "TimeoutNegativeWarning";
2
+ const NEGATIVE_DELAY_MESSAGE = "is a negative number";
3
+ function isTimeoutNegativeWarning(warning, args) {
4
+ const message = typeof warning === "string" ? warning : warning.message;
5
+ const type = typeof warning === "string"
6
+ ? typeof args[0] === "string"
7
+ ? args[0]
8
+ : undefined
9
+ : warning.name;
10
+ return type === TIMEOUT_WARNING_TYPE && message.includes(NEGATIVE_DELAY_MESSAGE);
11
+ }
12
+ export function installTimeoutNegativeWarningFilter(warningProcess = process) {
13
+ const originalEmitWarning = warningProcess.emitWarning;
14
+ warningProcess.emitWarning = ((warning, ...args) => {
15
+ if (isTimeoutNegativeWarning(warning, args)) {
16
+ return;
17
+ }
18
+ Reflect.apply(originalEmitWarning, warningProcess, [warning, ...args]);
19
+ });
20
+ }
21
+ //# sourceMappingURL=warnings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warnings.js","sourceRoot":"","sources":["../src/warnings.ts"],"names":[],"mappings":"AAAA,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;AACtD,MAAM,sBAAsB,GAAG,sBAAsB,CAAC;AAQtD,SAAS,wBAAwB,CAAC,OAAuB,EAAE,IAAe,EAAW;IACnF,MAAM,OAAO,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACxE,MAAM,IAAI,GACR,OAAO,OAAO,KAAK,QAAQ;QACzB,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;YAC3B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACT,CAAC,CAAC,SAAS;QACb,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAEnB,OAAO,IAAI,KAAK,oBAAoB,IAAI,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;AAAA,CAClF;AAED,MAAM,UAAU,mCAAmC,CACjD,cAAc,GAAmB,OAAO,EAClC;IACN,MAAM,mBAAmB,GAAG,cAAc,CAAC,WAAW,CAAC;IAEvD,cAAc,CAAC,WAAW,GAAG,CAAC,CAAC,OAAuB,EAAE,GAAG,IAAe,EAAE,EAAE,CAAC;QAC7E,IAAI,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,OAAO,CAAC,KAAK,CACX,mBAAmE,EACnE,cAAc,EACd,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CACnB,CAAC;IAAA,CACH,CAAgB,CAAC;AAAA,CACnB"}
package/package.json CHANGED
@@ -1,16 +1,17 @@
1
1
  {
2
2
  "name": "@todu/cli",
3
- "version": "0.1.0",
4
- "description": "CLI for todu task management — create, track, and sync tasks from the terminal",
3
+ "version": "0.2.0",
4
+ "description": "CLI for toduai task management — create, track, and sync tasks from the terminal",
5
5
  "type": "module",
6
6
  "bin": {
7
- "todu": "dist/index.js"
7
+ "toduai": "dist/index.js"
8
8
  },
9
9
  "main": "./dist/index.js",
10
10
  "files": [
11
11
  "dist"
12
12
  ],
13
13
  "scripts": {
14
+ "prebuild": "node generate-version.mjs",
14
15
  "build": "tsgo -p tsconfig.build.json",
15
16
  "typecheck": "tsgo -p tsconfig.build.json --noEmit"
16
17
  },
@@ -31,6 +32,7 @@
31
32
  "license": "MIT",
32
33
  "keywords": [
33
34
  "todu",
35
+ "toduai",
34
36
  "task-management",
35
37
  "cli",
36
38
  "todo",