@tinyrack/dotweave 0.44.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.
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAmCxD,QAAA,MAAM,WAAW,qDAkGf,CAAC;AAEH,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAmCxD,QAAA,MAAM,WAAW,qDA2Gf,CAAC;AAEH,eAAe,WAAW,CAAC"}
package/dist/cli/init.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { readFile } from "node:fs/promises";
1
2
  import { buildCommand } from "@stricli/core";
2
3
  import { resolveDefaultIdentityFile } from "#app/config/identity-file.ts";
3
4
  import { resolveDotweaveHomeDirectoryFromEnv } from "#app/config/runtime-env.ts";
@@ -23,17 +24,23 @@ const formatAgeSummary = (result) => {
23
24
  const initCommand = buildCommand({
24
25
  docs: {
25
26
  brief: "Initialize the git-backed sync directory",
26
- fullDescription: "Create or connect the local dotweave repository under your dotweave app-data 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.",
27
+ fullDescription: "Create or connect the local dotweave repository under your dotweave app-data directory, then store the sync settings used by later pull and push operations. If local sync repository data already exists, init fails unless --force is provided. If you omit the repository argument, dotweave initializes a local git repository in the sync directory.",
27
28
  },
28
29
  async func(flags, repository) {
29
30
  const logger = createCliLogger();
30
- const requestedKey = flags.key?.trim();
31
+ const keyFileContents = flags.keyFile === undefined
32
+ ? undefined
33
+ : await readFile(flags.keyFile, "utf8");
34
+ const requestedKey = keyFileContents?.trim() || undefined;
35
+ const keyFileProvided = flags.keyFile !== undefined;
31
36
  const identityFile = resolveDefaultIdentityFile(resolveDotweaveHomeDirectoryFromEnv());
32
37
  const identityFileExists = await pathExists(identityFile);
38
+ const effectiveIdentityFileExists = flags.force === true ? false : identityFileExists;
33
39
  const importingRepository = repository !== undefined && repository.trim() !== "";
34
40
  const shouldPrompt = requestedKey === undefined &&
35
- !identityFileExists &&
36
- ((flags.promptKey ?? false) || importingRepository);
41
+ !keyFileProvided &&
42
+ !effectiveIdentityFileExists &&
43
+ importingRepository;
37
44
  const promptedKey = shouldPrompt
38
45
  ? await ask(importingRepository
39
46
  ? "Enter the age private key for the existing repository: "
@@ -54,10 +61,11 @@ const initCommand = buildCommand({
54
61
  : trimmedPromptedKey !== undefined && trimmedPromptedKey !== ""
55
62
  ? trimmedPromptedKey
56
63
  : undefined,
64
+ force: flags.force === true,
57
65
  generateAgeIdentity: !importingRepository &&
58
66
  requestedKey === undefined &&
59
67
  (trimmedPromptedKey === "" ||
60
- (trimmedPromptedKey === undefined && !identityFileExists)),
68
+ (trimmedPromptedKey === undefined && !effectiveIdentityFileExists)),
61
69
  recipients: [],
62
70
  repository,
63
71
  });
@@ -74,17 +82,17 @@ const initCommand = buildCommand({
74
82
  },
75
83
  parameters: {
76
84
  flags: {
77
- key: {
78
- brief: "Persist an age private key into the identity file",
79
- kind: "parsed",
85
+ force: {
86
+ brief: "Replace existing local sync repository, identity, and settings before initializing",
87
+ kind: "boolean",
80
88
  optional: true,
81
- parse: String,
82
- placeholder: "age-private-key",
83
89
  },
84
- promptKey: {
85
- brief: "Prompt to enter an age private key instead of generating one automatically",
86
- kind: "boolean",
90
+ keyFile: {
91
+ brief: "Read an age private key from a file",
92
+ kind: "parsed",
87
93
  optional: true,
94
+ parse: String,
95
+ placeholder: "path",
88
96
  },
89
97
  },
90
98
  positional: {
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,mCAAmC,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EACL,kCAAkC,EAElC,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAOnE,MAAM,gBAAgB,GAAG,CAAC,MAAkB,EAAE,EAAE;IAC9C,QAAQ,MAAM,CAAC,SAAS,EAAE,CAAC;QACzB,KAAK,QAAQ;YACX,OAAO,eAAe,MAAM,CAAC,SAAS,EAAE,CAAC;QAC3C,KAAK,aAAa;YAChB,OAAO,4BAA4B,CAAC;QACtC;YACE,OAAO,2BAA2B,CAAC;IACvC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,MAAkB,EAAE,EAAE;IAC9C,OAAO,MAAM,CAAC,iBAAiB;QAC7B,CAAC,CAAC,gCAAgC;QAClC,CAAC,CAAC,yBAAyB,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,YAAY,CAA2C;IACzE,IAAI,EAAE;QACJ,KAAK,EAAE,0CAA0C;QACjD,eAAe,EACb,2VAA2V;KAC9V;IACD,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU;QAC1B,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QACjC,MAAM,eAAe,GACnB,KAAK,CAAC,OAAO,KAAK,SAAS;YACzB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,MAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,eAAe,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;QAC1D,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC;QACpD,MAAM,YAAY,GAAG,0BAA0B,CAC7C,mCAAmC,EAAE,CACtC,CAAC;QACF,MAAM,kBAAkB,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC;QAC1D,MAAM,2BAA2B,GAC/B,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACpD,MAAM,mBAAmB,GACvB,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QACvD,MAAM,YAAY,GAChB,YAAY,KAAK,SAAS;YAC1B,CAAC,eAAe;YAChB,CAAC,2BAA2B;YAC5B,mBAAmB,CAAC;QACtB,MAAM,WAAW,GAAG,YAAY;YAC9B,CAAC,CAAC,MAAM,GAAG,CACP,mBAAmB;gBACjB,CAAC,CAAC,yDAAyD;gBAC3D,CAAC,CAAC,gEAAgE,CACrE;YACH,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,kBAAkB,GAAG,WAAW,EAAE,IAAI,EAAE,CAAC;QAC/C,IACE,mBAAmB;YACnB,YAAY,KAAK,SAAS;YAC1B,kBAAkB,KAAK,EAAE,EACzB,CAAC;YACD,MAAM,kCAAkC,EAAE,CAAC;QAC7C,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CACzB,mBAAmB;YACjB,CAAC,CAAC,uBAAuB;YACzB,CAAC,CAAC,gCAAgC,CACrC,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC;YAC3C,WAAW,EACT,YAAY,KAAK,SAAS;gBACxB,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,kBAAkB,KAAK,SAAS,IAAI,kBAAkB,KAAK,EAAE;oBAC7D,CAAC,CAAC,kBAAkB;oBACpB,CAAC,CAAC,SAAS;YACjB,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,IAAI;YAC3B,mBAAmB,EACjB,CAAC,mBAAmB;gBACpB,YAAY,KAAK,SAAS;gBAC1B,CAAC,kBAAkB,KAAK,EAAE;oBACxB,CAAC,kBAAkB,KAAK,SAAS,IAAI,CAAC,2BAA2B,CAAC,CAAC;YACvE,UAAU,EAAE,EAAE;YACd,UAAU;SACX,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,GAAG,CACR,KAAK,MAAM,CAAC,UAAU,cAAc,MAAM,CAAC,cAAc,aAAa,CACvE,CAAC;IACJ,CAAC;IACD,UAAU,EAAE;QACV,KAAK,EAAE;YACL,KAAK,EAAE;gBACL,KAAK,EACH,oFAAoF;gBACtF,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,IAAI;aACf;YACD,OAAO,EAAE;gBACP,KAAK,EAAE,qCAAqC;gBAC5C,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,MAAM;gBACb,WAAW,EAAE,MAAM;aACpB;SACF;QACD,UAAU,EAAE;YACV,IAAI,EAAE,OAAO;YACb,UAAU,EAAE;gBACV;oBACE,KAAK,EAAE,kDAAkD;oBACzD,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,MAAM;oBACb,WAAW,EAAE,YAAY;iBAC1B;aACF;SACF;KACF;CACF,CAAC,CAAC;AAEH,eAAe,WAAW,CAAC"}
@@ -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,6 +1,7 @@
1
1
  import { DotweaveError } from "#app/lib/error.ts";
2
2
  export type InitRequest = Readonly<{
3
3
  ageIdentity?: string;
4
+ force?: boolean;
4
5
  generateAgeIdentity?: boolean;
5
6
  identityFile?: string;
6
7
  recipients: readonly string[];
@@ -16,5 +17,6 @@ export type InitResult = Readonly<{
16
17
  recipientCount: number;
17
18
  }>;
18
19
  export declare const createMissingRepositoryAgeKeyError: () => DotweaveError;
20
+ export declare const createAlreadyInitializedError: (syncDirectory: string) => DotweaveError;
19
21
  export declare const initializeSyncDirectory: (request: InitRequest) => Promise<InitResult>;
20
22
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/services/init.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,aAAa,EAAoB,MAAM,mBAAmB,CAAC;AAcpE,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;IAChC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,QAAQ,GAAG,UAAU,GAAG,aAAa,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC,CAAC;AAKH,eAAO,MAAM,kCAAkC,qBAQ9C,CAAC;AAoJF,eAAO,MAAM,uBAAuB,GAClC,SAAS,WAAW,KACnB,OAAO,CAAC,UAAU,CAuJpB,CAAC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/services/init.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,aAAa,EAAoB,MAAM,mBAAmB,CAAC;AAUpE,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;IAChC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,QAAQ,GAAG,UAAU,GAAG,aAAa,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC,CAAC;AAKH,eAAO,MAAM,kCAAkC,qBAQ9C,CAAC;AAEF,eAAO,MAAM,6BAA6B,GAAI,eAAe,MAAM,kBAMlE,CAAC;AAkGF,eAAO,MAAM,uBAAuB,GAClC,SAAS,WAAW,KACnB,OAAO,CAAC,UAAU,CA6IpB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { mkdir, readdir, readFile, writeFile } from "node:fs/promises";
1
+ import { mkdir, readdir, readFile, rm, writeFile } from "node:fs/promises";
2
2
  import { dirname, join } from "node:path";
3
3
  import { AppConstants } from "#app/config/constants.ts";
4
4
  import { formatGlobalDotweaveConfig, readGlobalDotweaveConfig, } from "#app/config/global-config.ts";
@@ -8,7 +8,7 @@ import { createInitialSyncConfig, formatSyncConfig, parseSyncConfig, readSyncCon
8
8
  import { createAgeIdentityFile, readAgeRecipientsFromIdentityFile, writeAgeIdentityFile, } from "#app/lib/crypto.ts";
9
9
  import { DotweaveError, wrapUnknownError } from "#app/lib/error.ts";
10
10
  import { pathExists, writeTextFileAtomically } from "#app/lib/filesystem.ts";
11
- import { initializeRepository, requireGitRepository, verifyIsGitRepository, } from "#app/lib/git.ts";
11
+ import { initializeRepository, verifyIsGitRepository } from "#app/lib/git.ts";
12
12
  import { validateJsoncConfigPath } from "#app/lib/jsonc.ts";
13
13
  import { resolveAgeFromSyncConfig, resolveSyncConfigResolutionContext, resolveSyncPaths, } from "./sync-context.js";
14
14
  const gitAttributesFileName = ".gitattributes";
@@ -16,7 +16,14 @@ const gitAttributesContents = "* -text\n";
16
16
  export const createMissingRepositoryAgeKeyError = () => {
17
17
  return new DotweaveError("Existing repository setup requires an age private key.", {
18
18
  code: "INIT_AGE_IDENTITY_REQUIRED",
19
- hint: "Provide your existing age private key with '--key' or '--promptKey'.",
19
+ hint: "Provide your existing age private key with '--key-file', or enter it when prompted in an interactive terminal.",
20
+ });
21
+ };
22
+ export const createAlreadyInitializedError = (syncDirectory) => {
23
+ return new DotweaveError("Sync directory is already initialized.", {
24
+ code: "INIT_ALREADY_INITIALIZED",
25
+ details: [`Sync directory: ${syncDirectory}`],
26
+ hint: "Use 'dotweave init --force' to replace the local sync repository data.",
20
27
  });
21
28
  };
22
29
  const normalizeRecipients = (recipients) => {
@@ -68,36 +75,6 @@ const resolveInitAgeBootstrap = async (request) => {
68
75
  recipients: normalizeRecipients([...explicitRecipients, recipient]),
69
76
  };
70
77
  };
71
- const assertRecipientMatch = (age, request) => {
72
- if (age === undefined) {
73
- return;
74
- }
75
- const recipients = normalizeRecipients(request.recipients);
76
- if (recipients.length > 0 &&
77
- JSON.stringify(recipients) !==
78
- JSON.stringify(normalizeRecipients([...age.recipients]))) {
79
- throw new DotweaveError("Sync configuration already exists with different age recipients.", {
80
- code: "INIT_RECIPIENT_MISMATCH",
81
- details: [
82
- `Requested recipients: ${recipients.join(", ") || "(none)"}`,
83
- `Configured recipients: ${normalizeRecipients([...age.recipients]).join(", ")}`,
84
- ],
85
- hint: `Use the existing recipients, or update ${AppConstants.SYNC.CONFIG_FILE_NAME} manually if you intend to rotate recipients.`,
86
- });
87
- }
88
- };
89
- const buildAlreadyInitializedResult = (config, base) => {
90
- const age = config.age !== undefined ? resolveAgeFromSyncConfig(config.age) : undefined;
91
- return {
92
- alreadyInitialized: true,
93
- entryCount: config.entries.length,
94
- gitAction: base.gitAction,
95
- ...(base.gitSource === undefined ? {} : { gitSource: base.gitSource }),
96
- generatedIdentity: false,
97
- identityFile: age?.identityFile ?? "",
98
- recipientCount: age?.recipients.length ?? 0,
99
- };
100
- };
101
78
  const writeGlobalSettings = async (globalConfigPath) => {
102
79
  const existingGlobalConfig = await readGlobalDotweaveConfig(globalConfigPath);
103
80
  const globalConfigToWrite = {
@@ -120,9 +97,14 @@ const ensureManagedRepositoryAttributes = async (syncDirectory) => {
120
97
  export const initializeSyncDirectory = async (request) => {
121
98
  const { syncDirectory, configPath, globalConfigPath } = resolveSyncPaths();
122
99
  const context = resolveSyncConfigResolutionContext();
100
+ const identityFile = resolveDefaultIdentityFile(resolveDotweaveHomeDirectoryFromEnv());
101
+ if (request.force === true) {
102
+ await rm(syncDirectory, { force: true, recursive: true });
103
+ await rm(identityFile, { force: true });
104
+ await rm(globalConfigPath, { force: true });
105
+ }
123
106
  const resolvedConfigPath = await validateJsoncConfigPath(configPath);
124
107
  const configExists = await pathExists(resolvedConfigPath);
125
- const identityFile = resolveDefaultIdentityFile(resolveDotweaveHomeDirectoryFromEnv());
126
108
  const importingRepository = request.repository !== undefined && request.repository.trim() !== "";
127
109
  if (importingRepository &&
128
110
  request.ageIdentity === undefined &&
@@ -130,14 +112,7 @@ export const initializeSyncDirectory = async (request) => {
130
112
  throw createMissingRepositoryAgeKeyError();
131
113
  }
132
114
  if (configExists) {
133
- await requireGitRepository(syncDirectory);
134
- await ensureManagedRepositoryAttributes(syncDirectory);
135
- const config = await readSyncConfig(syncDirectory, context);
136
- assertRecipientMatch(config.age, request);
137
- await resolveInitAgeBootstrap(request);
138
- return buildAlreadyInitializedResult(config, {
139
- gitAction: "existing",
140
- });
115
+ throw createAlreadyInitializedError(syncDirectory);
141
116
  }
142
117
  await mkdir(dirname(syncDirectory), {
143
118
  recursive: true,
@@ -190,12 +165,6 @@ export const initializeSyncDirectory = async (request) => {
190
165
  if (await pathExists(await validateJsoncConfigPath(configPath))) {
191
166
  const config = await readSyncConfig(syncDirectory, context);
192
167
  const ageBootstrap = await resolveInitAgeBootstrap(request);
193
- if (configExists) {
194
- return buildAlreadyInitializedResult(config, {
195
- gitAction,
196
- gitSource,
197
- });
198
- }
199
168
  await writeGlobalSettings(globalConfigPath);
200
169
  const age = config.age !== undefined
201
170
  ? resolveAgeFromSyncConfig(config.age)
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/services/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/services/init.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":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,OAAO,EAAE,mCAAmC,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EACL,wBAAwB,EACxB,+BAA+B,GAChC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,wBAAwB,EACxB,qBAAqB,GAItB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACL,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AAmBzB,MAAM,4BAA4B,GAAG,CACnC,QAAgB,EACK,EAAE,CAAC,CAAC;IACzB,OAAO,EAAE,qBAAqB,CAAC,QAAQ,CAAC;CACzC,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,KAAK,EACpC,UAAkB,EAClB,aAAqB,EACrB,aAAqB,EACrB,KAKE,EACF,EAAE;IACF,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;IAEnD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,IAAI,aAAa,CAAC,6BAA6B,EAAE;YACrD,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,CAAC,WAAW,UAAU,EAAE,CAAC;YAClC,IAAI,EAAE,iEAAiE;SACxE,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE;QACjB,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9B,OAAO,WAAoB,CAAC;QAC9B,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,WAAW,CAAC,cAAc,EAAE,EAAE,CAAC;YACzD,OAAO,MAAe,CAAC;QACzB,CAAC;QAED,MAAM,IAAI,aAAa,CAAC,oCAAoC,EAAE;YAC5D,IAAI,EAAE,yBAAyB;YAC/B,OAAO,EAAE,CAAC,WAAW,UAAU,EAAE,CAAC;YAClC,IAAI,EAAE,8CAA8C;SACrD,CAAC,CAAC;IACL,CAAC,CAAC,EAAE,CAAC;IAEL,IAAI,cAAc,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,aAAa,CACrB,mDAAmD,EACnD;YACE,IAAI,EAAE,0BAA0B;YAChC,OAAO,EAAE,CAAC,WAAW,UAAU,EAAE,EAAE,mBAAmB,aAAa,EAAE,CAAC;YACtE,IAAI,EAAE,oDAAoD;SAC3D,CACF,CAAC;IACJ,CAAC;IAED,IACE,KAAK,CAAC,YAAY,KAAK,SAAS;QAChC,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,EAC9C,CAAC;QACD,MAAM,IAAI,aAAa,CACrB,wDAAwD,EACxD;YACE,IAAI,EAAE,0BAA0B;YAChC,OAAO,EAAE;gBACP,WAAW,UAAU,EAAE;gBACvB,sBAAsB,KAAK,CAAC,YAAY,EAAE;aAC3C;YACD,IAAI,EAAE,sDAAsD;SAC7D,CACF,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,uBAAuB,CAC3C,UAAU,EACV,aAAa,EACb,aAAa,CACd,CAAC;IACF,MAAM,mBAAmB,GAAG,4BAA4B,CAAC,aAAa,CAAC,CAAC;IACxE,MAAM,kBAAkB,GACtB,KAAK,CAAC,QAAQ,KAAK,SAAS;QAC1B,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,4BAA4B,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,kBAAkB,EAAE,OAAO,IAAI,aAAa,CAAC;IAE9D,OAAO;QACL,mBAAmB;QACnB,GAAG,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC;QACnE,IAAI;QACJ,SAAS,EAAE,UAAU;QACrB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;QACvE,gBAAgB,EAAE,KAAK,CAAC,QAAQ,KAAK,SAAS;QAC9C,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC;QACpD,kBAAkB,EAAE,KAAK;QACzB,QAAQ;KACyB,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAChC,iBAAgD,EAChD,oBAAuC,EAAE,EACzC,EAAE;IACF,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACpC,OAAO;IACT,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;QAC5B,YAAY,CAAC,IAAI,CAAC,eAAe;QACjC,GAAG,iBAAiB;KACrB,CAAC,CAAC;IAEH,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE,CAAC;QACxC,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;QAE5D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,aAAa,CAAC,oBAAoB,iBAAiB,IAAI,EAAE;gBACjE,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,qCAAqC,iBAAiB,mCAAmC;aAChG,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC9B,OAAqB,EACrB,GAAW,EACW,EAAE;IACxB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAErC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,aAAa,CAAC,0BAA0B,EAAE;YAClD,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,2EAA2E;SAClF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,sBAAsB,EAAE,CAAC;IAC1E,MAAM,YAAY,GAChB,MAAM,CAAC,GAAG,KAAK,SAAS;QACtB,CAAC,CAAC,0BAA0B,CAAC,mCAAmC,EAAE,CAAC;QACnE,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,cAAc,GAClB,OAAO,CAAC,QAAQ,KAAK,SAAS;QAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAC7B,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAC7B,MAAM,iBAAiB,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACjE,yBAAyB,CAAC,iBAAiB,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE9D,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAC9C,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,EAC3D,aAAa,EACb,OAAO,CAAC,aAAa,EACrB;QACE,YAAY;QACZ,QAAQ,EAAE,iBAAiB;QAC3B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CACF,CAAC;IACF,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CACvC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,SAAS,CACnD,CAAC;IACF,MAAM,cAAc,GAClB,aAAa,KAAK,SAAS,IAAI,aAAa,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC;IAEvE,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;QACzE,MAAM,IAAI,aAAa,CACrB,uDAAuD,EACvD;YACE,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE;gBACP,yBAAyB,SAAS,CAAC,SAAS,EAAE;gBAC9C,wBAAwB,SAAS,CAAC,QAAQ,EAAE;gBAC5C,mBAAmB,aAAa,CAAC,SAAS,OAAO,aAAa,CAAC,QAAQ,EAAE;aAC1E;YACD,IAAI,EAAE,+DAA+D;SACtE,CACF,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GACb,aAAa,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;QAC3D,CAAC,CAAC;YACE,GAAG,SAAS;YACZ,kBAAkB,EAAE,aAAa,CAAC,kBAAkB;YACpD,QAAQ,EAAE,aAAa,CAAC,QAAQ;SACjC;QACH,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QACrD,OAAO,CACL,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ;YACrC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,SAAS,CACxC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,IAAI,aAAa,CACrB,uDAAuD,EACvD;YACE,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE;gBACP,yBAAyB,SAAS,CAAC,SAAS,EAAE;gBAC9C,wBAAwB,SAAS,CAAC,QAAQ,EAAE;gBAC5C,mBAAmB,gBAAgB,CAAC,SAAS,OAAO,gBAAgB,CAAC,QAAQ,EAAE;aAChF;YACD,IAAI,EAAE,4DAA4D;SACnE,CACF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,UAAU,GAAG,uBAAuB,CAAC;YACzC,GAAG,MAAM;YACT,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC;SACxC,CAAC,CAAC;QAEH,MAAM,wBAAwB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAE1D,OAAO;YACL,cAAc;YACd,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,QAAQ,EAAE,SAAS,CAAC,QAAQ;SAC7B,CAAC;IACJ,CAAC;IAED,MAAM,uBAAuB,GAAG,wBAAwB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,MAAM,WAAW,GACf,aAAa,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI;QACpC,aAAa,EAAE,cAAc,CAAC,OAAO,KAAK,uBAAuB,CAAC,OAAO;QACzE,CAAC,aAAa,KAAK,SAAS;YAC1B,+BAA+B,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;IACnE,MAAM,eAAe,GACnB,iBAAiB,KAAK,SAAS;QAC/B,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,QAAQ,CAAC,MAAM;YAC3D,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,eAAe,GACnB,OAAO,CAAC,QAAQ,KAAK,SAAS;QAC9B,CAAC,aAAa,EAAE,QAAQ,KAAK,SAAS,CAAC,QAAQ;YAC7C,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,kBAAkB,CAAC;gBAC/C,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,WAAW,IAAI,eAAe,IAAI,eAAe,CAAC;IAElE,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,UAAU,GAAG,uBAAuB,CAAC;YACzC,GAAG,MAAM;YACT,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACpC,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,SAAS,EAAE,CAAC;oBAC5C,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,OAAO;oBACL,GAAG,KAAK;oBACR,GAAG,CAAC,eAAe;wBACjB,CAAC,CAAC;4BACE,kBAAkB,EAAE,SAAS,CAAC,kBAAkB;4BAChD,QAAQ,EAAE,SAAS,CAAC,QAAQ;yBAC7B;wBACH,CAAC,CAAC,EAAE,CAAC;oBACP,GAAG,CAAC,WAAW;wBACb,CAAC,CAAC;4BACE,cAAc,EAAE,uBAAuB;4BACvC,IAAI,EAAE,OAAO,CAAC,IAAI;yBACnB;wBACH,CAAC,CAAC,EAAE,CAAC;oBACP,GAAG,CAAC,eAAe;wBACjB,CAAC,CAAC;4BACE,QAAQ,EAAE,SAAS,CAAC,QAAQ;4BAC5B,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;yBAC7C;wBACH,CAAC,CAAC,EAAE,CAAC;iBACR,CAAC;YACJ,CAAC,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,wBAAwB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO;QACL,cAAc;QACd,OAAO;QACP,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,QAAQ,EAAE,eAAe;YACvB,CAAC,CAAC,SAAS,CAAC,QAAQ;YACpB,CAAC,CAAC,CAAC,aAAa,EAAE,QAAQ,IAAI,EAAE,CAAC;QACnC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;QACxE,QAAQ,EACN,eAAe,IAAI,CAAC,cAAc;YAChC,CAAC,CAAC,SAAS,CAAC,QAAQ;YACpB,CAAC,CAAC,CAAC,aAAa,EAAE,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC;KACtD,CAAC;AACJ,CAAC,CAAC"}
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.44.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",