@hasna/search 0.0.2 → 0.0.3

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/dist/cli/index.js CHANGED
@@ -6851,12 +6851,19 @@ function deduplicateResults(results) {
6851
6851
  }
6852
6852
 
6853
6853
  // src/lib/config.ts
6854
- import { mkdirSync, readFileSync, writeFileSync, existsSync } from "fs";
6854
+ import { mkdirSync, readFileSync, writeFileSync, existsSync, cpSync } from "fs";
6855
6855
  function getConfigDir() {
6856
6856
  const home = Bun.env.HOME ?? "/tmp";
6857
- const dir = `${home}/.open-search`;
6858
- mkdirSync(dir, { recursive: true });
6859
- return dir;
6857
+ const newDir = `${home}/.hasna/search`;
6858
+ const oldDir = `${home}/.open-search`;
6859
+ if (!existsSync(newDir) && existsSync(oldDir)) {
6860
+ try {
6861
+ mkdirSync(`${home}/.hasna`, { recursive: true });
6862
+ cpSync(oldDir, newDir, { recursive: true });
6863
+ } catch {}
6864
+ }
6865
+ mkdirSync(newDir, { recursive: true });
6866
+ return newDir;
6860
6867
  }
6861
6868
  function getConfigPath() {
6862
6869
  return `${getConfigDir()}/config.json`;
@@ -6894,7 +6901,7 @@ function setConfigValue(key, value) {
6894
6901
 
6895
6902
  // src/db/database.ts
6896
6903
  import { Database } from "bun:sqlite";
6897
- import { mkdirSync as mkdirSync2 } from "fs";
6904
+ import { mkdirSync as mkdirSync2, existsSync as existsSync2, cpSync as cpSync2 } from "fs";
6898
6905
 
6899
6906
  // src/db/migrations.ts
6900
6907
  var migrations = [
@@ -7053,13 +7060,20 @@ function runMigrations(db) {
7053
7060
  // src/db/database.ts
7054
7061
  var instance = null;
7055
7062
  function resolveDbPath() {
7056
- if (Bun.env.SEARCH_DB_PATH) {
7057
- return Bun.env.SEARCH_DB_PATH;
7058
- }
7063
+ const envPath = Bun.env.HASNA_SEARCH_DB_PATH ?? Bun.env.SEARCH_DB_PATH;
7064
+ if (envPath)
7065
+ return envPath;
7059
7066
  const home = Bun.env.HOME ?? "/tmp";
7060
- const dir = `${home}/.open-search`;
7061
- mkdirSync2(dir, { recursive: true });
7062
- return `${dir}/data.db`;
7067
+ const newDir = `${home}/.hasna/search`;
7068
+ const oldDir = `${home}/.open-search`;
7069
+ if (!existsSync2(newDir) && existsSync2(oldDir)) {
7070
+ try {
7071
+ mkdirSync2(`${home}/.hasna`, { recursive: true });
7072
+ cpSync2(oldDir, newDir, { recursive: true });
7073
+ } catch {}
7074
+ }
7075
+ mkdirSync2(newDir, { recursive: true });
7076
+ return `${newDir}/data.db`;
7063
7077
  }
7064
7078
  function getDb() {
7065
7079
  if (instance)
@@ -1 +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"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA6BtC,wBAAgB,KAAK,IAAI,QAAQ,CAehC;AAED,wBAAgB,OAAO,IAAI,IAAI,CAK9B;AAED,wBAAgB,eAAe,IAAI,QAAQ,CAO1C"}
package/dist/index.js CHANGED
@@ -4070,7 +4070,7 @@ class ValidationError extends SearchError {
4070
4070
  }
4071
4071
  // src/db/database.ts
4072
4072
  import { Database } from "bun:sqlite";
4073
- import { mkdirSync } from "fs";
4073
+ import { mkdirSync, existsSync, cpSync } from "fs";
4074
4074
 
4075
4075
  // src/db/migrations.ts
4076
4076
  var migrations = [
@@ -4229,13 +4229,20 @@ function runMigrations(db) {
4229
4229
  // src/db/database.ts
4230
4230
  var instance = null;
4231
4231
  function resolveDbPath() {
4232
- if (Bun.env.SEARCH_DB_PATH) {
4233
- return Bun.env.SEARCH_DB_PATH;
4234
- }
4232
+ const envPath = Bun.env.HASNA_SEARCH_DB_PATH ?? Bun.env.SEARCH_DB_PATH;
4233
+ if (envPath)
4234
+ return envPath;
4235
4235
  const home = Bun.env.HOME ?? "/tmp";
4236
- const dir = `${home}/.open-search`;
4237
- mkdirSync(dir, { recursive: true });
4238
- return `${dir}/data.db`;
4236
+ const newDir = `${home}/.hasna/search`;
4237
+ const oldDir = `${home}/.open-search`;
4238
+ if (!existsSync(newDir) && existsSync(oldDir)) {
4239
+ try {
4240
+ mkdirSync(`${home}/.hasna`, { recursive: true });
4241
+ cpSync(oldDir, newDir, { recursive: true });
4242
+ } catch {}
4243
+ }
4244
+ mkdirSync(newDir, { recursive: true });
4245
+ return `${newDir}/data.db`;
4239
4246
  }
4240
4247
  function getDb() {
4241
4248
  if (instance)
@@ -4591,19 +4598,26 @@ function deleteProfile(id, db) {
4591
4598
  return result.changes > 0;
4592
4599
  }
4593
4600
  // src/lib/config.ts
4594
- import { mkdirSync as mkdirSync2, readFileSync, writeFileSync, existsSync } from "fs";
4601
+ import { mkdirSync as mkdirSync2, readFileSync, writeFileSync, existsSync as existsSync2, cpSync as cpSync2 } from "fs";
4595
4602
  function getConfigDir() {
4596
4603
  const home = Bun.env.HOME ?? "/tmp";
4597
- const dir = `${home}/.open-search`;
4598
- mkdirSync2(dir, { recursive: true });
4599
- return dir;
4604
+ const newDir = `${home}/.hasna/search`;
4605
+ const oldDir = `${home}/.open-search`;
4606
+ if (!existsSync2(newDir) && existsSync2(oldDir)) {
4607
+ try {
4608
+ mkdirSync2(`${home}/.hasna`, { recursive: true });
4609
+ cpSync2(oldDir, newDir, { recursive: true });
4610
+ } catch {}
4611
+ }
4612
+ mkdirSync2(newDir, { recursive: true });
4613
+ return newDir;
4600
4614
  }
4601
4615
  function getConfigPath() {
4602
4616
  return `${getConfigDir()}/config.json`;
4603
4617
  }
4604
4618
  function getConfig() {
4605
4619
  const path = getConfigPath();
4606
- if (!existsSync(path)) {
4620
+ if (!existsSync2(path)) {
4607
4621
  return { ...DEFAULT_CONFIG };
4608
4622
  }
4609
4623
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,mBAAmB,CAAC;AAatE,wBAAgB,SAAS,IAAI,YAAY,CAYxC;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAMtE;AAED,wBAAgB,WAAW,IAAI,YAAY,CAI1C;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,YAAY,GAAG,OAAO,CAG/D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,YAAY,EAAE,KAAK,EAAE,OAAO,GAAG,YAAY,CAKpF"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,mBAAmB,CAAC;AAyBtE,wBAAgB,SAAS,IAAI,YAAY,CAYxC;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAMtE;AAED,wBAAgB,WAAW,IAAI,YAAY,CAI1C;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,YAAY,GAAG,OAAO,CAG/D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,YAAY,EAAE,KAAK,EAAE,OAAO,GAAG,YAAY,CAKpF"}
package/dist/mcp/index.js CHANGED
@@ -20252,12 +20252,19 @@ function deduplicateResults(results) {
20252
20252
  }
20253
20253
 
20254
20254
  // src/lib/config.ts
20255
- import { mkdirSync, readFileSync, writeFileSync, existsSync } from "fs";
20255
+ import { mkdirSync, readFileSync, writeFileSync, existsSync, cpSync } from "fs";
20256
20256
  function getConfigDir() {
20257
20257
  const home = Bun.env.HOME ?? "/tmp";
20258
- const dir = `${home}/.open-search`;
20259
- mkdirSync(dir, { recursive: true });
20260
- return dir;
20258
+ const newDir = `${home}/.hasna/search`;
20259
+ const oldDir = `${home}/.open-search`;
20260
+ if (!existsSync(newDir) && existsSync(oldDir)) {
20261
+ try {
20262
+ mkdirSync(`${home}/.hasna`, { recursive: true });
20263
+ cpSync(oldDir, newDir, { recursive: true });
20264
+ } catch {}
20265
+ }
20266
+ mkdirSync(newDir, { recursive: true });
20267
+ return newDir;
20261
20268
  }
20262
20269
  function getConfigPath() {
20263
20270
  return `${getConfigDir()}/config.json`;
@@ -20285,7 +20292,7 @@ function setConfig(updates) {
20285
20292
 
20286
20293
  // src/db/database.ts
20287
20294
  import { Database } from "bun:sqlite";
20288
- import { mkdirSync as mkdirSync2 } from "fs";
20295
+ import { mkdirSync as mkdirSync2, existsSync as existsSync2, cpSync as cpSync2 } from "fs";
20289
20296
 
20290
20297
  // src/db/migrations.ts
20291
20298
  var migrations = [
@@ -20444,13 +20451,20 @@ function runMigrations(db) {
20444
20451
  // src/db/database.ts
20445
20452
  var instance = null;
20446
20453
  function resolveDbPath() {
20447
- if (Bun.env.SEARCH_DB_PATH) {
20448
- return Bun.env.SEARCH_DB_PATH;
20449
- }
20454
+ const envPath = Bun.env.HASNA_SEARCH_DB_PATH ?? Bun.env.SEARCH_DB_PATH;
20455
+ if (envPath)
20456
+ return envPath;
20450
20457
  const home = Bun.env.HOME ?? "/tmp";
20451
- const dir = `${home}/.open-search`;
20452
- mkdirSync2(dir, { recursive: true });
20453
- return `${dir}/data.db`;
20458
+ const newDir = `${home}/.hasna/search`;
20459
+ const oldDir = `${home}/.open-search`;
20460
+ if (!existsSync2(newDir) && existsSync2(oldDir)) {
20461
+ try {
20462
+ mkdirSync2(`${home}/.hasna`, { recursive: true });
20463
+ cpSync2(oldDir, newDir, { recursive: true });
20464
+ } catch {}
20465
+ }
20466
+ mkdirSync2(newDir, { recursive: true });
20467
+ return `${newDir}/data.db`;
20454
20468
  }
20455
20469
  function getDb() {
20456
20470
  if (instance)
@@ -4767,12 +4767,19 @@ function deduplicateResults(results) {
4767
4767
  }
4768
4768
 
4769
4769
  // src/lib/config.ts
4770
- import { mkdirSync, readFileSync, writeFileSync, existsSync } from "fs";
4770
+ import { mkdirSync, readFileSync, writeFileSync, existsSync, cpSync } from "fs";
4771
4771
  function getConfigDir() {
4772
4772
  const home = Bun.env.HOME ?? "/tmp";
4773
- const dir = `${home}/.open-search`;
4774
- mkdirSync(dir, { recursive: true });
4775
- return dir;
4773
+ const newDir = `${home}/.hasna/search`;
4774
+ const oldDir = `${home}/.open-search`;
4775
+ if (!existsSync(newDir) && existsSync(oldDir)) {
4776
+ try {
4777
+ mkdirSync(`${home}/.hasna`, { recursive: true });
4778
+ cpSync(oldDir, newDir, { recursive: true });
4779
+ } catch {}
4780
+ }
4781
+ mkdirSync(newDir, { recursive: true });
4782
+ return newDir;
4776
4783
  }
4777
4784
  function getConfigPath() {
4778
4785
  return `${getConfigDir()}/config.json`;
@@ -4800,7 +4807,7 @@ function setConfig(updates) {
4800
4807
 
4801
4808
  // src/db/database.ts
4802
4809
  import { Database } from "bun:sqlite";
4803
- import { mkdirSync as mkdirSync2 } from "fs";
4810
+ import { mkdirSync as mkdirSync2, existsSync as existsSync2, cpSync as cpSync2 } from "fs";
4804
4811
 
4805
4812
  // src/db/migrations.ts
4806
4813
  var migrations = [
@@ -4959,13 +4966,20 @@ function runMigrations(db) {
4959
4966
  // src/db/database.ts
4960
4967
  var instance = null;
4961
4968
  function resolveDbPath() {
4962
- if (Bun.env.SEARCH_DB_PATH) {
4963
- return Bun.env.SEARCH_DB_PATH;
4964
- }
4969
+ const envPath = Bun.env.HASNA_SEARCH_DB_PATH ?? Bun.env.SEARCH_DB_PATH;
4970
+ if (envPath)
4971
+ return envPath;
4965
4972
  const home = Bun.env.HOME ?? "/tmp";
4966
- const dir = `${home}/.open-search`;
4967
- mkdirSync2(dir, { recursive: true });
4968
- return `${dir}/data.db`;
4973
+ const newDir = `${home}/.hasna/search`;
4974
+ const oldDir = `${home}/.open-search`;
4975
+ if (!existsSync2(newDir) && existsSync2(oldDir)) {
4976
+ try {
4977
+ mkdirSync2(`${home}/.hasna`, { recursive: true });
4978
+ cpSync2(oldDir, newDir, { recursive: true });
4979
+ } catch {}
4980
+ }
4981
+ mkdirSync2(newDir, { recursive: true });
4982
+ return `${newDir}/data.db`;
4969
4983
  }
4970
4984
  function getDb() {
4971
4985
  if (instance)
@@ -5516,7 +5530,7 @@ async function transcribeVideo(url, opts = {}) {
5516
5530
  }
5517
5531
 
5518
5532
  // src/server/serve.ts
5519
- import { existsSync as existsSync2, readFileSync as readFileSync2 } from "fs";
5533
+ import { existsSync as existsSync3, readFileSync as readFileSync2 } from "fs";
5520
5534
  import { join } from "path";
5521
5535
  function json(data, status = 200) {
5522
5536
  return new Response(JSON.stringify(data), {
@@ -5546,7 +5560,7 @@ var MIME_TYPES = {
5546
5560
  function serveDashboard(pathname) {
5547
5561
  const dashboardDir = join(import.meta.dir, "../../dashboard/dist");
5548
5562
  const filePath = join(dashboardDir, pathname === "/" ? "index.html" : pathname);
5549
- if (existsSync2(filePath)) {
5563
+ if (existsSync3(filePath)) {
5550
5564
  const ext = filePath.substring(filePath.lastIndexOf("."));
5551
5565
  const mime = MIME_TYPES[ext] ?? "application/octet-stream";
5552
5566
  return new Response(readFileSync2(filePath), {
@@ -5554,7 +5568,7 @@ function serveDashboard(pathname) {
5554
5568
  });
5555
5569
  }
5556
5570
  const indexPath = join(dashboardDir, "index.html");
5557
- if (existsSync2(indexPath)) {
5571
+ if (existsSync3(indexPath)) {
5558
5572
  return new Response(readFileSync2(indexPath), {
5559
5573
  headers: { "Content-Type": "text/html" }
5560
5574
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/search",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "Unified search aggregator — 12 providers (Google, SerpAPI, Exa, Perplexity, Twitter, Reddit, YouTube, Brave, Bing, Hacker News, GitHub, arXiv) + YouTube transcription. CLI + MCP + REST API + Dashboard.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",