pushwork 1.1.4 → 2.0.0-a.sub.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/CLAUDE.md +9 -5
- package/dist/cli.js +48 -55
- package/dist/cli.js.map +1 -1
- package/dist/commands.d.ts +5 -1
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +262 -263
- package/dist/commands.js.map +1 -1
- package/dist/core/change-detection.d.ts +1 -1
- package/dist/core/change-detection.d.ts.map +1 -1
- package/dist/core/change-detection.js +66 -103
- package/dist/core/change-detection.js.map +1 -1
- package/dist/core/config.d.ts +1 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +14 -57
- package/dist/core/config.js.map +1 -1
- package/dist/core/index.d.ts +5 -5
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +5 -21
- package/dist/core/index.js.map +1 -1
- package/dist/core/move-detection.d.ts +2 -2
- package/dist/core/move-detection.d.ts.map +1 -1
- package/dist/core/move-detection.js +9 -13
- package/dist/core/move-detection.js.map +1 -1
- package/dist/core/snapshot.d.ts +1 -1
- package/dist/core/snapshot.d.ts.map +1 -1
- package/dist/core/snapshot.js +9 -46
- package/dist/core/snapshot.js.map +1 -1
- package/dist/core/sync-engine.d.ts +1 -1
- package/dist/core/sync-engine.d.ts.map +1 -1
- package/dist/core/sync-engine.js +113 -150
- package/dist/core/sync-engine.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -20
- package/dist/index.js.map +1 -1
- package/dist/types/config.d.ts +7 -6
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +1 -5
- package/dist/types/config.js.map +1 -1
- package/dist/types/documents.js +4 -7
- package/dist/types/documents.js.map +1 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +3 -19
- package/dist/types/index.js.map +1 -1
- package/dist/types/snapshot.js +1 -2
- package/dist/utils/content.js +4 -8
- package/dist/utils/content.js.map +1 -1
- package/dist/utils/directory.js +5 -9
- package/dist/utils/directory.js.map +1 -1
- package/dist/utils/fs.d.ts +1 -1
- package/dist/utils/fs.d.ts.map +1 -1
- package/dist/utils/fs.js +34 -84
- package/dist/utils/fs.js.map +1 -1
- package/dist/utils/index.d.ts +4 -4
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +4 -20
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/mime-types.js +5 -43
- package/dist/utils/mime-types.js.map +1 -1
- package/dist/utils/network-sync.d.ts +13 -8
- package/dist/utils/network-sync.d.ts.map +1 -1
- package/dist/utils/network-sync.js +65 -137
- package/dist/utils/network-sync.js.map +1 -1
- package/dist/utils/node-polyfills.d.ts +9 -0
- package/dist/utils/node-polyfills.d.ts.map +1 -0
- package/dist/utils/node-polyfills.js +9 -0
- package/dist/utils/node-polyfills.js.map +1 -0
- package/dist/utils/output.js +32 -39
- package/dist/utils/output.js.map +1 -1
- package/dist/utils/repo-factory.d.ts +8 -2
- package/dist/utils/repo-factory.d.ts.map +1 -1
- package/dist/utils/repo-factory.js +38 -47
- package/dist/utils/repo-factory.js.map +1 -1
- package/dist/utils/string-similarity.js +1 -5
- package/dist/utils/string-similarity.js.map +1 -1
- package/dist/utils/text-diff.js +5 -43
- package/dist/utils/text-diff.js.map +1 -1
- package/dist/utils/trace.js +6 -11
- package/dist/utils/trace.js.map +1 -1
- package/package.json +7 -5
- package/src/cli.ts +25 -34
- package/src/commands.ts +75 -11
- package/src/core/change-detection.ts +4 -4
- package/src/core/config.ts +2 -12
- package/src/core/index.ts +5 -5
- package/src/core/move-detection.ts +4 -4
- package/src/core/snapshot.ts +3 -3
- package/src/core/sync-engine.ts +11 -16
- package/src/index.ts +4 -4
- package/src/types/config.ts +8 -8
- package/src/types/index.ts +3 -3
- package/src/utils/directory.ts +1 -1
- package/src/utils/fs.ts +6 -4
- package/src/utils/index.ts +4 -4
- package/src/utils/network-sync.ts +62 -115
- package/src/utils/node-polyfills.ts +8 -0
- package/src/utils/repo-factory.ts +55 -10
- package/src/utils/trace.ts +1 -1
- package/tsconfig.json +2 -1
package/dist/utils/fs.js
CHANGED
|
@@ -1,67 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.pathExists = pathExists;
|
|
37
|
-
exports.getFileSystemEntry = getFileSystemEntry;
|
|
38
|
-
exports.isTextFile = isTextFile;
|
|
39
|
-
exports.readFileContent = readFileContent;
|
|
40
|
-
exports.writeFileContent = writeFileContent;
|
|
41
|
-
exports.ensureDirectoryExists = ensureDirectoryExists;
|
|
42
|
-
exports.removePath = removePath;
|
|
43
|
-
exports.listDirectory = listDirectory;
|
|
44
|
-
exports.copyFile = copyFile;
|
|
45
|
-
exports.movePath = movePath;
|
|
46
|
-
exports.calculateContentHash = calculateContentHash;
|
|
47
|
-
exports.getMimeType = getMimeType;
|
|
48
|
-
exports.getFileExtension = getFileExtension;
|
|
49
|
-
exports.normalizePath = normalizePath;
|
|
50
|
-
exports.joinAndNormalizePath = joinAndNormalizePath;
|
|
51
|
-
exports.getRelativePath = getRelativePath;
|
|
52
|
-
exports.formatRelativePath = formatRelativePath;
|
|
53
|
-
const fs = __importStar(require("fs/promises"));
|
|
54
|
-
const path = __importStar(require("path"));
|
|
55
|
-
const crypto = __importStar(require("crypto"));
|
|
56
|
-
const glob_1 = require("glob");
|
|
57
|
-
const mimeTypes = __importStar(require("mime-types"));
|
|
58
|
-
const ignore = __importStar(require("ignore"));
|
|
59
|
-
const types_1 = require("../types");
|
|
60
|
-
const mime_types_1 = require("./mime-types");
|
|
1
|
+
import * as fs from "fs/promises";
|
|
2
|
+
import * as path from "path";
|
|
3
|
+
import * as crypto from "crypto";
|
|
4
|
+
import { glob } from "glob";
|
|
5
|
+
import * as mimeTypes from "mime-types";
|
|
6
|
+
import ignoreModule from "ignore";
|
|
7
|
+
// CJS default export compat under nodenext
|
|
8
|
+
const ignore = ignoreModule.default || ignoreModule;
|
|
9
|
+
import { FileType } from "../types/index.js";
|
|
10
|
+
import { isEnhancedTextFile } from "./mime-types.js";
|
|
61
11
|
/**
|
|
62
12
|
* Check if a path exists
|
|
63
13
|
*/
|
|
64
|
-
async function pathExists(filePath) {
|
|
14
|
+
export async function pathExists(filePath) {
|
|
65
15
|
try {
|
|
66
16
|
await fs.access(filePath);
|
|
67
17
|
return true;
|
|
@@ -73,14 +23,14 @@ async function pathExists(filePath) {
|
|
|
73
23
|
/**
|
|
74
24
|
* Get file system entry metadata
|
|
75
25
|
*/
|
|
76
|
-
async function getFileSystemEntry(filePath) {
|
|
26
|
+
export async function getFileSystemEntry(filePath) {
|
|
77
27
|
try {
|
|
78
28
|
const stats = await fs.stat(filePath);
|
|
79
29
|
const type = stats.isDirectory()
|
|
80
|
-
?
|
|
81
|
-
: (await
|
|
82
|
-
?
|
|
83
|
-
:
|
|
30
|
+
? FileType.DIRECTORY
|
|
31
|
+
: (await isEnhancedTextFile(filePath))
|
|
32
|
+
? FileType.TEXT
|
|
33
|
+
: FileType.BINARY;
|
|
84
34
|
return {
|
|
85
35
|
path: filePath,
|
|
86
36
|
type,
|
|
@@ -96,7 +46,7 @@ async function getFileSystemEntry(filePath) {
|
|
|
96
46
|
/**
|
|
97
47
|
* Determine if a file is text or binary
|
|
98
48
|
*/
|
|
99
|
-
async function isTextFile(filePath) {
|
|
49
|
+
export async function isTextFile(filePath) {
|
|
100
50
|
try {
|
|
101
51
|
const mimeType = mimeTypes.lookup(filePath);
|
|
102
52
|
if (mimeType) {
|
|
@@ -121,8 +71,8 @@ async function isTextFile(filePath) {
|
|
|
121
71
|
/**
|
|
122
72
|
* Read file content as string or buffer
|
|
123
73
|
*/
|
|
124
|
-
async function readFileContent(filePath) {
|
|
125
|
-
const isText = await
|
|
74
|
+
export async function readFileContent(filePath) {
|
|
75
|
+
const isText = await isEnhancedTextFile(filePath);
|
|
126
76
|
if (isText) {
|
|
127
77
|
return await fs.readFile(filePath, "utf8");
|
|
128
78
|
}
|
|
@@ -134,7 +84,7 @@ async function readFileContent(filePath) {
|
|
|
134
84
|
/**
|
|
135
85
|
* Write file content from string or buffer
|
|
136
86
|
*/
|
|
137
|
-
async function writeFileContent(filePath, content) {
|
|
87
|
+
export async function writeFileContent(filePath, content) {
|
|
138
88
|
await ensureDirectoryExists(path.dirname(filePath));
|
|
139
89
|
if (typeof content === "string") {
|
|
140
90
|
await fs.writeFile(filePath, content, "utf8");
|
|
@@ -146,7 +96,7 @@ async function writeFileContent(filePath, content) {
|
|
|
146
96
|
/**
|
|
147
97
|
* Ensure directory exists, creating it if necessary
|
|
148
98
|
*/
|
|
149
|
-
async function ensureDirectoryExists(dirPath) {
|
|
99
|
+
export async function ensureDirectoryExists(dirPath) {
|
|
150
100
|
try {
|
|
151
101
|
await fs.mkdir(dirPath, { recursive: true });
|
|
152
102
|
}
|
|
@@ -159,7 +109,7 @@ async function ensureDirectoryExists(dirPath) {
|
|
|
159
109
|
/**
|
|
160
110
|
* Remove file or directory
|
|
161
111
|
*/
|
|
162
|
-
async function removePath(filePath) {
|
|
112
|
+
export async function removePath(filePath) {
|
|
163
113
|
try {
|
|
164
114
|
const stats = await fs.stat(filePath);
|
|
165
115
|
if (stats.isDirectory()) {
|
|
@@ -185,13 +135,13 @@ function isExcluded(filePath, basePath, excludePatterns) {
|
|
|
185
135
|
const relativePath = path.relative(basePath, filePath);
|
|
186
136
|
// Use the ignore library which implements proper .gitignore semantics
|
|
187
137
|
// This is the same library used by ESLint and other major tools
|
|
188
|
-
const ig = ignore
|
|
138
|
+
const ig = ignore().add(excludePatterns);
|
|
189
139
|
return ig.ignores(relativePath);
|
|
190
140
|
}
|
|
191
141
|
/**
|
|
192
142
|
* List directory contents with metadata
|
|
193
143
|
*/
|
|
194
|
-
async function listDirectory(dirPath, recursive = false, excludePatterns = []) {
|
|
144
|
+
export async function listDirectory(dirPath, recursive = false, excludePatterns = []) {
|
|
195
145
|
const entries = [];
|
|
196
146
|
try {
|
|
197
147
|
// Construct pattern using path.join for proper cross-platform handling
|
|
@@ -202,7 +152,7 @@ async function listDirectory(dirPath, recursive = false, excludePatterns = []) {
|
|
|
202
152
|
const normalizedPattern = pattern.replace(/\\/g, "/");
|
|
203
153
|
// Use glob to get all paths (with dot files)
|
|
204
154
|
// Note: We don't use glob's ignore option because it doesn't support gitignore semantics
|
|
205
|
-
const paths = await
|
|
155
|
+
const paths = await glob(normalizedPattern, {
|
|
206
156
|
dot: true,
|
|
207
157
|
});
|
|
208
158
|
// Parallelize all stat calls for better performance
|
|
@@ -224,7 +174,7 @@ async function listDirectory(dirPath, recursive = false, excludePatterns = []) {
|
|
|
224
174
|
/**
|
|
225
175
|
* Copy file with metadata preservation
|
|
226
176
|
*/
|
|
227
|
-
async function copyFile(sourcePath, destPath) {
|
|
177
|
+
export async function copyFile(sourcePath, destPath) {
|
|
228
178
|
await ensureDirectoryExists(path.dirname(destPath));
|
|
229
179
|
await fs.copyFile(sourcePath, destPath);
|
|
230
180
|
// Preserve file permissions
|
|
@@ -234,14 +184,14 @@ async function copyFile(sourcePath, destPath) {
|
|
|
234
184
|
/**
|
|
235
185
|
* Move/rename file or directory
|
|
236
186
|
*/
|
|
237
|
-
async function movePath(sourcePath, destPath) {
|
|
187
|
+
export async function movePath(sourcePath, destPath) {
|
|
238
188
|
await ensureDirectoryExists(path.dirname(destPath));
|
|
239
189
|
await fs.rename(sourcePath, destPath);
|
|
240
190
|
}
|
|
241
191
|
/**
|
|
242
192
|
* Calculate content hash for change detection
|
|
243
193
|
*/
|
|
244
|
-
async function calculateContentHash(content) {
|
|
194
|
+
export async function calculateContentHash(content) {
|
|
245
195
|
const hash = crypto.createHash("sha256");
|
|
246
196
|
hash.update(content);
|
|
247
197
|
return hash.digest("hex");
|
|
@@ -249,13 +199,13 @@ async function calculateContentHash(content) {
|
|
|
249
199
|
/**
|
|
250
200
|
* Get MIME type for file
|
|
251
201
|
*/
|
|
252
|
-
function getMimeType(filePath) {
|
|
202
|
+
export function getMimeType(filePath) {
|
|
253
203
|
return mimeTypes.lookup(filePath) || "application/octet-stream";
|
|
254
204
|
}
|
|
255
205
|
/**
|
|
256
206
|
* Get file extension
|
|
257
207
|
*/
|
|
258
|
-
function getFileExtension(filePath) {
|
|
208
|
+
export function getFileExtension(filePath) {
|
|
259
209
|
const ext = path.extname(filePath);
|
|
260
210
|
return ext.startsWith(".") ? ext.slice(1) : ext;
|
|
261
211
|
}
|
|
@@ -263,14 +213,14 @@ function getFileExtension(filePath) {
|
|
|
263
213
|
* Normalize path separators for cross-platform compatibility
|
|
264
214
|
* Converts all path separators to forward slashes for consistent storage
|
|
265
215
|
*/
|
|
266
|
-
function normalizePath(filePath) {
|
|
216
|
+
export function normalizePath(filePath) {
|
|
267
217
|
return path.posix.normalize(filePath.replace(/\\/g, "/"));
|
|
268
218
|
}
|
|
269
219
|
/**
|
|
270
220
|
* Join paths and normalize separators for cross-platform compatibility
|
|
271
221
|
* Use this instead of string concatenation to ensure proper path handling on Windows
|
|
272
222
|
*/
|
|
273
|
-
function joinAndNormalizePath(...paths) {
|
|
223
|
+
export function joinAndNormalizePath(...paths) {
|
|
274
224
|
// Use path.join to properly handle path construction (handles Windows drive letters, etc.)
|
|
275
225
|
const joined = path.join(...paths);
|
|
276
226
|
// Then normalize to forward slashes for consistent storage/comparison
|
|
@@ -279,7 +229,7 @@ function joinAndNormalizePath(...paths) {
|
|
|
279
229
|
/**
|
|
280
230
|
* Get relative path from base directory
|
|
281
231
|
*/
|
|
282
|
-
function getRelativePath(basePath, filePath) {
|
|
232
|
+
export function getRelativePath(basePath, filePath) {
|
|
283
233
|
return normalizePath(path.relative(basePath, filePath));
|
|
284
234
|
}
|
|
285
235
|
/**
|
|
@@ -287,7 +237,7 @@ function getRelativePath(basePath, filePath) {
|
|
|
287
237
|
* Ensures paths like "src" become "./src" for clarity
|
|
288
238
|
* Leaves absolute paths and paths already starting with . or .. unchanged
|
|
289
239
|
*/
|
|
290
|
-
function formatRelativePath(filePath) {
|
|
240
|
+
export function formatRelativePath(filePath) {
|
|
291
241
|
// Already starts with . or / - leave as-is
|
|
292
242
|
if (filePath.startsWith(".") || filePath.startsWith("/")) {
|
|
293
243
|
return filePath;
|
package/dist/utils/fs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from "./fs";
|
|
2
|
-
export * from "./mime-types";
|
|
3
|
-
export * from "./directory";
|
|
4
|
-
export * from "./text-diff";
|
|
1
|
+
export * from "./fs.js";
|
|
2
|
+
export * from "./mime-types.js";
|
|
3
|
+
export * from "./directory.js";
|
|
4
|
+
export * from "./text-diff.js";
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA"}
|
package/dist/utils/index.js
CHANGED
|
@@ -1,21 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./fs"), exports);
|
|
18
|
-
__exportStar(require("./mime-types"), exports);
|
|
19
|
-
__exportStar(require("./directory"), exports);
|
|
20
|
-
__exportStar(require("./text-diff"), exports);
|
|
1
|
+
export * from "./fs.js";
|
|
2
|
+
export * from "./mime-types.js";
|
|
3
|
+
export * from "./directory.js";
|
|
4
|
+
export * from "./text-diff.js";
|
|
21
5
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA"}
|
package/dist/utils/mime-types.js
CHANGED
|
@@ -1,42 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.getEnhancedMimeType = getEnhancedMimeType;
|
|
37
|
-
exports.shouldForceAsText = shouldForceAsText;
|
|
38
|
-
exports.isEnhancedTextFile = isEnhancedTextFile;
|
|
39
|
-
const mimeTypes = __importStar(require("mime-types"));
|
|
1
|
+
import * as mimeTypes from "mime-types";
|
|
40
2
|
/**
|
|
41
3
|
* Custom MIME type definitions for developer files
|
|
42
4
|
* Based on patchwork-cli's approach
|
|
@@ -131,7 +93,7 @@ const FORCE_TEXT_EXTENSIONS = new Set([
|
|
|
131
93
|
/**
|
|
132
94
|
* Get enhanced MIME type for file with custom dev file support
|
|
133
95
|
*/
|
|
134
|
-
function getEnhancedMimeType(filePath) {
|
|
96
|
+
export function getEnhancedMimeType(filePath) {
|
|
135
97
|
const normalized = normalizePathSeparators(filePath);
|
|
136
98
|
const filename = normalized.split("/").pop() || "";
|
|
137
99
|
const extension = getFileExtension(normalized);
|
|
@@ -154,7 +116,7 @@ function getEnhancedMimeType(filePath) {
|
|
|
154
116
|
/**
|
|
155
117
|
* Check if file extension should be forced to text type
|
|
156
118
|
*/
|
|
157
|
-
function shouldForceAsText(filePath) {
|
|
119
|
+
export function shouldForceAsText(filePath) {
|
|
158
120
|
const extension = getFileExtension(filePath);
|
|
159
121
|
return extension ? FORCE_TEXT_EXTENSIONS.has(extension) : false;
|
|
160
122
|
}
|
|
@@ -174,7 +136,7 @@ function normalizePathSeparators(p) {
|
|
|
174
136
|
/**
|
|
175
137
|
* Enhanced text file detection with developer file support
|
|
176
138
|
*/
|
|
177
|
-
async function isEnhancedTextFile(filePath) {
|
|
139
|
+
export async function isEnhancedTextFile(filePath) {
|
|
178
140
|
// Force certain extensions to be treated as text
|
|
179
141
|
if (shouldForceAsText(filePath)) {
|
|
180
142
|
return true;
|
|
@@ -225,7 +187,7 @@ function isBinaryMimeType(mimeType) {
|
|
|
225
187
|
*/
|
|
226
188
|
async function isTextByContent(filePath) {
|
|
227
189
|
try {
|
|
228
|
-
const fs = await
|
|
190
|
+
const fs = await import("fs/promises");
|
|
229
191
|
// Sample first 8KB to detect binary content
|
|
230
192
|
const handle = await fs.open(filePath, "r");
|
|
231
193
|
const stats = await handle.stat();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mime-types.js","sourceRoot":"","sources":["../../src/utils/mime-types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mime-types.js","sourceRoot":"","sources":["../../src/utils/mime-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import { DocHandle,
|
|
1
|
+
import { DocHandle, Repo, AutomergeUrl } from "@automerge/automerge-repo";
|
|
2
2
|
/**
|
|
3
3
|
* Wait for bidirectional sync to stabilize.
|
|
4
4
|
* This function waits until document heads stop changing, indicating that
|
|
5
5
|
* both outgoing and incoming sync has completed.
|
|
6
6
|
*
|
|
7
|
+
* With Subduction, sync is handled automatically by the transport layer.
|
|
8
|
+
* We poll heads until they stabilize to confirm sync completion.
|
|
9
|
+
*
|
|
7
10
|
* @param repo - The Automerge repository
|
|
8
11
|
* @param rootDirectoryUrl - The root directory URL to start traversal from
|
|
9
|
-
* @param syncServerStorageId - The sync server storage ID
|
|
10
12
|
* @param options - Configuration options
|
|
11
13
|
*/
|
|
12
|
-
export declare function waitForBidirectionalSync(repo: Repo, rootDirectoryUrl: AutomergeUrl | undefined,
|
|
14
|
+
export declare function waitForBidirectionalSync(repo: Repo, rootDirectoryUrl: AutomergeUrl | undefined, options?: {
|
|
13
15
|
timeoutMs?: number;
|
|
14
16
|
pollIntervalMs?: number;
|
|
15
17
|
stableChecksRequired?: number;
|
|
@@ -22,10 +24,13 @@ export interface SyncWaitResult {
|
|
|
22
24
|
failed: DocHandle<unknown>[];
|
|
23
25
|
}
|
|
24
26
|
/**
|
|
25
|
-
* Wait for documents to sync
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
27
|
+
* Wait for documents to sync by polling head stability.
|
|
28
|
+
*
|
|
29
|
+
* With Subduction, sync is automatic via the transport layer.
|
|
30
|
+
* We wait for each handle's heads to stabilize (stop changing),
|
|
31
|
+
* which indicates the sync layer has finished processing.
|
|
32
|
+
*
|
|
33
|
+
* Processes handles in batches to avoid overwhelming the system.
|
|
29
34
|
*/
|
|
30
|
-
export declare function waitForSync(handlesToWaitOn: DocHandle<unknown>[],
|
|
35
|
+
export declare function waitForSync(handlesToWaitOn: DocHandle<unknown>[], timeoutMs?: number): Promise<SyncWaitResult>;
|
|
31
36
|
//# sourceMappingURL=network-sync.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network-sync.d.ts","sourceRoot":"","sources":["../../src/utils/network-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"network-sync.d.ts","sourceRoot":"","sources":["../../src/utils/network-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,IAAI,EACJ,YAAY,EACb,MAAM,2BAA2B,CAAC;AAUnC;;;;;;;;;;;GAWG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,YAAY,GAAG,SAAS,EAC1C,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;CAC3B,GACL,OAAO,CAAC,IAAI,CAAC,CAiFf;AA2FD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;CAC9B;AAKD;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EACrC,SAAS,GAAE,MAAc,GACxB,OAAO,CAAC,cAAc,CAAC,CAgDzB"}
|