@hasna/search 0.0.2

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 (77) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +82 -0
  3. package/dist/cli/components/ProviderStatus.d.ts +8 -0
  4. package/dist/cli/components/ProviderStatus.d.ts.map +1 -0
  5. package/dist/cli/components/ResultsList.d.ts +9 -0
  6. package/dist/cli/components/ResultsList.d.ts.map +1 -0
  7. package/dist/cli/index.d.ts +3 -0
  8. package/dist/cli/index.d.ts.map +1 -0
  9. package/dist/cli/index.js +7972 -0
  10. package/dist/db/database.d.ts +5 -0
  11. package/dist/db/database.d.ts.map +1 -0
  12. package/dist/db/migrations.d.ts +3 -0
  13. package/dist/db/migrations.d.ts.map +1 -0
  14. package/dist/db/profiles.d.ts +13 -0
  15. package/dist/db/profiles.d.ts.map +1 -0
  16. package/dist/db/providers.d.ts +14 -0
  17. package/dist/db/providers.d.ts.map +1 -0
  18. package/dist/db/results.d.ts +38 -0
  19. package/dist/db/results.d.ts.map +1 -0
  20. package/dist/db/saved-searches.d.ts +14 -0
  21. package/dist/db/saved-searches.d.ts.map +1 -0
  22. package/dist/db/searches.d.ts +26 -0
  23. package/dist/db/searches.d.ts.map +1 -0
  24. package/dist/index.d.ts +9 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +4686 -0
  27. package/dist/lib/config.d.ts +7 -0
  28. package/dist/lib/config.d.ts.map +1 -0
  29. package/dist/lib/dedup.d.ts +4 -0
  30. package/dist/lib/dedup.d.ts.map +1 -0
  31. package/dist/lib/export.d.ts +4 -0
  32. package/dist/lib/export.d.ts.map +1 -0
  33. package/dist/lib/providers/arxiv.d.ts +11 -0
  34. package/dist/lib/providers/arxiv.d.ts.map +1 -0
  35. package/dist/lib/providers/bing.d.ts +9 -0
  36. package/dist/lib/providers/bing.d.ts.map +1 -0
  37. package/dist/lib/providers/brave.d.ts +9 -0
  38. package/dist/lib/providers/brave.d.ts.map +1 -0
  39. package/dist/lib/providers/exa.d.ts +9 -0
  40. package/dist/lib/providers/exa.d.ts.map +1 -0
  41. package/dist/lib/providers/github.d.ts +11 -0
  42. package/dist/lib/providers/github.d.ts.map +1 -0
  43. package/dist/lib/providers/google.d.ts +9 -0
  44. package/dist/lib/providers/google.d.ts.map +1 -0
  45. package/dist/lib/providers/hackernews.d.ts +9 -0
  46. package/dist/lib/providers/hackernews.d.ts.map +1 -0
  47. package/dist/lib/providers/index.d.ts +8 -0
  48. package/dist/lib/providers/index.d.ts.map +1 -0
  49. package/dist/lib/providers/perplexity.d.ts +9 -0
  50. package/dist/lib/providers/perplexity.d.ts.map +1 -0
  51. package/dist/lib/providers/reddit.d.ts +9 -0
  52. package/dist/lib/providers/reddit.d.ts.map +1 -0
  53. package/dist/lib/providers/serpapi.d.ts +11 -0
  54. package/dist/lib/providers/serpapi.d.ts.map +1 -0
  55. package/dist/lib/providers/transcriber.d.ts +27 -0
  56. package/dist/lib/providers/transcriber.d.ts.map +1 -0
  57. package/dist/lib/providers/twitter.d.ts +9 -0
  58. package/dist/lib/providers/twitter.d.ts.map +1 -0
  59. package/dist/lib/providers/types.d.ts +17 -0
  60. package/dist/lib/providers/types.d.ts.map +1 -0
  61. package/dist/lib/providers/youtube.d.ts +9 -0
  62. package/dist/lib/providers/youtube.d.ts.map +1 -0
  63. package/dist/lib/search.d.ts +11 -0
  64. package/dist/lib/search.d.ts.map +1 -0
  65. package/dist/lib/youtube-deep.d.ts +21 -0
  66. package/dist/lib/youtube-deep.d.ts.map +1 -0
  67. package/dist/mcp/index.d.ts +3 -0
  68. package/dist/mcp/index.d.ts.map +1 -0
  69. package/dist/mcp/index.js +21350 -0
  70. package/dist/server/index.d.ts +3 -0
  71. package/dist/server/index.d.ts.map +1 -0
  72. package/dist/server/index.js +5746 -0
  73. package/dist/server/serve.d.ts +2 -0
  74. package/dist/server/serve.d.ts.map +1 -0
  75. package/dist/types/index.d.ts +142 -0
  76. package/dist/types/index.d.ts.map +1 -0
  77. package/package.json +85 -0
@@ -0,0 +1,5 @@
1
+ import { Database } from "bun:sqlite";
2
+ export declare function getDb(): Database;
3
+ export declare function closeDb(): void;
4
+ export declare function getDbForTesting(): Database;
5
+ //# sourceMappingURL=database.d.ts.map
@@ -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;AAgBtC,wBAAgB,KAAK,IAAI,QAAQ,CAehC;AAED,wBAAgB,OAAO,IAAI,IAAI,CAK9B;AAED,wBAAgB,eAAe,IAAI,QAAQ,CAO1C"}
@@ -0,0 +1,3 @@
1
+ import type { Database } from "bun:sqlite";
2
+ export declare function runMigrations(db: Database): void;
3
+ //# sourceMappingURL=migrations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA0I3C,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAgChD"}
@@ -0,0 +1,13 @@
1
+ import type { Database } from "bun:sqlite";
2
+ import { type SearchProfile, type SearchProviderName, type SearchOptions } from "../types/index.js";
3
+ export declare function getProfile(id: string, db?: Database): SearchProfile | null;
4
+ export declare function getProfileByName(name: string, db?: Database): SearchProfile | null;
5
+ export declare function listProfiles(db?: Database): SearchProfile[];
6
+ export declare function createProfile(data: {
7
+ name: string;
8
+ description?: string | null;
9
+ providers: SearchProviderName[];
10
+ options?: SearchOptions;
11
+ }, db?: Database): SearchProfile;
12
+ export declare function deleteProfile(id: string, db?: Database): boolean;
13
+ //# sourceMappingURL=profiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../src/db/profiles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAEnB,MAAM,mBAAmB,CAAC;AAsB3B,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,aAAa,GAAG,IAAI,CAM1E;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,aAAa,GAAG,IAAI,CAMlF;AAED,wBAAgB,YAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,aAAa,EAAE,CAM3D;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE;IACJ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB,EACD,EAAE,CAAC,EAAE,QAAQ,GACZ,aAAa,CAyBf;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAIhE"}
@@ -0,0 +1,14 @@
1
+ import type { Database } from "bun:sqlite";
2
+ import { type ProviderConfig } from "../types/index.js";
3
+ export declare function getProvider(name: string, db?: Database): ProviderConfig | null;
4
+ export declare function listProviders(db?: Database): ProviderConfig[];
5
+ export declare function enableProvider(name: string, db?: Database): boolean;
6
+ export declare function disableProvider(name: string, db?: Database): boolean;
7
+ export declare function updateProvider(name: string, updates: {
8
+ apiKeyEnv?: string;
9
+ rateLimit?: number;
10
+ metadata?: Record<string, unknown>;
11
+ }, db?: Database): boolean;
12
+ export declare function updateProviderLastUsed(name: string, db?: Database): void;
13
+ export declare function isProviderConfigured(provider: ProviderConfig): boolean;
14
+ //# sourceMappingURL=providers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/db/providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAE,KAAK,cAAc,EAA2B,MAAM,mBAAmB,CAAC;AAsBjF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,cAAc,GAAG,IAAI,CAI9E;AAED,wBAAgB,aAAa,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,cAAc,EAAE,CAI7D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAInE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAIpE;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EACvF,EAAE,CAAC,EAAE,QAAQ,GACZ,OAAO,CAyBT;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,CAIxE;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAGtE"}
@@ -0,0 +1,38 @@
1
+ import type { Database } from "bun:sqlite";
2
+ import { type SearchResult, type SearchProviderName } from "../types/index.js";
3
+ export declare function createResult(data: {
4
+ searchId: string;
5
+ title: string;
6
+ url: string;
7
+ snippet: string;
8
+ source: SearchProviderName;
9
+ provider: string;
10
+ rank: number;
11
+ score?: number | null;
12
+ publishedAt?: string | null;
13
+ thumbnail?: string | null;
14
+ metadata?: Record<string, unknown>;
15
+ }, db?: Database): SearchResult;
16
+ export declare function createResults(results: Array<{
17
+ searchId: string;
18
+ title: string;
19
+ url: string;
20
+ snippet: string;
21
+ source: SearchProviderName;
22
+ provider: string;
23
+ rank: number;
24
+ score?: number | null;
25
+ publishedAt?: string | null;
26
+ thumbnail?: string | null;
27
+ metadata?: Record<string, unknown>;
28
+ }>, db?: Database): SearchResult[];
29
+ export declare function getResult(id: string, db?: Database): SearchResult | null;
30
+ export declare function listResults(searchId: string, opts?: {
31
+ limit?: number;
32
+ offset?: number;
33
+ source?: SearchProviderName;
34
+ }, db?: Database): SearchResult[];
35
+ export declare function searchResultsFts(query: string, opts?: {
36
+ limit?: number;
37
+ }, db?: Database): SearchResult[];
38
+ //# sourceMappingURL=results.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"results.d.ts","sourceRoot":"","sources":["../../src/db/results.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAc,MAAM,mBAAmB,CAAC;AAoC3F,wBAAgB,YAAY,CAC1B,IAAI,EAAE;IACJ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,EACD,EAAE,CAAC,EAAE,QAAQ,GACZ,YAAY,CAuCd;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC,EACF,EAAE,CAAC,EAAE,QAAQ,GACZ,YAAY,EAAE,CAqDhB;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,IAAI,CAIxE;AAED,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,kBAAkB,CAAA;CAAO,EAC3E,EAAE,CAAC,EAAE,QAAQ,GACZ,YAAY,EAAE,CAoBhB;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,EAC7B,EAAE,CAAC,EAAE,QAAQ,GACZ,YAAY,EAAE,CAehB"}
@@ -0,0 +1,14 @@
1
+ import type { Database } from "bun:sqlite";
2
+ import { type SavedSearch, type SearchProviderName, type SearchOptions } from "../types/index.js";
3
+ export declare function createSavedSearch(data: {
4
+ name: string;
5
+ query: string;
6
+ providers: SearchProviderName[];
7
+ profileId?: string | null;
8
+ options?: SearchOptions;
9
+ }, db?: Database): SavedSearch;
10
+ export declare function getSavedSearch(id: string, db?: Database): SavedSearch | null;
11
+ export declare function listSavedSearches(db?: Database): SavedSearch[];
12
+ export declare function deleteSavedSearch(id: string, db?: Database): boolean;
13
+ export declare function updateSavedSearchLastRun(id: string, db?: Database): void;
14
+ //# sourceMappingURL=saved-searches.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saved-searches.d.ts","sourceRoot":"","sources":["../../src/db/saved-searches.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAEnB,MAAM,mBAAmB,CAAC;AA0B3B,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE;IACJ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB,EACD,EAAE,CAAC,EAAE,QAAQ,GACZ,WAAW,CA4Bb;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,IAAI,CAM5E;AAED,wBAAgB,iBAAiB,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,WAAW,EAAE,CAM9D;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAIpE;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,CAIxE"}
@@ -0,0 +1,26 @@
1
+ import type { Database } from "bun:sqlite";
2
+ import { type Search, type SearchProviderName } from "../types/index.js";
3
+ export declare function createSearch(data: {
4
+ query: string;
5
+ providers: SearchProviderName[];
6
+ profileId?: string | null;
7
+ resultCount?: number;
8
+ duration?: number;
9
+ }, db?: Database): Search;
10
+ export declare function getSearch(id: string, db?: Database): Search | null;
11
+ export declare function listSearches(opts?: {
12
+ query?: string;
13
+ limit?: number;
14
+ offset?: number;
15
+ }, db?: Database): {
16
+ searches: Search[];
17
+ total: number;
18
+ };
19
+ export declare function deleteSearch(id: string, db?: Database): boolean;
20
+ export declare function updateSearchResults(id: string, resultCount: number, duration: number, db?: Database): void;
21
+ export declare function getSearchStats(db?: Database): {
22
+ totalSearches: number;
23
+ totalResults: number;
24
+ providerBreakdown: Record<string, number>;
25
+ };
26
+ //# sourceMappingURL=searches.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searches.d.ts","sourceRoot":"","sources":["../../src/db/searches.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,kBAAkB,EAAc,MAAM,mBAAmB,CAAC;AAwBrF,wBAAgB,YAAY,CAC1B,IAAI,EAAE;IACJ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,EACD,EAAE,CAAC,EAAE,QAAQ,GACZ,MAAM,CA2BR;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAIlE;AAED,wBAAgB,YAAY,CAC1B,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,EAC9D,EAAE,CAAC,EAAE,QAAQ,GACZ;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAuBvC;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAI/D;AAED,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,EAAE,CAAC,EAAE,QAAQ,GACZ,IAAI,CAON;AAED,wBAAgB,cAAc,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C,CAqBA"}
@@ -0,0 +1,9 @@
1
+ export * from "./types/index.js";
2
+ export { getDb, closeDb, getDbForTesting } from "./db/database.js";
3
+ export { createSearch, getSearch, listSearches, deleteSearch, updateSearchResults, getSearchStats } from "./db/searches.js";
4
+ export { createResult, createResults, getResult, listResults, searchResultsFts } from "./db/results.js";
5
+ export { createSavedSearch, getSavedSearch, listSavedSearches, deleteSavedSearch, updateSavedSearchLastRun } from "./db/saved-searches.js";
6
+ export { getProvider, listProviders, enableProvider, disableProvider, updateProvider, updateProviderLastUsed, isProviderConfigured } from "./db/providers.js";
7
+ export { getProfile, getProfileByName, listProfiles, createProfile, deleteProfile } from "./db/profiles.js";
8
+ export { getConfig, setConfig, resetConfig, getConfigValue, setConfigValue } from "./lib/config.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC5H,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxG,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAC3I,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9J,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAG5G,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}