@adviser/cement 0.5.27 → 0.5.28

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 (56) hide show
  1. package/cjs/index.cjs +1 -0
  2. package/cjs/index.cjs.map +1 -1
  3. package/cjs/index.d.ts +1 -0
  4. package/cjs/index.d.ts.map +1 -1
  5. package/cjs/utils/concat-uint8.cjs +14 -0
  6. package/cjs/utils/concat-uint8.cjs.map +1 -0
  7. package/cjs/utils/concat-uint8.d.ts +2 -0
  8. package/cjs/utils/concat-uint8.d.ts.map +1 -0
  9. package/cjs/utils/concat-uint8.test.cjs +60 -0
  10. package/cjs/utils/concat-uint8.test.cjs.map +1 -0
  11. package/cjs/utils/concat-uint8.test.d.ts +2 -0
  12. package/cjs/utils/concat-uint8.test.d.ts.map +1 -0
  13. package/cjs/version.cjs +1 -1
  14. package/deno.json +1 -1
  15. package/esm/index.d.ts +1 -0
  16. package/esm/index.d.ts.map +1 -1
  17. package/esm/index.js +1 -0
  18. package/esm/index.js.map +1 -1
  19. package/esm/utils/concat-uint8.d.ts +2 -0
  20. package/esm/utils/concat-uint8.d.ts.map +1 -0
  21. package/esm/utils/concat-uint8.js +11 -0
  22. package/esm/utils/concat-uint8.js.map +1 -0
  23. package/esm/utils/concat-uint8.test.d.ts +2 -0
  24. package/esm/utils/concat-uint8.test.d.ts.map +1 -0
  25. package/esm/utils/concat-uint8.test.js +58 -0
  26. package/esm/utils/concat-uint8.test.js.map +1 -0
  27. package/esm/version.js +1 -1
  28. package/package.json +1 -1
  29. package/src/index.ts +1 -0
  30. package/src/utils/concat-uint8.ts +30 -0
  31. package/ts/cjs/index.d.ts +1 -0
  32. package/ts/cjs/index.d.ts.map +1 -1
  33. package/ts/cjs/index.js +1 -0
  34. package/ts/cjs/index.js.map +1 -1
  35. package/ts/cjs/utils/concat-uint8.d.ts +2 -0
  36. package/ts/cjs/utils/concat-uint8.d.ts.map +1 -0
  37. package/ts/cjs/utils/concat-uint8.js +14 -0
  38. package/ts/cjs/utils/concat-uint8.js.map +1 -0
  39. package/ts/cjs/utils/concat-uint8.test.d.ts +2 -0
  40. package/ts/cjs/utils/concat-uint8.test.d.ts.map +1 -0
  41. package/ts/cjs/utils/concat-uint8.test.js +60 -0
  42. package/ts/cjs/utils/concat-uint8.test.js.map +1 -0
  43. package/ts/cjs/version.js +1 -1
  44. package/ts/esm/index.d.ts +1 -0
  45. package/ts/esm/index.d.ts.map +1 -1
  46. package/ts/esm/index.js +1 -0
  47. package/ts/esm/index.js.map +1 -1
  48. package/ts/esm/utils/concat-uint8.d.ts +2 -0
  49. package/ts/esm/utils/concat-uint8.d.ts.map +1 -0
  50. package/ts/esm/utils/concat-uint8.js +11 -0
  51. package/ts/esm/utils/concat-uint8.js.map +1 -0
  52. package/ts/esm/utils/concat-uint8.test.d.ts +2 -0
  53. package/ts/esm/utils/concat-uint8.test.d.ts.map +1 -0
  54. package/ts/esm/utils/concat-uint8.test.js +58 -0
  55. package/ts/esm/utils/concat-uint8.test.js.map +1 -0
  56. package/ts/esm/version.js +1 -1
package/cjs/index.cjs CHANGED
@@ -65,6 +65,7 @@ __exportStar(require("./utils/stripper.cjs"), exports);
65
65
  __exportStar(require("./utils/sorted-object.cjs"), exports);
66
66
  __exportStar(require("./utils/uint8array-equal.cjs"), exports);
67
67
  __exportStar(require("./utils/coerce-uint8.cjs"), exports);
68
+ __exportStar(require("./utils/concat-uint8.cjs"), exports);
68
69
  __exportStar(require("./utils/consume.cjs"), exports);
69
70
  __exportStar(require("./utils/to-sorted.cjs"), exports);
70
71
  __exportStar(require("./utils/relative-path.cjs"), exports);
package/cjs/index.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,mDAAiC;AACjC,8CAA4B;AAC5B,uDAAqC;AACrC,+CAA6B;AAC7B,4CAA0B;AAC1B,kDAAgC;AAChC,sDAAoC;AACpC,sDAAoC;AACpC,8CAA4B;AAC5B,8CAA4B;AAC5B,8CAA4B;AAC5B,8CAA4B;AAC5B,oDAAkC;AAClC,+CAA6B;AAC7B,2CAAyB;AACzB,8CAA4B;AAC5B,4DAA0C;AAC1C,gDAA8B;AAC9B,+CAA6B;AAC7B,mDAAiC;AACjC,gDAA8B;AAC9B,uDAAqC;AACrC,6CAA2B;AAC3B,mDAAiC;AACjC,qDAAmC;AACnC,kDAAgC;AAChC,mDAAiC;AACjC,kDAAgC;AAChC,mDAAiC;AACjC,8CAA4B;AAC5B,+CAA6B;AAC7B,iDAA+B;AAC/B,qDAAmC;AACnC,gDAA8B;AAC9B,8CAA4B;AAC5B,oDAAkC;AAClC,uDAAqC;AACrC,oDAAkC;AAClC,8CAA4B;AAK5B,sDAAoC;AACpC,wDAAsC;AACtC,2DAAyC;AACzC,2DAAyC;AACzC,kEAAgD;AAChD,iEAA+C;AAC/C,+DAA6C;AAC7C,sDAAoC;AACpC,2DAAyC;AACzC,8DAA4C;AAC5C,0DAAwC;AACxC,qDAAmC;AACnC,uDAAqC;AACrC,2DAAyC;AACzC,wDAAsC;AAEtC,sDAAoC;AACpC,sDAAoC;AACpC,+CAA6B;AAC7B,iDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,mDAAiC;AACjC,8CAA4B;AAC5B,uDAAqC;AACrC,+CAA6B;AAC7B,4CAA0B;AAC1B,kDAAgC;AAChC,sDAAoC;AACpC,sDAAoC;AACpC,8CAA4B;AAC5B,8CAA4B;AAC5B,8CAA4B;AAC5B,8CAA4B;AAC5B,oDAAkC;AAClC,+CAA6B;AAC7B,2CAAyB;AACzB,8CAA4B;AAC5B,4DAA0C;AAC1C,gDAA8B;AAC9B,+CAA6B;AAC7B,mDAAiC;AACjC,gDAA8B;AAC9B,uDAAqC;AACrC,6CAA2B;AAC3B,mDAAiC;AACjC,qDAAmC;AACnC,kDAAgC;AAChC,mDAAiC;AACjC,kDAAgC;AAChC,mDAAiC;AACjC,8CAA4B;AAC5B,+CAA6B;AAC7B,iDAA+B;AAC/B,qDAAmC;AACnC,gDAA8B;AAC9B,8CAA4B;AAC5B,oDAAkC;AAClC,uDAAqC;AACrC,oDAAkC;AAClC,8CAA4B;AAK5B,sDAAoC;AACpC,wDAAsC;AACtC,2DAAyC;AACzC,2DAAyC;AACzC,kEAAgD;AAChD,iEAA+C;AAC/C,+DAA6C;AAC7C,sDAAoC;AACpC,2DAAyC;AACzC,8DAA4C;AAC5C,0DAAwC;AACxC,0DAAwC;AACxC,qDAAmC;AACnC,uDAAqC;AACrC,2DAAyC;AACzC,wDAAsC;AAEtC,sDAAoC;AACpC,sDAAoC;AACpC,+CAA6B;AAC7B,iDAA+B"}
package/cjs/index.d.ts CHANGED
@@ -49,6 +49,7 @@ export * from "./utils/stripper.js";
49
49
  export * from "./utils/sorted-object.js";
50
50
  export * from "./utils/uint8array-equal.js";
51
51
  export * from "./utils/coerce-uint8.js";
52
+ export * from "./utils/concat-uint8.js";
52
53
  export * from "./utils/consume.js";
53
54
  export * from "./utils/to-sorted.js";
54
55
  export * from "./utils/relative-path.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAK5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAK5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.concatUint8 = concatUint8;
4
+ function concatUint8(...arrays) {
5
+ const total = arrays.reduce((sum, a) => sum + a.length, 0);
6
+ const result = new Uint8Array(total);
7
+ let offset = 0;
8
+ for (const arr of arrays) {
9
+ result.set(arr, offset);
10
+ offset += arr.length;
11
+ }
12
+ return result;
13
+ }
14
+ //# sourceMappingURL=concat-uint8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concat-uint8.js","sourceRoot":"","sources":["../../../../src/utils/concat-uint8.ts"],"names":[],"mappings":";;;AAoBA,qBAA4B,GAAG,MAAoB,EAAc;IAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC;AAAA,CACf"}
@@ -0,0 +1,2 @@
1
+ export declare function concatUint8(...arrays: Uint8Array[]): Uint8Array;
2
+ //# sourceMappingURL=concat-uint8.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concat-uint8.d.ts","sourceRoot":"","sources":["../../../../src/utils/concat-uint8.ts"],"names":[],"mappings":"AAoBA,wBAAgB,WAAW,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAS/D"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const cement_1 = require("@adviser/cement");
5
+ (0, vitest_1.describe)("concatUint8 edge cases", () => {
6
+ (0, vitest_1.it)("no arguments returns empty array", () => {
7
+ const result = (0, cement_1.concatUint8)();
8
+ (0, vitest_1.expect)(result).toBeInstanceOf(Uint8Array);
9
+ (0, vitest_1.expect)(result.length).toBe(0);
10
+ });
11
+ (0, vitest_1.it)("single empty array returns empty array", () => {
12
+ const result = (0, cement_1.concatUint8)(new Uint8Array(0));
13
+ (0, vitest_1.expect)(result).toBeInstanceOf(Uint8Array);
14
+ (0, vitest_1.expect)(result.length).toBe(0);
15
+ });
16
+ (0, vitest_1.it)("multiple empty arrays returns empty array", () => {
17
+ const result = (0, cement_1.concatUint8)(new Uint8Array(0), new Uint8Array(0), new Uint8Array(0));
18
+ (0, vitest_1.expect)(result).toBeInstanceOf(Uint8Array);
19
+ (0, vitest_1.expect)(result.length).toBe(0);
20
+ });
21
+ (0, vitest_1.it)("single array with one byte", () => {
22
+ const result = (0, cement_1.concatUint8)(new Uint8Array([42]));
23
+ (0, vitest_1.expect)(result).toEqual(new Uint8Array([42]));
24
+ });
25
+ (0, vitest_1.it)("empty array mixed with non-empty arrays", () => {
26
+ const result = (0, cement_1.concatUint8)(new Uint8Array(0), new Uint8Array([1, 2]), new Uint8Array(0), new Uint8Array([3]));
27
+ (0, vitest_1.expect)(result).toEqual(new Uint8Array([1, 2, 3]));
28
+ });
29
+ (0, vitest_1.it)("all zero bytes are preserved", () => {
30
+ const result = (0, cement_1.concatUint8)(new Uint8Array([0, 0]), new Uint8Array([0]));
31
+ (0, vitest_1.expect)(result).toEqual(new Uint8Array([0, 0, 0]));
32
+ });
33
+ (0, vitest_1.it)("boundary byte values (0 and 255)", () => {
34
+ const result = (0, cement_1.concatUint8)(new Uint8Array([0]), new Uint8Array([255]));
35
+ (0, vitest_1.expect)(result).toEqual(new Uint8Array([0, 255]));
36
+ });
37
+ (0, vitest_1.it)("returns a new array independent from inputs", () => {
38
+ const a = new Uint8Array([1, 2, 3]);
39
+ const result = (0, cement_1.concatUint8)(a);
40
+ result[0] = 99;
41
+ (0, vitest_1.expect)(a[0]).toBe(1);
42
+ });
43
+ });
44
+ (0, vitest_1.describe)("concatUint8 normal cases", () => {
45
+ (0, vitest_1.it)("two arrays", () => {
46
+ const result = (0, cement_1.concatUint8)(new Uint8Array([1, 2, 3]), new Uint8Array([4, 5, 6]));
47
+ (0, vitest_1.expect)(result).toEqual(new Uint8Array([1, 2, 3, 4, 5, 6]));
48
+ });
49
+ (0, vitest_1.it)("three arrays", () => {
50
+ const result = (0, cement_1.concatUint8)(new Uint8Array([1]), new Uint8Array([2, 3]), new Uint8Array([4, 5, 6]));
51
+ (0, vitest_1.expect)(result).toEqual(new Uint8Array([1, 2, 3, 4, 5, 6]));
52
+ });
53
+ (0, vitest_1.it)("total length equals sum of input lengths", () => {
54
+ const a = new Uint8Array(7);
55
+ const b = new Uint8Array(13);
56
+ const result = (0, cement_1.concatUint8)(a, b);
57
+ (0, vitest_1.expect)(result.length).toBe(20);
58
+ });
59
+ });
60
+ //# sourceMappingURL=concat-uint8.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concat-uint8.test.js","sourceRoot":"","sources":["../../../../src/utils/concat-uint8.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=concat-uint8.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concat-uint8.test.d.ts","sourceRoot":"","sources":["../../../../src/utils/concat-uint8.test.ts"],"names":[],"mappings":""}
package/cjs/version.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = "0.5.27";
4
+ exports.VERSION = "0.5.28";
5
5
  //# sourceMappingURL=version.js.map
package/deno.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adviser/cement",
3
- "version": "0.5.27",
3
+ "version": "0.5.28",
4
4
  "license": "AFL-2.0",
5
5
  "exports": {
6
6
  ".": "./src/index.ts",
package/esm/index.d.ts CHANGED
@@ -49,6 +49,7 @@ export * from "./utils/stripper.js";
49
49
  export * from "./utils/sorted-object.js";
50
50
  export * from "./utils/uint8array-equal.js";
51
51
  export * from "./utils/coerce-uint8.js";
52
+ export * from "./utils/concat-uint8.js";
52
53
  export * from "./utils/consume.js";
53
54
  export * from "./utils/to-sorted.js";
54
55
  export * from "./utils/relative-path.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAK5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAK5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
package/esm/index.js CHANGED
@@ -49,6 +49,7 @@ export * from "./utils/stripper.js";
49
49
  export * from "./utils/sorted-object.js";
50
50
  export * from "./utils/uint8array-equal.js";
51
51
  export * from "./utils/coerce-uint8.js";
52
+ export * from "./utils/concat-uint8.js";
52
53
  export * from "./utils/consume.js";
53
54
  export * from "./utils/to-sorted.js";
54
55
  export * from "./utils/relative-path.js";
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAK5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAK5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function concatUint8(...arrays: Uint8Array[]): Uint8Array;
2
+ //# sourceMappingURL=concat-uint8.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concat-uint8.d.ts","sourceRoot":"","sources":["../../../../src/utils/concat-uint8.ts"],"names":[],"mappings":"AAoBA,wBAAgB,WAAW,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAS/D"}
@@ -0,0 +1,11 @@
1
+ export function concatUint8(...arrays) {
2
+ const total = arrays.reduce((sum, a) => sum + a.length, 0);
3
+ const result = new Uint8Array(total);
4
+ let offset = 0;
5
+ for (const arr of arrays) {
6
+ result.set(arr, offset);
7
+ offset += arr.length;
8
+ }
9
+ return result;
10
+ }
11
+ //# sourceMappingURL=concat-uint8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concat-uint8.js","sourceRoot":"","sources":["../../../../src/utils/concat-uint8.ts"],"names":[],"mappings":"AAoBA,MAAM,UAAU,WAAW,CAAC,GAAG,MAAoB,EAAc;IAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC;AAAA,CACf"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=concat-uint8.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concat-uint8.test.d.ts","sourceRoot":"","sources":["../../../../src/utils/concat-uint8.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,58 @@
1
+ import { it, expect, describe } from "vitest";
2
+ import { concatUint8 } from "@adviser/cement";
3
+ describe("concatUint8 edge cases", () => {
4
+ it("no arguments returns empty array", () => {
5
+ const result = concatUint8();
6
+ expect(result).toBeInstanceOf(Uint8Array);
7
+ expect(result.length).toBe(0);
8
+ });
9
+ it("single empty array returns empty array", () => {
10
+ const result = concatUint8(new Uint8Array(0));
11
+ expect(result).toBeInstanceOf(Uint8Array);
12
+ expect(result.length).toBe(0);
13
+ });
14
+ it("multiple empty arrays returns empty array", () => {
15
+ const result = concatUint8(new Uint8Array(0), new Uint8Array(0), new Uint8Array(0));
16
+ expect(result).toBeInstanceOf(Uint8Array);
17
+ expect(result.length).toBe(0);
18
+ });
19
+ it("single array with one byte", () => {
20
+ const result = concatUint8(new Uint8Array([42]));
21
+ expect(result).toEqual(new Uint8Array([42]));
22
+ });
23
+ it("empty array mixed with non-empty arrays", () => {
24
+ const result = concatUint8(new Uint8Array(0), new Uint8Array([1, 2]), new Uint8Array(0), new Uint8Array([3]));
25
+ expect(result).toEqual(new Uint8Array([1, 2, 3]));
26
+ });
27
+ it("all zero bytes are preserved", () => {
28
+ const result = concatUint8(new Uint8Array([0, 0]), new Uint8Array([0]));
29
+ expect(result).toEqual(new Uint8Array([0, 0, 0]));
30
+ });
31
+ it("boundary byte values (0 and 255)", () => {
32
+ const result = concatUint8(new Uint8Array([0]), new Uint8Array([255]));
33
+ expect(result).toEqual(new Uint8Array([0, 255]));
34
+ });
35
+ it("returns a new array independent from inputs", () => {
36
+ const a = new Uint8Array([1, 2, 3]);
37
+ const result = concatUint8(a);
38
+ result[0] = 99;
39
+ expect(a[0]).toBe(1);
40
+ });
41
+ });
42
+ describe("concatUint8 normal cases", () => {
43
+ it("two arrays", () => {
44
+ const result = concatUint8(new Uint8Array([1, 2, 3]), new Uint8Array([4, 5, 6]));
45
+ expect(result).toEqual(new Uint8Array([1, 2, 3, 4, 5, 6]));
46
+ });
47
+ it("three arrays", () => {
48
+ const result = concatUint8(new Uint8Array([1]), new Uint8Array([2, 3]), new Uint8Array([4, 5, 6]));
49
+ expect(result).toEqual(new Uint8Array([1, 2, 3, 4, 5, 6]));
50
+ });
51
+ it("total length equals sum of input lengths", () => {
52
+ const a = new Uint8Array(7);
53
+ const b = new Uint8Array(13);
54
+ const result = concatUint8(a, b);
55
+ expect(result.length).toBe(20);
56
+ });
57
+ });
58
+ //# sourceMappingURL=concat-uint8.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concat-uint8.test.js","sourceRoot":"","sources":["../../../../src/utils/concat-uint8.test.ts"],"names":[],"mappings":"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"}
package/esm/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = "0.5.27";
1
+ export const VERSION = "0.5.28";
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adviser/cement",
3
- "version": "0.5.27",
3
+ "version": "0.5.28",
4
4
  "description": "better try/catch/finally handling",
5
5
  "main": "./cjs/index.js",
6
6
  "type": "module",
package/src/index.ts CHANGED
@@ -53,6 +53,7 @@ export * from "./utils/stripper.js";
53
53
  export * from "./utils/sorted-object.js";
54
54
  export * from "./utils/uint8array-equal.js";
55
55
  export * from "./utils/coerce-uint8.js";
56
+ export * from "./utils/concat-uint8.js";
56
57
  export * from "./utils/consume.js";
57
58
  export * from "./utils/to-sorted.js";
58
59
  export * from "./utils/relative-path.js";
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Concatenates multiple Uint8Arrays into a single Uint8Array.
3
+ *
4
+ * Allocates a single buffer and copies each array into it, which is
5
+ * more efficient than spread-based approaches for many or large arrays.
6
+ *
7
+ * @param arrays - Zero or more Uint8Arrays to concatenate
8
+ * @returns A new Uint8Array containing all bytes in order
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const a = new Uint8Array([1, 2, 3]);
13
+ * const b = new Uint8Array([4, 5]);
14
+ * const c = new Uint8Array([6]);
15
+ *
16
+ * concatUint8(a, b, c); // Uint8Array([1, 2, 3, 4, 5, 6])
17
+ * concatUint8(); // Uint8Array([])
18
+ * concatUint8(a); // Uint8Array([1, 2, 3])
19
+ * ```
20
+ */
21
+ export function concatUint8(...arrays: Uint8Array[]): Uint8Array {
22
+ const total = arrays.reduce((sum, a) => sum + a.length, 0);
23
+ const result = new Uint8Array(total);
24
+ let offset = 0;
25
+ for (const arr of arrays) {
26
+ result.set(arr, offset);
27
+ offset += arr.length;
28
+ }
29
+ return result;
30
+ }
package/ts/cjs/index.d.ts CHANGED
@@ -49,6 +49,7 @@ export * from "./utils/stripper.js";
49
49
  export * from "./utils/sorted-object.js";
50
50
  export * from "./utils/uint8array-equal.js";
51
51
  export * from "./utils/coerce-uint8.js";
52
+ export * from "./utils/concat-uint8.js";
52
53
  export * from "./utils/consume.js";
53
54
  export * from "./utils/to-sorted.js";
54
55
  export * from "./utils/relative-path.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAK5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAK5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
package/ts/cjs/index.js CHANGED
@@ -65,6 +65,7 @@ __exportStar(require("./utils/stripper.js"), exports);
65
65
  __exportStar(require("./utils/sorted-object.js"), exports);
66
66
  __exportStar(require("./utils/uint8array-equal.js"), exports);
67
67
  __exportStar(require("./utils/coerce-uint8.js"), exports);
68
+ __exportStar(require("./utils/concat-uint8.js"), exports);
68
69
  __exportStar(require("./utils/consume.js"), exports);
69
70
  __exportStar(require("./utils/to-sorted.js"), exports);
70
71
  __exportStar(require("./utils/relative-path.js"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,mDAAiC;AACjC,8CAA4B;AAC5B,uDAAqC;AACrC,+CAA6B;AAC7B,4CAA0B;AAC1B,kDAAgC;AAChC,sDAAoC;AACpC,sDAAoC;AACpC,8CAA4B;AAC5B,8CAA4B;AAC5B,8CAA4B;AAC5B,8CAA4B;AAC5B,oDAAkC;AAClC,+CAA6B;AAC7B,2CAAyB;AACzB,8CAA4B;AAC5B,4DAA0C;AAC1C,gDAA8B;AAC9B,+CAA6B;AAC7B,mDAAiC;AACjC,gDAA8B;AAC9B,uDAAqC;AACrC,6CAA2B;AAC3B,mDAAiC;AACjC,qDAAmC;AACnC,kDAAgC;AAChC,mDAAiC;AACjC,kDAAgC;AAChC,mDAAiC;AACjC,8CAA4B;AAC5B,+CAA6B;AAC7B,iDAA+B;AAC/B,qDAAmC;AACnC,gDAA8B;AAC9B,8CAA4B;AAC5B,oDAAkC;AAClC,uDAAqC;AACrC,oDAAkC;AAClC,8CAA4B;AAK5B,sDAAoC;AACpC,wDAAsC;AACtC,2DAAyC;AACzC,2DAAyC;AACzC,kEAAgD;AAChD,iEAA+C;AAC/C,+DAA6C;AAC7C,sDAAoC;AACpC,2DAAyC;AACzC,8DAA4C;AAC5C,0DAAwC;AACxC,qDAAmC;AACnC,uDAAqC;AACrC,2DAAyC;AACzC,wDAAsC;AAEtC,sDAAoC;AACpC,sDAAoC;AACpC,+CAA6B;AAC7B,iDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,mDAAiC;AACjC,8CAA4B;AAC5B,uDAAqC;AACrC,+CAA6B;AAC7B,4CAA0B;AAC1B,kDAAgC;AAChC,sDAAoC;AACpC,sDAAoC;AACpC,8CAA4B;AAC5B,8CAA4B;AAC5B,8CAA4B;AAC5B,8CAA4B;AAC5B,oDAAkC;AAClC,+CAA6B;AAC7B,2CAAyB;AACzB,8CAA4B;AAC5B,4DAA0C;AAC1C,gDAA8B;AAC9B,+CAA6B;AAC7B,mDAAiC;AACjC,gDAA8B;AAC9B,uDAAqC;AACrC,6CAA2B;AAC3B,mDAAiC;AACjC,qDAAmC;AACnC,kDAAgC;AAChC,mDAAiC;AACjC,kDAAgC;AAChC,mDAAiC;AACjC,8CAA4B;AAC5B,+CAA6B;AAC7B,iDAA+B;AAC/B,qDAAmC;AACnC,gDAA8B;AAC9B,8CAA4B;AAC5B,oDAAkC;AAClC,uDAAqC;AACrC,oDAAkC;AAClC,8CAA4B;AAK5B,sDAAoC;AACpC,wDAAsC;AACtC,2DAAyC;AACzC,2DAAyC;AACzC,kEAAgD;AAChD,iEAA+C;AAC/C,+DAA6C;AAC7C,sDAAoC;AACpC,2DAAyC;AACzC,8DAA4C;AAC5C,0DAAwC;AACxC,0DAAwC;AACxC,qDAAmC;AACnC,uDAAqC;AACrC,2DAAyC;AACzC,wDAAsC;AAEtC,sDAAoC;AACpC,sDAAoC;AACpC,+CAA6B;AAC7B,iDAA+B"}
@@ -0,0 +1,2 @@
1
+ export declare function concatUint8(...arrays: Uint8Array[]): Uint8Array;
2
+ //# sourceMappingURL=concat-uint8.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concat-uint8.d.ts","sourceRoot":"","sources":["../../../../src/utils/concat-uint8.ts"],"names":[],"mappings":"AAoBA,wBAAgB,WAAW,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAS/D"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.concatUint8 = concatUint8;
4
+ function concatUint8(...arrays) {
5
+ const total = arrays.reduce((sum, a) => sum + a.length, 0);
6
+ const result = new Uint8Array(total);
7
+ let offset = 0;
8
+ for (const arr of arrays) {
9
+ result.set(arr, offset);
10
+ offset += arr.length;
11
+ }
12
+ return result;
13
+ }
14
+ //# sourceMappingURL=concat-uint8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concat-uint8.js","sourceRoot":"","sources":["../../../../src/utils/concat-uint8.ts"],"names":[],"mappings":";;;AAoBA,qBAA4B,GAAG,MAAoB,EAAc;IAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC;AAAA,CACf"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=concat-uint8.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concat-uint8.test.d.ts","sourceRoot":"","sources":["../../../../src/utils/concat-uint8.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const cement_1 = require("@adviser/cement");
5
+ (0, vitest_1.describe)("concatUint8 edge cases", () => {
6
+ (0, vitest_1.it)("no arguments returns empty array", () => {
7
+ const result = (0, cement_1.concatUint8)();
8
+ (0, vitest_1.expect)(result).toBeInstanceOf(Uint8Array);
9
+ (0, vitest_1.expect)(result.length).toBe(0);
10
+ });
11
+ (0, vitest_1.it)("single empty array returns empty array", () => {
12
+ const result = (0, cement_1.concatUint8)(new Uint8Array(0));
13
+ (0, vitest_1.expect)(result).toBeInstanceOf(Uint8Array);
14
+ (0, vitest_1.expect)(result.length).toBe(0);
15
+ });
16
+ (0, vitest_1.it)("multiple empty arrays returns empty array", () => {
17
+ const result = (0, cement_1.concatUint8)(new Uint8Array(0), new Uint8Array(0), new Uint8Array(0));
18
+ (0, vitest_1.expect)(result).toBeInstanceOf(Uint8Array);
19
+ (0, vitest_1.expect)(result.length).toBe(0);
20
+ });
21
+ (0, vitest_1.it)("single array with one byte", () => {
22
+ const result = (0, cement_1.concatUint8)(new Uint8Array([42]));
23
+ (0, vitest_1.expect)(result).toEqual(new Uint8Array([42]));
24
+ });
25
+ (0, vitest_1.it)("empty array mixed with non-empty arrays", () => {
26
+ const result = (0, cement_1.concatUint8)(new Uint8Array(0), new Uint8Array([1, 2]), new Uint8Array(0), new Uint8Array([3]));
27
+ (0, vitest_1.expect)(result).toEqual(new Uint8Array([1, 2, 3]));
28
+ });
29
+ (0, vitest_1.it)("all zero bytes are preserved", () => {
30
+ const result = (0, cement_1.concatUint8)(new Uint8Array([0, 0]), new Uint8Array([0]));
31
+ (0, vitest_1.expect)(result).toEqual(new Uint8Array([0, 0, 0]));
32
+ });
33
+ (0, vitest_1.it)("boundary byte values (0 and 255)", () => {
34
+ const result = (0, cement_1.concatUint8)(new Uint8Array([0]), new Uint8Array([255]));
35
+ (0, vitest_1.expect)(result).toEqual(new Uint8Array([0, 255]));
36
+ });
37
+ (0, vitest_1.it)("returns a new array independent from inputs", () => {
38
+ const a = new Uint8Array([1, 2, 3]);
39
+ const result = (0, cement_1.concatUint8)(a);
40
+ result[0] = 99;
41
+ (0, vitest_1.expect)(a[0]).toBe(1);
42
+ });
43
+ });
44
+ (0, vitest_1.describe)("concatUint8 normal cases", () => {
45
+ (0, vitest_1.it)("two arrays", () => {
46
+ const result = (0, cement_1.concatUint8)(new Uint8Array([1, 2, 3]), new Uint8Array([4, 5, 6]));
47
+ (0, vitest_1.expect)(result).toEqual(new Uint8Array([1, 2, 3, 4, 5, 6]));
48
+ });
49
+ (0, vitest_1.it)("three arrays", () => {
50
+ const result = (0, cement_1.concatUint8)(new Uint8Array([1]), new Uint8Array([2, 3]), new Uint8Array([4, 5, 6]));
51
+ (0, vitest_1.expect)(result).toEqual(new Uint8Array([1, 2, 3, 4, 5, 6]));
52
+ });
53
+ (0, vitest_1.it)("total length equals sum of input lengths", () => {
54
+ const a = new Uint8Array(7);
55
+ const b = new Uint8Array(13);
56
+ const result = (0, cement_1.concatUint8)(a, b);
57
+ (0, vitest_1.expect)(result.length).toBe(20);
58
+ });
59
+ });
60
+ //# sourceMappingURL=concat-uint8.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concat-uint8.test.js","sourceRoot":"","sources":["../../../../src/utils/concat-uint8.test.ts"],"names":[],"mappings":"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"}
package/ts/cjs/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = "0.5.27";
4
+ exports.VERSION = "0.5.28";
5
5
  //# sourceMappingURL=version.js.map
package/ts/esm/index.d.ts CHANGED
@@ -49,6 +49,7 @@ export * from "./utils/stripper.js";
49
49
  export * from "./utils/sorted-object.js";
50
50
  export * from "./utils/uint8array-equal.js";
51
51
  export * from "./utils/coerce-uint8.js";
52
+ export * from "./utils/concat-uint8.js";
52
53
  export * from "./utils/consume.js";
53
54
  export * from "./utils/to-sorted.js";
54
55
  export * from "./utils/relative-path.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAK5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAK5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
package/ts/esm/index.js CHANGED
@@ -49,6 +49,7 @@ export * from "./utils/stripper.js";
49
49
  export * from "./utils/sorted-object.js";
50
50
  export * from "./utils/uint8array-equal.js";
51
51
  export * from "./utils/coerce-uint8.js";
52
+ export * from "./utils/concat-uint8.js";
52
53
  export * from "./utils/consume.js";
53
54
  export * from "./utils/to-sorted.js";
54
55
  export * from "./utils/relative-path.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAK5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAK5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function concatUint8(...arrays: Uint8Array[]): Uint8Array;
2
+ //# sourceMappingURL=concat-uint8.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concat-uint8.d.ts","sourceRoot":"","sources":["../../../../src/utils/concat-uint8.ts"],"names":[],"mappings":"AAoBA,wBAAgB,WAAW,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAS/D"}
@@ -0,0 +1,11 @@
1
+ export function concatUint8(...arrays) {
2
+ const total = arrays.reduce((sum, a) => sum + a.length, 0);
3
+ const result = new Uint8Array(total);
4
+ let offset = 0;
5
+ for (const arr of arrays) {
6
+ result.set(arr, offset);
7
+ offset += arr.length;
8
+ }
9
+ return result;
10
+ }
11
+ //# sourceMappingURL=concat-uint8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concat-uint8.js","sourceRoot":"","sources":["../../../../src/utils/concat-uint8.ts"],"names":[],"mappings":"AAoBA,MAAM,UAAU,WAAW,CAAC,GAAG,MAAoB,EAAc;IAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC;AAAA,CACf"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=concat-uint8.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concat-uint8.test.d.ts","sourceRoot":"","sources":["../../../../src/utils/concat-uint8.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,58 @@
1
+ import { it, expect, describe } from "vitest";
2
+ import { concatUint8 } from "@adviser/cement";
3
+ describe("concatUint8 edge cases", () => {
4
+ it("no arguments returns empty array", () => {
5
+ const result = concatUint8();
6
+ expect(result).toBeInstanceOf(Uint8Array);
7
+ expect(result.length).toBe(0);
8
+ });
9
+ it("single empty array returns empty array", () => {
10
+ const result = concatUint8(new Uint8Array(0));
11
+ expect(result).toBeInstanceOf(Uint8Array);
12
+ expect(result.length).toBe(0);
13
+ });
14
+ it("multiple empty arrays returns empty array", () => {
15
+ const result = concatUint8(new Uint8Array(0), new Uint8Array(0), new Uint8Array(0));
16
+ expect(result).toBeInstanceOf(Uint8Array);
17
+ expect(result.length).toBe(0);
18
+ });
19
+ it("single array with one byte", () => {
20
+ const result = concatUint8(new Uint8Array([42]));
21
+ expect(result).toEqual(new Uint8Array([42]));
22
+ });
23
+ it("empty array mixed with non-empty arrays", () => {
24
+ const result = concatUint8(new Uint8Array(0), new Uint8Array([1, 2]), new Uint8Array(0), new Uint8Array([3]));
25
+ expect(result).toEqual(new Uint8Array([1, 2, 3]));
26
+ });
27
+ it("all zero bytes are preserved", () => {
28
+ const result = concatUint8(new Uint8Array([0, 0]), new Uint8Array([0]));
29
+ expect(result).toEqual(new Uint8Array([0, 0, 0]));
30
+ });
31
+ it("boundary byte values (0 and 255)", () => {
32
+ const result = concatUint8(new Uint8Array([0]), new Uint8Array([255]));
33
+ expect(result).toEqual(new Uint8Array([0, 255]));
34
+ });
35
+ it("returns a new array independent from inputs", () => {
36
+ const a = new Uint8Array([1, 2, 3]);
37
+ const result = concatUint8(a);
38
+ result[0] = 99;
39
+ expect(a[0]).toBe(1);
40
+ });
41
+ });
42
+ describe("concatUint8 normal cases", () => {
43
+ it("two arrays", () => {
44
+ const result = concatUint8(new Uint8Array([1, 2, 3]), new Uint8Array([4, 5, 6]));
45
+ expect(result).toEqual(new Uint8Array([1, 2, 3, 4, 5, 6]));
46
+ });
47
+ it("three arrays", () => {
48
+ const result = concatUint8(new Uint8Array([1]), new Uint8Array([2, 3]), new Uint8Array([4, 5, 6]));
49
+ expect(result).toEqual(new Uint8Array([1, 2, 3, 4, 5, 6]));
50
+ });
51
+ it("total length equals sum of input lengths", () => {
52
+ const a = new Uint8Array(7);
53
+ const b = new Uint8Array(13);
54
+ const result = concatUint8(a, b);
55
+ expect(result.length).toBe(20);
56
+ });
57
+ });
58
+ //# sourceMappingURL=concat-uint8.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concat-uint8.test.js","sourceRoot":"","sources":["../../../../src/utils/concat-uint8.test.ts"],"names":[],"mappings":"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"}
package/ts/esm/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = "0.5.27";
1
+ export const VERSION = "0.5.28";
2
2
  //# sourceMappingURL=version.js.map