pushwork 2.0.0-preview.4 → 2.0.0-preview.5

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.
Files changed (122) hide show
  1. package/dist/branches.d.ts +2 -1
  2. package/dist/branches.d.ts.map +1 -1
  3. package/dist/branches.js +23 -4
  4. package/dist/branches.js.map +1 -1
  5. package/dist/checkpoints.d.ts +41 -0
  6. package/dist/checkpoints.d.ts.map +1 -0
  7. package/dist/checkpoints.js +210 -0
  8. package/dist/checkpoints.js.map +1 -0
  9. package/dist/stash.d.ts +2 -0
  10. package/dist/stash.d.ts.map +1 -1
  11. package/dist/stash.js +1 -0
  12. package/dist/stash.js.map +1 -1
  13. package/package.json +2 -2
  14. package/dist/cli/commands.d.ts +0 -71
  15. package/dist/cli/commands.d.ts.map +0 -1
  16. package/dist/cli/commands.js +0 -794
  17. package/dist/cli/commands.js.map +0 -1
  18. package/dist/cli/index.d.ts +0 -2
  19. package/dist/cli/index.d.ts.map +0 -1
  20. package/dist/cli/index.js +0 -19
  21. package/dist/cli/index.js.map +0 -1
  22. package/dist/commands.d.ts +0 -58
  23. package/dist/commands.d.ts.map +0 -1
  24. package/dist/commands.js +0 -975
  25. package/dist/commands.js.map +0 -1
  26. package/dist/config/index.d.ts +0 -71
  27. package/dist/config/index.d.ts.map +0 -1
  28. package/dist/config/index.js +0 -314
  29. package/dist/config/index.js.map +0 -1
  30. package/dist/core/change-detection.d.ts +0 -80
  31. package/dist/core/change-detection.d.ts.map +0 -1
  32. package/dist/core/change-detection.js +0 -560
  33. package/dist/core/change-detection.js.map +0 -1
  34. package/dist/core/config.d.ts +0 -81
  35. package/dist/core/config.d.ts.map +0 -1
  36. package/dist/core/config.js +0 -304
  37. package/dist/core/config.js.map +0 -1
  38. package/dist/core/index.d.ts +0 -6
  39. package/dist/core/index.d.ts.map +0 -1
  40. package/dist/core/index.js +0 -22
  41. package/dist/core/index.js.map +0 -1
  42. package/dist/core/move-detection.d.ts +0 -34
  43. package/dist/core/move-detection.d.ts.map +0 -1
  44. package/dist/core/move-detection.js +0 -128
  45. package/dist/core/move-detection.js.map +0 -1
  46. package/dist/core/snapshot.d.ts +0 -105
  47. package/dist/core/snapshot.d.ts.map +0 -1
  48. package/dist/core/snapshot.js +0 -254
  49. package/dist/core/snapshot.js.map +0 -1
  50. package/dist/core/sync-engine.d.ts +0 -177
  51. package/dist/core/sync-engine.d.ts.map +0 -1
  52. package/dist/core/sync-engine.js +0 -1471
  53. package/dist/core/sync-engine.js.map +0 -1
  54. package/dist/types/config.d.ts +0 -102
  55. package/dist/types/config.d.ts.map +0 -1
  56. package/dist/types/config.js +0 -10
  57. package/dist/types/config.js.map +0 -1
  58. package/dist/types/documents.d.ts +0 -88
  59. package/dist/types/documents.d.ts.map +0 -1
  60. package/dist/types/documents.js +0 -23
  61. package/dist/types/documents.js.map +0 -1
  62. package/dist/types/index.d.ts +0 -4
  63. package/dist/types/index.d.ts.map +0 -1
  64. package/dist/types/index.js +0 -20
  65. package/dist/types/index.js.map +0 -1
  66. package/dist/types/snapshot.d.ts +0 -64
  67. package/dist/types/snapshot.d.ts.map +0 -1
  68. package/dist/types/snapshot.js +0 -3
  69. package/dist/types/snapshot.js.map +0 -1
  70. package/dist/utils/content-similarity.d.ts +0 -53
  71. package/dist/utils/content-similarity.d.ts.map +0 -1
  72. package/dist/utils/content-similarity.js +0 -155
  73. package/dist/utils/content-similarity.js.map +0 -1
  74. package/dist/utils/content.d.ts +0 -10
  75. package/dist/utils/content.d.ts.map +0 -1
  76. package/dist/utils/content.js +0 -35
  77. package/dist/utils/content.js.map +0 -1
  78. package/dist/utils/directory.d.ts +0 -24
  79. package/dist/utils/directory.d.ts.map +0 -1
  80. package/dist/utils/directory.js +0 -56
  81. package/dist/utils/directory.js.map +0 -1
  82. package/dist/utils/fs.d.ts +0 -74
  83. package/dist/utils/fs.d.ts.map +0 -1
  84. package/dist/utils/fs.js +0 -298
  85. package/dist/utils/fs.js.map +0 -1
  86. package/dist/utils/index.d.ts +0 -5
  87. package/dist/utils/index.d.ts.map +0 -1
  88. package/dist/utils/index.js +0 -21
  89. package/dist/utils/index.js.map +0 -1
  90. package/dist/utils/mime-types.d.ts +0 -13
  91. package/dist/utils/mime-types.d.ts.map +0 -1
  92. package/dist/utils/mime-types.js +0 -247
  93. package/dist/utils/mime-types.js.map +0 -1
  94. package/dist/utils/network-sync.d.ts +0 -30
  95. package/dist/utils/network-sync.d.ts.map +0 -1
  96. package/dist/utils/network-sync.js +0 -391
  97. package/dist/utils/network-sync.js.map +0 -1
  98. package/dist/utils/node-polyfills.d.ts +0 -9
  99. package/dist/utils/node-polyfills.d.ts.map +0 -1
  100. package/dist/utils/node-polyfills.js +0 -9
  101. package/dist/utils/node-polyfills.js.map +0 -1
  102. package/dist/utils/output.d.ts +0 -129
  103. package/dist/utils/output.d.ts.map +0 -1
  104. package/dist/utils/output.js +0 -375
  105. package/dist/utils/output.js.map +0 -1
  106. package/dist/utils/repo-factory.d.ts +0 -15
  107. package/dist/utils/repo-factory.d.ts.map +0 -1
  108. package/dist/utils/repo-factory.js +0 -156
  109. package/dist/utils/repo-factory.js.map +0 -1
  110. package/dist/utils/string-similarity.d.ts +0 -14
  111. package/dist/utils/string-similarity.d.ts.map +0 -1
  112. package/dist/utils/string-similarity.js +0 -43
  113. package/dist/utils/string-similarity.js.map +0 -1
  114. package/dist/utils/text-diff.d.ts +0 -37
  115. package/dist/utils/text-diff.d.ts.map +0 -1
  116. package/dist/utils/text-diff.js +0 -131
  117. package/dist/utils/text-diff.js.map +0 -1
  118. package/dist/utils/trace.d.ts +0 -19
  119. package/dist/utils/trace.d.ts.map +0 -1
  120. package/dist/utils/trace.js +0 -68
  121. package/dist/utils/trace.js.map +0 -1
  122. package/patches/@automerge__automerge-repo@2.6.0-subduction.15.patch +0 -26
package/dist/utils/fs.js DELETED
@@ -1,298 +0,0 @@
1
- "use strict";
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.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");
61
- /**
62
- * Check if a path exists
63
- */
64
- async function pathExists(filePath) {
65
- try {
66
- await fs.access(filePath);
67
- return true;
68
- }
69
- catch {
70
- return false;
71
- }
72
- }
73
- /**
74
- * Get file system entry metadata
75
- */
76
- async function getFileSystemEntry(filePath) {
77
- try {
78
- const stats = await fs.stat(filePath);
79
- const type = stats.isDirectory()
80
- ? types_1.FileType.DIRECTORY
81
- : (await (0, mime_types_1.isEnhancedTextFile)(filePath))
82
- ? types_1.FileType.TEXT
83
- : types_1.FileType.BINARY;
84
- return {
85
- path: filePath,
86
- type,
87
- size: stats.size,
88
- mtime: stats.mtime,
89
- permissions: stats.mode & parseInt("777", 8),
90
- };
91
- }
92
- catch {
93
- return null;
94
- }
95
- }
96
- /**
97
- * Determine if a file is text or binary
98
- */
99
- async function isTextFile(filePath) {
100
- try {
101
- const mimeType = mimeTypes.lookup(filePath);
102
- if (mimeType) {
103
- return (mimeType.startsWith("text/") ||
104
- mimeType === "application/json" ||
105
- mimeType === "application/xml" ||
106
- mimeType.includes("javascript") ||
107
- mimeType.includes("typescript"));
108
- }
109
- // Sample first 8KB to detect binary content
110
- const handle = await fs.open(filePath, "r");
111
- const buffer = Buffer.alloc(Math.min(8192, (await handle.stat()).size));
112
- await handle.read(buffer, 0, buffer.length, 0);
113
- await handle.close();
114
- // Check for null bytes which indicate binary content
115
- return !buffer.includes(0);
116
- }
117
- catch {
118
- return false;
119
- }
120
- }
121
- /**
122
- * Read file content as string or buffer
123
- */
124
- async function readFileContent(filePath) {
125
- const isText = await (0, mime_types_1.isEnhancedTextFile)(filePath);
126
- if (isText) {
127
- return await fs.readFile(filePath, "utf8");
128
- }
129
- else {
130
- const buffer = await fs.readFile(filePath);
131
- return new Uint8Array(buffer);
132
- }
133
- }
134
- /**
135
- * Write file content from string or buffer
136
- */
137
- async function writeFileContent(filePath, content) {
138
- await ensureDirectoryExists(path.dirname(filePath));
139
- if (typeof content === "string") {
140
- await fs.writeFile(filePath, content, "utf8");
141
- }
142
- else {
143
- await fs.writeFile(filePath, content);
144
- }
145
- }
146
- /**
147
- * Ensure directory exists, creating it if necessary
148
- */
149
- async function ensureDirectoryExists(dirPath) {
150
- try {
151
- await fs.mkdir(dirPath, { recursive: true });
152
- }
153
- catch (error) {
154
- if (error.code !== "EEXIST") {
155
- throw error;
156
- }
157
- }
158
- }
159
- /**
160
- * Remove file or directory
161
- */
162
- async function removePath(filePath) {
163
- try {
164
- const stats = await fs.stat(filePath);
165
- if (stats.isDirectory()) {
166
- await fs.rm(filePath, { recursive: true });
167
- }
168
- else {
169
- await fs.unlink(filePath);
170
- }
171
- }
172
- catch (error) {
173
- if (error.code !== "ENOENT") {
174
- throw error;
175
- }
176
- }
177
- }
178
- /**
179
- * Check if a path matches any of the exclude patterns using the ignore library
180
- * Supports proper gitignore-style patterns (e.g., "node_modules", "*.tmp", ".git")
181
- */
182
- function isExcluded(filePath, basePath, excludePatterns) {
183
- if (excludePatterns.length === 0)
184
- return false;
185
- const relativePath = path.relative(basePath, filePath);
186
- // Use the ignore library which implements proper .gitignore semantics
187
- // This is the same library used by ESLint and other major tools
188
- const ig = ignore.default().add(excludePatterns);
189
- return ig.ignores(relativePath);
190
- }
191
- /**
192
- * List directory contents with metadata
193
- */
194
- async function listDirectory(dirPath, recursive = false, excludePatterns = []) {
195
- const entries = [];
196
- try {
197
- // Construct pattern using path.join for proper cross-platform handling
198
- const pattern = recursive
199
- ? path.join(dirPath, "**/*")
200
- : path.join(dirPath, "*");
201
- // glob expects forward slashes, even on Windows
202
- const normalizedPattern = pattern.replace(/\\/g, "/");
203
- // Use glob to get all paths (with dot files)
204
- // Note: We don't use glob's ignore option because it doesn't support gitignore semantics
205
- const paths = await (0, glob_1.glob)(normalizedPattern, {
206
- dot: true,
207
- });
208
- // Parallelize all stat calls for better performance
209
- const allEntries = await Promise.all(paths.map(async (filePath) => {
210
- // Filter using proper gitignore semantics from the ignore library
211
- if (isExcluded(filePath, dirPath, excludePatterns)) {
212
- return null;
213
- }
214
- return await getFileSystemEntry(filePath);
215
- }));
216
- // Filter out null entries (excluded files or files that couldn't be read)
217
- entries.push(...allEntries.filter((e) => e !== null));
218
- }
219
- catch {
220
- // Return empty array if directory doesn't exist or can't be read
221
- }
222
- return entries;
223
- }
224
- /**
225
- * Copy file with metadata preservation
226
- */
227
- async function copyFile(sourcePath, destPath) {
228
- await ensureDirectoryExists(path.dirname(destPath));
229
- await fs.copyFile(sourcePath, destPath);
230
- // Preserve file permissions
231
- const stats = await fs.stat(sourcePath);
232
- await fs.chmod(destPath, stats.mode);
233
- }
234
- /**
235
- * Move/rename file or directory
236
- */
237
- async function movePath(sourcePath, destPath) {
238
- await ensureDirectoryExists(path.dirname(destPath));
239
- await fs.rename(sourcePath, destPath);
240
- }
241
- /**
242
- * Calculate content hash for change detection
243
- */
244
- async function calculateContentHash(content) {
245
- const hash = crypto.createHash("sha256");
246
- hash.update(content);
247
- return hash.digest("hex");
248
- }
249
- /**
250
- * Get MIME type for file
251
- */
252
- function getMimeType(filePath) {
253
- return mimeTypes.lookup(filePath) || "application/octet-stream";
254
- }
255
- /**
256
- * Get file extension
257
- */
258
- function getFileExtension(filePath) {
259
- const ext = path.extname(filePath);
260
- return ext.startsWith(".") ? ext.slice(1) : ext;
261
- }
262
- /**
263
- * Normalize path separators for cross-platform compatibility
264
- * Converts all path separators to forward slashes for consistent storage
265
- */
266
- function normalizePath(filePath) {
267
- return path.posix.normalize(filePath.replace(/\\/g, "/"));
268
- }
269
- /**
270
- * Join paths and normalize separators for cross-platform compatibility
271
- * Use this instead of string concatenation to ensure proper path handling on Windows
272
- */
273
- function joinAndNormalizePath(...paths) {
274
- // Use path.join to properly handle path construction (handles Windows drive letters, etc.)
275
- const joined = path.join(...paths);
276
- // Then normalize to forward slashes for consistent storage/comparison
277
- return normalizePath(joined);
278
- }
279
- /**
280
- * Get relative path from base directory
281
- */
282
- function getRelativePath(basePath, filePath) {
283
- return normalizePath(path.relative(basePath, filePath));
284
- }
285
- /**
286
- * Format a path as a relative path with proper prefix
287
- * Ensures paths like "src" become "./src" for clarity
288
- * Leaves absolute paths and paths already starting with . or .. unchanged
289
- */
290
- function formatRelativePath(filePath) {
291
- // Already starts with . or / - leave as-is
292
- if (filePath.startsWith(".") || filePath.startsWith("/")) {
293
- return filePath;
294
- }
295
- // Add ./ prefix for clarity
296
- return `./${filePath}`;
297
- }
298
- //# sourceMappingURL=fs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- export * from "./fs";
2
- export * from "./mime-types";
3
- export * from "./directory";
4
- export * from "./text-diff";
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,MAAM,CAAA;AACpB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA"}
@@ -1,21 +0,0 @@
1
- "use strict";
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 __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);
21
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uCAAoB;AACpB,+CAA4B;AAC5B,8CAA2B;AAC3B,8CAA2B"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Get enhanced MIME type for file with custom dev file support
3
- */
4
- export declare function getEnhancedMimeType(filePath: string): string;
5
- /**
6
- * Check if file extension should be forced to text type
7
- */
8
- export declare function shouldForceAsText(filePath: string): boolean;
9
- /**
10
- * Enhanced text file detection with developer file support
11
- */
12
- export declare function isEnhancedTextFile(filePath: string): Promise<boolean>;
13
- //# sourceMappingURL=mime-types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mime-types.d.ts","sourceRoot":"","sources":["../../src/utils/mime-types.ts"],"names":[],"mappings":"AA2GA;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAuB5D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAG3D;AAiBD;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAmB3E"}
@@ -1,247 +0,0 @@
1
- "use strict";
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"));
40
- /**
41
- * Custom MIME type definitions for developer files
42
- * Based on patchwork-cli's approach
43
- */
44
- const CUSTOM_MIME_TYPES = {
45
- // TypeScript files - override the incorrect video/mp2t detection
46
- ".ts": "text/typescript",
47
- ".tsx": "text/tsx",
48
- // Config file formats
49
- ".json": "application/json",
50
- ".yaml": "text/yaml",
51
- ".yml": "text/yaml",
52
- ".toml": "application/toml",
53
- ".ini": "text/plain",
54
- ".conf": "text/plain",
55
- ".config": "text/plain",
56
- // Vue.js single file components
57
- ".vue": "text/vue",
58
- // Modern CSS preprocessors
59
- ".scss": "text/scss",
60
- ".sass": "text/sass",
61
- ".less": "text/less",
62
- ".styl": "text/stylus",
63
- // Modern JavaScript variants
64
- ".mjs": "application/javascript",
65
- ".cjs": "application/javascript",
66
- // React JSX
67
- ".jsx": "text/jsx",
68
- // Svelte components
69
- ".svelte": "text/svelte",
70
- // Web assembly
71
- ".wasm": "application/wasm",
72
- // Other common dev files
73
- ".d.ts": "text/typescript",
74
- ".map": "application/json", // Source maps
75
- ".env": "text/plain",
76
- ".gitignore": "text/plain",
77
- ".gitattributes": "text/plain",
78
- ".editorconfig": "text/plain",
79
- ".prettierrc": "application/json",
80
- ".eslintrc": "application/json",
81
- ".babelrc": "application/json",
82
- // Documentation formats
83
- ".mdx": "text/markdown",
84
- ".rst": "text/x-rst",
85
- // Docker files
86
- Dockerfile: "text/plain",
87
- ".dockerignore": "text/plain",
88
- // Package manager files
89
- "package.json": "application/json",
90
- "package-lock.json": "application/json",
91
- "yarn.lock": "text/plain",
92
- "pnpm-lock.yaml": "text/yaml",
93
- "composer.json": "application/json",
94
- Pipfile: "text/plain",
95
- "requirements.txt": "text/plain",
96
- // Build tool configs
97
- "webpack.config.js": "application/javascript",
98
- "vite.config.js": "application/javascript",
99
- "rollup.config.js": "application/javascript",
100
- "tsconfig.json": "application/json",
101
- "jsconfig.json": "application/json",
102
- };
103
- /**
104
- * File extensions that should always be treated as text
105
- * regardless of MIME type detection
106
- */
107
- const FORCE_TEXT_EXTENSIONS = new Set([
108
- ".ts",
109
- ".tsx",
110
- ".jsx",
111
- ".vue",
112
- ".svelte",
113
- ".scss",
114
- ".sass",
115
- ".less",
116
- ".styl",
117
- ".env",
118
- ".gitignore",
119
- ".gitattributes",
120
- ".editorconfig",
121
- ".d.ts",
122
- ".map",
123
- ".mdx",
124
- ".rst",
125
- ".toml",
126
- ".ini",
127
- ".conf",
128
- ".config",
129
- ".lock",
130
- ]);
131
- /**
132
- * Get enhanced MIME type for file with custom dev file support
133
- */
134
- function getEnhancedMimeType(filePath) {
135
- const normalized = normalizePathSeparators(filePath);
136
- const filename = normalized.split("/").pop() || "";
137
- const extension = getFileExtension(normalized);
138
- // Check custom definitions first (by extension)
139
- if (extension && CUSTOM_MIME_TYPES[extension]) {
140
- return CUSTOM_MIME_TYPES[extension];
141
- }
142
- // Check custom definitions by full filename
143
- if (CUSTOM_MIME_TYPES[filename]) {
144
- return CUSTOM_MIME_TYPES[filename];
145
- }
146
- // Fall back to standard mime-types library
147
- const standardMime = mimeTypes.lookup(normalized);
148
- if (standardMime) {
149
- return standardMime;
150
- }
151
- // Final fallback
152
- return "application/octet-stream";
153
- }
154
- /**
155
- * Check if file extension should be forced to text type
156
- */
157
- function shouldForceAsText(filePath) {
158
- const extension = getFileExtension(filePath);
159
- return extension ? FORCE_TEXT_EXTENSIONS.has(extension) : false;
160
- }
161
- /**
162
- * Get file extension including the dot (internal helper)
163
- */
164
- function getFileExtension(filePath) {
165
- const match = filePath.match(/\.[^.]*$/);
166
- return match ? match[0].toLowerCase() : "";
167
- }
168
- /**
169
- * Normalize path separators to forward slashes for cross-platform consistency
170
- */
171
- function normalizePathSeparators(p) {
172
- return p.replace(/\\/g, "/");
173
- }
174
- /**
175
- * Enhanced text file detection with developer file support
176
- */
177
- async function isEnhancedTextFile(filePath) {
178
- // Force certain extensions to be treated as text
179
- if (shouldForceAsText(filePath)) {
180
- return true;
181
- }
182
- // Check MIME type
183
- const mimeType = getEnhancedMimeType(filePath);
184
- if (isTextMimeType(mimeType)) {
185
- return true;
186
- }
187
- // If it's a known binary type (but not the generic fallback), don't fall back to content detection
188
- if (isBinaryMimeType(mimeType) && mimeType !== "application/octet-stream") {
189
- return false;
190
- }
191
- // For generic octet-stream or unknown types, use content-based detection
192
- return isTextByContent(filePath);
193
- }
194
- /**
195
- * Check if MIME type indicates text content
196
- */
197
- function isTextMimeType(mimeType) {
198
- return (mimeType.startsWith("text/") ||
199
- mimeType === "application/json" ||
200
- mimeType === "application/xml" ||
201
- mimeType === "application/javascript" ||
202
- mimeType === "application/typescript" ||
203
- mimeType === "application/toml" ||
204
- mimeType.includes("javascript") ||
205
- mimeType.includes("typescript") ||
206
- mimeType.includes("json") ||
207
- mimeType.includes("xml"));
208
- }
209
- /**
210
- * Check if MIME type indicates binary content
211
- */
212
- function isBinaryMimeType(mimeType) {
213
- return (mimeType.startsWith("image/") ||
214
- mimeType.startsWith("video/") ||
215
- mimeType.startsWith("audio/") ||
216
- mimeType.startsWith("font/") ||
217
- mimeType === "application/zip" ||
218
- mimeType === "application/pdf" ||
219
- mimeType === "application/octet-stream" ||
220
- mimeType === "application/wasm" ||
221
- mimeType.includes("binary"));
222
- }
223
- /**
224
- * Content-based text detection (fallback method)
225
- */
226
- async function isTextByContent(filePath) {
227
- try {
228
- const fs = await Promise.resolve().then(() => __importStar(require("fs/promises")));
229
- // Sample first 8KB to detect binary content
230
- const handle = await fs.open(filePath, "r");
231
- const stats = await handle.stat();
232
- const sampleSize = Math.min(8192, stats.size);
233
- if (sampleSize === 0) {
234
- await handle.close();
235
- return true; // Empty file is text
236
- }
237
- const buffer = Buffer.alloc(sampleSize);
238
- await handle.read(buffer, 0, sampleSize, 0);
239
- await handle.close();
240
- // Check for null bytes which indicate binary content
241
- return !buffer.includes(0);
242
- }
243
- catch {
244
- return false;
245
- }
246
- }
247
- //# sourceMappingURL=mime-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mime-types.js","sourceRoot":"","sources":["../../src/utils/mime-types.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- import { DocHandle, StorageId, Repo, AutomergeUrl } from "@automerge/automerge-repo";
2
- /**
3
- * Wait for bidirectional sync to stabilize.
4
- * This function waits until document heads stop changing, indicating that
5
- * both outgoing and incoming sync has completed.
6
- *
7
- * @param repo - The Automerge repository
8
- * @param rootDirectoryUrl - The root directory URL to start traversal from
9
- * @param options - Configuration options
10
- */
11
- export declare function waitForBidirectionalSync(repo: Repo, rootDirectoryUrl: AutomergeUrl | undefined, options?: {
12
- timeoutMs?: number;
13
- pollIntervalMs?: number;
14
- stableChecksRequired?: number;
15
- handles?: DocHandle<unknown>[];
16
- }): Promise<void>;
17
- /**
18
- * Result of waitForSync — lists which handles failed to sync.
19
- */
20
- export interface SyncWaitResult {
21
- failed: DocHandle<unknown>[];
22
- }
23
- /**
24
- * Wait for documents to sync to the remote server.
25
- * Processes handles in batches to avoid flooding the server.
26
- * Returns a result with any failed handles instead of throwing,
27
- * so callers can attempt recovery (e.g. recreating documents).
28
- */
29
- export declare function waitForSync(handlesToWaitOn: DocHandle<unknown>[], syncServerStorageId?: StorageId, timeoutMs?: number): Promise<SyncWaitResult>;
30
- //# sourceMappingURL=network-sync.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"network-sync.d.ts","sourceRoot":"","sources":["../../src/utils/network-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,SAAS,EACT,IAAI,EACJ,YAAY,EACb,MAAM,2BAA2B,CAAC;AAWnC;;;;;;;;GAQG;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;AAuED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EACrC,mBAAmB,CAAC,EAAE,SAAS,EAC/B,SAAS,GAAE,MAAc,GACxB,OAAO,CAAC,cAAc,CAAC,CAiFzB"}