@hasna/files 0.1.1

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 (55) hide show
  1. package/README.md +148 -0
  2. package/dashboard/dist/assets/index-DBpbr5zm.css +1 -0
  3. package/dashboard/dist/assets/index-zazl9Rbx.js +129 -0
  4. package/dashboard/dist/index.html +13 -0
  5. package/dist/cli/index.d.ts +3 -0
  6. package/dist/cli/index.d.ts.map +1 -0
  7. package/dist/cli/index.js +46386 -0
  8. package/dist/db/collections.d.ts +8 -0
  9. package/dist/db/collections.d.ts.map +1 -0
  10. package/dist/db/database.d.ts +5 -0
  11. package/dist/db/database.d.ts.map +1 -0
  12. package/dist/db/files.d.ts +12 -0
  13. package/dist/db/files.d.ts.map +1 -0
  14. package/dist/db/machines.d.ts +6 -0
  15. package/dist/db/machines.d.ts.map +1 -0
  16. package/dist/db/peers.d.ts +15 -0
  17. package/dist/db/peers.d.ts.map +1 -0
  18. package/dist/db/projects.d.ts +8 -0
  19. package/dist/db/projects.d.ts.map +1 -0
  20. package/dist/db/resolve.d.ts +9 -0
  21. package/dist/db/resolve.d.ts.map +1 -0
  22. package/dist/db/search.d.ts +6 -0
  23. package/dist/db/search.d.ts.map +1 -0
  24. package/dist/db/sources.d.ts +17 -0
  25. package/dist/db/sources.d.ts.map +1 -0
  26. package/dist/db/tags.d.ts +8 -0
  27. package/dist/db/tags.d.ts.map +1 -0
  28. package/dist/index.d.ts +15 -0
  29. package/dist/index.d.ts.map +1 -0
  30. package/dist/index.js +43739 -0
  31. package/dist/lib/config.d.ts +13 -0
  32. package/dist/lib/config.d.ts.map +1 -0
  33. package/dist/lib/hasher.d.ts +3 -0
  34. package/dist/lib/hasher.d.ts.map +1 -0
  35. package/dist/lib/ignore.d.ts +11 -0
  36. package/dist/lib/ignore.d.ts.map +1 -0
  37. package/dist/lib/indexer.d.ts +3 -0
  38. package/dist/lib/indexer.d.ts.map +1 -0
  39. package/dist/lib/s3.d.ts +12 -0
  40. package/dist/lib/s3.d.ts.map +1 -0
  41. package/dist/lib/sync.d.ts +19 -0
  42. package/dist/lib/sync.d.ts.map +1 -0
  43. package/dist/lib/watcher.d.ts +5 -0
  44. package/dist/lib/watcher.d.ts.map +1 -0
  45. package/dist/mcp/index.d.ts +3 -0
  46. package/dist/mcp/index.d.ts.map +1 -0
  47. package/dist/mcp/index.js +55905 -0
  48. package/dist/server/index.d.ts +3 -0
  49. package/dist/server/index.d.ts.map +1 -0
  50. package/dist/server/index.js +42191 -0
  51. package/dist/server/serve.d.ts +2 -0
  52. package/dist/server/serve.d.ts.map +1 -0
  53. package/dist/types/index.d.ts +104 -0
  54. package/dist/types/index.d.ts.map +1 -0
  55. package/package.json +77 -0
@@ -0,0 +1,13 @@
1
+ export interface FilesConfig {
2
+ auto_watch: boolean;
3
+ hash_skip_bytes: number;
4
+ default_limit: number;
5
+ ignore_patterns: string[];
6
+ [key: string]: unknown;
7
+ }
8
+ export declare function loadConfig(): FilesConfig;
9
+ export declare function saveConfig(cfg: FilesConfig): void;
10
+ export declare function getConfigValue(key: keyof FilesConfig): unknown;
11
+ export declare function setConfigValue(key: string, value: string): void;
12
+ export declare const CONFIG_PATH_EXPORT: string;
13
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AASD,wBAAgB,UAAU,IAAI,WAAW,CAOxC;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAGjD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,WAAW,GAAG,OAAO,CAE9D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAe/D;AAED,eAAO,MAAM,kBAAkB,QAAc,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function hashFile(filePath: string): string;
2
+ export declare function hashBuffer(data: Uint8Array): string;
3
+ //# sourceMappingURL=hasher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hasher.d.ts","sourceRoot":"","sources":["../../src/lib/hasher.ts"],"names":[],"mappings":"AAGA,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIjD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEnD"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Reads .filesignore from the root of a local source and returns a matcher function.
3
+ * Supports glob-style patterns (fnmatch-like):
4
+ * - Lines starting with # are comments
5
+ * - Blank lines are skipped
6
+ * - Patterns ending with / match directories only
7
+ * - * matches anything except /
8
+ * - ** matches anything including /
9
+ */
10
+ export declare function loadIgnorePatterns(rootPath: string): (relPath: string, isDir: boolean) => boolean;
11
+ //# sourceMappingURL=ignore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ignore.d.ts","sourceRoot":"","sources":["../../src/lib/ignore.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAEH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAsBjG"}
@@ -0,0 +1,3 @@
1
+ import type { Source, IndexStats } from "../types/index.js";
2
+ export declare function indexLocalSource(source: Source, machine_id: string): Promise<IndexStats>;
3
+ //# sourceMappingURL=indexer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/lib/indexer.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAO5D,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAwB9F"}
@@ -0,0 +1,12 @@
1
+ import type { Source, IndexStats } from "../types/index.js";
2
+ export declare function indexS3Source(source: Source, machine_id: string): Promise<IndexStats>;
3
+ export declare function downloadFromS3(source: Source, filePath: string, destPath: string): Promise<void>;
4
+ export declare function uploadToS3(source: Source, localPath: string, s3Key?: string): Promise<string>;
5
+ export declare function deleteFromS3(source: Source, filePath: string): Promise<void>;
6
+ export declare function getPresignedUrl(source: Source, filePath: string, expiresIn?: number): Promise<string>;
7
+ export declare function headS3Object(source: Source, filePath: string): Promise<{
8
+ size: number;
9
+ mime: string;
10
+ modified_at: string;
11
+ } | null>;
12
+ //# sourceMappingURL=s3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3.d.ts","sourceRoot":"","sources":["../../src/lib/s3.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAmB5D,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CA0B3F;AAqCD,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAStG;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAoBnG;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIlF;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAQzG;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAaxI"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Peer-to-peer sync between machines.
3
+ *
4
+ * Each machine runs its own SQLite DB. Sync works by:
5
+ * 1. Fetching the remote machine's /machines/current and /files endpoint
6
+ * 2. Upserting remote file records into local DB (tagged with remote machine_id)
7
+ * 3. Upserting remote machine record so it appears in list_machines
8
+ *
9
+ * This gives you a merged view across all machines without a central DB.
10
+ */
11
+ export interface SyncResult {
12
+ peer: string;
13
+ machines_synced: number;
14
+ files_synced: number;
15
+ errors: string[];
16
+ }
17
+ export declare function syncWithPeer(peerUrl: string): Promise<SyncResult>;
18
+ export declare function syncWithPeers(peerUrls: string[]): Promise<SyncResult[]>;
19
+ //# sourceMappingURL=sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/lib/sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CA8DvE;AAED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAE7E"}
@@ -0,0 +1,5 @@
1
+ import type { Source } from "../types/index.js";
2
+ export declare function watchSource(source: Source, machine_id: string): void;
3
+ export declare function unwatchSource(source_id: string): void;
4
+ export declare function stopAllWatchers(): void;
5
+ //# sourceMappingURL=watcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../src/lib/watcher.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAahD,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAmBpE;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAMrD;AAED,wBAAgB,eAAe,IAAI,IAAI,CAEtC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env bun
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":""}