@lodestar/utils 0.40.0-dev.010df5c5da

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 (78) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +12 -0
  3. package/lib/assert.d.ts +45 -0
  4. package/lib/assert.js +69 -0
  5. package/lib/assert.js.map +1 -0
  6. package/lib/bytes.d.ts +17 -0
  7. package/lib/bytes.js +58 -0
  8. package/lib/bytes.js.map +1 -0
  9. package/lib/errors.d.ts +35 -0
  10. package/lib/errors.js +52 -0
  11. package/lib/errors.js.map +1 -0
  12. package/lib/format.d.ts +6 -0
  13. package/lib/format.js +10 -0
  14. package/lib/format.js.map +1 -0
  15. package/lib/index.d.ts +17 -0
  16. package/lib/index.js +17 -0
  17. package/lib/index.js.map +1 -0
  18. package/lib/logger/format.d.ts +6 -0
  19. package/lib/logger/format.js +62 -0
  20. package/lib/logger/format.js.map +1 -0
  21. package/lib/logger/index.d.ts +9 -0
  22. package/lib/logger/index.js +8 -0
  23. package/lib/logger/index.js.map +1 -0
  24. package/lib/logger/interface.d.ts +63 -0
  25. package/lib/logger/interface.js +38 -0
  26. package/lib/logger/interface.js.map +1 -0
  27. package/lib/logger/json.d.ts +18 -0
  28. package/lib/logger/json.js +115 -0
  29. package/lib/logger/json.js.map +1 -0
  30. package/lib/logger/transport.d.ts +24 -0
  31. package/lib/logger/transport.js +41 -0
  32. package/lib/logger/transport.js.map +1 -0
  33. package/lib/logger/util.d.ts +6 -0
  34. package/lib/logger/util.js +14 -0
  35. package/lib/logger/util.js.map +1 -0
  36. package/lib/logger/winston.d.ts +30 -0
  37. package/lib/logger/winston.js +83 -0
  38. package/lib/logger/winston.js.map +1 -0
  39. package/lib/math.d.ts +27 -0
  40. package/lib/math.js +53 -0
  41. package/lib/math.js.map +1 -0
  42. package/lib/notNullish.d.ts +10 -0
  43. package/lib/notNullish.js +12 -0
  44. package/lib/notNullish.js.map +1 -0
  45. package/lib/objects.d.ts +16 -0
  46. package/lib/objects.js +72 -0
  47. package/lib/objects.js.map +1 -0
  48. package/lib/promise.d.ts +5 -0
  49. package/lib/promise.js +22 -0
  50. package/lib/promise.js.map +1 -0
  51. package/lib/retry.d.ts +24 -0
  52. package/lib/retry.js +29 -0
  53. package/lib/retry.js.map +1 -0
  54. package/lib/sleep.d.ts +6 -0
  55. package/lib/sleep.js +32 -0
  56. package/lib/sleep.js.map +1 -0
  57. package/lib/sort.d.ts +2 -0
  58. package/lib/sort.js +10 -0
  59. package/lib/sort.js.map +1 -0
  60. package/lib/timeout.d.ts +2 -0
  61. package/lib/timeout.js +18 -0
  62. package/lib/timeout.js.map +1 -0
  63. package/lib/types.d.ts +10 -0
  64. package/lib/types.js +5 -0
  65. package/lib/types.js.map +1 -0
  66. package/lib/verifyMerkleBranch.d.ts +7 -0
  67. package/lib/verifyMerkleBranch.js +21 -0
  68. package/lib/verifyMerkleBranch.js.map +1 -0
  69. package/lib/yaml/index.d.ts +3 -0
  70. package/lib/yaml/index.js +10 -0
  71. package/lib/yaml/index.js.map +1 -0
  72. package/lib/yaml/int.d.ts +3 -0
  73. package/lib/yaml/int.js +174 -0
  74. package/lib/yaml/int.js.map +1 -0
  75. package/lib/yaml/schema.d.ts +3 -0
  76. package/lib/yaml/schema.js +21 -0
  77. package/lib/yaml/schema.js.map +1 -0
  78. package/package.json +63 -0
package/lib/objects.js ADDED
@@ -0,0 +1,72 @@
1
+ import Case from "case";
2
+ export function toExpectedCase(value, expectedCase = "camel", customCasingMap) {
3
+ if (expectedCase === "notransform")
4
+ return value;
5
+ if (customCasingMap && customCasingMap[value])
6
+ return customCasingMap[value];
7
+ switch (expectedCase) {
8
+ case "param":
9
+ return Case.kebab(value);
10
+ case "dot":
11
+ return Case.lower(value, ".", true);
12
+ default:
13
+ return Case[expectedCase](value);
14
+ }
15
+ }
16
+ function isObjectObject(val) {
17
+ return val != null && typeof val === "object" && Array.isArray(val) === false;
18
+ }
19
+ export function isPlainObject(o) {
20
+ if (isObjectObject(o) === false)
21
+ return false;
22
+ // If has modified constructor
23
+ const ctor = o.constructor;
24
+ if (typeof ctor !== "function")
25
+ return false;
26
+ // If has modified prototype
27
+ const prot = ctor.prototype;
28
+ if (isObjectObject(prot) === false)
29
+ return false;
30
+ // If constructor does not have an Object-specific method
31
+ if (prot.hasOwnProperty("isPrototypeOf") === false) {
32
+ return false;
33
+ }
34
+ // Most likely a plain Object
35
+ return true;
36
+ }
37
+ /**
38
+ * Creates an object with the same keys as object and values generated by running each own enumerable
39
+ * string keyed property of object thru iteratee.
40
+ *
41
+ * Inspired on lodash.mapValues, see https://lodash.com/docs/4.17.15#mapValues
42
+ */
43
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
44
+ export function mapValues(obj, iteratee) {
45
+ const output = {};
46
+ for (const [key, value] of Object.entries(obj)) {
47
+ output[key] = iteratee(value, key);
48
+ }
49
+ return output;
50
+ }
51
+ export function objectToExpectedCase(obj, expectedCase = "camel") {
52
+ if (Array.isArray(obj)) {
53
+ const newArr = [];
54
+ for (let i = 0; i < obj.length; i++) {
55
+ newArr[i] = objectToExpectedCase(obj[i], expectedCase);
56
+ }
57
+ return newArr;
58
+ }
59
+ if (Object(obj) === obj) {
60
+ const newObj = {};
61
+ for (const name of Object.getOwnPropertyNames(obj)) {
62
+ const newName = toExpectedCase(name, expectedCase);
63
+ if (newName !== name && obj.hasOwnProperty(newName)) {
64
+ throw new Error(`object already has a ${newName} property`);
65
+ }
66
+ newObj[newName] = objectToExpectedCase(obj[name], expectedCase);
67
+ }
68
+ return newObj;
69
+ }
70
+ return obj;
71
+ }
72
+ //# sourceMappingURL=objects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objects.js","sourceRoot":"","sources":["../src/objects.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * While promise t is not finished, call function `fn` per `interval`
3
+ */
4
+ export declare function callFnWhenAwait<T>(p: Promise<NonNullable<T>>, fn: () => void, interval: number): Promise<NonNullable<T>>;
5
+ //# sourceMappingURL=promise.d.ts.map
package/lib/promise.js ADDED
@@ -0,0 +1,22 @@
1
+ import { sleep } from "./sleep.js";
2
+ /**
3
+ * While promise t is not finished, call function `fn` per `interval`
4
+ */
5
+ export async function callFnWhenAwait(p, fn, interval) {
6
+ let t = undefined;
7
+ const logFn = async () => {
8
+ while (t === undefined) {
9
+ await sleep(interval);
10
+ if (t === undefined)
11
+ fn();
12
+ }
13
+ return undefined;
14
+ };
15
+ t = await Promise.race([p, logFn()]);
16
+ // should not happen since p doesn not resolve to undefined
17
+ if (t === undefined) {
18
+ throw new Error("Unexpected error: Timeout");
19
+ }
20
+ return t;
21
+ }
22
+ //# sourceMappingURL=promise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promise.js","sourceRoot":"","sources":["../src/promise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AAEjC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,CAA0B,EAC1B,EAAc,EACd,QAAgB;IAEhB,IAAI,CAAC,GAA+B,SAAS,CAAC;IAC9C,MAAM,KAAK,GAAG,KAAK,IAAwB,EAAE;QAC3C,OAAO,CAAC,KAAK,SAAS,EAAE;YACtB,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;YACtB,IAAI,CAAC,KAAK,SAAS;gBAAE,EAAE,EAAE,CAAC;SAC3B;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACrC,2DAA2D;IAC3D,IAAI,CAAC,KAAK,SAAS,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;KAC9C;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
package/lib/retry.d.ts ADDED
@@ -0,0 +1,24 @@
1
+ export declare type RetryOptions = {
2
+ /**
3
+ * The maximum amount of times to retry the operation. Default is 5
4
+ */
5
+ retries?: number;
6
+ /**
7
+ * An optional Function that is invoked after the provided callback throws
8
+ * It expects a boolean to know if it should retry or not
9
+ * Useful to make retrying conditional on the type of error thrown
10
+ */
11
+ shouldRetry?: (lastError: Error) => boolean;
12
+ /**
13
+ * Miliseconds to wait before retrying again
14
+ */
15
+ retryDelay?: number;
16
+ };
17
+ /**
18
+ * Retry a given function on error.
19
+ * @param fn Async callback to retry. Invoked with 1 parameter
20
+ * A Number identifying the attempt. The absolute first attempt (before any retries) is 1
21
+ * @param opts
22
+ */
23
+ export declare function retry<A>(fn: (attempt: number) => A | Promise<A>, opts?: RetryOptions): Promise<A>;
24
+ //# sourceMappingURL=retry.d.ts.map
package/lib/retry.js ADDED
@@ -0,0 +1,29 @@
1
+ import { sleep } from "./sleep.js";
2
+ /**
3
+ * Retry a given function on error.
4
+ * @param fn Async callback to retry. Invoked with 1 parameter
5
+ * A Number identifying the attempt. The absolute first attempt (before any retries) is 1
6
+ * @param opts
7
+ */
8
+ export async function retry(fn, opts) {
9
+ var _a;
10
+ const maxRetries = (_a = opts === null || opts === void 0 ? void 0 : opts.retries) !== null && _a !== void 0 ? _a : 5;
11
+ const shouldRetry = opts === null || opts === void 0 ? void 0 : opts.shouldRetry;
12
+ let lastError = Error("RetryError");
13
+ for (let i = 1; i <= maxRetries; i++) {
14
+ try {
15
+ return await fn(i);
16
+ }
17
+ catch (e) {
18
+ lastError = e;
19
+ if (shouldRetry && !shouldRetry(lastError)) {
20
+ break;
21
+ }
22
+ else if ((opts === null || opts === void 0 ? void 0 : opts.retryDelay) !== undefined) {
23
+ await sleep(opts === null || opts === void 0 ? void 0 : opts.retryDelay);
24
+ }
25
+ }
26
+ }
27
+ throw lastError;
28
+ }
29
+ //# sourceMappingURL=retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AAmBjC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CAAI,EAAuC,EAAE,IAAmB;;IACzF,MAAM,UAAU,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,mCAAI,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAC;IAEtC,IAAI,SAAS,GAAU,KAAK,CAAC,YAAY,CAAC,CAAC;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,EAAE,EAAE;QACpC,IAAI;YACF,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;SACpB;QAAC,OAAO,CAAC,EAAE;YACV,SAAS,GAAG,CAAU,CAAC;YACvB,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;gBAC1C,MAAM;aACP;iBAAM,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,MAAK,SAAS,EAAE;gBACzC,MAAM,KAAK,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,CAAC,CAAC;aAC/B;SACF;KACF;IACD,MAAM,SAAS,CAAC;AAClB,CAAC"}
package/lib/sleep.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Abortable sleep function. Cleans everything on all cases preventing leaks
3
+ * On abort throws ErrorAborted
4
+ */
5
+ export declare function sleep(ms: number, signal?: AbortSignal): Promise<void>;
6
+ //# sourceMappingURL=sleep.d.ts.map
package/lib/sleep.js ADDED
@@ -0,0 +1,32 @@
1
+ import { ErrorAborted } from "./errors.js";
2
+ /**
3
+ * Abortable sleep function. Cleans everything on all cases preventing leaks
4
+ * On abort throws ErrorAborted
5
+ */
6
+ export async function sleep(ms, signal) {
7
+ if (ms < 0) {
8
+ return;
9
+ }
10
+ return new Promise((resolve, reject) => {
11
+ if (signal && signal.aborted)
12
+ return reject(new ErrorAborted());
13
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
14
+ let onDone = () => { };
15
+ const timeout = setTimeout(() => {
16
+ onDone();
17
+ resolve();
18
+ }, ms);
19
+ const onAbort = () => {
20
+ onDone();
21
+ reject(new ErrorAborted());
22
+ };
23
+ if (signal)
24
+ signal.addEventListener("abort", onAbort);
25
+ onDone = () => {
26
+ clearTimeout(timeout);
27
+ if (signal)
28
+ signal.removeEventListener("abort", onAbort);
29
+ };
30
+ });
31
+ }
32
+ //# sourceMappingURL=sleep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sleep.js","sourceRoot":"","sources":["../src/sleep.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAEzC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,EAAU,EAAE,MAAoB;IAC1D,IAAI,EAAE,GAAG,CAAC,EAAE;QACV,OAAO;KACR;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;QAEhE,gEAAgE;QAChE,IAAI,MAAM,GAAe,GAAG,EAAE,GAAE,CAAC,CAAC;QAElC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;QACZ,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,MAAM,EAAE,CAAC;YACT,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC;QACF,IAAI,MAAM;YAAE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEtD,MAAM,GAAG,GAAG,EAAE;YACZ,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,IAAI,MAAM;gBAAE,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC3D,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
package/lib/sort.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export declare function isSorted(indices: number[]): boolean;
2
+ //# sourceMappingURL=sort.d.ts.map
package/lib/sort.js ADDED
@@ -0,0 +1,10 @@
1
+ export function isSorted(indices) {
2
+ for (let i = 0, prevIndex = -1; i < indices.length; i++) {
3
+ if (indices[i] <= prevIndex) {
4
+ return false;
5
+ }
6
+ prevIndex = indices[i];
7
+ }
8
+ return true;
9
+ }
10
+ //# sourceMappingURL=sort.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sort.js","sourceRoot":"","sources":["../src/sort.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAC,OAAiB;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACvD,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE;YAC3B,OAAO,KAAK,CAAC;SACd;QACD,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;KACxB;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function withTimeout<T>(asyncFn: (timeoutAndParentSignal?: AbortSignal) => Promise<T>, timeoutMs: number, signal?: AbortSignal): Promise<T>;
2
+ //# sourceMappingURL=timeout.d.ts.map
package/lib/timeout.js ADDED
@@ -0,0 +1,18 @@
1
+ import { anySignal } from "any-signal";
2
+ import { TimeoutError } from "./errors.js";
3
+ import { sleep } from "./sleep.js";
4
+ export async function withTimeout(asyncFn, timeoutMs, signal) {
5
+ const timeoutAbortController = new AbortController();
6
+ const timeoutAndParentSignal = anySignal([timeoutAbortController.signal, ...(signal ? [signal] : [])]);
7
+ async function timeoutPromise(signal) {
8
+ await sleep(timeoutMs, signal);
9
+ throw new TimeoutError();
10
+ }
11
+ try {
12
+ return await Promise.race([asyncFn(timeoutAndParentSignal), timeoutPromise(timeoutAndParentSignal)]);
13
+ }
14
+ finally {
15
+ timeoutAbortController.abort();
16
+ }
17
+ }
18
+ //# sourceMappingURL=timeout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeout.js","sourceRoot":"","sources":["../src/timeout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,YAAY,CAAC;AACrC,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AACzC,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AAEjC,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAA6D,EAC7D,SAAiB,EACjB,MAAoB;IAEpB,MAAM,sBAAsB,GAAG,IAAI,eAAe,EAAE,CAAC;IACrD,MAAM,sBAAsB,GAAG,SAAS,CAAC,CAAC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAgB,CAAC;IAEtH,KAAK,UAAU,cAAc,CAAC,MAAmB;QAC/C,MAAM,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC/B,MAAM,IAAI,YAAY,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI;QACF,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;KACtG;YAAS;QACR,sBAAsB,CAAC,KAAK,EAAE,CAAC;KAChC;AACH,CAAC"}
package/lib/types.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Recursively make all properties optional
3
+ * From https://stackoverflow.com/questions/45372227/how-to-implement-typescript-deep-partial-mapped-type-not-breaking-array-properti/49936686#49936686
4
+ */
5
+ export declare type RecursivePartial<T> = {
6
+ [P in keyof T]?: T[P] extends (infer U)[] ? RecursivePartial<U>[] : T[P] extends Readonly<infer U>[] ? Readonly<RecursivePartial<U>>[] : RecursivePartial<T[P]>;
7
+ };
8
+ /** Type safe wrapper for Number constructor that takes 'any' */
9
+ export declare function bnToNum(bn: bigint): number;
10
+ //# sourceMappingURL=types.d.ts.map
package/lib/types.js ADDED
@@ -0,0 +1,5 @@
1
+ /** Type safe wrapper for Number constructor that takes 'any' */
2
+ export function bnToNum(bn) {
3
+ return Number(bn);
4
+ }
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAYA,gEAAgE;AAChE,MAAM,UAAU,OAAO,CAAC,EAAU;IAChC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;AACpB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare function hash(...inputs: Uint8Array[]): Uint8Array;
2
+ /**
3
+ * Verify that the given ``leaf`` is on the merkle branch ``proof``
4
+ * starting with the given ``root``.
5
+ */
6
+ export declare function verifyMerkleBranch(leaf: Uint8Array, proof: Uint8Array[], depth: number, index: number, root: Uint8Array): boolean;
7
+ //# sourceMappingURL=verifyMerkleBranch.d.ts.map
@@ -0,0 +1,21 @@
1
+ import { digest, digest64 } from "@chainsafe/as-sha256";
2
+ export function hash(...inputs) {
3
+ return digest(Buffer.concat(inputs));
4
+ }
5
+ /**
6
+ * Verify that the given ``leaf`` is on the merkle branch ``proof``
7
+ * starting with the given ``root``.
8
+ */
9
+ export function verifyMerkleBranch(leaf, proof, depth, index, root) {
10
+ let value = leaf;
11
+ for (let i = 0; i < depth; i++) {
12
+ if (Math.floor(index / 2 ** i) % 2) {
13
+ value = digest64(Buffer.concat([proof[i], value]));
14
+ }
15
+ else {
16
+ value = digest64(Buffer.concat([value, proof[i]]));
17
+ }
18
+ }
19
+ return Buffer.from(value).equals(root);
20
+ }
21
+ //# sourceMappingURL=verifyMerkleBranch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyMerkleBranch.js","sourceRoot":"","sources":["../src/verifyMerkleBranch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAEtD,MAAM,UAAU,IAAI,CAAC,GAAG,MAAoB;IAC1C,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAgB,EAChB,KAAmB,EACnB,KAAa,EACb,KAAa,EACb,IAAgB;IAEhB,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;QAC9B,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE;YAClC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;SACpD;aAAM;YACL,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACpD;KACF;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function loadYaml<T = Record<string, unknown>>(yaml: string): T;
2
+ export declare function dumpYaml(yaml: unknown): string;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,10 @@
1
+ import yaml from "js-yaml";
2
+ import { schema } from "./schema.js";
3
+ const { load, dump } = yaml;
4
+ export function loadYaml(yaml) {
5
+ return load(yaml, { schema });
6
+ }
7
+ export function dumpYaml(yaml) {
8
+ return dump(yaml, { schema });
9
+ }
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/yaml/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AAEnC,MAAM,EAAC,IAAI,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC;AAE1B,MAAM,UAAU,QAAQ,CAA8B,IAAY;IAChE,OAAO,IAAI,CAAC,IAAI,EAAE,EAAC,MAAM,EAAC,CAAM,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAa;IACpC,OAAO,IAAI,CAAC,IAAI,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import yaml from "js-yaml";
2
+ export declare const intType: yaml.Type;
3
+ //# sourceMappingURL=int.d.ts.map
@@ -0,0 +1,174 @@
1
+ // Forked from https://github.com/nodeca/js-yaml/blob/master/lib/js-yaml/type/int.js
2
+ // Currently only supports loading ints
3
+ import yaml from "js-yaml";
4
+ const { Type } = yaml;
5
+ function isHexCode(c) {
6
+ return (
7
+ // 0, 9
8
+ (0x30 <= c && c <= 0x39) ||
9
+ // A, F
10
+ (0x41 <= c && c <= 0x46) ||
11
+ // a, f
12
+ (0x61 <= c && c <= 0x66));
13
+ }
14
+ function isOctCode(c) {
15
+ return 0x30 /* 0 */ <= c && c <= 0x37 /* 7 */;
16
+ }
17
+ function isDecCode(c) {
18
+ return 0x30 /* 0 */ <= c && c <= 0x39 /* 9 */;
19
+ }
20
+ function resolveYamlInteger(data) {
21
+ if (data === null)
22
+ return false;
23
+ const max = data.length;
24
+ let ch, index = 0, hasDigits = false;
25
+ if (!max)
26
+ return false;
27
+ ch = data[index];
28
+ // sign
29
+ if (ch === "-" || ch === "+") {
30
+ ch = data[++index];
31
+ }
32
+ if (ch === "0") {
33
+ // 0
34
+ if (index + 1 === max)
35
+ return true;
36
+ ch = data[++index];
37
+ // base 2, base 8, base 16
38
+ if (ch === "b") {
39
+ // base 2
40
+ index++;
41
+ for (; index < max; index++) {
42
+ ch = data[index];
43
+ if (ch === "_")
44
+ continue;
45
+ if (ch !== "0" && ch !== "1")
46
+ return false;
47
+ hasDigits = true;
48
+ }
49
+ return hasDigits && ch !== "_";
50
+ }
51
+ if (ch === "x") {
52
+ // base 16
53
+ index++;
54
+ for (; index < max; index++) {
55
+ ch = data[index];
56
+ if (ch === "_")
57
+ continue;
58
+ if (!isHexCode(data.charCodeAt(index)))
59
+ return false;
60
+ hasDigits = true;
61
+ }
62
+ return hasDigits && ch !== "_";
63
+ }
64
+ // base 8
65
+ for (; index < max; index++) {
66
+ ch = data[index];
67
+ if (ch === "_")
68
+ continue;
69
+ if (!isOctCode(data.charCodeAt(index)))
70
+ return false;
71
+ hasDigits = true;
72
+ }
73
+ return hasDigits && ch !== "_";
74
+ }
75
+ // base 10 (except 0) or base 60
76
+ // value should not start with `_`;
77
+ if (ch === "_")
78
+ return false;
79
+ for (; index < max; index++) {
80
+ ch = data[index];
81
+ if (ch === "_")
82
+ continue;
83
+ if (ch === ":")
84
+ break;
85
+ if (!isDecCode(data.charCodeAt(index))) {
86
+ return false;
87
+ }
88
+ hasDigits = true;
89
+ }
90
+ // Should have digits and should not end with `_`
91
+ if (!hasDigits || ch === "_")
92
+ return false;
93
+ // if !base60 - done;
94
+ if (ch !== ":")
95
+ return true;
96
+ // base60 almost not used, no needs to optimize
97
+ return /^(:[0-5]?[0-9])+$/.test(data.slice(index));
98
+ }
99
+ function constructYamlInteger(data) {
100
+ let value = data, sign = 1, ch, base;
101
+ const digits = [];
102
+ if (value.indexOf("_") !== -1) {
103
+ value = value.replace(/_/g, "");
104
+ }
105
+ ch = value[0];
106
+ if (ch === "-" || ch === "+") {
107
+ if (ch === "-")
108
+ sign = -1;
109
+ value = value.slice(1);
110
+ ch = value[0];
111
+ }
112
+ if (value === "0")
113
+ return BigInt(0);
114
+ if (ch === "0") {
115
+ if (value[1] === "b" || value[1] === "x")
116
+ return BigInt(value) * BigInt(sign);
117
+ return BigInt("0o" + value) * BigInt(sign);
118
+ }
119
+ if (value.indexOf(":") !== -1) {
120
+ for (const v of value.split(":")) {
121
+ digits.unshift(parseInt(v, 10));
122
+ }
123
+ value = BigInt(0);
124
+ base = BigInt(1);
125
+ for (const d of digits) {
126
+ value = (BigInt(value) + BigInt(base)) * BigInt(d);
127
+ base = BigInt(base) * BigInt(60);
128
+ }
129
+ return value * BigInt(sign);
130
+ }
131
+ return BigInt(value) * BigInt(sign);
132
+ }
133
+ function isInteger(object) {
134
+ return typeof object === "bigint" || typeof object === "number";
135
+ }
136
+ export const intType = new Type("tag:yaml.org,2002:int", {
137
+ kind: "scalar",
138
+ resolve: resolveYamlInteger,
139
+ construct: constructYamlInteger,
140
+ predicate: isInteger,
141
+ instanceOf: BigInt,
142
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
143
+ // @ts-ignore
144
+ represent: {
145
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
146
+ // @ts-ignore
147
+ binary: function binary(obj) {
148
+ return obj >= 0 ? "0b" + obj.toString(2) : "-0b" + obj.toString(2).slice(1);
149
+ },
150
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
151
+ // @ts-ignore
152
+ octal: function octal(obj) {
153
+ return obj >= 0 ? "0" + obj.toString(8) : "-0" + obj.toString(8).slice(1);
154
+ },
155
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
156
+ // @ts-ignore
157
+ decimal: function decimal(obj) {
158
+ return obj.toString(10);
159
+ },
160
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
161
+ // @ts-ignore
162
+ hexadecimal: function hexadecimal(obj) {
163
+ return obj >= 0 ? "0x" + obj.toString(16).toUpperCase() : "-0x" + obj.toString(16).toUpperCase().slice(1);
164
+ },
165
+ },
166
+ defaultStyle: "decimal",
167
+ styleAliases: {
168
+ binary: [2, "bin"],
169
+ octal: [8, "oct"],
170
+ decimal: [10, "dec"],
171
+ hexadecimal: [16, "hex"],
172
+ },
173
+ });
174
+ //# sourceMappingURL=int.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"int.js","sourceRoot":"","sources":["../../src/yaml/int.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import yaml from "js-yaml";
2
+ export declare const schema: yaml.Schema;
3
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1,21 @@
1
+ import yaml from "js-yaml";
2
+ const { Schema } = yaml;
3
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
4
+ // @ts-ignore
5
+ import failsafe from "js-yaml/lib/js-yaml/schema/failsafe.js";
6
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
7
+ // @ts-ignore
8
+ import nullType from "js-yaml/lib/js-yaml/type/null.js";
9
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
10
+ // @ts-ignore
11
+ import boolType from "js-yaml/lib/js-yaml/type/bool.js";
12
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
13
+ // @ts-ignore
14
+ import floatType from "js-yaml/lib/js-yaml/type/float.js";
15
+ import { intType } from "./int.js";
16
+ export const schema = new Schema({
17
+ include: [failsafe],
18
+ implicit: [nullType, boolType, intType, floatType],
19
+ explicit: [],
20
+ });
21
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/yaml/schema.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,MAAM,EAAC,MAAM,EAAC,GAAG,IAAI,CAAC;AACtB,6DAA6D;AAC7D,aAAa;AACb,OAAO,QAAQ,MAAM,wCAAwC,CAAC;AAC9D,6DAA6D;AAC7D,aAAa;AACb,OAAO,QAAQ,MAAM,kCAAkC,CAAC;AACxD,6DAA6D;AAC7D,aAAa;AACb,OAAO,QAAQ,MAAM,kCAAkC,CAAC;AACxD,6DAA6D;AAC7D,aAAa;AACb,OAAO,SAAS,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAC,OAAO,EAAC,MAAM,UAAU,CAAC;AAEjC,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;IAC/B,OAAO,EAAE,CAAC,QAAQ,CAAC;IACnB,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC;IAClD,QAAQ,EAAE,EAAE;CACb,CAAC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,63 @@
1
+ {
2
+ "name": "@lodestar/utils",
3
+ "description": "Utilities required across multiple lodestar packages",
4
+ "license": "Apache-2.0",
5
+ "author": "ChainSafe Systems",
6
+ "homepage": "https://github.com/ChainSafe/lodestar#readme",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com:ChainSafe/lodestar.git"
10
+ },
11
+ "bugs": {
12
+ "url": "https://github.com/ChainSafe/lodestar/issues"
13
+ },
14
+ "version": "0.40.0-dev.010df5c5da",
15
+ "type": "module",
16
+ "exports": "./lib/index.js",
17
+ "files": [
18
+ "lib/**/*.d.ts",
19
+ "lib/**/*.js",
20
+ "lib/**/*.js.map",
21
+ "*.d.ts",
22
+ "*.js"
23
+ ],
24
+ "scripts": {
25
+ "clean": "rm -rf lib && rm -f *.tsbuildinfo",
26
+ "build": "tsc -p tsconfig.build.json",
27
+ "build:typedocs": "typedoc --exclude src/index.ts --out typedocs src",
28
+ "build:lib:watch": "yarn run build:lib --watch",
29
+ "build:release": "yarn clean && yarn build && yarn build:typedocs",
30
+ "build:types:watch": "yarn run build:types --watch",
31
+ "check-build": "node -e \"(async function() { await import('./lib/index.js') })()\"",
32
+ "check-types": "tsc",
33
+ "lint": "eslint --color --ext .ts src/ test/",
34
+ "lint:fix": "yarn run lint --fix",
35
+ "pretest": "yarn run check-types",
36
+ "test:unit": "mocha 'test/**/*.test.ts'",
37
+ "check-readme": "typescript-docs-verifier"
38
+ },
39
+ "types": "lib/index.d.ts",
40
+ "dependencies": {
41
+ "@chainsafe/as-sha256": "^0.3.1",
42
+ "any-signal": "2.1.2",
43
+ "bigint-buffer": "^1.1.5",
44
+ "case": "^1.6.3",
45
+ "chalk": "^4.1.2",
46
+ "js-yaml": "^3.13.1",
47
+ "winston": "^3.3.3",
48
+ "winston-daily-rotate-file": "^4.5.5",
49
+ "winston-transport": "^4.3.0"
50
+ },
51
+ "devDependencies": {
52
+ "@types/js-yaml": "^3.12.1",
53
+ "@types/triple-beam": "^1.3.2",
54
+ "triple-beam": "^1.3.0"
55
+ },
56
+ "keywords": [
57
+ "ethereum",
58
+ "eth-consensus",
59
+ "beacon",
60
+ "blockchain"
61
+ ],
62
+ "gitHead": "927021e884957d6ffb1b48c1c6ee1697afb9913a"
63
+ }