@brightchain/brightchain-lib 0.2.1 → 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.
Files changed (144) hide show
  1. package/package.json +1 -1
  2. package/src/browser.d.ts +12 -0
  3. package/src/browser.d.ts.map +1 -1
  4. package/src/browser.js +23 -1
  5. package/src/browser.js.map +1 -1
  6. package/src/lib/documents/base/document.d.ts.map +1 -1
  7. package/src/lib/documents/base/document.js +12 -5
  8. package/src/lib/documents/base/document.js.map +1 -1
  9. package/src/lib/documents/member/baseMemberDocument.d.ts +1 -1
  10. package/src/lib/documents/member/baseMemberDocument.d.ts.map +1 -1
  11. package/src/lib/energyAccount.d.ts +71 -0
  12. package/src/lib/energyAccount.d.ts.map +1 -0
  13. package/src/lib/energyAccount.js +124 -0
  14. package/src/lib/energyAccount.js.map +1 -0
  15. package/src/lib/energyConsts.d.ts +23 -0
  16. package/src/lib/energyConsts.d.ts.map +1 -0
  17. package/src/lib/energyConsts.js +31 -0
  18. package/src/lib/energyConsts.js.map +1 -0
  19. package/src/lib/enumeration-translations/memberType.d.ts +1 -1
  20. package/src/lib/enumeration-translations/memberType.d.ts.map +1 -1
  21. package/src/lib/enumeration-translations/memberType.js +6 -6
  22. package/src/lib/enumeration-translations/memberType.js.map +1 -1
  23. package/src/lib/enumerations/index.d.ts +0 -1
  24. package/src/lib/enumerations/index.d.ts.map +1 -1
  25. package/src/lib/enumerations/index.js +0 -1
  26. package/src/lib/enumerations/index.js.map +1 -1
  27. package/src/lib/enumerations/operationType.d.ts +25 -1
  28. package/src/lib/enumerations/operationType.d.ts.map +1 -1
  29. package/src/lib/enumerations/operationType.js +34 -1
  30. package/src/lib/enumerations/operationType.js.map +1 -1
  31. package/src/lib/errors/index.d.ts +6 -0
  32. package/src/lib/errors/index.d.ts.map +1 -1
  33. package/src/lib/errors/index.js +9 -0
  34. package/src/lib/errors/index.js.map +1 -1
  35. package/src/lib/errors/superCbl.d.ts +24 -0
  36. package/src/lib/errors/superCbl.d.ts.map +1 -0
  37. package/src/lib/errors/superCbl.js +43 -0
  38. package/src/lib/errors/superCbl.js.map +1 -0
  39. package/src/lib/index.d.ts +7 -0
  40. package/src/lib/index.d.ts.map +1 -1
  41. package/src/lib/index.js +7 -0
  42. package/src/lib/index.js.map +1 -1
  43. package/src/lib/interfaces/energyAccount.d.ts +37 -0
  44. package/src/lib/interfaces/energyAccount.d.ts.map +1 -0
  45. package/src/lib/interfaces/energyAccount.js +3 -0
  46. package/src/lib/interfaces/energyAccount.js.map +1 -0
  47. package/src/lib/interfaces/energyTransaction.d.ts +18 -2
  48. package/src/lib/interfaces/energyTransaction.d.ts.map +1 -1
  49. package/src/lib/interfaces/member/hydrated.d.ts +1 -2
  50. package/src/lib/interfaces/member/hydrated.d.ts.map +1 -1
  51. package/src/lib/interfaces/member/memberData.d.ts +1 -2
  52. package/src/lib/interfaces/member/memberData.d.ts.map +1 -1
  53. package/src/lib/interfaces/member/memberDto.d.ts +1 -2
  54. package/src/lib/interfaces/member/memberDto.d.ts.map +1 -1
  55. package/src/lib/interfaces/member/operational.d.ts +1 -2
  56. package/src/lib/interfaces/member/operational.d.ts.map +1 -1
  57. package/src/lib/interfaces/member/storage.d.ts +1 -1
  58. package/src/lib/interfaces/member/storage.d.ts.map +1 -1
  59. package/src/lib/interfaces/storage/blockStore.d.ts +59 -0
  60. package/src/lib/interfaces/storage/blockStore.d.ts.map +1 -1
  61. package/src/lib/interfaces/storage/cblWhitening.d.ts +76 -0
  62. package/src/lib/interfaces/storage/cblWhitening.d.ts.map +1 -0
  63. package/src/lib/interfaces/storage/cblWhitening.js +3 -0
  64. package/src/lib/interfaces/storage/cblWhitening.js.map +1 -0
  65. package/src/lib/interfaces/storage/index.d.ts +2 -0
  66. package/src/lib/interfaces/storage/index.d.ts.map +1 -1
  67. package/src/lib/interfaces/storage/superCbl.d.ts +102 -0
  68. package/src/lib/interfaces/storage/superCbl.d.ts.map +1 -0
  69. package/src/lib/interfaces/storage/superCbl.js +3 -0
  70. package/src/lib/interfaces/storage/superCbl.js.map +1 -0
  71. package/src/lib/operationCost.d.ts +13 -1
  72. package/src/lib/operationCost.d.ts.map +1 -1
  73. package/src/lib/operationCost.js +18 -2
  74. package/src/lib/operationCost.js.map +1 -1
  75. package/src/lib/schemas/quorumDocument.d.ts.map +1 -1
  76. package/src/lib/schemas/quorumDocument.js +1 -2
  77. package/src/lib/schemas/quorumDocument.js.map +1 -1
  78. package/src/lib/services/blockService.d.ts +2 -1
  79. package/src/lib/services/blockService.d.ts.map +1 -1
  80. package/src/lib/services/blockService.js +7 -10
  81. package/src/lib/services/blockService.js.map +1 -1
  82. package/src/lib/services/index.d.ts +2 -0
  83. package/src/lib/services/index.d.ts.map +1 -1
  84. package/src/lib/services/index.js +2 -0
  85. package/src/lib/services/index.js.map +1 -1
  86. package/src/lib/services/jsonCblCapacity.service.d.ts +80 -0
  87. package/src/lib/services/jsonCblCapacity.service.d.ts.map +1 -0
  88. package/src/lib/services/jsonCblCapacity.service.js +147 -0
  89. package/src/lib/services/jsonCblCapacity.service.js.map +1 -0
  90. package/src/lib/services/memberStore.d.ts.map +1 -1
  91. package/src/lib/services/memberStore.js +1 -2
  92. package/src/lib/services/memberStore.js.map +1 -1
  93. package/src/lib/services/superCbl.service.d.ts +68 -0
  94. package/src/lib/services/superCbl.service.d.ts.map +1 -0
  95. package/src/lib/services/superCbl.service.js +213 -0
  96. package/src/lib/services/superCbl.service.js.map +1 -0
  97. package/src/lib/services/tuple.service.d.ts.map +1 -1
  98. package/src/lib/services/tuple.service.js +17 -30
  99. package/src/lib/services/tuple.service.js.map +1 -1
  100. package/src/lib/services/xor.d.ts +24 -9
  101. package/src/lib/services/xor.d.ts.map +1 -1
  102. package/src/lib/services/xor.js +63 -14
  103. package/src/lib/services/xor.js.map +1 -1
  104. package/src/lib/sharedTypes.d.ts +1 -2
  105. package/src/lib/sharedTypes.d.ts.map +1 -1
  106. package/src/lib/sharedTypes.js.map +1 -1
  107. package/src/lib/stores/blockStoreAdapter.d.ts +5 -0
  108. package/src/lib/stores/blockStoreAdapter.d.ts.map +1 -1
  109. package/src/lib/stores/blockStoreAdapter.js +13 -0
  110. package/src/lib/stores/blockStoreAdapter.js.map +1 -1
  111. package/src/lib/stores/energyAccountStore.d.ts +43 -0
  112. package/src/lib/stores/energyAccountStore.d.ts.map +1 -0
  113. package/src/lib/stores/energyAccountStore.js +73 -0
  114. package/src/lib/stores/energyAccountStore.js.map +1 -0
  115. package/src/lib/stores/energyLedger.d.ts +40 -0
  116. package/src/lib/stores/energyLedger.d.ts.map +1 -0
  117. package/src/lib/stores/energyLedger.js +77 -0
  118. package/src/lib/stores/energyLedger.js.map +1 -0
  119. package/src/lib/stores/memoryBlockStore.d.ts +68 -0
  120. package/src/lib/stores/memoryBlockStore.d.ts.map +1 -1
  121. package/src/lib/stores/memoryBlockStore.js +298 -12
  122. package/src/lib/stores/memoryBlockStore.js.map +1 -1
  123. package/src/lib/test/testMembers.d.ts +1 -2
  124. package/src/lib/test/testMembers.d.ts.map +1 -1
  125. package/src/lib/test/testMembers.js +6 -7
  126. package/src/lib/test/testMembers.js.map +1 -1
  127. package/src/lib/utils/index.d.ts +11 -0
  128. package/src/lib/utils/index.d.ts.map +1 -1
  129. package/src/lib/utils/index.js +14 -0
  130. package/src/lib/utils/index.js.map +1 -1
  131. package/src/lib/utils/xorUtils.d.ts +46 -0
  132. package/src/lib/utils/xorUtils.d.ts.map +1 -0
  133. package/src/lib/utils/xorUtils.js +98 -0
  134. package/src/lib/utils/xorUtils.js.map +1 -0
  135. package/src/lib/enumerations/memberType.d.ts +0 -16
  136. package/src/lib/enumerations/memberType.d.ts.map +0 -1
  137. package/src/lib/enumerations/memberType.js +0 -20
  138. package/src/lib/enumerations/memberType.js.map +0 -1
  139. /package/{DEPRECATIONS.md → brightchain-lib/DEPRECATIONS.md} +0 -0
  140. /package/{DEPRECATIONS_REMOVED.md → brightchain-lib/DEPRECATIONS_REMOVED.md} +0 -0
  141. /package/{MIGRATION.md → brightchain-lib/MIGRATION.md} +0 -0
  142. /package/{NAMING_AUDIT.md → brightchain-lib/NAMING_AUDIT.md} +0 -0
  143. /package/{NAMING_CONVENTIONS.md → brightchain-lib/NAMING_CONVENTIONS.md} +0 -0
  144. /package/{README.md → brightchain-lib/README.md} +0 -0
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.xorArrays = xorArrays;
4
+ exports.xorMultipleArrays = xorMultipleArrays;
5
+ exports.padToBlockSize = padToBlockSize;
6
+ exports.unpadCblData = unpadCblData;
7
+ const xor_1 = require("../services/xor");
8
+ /**
9
+ * XOR utility functions for CBL whitening operations.
10
+ * These utilities wrap XorService and add padding/unpadding for block-aligned storage.
11
+ */
12
+ /**
13
+ * XOR two Uint8Arrays of equal length.
14
+ * Delegates to XorService.xor for the actual XOR operation.
15
+ *
16
+ * @param a - First array
17
+ * @param b - Second array
18
+ * @returns XOR result (a ⊕ b)
19
+ * @throws Error if arrays have different lengths
20
+ */
21
+ function xorArrays(a, b) {
22
+ return xor_1.XorService.xor(a, b);
23
+ }
24
+ /**
25
+ * XOR multiple Uint8Arrays of equal length together.
26
+ * Delegates to XorService.xorMultiple for the actual XOR operation.
27
+ *
28
+ * @param arrays - Array of Uint8Arrays to XOR together (must all be same length)
29
+ * @returns XOR result
30
+ * @throws Error if arrays have different lengths or if no arrays provided
31
+ */
32
+ function xorMultipleArrays(arrays) {
33
+ return xor_1.XorService.xorMultiple(arrays);
34
+ }
35
+ /**
36
+ * Length prefix size in bytes (4 bytes = 32-bit unsigned integer).
37
+ * This allows for data up to ~4GB in size.
38
+ */
39
+ const LENGTH_PREFIX_SIZE = 4;
40
+ /**
41
+ * Pad data to a multiple of block size with length prefix and random bytes.
42
+ * The padding ensures that the data aligns with block boundaries.
43
+ *
44
+ * Format: [4-byte length prefix][original data][random padding]
45
+ *
46
+ * @param data - The data to pad
47
+ * @param blockSize - The target block size
48
+ * @returns Padded data with length prefix
49
+ */
50
+ function padToBlockSize(data, blockSize) {
51
+ if (blockSize <= 0) {
52
+ throw new Error(`Block size must be positive: ${blockSize}`);
53
+ }
54
+ // Total size needed: length prefix + data
55
+ const totalDataSize = LENGTH_PREFIX_SIZE + data.length;
56
+ // Calculate padded size (round up to next block boundary)
57
+ const paddedSize = Math.ceil(totalDataSize / blockSize) * blockSize;
58
+ // Create padded array
59
+ const padded = new Uint8Array(paddedSize);
60
+ // Write length prefix (big-endian 32-bit unsigned integer)
61
+ const view = new DataView(padded.buffer);
62
+ view.setUint32(0, data.length, false); // false = big-endian
63
+ // Copy original data after length prefix
64
+ padded.set(data, LENGTH_PREFIX_SIZE);
65
+ // Fill remaining bytes with random data for security
66
+ if (paddedSize > totalDataSize) {
67
+ const paddingBytes = padded.subarray(totalDataSize);
68
+ xor_1.XorService.generateKey(paddingBytes.length).forEach((byte, i) => {
69
+ paddingBytes[i] = byte;
70
+ });
71
+ }
72
+ return padded;
73
+ }
74
+ /**
75
+ * Remove padding from CBL data by reading the length prefix.
76
+ * The length prefix tells us exactly how many bytes of original data follow.
77
+ *
78
+ * Format: [4-byte length prefix][original data][random padding]
79
+ *
80
+ * @param data - The padded CBL data with length prefix
81
+ * @returns Unpadded CBL data (original data without length prefix or padding)
82
+ * @throws Error if data is too short or length prefix is invalid
83
+ */
84
+ function unpadCblData(data) {
85
+ if (data.length < LENGTH_PREFIX_SIZE) {
86
+ throw new Error(`Invalid padded data: too short (${data.length} bytes, need at least ${LENGTH_PREFIX_SIZE})`);
87
+ }
88
+ // Read length prefix (big-endian 32-bit unsigned integer)
89
+ const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
90
+ const originalLength = view.getUint32(0, false); // false = big-endian
91
+ // Validate length
92
+ if (originalLength > data.length - LENGTH_PREFIX_SIZE) {
93
+ throw new Error(`Invalid length prefix: claims ${originalLength} bytes but only ${data.length - LENGTH_PREFIX_SIZE} available`);
94
+ }
95
+ // Return original data (after length prefix, up to original length)
96
+ return data.subarray(LENGTH_PREFIX_SIZE, LENGTH_PREFIX_SIZE + originalLength);
97
+ }
98
+ //# sourceMappingURL=xorUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xorUtils.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/utils/xorUtils.ts"],"names":[],"mappings":";;AAgBA,8BAEC;AAUD,8CAEC;AAkBD,wCAiCC;AAYD,oCAoBC;AAjHD,yCAA6C;AAE7C;;;GAGG;AAEH;;;;;;;;GAQG;AACH,SAAgB,SAAS,CAAC,CAAa,EAAE,CAAa;IACpD,OAAO,gBAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAAC,MAAoB;IACpD,OAAO,gBAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B;;;;;;;;;GASG;AACH,SAAgB,cAAc,CAC5B,IAAgB,EAChB,SAAiB;IAEjB,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,gCAAgC,SAAS,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,0CAA0C;IAC1C,MAAM,aAAa,GAAG,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC;IAEvD,0DAA0D;IAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IAEpE,sBAAsB;IACtB,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IAE1C,2DAA2D;IAC3D,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,qBAAqB;IAE5D,yCAAyC;IACzC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAErC,qDAAqD;IACrD,IAAI,UAAU,GAAG,aAAa,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACpD,gBAAU,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9D,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,YAAY,CAAC,IAAgB;IAC3C,IAAI,IAAI,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,mCAAmC,IAAI,CAAC,MAAM,yBAAyB,kBAAkB,GAAG,CAC7F,CAAC;IACJ,CAAC;IAED,0DAA0D;IAC1D,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACzE,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,qBAAqB;IAEtE,kBAAkB;IAClB,IAAI,cAAc,GAAG,IAAI,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CACb,iCAAiC,cAAc,mBAAmB,IAAI,CAAC,MAAM,GAAG,kBAAkB,YAAY,CAC/G,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,OAAO,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,cAAc,CAAC,CAAC;AAChF,CAAC"}
@@ -1,16 +0,0 @@
1
- /**
2
- * Types of members in the system.
3
- * In the Owner Free Filesystem (OFF), members can be:
4
- * 1. Admin - System administrators
5
- * 2. System - System services and automated processes
6
- * 3. User - Regular users
7
- * 4. Anonymous - Used for blocks that don't need a real owner
8
- */
9
- export declare enum MemberType {
10
- Admin = "Admin",
11
- System = "System",
12
- User = "User",
13
- Anonymous = "Anonymous"
14
- }
15
- export default MemberType;
16
- //# sourceMappingURL=memberType.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memberType.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/enumerations/memberType.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,oBAAY,UAAU;IACpB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,SAAS,cAAc;CACxB;AAED,eAAe,UAAU,CAAC"}
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MemberType = void 0;
4
- /**
5
- * Types of members in the system.
6
- * In the Owner Free Filesystem (OFF), members can be:
7
- * 1. Admin - System administrators
8
- * 2. System - System services and automated processes
9
- * 3. User - Regular users
10
- * 4. Anonymous - Used for blocks that don't need a real owner
11
- */
12
- var MemberType;
13
- (function (MemberType) {
14
- MemberType["Admin"] = "Admin";
15
- MemberType["System"] = "System";
16
- MemberType["User"] = "User";
17
- MemberType["Anonymous"] = "Anonymous";
18
- })(MemberType || (exports.MemberType = MemberType = {}));
19
- exports.default = MemberType;
20
- //# sourceMappingURL=memberType.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memberType.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/enumerations/memberType.ts"],"names":[],"mappings":";;;AAAA;;;;;;;GAOG;AACH,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,6BAAe,CAAA;IACf,+BAAiB,CAAA;IACjB,2BAAa,CAAA;IACb,qCAAuB,CAAA;AACzB,CAAC,EALW,UAAU,0BAAV,UAAU,QAKrB;AAED,kBAAe,UAAU,CAAC"}
File without changes
File without changes