autho 0.0.13 → 0.1.0

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 (3) hide show
  1. package/Readme.md +111 -6
  2. package/build/bin.js +118 -40
  3. package/package.json +6 -2
package/Readme.md CHANGED
@@ -19,12 +19,6 @@ To install Autho globally, use npm:
19
19
  npm install -g autho
20
20
  ```
21
21
 
22
- ## Usage
23
-
24
- After installing Autho, you can run the `autho` command in your terminal to access its functionalities:
25
-
26
- This will start the Autho CLI, where you can generate OTPs, manage passwords, and configure settings as needed.
27
-
28
22
  ## Getting Started
29
23
 
30
24
  1. **Setting Up Autho**: After installation, run the `autho` command to set up Autho for the first time. Follow the on-screen instructions to configure your master password and other settings.
@@ -47,6 +41,117 @@ This will start the Autho CLI, where you can generate OTPs, manage passwords, an
47
41
 
48
42
  - **Regular Updates**: Keep Autho and its dependencies up to date to ensure that security vulnerabilities are addressed promptly.
49
43
 
44
+ ## Usage
45
+
46
+ ```bash
47
+ autho [options] [command]
48
+ ```
49
+
50
+ ### Options:
51
+
52
+ - `--version`: Output the version number
53
+ - `-p, --password <password>`: Master password
54
+ - `-ph, --passwordHash <passwordHash>`: Master password hash
55
+ - `-n, --name <name>`: Collection name
56
+ - `--dataFolder <folderPath>`: Folder path to store secrets db
57
+ - `-h, --help`: Display help for command
58
+
59
+ ### Commands:
60
+
61
+ #### 0. `prompt`
62
+
63
+ The main terminal ui, recommended most ot the time.
64
+
65
+ ```bash
66
+ autho
67
+ ```
68
+
69
+ #### 1. `import`
70
+
71
+ Import secrets from a backup file.
72
+
73
+ ```bash
74
+ autho import --filePath <filePath>
75
+ ```
76
+
77
+ #### 2. `secret`
78
+
79
+ Perform secret operations like creating, listing, reading, and deleting secrets.
80
+
81
+ ```bash
82
+ autho secret [options]
83
+ ```
84
+
85
+ Options:
86
+ - `--action <action>`: Secret action (create/list/read/delete)
87
+ - `--id <id>`: Secret id
88
+ - `--decrypt`: Decrypt secret
89
+
90
+ #### 3. `file`
91
+
92
+ Encrypt/Decrypt a file.
93
+
94
+ ```bash
95
+ autho file [options]
96
+ ```
97
+
98
+ Options:
99
+ - `-f, --filePath <filePath>`: File path
100
+ - `-en, --encrypt`: Encrypt file
101
+ - `-de, --decrypt`: Decrypt file
102
+ - `--override`: Override original file
103
+
104
+ #### 4. `files`
105
+
106
+ Encrypt/Decrypt files in a folder.
107
+
108
+ ```bash
109
+ autho files [options]
110
+ ```
111
+
112
+ Options:
113
+ - `--input <inputPath>`: Folder path
114
+ - `--output <outputPath>`: Folder path
115
+ - `-en, --encrypt`: Encrypt folder
116
+ - `-de, --decrypt`: Decrypt folder
117
+
118
+ ## Examples
119
+
120
+ 1. Import secrets from a backup file:
121
+ ```bash
122
+ autho import --filePath backup.json
123
+ ```
124
+
125
+ 2. Create a new secret:
126
+ ```bash
127
+ autho secret --action create
128
+ ```
129
+
130
+ 3. Read a secret:
131
+ ```bash
132
+ autho secret --action read --id <secretId> --decrypt
133
+ ```
134
+
135
+ 4. Encrypt a file:
136
+ ```bash
137
+ autho file --filePath secret.txt --encrypt
138
+ ```
139
+
140
+ 5. Decrypt a file:
141
+ ```bash
142
+ autho file --filePath secret.txt.autho --decrypt
143
+ ```
144
+
145
+ 6. Encrypt files in a folder:
146
+ ```bash
147
+ autho files --input /path/to/folder --encrypt
148
+ ```
149
+
150
+ 7. Decrypt files in a folder:
151
+ ```bash
152
+ autho files --input /path/to/folder.autho --decrypt
153
+ ```
154
+
50
155
  ## Contributing
51
156
 
52
157
  Autho is an open-source project, and contributions are welcome! Feel free to report issues, suggest features, or submit pull requests on the project's GitHub repository.
package/build/bin.js CHANGED
@@ -924,7 +924,7 @@ var require_command = __commonJS({
924
924
  var EventEmitter = require("events").EventEmitter;
925
925
  var childProcess = require("child_process");
926
926
  var path5 = require("path");
927
- var fs4 = require("fs");
927
+ var fs5 = require("fs");
928
928
  var process9 = require("process");
929
929
  var { Argument: Argument2, humanReadableArgName } = require_argument();
930
930
  var { CommanderError: CommanderError2 } = require_error();
@@ -1820,11 +1820,11 @@ Expecting one of '${allowedValues.join("', '")}'`);
1820
1820
  const sourceExt = [".js", ".ts", ".tsx", ".mjs", ".cjs"];
1821
1821
  function findFile(baseDir, baseName) {
1822
1822
  const localBin = path5.resolve(baseDir, baseName);
1823
- if (fs4.existsSync(localBin))
1823
+ if (fs5.existsSync(localBin))
1824
1824
  return localBin;
1825
1825
  if (sourceExt.includes(path5.extname(baseName)))
1826
1826
  return void 0;
1827
- const foundExt = sourceExt.find((ext) => fs4.existsSync(`${localBin}${ext}`));
1827
+ const foundExt = sourceExt.find((ext) => fs5.existsSync(`${localBin}${ext}`));
1828
1828
  if (foundExt)
1829
1829
  return `${localBin}${foundExt}`;
1830
1830
  return void 0;
@@ -1836,7 +1836,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
1836
1836
  if (this._scriptPath) {
1837
1837
  let resolvedScriptPath;
1838
1838
  try {
1839
- resolvedScriptPath = fs4.realpathSync(this._scriptPath);
1839
+ resolvedScriptPath = fs5.realpathSync(this._scriptPath);
1840
1840
  } catch (err) {
1841
1841
  resolvedScriptPath = this._scriptPath;
1842
1842
  }
@@ -28941,7 +28941,7 @@ var require_iso2022 = __commonJS({
28941
28941
  // node_modules/.pnpm/chardet@0.7.0/node_modules/chardet/index.js
28942
28942
  var require_chardet = __commonJS({
28943
28943
  "node_modules/.pnpm/chardet@0.7.0/node_modules/chardet/index.js"(exports2, module2) {
28944
- var fs4 = require("fs");
28944
+ var fs5 = require("fs");
28945
28945
  var utf8 = require_utf8();
28946
28946
  var unicode = require_unicode();
28947
28947
  var mbcs = require_mbcs();
@@ -29015,29 +29015,29 @@ var require_chardet = __commonJS({
29015
29015
  var fd;
29016
29016
  var handler = function(err, buffer) {
29017
29017
  if (fd) {
29018
- fs4.closeSync(fd);
29018
+ fs5.closeSync(fd);
29019
29019
  }
29020
29020
  if (err)
29021
29021
  return cb(err, null);
29022
29022
  cb(null, self2.detect(buffer, opts));
29023
29023
  };
29024
29024
  if (opts && opts.sampleSize) {
29025
- fd = fs4.openSync(filepath, "r"), sample = Buffer.allocUnsafe(opts.sampleSize);
29026
- fs4.read(fd, sample, 0, opts.sampleSize, null, function(err) {
29025
+ fd = fs5.openSync(filepath, "r"), sample = Buffer.allocUnsafe(opts.sampleSize);
29026
+ fs5.read(fd, sample, 0, opts.sampleSize, null, function(err) {
29027
29027
  handler(err, sample);
29028
29028
  });
29029
29029
  return;
29030
29030
  }
29031
- fs4.readFile(filepath, handler);
29031
+ fs5.readFile(filepath, handler);
29032
29032
  };
29033
29033
  module2.exports.detectFileSync = function(filepath, opts) {
29034
29034
  if (opts && opts.sampleSize) {
29035
- var fd = fs4.openSync(filepath, "r"), sample2 = Buffer.allocUnsafe(opts.sampleSize);
29036
- fs4.readSync(fd, sample2, 0, opts.sampleSize);
29037
- fs4.closeSync(fd);
29035
+ var fd = fs5.openSync(filepath, "r"), sample2 = Buffer.allocUnsafe(opts.sampleSize);
29036
+ fs5.readSync(fd, sample2, 0, opts.sampleSize);
29037
+ fs5.closeSync(fd);
29038
29038
  return self2.detect(sample2, opts);
29039
29039
  }
29040
- return self2.detect(fs4.readFileSync(filepath), opts);
29040
+ return self2.detect(fs5.readFileSync(filepath), opts);
29041
29041
  };
29042
29042
  module2.exports.detectAll = function(buffer, opts) {
29043
29043
  if (typeof opts !== "object") {
@@ -32540,7 +32540,7 @@ var require_os_tmpdir = __commonJS({
32540
32540
  // node_modules/.pnpm/tmp@0.0.33/node_modules/tmp/lib/tmp.js
32541
32541
  var require_tmp = __commonJS({
32542
32542
  "node_modules/.pnpm/tmp@0.0.33/node_modules/tmp/lib/tmp.js"(exports2, module2) {
32543
- var fs4 = require("fs");
32543
+ var fs5 = require("fs");
32544
32544
  var path5 = require("path");
32545
32545
  var crypto4 = require("crypto");
32546
32546
  var osTmpDir = require_os_tmpdir();
@@ -32604,7 +32604,7 @@ var require_tmp = __commonJS({
32604
32604
  return cb(new Error("Invalid template provided"));
32605
32605
  (function _getUniqueName() {
32606
32606
  const name = _generateTmpName(opts);
32607
- fs4.stat(name, function(err) {
32607
+ fs5.stat(name, function(err) {
32608
32608
  if (!err) {
32609
32609
  if (tries-- > 0)
32610
32610
  return _getUniqueName();
@@ -32623,7 +32623,7 @@ var require_tmp = __commonJS({
32623
32623
  do {
32624
32624
  const name = _generateTmpName(opts);
32625
32625
  try {
32626
- fs4.statSync(name);
32626
+ fs5.statSync(name);
32627
32627
  } catch (e) {
32628
32628
  return name;
32629
32629
  }
@@ -32636,14 +32636,14 @@ var require_tmp = __commonJS({
32636
32636
  tmpName(opts, function _tmpNameCreated(err, name) {
32637
32637
  if (err)
32638
32638
  return cb(err);
32639
- fs4.open(name, CREATE_FLAGS, opts.mode || FILE_MODE, function _fileCreated(err2, fd) {
32639
+ fs5.open(name, CREATE_FLAGS, opts.mode || FILE_MODE, function _fileCreated(err2, fd) {
32640
32640
  if (err2)
32641
32641
  return cb(err2);
32642
32642
  if (opts.discardDescriptor) {
32643
- return fs4.close(fd, function _discardCallback(err3) {
32643
+ return fs5.close(fd, function _discardCallback(err3) {
32644
32644
  if (err3) {
32645
32645
  try {
32646
- fs4.unlinkSync(name);
32646
+ fs5.unlinkSync(name);
32647
32647
  } catch (e) {
32648
32648
  if (!isENOENT(e)) {
32649
32649
  err3 = e;
@@ -32666,9 +32666,9 @@ var require_tmp = __commonJS({
32666
32666
  opts.postfix = opts.postfix || ".tmp";
32667
32667
  const discardOrDetachDescriptor = opts.discardDescriptor || opts.detachDescriptor;
32668
32668
  const name = tmpNameSync(opts);
32669
- var fd = fs4.openSync(name, CREATE_FLAGS, opts.mode || FILE_MODE);
32669
+ var fd = fs5.openSync(name, CREATE_FLAGS, opts.mode || FILE_MODE);
32670
32670
  if (opts.discardDescriptor) {
32671
- fs4.closeSync(fd);
32671
+ fs5.closeSync(fd);
32672
32672
  fd = void 0;
32673
32673
  }
32674
32674
  return {
@@ -32680,9 +32680,9 @@ var require_tmp = __commonJS({
32680
32680
  function _rmdirRecursiveSync(root) {
32681
32681
  const dirs = [root];
32682
32682
  do {
32683
- var dir2 = dirs.pop(), deferred = false, files = fs4.readdirSync(dir2);
32683
+ var dir2 = dirs.pop(), deferred = false, files = fs5.readdirSync(dir2);
32684
32684
  for (var i = 0, length = files.length; i < length; i++) {
32685
- var file2 = path5.join(dir2, files[i]), stat = fs4.lstatSync(file2);
32685
+ var file2 = path5.join(dir2, files[i]), stat = fs5.lstatSync(file2);
32686
32686
  if (stat.isDirectory()) {
32687
32687
  if (!deferred) {
32688
32688
  deferred = true;
@@ -32690,11 +32690,11 @@ var require_tmp = __commonJS({
32690
32690
  }
32691
32691
  dirs.push(file2);
32692
32692
  } else {
32693
- fs4.unlinkSync(file2);
32693
+ fs5.unlinkSync(file2);
32694
32694
  }
32695
32695
  }
32696
32696
  if (!deferred) {
32697
- fs4.rmdirSync(dir2);
32697
+ fs5.rmdirSync(dir2);
32698
32698
  }
32699
32699
  } while (dirs.length !== 0);
32700
32700
  }
@@ -32703,7 +32703,7 @@ var require_tmp = __commonJS({
32703
32703
  tmpName(opts, function _tmpNameCreated(err, name) {
32704
32704
  if (err)
32705
32705
  return cb(err);
32706
- fs4.mkdir(name, opts.mode || DIR_MODE, function _dirCreated(err2) {
32706
+ fs5.mkdir(name, opts.mode || DIR_MODE, function _dirCreated(err2) {
32707
32707
  if (err2)
32708
32708
  return cb(err2);
32709
32709
  cb(null, name, _prepareTmpDirRemoveCallback(name, opts));
@@ -32713,7 +32713,7 @@ var require_tmp = __commonJS({
32713
32713
  function dirSync(options) {
32714
32714
  var args = _parseArguments(options), opts = args[0];
32715
32715
  const name = tmpNameSync(opts);
32716
- fs4.mkdirSync(name, opts.mode || DIR_MODE);
32716
+ fs5.mkdirSync(name, opts.mode || DIR_MODE);
32717
32717
  return {
32718
32718
  name,
32719
32719
  removeCallback: _prepareTmpDirRemoveCallback(name, opts)
@@ -32723,7 +32723,7 @@ var require_tmp = __commonJS({
32723
32723
  const removeCallback = _prepareRemoveCallback(function _removeCallback(fdPath) {
32724
32724
  try {
32725
32725
  if (0 <= fdPath[0]) {
32726
- fs4.closeSync(fdPath[0]);
32726
+ fs5.closeSync(fdPath[0]);
32727
32727
  }
32728
32728
  } catch (e) {
32729
32729
  if (!isEBADF(e) && !isENOENT(e)) {
@@ -32731,7 +32731,7 @@ var require_tmp = __commonJS({
32731
32731
  }
32732
32732
  }
32733
32733
  try {
32734
- fs4.unlinkSync(fdPath[1]);
32734
+ fs5.unlinkSync(fdPath[1]);
32735
32735
  } catch (e) {
32736
32736
  if (!isENOENT(e)) {
32737
32737
  throw e;
@@ -32744,7 +32744,7 @@ var require_tmp = __commonJS({
32744
32744
  return removeCallback;
32745
32745
  }
32746
32746
  function _prepareTmpDirRemoveCallback(name, opts) {
32747
- const removeFunction = opts.unsafeCleanup ? _rmdirRecursiveSync : fs4.rmdirSync.bind(fs4);
32747
+ const removeFunction = opts.unsafeCleanup ? _rmdirRecursiveSync : fs5.rmdirSync.bind(fs5);
32748
32748
  const removeCallback = _prepareRemoveCallback(removeFunction, name);
32749
32749
  if (!opts.keep) {
32750
32750
  _removeObjects.unshift(removeCallback);
@@ -45046,7 +45046,7 @@ var require_package2 = __commonJS({
45046
45046
  // node_modules/.pnpm/dotenv@16.4.5/node_modules/dotenv/lib/main.js
45047
45047
  var require_main2 = __commonJS({
45048
45048
  "node_modules/.pnpm/dotenv@16.4.5/node_modules/dotenv/lib/main.js"(exports2, module2) {
45049
- var fs4 = require("fs");
45049
+ var fs5 = require("fs");
45050
45050
  var path5 = require("path");
45051
45051
  var os4 = require("os");
45052
45052
  var crypto4 = require("crypto");
@@ -45153,7 +45153,7 @@ var require_main2 = __commonJS({
45153
45153
  if (options && options.path && options.path.length > 0) {
45154
45154
  if (Array.isArray(options.path)) {
45155
45155
  for (const filepath of options.path) {
45156
- if (fs4.existsSync(filepath)) {
45156
+ if (fs5.existsSync(filepath)) {
45157
45157
  possibleVaultPath = filepath.endsWith(".vault") ? filepath : `${filepath}.vault`;
45158
45158
  }
45159
45159
  }
@@ -45163,7 +45163,7 @@ var require_main2 = __commonJS({
45163
45163
  } else {
45164
45164
  possibleVaultPath = path5.resolve(process.cwd(), ".env.vault");
45165
45165
  }
45166
- if (fs4.existsSync(possibleVaultPath)) {
45166
+ if (fs5.existsSync(possibleVaultPath)) {
45167
45167
  return possibleVaultPath;
45168
45168
  }
45169
45169
  return null;
@@ -45207,7 +45207,7 @@ var require_main2 = __commonJS({
45207
45207
  const parsedAll = {};
45208
45208
  for (const path6 of optionPaths) {
45209
45209
  try {
45210
- const parsed = DotenvModule.parse(fs4.readFileSync(path6, { encoding }));
45210
+ const parsed = DotenvModule.parse(fs5.readFileSync(path6, { encoding }));
45211
45211
  DotenvModule.populate(parsedAll, parsed, options);
45212
45212
  } catch (e) {
45213
45213
  if (debug) {
@@ -52331,12 +52331,12 @@ var require_dist = __commonJS({
52331
52331
  throw new Error(`Unknown format "${name}"`);
52332
52332
  return f;
52333
52333
  };
52334
- function addFormats(ajv, list, fs4, exportName) {
52334
+ function addFormats(ajv, list, fs5, exportName) {
52335
52335
  var _a;
52336
52336
  var _b;
52337
52337
  (_a = (_b = ajv.opts.code).formats) !== null && _a !== void 0 ? _a : _b.formats = codegen_1._`require("ajv-formats/dist/formats").${exportName}`;
52338
52338
  for (const f of list)
52339
- ajv.addFormat(f, fs4[f]);
52339
+ ajv.addFormat(f, fs5[f]);
52340
52340
  }
52341
52341
  module2.exports = exports2 = formatsPlugin;
52342
52342
  Object.defineProperty(exports2, "__esModule", { value: true });
@@ -59641,6 +59641,72 @@ var import_baloga = __toESM(require_baloga(), 1);
59641
59641
  var logger = new import_baloga.Logger();
59642
59642
  var Logger = import_baloga.Logger;
59643
59643
 
59644
+ // packages/cli/import.js
59645
+ var import_fs2 = __toESM(require("fs"), 1);
59646
+ var createSecret = async (secret, app) => {
59647
+ let created = false;
59648
+ switch (secret.type) {
59649
+ case "otp":
59650
+ {
59651
+ const newSecret = {
59652
+ name: secret.name,
59653
+ type: secret.type,
59654
+ protected: false,
59655
+ value: secret.secret,
59656
+ typeOptions: {
59657
+ username: secret.username,
59658
+ digits: secret.digits,
59659
+ description: secret.description
59660
+ }
59661
+ };
59662
+ created = await app.secrets.add(newSecret, app.encryptionKey);
59663
+ }
59664
+ break;
59665
+ case "password":
59666
+ {
59667
+ const newSecret = {
59668
+ name: secret.name,
59669
+ type: secret.type,
59670
+ protected: false,
59671
+ value: secret.secret,
59672
+ typeOptions: {
59673
+ username: secret.username,
59674
+ url: secret.url,
59675
+ description: secret.description
59676
+ }
59677
+ };
59678
+ created = await app.secrets.add(newSecret, app.encryptionKey);
59679
+ }
59680
+ break;
59681
+ case "note":
59682
+ {
59683
+ const newSecret = {
59684
+ name: secret.name,
59685
+ type: secret.type,
59686
+ protected: false,
59687
+ value: secret.secret,
59688
+ typeOptions: {
59689
+ description: secret.description
59690
+ }
59691
+ };
59692
+ created = await app.secrets.add(newSecret, app.encryptionKey);
59693
+ }
59694
+ break;
59695
+ default:
59696
+ throw new Error(`Unknown type: ${secret.type}`);
59697
+ }
59698
+ if (created)
59699
+ console.log(`Secret created: ${created.id}`);
59700
+ };
59701
+ var importSecrets = async (app, backupFilePath) => {
59702
+ const backupSecrets = JSON.parse(import_fs2.default.readFileSync(backupFilePath).toString("utf-8"));
59703
+ for (let secret of backupSecrets) {
59704
+ if (!secret)
59705
+ continue;
59706
+ await createSecret(secret, app);
59707
+ }
59708
+ };
59709
+
59644
59710
  // packages/cli/bin.js
59645
59711
  var logger2 = new Logger();
59646
59712
  var program2 = new Command();
@@ -59689,7 +59755,7 @@ var initApp = async (args, opts) => {
59689
59755
  const app = new App(args);
59690
59756
  return app;
59691
59757
  };
59692
- program2.name("autho").description("Secrets manager").version("0.0.11").option("-p, --password <password>", "Master password").option("-ph, --passwordHash <passwordHash>", "Master password hash").option("-n, --name <name>", "Collection name").option(
59758
+ program2.name("autho").description("Secrets manager").version("0.0.14").option("-p, --password <password>", "Master password").option("-ph, --passwordHash <passwordHash>", "Master password hash").option("-n, --name <name>", "Collection name").option(
59693
59759
  "--dataFolder <folderPath>",
59694
59760
  "Folder path to store secrets db",
59695
59761
  getAuthoAbsolutePath
@@ -59760,6 +59826,18 @@ program2.name("autho").description("Secrets manager").version("0.0.11").option("
59760
59826
  }
59761
59827
  process.exit(0);
59762
59828
  });
59829
+ program2.command("import").description("Import secrets from backup file").option("--filePath <filePath>", "backup file path (should be json)").action(async (args) => {
59830
+ try {
59831
+ logger2.debug(`input:`, args);
59832
+ const { filePath } = args;
59833
+ const app = await initApp(args, program2.opts());
59834
+ await importSecrets(app, toAbsolutePath(filePath));
59835
+ } catch (error) {
59836
+ logger2.error("Something went wrong, Error: ", error.message);
59837
+ logger2.debug(error.stack);
59838
+ process.exit(1);
59839
+ }
59840
+ });
59763
59841
  program2.command("secret").description("Secret operations").option("--action <action>", "Secret action (create/list/read/delete)", "create").option("--id <id>", "Secret id").option("--decrypt", "Decrypt secret", false).action(async (args) => {
59764
59842
  try {
59765
59843
  logger2.debug(`input:`, args);
@@ -59795,7 +59873,7 @@ program2.command("secret").description("Secret operations").option("--action <ac
59795
59873
  }
59796
59874
  } catch (error) {
59797
59875
  logger2.error("Something went wrong, Error: ", error.message);
59798
- console.log(error.stack);
59876
+ logger2.debug(error.stack);
59799
59877
  process.exit(1);
59800
59878
  }
59801
59879
  process.exit(0);
@@ -59824,7 +59902,7 @@ program2.command("file").description("Encrypt/Decrypt file").option("-f, --fileP
59824
59902
  }
59825
59903
  process.exit(0);
59826
59904
  });
59827
- program2.command("files").description("Encrypt/Decrypt file").option("--input <inputPath>", "Folder path").option("--output <outputPath>", "Folder path", process.cwd()).option("-en, --encrypt", "Encrypt folder", false).option("-de, --decrypt", "Decrypt folder", false).action(async (args) => {
59905
+ program2.command("files").description("Encrypt/Decrypt files").option("--input <inputPath>", "Folder path").option("--output <outputPath>", "Folder path", process.cwd()).option("-en, --encrypt", "Encrypt folder", false).option("-de, --decrypt", "Decrypt folder", false).action(async (args) => {
59828
59906
  try {
59829
59907
  logger2.debug(`input:`, args);
59830
59908
  const { encrypt, decrypt } = args;
@@ -59855,7 +59933,7 @@ program2.command("files").description("Encrypt/Decrypt file").option("--input <i
59855
59933
  }
59856
59934
  } catch (error) {
59857
59935
  logger2.error("Something went wrong, Error: ", error.message);
59858
- console.log(error.stack);
59936
+ logger2.debug(error.stack);
59859
59937
  process.exit(1);
59860
59938
  }
59861
59939
  process.exit(0);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "autho",
3
- "version": "0.0.13",
3
+ "version": "0.1.0",
4
4
  "main": "build/bin.js",
5
5
  "type": "commonjs",
6
6
  "bin": {
@@ -15,13 +15,16 @@
15
15
  "description": "Open Source Authentication and Password Management Tool",
16
16
  "devDependencies": {
17
17
  "@eslint/js": "^9.0.0",
18
+ "@semantic-release/changelog": "^6.0.3",
19
+ "@semantic-release/git": "^10.0.1",
18
20
  "esbuild": "0.20.2",
19
21
  "eslint": "^9.0.0",
20
22
  "eslint-config-prettier": "^9.1.0",
21
23
  "globals": "^15.0.0",
22
24
  "jest": "^29.7.0",
23
25
  "pkg": "^5.8.1",
24
- "prettier": "^3.2.5"
26
+ "prettier": "^3.2.5",
27
+ "semantic-release": "^23.0.8"
25
28
  },
26
29
  "files": [
27
30
  "build/bin.js"
@@ -48,6 +51,7 @@
48
51
  "pkg:macos": "pkg build/bin.js --output dist/autho-macos --target node18-macos-x64",
49
52
  "pkg:linux": "pkg build/bin.js --output dist/autho-linux --target node18-linux-x64",
50
53
  "pkg:win": "pkg build/bin.js --output dist/autho-win --target node18-win-x64 --win portable",
54
+ "semantic-release": "semantic-release",
51
55
  "release": "gh release create v0.0.10 './dist/autho*' --title 'v0.0.10' --generate-notes --prerelease"
52
56
  }
53
57
  }