@tinyrack/dotweave 0.45.0 → 0.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,8 @@
1
+ import type { PlatformStringValue } from "#app/config/platform.ts";
2
+ import type { PlatformPermission, PlatformSyncMode } from "#app/config/sync-schema.ts";
3
+ export type PlatformFlagKey = "default" | "win" | "mac" | "linux" | "wsl";
4
+ export declare const parsePlatformStringFlags: (flagName: string, values: readonly string[] | undefined) => PlatformStringValue | undefined;
5
+ export declare const parsePlatformStringOverrideFlags: (flagName: string, values: readonly string[] | undefined) => Partial<PlatformStringValue> | undefined;
6
+ export declare const parsePlatformModeFlags: (flagName: string, values: readonly string[] | undefined) => PlatformSyncMode | undefined;
7
+ export declare const parsePlatformPermissionFlags: (flagName: string, values: readonly string[] | undefined) => PlatformPermission | undefined;
8
+ //# sourceMappingURL=platform-flags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-flags.d.ts","sourceRoot":"","sources":["../../src/cli/platform-flags.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAEjB,MAAM,4BAA4B,CAAC;AAIpC,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC;AA8E1E,eAAO,MAAM,wBAAwB,GACnC,UAAU,MAAM,EAChB,QAAQ,SAAS,MAAM,EAAE,GAAG,SAAS,KACpC,mBAAmB,GAAG,SAIxB,CAAC;AAEF,eAAO,MAAM,gCAAgC,GAC3C,UAAU,MAAM,EAChB,QAAQ,SAAS,MAAM,EAAE,GAAG,SAAS,KACpC,OAAO,CAAC,mBAAmB,CAAC,GAAG,SAIjC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,UAAU,MAAM,EAChB,QAAQ,SAAS,MAAM,EAAE,GAAG,SAAS,KACpC,gBAAgB,GAAG,SAcrB,CAAC;AAEF,eAAO,MAAM,4BAA4B,GACvC,UAAU,MAAM,EAChB,QAAQ,SAAS,MAAM,EAAE,GAAG,SAAS,KACpC,kBAAkB,GAAG,SAiBvB,CAAC"}
@@ -0,0 +1,85 @@
1
+ import { AppConstants } from "#app/config/constants.ts";
2
+ import { DotweaveError } from "#app/lib/error.ts";
3
+ import { isPermissionOctal } from "#app/lib/file-mode.ts";
4
+ const platformFlagKeys = new Set([
5
+ "default",
6
+ "win",
7
+ "mac",
8
+ "linux",
9
+ "wsl",
10
+ ]);
11
+ const syncModes = new Set(AppConstants.SYNC.MODES);
12
+ const parsePlatformFlagValues = (flagName, values, options) => {
13
+ if (values === undefined || values.length === 0) {
14
+ return undefined;
15
+ }
16
+ const parsed = {};
17
+ for (const rawValue of values) {
18
+ const separatorIndex = rawValue.indexOf("=");
19
+ const key = separatorIndex === -1 ? "default" : rawValue.slice(0, separatorIndex);
20
+ const value = separatorIndex === -1 ? rawValue : rawValue.slice(separatorIndex + 1);
21
+ if (key.length === 0 ||
22
+ value.length === 0 ||
23
+ !platformFlagKeys.has(key) ||
24
+ (!options.allowDefault && key === "default")) {
25
+ throw new DotweaveError(`Invalid --${flagName} platform value.`, {
26
+ code: "INVALID_PLATFORM_FLAG",
27
+ hint: options.allowDefault
28
+ ? `Use --${flagName} value or --${flagName} platform=value.`
29
+ : `Use --${flagName} platform=value with win, mac, linux, or wsl.`,
30
+ });
31
+ }
32
+ const platformKey = key;
33
+ if (parsed[platformKey] !== undefined) {
34
+ throw new DotweaveError(`Duplicate --${flagName} platform value.`, {
35
+ code: "DUPLICATE_PLATFORM_FLAG",
36
+ details: [`Platform '${platformKey}' was specified more than once.`],
37
+ });
38
+ }
39
+ parsed[platformKey] = value;
40
+ }
41
+ return parsed;
42
+ };
43
+ const mapPlatformValues = (parsed, validate) => {
44
+ if (parsed === undefined) {
45
+ return undefined;
46
+ }
47
+ const mapped = {};
48
+ for (const [key, value] of Object.entries(parsed)) {
49
+ mapped[key] = validate(value);
50
+ }
51
+ return mapped;
52
+ };
53
+ export const parsePlatformStringFlags = (flagName, values) => {
54
+ return parsePlatformFlagValues(flagName, values, {
55
+ allowDefault: true,
56
+ });
57
+ };
58
+ export const parsePlatformStringOverrideFlags = (flagName, values) => {
59
+ return parsePlatformFlagValues(flagName, values, {
60
+ allowDefault: false,
61
+ });
62
+ };
63
+ export const parsePlatformModeFlags = (flagName, values) => {
64
+ return mapPlatformValues(parsePlatformFlagValues(flagName, values, { allowDefault: true }), (value) => {
65
+ if (!syncModes.has(value)) {
66
+ throw new DotweaveError(`Invalid --${flagName} mode '${value}'.`, {
67
+ code: "INVALID_SYNC_MODE",
68
+ hint: `Use one of: ${AppConstants.SYNC.MODES.join(", ")}.`,
69
+ });
70
+ }
71
+ return value;
72
+ });
73
+ };
74
+ export const parsePlatformPermissionFlags = (flagName, values) => {
75
+ return mapPlatformValues(parsePlatformFlagValues(flagName, values, { allowDefault: true }), (value) => {
76
+ if (!isPermissionOctal(value)) {
77
+ throw new DotweaveError(`Invalid --${flagName} permission '${value}'.`, {
78
+ code: "INVALID_PERMISSION",
79
+ hint: "Use a 4-character octal permission like '0600' or '0755'.",
80
+ });
81
+ }
82
+ return value;
83
+ });
84
+ };
85
+ //# sourceMappingURL=platform-flags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-flags.js","sourceRoot":"","sources":["../../src/cli/platform-flags.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../../src/cli/track.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAsCxD,QAAA,MAAM,YAAY,qDAuLhB,CAAC;AAEH,eAAe,YAAY,CAAC"}
package/dist/cli/track.js CHANGED
@@ -6,29 +6,42 @@ import { setTargetMode } from "#app/services/sync-mode.ts";
6
6
  import { createCliLogger } from "#app/services/terminal/logger.ts";
7
7
  import { proposePathCompletions } from "#app/services/terminal/path-completion.ts";
8
8
  import { trackTarget } from "#app/services/track.ts";
9
+ import { parsePlatformModeFlags, parsePlatformPermissionFlags, parsePlatformStringFlags, parsePlatformStringOverrideFlags, } from "./platform-flags.js";
10
+ const normalizeFlagValues = (values) => {
11
+ if (values === undefined) {
12
+ return undefined;
13
+ }
14
+ return typeof values === "string" ? [values] : values;
15
+ };
9
16
  const trackCommand = buildCommand({
10
17
  docs: {
11
18
  brief: "Track local files or directories for syncing",
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.",
19
+ fullDescription: "Register a file or directory inside your home directory so dotweave can mirror it into the sync directory. If a target is already tracked, specified manifest fields are updated and unspecified fields are preserved.",
13
20
  },
14
21
  async func(flags, ...targets) {
15
22
  const logger = createCliLogger();
16
23
  const profiles = [...(flags.profile ?? [])];
17
24
  const cwd = process.cwd();
18
- if (flags.repoPath !== undefined && targets.length !== 1) {
19
- throw new DotweaveError("The --repo-path flag can only be used with a single sync target.", {
25
+ if (flags.repo !== undefined && targets.length !== 1) {
26
+ throw new DotweaveError("The --repo flag can only be used with a single sync target.", {
20
27
  code: "REPO_PATH_TARGET_COUNT",
21
28
  hint: "Track one target at a time when overriding its repository path.",
22
29
  });
23
30
  }
31
+ const mode = parsePlatformModeFlags("mode", normalizeFlagValues(flags.mode));
32
+ const fallbackMode = mode?.default ?? AppConstants.SYNC.MODES[0];
33
+ const repoPath = parsePlatformStringFlags("repo", normalizeFlagValues(flags.repo));
34
+ const localPathOverrides = parsePlatformStringOverrideFlags("local", normalizeFlagValues(flags.local));
35
+ const permission = parsePlatformPermissionFlags("permission", normalizeFlagValues(flags.permission));
24
36
  for (const target of targets) {
25
37
  try {
26
38
  const result = await trackTarget({
27
- mode: flags.mode,
39
+ ...(flags.kind === undefined ? {} : { kind: flags.kind }),
40
+ ...(localPathOverrides === undefined ? {} : { localPathOverrides }),
41
+ ...(mode === undefined ? {} : { mode }),
42
+ ...(permission === undefined ? {} : { permission }),
28
43
  profiles: profiles.length > 0 ? profiles : undefined,
29
- ...(flags.repoPath === undefined
30
- ? {}
31
- : { repoPath: flags.repoPath }),
44
+ ...(repoPath === undefined ? {} : { repoPath }),
32
45
  target,
33
46
  }, cwd);
34
47
  if (!result.alreadyTracked) {
@@ -41,23 +54,31 @@ const trackCommand = buildCommand({
41
54
  logger.info(`${result.repoPath} already tracked`);
42
55
  }
43
56
  const details = [
57
+ { key: "kind", value: result.kind },
44
58
  { key: "path", value: result.localPath },
59
+ { key: "repo", value: result.repoPath },
45
60
  { key: "mode", value: result.mode },
46
61
  ];
62
+ if (result.configuredPermission !== undefined) {
63
+ details.push({
64
+ key: "permission",
65
+ value: result.configuredPermission.default,
66
+ });
67
+ }
47
68
  if (result.profiles.length > 0) {
48
69
  details.push({ key: "profiles", value: result.profiles.join(", ") });
49
70
  }
50
71
  logger.listKeyValue(details);
51
72
  }
52
73
  catch (error) {
53
- if (flags.repoPath === undefined &&
74
+ if (repoPath === undefined &&
54
75
  error instanceof DotweaveError &&
55
76
  error.code === "TARGET_NOT_FOUND") {
56
77
  const isProfileClear = profiles.length === 1 && profiles[0] === "";
57
78
  if (profiles.length > 0 && !isProfileClear) {
58
79
  await validateProfilesExist(profiles);
59
80
  }
60
- const setResult = await setTargetMode({ mode: flags.mode, target }, cwd);
81
+ const setResult = await setTargetMode({ mode: fallbackMode, target }, cwd);
61
82
  if (profiles.length > 0) {
62
83
  await assignProfiles({ profiles: isProfileClear ? [] : profiles, target }, cwd);
63
84
  }
@@ -79,11 +100,27 @@ const trackCommand = buildCommand({
79
100
  },
80
101
  parameters: {
81
102
  flags: {
103
+ kind: {
104
+ brief: "Target kind to use when the path does not exist yet",
105
+ kind: "enum",
106
+ optional: true,
107
+ values: ["file", "directory"],
108
+ },
82
109
  mode: {
83
110
  brief: "Sync mode for the tracked targets",
84
- default: AppConstants.SYNC.MODES[0],
85
- kind: "enum",
86
- values: AppConstants.SYNC.MODES,
111
+ kind: "parsed",
112
+ optional: true,
113
+ parse: String,
114
+ placeholder: "mode|platform=mode",
115
+ variadic: true,
116
+ },
117
+ permission: {
118
+ brief: "File permission to restore, as a 4-character octal value",
119
+ kind: "parsed",
120
+ optional: true,
121
+ parse: String,
122
+ placeholder: "octal|platform=octal",
123
+ variadic: true,
87
124
  },
88
125
  profile: {
89
126
  brief: "Restrict syncing to registered profiles (add non-default profiles with 'dotweave profile add')",
@@ -93,12 +130,21 @@ const trackCommand = buildCommand({
93
130
  placeholder: "profile",
94
131
  variadic: true,
95
132
  },
96
- repoPath: {
133
+ local: {
134
+ brief: "Platform-specific local path override",
135
+ kind: "parsed",
136
+ optional: true,
137
+ parse: String,
138
+ placeholder: "platform=path",
139
+ variadic: true,
140
+ },
141
+ repo: {
97
142
  brief: "Repository-relative path under the profile namespace",
98
143
  kind: "parsed",
99
144
  optional: true,
100
145
  parse: String,
101
- placeholder: "path",
146
+ placeholder: "path|platform=path",
147
+ variadic: true,
102
148
  },
103
149
  },
104
150
  positional: {
@@ -1 +1 @@
1
- {"version":3,"file":"track.js","sourceRoot":"","sources":["../../src/cli/track.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"track.js","sourceRoot":"","sources":["../../src/cli/track.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,26 @@
1
- import { type SyncConfigEntryKind, type SyncMode } from "#app/config/sync-schema.ts";
1
+ import { type PlatformStringValue } from "#app/config/platform.ts";
2
+ import { type PlatformPermission, type PlatformSyncMode, type SyncConfigEntryKind, type SyncMode } from "#app/config/sync-schema.ts";
2
3
  export type TrackRequest = Readonly<{
4
+ kind?: SyncConfigEntryKind;
5
+ localPathOverrides?: Partial<PlatformStringValue>;
3
6
  profiles?: readonly string[];
4
- mode: SyncMode;
5
- repoPath?: string;
7
+ mode?: SyncMode | Partial<PlatformSyncMode>;
8
+ permission?: PlatformPermission;
9
+ repoPath?: Partial<PlatformStringValue>;
6
10
  target: string;
7
11
  }>;
8
12
  export type TrackResult = Readonly<{
9
13
  alreadyTracked: boolean;
10
14
  changed: boolean;
15
+ configuredLocalPath: PlatformStringValue;
16
+ configuredMode: PlatformSyncMode;
11
17
  kind: SyncConfigEntryKind;
12
18
  localPath: string;
13
19
  profiles: readonly string[];
14
20
  mode: SyncMode;
21
+ permission?: number;
22
+ configuredPermission?: PlatformPermission;
23
+ configuredRepoPath?: PlatformStringValue;
15
24
  repoPath: string;
16
25
  }>;
17
26
  export declare const trackTarget: (request: TrackRequest, cwd: string) => Promise<TrackResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../../src/services/track.ts"],"names":[],"mappings":"AAUA,OAAO,EAIL,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACd,MAAM,4BAA4B,CAAC;AAepC,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC;IAClC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC;IACjC,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CAAC;AA6HH,eAAO,MAAM,WAAW,GACtB,SAAS,YAAY,EACrB,KAAK,MAAM,KACV,OAAO,CAAC,WAAW,CA0KrB,CAAC"}
1
+ {"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../../src/services/track.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EAErB,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACd,MAAM,4BAA4B,CAAC;AAgBpC,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC;IAClC,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAClD,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5C,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC;IACjC,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,cAAc,EAAE,gBAAgB,CAAC;IACjC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,kBAAkB,CAAC;IAC1C,kBAAkB,CAAC,EAAE,mBAAmB,CAAC;IACzC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CAAC;AAuNH,eAAO,MAAM,WAAW,GACtB,SAAS,YAAY,EACrB,KAAK,MAAM,KACV,OAAO,CAAC,WAAW,CA0PrB,CAAC"}
@@ -1,29 +1,58 @@
1
1
  import { resolve } from "node:path";
2
2
  import { AppConstants } from "#app/config/constants.ts";
3
3
  import { resolveDefaultIdentityFile } from "#app/config/identity-file.ts";
4
+ import { resolvePlatformValue, } from "#app/config/platform.ts";
4
5
  import { resolveDotweaveHomeDirectoryFromEnv } from "#app/config/runtime-env.ts";
5
- import { buildDefaultPlatformMode, hasPlatformSpecificModeOverride, } from "#app/config/sync-queries.ts";
6
+ import { buildDefaultPlatformMode } from "#app/config/sync-queries.ts";
6
7
  import { normalizeSyncProfileName, normalizeSyncRepoPath, } from "#app/config/sync-schema.ts";
7
8
  import { expandHomePath } from "#app/config/xdg.ts";
8
9
  import { DotweaveError } from "#app/lib/error.ts";
10
+ import { parsePermissionOctal } from "#app/lib/file-mode.ts";
9
11
  import { getPathStats } from "#app/lib/filesystem.ts";
10
12
  import { doPathsOverlap } from "#app/lib/path.ts";
11
13
  import { buildSyncConfigDocument, writeValidatedSyncConfig, } from "./config-file.js";
12
14
  import { loadWritableSyncConfig } from "./sync-context.js";
13
15
  import { buildConfiguredHomeLocalPath, buildRepoPathWithinRoot, } from "./sync-paths.js";
14
- const buildDefaultPlatformRepoPath = (repoPath) => ({
15
- default: normalizeSyncRepoPath(repoPath),
16
- });
17
- const buildTrackEntryCandidate = async (targetPath, syncDirectory, homeDirectory, input) => {
18
- const targetStats = await getPathStats(targetPath);
16
+ const platformKeys = ["default", "win", "mac", "linux", "wsl"];
17
+ const normalizePlatformRepoPath = (repoPath) => {
18
+ const normalized = {};
19
+ for (const key of platformKeys) {
20
+ if (repoPath[key] !== undefined) {
21
+ normalized[key] = normalizeSyncRepoPath(repoPath[key]);
22
+ }
23
+ }
24
+ return normalized;
25
+ };
26
+ const resolvePlatformMode = (configuredMode, platformKey) => {
27
+ if (platformKey === "wsl") {
28
+ return configuredMode.wsl ?? configuredMode.linux ?? configuredMode.default;
29
+ }
30
+ return configuredMode[platformKey] ?? configuredMode.default;
31
+ };
32
+ const buildConfiguredMode = (requestedMode, existingMode) => {
33
+ const base = existingMode ?? buildDefaultPlatformMode(AppConstants.SYNC.MODES[0]);
34
+ const patch = requestedMode === undefined
35
+ ? {}
36
+ : typeof requestedMode === "string"
37
+ ? buildDefaultPlatformMode(requestedMode)
38
+ : requestedMode;
39
+ return { ...base, ...patch };
40
+ };
41
+ const mergePlatformStringValue = (base, patch) => {
42
+ return { ...base, ...patch };
43
+ };
44
+ const resolveTargetKind = (targetPath, targetStats, requestedKind) => {
19
45
  if (targetStats === undefined) {
20
- throw new DotweaveError("Sync target does not exist.", {
21
- code: "TARGET_NOT_FOUND",
46
+ if (requestedKind !== undefined) {
47
+ return requestedKind;
48
+ }
49
+ throw new DotweaveError("Sync target kind is required.", {
50
+ code: "TARGET_KIND_REQUIRED",
22
51
  details: [`Target: ${targetPath}`],
23
- hint: "Create the file or directory first, then run the command again.",
52
+ hint: "Pass --kind file or --kind directory when tracking a path that does not exist yet.",
24
53
  });
25
54
  }
26
- const kind = (() => {
55
+ const actualKind = (() => {
27
56
  if (targetStats.isDirectory()) {
28
57
  return "directory";
29
58
  }
@@ -36,6 +65,22 @@ const buildTrackEntryCandidate = async (targetPath, syncDirectory, homeDirectory
36
65
  hint: "Track a regular file, symlink, or directory.",
37
66
  });
38
67
  })();
68
+ if (requestedKind !== undefined && requestedKind !== actualKind) {
69
+ throw new DotweaveError("Sync target kind does not match the path.", {
70
+ code: "TARGET_KIND_MISMATCH",
71
+ details: [
72
+ `Target: ${targetPath}`,
73
+ `Requested kind: ${requestedKind}`,
74
+ `Actual kind: ${actualKind}`,
75
+ ],
76
+ hint: `Use --kind ${actualKind} for this target, or choose a matching path.`,
77
+ });
78
+ }
79
+ return actualKind;
80
+ };
81
+ const buildTrackEntryCandidate = async (targetPath, syncDirectory, homeDirectory, input) => {
82
+ const targetStats = await getPathStats(targetPath);
83
+ const kind = resolveTargetKind(targetPath, targetStats, input.kind);
39
84
  if (doPathsOverlap(targetPath, syncDirectory)) {
40
85
  throw new DotweaveError("Sync target overlaps the dotweave sync directory.", {
41
86
  code: "TARGET_OVERLAPS_SYNC_DIR",
@@ -55,22 +100,35 @@ const buildTrackEntryCandidate = async (targetPath, syncDirectory, homeDirectory
55
100
  });
56
101
  }
57
102
  const localRepoPath = buildRepoPathWithinRoot(targetPath, homeDirectory, "Sync target");
58
- const configuredLocalPath = buildConfiguredHomeLocalPath(localRepoPath);
103
+ const configuredLocalPath = mergePlatformStringValue(buildConfiguredHomeLocalPath(localRepoPath), input.localPathOverrides ?? {});
59
104
  const configuredRepoPath = input.repoPath === undefined
60
105
  ? undefined
61
- : buildDefaultPlatformRepoPath(input.repoPath);
62
- const repoPath = configuredRepoPath?.default ?? localRepoPath;
106
+ : normalizePlatformRepoPath({
107
+ default: localRepoPath,
108
+ ...input.repoPath,
109
+ });
110
+ const repoPath = configuredRepoPath === undefined
111
+ ? localRepoPath
112
+ : resolvePlatformValue(configuredRepoPath, input.platformKey);
113
+ const configuredPermission = input.permission;
114
+ const configuredMode = buildConfiguredMode(input.mode);
63
115
  return {
64
116
  configuredLocalPath,
65
117
  ...(configuredRepoPath === undefined ? {} : { configuredRepoPath }),
118
+ ...(configuredPermission === undefined
119
+ ? {}
120
+ : {
121
+ configuredPermission,
122
+ permission: parsePermissionOctal(configuredPermission.default),
123
+ }),
66
124
  kind,
67
125
  localPath: targetPath,
68
126
  profiles: input.profiles?.map((m) => normalizeSyncProfileName(m)) ?? [],
69
127
  profilesExplicit: input.profiles !== undefined,
70
- mode: input.mode,
128
+ mode: resolvePlatformMode(configuredMode, input.platformKey),
71
129
  modeExplicit: true,
72
- configuredMode: buildDefaultPlatformMode(input.mode),
73
- permissionExplicit: false,
130
+ configuredMode,
131
+ permissionExplicit: configuredPermission !== undefined,
74
132
  repoPath,
75
133
  };
76
134
  };
@@ -111,8 +169,12 @@ export const trackTarget = async (request, cwd) => {
111
169
  validateRequestedProfiles(effectiveProfiles, config.profiles);
112
170
  const candidate = await buildTrackEntryCandidate(resolve(cwd, expandHomePath(target, context.homeDirectory)), syncDirectory, context.homeDirectory, {
113
171
  identityFile,
172
+ kind: request.kind,
173
+ localPathOverrides: request.localPathOverrides,
114
174
  profiles: effectiveProfiles,
115
175
  mode: request.mode,
176
+ permission: request.permission,
177
+ platformKey: context.platformKey,
116
178
  repoPath: request.repoPath,
117
179
  });
118
180
  const existingEntry = config.entries.find((entry) => entry.localPath === candidate.localPath);
@@ -128,13 +190,34 @@ export const trackTarget = async (request, cwd) => {
128
190
  hint: "Untrack or rename the existing entry before adding this root.",
129
191
  });
130
192
  }
131
- const nextEntry = existingEntry !== undefined && request.repoPath === undefined
132
- ? {
133
- ...candidate,
134
- configuredRepoPath: existingEntry.configuredRepoPath,
135
- repoPath: existingEntry.repoPath,
193
+ const nextEntry = (() => {
194
+ if (existingEntry === undefined) {
195
+ return candidate;
136
196
  }
137
- : candidate;
197
+ const configuredRepoPath = request.repoPath === undefined
198
+ ? existingEntry.configuredRepoPath
199
+ : mergePlatformStringValue(existingEntry.configuredRepoPath ?? {
200
+ default: existingEntry.repoPath,
201
+ }, normalizePlatformRepoPath(request.repoPath));
202
+ const configuredMode = buildConfiguredMode(request.mode, existingEntry.configuredMode);
203
+ const configuredLocalPath = request.localPathOverrides === undefined
204
+ ? existingEntry.configuredLocalPath
205
+ : {
206
+ ...existingEntry.configuredLocalPath,
207
+ ...request.localPathOverrides,
208
+ default: candidate.configuredLocalPath.default,
209
+ };
210
+ return {
211
+ ...candidate,
212
+ configuredLocalPath,
213
+ configuredMode,
214
+ ...(configuredRepoPath === undefined ? {} : { configuredRepoPath }),
215
+ mode: resolvePlatformMode(configuredMode, context.platformKey),
216
+ repoPath: configuredRepoPath === undefined
217
+ ? existingEntry.repoPath
218
+ : resolvePlatformValue(configuredRepoPath, context.platformKey),
219
+ };
220
+ })();
138
221
  const repoPathConflict = config.entries.find((entry) => {
139
222
  return (entry.repoPath === nextEntry.repoPath &&
140
223
  entry.localPath !== nextEntry.localPath);
@@ -147,7 +230,7 @@ export const trackTarget = async (request, cwd) => {
147
230
  `Requested repo path: ${nextEntry.repoPath}`,
148
231
  `Existing entry: ${repoPathConflict.localPath} -> ${repoPathConflict.repoPath}`,
149
232
  ],
150
- hint: "Change --repo-path or untrack the conflicting entry first.",
233
+ hint: "Change --repo or untrack the conflicting entry first.",
151
234
  });
152
235
  }
153
236
  if (!alreadyTracked) {
@@ -159,18 +242,25 @@ export const trackTarget = async (request, cwd) => {
159
242
  return {
160
243
  alreadyTracked,
161
244
  changed: true,
245
+ configuredLocalPath: nextEntry.configuredLocalPath,
246
+ configuredMode: nextEntry.configuredMode,
162
247
  kind: nextEntry.kind,
163
248
  localPath: nextEntry.localPath,
164
249
  profiles: nextEntry.profiles,
165
250
  mode: nextEntry.mode,
251
+ permission: nextEntry.permission,
252
+ configuredPermission: nextEntry.configuredPermission,
253
+ configuredRepoPath: nextEntry.configuredRepoPath,
166
254
  repoPath: nextEntry.repoPath,
167
255
  };
168
256
  }
169
- const requestedConfiguredMode = buildDefaultPlatformMode(request.mode);
170
- const modeChanged = existingEntry?.mode !== request.mode ||
171
- existingEntry?.configuredMode.default !== requestedConfiguredMode.default ||
172
- (existingEntry !== undefined &&
173
- hasPlatformSpecificModeOverride(existingEntry.configuredMode));
257
+ const modeChanged = request.mode !== undefined &&
258
+ (existingEntry?.mode !== nextEntry.mode ||
259
+ JSON.stringify(existingEntry?.configuredMode) !==
260
+ JSON.stringify(nextEntry.configuredMode));
261
+ const localPathChanged = request.localPathOverrides !== undefined &&
262
+ JSON.stringify(existingEntry?.configuredLocalPath) !==
263
+ JSON.stringify(nextEntry.configuredLocalPath);
174
264
  const profilesChanged = effectiveProfiles !== undefined &&
175
265
  (existingEntry?.profiles.length !== candidate.profiles.length ||
176
266
  !candidate.profiles.every((m) => existingEntry?.profiles.includes(m)));
@@ -178,7 +268,14 @@ export const trackTarget = async (request, cwd) => {
178
268
  (existingEntry?.repoPath !== nextEntry.repoPath ||
179
269
  JSON.stringify(existingEntry?.configuredRepoPath) !==
180
270
  JSON.stringify(nextEntry.configuredRepoPath));
181
- const changed = modeChanged || profilesChanged || repoPathChanged;
271
+ const permissionChanged = request.permission !== undefined &&
272
+ JSON.stringify(existingEntry?.configuredPermission) !==
273
+ JSON.stringify(request.permission);
274
+ const changed = localPathChanged ||
275
+ modeChanged ||
276
+ profilesChanged ||
277
+ repoPathChanged ||
278
+ permissionChanged;
182
279
  if (changed) {
183
280
  const nextConfig = buildSyncConfigDocument({
184
281
  ...config,
@@ -188,6 +285,9 @@ export const trackTarget = async (request, cwd) => {
188
285
  }
189
286
  return {
190
287
  ...entry,
288
+ ...(localPathChanged
289
+ ? { configuredLocalPath: nextEntry.configuredLocalPath }
290
+ : {}),
191
291
  ...(repoPathChanged
192
292
  ? {
193
293
  configuredRepoPath: nextEntry.configuredRepoPath,
@@ -196,8 +296,15 @@ export const trackTarget = async (request, cwd) => {
196
296
  : {}),
197
297
  ...(modeChanged
198
298
  ? {
199
- configuredMode: requestedConfiguredMode,
200
- mode: request.mode,
299
+ configuredMode: nextEntry.configuredMode,
300
+ mode: nextEntry.mode,
301
+ }
302
+ : {}),
303
+ ...(permissionChanged
304
+ ? {
305
+ configuredPermission: request.permission,
306
+ permission: parsePermissionOctal(request.permission.default),
307
+ permissionExplicit: true,
201
308
  }
202
309
  : {}),
203
310
  ...(profilesChanged
@@ -214,12 +321,29 @@ export const trackTarget = async (request, cwd) => {
214
321
  return {
215
322
  alreadyTracked,
216
323
  changed,
324
+ configuredLocalPath: localPathChanged
325
+ ? nextEntry.configuredLocalPath
326
+ : (existingEntry?.configuredLocalPath ?? nextEntry.configuredLocalPath),
327
+ configuredMode: modeChanged
328
+ ? nextEntry.configuredMode
329
+ : (existingEntry?.configuredMode ?? nextEntry.configuredMode),
217
330
  kind: nextEntry.kind,
218
331
  localPath: nextEntry.localPath,
219
332
  profiles: profilesChanged
220
333
  ? nextEntry.profiles
221
334
  : (existingEntry?.profiles ?? []),
222
- mode: modeChanged ? request.mode : (existingEntry?.mode ?? request.mode),
335
+ mode: modeChanged
336
+ ? nextEntry.mode
337
+ : (existingEntry?.mode ?? nextEntry.mode),
338
+ permission: permissionChanged
339
+ ? parsePermissionOctal(request.permission.default)
340
+ : existingEntry?.permission,
341
+ configuredPermission: permissionChanged
342
+ ? request.permission
343
+ : existingEntry?.configuredPermission,
344
+ configuredRepoPath: repoPathChanged || !alreadyTracked
345
+ ? nextEntry.configuredRepoPath
346
+ : existingEntry?.configuredRepoPath,
223
347
  repoPath: repoPathChanged || !alreadyTracked
224
348
  ? nextEntry.repoPath
225
349
  : (existingEntry?.repoPath ?? nextEntry.repoPath),
@@ -1 +1 @@
1
- {"version":3,"file":"track.js","sourceRoot":"","sources":["../../src/services/track.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"track.js","sourceRoot":"","sources":["../../src/services/track.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tinyrack/dotweave",
3
- "version": "0.45.0",
3
+ "version": "0.46.0",
4
4
  "description": "A personal CLI tool for git-backed configuration sync.",
5
5
  "type": "module",
6
6
  "license": "MIT",