diff --git a/28e7951eeed148a882e0e1c5a8677d8d978ad5360a0c51a2572f5a6cb8b56a3b/images/swarm.png b/28e7951eeed148a882e0e1c5a8677d8d978ad5360a0c51a2572f5a6cb8b56a3b/images/swarm.png
new file mode 100644
index 00000000..ca7f89fc
Binary files /dev/null and b/28e7951eeed148a882e0e1c5a8677d8d978ad5360a0c51a2572f5a6cb8b56a3b/images/swarm.png differ
diff --git a/28e7951eeed148a882e0e1c5a8677d8d978ad5360a0c51a2572f5a6cb8b56a3b/index.html b/28e7951eeed148a882e0e1c5a8677d8d978ad5360a0c51a2572f5a6cb8b56a3b/index.html
new file mode 100644
index 00000000..41d9c30f
--- /dev/null
+++ b/28e7951eeed148a882e0e1c5a8677d8d978ad5360a0c51a2572f5a6cb8b56a3b/index.html
@@ -0,0 +1,16 @@
+
+
+
+
+
+ First updated CLI webpage
+
+
+
+
+ Let's roll!
+
+
+
+
+
diff --git a/28e7951eeed148a882e0e1c5a8677d8d978ad5360a0c51a2572f5a6cb8b56a3b/swarm.bzz b/28e7951eeed148a882e0e1c5a8677d8d978ad5360a0c51a2572f5a6cb8b56a3b/swarm.bzz
new file mode 100644
index 00000000..e69de29b
diff --git a/README.md b/README.md
index 1aea54de..6af835fd 100644
--- a/README.md
+++ b/README.md
@@ -224,6 +224,7 @@ Run 'swarm-cli GROUP --help' to see available commands in a group
█ Available Commands:
+reupload Reupload locally pinned content
upload Upload file to Swarm
download Download arbitrary Swarm hash
hash Print the Swarm hash of a file
diff --git a/src/command/pinning/index.ts b/src/command/pinning/index.ts
index 4fda72be..76911edf 100644
--- a/src/command/pinning/index.ts
+++ b/src/command/pinning/index.ts
@@ -1,7 +1,6 @@
import { GroupCommand } from 'furious-commander'
import { List } from './list'
import { Pin } from './pin'
-import { Reupload } from './reupload'
import { ReuploadAll } from './reupload-all'
import { Unpin } from './unpin'
@@ -10,5 +9,5 @@ export class Pinning implements GroupCommand {
public readonly description = 'Pin, unpin and check pinned chunks'
- public subCommandClasses = [Pin, Unpin, List, Reupload, ReuploadAll]
+ public subCommandClasses = [Pin, Unpin, List, ReuploadAll]
}
diff --git a/src/command/pinning/reupload.ts b/src/command/reupload.ts
similarity index 61%
rename from src/command/pinning/reupload.ts
rename to src/command/reupload.ts
index 2cb25b00..02a676e8 100644
--- a/src/command/pinning/reupload.ts
+++ b/src/command/reupload.ts
@@ -1,9 +1,10 @@
import { Argument, LeafCommand, Option } from 'furious-commander'
-import { pickStamp } from '../../service/stamp'
-import { stampProperties } from '../../utils/option'
-import { PinningCommand } from './pinning-command'
+import { pickStamp } from '../service/stamp'
+import { stampProperties } from '../utils/option'
+import { RootCommand } from './root-command'
+import { History } from '../service/history'
-export class Reupload extends PinningCommand implements LeafCommand {
+export class Reupload extends RootCommand implements LeafCommand {
// CLI FIELDS
public readonly name = 'reupload'
@@ -33,6 +34,17 @@ export class Reupload extends PinningCommand implements LeafCommand {
try {
await this.bee.reuploadPinnedData(this.stamp, this.address)
this.console.log('Reuploaded successfully.')
+
+ if (this.commandConfig.config.historyEnabled) {
+ const history = new History(this.commandConfig, this.console)
+ history.addItem({
+ timestamp: Date.now(),
+ reference: this.address,
+ stamp: this.stamp,
+ path: null,
+ uploadType: 'reupload',
+ })
+ }
} catch (error) {
this.console.printBeeError(error, { notFoundMessage: 'No locally pinned content found with that address.' })
}
diff --git a/src/config.ts b/src/config.ts
index 05099e01..036af1fd 100644
--- a/src/config.ts
+++ b/src/config.ts
@@ -18,6 +18,7 @@ import { Status } from './command/status'
import { Upload } from './command/upload'
import { Utility } from './command/utility'
import { Wallet } from './command/wallet'
+import { Reupload } from './command/reupload'
export const beeApiUrl: IOption = {
key: 'bee-api-url',
@@ -127,4 +128,5 @@ export const rootCommandClasses = [
Quickstart,
History,
Access,
+ Reupload,
]
diff --git a/src/service/history/types/history-item.ts b/src/service/history/types/history-item.ts
index be6b9577..8f9253a4 100644
--- a/src/service/history/types/history-item.ts
+++ b/src/service/history/types/history-item.ts
@@ -4,7 +4,7 @@ export type HistoryItem = {
reference: string
stamp: string
path: string | null
- uploadType: 'file' | 'folder' | 'stdin'
+ uploadType: 'file' | 'folder' | 'stdin' | 'reupload'
feedAddress?: string | null
feedIdentity?: string | null
}
diff --git a/swarm.png b/swarm.png
new file mode 100644
index 00000000..cd4477ea
Binary files /dev/null and b/swarm.png differ
diff --git a/test/command/reupload.spec.ts b/test/command/reupload.spec.ts
new file mode 100644
index 00000000..61dbf213
--- /dev/null
+++ b/test/command/reupload.spec.ts
@@ -0,0 +1,63 @@
+import { readFileSync } from 'fs'
+import type { Reupload } from '../../src/command/reupload'
+import type { Upload } from '../../src/command/upload'
+import { HistoryItem } from '../../src/service/history/types/history-item'
+import { describeCommand, invokeTestCli } from '../utility'
+import { getStampOption } from '../utility/stamp'
+import { Buy } from '../../src/command/stamp/buy'
+
+describeCommand(
+ 'Test Reupload command',
+ ({ consoleMessages, hasMessageContaining }) => {
+ it('should reupload pinned content and add it to the upload history', async () => {
+ // 1. Upload with --pin so there is locally pinned content
+ const uploadBuilder = await invokeTestCli([
+ 'upload',
+ `${__dirname}/../testpage/images/swarm.png`,
+ '--pin',
+ ...getStampOption(),
+ ])
+ const uploadCommand = uploadBuilder.runnable as Upload
+ const reference = uploadCommand.result.getOrThrow().toHex()
+
+ // assert the upload itself succeeded before moving on
+ expect(uploadCommand.name).toBe('upload')
+ expect(reference).toHaveLength(64)
+ expect(hasMessageContaining('Swarm hash')).toBeTruthy()
+
+ consoleMessages.length = 0 // clear messages from the upload
+
+ // 2. buy a NEW stamp for the reupload
+ const buyExecution = await invokeTestCli([
+ 'stamp',
+ 'buy',
+ '--depth',
+ '20',
+ '--amount',
+ '555m',
+ '--wait-usable',
+ '--yes',
+ ])
+ const newStampId = (buyExecution.runnable as Buy).postageBatchId.toHex()
+ expect(newStampId).not.toBe(getStampOption()[1])
+
+ consoleMessages.length = 0
+
+ // 3. Reupload it
+ const reuploadBuilder = await invokeTestCli(['reupload', reference, '--stamp', newStampId])
+ expect(hasMessageContaining('Reuploaded successfully')).toBeTruthy()
+
+ // 4. Verify the history entry
+ const reuploadCommand = reuploadBuilder.runnable as Reupload
+ const historyPath = (reuploadCommand as any).commandConfig.getHistoryFilePath()
+ const items = JSON.parse(readFileSync(historyPath, 'utf-8')) as HistoryItem[]
+
+ const lastItem = items[items.length - 1]
+ expect(lastItem.reference).toBe(reference)
+ expect(lastItem.uploadType).toBe('reupload')
+ expect(lastItem.path).toBeNull()
+ expect(lastItem.stamp).toBe(newStampId)
+ })
+ },
+ { configFileName: 'reupload' },
+)
diff --git a/test/coverage/coverage-summary.json b/test/coverage/coverage-summary.json
index 2276a3d5..66241b41 100644
--- a/test/coverage/coverage-summary.json
+++ b/test/coverage/coverage-summary.json
@@ -1,114 +1,121 @@
-{"total": {"lines":{"total":2894,"covered":2217,"skipped":0,"pct":76.6},"statements":{"total":2915,"covered":2231,"skipped":0,"pct":76.53},"functions":{"total":345,"covered":274,"skipped":0,"pct":79.42},"branches":{"total":625,"covered":357,"skipped":0,"pct":57.12},"branchesTrue":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/application.ts": {"lines":{"total":2,"covered":0,"skipped":0,"pct":0},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":0,"skipped":0,"pct":0},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/config.ts": {"lines":{"total":33,"covered":32,"skipped":0,"pct":96.96},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":33,"covered":32,"skipped":0,"pct":96.96},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/curl.ts": {"lines":{"total":24,"covered":24,"skipped":0,"pct":100},"functions":{"total":7,"covered":7,"skipped":0,"pct":100},"statements":{"total":25,"covered":25,"skipped":0,"pct":100},"branches":{"total":13,"covered":12,"skipped":0,"pct":92.3}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/index.ts": {"lines":{"total":16,"covered":0,"skipped":0,"pct":0},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":16,"covered":0,"skipped":0,"pct":0},"branches":{"total":3,"covered":0,"skipped":0,"pct":0}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/printer.ts": {"lines":{"total":7,"covered":3,"skipped":0,"pct":42.85},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":3,"skipped":0,"pct":42.85},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/addresses.ts": {"lines":{"total":37,"covered":32,"skipped":0,"pct":86.48},"functions":{"total":6,"covered":5,"skipped":0,"pct":83.33},"statements":{"total":37,"covered":32,"skipped":0,"pct":86.48},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/download.ts": {"lines":{"total":35,"covered":28,"skipped":0,"pct":80},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":35,"covered":28,"skipped":0,"pct":80},"branches":{"total":11,"covered":4,"skipped":0,"pct":36.36}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/hash.ts": {"lines":{"total":10,"covered":8,"skipped":0,"pct":80},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":10,"covered":8,"skipped":0,"pct":80},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/quickstart.ts": {"lines":{"total":38,"covered":35,"skipped":0,"pct":92.1},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":38,"covered":35,"skipped":0,"pct":92.1},"branches":{"total":9,"covered":5,"skipped":0,"pct":55.55}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/status.ts": {"lines":{"total":79,"covered":79,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":79,"covered":79,"skipped":0,"pct":100},"branches":{"total":11,"covered":11,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/upload.ts": {"lines":{"total":223,"covered":157,"skipped":0,"pct":70.4},"functions":{"total":16,"covered":14,"skipped":0,"pct":87.5},"statements":{"total":224,"covered":158,"skipped":0,"pct":70.53},"branches":{"total":101,"covered":58,"skipped":0,"pct":57.42}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/cheque/cashout.ts": {"lines":{"total":32,"covered":30,"skipped":0,"pct":93.75},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":32,"covered":30,"skipped":0,"pct":93.75},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/cheque/cheque-command.ts": {"lines":{"total":25,"covered":21,"skipped":0,"pct":84},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":26,"covered":22,"skipped":0,"pct":84.61},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/cheque/deposit.ts": {"lines":{"total":16,"covered":16,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":16,"covered":16,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/cheque/index.ts": {"lines":{"total":9,"covered":9,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":9,"covered":9,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/cheque/list.ts": {"lines":{"total":13,"covered":13,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":14,"covered":14,"skipped":0,"pct":100},"branches":{"total":1,"covered":1,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/cheque/withdraw-all.ts": {"lines":{"total":15,"covered":6,"skipped":0,"pct":40},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":15,"covered":6,"skipped":0,"pct":40},"branches":{"total":1,"covered":0,"skipped":0,"pct":0}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/cheque/withdraw.ts": {"lines":{"total":16,"covered":16,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":16,"covered":16,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/feed/feed-command.ts": {"lines":{"total":49,"covered":49,"skipped":0,"pct":100},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":49,"covered":49,"skipped":0,"pct":100},"branches":{"total":13,"covered":13,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/feed/index.ts": {"lines":{"total":7,"covered":7,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":7,"covered":7,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/feed/print.ts": {"lines":{"total":80,"covered":26,"skipped":0,"pct":32.5},"functions":{"total":4,"covered":2,"skipped":0,"pct":50},"statements":{"total":81,"covered":26,"skipped":0,"pct":32.09},"branches":{"total":21,"covered":4,"skipped":0,"pct":19.04}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/feed/update.ts": {"lines":{"total":15,"covered":14,"skipped":0,"pct":93.33},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":15,"covered":14,"skipped":0,"pct":93.33},"branches":{"total":1,"covered":0,"skipped":0,"pct":0}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/feed/upload.ts": {"lines":{"total":28,"covered":26,"skipped":0,"pct":92.85},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":28,"covered":26,"skipped":0,"pct":92.85},"branches":{"total":4,"covered":3,"skipped":0,"pct":75}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/grantee/create.ts": {"lines":{"total":20,"covered":20,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":20,"covered":20,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/grantee/get.ts": {"lines":{"total":11,"covered":11,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":11,"covered":11,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/grantee/grantee-command.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/grantee/index.ts": {"lines":{"total":7,"covered":7,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":7,"covered":7,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/grantee/patch.ts": {"lines":{"total":21,"covered":21,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":21,"covered":21,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/history/disable.ts": {"lines":{"total":18,"covered":18,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":18,"covered":18,"skipped":0,"pct":100},"branches":{"total":10,"covered":10,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/history/enable.ts": {"lines":{"total":15,"covered":15,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":15,"covered":15,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/history/history-command.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/history/index.ts": {"lines":{"total":9,"covered":9,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":9,"covered":9,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/history/list.ts": {"lines":{"total":17,"covered":17,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":17,"covered":17,"skipped":0,"pct":100},"branches":{"total":1,"covered":1,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/history/show.ts": {"lines":{"total":28,"covered":26,"skipped":0,"pct":92.85},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":28,"covered":26,"skipped":0,"pct":92.85},"branches":{"total":5,"covered":4,"skipped":0,"pct":80}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/history/status.ts": {"lines":{"total":16,"covered":16,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":16,"covered":16,"skipped":0,"pct":100},"branches":{"total":3,"covered":3,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/identity/create.ts": {"lines":{"total":41,"covered":36,"skipped":0,"pct":87.8},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":41,"covered":36,"skipped":0,"pct":87.8},"branches":{"total":6,"covered":3,"skipped":0,"pct":50}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/identity/export.ts": {"lines":{"total":22,"covered":20,"skipped":0,"pct":90.9},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":22,"covered":20,"skipped":0,"pct":90.9},"branches":{"total":6,"covered":4,"skipped":0,"pct":66.66}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/identity/identity-command.ts": {"lines":{"total":27,"covered":21,"skipped":0,"pct":77.77},"functions":{"total":6,"covered":5,"skipped":0,"pct":83.33},"statements":{"total":28,"covered":21,"skipped":0,"pct":75},"branches":{"total":6,"covered":4,"skipped":0,"pct":66.66}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/identity/import.ts": {"lines":{"total":63,"covered":50,"skipped":0,"pct":79.36},"functions":{"total":7,"covered":7,"skipped":0,"pct":100},"statements":{"total":63,"covered":50,"skipped":0,"pct":79.36},"branches":{"total":16,"covered":8,"skipped":0,"pct":50}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/identity/index.ts": {"lines":{"total":11,"covered":11,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":11,"covered":11,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/identity/list.ts": {"lines":{"total":21,"covered":21,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":21,"covered":21,"skipped":0,"pct":100},"branches":{"total":3,"covered":3,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/identity/remove.ts": {"lines":{"total":21,"covered":15,"skipped":0,"pct":71.42},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":21,"covered":15,"skipped":0,"pct":71.42},"branches":{"total":3,"covered":0,"skipped":0,"pct":0}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/identity/rename.ts": {"lines":{"total":16,"covered":16,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":16,"covered":16,"skipped":0,"pct":100},"branches":{"total":1,"covered":1,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/identity/show.ts": {"lines":{"total":33,"covered":27,"skipped":0,"pct":81.81},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":33,"covered":27,"skipped":0,"pct":81.81},"branches":{"total":10,"covered":4,"skipped":0,"pct":40}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/manifest/add.ts": {"lines":{"total":39,"covered":38,"skipped":0,"pct":97.43},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":39,"covered":38,"skipped":0,"pct":97.43},"branches":{"total":11,"covered":10,"skipped":0,"pct":90.9}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/manifest/create.ts": {"lines":{"total":17,"covered":16,"skipped":0,"pct":94.11},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":17,"covered":16,"skipped":0,"pct":94.11},"branches":{"total":1,"covered":0,"skipped":0,"pct":0}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/manifest/download.ts": {"lines":{"total":50,"covered":49,"skipped":0,"pct":98},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":51,"covered":50,"skipped":0,"pct":98.03},"branches":{"total":20,"covered":19,"skipped":0,"pct":95}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/manifest/index.ts": {"lines":{"total":11,"covered":11,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":11,"covered":11,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/manifest/list.ts": {"lines":{"total":42,"covered":40,"skipped":0,"pct":95.23},"functions":{"total":5,"covered":4,"skipped":0,"pct":80},"statements":{"total":43,"covered":41,"skipped":0,"pct":95.34},"branches":{"total":10,"covered":9,"skipped":0,"pct":90}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/manifest/merge.ts": {"lines":{"total":25,"covered":24,"skipped":0,"pct":96},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":25,"covered":24,"skipped":0,"pct":96},"branches":{"total":1,"covered":0,"skipped":0,"pct":0}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/manifest/remove.ts": {"lines":{"total":29,"covered":26,"skipped":0,"pct":89.65},"functions":{"total":3,"covered":2,"skipped":0,"pct":66.66},"statements":{"total":29,"covered":26,"skipped":0,"pct":89.65},"branches":{"total":3,"covered":1,"skipped":0,"pct":33.33}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/manifest/sync.ts": {"lines":{"total":50,"covered":46,"skipped":0,"pct":92},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":50,"covered":46,"skipped":0,"pct":92},"branches":{"total":7,"covered":5,"skipped":0,"pct":71.42}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/pinning/index.ts": {"lines":{"total":9,"covered":9,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":9,"covered":9,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/pinning/list.ts": {"lines":{"total":14,"covered":14,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":14,"covered":14,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/pinning/pin.ts": {"lines":{"total":11,"covered":10,"skipped":0,"pct":90.9},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":11,"covered":10,"skipped":0,"pct":90.9},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/pinning/pinning-command.ts": {"lines":{"total":8,"covered":5,"skipped":0,"pct":62.5},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":8,"covered":5,"skipped":0,"pct":62.5},"branches":{"total":1,"covered":0,"skipped":0,"pct":0}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/pinning/reupload-all.ts": {"lines":{"total":23,"covered":21,"skipped":0,"pct":91.3},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":23,"covered":21,"skipped":0,"pct":91.3},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/pinning/reupload.ts": {"lines":{"total":17,"covered":9,"skipped":0,"pct":52.94},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":17,"covered":9,"skipped":0,"pct":52.94},"branches":{"total":1,"covered":0,"skipped":0,"pct":0}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/pinning/unpin.ts": {"lines":{"total":11,"covered":11,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":11,"covered":11,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/pss/index.ts": {"lines":{"total":7,"covered":7,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":7,"covered":7,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/pss/pss-command.ts": {"lines":{"total":8,"covered":8,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":8,"covered":8,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/pss/receive.ts": {"lines":{"total":24,"covered":18,"skipped":0,"pct":75},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":24,"covered":18,"skipped":0,"pct":75},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/pss/send.ts": {"lines":{"total":34,"covered":29,"skipped":0,"pct":85.29},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":34,"covered":29,"skipped":0,"pct":85.29},"branches":{"total":5,"covered":2,"skipped":0,"pct":40}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/pss/subscribe.ts": {"lines":{"total":18,"covered":8,"skipped":0,"pct":44.44},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":18,"covered":8,"skipped":0,"pct":44.44},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/root-command/command-config.ts": {"lines":{"total":40,"covered":34,"skipped":0,"pct":85},"functions":{"total":9,"covered":9,"skipped":0,"pct":100},"statements":{"total":43,"covered":36,"skipped":0,"pct":83.72},"branches":{"total":13,"covered":7,"skipped":0,"pct":53.84}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/root-command/command-log.ts": {"lines":{"total":78,"covered":60,"skipped":0,"pct":76.92},"functions":{"total":9,"covered":6,"skipped":0,"pct":66.66},"statements":{"total":78,"covered":60,"skipped":0,"pct":76.92},"branches":{"total":11,"covered":7,"skipped":0,"pct":63.63}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/root-command/index.ts": {"lines":{"total":53,"covered":49,"skipped":0,"pct":92.45},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":53,"covered":49,"skipped":0,"pct":92.45},"branches":{"total":13,"covered":9,"skipped":0,"pct":69.23}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/root-command/printer.ts": {"lines":{"total":9,"covered":9,"skipped":0,"pct":100},"functions":{"total":6,"covered":6,"skipped":0,"pct":100},"statements":{"total":9,"covered":9,"skipped":0,"pct":100},"branches":{"total":1,"covered":1,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/stake/deposit.ts": {"lines":{"total":39,"covered":30,"skipped":0,"pct":76.92},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":39,"covered":30,"skipped":0,"pct":76.92},"branches":{"total":16,"covered":10,"skipped":0,"pct":62.5}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/stake/index.ts": {"lines":{"total":8,"covered":8,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":8,"covered":8,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/stake/recover.ts": {"lines":{"total":22,"covered":10,"skipped":0,"pct":45.45},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":22,"covered":10,"skipped":0,"pct":45.45},"branches":{"total":1,"covered":0,"skipped":0,"pct":0}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/stake/status.ts": {"lines":{"total":11,"covered":11,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":11,"covered":11,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/stake/withdraw.ts": {"lines":{"total":25,"covered":7,"skipped":0,"pct":28},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":25,"covered":7,"skipped":0,"pct":28},"branches":{"total":10,"covered":0,"skipped":0,"pct":0}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/stamp/buy.ts": {"lines":{"total":65,"covered":51,"skipped":0,"pct":78.46},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":65,"covered":51,"skipped":0,"pct":78.46},"branches":{"total":20,"covered":14,"skipped":0,"pct":70}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/stamp/create.ts": {"lines":{"total":72,"covered":18,"skipped":0,"pct":25},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":72,"covered":18,"skipped":0,"pct":25},"branches":{"total":18,"covered":0,"skipped":0,"pct":0}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/stamp/dilute.ts": {"lines":{"total":27,"covered":12,"skipped":0,"pct":44.44},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":27,"covered":12,"skipped":0,"pct":44.44},"branches":{"total":5,"covered":0,"skipped":0,"pct":0}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/stamp/extend.ts": {"lines":{"total":51,"covered":10,"skipped":0,"pct":19.6},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":52,"covered":10,"skipped":0,"pct":19.23},"branches":{"total":13,"covered":0,"skipped":0,"pct":0}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/stamp/index.ts": {"lines":{"total":11,"covered":11,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":11,"covered":11,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/stamp/list.ts": {"lines":{"total":31,"covered":29,"skipped":0,"pct":93.54},"functions":{"total":6,"covered":5,"skipped":0,"pct":83.33},"statements":{"total":32,"covered":30,"skipped":0,"pct":93.75},"branches":{"total":11,"covered":9,"skipped":0,"pct":81.81}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/stamp/show.ts": {"lines":{"total":14,"covered":13,"skipped":0,"pct":92.85},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":14,"covered":13,"skipped":0,"pct":92.85},"branches":{"total":1,"covered":0,"skipped":0,"pct":0}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/stamp/stamp-command.ts": {"lines":{"total":7,"covered":3,"skipped":0,"pct":42.85},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":3,"skipped":0,"pct":42.85},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/stamp/topup.ts": {"lines":{"total":23,"covered":11,"skipped":0,"pct":47.82},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":23,"covered":11,"skipped":0,"pct":47.82},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/utility/cid.ts": {"lines":{"total":13,"covered":8,"skipped":0,"pct":61.53},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":13,"covered":8,"skipped":0,"pct":61.53},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/utility/create-batch.ts": {"lines":{"total":34,"covered":14,"skipped":0,"pct":41.17},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":35,"covered":14,"skipped":0,"pct":40},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/utility/index.ts": {"lines":{"total":22,"covered":14,"skipped":0,"pct":63.63},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":22,"covered":14,"skipped":0,"pct":63.63},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/utility/lock.ts": {"lines":{"total":11,"covered":7,"skipped":0,"pct":63.63},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":11,"covered":7,"skipped":0,"pct":63.63},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/utility/rchash.ts": {"lines":{"total":23,"covered":7,"skipped":0,"pct":30.43},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":23,"covered":7,"skipped":0,"pct":30.43},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/utility/redeem.ts": {"lines":{"total":51,"covered":12,"skipped":0,"pct":23.52},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":52,"covered":12,"skipped":0,"pct":23.07},"branches":{"total":11,"covered":0,"skipped":0,"pct":0}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/utility/unlock.ts": {"lines":{"total":12,"covered":7,"skipped":0,"pct":58.33},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":12,"covered":7,"skipped":0,"pct":58.33},"branches":{"total":1,"covered":0,"skipped":0,"pct":0}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/wallet/index.ts": {"lines":{"total":7,"covered":7,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":7,"covered":7,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/wallet/status.ts": {"lines":{"total":11,"covered":11,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":11,"covered":11,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/wallet/withdraw-bzz.ts": {"lines":{"total":21,"covered":19,"skipped":0,"pct":90.47},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":21,"covered":19,"skipped":0,"pct":90.47},"branches":{"total":6,"covered":3,"skipped":0,"pct":50}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/command/wallet/withdraw-dai.ts": {"lines":{"total":21,"covered":19,"skipped":0,"pct":90.47},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":21,"covered":19,"skipped":0,"pct":90.47},"branches":{"total":6,"covered":3,"skipped":0,"pct":50}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/service/version_checker.ts": {"lines":{"total":29,"covered":25,"skipped":0,"pct":86.2},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":29,"covered":25,"skipped":0,"pct":86.2},"branches":{"total":5,"covered":3,"skipped":0,"pct":60}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/service/history/index.ts": {"lines":{"total":21,"covered":19,"skipped":0,"pct":90.47},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":22,"covered":20,"skipped":0,"pct":90.9},"branches":{"total":1,"covered":1,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/service/identity/index.ts": {"lines":{"total":36,"covered":32,"skipped":0,"pct":88.88},"functions":{"total":7,"covered":7,"skipped":0,"pct":100},"statements":{"total":36,"covered":32,"skipped":0,"pct":88.88},"branches":{"total":9,"covered":6,"skipped":0,"pct":66.66}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/service/identity/types/identity.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/service/identity/types/index.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":3,"covered":3,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/service/stamp/index.ts": {"lines":{"total":32,"covered":30,"skipped":0,"pct":93.75},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":32,"covered":30,"skipped":0,"pct":93.75},"branches":{"total":11,"covered":9,"skipped":0,"pct":81.81}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/utils/bzz-address.ts": {"lines":{"total":30,"covered":24,"skipped":0,"pct":80},"functions":{"total":3,"covered":2,"skipped":0,"pct":66.66},"statements":{"total":30,"covered":24,"skipped":0,"pct":80},"branches":{"total":6,"covered":3,"skipped":0,"pct":50}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/utils/chainsync.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/utils/contracts.ts": {"lines":{"total":3,"covered":3,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":3,"covered":3,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/utils/error.ts": {"lines":{"total":44,"covered":39,"skipped":0,"pct":88.63},"functions":{"total":6,"covered":6,"skipped":0,"pct":100},"statements":{"total":44,"covered":39,"skipped":0,"pct":88.63},"branches":{"total":32,"covered":29,"skipped":0,"pct":90.62}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/utils/hex.ts": {"lines":{"total":14,"covered":10,"skipped":0,"pct":71.42},"functions":{"total":4,"covered":2,"skipped":0,"pct":50},"statements":{"total":16,"covered":11,"skipped":0,"pct":68.75},"branches":{"total":5,"covered":1,"skipped":0,"pct":20}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/utils/index.ts": {"lines":{"total":83,"covered":51,"skipped":0,"pct":61.44},"functions":{"total":18,"covered":11,"skipped":0,"pct":61.11},"statements":{"total":83,"covered":51,"skipped":0,"pct":61.44},"branches":{"total":25,"covered":14,"skipped":0,"pct":56}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/utils/message.ts": {"lines":{"total":12,"covered":3,"skipped":0,"pct":25},"functions":{"total":11,"covered":2,"skipped":0,"pct":18.18},"statements":{"total":12,"covered":3,"skipped":0,"pct":25},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/utils/mime.ts": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/utils/option.ts": {"lines":{"total":3,"covered":3,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":3,"covered":3,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/utils/rpc.ts": {"lines":{"total":37,"covered":9,"skipped":0,"pct":24.32},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":37,"covered":9,"skipped":0,"pct":24.32},"branches":{"total":5,"covered":0,"skipped":0,"pct":0}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/utils/spinner.ts": {"lines":{"total":15,"covered":15,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":15,"covered":15,"skipped":0,"pct":100},"branches":{"total":5,"covered":3,"skipped":0,"pct":60}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/utils/text.ts": {"lines":{"total":21,"covered":19,"skipped":0,"pct":90.47},"functions":{"total":9,"covered":7,"skipped":0,"pct":77.77},"statements":{"total":22,"covered":20,"skipped":0,"pct":90.9},"branches":{"total":5,"covered":4,"skipped":0,"pct":80}}
-,"/home/runner/work/swarm-cli/swarm-cli/src/utils/validate.ts": {"lines":{"total":11,"covered":9,"skipped":0,"pct":81.81},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":11,"covered":9,"skipped":0,"pct":81.81},"branches":{"total":6,"covered":5,"skipped":0,"pct":83.33}}
+{"total": {"lines":{"total":3147,"covered":2519,"skipped":0,"pct":80.04},"statements":{"total":3174,"covered":2537,"skipped":0,"pct":79.93},"functions":{"total":377,"covered":316,"skipped":0,"pct":83.81},"branches":{"total":694,"covered":403,"skipped":0,"pct":58.06},"branchesTrue":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/application.ts": {"lines":{"total":2,"covered":0,"skipped":0,"pct":0},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":0,"skipped":0,"pct":0},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/config.ts": {"lines":{"total":33,"covered":32,"skipped":0,"pct":96.96},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":33,"covered":32,"skipped":0,"pct":96.96},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/curl.ts": {"lines":{"total":24,"covered":24,"skipped":0,"pct":100},"functions":{"total":7,"covered":7,"skipped":0,"pct":100},"statements":{"total":25,"covered":25,"skipped":0,"pct":100},"branches":{"total":13,"covered":12,"skipped":0,"pct":92.3}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/index.ts": {"lines":{"total":16,"covered":0,"skipped":0,"pct":0},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":16,"covered":0,"skipped":0,"pct":0},"branches":{"total":3,"covered":0,"skipped":0,"pct":0}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/printer.ts": {"lines":{"total":7,"covered":3,"skipped":0,"pct":42.85},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":3,"skipped":0,"pct":42.85},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/addresses.ts": {"lines":{"total":37,"covered":32,"skipped":0,"pct":86.48},"functions":{"total":6,"covered":5,"skipped":0,"pct":83.33},"statements":{"total":37,"covered":32,"skipped":0,"pct":86.48},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/download.ts": {"lines":{"total":36,"covered":29,"skipped":0,"pct":80.55},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":36,"covered":29,"skipped":0,"pct":80.55},"branches":{"total":11,"covered":4,"skipped":0,"pct":36.36}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/hash.ts": {"lines":{"total":10,"covered":8,"skipped":0,"pct":80},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":10,"covered":8,"skipped":0,"pct":80},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/quickstart.ts": {"lines":{"total":38,"covered":35,"skipped":0,"pct":92.1},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":38,"covered":35,"skipped":0,"pct":92.1},"branches":{"total":9,"covered":5,"skipped":0,"pct":55.55}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/reupload.ts": {"lines":{"total":21,"covered":19,"skipped":0,"pct":90.47},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":21,"covered":19,"skipped":0,"pct":90.47},"branches":{"total":2,"covered":1,"skipped":0,"pct":50}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/status.ts": {"lines":{"total":81,"covered":77,"skipped":0,"pct":95.06},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":81,"covered":77,"skipped":0,"pct":95.06},"branches":{"total":6,"covered":5,"skipped":0,"pct":83.33}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/upload.ts": {"lines":{"total":266,"covered":206,"skipped":0,"pct":77.44},"functions":{"total":20,"covered":19,"skipped":0,"pct":95},"statements":{"total":267,"covered":207,"skipped":0,"pct":77.52},"branches":{"total":108,"covered":70,"skipped":0,"pct":64.81}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/access/access-command.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/access/grant.ts": {"lines":{"total":31,"covered":31,"skipped":0,"pct":100},"functions":{"total":3,"covered":2,"skipped":0,"pct":66.66},"statements":{"total":32,"covered":31,"skipped":0,"pct":96.87},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/access/history.ts": {"lines":{"total":31,"covered":28,"skipped":0,"pct":90.32},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":32,"covered":29,"skipped":0,"pct":90.62},"branches":{"total":5,"covered":4,"skipped":0,"pct":80}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/access/index.ts": {"lines":{"total":10,"covered":10,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":10,"covered":10,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/access/init.ts": {"lines":{"total":27,"covered":27,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":27,"covered":27,"skipped":0,"pct":100},"branches":{"total":3,"covered":3,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/access/list.ts": {"lines":{"total":15,"covered":15,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":15,"covered":15,"skipped":0,"pct":100},"branches":{"total":1,"covered":1,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/access/revoke.ts": {"lines":{"total":31,"covered":31,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":32,"covered":32,"skipped":0,"pct":100},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/access/show.ts": {"lines":{"total":23,"covered":23,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":24,"covered":24,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/cheque/cashout.ts": {"lines":{"total":32,"covered":20,"skipped":0,"pct":62.5},"functions":{"total":4,"covered":3,"skipped":0,"pct":75},"statements":{"total":32,"covered":20,"skipped":0,"pct":62.5},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/cheque/cheque-command.ts": {"lines":{"total":25,"covered":11,"skipped":0,"pct":44},"functions":{"total":5,"covered":3,"skipped":0,"pct":60},"statements":{"total":26,"covered":11,"skipped":0,"pct":42.3},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/cheque/deposit.ts": {"lines":{"total":16,"covered":16,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":16,"covered":16,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/cheque/index.ts": {"lines":{"total":9,"covered":9,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":9,"covered":9,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/cheque/list.ts": {"lines":{"total":13,"covered":10,"skipped":0,"pct":76.92},"functions":{"total":3,"covered":2,"skipped":0,"pct":66.66},"statements":{"total":14,"covered":10,"skipped":0,"pct":71.42},"branches":{"total":1,"covered":0,"skipped":0,"pct":0}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/cheque/withdraw-all.ts": {"lines":{"total":15,"covered":6,"skipped":0,"pct":40},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":15,"covered":6,"skipped":0,"pct":40},"branches":{"total":1,"covered":0,"skipped":0,"pct":0}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/cheque/withdraw.ts": {"lines":{"total":16,"covered":16,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":16,"covered":16,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/feed/feed-command.ts": {"lines":{"total":55,"covered":55,"skipped":0,"pct":100},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":55,"covered":55,"skipped":0,"pct":100},"branches":{"total":14,"covered":14,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/feed/index.ts": {"lines":{"total":7,"covered":7,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":7,"covered":7,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/feed/print.ts": {"lines":{"total":80,"covered":26,"skipped":0,"pct":32.5},"functions":{"total":4,"covered":2,"skipped":0,"pct":50},"statements":{"total":81,"covered":26,"skipped":0,"pct":32.09},"branches":{"total":21,"covered":4,"skipped":0,"pct":19.04}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/feed/update.ts": {"lines":{"total":15,"covered":14,"skipped":0,"pct":93.33},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":15,"covered":14,"skipped":0,"pct":93.33},"branches":{"total":1,"covered":0,"skipped":0,"pct":0}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/feed/upload.ts": {"lines":{"total":28,"covered":26,"skipped":0,"pct":92.85},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":28,"covered":26,"skipped":0,"pct":92.85},"branches":{"total":4,"covered":3,"skipped":0,"pct":75}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/history/disable.ts": {"lines":{"total":18,"covered":18,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":18,"covered":18,"skipped":0,"pct":100},"branches":{"total":10,"covered":10,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/history/enable.ts": {"lines":{"total":15,"covered":15,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":15,"covered":15,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/history/history-command.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/history/index.ts": {"lines":{"total":9,"covered":9,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":9,"covered":9,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/history/list.ts": {"lines":{"total":17,"covered":17,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":17,"covered":17,"skipped":0,"pct":100},"branches":{"total":1,"covered":1,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/history/show.ts": {"lines":{"total":28,"covered":26,"skipped":0,"pct":92.85},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":28,"covered":26,"skipped":0,"pct":92.85},"branches":{"total":5,"covered":4,"skipped":0,"pct":80}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/history/status.ts": {"lines":{"total":16,"covered":16,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":16,"covered":16,"skipped":0,"pct":100},"branches":{"total":3,"covered":3,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/identity/create.ts": {"lines":{"total":41,"covered":36,"skipped":0,"pct":87.8},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":41,"covered":36,"skipped":0,"pct":87.8},"branches":{"total":6,"covered":3,"skipped":0,"pct":50}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/identity/export.ts": {"lines":{"total":22,"covered":20,"skipped":0,"pct":90.9},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":22,"covered":20,"skipped":0,"pct":90.9},"branches":{"total":6,"covered":4,"skipped":0,"pct":66.66}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/identity/identity-command.ts": {"lines":{"total":27,"covered":21,"skipped":0,"pct":77.77},"functions":{"total":6,"covered":5,"skipped":0,"pct":83.33},"statements":{"total":28,"covered":21,"skipped":0,"pct":75},"branches":{"total":6,"covered":4,"skipped":0,"pct":66.66}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/identity/import.ts": {"lines":{"total":63,"covered":50,"skipped":0,"pct":79.36},"functions":{"total":7,"covered":7,"skipped":0,"pct":100},"statements":{"total":63,"covered":50,"skipped":0,"pct":79.36},"branches":{"total":16,"covered":8,"skipped":0,"pct":50}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/identity/index.ts": {"lines":{"total":11,"covered":11,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":11,"covered":11,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/identity/list.ts": {"lines":{"total":21,"covered":21,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":21,"covered":21,"skipped":0,"pct":100},"branches":{"total":3,"covered":3,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/identity/remove.ts": {"lines":{"total":21,"covered":15,"skipped":0,"pct":71.42},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":21,"covered":15,"skipped":0,"pct":71.42},"branches":{"total":3,"covered":0,"skipped":0,"pct":0}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/identity/rename.ts": {"lines":{"total":16,"covered":16,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":16,"covered":16,"skipped":0,"pct":100},"branches":{"total":1,"covered":1,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/identity/show.ts": {"lines":{"total":33,"covered":27,"skipped":0,"pct":81.81},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":33,"covered":27,"skipped":0,"pct":81.81},"branches":{"total":10,"covered":4,"skipped":0,"pct":40}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/manifest/add.ts": {"lines":{"total":39,"covered":38,"skipped":0,"pct":97.43},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":39,"covered":38,"skipped":0,"pct":97.43},"branches":{"total":11,"covered":10,"skipped":0,"pct":90.9}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/manifest/create.ts": {"lines":{"total":17,"covered":16,"skipped":0,"pct":94.11},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":17,"covered":16,"skipped":0,"pct":94.11},"branches":{"total":1,"covered":0,"skipped":0,"pct":0}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/manifest/download.ts": {"lines":{"total":47,"covered":46,"skipped":0,"pct":97.87},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":48,"covered":47,"skipped":0,"pct":97.91},"branches":{"total":20,"covered":19,"skipped":0,"pct":95}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/manifest/index.ts": {"lines":{"total":11,"covered":11,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":11,"covered":11,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/manifest/list.ts": {"lines":{"total":42,"covered":40,"skipped":0,"pct":95.23},"functions":{"total":5,"covered":4,"skipped":0,"pct":80},"statements":{"total":43,"covered":41,"skipped":0,"pct":95.34},"branches":{"total":10,"covered":9,"skipped":0,"pct":90}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/manifest/merge.ts": {"lines":{"total":25,"covered":24,"skipped":0,"pct":96},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":25,"covered":24,"skipped":0,"pct":96},"branches":{"total":1,"covered":0,"skipped":0,"pct":0}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/manifest/remove.ts": {"lines":{"total":29,"covered":26,"skipped":0,"pct":89.65},"functions":{"total":3,"covered":2,"skipped":0,"pct":66.66},"statements":{"total":29,"covered":26,"skipped":0,"pct":89.65},"branches":{"total":3,"covered":1,"skipped":0,"pct":33.33}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/manifest/sync.ts": {"lines":{"total":50,"covered":49,"skipped":0,"pct":98},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":50,"covered":49,"skipped":0,"pct":98},"branches":{"total":7,"covered":6,"skipped":0,"pct":85.71}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/pinning/index.ts": {"lines":{"total":9,"covered":9,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":9,"covered":9,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/pinning/list.ts": {"lines":{"total":14,"covered":14,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":14,"covered":14,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/pinning/pin.ts": {"lines":{"total":11,"covered":10,"skipped":0,"pct":90.9},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":11,"covered":10,"skipped":0,"pct":90.9},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/pinning/pinning-command.ts": {"lines":{"total":8,"covered":5,"skipped":0,"pct":62.5},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":8,"covered":5,"skipped":0,"pct":62.5},"branches":{"total":1,"covered":0,"skipped":0,"pct":0}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/pinning/reupload-all.ts": {"lines":{"total":23,"covered":21,"skipped":0,"pct":91.3},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":23,"covered":21,"skipped":0,"pct":91.3},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/pinning/unpin.ts": {"lines":{"total":11,"covered":11,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":11,"covered":11,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/pss/index.ts": {"lines":{"total":7,"covered":7,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":7,"covered":7,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/pss/pss-command.ts": {"lines":{"total":8,"covered":8,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":8,"covered":8,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/pss/receive.ts": {"lines":{"total":24,"covered":18,"skipped":0,"pct":75},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":24,"covered":18,"skipped":0,"pct":75},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/pss/send.ts": {"lines":{"total":34,"covered":29,"skipped":0,"pct":85.29},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":34,"covered":29,"skipped":0,"pct":85.29},"branches":{"total":5,"covered":2,"skipped":0,"pct":40}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/pss/subscribe.ts": {"lines":{"total":18,"covered":8,"skipped":0,"pct":44.44},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":18,"covered":8,"skipped":0,"pct":44.44},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/root-command/command-config.ts": {"lines":{"total":41,"covered":35,"skipped":0,"pct":85.36},"functions":{"total":10,"covered":10,"skipped":0,"pct":100},"statements":{"total":44,"covered":37,"skipped":0,"pct":84.09},"branches":{"total":15,"covered":8,"skipped":0,"pct":53.33}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/root-command/command-log.ts": {"lines":{"total":78,"covered":60,"skipped":0,"pct":76.92},"functions":{"total":9,"covered":6,"skipped":0,"pct":66.66},"statements":{"total":78,"covered":60,"skipped":0,"pct":76.92},"branches":{"total":11,"covered":7,"skipped":0,"pct":63.63}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/root-command/index.ts": {"lines":{"total":52,"covered":51,"skipped":0,"pct":98.07},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":52,"covered":51,"skipped":0,"pct":98.07},"branches":{"total":11,"covered":10,"skipped":0,"pct":90.9}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/root-command/printer.ts": {"lines":{"total":9,"covered":9,"skipped":0,"pct":100},"functions":{"total":6,"covered":6,"skipped":0,"pct":100},"statements":{"total":9,"covered":9,"skipped":0,"pct":100},"branches":{"total":1,"covered":1,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/stake/deposit.ts": {"lines":{"total":45,"covered":17,"skipped":0,"pct":37.77},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":45,"covered":17,"skipped":0,"pct":37.77},"branches":{"total":20,"covered":2,"skipped":0,"pct":10}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/stake/index.ts": {"lines":{"total":8,"covered":8,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":8,"covered":8,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/stake/recover.ts": {"lines":{"total":22,"covered":10,"skipped":0,"pct":45.45},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":22,"covered":10,"skipped":0,"pct":45.45},"branches":{"total":1,"covered":0,"skipped":0,"pct":0}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/stake/status.ts": {"lines":{"total":11,"covered":7,"skipped":0,"pct":63.63},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":11,"covered":7,"skipped":0,"pct":63.63},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/stake/withdraw.ts": {"lines":{"total":25,"covered":7,"skipped":0,"pct":28},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":25,"covered":7,"skipped":0,"pct":28},"branches":{"total":10,"covered":0,"skipped":0,"pct":0}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/stamp/buy.ts": {"lines":{"total":64,"covered":50,"skipped":0,"pct":78.12},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":64,"covered":50,"skipped":0,"pct":78.12},"branches":{"total":18,"covered":12,"skipped":0,"pct":66.66}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/stamp/create.ts": {"lines":{"total":72,"covered":18,"skipped":0,"pct":25},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":72,"covered":18,"skipped":0,"pct":25},"branches":{"total":16,"covered":0,"skipped":0,"pct":0}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/stamp/dilute.ts": {"lines":{"total":27,"covered":12,"skipped":0,"pct":44.44},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":27,"covered":12,"skipped":0,"pct":44.44},"branches":{"total":5,"covered":0,"skipped":0,"pct":0}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/stamp/extend.ts": {"lines":{"total":51,"covered":10,"skipped":0,"pct":19.6},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":52,"covered":10,"skipped":0,"pct":19.23},"branches":{"total":13,"covered":0,"skipped":0,"pct":0}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/stamp/index.ts": {"lines":{"total":11,"covered":11,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":11,"covered":11,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/stamp/list.ts": {"lines":{"total":31,"covered":29,"skipped":0,"pct":93.54},"functions":{"total":6,"covered":5,"skipped":0,"pct":83.33},"statements":{"total":32,"covered":30,"skipped":0,"pct":93.75},"branches":{"total":11,"covered":9,"skipped":0,"pct":81.81}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/stamp/show.ts": {"lines":{"total":14,"covered":13,"skipped":0,"pct":92.85},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":14,"covered":13,"skipped":0,"pct":92.85},"branches":{"total":1,"covered":0,"skipped":0,"pct":0}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/stamp/stamp-command.ts": {"lines":{"total":7,"covered":3,"skipped":0,"pct":42.85},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":3,"skipped":0,"pct":42.85},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/stamp/topup.ts": {"lines":{"total":23,"covered":11,"skipped":0,"pct":47.82},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":23,"covered":11,"skipped":0,"pct":47.82},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/utility/cid.ts": {"lines":{"total":13,"covered":8,"skipped":0,"pct":61.53},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":13,"covered":8,"skipped":0,"pct":61.53},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/utility/create-batch.ts": {"lines":{"total":38,"covered":35,"skipped":0,"pct":92.1},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":39,"covered":36,"skipped":0,"pct":92.3},"branches":{"total":5,"covered":2,"skipped":0,"pct":40}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/utility/index.ts": {"lines":{"total":22,"covered":14,"skipped":0,"pct":63.63},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":22,"covered":14,"skipped":0,"pct":63.63},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/utility/lock.ts": {"lines":{"total":11,"covered":7,"skipped":0,"pct":63.63},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":11,"covered":7,"skipped":0,"pct":63.63},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/utility/rchash.ts": {"lines":{"total":27,"covered":27,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":27,"covered":27,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/utility/redeem.ts": {"lines":{"total":51,"covered":43,"skipped":0,"pct":84.31},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":52,"covered":44,"skipped":0,"pct":84.61},"branches":{"total":11,"covered":6,"skipped":0,"pct":54.54}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/utility/unlock.ts": {"lines":{"total":12,"covered":7,"skipped":0,"pct":58.33},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":12,"covered":7,"skipped":0,"pct":58.33},"branches":{"total":1,"covered":0,"skipped":0,"pct":0}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/wallet/index.ts": {"lines":{"total":7,"covered":7,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":7,"covered":7,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/wallet/status.ts": {"lines":{"total":11,"covered":8,"skipped":0,"pct":72.72},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":11,"covered":8,"skipped":0,"pct":72.72},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/wallet/withdraw-bzz.ts": {"lines":{"total":21,"covered":17,"skipped":0,"pct":80.95},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":21,"covered":17,"skipped":0,"pct":80.95},"branches":{"total":6,"covered":3,"skipped":0,"pct":50}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/command/wallet/withdraw-dai.ts": {"lines":{"total":21,"covered":17,"skipped":0,"pct":80.95},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":21,"covered":17,"skipped":0,"pct":80.95},"branches":{"total":6,"covered":3,"skipped":0,"pct":50}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/service/version_checker.ts": {"lines":{"total":29,"covered":25,"skipped":0,"pct":86.2},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":29,"covered":25,"skipped":0,"pct":86.2},"branches":{"total":5,"covered":3,"skipped":0,"pct":60}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/service/access/index.ts": {"lines":{"total":31,"covered":29,"skipped":0,"pct":93.54},"functions":{"total":8,"covered":7,"skipped":0,"pct":87.5},"statements":{"total":33,"covered":30,"skipped":0,"pct":90.9},"branches":{"total":6,"covered":5,"skipped":0,"pct":83.33}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/service/access/types/history-event.ts": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/service/history/index.ts": {"lines":{"total":21,"covered":19,"skipped":0,"pct":90.47},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":22,"covered":20,"skipped":0,"pct":90.9},"branches":{"total":1,"covered":1,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/service/identity/index.ts": {"lines":{"total":36,"covered":32,"skipped":0,"pct":88.88},"functions":{"total":7,"covered":7,"skipped":0,"pct":100},"statements":{"total":36,"covered":32,"skipped":0,"pct":88.88},"branches":{"total":9,"covered":6,"skipped":0,"pct":66.66}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/service/identity/types/identity.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/service/identity/types/index.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":3,"covered":3,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/service/stamp/index.ts": {"lines":{"total":32,"covered":30,"skipped":0,"pct":93.75},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":32,"covered":30,"skipped":0,"pct":93.75},"branches":{"total":11,"covered":8,"skipped":0,"pct":72.72}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/utils/bzz-address.ts": {"lines":{"total":30,"covered":24,"skipped":0,"pct":80},"functions":{"total":3,"covered":2,"skipped":0,"pct":66.66},"statements":{"total":30,"covered":24,"skipped":0,"pct":80},"branches":{"total":6,"covered":3,"skipped":0,"pct":50}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/utils/chainsync.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/utils/contracts.ts": {"lines":{"total":6,"covered":6,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":6,"covered":6,"skipped":0,"pct":100},"branches":{"total":6,"covered":3,"skipped":0,"pct":50}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/utils/error.ts": {"lines":{"total":51,"covered":40,"skipped":0,"pct":78.43},"functions":{"total":7,"covered":6,"skipped":0,"pct":85.71},"statements":{"total":51,"covered":40,"skipped":0,"pct":78.43},"branches":{"total":49,"covered":30,"skipped":0,"pct":61.22}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/utils/hex.ts": {"lines":{"total":14,"covered":10,"skipped":0,"pct":71.42},"functions":{"total":4,"covered":2,"skipped":0,"pct":50},"statements":{"total":16,"covered":11,"skipped":0,"pct":68.75},"branches":{"total":5,"covered":1,"skipped":0,"pct":20}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/utils/index.ts": {"lines":{"total":83,"covered":65,"skipped":0,"pct":78.31},"functions":{"total":18,"covered":15,"skipped":0,"pct":83.33},"statements":{"total":83,"covered":65,"skipped":0,"pct":78.31},"branches":{"total":25,"covered":14,"skipped":0,"pct":56}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/utils/message.ts": {"lines":{"total":12,"covered":3,"skipped":0,"pct":25},"functions":{"total":11,"covered":2,"skipped":0,"pct":18.18},"statements":{"total":12,"covered":3,"skipped":0,"pct":25},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/utils/mime.ts": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/utils/option.ts": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/utils/qr.ts": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/utils/rpc.ts": {"lines":{"total":50,"covered":43,"skipped":0,"pct":86},"functions":{"total":6,"covered":6,"skipped":0,"pct":100},"statements":{"total":50,"covered":43,"skipped":0,"pct":86},"branches":{"total":14,"covered":7,"skipped":0,"pct":50}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/utils/spinner.ts": {"lines":{"total":15,"covered":15,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":15,"covered":15,"skipped":0,"pct":100},"branches":{"total":5,"covered":3,"skipped":0,"pct":60}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/utils/text.ts": {"lines":{"total":27,"covered":25,"skipped":0,"pct":92.59},"functions":{"total":12,"covered":10,"skipped":0,"pct":83.33},"statements":{"total":28,"covered":26,"skipped":0,"pct":92.85},"branches":{"total":5,"covered":4,"skipped":0,"pct":80}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/utils/url.ts": {"lines":{"total":6,"covered":6,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":6,"covered":6,"skipped":0,"pct":100},"branches":{"total":1,"covered":1,"skipped":0,"pct":100}}
+,"/home/riki/Desktop/Programming/swarm-cli/src/utils/validate.ts": {"lines":{"total":11,"covered":9,"skipped":0,"pct":81.81},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":11,"covered":9,"skipped":0,"pct":81.81},"branches":{"total":6,"covered":5,"skipped":0,"pct":83.33}}
}