@atproto/repo 0.3.7 → 0.3.9-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/block-map.d.ts +1 -0
  3. package/dist/block-map.d.ts.map +1 -0
  4. package/dist/block-map.js +119 -0
  5. package/dist/block-map.js.map +1 -0
  6. package/dist/cid-set.d.ts +1 -0
  7. package/dist/cid-set.d.ts.map +1 -0
  8. package/dist/cid-set.js +48 -0
  9. package/dist/cid-set.js.map +1 -0
  10. package/dist/data-diff.d.ts +1 -0
  11. package/dist/data-diff.d.ts.map +1 -0
  12. package/dist/data-diff.js +134 -0
  13. package/dist/data-diff.js.map +1 -0
  14. package/dist/error.d.ts +1 -0
  15. package/dist/error.d.ts.map +1 -0
  16. package/dist/error.js +76 -0
  17. package/dist/error.js.map +1 -0
  18. package/dist/index.d.ts +1 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +26 -27225
  21. package/dist/index.js.map +1 -7
  22. package/dist/logger.d.ts +1 -0
  23. package/dist/logger.d.ts.map +1 -0
  24. package/dist/logger.js +7 -0
  25. package/dist/logger.js.map +1 -0
  26. package/dist/mst/diff.d.ts +1 -0
  27. package/dist/mst/diff.d.ts.map +1 -0
  28. package/dist/mst/diff.js +120 -0
  29. package/dist/mst/diff.js.map +1 -0
  30. package/dist/mst/index.d.ts +1 -0
  31. package/dist/mst/index.d.ts.map +1 -0
  32. package/dist/mst/index.js +34 -0
  33. package/dist/mst/index.js.map +1 -0
  34. package/dist/mst/mst.d.ts +6 -5
  35. package/dist/mst/mst.d.ts.map +1 -0
  36. package/dist/mst/mst.js +770 -0
  37. package/dist/mst/mst.js.map +1 -0
  38. package/dist/mst/util.d.ts +1 -0
  39. package/dist/mst/util.d.ts.map +1 -0
  40. package/dist/mst/util.js +167 -0
  41. package/dist/mst/util.js.map +1 -0
  42. package/dist/mst/walker.d.ts +1 -0
  43. package/dist/mst/walker.d.ts.map +1 -0
  44. package/dist/mst/walker.js +123 -0
  45. package/dist/mst/walker.js.map +1 -0
  46. package/dist/parse.d.ts +1 -0
  47. package/dist/parse.d.ts.map +1 -0
  48. package/dist/parse.js +35 -0
  49. package/dist/parse.js.map +1 -0
  50. package/dist/readable-repo.d.ts +1 -0
  51. package/dist/readable-repo.d.ts.map +1 -0
  52. package/dist/readable-repo.js +117 -0
  53. package/dist/readable-repo.js.map +1 -0
  54. package/dist/repo.d.ts +1 -0
  55. package/dist/repo.d.ts.map +1 -0
  56. package/dist/repo.js +190 -0
  57. package/dist/repo.js.map +1 -0
  58. package/dist/storage/index.d.ts +1 -0
  59. package/dist/storage/index.d.ts.map +1 -0
  60. package/dist/storage/index.js +21 -0
  61. package/dist/storage/index.js.map +1 -0
  62. package/dist/storage/memory-blockstore.d.ts +1 -0
  63. package/dist/storage/memory-blockstore.d.ts.map +1 -0
  64. package/dist/storage/memory-blockstore.js +80 -0
  65. package/dist/storage/memory-blockstore.js.map +1 -0
  66. package/dist/storage/readable-blockstore.d.ts +1 -0
  67. package/dist/storage/readable-blockstore.d.ts.map +1 -0
  68. package/dist/storage/readable-blockstore.js +66 -0
  69. package/dist/storage/readable-blockstore.js.map +1 -0
  70. package/dist/storage/sync-storage.d.ts +1 -0
  71. package/dist/storage/sync-storage.d.ts.map +1 -0
  72. package/dist/storage/sync-storage.js +46 -0
  73. package/dist/storage/sync-storage.js.map +1 -0
  74. package/dist/storage/types.d.ts +1 -0
  75. package/dist/storage/types.d.ts.map +1 -0
  76. package/dist/storage/types.js +7 -0
  77. package/dist/storage/types.js.map +1 -0
  78. package/dist/sync/consumer.d.ts +1 -0
  79. package/dist/sync/consumer.d.ts.map +1 -0
  80. package/dist/sync/consumer.js +178 -0
  81. package/dist/sync/consumer.js.map +1 -0
  82. package/dist/sync/index.d.ts +1 -0
  83. package/dist/sync/index.d.ts.map +1 -0
  84. package/dist/sync/index.js +19 -0
  85. package/dist/sync/index.js.map +1 -0
  86. package/dist/sync/provider.d.ts +1 -0
  87. package/dist/sync/provider.d.ts.map +1 -0
  88. package/dist/sync/provider.js +67 -0
  89. package/dist/sync/provider.js.map +1 -0
  90. package/dist/types.d.ts +22 -19
  91. package/dist/types.d.ts.map +1 -0
  92. package/dist/types.js +62 -0
  93. package/dist/types.js.map +1 -0
  94. package/dist/util.d.ts +2 -1
  95. package/dist/util.d.ts.map +1 -0
  96. package/dist/util.js +219 -0
  97. package/dist/util.js.map +1 -0
  98. package/jest.config.js +3 -3
  99. package/package.json +11 -14
  100. package/src/mst/mst.ts +1 -1
  101. package/src/types.ts +4 -2
  102. package/src/util.ts +1 -1
  103. package/tests/_util.ts +4 -0
  104. package/tsconfig.build.json +6 -2
  105. package/tsconfig.json +3 -11
  106. package/tsconfig.tests.json +7 -0
  107. package/babel.config.js +0 -1
  108. package/build.js +0 -14
  109. package/jest.bench.config.js +0 -8
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # @atproto/repo
2
2
 
3
+ ## 0.3.9-next.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Overhaul of package builds, no longer bundling deps.
8
+
9
+ - Updated dependencies []:
10
+ - @atproto/common-web@0.2.4-next.0
11
+ - @atproto/lexicon@0.3.3-next.0
12
+ - @atproto/common@0.3.4-next.0
13
+ - @atproto/crypto@0.3.1-next.0
14
+
15
+ ## 0.3.8
16
+
17
+ ### Patch Changes
18
+
19
+ - Updated dependencies [[`0c815b964`](https://github.com/bluesky-social/atproto/commit/0c815b964c030aa0f277c40bf9786f130dc320f4)]:
20
+ - @atproto/syntax@0.2.0
21
+ - @atproto/lexicon@0.3.2
22
+
3
23
  ## 0.3.7
4
24
 
5
25
  ### Patch Changes
@@ -25,3 +25,4 @@ type Entry = {
25
25
  bytes: Uint8Array;
26
26
  };
27
27
  export default BlockMap;
28
+ //# sourceMappingURL=block-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block-map.d.ts","sourceRoot":"","sources":["../src/block-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAGtC,qBAAa,QAAQ;IACnB,OAAO,CAAC,GAAG,CAAqC;IAE1C,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAMxC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU;IAI/B,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,GAAG,SAAS;IAIrC,MAAM,CAAC,GAAG,EAAE,GAAG;IAIf,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG;QAAE,MAAM,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,GAAG,EAAE,CAAA;KAAE;IAc1D,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO;IAItB,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAIxD,OAAO,IAAI,KAAK,EAAE;IAQlB,IAAI,IAAI,GAAG,EAAE;IAIb,MAAM,CAAC,KAAK,EAAE,QAAQ;IAMtB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,QAAQ,IAAI,MAAM,CAMrB;IAED,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO;CAajC;AAED,KAAK,KAAK,GAAG;IACX,GAAG,EAAE,GAAG,CAAA;IACR,KAAK,EAAE,UAAU,CAAA;CAClB,CAAA;AAED,eAAe,QAAQ,CAAA"}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.BlockMap = void 0;
27
+ const lexicon_1 = require("@atproto/lexicon");
28
+ const common_1 = require("@atproto/common");
29
+ const cid_1 = require("multiformats/cid");
30
+ const uint8arrays = __importStar(require("uint8arrays"));
31
+ class BlockMap {
32
+ constructor() {
33
+ Object.defineProperty(this, "map", {
34
+ enumerable: true,
35
+ configurable: true,
36
+ writable: true,
37
+ value: new Map()
38
+ });
39
+ }
40
+ async add(value) {
41
+ const block = await (0, common_1.dataToCborBlock)((0, lexicon_1.lexToIpld)(value));
42
+ this.set(block.cid, block.bytes);
43
+ return block.cid;
44
+ }
45
+ set(cid, bytes) {
46
+ this.map.set(cid.toString(), bytes);
47
+ }
48
+ get(cid) {
49
+ return this.map.get(cid.toString());
50
+ }
51
+ delete(cid) {
52
+ this.map.delete(cid.toString());
53
+ }
54
+ getMany(cids) {
55
+ const missing = [];
56
+ const blocks = new BlockMap();
57
+ for (const cid of cids) {
58
+ const got = this.map.get(cid.toString());
59
+ if (got) {
60
+ blocks.set(cid, got);
61
+ }
62
+ else {
63
+ missing.push(cid);
64
+ }
65
+ }
66
+ return { blocks, missing };
67
+ }
68
+ has(cid) {
69
+ return this.map.has(cid.toString());
70
+ }
71
+ clear() {
72
+ this.map.clear();
73
+ }
74
+ forEach(cb) {
75
+ this.map.forEach((val, key) => cb(val, cid_1.CID.parse(key)));
76
+ }
77
+ entries() {
78
+ const entries = [];
79
+ this.forEach((bytes, cid) => {
80
+ entries.push({ cid, bytes });
81
+ });
82
+ return entries;
83
+ }
84
+ cids() {
85
+ return this.entries().map((e) => e.cid);
86
+ }
87
+ addMap(toAdd) {
88
+ toAdd.forEach((bytes, cid) => {
89
+ this.set(cid, bytes);
90
+ });
91
+ }
92
+ get size() {
93
+ return this.map.size;
94
+ }
95
+ get byteSize() {
96
+ let size = 0;
97
+ this.forEach((bytes) => {
98
+ size += bytes.length;
99
+ });
100
+ return size;
101
+ }
102
+ equals(other) {
103
+ if (this.size !== other.size) {
104
+ return false;
105
+ }
106
+ for (const entry of this.entries()) {
107
+ const otherBytes = other.get(entry.cid);
108
+ if (!otherBytes)
109
+ return false;
110
+ if (!uint8arrays.equals(entry.bytes, otherBytes)) {
111
+ return false;
112
+ }
113
+ }
114
+ return true;
115
+ }
116
+ }
117
+ exports.BlockMap = BlockMap;
118
+ exports.default = BlockMap;
119
+ //# sourceMappingURL=block-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block-map.js","sourceRoot":"","sources":["../src/block-map.ts"],"names":[],"mappings":"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"}
package/dist/cid-set.d.ts CHANGED
@@ -12,3 +12,4 @@ export declare class CidSet {
12
12
  toList(): CID[];
13
13
  }
14
14
  export default CidSet;
15
+ //# sourceMappingURL=cid-set.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cid-set.d.ts","sourceRoot":"","sources":["../src/cid-set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAElC,qBAAa,MAAM;IACjB,OAAO,CAAC,GAAG,CAAa;gBAEZ,GAAG,GAAE,GAAG,EAAO;IAK3B,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM;IAKrB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAK/B,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAKvC,MAAM,CAAC,GAAG,EAAE,GAAG;IAKf,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO;IAItB,IAAI,IAAI,MAAM;IAId,KAAK,IAAI,MAAM;IAKf,MAAM,IAAI,GAAG,EAAE;CAGhB;AAED,eAAe,MAAM,CAAA"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CidSet = void 0;
4
+ const multiformats_1 = require("multiformats");
5
+ class CidSet {
6
+ constructor(arr = []) {
7
+ Object.defineProperty(this, "set", {
8
+ enumerable: true,
9
+ configurable: true,
10
+ writable: true,
11
+ value: void 0
12
+ });
13
+ const strArr = arr.map((c) => c.toString());
14
+ this.set = new Set(strArr);
15
+ }
16
+ add(cid) {
17
+ this.set.add(cid.toString());
18
+ return this;
19
+ }
20
+ addSet(toMerge) {
21
+ toMerge.toList().map((c) => this.add(c));
22
+ return this;
23
+ }
24
+ subtractSet(toSubtract) {
25
+ toSubtract.toList().map((c) => this.delete(c));
26
+ return this;
27
+ }
28
+ delete(cid) {
29
+ this.set.delete(cid.toString());
30
+ return this;
31
+ }
32
+ has(cid) {
33
+ return this.set.has(cid.toString());
34
+ }
35
+ size() {
36
+ return this.set.size;
37
+ }
38
+ clear() {
39
+ this.set.clear();
40
+ return this;
41
+ }
42
+ toList() {
43
+ return [...this.set].map((c) => multiformats_1.CID.parse(c));
44
+ }
45
+ }
46
+ exports.CidSet = CidSet;
47
+ exports.default = CidSet;
48
+ //# sourceMappingURL=cid-set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cid-set.js","sourceRoot":"","sources":["../src/cid-set.ts"],"names":[],"mappings":";;;AAAA,+CAAkC;AAElC,MAAa,MAAM;IAGjB,YAAY,MAAa,EAAE;QAFnB;;;;;WAAgB;QAGtB,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC3C,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA;IAC5B,CAAC;IAED,GAAG,CAAC,GAAQ;QACV,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,CAAC,OAAe;QACpB,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACxC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,WAAW,CAAC,UAAkB;QAC5B,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,CAAC,GAAQ;QACb,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC/B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,GAAG,CAAC,GAAQ;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;IACrC,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA;IACtB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,CAAC;CACF;AA5CD,wBA4CC;AAED,kBAAe,MAAM,CAAA"}
@@ -36,3 +36,4 @@ export type DataDelete = {
36
36
  cid: CID;
37
37
  };
38
38
  export default DataDiff;
39
+ //# sourceMappingURL=data-diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-diff.d.ts","sourceRoot":"","sources":["../src/data-diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAClC,OAAO,MAAM,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAE,GAAG,EAAE,SAAS,EAAW,MAAM,OAAO,CAAA;AAC/C,OAAO,QAAQ,MAAM,aAAa,CAAA;AAElC,qBAAa,QAAQ;IACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAK;IAClC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAK;IACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAK;IAExC,YAAY,EAAE,QAAQ,CAAiB;IACvC,WAAW,EAAE,MAAM,CAAe;IAClC,WAAW,EAAE,MAAM,CAAe;WAErB,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIzD,OAAO,CAAC,IAAI,EAAE,SAAS;IASvB,UAAU,CAAC,IAAI,EAAE,SAAS;IAYhC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG;IAS7B,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAO3C,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG;IAShC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU;IAQnC,UAAU,CAAC,GAAG,EAAE,GAAG;IAQnB,OAAO,IAAI,OAAO,EAAE;IAIpB,UAAU,IAAI,UAAU,EAAE;IAI1B,UAAU,IAAI,UAAU,EAAE;IAI1B,WAAW,IAAI,MAAM,EAAE;CAQxB;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,GAAG,CAAA;CACT,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,GAAG,CAAA;IACT,GAAG,EAAE,GAAG,CAAA;CACT,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,GAAG,CAAA;CACT,CAAA;AAED,eAAe,QAAQ,CAAA"}
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DataDiff = void 0;
7
+ const cid_set_1 = __importDefault(require("./cid-set"));
8
+ const mst_1 = require("./mst");
9
+ const block_map_1 = __importDefault(require("./block-map"));
10
+ class DataDiff {
11
+ constructor() {
12
+ Object.defineProperty(this, "adds", {
13
+ enumerable: true,
14
+ configurable: true,
15
+ writable: true,
16
+ value: {}
17
+ });
18
+ Object.defineProperty(this, "updates", {
19
+ enumerable: true,
20
+ configurable: true,
21
+ writable: true,
22
+ value: {}
23
+ });
24
+ Object.defineProperty(this, "deletes", {
25
+ enumerable: true,
26
+ configurable: true,
27
+ writable: true,
28
+ value: {}
29
+ });
30
+ Object.defineProperty(this, "newMstBlocks", {
31
+ enumerable: true,
32
+ configurable: true,
33
+ writable: true,
34
+ value: new block_map_1.default()
35
+ });
36
+ Object.defineProperty(this, "newLeafCids", {
37
+ enumerable: true,
38
+ configurable: true,
39
+ writable: true,
40
+ value: new cid_set_1.default()
41
+ });
42
+ Object.defineProperty(this, "removedCids", {
43
+ enumerable: true,
44
+ configurable: true,
45
+ writable: true,
46
+ value: new cid_set_1.default()
47
+ });
48
+ }
49
+ static async of(curr, prev) {
50
+ return (0, mst_1.mstDiff)(curr, prev);
51
+ }
52
+ async nodeAdd(node) {
53
+ if (node.isLeaf()) {
54
+ this.leafAdd(node.key, node.value);
55
+ }
56
+ else {
57
+ const data = await node.serialize();
58
+ this.treeAdd(data.cid, data.bytes);
59
+ }
60
+ }
61
+ async nodeDelete(node) {
62
+ if (node.isLeaf()) {
63
+ const key = node.key;
64
+ const cid = node.value;
65
+ this.deletes[key] = { key, cid };
66
+ this.removedCids.add(cid);
67
+ }
68
+ else {
69
+ const cid = await node.getPointer();
70
+ this.treeDelete(cid);
71
+ }
72
+ }
73
+ leafAdd(key, cid) {
74
+ this.adds[key] = { key, cid };
75
+ if (this.removedCids.has(cid)) {
76
+ this.removedCids.delete(cid);
77
+ }
78
+ else {
79
+ this.newLeafCids.add(cid);
80
+ }
81
+ }
82
+ leafUpdate(key, prev, cid) {
83
+ if (prev.equals(cid))
84
+ return;
85
+ this.updates[key] = { key, prev, cid };
86
+ this.removedCids.add(prev);
87
+ this.newLeafCids.add(cid);
88
+ }
89
+ leafDelete(key, cid) {
90
+ this.deletes[key] = { key, cid };
91
+ if (this.newLeafCids.has(cid)) {
92
+ this.newLeafCids.delete(cid);
93
+ }
94
+ else {
95
+ this.removedCids.add(cid);
96
+ }
97
+ }
98
+ treeAdd(cid, bytes) {
99
+ if (this.removedCids.has(cid)) {
100
+ this.removedCids.delete(cid);
101
+ }
102
+ else {
103
+ this.newMstBlocks.set(cid, bytes);
104
+ }
105
+ }
106
+ treeDelete(cid) {
107
+ if (this.newMstBlocks.has(cid)) {
108
+ this.newMstBlocks.delete(cid);
109
+ }
110
+ else {
111
+ this.removedCids.add(cid);
112
+ }
113
+ }
114
+ addList() {
115
+ return Object.values(this.adds);
116
+ }
117
+ updateList() {
118
+ return Object.values(this.updates);
119
+ }
120
+ deleteList() {
121
+ return Object.values(this.deletes);
122
+ }
123
+ updatedKeys() {
124
+ const keys = [
125
+ ...Object.keys(this.adds),
126
+ ...Object.keys(this.updates),
127
+ ...Object.keys(this.deletes),
128
+ ];
129
+ return [...new Set(keys)];
130
+ }
131
+ }
132
+ exports.DataDiff = DataDiff;
133
+ exports.default = DataDiff;
134
+ //# sourceMappingURL=data-diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-diff.js","sourceRoot":"","sources":["../src/data-diff.ts"],"names":[],"mappings":"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"}
package/dist/error.d.ts CHANGED
@@ -18,3 +18,4 @@ export declare class UnexpectedObjectError extends Error {
18
18
  def: string;
19
19
  constructor(cid: CID, def: string);
20
20
  }
21
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAEtC,qBAAa,iBAAkB,SAAQ,KAAK;IACvB,GAAG,EAAE,GAAG;gBAAR,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM;CAO1C;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IACxB,OAAO,EAAE,MAAM;IAAS,IAAI,EAAE,GAAG,EAAE;gBAAnC,OAAO,EAAE,MAAM,EAAS,IAAI,EAAE,GAAG,EAAE;CAIvD;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IAC9B,MAAM,EAAE,GAAG;IAAS,IAAI,EAAE,GAAG,EAAE;gBAA/B,MAAM,EAAE,GAAG,EAAS,IAAI,EAAE,GAAG,EAAE;CAInD;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IAC3B,GAAG,EAAE,GAAG;IAAS,GAAG,EAAE,MAAM;gBAA5B,GAAG,EAAE,GAAG,EAAS,GAAG,EAAE,MAAM;CAGhD"}
package/dist/error.js ADDED
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UnexpectedObjectError = exports.MissingCommitBlocksError = exports.MissingBlocksError = exports.MissingBlockError = void 0;
4
+ class MissingBlockError extends Error {
5
+ constructor(cid, def) {
6
+ let msg = `block not found: ${cid.toString()}`;
7
+ if (def) {
8
+ msg += `, expected type: ${def}`;
9
+ }
10
+ super(msg);
11
+ Object.defineProperty(this, "cid", {
12
+ enumerable: true,
13
+ configurable: true,
14
+ writable: true,
15
+ value: cid
16
+ });
17
+ }
18
+ }
19
+ exports.MissingBlockError = MissingBlockError;
20
+ class MissingBlocksError extends Error {
21
+ constructor(context, cids) {
22
+ const cidStr = cids.map((c) => c.toString());
23
+ super(`missing ${context} blocks: ${cidStr}`);
24
+ Object.defineProperty(this, "context", {
25
+ enumerable: true,
26
+ configurable: true,
27
+ writable: true,
28
+ value: context
29
+ });
30
+ Object.defineProperty(this, "cids", {
31
+ enumerable: true,
32
+ configurable: true,
33
+ writable: true,
34
+ value: cids
35
+ });
36
+ }
37
+ }
38
+ exports.MissingBlocksError = MissingBlocksError;
39
+ class MissingCommitBlocksError extends Error {
40
+ constructor(commit, cids) {
41
+ const cidStr = cids.map((c) => c.toString());
42
+ super(`missing blocks for commit ${commit.toString()}: ${cidStr}`);
43
+ Object.defineProperty(this, "commit", {
44
+ enumerable: true,
45
+ configurable: true,
46
+ writable: true,
47
+ value: commit
48
+ });
49
+ Object.defineProperty(this, "cids", {
50
+ enumerable: true,
51
+ configurable: true,
52
+ writable: true,
53
+ value: cids
54
+ });
55
+ }
56
+ }
57
+ exports.MissingCommitBlocksError = MissingCommitBlocksError;
58
+ class UnexpectedObjectError extends Error {
59
+ constructor(cid, def) {
60
+ super(`unexpected object at ${cid.toString()}, expected: ${def}`);
61
+ Object.defineProperty(this, "cid", {
62
+ enumerable: true,
63
+ configurable: true,
64
+ writable: true,
65
+ value: cid
66
+ });
67
+ Object.defineProperty(this, "def", {
68
+ enumerable: true,
69
+ configurable: true,
70
+ writable: true,
71
+ value: def
72
+ });
73
+ }
74
+ }
75
+ exports.UnexpectedObjectError = UnexpectedObjectError;
76
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":";;;AAEA,MAAa,iBAAkB,SAAQ,KAAK;IAC1C,YAAmB,GAAQ,EAAE,GAAY;QACvC,IAAI,GAAG,GAAG,oBAAoB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAA;QAC9C,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,IAAI,oBAAoB,GAAG,EAAE,CAAA;QAClC,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,CAAA;QALA;;;;mBAAO,GAAG;WAAK;IAM3B,CAAC;CACF;AARD,8CAQC;AAED,MAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAmB,OAAe,EAAS,IAAW;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC5C,KAAK,CAAC,WAAW,OAAO,YAAY,MAAM,EAAE,CAAC,CAAA;QAFnC;;;;mBAAO,OAAO;WAAQ;QAAE;;;;mBAAO,IAAI;WAAO;IAGtD,CAAC;CACF;AALD,gDAKC;AAED,MAAa,wBAAyB,SAAQ,KAAK;IACjD,YAAmB,MAAW,EAAS,IAAW;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC5C,KAAK,CAAC,6BAA6B,MAAM,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAC,CAAA;QAFxD;;;;mBAAO,MAAM;WAAK;QAAE;;;;mBAAO,IAAI;WAAO;IAGlD,CAAC;CACF;AALD,4DAKC;AAED,MAAa,qBAAsB,SAAQ,KAAK;IAC9C,YAAmB,GAAQ,EAAS,GAAW;QAC7C,KAAK,CAAC,wBAAwB,GAAG,CAAC,QAAQ,EAAE,eAAe,GAAG,EAAE,CAAC,CAAA;QADvD;;;;mBAAO,GAAG;WAAK;QAAE;;;;mBAAO,GAAG;WAAQ;IAE/C,CAAC;CACF;AAJD,sDAIC"}
package/dist/index.d.ts CHANGED
@@ -8,3 +8,4 @@ export * from './sync';
8
8
  export * from './types';
9
9
  export * from './data-diff';
10
10
  export * from './util';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA;AACtB,cAAc,OAAO,CAAA;AACrB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA"}