@tinyrack/dotweave 0.42.13 → 0.42.19

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 (216) hide show
  1. package/README.md +6 -2
  2. package/dist/application.d.ts +0 -3
  3. package/dist/application.d.ts.map +1 -1
  4. package/dist/application.js +23 -22
  5. package/dist/application.js.map +1 -1
  6. package/dist/cli/autocomplete.d.ts +5 -4
  7. package/dist/cli/autocomplete.d.ts.map +1 -1
  8. package/dist/cli/autocomplete.js +33 -28
  9. package/dist/cli/autocomplete.js.map +1 -1
  10. package/dist/cli/cd.d.ts +2 -2
  11. package/dist/cli/cd.d.ts.map +1 -1
  12. package/dist/cli/cd.js +1 -4
  13. package/dist/cli/cd.js.map +1 -1
  14. package/dist/cli/doctor.d.ts +2 -2
  15. package/dist/cli/doctor.d.ts.map +1 -1
  16. package/dist/cli/doctor.js +19 -28
  17. package/dist/cli/doctor.js.map +1 -1
  18. package/dist/cli/index.d.ts +1 -3
  19. package/dist/cli/index.d.ts.map +1 -1
  20. package/dist/cli/index.js +5 -5
  21. package/dist/cli/index.js.map +1 -1
  22. package/dist/cli/init.d.ts +2 -2
  23. package/dist/cli/init.d.ts.map +1 -1
  24. package/dist/cli/init.js +9 -15
  25. package/dist/cli/init.js.map +1 -1
  26. package/dist/cli/profile/index.d.ts +1 -1
  27. package/dist/cli/profile/index.d.ts.map +1 -1
  28. package/dist/cli/profile/list.d.ts +2 -2
  29. package/dist/cli/profile/list.d.ts.map +1 -1
  30. package/dist/cli/profile/list.js +13 -23
  31. package/dist/cli/profile/list.js.map +1 -1
  32. package/dist/cli/profile/use.d.ts +2 -2
  33. package/dist/cli/profile/use.d.ts.map +1 -1
  34. package/dist/cli/profile/use.js +4 -13
  35. package/dist/cli/profile/use.js.map +1 -1
  36. package/dist/cli/pull.d.ts +2 -2
  37. package/dist/cli/pull.d.ts.map +1 -1
  38. package/dist/cli/pull.js +22 -41
  39. package/dist/cli/pull.js.map +1 -1
  40. package/dist/cli/push.d.ts +2 -2
  41. package/dist/cli/push.d.ts.map +1 -1
  42. package/dist/cli/push.js +17 -23
  43. package/dist/cli/push.js.map +1 -1
  44. package/dist/cli/root-commands.d.ts +9 -10
  45. package/dist/cli/root-commands.d.ts.map +1 -1
  46. package/dist/cli/root-commands.js +0 -4
  47. package/dist/cli/root-commands.js.map +1 -1
  48. package/dist/cli/shared-flags.d.ts +9 -0
  49. package/dist/cli/shared-flags.d.ts.map +1 -0
  50. package/dist/cli/shared-flags.js +8 -0
  51. package/dist/cli/shared-flags.js.map +1 -0
  52. package/dist/cli/status.d.ts +2 -2
  53. package/dist/cli/status.d.ts.map +1 -1
  54. package/dist/cli/status.js +26 -55
  55. package/dist/cli/status.js.map +1 -1
  56. package/dist/cli/track.d.ts +2 -2
  57. package/dist/cli/track.d.ts.map +1 -1
  58. package/dist/cli/track.js +14 -33
  59. package/dist/cli/track.js.map +1 -1
  60. package/dist/cli/untrack.d.ts +2 -2
  61. package/dist/cli/untrack.d.ts.map +1 -1
  62. package/dist/cli/untrack.js +5 -14
  63. package/dist/cli/untrack.js.map +1 -1
  64. package/dist/config/constants.d.ts +1 -1
  65. package/dist/config/constants.d.ts.map +1 -1
  66. package/dist/config/constants.js +1 -1
  67. package/dist/config/constants.js.map +1 -1
  68. package/dist/config/global-config.d.ts +3 -3
  69. package/dist/config/global-config.d.ts.map +1 -1
  70. package/dist/config/global-config.js +7 -8
  71. package/dist/config/global-config.js.map +1 -1
  72. package/dist/config/identity-file.d.ts +0 -7
  73. package/dist/config/identity-file.d.ts.map +1 -1
  74. package/dist/config/identity-file.js +2 -44
  75. package/dist/config/identity-file.js.map +1 -1
  76. package/dist/config/runtime-env.d.ts.map +1 -1
  77. package/dist/config/runtime-env.js +2 -7
  78. package/dist/config/runtime-env.js.map +1 -1
  79. package/dist/config/{sync-entry.d.ts → sync-queries.d.ts} +5 -3
  80. package/dist/config/sync-queries.d.ts.map +1 -0
  81. package/dist/config/{sync-entry.js → sync-queries.js} +15 -6
  82. package/dist/config/sync-queries.js.map +1 -0
  83. package/dist/config/sync-schema.d.ts +9 -7
  84. package/dist/config/sync-schema.d.ts.map +1 -1
  85. package/dist/config/sync-schema.js +53 -18
  86. package/dist/config/sync-schema.js.map +1 -1
  87. package/dist/config/xdg.d.ts.map +1 -1
  88. package/dist/config/xdg.js +15 -34
  89. package/dist/config/xdg.js.map +1 -1
  90. package/dist/lib/error.js +1 -1
  91. package/dist/lib/error.js.map +1 -1
  92. package/dist/lib/git.d.ts +3 -4
  93. package/dist/lib/git.d.ts.map +1 -1
  94. package/dist/lib/git.js +7 -48
  95. package/dist/lib/git.js.map +1 -1
  96. package/dist/lib/jsonc.d.ts +1 -1
  97. package/dist/lib/jsonc.d.ts.map +1 -1
  98. package/dist/lib/jsonc.js +1 -1
  99. package/dist/lib/jsonc.js.map +1 -1
  100. package/dist/lib/path.d.ts +3 -16
  101. package/dist/lib/path.d.ts.map +1 -1
  102. package/dist/lib/path.js +30 -19
  103. package/dist/lib/path.js.map +1 -1
  104. package/dist/lib/string.d.ts +1 -4
  105. package/dist/lib/string.d.ts.map +1 -1
  106. package/dist/lib/string.js +6 -4
  107. package/dist/lib/string.js.map +1 -1
  108. package/dist/lib/version.d.ts.map +1 -1
  109. package/dist/lib/version.js +2 -2
  110. package/dist/lib/version.js.map +1 -1
  111. package/dist/services/autocomplete.js +13 -13
  112. package/dist/services/autocomplete.js.map +1 -1
  113. package/dist/services/config-file.d.ts +4 -4
  114. package/dist/services/config-file.d.ts.map +1 -1
  115. package/dist/services/config-file.js +7 -8
  116. package/dist/services/config-file.js.map +1 -1
  117. package/dist/services/doctor.d.ts +1 -4
  118. package/dist/services/doctor.d.ts.map +1 -1
  119. package/dist/services/doctor.js +10 -37
  120. package/dist/services/doctor.js.map +1 -1
  121. package/dist/services/init.d.ts +1 -5
  122. package/dist/services/init.d.ts.map +1 -1
  123. package/dist/services/init.js +25 -59
  124. package/dist/services/init.js.map +1 -1
  125. package/dist/services/local-snapshot.d.ts +2 -7
  126. package/dist/services/local-snapshot.d.ts.map +1 -1
  127. package/dist/services/local-snapshot.js +12 -35
  128. package/dist/services/local-snapshot.js.map +1 -1
  129. package/dist/services/profile.d.ts +0 -4
  130. package/dist/services/profile.d.ts.map +1 -1
  131. package/dist/services/profile.js +13 -22
  132. package/dist/services/profile.js.map +1 -1
  133. package/dist/services/pull-apply.d.ts +30 -0
  134. package/dist/services/pull-apply.d.ts.map +1 -0
  135. package/dist/services/{local-materialization.js → pull-apply.js} +150 -210
  136. package/dist/services/pull-apply.js.map +1 -0
  137. package/dist/services/pull.d.ts +7 -10
  138. package/dist/services/pull.d.ts.map +1 -1
  139. package/dist/services/pull.js +19 -30
  140. package/dist/services/pull.js.map +1 -1
  141. package/dist/services/push.d.ts +4 -7
  142. package/dist/services/push.d.ts.map +1 -1
  143. package/dist/services/push.js +15 -38
  144. package/dist/services/push.js.map +1 -1
  145. package/dist/services/repo-artifacts.d.ts +5 -6
  146. package/dist/services/repo-artifacts.d.ts.map +1 -1
  147. package/dist/services/repo-artifacts.js +21 -60
  148. package/dist/services/repo-artifacts.js.map +1 -1
  149. package/dist/services/repo-snapshot.d.ts +2 -3
  150. package/dist/services/repo-snapshot.d.ts.map +1 -1
  151. package/dist/services/repo-snapshot.js +14 -26
  152. package/dist/services/repo-snapshot.js.map +1 -1
  153. package/dist/services/status.d.ts +1 -5
  154. package/dist/services/status.d.ts.map +1 -1
  155. package/dist/services/status.js +7 -17
  156. package/dist/services/status.js.map +1 -1
  157. package/dist/services/{runtime.d.ts → sync-context.d.ts} +9 -3
  158. package/dist/services/sync-context.d.ts.map +1 -0
  159. package/dist/services/{runtime.js → sync-context.js} +14 -7
  160. package/dist/services/sync-context.js.map +1 -0
  161. package/dist/services/{set.d.ts → sync-mode.d.ts} +7 -9
  162. package/dist/services/sync-mode.d.ts.map +1 -0
  163. package/dist/services/{set.js → sync-mode.js} +9 -23
  164. package/dist/services/sync-mode.js.map +1 -0
  165. package/dist/services/{paths.d.ts → sync-paths.d.ts} +2 -2
  166. package/dist/services/sync-paths.d.ts.map +1 -0
  167. package/dist/services/{paths.js → sync-paths.js} +4 -6
  168. package/dist/services/sync-paths.js.map +1 -0
  169. package/dist/services/terminal/logger.d.ts +30 -5
  170. package/dist/services/terminal/logger.d.ts.map +1 -1
  171. package/dist/services/terminal/logger.js +61 -14
  172. package/dist/services/terminal/logger.js.map +1 -1
  173. package/dist/services/terminal/path-completion.d.ts +2 -2
  174. package/dist/services/terminal/path-completion.d.ts.map +1 -1
  175. package/dist/services/terminal/path-completion.js +16 -13
  176. package/dist/services/terminal/path-completion.js.map +1 -1
  177. package/dist/services/terminal/shell.d.ts +1 -12
  178. package/dist/services/terminal/shell.d.ts.map +1 -1
  179. package/dist/services/terminal/shell.js +7 -160
  180. package/dist/services/terminal/shell.js.map +1 -1
  181. package/dist/services/terminal/spinner.d.ts +10 -0
  182. package/dist/services/terminal/spinner.d.ts.map +1 -0
  183. package/dist/services/terminal/spinner.js +61 -0
  184. package/dist/services/terminal/spinner.js.map +1 -0
  185. package/dist/services/terminal/theme.d.ts +31 -0
  186. package/dist/services/terminal/theme.d.ts.map +1 -0
  187. package/dist/services/terminal/theme.js +32 -0
  188. package/dist/services/terminal/theme.js.map +1 -0
  189. package/dist/services/track.d.ts +1 -3
  190. package/dist/services/track.d.ts.map +1 -1
  191. package/dist/services/track.js +7 -23
  192. package/dist/services/track.js.map +1 -1
  193. package/dist/services/untrack.d.ts +0 -2
  194. package/dist/services/untrack.d.ts.map +1 -1
  195. package/dist/services/untrack.js +4 -11
  196. package/dist/services/untrack.js.map +1 -1
  197. package/package.json +1 -2
  198. package/dist/config/sync-entry.d.ts.map +0 -1
  199. package/dist/config/sync-entry.js.map +0 -1
  200. package/dist/config/sync.d.ts +0 -8
  201. package/dist/config/sync.d.ts.map +0 -1
  202. package/dist/config/sync.js +0 -53
  203. package/dist/config/sync.js.map +0 -1
  204. package/dist/services/local-materialization.d.ts +0 -30
  205. package/dist/services/local-materialization.d.ts.map +0 -1
  206. package/dist/services/local-materialization.js.map +0 -1
  207. package/dist/services/paths.d.ts.map +0 -1
  208. package/dist/services/paths.js.map +0 -1
  209. package/dist/services/runtime.d.ts.map +0 -1
  210. package/dist/services/runtime.js.map +0 -1
  211. package/dist/services/set.d.ts.map +0 -1
  212. package/dist/services/set.js.map +0 -1
  213. package/dist/services/terminal/cli-runtime.d.ts +0 -18
  214. package/dist/services/terminal/cli-runtime.d.ts.map +0 -1
  215. package/dist/services/terminal/cli-runtime.js +0 -19
  216. package/dist/services/terminal/cli-runtime.js.map +0 -1
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  **Git-backed configuration sync for your development environment.**
6
6
 
7
- [![CI](https://github.com/tinyrack-net/dotweave/actions/workflows/ci.yml/badge.svg)](https://github.com/tinyrack-net/dotweave/actions/workflows/ci.yml)
7
+ [![CI](https://github.com/tinyrack-net/dotweave/actions/workflows/pipeline.yml/badge.svg)](https://github.com/tinyrack-net/dotweave/actions/workflows/pipeline.yml)
8
8
  [![npm](https://img.shields.io/npm/v/@tinyrack/dotweave)](https://www.npmjs.com/package/@tinyrack/dotweave)
9
9
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
10
10
  [![Node.js](https://img.shields.io/badge/node-%3E%3D24-brightgreen)](https://nodejs.org/)
@@ -30,7 +30,7 @@ Most dotfiles tools start from the repository and ask you to shape your local sy
30
30
  ## Quick Start
31
31
 
32
32
  ```bash
33
- # Install
33
+ # Install with npm on macOS, Linux, WSL, or as a cross-platform fallback
34
34
  npm install -g @tinyrack/dotweave
35
35
 
36
36
  # Initialize
@@ -45,6 +45,10 @@ dotweave track ~/.ssh/config --mode secret
45
45
  dotweave push
46
46
  ```
47
47
 
48
+ On Windows, install dotweave from the Microsoft Store once the listing is live.
49
+ Portable Windows `.exe` files remain attached to GitHub Releases for manual
50
+ use.
51
+
48
52
  ## Documentation
49
53
 
50
54
  For detailed guides, command reference, and troubleshooting, visit the **[Dotweave documentation site](https://dotweave.tinyrack.net/en/)**.
@@ -1,5 +1,2 @@
1
- import { type Application } from "@stricli/core";
2
- import { type DotweaveCliContext } from "#app/services/terminal/cli-runtime.ts";
3
- export declare const cliApplication: Application<DotweaveCliContext>;
4
1
  export declare const runCli: (inputs: readonly string[]) => Promise<void>;
5
2
  //# sourceMappingURL=application.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAKjB,MAAM,eAAe,CAAC;AAMvB,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,uCAAuC,CAAC;AAgG/C,eAAO,MAAM,cAAc,iCAAc,CAAC;AAE1C,eAAO,MAAM,MAAM,GAAU,QAAQ,SAAS,MAAM,EAAE,kBAErD,CAAC"}
1
+ {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AA6FA,eAAO,MAAM,MAAM,GAAU,QAAQ,SAAS,MAAM,EAAE,kBAgBrD,CAAC"}
@@ -1,17 +1,11 @@
1
1
  import { buildApplication, run, text_en, } from "@stricli/core";
2
- import { createConsola } from "consola";
2
+ import { setApplication } from "#app/cli/autocomplete.ts";
3
3
  import { buildRootRoute } from "#app/cli/index.ts";
4
- import { CONSTANTS } from "#app/config/constants.ts";
4
+ import { AppConstants } from "#app/config/constants.ts";
5
5
  import { formatDotweaveError } from "#app/lib/error.ts";
6
6
  import { currentVersion } from "#app/lib/version.ts";
7
- import { createCliContext, } from "#app/services/terminal/cli-runtime.ts";
8
- const errorLogger = createConsola({
9
- formatOptions: {
10
- colors: process.stderr.isTTY ?? false,
11
- compact: true,
12
- date: false,
13
- },
14
- level: 3,
7
+ import { createCliLogger } from "#app/services/terminal/logger.ts";
8
+ const errorLogger = createCliLogger({
15
9
  stderr: process.stderr,
16
10
  stdout: process.stderr,
17
11
  });
@@ -51,15 +45,8 @@ const resolveExitCode = (error) => {
51
45
  }
52
46
  return 1;
53
47
  };
54
- let application;
55
- const getApplication = () => {
56
- if (application === undefined) {
57
- throw new Error("CLI application has not been initialized.");
58
- }
59
- return application;
60
- };
61
- const rootRoute = buildRootRoute(getApplication);
62
- application = buildApplication(rootRoute, {
48
+ const rootRoute = buildRootRoute();
49
+ const application = buildApplication(rootRoute, {
63
50
  completion: {
64
51
  includeAliases: false,
65
52
  },
@@ -71,7 +58,7 @@ application = buildApplication(rootRoute, {
71
58
  defaultLocale: "en",
72
59
  loadText: () => dotweaveText,
73
60
  },
74
- name: CONSTANTS.APP.NAME,
61
+ name: AppConstants.APP.NAME,
75
62
  scanner: {
76
63
  caseStyle: "allow-kebab-for-camel",
77
64
  },
@@ -79,8 +66,22 @@ application = buildApplication(rootRoute, {
79
66
  currentVersion,
80
67
  },
81
68
  });
82
- export const cliApplication = application;
69
+ setApplication(application);
83
70
  export const runCli = async (inputs) => {
84
- await run(cliApplication, inputs, createCliContext());
71
+ await run(application, inputs, {
72
+ process: {
73
+ stdout: process.stdout,
74
+ stderr: process.stderr,
75
+ get env() {
76
+ return process.env;
77
+ },
78
+ get exitCode() {
79
+ return process.exitCode;
80
+ },
81
+ set exitCode(value) {
82
+ process.exitCode = value;
83
+ },
84
+ },
85
+ });
85
86
  };
86
87
  //# sourceMappingURL=application.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
+ import type { ApplicationContext } from "@stricli/core";
1
2
  import { type Application } from "@stricli/core";
2
- import type { DotweaveCliContext } from "#app/services/terminal/cli-runtime.ts";
3
- export declare const buildAutocompleteRoute: (getApplication: () => Application<DotweaveCliContext>) => {
4
- autocompleteRoute: import("@stricli/core").RouteMap<DotweaveCliContext>;
5
- completeCommand: import("@stricli/core").Command<DotweaveCliContext>;
3
+ export declare const setApplication: (app: Application<ApplicationContext>) => void;
4
+ export declare const buildAutocompleteRoute: () => {
5
+ autocompleteRoute: import("@stricli/core").RouteMap<ApplicationContext>;
6
+ completeCommand: import("@stricli/core").Command<ApplicationContext>;
6
7
  };
7
8
  //# sourceMappingURL=autocomplete.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"autocomplete.d.ts","sourceRoot":"","sources":["../../src/cli/autocomplete.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAIjB,MAAM,eAAe,CAAC;AAQvB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAuEhF,eAAO,MAAM,sBAAsB,GACjC,gBAAgB,MAAM,WAAW,CAAC,kBAAkB,CAAC;;;CAiBtD,CAAC"}
1
+ {"version":3,"file":"autocomplete.d.ts","sourceRoot":"","sources":["../../src/cli/autocomplete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EACL,KAAK,WAAW,EAIjB,MAAM,eAAe,CAAC;AAWvB,eAAO,MAAM,cAAc,GAAI,KAAK,WAAW,CAAC,kBAAkB,CAAC,SAElE,CAAC;AAqEF,eAAO,MAAM,sBAAsB;;;CAgBlC,CAAC"}
@@ -1,5 +1,9 @@
1
1
  import { buildCommand, buildRouteMap, proposeCompletions, } from "@stricli/core";
2
2
  import { BASH_AUTOCOMPLETE_SCRIPT, POWERSHELL_AUTOCOMPLETE_SCRIPT, resolveCompletionInputs, ZSH_AUTOCOMPLETE_SCRIPT, } from "#app/services/autocomplete.ts";
3
+ let _application;
4
+ export const setApplication = (app) => {
5
+ _application = app;
6
+ };
3
7
  const buildAutocompleteScriptCommand = (shell, script) => {
4
8
  return buildCommand({
5
9
  docs: {
@@ -15,35 +19,36 @@ const buildAutocompleteScriptCommand = (shell, script) => {
15
19
  const bashAutocompleteCommand = buildAutocompleteScriptCommand("bash", BASH_AUTOCOMPLETE_SCRIPT);
16
20
  const zshAutocompleteCommand = buildAutocompleteScriptCommand("zsh", ZSH_AUTOCOMPLETE_SCRIPT);
17
21
  const powershellAutocompleteCommand = buildAutocompleteScriptCommand("powershell", POWERSHELL_AUTOCOMPLETE_SCRIPT);
18
- const buildCompleteCommand = (getApplication) => {
19
- return buildCommand({
20
- docs: {
21
- brief: "Internal completion command",
22
- },
23
- func: async function (_flags, ...inputs) {
24
- const completions = await proposeCompletions(getApplication(), resolveCompletionInputs(inputs), this);
25
- if (completions.length === 0) {
26
- return;
27
- }
28
- const lines = completions
29
- .map((c) => (c.brief ? `${c.completion}\t${c.brief}` : c.completion))
30
- .join("\n");
31
- process.stdout.write(`${lines}\n`);
32
- },
33
- parameters: {
34
- positional: {
35
- kind: "array",
36
- minimum: 0,
37
- parameter: {
38
- brief: "Completion input token",
39
- parse: String,
40
- placeholder: "input",
41
- },
22
+ const completeCommand = buildCommand({
23
+ docs: {
24
+ brief: "Internal completion command",
25
+ },
26
+ func: async function (_flags, ...inputs) {
27
+ if (_application === undefined) {
28
+ return;
29
+ }
30
+ const completions = await proposeCompletions(_application, resolveCompletionInputs(inputs), this);
31
+ if (completions.length === 0) {
32
+ return;
33
+ }
34
+ const lines = completions
35
+ .map((c) => (c.brief ? `${c.completion}\t${c.brief}` : c.completion))
36
+ .join("\n");
37
+ process.stdout.write(`${lines}\n`);
38
+ },
39
+ parameters: {
40
+ positional: {
41
+ kind: "array",
42
+ minimum: 0,
43
+ parameter: {
44
+ brief: "Completion input token",
45
+ parse: String,
46
+ placeholder: "input",
42
47
  },
43
48
  },
44
- });
45
- };
46
- export const buildAutocompleteRoute = (getApplication) => {
49
+ },
50
+ });
51
+ export const buildAutocompleteRoute = () => {
47
52
  return {
48
53
  autocompleteRoute: buildRouteMap({
49
54
  docs: {
@@ -56,7 +61,7 @@ export const buildAutocompleteRoute = (getApplication) => {
56
61
  zsh: zshAutocompleteCommand,
57
62
  },
58
63
  }),
59
- completeCommand: buildCompleteCommand(getApplication),
64
+ completeCommand,
60
65
  };
61
66
  };
62
67
  //# sourceMappingURL=autocomplete.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"autocomplete.js","sourceRoot":"","sources":["../../src/cli/autocomplete.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,EACZ,aAAa,EACb,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC9B,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,+BAA+B,CAAC;AAKvC,MAAM,8BAA8B,GAAG,CACrC,KAAoC,EACpC,MAAc,EACd,EAAE;IACF,OAAO,YAAY,CAAqC;QACtD,IAAI,EAAE;YACJ,KAAK,EAAE,SAAS,KAAK,sBAAsB;YAC3C,eAAe,EAAE,UAAU,KAAK,qEAAqE,KAAK,OAAO;SAClH;QACD,IAAI,EAAE,GAAG,EAAE;YACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QACD,UAAU,EAAE,EAAE;KACf,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,8BAA8B,CAC5D,MAAM,EACN,wBAAwB,CACzB,CAAC;AACF,MAAM,sBAAsB,GAAG,8BAA8B,CAC3D,KAAK,EACL,uBAAuB,CACxB,CAAC;AACF,MAAM,6BAA6B,GAAG,8BAA8B,CAClE,YAAY,EACZ,8BAA8B,CAC/B,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAC3B,cAAqD,EACrD,EAAE;IACF,OAAO,YAAY,CAA2C;QAC5D,IAAI,EAAE;YACJ,KAAK,EAAE,6BAA6B;SACrC;QACD,IAAI,EAAE,KAAK,WAAW,MAAM,EAAE,GAAG,MAAM;YACrC,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAC1C,cAAc,EAAE,EAChB,uBAAuB,CAAC,MAAM,CAAC,EAC/B,IAAI,CACL,CAAC;YAEF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,OAAO;YACT,CAAC;YAED,MAAM,KAAK,GAAG,WAAW;iBACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;iBACpE,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;QACrC,CAAC;QACD,UAAU,EAAE;YACV,UAAU,EAAE;gBACV,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,CAAC;gBACV,SAAS,EAAE;oBACT,KAAK,EAAE,wBAAwB;oBAC/B,KAAK,EAAE,MAAM;oBACb,WAAW,EAAE,OAAO;iBACrB;aACF;SACF;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,cAAqD,EACrD,EAAE;IACF,OAAO;QACL,iBAAiB,EAAE,aAAa,CAAC;YAC/B,IAAI,EAAE;gBACJ,KAAK,EAAE,kCAAkC;gBACzC,eAAe,EACb,+EAA+E;aAClF;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,uBAAuB;gBAC7B,UAAU,EAAE,6BAA6B;gBACzC,GAAG,EAAE,sBAAsB;aAC5B;SACF,CAAC;QACF,eAAe,EAAE,oBAAoB,CAAC,cAAc,CAAC;KACtD,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"autocomplete.js","sourceRoot":"","sources":["../../src/cli/autocomplete.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,YAAY,EACZ,aAAa,EACb,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC9B,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,+BAA+B,CAAC;AAGvC,IAAI,YAAyD,CAAC;AAE9D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAoC,EAAE,EAAE;IACrE,YAAY,GAAG,GAAG,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,8BAA8B,GAAG,CACrC,KAAoC,EACpC,MAAc,EACd,EAAE;IACF,OAAO,YAAY,CAAkC;QACnD,IAAI,EAAE;YACJ,KAAK,EAAE,SAAS,KAAK,sBAAsB;YAC3C,eAAe,EAAE,UAAU,KAAK,qEAAqE,KAAK,OAAO;SAClH;QACD,IAAI,EAAE,GAAG,EAAE;YACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QACD,UAAU,EAAE,EAAE;KACf,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,8BAA8B,CAC5D,MAAM,EACN,wBAAwB,CACzB,CAAC;AACF,MAAM,sBAAsB,GAAG,8BAA8B,CAC3D,KAAK,EACL,uBAAuB,CACxB,CAAC;AACF,MAAM,6BAA6B,GAAG,8BAA8B,CAClE,YAAY,EACZ,8BAA8B,CAC/B,CAAC;AAEF,MAAM,eAAe,GAAG,YAAY,CAAwC;IAC1E,IAAI,EAAE;QACJ,KAAK,EAAE,6BAA6B;KACrC;IACD,IAAI,EAAE,KAAK,WAAW,MAAM,EAAE,GAAG,MAAM;QACrC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAC1C,YAAY,EACZ,uBAAuB,CAAC,MAAM,CAAC,EAC/B,IAAI,CACL,CAAC;QAEF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,WAAW;aACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;aACpE,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;IACrC,CAAC;IACD,UAAU,EAAE;QACV,UAAU,EAAE;YACV,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,CAAC;YACV,SAAS,EAAE;gBACT,KAAK,EAAE,wBAAwB;gBAC/B,KAAK,EAAE,MAAM;gBACb,WAAW,EAAE,OAAO;aACrB;SACF;KACF;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,EAAE;IACzC,OAAO;QACL,iBAAiB,EAAE,aAAa,CAAC;YAC/B,IAAI,EAAE;gBACJ,KAAK,EAAE,kCAAkC;gBACzC,eAAe,EACb,+EAA+E;aAClF;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,uBAAuB;gBAC7B,UAAU,EAAE,6BAA6B;gBACzC,GAAG,EAAE,sBAAsB;aAC5B;SACF,CAAC;QACF,eAAe;KAChB,CAAC;AACJ,CAAC,CAAC"}
package/dist/cli/cd.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type DotweaveCliContext } from "#app/services/terminal/cli-runtime.ts";
2
- declare const cdCommand: import("@stricli/core").Command<DotweaveCliContext>;
1
+ import type { ApplicationContext } from "@stricli/core";
2
+ declare const cdCommand: import("@stricli/core").Command<ApplicationContext>;
3
3
  export default cdCommand;
4
4
  //# sourceMappingURL=cd.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cd.d.ts","sourceRoot":"","sources":["../../src/cli/cd.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,uCAAuC,CAAC;AAG/C,QAAA,MAAM,SAAS,qDAuBb,CAAC;AAEH,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"cd.d.ts","sourceRoot":"","sources":["../../src/cli/cd.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAKxD,QAAA,MAAM,SAAS,qDAeb,CAAC;AAEH,eAAe,SAAS,CAAC"}
package/dist/cli/cd.js CHANGED
@@ -1,7 +1,6 @@
1
1
  import { mkdir } from "node:fs/promises";
2
2
  import { buildCommand } from "@stricli/core";
3
3
  import { resolveDotweaveSyncDirectoryFromEnv } from "#app/config/runtime-env.ts";
4
- import { verboseFlag, } from "#app/services/terminal/cli-runtime.ts";
5
4
  import { launchShellInDirectory } from "#app/services/terminal/shell.ts";
6
5
  const cdCommand = buildCommand({
7
6
  docs: {
@@ -14,9 +13,7 @@ const cdCommand = buildCommand({
14
13
  await launchShellInDirectory(syncDirectory);
15
14
  },
16
15
  parameters: {
17
- flags: {
18
- verbose: verboseFlag,
19
- },
16
+ flags: {},
20
17
  },
21
18
  });
22
19
  export default cdCommand;
@@ -1 +1 @@
1
- {"version":3,"file":"cd.js","sourceRoot":"","sources":["../../src/cli/cd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,mCAAmC,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAEL,WAAW,GACZ,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,MAAM,SAAS,GAAG,YAAY,CAM5B;IACA,IAAI,EAAE;QACJ,KAAK,EAAE,sCAAsC;QAC7C,eAAe,EACb,4KAA4K;KAC/K;IACD,KAAK,CAAC,IAAI;QACR,MAAM,aAAa,GAAG,mCAAmC,EAAE,CAAC;QAE5D,MAAM,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,MAAM,sBAAsB,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;IACD,UAAU,EAAE;QACV,KAAK,EAAE;YACL,OAAO,EAAE,WAAW;SACrB;KACF;CACF,CAAC,CAAC;AAEH,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"cd.js","sourceRoot":"","sources":["../../src/cli/cd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,mCAAmC,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,MAAM,SAAS,GAAG,YAAY,CAAgD;IAC5E,IAAI,EAAE;QACJ,KAAK,EAAE,sCAAsC;QAC7C,eAAe,EACb,4KAA4K;KAC/K;IACD,KAAK,CAAC,IAAI;QACR,MAAM,aAAa,GAAG,mCAAmC,EAAE,CAAC;QAE5D,MAAM,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,MAAM,sBAAsB,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;IACD,UAAU,EAAE;QACV,KAAK,EAAE,EAAE;KACV;CACF,CAAC,CAAC;AAEH,eAAe,SAAS,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type DotweaveCliContext } from "#app/services/terminal/cli-runtime.ts";
2
- declare const doctorCommand: import("@stricli/core").Command<DotweaveCliContext>;
1
+ import type { ApplicationContext } from "@stricli/core";
2
+ declare const doctorCommand: import("@stricli/core").Command<ApplicationContext>;
3
3
  export default doctorCommand;
4
4
  //# sourceMappingURL=doctor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,uCAAuC,CAAC;AA6B/C,QAAA,MAAM,aAAa,qDA+EjB,CAAC;AAEH,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAkCxD,QAAA,MAAM,aAAa,qDAgEjB,CAAC;AAEH,eAAe,aAAa,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import { buildCommand } from "@stricli/core";
2
- import pc from "picocolors";
2
+ import { DotweaveError } from "#app/lib/error.ts";
3
3
  import { runDoctorChecks } from "#app/services/doctor.ts";
4
- import { verboseFlag, } from "#app/services/terminal/cli-runtime.ts";
5
4
  import { createCliLogger } from "#app/services/terminal/logger.ts";
6
- const normalizeCheckId = (checkId) => {
5
+ import { color, SYMBOLS } from "#app/services/terminal/theme.ts";
6
+ const remapCheckIdForDisplay = (checkId) => {
7
7
  switch (checkId) {
8
8
  case "age":
9
9
  return "identity";
@@ -19,11 +19,11 @@ const stripTrailingPeriod = (value) => {
19
19
  const formatCheckIcon = (level) => {
20
20
  switch (level) {
21
21
  case "ok":
22
- return pc.green("✔");
22
+ return color.success(SYMBOLS.success);
23
23
  case "warn":
24
- return pc.yellow("⚠");
24
+ return color.warn(SYMBOLS.warn);
25
25
  case "fail":
26
- return pc.red("✖");
26
+ return color.error(SYMBOLS.error);
27
27
  }
28
28
  };
29
29
  const doctorCommand = buildCommand({
@@ -31,11 +31,11 @@ const doctorCommand = buildCommand({
31
31
  brief: "Check sync directory, config, age identity, and tracked local paths",
32
32
  fullDescription: "Run health checks for the local sync setup, including repository availability, config validity, age identity configuration, and whether tracked local paths still exist where dotweave expects them.",
33
33
  },
34
- async func(flags) {
35
- const verbose = flags.verbose ?? false;
36
- const logger = createCliLogger({ verbose });
37
- const reporter = verbose ? logger : undefined;
38
- const result = await runDoctorChecks(reporter);
34
+ async func() {
35
+ const logger = createCliLogger();
36
+ const spin = logger.spinner("Running checks...");
37
+ const result = await runDoctorChecks();
38
+ spin.stop();
39
39
  let okCount = 0;
40
40
  let warningCount = 0;
41
41
  let failureCount = 0;
@@ -50,7 +50,7 @@ const doctorCommand = buildCommand({
50
50
  failureCount += 1;
51
51
  }
52
52
  }
53
- const summary = pc.dim(`(${okCount} ok · ${warningCount} warnings · ${failureCount} failures)`);
53
+ const summary = color.dim(`(${okCount} ok · ${warningCount} warnings · ${failureCount} failures)`);
54
54
  if (result.hasFailures) {
55
55
  logger.fail(`Doctor found issues ${summary}`);
56
56
  }
@@ -61,31 +61,22 @@ const doctorCommand = buildCommand({
61
61
  logger.success(`Doctor passed ${summary}`);
62
62
  }
63
63
  const nonOkChecks = result.checks.filter((check) => check.level !== "ok");
64
- if (verbose) {
65
- for (const check of result.checks) {
66
- logger.log(` ${formatCheckIcon(check.level)} ${normalizeCheckId(check.checkId)} – ${stripTrailingPeriod(check.detail)}`);
67
- }
68
- }
69
- else if (nonOkChecks.length > 0) {
64
+ if (nonOkChecks.length > 0) {
70
65
  for (const check of nonOkChecks.slice(0, 3)) {
71
- logger.log(` ${formatCheckIcon(check.level)} ${normalizeCheckId(check.checkId)} ${stripTrailingPeriod(check.detail)}`);
66
+ logger.log(` ${formatCheckIcon(check.level)} ${remapCheckIdForDisplay(check.checkId)} ${stripTrailingPeriod(check.detail)}`);
72
67
  }
73
68
  if (nonOkChecks.length > 3) {
74
- logger.log(pc.dim(` ... ${nonOkChecks.length - 3} more issues`));
69
+ logger.log(color.dim(` ... ${nonOkChecks.length - 3} more issues`));
75
70
  }
76
71
  }
77
- if (verbose) {
78
- logger.log(pc.dim(` sync dir ${result.syncDirectory}`));
79
- logger.log(pc.dim(` config ${result.configPath}`));
80
- }
81
72
  if (result.hasFailures) {
82
- process.exitCode = 1;
73
+ const error = new DotweaveError("Doctor found issues.");
74
+ error.exitCode = 1;
75
+ throw error;
83
76
  }
84
77
  },
85
78
  parameters: {
86
- flags: {
87
- verbose: verboseFlag,
88
- },
79
+ flags: {},
89
80
  },
90
81
  });
91
82
  export default doctorCommand;
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,2 @@
1
- import { type Application } from "@stricli/core";
2
- import type { DotweaveCliContext } from "#app/services/terminal/cli-runtime.ts";
3
- export declare const buildRootRoute: (getApplication: () => Application<DotweaveCliContext>) => import("@stricli/core").RouteMap<DotweaveCliContext>;
1
+ export declare const buildRootRoute: () => import("@stricli/core").RouteMap<import("@stricli/core").ApplicationContext>;
4
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,eAAe,CAAC;AAIhE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAEhF,eAAO,MAAM,cAAc,GACzB,gBAAgB,MAAM,WAAW,CAAC,kBAAkB,CAAC,yDAoBtD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,cAAc,oFAkB1B,CAAC"}
package/dist/cli/index.js CHANGED
@@ -1,19 +1,19 @@
1
1
  import { buildRouteMap } from "@stricli/core";
2
2
  import { buildAutocompleteRoute } from "#app/cli/autocomplete.ts";
3
3
  import { rootCommandRoutes } from "#app/cli/root-commands.ts";
4
- import { CONSTANTS } from "#app/config/constants.ts";
5
- export const buildRootRoute = (getApplication) => {
6
- const { autocompleteRoute, completeCommand } = buildAutocompleteRoute(getApplication);
4
+ import { AppConstants } from "#app/config/constants.ts";
5
+ export const buildRootRoute = () => {
6
+ const { autocompleteRoute, completeCommand } = buildAutocompleteRoute();
7
7
  return buildRouteMap({
8
8
  docs: {
9
9
  brief: "A personal CLI tool for git-backed configuration sync.",
10
10
  fullDescription: "Manage tracked configuration files under your home directory, mirror them into a git-backed sync directory, and restore them later on other devices.",
11
11
  hideRoute: {
12
- [CONSTANTS.AUTOCOMPLETE.COMPLETE_SUBCOMMAND]: true,
12
+ [AppConstants.AUTOCOMPLETE.COMPLETE_SUBCOMMAND]: true,
13
13
  },
14
14
  },
15
15
  routes: {
16
- [CONSTANTS.AUTOCOMPLETE.COMPLETE_SUBCOMMAND]: completeCommand,
16
+ [AppConstants.AUTOCOMPLETE.COMPLETE_SUBCOMMAND]: completeCommand,
17
17
  autocomplete: autocompleteRoute,
18
18
  ...rootCommandRoutes,
19
19
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,aAAa,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAGrD,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,cAAqD,EACrD,EAAE;IACF,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,GAC1C,sBAAsB,CAAC,cAAc,CAAC,CAAC;IAEzC,OAAO,aAAa,CAAC;QACnB,IAAI,EAAE;YACJ,KAAK,EAAE,wDAAwD;YAC/D,eAAe,EACb,sJAAsJ;YACxJ,SAAS,EAAE;gBACT,CAAC,SAAS,CAAC,YAAY,CAAC,mBAAmB,CAAC,EAAE,IAAI;aACnD;SACF;QACD,MAAM,EAAE;YACN,CAAC,SAAS,CAAC,YAAY,CAAC,mBAAmB,CAAC,EAAE,eAAe;YAC7D,YAAY,EAAE,iBAAiB;YAC/B,GAAG,iBAAiB;SACrB;KACF,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,GAAG,sBAAsB,EAAE,CAAC;IAExE,OAAO,aAAa,CAAC;QACnB,IAAI,EAAE;YACJ,KAAK,EAAE,wDAAwD;YAC/D,eAAe,EACb,sJAAsJ;YACxJ,SAAS,EAAE;gBACT,CAAC,YAAY,CAAC,YAAY,CAAC,mBAAmB,CAAC,EAAE,IAAI;aACtD;SACF;QACD,MAAM,EAAE;YACN,CAAC,YAAY,CAAC,YAAY,CAAC,mBAAmB,CAAC,EAAE,eAAe;YAChE,YAAY,EAAE,iBAAiB;YAC/B,GAAG,iBAAiB;SACrB;KACF,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type DotweaveCliContext } from "#app/services/terminal/cli-runtime.ts";
2
- declare const initCommand: import("@stricli/core").Command<DotweaveCliContext>;
1
+ import type { ApplicationContext } from "@stricli/core";
2
+ declare const initCommand: import("@stricli/core").Command<ApplicationContext>;
3
3
  export default initCommand;
4
4
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,uCAAuC,CAAC;AA0B/C,QAAA,MAAM,WAAW,qDAuGf,CAAC;AAEH,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAmCxD,QAAA,MAAM,WAAW,qDAmGf,CAAC;AAEH,eAAe,WAAW,CAAC"}
package/dist/cli/init.js CHANGED
@@ -1,11 +1,9 @@
1
1
  import { buildCommand } from "@stricli/core";
2
- import pc from "picocolors";
3
2
  import { resolveDefaultIdentityFile } from "#app/config/identity-file.ts";
4
3
  import { readEnvValue } from "#app/config/runtime-env.ts";
5
4
  import { pathExists } from "#app/lib/filesystem.ts";
6
5
  import { ask } from "#app/lib/prompt.ts";
7
6
  import { createMissingRepositoryAgeKeyError, initializeSyncDirectory, } from "#app/services/init.ts";
8
- import { verboseFlag, } from "#app/services/terminal/cli-runtime.ts";
9
7
  import { createCliLogger } from "#app/services/terminal/logger.ts";
10
8
  const formatGitSummary = (result) => {
11
9
  switch (result.gitAction) {
@@ -28,9 +26,7 @@ const initCommand = buildCommand({
28
26
  fullDescription: "Create or connect the local dotweave repository under your XDG config directory, then store the sync settings used by later pull and push operations. If you omit the repository argument, dotweave initializes a local git repository in the sync directory.",
29
27
  },
30
28
  async func(flags, repository) {
31
- const verbose = flags.verbose ?? false;
32
- const logger = createCliLogger({ verbose });
33
- const reporter = verbose ? logger : undefined;
29
+ const logger = createCliLogger();
34
30
  const requestedKey = flags.key?.trim();
35
31
  const identityFile = resolveDefaultIdentityFile(readEnvValue("HOME"), readEnvValue("XDG_CONFIG_HOME"));
36
32
  const identityFileExists = await pathExists(identityFile);
@@ -49,6 +45,9 @@ const initCommand = buildCommand({
49
45
  trimmedPromptedKey === "") {
50
46
  throw createMissingRepositoryAgeKeyError();
51
47
  }
48
+ const spin = logger.spinner(importingRepository
49
+ ? "Cloning repository..."
50
+ : "Initializing sync directory...");
52
51
  const result = await initializeSyncDirectory({
53
52
  ageIdentity: requestedKey !== undefined
54
53
  ? requestedKey
@@ -61,21 +60,17 @@ const initCommand = buildCommand({
61
60
  (trimmedPromptedKey === undefined && !identityFileExists)),
62
61
  recipients: [],
63
62
  repository,
64
- }, reporter);
63
+ });
65
64
  if (result.alreadyInitialized) {
65
+ spin.stop();
66
66
  logger.info("Sync directory already initialized");
67
67
  }
68
68
  else {
69
- logger.success("Sync directory initialized");
69
+ spin.succeed("Sync directory initialized");
70
70
  }
71
- logger.log(` git: ${formatGitSummary(result)}`);
72
- logger.log(` age: ${formatAgeSummary(result)}`);
71
+ logger.kv("git", formatGitSummary(result));
72
+ logger.kv("age", formatAgeSummary(result));
73
73
  logger.log(` ${result.entryCount} entries · ${result.recipientCount} recipients`);
74
- if (verbose) {
75
- logger.log(pc.dim(` sync dir ${result.syncDirectory}`));
76
- logger.log(pc.dim(` config ${result.configPath}`));
77
- logger.log(pc.dim(` identity ${result.identityFile}`));
78
- }
79
74
  },
80
75
  parameters: {
81
76
  flags: {
@@ -91,7 +86,6 @@ const initCommand = buildCommand({
91
86
  kind: "boolean",
92
87
  optional: true,
93
88
  },
94
- verbose: verboseFlag,
95
89
  },
96
90
  positional: {
97
91
  kind: "tuple",
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- declare const profileRoute: import("@stricli/core").RouteMap<import("../../services/terminal/cli-runtime.ts").DotweaveCliContext>;
1
+ declare const profileRoute: import("@stricli/core").RouteMap<import("@stricli/core").ApplicationContext>;
2
2
  export default profileRoute;
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/profile/index.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,YAAY,uGAUhB,CAAC;AAEH,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/profile/index.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,YAAY,8EAUhB,CAAC;AAEH,eAAe,YAAY,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type DotweaveCliContext } from "#app/services/terminal/cli-runtime.ts";
2
- declare const profileListCommand: import("@stricli/core").Command<DotweaveCliContext>;
1
+ import type { ApplicationContext } from "@stricli/core";
2
+ declare const profileListCommand: import("@stricli/core").Command<ApplicationContext>;
3
3
  export default profileListCommand;
4
4
  //# sourceMappingURL=list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/cli/profile/list.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,uCAAuC,CAAC;AAO/C,QAAA,MAAM,kBAAkB,qDAiDtB,CAAC;AAEH,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/cli/profile/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAMxD,QAAA,MAAM,kBAAkB,qDAmCtB,CAAC;AAEH,eAAe,kBAAkB,CAAC"}