@tinyrack/devsync 1.3.0 → 1.4.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.
- package/README.md +116 -78
- package/dist/cli/base-command.d.ts +3 -0
- package/dist/cli/base-command.d.ts.map +1 -1
- package/dist/cli/base-command.js +7 -1
- package/dist/cli/base-command.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +3 -4
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/index.d.ts +4 -4
- package/dist/cli/commands/index.js +4 -4
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +1 -2
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/{machine → profile}/list.d.ts +1 -1
- package/dist/cli/commands/profile/list.d.ts.map +1 -0
- package/dist/cli/commands/profile/list.js +14 -0
- package/dist/cli/commands/profile/list.js.map +1 -0
- package/dist/cli/commands/{machine → profile}/use.d.ts +2 -2
- package/dist/cli/commands/{machine → profile}/use.d.ts.map +1 -1
- package/dist/cli/commands/profile/use.js +26 -0
- package/dist/cli/commands/profile/use.js.map +1 -0
- package/dist/cli/commands/pull.d.ts +1 -1
- package/dist/cli/commands/pull.d.ts.map +1 -1
- package/dist/cli/commands/pull.js +7 -8
- package/dist/cli/commands/pull.js.map +1 -1
- package/dist/cli/commands/push.d.ts +1 -1
- package/dist/cli/commands/push.d.ts.map +1 -1
- package/dist/cli/commands/push.js +6 -7
- package/dist/cli/commands/push.js.map +1 -1
- package/dist/cli/commands/status.d.ts +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +8 -9
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/track.d.ts +1 -1
- package/dist/cli/commands/track.d.ts.map +1 -1
- package/dist/cli/commands/track.js +18 -18
- package/dist/cli/commands/track.js.map +1 -1
- package/dist/cli/commands/untrack.d.ts.map +1 -1
- package/dist/cli/commands/untrack.js +2 -3
- package/dist/cli/commands/untrack.js.map +1 -1
- package/dist/config/global-config.d.ts +7 -7
- package/dist/config/global-config.js +11 -11
- package/dist/config/platform.d.ts +3 -3
- package/dist/config/platform.d.ts.map +1 -1
- package/dist/config/platform.js +1 -1
- package/dist/config/platform.js.map +1 -1
- package/dist/config/sync.d.ts +17 -18
- package/dist/config/sync.d.ts.map +1 -1
- package/dist/config/sync.js +48 -49
- package/dist/config/sync.js.map +1 -1
- package/dist/config/xdg.js +1 -1
- package/dist/config/xdg.js.map +1 -1
- package/dist/lib/output.d.ts +24 -16
- package/dist/lib/output.d.ts.map +1 -1
- package/dist/lib/output.js +179 -146
- package/dist/lib/output.js.map +1 -1
- package/dist/services/add.d.ts +3 -4
- package/dist/services/add.d.ts.map +1 -1
- package/dist/services/add.js +38 -40
- package/dist/services/add.js.map +1 -1
- package/dist/services/config-file.d.ts +3 -3
- package/dist/services/config-file.js +3 -3
- package/dist/services/config-file.js.map +1 -1
- package/dist/services/doctor.d.ts +2 -3
- package/dist/services/doctor.d.ts.map +1 -1
- package/dist/services/doctor.js +23 -20
- package/dist/services/doctor.js.map +1 -1
- package/dist/services/filesystem.d.ts +2 -3
- package/dist/services/filesystem.d.ts.map +1 -1
- package/dist/services/filesystem.js +0 -1
- package/dist/services/filesystem.js.map +1 -1
- package/dist/services/forget.d.ts +1 -2
- package/dist/services/forget.d.ts.map +1 -1
- package/dist/services/forget.js +20 -18
- package/dist/services/forget.js.map +1 -1
- package/dist/services/init.d.ts +1 -2
- package/dist/services/init.d.ts.map +1 -1
- package/dist/services/init.js +19 -20
- package/dist/services/init.js.map +1 -1
- package/dist/services/local-materialization.d.ts +1 -1
- package/dist/services/local-materialization.js +4 -4
- package/dist/services/local-snapshot.d.ts +1 -1
- package/dist/services/local-snapshot.js +4 -4
- package/dist/services/local-snapshot.js.map +1 -1
- package/dist/services/paths.d.ts +3 -7
- package/dist/services/paths.d.ts.map +1 -1
- package/dist/services/paths.js +2 -3
- package/dist/services/paths.js.map +1 -1
- package/dist/services/profile.d.ts +39 -0
- package/dist/services/profile.d.ts.map +1 -0
- package/dist/services/profile.js +117 -0
- package/dist/services/profile.js.map +1 -0
- package/dist/services/pull.d.ts +5 -5
- package/dist/services/pull.d.ts.map +1 -1
- package/dist/services/pull.js +15 -12
- package/dist/services/pull.js.map +1 -1
- package/dist/services/push.d.ts +5 -5
- package/dist/services/push.d.ts.map +1 -1
- package/dist/services/push.js +16 -14
- package/dist/services/push.js.map +1 -1
- package/dist/services/repo-artifacts.d.ts +9 -9
- package/dist/services/repo-artifacts.js +22 -22
- package/dist/services/repo-snapshot.js +12 -12
- package/dist/services/runtime.d.ts +11 -20
- package/dist/services/runtime.d.ts.map +1 -1
- package/dist/services/runtime.js +20 -27
- package/dist/services/runtime.js.map +1 -1
- package/dist/services/set.d.ts +7 -9
- package/dist/services/set.d.ts.map +1 -1
- package/dist/services/set.js +24 -24
- package/dist/services/set.js.map +1 -1
- package/dist/services/status.d.ts +5 -7
- package/dist/services/status.d.ts.map +1 -1
- package/dist/services/status.js +16 -14
- package/dist/services/status.js.map +1 -1
- package/package.json +7 -7
- package/dist/cli/commands/machine/list.d.ts.map +0 -1
- package/dist/cli/commands/machine/list.js +0 -12
- package/dist/cli/commands/machine/list.js.map +0 -1
- package/dist/cli/commands/machine/use.js +0 -28
- package/dist/cli/commands/machine/use.js.map +0 -1
- package/dist/services/machine.d.ts +0 -40
- package/dist/services/machine.d.ts.map +0 -1
- package/dist/services/machine.js +0 -113
- package/dist/services/machine.js.map +0 -1
package/dist/services/init.js
CHANGED
|
@@ -7,7 +7,7 @@ import { createAgeIdentityFile, readAgeRecipientsFromIdentityFile, } from "./cry
|
|
|
7
7
|
import { DevsyncError, wrapUnknownError } from "./error.js";
|
|
8
8
|
import { pathExists, writeTextFileAtomically } from "./filesystem.js";
|
|
9
9
|
import { ensureRepository, initializeRepository } from "./git.js";
|
|
10
|
-
import { ensureSyncRepository, resolveAgeFromSyncConfig, } from "./runtime.js";
|
|
10
|
+
import { ensureSyncRepository, resolveAgeFromSyncConfig, resolveSyncPaths, } from "./runtime.js";
|
|
11
11
|
const defaultSyncIdentityFile = "$XDG_CONFIG_HOME/devsync/age/keys.txt";
|
|
12
12
|
const normalizeRecipients = (recipients) => {
|
|
13
13
|
return [
|
|
@@ -16,9 +16,9 @@ const normalizeRecipients = (recipients) => {
|
|
|
16
16
|
return left.localeCompare(right);
|
|
17
17
|
});
|
|
18
18
|
};
|
|
19
|
-
const resolveInitAgeBootstrap = async (request,
|
|
19
|
+
const resolveInitAgeBootstrap = async (request, environment) => {
|
|
20
20
|
const configuredIdentityFile = request.identityFile?.trim() || defaultSyncIdentityFile;
|
|
21
|
-
const identityFile = resolveConfiguredAbsolutePath(configuredIdentityFile,
|
|
21
|
+
const identityFile = resolveConfiguredAbsolutePath(configuredIdentityFile, environment);
|
|
22
22
|
const explicitRecipients = normalizeRecipients(request.recipients);
|
|
23
23
|
if (explicitRecipients.length === 0) {
|
|
24
24
|
if (await pathExists(identityFile)) {
|
|
@@ -99,15 +99,14 @@ const buildAlreadyInitializedResult = (config, environment, base) => {
|
|
|
99
99
|
syncDirectory: base.syncDirectory,
|
|
100
100
|
};
|
|
101
101
|
};
|
|
102
|
-
export const initializeSync = async (request,
|
|
103
|
-
const syncDirectory =
|
|
104
|
-
const configPath = context.paths.configPath;
|
|
102
|
+
export const initializeSync = async (request, environment) => {
|
|
103
|
+
const { syncDirectory, configPath, globalConfigPath } = resolveSyncPaths(environment);
|
|
105
104
|
const configExists = await pathExists(configPath);
|
|
106
105
|
if (configExists) {
|
|
107
|
-
await ensureSyncRepository(
|
|
108
|
-
const config = await readSyncConfig(syncDirectory,
|
|
109
|
-
assertInitRequestMatchesConfig(config.age, request,
|
|
110
|
-
return buildAlreadyInitializedResult(config,
|
|
106
|
+
await ensureSyncRepository(syncDirectory);
|
|
107
|
+
const config = await readSyncConfig(syncDirectory, environment);
|
|
108
|
+
assertInitRequestMatchesConfig(config.age, request, environment);
|
|
109
|
+
return buildAlreadyInitializedResult(config, environment, {
|
|
111
110
|
configPath,
|
|
112
111
|
gitAction: "existing",
|
|
113
112
|
syncDirectory,
|
|
@@ -163,30 +162,30 @@ export const initializeSync = async (request, context) => {
|
|
|
163
162
|
recursive: true,
|
|
164
163
|
});
|
|
165
164
|
if (await pathExists(configPath)) {
|
|
166
|
-
const config = await readSyncConfig(syncDirectory,
|
|
167
|
-
assertInitRequestMatchesConfig(config.age, request,
|
|
168
|
-
return buildAlreadyInitializedResult(config,
|
|
165
|
+
const config = await readSyncConfig(syncDirectory, environment);
|
|
166
|
+
assertInitRequestMatchesConfig(config.age, request, environment);
|
|
167
|
+
return buildAlreadyInitializedResult(config, environment, {
|
|
169
168
|
configPath,
|
|
170
169
|
gitAction,
|
|
171
170
|
gitSource,
|
|
172
171
|
syncDirectory,
|
|
173
172
|
});
|
|
174
173
|
}
|
|
175
|
-
const ageBootstrap = await resolveInitAgeBootstrap(request,
|
|
174
|
+
const ageBootstrap = await resolveInitAgeBootstrap(request, environment);
|
|
176
175
|
// Write global settings.json (without age)
|
|
177
|
-
const existingGlobalConfig = await readGlobalDevsyncConfig(
|
|
176
|
+
const existingGlobalConfig = await readGlobalDevsyncConfig(environment);
|
|
178
177
|
const globalConfigToWrite = {
|
|
179
|
-
|
|
178
|
+
activeProfile: existingGlobalConfig?.activeProfile ?? "default",
|
|
180
179
|
version: 3,
|
|
181
180
|
};
|
|
182
|
-
await mkdir(dirname(
|
|
183
|
-
await writeTextFileAtomically(
|
|
181
|
+
await mkdir(dirname(globalConfigPath), { recursive: true });
|
|
182
|
+
await writeTextFileAtomically(globalConfigPath, formatGlobalDevsyncConfig(globalConfigToWrite));
|
|
184
183
|
// Write sync manifest with age
|
|
185
184
|
const initialConfig = createInitialSyncConfig({
|
|
186
185
|
identityFile: ageBootstrap.configuredIdentityFile,
|
|
187
186
|
recipients: [...new Set(ageBootstrap.recipients.map((r) => r.trim()))],
|
|
188
187
|
});
|
|
189
|
-
parseSyncConfig(initialConfig,
|
|
188
|
+
parseSyncConfig(initialConfig, environment);
|
|
190
189
|
await writeFile(configPath, formatSyncConfig(initialConfig), "utf8");
|
|
191
190
|
return {
|
|
192
191
|
alreadyInitialized: false,
|
|
@@ -195,7 +194,7 @@ export const initializeSync = async (request, context) => {
|
|
|
195
194
|
gitAction,
|
|
196
195
|
...(gitSource === undefined ? {} : { gitSource }),
|
|
197
196
|
generatedIdentity: ageBootstrap.generatedIdentity,
|
|
198
|
-
identityFile: resolveConfiguredAbsolutePath(ageBootstrap.configuredIdentityFile,
|
|
197
|
+
identityFile: resolveConfiguredAbsolutePath(ageBootstrap.configuredIdentityFile, environment),
|
|
199
198
|
recipientCount: ageBootstrap.recipients.length,
|
|
200
199
|
syncDirectory,
|
|
201
200
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/services/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EACL,yBAAyB,EAEzB,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/services/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type ResolvedSyncConfig, type ResolvedSyncConfigEntry } from "#app/config/sync.js";
|
|
2
2
|
import type { FileLikeSnapshotNode, SnapshotNode } from "./local-snapshot.js";
|
|
3
3
|
type MaterializationConfig = ResolvedSyncConfig & Readonly<{
|
|
4
|
-
|
|
4
|
+
activeProfile?: string;
|
|
5
5
|
}>;
|
|
6
6
|
type EntryMaterialization = Readonly<{
|
|
7
7
|
desiredKeys: ReadonlySet<string>;
|
|
@@ -11,7 +11,7 @@ const copyIgnoredLocalNodesToDirectory = async (sourceDirectory, targetDirectory
|
|
|
11
11
|
}
|
|
12
12
|
let copiedNodeCount = 0;
|
|
13
13
|
const entries = await listDirectoryEntries(sourceDirectory);
|
|
14
|
-
const directoryMode = resolveManagedSyncMode(config, repoPathPrefix, config.
|
|
14
|
+
const directoryMode = resolveManagedSyncMode(config, repoPathPrefix, config.activeProfile);
|
|
15
15
|
if (directoryMode === "ignore") {
|
|
16
16
|
await mkdir(targetDirectory, { recursive: true });
|
|
17
17
|
copiedNodeCount += 1;
|
|
@@ -25,7 +25,7 @@ const copyIgnoredLocalNodesToDirectory = async (sourceDirectory, targetDirectory
|
|
|
25
25
|
copiedNodeCount += await copyIgnoredLocalNodesToDirectory(sourcePath, targetPath, config, repoPath);
|
|
26
26
|
continue;
|
|
27
27
|
}
|
|
28
|
-
if (resolveManagedSyncMode(config, repoPath, config.
|
|
28
|
+
if (resolveManagedSyncMode(config, repoPath, config.activeProfile) !==
|
|
29
29
|
"ignore") {
|
|
30
30
|
continue;
|
|
31
31
|
}
|
|
@@ -165,7 +165,7 @@ const collectIgnoredLocalKeys = async (targetPath, repoPath, config, keys) => {
|
|
|
165
165
|
if (stats === undefined) {
|
|
166
166
|
return false;
|
|
167
167
|
}
|
|
168
|
-
const mode = resolveManagedSyncMode(config, repoPath, config.
|
|
168
|
+
const mode = resolveManagedSyncMode(config, repoPath, config.activeProfile);
|
|
169
169
|
if (!stats.isDirectory()) {
|
|
170
170
|
if (mode !== "ignore") {
|
|
171
171
|
return false;
|
|
@@ -197,7 +197,7 @@ export const countDeletedLocalNodes = async (entry, desiredKeys, config, existin
|
|
|
197
197
|
};
|
|
198
198
|
export const applyEntryMaterialization = async (entry, materialization, config) => {
|
|
199
199
|
if (entry.kind === "file" &&
|
|
200
|
-
resolveManagedSyncMode(config, entry.repoPath, config.
|
|
200
|
+
resolveManagedSyncMode(config, entry.repoPath, config.activeProfile) ===
|
|
201
201
|
"ignore") {
|
|
202
202
|
return;
|
|
203
203
|
}
|
|
@@ -13,7 +13,7 @@ export const addSnapshotNode = (snapshot, repoPath, node) => {
|
|
|
13
13
|
};
|
|
14
14
|
const addLocalNode = async (snapshot, config, repoPath, path, stats) => {
|
|
15
15
|
assertStorageSafeRepoPath(repoPath);
|
|
16
|
-
const mode = resolveManagedSyncMode(config, repoPath, config.
|
|
16
|
+
const mode = resolveManagedSyncMode(config, repoPath, config.activeProfile);
|
|
17
17
|
if (mode === "ignore") {
|
|
18
18
|
return;
|
|
19
19
|
}
|
|
@@ -65,19 +65,19 @@ export const buildLocalSnapshot = async (config) => {
|
|
|
65
65
|
if (stats === undefined) {
|
|
66
66
|
continue;
|
|
67
67
|
}
|
|
68
|
-
const entryMode = resolveManagedSyncMode(config, entry.repoPath, config.
|
|
68
|
+
const entryMode = resolveManagedSyncMode(config, entry.repoPath, config.activeProfile);
|
|
69
69
|
if (entry.kind === "file") {
|
|
70
70
|
if (entryMode === "ignore") {
|
|
71
71
|
continue;
|
|
72
72
|
}
|
|
73
73
|
if (stats.isDirectory()) {
|
|
74
|
-
throw new DevsyncError(`Sync entry ${entry.
|
|
74
|
+
throw new DevsyncError(`Sync entry ${entry.repoPath} expects a file, but found a directory: ${entry.localPath}`);
|
|
75
75
|
}
|
|
76
76
|
await addLocalNode(snapshot, config, entry.repoPath, entry.localPath, stats);
|
|
77
77
|
continue;
|
|
78
78
|
}
|
|
79
79
|
if (!stats.isDirectory()) {
|
|
80
|
-
throw new DevsyncError(`Sync entry ${entry.
|
|
80
|
+
throw new DevsyncError(`Sync entry ${entry.repoPath} expects a directory: ${entry.localPath}`);
|
|
81
81
|
}
|
|
82
82
|
const childEntryPaths = new Set([...allEntryPaths].filter((p) => p !== entry.repoPath && p.startsWith(`${entry.repoPath}/`)));
|
|
83
83
|
const snapshotSizeBeforeWalk = snapshot.size;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-snapshot.js","sourceRoot":"","sources":["../../src/services/local-snapshot.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"local-snapshot.js","sourceRoot":"","sources":["../../src/services/local-snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAEL,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAgChE,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,QAAmC,EACnC,QAAgB,EAChB,IAAkB,EAClB,EAAE;IACF,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,YAAY,CAAC,qCAAqC,QAAQ,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,KAAK,EACxB,QAAmC,EACnC,MAAsB,EACtB,QAAgB,EAChB,IAAY,EACZ,KAAwC,EACxC,EAAE;IACF,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IAE5E,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IAED,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;QACxB,MAAM,IAAI,YAAY,CACpB,oDAAoD,IAAI,EAAE,CAC3D,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;QAC3B,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,YAAY,CACpB,0DAA0D,QAAQ,EAAE,CACrE,CAAC;QACJ,CAAC;QAED,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE;YAClC,UAAU,EAAE,MAAM,QAAQ,CAAC,IAAI,CAAC;YAChC,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;QAEH,OAAO;IACT,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QACpB,MAAM,IAAI,YAAY,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE;QAClC,QAAQ,EAAE,MAAM,QAAQ,CAAC,IAAI,CAAC;QAC9B,UAAU,EAAE,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC;QACxC,MAAM,EAAE,IAAI,KAAK,QAAQ;QACzB,IAAI,EAAE,MAAM;KACb,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,KAAK,EAC9B,QAAmC,EACnC,MAAsB,EACtB,cAAsB,EACtB,cAAsB,EACtB,eAAoC,EACpC,EAAE;IACF,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAE3D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAExD,IAAI,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC;QAErC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,yBAAyB,CAAC,QAAQ,CAAC,CAAC;YACpC,MAAM,kBAAkB,CACtB,QAAQ,EACR,MAAM,EACN,SAAS,EACT,QAAQ,EACR,eAAe,CAChB,CAAC;YACF,SAAS;QACX,CAAC;QAED,MAAM,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,MAAsB,EAAE,EAAE;IACjE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;IACjD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAErE,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAElD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,sBAAsB,CACtC,MAAM,EACN,KAAK,CAAC,QAAQ,EACd,MAAM,CAAC,aAAa,CACrB,CAAC;QAEF,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1B,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC3B,SAAS;YACX,CAAC;YAED,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,MAAM,IAAI,YAAY,CACpB,cAAc,KAAK,CAAC,QAAQ,2CAA2C,KAAK,CAAC,SAAS,EAAE,CACzF,CAAC;YACJ,CAAC;YAED,MAAM,YAAY,CAChB,QAAQ,EACR,MAAM,EACN,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,SAAS,EACf,KAAK,CACN,CAAC;YACF,SAAS;QACX,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,YAAY,CACpB,cAAc,KAAK,CAAC,QAAQ,yBAAyB,KAAK,CAAC,SAAS,EAAE,CACvE,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,GAAG,CAC7B,CAAC,GAAG,aAAa,CAAC,CAAC,MAAM,CACvB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,GAAG,CAAC,CAClE,CACF,CAAC;QAEF,MAAM,sBAAsB,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC7C,MAAM,kBAAkB,CACtB,QAAQ,EACR,MAAM,EACN,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,QAAQ,EACd,eAAe,CAChB,CAAC;QAEF,IAAI,SAAS,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,GAAG,sBAAsB,EAAE,CAAC;YACrE,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE;gBACxC,IAAI,EAAE,WAAW;aAClB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC"}
|
package/dist/services/paths.d.ts
CHANGED
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { PlatformLocalPath } from "#app/config/platform.js";
|
|
2
2
|
import { type ResolvedSyncConfigEntry } from "#app/config/sync.js";
|
|
3
|
-
export { buildDirectoryKey, doPathsOverlap, isExplicitLocalPath, isPathEqualOrNested, } from "#app/lib/path.js";
|
|
4
3
|
export declare const resolveCommandTargetPath: (target: string, environment: NodeJS.ProcessEnv, cwd: string) => string;
|
|
5
4
|
export declare const buildRepoPathWithinRoot: (absolutePath: string, rootPath: string, description: string) => string;
|
|
6
|
-
export declare const buildConfiguredHomeLocalPath: (repoPath: string) =>
|
|
5
|
+
export declare const buildConfiguredHomeLocalPath: (repoPath: string) => PlatformLocalPath;
|
|
7
6
|
export declare const tryBuildRepoPathWithinRoot: (absolutePath: string, rootPath: string, description: string) => string | undefined;
|
|
8
7
|
export declare const tryNormalizeRepoPathInput: (value: string) => string | undefined;
|
|
9
|
-
export declare const resolveTrackedEntry: (target: string, entries: readonly ResolvedSyncConfigEntry[],
|
|
10
|
-
cwd: string;
|
|
11
|
-
environment: NodeJS.ProcessEnv;
|
|
12
|
-
}>) => ResolvedSyncConfigEntry | undefined;
|
|
8
|
+
export declare const resolveTrackedEntry: (target: string, entries: readonly ResolvedSyncConfigEntry[], environment: NodeJS.ProcessEnv, cwd: string) => ResolvedSyncConfigEntry | undefined;
|
|
13
9
|
//# sourceMappingURL=paths.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/services/paths.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/services/paths.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AAO7B,eAAO,MAAM,wBAAwB,GACnC,QAAQ,MAAM,EACd,aAAa,MAAM,CAAC,UAAU,EAC9B,KAAK,MAAM,WAGZ,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,cAAc,MAAM,EACpB,UAAU,MAAM,EAChB,aAAa,MAAM,WA+BpB,CAAC;AAEF,eAAO,MAAM,4BAA4B,GACvC,UAAU,MAAM,KACf,iBAEF,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,cAAc,MAAM,EACpB,UAAU,MAAM,EAChB,aAAa,MAAM,uBAOpB,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,OAAO,MAAM,uBAMtD,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,MAAM,EACd,SAAS,SAAS,uBAAuB,EAAE,EAC3C,aAAa,MAAM,CAAC,UAAU,EAC9B,KAAK,MAAM,KACV,uBAAuB,GAAG,SA0B5B,CAAC"}
|
package/dist/services/paths.js
CHANGED
|
@@ -2,7 +2,6 @@ import { isAbsolute, relative, resolve } from "node:path";
|
|
|
2
2
|
import { normalizeSyncRepoPath, } from "#app/config/sync.js";
|
|
3
3
|
import { expandHomePath } from "#app/config/xdg.js";
|
|
4
4
|
import { isExplicitLocalPath } from "#app/lib/path.js";
|
|
5
|
-
export { buildDirectoryKey, doPathsOverlap, isExplicitLocalPath, isPathEqualOrNested, } from "#app/lib/path.js";
|
|
6
5
|
import { DevsyncError } from "./error.js";
|
|
7
6
|
export const resolveCommandTargetPath = (target, environment, cwd) => {
|
|
8
7
|
return resolve(cwd, expandHomePath(target, environment));
|
|
@@ -46,8 +45,8 @@ export const tryNormalizeRepoPathInput = (value) => {
|
|
|
46
45
|
return undefined;
|
|
47
46
|
}
|
|
48
47
|
};
|
|
49
|
-
export const resolveTrackedEntry = (target, entries,
|
|
50
|
-
const resolvedTargetPath = resolveCommandTargetPath(target,
|
|
48
|
+
export const resolveTrackedEntry = (target, entries, environment, cwd) => {
|
|
49
|
+
const resolvedTargetPath = resolveCommandTargetPath(target, environment, cwd);
|
|
51
50
|
const byLocalPath = entries.filter((entry) => entry.localPath === resolvedTargetPath);
|
|
52
51
|
let matches;
|
|
53
52
|
if (byLocalPath.length > 0 || isExplicitLocalPath(target)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/services/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAG1D,OAAO,EACL,qBAAqB,GAEtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/services/paths.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export type SyncProfileAssignment = Readonly<{
|
|
2
|
+
entryLocalPath: string;
|
|
3
|
+
entryRepoPath: string;
|
|
4
|
+
profiles: readonly string[];
|
|
5
|
+
}>;
|
|
6
|
+
export type SyncProfileListResult = Readonly<{
|
|
7
|
+
activeProfile?: string;
|
|
8
|
+
activeProfileMode: "none" | "single";
|
|
9
|
+
assignments: readonly SyncProfileAssignment[];
|
|
10
|
+
availableProfiles: readonly string[];
|
|
11
|
+
globalConfigExists: boolean;
|
|
12
|
+
globalConfigPath: string;
|
|
13
|
+
syncDirectory: string;
|
|
14
|
+
}>;
|
|
15
|
+
export type SyncProfileUpdateResult = Readonly<{
|
|
16
|
+
activeProfile?: string;
|
|
17
|
+
action: "clear" | "use";
|
|
18
|
+
globalConfigPath: string;
|
|
19
|
+
profile?: string;
|
|
20
|
+
syncDirectory: string;
|
|
21
|
+
warning?: string;
|
|
22
|
+
}>;
|
|
23
|
+
type SyncProfileAssignRequest = Readonly<{
|
|
24
|
+
profiles: readonly string[];
|
|
25
|
+
target: string;
|
|
26
|
+
}>;
|
|
27
|
+
type SyncProfileAssignResult = Readonly<{
|
|
28
|
+
action: "assigned" | "unchanged";
|
|
29
|
+
configPath: string;
|
|
30
|
+
entryRepoPath: string;
|
|
31
|
+
profiles: readonly string[];
|
|
32
|
+
syncDirectory: string;
|
|
33
|
+
}>;
|
|
34
|
+
export declare const listSyncProfiles: (environment: NodeJS.ProcessEnv) => Promise<SyncProfileListResult>;
|
|
35
|
+
export declare const useSyncProfile: (profile: string, environment: NodeJS.ProcessEnv) => Promise<SyncProfileUpdateResult>;
|
|
36
|
+
export declare const clearSyncProfiles: (environment: NodeJS.ProcessEnv) => Promise<SyncProfileUpdateResult>;
|
|
37
|
+
export declare const assignSyncProfiles: (request: SyncProfileAssignRequest, environment: NodeJS.ProcessEnv, cwd: string) => Promise<SyncProfileAssignResult>;
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/services/profile.ts"],"names":[],"mappings":"AAmBA,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B,CAAC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,GAAG,QAAQ,CAAC;IACrC,WAAW,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC9C,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,GAAG,KAAK,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC,CAAC;AAEH,KAAK,wBAAwB,GAAG,QAAQ,CAAC;IACvC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC;AAEH,KAAK,uBAAuB,GAAG,QAAQ,CAAC;IACtC,MAAM,EAAE,UAAU,GAAG,WAAW,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC,CAAC;AAEH,eAAO,MAAM,gBAAgB,GAC3B,aAAa,MAAM,CAAC,UAAU,KAC7B,OAAO,CAAC,qBAAqB,CA+B/B,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,SAAS,MAAM,EACf,aAAa,MAAM,CAAC,UAAU,KAC7B,OAAO,CAAC,uBAAuB,CA4BjC,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,aAAa,MAAM,CAAC,UAAU,KAC7B,OAAO,CAAC,uBAAuB,CAejC,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,SAAS,wBAAwB,EACjC,aAAa,MAAM,CAAC,UAAU,EAC9B,KAAK,MAAM,KACV,OAAO,CAAC,uBAAuB,CAiEjC,CAAC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { formatGlobalDevsyncConfig, readGlobalDevsyncConfig, } from "#app/config/global-config.js";
|
|
2
|
+
import { collectAllProfileNames, normalizeSyncProfileName, readSyncConfig, } from "#app/config/sync.js";
|
|
3
|
+
import { createSyncConfigDocument, writeValidatedSyncConfig, } from "./config-file.js";
|
|
4
|
+
import { DevsyncError } from "./error.js";
|
|
5
|
+
import { writeTextFileAtomically } from "./filesystem.js";
|
|
6
|
+
import { resolveTrackedEntry } from "./paths.js";
|
|
7
|
+
import { ensureSyncRepository, resolveSyncPaths } from "./runtime.js";
|
|
8
|
+
export const listSyncProfiles = async (environment) => {
|
|
9
|
+
const { syncDirectory, globalConfigPath } = resolveSyncPaths(environment);
|
|
10
|
+
await ensureSyncRepository(syncDirectory);
|
|
11
|
+
const [globalConfig, syncConfig] = await Promise.all([
|
|
12
|
+
readGlobalDevsyncConfig(environment),
|
|
13
|
+
readSyncConfig(syncDirectory, environment),
|
|
14
|
+
]);
|
|
15
|
+
return {
|
|
16
|
+
...(globalConfig?.activeProfile === undefined
|
|
17
|
+
? {}
|
|
18
|
+
: { activeProfile: globalConfig.activeProfile }),
|
|
19
|
+
activeProfileMode: globalConfig?.activeProfile === undefined ? "none" : "single",
|
|
20
|
+
assignments: syncConfig.entries
|
|
21
|
+
.filter((entry) => entry.profilesExplicit && entry.profiles.length > 0)
|
|
22
|
+
.map((entry) => ({
|
|
23
|
+
entryLocalPath: entry.localPath,
|
|
24
|
+
entryRepoPath: entry.repoPath,
|
|
25
|
+
profiles: entry.profiles,
|
|
26
|
+
}))
|
|
27
|
+
.sort((left, right) => left.entryRepoPath.localeCompare(right.entryRepoPath)),
|
|
28
|
+
availableProfiles: collectAllProfileNames(syncConfig.entries),
|
|
29
|
+
globalConfigExists: globalConfig !== undefined,
|
|
30
|
+
globalConfigPath,
|
|
31
|
+
syncDirectory,
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export const useSyncProfile = async (profile, environment) => {
|
|
35
|
+
const normalizedProfile = normalizeSyncProfileName(profile);
|
|
36
|
+
const { syncDirectory, globalConfigPath } = resolveSyncPaths(environment);
|
|
37
|
+
await ensureSyncRepository(syncDirectory);
|
|
38
|
+
const syncConfig = await readSyncConfig(syncDirectory, environment);
|
|
39
|
+
const knownProfiles = collectAllProfileNames(syncConfig.entries);
|
|
40
|
+
const warning = knownProfiles.includes(normalizedProfile)
|
|
41
|
+
? undefined
|
|
42
|
+
: `Profile '${normalizedProfile}' is not referenced by any tracked entry.`;
|
|
43
|
+
await writeTextFileAtomically(globalConfigPath, formatGlobalDevsyncConfig({
|
|
44
|
+
activeProfile: normalizedProfile,
|
|
45
|
+
version: 3,
|
|
46
|
+
}));
|
|
47
|
+
return {
|
|
48
|
+
activeProfile: normalizedProfile,
|
|
49
|
+
globalConfigPath,
|
|
50
|
+
action: "use",
|
|
51
|
+
profile: normalizedProfile,
|
|
52
|
+
syncDirectory,
|
|
53
|
+
...(warning !== undefined ? { warning } : {}),
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
export const clearSyncProfiles = async (environment) => {
|
|
57
|
+
const { syncDirectory, globalConfigPath } = resolveSyncPaths(environment);
|
|
58
|
+
await ensureSyncRepository(syncDirectory);
|
|
59
|
+
await writeTextFileAtomically(globalConfigPath, formatGlobalDevsyncConfig({ version: 3 }));
|
|
60
|
+
return {
|
|
61
|
+
globalConfigPath,
|
|
62
|
+
action: "clear",
|
|
63
|
+
syncDirectory,
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
export const assignSyncProfiles = async (request, environment, cwd) => {
|
|
67
|
+
const target = request.target.trim();
|
|
68
|
+
if (target.length === 0) {
|
|
69
|
+
throw new DevsyncError("Target path is required.", {
|
|
70
|
+
code: "TARGET_REQUIRED",
|
|
71
|
+
hint: "Pass a tracked entry path, for example 'devsync track ~/.gitconfig --profile default --profile work'.",
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
const { syncDirectory, configPath } = resolveSyncPaths(environment);
|
|
75
|
+
await ensureSyncRepository(syncDirectory);
|
|
76
|
+
const config = await readSyncConfig(syncDirectory, environment);
|
|
77
|
+
const entry = resolveTrackedEntry(target, config.entries, environment, cwd);
|
|
78
|
+
if (entry === undefined) {
|
|
79
|
+
throw new DevsyncError(`No tracked sync entry matches: ${target}`, {
|
|
80
|
+
code: "TARGET_NOT_TRACKED",
|
|
81
|
+
hint: "Track the root first with 'devsync track'.",
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
const normalizedProfiles = request.profiles.map((m) => normalizeSyncProfileName(m));
|
|
85
|
+
if (entry.profiles.length === normalizedProfiles.length &&
|
|
86
|
+
normalizedProfiles.every((m) => entry.profiles.includes(m))) {
|
|
87
|
+
return {
|
|
88
|
+
action: "unchanged",
|
|
89
|
+
configPath,
|
|
90
|
+
entryRepoPath: entry.repoPath,
|
|
91
|
+
profiles: normalizedProfiles,
|
|
92
|
+
syncDirectory,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
const nextConfig = createSyncConfigDocument({
|
|
96
|
+
...config,
|
|
97
|
+
entries: config.entries.map((e) => {
|
|
98
|
+
if (e.repoPath !== entry.repoPath) {
|
|
99
|
+
return e;
|
|
100
|
+
}
|
|
101
|
+
return {
|
|
102
|
+
...e,
|
|
103
|
+
profiles: normalizedProfiles,
|
|
104
|
+
profilesExplicit: normalizedProfiles.length > 0,
|
|
105
|
+
};
|
|
106
|
+
}),
|
|
107
|
+
});
|
|
108
|
+
await writeValidatedSyncConfig(syncDirectory, nextConfig, environment);
|
|
109
|
+
return {
|
|
110
|
+
action: "assigned",
|
|
111
|
+
configPath,
|
|
112
|
+
entryRepoPath: entry.repoPath,
|
|
113
|
+
profiles: normalizedProfiles,
|
|
114
|
+
syncDirectory,
|
|
115
|
+
};
|
|
116
|
+
};
|
|
117
|
+
//# sourceMappingURL=profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/services/profile.ts"],"names":[],"mappings":"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"}
|
package/dist/services/pull.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { buildEntryMaterialization, buildPullCounts } from "./local-materialization.js";
|
|
2
|
-
import { type EffectiveSyncConfig
|
|
2
|
+
import { type EffectiveSyncConfig } from "./runtime.js";
|
|
3
3
|
export type SyncPullRequest = Readonly<{
|
|
4
4
|
dryRun: boolean;
|
|
5
|
-
|
|
5
|
+
profile?: string;
|
|
6
6
|
}>;
|
|
7
7
|
export type SyncPullResult = Readonly<{
|
|
8
8
|
configPath: string;
|
|
@@ -21,8 +21,8 @@ export type PullPlan = Readonly<{
|
|
|
21
21
|
existingKeys: ReadonlySet<string>;
|
|
22
22
|
materializations: readonly ReturnType<typeof buildEntryMaterialization>[];
|
|
23
23
|
}>;
|
|
24
|
-
export declare const buildPullPlan: (config: EffectiveSyncConfig,
|
|
24
|
+
export declare const buildPullPlan: (config: EffectiveSyncConfig, syncDirectory: string) => Promise<PullPlan>;
|
|
25
25
|
export declare const buildPullPlanPreview: (plan: PullPlan) => string[];
|
|
26
|
-
export declare const buildPullResultFromPlan: (plan: PullPlan,
|
|
27
|
-
export declare const pullSync: (request: SyncPullRequest,
|
|
26
|
+
export declare const buildPullResultFromPlan: (plan: PullPlan, syncDirectory: string, dryRun: boolean) => SyncPullResult;
|
|
27
|
+
export declare const pullSync: (request: SyncPullRequest, environment: NodeJS.ProcessEnv) => Promise<SyncPullResult>;
|
|
28
28
|
//# sourceMappingURL=pull.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/services/pull.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/services/pull.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,yBAAyB,EACzB,eAAe,EAEhB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,KAAK,mBAAmB,EAIzB,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC;IACrC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC;IAC9B,MAAM,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;IAC3C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,gBAAgB,EAAE,SAAS,UAAU,CAAC,OAAO,yBAAyB,CAAC,EAAE,CAAC;CAC3E,CAAC,CAAC;AAEH,eAAO,MAAM,aAAa,GACxB,QAAQ,mBAAmB,EAC3B,eAAe,MAAM,KACpB,OAAO,CAAC,QAAQ,CAgClB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,MAAM,QAAQ,aAalD,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,MAAM,QAAQ,EACd,eAAe,MAAM,EACrB,QAAQ,OAAO,KACd,cASF,CAAC;AAEF,eAAO,MAAM,QAAQ,GACnB,SAAS,eAAe,EACxB,aAAa,MAAM,CAAC,UAAU,KAC7B,OAAO,CAAC,cAAc,CA4BxB,CAAC"}
|
package/dist/services/pull.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { resolveSyncConfigFilePath } from "#app/config/sync.js";
|
|
1
2
|
import { applyEntryMaterialization, buildEntryMaterialization, buildPullCounts, countDeletedLocalNodes, } from "./local-materialization.js";
|
|
2
3
|
import { buildRepositorySnapshot } from "./repo-snapshot.js";
|
|
3
|
-
import { ensureSyncRepository, loadSyncConfig, } from "./runtime.js";
|
|
4
|
-
export const buildPullPlan = async (config,
|
|
5
|
-
const snapshot = await buildRepositorySnapshot(
|
|
4
|
+
import { ensureSyncRepository, loadSyncConfig, resolveSyncPaths, } from "./runtime.js";
|
|
5
|
+
export const buildPullPlan = async (config, syncDirectory) => {
|
|
6
|
+
const snapshot = await buildRepositorySnapshot(syncDirectory, config);
|
|
6
7
|
const materializations = config.entries.map((entry) => {
|
|
7
8
|
return buildEntryMaterialization(entry, snapshot);
|
|
8
9
|
});
|
|
@@ -37,21 +38,23 @@ export const buildPullPlanPreview = (plan) => {
|
|
|
37
38
|
});
|
|
38
39
|
return [...desired.slice(0, 4), ...deleted.slice(0, 4)].slice(0, 6);
|
|
39
40
|
};
|
|
40
|
-
export const buildPullResultFromPlan = (plan,
|
|
41
|
+
export const buildPullResultFromPlan = (plan, syncDirectory, dryRun) => {
|
|
42
|
+
const configPath = resolveSyncConfigFilePath(syncDirectory);
|
|
41
43
|
return {
|
|
42
|
-
configPath
|
|
44
|
+
configPath,
|
|
43
45
|
deletedLocalCount: plan.deletedLocalCount,
|
|
44
46
|
dryRun,
|
|
45
|
-
syncDirectory
|
|
47
|
+
syncDirectory,
|
|
46
48
|
...plan.counts,
|
|
47
49
|
};
|
|
48
50
|
};
|
|
49
|
-
export const pullSync = async (request,
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
export const pullSync = async (request, environment) => {
|
|
52
|
+
const { syncDirectory } = resolveSyncPaths(environment);
|
|
53
|
+
await ensureSyncRepository(syncDirectory);
|
|
54
|
+
const { effectiveConfig: config } = await loadSyncConfig(syncDirectory, environment, {
|
|
55
|
+
...(request.profile === undefined ? {} : { profile: request.profile }),
|
|
53
56
|
});
|
|
54
|
-
const plan = await buildPullPlan(config,
|
|
57
|
+
const plan = await buildPullPlan(config, syncDirectory);
|
|
55
58
|
for (let index = 0; index < config.entries.length; index += 1) {
|
|
56
59
|
const entry = config.entries[index];
|
|
57
60
|
const materialization = plan.materializations[index];
|
|
@@ -62,6 +65,6 @@ export const pullSync = async (request, context) => {
|
|
|
62
65
|
await applyEntryMaterialization(entry, materialization, config);
|
|
63
66
|
}
|
|
64
67
|
}
|
|
65
|
-
return buildPullResultFromPlan(plan,
|
|
68
|
+
return buildPullResultFromPlan(plan, syncDirectory, request.dryRun);
|
|
66
69
|
};
|
|
67
70
|
//# sourceMappingURL=pull.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/services/pull.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,eAAe,EACf,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/services/pull.ts"],"names":[],"mappings":"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"}
|
package/dist/services/push.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type SnapshotNode } from "./local-snapshot.js";
|
|
2
|
-
import { type EffectiveSyncConfig
|
|
2
|
+
import { type EffectiveSyncConfig } from "./runtime.js";
|
|
3
3
|
export type SyncPushRequest = Readonly<{
|
|
4
4
|
dryRun: boolean;
|
|
5
|
-
|
|
5
|
+
profile?: string;
|
|
6
6
|
}>;
|
|
7
7
|
export type SyncPushResult = Readonly<{
|
|
8
8
|
configPath: string;
|
|
@@ -27,9 +27,9 @@ declare const buildPushCounts: (snapshot: ReadonlyMap<string, SnapshotNode>) =>
|
|
|
27
27
|
plainFileCount: number;
|
|
28
28
|
symlinkCount: number;
|
|
29
29
|
};
|
|
30
|
-
export declare const buildPushPlan: (config: EffectiveSyncConfig,
|
|
30
|
+
export declare const buildPushPlan: (config: EffectiveSyncConfig, syncDirectory: string) => Promise<PushPlan>;
|
|
31
31
|
export declare const buildPushPlanPreview: (plan: PushPlan) => string[];
|
|
32
|
-
export declare const buildPushResultFromPlan: (plan: PushPlan,
|
|
33
|
-
export declare const pushSync: (request: SyncPushRequest,
|
|
32
|
+
export declare const buildPushResultFromPlan: (plan: PushPlan, syncDirectory: string, dryRun: boolean) => SyncPushResult;
|
|
33
|
+
export declare const pushSync: (request: SyncPushRequest, environment: NodeJS.ProcessEnv) => Promise<SyncPushResult>;
|
|
34
34
|
export {};
|
|
35
35
|
//# sourceMappingURL=push.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/services/push.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/services/push.ts"],"names":[],"mappings":"AAQA,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAO5E,OAAO,EACL,KAAK,mBAAmB,EAIzB,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC;IACrC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC;IAC9B,MAAM,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;IAC3C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CAC7C,CAAC,CAAC;AAEH,QAAA,MAAM,eAAe,GAAI,UAAU,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC;;;;;CA8BnE,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,QAAQ,mBAAmB,EAC3B,eAAe,MAAM,KACpB,OAAO,CAAC,QAAQ,CAuBlB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,MAAM,QAAQ,aAalD,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,MAAM,QAAQ,EACd,eAAe,MAAM,EACrB,QAAQ,OAAO,KACd,cASF,CAAC;AAEF,eAAO,MAAM,QAAQ,GACnB,SAAS,eAAe,EACxB,aAAa,MAAM,CAAC,UAAU,KAC7B,OAAO,CAAC,cAAc,CAkCxB,CAAC"}
|