@hasna/recordings 0.1.34 → 0.1.35

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/storage.js CHANGED
@@ -2940,7 +2940,7 @@ var require_dist = __commonJS((exports) => {
2940
2940
  function parse(stream, callback) {
2941
2941
  const parser = new parser_1.Parser;
2942
2942
  stream.on("data", (buffer) => parser.parse(buffer, callback));
2943
- return new Promise((resolve) => stream.on("end", () => resolve()));
2943
+ return new Promise((resolve2) => stream.on("end", () => resolve2()));
2944
2944
  }
2945
2945
  exports.parse = parse;
2946
2946
  });
@@ -3619,12 +3619,12 @@ var require_client = __commonJS((exports, module) => {
3619
3619
  this._connect(callback);
3620
3620
  return;
3621
3621
  }
3622
- return new this._Promise((resolve, reject) => {
3622
+ return new this._Promise((resolve2, reject) => {
3623
3623
  this._connect((error) => {
3624
3624
  if (error) {
3625
3625
  reject(error);
3626
3626
  } else {
3627
- resolve(this);
3627
+ resolve2(this);
3628
3628
  }
3629
3629
  });
3630
3630
  });
@@ -3956,8 +3956,8 @@ var require_client = __commonJS((exports, module) => {
3956
3956
  readTimeout = config.query_timeout || this.connectionParameters.query_timeout;
3957
3957
  query = new Query(config, values, callback);
3958
3958
  if (!query.callback) {
3959
- result = new this._Promise((resolve, reject) => {
3960
- query.callback = (err, res) => err ? reject(err) : resolve(res);
3959
+ result = new this._Promise((resolve2, reject) => {
3960
+ query.callback = (err, res) => err ? reject(err) : resolve2(res);
3961
3961
  }).catch((err) => {
3962
3962
  Error.captureStackTrace(err);
3963
3963
  throw err;
@@ -4032,8 +4032,8 @@ var require_client = __commonJS((exports, module) => {
4032
4032
  if (cb) {
4033
4033
  this.connection.once("end", cb);
4034
4034
  } else {
4035
- return new this._Promise((resolve) => {
4036
- this.connection.once("end", resolve);
4035
+ return new this._Promise((resolve2) => {
4036
+ this.connection.once("end", resolve2);
4037
4037
  });
4038
4038
  }
4039
4039
  }
@@ -4080,8 +4080,8 @@ var require_pg_pool = __commonJS((exports, module) => {
4080
4080
  const cb = function(err, client) {
4081
4081
  err ? rej(err) : res(client);
4082
4082
  };
4083
- const result = new Promise2(function(resolve, reject) {
4084
- res = resolve;
4083
+ const result = new Promise2(function(resolve2, reject) {
4084
+ res = resolve2;
4085
4085
  rej = reject;
4086
4086
  }).catch((err) => {
4087
4087
  Error.captureStackTrace(err);
@@ -4142,7 +4142,7 @@ var require_pg_pool = __commonJS((exports, module) => {
4142
4142
  if (typeof Promise2.try === "function") {
4143
4143
  return Promise2.try(f);
4144
4144
  }
4145
- return new Promise2((resolve) => resolve(f()));
4145
+ return new Promise2((resolve2) => resolve2(f()));
4146
4146
  }
4147
4147
  _isFull() {
4148
4148
  return this._clients.length >= this.options.max;
@@ -4518,8 +4518,8 @@ var require_query2 = __commonJS((exports, module) => {
4518
4518
  NativeQuery.prototype._getPromise = function() {
4519
4519
  if (this._promise)
4520
4520
  return this._promise;
4521
- this._promise = new Promise(function(resolve, reject) {
4522
- this._once("end", resolve);
4521
+ this._promise = new Promise(function(resolve2, reject) {
4522
+ this._once("end", resolve2);
4523
4523
  this._once("error", reject);
4524
4524
  }.bind(this));
4525
4525
  return this._promise;
@@ -4693,12 +4693,12 @@ var require_client2 = __commonJS((exports, module) => {
4693
4693
  this._connect(callback);
4694
4694
  return;
4695
4695
  }
4696
- return new this._Promise((resolve, reject) => {
4696
+ return new this._Promise((resolve2, reject) => {
4697
4697
  this._connect((error) => {
4698
4698
  if (error) {
4699
4699
  reject(error);
4700
4700
  } else {
4701
- resolve(this);
4701
+ resolve2(this);
4702
4702
  }
4703
4703
  });
4704
4704
  });
@@ -4722,8 +4722,8 @@ var require_client2 = __commonJS((exports, module) => {
4722
4722
  query = new NativeQuery(config, values, callback);
4723
4723
  if (!query.callback) {
4724
4724
  let resolveOut, rejectOut;
4725
- result = new this._Promise((resolve, reject) => {
4726
- resolveOut = resolve;
4725
+ result = new this._Promise((resolve2, reject) => {
4726
+ resolveOut = resolve2;
4727
4727
  rejectOut = reject;
4728
4728
  }).catch((err) => {
4729
4729
  Error.captureStackTrace(err);
@@ -4781,8 +4781,8 @@ var require_client2 = __commonJS((exports, module) => {
4781
4781
  }
4782
4782
  let result;
4783
4783
  if (!cb) {
4784
- result = new this._Promise(function(resolve, reject) {
4785
- cb = (err) => err ? reject(err) : resolve();
4784
+ result = new this._Promise(function(resolve2, reject) {
4785
+ cb = (err) => err ? reject(err) : resolve2();
4786
4786
  });
4787
4787
  }
4788
4788
  this.native.end(function() {
@@ -5015,11 +5015,11 @@ class SqliteAdapter {
5015
5015
 
5016
5016
  // src/db/database.ts
5017
5017
  import { mkdirSync as mkdirSync2 } from "fs";
5018
- import { dirname } from "path";
5018
+ import { dirname as dirname2 } from "path";
5019
5019
 
5020
5020
  // src/lib/config.ts
5021
- import { existsSync as existsSync2, readFileSync as readFileSync2, mkdirSync, cpSync, readdirSync, statSync } from "fs";
5022
- import { join as join2 } from "path";
5021
+ import { copyFileSync, existsSync as existsSync2, readFileSync as readFileSync2, mkdirSync, readdirSync, statSync } from "fs";
5022
+ import { dirname, join as join2, resolve } from "path";
5023
5023
  import { homedir as homedir2 } from "os";
5024
5024
  var DEFAULT_CONFIG = {
5025
5025
  openai_api_key: "",
@@ -5113,44 +5113,53 @@ function expandEnvBackedConfig(config) {
5113
5113
  return expanded;
5114
5114
  }
5115
5115
  function findConfigFile() {
5116
- let dir = process.cwd();
5117
- const root = "/";
5118
- while (dir !== root) {
5119
- const candidate = join2(dir, ".recordings", "config.json");
5120
- if (existsSync2(candidate))
5121
- return candidate;
5122
- const parent = join2(dir, "..");
5123
- if (parent === dir)
5124
- break;
5125
- dir = parent;
5126
- }
5127
- return null;
5116
+ return findProjectRecordingsPath("config.json");
5128
5117
  }
5129
5118
  function getDataDir() {
5130
- let dir = process.cwd();
5131
- const root = "/";
5132
- while (dir !== root) {
5133
- const candidate = join2(dir, ".recordings");
5134
- if (existsSync2(candidate))
5135
- return candidate;
5136
- const parent = join2(dir, "..");
5137
- if (parent === dir)
5138
- break;
5139
- dir = parent;
5140
- }
5141
- const home = homedir2();
5119
+ const projectLocalDir = findProjectRecordingsPath();
5120
+ if (projectLocalDir)
5121
+ return projectLocalDir;
5122
+ const home = getHomeDir();
5142
5123
  const newDir = join2(home, ".hasna", "recordings");
5143
5124
  const oldDir = join2(home, ".recordings");
5144
- if (!existsSync2(newDir) && existsSync2(oldDir)) {
5125
+ if (existsSync2(oldDir)) {
5145
5126
  try {
5146
- mkdirSync(join2(home, ".hasna"), { recursive: true });
5147
- cpSync(oldDir, newDir, { recursive: true });
5127
+ mergeDirectoryContents(oldDir, newDir);
5148
5128
  } catch {}
5149
5129
  }
5150
5130
  return newDir;
5151
5131
  }
5132
+ function findProjectRecordingsPath(entry) {
5133
+ const home = resolve(getHomeDir());
5134
+ let dir = resolve(process.cwd());
5135
+ while (true) {
5136
+ if (dir !== home) {
5137
+ const candidate = entry ? join2(dir, ".recordings", entry) : join2(dir, ".recordings");
5138
+ if (existsSync2(candidate))
5139
+ return candidate;
5140
+ }
5141
+ const parent = dirname(dir);
5142
+ if (parent === dir)
5143
+ break;
5144
+ dir = parent;
5145
+ }
5146
+ return null;
5147
+ }
5148
+ function mergeDirectoryContents(sourceDir, targetDir) {
5149
+ mkdirSync(targetDir, { recursive: true });
5150
+ for (const entry of readdirSync(sourceDir)) {
5151
+ const sourcePath = join2(sourceDir, entry);
5152
+ const targetPath = join2(targetDir, entry);
5153
+ const sourceStats = statSync(sourcePath);
5154
+ if (sourceStats.isDirectory()) {
5155
+ mergeDirectoryContents(sourcePath, targetPath);
5156
+ } else if (!existsSync2(targetPath)) {
5157
+ copyFileSync(sourcePath, targetPath);
5158
+ }
5159
+ }
5160
+ }
5152
5161
  function loadSecretKey(keyName) {
5153
- const secretsPath = join2(homedir2(), ".secrets");
5162
+ const secretsPath = join2(getHomeDir(), ".secrets");
5154
5163
  if (!existsSync2(secretsPath))
5155
5164
  return "";
5156
5165
  for (const candidate of listSecretFiles(secretsPath)) {
@@ -5191,6 +5200,9 @@ function listSecretFiles(path) {
5191
5200
  return [];
5192
5201
  }
5193
5202
  }
5203
+ function getHomeDir() {
5204
+ return process.env["HOME"] || process.env["USERPROFILE"] || homedir2();
5205
+ }
5194
5206
  function ensureDataDir(config) {
5195
5207
  const { mkdirSync: mkdirSync2 } = __require("fs");
5196
5208
  mkdirSync2(config.audio_dir, { recursive: true });
@@ -5285,7 +5297,7 @@ function getDatabase(dbPath) {
5285
5297
  if (_db)
5286
5298
  return _db;
5287
5299
  const path = dbPath || loadConfig().db_path;
5288
- const dir = dirname(path);
5300
+ const dir = dirname2(path);
5289
5301
  mkdirSync2(dir, { recursive: true });
5290
5302
  _adapter = new SqliteAdapter(path);
5291
5303
  _db = _adapter.raw;
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.1.33";
1
+ export declare const VERSION = "0.1.35";
2
2
  //# sourceMappingURL=version.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/recordings",
3
- "version": "0.1.34",
3
+ "version": "0.1.35",
4
4
  "type": "module",
5
5
  "description": "Speech-to-text recording tool with MCP and CLI — records, transcribes, and optionally enhances text using AI",
6
6
  "repository": {
@@ -50,7 +50,7 @@
50
50
  "LICENSE"
51
51
  ],
52
52
  "dependencies": {
53
- "@hasna/events": "^0.1.7",
53
+ "@hasna/events": "^0.1.11",
54
54
  "@modelcontextprotocol/sdk": "^1.12.1",
55
55
  "chalk": "^5.4.1",
56
56
  "commander": "^13.1.0",