secrez 2.1.9 β†’ 2.1.11-beta.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.
package/README.md CHANGED
@@ -370,6 +370,16 @@ Secrez is not intended to compete with password managers, so do not expect it to
370
370
 
371
371
  ## History
372
372
 
373
+ **2.1.11-beta.0**
374
+
375
+ - fix warning "(node:70960) [DEP0190] DeprecationWarning: Passing args to a child process with shell option true can lead to security vulnerabilities" caused by the Git checker
376
+
377
+ **2.1.10**
378
+
379
+ - add external git change detection to block operations when repository state changes outside of Secrez (e.g., `git pull` in another terminal)
380
+ - fix critical cache bug in git conflict detection that prevented external changes from being detected within 30 seconds
381
+ - improve git conflict detection tests with comprehensive coverage for both git and non-git repositories
382
+
373
383
  **2.1.9**
374
384
 
375
385
  - add `<` parameter to reuse the last used path in commands (e.g., `totp <` will use the last path from previous command)
@@ -876,6 +886,66 @@ Thank you for any contributions! πŸ˜‰
876
886
  ## Test coverage
877
887
 
878
888
  ```
889
+ 162 passing (1m)
890
+ 1 pending
891
+
892
+ --------------------|---------|----------|---------|---------|--------------------------------------
893
+ File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
894
+ --------------------|---------|----------|---------|---------|--------------------------------------
895
+ All files | 80.07 | 67.69 | 80.91 | 79.96 |
896
+ src | 57.62 | 53.75 | 55 | 58.11 |
897
+ Command.js | 74.66 | 74.13 | 78.57 | 75.67 | ...5-62,73,80,93,127,164-172,179-182
898
+ PreCommand.js | 8.82 | 0 | 0 | 8.82 | 6-97
899
+ cliConfig.js | 100 | 100 | 100 | 100 |
900
+ src/commands | 83.06 | 69.43 | 90.82 | 82.94 |
901
+ Alias.js | 88.6 | 78.68 | 100 | 88.46 | 101,112,139,169,173,180,190,213-214
902
+ Bash.js | 75 | 0 | 66.66 | 75 | 18-19
903
+ Cat.js | 98.91 | 88.88 | 100 | 98.91 | 152
904
+ Cd.js | 96.42 | 86.66 | 100 | 96.42 | 44
905
+ Conf.js | 8.64 | 0 | 20 | 8.64 | 98-509
906
+ Contacts.js | 86.06 | 75.6 | 100 | 85.95 | ...5,165,172,184,237,250,260,268-269
907
+ Copy.js | 91.2 | 71.92 | 100 | 91.11 | 115,166,183,205-210,225-226,253
908
+ Ds.js | 90.27 | 82.6 | 100 | 90.14 | 99,108-113,125,147-148
909
+ Edit.js | 12.94 | 0 | 40 | 12.94 | 88-222
910
+ Export.js | 90.17 | 76.92 | 100 | 90.17 | ...3-198,209,227-231,236,248,257,260
911
+ Find.js | 93.58 | 86.66 | 100 | 93.42 | 101,164,200-203,209
912
+ Git.js | 96.15 | 75 | 100 | 96.15 | 61
913
+ Help.js | 100 | 80 | 100 | 100 | 29
914
+ Import.js | 92.41 | 85.38 | 100 | 92.34 | ...7,387,393,441,457-458,466-473,500
915
+ Lcat.js | 100 | 85.71 | 100 | 100 | 54
916
+ Lcd.js | 95.65 | 81.81 | 100 | 95.65 | 50
917
+ Lls.js | 95.45 | 72.72 | 100 | 95.45 | 97
918
+ Lpwd.js | 92.3 | 100 | 100 | 92.3 | 36
919
+ Ls.js | 91.54 | 76.31 | 100 | 91.04 | 103,114-116,130,185
920
+ Mkdir.js | 92.59 | 60 | 100 | 92.59 | 56-57
921
+ Mv.js | 86.59 | 71.66 | 100 | 86.31 | 93-99,133,155-156,165,175-182
922
+ Paste.js | 84.61 | 70.83 | 100 | 84.61 | 72,78,81,89,113,130-131,139
923
+ Pwd.js | 92.3 | 100 | 100 | 92.3 | 33
924
+ Quit.js | 90 | 50 | 100 | 90 | 27
925
+ Rm.js | 90.9 | 76 | 100 | 90.74 | 63,125-126,136,144
926
+ Shell.js | 88.23 | 60 | 100 | 88.23 | 38,55
927
+ Show.js | 72.54 | 45.45 | 57.14 | 74 | ...8,100,106-114,117,123-126,132,145
928
+ Ssh.js | 25 | 0 | 40 | 25 | 72-120
929
+ Tag.js | 96.26 | 91.37 | 100 | 96.22 | 122,171,204-205
930
+ Totp.js | 92.23 | 75 | 100 | 92.23 | 189-190,230,240,282-287,301-302
931
+ Touch.js | 96.36 | 80.64 | 100 | 96.29 | 164,240
932
+ Use.js | 91.66 | 86.95 | 100 | 91.66 | 68,83-84
933
+ Ver.js | 90 | 66.66 | 100 | 90 | 25
934
+ Whoami.js | 83.33 | 60 | 80 | 83.33 | 27,35,48
935
+ index.js | 87.5 | 50 | 100 | 86.95 | 15,22,31
936
+ src/prompts | 75 | 33.33 | 50 | 75 |
937
+ MainPromptMock.js | 75 | 33.33 | 50 | 75 | 29-35,44
938
+ src/utils | 67.61 | 62.5 | 54.16 | 67.21 |
939
+ AliasManager.js | 100 | 91.66 | 100 | 100 | 47
940
+ ContactManager.js | 73.33 | 60 | 85.71 | 73.33 | 12,34-36
941
+ Fido2Client.js | 9.61 | 0 | 0 | 9.61 | 8-108
942
+ HelpProto.js | 89.07 | 82.6 | 100 | 88.88 | 49,135-137,153-154,171-176,195
943
+ Logger.js | 63.63 | 56.25 | 36.84 | 62.79 | ...25,37-49,57,65-69,74,84,88,93,105
944
+ --------------------|---------|----------|---------|---------|--------------------------------------
945
+
946
+ > secrez@2.1.11-beta.0 posttest /Users/francescosullo/Projects/Secrez/secrez/packages/secrez
947
+ > nyc check-coverage --statements 65 --branches 50 --functions 65 --lines 65
948
+
879
949
 
880
950
  ```
881
951
 
package/coverage.report CHANGED
@@ -1,5 +1,5 @@
1
1
 
2
- > secrez@2.1.9 test /Users/francescosullo/Projects/Secrez/secrez/packages/secrez
2
+ > secrez@2.1.11-beta.0 test /Users/francescosullo/Projects/Secrez/secrez/packages/secrez
3
3
  > cross-env NODE_ENV=test nyc --reporter=lcov --reporter=text mocha test/*.test.js test/**/*.test.js test/**/**/*.js --exit
4
4
 
5
5
 
@@ -15,24 +15,19 @@
15
15
  #validate
16
16
  βœ“ should validate the options
17
17
 
18
- #Fido2Client
19
- #configuration
20
- βœ“ should verify that all the scripts exist
21
-
22
18
  #Alias
23
19
  βœ“ should return the help
24
20
  βœ“ create aliases and lists them
25
- - should chain two commands
26
21
  βœ“ rename and delete aliases
27
22
  βœ“ should throw if there are errors
28
23
 
29
24
  #Cat
30
25
  βœ“ should return the help
31
26
  βœ“ should show the content of a file
32
- βœ“ should show either one or all the versions of a file (1019ms)
27
+ βœ“ should show either one or all the versions of a file (1017ms)
33
28
  βœ“ should throw if entry is not a file or file does not exist
34
29
  βœ“ should throw if trying to cat a binary file
35
- βœ“ should show the content of a Yaml file (1028ms)
30
+ βœ“ should show the content of a Yaml file (1026ms)
36
31
 
37
32
  #Cd
38
33
  βœ“ should return the help
@@ -51,6 +46,257 @@
51
46
 
52
47
  #Copy
53
48
  βœ“ should return the help
54
- βœ“ should copy a file to the clipboard (406ms)
55
- βœ“ should copy a string to the clipboard (261ms)
56
-  ELIFECYCLE  Test failed. See above for more details.
49
+ βœ“ should copy a file to the clipboard (385ms)
50
+ βœ“ should copy a string to the clipboard (250ms)
51
+ βœ“ should copy a card to the clipboard (909ms)
52
+ βœ“ should return an error if the file does not exist or is a folder (39ms)
53
+ βœ“ should throw if copying to clipboard a binary files
54
+
55
+ #Ds
56
+ βœ“ should return the help
57
+ βœ“ should list all datasets
58
+ βœ“ should create a new dataset
59
+ βœ“ should rename a dataset
60
+ βœ“ should delete a dataset
61
+
62
+ #Export
63
+ βœ“ should return the help
64
+ βœ“ should export a file to the current local folder
65
+ βœ“ should export a file encrypted only for the user itself
66
+ βœ“ should export a binary file to the current local folder
67
+ βœ“ should export an encrypted file to the current local folder
68
+ βœ“ should export a file and delete it after 1 second (1204ms)
69
+ βœ“ should return an error if the file does not exist or is a folder
70
+ βœ“ should export a keystore json file if a private_key exists in the entry (645ms)
71
+ βœ“ should export a cryptoenv file if a private_key exists in the entry
72
+ βœ“ should export a cryptoenv file with entire content when no private_key fields exist and user confirms
73
+ βœ“ should throw error when no private_key fields exist and user declines
74
+ βœ“ should throw error when no private_key fields exist and keystore option is used
75
+ βœ“ should display encrypted content in console when using crypto-env with no-export
76
+
77
+ #Find
78
+ βœ“ should return the help
79
+ βœ“ should show find a string in the tree (1020ms)
80
+ βœ“ should find no result without parameters
81
+ βœ“ should skip binary files from search
82
+
83
+ #Git
84
+ βœ“ should return the help
85
+ βœ“ should show git status when --status is used (3120ms)
86
+ βœ“ should show git status by default (3325ms)
87
+ βœ“ should handle conflict risk scenario (5067ms)
88
+ βœ“ should handle non-git repository
89
+ βœ“ should allow normal operations in non-git repository
90
+ Bye bye :o)
91
+ βœ“ should detect external git changes and block operations (14550ms)
92
+
93
+ #Help
94
+ βœ“ should return the help
95
+ βœ“ #execAsync and format
96
+ βœ“ should throw if wrong command
97
+ βœ“ -- to complete coverage
98
+
99
+ #Import
100
+ βœ“ should return the help
101
+ βœ“ should import a file in the current folder
102
+ βœ“ should import an encrypted file
103
+ βœ“ should import an encrypted file encrypted for myself
104
+ βœ“ should import an encrypted binary file and export it again verifying it is fine
105
+ βœ“ should import files recursively
106
+ βœ“ should read a folder and import the only text file
107
+ βœ“ should read a folder and import text and binary files
108
+ βœ“ should simulate the import of two files
109
+ βœ“ should move the imported file
110
+ βœ“ should import a backup from another software spanning the data among folders and files
111
+ βœ“ should import a backup from another software but saving the tags as tags
112
+ βœ“ should import a backup from another software using tags to prefix the paths
113
+ βœ“ should import using tags to prefix the paths, ignoring the tags
114
+ βœ“ should import from a LastPass-like csv setting the path from "grouping" and "name"
115
+ βœ“ should import from a json
116
+ βœ“ should throw importing a malformed backup
117
+ βœ“ should throw importing a CSV indicating wrong fields to generate the path
118
+
119
+ #Lcat
120
+ βœ“ should return the help
121
+ βœ“ cat a file
122
+ βœ“ return en error if trying to cat a binary file
123
+
124
+ #Lcd
125
+ βœ“ should return the help
126
+ βœ“ change to a folder
127
+ βœ“ return en error if changing to a file
128
+
129
+ #Lls
130
+ βœ“ should return the help
131
+ βœ“ should list a folder
132
+ βœ“ return en error if lls-ing a not existing path
133
+ βœ“ return a message if no files are found
134
+
135
+ #Lpwd
136
+ βœ“ should return the help
137
+ βœ“ change to a folder
138
+
139
+ #Ls
140
+ βœ“ should return the help
141
+ βœ“ should return all the datasets
142
+ βœ“ should list folders and files
143
+ βœ“ should list folders and files using wildcards
144
+
145
+ #Mkdir
146
+ βœ“ should return the help
147
+ βœ“ should create a folder
148
+ βœ“ should create a nested folder
149
+ βœ“ should throw if trying to create a child of a file
150
+ βœ“ should throw if wrong parameters
151
+
152
+ #Mv
153
+ βœ“ should return the help
154
+ βœ“ should rename a file (1010ms)
155
+ βœ“ should move a file to another folder
156
+ βœ“ should move many files to another folder
157
+ βœ“ should move a file to another subfolder
158
+ βœ“ should move and rename file to another folder
159
+ βœ“ should move file to another folder using wildcards
160
+ βœ“ should move file to another dataset using wildcards
161
+ βœ“ should move file managing duplicates
162
+ βœ“ should throw if parameters are missed or wrong
163
+ βœ“ should move files from and to other datasets (1029ms)
164
+ βœ“ should move the results of a find
165
+
166
+ #Paste
167
+ βœ“ should return the help
168
+ βœ“ should paste the clipboard content to a new file (39ms)
169
+ βœ“ should paste the clipboard content to an existent file (55ms)
170
+ βœ“ should paste a single field to a yml card
171
+
172
+ #Pwd
173
+ βœ“ should return the help
174
+ βœ“ should show the working folder
175
+
176
+ #Quit
177
+ βœ“ should show the content of an external file via bash
178
+
179
+ #Rm
180
+ βœ“ should return the help
181
+ βœ“ should delete a file with one version
182
+ βœ“ should delete many files usign wildcards
183
+ βœ“ should return errors if wrong parameters
184
+ βœ“ should delete some versions of a file (1011ms)
185
+
186
+ #Shell
187
+ βœ“ should return the help
188
+ βœ“ should show the content of an external file via shell
189
+
190
+ #Show
191
+ βœ“ should return the help
192
+ βœ“ should show the field password of a card
193
+
194
+ #Tag
195
+ βœ“ should return the help
196
+ βœ“ should tag a file
197
+ βœ“ should remove a tag
198
+ βœ“ should list all the tags
199
+ βœ“ should show the file tagged as
200
+ βœ“ should show very long file tagged as
201
+
202
+ #Totp
203
+ βœ“ should return the help
204
+ βœ“ should totp a file to the clipboard (380ms)
205
+ βœ“ should read a totp secret from an image and add the totp field to the card
206
+ βœ“ should read a totp secret from an image and return the secret
207
+ βœ“ should throw if bad image
208
+ βœ“ should throw if missing parameters
209
+ βœ“ should throw if the yaml is malformed
210
+ βœ“ should read a totp secret from the clipboard (73ms)
211
+
212
+ #Touch
213
+ βœ“ should return the help
214
+ βœ“ should create a file
215
+ βœ“ should create a file with content
216
+ βœ“ should duplicate a file
217
+ βœ“ should throw if trying to duplicate a non existing file
218
+ βœ“ should throw if trying to duplicate a folder
219
+ βœ“ should throw if trying to create a child of a file
220
+ βœ“ should throw if wrong parameters
221
+ βœ“ should create a file and generate a wallet
222
+ New file "/folder2/file1" created.
223
+ βœ“ should generate 5 prefixed wallet (56ms)
224
+ New file "/folder2/file1" created.
225
+ βœ“ should generate a wallet with mnemonic and 2 keys
226
+
227
+ #Use
228
+ βœ“ should return the help
229
+ βœ“ should use a new dataset, creating it if does not exist
230
+
231
+ #Ver
232
+ βœ“ should show the current version
233
+
234
+ #Whoami
235
+ βœ“ should return the help
236
+ βœ“ should see who am I
237
+
238
+ #Fido2Client
239
+ #configuration
240
+ - should verify that all the scripts exist
241
+
242
+
243
+ 162 passing (1m)
244
+ 1 pending
245
+
246
+ --------------------|---------|----------|---------|---------|--------------------------------------
247
+ File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
248
+ --------------------|---------|----------|---------|---------|--------------------------------------
249
+ All files | 80.07 | 67.69 | 80.91 | 79.96 |
250
+ src | 57.62 | 53.75 | 55 | 58.11 |
251
+ Command.js | 74.66 | 74.13 | 78.57 | 75.67 | ...5-62,73,80,93,127,164-172,179-182
252
+ PreCommand.js | 8.82 | 0 | 0 | 8.82 | 6-97
253
+ cliConfig.js | 100 | 100 | 100 | 100 |
254
+ src/commands | 83.06 | 69.43 | 90.82 | 82.94 |
255
+ Alias.js | 88.6 | 78.68 | 100 | 88.46 | 101,112,139,169,173,180,190,213-214
256
+ Bash.js | 75 | 0 | 66.66 | 75 | 18-19
257
+ Cat.js | 98.91 | 88.88 | 100 | 98.91 | 152
258
+ Cd.js | 96.42 | 86.66 | 100 | 96.42 | 44
259
+ Conf.js | 8.64 | 0 | 20 | 8.64 | 98-509
260
+ Contacts.js | 86.06 | 75.6 | 100 | 85.95 | ...5,165,172,184,237,250,260,268-269
261
+ Copy.js | 91.2 | 71.92 | 100 | 91.11 | 115,166,183,205-210,225-226,253
262
+ Ds.js | 90.27 | 82.6 | 100 | 90.14 | 99,108-113,125,147-148
263
+ Edit.js | 12.94 | 0 | 40 | 12.94 | 88-222
264
+ Export.js | 90.17 | 76.92 | 100 | 90.17 | ...3-198,209,227-231,236,248,257,260
265
+ Find.js | 93.58 | 86.66 | 100 | 93.42 | 101,164,200-203,209
266
+ Git.js | 96.15 | 75 | 100 | 96.15 | 61
267
+ Help.js | 100 | 80 | 100 | 100 | 29
268
+ Import.js | 92.41 | 85.38 | 100 | 92.34 | ...7,387,393,441,457-458,466-473,500
269
+ Lcat.js | 100 | 85.71 | 100 | 100 | 54
270
+ Lcd.js | 95.65 | 81.81 | 100 | 95.65 | 50
271
+ Lls.js | 95.45 | 72.72 | 100 | 95.45 | 97
272
+ Lpwd.js | 92.3 | 100 | 100 | 92.3 | 36
273
+ Ls.js | 91.54 | 76.31 | 100 | 91.04 | 103,114-116,130,185
274
+ Mkdir.js | 92.59 | 60 | 100 | 92.59 | 56-57
275
+ Mv.js | 86.59 | 71.66 | 100 | 86.31 | 93-99,133,155-156,165,175-182
276
+ Paste.js | 84.61 | 70.83 | 100 | 84.61 | 72,78,81,89,113,130-131,139
277
+ Pwd.js | 92.3 | 100 | 100 | 92.3 | 33
278
+ Quit.js | 90 | 50 | 100 | 90 | 27
279
+ Rm.js | 90.9 | 76 | 100 | 90.74 | 63,125-126,136,144
280
+ Shell.js | 88.23 | 60 | 100 | 88.23 | 38,55
281
+ Show.js | 72.54 | 45.45 | 57.14 | 74 | ...8,100,106-114,117,123-126,132,145
282
+ Ssh.js | 25 | 0 | 40 | 25 | 72-120
283
+ Tag.js | 96.26 | 91.37 | 100 | 96.22 | 122,171,204-205
284
+ Totp.js | 92.23 | 75 | 100 | 92.23 | 189-190,230,240,282-287,301-302
285
+ Touch.js | 96.36 | 80.64 | 100 | 96.29 | 164,240
286
+ Use.js | 91.66 | 86.95 | 100 | 91.66 | 68,83-84
287
+ Ver.js | 90 | 66.66 | 100 | 90 | 25
288
+ Whoami.js | 83.33 | 60 | 80 | 83.33 | 27,35,48
289
+ index.js | 87.5 | 50 | 100 | 86.95 | 15,22,31
290
+ src/prompts | 75 | 33.33 | 50 | 75 |
291
+ MainPromptMock.js | 75 | 33.33 | 50 | 75 | 29-35,44
292
+ src/utils | 67.61 | 62.5 | 54.16 | 67.21 |
293
+ AliasManager.js | 100 | 91.66 | 100 | 100 | 47
294
+ ContactManager.js | 73.33 | 60 | 85.71 | 73.33 | 12,34-36
295
+ Fido2Client.js | 9.61 | 0 | 0 | 9.61 | 8-108
296
+ HelpProto.js | 89.07 | 82.6 | 100 | 88.88 | 49,135-137,153-154,171-176,195
297
+ Logger.js | 63.63 | 56.25 | 36.84 | 62.79 | ...25,37-49,57,65-69,74,84,88,93,105
298
+ --------------------|---------|----------|---------|---------|--------------------------------------
299
+
300
+ > secrez@2.1.11-beta.0 posttest /Users/francescosullo/Projects/Secrez/secrez/packages/secrez
301
+ > nyc check-coverage --statements 65 --branches 50 --functions 65 --lines 65
302
+
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "secrez",
3
- "version": "2.1.9",
3
+ "version": "2.1.11-beta.0",
4
4
  "license": "MIT",
5
5
  "nyc": {
6
6
  "include": "src",
7
7
  "exclude": []
8
8
  },
9
9
  "dependencies": {
10
- "@secrez/core": "~1.0.5",
11
- "@secrez/crypto": "~1.0.4",
12
- "@secrez/eth": "~0.0.4",
13
- "@secrez/fs": "~1.0.6",
14
- "@secrez/utils": "~1.0.4",
10
+ "@secrez/core": "~1.0.6",
11
+ "@secrez/crypto": "~1.0.5",
12
+ "@secrez/eth": "~0.0.5",
13
+ "@secrez/fs": "~1.0.8",
14
+ "@secrez/utils": "~1.0.5",
15
15
  "case": "^1.6.3",
16
16
  "chalk": "^3.0.0",
17
17
  "clipboardy": "^2.3.0",
package/src/Command.js CHANGED
@@ -152,7 +152,15 @@ class Command extends PreCommand {
152
152
  // Show the warning message
153
153
  this.Logger.yellow(conflictCheck.message);
154
154
 
155
- // Ask user if they want to continue
155
+ // If bypass is not allowed (e.g., external changes detected), block the operation
156
+ if (!conflictCheck.allowBypass) {
157
+ this.Logger.grey(
158
+ "Operation blocked for data integrity. Please quit and re-enter Secrez."
159
+ );
160
+ return false;
161
+ }
162
+
163
+ // Otherwise, ask user if they want to continue
156
164
  const shouldContinue = await this.useInput({
157
165
  type: "confirm",
158
166
  message: "Do you want to continue anyway?",
package/src/Welcome.js CHANGED
@@ -250,38 +250,46 @@ Thanks.`);
250
250
  }
251
251
 
252
252
  async handleDeprecatedFido2() {
253
- Logger.yellow("FIDO2 second factor authentication is no longer supported in this version.");
253
+ Logger.yellow(
254
+ "FIDO2 second factor authentication is no longer supported in this version."
255
+ );
254
256
  Logger.grey("Removing deprecated FIDO2 configuration...");
255
-
257
+
256
258
  try {
257
259
  const conf = await this.secrez.readConf();
258
260
  const data = conf.data;
259
-
261
+
260
262
  if (data.keys) {
261
263
  // Remove all FIDO2 keys from the configuration
262
264
  delete data.keys;
263
-
265
+
264
266
  // Save the cleaned configuration
265
267
  await this.secrez.saveConf(conf);
266
-
268
+
267
269
  Logger.green("FIDO2 configuration has been removed successfully.");
268
270
  Logger.grey("You can now login with your master password only.");
269
-
271
+
270
272
  // Try to login again with the cleaned configuration
271
273
  let errorCode = await this.login();
272
274
  if (errorCode === 1) {
273
- Logger.red("Login still failed. Please check your password or create a new account.");
275
+ Logger.red(
276
+ "Login still failed. Please check your password or create a new account."
277
+ );
274
278
  // eslint-disable-next-line no-process-exit
275
279
  process.exit(1);
276
280
  }
277
281
  } else {
278
- Logger.red("No FIDO2 keys found, but login still requires second factor. This may indicate a corrupted configuration.");
282
+ Logger.red(
283
+ "No FIDO2 keys found, but login still requires second factor. This may indicate a corrupted configuration."
284
+ );
279
285
  // eslint-disable-next-line no-process-exit
280
286
  process.exit(1);
281
287
  }
282
288
  } catch (e) {
283
289
  Logger.red(`Failed to clean FIDO2 configuration: ${e.message}`);
284
- Logger.grey("You may need to manually remove the keys.json file and create a new account.");
290
+ Logger.grey(
291
+ "You may need to manually remove the keys.json file and create a new account."
292
+ );
285
293
  // eslint-disable-next-line no-process-exit
286
294
  process.exit(1);
287
295
  }