@knpkv/jira-clockify 1.5.0 → 1.6.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.
Files changed (102) hide show
  1. package/README.md +36 -5
  2. package/dist/package.json +15 -5
  3. package/dist/src/bin.js +16 -5
  4. package/dist/src/bin.js.map +1 -1
  5. package/dist/src/cli/CommandFailed.d.ts +27 -0
  6. package/dist/src/cli/CommandFailed.d.ts.map +1 -0
  7. package/dist/src/cli/CommandFailed.js +25 -0
  8. package/dist/src/cli/CommandFailed.js.map +1 -0
  9. package/dist/src/cli/auth.d.ts +23 -3
  10. package/dist/src/cli/auth.d.ts.map +1 -1
  11. package/dist/src/cli/auth.js +123 -102
  12. package/dist/src/cli/auth.js.map +1 -1
  13. package/dist/src/cli/config.d.ts +2 -1
  14. package/dist/src/cli/config.d.ts.map +1 -1
  15. package/dist/src/cli/config.js +43 -29
  16. package/dist/src/cli/config.js.map +1 -1
  17. package/dist/src/cli/fetchTicket.d.ts +3 -3
  18. package/dist/src/cli/fetchTicket.d.ts.map +1 -1
  19. package/dist/src/cli/fetchTicket.js +7 -7
  20. package/dist/src/cli/fetchTicket.js.map +1 -1
  21. package/dist/src/cli/layers.d.ts +6 -5
  22. package/dist/src/cli/layers.d.ts.map +1 -1
  23. package/dist/src/cli/layers.js +16 -15
  24. package/dist/src/cli/layers.js.map +1 -1
  25. package/dist/src/cli/list.d.ts +3 -2
  26. package/dist/src/cli/list.d.ts.map +1 -1
  27. package/dist/src/cli/list.js +11 -5
  28. package/dist/src/cli/list.js.map +1 -1
  29. package/dist/src/cli/reconcile.d.ts +12 -3
  30. package/dist/src/cli/reconcile.d.ts.map +1 -1
  31. package/dist/src/cli/reconcile.js +71 -23
  32. package/dist/src/cli/reconcile.js.map +1 -1
  33. package/dist/src/cli/root.d.ts.map +1 -1
  34. package/dist/src/cli/root.js +3 -3
  35. package/dist/src/cli/root.js.map +1 -1
  36. package/dist/src/cli/setup.d.ts +14 -4
  37. package/dist/src/cli/setup.d.ts.map +1 -1
  38. package/dist/src/cli/setup.js +45 -94
  39. package/dist/src/cli/setup.js.map +1 -1
  40. package/dist/src/cli/timer/discard.d.ts +1 -1
  41. package/dist/src/cli/timer/discard.d.ts.map +1 -1
  42. package/dist/src/cli/timer/discard.js +2 -1
  43. package/dist/src/cli/timer/discard.js.map +1 -1
  44. package/dist/src/cli/timer/log.d.ts +1 -1
  45. package/dist/src/cli/timer/log.d.ts.map +1 -1
  46. package/dist/src/cli/timer/log.js +2 -1
  47. package/dist/src/cli/timer/log.js.map +1 -1
  48. package/dist/src/cli/timer/start.d.ts +2 -1
  49. package/dist/src/cli/timer/start.d.ts.map +1 -1
  50. package/dist/src/cli/timer/start.js +6 -8
  51. package/dist/src/cli/timer/start.js.map +1 -1
  52. package/dist/src/cli/timer/stop.d.ts +1 -1
  53. package/dist/src/cli/timer/stop.d.ts.map +1 -1
  54. package/dist/src/cli/timer.d.ts.map +1 -1
  55. package/dist/src/cli/timer.js +8 -1
  56. package/dist/src/cli/timer.js.map +1 -1
  57. package/dist/src/cli/unknownCommand.d.ts +24 -0
  58. package/dist/src/cli/unknownCommand.d.ts.map +1 -0
  59. package/dist/src/cli/unknownCommand.js +84 -0
  60. package/dist/src/cli/unknownCommand.js.map +1 -0
  61. package/dist/src/cli/watch.d.ts +2 -2
  62. package/dist/src/cli/watch.d.ts.map +1 -1
  63. package/dist/src/services/ConfigService.d.ts +2 -0
  64. package/dist/src/services/ConfigService.d.ts.map +1 -1
  65. package/dist/src/services/ConfigService.js +2 -1
  66. package/dist/src/services/ConfigService.js.map +1 -1
  67. package/dist/src/services/IssueFacts.d.ts +2 -2
  68. package/dist/src/services/IssueFacts.d.ts.map +1 -1
  69. package/dist/src/services/IssueFacts.js +5 -5
  70. package/dist/src/services/IssueFacts.js.map +1 -1
  71. package/dist/src/services/JiraAccess.d.ts +140 -0
  72. package/dist/src/services/JiraAccess.d.ts.map +1 -0
  73. package/dist/src/services/JiraAccess.js +204 -0
  74. package/dist/src/services/JiraAccess.js.map +1 -0
  75. package/dist/src/services/ProviderSnapshots.d.ts +2 -2
  76. package/dist/src/services/ProviderSnapshots.d.ts.map +1 -1
  77. package/dist/src/services/ProviderSnapshots.js +14 -24
  78. package/dist/src/services/ProviderSnapshots.js.map +1 -1
  79. package/dist/src/services/ReconcileService.d.ts +2 -2
  80. package/dist/src/services/ReconcileService.d.ts.map +1 -1
  81. package/dist/src/services/ReconcileService.js +11 -4
  82. package/dist/src/services/ReconcileService.js.map +1 -1
  83. package/dist/src/services/SavedEntries.d.ts +1 -1
  84. package/dist/src/services/SavedEntries.d.ts.map +1 -1
  85. package/dist/src/services/TimerService.d.ts +3 -3
  86. package/dist/src/services/TimerService.d.ts.map +1 -1
  87. package/dist/src/services/TimerService.js +6 -17
  88. package/dist/src/services/TimerService.js.map +1 -1
  89. package/dist/src/testing/fakeHeadless.d.ts +1 -1
  90. package/dist/src/testing/fakeHeadless.d.ts.map +1 -1
  91. package/dist/src/testing/fakeHeadless.js +17 -7
  92. package/dist/src/testing/fakeHeadless.js.map +1 -1
  93. package/dist/src/tui/App.js +1 -1
  94. package/dist/src/tui/atoms/runtime.d.ts +1 -1
  95. package/dist/src/tui/atoms/runtime.d.ts.map +1 -1
  96. package/dist/src/utils/hints.d.ts +4 -2
  97. package/dist/src/utils/hints.d.ts.map +1 -1
  98. package/dist/src/utils/hints.js +4 -2
  99. package/dist/src/utils/hints.js.map +1 -1
  100. package/dist/tsconfig.tsbuildinfo +1 -1
  101. package/package.json +7 -7
  102. package/skills/jcf/SKILL.md +9 -6
@@ -3,109 +3,64 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- import { make as makeClockifyApi } from "@knpkv/clockify-api-client";
7
- import { JiraAuth } from "@knpkv/jira-cli/JiraAuth";
8
- import { Console, Effect, Predicate, Redacted, Schema } from "effect";
6
+ import { Console, Effect, Option, Predicate } from "effect";
9
7
  import { Prompt } from "effect/cli";
10
- import * as HttpClient from "effect/http/HttpClient";
11
8
  import * as Path from "effect/Path";
12
9
  import * as ChildProcess from "effect/process/ChildProcess";
13
10
  import { ClockifyAuth } from "../services/ClockifyAuth.js";
14
- const ClockifySetupUser = Schema.Struct({
15
- id: Schema.NonEmptyString,
16
- name: Schema.NonEmptyString,
17
- email: Schema.NonEmptyString
18
- });
19
- const ClockifySetupWorkspace = Schema.Struct({
20
- id: Schema.NonEmptyString,
21
- name: Schema.NonEmptyString
22
- });
23
- const decodeClockifySetupUser = Schema.decodeUnknownEffect(ClockifySetupUser);
24
- const decodeClockifySetupWorkspaces = Schema.decodeUnknownEffect(Schema.Array(ClockifySetupWorkspace));
11
+ import { JiraAccess } from "../services/JiraAccess.js";
12
+ import { CONNECT_JIRA_COMMAND } from "../utils/hints.js";
13
+ import { connectClockify, connectJiraWithToken } from "./auth.js";
14
+ import { CommandFailed, requireTerminal } from "./CommandFailed.js";
25
15
  // ---------------------------------------------------------------------------
26
16
  // First-run setup
27
17
  // ---------------------------------------------------------------------------
18
+ /** Runs one system's setup; a failure is printed and the wizard moves on, so the other can still connect. */
19
+ const attempt = (setup) => setup.pipe(Effect.as(true), Effect.catch((error) => Console.log(`${error.message}\n`).pipe(Effect.as(false))));
20
+ /**
21
+ * Before the TUI: when neither system is connected, offer to connect each, either skippable. With one
22
+ * connected it goes straight on; the TUI and `jcf auth status` say what the other needs. Without a
23
+ * terminal to ask in, it prints the two commands and fails.
24
+ */
28
25
  export const checkAuthOrSetup = Effect.gen(function* () {
29
26
  const clockifyAuth = yield* ClockifyAuth;
30
- const jira = yield* JiraAuth;
27
+ const access = yield* JiraAccess;
28
+ const jiraOk = Option.isSome(yield* access.connection.pipe(Effect.orElseSucceed(() => Option.none())));
31
29
  const clockifyOk = yield* clockifyAuth.isConfigured;
32
- const jiraOk = yield* jira.isLoggedIn();
33
- if (clockifyOk && jiraOk)
30
+ if (jiraOk || clockifyOk)
34
31
  return true;
35
- yield* Console.log("Welcome to jcf! Let's set up your accounts.\n");
36
- if (!jiraOk) {
37
- yield* Console.log("─── Jira ───");
38
- const jiraConfigured = yield* jira.isConfigured();
39
- if (!jiraConfigured) {
40
- yield* Console.log("Jira OAuth not configured.");
41
- yield* Console.log("1. Create an OAuth app: https://developer.atlassian.com/console/myapps/create-3lo-app/");
42
- yield* Console.log(" Permissions: read:jira-work, write:jira-work, read:jira-user, read:me");
43
- yield* Console.log(" Callback URL: http://localhost:8585/callback");
44
- yield* Console.log("");
45
- const id = yield* Prompt.String({ message: "Enter OAuth client ID:" });
46
- const secret = yield* Prompt.String({ message: "Enter OAuth client secret:" });
47
- yield* jira.configure({ clientId: id, clientSecret: secret });
48
- yield* Console.log("OAuth configured.");
49
- }
50
- yield* Console.log("Starting Jira login...");
51
- yield* jira.login().pipe(Effect.catch((e) => Console.log(`Jira login failed: ${Predicate.hasProperty(e, "message") ? String(e.message) : String(e)}`)));
52
- const user = yield* jira.getCurrentUser().pipe(Effect.catch(() => Effect.succeed(null)));
53
- if (user) {
54
- yield* Console.log(`✓ Logged in as ${user.name} (${user.email})\n`);
55
- }
56
- else {
57
- yield* Console.log("✗ Jira login incomplete. You can retry with: jcf auth jira login\n");
58
- }
59
- }
60
- if (!clockifyOk) {
61
- yield* Console.log("─── Clockify ───");
62
- yield* Console.log("Get your API key from: https://app.clockify.me/manage-api-keys\n");
63
- const apiKey = yield* Prompt.String({ message: "Enter Clockify API key:" });
64
- if (!apiKey) {
65
- yield* Console.log("Skipped. Run: jcf auth clockify setup\n");
66
- return false;
67
- }
68
- const httpClient = yield* HttpClient.HttpClient;
69
- const client = makeClockifyApi(httpClient, {
70
- apiKey: Redacted.make(apiKey),
71
- baseUrl: "https://api.clockify.me/api"
32
+ yield* requireTerminal(`Connect Jira with ${CONNECT_JIRA_COMMAND}, or Clockify with jcf auth clockify setup.`);
33
+ yield* Console.log("jcf records your time in Jira and Clockify. Connect either or both; you can add the other later.\n");
34
+ yield* Console.log("Jira");
35
+ const jira = yield* Prompt.Select({
36
+ message: "How should jcf reach Jira?",
37
+ choices: [
38
+ { title: "Connect with an API token (recommended)", value: "token" },
39
+ { title: "Use my own Atlassian OAuth app (advanced)", value: "oauth" },
40
+ { title: "Skip Jira for now", value: "skip" }
41
+ ]
42
+ });
43
+ const jiraConnected = jira === "token"
44
+ ? yield* attempt(connectJiraWithToken({ site: Option.none(), email: Option.none() }))
45
+ : false;
46
+ if (jira === "oauth")
47
+ yield* Console.log("Run jcf auth jira create; it walks you through the Atlassian console.\n");
48
+ yield* Console.log("Clockify");
49
+ const clockify = yield* Prompt.Select({
50
+ message: "Connect Clockify?",
51
+ choices: [
52
+ { title: "Connect with an API key", value: "key" },
53
+ { title: "Skip Clockify for now", value: "skip" }
54
+ ]
55
+ });
56
+ const clockifyConnected = clockify === "key" ? yield* attempt(connectClockify(Option.none())) : false;
57
+ if (!jiraConnected && !clockifyConnected) {
58
+ return yield* new CommandFailed({
59
+ message: `Nothing is connected yet. Run ${CONNECT_JIRA_COMMAND} or jcf auth clockify setup.`
72
60
  });
73
- const user = yield* client.getLoggedUser(undefined).pipe(Effect.flatMap(decodeClockifySetupUser), Effect.catch(() => Effect.succeed(null)));
74
- if (!user) {
75
- yield* Console.log("✗ Invalid API key. Run: jcf auth clockify setup\n");
76
- return false;
77
- }
78
- yield* Console.log(`Authenticated as: ${user.name} (${user.email})`);
79
- const workspaces = yield* client.getWorkspacesOfUser(undefined).pipe(Effect.flatMap(decodeClockifySetupWorkspaces), Effect.catch(() => Effect.succeed([])));
80
- let workspaceId = "";
81
- let workspaceName = "";
82
- if (workspaces.length === 1) {
83
- const workspace = workspaces[0];
84
- if (workspace !== undefined) {
85
- workspaceId = workspace.id;
86
- workspaceName = workspace.name;
87
- }
88
- }
89
- else if (workspaces.length > 1) {
90
- workspaceId = yield* Prompt.Select({
91
- message: "Select workspace:",
92
- choices: workspaces.map((workspace) => ({ title: workspace.name, value: workspace.id }))
93
- });
94
- workspaceName = workspaces.find((workspace) => workspace.id === workspaceId)?.name ?? "";
95
- }
96
- if (workspaceId) {
97
- yield* clockifyAuth.save({
98
- apiKey,
99
- workspaceId,
100
- userId: user.id,
101
- baseUrl: "https://api.clockify.me/api"
102
- });
103
- yield* Console.log(`✓ Clockify configured (workspace: ${workspaceName})\n`);
104
- }
105
61
  }
106
- yield* Console.log("─── Setup complete! ───\n");
107
62
  return true;
108
- });
63
+ }).pipe(Effect.catchTag("QuitError", () => Effect.fail(new CommandFailed({ message: "Setup stopped; nothing more was connected." }))));
109
64
  // ---------------------------------------------------------------------------
110
65
  // TUI launcher
111
66
  // ---------------------------------------------------------------------------
@@ -139,11 +94,7 @@ export const launchTui = (args) => Effect.gen(function* () {
139
94
  }
140
95
  });
141
96
  export const launchTuiOrSetup = (args) => Effect.gen(function* () {
142
- const ready = yield* checkAuthOrSetup.pipe(Effect.catch(() => Effect.succeed(false)));
143
- if (!ready) {
144
- yield* Console.log("Setup incomplete. Run 'jcf auth status' to check.");
145
- return;
146
- }
97
+ yield* checkAuthOrSetup;
147
98
  yield* launchTui(args);
148
99
  });
149
100
  //# sourceMappingURL=setup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/cli/setup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAA;AACpD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AACnC,OAAO,KAAK,YAAY,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAI1D,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,EAAE,EAAE,MAAM,CAAC,cAAc;IACzB,IAAI,EAAE,MAAM,CAAC,cAAc;IAC3B,KAAK,EAAE,MAAM,CAAC,cAAc;CAC7B,CAAC,CAAA;AAEF,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3C,EAAE,EAAE,MAAM,CAAC,cAAc;IACzB,IAAI,EAAE,MAAM,CAAC,cAAc;CAC5B,CAAC,CAAA;AAIF,MAAM,uBAAuB,GAAG,MAAM,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAA;AAC7E,MAAM,6BAA6B,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAA;AAEtG,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClD,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IACxC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAA;IAE5B,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,YAAY,CAAA;IACnD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAA;IAEvC,IAAI,UAAU,IAAI,MAAM;QAAE,OAAO,IAAI,CAAA;IAErC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAA;IAEnE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QAClC,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;QACjD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;YAChD,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,wFAAwF,CAAC,CAAA;YAC5G,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,0EAA0E,CAAC,CAAA;YAC9F,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAA;YACrE,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAEtB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAA;YACtE,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC,CAAA;YAC9E,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAA;YAC7D,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;QACzC,CAAC;QAED,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;QAC5C,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CACtB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CACjB,OAAO,CAAC,GAAG,CAAC,sBAAsB,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CACzG,CACF,CAAA;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxF,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,CAAC,CAAA;QACrE,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAA;QAC1F,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;QACtC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAA;QAEtF,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAA;QAC3E,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAA;YAC7D,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAA;QAC/C,MAAM,MAAM,GAAG,eAAe,CAAC,UAAU,EAAE;YACzC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;YAC7B,OAAO,EAAE,6BAA6B;SACvC,CAAC,CAAA;QAEF,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,IAAI,CACtD,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,EACvC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CACzC,CAAA;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAA;YACvE,OAAO,KAAK,CAAA;QACd,CAAC;QACD,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;QAEpE,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,IAAI,CAClE,MAAM,CAAC,OAAO,CAAC,6BAA6B,CAAC,EAC7C,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAwC,EAAE,CAAC,CAAC,CAC9E,CAAA;QACD,IAAI,WAAW,GAAG,EAAE,CAAA;QACpB,IAAI,aAAa,GAAG,EAAE,CAAA;QACtB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;YAC/B,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,WAAW,GAAG,SAAS,CAAC,EAAE,CAAA;gBAC1B,aAAa,GAAG,SAAS,CAAC,IAAI,CAAA;YAChC,CAAC;QACH,CAAC;aAAM,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,WAAW,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;gBACjC,OAAO,EAAE,mBAAmB;gBAC5B,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;aACzF,CAAC,CAAA;YACF,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,IAAI,IAAI,EAAE,CAAA;QAC1F,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;gBACvB,MAAM;gBACN,WAAW;gBACX,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,OAAO,EAAE,6BAA6B;aACvC,CAAC,CAAA;YACF,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,qCAAqC,aAAa,KAAK,CAAC,CAAA;QAC7E,CAAC;IACH,CAAC;IAED,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;IAC/C,OAAO,IAAI,CAAA;AACb,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAA2B,EAAE,EAAE,CACvD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,8EAA8E;IAC9E,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1G,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;IAC9F,CAAC;SAAM,CAAC;QACN,iCAAiC;QACjC,MAAM,QAAQ,GAAG,CAAC,OAA6B,EAAE,EAAE,CACjD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QAE1E,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAC1E,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,EAChC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAC1C,CAAA;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAA;YAC3E,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAA;YAC3E,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACtB,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAChB,kGAAkG,CACnG,CAAA;YACD,OAAM;QACR,CAAC;QACD,2DAA2D;QAC3D,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;QAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QACtE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC7B,KAAK,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC,EAAE;YACjE,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC,CAAC,IAAI,CACN,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAChC,CAAA;IACH,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAA2B,EAAE,EAAE,CAC9D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACrF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAA;QACvE,OAAM;IACR,CAAC;IACD,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;AACxB,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/cli/setup.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { Command, Prompt } from "effect/cli";
2
2
  import { TimerService } from "../../services/TimerService.js";
3
- export declare const discard: Command.Command<"discard", {}, {}, import("effect/Terminal").QuitError | import("../../services/TimerService.js").TimerError, TimerService | Prompt.Environment>;
3
+ export declare const discard: Command.Command<"discard", {}, {}, import("../CommandFailed.js").CommandFailed | import("effect/Terminal").QuitError | import("../../services/TimerService.js").TimerError, TimerService | Prompt.Environment>;
4
4
  //# sourceMappingURL=discard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"discard.d.ts","sourceRoot":"","sources":["../../../../src/cli/timer/discard.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAE7D,eAAO,MAAM,OAAO,kKAoCnB,CAAA"}
1
+ {"version":3,"file":"discard.d.ts","sourceRoot":"","sources":["../../../../src/cli/timer/discard.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAG7D,eAAO,MAAM,OAAO,gNAkCnB,CAAA"}
@@ -6,6 +6,7 @@
6
6
  import { Console, Effect, SubscriptionRef } from "effect";
7
7
  import { Command, Prompt } from "effect/cli";
8
8
  import { TimerService } from "../../services/TimerService.js";
9
+ import { toCommandFailed } from "../CommandFailed.js";
9
10
  export const discard = Command.make("discard", {}, () => Effect.gen(function* () {
10
11
  const timer = yield* TimerService;
11
12
  yield* timer.detectRunning;
@@ -27,7 +28,7 @@ export const discard = Command.make("discard", {}, () => Effect.gen(function* ()
27
28
  yield* Console.log("Cancelled.");
28
29
  return;
29
30
  }
30
- yield* timer.discard.pipe(Effect.catch((e) => Console.log(`Error: ${e.message}`)));
31
+ yield* timer.discard.pipe(Effect.mapError(toCommandFailed));
31
32
  yield* Console.log("Timer discarded. Clockify entry deleted.");
32
33
  }));
33
34
  //# sourceMappingURL=discard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"discard.js","sourceRoot":"","sources":["../../../../src/cli/timer/discard.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAE7D,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CACjC,SAAS,EACT,EAAE,EACF,GAAG,EAAE,CACH,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IACjC,KAAK,CAAC,CAAC,KAAK,CAAC,aAAa,CAAA;IAE1B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACvD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;QACjD,OAAM;IACR,CAAC;IAED,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,OAAO,CAAC,SAAS,MAAM,OAAO,CAAC,OAAO,IAAI,EAAE,GAAG,CAAC,CAAA;IACrF,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAA;IAE3F,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QACnC,OAAO,EAAE,eAAe;QACxB,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE;YACtC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE;SAClC;KACF,CAAC,CAAA;IAEF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QAChC,OAAM;IACR,CAAC;IAED,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CACvB,MAAM,CAAC,KAAK,CAAC,CAAC,CAA+B,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CACtF,CAAA;IAED,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAA;AAChE,CAAC,CAAC,CACL,CAAA"}
1
+ {"version":3,"file":"discard.js","sourceRoot":"","sources":["../../../../src/cli/timer/discard.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAErD,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CACjC,SAAS,EACT,EAAE,EACF,GAAG,EAAE,CACH,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IACjC,KAAK,CAAC,CAAC,KAAK,CAAC,aAAa,CAAA;IAE1B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACvD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;QACjD,OAAM;IACR,CAAC;IAED,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,OAAO,CAAC,SAAS,MAAM,OAAO,CAAC,OAAO,IAAI,EAAE,GAAG,CAAC,CAAA;IACrF,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAA;IAE3F,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QACnC,OAAO,EAAE,eAAe;QACxB,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE;YACtC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE;SAClC;KACF,CAAC,CAAA;IAEF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QAChC,OAAM;IACR,CAAC;IAED,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAA;IAE3D,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAA;AAChE,CAAC,CAAC,CACL,CAAA"}
@@ -12,5 +12,5 @@ export declare const log: Command.Command<"log", {
12
12
  readonly date: Option.Option<string>;
13
13
  readonly at: Option.Option<string>;
14
14
  readonly comment: Option.Option<string>;
15
- }, {}, never, import("@knpkv/jira-api-client").JiraApiClient | import("@knpkv/jira-cli/JiraAuth").JiraAuth | TimerService>;
15
+ }, {}, import("../CommandFailed.js").CommandFailed, import("../../services/JiraAccess.js").JiraAccess | import("@knpkv/jira-api-client").JiraApiClient | TimerService>;
16
16
  //# sourceMappingURL=log.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../../src/cli/timer/log.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAmB,MAAM,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAoB,OAAO,EAAmB,MAAM,YAAY,CAAA;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAU7D,eAAO,MAAM,GAAG;;;;;;0HAmFf,CAAA"}
1
+ {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../../src/cli/timer/log.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAmB,MAAM,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAoB,OAAO,EAAmB,MAAM,YAAY,CAAA;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAW7D,eAAO,MAAM,GAAG;;;;;;sKAiFf,CAAA"}
@@ -7,6 +7,7 @@ import { Console, Effect, Option } from "effect";
7
7
  import { Argument as Args, Command, Flag as Options } from "effect/cli";
8
8
  import { TimerService } from "../../services/TimerService.js";
9
9
  import { formatDuration, isFullIsoTimestamp, parseDuration, parseStartTime } from "../../utils/time.js";
10
+ import { toCommandFailed } from "../CommandFailed.js";
10
11
  import { fetchTicketByKey, NOT_LOGGED_IN_HINT } from "../fetchTicket.js";
11
12
  /** Today's calendar day in the user's *local* timezone as `YYYY-MM-DD`. */
12
13
  const localToday = () => {
@@ -64,7 +65,7 @@ export const log = Command.make("log", {
64
65
  start: started,
65
66
  durationSeconds: totalSeconds,
66
67
  comment: Option.isSome(comment) ? comment.value : undefined
67
- }).pipe(Effect.catch((e) => Console.log(`Error: ${e.message}`).pipe(Effect.as(null))));
68
+ }).pipe(Effect.mapError(toCommandFailed));
68
69
  if (result) {
69
70
  yield* Console.log(` Clockify: ${result.clockifyLogged ? "✓" : "✗"}`);
70
71
  yield* Console.log(` Jira worklog: ${result.jiraWorklogLogged ? "✓" : "✗"}`);
@@ -1 +1 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../../../../src/cli/timer/log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../../../src/cli/timer/log.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ import { ClockifyAuth } from "../../services/ClockifyAuth.js";
10
10
  import { ConfigService } from "../../services/ConfigService.js";
11
11
  import { TicketService } from "../../services/TicketService.js";
12
12
  import { TimerService } from "../../services/TimerService.js";
13
+ import { CommandFailed } from "../CommandFailed.js";
13
14
  export declare const start: Command.Command<"start", {
14
15
  readonly key: Option.Option<string>;
15
16
  readonly project: Option.Option<string>;
@@ -17,5 +18,5 @@ export declare const start: Command.Command<"start", {
17
18
  readonly saveDefaults: boolean;
18
19
  readonly ago: Option.Option<string>;
19
20
  readonly since: Option.Option<string>;
20
- }, {}, import("effect/Terminal").QuitError | import("../../services/TicketService.js").TicketError | import("../../services/TimerService.js").TimerError, ClockifyApiClient | ClockifyAuth | ConfigService | import("@knpkv/jira-api-client").JiraApiClient | import("@knpkv/jira-cli/JiraAuth").JiraAuth | TicketService | TimerService | Prompt.Environment>;
21
+ }, {}, CommandFailed | import("effect/Terminal").QuitError | import("../../services/TicketService.js").TicketError | import("../../services/TimerService.js").TimerError, ClockifyApiClient | ClockifyAuth | ConfigService | import("../../services/JiraAccess.js").JiraAccess | import("@knpkv/jira-api-client").JiraApiClient | TicketService | TimerService | Prompt.Environment>;
21
22
  //# sourceMappingURL=start.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../../src/cli/timer/start.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,iBAAiB,EAAgB,MAAM,4BAA4B,CAAA;AAC5E,OAAO,EAA0B,MAAM,EAAmB,MAAM,QAAQ,CAAA;AACxE,OAAO,EAAoB,OAAO,EAAmB,MAAM,EAAE,MAAM,YAAY,CAAA;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAY7D,eAAO,MAAM,KAAK;;;;;;;8VAoMjB,CAAA"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../../src/cli/timer/start.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,iBAAiB,EAAgB,MAAM,4BAA4B,CAAA;AAC5E,OAAO,EAA0B,MAAM,EAAmB,MAAM,QAAQ,CAAA;AACxE,OAAO,EAAoB,OAAO,EAAmB,MAAM,EAAE,MAAM,YAAY,CAAA;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAE7D,OAAO,EAAE,aAAa,EAAgC,MAAM,qBAAqB,CAAA;AAWjF,eAAO,MAAM,KAAK;;;;;;;oXA8LjB,CAAA"}
@@ -11,6 +11,7 @@ import { ConfigService } from "../../services/ConfigService.js";
11
11
  import { TicketService } from "../../services/TicketService.js";
12
12
  import { TimerService } from "../../services/TimerService.js";
13
13
  import { formatElapsed, parseDuration, parseStartTime } from "../../utils/time.js";
14
+ import { CommandFailed, requireJira, toCommandFailed } from "../CommandFailed.js";
14
15
  import { fetchTicketByKey, NOT_LOGGED_IN_HINT } from "../fetchTicket.js";
15
16
  import { fuzzySelect } from "../fuzzySelect.js";
16
17
  const replaceTimerAction = "replace";
@@ -79,13 +80,14 @@ export const start = Command.make("start", {
79
80
  return;
80
81
  }
81
82
  // Refresh tickets for selection
83
+ yield* requireJira;
82
84
  yield* ticketService.refresh;
83
85
  yield* Effect.sleep("600 millis");
84
86
  const { tickets: allTickets } = yield* SubscriptionRef.get(ticketService.state);
85
87
  let ticket;
86
88
  if (key._tag === "None") {
87
89
  if (allTickets.length === 0) {
88
- yield* Console.log("No tickets found. Usage: jcf timer start PROJ-123");
90
+ yield* Console.log("No open Jira issues are assigned to you. Start one by key: jcf timer start PROJ-123");
89
91
  return;
90
92
  }
91
93
  const selectedKey = yield* fuzzySelect({
@@ -105,10 +107,8 @@ export const start = Command.make("start", {
105
107
  else {
106
108
  // Key provided — fetch from Jira to validate and get title
107
109
  const fetched = yield* fetchTicketByKey(key.value);
108
- if (fetched._tag === "NotLoggedIn") {
109
- yield* Console.log(NOT_LOGGED_IN_HINT);
110
- return;
111
- }
110
+ if (fetched._tag === "NotLoggedIn")
111
+ return yield* new CommandFailed({ message: NOT_LOGGED_IN_HINT });
112
112
  if (fetched._tag === "NotFound") {
113
113
  yield* Console.log(`Ticket ${key.value} not found in Jira.`);
114
114
  return;
@@ -168,9 +168,7 @@ export const start = Command.make("start", {
168
168
  });
169
169
  yield* Console.log("Defaults saved to ~/.jcf/config.json");
170
170
  }
171
- const started = yield* timer.start(ticket, { projectId, billable: billableVal, startedAt }).pipe(Effect.as(true), Effect.catch((e) => Console.log(`Error: ${e.message}`).pipe(Effect.as(false))));
172
- if (!started)
173
- return;
171
+ yield* timer.start(ticket, { projectId, billable: billableVal, startedAt }).pipe(Effect.mapError(toCommandFailed));
174
172
  const startedSuffix = startedAt
175
173
  ? ` (started ${formatElapsed(Math.floor((nowMs - startedAt.getTime()) / 1000))} ago)`
176
174
  : "";
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../../src/cli/timer/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../../src/cli/timer/start.ts"],"names":[],"mappings":"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"}
@@ -44,5 +44,5 @@ export declare const stop: Command.Command<"stop", {
44
44
  readonly project: Option.Option<string>;
45
45
  readonly billable: Option.Option<boolean>;
46
46
  readonly at: Option.Option<string>;
47
- }, {}, QuitError | TimerError, ClockifyApiClient | ClockifyAuth | ConfigService | import("@knpkv/jira-api-client").JiraApiClient | import("@knpkv/jira-cli/JiraAuth").JiraAuth | TimerService | Prompt.Environment>;
47
+ }, {}, QuitError | TimerError, ClockifyApiClient | ClockifyAuth | ConfigService | import("../../services/JiraAccess.js").JiraAccess | import("@knpkv/jira-api-client").JiraApiClient | TimerService | Prompt.Environment>;
48
48
  //# sourceMappingURL=stop.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../../../src/cli/timer/stop.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAA4B,MAAM,EAAE,MAAM,EAAmB,MAAM,QAAQ,CAAA;AAClF,OAAO,EAAE,OAAO,EAAmB,MAAM,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAC/D,OAAO,KAAK,EAAsB,UAAU,EAAE,MAAM,gCAAgC,CAAA;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAiB7D;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,WAAY;IACzC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IACxC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAA;CAC3C,KAAG,MAAM,CAAC,MAAM,CACf,MAAM,GAAG,SAAS,EAClB,SAAS,EACT,YAAY,GAAG,iBAAiB,GAAG,aAAa,GAAG,MAAM,CAAC,WAAW,CAsCnE,CAAA;AAEJ;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,WAAY;IAC1C,QAAQ,CAAC,eAAe,EAAE,OAAO,GAAG,IAAI,CAAA;IACxC,QAAQ,CAAC,YAAY,EAAE,OAAO,GAAG,SAAS,CAAA;CAC3C,KAAG,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,SAAS,EAAE,SAAS,EAAE,aAAa,GAAG,MAAM,CAAC,WAAW,CAyBhF,CAAA;AAEJ,eAAO,MAAM,IAAI;;;;mNAoNhB,CAAA"}
1
+ {"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../../../src/cli/timer/stop.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAA4B,MAAM,EAAE,MAAM,EAAmB,MAAM,QAAQ,CAAA;AAClF,OAAO,EAAE,OAAO,EAAmB,MAAM,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAC/D,OAAO,KAAK,EAAsB,UAAU,EAAE,MAAM,gCAAgC,CAAA;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAiB7D;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,WAAY;IACzC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IACxC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAA;CAC3C,KAAG,MAAM,CAAC,MAAM,CACf,MAAM,GAAG,SAAS,EAClB,SAAS,EACT,YAAY,GAAG,iBAAiB,GAAG,aAAa,GAAG,MAAM,CAAC,WAAW,CAsCnE,CAAA;AAEJ;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,WAAY;IAC1C,QAAQ,CAAC,eAAe,EAAE,OAAO,GAAG,IAAI,CAAA;IACxC,QAAQ,CAAC,YAAY,EAAE,OAAO,GAAG,SAAS,CAAA;CAC3C,KAAG,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,SAAS,EAAE,SAAS,EAAE,aAAa,GAAG,MAAM,CAAC,WAAW,CAyBhF,CAAA;AAEJ,eAAO,MAAM,IAAI;;;;yNAoNhB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"timer.d.ts","sourceRoot":"","sources":["../../../src/cli/timer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAE7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAE7E,KAAK,eAAe,GAAG,OAAO,KAAK,GAAG,OAAO,IAAI,GAAG,OAAO,OAAO,GAAG,OAAO,SAAS,GAAG,OAAO,GAAG,GAAG,OAAO,IAAI,CAAA;AAEhH,eAAO,MAAM,KAAK,EAAE,OAAO,CAAC,OAAO,CACjC,OAAO,EACP,EAAE,EACF,EAAE,EACF,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,EAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAQlC,CAAA"}
1
+ {"version":3,"file":"timer.d.ts","sourceRoot":"","sources":["../../../src/cli/timer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAE7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAE7E,KAAK,eAAe,GAAG,OAAO,KAAK,GAAG,OAAO,IAAI,GAAG,OAAO,OAAO,GAAG,OAAO,SAAS,GAAG,OAAO,GAAG,GAAG,OAAO,IAAI,CAAA;AAEhH,eAAO,MAAM,KAAK,EAAE,OAAO,CAAC,OAAO,CACjC,OAAO,EACP,EAAE,EACF,EAAE,EACF,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,EAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAelC,CAAA"}
@@ -7,5 +7,12 @@ import { Command } from "effect/cli";
7
7
  import * as Console from "effect/Console";
8
8
  import { discard, edit, log, start, statusCmd, stop } from "./timer/index.js";
9
9
  export { discard, edit, log, start, statusCmd, stop } from "./timer/index.js";
10
- export const timer = Command.make("timer", {}, () => Console.log("Usage: jcf timer <start|stop|discard|status|log|edit>")).pipe(Command.withDescription("Timer commands for Jira-backed Clockify work"), Command.withSubcommands([start, stop, discard, statusCmd, log, edit]));
10
+ export const timer = Command.make("timer", {}, () => Console.log("Usage: jcf timer <start|stop|discard|status|log|edit>")).pipe(Command.withDescription("Track time on a Jira issue"), Command.withSubcommands([
11
+ start.pipe(Command.withDescription("Start a timer on a Jira issue, in Clockify")),
12
+ stop.pipe(Command.withDescription("Stop the timer and save the time to Clockify and a Jira worklog")),
13
+ discard.pipe(Command.withDescription("Discard the running timer and delete its Clockify entry")),
14
+ statusCmd.pipe(Command.withDescription("Show the running timer")),
15
+ log.pipe(Command.withDescription("Log time you already spent on a Jira issue")),
16
+ edit.pipe(Command.withDescription("Change the running timer's start time or issue"))
17
+ ]));
11
18
  //# sourceMappingURL=timer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timer.js","sourceRoot":"","sources":["../../../src/cli/timer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAE7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAI7E,MAAM,CAAC,MAAM,KAAK,GAMd,OAAO,CAAC,IAAI,CACd,OAAO,EACP,EAAE,EACF,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAC3E,CAAC,IAAI,CACJ,OAAO,CAAC,eAAe,CAAC,8CAA8C,CAAC,EACvE,OAAO,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CACtE,CAAA"}
1
+ {"version":3,"file":"timer.js","sourceRoot":"","sources":["../../../src/cli/timer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAE7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAI7E,MAAM,CAAC,MAAM,KAAK,GAMd,OAAO,CAAC,IAAI,CACd,OAAO,EACP,EAAE,EACF,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAC3E,CAAC,IAAI,CACJ,OAAO,CAAC,eAAe,CAAC,4BAA4B,CAAC,EACrD,OAAO,CAAC,eAAe,CAAC;IACtB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,4CAA4C,CAAC,CAAC;IACjF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,iEAAiE,CAAC,CAAC;IACrG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,yDAAyD,CAAC,CAAC;IAChG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,wBAAwB,CAAC,CAAC;IACjE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,4CAA4C,CAAC,CAAC;IAC/E,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,gDAAgD,CAAC,CAAC;CACrF,CAAC,CACH,CAAA"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * The one line jcf prints for a command it does not have, instead of the whole help followed by the
3
+ * error at the bottom.
4
+ *
5
+ * effect/cli prints a command's full help before its "Unknown subcommand" error and offers no hook to
6
+ * skip it, so the arguments are checked against the command tree first. Only what is certainly a
7
+ * command name is judged; anything after a command's own flag is left to effect/cli.
8
+ *
9
+ * @module
10
+ */
11
+ /** The part of an effect/cli command this check reads. */
12
+ export interface CommandTree {
13
+ readonly name: string;
14
+ readonly unlisted: boolean;
15
+ readonly subcommands: ReadonlyArray<{
16
+ readonly commands: ReadonlyArray<CommandTree>;
17
+ }>;
18
+ }
19
+ /**
20
+ * The error line for `args` run against `root`, or `undefined` when every command name in them is
21
+ * real (or the first one is preceded by a command's own flag, which effect/cli judges itself).
22
+ */
23
+ export declare const unknownCommandLine: (args: ReadonlyArray<string>, root: CommandTree) => string | undefined;
24
+ //# sourceMappingURL=unknownCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unknownCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/unknownCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,0DAA0D;AAC1D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;KAAE,CAAC,CAAA;CACvF;AA0DD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,SAAU,aAAa,CAAC,MAAM,CAAC,QAAQ,WAAW,KAAG,MAAM,GAAG,SAqB5F,CAAA"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * The one line jcf prints for a command it does not have, instead of the whole help followed by the
3
+ * error at the bottom.
4
+ *
5
+ * effect/cli prints a command's full help before its "Unknown subcommand" error and offers no hook to
6
+ * skip it, so the arguments are checked against the command tree first. Only what is certainly a
7
+ * command name is judged; anything after a command's own flag is left to effect/cli.
8
+ *
9
+ * @module
10
+ */
11
+ /** effect/cli's global flags that take a value, so the value is not mistaken for a command. */
12
+ const valueFlags = ["--completions", "--log-level"];
13
+ /** Where the common second-level commands live, for a first argument that names one of them. */
14
+ const nestedCommands = new Map([
15
+ ["status", ["jcf auth status", "jcf timer status"]],
16
+ ["start", ["jcf timer start"]],
17
+ ["stop", ["jcf timer stop"]],
18
+ ["log", ["jcf timer log"]],
19
+ ["list", ["jcf issue list"]],
20
+ ["reconcile", ["jcf sync reconcile"]],
21
+ ["show", ["jcf config show"]],
22
+ ["login", ["jcf auth jira token"]],
23
+ ["week", ["jcf sync reconcile --week", "the week view: jcf-web"]]
24
+ ]);
25
+ const distance = (left, right) => {
26
+ const previous = Array.from({ length: right.length + 1 }, (_, index) => index);
27
+ for (let row = 1; row <= left.length; row++) {
28
+ let diagonal = previous[0] ?? 0;
29
+ previous[0] = row;
30
+ for (let column = 1; column <= right.length; column++) {
31
+ const above = previous[column] ?? 0;
32
+ previous[column] = Math.min(above + 1, (previous[column - 1] ?? 0) + 1, diagonal + (left[row - 1] === right[column - 1] ? 0 : 1));
33
+ diagonal = above;
34
+ }
35
+ }
36
+ return previous[right.length] ?? 0;
37
+ };
38
+ /** The names at the smallest distance from `word`, within two edits. */
39
+ const nearest = (word, names) => {
40
+ const scored = names.map((name) => ({ name, score: distance(name, word) })).filter(({ score }) => score <= 2);
41
+ const best = Math.min(...scored.map(({ score }) => score));
42
+ return scored.filter(({ score }) => score === best).map(({ name }) => name);
43
+ };
44
+ const unknownLine = (path, word, command) => {
45
+ const prefix = path.join(" ");
46
+ const nested = path.length === 1 ? nestedCommands.get(word) : undefined;
47
+ const close = nearest(word, command.subcommands.flatMap((group) => group.commands).filter((child) => !child.unlisted).map((child) => child.name));
48
+ const hint = nested !== undefined
49
+ ? ` Did you mean ${nested.join(" or ")}?`
50
+ : close.length > 0
51
+ ? ` Did you mean ${close.map((name) => `${prefix} ${name}`).join(" or ")}?`
52
+ : "";
53
+ return `${prefix}: unknown command "${word}".${hint} Run ${prefix} --help for the commands.`;
54
+ };
55
+ /**
56
+ * The error line for `args` run against `root`, or `undefined` when every command name in them is
57
+ * real (or the first one is preceded by a command's own flag, which effect/cli judges itself).
58
+ */
59
+ export const unknownCommandLine = (args, root) => {
60
+ const path = [root.name];
61
+ let command = root;
62
+ for (let index = 0; index < args.length; index++) {
63
+ const word = args[index] ?? "";
64
+ if (word.startsWith("-")) {
65
+ if (valueFlags.includes(word)) {
66
+ index++;
67
+ continue;
68
+ }
69
+ if (word.startsWith("--log-level=") || word.startsWith("--completions="))
70
+ continue;
71
+ return undefined;
72
+ }
73
+ const children = command.subcommands.flatMap((group) => group.commands);
74
+ if (children.length === 0)
75
+ return undefined;
76
+ const child = children.find((candidate) => candidate.name === word);
77
+ if (child === undefined)
78
+ return unknownLine(path, word, command);
79
+ path.push(child.name);
80
+ command = child;
81
+ }
82
+ return undefined;
83
+ };
84
+ //# sourceMappingURL=unknownCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unknownCommand.js","sourceRoot":"","sources":["../../../src/cli/unknownCommand.ts"],"names":[],"mappings":"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"}