@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.
- package/README.md +148 -0
- package/dashboard/dist/assets/index-DBpbr5zm.css +1 -0
- package/dashboard/dist/assets/index-zazl9Rbx.js +129 -0
- package/dashboard/dist/index.html +13 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +46386 -0
- package/dist/db/collections.d.ts +8 -0
- package/dist/db/collections.d.ts.map +1 -0
- package/dist/db/database.d.ts +5 -0
- package/dist/db/database.d.ts.map +1 -0
- package/dist/db/files.d.ts +12 -0
- package/dist/db/files.d.ts.map +1 -0
- package/dist/db/machines.d.ts +6 -0
- package/dist/db/machines.d.ts.map +1 -0
- package/dist/db/peers.d.ts +15 -0
- package/dist/db/peers.d.ts.map +1 -0
- package/dist/db/projects.d.ts +8 -0
- package/dist/db/projects.d.ts.map +1 -0
- package/dist/db/resolve.d.ts +9 -0
- package/dist/db/resolve.d.ts.map +1 -0
- package/dist/db/search.d.ts +6 -0
- package/dist/db/search.d.ts.map +1 -0
- package/dist/db/sources.d.ts +17 -0
- package/dist/db/sources.d.ts.map +1 -0
- package/dist/db/tags.d.ts +8 -0
- package/dist/db/tags.d.ts.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43739 -0
- package/dist/lib/config.d.ts +13 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/hasher.d.ts +3 -0
- package/dist/lib/hasher.d.ts.map +1 -0
- package/dist/lib/ignore.d.ts +11 -0
- package/dist/lib/ignore.d.ts.map +1 -0
- package/dist/lib/indexer.d.ts +3 -0
- package/dist/lib/indexer.d.ts.map +1 -0
- package/dist/lib/s3.d.ts +12 -0
- package/dist/lib/s3.d.ts.map +1 -0
- package/dist/lib/sync.d.ts +19 -0
- package/dist/lib/sync.d.ts.map +1 -0
- package/dist/lib/watcher.d.ts +5 -0
- package/dist/lib/watcher.d.ts.map +1 -0
- package/dist/mcp/index.d.ts +3 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +55905 -0
- package/dist/server/index.d.ts +3 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +42191 -0
- package/dist/server/serve.d.ts +2 -0
- package/dist/server/serve.d.ts.map +1 -0
- package/dist/types/index.d.ts +104 -0
- package/dist/types/index.d.ts.map +1 -0
- package/package.json +77 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Collection } from "../types/index.js";
|
|
2
|
+
export declare function createCollection(name: string, description?: string): Collection;
|
|
3
|
+
export declare function listCollections(): Collection[];
|
|
4
|
+
export declare function getCollection(id: string): Collection | null;
|
|
5
|
+
export declare function deleteCollection(id: string): boolean;
|
|
6
|
+
export declare function addToCollection(collection_id: string, file_id: string): void;
|
|
7
|
+
export declare function removeFromCollection(collection_id: string, file_id: string): boolean;
|
|
8
|
+
//# sourceMappingURL=collections.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../src/db/collections.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,SAAK,GAAG,UAAU,CAK3E;AAED,wBAAgB,eAAe,IAAI,UAAU,EAAE,CAE9C;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAE3D;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAE5E;AAED,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAEpF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQtC,eAAO,MAAM,OAAO,QAA0D,CAAC;AAI/E,wBAAgB,KAAK,IAAI,QAAQ,CAQhC;AA4JD,wBAAgB,OAAO,IAAI,IAAI,CAG9B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { FileRecord, FileWithTags, ListFilesOptions } from "../types/index.js";
|
|
2
|
+
export declare function upsertFile(input: Omit<FileRecord, "id" | "indexed_at" | "created_at"> & {
|
|
3
|
+
id?: string;
|
|
4
|
+
}): FileRecord;
|
|
5
|
+
export declare function getFile(id: string): FileWithTags | null;
|
|
6
|
+
export declare function listFiles(opts?: ListFilesOptions): FileWithTags[];
|
|
7
|
+
export declare function searchFiles(query: string, opts?: Omit<ListFilesOptions, "query">): FileWithTags[];
|
|
8
|
+
export declare function markFileDeleted(source_id: string, path: string): boolean;
|
|
9
|
+
export declare function deleteFile(id: string): boolean;
|
|
10
|
+
export declare function getFileByPath(source_id: string, path: string): FileRecord | null;
|
|
11
|
+
export declare function refreshAllFts(): void;
|
|
12
|
+
//# sourceMappingURL=files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/db/files.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAAc,MAAM,mBAAmB,CAAC;AA2BhG,wBAAgB,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,YAAY,GAAG,YAAY,CAAC,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,CAwBpH;AAgBD,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAQvD;AAED,wBAAgB,SAAS,CAAC,IAAI,GAAE,gBAAqB,GAAG,YAAY,EAAE,CA6CrE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAM,GAAG,YAAY,EAAE,CAYrG;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAMxE;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAG9C;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAKhF;AAED,wBAAgB,aAAa,IAAI,IAAI,CAKpC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Machine } from "../types/index.js";
|
|
2
|
+
export declare function getCurrentMachine(): Machine;
|
|
3
|
+
export declare function listMachines(): Machine[];
|
|
4
|
+
export declare function getMachine(id: string): Machine | null;
|
|
5
|
+
export declare function upsertMachine(m: Omit<Machine, "created_at">): Machine;
|
|
6
|
+
//# sourceMappingURL=machines.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"machines.d.ts","sourceRoot":"","sources":["../../src/db/machines.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAiBjD,wBAAgB,iBAAiB,IAAI,OAAO,CAqB3C;AAED,wBAAgB,YAAY,IAAI,OAAO,EAAE,CAExC;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAGrD;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,OAAO,CAcrE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface Peer {
|
|
2
|
+
id: string;
|
|
3
|
+
url: string;
|
|
4
|
+
name: string;
|
|
5
|
+
last_synced_at?: string;
|
|
6
|
+
auto_sync: boolean;
|
|
7
|
+
sync_interval_minutes: number;
|
|
8
|
+
created_at: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function listPeers(): Peer[];
|
|
11
|
+
export declare function addPeer(url: string, name?: string, auto_sync?: boolean, sync_interval_minutes?: number): Peer;
|
|
12
|
+
export declare function removePeer(id: string): boolean;
|
|
13
|
+
export declare function markPeerSynced(id: string): void;
|
|
14
|
+
export declare function getAutosyncPeers(): Peer[];
|
|
15
|
+
//# sourceMappingURL=peers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peers.d.ts","sourceRoot":"","sources":["../../src/db/peers.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;CACpB;AAWD,wBAAgB,SAAS,IAAI,IAAI,EAAE,CAElC;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,SAAK,EAAE,SAAS,UAAQ,EAAE,qBAAqB,SAAK,GAAG,IAAI,CAUnG;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE9C;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED,wBAAgB,gBAAgB,IAAI,IAAI,EAAE,CAEzC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Project } from "../types/index.js";
|
|
2
|
+
export declare function createProject(name: string, description?: string): Project;
|
|
3
|
+
export declare function listProjects(): Project[];
|
|
4
|
+
export declare function getProject(id: string): Project | null;
|
|
5
|
+
export declare function deleteProject(id: string): boolean;
|
|
6
|
+
export declare function addToProject(project_id: string, file_id: string): void;
|
|
7
|
+
export declare function removeFromProject(project_id: string, file_id: string): boolean;
|
|
8
|
+
//# sourceMappingURL=projects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/db/projects.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,SAAK,GAAG,OAAO,CAKrE;AAED,wBAAgB,YAAY,IAAI,OAAO,EAAE,CAExC;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAErD;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAEtE;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAE9E"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve a partial ID to a full ID for files, sources, collections, projects, tags, machines.
|
|
3
|
+
* Matches from the start of the ID string.
|
|
4
|
+
*/
|
|
5
|
+
type EntityType = "files" | "sources" | "collections" | "projects" | "tags" | "machines";
|
|
6
|
+
export declare function resolveId(partial: string, table: EntityType): string | null;
|
|
7
|
+
export declare function requireId(partial: string, table: EntityType): string;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=resolve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/db/resolve.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,KAAK,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;AAEzF,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAU3E;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAIpE"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { SearchResult, ListFilesOptions } from "../types/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Full-text search using FTS5. Falls back to LIKE if query contains no FTS operators.
|
|
4
|
+
*/
|
|
5
|
+
export declare function searchFiles(query: string, opts?: Omit<ListFilesOptions, "query">): SearchResult[];
|
|
6
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/db/search.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAExE;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAM,GAAG,YAAY,EAAE,CA4CrG"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Source, SourceType, S3Config } from "../types/index.js";
|
|
2
|
+
export declare function createSource(input: {
|
|
3
|
+
name: string;
|
|
4
|
+
type: SourceType;
|
|
5
|
+
path?: string;
|
|
6
|
+
bucket?: string;
|
|
7
|
+
prefix?: string;
|
|
8
|
+
region?: string;
|
|
9
|
+
config?: S3Config;
|
|
10
|
+
machine_id: string;
|
|
11
|
+
}): Source;
|
|
12
|
+
export declare function getSource(id: string): Source | null;
|
|
13
|
+
export declare function listSources(machine_id?: string): Source[];
|
|
14
|
+
export declare function updateSource(id: string, updates: Partial<Pick<Source, "name" | "enabled" | "config" | "prefix" | "region">>): Source | null;
|
|
15
|
+
export declare function deleteSource(id: string): boolean;
|
|
16
|
+
export declare function markSourceIndexed(id: string, file_count: number): void;
|
|
17
|
+
//# sourceMappingURL=sources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../../src/db/sources.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAiCtE,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,MAAM,CAmBT;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGnD;AAED,wBAAgB,WAAW,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAMzD;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAY3I;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAGhD;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAKtE"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Tag } from "../types/index.js";
|
|
2
|
+
export declare function listTags(): Tag[];
|
|
3
|
+
export declare function getOrCreateTag(name: string, color?: string): Tag;
|
|
4
|
+
export declare function deleteTag(id: string): boolean;
|
|
5
|
+
export declare function tagFile(file_id: string, tag_name: string): void;
|
|
6
|
+
export declare function untagFile(file_id: string, tag_name: string): boolean;
|
|
7
|
+
export declare function getFileTags(file_id: string): Tag[];
|
|
8
|
+
//# sourceMappingURL=tags.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../src/db/tags.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAE7C,wBAAgB,QAAQ,IAAI,GAAG,EAAE,CAEhC;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,GAAG,CAOhE;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE7C;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAmB/D;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAKpE;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,EAAE,CAIlD"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export { getDb, DB_PATH } from "./db/database.js";
|
|
2
|
+
export { getCurrentMachine, listMachines, getMachine, upsertMachine } from "./db/machines.js";
|
|
3
|
+
export { createSource, getSource, listSources, updateSource, deleteSource, markSourceIndexed } from "./db/sources.js";
|
|
4
|
+
export { upsertFile, getFile, listFiles, searchFiles as searchFilesDb, markFileDeleted, deleteFile, getFileByPath, refreshAllFts } from "./db/files.js";
|
|
5
|
+
export { listTags, getOrCreateTag, deleteTag, tagFile, untagFile, getFileTags } from "./db/tags.js";
|
|
6
|
+
export { createCollection, listCollections, getCollection, deleteCollection, addToCollection, removeFromCollection } from "./db/collections.js";
|
|
7
|
+
export { createProject, listProjects, getProject, deleteProject, addToProject, removeFromProject } from "./db/projects.js";
|
|
8
|
+
export { searchFiles } from "./db/search.js";
|
|
9
|
+
export { indexLocalSource } from "./lib/indexer.js";
|
|
10
|
+
export { indexS3Source, downloadFromS3, uploadToS3, deleteFromS3, headS3Object } from "./lib/s3.js";
|
|
11
|
+
export { watchSource, unwatchSource, stopAllWatchers } from "./lib/watcher.js";
|
|
12
|
+
export { hashFile, hashBuffer } from "./lib/hasher.js";
|
|
13
|
+
export { syncWithPeer, syncWithPeers } from "./lib/sync.js";
|
|
14
|
+
export type { Machine, Source, FileRecord, FileWithTags, Tag, Collection, Project, SearchResult, ListFilesOptions, IndexStats, SourceType, FileStatus, S3Config, } from "./types/index.js";
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACtH,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,IAAI,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACxJ,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChJ,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC3H,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG5D,YAAY,EACV,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EACnE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,GAC7E,MAAM,kBAAkB,CAAC"}
|