@peerbit/shared-fs-cli 0.3.0 → 0.5.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/lib/esm/index.js CHANGED
@@ -574,6 +574,131 @@ export const runCli = async (args = hideBin(process.argv)) => {
574
574
  finally {
575
575
  await stopPeerbitForCli(peerbit);
576
576
  }
577
+ })
578
+ .command("gc <address>", "reclaim storage: retire old versions, compact naming history, delete unreferenced chunks", (command) => command
579
+ .positional("address", {
580
+ type: "string",
581
+ demandOption: true,
582
+ })
583
+ .option("keep-versions", {
584
+ type: "number",
585
+ description: "Newest versions always kept per file.",
586
+ })
587
+ .option("retention-days", {
588
+ type: "number",
589
+ description: "Versions younger than this are always kept.",
590
+ })
591
+ .option("grace-days", {
592
+ type: "number",
593
+ description: "Nothing is retired unless superseded for this long.",
594
+ })
595
+ .option("chunk-grace-hours", {
596
+ type: "number",
597
+ description: "Unreferenced chunks must be at least this old.",
598
+ })
599
+ .option("naming-grace-days", {
600
+ type: "number",
601
+ description: "Naming history compacts only when settled this long.",
602
+ })
603
+ .option("settle-seconds", {
604
+ type: "number",
605
+ description: "Settle wait before re-validating the plan.",
606
+ })
607
+ .option("min-orphan-span-minutes", {
608
+ type: "number",
609
+ description: "Span between recording and executing chunk/purge candidates.",
610
+ })
611
+ .option("scope", {
612
+ type: "string",
613
+ description: "Restrict version/naming retirement to this path prefix.",
614
+ })
615
+ .option("immediate-sweep", {
616
+ type: "boolean",
617
+ default: false,
618
+ description: "Collapse the two-run safety barrier. Only when this replica is known warm.",
619
+ })
620
+ .option("dry-run", {
621
+ type: "boolean",
622
+ default: false,
623
+ description: "Plan and report without deleting anything.",
624
+ })
625
+ .option("json", {
626
+ type: "boolean",
627
+ default: false,
628
+ description: "Print machine-readable JSON.",
629
+ }), async (argv) => {
630
+ if (argv.replicate === false) {
631
+ console.error(chalk.red("gc requires a full replica; --no-replicate is not allowed."));
632
+ process.exitCode = 1;
633
+ return;
634
+ }
635
+ const directory = resolveDirectory(argv.directory);
636
+ const peerbit = await Peerbit.create({ directory });
637
+ try {
638
+ await connectToNetwork(peerbit, argv.peer, {
639
+ bootstrap: true,
640
+ });
641
+ const fsHandle = await openCliFs(peerbit, {
642
+ address: argv.address,
643
+ machineLabel: argv.machine,
644
+ replicate: true,
645
+ });
646
+ const report = await fsHandle.collectGarbage({
647
+ keepVersions: argv.keepVersions,
648
+ retentionMs: argv.retentionDays
649
+ ? argv.retentionDays * 24 * 60 * 60 * 1000
650
+ : undefined,
651
+ graceMs: argv.graceDays
652
+ ? argv.graceDays * 24 * 60 * 60 * 1000
653
+ : undefined,
654
+ chunkGraceMs: argv.chunkGraceHours
655
+ ? argv.chunkGraceHours * 60 * 60 * 1000
656
+ : undefined,
657
+ namingGraceMs: argv.namingGraceDays
658
+ ? argv.namingGraceDays * 24 * 60 * 60 * 1000
659
+ : undefined,
660
+ settleMs: argv.settleSeconds
661
+ ? argv.settleSeconds * 1000
662
+ : undefined,
663
+ minOrphanSpanMs: argv.minOrphanSpanMinutes
664
+ ? argv.minOrphanSpanMinutes * 60 * 1000
665
+ : undefined,
666
+ scope: argv.scope,
667
+ chunkSweep: argv.immediateSweep
668
+ ? "immediate"
669
+ : "ledger",
670
+ dryRun: argv.dryRun,
671
+ });
672
+ if (argv.json) {
673
+ console.log(JSON.stringify(report, (key, value) => typeof value === "bigint"
674
+ ? value.toString()
675
+ : value, 2));
676
+ }
677
+ else {
678
+ const mode = report.dryRun ? " (dry run)" : "";
679
+ console.log(chalk.bold(`gc report${mode}`));
680
+ console.log(`retired versions: ${report.retiredVersions}`);
681
+ console.log(`compacted naming events: ${report.compactedNamingEvents}`);
682
+ console.log(`purged nodes: ${report.purgedNodes}`);
683
+ console.log(`deleted chunks: ${report.deletedChunks} (${report.reclaimedChunkBytes} bytes)`);
684
+ console.log(`healed chunks: ${report.healedChunks}`);
685
+ console.log(`conflicted nodes kept: ${report.conflictedNodes}`);
686
+ if (report.chunkCandidatesRecorded > 0 ||
687
+ report.purgeCandidatesRecorded > 0) {
688
+ console.log(chalk.yellow(`candidates recorded: ${report.chunkCandidatesRecorded} chunk(s), ${report.purgeCandidatesRecorded} purge(s) — run gc again after the span to reclaim them.`));
689
+ }
690
+ for (const warning of report.warnings) {
691
+ console.log(chalk.yellow(`warning: ${warning}`));
692
+ }
693
+ }
694
+ if (report.damagedNodeIds.length > 0) {
695
+ console.error(chalk.red(`damaged nodes (missing unrecoverable chunks): ${report.damagedNodeIds.join(", ")}`));
696
+ process.exitCode = 1;
697
+ }
698
+ }
699
+ finally {
700
+ await stopPeerbitForCli(peerbit);
701
+ }
577
702
  })
578
703
  .command("unmount <mountpoint>", "unmount a native shared filesystem mountpoint", (command) => command.positional("mountpoint", {
579
704
  type: "string",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerbit/shared-fs-cli",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "author": "Peerbit contributors",
5
5
  "repository": "https://github.com/dao-xyz/peerbit-examples",
6
6
  "license": "Apache-2.0",
@@ -36,7 +36,7 @@
36
36
  "@multiformats/multiaddr": "^13.0.1",
37
37
  "chalk": "^5.3.0",
38
38
  "yargs": "^17.7.2",
39
- "@peerbit/shared-fs": "0.3.0"
39
+ "@peerbit/shared-fs": "0.5.0"
40
40
  },
41
41
  "devDependencies": {
42
42
  "typescript": "^5.6.3"
package/src/index.ts CHANGED
@@ -774,6 +774,177 @@ export const runCli = async (args = hideBin(process.argv)) => {
774
774
  }
775
775
  }
776
776
  )
777
+ .command(
778
+ "gc <address>",
779
+ "reclaim storage: retire old versions, compact naming history, delete unreferenced chunks",
780
+ (command) =>
781
+ command
782
+ .positional("address", {
783
+ type: "string",
784
+ demandOption: true,
785
+ })
786
+ .option("keep-versions", {
787
+ type: "number",
788
+ description: "Newest versions always kept per file.",
789
+ })
790
+ .option("retention-days", {
791
+ type: "number",
792
+ description:
793
+ "Versions younger than this are always kept.",
794
+ })
795
+ .option("grace-days", {
796
+ type: "number",
797
+ description:
798
+ "Nothing is retired unless superseded for this long.",
799
+ })
800
+ .option("chunk-grace-hours", {
801
+ type: "number",
802
+ description:
803
+ "Unreferenced chunks must be at least this old.",
804
+ })
805
+ .option("naming-grace-days", {
806
+ type: "number",
807
+ description:
808
+ "Naming history compacts only when settled this long.",
809
+ })
810
+ .option("settle-seconds", {
811
+ type: "number",
812
+ description:
813
+ "Settle wait before re-validating the plan.",
814
+ })
815
+ .option("min-orphan-span-minutes", {
816
+ type: "number",
817
+ description:
818
+ "Span between recording and executing chunk/purge candidates.",
819
+ })
820
+ .option("scope", {
821
+ type: "string",
822
+ description:
823
+ "Restrict version/naming retirement to this path prefix.",
824
+ })
825
+ .option("immediate-sweep", {
826
+ type: "boolean",
827
+ default: false,
828
+ description:
829
+ "Collapse the two-run safety barrier. Only when this replica is known warm.",
830
+ })
831
+ .option("dry-run", {
832
+ type: "boolean",
833
+ default: false,
834
+ description:
835
+ "Plan and report without deleting anything.",
836
+ })
837
+ .option("json", {
838
+ type: "boolean",
839
+ default: false,
840
+ description: "Print machine-readable JSON.",
841
+ }),
842
+ async (argv) => {
843
+ if (argv.replicate === false) {
844
+ console.error(
845
+ chalk.red(
846
+ "gc requires a full replica; --no-replicate is not allowed."
847
+ )
848
+ );
849
+ process.exitCode = 1;
850
+ return;
851
+ }
852
+ const directory = resolveDirectory(argv.directory);
853
+ const peerbit = await Peerbit.create({ directory });
854
+ try {
855
+ await connectToNetwork(peerbit, argv.peer, {
856
+ bootstrap: true,
857
+ });
858
+ const fsHandle = await openCliFs(peerbit, {
859
+ address: argv.address,
860
+ machineLabel: argv.machine,
861
+ replicate: true,
862
+ });
863
+ const report = await fsHandle.collectGarbage({
864
+ keepVersions: argv.keepVersions,
865
+ retentionMs: argv.retentionDays
866
+ ? argv.retentionDays * 24 * 60 * 60 * 1000
867
+ : undefined,
868
+ graceMs: argv.graceDays
869
+ ? argv.graceDays * 24 * 60 * 60 * 1000
870
+ : undefined,
871
+ chunkGraceMs: argv.chunkGraceHours
872
+ ? argv.chunkGraceHours * 60 * 60 * 1000
873
+ : undefined,
874
+ namingGraceMs: argv.namingGraceDays
875
+ ? argv.namingGraceDays * 24 * 60 * 60 * 1000
876
+ : undefined,
877
+ settleMs: argv.settleSeconds
878
+ ? argv.settleSeconds * 1000
879
+ : undefined,
880
+ minOrphanSpanMs: argv.minOrphanSpanMinutes
881
+ ? argv.minOrphanSpanMinutes * 60 * 1000
882
+ : undefined,
883
+ scope: argv.scope,
884
+ chunkSweep: argv.immediateSweep
885
+ ? "immediate"
886
+ : "ledger",
887
+ dryRun: argv.dryRun,
888
+ });
889
+ if (argv.json) {
890
+ console.log(
891
+ JSON.stringify(
892
+ report,
893
+ (key, value) =>
894
+ typeof value === "bigint"
895
+ ? value.toString()
896
+ : value,
897
+ 2
898
+ )
899
+ );
900
+ } else {
901
+ const mode = report.dryRun ? " (dry run)" : "";
902
+ console.log(chalk.bold(`gc report${mode}`));
903
+ console.log(
904
+ `retired versions: ${report.retiredVersions}`
905
+ );
906
+ console.log(
907
+ `compacted naming events: ${report.compactedNamingEvents}`
908
+ );
909
+ console.log(
910
+ `purged nodes: ${report.purgedNodes}`
911
+ );
912
+ console.log(
913
+ `deleted chunks: ${report.deletedChunks} (${report.reclaimedChunkBytes} bytes)`
914
+ );
915
+ console.log(
916
+ `healed chunks: ${report.healedChunks}`
917
+ );
918
+ console.log(
919
+ `conflicted nodes kept: ${report.conflictedNodes}`
920
+ );
921
+ if (
922
+ report.chunkCandidatesRecorded > 0 ||
923
+ report.purgeCandidatesRecorded > 0
924
+ ) {
925
+ console.log(
926
+ chalk.yellow(
927
+ `candidates recorded: ${report.chunkCandidatesRecorded} chunk(s), ${report.purgeCandidatesRecorded} purge(s) — run gc again after the span to reclaim them.`
928
+ )
929
+ );
930
+ }
931
+ for (const warning of report.warnings) {
932
+ console.log(chalk.yellow(`warning: ${warning}`));
933
+ }
934
+ }
935
+ if (report.damagedNodeIds.length > 0) {
936
+ console.error(
937
+ chalk.red(
938
+ `damaged nodes (missing unrecoverable chunks): ${report.damagedNodeIds.join(", ")}`
939
+ )
940
+ );
941
+ process.exitCode = 1;
942
+ }
943
+ } finally {
944
+ await stopPeerbitForCli(peerbit);
945
+ }
946
+ }
947
+ )
777
948
  .command(
778
949
  "unmount <mountpoint>",
779
950
  "unmount a native shared filesystem mountpoint",