@knpkv/jira-clockify 0.2.0 → 0.4.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 (81) hide show
  1. package/README.md +4 -1
  2. package/dist/package.json +12 -13
  3. package/dist/src/bin.js +30 -13
  4. package/dist/src/bin.js.map +1 -1
  5. package/dist/src/cli/auth.js +23 -19
  6. package/dist/src/cli/auth.js.map +1 -1
  7. package/dist/src/cli/config.js +4 -4
  8. package/dist/src/cli/config.js.map +1 -1
  9. package/dist/src/cli/fetchTicket.js +18 -0
  10. package/dist/src/cli/fetchTicket.js.map +1 -0
  11. package/dist/src/cli/fuzzySelect.js +6 -5
  12. package/dist/src/cli/fuzzySelect.js.map +1 -1
  13. package/dist/src/cli/layers.js +10 -8
  14. package/dist/src/cli/layers.js.map +1 -1
  15. package/dist/src/cli/list.js +1 -1
  16. package/dist/src/cli/list.js.map +1 -1
  17. package/dist/src/cli/setup.js +19 -19
  18. package/dist/src/cli/setup.js.map +1 -1
  19. package/dist/src/cli/timer/discard.js +2 -2
  20. package/dist/src/cli/timer/discard.js.map +1 -1
  21. package/dist/src/cli/timer/edit.js +11 -11
  22. package/dist/src/cli/timer/edit.js.map +1 -1
  23. package/dist/src/cli/timer/log.js +52 -79
  24. package/dist/src/cli/timer/log.js.map +1 -1
  25. package/dist/src/cli/timer/start.js +52 -40
  26. package/dist/src/cli/timer/start.js.map +1 -1
  27. package/dist/src/cli/timer/status.js +7 -7
  28. package/dist/src/cli/timer/status.js.map +1 -1
  29. package/dist/src/cli/timer/stop.js +164 -58
  30. package/dist/src/cli/timer/stop.js.map +1 -1
  31. package/dist/src/main.js +15 -3
  32. package/dist/src/main.js.map +1 -1
  33. package/dist/src/services/ClockifyAuth.js +12 -23
  34. package/dist/src/services/ClockifyAuth.js.map +1 -1
  35. package/dist/src/services/ConfigService.js +7 -7
  36. package/dist/src/services/ConfigService.js.map +1 -1
  37. package/dist/src/services/HomeDirectory.js +14 -0
  38. package/dist/src/services/HomeDirectory.js.map +1 -0
  39. package/dist/src/services/StateWriter.js +8 -8
  40. package/dist/src/services/StateWriter.js.map +1 -1
  41. package/dist/src/services/TicketService.js +22 -15
  42. package/dist/src/services/TicketService.js.map +1 -1
  43. package/dist/src/services/TimerService.js +116 -58
  44. package/dist/src/services/TimerService.js.map +1 -1
  45. package/dist/src/tui/App.js +6 -5
  46. package/dist/src/tui/App.js.map +1 -1
  47. package/dist/src/tui/atoms/runtime.js +1 -1
  48. package/dist/src/tui/atoms/runtime.js.map +1 -1
  49. package/dist/src/tui/atoms/tickets.js +1 -1
  50. package/dist/src/tui/atoms/tickets.js.map +1 -1
  51. package/dist/src/tui/atoms/timer.js +2 -2
  52. package/dist/src/tui/atoms/timer.js.map +1 -1
  53. package/dist/src/tui/atoms/ui.js +1 -1
  54. package/dist/src/tui/atoms/ui.js.map +1 -1
  55. package/dist/src/tui/components/BigTimer.js +2 -2
  56. package/dist/src/tui/components/BigTimer.js.map +1 -1
  57. package/dist/src/tui/components/Footer.js +1 -1
  58. package/dist/src/tui/components/Footer.js.map +1 -1
  59. package/dist/src/tui/components/Header.js +3 -2
  60. package/dist/src/tui/components/Header.js.map +1 -1
  61. package/dist/src/tui/components/TicketList.js +3 -2
  62. package/dist/src/tui/components/TicketList.js.map +1 -1
  63. package/dist/src/tui/context/theme.js.map +1 -1
  64. package/dist/src/tui/hooks/useElapsedTimer.js +3 -2
  65. package/dist/src/tui/hooks/useElapsedTimer.js.map +1 -1
  66. package/dist/src/tui/hooks/useTerminalSize.js +1 -21
  67. package/dist/src/tui/hooks/useTerminalSize.js.map +1 -1
  68. package/dist/src/utils/time.js +55 -5
  69. package/dist/src/utils/time.js.map +1 -1
  70. package/dist/test/TimerService.test.js +163 -31
  71. package/dist/test/TimerService.test.js.map +1 -1
  72. package/dist/test/fetchTicket.test.js +62 -0
  73. package/dist/test/fetchTicket.test.js.map +1 -0
  74. package/dist/test/stopPrompts.test.js +93 -0
  75. package/dist/test/stopPrompts.test.js.map +1 -0
  76. package/dist/test/time.test.js +84 -0
  77. package/dist/test/time.test.js.map +1 -0
  78. package/dist/tsconfig.tsbuildinfo +1 -1
  79. package/package.json +16 -17
  80. package/skills/jcf/SKILL.md +89 -0
  81. package/skills/jcf/agents/openai.yaml +4 -0
@@ -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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"}
@@ -3,9 +3,9 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- import { Command } from "@effect/cli";
7
6
  import { ClockifyApiClient } from "@knpkv/clockify-api-client";
8
7
  import { Console, Effect } from "effect";
8
+ import { Command } from "effect/unstable/cli";
9
9
  import { ClockifyAuth } from "../../services/ClockifyAuth.js";
10
10
  import { StateWriter } from "../../services/StateWriter.js";
11
11
  export const statusCmd = Command.make("status", {}, () => Effect.gen(function* () {
@@ -15,12 +15,12 @@ export const statusCmd = Command.make("status", {}, () => Effect.gen(function* (
15
15
  if (state.active) {
16
16
  const clockifyAuth = yield* ClockifyAuth;
17
17
  const clockifyClient = yield* ClockifyApiClient;
18
- const auth = yield* clockifyAuth.getConfig.pipe(Effect.catchAll(() => Effect.succeed(null)));
18
+ const auth = yield* clockifyAuth.getConfig.pipe(Effect.catch(() => Effect.succeed(null)));
19
19
  if (auth) {
20
20
  let apiReachable = false;
21
21
  const running = yield* clockifyClient.getRunningTimer(auth.workspaceId, auth.userId).pipe(Effect.tap(() => Effect.sync(() => {
22
22
  apiReachable = true;
23
- })), Effect.catchAll(() => Effect.succeed(null)));
23
+ })), Effect.catch(() => Effect.succeed(null)));
24
24
  // Only clear if API was reachable and confirmed no running timer
25
25
  if (apiReachable && !running) {
26
26
  yield* stateWriter.clear;
@@ -52,20 +52,20 @@ export const statusCmd = Command.make("status", {}, () => Effect.gen(function* (
52
52
  // Show project/billable from Clockify entry
53
53
  const clockifyAuth = yield* ClockifyAuth;
54
54
  const clockifyClient = yield* ClockifyApiClient;
55
- const auth = yield* clockifyAuth.getConfig.pipe(Effect.catchAll(() => Effect.succeed(null)));
55
+ const auth = yield* clockifyAuth.getConfig.pipe(Effect.catch(() => Effect.succeed(null)));
56
56
  if (auth && state.clockifyEntryId) {
57
- const entry = yield* clockifyClient.getTimeEntry(auth.workspaceId, state.clockifyEntryId).pipe(Effect.catchAll(() => Effect.succeed(null)));
57
+ const entry = yield* clockifyClient.getTimeEntry(auth.workspaceId, state.clockifyEntryId).pipe(Effect.catch(() => Effect.succeed(null)));
58
58
  if (entry) {
59
59
  let projectName = "none";
60
60
  if (entry.projectId) {
61
- const projects = yield* clockifyClient.getProjects(auth.workspaceId).pipe(Effect.catchAll(() => Effect.succeed([])));
61
+ const projects = yield* clockifyClient.getProjects(auth.workspaceId).pipe(Effect.catch(() => Effect.succeed([])));
62
62
  projectName = projects.find((p) => p.id === entry.projectId)?.name ?? entry.projectId;
63
63
  }
64
64
  yield* Console.log(` Project: ${projectName}`);
65
65
  yield* Console.log(` Billable: ${entry.billable ? "yes" : "no"}`);
66
66
  // Show tags
67
67
  if (entry.tagIds && entry.tagIds.length > 0) {
68
- const allTags = yield* clockifyClient.getTags(auth.workspaceId).pipe(Effect.catchAll(() => Effect.succeed([])));
68
+ const allTags = yield* clockifyClient.getTags(auth.workspaceId).pipe(Effect.catch(() => Effect.succeed([])));
69
69
  const tagNames = entry.tagIds
70
70
  .map((id) => allTags.find((t) => t.id === id)?.name ?? id)
71
71
  .join(", ");
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../src/cli/timer/status.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAE3D,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CACnC,QAAQ,EACR,EAAE,EACF,GAAG,EAAE,CACH,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,WAAW,CAAA;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,CAAA;IAErC,mEAAmE;IACnE,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;QACxC,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAA;QAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC5F,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,YAAY,GAAG,KAAK,CAAA;YACxB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CACvF,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CACd,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACf,YAAY,GAAG,IAAI,CAAA;YACrB,CAAC,CAAC,CACH,EACD,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAC5C,CAAA;YACD,iEAAiE;YACjE,IAAI,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC7B,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAA;gBACxB,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAA;gBAClE,OAAM;YACR,CAAC;YACD,iFAAiF;YACjF,IAAI,OAAO,EAAE,CAAC;gBACZ,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC;oBACvB,GAAG,KAAK;oBACR,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;iBACzF,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QACrC,OAAM;IACR,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc;QAClC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,cAAc;QACtD,CAAC,CAAC,CAAC,CAAA;IACL,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IACpC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IAC3C,MAAM,CAAC,GAAG,OAAO,GAAG,EAAE,CAAA;IAEtB,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAA;IAClE,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAChB,eAAe,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CACxG,CAAA;IACD,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,SAAS,IAAI,GAAG,EAAE,CAAC,CAAA;IAE3D,4CAA4C;IAC5C,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IACxC,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAA;IAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC5F,IAAI,IAAI,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,CAC5F,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAC5C,CAAA;QACD,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,WAAW,GAAG,MAAM,CAAA;YACxB,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACpB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CACvE,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAW,CAAC,CAAC,CACnD,CAAA;gBACD,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,IAAI,KAAK,CAAC,SAAS,CAAA;YACvF,CAAC;YACD,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,WAAW,EAAE,CAAC,CAAA;YAChD,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;YAElE,YAAY;YACZ,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAClE,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAW,CAAC,CAAC,CACnD,CAAA;gBACD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM;qBAC1B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;qBACzD,IAAI,CAAC,IAAI,CAAC,CAAA;gBACb,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,QAAQ,EAAE,CAAC,CAAA;YAC/C,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;YACxC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CACL,CAAA"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../src/cli/timer/status.ts"],"names":[],"mappings":"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"}
@@ -3,86 +3,192 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- import { Command, Options, Prompt } from "@effect/cli";
7
6
  import { ClockifyApiClient } from "@knpkv/clockify-api-client";
8
7
  import { Console, Duration, Effect, Option, SubscriptionRef } from "effect";
8
+ import { Command, Flag as Options, Prompt } from "effect/unstable/cli";
9
9
  import { ClockifyAuth } from "../../services/ClockifyAuth.js";
10
10
  import { ConfigService } from "../../services/ConfigService.js";
11
11
  import { TimerService } from "../../services/TimerService.js";
12
+ import { formatDuration, parseDuration, parseStartTime } from "../../utils/time.js";
13
+ import { fetchTicketByKey } from "../fetchTicket.js";
14
+ /**
15
+ * Interactively resolve a Clockify project for the stop/correction flows.
16
+ *
17
+ * Returns the project to use, or `undefined` to leave it unset. No prompt is
18
+ * shown when the project is already known (set on the running timer) or supplied
19
+ * via `--project`; in that case the provided value is passed straight through.
20
+ *
21
+ * When prompting, offers a "save as default" follow-up exactly like the normal
22
+ * stop path.
23
+ */
24
+ export const resolveStopProject = (params) => Effect.gen(function* () {
25
+ if (params.currentProjectId || params.flagProjectId)
26
+ return params.flagProjectId;
27
+ const clockifyAuth = yield* ClockifyAuth;
28
+ const clockifyClient = yield* ClockifyApiClient;
29
+ const auth = yield* clockifyAuth.getConfig.pipe(Effect.catch(() => Effect.succeed(null)));
30
+ if (!auth)
31
+ return undefined;
32
+ const projects = yield* clockifyClient.getProjects(auth.workspaceId).pipe(Effect.catch(() => Effect.succeed([])));
33
+ if (projects.length === 0)
34
+ return undefined;
35
+ const selected = yield* Prompt.select({
36
+ message: "No project set. Select Clockify project:",
37
+ choices: [
38
+ ...projects.map((p) => ({ title: p.name, value: p.id })),
39
+ { title: "(skip)", value: "" }
40
+ ]
41
+ });
42
+ if (!selected)
43
+ return undefined;
44
+ const selectedName = projects.find((p) => p.id === selected)?.name ?? selected;
45
+ const saveDefault = yield* Prompt.select({
46
+ message: `Save "${selectedName}" as default project?`,
47
+ choices: [
48
+ { title: "Yes", value: true },
49
+ { title: "No", value: false }
50
+ ]
51
+ });
52
+ if (saveDefault) {
53
+ const cfg = yield* ConfigService;
54
+ yield* cfg.set({ defaultProjectId: selected, defaultProjectName: selectedName });
55
+ yield* Console.log("Default project saved.");
56
+ }
57
+ return selected;
58
+ });
59
+ /**
60
+ * Interactively resolve the billable flag for the stop/correction flows.
61
+ *
62
+ * Returns the billable value to use, or `undefined` to leave it unset. No prompt
63
+ * is shown when billable was already set on the running timer (`currentBillable`
64
+ * is non-null) or supplied via `--billable`; in that case the provided value is
65
+ * passed straight through.
66
+ *
67
+ * When prompting, offers a "save as default" follow-up exactly like the normal
68
+ * stop path.
69
+ */
70
+ export const resolveStopBillable = (params) => Effect.gen(function* () {
71
+ if (params.currentBillable !== null || params.flagBillable !== undefined)
72
+ return params.flagBillable;
73
+ const stopBillable = yield* Prompt.select({
74
+ message: "Billable?",
75
+ choices: [
76
+ { title: "Yes", value: true },
77
+ { title: "No", value: false }
78
+ ]
79
+ });
80
+ const saveDefault = yield* Prompt.select({
81
+ message: `Save billable=${stopBillable ? "yes" : "no"} as default?`,
82
+ choices: [
83
+ { title: "Yes", value: true },
84
+ { title: "No", value: false }
85
+ ]
86
+ });
87
+ if (saveDefault) {
88
+ const cfg = yield* ConfigService;
89
+ yield* cfg.set({ defaultBillable: stopBillable });
90
+ yield* Console.log("Default billable saved.");
91
+ }
92
+ return stopBillable;
93
+ });
12
94
  export const stop = Command.make("stop", {
13
- project: Options.text("project").pipe(Options.withAlias("p"), Options.withDescription("Clockify project ID"), Options.optional),
95
+ project: Options.string("project").pipe(Options.withAlias("p"), Options.withDescription("Clockify project ID"), Options.optional),
14
96
  billable: Options.boolean("billable").pipe(Options.withAlias("b"), Options.withDescription("Mark as billable"), Options.optional)
15
97
  }, ({ billable, project }) => Effect.gen(function* () {
16
98
  const timer = yield* TimerService;
17
- yield* timer.detectRunning;
18
- // Check if project/billable need to be set
19
- const currentTimer = yield* SubscriptionRef.get(timer.state);
20
- const current = { projectId: currentTimer.projectId, billable: currentTimer.billable };
21
- let stopProjectId = Option.isSome(project) ? project.value : undefined;
22
- let stopBillable = Option.isSome(billable) ? billable.value : undefined;
23
- // Prompt for project if not set on start and not provided via flag
24
- if (!current.projectId && !stopProjectId) {
25
- const clockifyAuth = yield* ClockifyAuth;
26
- const clockifyClient = yield* ClockifyApiClient;
27
- const auth = yield* clockifyAuth.getConfig.pipe(Effect.catchAll(() => Effect.succeed(null)));
28
- if (auth) {
29
- const projects = yield* clockifyClient.getProjects(auth.workspaceId).pipe(Effect.catchAll(() => Effect.succeed([])));
30
- if (projects.length > 0) {
31
- const selected = yield* Prompt.select({
32
- message: "No project set. Select Clockify project:",
33
- choices: [
34
- ...projects.map((p) => ({ title: p.name, value: p.id })),
35
- { title: "(skip)", value: "" }
36
- ]
37
- });
38
- if (selected) {
39
- stopProjectId = selected;
40
- const selectedName = projects.find((p) => p.id === selected)?.name ?? selected;
41
- const saveDefault = yield* Prompt.select({
42
- message: `Save "${selectedName}" as default project?`,
43
- choices: [
44
- { title: "Yes", value: true },
45
- { title: "No", value: false }
46
- ]
47
- });
48
- if (saveDefault) {
49
- const cfg = yield* ConfigService;
50
- yield* cfg.set({ defaultProjectId: stopProjectId, defaultProjectName: selectedName });
51
- yield* Console.log("Default project saved.");
52
- }
53
- }
54
- }
55
- }
56
- }
57
- // Prompt for billable if not set
58
- if (current.billable === null && stopBillable === undefined) {
59
- stopBillable = yield* Prompt.select({
60
- message: "Billable?",
99
+ const flagProjectId = Option.isSome(project) ? project.value : undefined;
100
+ const flagBillable = Option.isSome(billable) ? billable.value : undefined;
101
+ // Correction flow: log a completed interval when no timer was ever started.
102
+ // Reuses the same project/billable prompts as the normal stop path below.
103
+ const runCorrection = Effect.gen(function* () {
104
+ const proceed = yield* Prompt.select({
105
+ message: "No active timer. Add a correction interval instead?",
61
106
  choices: [
62
107
  { title: "Yes", value: true },
63
108
  { title: "No", value: false }
64
109
  ]
65
110
  });
66
- const saveDefault = yield* Prompt.select({
67
- message: `Save billable=${stopBillable ? "yes" : "no"} as default?`,
68
- choices: [
69
- { title: "Yes", value: true },
70
- { title: "No", value: false }
71
- ]
72
- });
73
- if (saveDefault) {
74
- const cfg = yield* ConfigService;
75
- yield* cfg.set({ defaultBillable: stopBillable });
76
- yield* Console.log("Default billable saved.");
111
+ if (!proceed) {
112
+ yield* Console.log("No active timer.");
113
+ return;
114
+ }
115
+ const key = (yield* Prompt.text({ message: "Ticket key (e.g. PROJ-123):" })).trim();
116
+ if (!key) {
117
+ yield* Console.log("No ticket key given.");
118
+ return;
119
+ }
120
+ const fetched = yield* fetchTicketByKey(key);
121
+ if (fetched._tag === "NotFound") {
122
+ yield* Console.log(`Ticket ${key} not found in Jira.`);
123
+ return;
124
+ }
125
+ if (fetched._tag === "FetchError") {
126
+ yield* Console.log(`Failed to fetch ticket ${key}: ${fetched.message}`);
127
+ return;
128
+ }
129
+ const ticket = fetched.ticket;
130
+ const durationStr = yield* Prompt.text({ message: "Duration (e.g. 45m, 1h30m):" });
131
+ const durationSeconds = parseDuration(durationStr);
132
+ if (durationSeconds === null || durationSeconds < 60) {
133
+ yield* Console.log("Invalid duration. Use format: 45m, 1h30m (minimum 1m).");
134
+ return;
77
135
  }
136
+ const whenStr = (yield* Prompt.text({
137
+ message: "Started at (HH:MM today or ISO, empty = ends now):"
138
+ })).trim();
139
+ let start;
140
+ if (!whenStr) {
141
+ start = new Date(Date.now() - durationSeconds * 1000);
142
+ }
143
+ else {
144
+ const parsed = parseStartTime(whenStr);
145
+ if (!parsed) {
146
+ yield* Console.log("Invalid start time. Use HH:MM (today) or an ISO timestamp.");
147
+ return;
148
+ }
149
+ start = parsed;
150
+ }
151
+ // Same interactive project/billable prompts as a normal stop (with
152
+ // save-as-default). No running timer here, so there is nothing prefilled.
153
+ const correctionProjectId = yield* resolveStopProject({ currentProjectId: null, flagProjectId });
154
+ const correctionBillable = yield* resolveStopBillable({ currentBillable: null, flagBillable });
155
+ const correctionComment = (yield* Prompt.text({ message: "Comment (empty to skip):" })).trim();
156
+ yield* Console.log(`Correction: ${ticket.key} — ${ticket.summary}`);
157
+ yield* Console.log(` Duration: ${formatDuration(durationSeconds)}`);
158
+ yield* Console.log(` Started: ${start.toISOString()}`);
159
+ const result = yield* timer.logManual(ticket, {
160
+ start,
161
+ durationSeconds,
162
+ projectId: correctionProjectId,
163
+ billable: correctionBillable,
164
+ comment: correctionComment || undefined
165
+ }).pipe(Effect.catch((e) => Console.log(`Error: ${e.message}`).pipe(Effect.as(null))));
166
+ if (result) {
167
+ yield* Console.log(` Clockify: ${result.clockifyLogged ? "✓" : "✗"}`);
168
+ yield* Console.log(` Jira worklog: ${result.jiraWorklogLogged ? "✓" : "✗"}`);
169
+ }
170
+ });
171
+ yield* timer.detectRunning;
172
+ // No running timer: offer to log a correction interval (forgot to start it).
173
+ const detected = yield* SubscriptionRef.get(timer.state);
174
+ if (!detected.active) {
175
+ yield* runCorrection;
176
+ return;
78
177
  }
178
+ // Check if project/billable need to be set
179
+ const currentTimer = yield* SubscriptionRef.get(timer.state);
180
+ const current = { projectId: currentTimer.projectId, billable: currentTimer.billable };
181
+ // Prompt for project if not set on start and not provided via flag.
182
+ const stopProjectId = yield* resolveStopProject({ currentProjectId: current.projectId, flagProjectId });
183
+ // Prompt for billable if not set.
184
+ const stopBillable = yield* resolveStopBillable({ currentBillable: current.billable, flagBillable });
79
185
  // Optional comment for Jira worklog
80
186
  const comment = yield* Prompt.text({ message: "Comment (empty to skip):" });
81
187
  const result = yield* timer.stop({
82
188
  projectId: stopProjectId,
83
189
  billable: stopBillable,
84
190
  comment: comment.trim() || undefined
85
- }).pipe(Effect.catchAll((e) => Console.log(`Error: ${e.message}`).pipe(Effect.flatMap(() => Effect.succeed(null)))));
191
+ }).pipe(Effect.catch((e) => Console.log(`Error: ${e.message}`).pipe(Effect.flatMap(() => Effect.succeed(null)))));
86
192
  if (result) {
87
193
  const secs = Duration.toSeconds(result.duration);
88
194
  const h = Math.floor(secs / 3600);
@@ -1 +1 @@
1
- {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../../src/cli/timer/stop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../../src/cli/timer/stop.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AAE3E,OAAO,EAAE,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAGlC,EAIC,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,IAAI,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,aAAa;QAAE,OAAO,MAAM,CAAC,aAAa,CAAA;IAEhF,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IACxC,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAA;IAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACzF,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAA;IAE3B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CACvE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAW,CAAC,CAAC,CAChD,CAAA;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAE3C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QACpC,OAAO,EAAE,0CAA0C;QACnD,OAAO,EAAE;YACP,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxD,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;SAC/B;KACF,CAAC,CAAA;IACF,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAA;IAE/B,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,IAAI,IAAI,QAAQ,CAAA;IAC9E,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QACvC,OAAO,EAAE,SAAS,YAAY,uBAAuB;QACrD,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;YAC7B,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;SAC9B;KACF,CAAC,CAAA;IACF,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,aAAa,CAAA;QAChC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,CAAC,CAAA;QAChF,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;IAC9C,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAC,CAAA;AAEJ;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAGnC,EAAqF,EAAE,CACtF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,IAAI,MAAM,CAAC,eAAe,KAAK,IAAI,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,YAAY,CAAA;IAEpG,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QACxC,OAAO,EAAE,WAAW;QACpB,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;YAC7B,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;SAC9B;KACF,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QACvC,OAAO,EAAE,iBAAiB,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,cAAc;QACnE,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;YAC7B,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;SAC9B;KACF,CAAC,CAAA;IACF,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,aAAa,CAAA;QAChC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC,CAAA;QACjD,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;IAC/C,CAAC;IACD,OAAO,YAAY,CAAA;AACrB,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAC9B,MAAM,EACN;IACE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CACrC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,eAAe,CAAC,qBAAqB,CAAC,EAC9C,OAAO,CAAC,QAAQ,CACjB;IACD,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CACxC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,eAAe,CAAC,kBAAkB,CAAC,EAC3C,OAAO,CAAC,QAAQ,CACjB;CACF,EACD,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,CACxB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IAEjC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;IACxE,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;IAEzE,4EAA4E;IAC5E,0EAA0E;IAC1E,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACxC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;YACnC,OAAO,EAAE,qDAAqD;YAC9D,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC7B,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;aAC9B;SACF,CAAC,CAAA;QACF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;YACtC,OAAM;QACR,CAAC;QAED,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QACnF,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;YAC1C,OAAM;QACR,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAA;QAC5C,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAChC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,qBAAqB,CAAC,CAAA;YACtD,OAAM;QACR,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAClC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,GAAG,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;YACvE,OAAM;QACR,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAE7B,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC,CAAA;QAClF,MAAM,eAAe,GAAG,aAAa,CAAC,WAAW,CAAC,CAAA;QAClD,IAAI,eAAe,KAAK,IAAI,IAAI,eAAe,GAAG,EAAE,EAAE,CAAC;YACrD,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAA;YAC5E,OAAM;QACR,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;YAClC,OAAO,EAAE,oDAAoD;SAC9D,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QACV,IAAI,KAAW,CAAA;QACf,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe,GAAG,IAAI,CAAC,CAAA;QACvD,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;YACtC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAA;gBAChF,OAAM;YACR,CAAC;YACD,KAAK,GAAG,MAAM,CAAA;QAChB,CAAC;QAED,mEAAmE;QACnE,0EAA0E;QAC1E,MAAM,mBAAmB,GAAG,KAAK,CAAC,CAAC,kBAAkB,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAA;QAChG,MAAM,kBAAkB,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAA;QAE9F,MAAM,iBAAiB,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAE9F,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;QACnE,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;QACpE,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;QAExD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE;YAC5C,KAAK;YACL,eAAe;YACf,SAAS,EAAE,mBAAmB;YAC9B,QAAQ,EAAE,kBAAkB;YAC5B,OAAO,EAAE,iBAAiB,IAAI,SAAS;SACxC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,KAAK,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAC1F,CAAA;QAED,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;YAC1E,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;QAC/E,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,KAAK,CAAC,CAAC,KAAK,CAAC,aAAa,CAAA;IAE1B,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACxD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrB,KAAK,CAAC,CAAC,aAAa,CAAA;QACpB,OAAM;IACR,CAAC;IAED,2CAA2C;IAC3C,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC5D,MAAM,OAAO,GAAG,EAAE,SAAS,EAAE,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAA;IAEtF,oEAAoE;IACpE,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,kBAAkB,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC,CAAA;IAEvG,kCAAkC;IAClC,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAA;IAEpG,oCAAoC;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC,CAAA;IAE3E,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QAC/B,SAAS,EAAE,aAAa;QACxB,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,SAAS;KACrC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,KAAK,CAAC,CAAC,CAAa,EAAE,EAAE,CAC7B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CACpF,CACF,CAAA;IAED,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAChD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;QACjC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;QACxC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;QAC/B,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAChB,kBAAkB,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAC3G,CAAA;QACD,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;QACtE,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;IACrF,CAAC;AACH,CAAC,CAAC,CACL,CAAA"}
package/dist/src/main.js CHANGED
@@ -8,13 +8,25 @@ import { createCliRenderer } from "@opentui/core";
8
8
  import { createRoot } from "@opentui/react";
9
9
  import { Deferred, Effect } from "effect";
10
10
  import { App } from "./tui/App.js";
11
- const program = Effect.gen(function* () {
11
+ const escape = "\u001b";
12
+ const isTerminalCapabilityResponse = (sequence) => (sequence.startsWith(`${escape}P>|`) && sequence.includes(`${escape}\\`)) ||
13
+ (sequence.startsWith(`${escape}[?`) && sequence.endsWith("$y")) ||
14
+ (sequence.startsWith(`${escape}[?`) && sequence.endsWith("u")) ||
15
+ (sequence.startsWith(`${escape}[?`) && sequence.endsWith("c")) ||
16
+ sequence.includes("|ghostty ");
17
+ const program = Effect.gen(function* makeProgram() {
12
18
  const exitSignal = yield* Deferred.make();
13
19
  const renderer = yield* Effect.acquireRelease(Effect.promise(() => createCliRenderer({
14
- exitOnCtrlC: false
20
+ exitOnCtrlC: false,
21
+ prependInputHandlers: [isTerminalCapabilityResponse],
22
+ useKittyKeyboard: null,
23
+ useThread: false
15
24
  })), (renderer) => Effect.sync(() => renderer.destroy()));
16
25
  const onQuit = () => {
17
- Effect.runSync(Deferred.succeed(exitSignal, void 0));
26
+ Effect.runFork(Effect.gen(function* quit() {
27
+ yield* Effect.sleep("100 millis");
28
+ yield* Deferred.succeed(exitSignal, void 0);
29
+ }));
18
30
  };
19
31
  const root = createRoot(renderer);
20
32
  root.render(_jsx(App, { onQuit: onQuit }));
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACzC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAElC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAQ,CAAA;IAE/C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,CAC3C,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAClB,iBAAiB,CAAC;QAChB,WAAW,EAAE,KAAK;KACnB,CAAC,CACH,EACD,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CACpD,CAAA;IAED,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;IACtD,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;IACjC,IAAI,CAAC,MAAM,CAAC,KAAC,GAAG,IAAC,MAAM,EAAE,MAAM,GAAI,CAAC,CAAA;IAEpC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;AACnC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AAEtB,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACzC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAElC,MAAM,MAAM,GAAG,QAAQ,CAAA;AAEvB,MAAM,4BAA4B,GAAG,CAAC,QAAgB,EAAE,EAAE,CACxD,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC;IACzE,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC9D,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC9D,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;AAEhC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,WAAW;IAC9C,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAQ,CAAA;IAE/C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,CAC3C,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAClB,iBAAiB,CAAC;QAChB,WAAW,EAAE,KAAK;QAClB,oBAAoB,EAAE,CAAC,4BAA4B,CAAC;QACpD,gBAAgB,EAAE,IAAI;QACtB,SAAS,EAAE,KAAK;KACjB,CAAC,CACH,EACD,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CACpD,CAAA;IAED,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,MAAM,CAAC,OAAO,CACZ,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI;YACvB,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;YACjC,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAA;QAC7C,CAAC,CAAC,CACH,CAAA;IACH,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;IACjC,IAAI,CAAC,MAAM,CAAC,KAAC,GAAG,IAAC,MAAM,EAAE,MAAM,GAAI,CAAC,CAAA;IAEpC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;AACnC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AAEtB,eAAe,OAAO,CAAA"}
@@ -1,25 +1,12 @@
1
- /**
2
- * File-based Clockify API key storage with schema-validated reads.
3
- *
4
- * **Mental model**
5
- *
6
- * - **Credential file**: Reads/writes `~/.jcf/clockify.json` containing API key, workspace ID,
7
- * user ID, and base URL. The API key is wrapped in `Redacted` on read.
8
- * - **Schema-gated**: JSON is parsed then validated via `Schema.decodeUnknown(StoredAuth)` —
9
- * corrupt data yields {@link ClockifyAuthMissingError} instead of a crash.
10
- * - **Config-based home dir**: Uses Effect `Config.string("HOME")` for testable env access.
11
- *
12
- * @module
13
- */
14
- import * as FileSystem from "@effect/platform/FileSystem";
15
- import * as Path from "@effect/platform/Path";
16
1
  import * as Context from "effect/Context";
17
2
  import * as Data from "effect/Data";
18
3
  import * as Effect from "effect/Effect";
4
+ import * as FileSystem from "effect/FileSystem";
19
5
  import * as Layer from "effect/Layer";
6
+ import * as Path from "effect/Path";
20
7
  import * as Redacted from "effect/Redacted";
21
8
  import * as Schema from "effect/Schema";
22
- import { homedir } from "node:os";
9
+ import { HomeDirectory } from "./HomeDirectory.js";
23
10
  export class ClockifyAuthMissingError extends Data.TaggedError("ClockifyAuthMissingError") {
24
11
  }
25
12
  const StoredAuth = Schema.Struct({
@@ -28,7 +15,7 @@ const StoredAuth = Schema.Struct({
28
15
  userId: Schema.String,
29
16
  baseUrl: Schema.optional(Schema.String)
30
17
  });
31
- export class ClockifyAuth extends Context.Tag("jcf/ClockifyAuth")() {
18
+ export class ClockifyAuth extends Context.Service()("jcf/ClockifyAuth") {
32
19
  }
33
20
  const AUTH_DIR = ".jcf";
34
21
  const AUTH_FILE = "clockify.json";
@@ -36,7 +23,7 @@ const DEFAULT_BASE_URL = "https://api.clockify.me/api";
36
23
  export const layer = Layer.effect(ClockifyAuth, Effect.gen(function* () {
37
24
  const fs = yield* FileSystem.FileSystem;
38
25
  const path = yield* Path.Path;
39
- const home = yield* Effect.sync(() => homedir());
26
+ const home = (yield* HomeDirectory).path;
40
27
  const dir = path.join(home, AUTH_DIR);
41
28
  const filePath = path.join(dir, AUTH_FILE);
42
29
  const ensureDir = Effect.gen(function* () {
@@ -44,7 +31,7 @@ export const layer = Layer.effect(ClockifyAuth, Effect.gen(function* () {
44
31
  if (!exists)
45
32
  yield* fs.makeDirectory(dir, { recursive: true });
46
33
  });
47
- const decodeStoredAuth = Schema.decodeUnknown(StoredAuth);
34
+ const decodeStoredAuth = Schema.decodeUnknownEffect(StoredAuth);
48
35
  return {
49
36
  getConfig: Effect.gen(function* () {
50
37
  const exists = yield* fs.exists(filePath);
@@ -65,13 +52,15 @@ export const layer = Layer.effect(ClockifyAuth, Effect.gen(function* () {
65
52
  userId: stored.userId,
66
53
  baseUrl: stored.baseUrl ?? DEFAULT_BASE_URL
67
54
  };
68
- }).pipe(Effect.catchTag("SystemError", () => Effect.fail(new ClockifyAuthMissingError({ message: "Failed to read Clockify auth" }))), Effect.catchTag("BadArgument", () => Effect.fail(new ClockifyAuthMissingError({ message: "Invalid Clockify auth file" })))),
55
+ }).pipe(Effect.catch((error) => error instanceof ClockifyAuthMissingError
56
+ ? Effect.fail(error)
57
+ : Effect.fail(new ClockifyAuthMissingError({ message: "Failed to read Clockify auth" })))),
69
58
  save: (auth) => Effect.gen(function* () {
70
59
  yield* ensureDir;
71
60
  yield* fs.writeFileString(filePath, JSON.stringify(auth, null, 2));
72
- yield* Effect.tryPromise(() => import("node:fs/promises").then((f) => f.chmod(filePath, 0o600))).pipe(Effect.catchAll(() => Effect.void));
73
- }).pipe(Effect.catchAll(() => Effect.void)),
74
- isConfigured: fs.exists(filePath).pipe(Effect.catchAll(() => Effect.succeed(false)))
61
+ yield* fs.chmod(filePath, 0o600).pipe(Effect.catch(() => Effect.void));
62
+ }).pipe(Effect.catch(() => Effect.void)),
63
+ isConfigured: fs.exists(filePath).pipe(Effect.catch(() => Effect.succeed(false)))
75
64
  };
76
65
  }));
77
66
  //# sourceMappingURL=ClockifyAuth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClockifyAuth.js","sourceRoot":"","sources":["../../../src/services/ClockifyAuth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClockifyAuth.js","sourceRoot":"","sources":["../../../src/services/ClockifyAuth.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AACnC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AACnC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,MAAM,OAAO,wBAAyB,SAAQ,IAAI,CAAC,WAAW,CAAC,0BAA0B,CAEvF;CAAG;AAEL,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM;IAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;CACxC,CAAC,CAAA;AASF,MAAM,OAAO,YAAa,SAAQ,OAAO,CAAC,OAAO,EAAmC,CAAC,kBAAkB,CAAC;CAAG;AAE3G,MAAM,QAAQ,GAAG,MAAM,CAAA;AACvB,MAAM,SAAS,GAAG,eAAe,CAAA;AACjC,MAAM,gBAAgB,GAAG,6BAA6B,CAAA;AAEtD,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAC/B,YAAY,EACZ,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAA;IACvC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;IAC7B,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,CAAA;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IAE1C,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACpC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACpC,IAAI,CAAC,MAAM;YAAE,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAG,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAA;IAE/D,OAAO;QACL,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YACzC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,wBAAwB,CAAC;oBAC3B,OAAO,EAAE,uDAAuD;iBACjE,CAAC,CACH,CAAA;YACH,CAAC;YACD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CACrD,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,wBAAwB,CAAC,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC,CAAC,CACtG,CAAA;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;gBAC7B,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAY;gBACzC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,wBAAwB,CAAC,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC;aAC7F,CAAC,CAAA;YACF,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAC/C,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,wBAAwB,CAAC,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC,CAAC,CACtG,CAAA;YACD,OAAO;gBACL,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBACpC,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,gBAAgB;aAC5C,CAAA;QACH,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACrB,KAAK,YAAY,wBAAwB;YACvC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YACpB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,wBAAwB,CAAC,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC,CAAC,CAC3F,CACF;QAED,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CACb,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,KAAK,CAAC,CAAC,SAAS,CAAA;YAChB,KAAK,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YAClE,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;QACxE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE1C,YAAY,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;KAClF,CAAA;AACH,CAAC,CAAC,CACH,CAAA"}
@@ -9,12 +9,12 @@
9
9
  *
10
10
  * @module
11
11
  */
12
- import * as FileSystem from "@effect/platform/FileSystem";
13
- import * as Path from "@effect/platform/Path";
14
12
  import * as Context from "effect/Context";
15
13
  import * as Effect from "effect/Effect";
14
+ import * as FileSystem from "effect/FileSystem";
16
15
  import * as Layer from "effect/Layer";
17
- import { homedir } from "node:os";
16
+ import * as Path from "effect/Path";
17
+ import { HomeDirectory } from "./HomeDirectory.js";
18
18
  const defaultConfig = {
19
19
  defaultJql: "assignee = currentUser() AND status != Done ORDER BY updated DESC",
20
20
  refreshInterval: 30,
@@ -24,14 +24,14 @@ const defaultConfig = {
24
24
  defaultProjectName: null,
25
25
  defaultBillable: true
26
26
  };
27
- export class ConfigService extends Context.Tag("jcf/ConfigService")() {
27
+ export class ConfigService extends Context.Service()("jcf/ConfigService") {
28
28
  }
29
29
  const CONFIG_DIR = ".jcf";
30
30
  const CONFIG_FILE = "config.json";
31
31
  export const layer = Layer.effect(ConfigService, Effect.gen(function* () {
32
32
  const fs = yield* FileSystem.FileSystem;
33
33
  const path = yield* Path.Path;
34
- const home = yield* Effect.sync(() => homedir());
34
+ const home = (yield* HomeDirectory).path;
35
35
  const dir = path.join(home, CONFIG_DIR);
36
36
  const filePath = path.join(dir, CONFIG_FILE);
37
37
  const ensureDir = Effect.gen(function* () {
@@ -49,7 +49,7 @@ export const layer = Layer.effect(ConfigService, Effect.gen(function* () {
49
49
  catch: () => ({})
50
50
  });
51
51
  return { ...defaultConfig, ...parsed };
52
- }).pipe(Effect.catchAll(() => Effect.succeed(defaultConfig)));
52
+ }).pipe(Effect.catch(() => Effect.succeed(defaultConfig)));
53
53
  const write = (config) => Effect.gen(function* () {
54
54
  yield* ensureDir;
55
55
  yield* fs.writeFileString(filePath, JSON.stringify(config, null, 2));
@@ -59,7 +59,7 @@ export const layer = Layer.effect(ConfigService, Effect.gen(function* () {
59
59
  set: (patch) => Effect.gen(function* () {
60
60
  const current = yield* read;
61
61
  yield* write({ ...current, ...patch });
62
- }).pipe(Effect.catchAll(() => Effect.void)),
62
+ }).pipe(Effect.catch(() => Effect.void)),
63
63
  configDir: Effect.succeed(dir)
64
64
  };
65
65
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigService.js","sourceRoot":"","sources":["../../../src/services/ConfigService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConfigService.js","sourceRoot":"","sources":["../../../src/services/ConfigService.ts"],"names":[],"mappings":"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"}