pushwork 1.0.4 → 1.0.7
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 +87 -328
- package/dist/.pushwork/automerge/3P/Dm3ekE2pmjGnWvDaG3vSR7ww98/snapshot/aa2349c94955ea561f698720142f9d884a6872d9f82dc332d578c216beb0df0e +0 -0
- package/dist/.pushwork/automerge/st/orage-adapter-id +1 -0
- package/dist/.pushwork/config.json +15 -0
- package/dist/.pushwork/snapshot.json +7 -0
- package/dist/cli.js +231 -170
- package/dist/cli.js.map +1 -1
- package/dist/commands.d.ts +51 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +799 -0
- package/dist/commands.js.map +1 -0
- package/dist/core/change-detection.d.ts +6 -19
- package/dist/core/change-detection.d.ts.map +1 -1
- package/dist/core/change-detection.js +101 -80
- package/dist/core/change-detection.js.map +1 -1
- package/dist/{config/index.d.ts → core/config.d.ts} +13 -3
- package/dist/core/config.d.ts.map +1 -0
- package/dist/{config/index.js → core/config.js} +55 -73
- package/dist/core/config.js.map +1 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/move-detection.d.ts +12 -50
- package/dist/core/move-detection.d.ts.map +1 -1
- package/dist/core/move-detection.js +58 -139
- package/dist/core/move-detection.js.map +1 -1
- package/dist/core/snapshot.d.ts +0 -4
- package/dist/core/snapshot.d.ts.map +1 -1
- package/dist/core/snapshot.js +2 -11
- package/dist/core/snapshot.js.map +1 -1
- package/dist/core/sync-engine.d.ts +5 -11
- package/dist/core/sync-engine.d.ts.map +1 -1
- package/dist/core/sync-engine.js +220 -362
- package/dist/core/sync-engine.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -6
- package/dist/index.js.map +1 -1
- package/dist/types/config.d.ts +43 -67
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +6 -0
- package/dist/types/config.js.map +1 -1
- package/dist/types/documents.d.ts +15 -3
- package/dist/types/documents.d.ts.map +1 -1
- package/dist/types/documents.js.map +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +0 -3
- package/dist/types/index.js.map +1 -1
- package/dist/types/snapshot.d.ts +3 -21
- package/dist/types/snapshot.d.ts.map +1 -1
- package/dist/types/snapshot.js +0 -14
- package/dist/types/snapshot.js.map +1 -1
- package/dist/utils/content.d.ts.map +1 -1
- package/dist/utils/content.js +2 -6
- package/dist/utils/content.js.map +1 -1
- package/dist/utils/directory.d.ts +10 -0
- package/dist/utils/directory.d.ts.map +1 -0
- package/dist/utils/directory.js +37 -0
- package/dist/utils/directory.js.map +1 -0
- package/dist/utils/fs.d.ts +15 -2
- package/dist/utils/fs.d.ts.map +1 -1
- package/dist/utils/fs.js +63 -53
- package/dist/utils/fs.js.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -4
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/mime-types.d.ts.map +1 -1
- package/dist/utils/mime-types.js +11 -4
- package/dist/utils/mime-types.js.map +1 -1
- package/dist/utils/network-sync.d.ts +0 -6
- package/dist/utils/network-sync.d.ts.map +1 -1
- package/dist/utils/network-sync.js +55 -99
- package/dist/utils/network-sync.js.map +1 -1
- package/dist/utils/output.d.ts +129 -0
- package/dist/utils/output.d.ts.map +1 -0
- package/dist/utils/output.js +375 -0
- package/dist/utils/output.js.map +1 -0
- package/dist/utils/repo-factory.d.ts +2 -6
- package/dist/utils/repo-factory.d.ts.map +1 -1
- package/dist/utils/repo-factory.js +8 -22
- package/dist/utils/repo-factory.js.map +1 -1
- package/dist/utils/string-similarity.d.ts +14 -0
- package/dist/utils/string-similarity.d.ts.map +1 -0
- package/dist/utils/string-similarity.js +43 -0
- package/dist/utils/string-similarity.js.map +1 -0
- package/dist/utils/trace.d.ts +19 -0
- package/dist/utils/trace.d.ts.map +1 -0
- package/dist/utils/trace.js +68 -0
- package/dist/utils/trace.js.map +1 -0
- package/package.json +17 -12
- package/src/cli.ts +326 -252
- package/src/commands.ts +988 -0
- package/src/core/change-detection.ts +199 -162
- package/src/{config/index.ts → core/config.ts} +65 -82
- package/src/core/index.ts +1 -1
- package/src/core/move-detection.ts +74 -180
- package/src/core/snapshot.ts +2 -12
- package/src/core/sync-engine.ts +248 -499
- package/src/index.ts +0 -10
- package/src/types/config.ts +50 -72
- package/src/types/documents.ts +16 -3
- package/src/types/index.ts +0 -5
- package/src/types/snapshot.ts +1 -23
- package/src/utils/content.ts +2 -6
- package/src/utils/directory.ts +50 -0
- package/src/utils/fs.ts +67 -56
- package/src/utils/index.ts +1 -6
- package/src/utils/mime-types.ts +12 -4
- package/src/utils/network-sync.ts +79 -137
- package/src/utils/output.ts +450 -0
- package/src/utils/repo-factory.ts +13 -31
- package/src/utils/string-similarity.ts +54 -0
- package/src/utils/trace.ts +70 -0
- package/test/integration/exclude-patterns.test.ts +6 -15
- package/test/integration/fuzzer.test.ts +308 -391
- package/test/integration/init-sync.test.ts +89 -0
- package/test/integration/sync-deletion.test.ts +2 -61
- package/test/integration/sync-flow.test.ts +4 -24
- package/test/jest.setup.ts +34 -0
- package/test/unit/deletion-behavior.test.ts +3 -14
- package/test/unit/enhanced-mime-detection.test.ts +0 -22
- package/test/unit/snapshot.test.ts +2 -29
- package/test/unit/sync-convergence.test.ts +3 -198
- package/test/unit/sync-timing.test.ts +0 -44
- package/test/unit/utils.test.ts +0 -2
- package/tsconfig.json +3 -3
- package/dist/browser/browser-sync-engine.d.ts +0 -64
- package/dist/browser/browser-sync-engine.d.ts.map +0 -1
- package/dist/browser/browser-sync-engine.js +0 -303
- package/dist/browser/browser-sync-engine.js.map +0 -1
- package/dist/browser/filesystem-adapter.d.ts +0 -84
- package/dist/browser/filesystem-adapter.d.ts.map +0 -1
- package/dist/browser/filesystem-adapter.js +0 -413
- package/dist/browser/filesystem-adapter.js.map +0 -1
- package/dist/browser/index.d.ts +0 -36
- package/dist/browser/index.d.ts.map +0 -1
- package/dist/browser/index.js +0 -90
- package/dist/browser/index.js.map +0 -1
- package/dist/browser/types.d.ts +0 -70
- package/dist/browser/types.d.ts.map +0 -1
- package/dist/browser/types.js +0 -6
- package/dist/browser/types.js.map +0 -1
- package/dist/cli/commands.d.ts +0 -77
- package/dist/cli/commands.d.ts.map +0 -1
- package/dist/cli/commands.js +0 -904
- package/dist/cli/commands.js.map +0 -1
- package/dist/cli/index.d.ts +0 -2
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -19
- package/dist/cli/index.js.map +0 -1
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js.map +0 -1
- package/dist/core/isomorphic-snapshot.d.ts +0 -58
- package/dist/core/isomorphic-snapshot.d.ts.map +0 -1
- package/dist/core/isomorphic-snapshot.js +0 -204
- package/dist/core/isomorphic-snapshot.js.map +0 -1
- package/dist/platform/browser-filesystem.d.ts +0 -26
- package/dist/platform/browser-filesystem.d.ts.map +0 -1
- package/dist/platform/browser-filesystem.js +0 -91
- package/dist/platform/browser-filesystem.js.map +0 -1
- package/dist/platform/filesystem.d.ts +0 -29
- package/dist/platform/filesystem.d.ts.map +0 -1
- package/dist/platform/filesystem.js +0 -65
- package/dist/platform/filesystem.js.map +0 -1
- package/dist/platform/node-filesystem.d.ts +0 -21
- package/dist/platform/node-filesystem.d.ts.map +0 -1
- package/dist/platform/node-filesystem.js +0 -93
- package/dist/platform/node-filesystem.js.map +0 -1
- package/dist/utils/content-similarity.d.ts +0 -53
- package/dist/utils/content-similarity.d.ts.map +0 -1
- package/dist/utils/content-similarity.js +0 -155
- package/dist/utils/content-similarity.js.map +0 -1
- package/dist/utils/fs-browser.d.ts +0 -57
- package/dist/utils/fs-browser.d.ts.map +0 -1
- package/dist/utils/fs-browser.js +0 -311
- package/dist/utils/fs-browser.js.map +0 -1
- package/dist/utils/fs-node.d.ts +0 -53
- package/dist/utils/fs-node.d.ts.map +0 -1
- package/dist/utils/fs-node.js +0 -220
- package/dist/utils/fs-node.js.map +0 -1
- package/dist/utils/isomorphic.d.ts +0 -29
- package/dist/utils/isomorphic.d.ts.map +0 -1
- package/dist/utils/isomorphic.js +0 -139
- package/dist/utils/isomorphic.js.map +0 -1
- package/dist/utils/pure.d.ts +0 -25
- package/dist/utils/pure.d.ts.map +0 -1
- package/dist/utils/pure.js +0 -112
- package/dist/utils/pure.js.map +0 -1
- package/src/cli/commands.ts +0 -1207
- package/src/cli/index.ts +0 -2
- package/src/utils/content-similarity.ts +0 -194
- package/test/README-TESTING-GAPS.md +0 -174
- package/test/unit/content-similarity.test.ts +0 -236
package/dist/utils/isomorphic.js
DELETED
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Isomorphic utilities that work in both Node.js and browser environments
|
|
4
|
-
*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getFileExtension = getFileExtension;
|
|
7
|
-
exports.normalizePath = normalizePath;
|
|
8
|
-
exports.getRelativePath = getRelativePath;
|
|
9
|
-
exports.calculateContentHash = calculateContentHash;
|
|
10
|
-
exports.getMimeType = getMimeType;
|
|
11
|
-
exports.isTextFile = isTextFile;
|
|
12
|
-
exports.readFileContent = readFileContent;
|
|
13
|
-
exports.writeFileContent = writeFileContent;
|
|
14
|
-
exports.removePath = removePath;
|
|
15
|
-
exports.movePath = movePath;
|
|
16
|
-
exports.ensureDirectoryExists = ensureDirectoryExists;
|
|
17
|
-
exports.pathExists = pathExists;
|
|
18
|
-
exports.listDirectory = listDirectory;
|
|
19
|
-
exports.getFileSystemEntry = getFileSystemEntry;
|
|
20
|
-
exports.setFilesystemInstance = setFilesystemInstance;
|
|
21
|
-
const filesystem_1 = require("../platform/filesystem");
|
|
22
|
-
const mime_types_1 = require("./mime-types");
|
|
23
|
-
// Pure functions that work in both environments
|
|
24
|
-
function getFileExtension(filePath) {
|
|
25
|
-
const ext = filePath.split(".").pop() || "";
|
|
26
|
-
return ext.startsWith(".") ? ext : `.${ext}`;
|
|
27
|
-
}
|
|
28
|
-
function normalizePath(filePath) {
|
|
29
|
-
// Simple path normalization that works in browser
|
|
30
|
-
return filePath.replace(/\\/g, "/").replace(/\/+/g, "/");
|
|
31
|
-
}
|
|
32
|
-
function getRelativePath(basePath, filePath) {
|
|
33
|
-
// Simple relative path calculation for browser compatibility
|
|
34
|
-
const base = normalizePath(basePath)
|
|
35
|
-
.split("/")
|
|
36
|
-
.filter((p) => p);
|
|
37
|
-
const file = normalizePath(filePath)
|
|
38
|
-
.split("/")
|
|
39
|
-
.filter((p) => p);
|
|
40
|
-
// Find common prefix
|
|
41
|
-
let commonLength = 0;
|
|
42
|
-
for (let i = 0; i < Math.min(base.length, file.length); i++) {
|
|
43
|
-
if (base[i] === file[i]) {
|
|
44
|
-
commonLength++;
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
break;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
// Build relative path
|
|
51
|
-
const upCount = base.length - commonLength;
|
|
52
|
-
const downPath = file.slice(commonLength);
|
|
53
|
-
const result = ["..".repeat(upCount), ...downPath].filter((p) => p).join("/");
|
|
54
|
-
return result || ".";
|
|
55
|
-
}
|
|
56
|
-
function calculateContentHash(content) {
|
|
57
|
-
// Simple hash function for browser compatibility
|
|
58
|
-
let hash = 0;
|
|
59
|
-
const str = typeof content === "string" ? content : new TextDecoder().decode(content);
|
|
60
|
-
for (let i = 0; i < str.length; i++) {
|
|
61
|
-
const char = str.charCodeAt(i);
|
|
62
|
-
hash = (hash << 5) - hash + char;
|
|
63
|
-
hash = hash & hash; // Convert to 32-bit integer
|
|
64
|
-
}
|
|
65
|
-
return Math.abs(hash).toString(16);
|
|
66
|
-
}
|
|
67
|
-
function getMimeType(filePath) {
|
|
68
|
-
return (0, mime_types_1.getEnhancedMimeType)(filePath);
|
|
69
|
-
}
|
|
70
|
-
function isTextFile(filePath) {
|
|
71
|
-
return (0, mime_types_1.isEnhancedTextFile)(filePath);
|
|
72
|
-
}
|
|
73
|
-
// Filesystem-dependent functions that use the platform interface
|
|
74
|
-
let _filesystem = null;
|
|
75
|
-
async function getFs() {
|
|
76
|
-
if (!_filesystem) {
|
|
77
|
-
_filesystem = await (0, filesystem_1.getFilesystem)();
|
|
78
|
-
}
|
|
79
|
-
return _filesystem;
|
|
80
|
-
}
|
|
81
|
-
async function readFileContent(filePath) {
|
|
82
|
-
const fs = await getFs();
|
|
83
|
-
return fs.readFileContent(filePath);
|
|
84
|
-
}
|
|
85
|
-
async function writeFileContent(filePath, content) {
|
|
86
|
-
const fs = await getFs();
|
|
87
|
-
return fs.writeFileContent(filePath, content);
|
|
88
|
-
}
|
|
89
|
-
async function removePath(filePath) {
|
|
90
|
-
const fs = await getFs();
|
|
91
|
-
return fs.removePath(filePath);
|
|
92
|
-
}
|
|
93
|
-
async function movePath(sourcePath, targetPath) {
|
|
94
|
-
const fs = await getFs();
|
|
95
|
-
return fs.movePath(sourcePath, targetPath);
|
|
96
|
-
}
|
|
97
|
-
async function ensureDirectoryExists(dirPath) {
|
|
98
|
-
const fs = await getFs();
|
|
99
|
-
return fs.ensureDirectoryExists(dirPath);
|
|
100
|
-
}
|
|
101
|
-
async function pathExists(filePath) {
|
|
102
|
-
const fs = await getFs();
|
|
103
|
-
return fs.exists(filePath);
|
|
104
|
-
}
|
|
105
|
-
async function listDirectory(dirPath, excludePatterns = []) {
|
|
106
|
-
const fs = await getFs();
|
|
107
|
-
const entries = await fs.listDirectory(dirPath);
|
|
108
|
-
// Apply exclude patterns
|
|
109
|
-
if (excludePatterns.length > 0) {
|
|
110
|
-
return entries.filter((entry) => {
|
|
111
|
-
return !excludePatterns.some((pattern) => {
|
|
112
|
-
// Simple glob pattern matching
|
|
113
|
-
const regex = new RegExp(pattern.replace(/\*/g, ".*").replace(/\?/g, "."));
|
|
114
|
-
return regex.test(entry.name);
|
|
115
|
-
});
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
return entries;
|
|
119
|
-
}
|
|
120
|
-
async function getFileSystemEntry(filePath) {
|
|
121
|
-
const fs = await getFs();
|
|
122
|
-
const exists = await fs.exists(filePath);
|
|
123
|
-
if (!exists) {
|
|
124
|
-
throw new Error(`Path does not exist: ${filePath}`);
|
|
125
|
-
}
|
|
126
|
-
const stats = await fs.getFileStats(filePath);
|
|
127
|
-
return {
|
|
128
|
-
path: filePath,
|
|
129
|
-
type: "file", // Simplified - in real implementation would check if directory
|
|
130
|
-
size: stats.size,
|
|
131
|
-
mtime: stats.mtime,
|
|
132
|
-
permissions: 0o644, // Default permissions
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
// Set filesystem instance (useful for browser where we need to inject the root handle)
|
|
136
|
-
function setFilesystemInstance(fs) {
|
|
137
|
-
_filesystem = fs;
|
|
138
|
-
}
|
|
139
|
-
//# sourceMappingURL=isomorphic.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isomorphic.js","sourceRoot":"","sources":["../../src/utils/isomorphic.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/pure.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pure utility functions that work in both Node.js and browser environments
|
|
3
|
-
* These functions don't depend on any platform-specific APIs
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Get file extension from a file path
|
|
7
|
-
*/
|
|
8
|
-
export declare function getFileExtension(filePath: string): string;
|
|
9
|
-
/**
|
|
10
|
-
* Normalize file path to use forward slashes and resolve relative components
|
|
11
|
-
*/
|
|
12
|
-
export declare function normalizePath(filePath: string): string;
|
|
13
|
-
/**
|
|
14
|
-
* Get relative path from base to target
|
|
15
|
-
*/
|
|
16
|
-
export declare function getRelativePath(basePath: string, targetPath: string): string;
|
|
17
|
-
/**
|
|
18
|
-
* Simple content hash calculation (browser-compatible)
|
|
19
|
-
*/
|
|
20
|
-
export declare function calculateContentHash(content: string | Uint8Array): string;
|
|
21
|
-
/**
|
|
22
|
-
* Check if a path matches any of the exclude patterns
|
|
23
|
-
*/
|
|
24
|
-
export declare function matchesExcludePatterns(path: string, patterns: string[]): boolean;
|
|
25
|
-
//# sourceMappingURL=pure.d.ts.map
|
package/dist/utils/pure.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pure.d.ts","sourceRoot":"","sources":["../../src/utils/pure.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKzD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA8BtD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CA6B5E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAYzE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAUT"}
|
package/dist/utils/pure.js
DELETED
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Pure utility functions that work in both Node.js and browser environments
|
|
4
|
-
* These functions don't depend on any platform-specific APIs
|
|
5
|
-
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.getFileExtension = getFileExtension;
|
|
8
|
-
exports.normalizePath = normalizePath;
|
|
9
|
-
exports.getRelativePath = getRelativePath;
|
|
10
|
-
exports.calculateContentHash = calculateContentHash;
|
|
11
|
-
exports.matchesExcludePatterns = matchesExcludePatterns;
|
|
12
|
-
/**
|
|
13
|
-
* Get file extension from a file path
|
|
14
|
-
*/
|
|
15
|
-
function getFileExtension(filePath) {
|
|
16
|
-
const parts = filePath.split(".");
|
|
17
|
-
if (parts.length < 2)
|
|
18
|
-
return "";
|
|
19
|
-
const ext = parts[parts.length - 1];
|
|
20
|
-
return ext.startsWith(".") ? ext : `.${ext}`;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Normalize file path to use forward slashes and resolve relative components
|
|
24
|
-
*/
|
|
25
|
-
function normalizePath(filePath) {
|
|
26
|
-
// Convert backslashes to forward slashes
|
|
27
|
-
let normalized = filePath.replace(/\\/g, "/");
|
|
28
|
-
// Split into parts and process
|
|
29
|
-
const parts = normalized.split("/");
|
|
30
|
-
const result = [];
|
|
31
|
-
for (const part of parts) {
|
|
32
|
-
if (part === "" && result.length === 0) {
|
|
33
|
-
// Leading slash - keep it
|
|
34
|
-
result.push("");
|
|
35
|
-
}
|
|
36
|
-
else if (part === "" || part === ".") {
|
|
37
|
-
// Empty or current directory - skip
|
|
38
|
-
continue;
|
|
39
|
-
}
|
|
40
|
-
else if (part === "..") {
|
|
41
|
-
// Parent directory
|
|
42
|
-
if (result.length > 0 && result[result.length - 1] !== "..") {
|
|
43
|
-
result.pop();
|
|
44
|
-
}
|
|
45
|
-
else if (result.length === 0 || result[0] !== "") {
|
|
46
|
-
// Not an absolute path, can go up
|
|
47
|
-
result.push("..");
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
result.push(part);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
const final = result.join("/");
|
|
55
|
-
return final || (filePath.startsWith("/") ? "/" : ".");
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Get relative path from base to target
|
|
59
|
-
*/
|
|
60
|
-
function getRelativePath(basePath, targetPath) {
|
|
61
|
-
const base = normalizePath(basePath)
|
|
62
|
-
.split("/")
|
|
63
|
-
.filter((p) => p !== "");
|
|
64
|
-
const target = normalizePath(targetPath)
|
|
65
|
-
.split("/")
|
|
66
|
-
.filter((p) => p !== "");
|
|
67
|
-
// Find common prefix length
|
|
68
|
-
let commonLength = 0;
|
|
69
|
-
for (let i = 0; i < Math.min(base.length, target.length); i++) {
|
|
70
|
-
if (base[i] === target[i]) {
|
|
71
|
-
commonLength++;
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
break;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
// Build relative path
|
|
78
|
-
const upLevels = base.length - commonLength;
|
|
79
|
-
const downPath = target.slice(commonLength);
|
|
80
|
-
const parts = [];
|
|
81
|
-
for (let i = 0; i < upLevels; i++) {
|
|
82
|
-
parts.push("..");
|
|
83
|
-
}
|
|
84
|
-
parts.push(...downPath);
|
|
85
|
-
return parts.length === 0 ? "." : parts.join("/");
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Simple content hash calculation (browser-compatible)
|
|
89
|
-
*/
|
|
90
|
-
function calculateContentHash(content) {
|
|
91
|
-
let hash = 0;
|
|
92
|
-
const str = typeof content === "string" ? content : new TextDecoder().decode(content);
|
|
93
|
-
for (let i = 0; i < str.length; i++) {
|
|
94
|
-
const char = str.charCodeAt(i);
|
|
95
|
-
hash = (hash << 5) - hash + char;
|
|
96
|
-
hash = hash & hash; // Convert to 32-bit integer
|
|
97
|
-
}
|
|
98
|
-
return Math.abs(hash).toString(16);
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Check if a path matches any of the exclude patterns
|
|
102
|
-
*/
|
|
103
|
-
function matchesExcludePatterns(path, patterns) {
|
|
104
|
-
return patterns.some((pattern) => {
|
|
105
|
-
// Simple glob pattern matching
|
|
106
|
-
const regex = new RegExp("^" +
|
|
107
|
-
pattern.replace(/\./g, "\\.").replace(/\*/g, ".*").replace(/\?/g, ".") +
|
|
108
|
-
"$");
|
|
109
|
-
return regex.test(path);
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
//# sourceMappingURL=pure.js.map
|
package/dist/utils/pure.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pure.js","sourceRoot":"","sources":["../../src/utils/pure.ts"],"names":[],"mappings":"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"}
|