@tinyrack/dotweave 0.42.13 → 0.42.21
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.
- package/README.md +6 -2
- package/dist/application.d.ts +0 -3
- package/dist/application.d.ts.map +1 -1
- package/dist/application.js +23 -22
- package/dist/application.js.map +1 -1
- package/dist/cli/autocomplete.d.ts +5 -4
- package/dist/cli/autocomplete.d.ts.map +1 -1
- package/dist/cli/autocomplete.js +33 -28
- package/dist/cli/autocomplete.js.map +1 -1
- package/dist/cli/cd.d.ts +2 -2
- package/dist/cli/cd.d.ts.map +1 -1
- package/dist/cli/cd.js +1 -4
- package/dist/cli/cd.js.map +1 -1
- package/dist/cli/doctor.d.ts +2 -2
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +19 -28
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/index.d.ts +1 -3
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +5 -5
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts +2 -2
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +9 -15
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/profile/add.d.ts +4 -0
- package/dist/cli/profile/add.d.ts.map +1 -0
- package/dist/cli/profile/add.js +29 -0
- package/dist/cli/profile/add.js.map +1 -0
- package/dist/cli/profile/index.d.ts +1 -1
- package/dist/cli/profile/index.d.ts.map +1 -1
- package/dist/cli/profile/index.js +5 -1
- package/dist/cli/profile/index.js.map +1 -1
- package/dist/cli/profile/list.d.ts +2 -2
- package/dist/cli/profile/list.d.ts.map +1 -1
- package/dist/cli/profile/list.js +8 -26
- package/dist/cli/profile/list.js.map +1 -1
- package/dist/cli/profile/remove.d.ts +4 -0
- package/dist/cli/profile/remove.d.ts.map +1 -0
- package/dist/cli/profile/remove.js +29 -0
- package/dist/cli/profile/remove.js.map +1 -0
- package/dist/cli/profile/use.d.ts +2 -2
- package/dist/cli/profile/use.d.ts.map +1 -1
- package/dist/cli/profile/use.js +5 -14
- package/dist/cli/profile/use.js.map +1 -1
- package/dist/cli/pull.d.ts +2 -2
- package/dist/cli/pull.d.ts.map +1 -1
- package/dist/cli/pull.js +22 -41
- package/dist/cli/pull.js.map +1 -1
- package/dist/cli/push.d.ts +2 -2
- package/dist/cli/push.d.ts.map +1 -1
- package/dist/cli/push.js +17 -23
- package/dist/cli/push.js.map +1 -1
- package/dist/cli/root-commands.d.ts +9 -10
- package/dist/cli/root-commands.d.ts.map +1 -1
- package/dist/cli/root-commands.js +0 -4
- package/dist/cli/root-commands.js.map +1 -1
- package/dist/cli/shared-flags.d.ts +9 -0
- package/dist/cli/shared-flags.d.ts.map +1 -0
- package/dist/cli/shared-flags.js +8 -0
- package/dist/cli/shared-flags.js.map +1 -0
- package/dist/cli/status.d.ts +2 -2
- package/dist/cli/status.d.ts.map +1 -1
- package/dist/cli/status.js +26 -55
- package/dist/cli/status.js.map +1 -1
- package/dist/cli/track.d.ts +2 -2
- package/dist/cli/track.d.ts.map +1 -1
- package/dist/cli/track.js +19 -35
- package/dist/cli/track.js.map +1 -1
- package/dist/cli/untrack.d.ts +2 -2
- package/dist/cli/untrack.d.ts.map +1 -1
- package/dist/cli/untrack.js +5 -14
- package/dist/cli/untrack.js.map +1 -1
- package/dist/config/constants.d.ts +2 -2
- package/dist/config/constants.d.ts.map +1 -1
- package/dist/config/constants.js +2 -2
- package/dist/config/constants.js.map +1 -1
- package/dist/config/global-config.d.ts +3 -3
- package/dist/config/global-config.d.ts.map +1 -1
- package/dist/config/global-config.js +7 -8
- package/dist/config/global-config.js.map +1 -1
- package/dist/config/identity-file.d.ts +0 -7
- package/dist/config/identity-file.d.ts.map +1 -1
- package/dist/config/identity-file.js +2 -44
- package/dist/config/identity-file.js.map +1 -1
- package/dist/config/migration.d.ts +6 -0
- package/dist/config/migration.d.ts.map +1 -1
- package/dist/config/migration.js +35 -13
- package/dist/config/migration.js.map +1 -1
- package/dist/config/runtime-env.d.ts.map +1 -1
- package/dist/config/runtime-env.js +2 -7
- package/dist/config/runtime-env.js.map +1 -1
- package/dist/config/{sync-entry.d.ts → sync-queries.d.ts} +5 -3
- package/dist/config/sync-queries.d.ts.map +1 -0
- package/dist/config/{sync-entry.js → sync-queries.js} +15 -6
- package/dist/config/sync-queries.js.map +1 -0
- package/dist/config/sync-schema.d.ts +13 -8
- package/dist/config/sync-schema.d.ts.map +1 -1
- package/dist/config/sync-schema.js +138 -18
- package/dist/config/sync-schema.js.map +1 -1
- package/dist/config/xdg.d.ts.map +1 -1
- package/dist/config/xdg.js +15 -34
- package/dist/config/xdg.js.map +1 -1
- package/dist/lib/error.js +1 -1
- package/dist/lib/error.js.map +1 -1
- package/dist/lib/git.d.ts +3 -4
- package/dist/lib/git.d.ts.map +1 -1
- package/dist/lib/git.js +7 -48
- package/dist/lib/git.js.map +1 -1
- package/dist/lib/jsonc.d.ts +1 -1
- package/dist/lib/jsonc.d.ts.map +1 -1
- package/dist/lib/jsonc.js +1 -1
- package/dist/lib/jsonc.js.map +1 -1
- package/dist/lib/path.d.ts +3 -16
- package/dist/lib/path.d.ts.map +1 -1
- package/dist/lib/path.js +36 -19
- package/dist/lib/path.js.map +1 -1
- package/dist/lib/string.d.ts +1 -4
- package/dist/lib/string.d.ts.map +1 -1
- package/dist/lib/string.js +6 -4
- package/dist/lib/string.js.map +1 -1
- package/dist/lib/version.d.ts.map +1 -1
- package/dist/lib/version.js +2 -2
- package/dist/lib/version.js.map +1 -1
- package/dist/migrations/sync-v8.d.ts +3 -0
- package/dist/migrations/sync-v8.d.ts.map +1 -0
- package/dist/migrations/sync-v8.js +66 -0
- package/dist/migrations/sync-v8.js.map +1 -0
- package/dist/services/autocomplete.js +13 -13
- package/dist/services/autocomplete.js.map +1 -1
- package/dist/services/config-file.d.ts +6 -5
- package/dist/services/config-file.d.ts.map +1 -1
- package/dist/services/config-file.js +9 -8
- package/dist/services/config-file.js.map +1 -1
- package/dist/services/doctor.d.ts +1 -4
- package/dist/services/doctor.d.ts.map +1 -1
- package/dist/services/doctor.js +10 -37
- package/dist/services/doctor.js.map +1 -1
- package/dist/services/init.d.ts +1 -5
- package/dist/services/init.d.ts.map +1 -1
- package/dist/services/init.js +25 -59
- package/dist/services/init.js.map +1 -1
- package/dist/services/local-snapshot.d.ts +2 -7
- package/dist/services/local-snapshot.d.ts.map +1 -1
- package/dist/services/local-snapshot.js +12 -35
- package/dist/services/local-snapshot.js.map +1 -1
- package/dist/services/profile.d.ts +8 -4
- package/dist/services/profile.d.ts.map +1 -1
- package/dist/services/profile.js +110 -34
- package/dist/services/profile.js.map +1 -1
- package/dist/services/pull-apply.d.ts +30 -0
- package/dist/services/pull-apply.d.ts.map +1 -0
- package/dist/services/{local-materialization.js → pull-apply.js} +150 -210
- package/dist/services/pull-apply.js.map +1 -0
- package/dist/services/pull.d.ts +7 -10
- package/dist/services/pull.d.ts.map +1 -1
- package/dist/services/pull.js +19 -30
- package/dist/services/pull.js.map +1 -1
- package/dist/services/push.d.ts +4 -7
- package/dist/services/push.d.ts.map +1 -1
- package/dist/services/push.js +15 -38
- package/dist/services/push.js.map +1 -1
- package/dist/services/repo-artifacts.d.ts +5 -6
- package/dist/services/repo-artifacts.d.ts.map +1 -1
- package/dist/services/repo-artifacts.js +21 -60
- package/dist/services/repo-artifacts.js.map +1 -1
- package/dist/services/repo-snapshot.d.ts +2 -3
- package/dist/services/repo-snapshot.d.ts.map +1 -1
- package/dist/services/repo-snapshot.js +14 -26
- package/dist/services/repo-snapshot.js.map +1 -1
- package/dist/services/status.d.ts +1 -5
- package/dist/services/status.d.ts.map +1 -1
- package/dist/services/status.js +7 -17
- package/dist/services/status.js.map +1 -1
- package/dist/services/{runtime.d.ts → sync-context.d.ts} +9 -3
- package/dist/services/sync-context.d.ts.map +1 -0
- package/dist/services/{runtime.js → sync-context.js} +24 -8
- package/dist/services/sync-context.js.map +1 -0
- package/dist/services/{set.d.ts → sync-mode.d.ts} +7 -9
- package/dist/services/sync-mode.d.ts.map +1 -0
- package/dist/services/{set.js → sync-mode.js} +9 -23
- package/dist/services/sync-mode.js.map +1 -0
- package/dist/services/{paths.d.ts → sync-paths.d.ts} +2 -2
- package/dist/services/sync-paths.d.ts.map +1 -0
- package/dist/services/{paths.js → sync-paths.js} +4 -6
- package/dist/services/sync-paths.js.map +1 -0
- package/dist/services/terminal/logger.d.ts +30 -5
- package/dist/services/terminal/logger.d.ts.map +1 -1
- package/dist/services/terminal/logger.js +61 -14
- package/dist/services/terminal/logger.js.map +1 -1
- package/dist/services/terminal/path-completion.d.ts +2 -2
- package/dist/services/terminal/path-completion.d.ts.map +1 -1
- package/dist/services/terminal/path-completion.js +16 -13
- package/dist/services/terminal/path-completion.js.map +1 -1
- package/dist/services/terminal/shell.d.ts +1 -12
- package/dist/services/terminal/shell.d.ts.map +1 -1
- package/dist/services/terminal/shell.js +7 -160
- package/dist/services/terminal/shell.js.map +1 -1
- package/dist/services/terminal/spinner.d.ts +10 -0
- package/dist/services/terminal/spinner.d.ts.map +1 -0
- package/dist/services/terminal/spinner.js +61 -0
- package/dist/services/terminal/spinner.js.map +1 -0
- package/dist/services/terminal/theme.d.ts +31 -0
- package/dist/services/terminal/theme.d.ts.map +1 -0
- package/dist/services/terminal/theme.js +32 -0
- package/dist/services/terminal/theme.js.map +1 -0
- package/dist/services/track.d.ts +1 -3
- package/dist/services/track.d.ts.map +1 -1
- package/dist/services/track.js +27 -23
- package/dist/services/track.js.map +1 -1
- package/dist/services/untrack.d.ts +0 -2
- package/dist/services/untrack.d.ts.map +1 -1
- package/dist/services/untrack.js +4 -11
- package/dist/services/untrack.js.map +1 -1
- package/package.json +1 -2
- package/dist/config/sync-entry.d.ts.map +0 -1
- package/dist/config/sync-entry.js.map +0 -1
- package/dist/config/sync.d.ts +0 -8
- package/dist/config/sync.d.ts.map +0 -1
- package/dist/config/sync.js +0 -53
- package/dist/config/sync.js.map +0 -1
- package/dist/services/local-materialization.d.ts +0 -30
- package/dist/services/local-materialization.d.ts.map +0 -1
- package/dist/services/local-materialization.js.map +0 -1
- package/dist/services/paths.d.ts.map +0 -1
- package/dist/services/paths.js.map +0 -1
- package/dist/services/runtime.d.ts.map +0 -1
- package/dist/services/runtime.js.map +0 -1
- package/dist/services/set.d.ts.map +0 -1
- package/dist/services/set.js.map +0 -1
- package/dist/services/terminal/cli-runtime.d.ts +0 -18
- package/dist/services/terminal/cli-runtime.d.ts.map +0 -1
- package/dist/services/terminal/cli-runtime.js +0 -19
- package/dist/services/terminal/cli-runtime.js.map +0 -1
package/dist/cli/status.js
CHANGED
|
@@ -1,77 +1,77 @@
|
|
|
1
1
|
import { buildCommand } from "@stricli/core";
|
|
2
|
-
import pc from "picocolors";
|
|
3
2
|
import { getStatus, } from "#app/services/status.ts";
|
|
4
|
-
import { verboseFlag, } from "#app/services/terminal/cli-runtime.ts";
|
|
5
3
|
import { createCliLogger } from "#app/services/terminal/logger.ts";
|
|
4
|
+
import { color, SYMBOLS } from "#app/services/terminal/theme.ts";
|
|
5
|
+
import { profileFlag } from "./shared-flags.js";
|
|
6
6
|
const MAX_DISPLAY_ITEMS = 10;
|
|
7
7
|
const logPushChanges = (logger, changes) => {
|
|
8
8
|
const hasChanges = changes.added.length > 0 ||
|
|
9
9
|
changes.modified.length > 0 ||
|
|
10
10
|
changes.deleted.length > 0;
|
|
11
11
|
if (!hasChanges) {
|
|
12
|
-
logger.log(
|
|
12
|
+
logger.log(" No push changes");
|
|
13
13
|
return;
|
|
14
14
|
}
|
|
15
15
|
if (changes.added.length > 0) {
|
|
16
|
-
logger.
|
|
16
|
+
logger.section(`Add (${changes.added.length})`);
|
|
17
17
|
const displayItems = changes.added.slice(0, MAX_DISPLAY_ITEMS);
|
|
18
18
|
const remainingCount = changes.added.length - displayItems.length;
|
|
19
19
|
for (const path of displayItems) {
|
|
20
|
-
logger.log(
|
|
20
|
+
logger.log(` ${color.action.add(SYMBOLS.add)} ${color.path(path)}`);
|
|
21
21
|
}
|
|
22
22
|
if (remainingCount > 0) {
|
|
23
|
-
logger.log(
|
|
23
|
+
logger.log(color.dim(` ... and ${remainingCount} more`));
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
if (changes.modified.length > 0) {
|
|
27
|
-
logger.
|
|
27
|
+
logger.section(`Modify (${changes.modified.length})`);
|
|
28
28
|
const displayItems = changes.modified.slice(0, MAX_DISPLAY_ITEMS);
|
|
29
29
|
const remainingCount = changes.modified.length - displayItems.length;
|
|
30
30
|
for (const path of displayItems) {
|
|
31
|
-
logger.log(
|
|
31
|
+
logger.log(` ${color.action.modify(SYMBOLS.modify)} ${color.path(path)}`);
|
|
32
32
|
}
|
|
33
33
|
if (remainingCount > 0) {
|
|
34
|
-
logger.log(
|
|
34
|
+
logger.log(color.dim(` ... and ${remainingCount} more`));
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
if (changes.deleted.length > 0) {
|
|
38
|
-
logger.
|
|
38
|
+
logger.section(`Delete (${changes.deleted.length})`);
|
|
39
39
|
const displayItems = changes.deleted.slice(0, MAX_DISPLAY_ITEMS);
|
|
40
40
|
const remainingCount = changes.deleted.length - displayItems.length;
|
|
41
41
|
for (const path of displayItems) {
|
|
42
|
-
logger.log(
|
|
42
|
+
logger.log(` ${color.action.delete(SYMBOLS.delete)} ${color.path(path)}`);
|
|
43
43
|
}
|
|
44
44
|
if (remainingCount > 0) {
|
|
45
|
-
logger.log(
|
|
45
|
+
logger.log(color.dim(` ... and ${remainingCount} more`));
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
49
|
const logPullChanges = (logger, changes) => {
|
|
50
50
|
const hasChanges = changes.updated.length > 0 || changes.deleted.length > 0;
|
|
51
51
|
if (!hasChanges) {
|
|
52
|
-
logger.log(
|
|
52
|
+
logger.log(" No pull changes");
|
|
53
53
|
return;
|
|
54
54
|
}
|
|
55
55
|
if (changes.updated.length > 0) {
|
|
56
|
-
logger.
|
|
56
|
+
logger.section(`Changed (${changes.updated.length})`);
|
|
57
57
|
const displayItems = changes.updated.slice(0, MAX_DISPLAY_ITEMS);
|
|
58
58
|
const remainingCount = changes.updated.length - displayItems.length;
|
|
59
59
|
for (const path of displayItems) {
|
|
60
|
-
logger.log(
|
|
60
|
+
logger.log(` ${color.action.add(SYMBOLS.add)} ${color.path(path)}`);
|
|
61
61
|
}
|
|
62
62
|
if (remainingCount > 0) {
|
|
63
|
-
logger.log(
|
|
63
|
+
logger.log(color.dim(` ... and ${remainingCount} more`));
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
if (changes.deleted.length > 0) {
|
|
67
|
-
logger.
|
|
67
|
+
logger.section(`Remove (${changes.deleted.length})`);
|
|
68
68
|
const displayItems = changes.deleted.slice(0, MAX_DISPLAY_ITEMS);
|
|
69
69
|
const remainingCount = changes.deleted.length - displayItems.length;
|
|
70
70
|
for (const path of displayItems) {
|
|
71
|
-
logger.log(
|
|
71
|
+
logger.log(` ${color.action.delete(SYMBOLS.delete)} ${color.path(path)}`);
|
|
72
72
|
}
|
|
73
73
|
if (remainingCount > 0) {
|
|
74
|
-
logger.log(
|
|
74
|
+
logger.log(color.dim(` ... and ${remainingCount} more`));
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
};
|
|
@@ -81,50 +81,21 @@ const statusCommand = buildCommand({
|
|
|
81
81
|
fullDescription: "Compare the tracked local files with the sync directory and report what push would write to the repository and what pull would write back locally.",
|
|
82
82
|
},
|
|
83
83
|
async func(flags) {
|
|
84
|
-
const
|
|
85
|
-
const
|
|
86
|
-
const reporter = verbose ? logger : undefined;
|
|
84
|
+
const logger = createCliLogger();
|
|
85
|
+
const spin = logger.spinner("Checking sync status...");
|
|
87
86
|
const result = await getStatus({
|
|
88
87
|
profile: flags.profile,
|
|
89
|
-
reporter,
|
|
90
88
|
});
|
|
91
|
-
|
|
92
|
-
logger.
|
|
93
|
-
logger.
|
|
94
|
-
logger.log(`${pc.bold("Push changes")} ${pc.dim("(repository):")}`);
|
|
89
|
+
spin.stop();
|
|
90
|
+
logger.info(`Sync status — ${result.entryCount} entries, ${result.recipientCount} recipients, profile: ${result.activeProfile ?? "none"}`);
|
|
91
|
+
logger.section("Push changes (repository)");
|
|
95
92
|
logPushChanges(logger, result.push.changes);
|
|
96
|
-
logger.
|
|
97
|
-
logger.log(`${pc.bold("Pull changes")} ${pc.dim("(local):")}`);
|
|
93
|
+
logger.section("Pull changes (local)");
|
|
98
94
|
logPullChanges(logger, result.pull.changes);
|
|
99
|
-
if (verbose) {
|
|
100
|
-
logger.log("");
|
|
101
|
-
logger.log(pc.bold("Entries:"));
|
|
102
|
-
if (result.entries.length === 0) {
|
|
103
|
-
logger.log(pc.dim(" none"));
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
for (const entry of result.entries) {
|
|
107
|
-
const profiles = entry.profiles.length > 0
|
|
108
|
-
? `, profiles: ${entry.profiles.join(", ")}`
|
|
109
|
-
: "";
|
|
110
|
-
logger.log(pc.dim(` ${entry.repoPath} → ${entry.localPath} (${entry.kind}, ${entry.mode}${profiles})`));
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
logger.log("");
|
|
114
|
-
logger.log(pc.dim(` sync dir ${result.syncDirectory}`));
|
|
115
|
-
logger.log(pc.dim(` config ${result.configPath}`));
|
|
116
|
-
}
|
|
117
95
|
},
|
|
118
96
|
parameters: {
|
|
119
97
|
flags: {
|
|
120
|
-
profile:
|
|
121
|
-
brief: "Use a specific profile layer for this command",
|
|
122
|
-
kind: "parsed",
|
|
123
|
-
optional: true,
|
|
124
|
-
parse: String,
|
|
125
|
-
placeholder: "profile",
|
|
126
|
-
},
|
|
127
|
-
verbose: verboseFlag,
|
|
98
|
+
profile: profileFlag,
|
|
128
99
|
},
|
|
129
100
|
},
|
|
130
101
|
});
|
package/dist/cli/status.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/cli/status.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/cli/status.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/track.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare const trackCommand: import("@stricli/core").Command<
|
|
1
|
+
import type { ApplicationContext } from "@stricli/core";
|
|
2
|
+
declare const trackCommand: import("@stricli/core").Command<ApplicationContext>;
|
|
3
3
|
export default trackCommand;
|
|
4
4
|
//# sourceMappingURL=track.d.ts.map
|
package/dist/cli/track.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../../src/cli/track.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../../src/cli/track.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAmBxD,QAAA,MAAM,YAAY,qDAmIhB,CAAC;AAEH,eAAe,YAAY,CAAC"}
|
package/dist/cli/track.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { buildCommand } from "@stricli/core";
|
|
2
|
-
import
|
|
3
|
-
import { CONSTANTS } from "#app/config/constants.ts";
|
|
2
|
+
import { AppConstants } from "#app/config/constants.ts";
|
|
4
3
|
import { DotweaveError } from "#app/lib/error.ts";
|
|
5
|
-
import { assignProfiles } from "#app/services/profile.ts";
|
|
6
|
-
import { setTargetMode } from "#app/services/
|
|
7
|
-
import { verboseFlag, } from "#app/services/terminal/cli-runtime.ts";
|
|
4
|
+
import { assignProfiles, validateProfilesExist, } from "#app/services/profile.ts";
|
|
5
|
+
import { setTargetMode } from "#app/services/sync-mode.ts";
|
|
8
6
|
import { createCliLogger } from "#app/services/terminal/logger.ts";
|
|
9
7
|
import { proposePathCompletions } from "#app/services/terminal/path-completion.ts";
|
|
10
8
|
import { trackTarget } from "#app/services/track.ts";
|
|
@@ -14,8 +12,7 @@ const trackCommand = buildCommand({
|
|
|
14
12
|
fullDescription: "Register one or more files or directories inside your home directory so dotweave can mirror them into the sync directory. If a target is already tracked, its mode is updated. Targets may also be repository paths inside a tracked directory to create child entries with a specific mode.",
|
|
15
13
|
},
|
|
16
14
|
async func(flags, ...targets) {
|
|
17
|
-
const
|
|
18
|
-
const logger = createCliLogger({ verbose });
|
|
15
|
+
const logger = createCliLogger();
|
|
19
16
|
const profiles = [...(flags.profile ?? [])];
|
|
20
17
|
const cwd = process.cwd();
|
|
21
18
|
if (flags.repoPath !== undefined && targets.length !== 1) {
|
|
@@ -24,13 +21,7 @@ const trackCommand = buildCommand({
|
|
|
24
21
|
hint: "Track one target at a time when overriding its repository path.",
|
|
25
22
|
});
|
|
26
23
|
}
|
|
27
|
-
if (verbose) {
|
|
28
|
-
logger.start(`Processing ${targets.length} sync target${targets.length === 1 ? "" : "s"}...`);
|
|
29
|
-
}
|
|
30
24
|
for (const target of targets) {
|
|
31
|
-
if (verbose) {
|
|
32
|
-
logger.start(`Resolving ${target}...`);
|
|
33
|
-
}
|
|
34
25
|
try {
|
|
35
26
|
const result = await trackTarget({
|
|
36
27
|
mode: flags.mode,
|
|
@@ -49,26 +40,25 @@ const trackCommand = buildCommand({
|
|
|
49
40
|
else {
|
|
50
41
|
logger.info(`${result.repoPath} already tracked`);
|
|
51
42
|
}
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
: ""
|
|
55
|
-
|
|
56
|
-
if (
|
|
57
|
-
|
|
58
|
-
logger.log(pc.dim(` sync dir ${result.syncDirectory}`));
|
|
59
|
-
logger.log(pc.dim(` config ${result.configPath}`));
|
|
43
|
+
const details = [
|
|
44
|
+
{ key: "path", value: result.localPath },
|
|
45
|
+
{ key: "mode", value: result.mode },
|
|
46
|
+
];
|
|
47
|
+
if (result.profiles.length > 0) {
|
|
48
|
+
details.push({ key: "profiles", value: result.profiles.join(", ") });
|
|
60
49
|
}
|
|
50
|
+
logger.listKeyValue(details);
|
|
61
51
|
}
|
|
62
52
|
catch (error) {
|
|
63
53
|
if (flags.repoPath === undefined &&
|
|
64
54
|
error instanceof DotweaveError &&
|
|
65
55
|
error.code === "TARGET_NOT_FOUND") {
|
|
66
|
-
|
|
67
|
-
|
|
56
|
+
const isProfileClear = profiles.length === 1 && profiles[0] === "";
|
|
57
|
+
if (profiles.length > 0 && !isProfileClear) {
|
|
58
|
+
await validateProfilesExist(profiles);
|
|
68
59
|
}
|
|
69
60
|
const setResult = await setTargetMode({ mode: flags.mode, target }, cwd);
|
|
70
61
|
if (profiles.length > 0) {
|
|
71
|
-
const isProfileClear = profiles.length === 1 && profiles[0] === "";
|
|
72
62
|
await assignProfiles({ profiles: isProfileClear ? [] : profiles, target }, cwd);
|
|
73
63
|
}
|
|
74
64
|
if (setResult.action === "unchanged") {
|
|
@@ -77,14 +67,9 @@ const trackCommand = buildCommand({
|
|
|
77
67
|
else {
|
|
78
68
|
logger.success(`Updated sync mode for ${setResult.repoPath}`);
|
|
79
69
|
}
|
|
80
|
-
logger.
|
|
70
|
+
logger.listKeyValue([{ key: "mode", value: setResult.mode }]);
|
|
81
71
|
if (setResult.reason === "already-set") {
|
|
82
|
-
logger.log(
|
|
83
|
-
}
|
|
84
|
-
if (verbose) {
|
|
85
|
-
logger.log(pc.dim(` local ${setResult.localPath}`));
|
|
86
|
-
logger.log(pc.dim(` sync dir ${setResult.syncDirectory}`));
|
|
87
|
-
logger.log(pc.dim(` config ${setResult.configPath}`));
|
|
72
|
+
logger.log(` already ${setResult.mode}`);
|
|
88
73
|
}
|
|
89
74
|
continue;
|
|
90
75
|
}
|
|
@@ -96,12 +81,12 @@ const trackCommand = buildCommand({
|
|
|
96
81
|
flags: {
|
|
97
82
|
mode: {
|
|
98
83
|
brief: "Sync mode for the tracked targets",
|
|
99
|
-
default:
|
|
84
|
+
default: AppConstants.SYNC.MODES[0],
|
|
100
85
|
kind: "enum",
|
|
101
|
-
values:
|
|
86
|
+
values: AppConstants.SYNC.MODES,
|
|
102
87
|
},
|
|
103
88
|
profile: {
|
|
104
|
-
brief: "Restrict syncing to
|
|
89
|
+
brief: "Restrict syncing to registered profiles (add non-default profiles with 'dotweave profile add')",
|
|
105
90
|
kind: "parsed",
|
|
106
91
|
optional: true,
|
|
107
92
|
parse: String,
|
|
@@ -115,7 +100,6 @@ const trackCommand = buildCommand({
|
|
|
115
100
|
parse: String,
|
|
116
101
|
placeholder: "path",
|
|
117
102
|
},
|
|
118
|
-
verbose: verboseFlag,
|
|
119
103
|
},
|
|
120
104
|
positional: {
|
|
121
105
|
kind: "array",
|
package/dist/cli/track.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"track.js","sourceRoot":"","sources":["../../src/cli/track.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"track.js","sourceRoot":"","sources":["../../src/cli/track.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/untrack.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare const untrackCommand: import("@stricli/core").Command<
|
|
1
|
+
import type { ApplicationContext } from "@stricli/core";
|
|
2
|
+
declare const untrackCommand: import("@stricli/core").Command<ApplicationContext>;
|
|
3
3
|
export default untrackCommand;
|
|
4
4
|
//# sourceMappingURL=untrack.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"untrack.d.ts","sourceRoot":"","sources":["../../src/cli/untrack.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"untrack.d.ts","sourceRoot":"","sources":["../../src/cli/untrack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAMxD,QAAA,MAAM,cAAc,qDA6BlB,CAAC;AAEH,eAAe,cAAc,CAAC"}
|
package/dist/cli/untrack.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { buildCommand } from "@stricli/core";
|
|
2
|
-
import pc from "picocolors";
|
|
3
|
-
import { verboseFlag, } from "#app/services/terminal/cli-runtime.ts";
|
|
4
2
|
import { createCliLogger } from "#app/services/terminal/logger.ts";
|
|
5
3
|
import { untrackTarget } from "#app/services/untrack.ts";
|
|
6
4
|
const untrackCommand = buildCommand({
|
|
@@ -8,22 +6,15 @@ const untrackCommand = buildCommand({
|
|
|
8
6
|
brief: "Stop tracking a synced path",
|
|
9
7
|
fullDescription: "Remove a tracked root entry or a nested override from dotweave configuration. This only updates the sync config; actual file changes happen on the next push or pull. Use a local path to remove the main tracked target, or use a repository-relative child path inside a tracked directory to remove only that override.",
|
|
10
8
|
},
|
|
11
|
-
async func(
|
|
12
|
-
const
|
|
13
|
-
const logger = createCliLogger({ verbose });
|
|
9
|
+
async func(_flags, target) {
|
|
10
|
+
const logger = createCliLogger();
|
|
14
11
|
const result = await untrackTarget({ target }, process.cwd());
|
|
15
12
|
logger.success(`Stopped tracking ${result.repoPath}`);
|
|
16
|
-
logger.
|
|
17
|
-
|
|
18
|
-
logger.log(pc.dim(` local ${result.localPath}`));
|
|
19
|
-
logger.log(pc.dim(` sync dir ${result.syncDirectory}`));
|
|
20
|
-
logger.log(pc.dim(` config ${result.configPath}`));
|
|
21
|
-
}
|
|
13
|
+
logger.kv("plain", String(result.plainArtifactCount));
|
|
14
|
+
logger.kv("secret", String(result.secretArtifactCount));
|
|
22
15
|
},
|
|
23
16
|
parameters: {
|
|
24
|
-
flags: {
|
|
25
|
-
verbose: verboseFlag,
|
|
26
|
-
},
|
|
17
|
+
flags: {},
|
|
27
18
|
positional: {
|
|
28
19
|
kind: "tuple",
|
|
29
20
|
parameters: [
|
package/dist/cli/untrack.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"untrack.js","sourceRoot":"","sources":["../../src/cli/untrack.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"untrack.js","sourceRoot":"","sources":["../../src/cli/untrack.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,MAAM,cAAc,GAAG,YAAY,CAAwC;IACzE,IAAI,EAAE;QACJ,KAAK,EAAE,6BAA6B;QACpC,eAAe,EACb,4TAA4T;KAC/T;IACD,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM;QACvB,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QAEjC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAE9D,MAAM,CAAC,OAAO,CAAC,oBAAoB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC1D,CAAC;IACD,UAAU,EAAE;QACV,KAAK,EAAE,EAAE;QACT,UAAU,EAAE;YACV,IAAI,EAAE,OAAO;YACb,UAAU,EAAE;gBACV;oBACE,KAAK,EACH,iFAAiF;oBACnF,KAAK,EAAE,MAAM;oBACb,WAAW,EAAE,QAAQ;iBACtB;aACF;SACF;KACF;CACF,CAAC,CAAC;AAEH,eAAe,cAAc,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const
|
|
1
|
+
export declare const AppConstants: {
|
|
2
2
|
readonly APP: {
|
|
3
3
|
readonly NAME: "dotweave";
|
|
4
4
|
};
|
|
@@ -17,7 +17,7 @@ export declare const CONSTANTS: {
|
|
|
17
17
|
};
|
|
18
18
|
readonly SYNC: {
|
|
19
19
|
readonly CONFIG_FILE_NAME: "manifest.jsonc";
|
|
20
|
-
readonly CONFIG_VERSION:
|
|
20
|
+
readonly CONFIG_VERSION: 8;
|
|
21
21
|
readonly DEFAULT_CONCURRENCY: 20;
|
|
22
22
|
readonly DEFAULT_PROFILE: "default";
|
|
23
23
|
readonly MODES: readonly ["normal", "secret", "ignore"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6Bf,CAAC"}
|
package/dist/config/constants.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const APP_NAME = "dotweave";
|
|
2
2
|
const AUTOCOMPLETE_COMPLETE_SUBCOMMAND = "__complete";
|
|
3
|
-
export const
|
|
3
|
+
export const AppConstants = {
|
|
4
4
|
APP: {
|
|
5
5
|
NAME: APP_NAME,
|
|
6
6
|
},
|
|
@@ -19,7 +19,7 @@ export const CONSTANTS = {
|
|
|
19
19
|
},
|
|
20
20
|
SYNC: {
|
|
21
21
|
CONFIG_FILE_NAME: "manifest.jsonc",
|
|
22
|
-
CONFIG_VERSION:
|
|
22
|
+
CONFIG_VERSION: 8,
|
|
23
23
|
DEFAULT_CONCURRENCY: 20,
|
|
24
24
|
DEFAULT_PROFILE: "default",
|
|
25
25
|
MODES: ["normal", "secret", "ignore"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,MAAM,gCAAgC,GAAG,YAAY,CAAC;AAEtD,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,MAAM,gCAAgC,GAAG,YAAY,CAAC;AAEtD,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,GAAG,EAAE;QACH,IAAI,EAAE,QAAQ;KACf;IACD,YAAY,EAAE;QACZ,gBAAgB,EAAE,QAAQ;QAC1B,OAAO,EAAE,GAAG,QAAQ,IAAI,gCAAgC,EAAE;QAC1D,mBAAmB,EAAE,gCAAgC;KACtD;IACD,aAAa,EAAE;QACb,eAAe,EAAE,CAAC;QAClB,SAAS,EAAE,gBAAgB;KAC5B;IACD,IAAI,EAAE;QACJ,qBAAqB,EAAE,aAAa,QAAQ,WAAW;QACvD,oBAAoB,EAAE,aAAa,QAAQ,eAAe;KAC3D;IACD,IAAI,EAAE;QACJ,gBAAgB,EAAE,gBAAgB;QAClC,cAAc,EAAE,CAAC;QACjB,mBAAmB,EAAE,EAAE;QACvB,eAAe,EAAE,SAAS;QAC1B,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;QACrC,sBAAsB,EAAE,kBAAkB;KAC3C;IACD,GAAG,EAAE;QACH,kBAAkB,EAAE,QAAQ;QAC5B,mBAAmB,EAAE,YAAY;KAClC;CACO,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AppConstants } from "#app/config/constants.ts";
|
|
2
2
|
export type GlobalDotweaveConfig = Readonly<{
|
|
3
3
|
activeProfile?: string;
|
|
4
|
-
version: typeof
|
|
4
|
+
version: typeof AppConstants.GLOBAL_CONFIG.CURRENT_VERSION;
|
|
5
5
|
}>;
|
|
6
6
|
export type ActiveProfileSelection = Readonly<{
|
|
7
7
|
profile?: undefined;
|
|
@@ -14,7 +14,7 @@ export declare const parseGlobalDotweaveConfig: (input: unknown) => GlobalDotwea
|
|
|
14
14
|
export declare const formatGlobalDotweaveConfig: (config: GlobalDotweaveConfig) => string;
|
|
15
15
|
export declare const readGlobalDotweaveConfig: (filePath: string) => Promise<Readonly<{
|
|
16
16
|
activeProfile?: string;
|
|
17
|
-
version: typeof
|
|
17
|
+
version: typeof AppConstants.GLOBAL_CONFIG.CURRENT_VERSION;
|
|
18
18
|
}> | undefined>;
|
|
19
19
|
export declare const resolveActiveProfileSelection: (config: GlobalDotweaveConfig | undefined) => ActiveProfileSelection;
|
|
20
20
|
export declare const isProfileActive: (selection: ActiveProfileSelection, profile: string | undefined) => boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-config.d.ts","sourceRoot":"","sources":["../../src/config/global-config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"global-config.d.ts","sourceRoot":"","sources":["../../src/config/global-config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAgBxD,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,YAAY,CAAC,aAAa,CAAC,eAAe,CAAC;CAC5D,CAAC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CACzC;IACE,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd,GACD;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,QAAQ,CAAC;CAChB,CACJ,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,OAAO,OAAO,KACb,oBAmBF,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,QAAQ,oBAAoB,WAEtE,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAU,UAAU,MAAM;oBA1C7C,MAAM;aACb,OAAO,YAAY,CAAC,aAAa,CAAC,eAAe;eAkF3D,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,QAAQ,oBAAoB,GAAG,SAAS,KACvC,sBAWF,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,WAAW,sBAAsB,EACjC,SAAS,MAAM,GAAG,SAAS,YAW5B,CAAC"}
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
import { readFile } from "node:fs/promises";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import {
|
|
3
|
+
import { AppConstants } from "#app/config/constants.ts";
|
|
4
4
|
import { runConfigMigrations } from "#app/config/migration.ts";
|
|
5
5
|
import { DotweaveError } from "#app/lib/error.ts";
|
|
6
|
-
import { parseJsonc,
|
|
6
|
+
import { parseJsonc, validateJsoncConfigPath } from "#app/lib/jsonc.ts";
|
|
7
7
|
import { ensureTrailingNewline } from "#app/lib/string.ts";
|
|
8
8
|
import { formatInputIssues } from "#app/lib/validation.ts";
|
|
9
9
|
import { migrateGlobalConfigV2ToV3 } from "#app/migrations/global-v3.ts";
|
|
10
|
-
import { normalizeSyncProfileName } from "./sync.js";
|
|
10
|
+
import { normalizeSyncProfileName } from "./sync-schema.js";
|
|
11
11
|
const globalConfigMigrationRegistry = new Map([[2, migrateGlobalConfigV2ToV3]]);
|
|
12
|
-
const optionalTrimmedStringSchema = z.string().trim().min(1).optional();
|
|
13
12
|
const globalConfigSchema = z.object({
|
|
14
|
-
activeProfile:
|
|
15
|
-
version: z.literal(
|
|
13
|
+
activeProfile: z.string().trim().min(1).optional(),
|
|
14
|
+
version: z.literal(AppConstants.GLOBAL_CONFIG.CURRENT_VERSION),
|
|
16
15
|
});
|
|
17
16
|
export const parseGlobalDotweaveConfig = (input) => {
|
|
18
17
|
const result = globalConfigSchema.safeParse(input);
|
|
@@ -36,11 +35,11 @@ export const formatGlobalDotweaveConfig = (config) => {
|
|
|
36
35
|
return ensureTrailingNewline(JSON.stringify(config, null, 2));
|
|
37
36
|
};
|
|
38
37
|
export const readGlobalDotweaveConfig = async (filePath) => {
|
|
39
|
-
const resolvedPath = await
|
|
38
|
+
const resolvedPath = await validateJsoncConfigPath(filePath);
|
|
40
39
|
try {
|
|
41
40
|
const contents = await readFile(resolvedPath, "utf8");
|
|
42
41
|
const parsed = parseJsonc(contents);
|
|
43
|
-
const migrated = await runConfigMigrations(parsed, globalConfigMigrationRegistry,
|
|
42
|
+
const migrated = await runConfigMigrations(parsed, globalConfigMigrationRegistry, AppConstants.GLOBAL_CONFIG.CURRENT_VERSION, resolvedPath);
|
|
44
43
|
return parseGlobalDotweaveConfig(migrated);
|
|
45
44
|
}
|
|
46
45
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-config.js","sourceRoot":"","sources":["../../src/config/global-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"global-config.js","sourceRoot":"","sources":["../../src/config/global-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,2 @@
|
|
|
1
|
-
export type ResolveConfiguredIdentityFileOptions = Readonly<{
|
|
2
|
-
configPath?: string;
|
|
3
|
-
hint?: string;
|
|
4
|
-
source?: string;
|
|
5
|
-
}>;
|
|
6
1
|
export declare const resolveDefaultIdentityFile: (home: string | undefined, xdgConfigHome: string | undefined) => string;
|
|
7
|
-
export declare const resolveLegacyIdentityFile: (home: string | undefined, xdgConfigHome: string | undefined) => string;
|
|
8
|
-
export declare const resolveConfiguredIdentityFile: (value: string, home: string | undefined, xdgConfigHome: string | undefined, options?: ResolveConfiguredIdentityFileOptions) => string;
|
|
9
2
|
//# sourceMappingURL=identity-file.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity-file.d.ts","sourceRoot":"","sources":["../../src/config/identity-file.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"identity-file.d.ts","sourceRoot":"","sources":["../../src/config/identity-file.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,0BAA0B,GACrC,MAAM,MAAM,GAAG,SAAS,EACxB,eAAe,MAAM,GAAG,SAAS,WAOlC,CAAC"}
|
|
@@ -1,48 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AppConstants } from "#app/config/constants.ts";
|
|
2
2
|
import { resolveConfiguredAbsolutePath } from "#app/config/xdg.ts";
|
|
3
|
-
import { DotweaveError } from "#app/lib/error.ts";
|
|
4
|
-
const defaultIdentityFileSource = "Configured identity file";
|
|
5
3
|
export const resolveDefaultIdentityFile = (home, xdgConfigHome) => {
|
|
6
|
-
return resolveConfiguredAbsolutePath(
|
|
7
|
-
};
|
|
8
|
-
export const resolveLegacyIdentityFile = (home, xdgConfigHome) => {
|
|
9
|
-
return resolveConfiguredAbsolutePath(CONSTANTS.INIT.LEGACY_IDENTITY_FILE, home, xdgConfigHome);
|
|
10
|
-
};
|
|
11
|
-
export const resolveConfiguredIdentityFile = (value, home, xdgConfigHome, options = {}) => {
|
|
12
|
-
const configuredIdentityFile = value.trim();
|
|
13
|
-
const source = options.source ?? defaultIdentityFileSource;
|
|
14
|
-
let resolvedIdentityFile;
|
|
15
|
-
try {
|
|
16
|
-
resolvedIdentityFile = resolveConfiguredAbsolutePath(configuredIdentityFile, home, xdgConfigHome);
|
|
17
|
-
}
|
|
18
|
-
catch (error) {
|
|
19
|
-
throw new DotweaveError(error instanceof Error
|
|
20
|
-
? error.message
|
|
21
|
-
: `Invalid age identity file path: ${value}`, {
|
|
22
|
-
code: "AGE_IDENTITY_PATH_INVALID",
|
|
23
|
-
details: [
|
|
24
|
-
`${source}: ${configuredIdentityFile}`,
|
|
25
|
-
...(options.configPath === undefined
|
|
26
|
-
? []
|
|
27
|
-
: [`Config file: ${options.configPath}`]),
|
|
28
|
-
],
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
if (resolvedIdentityFile === resolveLegacyIdentityFile(home, xdgConfigHome)) {
|
|
32
|
-
throw new DotweaveError("Configured age identity file uses the removed legacy path.", {
|
|
33
|
-
code: "AGE_IDENTITY_LEGACY_PATH",
|
|
34
|
-
details: [
|
|
35
|
-
`${source}: ${configuredIdentityFile}`,
|
|
36
|
-
...(options.configPath === undefined
|
|
37
|
-
? []
|
|
38
|
-
: [`Config file: ${options.configPath}`]),
|
|
39
|
-
`Resolved identity file: ${resolvedIdentityFile}`,
|
|
40
|
-
`Supported identity file: ${resolveDefaultIdentityFile(home, xdgConfigHome)}`,
|
|
41
|
-
],
|
|
42
|
-
hint: options.hint ??
|
|
43
|
-
`Update the identity file path to ${CONSTANTS.INIT.DEFAULT_IDENTITY_FILE}.`,
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
return resolvedIdentityFile;
|
|
4
|
+
return resolveConfiguredAbsolutePath(AppConstants.INIT.DEFAULT_IDENTITY_FILE, home, xdgConfigHome);
|
|
47
5
|
};
|
|
48
6
|
//# sourceMappingURL=identity-file.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity-file.js","sourceRoot":"","sources":["../../src/config/identity-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"identity-file.js","sourceRoot":"","sources":["../../src/config/identity-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAEnE,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,IAAwB,EACxB,aAAiC,EACjC,EAAE;IACF,OAAO,6BAA6B,CAClC,YAAY,CAAC,IAAI,CAAC,qBAAqB,EACvC,IAAI,EACJ,aAAa,CACd,CAAC;AACJ,CAAC,CAAC"}
|