@tinyrack/dotweave 0.39.4

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 (246) hide show
  1. package/bin/index.js +5 -0
  2. package/dist/application.d.ts +5 -0
  3. package/dist/application.d.ts.map +1 -0
  4. package/dist/application.js +86 -0
  5. package/dist/application.js.map +1 -0
  6. package/dist/cli/autocomplete.d.ts +7 -0
  7. package/dist/cli/autocomplete.d.ts.map +1 -0
  8. package/dist/cli/autocomplete.js +62 -0
  9. package/dist/cli/autocomplete.js.map +1 -0
  10. package/dist/cli/cd.d.ts +4 -0
  11. package/dist/cli/cd.d.ts.map +1 -0
  12. package/dist/cli/cd.js +23 -0
  13. package/dist/cli/cd.js.map +1 -0
  14. package/dist/cli/doctor.d.ts +4 -0
  15. package/dist/cli/doctor.d.ts.map +1 -0
  16. package/dist/cli/doctor.js +92 -0
  17. package/dist/cli/doctor.js.map +1 -0
  18. package/dist/cli/index.d.ts +4 -0
  19. package/dist/cli/index.d.ts.map +1 -0
  20. package/dist/cli/index.js +22 -0
  21. package/dist/cli/index.js.map +1 -0
  22. package/dist/cli/init.d.ts +4 -0
  23. package/dist/cli/init.d.ts.map +1 -0
  24. package/dist/cli/init.js +110 -0
  25. package/dist/cli/init.js.map +1 -0
  26. package/dist/cli/profile/index.d.ts +3 -0
  27. package/dist/cli/profile/index.d.ts.map +1 -0
  28. package/dist/cli/profile/index.js +15 -0
  29. package/dist/cli/profile/index.js.map +1 -0
  30. package/dist/cli/profile/list.d.ts +4 -0
  31. package/dist/cli/profile/list.d.ts.map +1 -0
  32. package/dist/cli/profile/list.js +42 -0
  33. package/dist/cli/profile/list.js.map +1 -0
  34. package/dist/cli/profile/use.d.ts +4 -0
  35. package/dist/cli/profile/use.d.ts.map +1 -0
  36. package/dist/cli/profile/use.js +49 -0
  37. package/dist/cli/profile/use.js.map +1 -0
  38. package/dist/cli/pull.d.ts +4 -0
  39. package/dist/cli/pull.d.ts.map +1 -0
  40. package/dist/cli/pull.js +107 -0
  41. package/dist/cli/pull.js.map +1 -0
  42. package/dist/cli/push.d.ts +4 -0
  43. package/dist/cli/push.d.ts.map +1 -0
  44. package/dist/cli/push.js +49 -0
  45. package/dist/cli/push.js.map +1 -0
  46. package/dist/cli/root-commands.d.ts +13 -0
  47. package/dist/cli/root-commands.d.ts.map +1 -0
  48. package/dist/cli/root-commands.js +25 -0
  49. package/dist/cli/root-commands.js.map +1 -0
  50. package/dist/cli/status.d.ts +4 -0
  51. package/dist/cli/status.d.ts.map +1 -0
  52. package/dist/cli/status.js +132 -0
  53. package/dist/cli/status.js.map +1 -0
  54. package/dist/cli/track.d.ts +4 -0
  55. package/dist/cli/track.d.ts.map +1 -0
  56. package/dist/cli/track.js +133 -0
  57. package/dist/cli/track.js.map +1 -0
  58. package/dist/cli/untrack.d.ts +4 -0
  59. package/dist/cli/untrack.d.ts.map +1 -0
  60. package/dist/cli/untrack.js +40 -0
  61. package/dist/cli/untrack.js.map +1 -0
  62. package/dist/config/constants.d.ts +31 -0
  63. package/dist/config/constants.d.ts.map +1 -0
  64. package/dist/config/constants.js +33 -0
  65. package/dist/config/constants.js.map +1 -0
  66. package/dist/config/global-config.d.ts +21 -0
  67. package/dist/config/global-config.d.ts.map +1 -0
  68. package/dist/config/global-config.js +89 -0
  69. package/dist/config/global-config.js.map +1 -0
  70. package/dist/config/identity-file.d.ts +9 -0
  71. package/dist/config/identity-file.d.ts.map +1 -0
  72. package/dist/config/identity-file.js +48 -0
  73. package/dist/config/identity-file.js.map +1 -0
  74. package/dist/config/migration.d.ts +9 -0
  75. package/dist/config/migration.d.ts.map +1 -0
  76. package/dist/config/migration.js +61 -0
  77. package/dist/config/migration.js.map +1 -0
  78. package/dist/config/platform.d.ts +12 -0
  79. package/dist/config/platform.d.ts.map +1 -0
  80. package/dist/config/platform.js +25 -0
  81. package/dist/config/platform.js.map +1 -0
  82. package/dist/config/runtime-env.d.ts +7 -0
  83. package/dist/config/runtime-env.d.ts.map +1 -0
  84. package/dist/config/runtime-env.js +31 -0
  85. package/dist/config/runtime-env.js.map +1 -0
  86. package/dist/config/sync-entry.d.ts +14 -0
  87. package/dist/config/sync-entry.d.ts.map +1 -0
  88. package/dist/config/sync-entry.js +99 -0
  89. package/dist/config/sync-entry.js.map +1 -0
  90. package/dist/config/sync-schema.d.ts +146 -0
  91. package/dist/config/sync-schema.d.ts.map +1 -0
  92. package/dist/config/sync-schema.js +392 -0
  93. package/dist/config/sync-schema.js.map +1 -0
  94. package/dist/config/sync.d.ts +8 -0
  95. package/dist/config/sync.d.ts.map +1 -0
  96. package/dist/config/sync.js +53 -0
  97. package/dist/config/sync.js.map +1 -0
  98. package/dist/config/xdg.d.ts +10 -0
  99. package/dist/config/xdg.d.ts.map +1 -0
  100. package/dist/config/xdg.js +90 -0
  101. package/dist/config/xdg.js.map +1 -0
  102. package/dist/index.d.ts +3 -0
  103. package/dist/index.d.ts.map +1 -0
  104. package/dist/index.js +4 -0
  105. package/dist/index.js.map +1 -0
  106. package/dist/lib/content.d.ts +5 -0
  107. package/dist/lib/content.d.ts.map +1 -0
  108. package/dist/lib/content.js +29 -0
  109. package/dist/lib/content.js.map +1 -0
  110. package/dist/lib/crypto.d.ts +45 -0
  111. package/dist/lib/crypto.d.ts.map +1 -0
  112. package/dist/lib/crypto.js +130 -0
  113. package/dist/lib/crypto.js.map +1 -0
  114. package/dist/lib/env.d.ts +13 -0
  115. package/dist/lib/env.d.ts.map +1 -0
  116. package/dist/lib/env.js +50 -0
  117. package/dist/lib/env.js.map +1 -0
  118. package/dist/lib/error.d.ts +22 -0
  119. package/dist/lib/error.d.ts.map +1 -0
  120. package/dist/lib/error.js +50 -0
  121. package/dist/lib/error.js.map +1 -0
  122. package/dist/lib/file-mode.d.ts +36 -0
  123. package/dist/lib/file-mode.d.ts.map +1 -0
  124. package/dist/lib/file-mode.js +55 -0
  125. package/dist/lib/file-mode.js.map +1 -0
  126. package/dist/lib/filesystem.d.ts +60 -0
  127. package/dist/lib/filesystem.d.ts.map +1 -0
  128. package/dist/lib/filesystem.js +190 -0
  129. package/dist/lib/filesystem.js.map +1 -0
  130. package/dist/lib/git.d.ts +23 -0
  131. package/dist/lib/git.d.ts.map +1 -0
  132. package/dist/lib/git.js +162 -0
  133. package/dist/lib/git.js.map +1 -0
  134. package/dist/lib/jsonc.d.ts +8 -0
  135. package/dist/lib/jsonc.d.ts.map +1 -0
  136. package/dist/lib/jsonc.js +78 -0
  137. package/dist/lib/jsonc.js.map +1 -0
  138. package/dist/lib/path.d.ts +21 -0
  139. package/dist/lib/path.d.ts.map +1 -0
  140. package/dist/lib/path.js +44 -0
  141. package/dist/lib/path.js.map +1 -0
  142. package/dist/lib/promise.d.ts +10 -0
  143. package/dist/lib/promise.d.ts.map +1 -0
  144. package/dist/lib/promise.js +25 -0
  145. package/dist/lib/promise.js.map +1 -0
  146. package/dist/lib/string.d.ts +6 -0
  147. package/dist/lib/string.d.ts.map +1 -0
  148. package/dist/lib/string.js +8 -0
  149. package/dist/lib/string.js.map +1 -0
  150. package/dist/lib/validation.d.ts +7 -0
  151. package/dist/lib/validation.d.ts.map +1 -0
  152. package/dist/lib/validation.js +13 -0
  153. package/dist/lib/validation.js.map +1 -0
  154. package/dist/lib/version.d.ts +2 -0
  155. package/dist/lib/version.d.ts.map +1 -0
  156. package/dist/lib/version.js +4 -0
  157. package/dist/lib/version.js.map +1 -0
  158. package/dist/migrations/global-v3.d.ts +3 -0
  159. package/dist/migrations/global-v3.d.ts.map +1 -0
  160. package/dist/migrations/global-v3.js +5 -0
  161. package/dist/migrations/global-v3.js.map +1 -0
  162. package/dist/services/autocomplete.d.ts +5 -0
  163. package/dist/services/autocomplete.d.ts.map +1 -0
  164. package/dist/services/autocomplete.js +185 -0
  165. package/dist/services/autocomplete.js.map +1 -0
  166. package/dist/services/config-file.d.ts +73 -0
  167. package/dist/services/config-file.d.ts.map +1 -0
  168. package/dist/services/config-file.js +40 -0
  169. package/dist/services/config-file.js.map +1 -0
  170. package/dist/services/doctor.d.ts +16 -0
  171. package/dist/services/doctor.d.ts.map +1 -0
  172. package/dist/services/doctor.js +126 -0
  173. package/dist/services/doctor.js.map +1 -0
  174. package/dist/services/init.d.ts +24 -0
  175. package/dist/services/init.d.ts.map +1 -0
  176. package/dist/services/init.js +265 -0
  177. package/dist/services/init.js.map +1 -0
  178. package/dist/services/local-materialization.d.ts +30 -0
  179. package/dist/services/local-materialization.d.ts.map +1 -0
  180. package/dist/services/local-materialization.js +451 -0
  181. package/dist/services/local-materialization.js.map +1 -0
  182. package/dist/services/local-snapshot.d.ts +26 -0
  183. package/dist/services/local-snapshot.d.ts.map +1 -0
  184. package/dist/services/local-snapshot.js +119 -0
  185. package/dist/services/local-snapshot.js.map +1 -0
  186. package/dist/services/paths.d.ts +8 -0
  187. package/dist/services/paths.d.ts.map +1 -0
  188. package/dist/services/paths.js +71 -0
  189. package/dist/services/paths.js.map +1 -0
  190. package/dist/services/profile.d.ts +39 -0
  191. package/dist/services/profile.d.ts.map +1 -0
  192. package/dist/services/profile.js +124 -0
  193. package/dist/services/profile.js.map +1 -0
  194. package/dist/services/pull.d.ts +38 -0
  195. package/dist/services/pull.d.ts.map +1 -0
  196. package/dist/services/pull.js +148 -0
  197. package/dist/services/pull.js.map +1 -0
  198. package/dist/services/push.d.ts +38 -0
  199. package/dist/services/push.d.ts.map +1 -0
  200. package/dist/services/push.js +120 -0
  201. package/dist/services/push.js.map +1 -0
  202. package/dist/services/repo-artifacts.d.ts +52 -0
  203. package/dist/services/repo-artifacts.d.ts.map +1 -0
  204. package/dist/services/repo-artifacts.js +325 -0
  205. package/dist/services/repo-artifacts.js.map +1 -0
  206. package/dist/services/repo-snapshot.d.ts +7 -0
  207. package/dist/services/repo-snapshot.d.ts.map +1 -0
  208. package/dist/services/repo-snapshot.js +181 -0
  209. package/dist/services/repo-snapshot.js.map +1 -0
  210. package/dist/services/runtime.d.ts +30 -0
  211. package/dist/services/runtime.d.ts.map +1 -0
  212. package/dist/services/runtime.js +71 -0
  213. package/dist/services/runtime.js.map +1 -0
  214. package/dist/services/set.d.ts +41 -0
  215. package/dist/services/set.d.ts.map +1 -0
  216. package/dist/services/set.js +288 -0
  217. package/dist/services/set.js.map +1 -0
  218. package/dist/services/status.d.ts +41 -0
  219. package/dist/services/status.d.ts.map +1 -0
  220. package/dist/services/status.js +87 -0
  221. package/dist/services/status.js.map +1 -0
  222. package/dist/services/terminal/cli-runtime.d.ts +18 -0
  223. package/dist/services/terminal/cli-runtime.d.ts.map +1 -0
  224. package/dist/services/terminal/cli-runtime.js +19 -0
  225. package/dist/services/terminal/cli-runtime.js.map +1 -0
  226. package/dist/services/terminal/logger.d.ts +9 -0
  227. package/dist/services/terminal/logger.d.ts.map +1 -0
  228. package/dist/services/terminal/logger.js +15 -0
  229. package/dist/services/terminal/logger.js.map +1 -0
  230. package/dist/services/terminal/path-completion.d.ts +3 -0
  231. package/dist/services/terminal/path-completion.d.ts.map +1 -0
  232. package/dist/services/terminal/path-completion.js +108 -0
  233. package/dist/services/terminal/path-completion.js.map +1 -0
  234. package/dist/services/terminal/shell.d.ts +24 -0
  235. package/dist/services/terminal/shell.d.ts.map +1 -0
  236. package/dist/services/terminal/shell.js +227 -0
  237. package/dist/services/terminal/shell.js.map +1 -0
  238. package/dist/services/track.d.ts +20 -0
  239. package/dist/services/track.d.ts.map +1 -0
  240. package/dist/services/track.js +224 -0
  241. package/dist/services/track.js.map +1 -0
  242. package/dist/services/untrack.d.ts +13 -0
  243. package/dist/services/untrack.d.ts.map +1 -0
  244. package/dist/services/untrack.js +133 -0
  245. package/dist/services/untrack.js.map +1 -0
  246. package/package.json +84 -0
package/bin/index.js ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+
3
+ // Keep the executable bit on a tracked wrapper because rebuilds of dist/index.js
4
+ // do not reliably preserve executable permissions for `npm link`.
5
+ import("../dist/index.js");
@@ -0,0 +1,5 @@
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
+ export declare const runCli: (inputs: readonly string[]) => Promise<void>;
5
+ //# sourceMappingURL=application.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,86 @@
1
+ import { buildApplication, run, text_en, } from "@stricli/core";
2
+ import { createConsola } from "consola";
3
+ import { buildRootRoute } from "#app/cli/index.ts";
4
+ import { CONSTANTS } from "#app/config/constants.ts";
5
+ import { formatDotweaveError } from "#app/lib/error.ts";
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,
15
+ stderr: process.stderr,
16
+ stdout: process.stderr,
17
+ });
18
+ const formatErrorForConsola = (error) => {
19
+ const message = formatDotweaveError(error instanceof Error ? error : new Error(String(error)));
20
+ errorLogger.error(message);
21
+ return "";
22
+ };
23
+ const dotweaveText = {
24
+ ...text_en,
25
+ commandErrorResult: (error) => {
26
+ return formatErrorForConsola(error);
27
+ },
28
+ exceptionWhileLoadingCommandContext: (error) => {
29
+ return formatErrorForConsola(error);
30
+ },
31
+ exceptionWhileLoadingCommandFunction: (error) => {
32
+ return formatErrorForConsola(error);
33
+ },
34
+ exceptionWhileRunningCommand: (error) => {
35
+ return formatErrorForConsola(error);
36
+ },
37
+ noCommandRegisteredForInput: ({ corrections, input }) => {
38
+ const suggestion = corrections.length === 0
39
+ ? ""
40
+ : ` Did you mean ${corrections.map((entry) => `"${entry}"`).join(", ")}?`;
41
+ errorLogger.error(`Command "${input}" not found.${suggestion}`);
42
+ return "";
43
+ },
44
+ };
45
+ const resolveExitCode = (error) => {
46
+ if (typeof error === "object" &&
47
+ error !== null &&
48
+ "exitCode" in error &&
49
+ typeof error.exitCode === "number") {
50
+ return error.exitCode ?? 1;
51
+ }
52
+ return 1;
53
+ };
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, {
63
+ completion: {
64
+ includeAliases: false,
65
+ },
66
+ determineExitCode: resolveExitCode,
67
+ documentation: {
68
+ caseStyle: "convert-camel-to-kebab",
69
+ },
70
+ localization: {
71
+ defaultLocale: "en",
72
+ loadText: () => dotweaveText,
73
+ },
74
+ name: CONSTANTS.APP.NAME,
75
+ scanner: {
76
+ caseStyle: "allow-kebab-for-camel",
77
+ },
78
+ versionInfo: {
79
+ currentVersion,
80
+ },
81
+ });
82
+ export const cliApplication = application;
83
+ export const runCli = async (inputs) => {
84
+ await run(cliApplication, inputs, createCliContext());
85
+ };
86
+ //# sourceMappingURL=application.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ 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>;
6
+ };
7
+ //# sourceMappingURL=autocomplete.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,62 @@
1
+ import { buildCommand, buildRouteMap, proposeCompletions, } from "@stricli/core";
2
+ import { BASH_AUTOCOMPLETE_SCRIPT, POWERSHELL_AUTOCOMPLETE_SCRIPT, resolveCompletionInputs, ZSH_AUTOCOMPLETE_SCRIPT, } from "#app/services/autocomplete.ts";
3
+ const buildAutocompleteScriptCommand = (shell, script) => {
4
+ return buildCommand({
5
+ docs: {
6
+ brief: `Print ${shell} autocomplete script`,
7
+ fullDescription: `Emit a ${shell} autocomplete script for use with \`eval "$(dotweave autocomplete ${shell})"\`.`,
8
+ },
9
+ func: () => {
10
+ process.stdout.write(script);
11
+ },
12
+ parameters: {},
13
+ });
14
+ };
15
+ const bashAutocompleteCommand = buildAutocompleteScriptCommand("bash", BASH_AUTOCOMPLETE_SCRIPT);
16
+ const zshAutocompleteCommand = buildAutocompleteScriptCommand("zsh", ZSH_AUTOCOMPLETE_SCRIPT);
17
+ 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
+ },
42
+ },
43
+ },
44
+ });
45
+ };
46
+ export const buildAutocompleteRoute = (getApplication) => {
47
+ return {
48
+ autocompleteRoute: buildRouteMap({
49
+ docs: {
50
+ brief: "Print shell autocomplete scripts",
51
+ fullDescription: "Emit shell-specific autocomplete scripts for use with eval-based shell setup.",
52
+ },
53
+ routes: {
54
+ bash: bashAutocompleteCommand,
55
+ powershell: powershellAutocompleteCommand,
56
+ zsh: zshAutocompleteCommand,
57
+ },
58
+ }),
59
+ completeCommand: buildCompleteCommand(getApplication),
60
+ };
61
+ };
62
+ //# sourceMappingURL=autocomplete.js.map
@@ -0,0 +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"}
@@ -0,0 +1,4 @@
1
+ import { type DotweaveCliContext } from "#app/services/terminal/cli-runtime.ts";
2
+ declare const cdCommand: import("@stricli/core").Command<DotweaveCliContext>;
3
+ export default cdCommand;
4
+ //# sourceMappingURL=cd.d.ts.map
@@ -0,0 +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"}
package/dist/cli/cd.js ADDED
@@ -0,0 +1,23 @@
1
+ import { mkdir } from "node:fs/promises";
2
+ import { buildCommand } from "@stricli/core";
3
+ import { resolveDotweaveSyncDirectoryFromEnv } from "#app/config/runtime-env.ts";
4
+ import { verboseFlag, } from "#app/services/terminal/cli-runtime.ts";
5
+ import { launchShellInDirectory } from "#app/services/terminal/shell.ts";
6
+ const cdCommand = buildCommand({
7
+ docs: {
8
+ brief: "Launch a shell in the sync directory",
9
+ fullDescription: "Launch a child shell rooted at the local sync directory. Like chezmoi cd, this opens a new shell session instead of changing the current directory of your existing shell.",
10
+ },
11
+ async func() {
12
+ const syncDirectory = resolveDotweaveSyncDirectoryFromEnv();
13
+ await mkdir(syncDirectory, { recursive: true });
14
+ await launchShellInDirectory(syncDirectory);
15
+ },
16
+ parameters: {
17
+ flags: {
18
+ verbose: verboseFlag,
19
+ },
20
+ },
21
+ });
22
+ export default cdCommand;
23
+ //# sourceMappingURL=cd.js.map
@@ -0,0 +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"}
@@ -0,0 +1,4 @@
1
+ import { type DotweaveCliContext } from "#app/services/terminal/cli-runtime.ts";
2
+ declare const doctorCommand: import("@stricli/core").Command<DotweaveCliContext>;
3
+ export default doctorCommand;
4
+ //# sourceMappingURL=doctor.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,92 @@
1
+ import { buildCommand } from "@stricli/core";
2
+ import pc from "picocolors";
3
+ import { runDoctorChecks } from "#app/services/doctor.ts";
4
+ import { verboseFlag, } from "#app/services/terminal/cli-runtime.ts";
5
+ import { createCliLogger } from "#app/services/terminal/logger.ts";
6
+ const normalizeCheckId = (checkId) => {
7
+ switch (checkId) {
8
+ case "age":
9
+ return "identity";
10
+ case "local-paths":
11
+ return "local";
12
+ default:
13
+ return checkId;
14
+ }
15
+ };
16
+ const stripTrailingPeriod = (value) => {
17
+ return value.endsWith(".") ? value.slice(0, -1) : value;
18
+ };
19
+ const formatCheckIcon = (level) => {
20
+ switch (level) {
21
+ case "ok":
22
+ return pc.green("✔");
23
+ case "warn":
24
+ return pc.yellow("⚠");
25
+ case "fail":
26
+ return pc.red("✖");
27
+ }
28
+ };
29
+ const doctorCommand = buildCommand({
30
+ docs: {
31
+ brief: "Check sync directory, config, age identity, and tracked local paths",
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
+ },
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);
39
+ let okCount = 0;
40
+ let warningCount = 0;
41
+ let failureCount = 0;
42
+ for (const check of result.checks) {
43
+ if (check.level === "ok") {
44
+ okCount += 1;
45
+ }
46
+ else if (check.level === "warn") {
47
+ warningCount += 1;
48
+ }
49
+ else {
50
+ failureCount += 1;
51
+ }
52
+ }
53
+ const summary = pc.dim(`(${okCount} ok · ${warningCount} warnings · ${failureCount} failures)`);
54
+ if (result.hasFailures) {
55
+ logger.fail(`Doctor found issues ${summary}`);
56
+ }
57
+ else if (result.hasWarnings) {
58
+ logger.warn(`Doctor completed with warnings ${summary}`);
59
+ }
60
+ else {
61
+ logger.success(`Doctor passed ${summary}`);
62
+ }
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) {
70
+ for (const check of nonOkChecks.slice(0, 3)) {
71
+ logger.log(` ${formatCheckIcon(check.level)} ${normalizeCheckId(check.checkId)} – ${stripTrailingPeriod(check.detail)}`);
72
+ }
73
+ if (nonOkChecks.length > 3) {
74
+ logger.log(pc.dim(` ... ${nonOkChecks.length - 3} more issues`));
75
+ }
76
+ }
77
+ if (verbose) {
78
+ logger.log(pc.dim(` sync dir ${result.syncDirectory}`));
79
+ logger.log(pc.dim(` config ${result.configPath}`));
80
+ }
81
+ if (result.hasFailures) {
82
+ process.exitCode = 1;
83
+ }
84
+ },
85
+ parameters: {
86
+ flags: {
87
+ verbose: verboseFlag,
88
+ },
89
+ },
90
+ });
91
+ export default doctorCommand;
92
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
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>;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,22 @@
1
+ import { buildRouteMap } from "@stricli/core";
2
+ import { buildAutocompleteRoute } from "#app/cli/autocomplete.ts";
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);
7
+ return buildRouteMap({
8
+ docs: {
9
+ brief: "A personal CLI tool for git-backed configuration sync.",
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
+ hideRoute: {
12
+ [CONSTANTS.AUTOCOMPLETE.COMPLETE_SUBCOMMAND]: true,
13
+ },
14
+ },
15
+ routes: {
16
+ [CONSTANTS.AUTOCOMPLETE.COMPLETE_SUBCOMMAND]: completeCommand,
17
+ autocomplete: autocompleteRoute,
18
+ ...rootCommandRoutes,
19
+ },
20
+ });
21
+ };
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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"}
@@ -0,0 +1,4 @@
1
+ import { type DotweaveCliContext } from "#app/services/terminal/cli-runtime.ts";
2
+ declare const initCommand: import("@stricli/core").Command<DotweaveCliContext>;
3
+ export default initCommand;
4
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +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,qDAwGf,CAAC;AAEH,eAAe,WAAW,CAAC"}
@@ -0,0 +1,110 @@
1
+ import { buildCommand } from "@stricli/core";
2
+ import consola from "consola";
3
+ import pc from "picocolors";
4
+ import { resolveDefaultIdentityFile } from "#app/config/identity-file.ts";
5
+ import { readEnvValue } from "#app/config/runtime-env.ts";
6
+ import { pathExists } from "#app/lib/filesystem.ts";
7
+ import { createMissingRepositoryAgeKeyError, initializeSyncDirectory, } from "#app/services/init.ts";
8
+ import { verboseFlag, } from "#app/services/terminal/cli-runtime.ts";
9
+ import { createCliLogger } from "#app/services/terminal/logger.ts";
10
+ const formatGitSummary = (result) => {
11
+ switch (result.gitAction) {
12
+ case "cloned":
13
+ return `cloned from ${result.gitSource}`;
14
+ case "initialized":
15
+ return "initialized new repository";
16
+ default:
17
+ return "using existing repository";
18
+ }
19
+ };
20
+ const formatAgeSummary = (result) => {
21
+ return result.generatedIdentity
22
+ ? "generated a new local identity"
23
+ : "using existing identity";
24
+ };
25
+ const initCommand = buildCommand({
26
+ docs: {
27
+ brief: "Initialize the git-backed sync directory",
28
+ 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
+ },
30
+ async func(flags, repository) {
31
+ const verbose = flags.verbose ?? false;
32
+ const logger = createCliLogger({ verbose });
33
+ const reporter = verbose ? logger : undefined;
34
+ const requestedKey = flags.key?.trim();
35
+ const identityFile = resolveDefaultIdentityFile(readEnvValue("HOME"), readEnvValue("XDG_CONFIG_HOME"));
36
+ const identityFileExists = await pathExists(identityFile);
37
+ const importingRepository = repository !== undefined && repository.trim() !== "";
38
+ const shouldPrompt = requestedKey === undefined &&
39
+ !identityFileExists &&
40
+ ((flags.promptKey ?? false) || importingRepository);
41
+ const promptedKey = shouldPrompt
42
+ ? await consola.prompt(importingRepository
43
+ ? "Enter the age private key for the existing repository: "
44
+ : "Enter an age private key (leave empty to generate a new one): ", { type: "text", cancel: "reject" })
45
+ : undefined;
46
+ const trimmedPromptedKey = promptedKey?.trim();
47
+ if (importingRepository &&
48
+ requestedKey === undefined &&
49
+ trimmedPromptedKey === "") {
50
+ throw createMissingRepositoryAgeKeyError();
51
+ }
52
+ const result = await initializeSyncDirectory({
53
+ ageIdentity: requestedKey !== undefined
54
+ ? requestedKey
55
+ : trimmedPromptedKey !== undefined && trimmedPromptedKey !== ""
56
+ ? trimmedPromptedKey
57
+ : undefined,
58
+ generateAgeIdentity: !importingRepository &&
59
+ requestedKey === undefined &&
60
+ (trimmedPromptedKey === "" ||
61
+ (trimmedPromptedKey === undefined && !identityFileExists)),
62
+ recipients: [],
63
+ repository,
64
+ }, reporter);
65
+ if (result.alreadyInitialized) {
66
+ logger.info("Sync directory already initialized");
67
+ }
68
+ else {
69
+ logger.success("Sync directory initialized");
70
+ }
71
+ logger.log(` git: ${formatGitSummary(result)}`);
72
+ logger.log(` age: ${formatAgeSummary(result)}`);
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
+ },
80
+ parameters: {
81
+ flags: {
82
+ key: {
83
+ brief: "Persist an age private key into the identity file",
84
+ kind: "parsed",
85
+ optional: true,
86
+ parse: String,
87
+ placeholder: "age-private-key",
88
+ },
89
+ promptKey: {
90
+ brief: "Prompt to enter an age private key instead of generating one automatically",
91
+ kind: "boolean",
92
+ optional: true,
93
+ },
94
+ verbose: verboseFlag,
95
+ },
96
+ positional: {
97
+ kind: "tuple",
98
+ parameters: [
99
+ {
100
+ brief: "Remote URL or local git repository path to clone",
101
+ optional: true,
102
+ parse: String,
103
+ placeholder: "repository",
104
+ },
105
+ ],
106
+ },
107
+ },
108
+ });
109
+ export default initCommand;
110
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ declare const profileRoute: import("@stricli/core").RouteMap<import("../../services/terminal/cli-runtime.ts").DotweaveCliContext>;
2
+ export default profileRoute;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,15 @@
1
+ import { buildRouteMap } from "@stricli/core";
2
+ import profileListCommand from "#app/cli/profile/list.ts";
3
+ import profileUseCommand from "#app/cli/profile/use.ts";
4
+ const profileRoute = buildRouteMap({
5
+ docs: {
6
+ brief: "Manage active and assigned sync profiles",
7
+ fullDescription: "Inspect configured profiles or update which profile dotweave should use by default.",
8
+ },
9
+ routes: {
10
+ list: profileListCommand,
11
+ use: profileUseCommand,
12
+ },
13
+ });
14
+ export default profileRoute;
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/profile/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,kBAAkB,MAAM,0BAA0B,CAAC;AAC1D,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AAExD,MAAM,YAAY,GAAG,aAAa,CAAC;IACjC,IAAI,EAAE;QACJ,KAAK,EAAE,0CAA0C;QACjD,eAAe,EACb,qFAAqF;KACxF;IACD,MAAM,EAAE;QACN,IAAI,EAAE,kBAAkB;QACxB,GAAG,EAAE,iBAAiB;KACvB;CACF,CAAC,CAAC;AAEH,eAAe,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type DotweaveCliContext } from "#app/services/terminal/cli-runtime.ts";
2
+ declare const profileListCommand: import("@stricli/core").Command<DotweaveCliContext>;
3
+ export default profileListCommand;
4
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,42 @@
1
+ import { buildCommand } from "@stricli/core";
2
+ import pc from "picocolors";
3
+ import { listProfiles } from "#app/services/profile.ts";
4
+ import { verboseFlag, } from "#app/services/terminal/cli-runtime.ts";
5
+ import { createCliLogger } from "#app/services/terminal/logger.ts";
6
+ const profileListCommand = buildCommand({
7
+ docs: {
8
+ brief: "Show configured and active sync profiles",
9
+ fullDescription: "List the profile names referenced by the current sync configuration and show which profile is active through ~/.config/dotweave/settings.jsonc.",
10
+ },
11
+ async func(flags) {
12
+ const verbose = flags.verbose ?? false;
13
+ const logger = createCliLogger({ verbose });
14
+ const result = await listProfiles();
15
+ logger.info("Profiles");
16
+ logger.log(` active: ${result.activeProfile ?? "none"} · available: ${result.availableProfiles.length === 0 ? "none" : result.availableProfiles.join(", ")}`);
17
+ logger.log(` ${result.assignments.length} restricted entries`);
18
+ if (result.activeProfile === undefined && result.assignments.length > 0) {
19
+ logger.warn(" restricted entries are skipped until a profile is active");
20
+ }
21
+ if (verbose) {
22
+ logger.log(" assignments:");
23
+ if (result.assignments.length === 0) {
24
+ logger.log(pc.dim(" none"));
25
+ }
26
+ else {
27
+ for (const assignment of result.assignments) {
28
+ logger.log(pc.dim(` ${assignment.entryRepoPath} → [${assignment.profiles.join(", ")}]`));
29
+ }
30
+ }
31
+ logger.log(pc.dim(` sync dir ${result.syncDirectory}`));
32
+ logger.log(pc.dim(` config ${result.globalConfigPath}`));
33
+ }
34
+ },
35
+ parameters: {
36
+ flags: {
37
+ verbose: verboseFlag,
38
+ },
39
+ },
40
+ });
41
+ export default profileListCommand;
42
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/cli/profile/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAEL,WAAW,GACZ,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAMnE,MAAM,kBAAkB,GAAG,YAAY,CAIrC;IACA,IAAI,EAAE;QACJ,KAAK,EAAE,0CAA0C;QACjD,eAAe,EACb,iJAAiJ;KACpJ;IACD,KAAK,CAAC,IAAI,CAAC,KAAK;QACd,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC;QACvC,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAE5C,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;QAEpC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxB,MAAM,CAAC,GAAG,CACR,aAAa,MAAM,CAAC,aAAa,IAAI,MAAM,iBAAiB,MAAM,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACnJ,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,WAAW,CAAC,MAAM,qBAAqB,CAAC,CAAC;QAEhE,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxE,MAAM,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC7B,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;oBAC5C,MAAM,CAAC,GAAG,CACR,EAAE,CAAC,GAAG,CACJ,OAAO,UAAU,CAAC,aAAa,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACxE,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;YAC1D,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IACD,UAAU,EAAE;QACV,KAAK,EAAE;YACL,OAAO,EAAE,WAAW;SACrB;KACF;CACF,CAAC,CAAC;AAEH,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type DotweaveCliContext } from "#app/services/terminal/cli-runtime.ts";
2
+ declare const profileUseCommand: import("@stricli/core").Command<DotweaveCliContext>;
3
+ export default profileUseCommand;
4
+ //# sourceMappingURL=use.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../../src/cli/profile/use.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,uCAAuC,CAAC;AAO/C,QAAA,MAAM,iBAAiB,qDAkDrB,CAAC;AAEH,eAAe,iBAAiB,CAAC"}